GRAFOS: UMA INTRODUÇÃO Vilmar Trevisan -Instituto de Matemática - UFRGS Junho de 2006
Grafos: uma introdução Informalmente, um grafo é um conjunto de pontos no plano ligados entre por flechas ou por segmentos de reta. Esse tipo de estrutura modela muitos problemas importante em muitas áreas cientificas incluindo química, física, engenharia, economia, matemática, computação. Antes de definirmos formalmente o conceito de grafos, veremos alguns exemplos de problemas cuja modelagem utiliza de grafos.
Ex 1- consideremos a seguinte relação R em S ={1,2,..,10} xry x divide y Temos Podemos representar R de forma diagramática R={(1,4),(1,2),(1,10),(2,4),(2,6),(2,8),(2,10),(3,6),(3,9),(4,8),(5,10)} 10 2 4 8 6 3 9 5 1 7 Aqui uma flecha de x->y indica x R y
Ex 2 Uma empresa adquiriu 6 computadores e deseja coloca-los em uma rede integrada.claramente não é necessário que cada computador deve estar ligado a todos os outros. Um exemplo de configuração aceitável é a seguinte : F E A B C D Aqui cada segmento de reta indica conexão entre os computadores
Ex 3 As seguintes cidades têm rota entre elas, cada rota associada a um peso (Tempo, custo, lucro etc.) 4 Passo Fundo 3 2 Caxias Uruguaiana 3 Sta. Maria 4 Poa 2 3 3 Bage 4 Pelotas
EX 4 Há dois canibais e dois vegetarianos na margem de um rio. Entre eles um bote com capacidade p/ 2 pessoas. O objetivo é levar as 4 pessoas p/ a outra margem. Se houver mais canibais do que vegetarianos... Como resolver isto? Usamos grafos para resolver o problema - os vértices representam as possibilidades de configuração: vvccb/ vcb/vc vvcb/c c/bvvc ccb/vv /Bvvcc vv/bcc vcb/vc vvc/bc cc/bvv c=canibal v=vegetariano B=bote /=rio
Formalmente um grafo G é um par (V,A), onde V é um conjunto não-vazio cujos elementos são chamados vértices (ou nós) e A é um conjunto de subconjuntos de 2 elementos de V, cujos elementos são chamadas de arestas ou arcos. Ex G = (V,A) onde V = {v1,v2,v3} e A = { {v1,v2},{v2,v3}} V1 V2 V3 Um dígrafo é um par (V,A) onde V é como na definição de grafo e A é um subconjunto de pares ordenados de V.
Dizemos que dois vértices v1 e v2 são adjacentes se {v 2,v 2 } é aresta do grafo. Dizemos que a aresta ( v 1, v 2 ) é incidente a v 2 e a v 1. Um laço é uma aresta incidente ao mesmo vértice. Um vértice que não tem arestas incidentes é dito isolado. Duas arestas são ditas paralelas se são incidentes aos mesmos vértices v 1 v 4 v 5 v 2 v 1 v 2 v 4 v 3 v 3 v 5 Note que os dois diagramas representam o mesmo grafo. Eles são ditos isomorfos.
u Um grafo é dito simples se não tem laços nem arestas paralelas. Ex: desenhar todos os grafos de 4 vértices{u,v,y,x} e duas arestas sendo que uma é {u,v} v x y Como há 4 vértices. Há C(4,2) = 6 diferentes arestas. como uma aresta é (u,v) qualquer outra pode ser escolhida
Um grafo completo de n vértices de notado por Kn é um grafo simples em que cada um dos n vértices é adjacente a qq outro. Ex K2 V1 V2 K3 V1 V2 V3 V1 V2 K4 V3 V4 Uma outra classe de grafos importantes tem arestas que são incidentes em vértices que estão em conjuntos disjuntos. Chamamos de grafo bipartido. V1 V4 V1 W1 V2 V5 V2 W2 V3 V3 W2 O último é um exemplo de grafo bipartido completo
Definição: Seja G = (v,a) um grafo. O grau de v é o numero de arestas incidentes em v. Um laço conta 2 vezes. O grau total de G é a soma dos graus de todas todos os vértices de G. grau(v1) = 5 V1 grau(v2) = 1 V2 V3 V4 Teorema 1: Se G = ( V,A) é um grafo, então o grau total de G é duas vezes o numero de arestas, isto é grau(g)= 2 A Prova: cada aresta contribui 2 vezes para o grau total de G V1 V2
Corolário 1: o grau total de G é par. Ex: desenhe um grafo com as seguintes especificações a) 4 vértices de graus 1 1 2 e 3 Solução: Não existe, pois o grau total deve ser par b) 4 vértice de graus 1 1 3 3 a b a b c d c d
C) 4 vértices de graus 1, 1, 3 e 3 mas simples Solução: Supõe que existe G com essas caraterísticas : chame a e b os vértices de grau 1 e c e d os de grau 3. Como não há laços ou arestas paralelas devem estar presentes as arestas ( a,c), e (b,c) e (d, a b a b c d c d Pela mesma razão as arestas (b,d) e (a,d). Mas então grau(a) = grau(b) = 2
Proposição 1: em um grafo, o numero de vértices de grau ímpar é par. Prova : grau(g) = 2 A = # {v : grau(v) par} + # {v : grau(v) é impar }. Como o lado esquerdo da igualdade é par e primeiro termo do lado direito também é, então o segundo termo tem que ser par Ex Não existe grafo com 10 vértices de graus 1 1 2 2 2 3 4 4 4 e 6 pois 3 vértices têm grau ímpar
Caminhos e Circuitos A cidade de Könisberg em 1736 pertencia a Prussia ( hoje Kaliningrado na Rússia) era cortado pelo Rio Pregel. Havia dois braços do rio e uma ilha conforme a figura. Havia, ainda, sete pontes conectando os várias pedaços de terra.. A // C // // // B // // // D
A questão é : será possível para uma pessoa dar uma volta pela cidade começando e terminando no mesmo ponto e atravessando cada uma das sete pontes exatamente uma vez? Euler resolveu esse problema transformando em um grafo. Cada pedaço de terra é um vertice e cada ponto é uma aresta. A C B É possivel traçar esse grafo começando e terminando no mesmo ponto sem levantar o lápis do papel. Pense Nisso! D Como viajar em um grafo?
Definição: Seja G um grafo e sejam v e w dois vértices de G. Um passeio de v para w é uma seqüência de vértices e arestas adjacentes. Um caminho de v a w é um passeio que não contém arestas repetidas. Um caminho simples de v a w é um caminho sem vértices repetidos Um passeio fechado é um passeio que começa e termina no mesmo vértice. Um circuito é um passeio fechado que não contém arestas repetidas. Um circuito simples é um circuito que só tem o primeiro e último vértices repetidos.
Em suma, temos o seguinte Repetição de arestas repetição de vertices começa e termina no mesmo vértice passeio permitido permitido permitido caminho não permitido permitido caminho simples não não não passeio fechado permitido permitido sim circuito não permitido sim circuito simples não primeiro e ultimo sim
Ex V1 E1 V2 E2 V3 E4 E3 E1 E2 E4E3 é o passeio V1E1 V2 E2 V3 E4V3 E3V2.
Ex E2 V1 V2 E1 A) V1E1V2E3V3E4V3E5V4. E4 V3 E3 E7 E8 E6 É um caminho de V1, e V4. B) E1, E3,E5,E10 é um passeio E5 E9 E6 V4 E10 V5 C) V2 V3 V4 V5 V3 V6 V2 é um caminho (não repete arestas ) fechado que não repete arestas. Portanto é um circuito
Conectividade G um grafo. Dois vértices v e w são ditos conectados se existe um passeio de v e w. G é um grafo conexo se quaisquer dois vértices v e w são conectados. Exemplos V2 V3 V2 V1 V4 É conexo V5 É desconexo V6 V1 V3
Um grafo H é uma componente conexo de G se 1- H é um subgrafo de G 2- H é conexo 3-H é maximal, isto é Se H K B K conexo então K = G É componente conexo do grafo abaixo V1 V2 V2 V3 V1 V4 V5 É desconexo V6
Circuito Euleriano Seja G um grafo. Um circuito de Euler de G é um circuito que contém todos os vértices e todas as arestas de G. Isto é, um circuito Euleriano de G é uma seqüência de vértices adjacentes que começa e termina no mesmo vértice, usando cada vértice pelo menos uma vez e usa cada aresta exatamente uma vez. Teorema 2 - se um grafo tem um circuito euleriano então cada vértice do grafo tem grau par. Prova- seja v um vértice de um circuito euleriano de G. Se uma aresta chega em v, então deve haver outra que sai. Portanto, o grau de v tem que ser par. Assim, o problema das pontes de Könisberg não tem solução pois há vértices de grau ímpar. De fato, Euler fez muito mais do que isso.
A recíproca do teorema é verdadeiro? Se todo vértice de G tem grau par será que existe sem caminho Euleriano? V2 V3 Falso E1 E2 E3 E4 V1 Pois todo vértice tem grau par mas não tem circuito euleriano já que nem é conexo V2 Teorema 3- se todo vértice de um grafo conexo tem grau par, então o grafo tem circuito euleriano.
Prova: Vamos construir um circuito Euleriano, considere o seguinte procedimento. Seja G um grafo com todos os vértices de grau par. Passo1:escolha qq vértice v de G para começar, isto é possível pois G não é vazio. Passo 2: Comece a percorrer o grafo, sem repetir arestas, até não ser possível progredir. Como todos os vértices têm grau par, esse vértice tem que ser o vértice v. Temos, portanto um circuito C. Passo 3: Verifique se C contém todas os vértices e todas as arestas de G. Se sim, então C é um circuito Euleriano e termina. Se não: Passo 3 a): Escolha um vértice u que esteja em C incidente a uma aresta e que esteja fora de C.
Esse vértice existe pois 1) C não tem todas as arestas de G e 2) G é conexo, portanto, existe um caminho entre um vértice qq de C e a extremidade e que não está em C. Passo 3b: Comece a percorrer o grafo, a partir de u, sem repetir arestas e nem utilizar arestas de C. Como todos os vértices têm grau par, isso só é possível se voltar ao vértice u. Temos um novo circuito C. Passo 3c: Combina os dois circuitos em apenas 1: Faz C <=== C + C Passo 3d: Volta ao passo 3. Como G é finito, a repetição do passo 3 faz com que, no final, seja produzido um circuito Euleriano ( contendo todos os vértices e todos as arestas, sem repeti-las.
Ex inicial v v u C
v u C C Novo u Novo C
Esse é o resultado final Exercício: Achar, se existir, um caminho euleriano para o grafo i a d Obs.: observar que há f muito c. e. h j b c e g
Temos, portanto a seguinte caracterização de grafos que têm circuito euleriano Teorema 4: um grafo G tem circuito euleriano se somente se G é conexo e todos os seus vértices têm grau par. Definição: Sejam u e v dois vértices de um grafo G. Um caminho euleriano de u a v é uma seqüência de arestas e arcos adjacentes que começa em u e termina em v, passando por todos os vértices de G pelo menos uma vez e por todas as arestas uma única vez. Corolário 2: se G um grafo e sejam u e v dois vértices de G. Existe um caminho euleriano de u a v de e somente de G é conexo, u e v tem grau ímpar e todos os demais vértices têm grau par. Prova : Exercício ( o procedimento é o mesmo).
Exemplo: considere a planta baixa que é uma casa para ser vista pelo publico. É possível acertar um caminho que comece na sala A e termine na sala B e que passe por todas as portas interiores exatamente um vez?
Considere o grafo abaixo que representa a planta Note que como A e B têm gruas impar e os desses grau par. Logo têm um caminho euleriano. Por exemplo A G H F E I K J D C B