• Nenhum resultado encontrado

Caminhos e Circuitos Hamiltonianos

Pensamento Relacional

Teorema 2.4 Seja X um conjunto finito Suponha que o

2.6 Teoria dos Grafos

2.6.5 Caminhos e Circuitos Hamiltonianos

Os teoremas de Euler apenas nos dizem sobre tudo que há para saber a respeito da existência de caminhos e circuitos que visitam cada aresta de um grafo exatamente uma vez. Então é natural fazermos as mesmas perguntas sobre caminhos e circuitos que visitam cada vértice de um grafo exatamente uma vez. Essas construções foram denominadas em homenagem ao matemático irlandês do século dezenove William Rowan Hamilton.

Definição 2.15 Um caminho hamiltoniano em um grafo é um caminho

Vo j 6i , V \ , Ê2, • • • , 0-n 5 V n

tal que v0, vu ..., vn é uma lista sem repetição de todos os vértices em G. Um circuito hamiltoniano é um circuito

Vq, ei, vl} ê2, ..., e„, vn, en+l, v0, em que v0, el} vu e2, .... en,

vn é um caminho hamiltoniano.

Embora seja fácil dizer se um grafo dado tem um circuito euleriano, na verdade é bem difícil, em geral, determinar se um grafo tem um circuito hamiltoniano. Para grafos sem muitos vértices, geralmente não é difícil encontrar um circuito hamiltoniano se algum existir. No entanto, para grafos que não têm circuitos hamilto­ nianos, muitas vezes é difícil provar que esse é o caso. Os dois próximos exemplos ilustram esse fenômeno. Exem plo 2.57 Encontre um circuito de Hamilton no grafo da Figura 2.25.

Solução: Um possível circuito de Hamilton pode ser

encontrado da seguinte forma. (Tente fazer isso com um pedaço de papel vegetal.) Começando em um vértice

a, percorra em sentido anti-horário em volta do anel

externo. Note que você não pode voltar para a até ter visitado todos os vértices, então você precisará mudar de direção quando chegar em e. Vá de e para /, e então gire no sentido horário a partir daí, lembrando de mudar de direção novamente em i a fim de deixar espaço para poder voltar para a. Depois fica fácil ver como terminar. A sequência dos vértices

a, 6, c, d, e, /, o, n, m, l, k, j, i, r, s, t, p, q, g, h, a forma um circuito hamiltoniano. 0 Exem plo 2.58 Demonstre que o grafo da Figura 2.26 não tem um circuito hamiltoniano.

c b

F ig u ra 2.25 Você consegue achar um circuito hamiltoniano neste grafo? Veja o Exemplo 2.57.

k

F ig u ra 2.26 Por que não existe um circuito de bamiltoniano neste grafo? Veja o Exemplo 2.58.

D em onstração Note que esse grafo tem cinco vértices de grau 2: /, h, j, l, n. Qualquer circuito hamiltoniano deve passar por esses vértices, e portanto deve incluir as arestas que tocam esses vértices. Mas isso torna impos­ sível deixarmos o anel externo: não podemos percorrer outras arestas que não aquelas forçadas pelos vértices /,

h, j, /, n porque isso envolveria incluir três arestas que

tocam um mesmo vértice, o que não pode acontecer em um circuito hamiltoniano: se um único vértice toca três arestas em uni caminho, o vértice deve ocorrer duas

vezes nesse caminho. □

Os dois argumentos prévios são ad hoc\ eles não se generalizam bem para outros exemplos da mesma forma que os teoremas de Euler. Há teoremas de exis­ tência sobre os circuitos hamiltonianos, mas eles são muito difíceis de ser demonstrados, e eles não dão uma caracterização completa de grafos contendo circuitos hamiltonianos. Na verdade, o problema de achar um circuito hamiltoniano em um grafo pertence a uma classe famosa de problemas chamada NP-completos. Grosso modo, esses são problemas difíceis de serem resolvidos, mas cujas soluções são fáceis de ser verificadas.5 Pode não ser claro se um grafo dado tem um circuito hamil­ toniano, mas é muito fácil verificar a resposta de um aluno que afirma ter encontrado um.

