aplicações não convencionais de grafos

17
1 Aplicações não convencionais de grafos Ms. Mauro C. Pichiliani ([email protected]) @pichiliani

Upload: pichiliani

Post on 15-Jul-2015

859 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Aplicações não convencionais de grafos

1

Aplicações não convencionais

de grafos

Ms. Mauro C. Pichiliani ([email protected])

@pichiliani

Page 2: Aplicações não convencionais de grafos

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

Page 3: Aplicações não convencionais de grafos

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

Page 4: Aplicações não convencionais de grafos

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

Page 5: Aplicações não convencionais de grafos

5

Visualizações diferentes - Sankey

Sankey com Google Charts

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

DEMO: ExemploSankeyGraphs.html

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

Page 6: Aplicações não convencionais de grafos

6

Visualizações diferentes – gráficos circulares

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

Page 7: Aplicações não convencionais de grafos

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”

Page 8: Aplicações não convencionais de grafos

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

Page 9: Aplicações não convencionais de grafos

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

Page 10: Aplicações não convencionais de grafos

10

Visualizações diferentes - Treemap

TreeMap com Google Charts

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

DEMO: ExemploTreeMap.html

Page 11: Aplicações não convencionais de grafos

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

Page 12: Aplicações não convencionais de grafos

12

Case: Grafos e MOBA

Metodologia:

Page 13: Aplicações não convencionais de grafos

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

Page 14: Aplicações não convencionais de grafos

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:

Page 15: Aplicações não convencionais de 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/

Page 16: Aplicações não convencionais de grafos

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

Page 17: Aplicações não convencionais de grafos

17

Perguntas?

Ms. Mauro C. Pichiliani ([email protected])

@pichiliani