Uma biblioteca para desenho de grafos construída sob o paradigma de programação genérica
Autor(a) principal: | |
---|---|
Data de Publicação: | 2007 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFMG |
Texto Completo: | http://hdl.handle.net/1843/BUOS-8D7H8V |
Resumo: | Grafos são estruturas combinatoriais presentes em inúmeras aplicações. Seus vértices e arestas correspondem, respectivamente, às entidades e às relações de adjacência de determinado domínio. Apesar de um grafo ser um conceito puramente matemático, é fundamental que seu desenho seja inteligível e que transmita o máximo de informações possível. Em alguns casos, a clareza do desenho de um grafo não é apenas uma questão estética, mas um requisito essencial da aplicação. Este trabalho apresenta uma biblioteca para desenho de grafos chamada GTAD (Graph Toolkit for Algorithms and Drawings). Uma visão introdutória sobre a área de desenho de grafos, em conjunto com uma análise detalhada de três algoritmos de desenho ortogonal de grafos, também é apresentada. A GTAD é desenvolvida na linguagem de programação C++, sob o paradigma de programação genérica, que visa abstrair implementações das estruturas de dados sobre as quais elas operam. O mecanismo de templates da linguagem C++, ferramenta fundamental para a programação genérica, garante a resolução de tipos em tempo de compilação. Conseqüentemente, implementações baseadas nesta abordagem são comumente mais eficientes que aquelas que utilizam o paradigma de orientação a objetos em sua forma convencional. Resultados de desempenho de operações básicas de manipulação de grafos mostram que a GTAD é superior a outras bibliotecas, quando comparados os tempos de execução. Implementações de alguns algoritmos também foram submetidas a testes de desempenho e obtiveram resultados positivos. Finalmente, desenhos de grafos de categorias distintas, gerados sob diferentes estratégias, são discutidos e comparados entre si. |
id |
UFMG_dbfd83aca4104ffd3577d080e19faebe |
---|---|
oai_identifier_str |
oai:repositorio.ufmg.br:1843/BUOS-8D7H8V |
network_acronym_str |
UFMG |
network_name_str |
Repositório Institucional da UFMG |
repository_id_str |
|
spelling |
Renato Cardoso MesquitaLeandro Terra Cunha Melo2019-08-10T00:11:11Z2019-08-10T00:11:11Z2007-05-25http://hdl.handle.net/1843/BUOS-8D7H8VGrafos são estruturas combinatoriais presentes em inúmeras aplicações. Seus vértices e arestas correspondem, respectivamente, às entidades e às relações de adjacência de determinado domínio. Apesar de um grafo ser um conceito puramente matemático, é fundamental que seu desenho seja inteligível e que transmita o máximo de informações possível. Em alguns casos, a clareza do desenho de um grafo não é apenas uma questão estética, mas um requisito essencial da aplicação. Este trabalho apresenta uma biblioteca para desenho de grafos chamada GTAD (Graph Toolkit for Algorithms and Drawings). Uma visão introdutória sobre a área de desenho de grafos, em conjunto com uma análise detalhada de três algoritmos de desenho ortogonal de grafos, também é apresentada. A GTAD é desenvolvida na linguagem de programação C++, sob o paradigma de programação genérica, que visa abstrair implementações das estruturas de dados sobre as quais elas operam. O mecanismo de templates da linguagem C++, ferramenta fundamental para a programação genérica, garante a resolução de tipos em tempo de compilação. Conseqüentemente, implementações baseadas nesta abordagem são comumente mais eficientes que aquelas que utilizam o paradigma de orientação a objetos em sua forma convencional. Resultados de desempenho de operações básicas de manipulação de grafos mostram que a GTAD é superior a outras bibliotecas, quando comparados os tempos de execução. Implementações de alguns algoritmos também foram submetidas a testes de desempenho e obtiveram resultados positivos. Finalmente, desenhos de grafos de categorias distintas, gerados sob diferentes estratégias, são discutidos e comparados entre si.Graphs are combinatorial structures used in a great variety of applications. Vertices and edges of a graph correspond, respectively, to entities and relationships of a specic domain. Although the concept of a graph is purely mathematical, it is very important that its drawing effectively convey all necessary information. There are cases in which the clarity of a graph drawing is not a simple aesthetical matter, but part of the application's requirement. This work presents the GTAD (Graph Toolkit for Algorithms and Drawings) graph drawing library. An introductory perspective of the graph drawing area, along with a detailed analysis of three orthogonal drawing algorithms, is also presented. The GTAD is developed with the C++ programming language, under the generic programming paradigm, which focus on abstracting implementations from the data structures in which they operate. C++ template is a fundamental tool to achieve generic programming. Since type resolution of templates is performed at compile time, generic libraries are usually more efficient than libraries developed under the object-oriented paradigm in its traditional form. Performance results of basic graph manipulation operations show that GTAD is faster than other libraries when execution times are compared. Implementations of a few algorithms were also submitted to performance tests and obtained positive results. Finally, drawings of graphs from different categories, generated by different strategies, are discussed and compared against each other.Universidade Federal de Minas GeraisUFMGEngenharia elétricaEngenharia elétricaUma biblioteca para desenho de grafos construída sob o paradigma de programação genéricainfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFMGinstname:Universidade Federal de Minas Gerais (UFMG)instacron:UFMGORIGINALleandro_terra_cunha_melo.pdfapplication/pdf2027596https://repositorio.ufmg.br/bitstream/1843/BUOS-8D7H8V/1/leandro_terra_cunha_melo.pdfbdc2c75b20bf59449ba3300a42a3da6aMD51TEXTleandro_terra_cunha_melo.pdf.txtleandro_terra_cunha_melo.pdf.txtExtracted texttext/plain219657https://repositorio.ufmg.br/bitstream/1843/BUOS-8D7H8V/2/leandro_terra_cunha_melo.pdf.txt08b6041ce782da5923b5513021e8c213MD521843/BUOS-8D7H8V2019-11-14 05:13:25.42oai:repositorio.ufmg.br:1843/BUOS-8D7H8VRepositório de PublicaçõesPUBhttps://repositorio.ufmg.br/oaiopendoar:2019-11-14T08:13:25Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)false |
dc.title.pt_BR.fl_str_mv |
Uma biblioteca para desenho de grafos construída sob o paradigma de programação genérica |
title |
Uma biblioteca para desenho de grafos construída sob o paradigma de programação genérica |
spellingShingle |
Uma biblioteca para desenho de grafos construída sob o paradigma de programação genérica Leandro Terra Cunha Melo Engenharia elétrica Engenharia elétrica |
title_short |
Uma biblioteca para desenho de grafos construída sob o paradigma de programação genérica |
title_full |
Uma biblioteca para desenho de grafos construída sob o paradigma de programação genérica |
title_fullStr |
Uma biblioteca para desenho de grafos construída sob o paradigma de programação genérica |
title_full_unstemmed |
Uma biblioteca para desenho de grafos construída sob o paradigma de programação genérica |
title_sort |
Uma biblioteca para desenho de grafos construída sob o paradigma de programação genérica |
author |
Leandro Terra Cunha Melo |
author_facet |
Leandro Terra Cunha Melo |
author_role |
author |
dc.contributor.advisor1.fl_str_mv |
Renato Cardoso Mesquita |
dc.contributor.author.fl_str_mv |
Leandro Terra Cunha Melo |
contributor_str_mv |
Renato Cardoso Mesquita |
dc.subject.por.fl_str_mv |
Engenharia elétrica |
topic |
Engenharia elétrica Engenharia elétrica |
dc.subject.other.pt_BR.fl_str_mv |
Engenharia elétrica |
description |
Grafos são estruturas combinatoriais presentes em inúmeras aplicações. Seus vértices e arestas correspondem, respectivamente, às entidades e às relações de adjacência de determinado domínio. Apesar de um grafo ser um conceito puramente matemático, é fundamental que seu desenho seja inteligível e que transmita o máximo de informações possível. Em alguns casos, a clareza do desenho de um grafo não é apenas uma questão estética, mas um requisito essencial da aplicação. Este trabalho apresenta uma biblioteca para desenho de grafos chamada GTAD (Graph Toolkit for Algorithms and Drawings). Uma visão introdutória sobre a área de desenho de grafos, em conjunto com uma análise detalhada de três algoritmos de desenho ortogonal de grafos, também é apresentada. A GTAD é desenvolvida na linguagem de programação C++, sob o paradigma de programação genérica, que visa abstrair implementações das estruturas de dados sobre as quais elas operam. O mecanismo de templates da linguagem C++, ferramenta fundamental para a programação genérica, garante a resolução de tipos em tempo de compilação. Conseqüentemente, implementações baseadas nesta abordagem são comumente mais eficientes que aquelas que utilizam o paradigma de orientação a objetos em sua forma convencional. Resultados de desempenho de operações básicas de manipulação de grafos mostram que a GTAD é superior a outras bibliotecas, quando comparados os tempos de execução. Implementações de alguns algoritmos também foram submetidas a testes de desempenho e obtiveram resultados positivos. Finalmente, desenhos de grafos de categorias distintas, gerados sob diferentes estratégias, são discutidos e comparados entre si. |
publishDate |
2007 |
dc.date.issued.fl_str_mv |
2007-05-25 |
dc.date.accessioned.fl_str_mv |
2019-08-10T00:11:11Z |
dc.date.available.fl_str_mv |
2019-08-10T00:11:11Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/1843/BUOS-8D7H8V |
url |
http://hdl.handle.net/1843/BUOS-8D7H8V |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Federal de Minas Gerais |
dc.publisher.initials.fl_str_mv |
UFMG |
publisher.none.fl_str_mv |
Universidade Federal de Minas Gerais |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFMG instname:Universidade Federal de Minas Gerais (UFMG) instacron:UFMG |
instname_str |
Universidade Federal de Minas Gerais (UFMG) |
instacron_str |
UFMG |
institution |
UFMG |
reponame_str |
Repositório Institucional da UFMG |
collection |
Repositório Institucional da UFMG |
bitstream.url.fl_str_mv |
https://repositorio.ufmg.br/bitstream/1843/BUOS-8D7H8V/1/leandro_terra_cunha_melo.pdf https://repositorio.ufmg.br/bitstream/1843/BUOS-8D7H8V/2/leandro_terra_cunha_melo.pdf.txt |
bitstream.checksum.fl_str_mv |
bdc2c75b20bf59449ba3300a42a3da6a 08b6041ce782da5923b5513021e8c213 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG) |
repository.mail.fl_str_mv |
|
_version_ |
1803589188051795968 |