O documento apresenta aplicações não convencionais de grafos, incluindo visualizações de dados usando gráficos Sankey, circulares e Treemap. Também discute um caso de uso de grafos para identificar padrões vencedores em jogos do tipo MOBA e menciona diversos algoritmos para grafos.
2. 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. 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. 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. 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. 6
Visualizações diferentes – gráficos circulares
Nós na borda do círculo e arestas “cruzando” o
interior com largura/cor variada
7. 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. 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. 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. 10
Visualizações diferentes - Treemap
TreeMap com Google Charts
Fonte: http://bit.ly/1B6WVBD
DEMO: ExemploTreeMap.html
11. 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
13. 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. 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. 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. 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