Aplicações não convencionais de grafos

Post on 15-Jul-2015

859 views 2 download

Transcript of Aplicações não convencionais de grafos

1

Aplicações não convencionais

de grafos

Ms. Mauro C. Pichiliani (mauro@pichiliani.com.br)

@pichiliani

2

Quem sou eu

• Mestre e doutorando em computação pelo ITA

• Escritor da SQL Magazine, Fórum Access, Java

Magazine, SQLServerCentral.com e outras

• Colaborador do iMasters há 13 anos

• Autor do livro “Conversando sobre banco de dados”

• Co-produtor do podcast DatabaseCast

• Consultor independente e autor de cursos on-line

3

Visualizações diferentes - Sankey

Gráficos Sankey Exemplo: GPs, pilotos, equipes do campeonato de F1 de 2012.

Fonte: http://bit.ly/1vBulbv

Mostra associação de vitórias e pontos.

Feito em Phyton + d3 + R

4

Visualizações diferentes - Sankey

Exemplo: mesmas imagens enviadas a múltiplos subreddits (reddit.com). Fonte: http://bit.ly/1zOyV17

Mostra fluxo de imagens. Feito em Phyton + d3 + R

5

Visualizações diferentes - Sankey

Sankey com Google Charts

Fonte: http://bit.ly/1BU1qSm

DEMO: ExemploSankeyGraphs.html

Exemplo em Neo4J? http://bit.ly/1zOFssC

6

Visualizações diferentes – gráficos circulares

Nós na borda do círculo e arestas “cruzando” o interior com largura/cor variada

7

Visualizações diferentes – gráficos circulares

Exemplo: visualização de dados de navegação de páginas com dados do Google Analytics

Tecnologia: Google Java Data API (Google Analytics) + Neo4J (Cypher) + Circos

Fonte: http://bit.ly/1BKUg1j e https://github.com/datablend/neo4j-google-analytics

I3 (azul) são referências externas e

representam maior parte do tráfego

Mesmo gráfico, com círculo externo

mais “limpo”

8

Visualizações diferentes – gráficos circulares

Exemplo: visualização de diálogos de personagem em peça de teatro (dramatic network graph). Projeto de disciplina da faculdade de Nebraska-Omaha

Tecnologia: Excel + Cytoscape (http://www.cytoscape.org/)

Fonte: http://bit.ly/1A0mSPi

Analise de diálogos para ver quem fala mais com quem

9

Visualizações diferentes – Treemap

Retângulos divididos por área e interativos (hierarquia)

Muitos exemplos e história: http://www.cs.umd.edu/hcil/treemap-history/

Medalhas na olimpíada 2002

Área por país e tipo de medalha

Tecnologia: R +

Fonte: http://bit.ly/1BL1IcC

Métricas do Código fonte do Neo4J

Área por LOC

Tecnologia: JArchitect

Fonte:http://www.jarchitect.com/Doc_

Treemap

10

Visualizações diferentes - Treemap

TreeMap com Google Charts

Fonte: http://bit.ly/1B6WVBD

DEMO: ExemploTreeMap.html

11

Case: Grafos e MOBA

Case: identificação de padrões de combate vencedores em jogo tipo MOBA

Referência: Pu Yang, Brent Harrison, and David L. Roberts. Identifying Patterns in Combat

that are Predictive of Success in MOBA Games. In Proceedings of the Foundations of Digital Games 2014 Conference (FDG 14). 2014.

Dowload [PDF] http://www.fdg2014.org/papers/fdg2014_paper_36.pdf

12

Case: Grafos e MOBA

Metodologia:

13

Case: Grafos e MOBA

Nós são jogadores. Nome do nó indica time (T1 e T2) e papel (Carry, Ganker, Initiator, Disabler, Tank). Nó adicional: morte

Aresta direcionada indica interação (causou dano ou curou)

Partidas separadas em intervalos de 9 minutos (4 fases)

Feature selection a partir de métricas de cada grafo. Exemplos:

Centralidade Eigenvector do T2 Disabler na fase de enhancing

Out-degree do Carry do T2 na fase de develpoing

14

Case: Grafos e MOBA

Atributo de classificação: vitória

Uso de árvore de decisão para geração do modelo

Interpretação de regras para padrões e táticas de combate para cada papel. Apresentação de regras como grafos:

15

Algoritmos, algoritmos everywhere

Muitos algoritmos para grafos com diferentes resultados!

Cabe a você interpretar o significado. Alguns:

Connected components, Clique, topological sorting, minimum, spanning tree, shortest path, transitive closure and reduction, matching, Eurelian Cycle, edge and vertex conectivity, network flow, beautification…

Algoritmos com figuras:

http://bit.ly/1BaFLC6 e http://bit.ly/1wXYo8h

Onde encontro os algoritmos?

Livros, muitos livros

Dicionário de algoritmos: http://xlinux.nist.gov/dads//

Engines de busca de algoritmos:

http://code.openhub.net/

https://searchcode.com/

http://www.codase.com/

https://code.google.com/p/chromium/codesearch

http://www.krugle.org/

16

Conclusão

Grafos podem ser utilizados em muitos cenários

Comece com exemplos básicos e depois fuja deles

Procure outras formas de visualização além de linhas e bolinhas

Muitas oportunidades em diferentes áreas, principalmente analytics

Big data é a bola da vez. Aproveite!

Saiba fazer a ponte entre um algoritmo, seu resultado e o domínio do problema

Aprofunde-se nos detalhes técnicos somente depois de saber o problema, resultados esperados e análise

17

Perguntas?

Ms. Mauro C. Pichiliani (mauro@pichiliani.com.br)

@pichiliani