Lista de Exercícios - Teoria dos Grafos
Michel Alves dos Santos ∗
Novembro de 2010
∗
Bacharelando em Ciência da Computação...
Conteúdo
Lista de Figuras 4
Lista de Tabelas 5
1 Exercícios do Capítulo 4 6
1.1 Determinine todas as árvores parciais do g...
2.7 Considere dois vértices v e w em um grafo G com n vértices. Mostre que, se
d(v) + d(w) >= n e G possui um percurso ham...
Lista de Figuras
1 Determinação de árvores parciais. . . . . . . . . . . . . . . . . . . . . . . . 6
2 Algumas árvores par...
Lista de Tabelas
5
1 Exercícios do Capítulo 4
1.1 Determinine todas as árvores parciais do grafo G a seguir
(Figura 1).
Figura 1: Determinaçã...
1.3 Um grafo G é autocomplementar se e somente se:
1. G = G.
(a) Que ordem deve ter uma árvore autocomplementar?
(b) Quais...
Figura 3: Modelo para o problema da travessia.
1.5 Um modelo parecido é o “dos 8 litros”: você acha em um
depósito de vinh...
7. Colocamos o conteúdo de 5L em 3L até que 3L encha e com isso teremos 3 litros em
3L, 4 litros em 5L e 1 litro em 8L.
8....
2 Exercícios do Capítulo 8
2.1 Mostre que, se um grafo G não orientado for euleriano,
seu conjunto de arestas poderá ser p...
Se (grau mod 2 == 1) soma ++; //caso seja ímpar
i++;
}
Se (soma > 2) Escreve ‘CAMINHO NÃO EXISTENTE’
Senão Escreve ‘CAMINH...
Upcoming SlideShare
Loading in...5
×

Graph Theory - Exercises - Chapter 4

199
-1

Published on

