Universidade regional de blumenau



Baixar 1,07 Mb.
Página5/12
Encontro01.07.2018
Tamanho1,07 Mb.
1   2   3   4   5   6   7   8   9   ...   12

Trabalhos correlatos


Nesta seção são descritos três trabalhos que apresentam algumas das funcionalidades explanadas ou relacionadas aos principais objetivos deste trabalho: "Ferramenta para representação gráfica do funcionamento de algoritmos aplicados em grafos" (HACKBART, 2008), "JgraphT" (JGRAPHT TEAM, 2005) e "Ferramenta visual para criação e execução de algoritmos aplicados sobre teoria dos grafos" (BRAUN, 2008).

O primeiro deles descrito em Hackbarth (2008) é uma ferramenta para representação gráfica do funcionamento de algoritmos de grafos, que implementa os algoritmos de busca em largura, profundidade e Dijkstra. Neste trabalho há preocupação com as questões didáticas, pois o objetivo da ferramenta é fazer com que o usuário compreenda rapidamente o funcionamento dos algoritmos disponibilizados. A Figura 6 exibe a interface gráfica da ferramenta.



Fonte: Braun (2009, p. 23).

Figura 6 – Interface gráfica da ferramenta

O segundo trabalho correlato é uma biblioteca escrita na linguagem Java, a JgraphT (JGRAPHT TEAM, 2005). A biblioteca dispõe de alguns algoritmos de grafos, tais como Bellman-Ford, busca em largura e profundidade, Dijkstra, Floyd-Warshall, ordenação topológica e Edmonds-Karp. Também mantém classes para notificar, por meio de eventos, alterações realizadas nos grafos, vértices atingidos em determinado algoritmo, arestas visitadas, entre outros. Além disso, para diversos tipos de grafos há um gerador aleatório (grafos nulos, completos, bipartidos completos, hiper cubo, ciclo, estrela e roda). Outras características são a forte integração com a biblioteca Jgraph, utilizada para representação gráfica dos modelos de grafos criados, e a exportação de grafos no formato Comma-separated Values (CSV), que pode ser aberto no Microsoft Visio. O Quadro 11 mostra um trecho de código feito com o auxílio da JgraphT que evidencia a integração com a biblioteca Jgraph.



public void init( ) {

// create a JGraphT graph

ListenableGraph g=new ListenableDirectedGraph(DefaultEdge.class);
// create a visualization using JGraph, via an adapter

m_jgAdapter = new JGraphModelAdapter( g );


JGraph jgraph = new JGraph( m_jgAdapter );
adjustDisplaySettings( jgraph );

getContentPane( ).add( jgraph );

resize( DEFAULT_SIZE );
// add some sample data (graph manipulated via JGraphT)

g.addVertex( "v1" );

g.addVertex( "v2" );

g.addVertex( "v3" );

g.addVertex( "v4" );
g.addEdge( "v1", "v2" );

g.addEdge( "v2", "v3" );

g.addEdge( "v3", "v1" );

g.addEdge( "v4", "v3" );


// position vertices nicely within JGraph component

positionVertexAt( "v1", 130, 40 );

positionVertexAt( "v2", 60, 200 );

positionVertexAt( "v3", 310, 230 );

positionVertexAt( "v4", 380, 70 );

}


Fonte: JgraphT Team (2005).

Quadro 11 – Exemplo de integração da biblioteca JgraphT e Jgraph



O terceiro trabalho, segundo Braun (2009), é uma aplicação onde é possível desenvolver algoritmos, desenhar um grafo e acompanhar a execução do algoritmo sobre o grafo. Basicamente a aplicação foi dividida em dois módulos, um para a criação e compilação de algoritmos de grafos na linguagem Java versão 5 e outro para a criação de grafos, onde é também permitida a seleção de um algoritmo existente e o acompanhamento de sua execução em um modo visual. Outra funcionalidade é a exportação do grafo no formato graphml, o que permite que outros sistemas possam abrir o mesmo grafo. Um exemplo da interface gráfica da ferramenta pode ser visto na Figura 7.

Fonte: Braun (2009, p. 62).

Figura 7 – Interface gráfica da ferramenta

O Quadro 12 apresenta uma comparação entre os três trabalhos correlatos.






JgraphT (2005)

HACKBART (2008)

BRAUN (2009)

Permite criar grafos

Sim

Sim

Sim

Permite estender vértices, arestas e grafos

Sim

Não

Não

Permite gerar grafos

Sim

Não

Não

Permite persistir grafos

Sim

Não

Sim

Permite verificar propriedades

Sim

Não

Sim

Disponibiliza algoritmos

Sim

Sim

Não

Permite criar novos algoritmos

Sim

Não

Sim

Permite acompanhar execução de algoritmos

Sim

Sim

Sim

Quadro 12 – Comparação entre trabalhos correlatos


1   2   3   4   5   6   7   8   9   ...   12


©livred.info 2017
enviar mensagem

    Página principal