Matemática Discreta 2011.2 - Grafos DefiniçËoes gerais ... - PUC-Rio
Matemática Discreta 2011.2 - Grafos DefiniçËoes gerais ... - PUC-Rio
Matemática Discreta 2011.2 - Grafos DefiniçËoes gerais ... - PUC-Rio
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Matemática <strong>Discreta</strong> <strong>2011.2</strong> - <strong>Grafos</strong><br />
Definições <strong>gerais</strong> de grafos<br />
1. Desenhe um grafo com seis vértices, cada um com grau 3.<br />
2. Desenhe cinco grafos diferentes que possuam quatro vértices e sejam conexos e simples.<br />
3. Prove que se um grafo tem 100 vértices e mais de 4950 arestas então ele não é simples.<br />
Solução: Se um grafo é simples, então há no máximo 1 aresta para cada par de<br />
vértices. Portanto um grafo simples com 100 vértices tem no máximo ( )<br />
100<br />
2 = 4950<br />
arestas. Se tiver mais arestas do que isso, não pode ser simples.<br />
4. Prove que se um grafo tem 100 vértices e menos de 99 arestas então ele não pode ser<br />
conexo.<br />
Solução: Considere um grafo conexo com 100 vértices. Se ele for conexo, podemos<br />
encontrar uma árvore contendo todos os vértices (Dijkstra faz isso, por<br />
exemplo). Uma árvore com n = 100 vértices tem n − 1 = 99 arestas. Logo se o<br />
grafo inteiro for conexo, ele tem que tem pelo menos 99 arestas.<br />
5. Prove que se um grafo simples tem 100 vértices e mais de 4851 arestas então ele é<br />
conexo.<br />
Solução: Considere um grafo simples com 100 vértices. Suponha que ele não é<br />
conexo. Então existe um subconjunto de k vértices (onde 1 ≤ k ≤ 99) que não<br />
pode ser conectado via caminhos a nenhum dos outros 100 − k vértices. Como<br />
o grafo é simples, entre esses k vértices temos no máximo ( k<br />
2)<br />
arestas (usamos o<br />
mesmo ( raciocínio da solução do exercício 3). Analogamente, existem no máximo<br />
100−k<br />
)<br />
arestas entre os outros 100 − k vértices. Portanto o número de arestas é<br />
2<br />
no máximo<br />
( k<br />
2)<br />
+<br />
( ) n − k<br />
=<br />
2<br />
k(k − 1)<br />
2<br />
+<br />
(100 − k)(99 − k)<br />
2<br />
= k 2 − 100k + 4950.<br />
A função de 2 o grau f(k) = k 2 − 100k + 4950 atinge seu mínimo em k = 50, e tem<br />
a concavidade voltada para cima. Logo o valor máximo que f(k) atinge para k<br />
entre 1 e 99 é f(1) = f(99) = 4851. Assim, mesmo desconhecendo o valor de k,<br />
podemos afirmar que o número de arestas é no máximo 4851.<br />
Concluímos que se o grafo tiver mais arestas do que isso, tem que ser conexo.
<strong>Grafos</strong> Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
6. Seja G = (V, A) um grafo não orientado, simples. Suponha que G tenha exatamente<br />
duas componentes conexas, 100 vértices e um número máximo de arestas para ter<br />
exatamente duas componentes conexas. Determine o número de vértices de cada<br />
componente conexa sabendo que G tem 3539 arestas.<br />
7. Considere o grafo simples com 10 vértices no qual existe uma aresta conectando cada<br />
par de vértices (geralmente denotado K 10 ).<br />
(a) Existem quantos caminhos de comprimento 5 que não repetem vértices<br />
Solução: Basta escolher 6 vértices diferentes, em ordem. A resposta é 10 ×<br />
9 × 8 × 7 × 6 × 5 = 151 200.<br />
(b) Existem quantos caminhos de comprimento 5 que não repetem arestas<br />
Solução: Considere um caminho qualquer de comprimento 5 que não repete<br />
arestas (que pode evidentemente repetir vértice). Seja a o primeiro vértice, b<br />
o segundo, c o terceiro. Então a, b e c são todos diferentes entre si, pois senão<br />
alguma aresta seria repetida. Já o quarto vértice pode ser diferente dos 3<br />
primeiros, caso em que o indicaremos por d, ou pode ser a (mas não pode ser<br />
b nem c). Continuando desta maneira, temos a seguinte árvore (orientada)<br />
de possibilidades, onde letras diferentes designam vértices diferentes:<br />
a<br />
b<br />
c<br />
a<br />
d<br />
d a b e<br />
b c e c e e a b c f<br />
Das 10 configurações possíveis, 1 envolve 6 vértices diferentes (a–f), 6 envolvem<br />
5 vértices diferentes (a–e), e 3 envolvem 4 vértices diferentes (a–d).<br />
Portanto a resposta é:<br />
(10 × 9 × 8 × 7 × 6 × 5) + 6 × (10 × 9 × 8 × 7 × 6) + 3 × (10 × 9 × 8 × 7)<br />
= 347 760.<br />
Página 2 de 19.
Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
<strong>Grafos</strong><br />
8. Determine se existe ou não um grafo com 7 vértices, cujos graus são:<br />
(a) 0, 2, 2, 2, 4, 4, 6.<br />
Solução: Sim, existe: tente fazer o desenho.<br />
Obs: É fácil ver que não existe grafo simples com esses graus.<br />
(b) 2, 2, 3, 3, 4, 4, 5.<br />
Solução: Não. A soma dos graus é ímpar, o que contradiz o teorema do<br />
aperto-de-mãos (segundo o qual a soma dos graus é o dobro do número de<br />
arestas.)<br />
Obs: Na verdade, não é difícil provar que existe um grafo com os graus dados<br />
se e somente se a soma dos graus é par: Conecte dois-a-dois os vértices de<br />
grau ímpar, e acrescente laços. Caracterizar quando existe um grafo simples<br />
com os graus dados é um problema bem mais difícil.<br />
9. Sejam a, v inteiros positivos. Seja G o grafo simples com a + v vértices, sendo a deles<br />
azuis e v vermelhos, tal que que existe uma aresta ligando dois vértices se e somente<br />
se eles são de cores diferentes.<br />
(a) Expresse o número de arestas de G em função de a e v.<br />
(b) Supondo a e v pares, G possui circuito euleriano Justifique.<br />
(c) Supondo a e v ímpares, G possui circuito euleriano Justifique.<br />
(d) Supondo a par e v ímpar, para que condições sobre a e/ou v, G tem um caminho<br />
euleriano<br />
(e) Determine em função de a e v o número de caminhos de comprimento 29 que<br />
começam em algum vértice azul (não especificado).<br />
10. Seja G o grafo com 8 vértices, numerados por 1, 2, 3, 4, 5, 6, 7, 8, em que todos os<br />
vértices estão ligados entre si (inclusive a si mesmos). Quantos caminhos de comprimento<br />
1000 existem entre 2 e 5 Existem ciclos eulerianos nesse grafo Justifique.<br />
11. O complemento de um grafo simples G(V,E) é um grafo simples H(V,F) no qual existe<br />
uma aresta entre dois vértices se e só se não existe uma aresta entre os mesmos vértices<br />
em G. Mostre que o complemento de um grafo bipartido 1 não é necessariamente<br />
bipartido.<br />
12. Considere um grafo sem laços de n vértices rotulados de 1 a n de modo que existe<br />
uma aresta ligando um vértice i a um vértice j se e só se i + j ≤ n + 1.<br />
(a) Considerando n ímpar, expresse, em função de n, o número de arestas desse<br />
grafo.<br />
(b) Considerando n par, determine o número de caminhos de comprimento 2 do<br />
vértice n 2 ao vértice n 2 + 1.<br />
1 Um grafo simples é chamado bipartido se seus vértices podem ser divididos em dois conjuntos disjuntos<br />
(isto é, sem pontos em comum) U e V de modo que toda aresta do grafo liga um vértice de U a<br />
um vértice de V.<br />
Página 3 de 19.
<strong>Grafos</strong> Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
13. Um grafo tem vértices com três graus possíveis: 1, 2, ou 3. Sejam V 1 , V 2 e V 3 o<br />
número de vértices com cada grau, e A o número de arestas, que é múltiplo de 3.<br />
Prove ou exiba um contra-exemplo das seguintes afirmações:<br />
(a) O número de vértices com grau que não é múltiplo de 3 é por sua vez múltiplo<br />
de três.<br />
(b) V 1 + 2V 2 é múltiplo de 3.<br />
14. Considere um grafo dado pelos quatro vértices de um quadrado A, B, C e D, no<br />
sentido anti-horário. Seja X o número de caminhos de comprimento 1000 juntando<br />
A a C, e Y o número de caminhos ligando A a B de comprimento 999. Encontre uma<br />
relação entre X e Y.<br />
15. Um barqueiro B precisa transportar uma cabra C, um lobo L e uma sacola de repolho<br />
R de um lado de um rio para o outro. Como o barco dele é pequeno, só pode levar<br />
no máximo um dos três (C, L ou R). Por razões óbvias ele não pode deixar C<br />
e L juntos ou C e R juntos. O que ele deve fazer Dica: Se quiser represente as<br />
possíveis situações assim: posição inicial: BCLR/ ; posição final: /BCLR. As outras<br />
são: LR/BC , BLR/C, R/BCL, BCR/L, L/BCR, BCL/R, C/BLR, BC/LR. As<br />
situações proibidas são: CLR/B, CL/RB, CR/LB etc. . . Monte um grafo com<br />
arestas do tipo BLR/C – R/BLC (indicando que B atravessa o rio com L) e ache<br />
caminhos de BCLR/ a / BCLR.<br />
16. Uma definição do (famoso) grafo de Petersen é: os vértices são rotulados pelos dez<br />
pares de números 01, 02, 03, 04, 12, 13, 14, 23, 24 e 34. Para cada par de vértices<br />
{i, j}, {k, l} que não tem um algarismo em comum tem uma aresta. Logo temos 15<br />
arestas: 01/23, 01/24, 01/34, 02/13, 02/14, 02/34, etc ... até 12/34, 13/24, e 14/23.<br />
Desenhe o grafo. Mostre que o grafo é o mesmo que os seguintes grafos:<br />
Dica: No primeiro ache um ciclo de nove arestas e encaixe as outras 6 arestas.<br />
Página 4 de 19.
Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
<strong>Grafos</strong><br />
17. Mostre que: se G é um grafo onde todo vértice tem grau 2 e G é conexo, então G é<br />
um ciclo.<br />
18. Mostre que em qualque grafo, o número de vértices com grau impar é par.<br />
Árvores<br />
19. Prove que as seguintes definições de árvores para um grafo G com n vértices são todas<br />
equivalentes:<br />
(a) G é conexo e não tem cíclo.<br />
(b) G não tem cíclo, e um ciclo é formado se qualquer aresta for adicionada a G.<br />
(c) G é conexo, e deixará de ser conexo se qualquer aresta for removida de G.<br />
(d) G é conexo e há exatamente um caminho entre dois vértices quaisquer.<br />
(e) G é conexo e tem n − 1 arestas.<br />
(f) G não tem cíclo e tem n − 1 arestas.<br />
20. Mostre que em qualquer árvore a média dos graus é menor que 2 e maior que 1 se há<br />
mais de uma aresta.<br />
21. Sejam g 1 , g 2 , . . . , g n inteiros positivos. Prove que os g’s são os graus de uma árvore<br />
se, e somente se, ∑ g = 2A, onde A é o número de arestas.<br />
22. Mostre (por indução) que se d j são n inteiros todos ≥ 1 e tais que a soma dos d j é<br />
2n − 2, então existe uma árvore tal que os d j são os graus dos vértices da árvore.<br />
23. Prove que todo grafo conexo com n vértices e pelo menos n arestas tem um cíclo (isto<br />
é, um caminho fechado).<br />
24. As parafinas (ou alcanos) são moléculas compostas de átomos de carbono C e hidrogênio<br />
H. Nos alcanos normais (ou lineares), os átomos de carbono são conectados<br />
a quatro átomos, e os átomos de hidrogênio a apenas um átomo de forma a criar uma<br />
árvore. Mostre, por indução sobre n, que se um alcano normal tem n > 0 átomos de<br />
carbono, ele tem 2n + 2 átomos de hidrogênio.<br />
25. Falso ou verdadeiro Mostre, se verdadeiro ou exibe um contra-exemplo, caso falso.<br />
(a) Seja G = (V, A) um grafo simples sem laço com n vértices numerados de 1 a<br />
n e tal que existe uma aresta em G unindo um vértice i a um vértice j se e<br />
só se |i − j| ≤ 2: G = ({1, . . . , n} , {{i, j} , |i − j| ≤ 2}). Este grafo possui um<br />
caminho Euleriano.<br />
(b) Todo grafo conexo bipartido é uma árvore.<br />
26. Seja G = (V, A) uma árvore com n ≥ 2 vértices. Mostre que, se G não tem nenhum<br />
vértice de grau 2 na árvore, então existem mais vértices de grau 1 do que vértices de<br />
grau maior ou igual a 3: # {v ∈ V, gr(v) = 1} > # {v ∈ V, gr(v) ≥ 3}.<br />
(Dica: pode usar sobre a soma dos graus dos vértices de G.)<br />
Página 5 de 19.
<strong>Grafos</strong> Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
27. Seja G = (V, A) uma árvore com n ≥ 2 vértices.<br />
(a) Mostre que existe pelo menos dois vértices v 1 da árvore com grau 1: gr(v 1 ) = 1.<br />
(Dica: pode usar o resultado sobre a soma dos graus dos vértices de G.)<br />
Seja v M ∈ V o vértice da árvore G com o maior grau. Anotamos gr(v M ) = k.<br />
(b) Exibe um grafo com n = 6 e k = 5.<br />
(c) Mostre que k < n.<br />
(d) Mostre, por indução sobre k, que existem pelo menos k vértices com grau 1:<br />
# {v ∈ V, gr(v) = 1} ≥ k.<br />
(e) Mostre usando a fórmula dos graus que existem pelo menos k vértices com grau<br />
1: # {v ∈ V, gr(v) = 1} ≥ k.<br />
(f) Mostre sem usar indução e sem a fórmula dos graus que existem pelo menos k<br />
vértices com grau 1: # {v ∈ V, gr(v) = 1} ≥ k.<br />
28. Seja A uma árvore com n vértices. Coloque os números de 1 a n nos vértices de duas<br />
maneiras diferentes, obtendo duas árvores rotuladas. Mostre que é possível passar de<br />
uma para a outra por uma seqüência de trocas de números ligados por uma aresta<br />
comum.<br />
29. Uma árvore é um grafo conexo que não tem ciclos. Considere uma árvore com pelo<br />
menos um vértice.<br />
(a) Mostre por absurdo que existe um vértice de grau 1.<br />
(b) Mostre por indução, supondo o item anterior, que uma árvore com n vértices<br />
tem n-1 arestas.<br />
30. Seja G uma floresta com V vértices e C componentes conexas. Ache uma fórmula<br />
para A.<br />
31. Desenhe todas as árvores com 6 vértices ou menos. Quantas árvores diferentes existem<br />
(supondo que não rotulamos os vértices)<br />
Solução: Fazendo os desenhos, vemos que existem 14 árvores: 1 com 1 vértice,<br />
1 com 2 vértices, 1 com 3 vértices, 2 com 4 vértices, 3 com 5 vértices, e 6 com 6<br />
vértices. Por exemplo, as de 6 vértices são as seguintes:<br />
(O seguinte fato pode ser útil: toda árvore com n + 1 vértices pode ser obtida<br />
acrescentando uma aresta a uma árvore com n vértices.)<br />
Página 6 de 19.
Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
<strong>Grafos</strong><br />
32. Você quer adivinhar um número entre 0 e 127 que alguém pensou. A única pergunta<br />
possível é do tipo “o número pensado é maior ou igual a x”, cuja resposta pode ser<br />
sim ou não. Se o número pensado foi 104, qual é a seqüência de perguntas que você<br />
tem que fazer em sua pesquisa binária<br />
Matriz de adjacência<br />
33. Verdadeiro ou falso Justifique sua resposta!<br />
(a) Seja G um grafo com pelo menos 2 vértices, e seja A a sua matriz de adjacência.<br />
Então G é conexo se e somente se existe um inteiro n ≥ 1 tal que todas as<br />
entradas da matriz A n são números diferentes de 0.<br />
Solução: Falso. A condição “existe n tal que todas as entradas da matriz A n<br />
são diferentes de 0” é equivalente a “podemos ligar quaisquer dois vértices<br />
(possivelmente iguais) por um caminho de comprimento fixo n”. Existem<br />
grafos conexos que não têm essa propriedade. Por exemplo, se G é o grafo<br />
com dois vértices ligados por uma aresta então A =<br />
( ) 1 0<br />
n é ímpar e A n = se n é par.<br />
0 1<br />
( 0 1<br />
1 0<br />
)<br />
. Aí A n = A se<br />
(b) Existe um grafo simples (sem laços, sem arestas múltiplas) com 10 vértices cujos<br />
graus são 1, 1, 1, 2, 3, 3, 4, 6, 7, 9.<br />
(c) Se um grafo tem 10 vértices e 50 arestas então ele não é simples (isto é, contém<br />
algum laço ou alguma aresta múltipla).<br />
Solução: Se um grafo com 10 vértices é simples, então ele pode ter no<br />
máximo ( )<br />
10<br />
2 = 45 arestas. Mas o grafo em questão tem 50 arestas, logo não<br />
pode ser simples. VERDADEIRO.<br />
Página 7 de 19.
<strong>Grafos</strong> Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
34. Quais das seguintes matrizes é a matriz de adjacência é um grafo simples não orientado<br />
Porque<br />
⎡<br />
⎤ ⎡<br />
⎤ ⎡<br />
⎤<br />
0 1 0 0 1<br />
0 1 1 1 1<br />
0 1 0 1 0<br />
1 0 1 0 0<br />
1 0 1 1 1<br />
1 0 1 0 1<br />
(a)<br />
⎢ 0 0 0 1 0<br />
⎥ (b)<br />
⎢ 1 1 0 1 1<br />
⎥ (c)<br />
⎢ 0 1 0 1 0<br />
⎥<br />
⎣ 0 0 1 0 1 ⎦ ⎣ 1 1 1 0 1 ⎦ ⎣ 1 0 1 1 0 ⎦<br />
1 0 0 1 0<br />
1 1 1 1 0<br />
0 1 0 0 0<br />
35. Falso ou verdadeiro Justifique suas respostas.<br />
(a) É possível construir um grafo conexo regular2 de grau ímpar com um número<br />
ímpar de vértices.<br />
⎛<br />
⎞<br />
0 1 1 1 0<br />
1 0 1 0 0<br />
(b) Seja a matriz A =<br />
⎜ 1 1 0 1 1<br />
⎟<br />
⎝ 1 0 1 0 1 ⎠ a matriz de adjacência3 de um grafo<br />
0 0 1 1 0<br />
simples. Este grafo tem um ciclo euleriano 4 .<br />
36. Seja G um grafo orientado, e seja A a sua matriz de adjacência orientada.<br />
(a) O que podemos afirmar sobre G se A tem uma linha formada apenas por zeros<br />
Solução: Existe um vértice do qual não há nenhuma aresta saindo.<br />
(b) O que podemos afirmar sobre G se A tem uma coluna formada apenas por zeros<br />
Solução: Existe um vértice do qual não há nenhuma aresta entrando.<br />
2 Um grafo é chamado regular se todos os vértices têm o mesmo grau (que é então chamado o grau do<br />
grafo)<br />
3 Uma matriz quadrada de ordem n A é dita matriz de adjacência de um grafo (não orientado) simples<br />
G de n vértices se cada elemento a ij de A é igual a 1 se existe uma aresta unindo o vértice i ao vértice j<br />
e é igual a zero, caso contrário.<br />
4 Um ciclo (ou circuito) euleriano é um caminho que possa por todas as arestas do grafo uma única<br />
vez e retorna ao ponto de partida.<br />
Página 8 de 19.
Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
<strong>Grafos</strong><br />
37. Suponha que A é a matriz de adjacência de um certo grafo. Sabendo que<br />
⎛<br />
4 3<br />
⎞<br />
5<br />
A 3 = ⎝3 4 5⎠ ,<br />
5 5 7<br />
determine:<br />
(a) a quantidade de caminhos de comprimento 3 saindo do vértice 1;<br />
Solução: A quantidade de caminhos de comprimento k saindo de um vértice<br />
i e terminando em um vértice j é a entrada de A k na linha i e coluna j.<br />
Portanto a resposta procurada é a soma das entradas na primeira linha, isto<br />
é, 4 + 3 + 5 = 12 caminhos.<br />
(b) a quantidade de caminhos de comprimento 6 saindo do vértice 2 e terminado no<br />
vértice 3.<br />
Solução: Temos que calcular a entrada da linha 2 e coluna 3 da matriz A 6 .<br />
Como A 6 = A 3 · A 3 , a resposta é 3 × 5 + 4 × 5 + 5 × 7 = 70.<br />
38. Considere a matriz de adjacência M G de um grafo simples G não orientado com n<br />
vértices, com coeficientes 1 na posição i,j se tiver uma aresta entre os vértices i,j ;<br />
coeficiente −grau(i) na posição diagonal i,i ; e 0 nos outros casos.<br />
Pode-se observar que o M G U n = 0·U n , onde U n é um vetor com todas as componentes<br />
iguais a 1. Ou seja, U n é um autovetor da matriz M G associado ao autovalor 0.<br />
Prove que se o grafo G é desconexo, então existe um segundo autovetor, não múltiplo<br />
de U n , associado ao autovalor 0. Explicite o autovetor em questão em função dos<br />
vértices de cada componente. (Pode-se considerar que uma componente conexa de G<br />
tem vértices v 1 , v 2 , . . . , v k , e os outros vértices de G seriam v k+1 , . . . , v n .)<br />
Página 9 de 19.
<strong>Grafos</strong> Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
Árvores geradoras<br />
39. Explique em palavras o algoritmo de Dikjstra para encontrar o caminho mínimo entre<br />
dois pontos de um grafo cujas arestas têm comprimentos dados.<br />
40. Prove ou dê um contra-exemplo da seguinte afirmação: Uma árvore geradora de peso<br />
mínimo dá o caminho mínimo entre cada par de vértices do grafo.<br />
41. Descreva o algoritmo de Prim. Explique onde ele atua, o que ele deve obter, como<br />
começa, qual é a parte do algoritmo que se repete e quando termina.<br />
42. Aplique os algoritmos de Kruskal e Prim nos seguintes grafos:<br />
⎡<br />
⎤ ⎡<br />
⎤ ⎡<br />
0 5 0 8 4 0 0 0 0 1 2 3<br />
5 0 6 6 9 7<br />
0 0 0 2 3 4<br />
(a)<br />
0 6 0 0 5 7<br />
⎢ 8 6 0 0 8 0<br />
(c)<br />
0 0 0 3 4 5<br />
(e)<br />
⎢<br />
⎥ ⎢ 1 2 3 0 0 0<br />
⎣<br />
⎥<br />
⎣ 4 9 5 8 0 3 ⎦ ⎣ 2 3 4 0 0 0 ⎦<br />
0 7 7 0 3 0 3 4 5 0 0 0 ⎡<br />
(b)<br />
⎡<br />
⎢<br />
⎣<br />
0 1 0 0 3 2<br />
1 0 3 2 0 0<br />
0 3 0 4 0 3<br />
0 2 4 0 1 0<br />
3 0 0 1 0 4<br />
2 0 3 0 4 0<br />
⎤<br />
⎡<br />
⎥ (d)<br />
⎢<br />
⎦ ⎣<br />
0 4 2 0 5<br />
4 0 3 2 2<br />
2 3 0 4 0<br />
0 2 4 0 1<br />
5 2 0 1 0<br />
⎤<br />
⎥<br />
⎦<br />
(f)<br />
⎢<br />
⎣<br />
0 2 2 4 1<br />
2 0 3 4 4<br />
2 3 0 3 5<br />
4 4 3 0 5<br />
1 4 5 5 0<br />
0 5 4 3 2<br />
5 0 10 6 3<br />
4 10 0 10 4<br />
3 6 10 0 5<br />
2 3 4 5 0<br />
43. No grafo abaixo, os vértices representam cidades, as arestas representam estradas, e<br />
os números indicam os valores de pedágio:<br />
⎤<br />
⎥<br />
⎦<br />
⎤<br />
⎥<br />
⎦<br />
A<br />
2<br />
5<br />
4<br />
B<br />
C<br />
2<br />
6<br />
D<br />
3<br />
5<br />
6<br />
2<br />
5<br />
F<br />
2<br />
3<br />
E<br />
G<br />
3<br />
4<br />
3 I 6<br />
2<br />
H<br />
5<br />
1<br />
J<br />
(a) Encontre uma árvore que contenha os caminhos mais econômicos da cidade A às<br />
demais cidades. Indique também quanto custa chegar em cada cidade partindo<br />
de A.<br />
Solução: Aplicando o algoritmo de Dijkstra, tomamos arestas na seguinte<br />
ordem: AB, AD, AC, DF , BE, F G ↔ F H ↔ F I, HJ, Obtemos a árvore<br />
mínima em relação ao vértice A (os números indicam distâncias=custos):<br />
Página 10 de 19.
Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
<strong>Grafos</strong><br />
B2<br />
A0<br />
D4<br />
E7<br />
C5<br />
F6<br />
H9<br />
I9<br />
J14<br />
G9<br />
Obs:Aqui a solução é única.<br />
(b) A árvore obtida no item anterior serve como guia de trajetos mais econômicos<br />
partindo de alguma outra cidade Qual/quais<br />
Solução: Não. Para provar isso, temos que verificar que para toda cidade<br />
x ≠ A existe pelo menos alguma cidade y tal que a custo de ir de x a y<br />
permanecendo na árvore é maior que o custo mínimo. Uma possível escolha<br />
desses y’s é<br />
x B C D E F G H I J<br />
y F D C F E H G H I<br />
Exemplo: se x = B então para y = F o custo pela árvore é 8 enquanto o<br />
custo mínimo é 7 (caminho B → E → F ).<br />
44. Seja o grafo simples com 6 vértices A, B, C, D, E, F , e arestas com os seguintes<br />
comprimentos:<br />
AB = 3, AC = 1, AD = 4, AE = 1, AF = 5.<br />
BC = 9, BD = 2, BE = 6, BF = 5, CD = 3.<br />
CE = 5, CF = 8, DE = 9, DF = 7, EF = 9.<br />
Aplique o algoritmo de Dijkstra e encontre uma árvore mínima em relação ao vértice<br />
A. Dê também a distância de cada vértice a A.<br />
Solução: A árvore contendo uma aresta ligando A a cada uma dos outros vértices<br />
é uma solução A árvore é obtida acrescentando arestas na seguinte ordem: AC,<br />
AE, AB, AD (CD poderia ter sido escolhida aqui), AF . A distância de A aos<br />
vértices A − F é respectivamente 0, 3, 1, 4, 1, 5.<br />
Página 11 de 19.
<strong>Grafos</strong> Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
45. Dado um grafo G = (V, A) simples não orientado, com peso d : A → R + , conexo,<br />
com n vértices e n arestas.<br />
(a) Mostre que G tem um ciclo. (Poderá usar as definições vistas na aula.)<br />
Anotaremos este ciclo por (v 0 , v 1 , . . . , v k = v 0 ) com {v i , v i+1 } ∈ A para i ∈ {0 . . . k−1},<br />
e G ′ o grafo extraído de G com vértices V ′ = {v 0 , v 1 , . . . , v k } e com arestas A ′ =<br />
{<br />
{vi , v i+1 }, 0 ≤ i < k } (ou seja, G ′ é apenas o ciclo).<br />
Seja (V ′ , A ′ \ { {v j , v j+1 } } ) uma árvore geradora de peso mínimo de G ′ (ou seja a<br />
árvore mínima foi obtida removendo a aresta {v j , v j+1 }).<br />
(b) Mostre que (V, A \ { {v j , v j+1 } } ) é uma arvore geradora de peso mínimo de G.<br />
46. Seja G um grafo simples não orientado e valorado (com peso) com 8 vértices. A<br />
tabela abaixo (matriz de adjacência) indica o peso das arestas de G:<br />
v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8<br />
v 1 3 5 8 1<br />
v 2 3 2 1<br />
v 3 5 2 1 2<br />
v 4 1 4<br />
v 5 8 4 6 1<br />
v 6 1 6 5<br />
v 7 1 5 1<br />
v 8 2 1 1<br />
(a) Construa uma árvore de extensão mínima obtida com o algoritmo de Kruskal.<br />
(b) Construa uma árvore obtida com o algoritmo de Dijkstra que represente um caminho<br />
mínimo do vértice v 6 aos demais vértices de G. Dê o valor das “distâncias”<br />
obtidas deste vértice v 6 aos demais vértices do grafo.<br />
(c) Considere que d(x, y) é a menor distância do vértice x ao vértice y em G. Sabendo<br />
que d(2, 7) = 1, d(2, 8) = 2 e d(7, 8) = 1, implemente o problema do<br />
carteiro neste grafo e apresente um ciclo Euleriano de peso mínimo determinando<br />
o seu peso. Justifique os passos do seu algoritmo.<br />
47. Seja o grafo cujos vérices são as palavras:<br />
CAO, GATO, ZEBRA, COELHO, RATO, BARATA<br />
e tal que para qualquer par de palavras existe uma aresta que os liga, que tem<br />
comprimento igual ao número de letras diferentes que estão em uma palavra sem<br />
estar na outra. Por exemplo, a aresta COELHO–ZEBRA tem comprimento 8, pois<br />
há 8 letras diferentes que estão em uma palavra sem estar na outra: C, O, L, H, Z,<br />
B, R, A.<br />
Aplique o algoritmo de Dijkstra e encontre uma árvore mínima em relação ao vértice<br />
CAO. Dê também a distância de cada vértice ao CAO.<br />
Página 12 de 19.
Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
<strong>Grafos</strong><br />
A<br />
2<br />
C<br />
15<br />
3<br />
6<br />
E<br />
T<br />
10<br />
R<br />
12<br />
15<br />
11<br />
J<br />
10<br />
V<br />
3<br />
5<br />
G<br />
12<br />
9<br />
I<br />
7<br />
1<br />
B<br />
2<br />
8<br />
P<br />
S<br />
O<br />
48. (a) Existe um caminho Euleriano no grafo da figura acima Justifique.<br />
(b) Apresente o resultado do algoritmo de Kruskal no grafo da figura acima com as<br />
arestas selecionadas, indicando do lado a ordem na qual foram selecionadas.<br />
(c) Apresente o resultado do algoritmo de Prim no grafo da figura acima, começando<br />
da aresta {BP } com as arestas selecionadas, indicando do lado a ordem na qual<br />
foram selecionadas.<br />
(d) Apresente o resultado do algoritmo de Dijkstra partindo do vértice B no grafo<br />
da figura acima, indicando o menor caminho de B a cada um dos outros vértices<br />
e a ordem na qual os vértices do grafo foram conquistados.<br />
(e) Apresente o resultado do algoritmo de Dijkstra partindo do vértice A no grafo<br />
da figura acima, indicando o menor caminho de A a cada um dos outros vértices<br />
e a ordem na qual os vértices do grafo foram conquistados.<br />
49. Encontre um grafo com pesos nas arestas para o qual os algoritmos de Dikjstra e<br />
Kruskal dêem origem a duas árvores diferentes. Apresente seu argumento aplicando<br />
os algoritmos no grafo.<br />
50. Use algoritmos de Kruskal e Prim nos grafos abaixo para encontrar uma árvore<br />
mínima indicando a ordem em que as arestas são acrescentadas.<br />
Página 13 de 19.
<strong>Grafos</strong> Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
51. Observe o grafo G valorado abaixo:<br />
(a) Construa uma árvore obtida com o algoritmo de Dijkstra que represente um<br />
caminho mínimo do vértice 4 aos demais. Dê o valor das ”distâncias”obtidas<br />
deste vértice (4) aos demais.<br />
(b) Implementando o problema do Carteiro neste grafo, apresente um ciclo euleriano<br />
de custo mínimo e determine o custo deste ciclo.<br />
(c) A conectividade (ou conectividade de vértices) de um grafo pode ser definida<br />
como o menor número de vértices cuja remoção desconecta o grafo (cada vez<br />
que se remove um vértice de um grafo, todas as arestas adjacentes a ele também<br />
são removidas). Determine, justificando, a conectividade do grafo acima.<br />
52. O grafo abaixo mostra o custo (em R$ milhões) de ligar várias cidades por um oleoduto.<br />
Ache um sistema de oleodutos que ligue todas (grafo conexo) minimizando o<br />
custo total.<br />
Página 14 de 19.
Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
<strong>Grafos</strong><br />
53. Observe o grafo G valorado abaixo.<br />
v 1<br />
3<br />
v 3<br />
3<br />
v 2<br />
2<br />
2<br />
v 4<br />
1<br />
2<br />
5<br />
4<br />
2<br />
3<br />
1<br />
v v 5 7<br />
v 8<br />
2<br />
2<br />
v 6<br />
(a) Construa uma árvore obtida com o algoritmo de Prim, indicando a ordem em<br />
que as arestas foram inseridas.<br />
(b) Construa uma árvore obtida com o algoritmo de Dijkstra que represente um<br />
caminho mínimo do vértice v 4 aos demais. Dê o valor das “distâncias” obtidas<br />
deste vértice v 4 a todos os outros vértices de G.<br />
Caminhos Eulerianos / Hamiltonianos<br />
54. Seja G conexo com exatamente dois vértices de grau impar. Mostre que existe um<br />
caminho ligando os dois vértices que passa exatamente uma vez por cada aresta de<br />
G. Dica: Crie uma nova aresta ligando V e W .<br />
55. Ache um ciclo que passa pelo menos uma vez por cada aresta com o menor comprimento<br />
possível no grafo seguinte:<br />
Página 15 de 19.
<strong>Grafos</strong> Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
56. Considere o grafo:<br />
1<br />
5<br />
6<br />
7<br />
2<br />
8<br />
4<br />
3<br />
(a) Decida se este grafo possui um ciclo euleriano ou um caminho euleriano, justificando<br />
sua resposta. Apresente o ciclo ou caminho, caso exista.<br />
(b) Considerando que o peso de cada aresta (x, y) é dado por x + y, apresente uma<br />
árvore obtida com o algoritmo de Dijkstra que represente um caminho mínimo<br />
do vértice 5 aos demais vértices. Dê o valor das “distâncias” obtidas deste vértice<br />
aos demais.<br />
57. Considere um grafo G=(V,E) não orientado com 7 vértices tal que:<br />
∀i, j ∈ V, {i, j} ∈ E ⇔ mdc(i, j) = 1 ∧ i ≠ j.<br />
(a) Determine o número de arestas de G.<br />
(b) Determine o número de caminhos de comprimento 3 em G do vértice 3 para o<br />
vértice 4.<br />
(c) Decida se este grafo possui um ciclo euleriano ou um caminho euleriano e<br />
apresente-o.<br />
58. Seja G o grafo com 8 vértices, numerados por 1, 2, 3, 4, 5, 6, 7, 8, em que todos os<br />
vértices estão ligados entre si (inclusive a si mesmos). Quantos caminhos de comprimento<br />
1000 existem entre 2 e 5 Existem ciclos eulerianos nesse grafo Justifique,<br />
claro.<br />
59. Falso ou verdadeiro Justifique suas respostas.<br />
(a)<br />
É possível construir um grafo simples conexo regular de grau ímpar com um<br />
número ímpar de vértices.<br />
(b) Uma matriz A, quadrada de ordem n é dita matriz de adjacência de um grafo<br />
simples G se G tem n vértices e cada elemento a ij de A é igual a 1 se existe uma<br />
aresta unindo o vértice i ao vértice j e é igual a zero, caso contrário. Seja<br />
⎡<br />
A =<br />
⎢<br />
⎣<br />
0 1 1 1 0<br />
1 0 1 0 0<br />
1 1 0 1 1<br />
1 0 1 0 1<br />
0 0 1 1 0<br />
a matriz de adjacência de um grafo. Este grafo tem um ciclo Euleriano<br />
⎤<br />
⎥<br />
⎦ .<br />
Página 16 de 19.
Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
<strong>Grafos</strong><br />
60. Considere uma família de grafos G i (V i , E i ). V i é o conjunto dos vértices de G i definidos<br />
pelos pontos do R 2 de coordenadas inteiras entre 0 e i. E i é o conjunto das<br />
arestas de G i de tal modo que se u é uma aresta que une os vértices P e Q de G i<br />
então as coordenadas de P e Q diferem de uma unidade, em uma e somente uma<br />
coordenada, conforme os exemplos abaixo.<br />
(0,0) <br />
G1 <br />
(0,0) <br />
G2 <br />
(a) Quantos vértices e quantas arestas possui o grafo G 5 <br />
(b) Generalize, em função de i o número de vértices e arestas do grafo G i .<br />
(c) Para que valor(es) de i, G i é um grafo euleriano Justifique.<br />
(d) Quando G i não é euleriano, quantas arestas, em função de i devo acrescentar<br />
para torná-lo euleriano<br />
61. Sejam a, v inteiros positivos. Considere o grafo simples com a + v vértices, sendo<br />
a deles azuis e v vermelhos, tal que que existe uma aresta ligando dois vértices se e<br />
somente se eles são de cores diferentes. Para quais valores de a e v existe caminho<br />
Euleriano (fechado ou não) neste grafo (Dica: ver questão 9).<br />
Solução: Para existir caminho Euleriano, é necessário e suficiente que o número<br />
de vértices de grau ímpar seja 0 ou 2. O grafo em questão tem a vértices de grau<br />
v e v vértices de grau a. Portanto, as possibilidades são exatamente as seguintes:<br />
• ou a e v são pares;<br />
• ou a é ímpar e v = 2;<br />
• ou v é ímpar e a = 2;<br />
• ou a = v = 1.<br />
Página 17 de 19.
<strong>Grafos</strong> Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
62. Considere o grafo da figura a seguir.<br />
(a) Construa uma árvore obtida com o algoritmo de DIJKSTRA que represente um<br />
caminho mínimo do vértice v 3 aos demais vértices de G.<br />
(b) Complete a tabela com as distâncias do vértice v 3 aos demais vértices do grafo<br />
obtidas por este algoritmo.<br />
v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8<br />
Distâncias de v 3 a. . .<br />
(c) Seja d(x, y) a distância mínima entre os vértices x e y. Sabendo que d(6, 7) = 10;<br />
d(6, 8) = 7 e d(7, 8) = 5, implemente o problema do CARTEIRO neste grafo e<br />
apresente um ciclo de menor peso possível que contenha cada aresta pelo menos<br />
uma vez.<br />
Página 18 de 19.
Matemática <strong>Discreta</strong> <strong>2011.2</strong><br />
<strong>Grafos</strong><br />
Coloração / Planaridade<br />
63. Seja G um grafo simples com 8 vértices A, B, . . . , H e arestas com “pesos” (ou “comprimentos”)<br />
de acordo com a tabela abaixo (onde entradas vazias correspondem a<br />
arestas inexistentes):<br />
(a) G não é 2-colorível. Justifique.<br />
A B C D E F G H<br />
A 3 5 8 1<br />
B 3 2 1<br />
C 5 2 1 2<br />
D 1 4<br />
E 8 4 6 1<br />
F 1 6 5<br />
G 1 5 1<br />
H 2 1 1<br />
(b) G é 3-colorível. Apresente uma coloração que justifique esta afirmação.<br />
(c) Aplique o algoritmo de Dijkstra e obtenha uma árvore contendo caminhos mínimos<br />
do vértice F aos demais vértices de G.<br />
Sua resposta deve conter:<br />
• o desenho da árvore;<br />
• a distância de cada vértice a F ;<br />
• a ordem segundo a qual as arestas surgiram no algorítmo de Djikstra.<br />
(d) Solucione o problema do carteiro neste grafo, isto é, encontre um caminho fechado<br />
pasando por todas as arestas com menor peso possível. Qual é esse peso<br />
Justifique os passos do seu algoritmo.<br />
Na sua resposta, use a notação de “palavra” para descrever um circuito; por<br />
exemplo a palavra AEF A representa o circuito com arestas AE, EF , F A, nessa<br />
ordem.<br />
64. Mostre que o grafo da esquerda (3 casa + 3 utilidades) não pode ser desenhado no<br />
plano sem interseções de arestas. Dica: Se fosse possível, teríamos o grafo do meio.<br />
Ligando A2 e 1L temos o grafo da direita. Agora não tem com ligar 3 e G. Justifique!<br />
Página 19 de 19.