Baixe o app para aproveitar ainda mais
Prévia do material em texto
Caṕıtulo 3 Introdução à Teoria de Grafos Se pegarmos num mapa do Porto e colocarmos um ponto • nos locais onde duas ou mais ruas se cruzam e um ponto também nos becos sem sáıda, o que obtemos é uma representação daquilo a que chamaremos um grafo. Se quisermos, adicionalmente, representar o sentido do tráfego em cada rua, podemos acrescentar uma seta, ! ou ", em cada rua de sentido único, indicando a direcção permitida, e uma seta de duas pontas # nas ruas com ambos os sentidos. Neste caso obtemos um grafo dirigido, ou digrafo. Tomemos agora as pessoas dessa cidade, representemo-las por pontos no plano e tracemos uma linha entre cada par de pessoas que se conhece. Obtemos novamente a representação de um grafo. Finalmente, consideremos uma molécula, constitúıda por átomos, alguns dos quais ligados entre si. Temos assim mais um exemplo de um grafo. O primeiro artigo de teoria de grafos é de 1736, da autoria do matemático súıço Leonhard Euler, onde ele estudou o famoso problema das pontes de Königsberg. Apesar das origens desta disciplina estarem muito ligadas a jogos e puzzles, hoje em dia a teoria de grafos constitui uma área de investigação e uma ferramenta muito importante em redes de transportes, qúımica, psicologia, ciências sociais, genética e ciências de computadores, entre outras. 3.1 Definições e exemplos Um grafo simples é um par ordenado G = (V, E), onde V é um conjunto finito cujos elementos são denominados por vértices, e E é um conjunto de elementos do tipo {x, y}, com x, y $ V e x %= y, chamados arestas. Dito de outra forma, E & P2(V ), onde P2(X) designa o conjunto de todos os subconjuntos de X com dois elementos. Usaremos ainda a notação V (G) = V e E(G) = E para o caso de a notação V e E ser amb́ıgua. Se ! = {x, y} $ E, dizemos que: • a aresta ! liga ou une os vértices x e y; 38 CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 39 • os vértices x e y são adjacentes; • os vértices x e y são vizinhos; • x (respectivamente y) e ! são incidentes; • x (respectivamente y) é uma extremidade de !. Podemos representar um grafo G no plano por um diagrama formado por pontos e linhas, onde os pontos estão em correspondência com os vértices de G e dois pontos são unidos por uma linha1 se e só se os vértices correspondentes determinam uma aresta de G. Por abuso de linguagem designaremos ainda os pontos do diagrama por vértices e as linhas entre vértices por arestas. Devemos ter o cuidado, ao representar um grafo, de que uma aresta só passe por um vértice do diagrama se esse vértice for uma extremidade da aresta que se está a representar, de forma a evitar ambiguidades. Exemplo. Consideremos o grafo G = (V, E), onde: V = {a, b, c, d, e} e E = {{a, b}, {a, d}, {a, e}, {b, c}, {b, e}, {c, d}, {d, e}}. Abaixo apresentamos duas representações deste grafo: a db c e b a c d e Se permitirmos na definição de grafo que haja arestas múltiplas, isto é, pares de vértices que sejam unidos por mais do que uma aresta, então dizemos que a estrutura correspondente é a de um multigrafo. Mais geralmente, se num multigrafo permitir- mos a existência de lacetes, isto é, arestas cujas duas extremidades coincidem, obtemos a definição geral de grafo. Exemplo. Nas duas figuras abaixo encontram-se representados um multigrafo (à es- querda) e um grafo geral (à direita): 1curva C! sem auto-intersecções CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 40 Exerćıcio. Apresente uma definição de multigrafo e de grafo geral análoga à apresen- tada para um grafo simples. Um grafo diz-se completo se for simples e se cada par de vértices distintos formar uma aresta. Um grafo completo com n vértices tem ! n 2 " = n(n!1)2 arestas e é denotado por Kn. Exemplo. Representações dos grafos completos K1, K2, K3, K4 e K5: Uma outra representação de K5 é a seguinte: Notamos que em ambas as representações que apresentámos de K5 há arestas que se intersectam em pontos que não são vértices. Um grafo diz-se planar se puder ser representado por um diagrama no plano de forma a que duas arestas não se intersectem excepto em vértices comuns. Uma tal representação diz-se um grafo plano ou uma representação planar do grafo. Pelo exemplo anterior, os grafos completos K1, K2, K3 e K4 são planares. Veremos mais tarde que não existe nenhuma representação planar de K5, e portanto este grafo não é planar. Um grafo bipartido é um multigrafo G = (V, E) cujo conjunto dos vértices admite uma partição V = X'̇Y em dois subconjuntos X e Y de tal forma que cada aresta de G tenha uma extremidade em X e outra em Y . O par X, Y diz-se uma bipartição de G. Assim, G é bipartido com bipartição X, Y se e só se ({a, b} $ E a $ X )* b $ Y. Em particular, um grafo bipartido não tem lacetes e não existem arestas entre os vértices de X nem entre os vértices de Y . CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 41 É comum representar um grafo bipartido no plano com os vértices de X acima (ou à esquerda) dos vértices de Y , ou vice-versa, embora não seja necessário fazê-lo. Exemplo. O multigrafo representado abaixo é bipartido, com bipartição X = {a, b, c} e Y = {t, u, v, w} a b c t u v w Considere-se o grafo G representado abaixo, à esquerda. Desta representação não é evidente que G seja bipartido. No entanto, este mesmo grafo pode também ser representado pela figura abaixo, à direita, de onde se percebe que de facto G é bipartido, com bipartição X = {a, c, g, h, j, k} e Y = {b, d, e, f, i}. Este exemplo mostra que, em geral, não é óbvio concluir de uma particular re- presentação de um grafo se este é ou não bipartido. Veremos nos exerćıcios uma caracterização dos grafos bipartidos. Exemplo. Seja G o grafo com V (G) = {1, 2, . . . , 20} e E(G) = {{i, j} | i, j $ V (G) e i+ j é ı́mpar}. Consideremos X = {i $ V (G) | i é par} e Y = {i $ V (G) | i é ı́mpar}. Então, como i+ j é ı́mpar se e só se i e j têm paridades diferentes, conclúımos que G é bipartido, com bipartição X, Y . Um grafo simples bipartido G com bipartição X, Y diz-se completo se cada vértice de X for adjacente a cada vértice de Y . Assim, se |X| = n e |Y | = m, então G tem exactamente mn arestas. Um tal grafo é denotado por Km,n. Exerćıcio. Verifique que o grafo do exemplo anterior é o grafo bipartido completo K10,10. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 42 3.2 O primeiro resultado O grau do vértice v do grafo G é o número deg(v) de arestas incidentes com v. Cada lacete {v, v} contribui 2 para deg(v) uma vez que ambas as extremidades do lacete são v. Por exemplo, no grafo completo Kn cada vértice tem grau n+1 e no grafo bipartido Km,n existem m vértices de grau n e n vértices de grau m. A sequência de graus de G é a sequência decrescente (d1, d2, . . . , dn), com d1 , d2 , · · · , dn , 0, formada pelos graus de cada vértice de G. Por exemplo, no grafo a sequência de graus é (7, 4, 2, 2, 2, 2, 1, 0). O primeiro resultado de teoria de grafos que vamos ver, da autoria de Euler, é por vezes referido como o lema dos apertos de mão, por razões que serão fáceis de adivinhar. Teorema 3.1. Seja G um grafo. Então # v"V deg(v) = 2|E|. Em particular, o número de vértices de grau ı́mpar num grafo é par. Demonstração. Cada aresta de G, incluindo os lacetes, contribui com 2 para a soma dos graus dos vértices de G, provando a igualdade enunciada. Logo, a soma dos graus dos vértices de G é par e portanto o número de vértices de grau ı́mpar também terá de ser par. Exerćıcio. Seja G um grafo com n vértices e exactamente n+ 1 arestas. Mostre que ou G tem um vértice de grau 1 ou um vértice isolado (isto é, um vértice que não é incidente em nenhuma aresta). Exerćıcio. É posśıvel que, num grupo de sete pessoas, cada uma delas conheça exac- tamente três das restantes pessoas do grupo? Um grafo G diz-se k-regular se deg(v) = k para todo o v $ V . Exerćıcio.Mostre que se G é um grafo k-regular então ou k é par ou |V (G)| é par. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 43 Exemplo. (Lema de Sperner) Este exerćıcio destina-se a provar o caso bi-dimensional do chamado lema de Sperner, que pode ser usado para provar o teorema do ponto fixo de Brower. Seja T um triângulo no plano. Dizemos que uma decomposição de T num número finito de triângulos contidos em T é simplicial se dois quaisquer triângulos dessa decom- posiçao, ou não se intersectam, ou se intersectam num vértice comum ou se intersectam numa aresta comum. Dada uma decomposição simplicial de T , dizemos que uma coloração dos vértices dos triângulos da decomposição com as cores 0, 1 e 2 é própria se: • são atribúıdas aos três vértices de T as cores 0, 1 e 2, por uma qualquer ordem; • aos vértices da decomposição que ocorrem sobre o lado de T que liga os vértices de T de cores i e j são atribúıdas indiferentemente as cores i e j Um triângulo da decomposição cujos vértices tenham sido coloridos com as três cores diz-se um triângulo especial. Na figura abaixo temos à esquerda uma decomposição simplicial de um triângulo e à direita uma coloração própria dos vértices dos triângulos dessa decomposição. Há três triângulos especiais na coloração apresentada. Lema de Sperner. Qualquer coloração própria de uma decomposição simplicial de um triângulo tem um número ı́mpar de triângulos especiais. Em particular existe sempre pelo menos um triângulo especial. Denotemos os triângulos da decomposição por T1, T2, . . . , Tn e o exterior do triângulo T por T0. Constrúımos um grafo simples G com V (G) = {v0, v1, . . . , vn}, em corres- pondência com as regiões T0, . . . , Tn, e unimos os vértices vi e vj se Ti - Tj for uma aresta comum a estes dois triângulos com as cores 0 e 1. É fácil de ver que o vértice v0 tem grau ı́mpar. Logo, pelo Teorema 3.1, de entre os restantes vértices v1, . . . , vn há um número ı́mpar deles com grau ı́mpar. Além CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 44 disso, nenhum destes pode ter grau 3, logo os de grau ı́mpar têm grau 1. Como, para 1 . i . n, deg(vi) = 1 se e só se o triângulo Ti é especial, fica assim provado o lema de Sperner. Dizemos que dois grafos G e G# são isomorfos se existir uma bijecção " : V (G)! V (G#) tal que, para todo o x, y $ V (G), o número de arestas entre x e y em G é igual ao número de arestas entre "(x) e "(y) em G#. Se G e G# forem ambos grafos simples, esta condição traduz-se simplesmente em (x, y $ V (G) {x, y} $ E(G) )* {"(x), "(y)} $ E(G#). Dizemos que " é um isomorfismo entre G e G# e escrevemos G / G#. Esta noção induz uma relação de equivalência no conjunto dos grafos, que nos permite identificar dois grafos isomorfos. É fácil de ver que, se G / G#, então • |V (G)| = |V (G#)| e |E(G)| = |E(G#)|; • G é simples se e só se G# é simples; • G é bipartido se e só se G# é bipartido; • G é completo se e só se G# é completo; • G é planar se e só se G# é planar; • G e G# têm a mesma sequência de graus. No entanto, o reciproco destas afirmações é falso, em geral. Exemplos. 1. Os grafos representados abaixo são isomorfos, sendo ambos repre- sentações de K4. 2. Os grafos abaixo têm o mesmo número de vértices e arestas, mas não são isomorfos pois têm sequências de graus distintas. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 45 3. Os grafos abaixo têm a mesma sequência de graus. No entanto não são isomorfos porque no grafo G existem três vértices, cada um deles unido aos outros dois, e tal não acontece com o grafo G#. Outra forma de concluir que não são isomorfos é notando que G# é bipartido e isomorfo a K3,3, ao passo que G não é bipartido. Seja G = (V, E) um grafo. Um subgrafo de G é um grafo H = (V #, E #) tal que V # & V e E # & E. De forma equivalente, um subgrafo de G é um par H = (V #, E #) que satisfaz: • V # & V e E # & E; • as extremidades de qualquer aresta ! $ E # são elementos de V #. O subgrafo H diz-se: • induzido de G se E # for o conjunto de todas as arestas de G com ambas as extremidades em V #. Nesse caso denotamos H por G(V #). • gerador de G se V # = V . Assim, um subgrafo induzido de G obtém-se escolhendo um subconjunto V # de V e tomando todas as arestas de G que ligam vértices de V #. Um subgrafo gerador de G obtém-se tomando todos os vértices de G e algumas (ou nenhumas, ou todas) arestas de G. Exemplo. Consideremos o grafo G representado por: Na figura abaixo temos um subgrafo de G que não é induzido nem gerador (es- querda), um subgrafo induzido, que não é gerador (centro), e um subgarfo gerador que não é induzido (direita). CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 46 Dado um conjunto de arestas A & E, o grafo G+A é o subgrafo gerador de G com E(G + A) = E(G) \ A. Se A = {!} escrevemos também G + ! em vez de G + {!}. Dado um conjunto de vértices X & V , o grafo G+X é o grafo induzido G(V \X). Se X = {v} escrevemos ainda G+ v em vez de G+ {v}. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 47 3.3 Passeios em grafos e conexão Um passeio de comprimento m num grafo G é uma sequência da forma P = v0!1v1!2v2 · · ·!mvm (3.1) onde, para cada 1 . i . m, v0, vi $ V (G), !i $ E(G) e !i tem extremidades vi!1 e vi. Dizemos ainda que P é um passeio de v0 a vm. Se G for simples, podemos simplesmente denotar P por v0 + v1 + · · ·+ vm, desde que {vi!1, vi} $ E(G) para todo o i. Se v0 = vm dizemos que o passeio P é fechado. No caso de m = 0 temos o passeio trivial v0, de comprimento 0. O passeio inverso do passeio P em (3.1) é o passeio vm!mvm!1!m!1 · · · v1!1v0, de vm a v0, denotado por P!1 e obtido invertendo a ordem por que são percorridos os vértices e arestas de P . Se P # = v#0! # 1v # 1 · · ·!#lv#l é outro passeio em G tal que vm = v#0, então o passeio v0!1v1 · · ·!mvm!#1v#1 · · ·!#lv#l, de v0 a v#l, obtido por concatenação de P e P #, é denotado por PP #. Uma secção do passeio (3.1) acima é um passeio da forma vi!i+1vi+1 · · ·!jvj, com i . j; dizemos que esta é a secção (vi, vj) de P . Um atalho, ou trilho, é um passeio em que todas as arestas !1, . . . ,!m são dis- tintas e um atalho fechado é chamado um circuito. Finalmente, dizemos que P é um caminho se P for um atalho e todos os seus vértices forem distintos, com excepção posśıvel de se ter v0 = vm. Um caminho fechado designa-se por ciclo. Um lacete é um ciclo de comprimento 1 e duas arestas entre o mesmo par de vértice determinam um ciclo de comprimento 2. Num grafo simples, qualquer ciclo tem comprimento pelo menos 3. Exerćıcio. Mostre que, num grafo, se existe um passeio entre dois vértices estão existe também um caminho entre esses vértices. O grafo G diz-se conexo se, dados quaisquer dois vértices x e y em G, existe um passeio (ou, o que é equivalente, um caminho) entre x e y. Caso contrário, G diz-se desconexo. É fácil de ver que é posśıvel decompor de forma única qualquer grafo num conjunto de subgrafos induzidos G1 = (V1, E1), . . ., Gk = (Vk, Ek) tais que, dados x $ Vi e y $ Vj, existe um caminho entre x e y em G se e só se i = j. Os subgrafos G1, . . . , Gk dizem-se as componentes conexas de G e o número k de componentes conexas denota-se por #(G). É claro que #(G) = #(G#) se os grafos G e G# forem isomorfos. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 48 Exemplo. O seguinte grafo é desconexo, tendo três componentes conexas. Podemos agora formular a noção de distância num grafo. Sejam x e y vértices de uma mesma componente conexa do grafo G. Definimos a distância entre x e y pela fórmula d(x, y) = min{k | existe um passeio em G de comprimento k entre x e y}. É claro que d(x, y) = 0 )* x = y e que qualquer passeio entre x e y de comprimento d(x, y) é necessariamente um caminho. Exerćıcio. Mostre que a distância, definida para grafos conexos, é de facto uma métrica. Mostre aindaque esta métrica tem a seguinte propriedade adicional: se d(x, y) > 1 então existe z %= x, y tal que d(x, y) = d(x, z) + d(z, y). Podemos agora enunciar um resultado que permite classificar os grafos bipartidos: Teorema 3.2. Um grafo é bipartido se e só se todos os seus ciclos tiverem comprimento par. Demonstração. Seja G um grafo. Se G for bipartido, então é imediato que qualquer ciclo em G tem de ter comprimento par. Suponhamos agora que todos os ciclos de G têm comprimento par. Podemos também assumir que G é conexo, já que um grafo é bipartido se todas as suas componentes conexas o forem. Seja x $ V (G). Definimos a seguinte partição de V (G): X = {y $ V (G) | d(x, y)é par}; Y = {y $ V (G) | d(x, y)é ı́mpar}. Resta mostrarmos que X, Y é uma bipartição de G. Suponhamos, por redução ao absurdo, que existem vértices a, b $ X ligados por uma aresta ! $ E(G) (o caso a, b $ Y é análogo). Sejam C1 e C2 caminhos de comprimento mı́nimo de x a a e de x a b, respectivamente. Como estes caminhos têm pelo menos o vértice x em comum, existe um último vértice z em comum a ambos, de forma a que estes caminhos têm a forma x · · · z · · · a e x · · · z · · · b, com z · · · a e z · · · b caminhos sem vértices em comum, para além de z. Como C1 e C2 são caminhos de comprimento mı́nimo, os seus caminhos iniciais entre x e z têm forçosamente o mesmo comprimento. Logo, os comprimentos dos caminhos entre z e a e entre z e b obtidos de C1 e C2, CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 49 respectivamente, têm a mesma paridade. Mas então o ciclo z · · · a!b · · · z obtido destes caminhos e da aresta ! tem comprimento ı́mpar, o que é absurdo. Logo X e Y constituem de facto uma bipartição de G. Vamos finalizar esta secção com uma outra forma de representar um grafo, a menos de isomorfismo, que é particularmente útil para estudar algumas questões de conexão em grafos (ver exerćıcios). Seja G um grafo com |V (G)| = n. Vamos descrever G por meio de uma ma- triz simétrica n 0 n com entradas em N. Começamos por ordenar os vértices de G: v1, . . . , vn. A matriz de adjacência de G é a matriz A = (aij)1$i,j$n cuja entrada aij é o número de arestas entre os vértices vi e vj. Assim, a entrada aii é o número de lacetes no vértice vi. Se G for simples então as entradas não nulas de A são todas iguais a 1 e a diagonal de A é constitúıda unicamente por zeros. Exemplo. Um grafo com lacetes e a sua matriz de adjacência, relativamente à ordem dos vértices indicada: $ %%%%%%& 0 1 2 0 1 0 1 1 0 0 2 0 2 0 0 1 1 1 0 0 1 1 2 2 1 2 1 2 0 0 0 0 1 2 0 0 ' (((((() CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 50 3.4 Exerćıcios 1. Determine cada um dos 11 grafos simples não isomorfos com 4 vértices e represente- os de forma planar. 2. Existe algum grafo cuja sequência de graus seja (4, 4, 3, 2, 2)? 3. Existe algum grafo simples cuja sequência de graus seja (4, 4, 4, 2, 2)? E algum multigrafo? 4. Mostre que num grafo simples com n , 2 vértices há pelo menos dois vértices com o mesmo grau. Este resultado é válido para multigrafos? 5. Seja (d1, . . . , dn) uma sequência de n inteiros não negativos tal que a soma d1 + · · · + dn é par. Mostre que existe um grafo (geral) que tem esta sequência como a sua sequência de graus. Descreva um algoritmo para a construção de um tal grafo. 6. Apresente o diagrama de um grafo simples conexo cuja sequência de graus seja (5, 4, 3, 3, 3, 3, 3, 2, 2). 7. Dê exemplo de um grafo simples G com 8 vértices tal que (a) G é conexo e 3-regular; (b) G é desconexo e 3-regular; (c) G é 1-regular. 8. Qual é o número máximo e mı́nimo de arestas de um grafo simples com n vértices? E qual é o valor máximo e mı́nimo do grau de um seu vértice? 9. Mostre que um grafo simples com n vértices e com pelo menos (n+ 1)(n+ 2) 2 + 1 arestas é necessariamente conexo. Dê um exemplo de um grafo simples desconexo com n vértices e cujo número de arestas seja uma unidade inferior ao número indicado acima. 10. Mostre que: (a) Dois grafos isomorfos têm o mesmo número de vértices e de arestas e a mesma sequência de graus. (b) As afirmações rećıprocas das anteriores são falsas, mesmo para grafos sim- ples. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 51 11. Mostre que dois quaisquer grafos conexos, 2-regulares e com o mesmo número de vértices são isomorfos. 12. Para cada par de grafos representados abaixo diga, justificando, se são ou não isomorfos. Construa a matriz de adjacência de cada um deles. 13. Para cada par de grafos representados abaixo diga, justificando, se são ou não isomorfos. Construa a matriz de adjacência de cada um deles. 14. Dos grafos seguintes há exactamente dois que são isomorfos. Diga, justificando, quais são. 15. Dado um grafo simples G = (V, E), definimos o complementar de G como sendo o grafo G com V (G) = V e E(G) = P2(V ) \ E. (a) Determine o complementar dos grafos Kn e Km,n. (b) Dê exemplos de grafos isomorfos ao seu complementar. (c) Mostre que o complementar de um grafo desconexo é um grafo conexo. 16. Seja G um grafo com 9 vértices tal que * v"V (G) deg(v) , 27. Mostre que G tem algum vértice de grau pelo menos 4. 17. Seja G um grafo simples, conexo e regular, com exactamente 22 arestas. Quantos vértices é que G pode ter? Justifique. 18. Seja G um grafo simples, conexo e regular. Será que todos os seus vértices têm necessariamente o mesmo número de segundos vizinhos (isto é, vértices à distância 2 deles)? CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 52 19. Mostre que um grafo G com um vértice de grau pelo menos 1 e cujos vértices restantes têm todos grau pelo menos 2 contém um ciclo de comprimento m , 1. E se G tiver dois vértices de grau 1 e os restantes de grau pelo menos 2? 20. Mostre que qualquer grafo simples com 10 vértices e 28 arestas contém um ciclo de comprimento 4. 21. Mostre que qualquer grafo simples e k-regular, com k , 2, contém um ciclo de comprimento não inferior a k + 1. 22. Sejam x e y vértices de um grafo, e suponhamos que existe um passeio fechado contendo x e y. Será que existe necessariamente também um circuito contendo x e y? 23. Sejam x e y vértices de um grafo, e suponhamos que existe um circuito contendo x e y. Será que existe necessariamente também um ciclo contendo x e y? 24. Seja A um atalho num grafo, entre os vértices x e y. Mostre que existe uma partição das arestas de A de forma a que uma das partes determina um caminho entre x e y e as restantes determinam ciclos. Em particular, qualquer circuito pode ser decomposto em ciclos. 25. Seja G um grafo e seja G# o grafo obtido de G por remoção de todos os lacetes e todas as cópias, menos uma, de arestas com multiplicidade maior do que 1. Mostre que: (a) G é conexo se e só se G# é conexo; (b) G é planar se e só se G# é planar. 26. Seja G um grafo com precisamente dois vértices x e y de grau ı́mpar. Seja G% o grafo obtido acrescentando a G uma nova aresta entre os vértices x e y. Mostre que G é conexo se e só se G% é conexo. 27. Mostre que um grafo é bipartido se e só se cada uma das suas componentes conexas o for. 28. Sejam m e n inteiros positivos. Para que valores de a e b é que os grafos bipartidos completos Km,n e Ka,b são isomorfos? 29. Qual é o menor número de arestas que é necessário retirar a K5 de forma a que o grafo resultante seja bipartido? 30. Uma ponte ou aresta de corte num grafo G é uma aresta ! $ E(G) tal que #(G + !) > #(G), onde G + ! é o grafo obtido após eliminar a aresta ! de G. Mostre que: CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 53 (a) #(G) . #(G+ !) . #(G) + 1 para qualquer ! $ E(G). (b) Se ! $ E(G) é uma ponte então #(G+ !) = #(G) + 1. (c) Se todos os vértices de G têm grau par então G não tem pontes. 31. Seja G um grafo bipartido e k-regular, para algum k , 2. Mostre que G não tem pontes. 32. Mostre que se o grafo G é simples e conexo, mas nãoé completo, então existem três vértices distintos u, v e w tais que {u, v}, {v, w} $ E(G) mas {u, w} /$ E(G). 33. Seja V = {1, . . . , 20} o conjunto dos primeiros 20 inteiros positivos. Considere os seguintes grafos simples cujo conjunto dos vértices é V e cujo conjunto de arestas está especificado abaixo. Para cada um destes grafos determine se ele é ou não: (i) conexo, especificando as componentes conexas no caso de ser desconexo; (ii) bipartido, especificando uma bipartição em caso afirmativo. (a) {a, b} é uma aresta se e só se a + b é par. (b) {a, b} é uma aresta se e só se a + b é ı́mpar. (c) {a, b} é uma aresta se e só se ab é par. (d) {a, b} é uma aresta se e só se ab é ı́mpar. (e) {a, b} é uma aresta se e só se ab é um quadrado perfeito. (f) {a, b} é uma aresta se e só se a+ b é diviśıvel por 3. 34. Seja A a matriz de adjacência de um grafo de vértices v1, v2, . . . , vn. Mostre que a entrada da matriz Ak da linha i e coluna j é o número de passeios de comprimento k entre os vértices vi e vj. Use este resultado para determinar, em termos da matriz de adjacência e das suas potências, a distância entre dois vértices num grafo conexo. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 54 3.5 Grafos Eulerianos Nesta secção iremos estudar o problema, certamente familiar, da possibilidade de traçar um desenho sem levantar o lápis do papel e sem repetir nenhuma linha. Desenhos como os seguintes são t́ıpicos exemplos que o leitor deverá tentar desenhar da forma descrita acima reavivando assim a memória: Após algumas tentativas, percebemos que é fácil seguir o procedimento indicado na figura da esquerda e na figura ao centro, embora na figura da esquerda consigamos sempre acabar no ponto inicial, o que parece não ser posśıvel com a do centro. Também parece ser de todo imposśıvel traçar a figura da direita sem ter de levantar o lápis ou traçar duas vezes a mesma linha. Como poderemos justificar estas afirmações? Outro problema análogo a este é o famoso Problema das pontes de Königsberg, que foi resolvido por Euler num artigo de 1736, considerado o primeiro artigo em teoria de grafos. No tempo de Euler, Königsberg era uma cidade da Prússia, mas actualmente o nome da cidade é Kalinegrado e situa-se na Rússia. O rio Pregel (actualmente Pregolya) passa por Königsberg onde se bifurca, criando duas ilhas no centro da cidade. As ilhas estão ligadas ao resto da cidade por sete pontes e os seus habitantes pretendiam saber se seria posśıvel fazer um passeio pela cidade de forma a passar por cada uma das pontes exactamente uma vez, regressando no final do passeio ao ponto de partida (ver esquema abaixo onde o rio aparece a cinzento e as pontes estão assinaladas com letras minúsculas). CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 55 Neste problema, o comprimento das pontes, a distância entre elas e a precisa lo- calização dos indiv́ıduos em cada uma das regiões determinadas pelo rio é irrelevante. A informação relevante é somente a descrição das possibilidades de transitar de uma região a outra usando as pontes. Assim, podemos modelar este problema usando um grafo, cujos vértices são as quatro regiões determinadas pelo rio e cujas arestas corres- pondem às pontes, sendo o número de arestas entre duas regiões igual ao número de pontes que as ligam: D C A B Um outro exemplo t́ıpico de um problema que pode ser traduzido em termos do estudo de grafos é o de um carteiro que deseja, começando a sua jornada de trabalho na estação de correios, percorrer todas as ruas que lhe foram destinadas e entregar o correio. Ao final do dia deve regressar à estação de correios de onde partiu. Será que pode fazê-lo sem ter de percorrer duas vezes a mesma rua? Para começar, pode- mos representar as ruas e as suas intersecções por um grafo, como foi já referido na introdução deste caṕıtulo. Em linguagem de teoria de grafos, todos estes problemas se traduzem na seguinte questão: Existe no grafo dado um circuito contendo todas as arestas do grafo? Não existindo um circuito, existe um atalho? Motivados pelo problema das pontes de Königsberg, e pelo matemático que o re- solveu, dizemos que um atalho num grafo é Euleriano se contiver todas as arestas do grafo. Dizemos ainda que um grafo é Euleriano se for conexo e possuir algum circuito Euleriano. Suponhamos então que A = v0!1v1 · · ·!mvm é um circuito Euleriano no grafo co- nexo G, onde vm = v0. Seja v um qualquer vértice de G. Como G é conexo, deg(v) > 0 (excepto no caso trivial em que |V (G)| = 1) e todas as arestas incidentes em v ocorrem em A. Em particular, v é um dos vértices de A. Estudamos primeiro o caso v %= v0. Em cada ocorrência de v em A, este vértice é precedido e sucedido por uma aresta que lhe é incidente, e todas as arestas incidentes em v ocorrem desta forma. (Note-se que este argumento é consistente com a definição de grau de um vértice no que toca aos lacetes.) Resulta então que deg(v) é par. Se v = v0, então as ocorrências de v0 na secção (v1, vm!1) de A contribuem com um número par de arestas para deg(v0) e as ocorrências de v0 como extremidade inicial e final de A contribuem exactamente com 2 para deg(v0). Em qualquer dos casos, deg(v) é par. Logo, num grafo Euleriano todos os vértices têm grau par. Esta conclusão permite já concluir que o problema das CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 56 pontes de Königsberg tem solução negativa, uma vez que os quatro vértices do grafo correspondente têm grau ı́mpar. Vamos ver de seguida que a condição necessária que acabámos de encontrar para que um grafo seja Euleriano é também suficiente. Começamos com um lema de interesse independente. Lema 3.3. Seja G um grafo em que deg(v) é par, para todo o v $ V (G). Então, dada ! $ E(G), existe um ciclo em G que contém !. Demonstração. Sejam v0 e v1 as extremidades de !. Se v0 = v1 então v0!v1 é um ciclo contendo !. Caso contrário, seja Ai = v0!1v1 · · · vi!1!ivi um atalho com !1 = !, i , 1 e v0 %= vi. Como o grau de vi é ı́mpar em Ai e par em G, existe alguma aresta !i+1 incidente com vi e diferente de !1, . . . ,!i. Seja vi+1 a outra extremidade de !i+1. Obtemos assim um atalho Ai+1 = Aivi!i+1vi+1 de comprimento i + 1. Como este procedimento não pode ser implementado indefinidamente, existe algum k , 2 tal que v0 = vk e Ak é um circuito que contém a aresta !. Pelo exerćıcio 24 da secção 3.4, este atalho é união de ciclos, algum dos quais conterá !. Teorema 3.4. Seja G um grafo conexo. Então G é Euleriano se e só se o grau de cada um dos seus vértices for par. Demonstração. Já vimos que se G for Euleriano então deg(v) é par, para todo o v $ V (G). Consideramos agora o caso de G ser conexo e todos os seus vértices terem grau par. Faremos a prova por indução sobre o número de arestas de G. Se G não tiver arestas então, uma vez que é conexo, G é constitúıdo por um único vértice e o atalho trivial sem arestas é um circuito Euleriano em G. Suponhamos então que G tem alguma aresta. Pelo lema anterior, existe um ciclo C em G de comprimento não nulo. No grafo G+C todos os vértices têm ainda grau par, uma vez que o número de arestas de C incidentes com cada vértice é par. Além disso, G + C tem menos arestas do que G e podemos assim aplicar a hipótese de indução a cada uma das l , 1 componentes conexas de G+C. Obtemos assim l circuitos tais que cada aresta de G+C ocorre uma vez em precisamente um destes circuitos. Além disso, por construção, cada componente conexa de G+C tem pelo menos um vértice em comum com C. Podemos agora construir um circuito Euleriano em G da seguinte forma: Começamos a percorrer C até chegar ao primeiro vértice em comum com algum dos circuitos, digamos C1; desse vértice percorremos o circuito C1, voltando novamente ao vértice e prosseguimos com o circuito C até encontrar um vértice comum a algum dos restantes circuitos, digamosC2; desse vértice percorremos C2 e prosseguimos assim até percorrer todos os circuitos C1, . . . , Cl e fechar o circuito C. Este novo circuito é Euleriano uma vez que C e C1, . . . , Cl não têm arestas em comum e cada aresta de G pertence a algum destes circuitos. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 57 Exemplo. Ilustração do processo indutivo da prova do Teorema 3.4. Começando no grafo G com o circuito C, cuja sequência de arestas é abfghl, ob- temos em G + C as componentes conexas C1, C2 e C3, que têm circuitos Eulerianos dados pelas sequências de arestas cde, jki e m, respectivamente. A construção do teorema anterior permite formar o circuito Euleriano em G cuja sequência de arestas é bcdefghijklma. Podemos dar ainda outra caracterização dos grafos Eulerianos: Corolário 3.5. Seja G um grafo conexo. As seguintes condições são equivalentes: (a) G é Euleriano; (b) deg(v) é par para todo o v $ V (G); (c) Existem ciclos C1, . . . , Ck, todos subgrafos de G, tais que: (i) E(G) = 'ki=1E(Ci); (ii) E(Ci) - E(Cj) = 1 para i %= j. Demonstração. Pelo Teorema 3.4 sabemos já que (a) e (b) são equivalentes. Basta-nos portanto mostrar as implicações (a) =* (c) e (c) =* (b). Suponhamos que G é Euleriano. Então existe um circuito C contendo todas as arestas de G. Pelo exerćıcio 24 da secção 3.4, esse circuito pode ser decomposto em ciclos C1, . . . , Ck, de forma a que 'ki=1E(Ci) = E(C) = E(G). Além disso, como em C não há arestas repetidas, E(Ci) - E(Cj) = 1 se i %= j. Suponhamos agora que (c) se verifica. Dado v $ V (G), o grau de v pode ser calcu- lado somando o número de arestas incidentes com v em cada um dos ciclos C1, . . . , Ck. Como o número de arestas incidentes com um vértice num ciclo é par, resulta que deg(v) é par, sendo a soma de k números pares. Vamos agora descrever um algoritmo que permitirá, sempre que G seja um grafo Euleriano, construir um circuito Euleriano em G. Recordamos dos exerćıcios que uma ponte num grafo G é uma aresta ! $ E(G) tal que #(G+ !) > #(G). CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 58 Algoritmo de Fleury Seja G um grafo Euleriano. Passo 1. • Escolher um vértice v0 $ V (G). • Definir A0 = v0. • Se deg(v0) = 0 então G = ({v0}, 1) e A0 é um circuito Euleriano em G; parar. Caso contrário, prosseguir para o Passo 2. Passo 2. • Dado o atalho Ai = v0!1v1 · · ·!ivi, com i , 0, escolher !i+1 $ E(G)\{!1, . . . ,!i} tal que: – !i+1 é incidente em vi; – se posśıvel, !i+1 não é uma ponte do grafo G+ {!1, . . . ,!i}. • Definir Ai+1 = Aivi!i+1vi+1, onde vi+1 é a outra extremidade de !i+1. Passo 3. Parar se Ai+1 contém todas as arestas de G. Caso contrário, voltar ao Passo 2, substituindo i por i + 1. Observações. 1. No algoritmo de Fleury, a condição “se posśıvel, !i+1 não é uma ponte do grafo G+ {!1, . . . ,!i}” significa que só escolhemos uma ponte do grafo G+ {!1, . . . ,!i} se todas as arestas incidentes em vi nesse grafo forem pontes. 2. Não é de todo óbvio que este algoritmo termine sempre com um circuito Euleriano se o grafo em que é aplicado for Euleriano. Esse facto será provado adiante. No entanto, um argumento semelhante ao usado no prova do Teorema 3.4 mostra que, no Passo 2, se não houver mais arestas incidentes em vi então ou G não é Euleriano ou vi = v0. Exemplo. Aplicando o algoritmo de Fleury ao grafo CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 59 obtemos, por exemplo, o seguinte atalho Euleriano: a7d10a5d6a2d5a4d9a7d12a8d8a3d2a1d3a8d11a6d7a1d1a2d4a7 Note-se que, ao longo da aplicação do algoritmo de Fleury a este grafo, verifica-se sempre que as componentes conexas de G+ {!1, . . . ,!i} são todas vértices de grau 0, com excepção posśıvel da componente conexa contendo o vértice vi. É esta propriedade, válida em geral, que faz com que o algoritmo de Fleury funcione. Teorema 3.6. Se G for um grafo Euleriano então o algoritmo de Fleury termina com um circuito Euleriano de G. Demonstração. Seja então G um grafo Euleriano. Usaremos a notação introduzida no algoritmo de Fleury: Ai = v0!1v1 · · ·!ivi é o atalho constrúıdo na i-ésima imple- mentação do passo 2 no algoritmo. Definimos ainda G0 = G e Gi = G+ {!1, . . . ,!i}, para i , 1. Pela observação que se seguiu à descrição do algoritmo, basta mostrar que, ao longo da aplicação do algoritmo, a seguinte propriedade (Pi) é válida: “As componentes conexas de Gi são todas vértices de grau 0, com excepção posśıvel da componente conexa que contém o vértice vi”. Faremos a prova por indução sobre i. (P0) verifica-se, já que G é conexo. Suponhamos então que (Pi) se verifica e vejamos que, ao passar de Ai para Ai+1, (Pi+1) é ainda válida. Se v0 = vi então, para cada v $ V (G), há um número par de arestas em Ai incidentes em v (cada lacete é contado como duas arestas). Logo, como deg(v) é par em G, resulta que v ainda tem grau par em Gi. Se v0 %= vi um racioćınio análogo mostra que, em Gi, v0 e vi têm grau ı́mpar ao passo que os restantes vértices têm grau par. Suponhamos primeiro que v0 %= vi e que deg(vi) = 1 em Gi. Então existe uma única aresta em Gi incidente com vi, digamos e $ E(G). Pelo algoritmo de Fleury, temos de escolher !i+1 = e, apesar de e ser uma ponte de Gi. Ao fazê-lo, a componente conexa de vi em Gi separa-se em duas componentes conexas de Gi+1: uma contendo apenas o vértice isolado vi e outra contendo o vértice vi+1, a outra extremidade de !i+1. Logo, neste caso (Pi+1) ainda se verifica. Suponhamos agora que v0 %= vi e que deg(vi) %= 1 em Gi. Então deg(vi) , 3 em Gi. Vamos mostrar que, neste caso, é posśıvel escolher uma aresta de Gi incidente com vi que não é uma ponte em Gi. Desta forma, como não serão criadas novas componentes conexas em Gi+1, (Pi+1) ainda será válida. Se existir um lacete em vi, não há nada a CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 60 provar. Caso contrário, basta mostrarmos que se deg(vi) , 2 em Gi então existe no máximo uma ponte em Gi incidente com vi. Suponhamos, por redução ao absurdo, que existem duas pontes e# e f # em Gi inci- dentes com vi e sejam u e v, respectivamente, as outras extremidades destas arestas. Então, no grafo H = Gi + {e#, f #}, o grau de vi ainda é ı́mpar (é igual ao seu grau em Gi subtráıdo de 2), os graus de u e v diminúıram em 1 relativamente a Gi e há pelo menos três componentes conexas: uma delas contendo vi, outra contendo u e outra contendo v, digamos C1, C2 e C3, respectivamente (ver figura acima). Como estamos a assumir que v0 %= vi, estes são os únicos vértices de grau ı́mpar em Gi. Se v0 %= u e v0 %= v, então existem exactamente quatro vértices de grau ı́mpar em H, v0, vi, u e v, o que é absurdo pois tal implicaria que alguma das componentes conexas C1, C2 e C3 teria um único vértice de grau ı́mpar. Se v0 = u (o caso v0 = v é idêntico) então haverá em H exactamente dois vértices de grau ı́mpar, vi e v, o que é absurdo pois assim cada uma das componentes conexas C1 e C3 teria exactamente um vértice de grau ı́mpar. Logo, alguma das arestas e# ou f # não é ponte em Gi e (Pi+1) é válida. Resta estudar o caso v0 = vi. Neste caso, todos os vértices de Gi têm grau par. Em particular, vi tem grau par. Se deg(vi) = 0 em Gi então, por (Pi), Gi não tem arestas e Ai é um circuito Euleriano. Caso contrário, deg(vi) , 2 e podemos usar um argumento análogo ao apresentado acima para mostrar que nenhuma das arestas incidentes com vi em Gi é uma ponte. Logo, (Pi+1) é válida. Fica assim provado por indução que (Pi) se verifica para todo o i , 0, o que mostra a eficácia do algoritmo de Fleury. Observação. Pela prova apresentada acima verificamos também que se G é Euleriano então no algoritmo de Fleury só somos forçados a escolher uma ponte se deg(vi) = 1 em Gi. Temos agora uma caracterização completa dos grafos Eulerianos e um algoritmo que permite construir sempre um circuito Euleriano num tal grafo. Noentanto, há grafos conexos que, não sendo Eulerianos, têm atalhos Eulerianos. É o caso do grafo seguinte: CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 61 De seguida veremos como identificar estes grafos. Teorema 3.7. Um grafo conexo tem atalhos Eulerianos não fechados se e só se tem exactamente dois vértices de grau ı́mpar. Nesse caso, qualquer atalho Euleriano começa num desses vértices e termina no outro. Demonstração. Seja G um grafo conexo. Se A = v0!1v1 · · ·!mvm for um atalho Euleriano em G com v0 %= vm então, por um argumento já várias vezes usado nesta secção, os vértices v0 e vm têm grau ı́mpar e os restantes vértices de G têm grau par. Reciprocamente, suponhamos que os vértices x e y são os únicos vértices de G de grau ı́mpar. Seja G# o grafo obtido ao acrescentar a G uma nova aresta !, entre os vértices x e y. Então G# é conexo e todos os seus vértices têm grau par. Logo, existe um circuito Euleriano C em G#. Além disso, eventualmente re-escrevendo C, podemos assumir que C = y!xA. Então A é um atalho Euleriano em G que começa no vértice x e termina no vértice y. A prova do Teorema 3.7 e o algoritmo de Fleury permitem determinar em qualquer grafo conexo com exactamente dois vértices de grau ı́mpar um atalho Euleriano. Para tal, começamos por acrescentar ao grafo uma nova aresta ! entre os vértices de grau ı́mpar, digamos x e y. O novo grafo é Euleriano e podemos começar o algoritmo de Fleury com o atalho y!x, pois ! não é ponte. Se y!xA for o circuito Euleriano obtido pela implementação do algoritmo de Fleury, então A é um atalho Euleriano de x a y no grafo inicial. Note-se que este procedimento equivale a começar o algoritmo de Fleury em G no vértice x. A observação acima mostra que o resultado da aplicação do algoritmo de Fleury a G com vértice inicial x é um atalho Euleriano em G de x a y. Exerćıcio. Usando o algoritmo de Fleury desenhe, se posśıvel, cada um dos seguintes diagramas sem levantar o lápis do papel e sem traçar duas vezes a mesma linha. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 62 3.6 Exerćıcios 1. Considere os seguintes grafos: (a) Diga quais deles admitem atalhos ou circuitos Eulerianos. (b) Aplique o algoritmo de Fleury aos grafos obtidos em (a) de forma a obter um circuito ou um atalho Euleriano. 2. Seja G um grafo Euleriano: (a) G tem sempre um número par de arestas? (b) G pode ter arestas de corte (pontes)? 3. (a) Quais dos seguintes grafos são Eulerianos? i. o grafo completo Kn, para n , 3; ii. o grafo completo bipartido Km,n, para m, n , 1. (b) Dos grafos anteriores, quais é que admitem atalhos Eulerianos abertos (isto é, que não são circuitos)? 4. Seja G um grafo conexo com exactamente quatro vértices de grau ı́mpar. Mostre que existem dois atalhos abertos em G tais que cada aresta de G pertence a precisamente um destes atalhos. 5. Seja G um grafo conexo com exactamente 2k vértices de grau ı́mpar, onde k , 1. Mostre que é posśıvel decompor G numa união, disjunta nas arestas, de k atalhos abertos. Mostre ainda que tal decomposição não é posśıvel com menos de k atalhos. 6. Usando o exerćıcio anterior, determine o número mı́nimo de vezes que será ne- cessário levantar o lápis de forma a desenhar cada uma das figuras seguintes sem traçar mais de uma vez a mesma linha. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 63 7. Determine um passeio fechado para o problema das pontes de Königsberg de forma a que o número de pontes passadas mais de uma vez seja mı́nimo. 8. Seja G um grafo simples com E(G) = {!1, . . . ,!n}, n , 1. O grafo de linhas de G é o grafo L(G) com vértices x1, . . . , xn, em correspondência com as arestas de G, tal que os vértices xi e xj estão ligados por uma aresta em L(G) se e só se as arestas !i e !j correspondentes são adjacentes em G. Na figura abaixo temos um grafo G e o seu grafo de linhas L(G). (a) Mostre que se G for Euleriano então L(G) também é. (b) Para n , 3 determine o grafo de linhas do grafo bipartido completo K1,n. (c) Dê um exemplo de um grafo simples G tal que L(G) seja Euleriano embora G não o seja. 9. Diz-se que um grafo Euleriano G é aleatoriamente traçável de um vértice v $ V (G) se todo o atalho em G com ińıcio no vértice v puder ser estendido a um circuito Euleriano de G. (a) Mostre que o seguinte grafo Euleriano é aleatoriamente traçável do vértice v indicado, mas não o é de nenhum outro vértice. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 64 (b) Dê um exemplo de um grafo Euleriano que não seja aleatoriamente traçável de nenhum dos seus vértices. (c) Dê um exemplo de um grafo Euleriano que seja aleatoriamente traçável de todos os seus vértices. (d) Mostre que um grafo Euleriano é aleatoriamente traçável do seu vértice v se e só se v está em todos os ciclos de G. 10. (a) Identifique os grafos conexos tais que deg(v) = 2 para todo o vértice v. (b) Identifique os grafos conexos tais que deg(v) . 2 para todo o vértice v. (c) Identifique os grafos tais que deg(v) . 2 para todo o vértice v. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 65 3.7 Grafos Hamiltonianos Um caminho Hamiltoniano num grafo é um caminho onde ocorrem todos os vértices do grafo exactamente uma vez. Assim, um ciclo Hamiltoniano é um ciclo que contém todos os vértices do grafo exactamente uma vez, com excepcção dos vértices inicial e final que têm de coincidir. Um grafo diz-se Hamiltoniano se possuir algum ciclo Hamiltoniano. Note-se que um grafo Hamiltoniano é necessariamente conexo. Se retirarmos uma aresta a um ciclo Hamiltoniano obtemos um caminho Hamilto- niano aberto, logo todo o grafo Hamiltoniano possui caminhos Hamiltonianos abertos, ao contrário do que se passa com os grafos Eulerianos, que não possuem atalhos Eu- lerianos abertos. No entanto, o rećıproco desta afirmação não é verdadeiro, como o seguinte exemplo mostra. Exemplo. O grafo G1 não tem caminhos Hamiltonianos abertos (e portanto também não tem ciclos Hamiltonianos); G2 tem caminhos Hamiltonianos abertos mas não tem ciclos Hamiltonianos; G3 tem ciclos (e caminhos abertos) Hamiltonianos. A designação de Hamiltoniano refere-se ao matemático irlandês Sir William Rowan Hamilton (1805–1865), famoso pela sua descoberta dos quaterniões, uma generalização não-comutativa dos números complexos. Por volta de 1857 Hamilton criou um jogo ao qual deu o nome de jogo icosiano, aludindo aos 20 vértices do dodecaedro. A cada um desses vértices era atribúıdo o nome de uma capital e o objectivo do jogo era, usando as arestas do dodecaedro, planear um percurso que visitasse cada uma das cidades exactamente uma vez e terminasse na cidade de onde se tinha partido. Assim, procurava-se um ciclo Hamiltoniano no grafo do dodecaedro. Um exemplo de um tal ciclo é o seguinte: 09/18/2007 05:38 PMIcosian Game -- from Wolfram MathWorld Page 1 of 2http://mathworld.wolfram.com/IcosianGame.html Search Site Algebra Applied Mathematics Calculus and Analysis Discrete Mathematics Foundations of Mathematics Geometry History and Terminology Number Theory Probability and Statistics Recreational Mathematics Topology Alphabetical Index Interactive Entries Random Entry New in MathWorld MathWorld Classroom About MathWorld Send a Message to the Team Order book from Amazon 12,704 entries Sun Aug 26 2007 Recreational Mathematics > Games > General Games Discrete Mathematics > Graph Theory > Simple Graphs > Polyhedral Graphs Recreational Mathematics > Interactive Entries > LiveGraphics3D Applets Icosian Game The Icosian game, also called the Hamiltonian game (Ball and Coxeter 1987, p. 262), is the problem of finding a Hamiltonian circuit along the edges of an dodecahedron, i.e., a path such that every vertex is visited a single time, no edge is visited twice, and the ending point is the same as the starting point (left figure). The puzzle was distributed commercially as a pegboard with holesat the nodes of the dodecahedral graph, illustrated above (right figure). The Icosian Game was invented in 1857 by William Rowan Hamilton. Hamilton sold it to a London game dealer in 1859 for 25 pounds, and the game was subsequently marketed in Europe in a number of forms (Gardner 1957). A graph having a Hamiltonian circuit, i.e., on which the Icosian game may be played, is said to be a Hamiltonian graph. While the skeletons of all the Platonic solids and Archimedean solids (i.e., the Platonic graphs and Archimedean graphs, respectively) are Hamiltonian, the same is not necessarily true for the skeletons of the Archimedean duals, as shown by Coxeter (1946) and Rosenthal (1946) for the rhombic dodecahedron (Gardner 1984, p. 98). SEE ALSO: Dodecahedral Graph, Dodecahedron, Hamiltonian Circuit, Hamiltonian Graph, Herschel Graph, Polyhedral Graph. [Pages Linking Here] REFERENCES: Ball, W. W. R. and Coxeter, H. S. M. Mathematical Recreations and Essays, 13th ed. New York: Dover, pp. 262-266, 1987. Coxeter, H. S. M. "Problem E 711." Amer. Math. Monthly 53, 156, 1946. Dalgety, J. "The Icosian Game." http://puzzlemuseum.com/month/picm02/200207icosian.htm. Gardner, M. "Mathematical Games: About the Remarkable Similarity between the Icosian Game and the Towers of Hanoi." Sci. Amer. 196, 150-156, May 1957. Hamilton, W. R. Quart. J. Math., 5, 305, 1862. Hamilton, W. R. Philos. Mag. 17, 42, 1884. Harary, F. Graph Theory. Reading, MA: Addison-Wesley, p. 4, 1994. Herschel, A. S. "Sir Wm. Hamilton's Icosian Game." Quart. J. Pure Applied Math. 5, 305, 1862. Lucas, E. Récréations mathématiques, Vol. 2. Paris: Gauthier-Villars, pp. 201 and 208- 255, 1891. MacTutor Archive. "Mathematical Games and Recreations." http://www- groups.dcs.st- and.ac.uk/~history/HistTopics/Mathematical_games.html#49. Rosenthal, A. "Solution to Problem E 711: Sir William Hamilton's Icosian Game." Amer. Other Wolfram Sites: Wolfram Research Demonstrations Site Integrator Tones Functions Site Wolfram Science more… Download Mathematica Player >> Complete Mathematica Documentation >> Show off your math savvy with a MathWorld T-shirt. 09/18/2007 05:38 PMIcosian Game -- from Wolfram MathWorld Page 1 of 2http://mathworld.wolfram.com/IcosianGame.html Search Site Algebra Applied Mathematics Calculus and Analysis Discrete Mathematics Foundations of Mathematics Geometry History and Terminology Number Theory Probability and Statistics Recreational Mathematics Topology Alphabetical Index Interactive Entries Random Entry New in MathWorld MathWorld Classroom About MathWorld Send a Message to the Team Order book from Amazon 12,704 entries Sun Aug 26 2007 Recreational Mathematics > Games > General Games Discrete Mathematics > Graph Theory > Simple Graphs > Polyhedral Graphs Recreational Mathematics > Interactive Entries > LiveGraphics3D Applets Icosian Game The Icosian game, also called the Hamiltonian game (Ball and Coxeter 1987, p. 262), is the problem of finding a Hamiltonian circuit along the edges of an dodecahedron, i.e., a path such that every vertex is visited a single time, no edge is visited twice, and the ending point is the same as the starting point (left figure). The puzzle was distributed commercially as a pegboard with holes at the nodes of the dodecahedral graph, illustrated above (right figure). The Icosian Game was invented in 1857 by William Rowan Hamilton. Hamilton sold it to a London game dealer in 1859 for 25 pounds, and the game was subsequently marketed in Europe in a number of forms (Gardner 1957). A graph having a Hamiltonian circuit, i.e., on which the Icosian game may be played, is said to be a Hamiltonian graph. While the skeletons of all the Platonic solids and Archimedean solids (i.e., the Platonic graphs and Archimedean graphs, respectively) are Hamiltonian, the same is not necessarily true for the skeletons of the Archimedean duals, as shown by Coxeter (1946) and Rosenthal (1946) for the rhombic dodecahedron (Gardner 1984, p. 98). SEE ALSO: Dodecahedral Graph, Dodecahedron, Hamiltonian Circuit, Hamiltonian Graph, Herschel Graph, Polyhedral Graph. [Pages Linking Here] REFERENCES: Ball, W. W. R. and Coxeter, H. S. M. Mathematical Recreations and Essays, 13th ed. New York: Dover, pp. 262-266, 1987. Coxeter, H. S. M. "Problem E 711." Amer. Math. Monthly 53, 156, 1946. Dalgety, J. "The Icosian Game." http://puzzlemuseum.com/month/picm02/200207icosian.htm. Gardner, M. "Mathematical Games: About the Remarkable Similarity between the Icosian Game and the Towers of Hanoi." Sci. Amer. 196, 150-156, May 1957. Hamilton, W. R. Quart. J. Math., 5, 305, 1862. Hamilton, W. R. Philos. Mag. 17, 42, 1884. Harary, F. Graph Theory. Reading, MA: Addison-Wesley, p. 4, 1994. Herschel, A. S. "Sir Wm. Hamilton's Icosian Game." Quart. J. Pure Applied Math. 5, 305, 1862. Lucas, E. Récréations mathématiques, Vol. 2. Paris: Gauthier-Villars, pp. 201 and 208- 255, 1891. MacTutor Archive. "Mathematical Games and Recreations." http://www- groups.dcs.st- and.ac.uk/~history/HistTopics/Mathematical_games.html#49. Rosenthal, A. "Solution to Problem E 711: Sir William Hamilton's Icosian Game." Amer. Other Wolfram Sites: Wolfram Research Demonstrations Site Integrator Tones Functions Site Wolfram Science more… Download Mathematica Player >> Complete Mathematica Documentation >> Show off your math savvy with a MathWorld T-shirt. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 66 A noção de ciclo (resp. caminho aberto) Hamiltoniano é análoga à de circuito (resp. atalho aberto) Euleriano, mas é importante notar que estes dois problemas são notori- amente distintos. Enquanto que a caracterização dos grafos que admitem circuitos ou atalhos Eulerianos é simples e computacionalmente eficaz, não existem até à data ca- racterizações deste tipo para os grafos Hamiltonianos, não obstante o esforço e empenho de várias gerações de matemáticos, e a importância do problema. Exemplo. Este exemplo mostra a independência entre a existência de circuitos (ata- lhos) Eulerianos e a existência de ciclos (caminhos) Hamiltonianos num grafo. grafo circuito Euleriano atalho Euleriano ciclo Hamiltoniano caminho Hamiltoniano (a) sim não sim sim (b) não sim não sim (c) não não sim sim (d) sim não não sim (e) não sim não não (f) não não não sim Observação. É fácil de ver que, com excepção do grafo com dois vértices unidos por uma aresta de multiplicidade 2, um grafo G possui um ciclo ou caminho Hamiltoniano se e só se o grafo simples associado a G (o que se obtém de G eliminando os lacetes e todas menos uma das arestas entre cada par de vértices adjacentes em G) possui um ciclo ou caminho Hamiltoniano, respectivamente. Por esta razão, todos os grafos considerados nesta e na próxima secções serão simples. Como tal, descreveremos os passeios nestes grafos pela sua sequência de vértices. Dado um grafo, determinar se este possui ou não um caminho ou um ciclo Hamil- toniano é, como já foi referido, um problema em geral muito complexo. Não sendo conhecidas condições necessárias e suficientes para um grafo ser Hamiltoniano, apre- sentaremos de seguida algumas condições necessárias, que nos permitirão concluir que certos grafos não são Hamiltonianos, e também algumas condições suficientes, que per- mitirão concluir que certos grafos são Hamiltonianos. Condição suficientes para um CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 67 grafo ser Hamiltoniano são dadas pelos Teoremas de Dirac e de Ore, que apresentare- mos em breve. Antes de o fazer, comecemos com algumas observações simples. Os exemplos mais simples de grafos Hamiltonianos são os ciclos Cn, com n , 3 vértices v1, . . . , vn e n arestas {v1, v2}, . . . , {vi, vi+1}, . . . , {vn!1, vn}, {vn, v1}: C7 Além disso, dado um grafo Hamiltoniano G e um grafo G# obtido de G por adição de arestas, é claro que G# é aindaHamiltoniano já que um circuito Hamiltoniano em G será ainda um circuito Hamiltoniano em G#. Em particular, o grafo completo Kn é Hamiltoniano para n , 3 pois contém o ciclo Cn como seu subgrafo gerador. No teorema que se segue, enunciamos duas condições necessárias para um grafo ser Hamiltoniano. A prova é deixada como exerćıcio. Teorema 3.8. Seja G um grafo Hamiltoniano. Então: (a) G não tem pontes; (b) Se 1 %= S ! V (G) então #(G+ S) . |S|. Exemplo. O grafo G abaixo não é Hamiltoniano porque a aresta a indicada é uma ponte. O grafo H também não é Hamiltoniano porque se v for o vértice indicado na figura então #(H + v) = 2 > 1. No entanto, basta acrescentar uma qualquer aresta entre vértices não adjacentes a G (respectivamente, H) para que este grafo se torne Hamiltoniano. Por esta razão, dizemos que G e H são ambos grafos não- Hamiltonianos maximais. a G v H Exemplo. Se retirarmos os três vértices representados a preto no grafo G abaixo, obtemos um grafo com 4 componentes conexas. Logo G não é Hamiltoniano. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 68 Vamos agora determinar condições suficientes para que um grafo seja Hamiltoniano. Historicamente, o primeiro resultado neste sentido deve-se a Dirac, tendo este sido posteriormente generalizado por Ore. No entanto, por razões de encadeamento lógico dos argumentos a usar, iremos inverter a ordem histórica destes resultados e provar primeiro um teorema que implicará o Teorema de Ore, do qual o Teorema de Dirac decorrerá como corolário. Teorema 3.9. Seja G um grafo simples com n , 3 vértices e sejam u e v vértices não adjacentes de G tais que deg(u) + deg(v) , n. Então G é Hamiltoniano se e só se G + {u, v} é Hamiltoniano, onde G + {u, v} é o grafo obtido adicionando a aresta {u, v} a G. Demonstração. A implicação directa é trivial. Suponhamos então que G + {u, v} é Hamiltoniano e seja C um ciclo Hamiltoniano em G + {u, v}. Se a aresta {u, v} não ocorre em C então C é ainda um ciclo Hamiltoniano em G, o que prova que G é Hamiltoniano. Caso contrário, C + {u, v} é um caminho Hamiltoniano em G entre os vértices u e v, digamos u = x1 + x2 + · · ·+ xn = v. Sejam r = deg(u) e s = deg(v). Por hipótese, r + s , n. Como C + {u, v} contém todos os vértices de G e u e v não são adjacentes em G, os vizinhos de u e v estão entre os vértices x2, . . . , xn!1. Vejamos que existe um vizinho xk de u (k , 2) tal que xk!1 é vizinho de v. Se assim não fosse, v teria no máximo n+ 1+ r vizinhos, ou seja, s . n+ 1+ r )* r + s . n+ 1 o que contradiria a hipótese. Logo, existe k , 2 tal que u e xk são adjacentes, bem como xk!1 e v. Podemos então formar o ciclo Hamiltoniano: u = x1 + · · ·+ xk!1 + v = xn + xn!1 + · · ·+ xk + u. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 69 u v x x k-1 k Logo G é também Hamiltoniano. Podemos aplicar sucessivamente o teorema anterior a um grafo, acrescentando-lhe novas arestas. Se ao fim de algumas iterações obtivermos um grafo Hamiltoniano, poderemos concluir que o grafo inicial também era Hamiltoniano, pelo Teorema 3.9. Por exemplo, se por este processo aplicado ao grafo simples G obtivermos um grafo completo Kn, com n , 3, então G é Hamiltoniano. Exemplo. Aplicações sucessivas do Teorema 3.9 permitem chegar ao grafo completo K6, logo G é também Hamiltoniano (como, de resto, é fácil de concluir directamente). Teorema 3.10 (Ore, 1960). Seja G um grafo simples com n , 3 vértices tal que para qualquer par de vértices não adjacentes u e v se tem deg(u) + deg(v) , n. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 70 Então G é Hamiltoniano. Demonstração. A hipótese do Teorema 3.9 é válida para todos os pares de vértices não adjacentes de G portanto, por esse teorema, o grafo G é Hamiltoniano se e só se o grafo completo Kn o for. Logo, G é Hamiltoniano. Enunciamos finalmente o Teorema de Dirac, que é consequência imediata do Teo- rema de Ore. Teorema 3.11 (Dirac, 1952). Seja G um grafo simples com n , 3 vértices. Se deg(v) , n/2 para todo o vértice v de G, então G é Hamiltoniano. Exemplo. O grafo seguinte é Hamiltoniano: Note-se que as condições dos Teoremas de Dirac e de Ore são suficientes mas não necessárias. Por exemplo, o ciclo Cn é Hamiltoniano mas, para n , 5, não satisfaz essas condições. Para terminar esta secção, apresentamos um algoritmo que permite, num grafo que satisfaz as hipóteses do Teorema de Ore (em particular, basta que satisfaça as hipóteses do Teorema de Dirac), construir um ciclo Hamiltoniano. A prova da eficácia do algo- ritmo é idêntica à prova do Teorema 3.9, e será portanto omitida. Algoritmo Seja G um grafo simples com n , 3 vértices que satisfaz as hipóteses do Teorema de Ore. Passo 1. Escolher um vértice qualquer de G e, acrescentando vértices adjacentes à direita e à esquerda, construir um caminho aberto em G de comprimento cada vez maior, até não ser posśıvel prosseguir, digamos C = y1 + y2 + · · ·+ ym, 3 . m . n, de comprimento m+ 1. CAPÍTULO 3. INTRODUÇÃO À TEORIA DE GRAFOS 71 Passo 2. (i) Se y1 e ym não forem adjacentes em G, prosseguimos para o Passo 3. Caso contrário, y1 e ym são adjacentes e prosseguimos para (ii). (ii) Se m = n então y1 + y2 + · · · + ym + y1 é um ciclo Hamiltoniano em G; parar. Caso contrário, y1 e ym são adjacentes e m < n; ir para (iii). (iii) Existe um vértice z, diferente de y1, . . . , ym, que é adjacente a yk, para algum 1 . k . m. Substituir C pelo caminho aberto de comprimento m z + yk + yk+1 + · · ·+ ym + y1 + · · ·+ yk!1. De seguida, estender C acrescentando vértices adjacentes à direita e à esquerda até não ser posśıvel prosseguir, de forma a termos ainda um caminho aberto de comprimento maior ou igual a m. Voltar ao ińıcio do Passo 2. Passo 3. Encontrar um vértice yk, com 1 < k < m, tal que y1 é adjacente a yk e ym é adjacente a yk!1. Substituir C pelo caminho y1 + · · ·+ yk!1 + ym + ym!1 + · · ·+ yk. de comprimento m+ 1, tal como C. As duas extremidades deste caminho são adjacen- tes. Voltar ao Passo 2(ii). De facto, é posśıvel modificar ligeiramente este algoritmo de forma a obter uma prova, também construtiva, do seguinte resultado: Teorema 3.12. Seja G um grafo simples com n vértices tal que para qualquer par de vértices não adjacentes u e v de G se tem deg(u) + deg(v) , n+ 1. Então G tem um caminho Hamiltoniano, que pode ser obtido adaptando de forma natural o algoritmo apresentado acima. Exerćıcio. Averigue se o seguinte grafo é ou não Hamiltoniano:
Compartilhar