Some solved exercises of Graph Theory. The reference book used was: "Grafos - Introdução e Prática".

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
199
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Graph Theory - Exercises - Chapter 4

  1. 1. Lista de Exercícios - Teoria dos Grafos Michel Alves dos Santos ∗ Novembro de 2010 ∗ Bacharelando em Ciência da Computação, Universidade Federal do Estado de Alagoas(UFAL). E- mails: michel.mas@gmail.com, michelalavessantos@hotmail.com. Disciplina: Teoria dos Grafos. Docente Responsável: Leonardo Viana Pereira. 1
  2. 2. Conteúdo Lista de Figuras 4 Lista de Tabelas 5 1 Exercícios do Capítulo 4 6 1.1 Determinine todas as árvores parciais do grafo G a seguir (Figura 1). . . . 6 1.2 Como podemos adaptar o algoritmo de Kruskal para obter o valor de uma árvore parcial de valor máximo? . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3 Um grafo G é autocomplementar se e somente se: . . . . . . . . . . . . . . 7 1.4 Um problema muito conhecido é o de atravessar um rio com uma cabra, um lobo e um cesto de alfaces, com o auxílio de um barqueiro, em um barco que só comporta dois desses elementos (problema da travessia). Dadas as restrições óbvias sobre quem pode, ou não, esperar lado a lado em uma margem, monte um modelo de caminho que indique ao menos uma sequência viável de travessia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.5 Um modelo parecido é o “dos 8 litros”: você acha em um depósito de vinhos um garrafão com capacidade para 8 litros, cheio de um vinho que você deseja dividir meio a meio com um amigo. A dificuldade é que, no depósito, existem apenas 2 garrafas vazias, uma com capacidade para 5 e a outra para 3 litros. A divisão talvez seja possível passando-se vinho de uma dessas garrafas para outra, em uma sequência. Monte um modelo que indica a sequência a ser seguida, para que no final se tenham 4 litros na garrafa de 8 e os outros 4, naturalmente, na de 5 litros. . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2 Exercícios do Capítulo 8 10 2.1 Mostre que, se um grafo G não orientado for euleriano, seu conjunto de arestas poderá ser particionado em ciclos disjuntos. . . . . . . . . . . . . . 10 2.2 Explique por que, no PCC orientado, todas as extremidades de arco adici- onadas a um vértice dado serão sempre, ou saídas, ou chegadas. . . . . . . 10 2.3 Construa uma sequência de De Brujin B(2,3). . . . . . . . . . . . . . . . . 10 2.4 Mostre que sempre existe uma sequência de De Brujin (r,s), para quaisquer r,s inteiros positivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.5 Construa um algoritmo para achar um ciclo euleriano em um grafo euleriano não orientado, a partir da construção progressiva de ciclos ao longo de um percurso inicial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.6 Verifique se os grafos a seguir(figura 5) são hamiltonianos ou não-hamiltonianos, justificando a resposta(Dica: Um deles é hamiltoniano e o outro não). . . . 11 2
  3. 3. 2.7 Considere dois vértices v e w em um grafo G com n vértices. Mostre que, se d(v) + d(w) >= n e G possui um percurso hamiltoniano entre v e w, então G é hamiltoniano. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.8 Mostre que os grafos correspondentes aos 5 sólidos platônicos são hamilto- nianos. Quais deles são eulerianos? . . . . . . . . . . . . . . . . . . . . . . 11 3
  4. 4. Lista de Figuras 1 Determinação de árvores parciais. . . . . . . . . . . . . . . . . . . . . . . . 6 2 Algumas árvores parciais do grafo G. . . . . . . . . . . . . . . . . . . . . . 6 3 Modelo para o problema da travessia. . . . . . . . . . . . . . . . . . . . . . 8 4 Problema da divisão do vinho. . . . . . . . . . . . . . . . . . . . . . . . . . 9 5 Verificação de ciclos hamiltonianos. . . . . . . . . . . . . . . . . . . . . . . 11 4
  5. 5. Lista de Tabelas 5
  6. 6. 1 Exercícios do Capítulo 4 1.1 Determinine todas as árvores parciais do grafo G a seguir (Figura 1). Figura 1: Determinação de árvores parciais. (a) Você pode garantir que realmente determinou todas? (b) O processo que você utilizou seria eficaz para o grafo H? Figura 2: Algumas árvores parciais do grafo G. (a) Não. (b) Seria necessário um tempo considerável de processamento uma vez que o processo usado foi a retirada aleatória de ciclos. Como o grafo H possui vários ciclos o processo não seria eficaz. 1.2 Como podemos adaptar o algoritmo de Kruskal para obter o valor de uma árvore parcial de valor máximo? É simples, basta ao invés de pegar a aresta com menor valor a cada iteração, pegar a arestas com maior valor em cada iteração, dessa forma o resultado será o valor de uma árvore parcial de valor máximo. 6
  7. 7. 1.3 Um grafo G é autocomplementar se e somente se: 1. G = G. (a) Que ordem deve ter uma árvore autocomplementar? (b) Quais serão as árvores autocomplementares? 1.4 Um problema muito conhecido é o de atravessar um rio com uma cabra, um lobo e um cesto de alfaces, com o auxílio de um barqueiro, em um barco que só comporta dois desses ele- mentos (problema da travessia). Dadas as restrições óbvias sobre quem pode, ou não, esperar lado a lado em uma mar- gem, monte um modelo de caminho que indique ao menos uma sequência viável de travessia. Levando em consideração que todos estavam na margem 1 e o objetivo é que todos estejam na margem 2, teremos o seguinte algoritmo: 1. Barqueiro leva ovelha para margem 2. 2. Barqueiro volta só para margem 1. 3. Barqueiro leva o lobo ou cesto de alfaces para margem 2. 4. Barqueiro volta com o a ovelha. 5. Barqueiro leva o cesto de alfaces ou lobo. 6. Barqueiro volta só. 7. Barqueiro leva a ovelha. Para montar um modelo de caminho algumas abstrações devem serem feitas. Cada nó terá em seu rótulo um par ordenado (x,y) onde x pertence ao conjunto 1,2,3,4 representando, respectivamente, a ovelha, o lobo, o cesto de alface e o barqueiro e y pertence ao conjunto 1,2 onde representamos, respectivamente, a margem 1 e margem 2. Ou seja, no par terá quem está no barco e para onde está indo, lembrando que no caso onde x = 1 ou x = 2, ou x = 3, fica subentendido que o barqueiro também se encontra no barco. A ilustração a seguir reforça a sequência de travessia apresentada (Figura 3). Vale observar que um algoritmo de busca em profundidade resolveria esse modelo de caminho. 7
  8. 8. Figura 3: Modelo para o problema da travessia. 1.5 Um modelo parecido é o “dos 8 litros”: você acha em um depósito de vinhos um garrafão com capacidade para 8 litros, cheio de um vinho que você deseja dividir meio a meio com um amigo. A dificuldade é que, no depósito, existem apenas 2 garrafas vazias, uma com capacidade para 5 e a outra para 3 litros. A divisão talvez seja possível passando-se vinho de uma dessas garrafas para outra, em uma sequência. Monte um modelo que indica a sequência a ser seguida, para que no final se tenham 4 litros na garrafa de 8 e os outros 4, naturalmente, na de 5 litros. Para a resolução desse problema propomos o seguinte algoritmo: 1. A garrafa 8L está cheia. 2. Colocamos 8L em 5L, sobrando 3 litros em 8L. 3. Colocamos 5L em 3L, sobrando 2 litros em 5L. 3 litros em 8L e 3 litros em 3L. 4. Colocamos 3L em 8L, dessa forma 8L ficará com 6 litros e 5L com 2 litros. 5. Colocamos 5L em 3L, dessa forma 3L estará com 2 litros, 5L vazia e 8L com 6 litros. 6. Colocamos o conteúdo de 8L em 5L, assim 5L ficará com 5 litros, 8L com 1 litro e 3L com 2 litros. 8
  9. 9. 7. Colocamos o conteúdo de 5L em 3L até que 3L encha e com isso teremos 3 litros em 3L, 4 litros em 5L e 1 litro em 8L. 8. Colocamos o conteúdo de 3L em 8L e assim teremos 8L com 4 litros e 5L com 4 litros. Para montar o modelo de caminho algumas abstrações devem serem feitas. Cada nó terá em seu rótulo uma tupla de três ordenado (x,y,z) onde x e z pertencem ao conjunto 8,3,5 representando, respectivamente: garrafa de 8L, garrafa de 3L e garrafa de 5L e y pertence ao conjunto 1,2,3,4,5,6,7,8 representando a quantidade de litros a serem tiradas de x e colocadas em z. Vale observar que um algoritmo de busca em profundidade resolveria esse modelo de caminho. Figura 4: Problema da divisão do vinho. 9
  10. 10. 2 Exercícios do Capítulo 8 2.1 Mostre que, se um grafo G não orientado for euleriano, seu conjunto de arestas poderá ser particionado em ciclos dis- juntos. Seja G um grafo euleriano. O caso em que G não possui arestas é trivial. Sendo G conexo e tendo pelo menos uma aresta, todo o seu vértice tem, pelo menos, grau 2. Portanto, pelo Teorema de Euler, possui um ciclo C1. Retirando de G as arestas de C1 obtemos um subgrafo gerador G1 cujos vértices têm ainda todos grau par. Se G1 não tem arestas, está terminada a demonstração desta implicação. Caso contrário, G1 tem um ciclo C2 e a repetição do argumento anterior conduz-nos a um grafo G2, subgrafo gerador de G1, cujos vértices têm grau par. Se G2 não tem arestas terminamos, caso contrário repete-se o argumento. E continuamos com este raciocínio sucessivamente até obtermos um grafo Gn totalmente desconexo (isto é, sem arestas). Aí teremos uma partição das arestas de G em n ciclos. 2.2 Explique por que, no PCC orientado, todas as extremidades de arco adicionadas a um vértice dado serão sempre, ou saídas, ou chegadas. 2.3 Construa uma sequência de De Brujin B(2,3). B(2, 3) : 11101000 2.4 Mostre que sempre existe uma sequência de De Brujin (r,s), para quaisquer r,s inteiros positivos. 2.5 Construa um algoritmo para achar um ciclo euleriano em um grafo euleriano não orientado, a partir da construção progressiva de ciclos ao longo de um percurso inicial. grau = 0; soma = 0; matrizAdjacencias[][]; N = NumeroDeLinhas(matrizAdjacencias[][]); i = 0; //i é a linha atual Enquanto ((soma <= 2) e ( i<= N)) { grau = 0; Para( j=0; j < N; j++) grau = grau + matrizAdjacencias[i][j]; 10
  11. 11. Se (grau mod 2 == 1) soma ++; //caso seja ímpar i++; } Se (soma > 2) Escreve ‘CAMINHO NÃO EXISTENTE’ Senão Escreve ‘CAMINHO EXISTENTE’ 2.6 Verifique se os grafos a seguir(figura 5) são hamiltonia- nos ou não-hamiltonianos, justificando a resposta(Dica: Um deles é hamiltoniano e o outro não). Figura 5: Verificação de ciclos hamiltonianos. O primeiro grafo é hamiltoniano porque podemos passar uma única vez por cada vértice. Já o segundo grafo, não é hamiltoniano porque não podemos encontrar um caminho hamiltoniano. Sempre faz-se necessário passar mais de uma vez por um vértice. 2.7 Considere dois vértices v e w em um grafo G com n vértices. Mostre que, se d(v) + d(w) >= n e G possui um percurso hamiltoniano entre v e w, então G é hamiltoniano. 2.8 Mostre que os grafos correspondentes aos 5 sólidos platô- nicos são hamiltonianos. Quais deles são eulerianos? 11

×