Os circuitos eulerianos e hamiltonianos levantam questões matemáticas interessantes, mas eles também têm muitas aplicações importantes. Por exemplo, considere um modelo de grafo para uma rede de estradas (arestas) conectando vários pontos de inte­ resse (vértices). Um gari poderia se interessar por um circuito de Euler, porque este descreveria uma maneira de percorrer todas as ruas sem que ele precisasse refazer nenhum passo. Por outro lado, um vendedor que queira uma rota eficiente passando por cada ponto de interesse poderia achar mais interessante um circuito hamilto­ niano.

2.6.6 Árvores

Na Seção 2.1, vimos como organizar dados usando uma árvore de busca binária. Em capítulos futuros, veremos vários outros usos para árvores de diversos tipos. Vamos concluir nossa discussão sobre a teoria matemática dos grafos com alguns teoremas sobre árvores em geral. D efinição 2.16 Uma árvore é um grafo T com um vértice especificado r, chamado a raiz, com a propriedade de que, para todo vértice v em T diferente de r, existe um único caminho simples de r até v.

Essa definição se aplica a grafos orientados ou não. Em geral, desenhamos árvores como grafos não orien­ tados, mas frequentemente desenhamos árvores com a raiz no topo e uma orientação apontando para baixo implícita em cada aresta. O próximo teorema dá uma caracterização alternativa de árvore.

Teorem a 2.9 Seja G um grafo não orientado, e seja

r £ G. Então G é uma árvore com raiz r se e somente se G é conexo e não tem circuitos simples.

D em onstração (=>) Suponha que G é um grafo não orientado com raiz r. Sejam a, b dois vértices em G. Pela Definição 2.16, existem caminhos de r até a e de r até

b. Portanto, existe um caminho de a até b via r. Isso

mostra que G é conexo. Suponha, ao contrário, que

vo,ei,vi,e2, ■ ■. ,Ufc_i,efc,uo

é um circuito simples em G. Renomeando o circuito, se necessário, podemos supor que v0 ¥= r. Se r = para algum i, então

^ 0 ? ^ 15 • ■ • ® D ® i+ 1 j • • • i ^ k i Vq

são dois caminhos simples diferentes de v0 até r, o que contradiz a definição de árvore. Por outro lado, se r ^

Vj para todo i, então existe um caminho simples de r até

■yn, e combinando esse caminho com a sequência

e i,v i,e 2 ,... ,Vk-i,ek,vo

obtemos um outro caminho simples de r até v0, uma contradição.

(<=) Agora suponha que G é um grafo conexo não orientado sem circuitos simples. Seja v r um vértice

em G. Como G é conexo, existe um caminho de r até v. Se esse caminho não repete nenhum vértice, então ele não repete nenhuma aresta e portanto é simples. Se esse caminho tem a forma

para algum vértice a, então podemos substituí-lo por um caminho mais curto

