Prof. Dr. Julio Arakaki www.pucsp.br/~jarakaki (jarakaki@pucsp.br) Depto. 1 Problema Abstração Modelo Solução Problema Real (Muitos) Abstração (Análise do problema) Modelagem (Ferramenta de abstração) Aplicação de algoritmos Solução no domínio dos 2 1
O que é um Grafo? (formal) Um grafo é representado como um conjunto de pontos (vértices) ligados por retas (as arestas). Dependendo da aplicação, as arestas podem ser direcionadas, e são representadas por setas". - Wikipédia - 3 O que é um Grafo? (mais informal) Abstração que permite representar o relacionamento entre pares de elementos Onde: Elementos vértices do grafo (computadores, empresas, cidades, paises, pessoas, páginas web, etc...) Relacionamentos arestas do grafo (conexão, distância, amizade, custo, etc...) 4 2
Exemplo de de Grafo: Tráfego Rodoviário/Aéreo Transporte comercial entre cidades São Paulo Vôo entre as cidades Campo Grande Rio de Janeiro Brasília Cuiabá 5 Exemplo de de Grafo: Executando tarefas Tarefa Relacionamento entre tarefas: B depende de E - Todas as tarefas podem ser executadas? -Qual a ordem de execução? (Semelhante a um Sistema de N módulos com dependências entre si diversas bibliotecas. Qual a seqüência/ordem de compilação ou execução dos módulos?) 6 3
Exemplo de de Grafo: PERT/CPM Program Evaluation and Review Technique (PERT) e Critical Path Method (CPM). Para planejamento e controle de projetos (1950) 7 Exemplo de de Grafo: Busca em aplicativos P2P O problema: - os usuários rodam o aplicativo em suas máquinas - aplicativos se conectam formando uma rede - usuários compartilham arquivos Pergunta? Como encontrar os arquivos? EXERCÍCIO: Criar a abstração do problema para um modelo em grafo. Ou seja, criar um modelo indicando o que são os vértices e as arestas para o problema acima? 8 4
cslab1a cslab1b Exemplo de de Grafo: Busca em aplicativos P2P A1 A2 A3 A4 U1 A3 A4 U2 U3 A5 cs.brown.edu math.brown.edu brown.edu att.net qwest.net U4 A1 A3 cox.net John Paul David 9 Exemplo de de Grafo: Outros Sejam os seguintes domínios: - Filmes e atores - Relacionamentos nos sites de relacionamentos (Facebook, LinkedIn, Orkut,...) - Rede de distribuição de energia Robustez num sistema de transmissão de energia (Torres e Linhas de Transmissão) - Dê outros exemplos... (Circuito Impresso, Circuito Integrado, ) EXERCÍCIO: Criar os modelos em grafos, indicando o que é vértice e aresta para os exemplos acima. Quais são as perguntas que podem ser resolvidas com a modelagem baseada em grafos? 10 5
Início da dateoria de de grafos: as as 7 pontes de de Königsberg A B D C Cidade de Königsberg (território da Prússia até 1945, atual Kaliningrado, na Rússia), que é cortada pelo Rio Prególia, onde há duas grandes ilhas que, juntas, formam um complexo que na época continha sete pontes. - Wikipédia - 11 As 7 pontes de de Königsberg Os habitantes da cidade, tentavam fazer um percurso que os obrigasse a passar por todas as pontes, mas apenas uma única vez. As tentativas nunca deram certo, por isso, muitos acreditavam que não era possível encontrar tal percurso. Será que tinham razão? - Resolvido por Euler em 1736. 12 6
As 7 pontes de de Königsberg Abstração via grafos: A Vértices áreas de terra Arestas pontes B D A C D B Existe o trajeto de percorrer todas as pontes uma única vez e retornar ao ponto inicial? C Resposta: NÃO. Porque? 13 Ciclo Euleriano Percurso passando por todas as arestas uma única vez e retornando ao ponto inicial: - este percurso (ciclo) só existe se o grau dos vértices for par. Onde, o grau de um vértice é o número de arestas incidentes. A B D Para o exemplo: A grau 3 B grau 5 C grau 3 D grau 3 Ou seja, não existe Ciclo Euleriano neste exemplo. C 14 7
Ciclo Euleriano Teorema: Um grafo G conexo, possui ciclo euleriano se e somente se todo vértice de G possuir grau par. Um grafo é conexo se existir caminho entre quaisquer dois vértices. 15 8