Graph Theory - Exercises - Chapter 8

450 visualizações

Publicada em

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

Publicada em: Educação
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
450
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
8
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Graph Theory - Exercises - Chapter 8

  1. 1. Teoria dos Grafos - Exercícios do Capítulo 8 Michel Alves dos Santos ∗ Junho de 2011 Conteúdo Lista de Figuras 1 1 Mostre que, se um grafo G não orientado for euleriano, seu conjunto de arestas poderá ser particionado em ciclos disjuntos. 1 2 No Exemplo do item 8.4.2, execute o algoritmo de Dijkstra e verifique a cons- trução da matriz de alocação, o resultado do algoritmo húngaro e os caminhos apontados pelo vetor ‘Anterior’ acompanhando-os no grafo. 2 3 Construa uma sequência de De Brujin B(2,3). 2 4 Mostre que o gráfico de Petersen(figura 1) é não hamiltoniano. Explique por- que as condições suficientes expostas no capítulo não se aplicam a ele.(Dica: Aproveite a simetria do grafo). 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. 3 6 Verifique se os grafos a seguir(figura 2) são hamiltonianos ou não-hamiltonianos, justificando a resposta(Dica: Um deles é hamiltoniano e o outro não). 3 Lista de Figuras 1 Grafo de Petersen. Sua sequência gráfica é (3,3,3,3,3,3,3,3,3,3). . . . . . . . . . . . 2 2 Verificação de ciclos hamiltonianos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 Mostre que, se um grafo G não orientado for euleriano, seu conjunto de arestas poderá ser particionado em ciclos disjuntos. 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 ∗Bacharelando em Ciência da Computação, Universidade Federal do Estado de Alagoas(UFAL). E-mails: mi- chel.mas@gmail.com, michelalavessantos@hotmail.com. Disciplina: Teoria dos Grafos. Docente Responsável: Leo- nardo Viana Pereira. 1
  2. 2. 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 No Exemplo do item 8.4.2, execute o algoritmo de Dijks- tra e verifique a construção da matriz de alocação, o re- sultado do algoritmo húngaro e os caminhos apontados pelo vetor ‘Anterior’ acompanhando-os no grafo. Para execução do algoritmo de Dijkstra a partir do vértice com rótulo ‘01’ teremos o seguinte cenário: [Vértice] [01] [02] [03] [04] [05] [06] [07] [08] [09] [10] [Distâncias][0] [85] [inf] [460] [195] [220] [inf] [370] [285] [320] [Anterior] [-] [01] [01] [08] [02] [02] [01] [09] [05] [05] [Vértice] [11] [12] [13] [14] [15] [Distâncias] [inf] [inf] [435] [inf] [inf] [Anterior] [01] [01] [09] [01] [01] Podemos observar que partindo do primeiro vértice encontraremos algumas regiões onde ocorrerão ‘loopings’, que podem ser chamados de caminhos de repetição. Note que nessa primeira iteração tomando como origem o vértice ‘01’ não conseguiremos alcançar todos os vértices, por isso a tabela de distâncias indicará distância infinita(inf). Outros caminhos de repetição, que poderam ser notados no grafo fornecido, são: (02, 05, 09), (06, 03, 02, 05, 09), (08, 04), (15, 11) e (15, 11, 07, 08, 05, 10, 14). 3 Construa uma sequência de De Brujin B(2,3). B(2,3): 11101000 4 Mostre que o gráfico de Petersen(figura 1) é não hamilto- niano. Explique porque as condições suficientes expostas no capítulo não se aplicam a ele.(Dica: Aproveite a sime- tria do grafo). Figura 1: Grafo de Petersen. Sua sequência gráfica é (3,3,3,3,3,3,3,3,3,3). O grafo de Petersen é um tipo de grafo de Moore. Este grafo tem grande importância teórica, por diversos motivos; em particular além de ser um grafo de Moore, ele tem cintura 5, é não 2
  3. 3. Hamiltoniano e não planar. O grafo de Petersen tem a pecualiaridade de ser contra exemplo para numerosas conjecturas em diferentes temas da teoria dos grafos. Vale a pena registrar que o grafo de Petersen é uma gaiola(grafo regular de cintura dada, com número mínimo de vértices). Uma gaiola é denotada por seus parâmetros como c(d,g) (c = cage). Porém a sequência de graus do grafo de Petersen não é forçosamente hamiltoniana. Um sequência forçosamente hamiltoniana é aquela para qual todas as representações gráficas(conexas) são grafos hamiltonianos. Uma sequência gráfica é uma sequência finita não descrescente, de inteiros positivos, que tenha uma correspondência biunívoca com a sequência dos graus dos vértices de um grafo não orientado G. G é então uma representação gráfica da sequência. 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]; Se (grau mod 2 == 1) soma ++; //caso seja ímpar i++; } Se (soma > 2) Escreve ‘CAMINHO NÃO EXISTENTE’ Senão Escreve ‘CAMINHO EXISTENTE’ 6 Verifique se os grafos a seguir(figura 2) são hamiltonianos ou não-hamiltonianos, justificando a resposta(Dica: Um deles é hamiltoniano e o outro não). Figura 2: 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. 3

×