r, ei , . . . ) Cí) (if 6k+h • • • 5 v

que ainda vai de r até v. Além disso, podemos repetir esse procedimento de encurtamento até que não haja vértices repetidos. Assim, existe um caminho simples de r até v. Para mostrar que G é uma árvore com raiz r, temos que mostrar que esse caminho é único. Mas se existissem dois caminhos simples distintos

r , e i , u i , . .. ,un_ i , e n ,v e r , d i , u ' i , ... , dm, v

de r até v, poderíamos combiná-los para formar um circuito

r, e i , u i , . . . , un_i, en, v, dm, rrvn—i, • • • i ^ i i di ^ r em G. Embora esse circuito possa não ser simples, ele deve conter um circuito simples, já que pelo menos um d, difere de todos os e;-. (Esse detalhe é deixado como Exercício 19.) Isso contradiz a hipótese de que G não

tem circuitos simples. □

Uma importante consequência do Teorema 2.9 é que podemos escolher qualquer vértice para ser a raiz de uma árvore não orientada. A Figura 2.27 mostra a mesma árvore não orientada desenhada de três maneiras diferentes: (a) sem raiz; (b) com raiz rx\ (c) com raiz r2. Imagine que o grafo é feito de miçangas e corda. No grafo (a), segure a miçanga que você quer que seja a raiz (rx ou r2) e deixe as outras miçangas penduradas para obter os grafos (b) ou (c). Esse processo é intuitivamente óbvio, mas a demonstração anterior fornece uma justificativa matemática sólida: se um grafo G é conexo e não tem circuitos simples, ele é uma árvore com vértice r, para qualquer vértice r em G. E qualquer árvore não orien­ tada é um grafo conexo sem circuitos simples, portanto qualquer vértice pode ser a raiz. Um corolário segue dessa observação.

Corolário 2.1 Em uma árvore não orientada, existe um único caminho simples entre quaisquer dois vértices. D em onstração Sejam a, b dois vértices em uma árvore não orientada T. Então T pode ser vista como uma árvore com raiz a, e então pela Definição 2.16 existe um único caminho simples de a até b.

A caracterização de árvores na Definição 2.16 implica um bocado sobre a estrutura desses grafos. Seja v um vértice não raiz de uma árvore T. Como existe um único caminho simples da raiz r de T até v, existe um número natural bem definido d(v) igual ao número de arestas desse caminho. Chame o número d(v) de profundidade do vértice

v. Por convenção, d(r) = 0. A altura de uma árvore T é o

maior valor possível de d{v) sobre todos os vértices v de

T. Por exemplo, a árvore da Figura 2.27(c) tem altura 4,

e d{rx) = 2 nessa árvore. Obviamente, a função profun­ didade e a altura de uma árvore dependem da escolha da raiz; a árvore da Figura 2.27(b) tem altura 3.

Outra implicação da definição é que podemos trans­ formar uma árvore não orientada em uma árvore de uma maneira bem definida, escolhendo uma direção em cada aresta se afastando da raiz. Mais precisamente, comece na raiz e oriente cada aresta que a toca de modo a apontar para fora da raiz. Essas arestas terminarão em vértices de profundidade 1, e todos os vértices de profun­ didade 1 terão agora arestas orientadas apontando para eles. Repita esse processo, formando arestas orientadas para todos os vértices de profundidade 2, depois 3 etc., até que todos os vértices (e, portanto, todas as arestas) tenham sido cobertos. Desse modo, toda aresta apontará de um vértice com profundidade i para um vértice de profundidade i + 1. Essa construção explica por que não é realmente necessário desenhar as direções nas arestas das árvores, quando designamos uma raiz. Isso também nos ajuda a demonstrar o seguinte fato.

Teorem a 2.10 Seja T uma árvore com n vértices. Então

T tem n - 1 arestas.

>\ r2

D e m o n s tra ç ã o Suponha que T seja uma árvore com n vértices, e seja r a raiz de T. Pela construção ante­ rior, podemos fazer T virar uma árvore orientada, se necessário, sem termos que mudar o número de arestas e vértices. Cada aresta deve apontar para um vértice não raiz. Além disso, todo vértice não raiz tem uma única aresta apontando para ele, uma vez que existe um único caminho chegando em cada vértice e saindo da raiz. Então o número de arestas é igual ao número de vértices não raízes, isto é, n - 1.

E x e rc íc io s 2 .6

1. Veja as Definições 2.12 e 2.13. Sejam G e H grafos não orientados isomorfos com bijeção a entre os vértices e bijeção /3 entre as arestas. Seja x G VG um vértice em G. Prove que o grau de x é igual ao grau de a(x).

2. Desenhe dois grafos não orientados, não isomorfos, com quatro vértices e quatro arestas cada. Explique como você sabe que eles não são isomorfos.

3. Encontre um par G e H de grafos isomorfos entre os quatro grafos a seguir, e dê a bijeção a: VG — »

VH dos vértices. (Para cada vértice de G, diga qual

vértice de H a que ele corresponde.)

a e

4. Dê uma definição rigorosa para o grau de entrada e o

grau de saída de um vértice em um grafo orientado.

(Modele sua definição a partir da Definição 2.13.) 5. Seja X um conjunto finito, e seja V(X) o conjunto

das partes de X. Seja Go grafo cujos vértices repre­ sentam os elementos de V(X), em que A e B estão conectados por uma aresta se A fl B = 0. Similar­ mente, seja H um grafo com um vértice para cada elemento de V(X), mas onde A e B compartilham uma aresta se A U B = X. Prove que G é isomorfo a H.

6. Sejam (Xx, Rf) e (X2, R2) ordens parciais isomorfas, e associe a elas seus respectivos grafos Gx e G2, como na Definição 2.5. Prove que Gx e G2 são grafos isomorfos. 7

7. Sejam Rx e R2 relações em um conjunto X. Dê uma definição razoável para um isomorfismo de rela­ ções.

8. Entre 1970 e 1975, a National Football League (NFL), liga de futebol norte-americana, foi dividida em duas associações, com 13 times em cada asso­ ciação. Cada time participou de 14 jogos em uma temporada. Seria possível para cada time participar de 11 jogos contra times da sua própria associação e 3 jogos contra times da outra associação? Use um modelo de grafo para responder a essa questão (sem desenhar o grafo).

9. Uma liga de 10 times está jogando um torneio no estilo “todos contra todos”, em que cada time joga exatamente uma vez com todos os outros times. Quantos jogos no total precisam ser realizados? Justifique sua resposta utilizando um modelo de grafo — diga o que os vértices e as arestas do seu grafo representam, e quais teoremas (se houver algum) você utiliza.

10. O grafo completo em n vértices (denotado Kn) é o grafo não orientado com exatamente uma aresta entre cada par de vértices distintos. Use o Teorema 2.6 para deduzir uma fórmula para o número de arestas em Kn.

11. Um icosidodecaedro truncado (também conhecido como um “grande rombicosidodecaedro” ou “icosi­ dodecaedro omnitruncado”) é um poliedro com 120 vértices. Todos os vértices se parecem: um quadrado, um hexágono e um decágono se juntam em cada vértice. Quantas arestas tem um icosido­ decaedro truncado? Explique como você chegou à sua resposta. (Observação: a imagem na Figura 2.28 não mostra os vértices ou arestas que estão na parte de trás do poliedro.)

12. Demonstre o seguinte teorema de Euler.

Teorem a 2.11 Se um grafo conexo tem exatamente

dois vértices v e w de grau ímpar, então existe um caminho euleriano de v para w.

Dica: Adicione uma aresta, e use o Teorema 2.7.

Figura 2.28 Um icosidodecaedro truncado. Veja os Exer­ cícios 11 e 14.

13. Prove o seguinte teorema de Euler.

T eo rem a 2.12 Se um grafo tem mais de dois

vértices de grau ímpar, ele não possui um caminho euleriano.

Dica: Tente uma demonstração por contradição, e modele o seu argumento a partir da demonstração do Teorema 2.8.

14. Existe um caminho euleriano no grafo formado pelos vértices e arestas de um icosidodecaedro truncado? Justifique.

15. Prove que Kn, o grafo completo em n vértices, tem um circuito hamiltoniano para todo n ^ 3.

16. Para que valores de n o grafo Kn tem um circuito euleriano? Explique.

17. Encontre um circuito hamiltoniano no grafo a seguir. 18

18. Explique por que o grafo a seguir não tem um circuito hamiltoniano.

a b c

f 8 h

19. Termine a demonstração do Teorema 2.9 provando que, se um grafo G tem um circuito com alguma aresta e que difere de todas as outras arestas no circuito, então G tem um circuito simples. (Dica: Observe a sequência de vértices do circuito dado.) 20. Copie os três grafos da Figura 2.27 e nomeie os

vértices para mostrar que os grafos são isomor­ fos.

21. Seja G um grafo com conjunto de vértices VG e conjunto de arestas EG. Um subgrafo de G ê um grafo com um conjunto de vértices VH C VGe um conjunto de arestas EH Ç Ec. Desenhe todos os subgrafos do grafo a seguir.

22. Seja G um grafo com conjunto de vértices VG e conjunto de arestas EG. Seja V C VG e E Q EG. Existirá sempre um subgrafo de G com conjunto de vértices V e conjunto de arestas EP. Explique. 23. Seja G um grafo não orientado conexo. Prove que

existe um subgrafo T de G tal que T contém todos os vértices de G, e T é uma árvore. (Tal subgrafo é chamado de árvore geradora.) Dê uma prova cons­ trutiva que explique como construir uma árvore geradora de um grafo.

Capítulo 3