Teoria dos Grafos Aula 1 Primeiras Ideias Prof a. Alessandra Martins Coelho março/2013 Motivação Muitas aplicações em computação necessitam considerar conjunto de conexões entre pares de objetos: Existe um caminho para ir de um objeto a outro seguindo as conexões? Qual é a menor distância entre um objeto e outro objeto? Quantos outros objetos podem ser alcançados a partir de um determinado objeto? Existe um tipo abstrato chamado grafo que é usado para modelar tais situações. 1
Primeiras Ideias Primeiras Ideias O que é um grafo? Abstração que permite representar o relacionamento entre pares de elementos Onde: Elementos vértices do grafo (computadores, empresas, cidades, países, pessoas, páginas web, etc...) Relacionamentos arestas do grafo (conexão, distância, amizade, custo, etc...) 2
O que é um grafo? Primeiras Ideias Um grafo é uma estrutura representada como um conjunto de pontos (vértices) ligados por retas (arestas). Dependendo da aplicação, as arestas podem ser direcionadas, e são representadas por setas. Representação Representação de vértices Arestas e Arco Ligações entre vértices 3
Representação Graficamente, aparece representado por uma figura com nós ou vértices, significando os elementos, unidos por um traço denominado aresta configurando a relação imaginada. 1 2 aresta vértice 3 4 Primeiras Ideias Pontes de Königsberg Euler 1736-1º registro de um problema relacionado com o que hoje em dia se chama de teoria dos grafos. 4
Primeiras Ideias Pontes de Königsberg No rio Pregel, que corta a cidade de Königsberg (hoje kaliningrad Rússia) haviam duas ilhas que, na época, eram ligadas entre si por uma ponte. As duas ilhas se ligavam ainda às margens por mais seis pontes. Dizia-se que os habitantes da cidade, nos dias soalheiros de descanso, tentavam efetuar um percurso que os obrigasse a passar por todas as pontes, mas apenas uma vez em cada uma. Como as suas tentativas foram sempre falhadas, muitos deles acreditavam que não era possível encontrar tal percurso. Será que tinham razão? Primeiras Ideias 5
Primeiras Ideias Primeiras Ideias 6
Primeiras Ideias Euler: raciocínio muito simples. Transformar os caminhos em retas e suas interseções em pontos, criando possivelmente o primeiro grafo da história. A Primeiras Ideias B C D Existe um trajeto que passe por todas as pontes uma única vez e retorna ao ponto inicial? A B D Resposta: NÃO. Porque? C 7
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. B A C D A grau 3 B grau 5 C grau 3 D grau 3 Caminho Euleriano Um vértice com um número ímpar de arcos tem de ser o primeiro ou o último da trajetória. Isto é, podem haver, no máximo, dois vértices com um número ímpar de arcos ligados a eles. No caso das pontes de Königsberg, existem quatro vértices com um número ímpar de arcos, logo, não tem solução. 8
Grafo euleriano Possui um ciclo euleriano Todos os vértices são de grau par Grafo semi-euleriano Possui um caminho euleriano Tem dois vértices de grau ímpar Alguns autores usam os termos cadeia euleriana e cadeia euleriana fechada para notar caminho euleriano e ciclo euleriano, respectivamente. Existe algum caminho ou ciclo Euleriano para os gráficos abaixo? Caso exista, como ele é? 9
Primeiras Ideias O problema de Kirchhoff 1847 Foi o primeiro a analisar o comportamento de árvores matemáticas com a investigação de circuitos elétricos. Primeiras Ideias O problema de Cayley 1857 Técnica para determinar o número de diferentes isômeros de hidrocarbonetos. 10
Primeiras Ideias O problema de Guthrie Descobriu por intermédio do irmão, um problema relacionado com a prática da cartografia. Ao desenhar um mapa, não é necessário mais do que quatro cores diferentes para colorir as regiões nele representadas. Associou pontos às regiões e uniu dois pontos por uma linha, quando as regiões tinham uma fronteira em comum. Primeiras Ideias O problema de Guthrie O problema de provar que, para qualquer mapa, é necessário usar o máximo de 4 cores, formulado em meados do século XIX, só conseguiu um resultado significativo em 1976, com o uso de computadores. 11
Primeiras Ideias O problema de Guthrie Para que serviu todo esse trabalho? Para a própria teoria, que se desenvolveu muito. Abertura para muitas aplicações Primeiras Ideias A partir da década de 1950, a pesquisa operacional começou a utilizar intensamente os modelos de grafo, em busca de melhores soluções para problemas de projeto, organização e distribuição. 12
Exemplos Carteiro; Coleta de lixo; Atores e filmes Objeto: atores; Exemplos Relacionamento: atores que atuaram em um mesmo filme; 13
Exemplos Internet Objeto: computadores; Relacionamento: links de fibra ótica. Exemplos Web Objeto: páginas web Relacionamento: link de uma página para outra 14
Exemplos Modelos usando grafos Conectividade na RNP2 O grafo de conectividade da RNP2 tem uma estrutura (topologia) basicamente na forma de estrela. Note que diferentes enlaces de comunicação (arestas) possuem diferentes capacidades Exemplos Viagem entre cidades brasileiras Problema 1: Como saber se duas cidades estão conectadas por estradas? Problema 2: Qual e o menor (melhor) caminho entre duas cidades? 15
Exemplos Mapa do Rio Grande do Norte Exemplos Localização das cidades 16
Exemplos Ligações entre as cidades do Estado Grafo associado Exemplos 17
Exemplos Exemplo: Tráfego Rodoviário/Aéreo Transporte comercial entre cidades. Voo entre as cidades Campo Grande São Paulo Rio de Janeiro Cuiabá Brasília 18
Exemplos A formação de um grafo a partir de um circuito eletrônico Exemplos Sistema de distribuição de jogos Todos contra todos em pontos corridos Jogos eliminatórios 19
Exemplos Dividir os 18 times em 6 grupos de 3, com um vencedor por grupo em sistema de pontos corridos Os 6 times podem ser divididos novamente em dois grupos de três, novamente submetidos a um sistema de pontos corridos Os dois vencedores do grupo disputarão a taça. Exemplos Um possível esquema desse campeonato, sem considerar os nome dos times e sua distribuição pelos grupos 20
Exemplos Grafo versus gráfico Um grafo pode ser representado graficamente de várias maneiras 21
Grafo versus gráfico O que importa são as relações que existem entre os vértices Perguntas Uma aresta pode ligar um vértice a ele mesmo? Dois vértices podem estar ligados por mais de uma aresta? A figura abaixo representa um ou dois grafos? 22
Grafo Matematicamente chama-se grafo a um par G=(V,A), tal que V=V(G)={v 1,...,v n } é o conjunto dos vértices (não vazio e finito) e A=A(G) é o conjunto das arestas ou ligações entre os vértices, isto é, A(G)={a 1,..., a m }, com a k ={v ki,v kj }, para k {1,...,m} Grafo Grafo G = (V, A) V = conjunto de objetos (vértices ou nós) A = conjunto de pares relacionados (arestas) de pares não ordenados: (a,b) == (b,a) 1 Exemplo: G = (V, E) V = {1, 2, 3, 4} A = {(1,2), (1,3), (2,3), (3,4)} 3 2 4 23
Adjacências de Arestas Dois vértices v i e v j são adjacentes quando existe uma aresta que os uni. Exemplo: G = (V, A) V = {1, 2, 3, 4} A = {(1,2), (1,3), (2,3), (3,4)} 2 1 4 e 1 são adjacentes? 3 e 2 são adjacentes? 4 2 e 4 são adjacentes? 3 Grafo Direcionado Um grafo direcionado é um par G=(V,A), tal que V=V(G)={v 1,...,v n } é o conjunto dos vértices (não vazio e finito) e A=A(G) o conjunto de arestas. Uma aresta a k = (v K1, v k2 ) sai do vértice v K1 e entra no vértice v k2. O vértice v k2 é adjacente ao vértice v k1. Podem existir arestas de um vértice para ele mesmo, chamadas de self-loops. 1 2 6 3 4 5 24
Conceitos Cada aresta está associada a um conjunto de um ou dois vértices, chamados nós terminais. Extremidade de uma aresta: vértice da aresta. Laço (Loop): aresta somente com nó terminal. Arestas paralelas: arestas associadas ao mesmo conjunto de vértices. Dois vértices que são conectados por uma aresta são chamados de adjacentes. Um vértice que é nó terminal de um laço é dito ser adjacente a si próprio. Uma aresta é dita ser incidente a cada um de seus nós terminais. Duas arestas incidentes ao mesmo vértice são chamadas de adjacentes. Um vértice que não possui nenhuma aresta incidente é chamado de isolado. Um grafo com nenhum vértice é chamado de vazio Conceitos ** Muitas referências usam E para indicar o conjunto de arestas e k 25
Exemplo Conjunto de vértices: {v 1, v 2, v 3, v 4, v 5, v 6 }. Conjunto de arestas: {a 1, a 2, a 3, a 4, a 5, a 6, a 7 }. Função aresta vértice: Aresta Vértice a1 {v1, v2} 1 3 4 a2 {v1, v3} a3 {v1, v3} a4 {v2, v3} a5 {v5, v6} 2 a6 {v5} a7 {v6} 6 5 Exemplo Arestas incidentes em v1 Vértices adjacentes a v1 Arestas adjacentes a a1 Laços Arestas paralelas Vértices adjacentes entre si Vértice isolado a 3 1 3 4 a 7 6 a 1 a 2 a 4 a 5 2 5 a 6 26
Exemplo Arestas incidentes em v 1 : a 1, a 2, a 3 Vértices adjacentes a v 1 : v 2, v 3 Arestas adjacentes a a 1 : a 2, a 3, a 4 Laços: a 6, a 7 Arestas paralelas: a 2, a 3 Vértices adjacentes entre si: v 5, v 6 a 3 a 7 Vértice isolado: v 4 1 3 4 6 a 1 a 2 a 4 a 5 2 5 a 6 Exercício Considere os dois diagramas abaixo. Rotule os vértices e as arestas de tal forma que os dois diagramas representem o mesmo grafo. 27
Referências Paulo Oswaldo Boaventura Netto; Samuel Jurkiewicz. Grafos: Introdução e Prática. Editora Bluscher. São Paulo. 2009. ISBN: 9788521204732 Paulo Oswaldo Boaventura Netto. Grafos: Teoria, modelos, algoritmos. 5ª ed. Editora Bluscher. São Paulo. 2012. ISBN: 9788521206804 Marco Cesar Goldbarg; Elizabeth Goldbarg. Grafos: Conceitos, algoritmos e aplicações. Rio de Janeiro: Elsevier, 2012. http://redeglobo.globo.com/globociencia/noticia/2011/12/ entenda-o-enigma-das-pontes-de-konigsberg-queinstigou-geometria.html 28