Como gerar grafos no formato .dot usando JGraphT

grafoA linguagem DOT é uma linguagem para descrição de grafos interpretada pelo GraphViz e também pelo Gephi para visualização de grafos. A biblioteca JGraphT dispõe de classes para exportação de grafos para este formato.

O código abaixo em Java, cria um grafo aleatório e exporta para um arquivo .dot. A figura ao lado mostra o grafo com dez vértices gerado a partir do código de exemplo, como o programa gera grafos aleatórios, outras execuções podem resultar em grafos diferentes.

Continuar lendo

Como instalar o JGraphT no Eclipse

JGraphT é uma biblioteca Java gratuita para trabalhar com algoritmos da teoria dos grafos. A instalação no eclipse segue em cinco passos.

  1. Baixe o JGraphT e descompacte;
  2. Crie um projeto java no Eclipse normalmente;
  3. Windows > Preferences > Java > Build Path > User Libraries -> New ->”Dê um nome, Jgraph, por exemplo” -> Add External JARs (jgraph-5.13.0.0.jar e os demais na pasta lib)
  4. Project > Properties > Java Build Path -> Na aba ‘Library‘ -> Add Library -> User Library -> Next  -> Escolha ‘Jgraph’ -> Finish
  5. Agora é possível importar o Jgrapht no código.
    import org.jgrapht.*;

Algoritmos em Português com Latex

Existem vários ambientes no \LaTeX que alg2permitem escrever pseudo código sem muitas dificuldades, um que eu particularmente achei muito interessante e prático é o ambiente algorithm2e.

Além de deixar algoritmos muito bonitos ele tem vários idiomas como opção, inclusive o português.  Para instruções de uso veja aqui a documentação.

Infelizmente, quando fui usar pela primeira vez encontrei algumas inconsistências que dependendo da urgência do trabalho pode ser um tanto inconveniente. E eu vou mostrar aqui como resolver.

Continuar lendo

Usando algoritmos para prever surtos

Nos últimos dias tenho lido uma série de artigos científicos que propõem algoritmos e heurísticas que estudam o poder de propagação de informações por uma rede social. E o que tem me chamado bastante atenção é que cada vez mais métodos que formalizam padrões de comportamento vão surgindo, de modo que se possa se aprimorar e melhorar o poder de difusão de informação. Isso tem bastante motivação no marketing viral, por exemplo.

Continuar lendo