CI065 CI755 Algoritmos e Teoria dos Grafos

Documentos relacionados
Subconjuntos Especiais

Teoria dos Grafos. Aulas 3 e 4. Profa. Alessandra Martins Coelho

Árvores UFES. Teoria dos Grafos. CC/EC/Mestrado

Módulo de Equações do Segundo Grau. Equações do Segundo Grau: Resultados Básicos. Nono Ano

Teoria dos Grafos. Edson Prestes

IFRN. Conexidade e Distância. Prof. Edmilson Campos

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Limitada Uma Pesquisa Algorítmica

2 Conceitos Básicos. onde essa matriz expressa a aproximação linear local do campo. Definição 2.2 O campo vetorial v gera um fluxo φ : U R 2 R

Módulo de Princípios Básicos de Contagem. Segundo ano

Teoria dos Grafos. Edson Prestes

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Roteamentos AULA ... META. Introduzir alguns problemas de roteamento. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de:

3.8 O Problema do Caixeiro Viajante

Universidade Federal de Goiás Campus Catalão Departamento de Matemática

Aplicações Diferentes Para Números Complexos

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

Complexidade de Algoritmos. Edson Prestes

Aula 5. Uma partícula evolui na reta. A trajetória é uma função que dá a sua posição em função do tempo:

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

Inteligência Artificial

Recorrendo à nossa imaginação podemos tentar escrever números racionais de modo semelhante: 1 2 =

Matemática Discreta. Leandro Colombi Resendo. Matemática Discreta Bacharel em Sistemas de Informações

Prof. Daniela Barreiro Claro

2 Segmentação de imagens e Componentes conexas

Ondas EM no Espaço Livre (Vácuo)

[RESOLUÇÃO] Economia I; 2012/2013 (2º semestre) Prova da Época Recurso 3 de Julho de 2013

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

OBSERVAÇÕES: EXERCÍCIOS

Probabilidade. Luiz Carlos Terra

Matemática Discreta - 08

Grafos Msc. Daniele Carvalho Oliveira. Doutoranda em Computação UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1

10. CPU (Central Processor Unit) Conjunto das instruções Estrutura interna Formato das instruções...

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

Probabilidade. Evento (E) é o acontecimento que deve ser analisado.

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

Análise Qualitativa no Gerenciamento de Riscos de Projetos

Álgebra Linear I - Aula 20

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

Códigos de bloco. Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2

Aula de Exercícios - Teorema de Bayes

Cap. II EVENTOS MUTUAMENTE EXCLUSIVOS E EVENTOS NÃO- EXCLUSIVOS

Índice Geral. O Problema do Caminho Mais Curto com um só Objectivo

BCC204 - Teoria dos Grafos

Algoritmo e Pseudo-código

Exemplos. Jogo dos oito :-) Mundo dos blocos (ex: torre de Hanoi) Poblema das rainhas. Criptoaritmética. Missionários e Canibais.

I. Conjunto Elemento Pertinência

Árvores Binárias e Busca. Jeane Melo

Lista de Exercícios 5: Soluções Teoria dos Conjuntos

AULA 07 Distribuições Discretas de Probabilidade

Técnicas de Contagem I II III IV V VI

Problema do Caixeiro Viajante Aplicado ao Roteamento de Veículos numa Malha Viária. José Luiz Machado Morais

Teoria dos Grafos. Edson Prestes

Introdução ao determinante

NOME: Matrícula: Turma: Prof. : Importante: i. Nas cinco páginas seguintes contém problemas para serem resolvidos e entregues.

Programação Linear - Parte 4

Se inicialmente, o tanque estava com 100 litros, pode-se afirmar que ao final do dia o mesmo conterá.

PESQUISA OPERACIONAL TEORIA DOS GRAFOS

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

EGEA ESAPL - IPVC. Resolução de Problemas de Programação Linear, com recurso ao Excel

Exercícios: Recursão

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

ENG1000 Introdução à Engenharia

1. A figura 1 representa uma árvore genealógica abaixo que ilustra a transmissão genética do albinismo nesta família.

Algumas Aplicações da Teoria dos Grafos

Prática. Exercícios didáticos ( I)

3º Ano do Ensino Médio. Aula nº06

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing

Ficheiros binários 1. Ficheiros binários

OPERAÇÕES COM FRAÇÕES

Professor (a): William Alves. Disciplina: Matemática

Aprimorando os Conhecimentos de Mecânica Lista 1 Ordem de Grandeza

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

PRINCÍPIOS DA MULTIPLICAÇÃO, DA ADIÇÃO E DA INCLUSÃO-

MÓDULO 2 Topologias de Redes

Corrente elétrica, potência, resistores e leis de Ohm

Professores do Ensino Básico - Variante de Educação Física. Disciplina: Matemática Data: Ficha de trabalho: 3

Introdução à Inteligência Artificial 2007/08

Lista de Exercícios 1

Problema do Carteiro Chinês

O Cálculo λ sem Tipos

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão

Circuitos de Comunicação. Prática 1: PWM

Matemática. Resolução das atividades complementares. M3 Conjuntos

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Ficha Prática 5: Cap 3.Princípios Elementares de Contagem

Dureza Rockwell. No início do século XX houve muitos progressos. Nossa aula. Em que consiste o ensaio Rockwell. no campo da determinação da dureza.

Questão 1. Questão 2. Resposta

Figura 1.1: Representação gráfica das pontes de Königsberg.

Manual de Utilização. Ao acessar o endereço chegaremos a seguinte página de entrada: Tela de Abertura do Sistema

Testes de Hipóteses Estatísticas

Os eixo x e y dividem a circunferência em quatro partes congruentes chamadas quadrantes, numeradas de 1 a 4 conforme figura abaixo:

Conteúdo programático por disciplina Matemática 6 o ano

1 O gráfico no plano cartesiano expressa a alta dos preços médios de televisores de tela plana e alta definição, do modelo LCD, full HD, 32

Capítulo 7. Topologia Digital. 7.1 Conexidade

Expressões de sequencias

Transcrição:

CI065 CI755 Algoritmos e Teoria dos Grafos Exercícios 11 de outubro de 2017 1 Fundamentos 1. Seja S = {S 1,..., S n } uma família de conjuntos. O grafo intercessão de S é o grafo G S cujo conjunto de vértices é S e que tem uma aresta ligando S i e S j se e somente se S i S j. (a) Desenhe o grafo intercessão de ( ) {1,...,5} 2. (b) Desenhe o complemento do grafo intercessão de ( ) {1,...,5} 2. Dados inteiros n e k, o complemento do grafo intercessão de ( ) {1,...,n} k é conhecido como grafo de Kneser com parâmetros n e k. 2. Prove que os grafos abaixo são isomorfos. a 1 c 2 c 1 a 2 b 2 b 1 b 0 a 0 c 3 d 1 d 3 d 0 c 0 b 3 b 4 d 2 a 3 a 4 c 4 c 5 3. (a) Se G é um grafo de 14 vértices e 25 arestas cujos vértices tem graus 3 ou 5, quantos vértices tem grau 3 e quantos tem grau 5? 1

(b) Generalize o raciocínio para um grafo de n vértices e m arestas cujos vértices tem graus d 1 ou d 2. 4. Prove que se G é um grafo satisfazendo δ(g) > 0, E(G) < V (G), então G tem (pelo menos) dois vértices de grau 1. 5. Quantos grafos diferentes existem com o conjunto de vértices {1,..., n}? Justifique. 6. Existe algum grafo não trivial em que todos os vértices tem graus distintos? Justifique. 7. Assim como se define o grau mínimo e o grau máximo, é possível definir o grau médio de um grafo G. (a) Denotando por δ(g) o grau médio de um grafo G, proponha uma expressão para δ(g) em função de V (G) e E(G). (b) Prove que, para todo grafo G, δ(g) 2 E(G) V (G) (G). 8. Quantas arestas tem um grafo k regular de n vértices? Justifique. 9. (a) A sequência (5, 4, 4, 3, 3, 2) é gráfica? Justifique. (b) A sequência (4, 3, 3, 2, 2, 2, 2) é gráfica? Justifique. (c) A sequência (5, 4, 4, 3, 2) é gráfica? Justifique. 10. Proponha uma definição para o conceito de densidade de um grafo não trivial de tal maneira que se ρ(g) é a densidade de um grafo não trivial G, então 0 ρ(g) 1, 2

e ρ(g) = 0 se e somente se E(G) =, ρ(g) = 1 se e somente se G é completo. 11. Um grafo é auto complementar se é isomorfo ao seu complemento. (a) Dê um exemplo de um grafo auto complementar não trivial. (b) Prove se G é auto complementar, então V (G) ou V (G) 1 é múltiplo de 4. 12. Prove que, para todo grafo G temos M 2 G[v, v] = δ G (v), para todo v V (G). 13. Quantos grafos direcionados diferentes existem com o conjunto de vértices {1,..., n}? Justifique. Quantos deles não tem laços? 14. Prove que, se G é um grafo direcionado, então δ + (v) = A(G) = δ (v), v V (G) v V (G) 15. Prove que M G T = (M G ) T, para todo grafo direcionado G, onde M T denota a matriz transposta da matriz M. 16. Prove que, para todo grafo direcionado G temos M G MG[v, T v] = δ + G (v), para todo v V (G). 3

2 Representação Computacional 17. Descreva como computar eficientemente o grafo transposto de um grafo direcionado G, quando G é representado (a) por listas de adjacência, ou (b) pela matriz de adjacência. Expresse a eficiência de ambas as soluções em termos assintóticos em função do tamanho do grafo G. 18. Considere a idéia de evitar o desperdício de espaço na representação da matriz de adjacência de um grafo G com V (G) = {1,..., n} usando um vetor m contendo somente os elementos acima da diagonal principal de M G, de tal maneira que m[f(u, v)], se u < v, M G [u, v] = 0, se u = v, m[f(v, u)], se u > v, onde f : {(u, v) V (G) V (G) u < v} {0,..., N(n) 1} é a função que faz a correspondência entre os elementos de M G e m, e N(n) é o tamanho do vetor m. (a) Dê uma expressão para N(n). (b) Dê uma expressão para f(u, v). (c) Dê uma expressão para f 1 (k): 0 k < N(n). (d) Escreva a função unsigned int vizinho(unsigned int *m, unsigned int u, unsigned int v); que devolve o valor de M G [u, v], onde M G é representado pelo vetor m tal como descrito acima. 19. Suponha que a representação de um número inteiro consome i bytes e a representação de um apontador consome a bytes e considere o problema de representar um grafo ponderado de n vértices e m arestas nesta linguagem. 4

(a) Expresse o total de memória consumido na representação do grafo em função de i, a, n e m ao usar i. matriz de adjacência ii. listas de adjacência (b) Indique como decidir, em função de i, a, n e m, qual das duas representações ocupa menos memória. 3 Subgrafos 20. Dê um exemplo de um grafo G com subgrafos H 1, H 2 e H 3 tais que (a) o grafo H 1 é um subgrafo induzido por vértices; (b) o grafo H 2 é um subgrafo induzido por arestas mas não é um subgrafo induzido por vértices; (c) o grafo H 3 vértices. não é um subgrafo induzido por arestas nem por 21. Se G é um grafo e u e v são vértices de G, é verdade que Justifique. (G u) v = (G v) u? 22. Seja G um grafo e seja X um conjunto de vértices de G. É verdade que G X = G[V (G) X]? Justifique. É verdade que todo subgrafo de G induzido por vértices pode ser obtido a partir de G por uma sequência de remoções de vértices? 23. Se G é um grafo e α e β são arestas de G, é verdade que Justifique. (G α) β = (G β) α? 5

24. Seja G um grafo e seja X um conjunto de arestas de G. É verdade que Justifique. G X = G[E(G) X]? É verdade que todo subgrafo de G induzido por arestas pode ser obtido a partir de G por uma sequência de remoções de arestas? 25. Prove que todo subgrafo induzido por vértices de um grafo completo é completo. 26. Seja G um grafo e seja v um vértice de G. Prove que E(G v) = E(G) δ G (v). 27. Seja G um grafo e sejam A E(G) e V = α A α. É verdade que G[A] = G[V ]? Justifique. 28. Prove que se G é um grafo, então, (a) Um conjunto X é independente em G se e somente se X é clique em G. (b) α(g) = ω(g). 29. Considere o seguinte algoritmo guloso para computar um conjunto independente de um grafo G. Independente(G) I Enquanto V (G) v vértice de grau mínimo em G acrescente v a I remova v e Γ G (v) de G Devolva I 6

(a) Seja n o número de vértices no grafo G ao início do algoritmo. Prove que, ao início do laço, sempre é verdade que n V (G) + I ( (G) + 1). (b) Conclua daí que 1 α(g) (c) Conclua também que 2 ω(g) V (G), para todo grafo G, (G) + 1 V (G), para todo grafo G, V (G) δ(g) 30. Prove que todo grafo com pelo menos 6 vértices tem uma clique ou um conjunto independente com 3 vertices. 3 31. Prove que, para todo grafo G, (a) α(g) V (G) (G) + 1. (b) α(g)δ(g) E(G). (c) ω(g) (G) + 1. 32. Seja H um subgrafo de um grafo G. Decida se as afirmações abaixo são verdadeiras ou não, justificando sua resposta em cada caso. (a) α(h) α(g)? (b) α(g) α(h)? (c) ω(g) ω(h)? (d) ω(h) ω(g)? 33. Prove que um grafo G é bipartido se e somente se E(G) = G (X) para algum X V (G) e que, neste caso, {X, V (G) X} é uma bipartição de G. 1 α(g) denota o tamanho do maior conjunto independente em G. 2 ω(g) denota o tamanho da maior clique em G. 3 Sugestão: Pense na seguinte formulação, equivalente à do enunciado: qualquer coloração das arestas de um grafo completo de 6 vértices com 2 cores vai ter um triângulo monocromático como subgrafo. 7

34. Prove que se X, Y é uma bipartição do grafo G, então G tem no máximo X Y arestas. n 35. Prove que um grafo bipartido de n vértices tem no máximo 2 arestas. 4 36. Qual o tamanho da maior clique que pode ter um grafo de n vértices e m arestas? 37. Prove que o problema de determinar o tamanho do maior conjunto independente de um grafo é um problema N P Difícil. 38. Prove que o problema de determinar se um grafo dado é subgrafo induzido de outro grafo também dado é um problema N P Difícil. 39. Prove que o algoritmo abaixo nem sempre devolve uma coloração mínima do grafo G. Colore(G) C Enquanto existe vértice de G que não pertence a nenhum conjunto em C v vértice de G que não pertence a nenhum conjunto em C Se v tem vizinhos em cada conjunto K C acrescente o conjunto {v} a C Senão acrescente v a algum conjunto K C que não tem nenhum vizinho de v Devolva C 4 Passeios, Caminhos e Ciclos 40. Um grafo e seu complemento podem ser (a) ambos conexos? (b) ambos desconexos? 8

Justifique. 41. Seja G um grafo. Prove que (a) a relação de alcançabilidade sobre V (G) dada por u G v := u é alcançável a partir de v em G, é uma relação de equivalência, e que (b) as classes de equivalência desta relação são os conjuntos de vértices dos componentes de G. 42. Descreva em palavras os grafos k regulares para k {0, 1, 2}. 43. Prove que um grafo é bipartido se e somente se não tem passeios de paridades diferentes com as mesmas pontas. 44. Prove que todo segmento de caminho mínimo em um grafo G é caminho mínimo em G. 45. Prove que um grafo é bipartido se e somente se não tem ciclo ímpar. 46. Prove que o grafo condensado de um grafo direcionado é um grafo direcionado acíclico. 47. Prove que se P e Q são dois caminhos de tamanho máximo em um grafo conexo G, então P e Q tem um vértice em comum. 48. Seja G um grafo conexo e seja P um caminho de tamanho máximo em G. Prove 4 que o tamanho de um caminho de tamanho máximo em G V (P ) é menor que P. 49. É verdade que existe ciclo em um grafo G se e somente se existem passeios distintos com as mesmas pontas em G? Justifique. 4 Sugestão: use o Exercício 47 9

50. É verdade que existe ciclo num grafo se e somente se existe um passeio fechado nesse grafo? Justifique. 51. Prove que γ(g) > 3 se e somente se as vizinhanças de u e v são disjuntas para toda aresta {u, v} E(G). 52. Prove que os componentes de um grafo G são todos caminhos ou ciclos se e somente se (G) 2. 53. Prove que todo grafo G tem (a) caminho de tamanho (pelo menos) δ(g) e, (b) ciclo de tamanho pelo menos δ(g) + 1, se δ(g) 2. 54. Prove que 5, se k > 1, então todo grafo k regular tem (a) um caminho de tamanho k; (b) um ciclo de tamanho pelo menos k + 1. 55. Seja G um grafo e considere a relação : V (G) V (G) dada por u v := u = v ou existe ciclo em G envolvendo u e v A relação é uma relação de equivalência? Justifique. 56. Prove que se um grafo G não é acíclico, então γ(g) diam(g). 2 57. Prove que todo grafo direcionado acíclico tem fonte. 58. Seja G um grafo direcionado e seja m := min {δ (G), δ + (G)}. Prove que 5 Sugestão: Use o Exercício 53. 10

(a) o grafo G tem caminho direcionado de tamanho m. (b) se m > 0, então G tem ciclo direcionado de tamanho pelo menos m + 1. 59. Prove que se P é um caminho direcionado maximal em um grafo direcionado G, então todos os vizinhos de entrada de seu vértice inicial estão em P, e todos os vizinhos de saída seu vértice final estão em P. 60. Prove que todo passeio direcionado de tamanho mínimo entre dois vértices de um grafo direcionado é um caminho direcionado. 61. Prove que todo segmento de caminho direcionado mínimo em um grafo G é caminho direcionado mínimo em G. 11

5 Árvores e Florestas 62. Prove que todo grafo conexo com n vértices e n 1 arestas é árvore. 6 63. Prove que o grafo G é uma floresta se e somente se E(G) = V (G) C(G). 64. Prove que um grafo T é árvore geradora de um grafo G se e somente se T é subgrafo conexo minimal de G. 65. Prove que toda árvore T tem (pelo menos) (T ) folhas. 66. Prove que se T é uma árvore então para todo v V (T ). C(T v) = δ T (v), 67. É verdade que todo grafo de n vértices com n (ou mais) arestas tem ciclo? Justifique. 68. Um vértice v é central em um grafo G se a maior distãncia de v a qualquer outro vértice de G é a menor possível, isto é, se é mínimo. max {d G (v, u) u V (G)} (a) Seja T uma árvore com pelo menos 3 vértices e seja T = T F, onde F é o conjunto das folhas de T. Prove que T e T tem os mesmos centros, (b) Conclua daí que toda a árvore tem um único centro ou tem dois centros vizinhos. 6 Sugestão: usar Exercício 4. 12

69. Prove que uma sequência (d 1, d 2,..., d n ) de inteiros positivos é sequência gráfica 7 de uma árvore se e somente se n i=1 d i = 2(n 1). 70. Prove que um grafo direcionado G tem arborescência geradora se e somente se G tem um vértice r a partir do qual todo vértice de G é alcançável. 7 cfr. Exercício 9 13

6 Cortes e Conectividade 71. É possível que toda aresta de um grafo não trivial seja de corte? Justifique sua resposta e, em caso positivo, caracterize tais grafos. 72. É possível que todo vértice de um grafo não trivial seja de corte? Justifique sua resposta e, em caso positivo, caracterize tais grafos. 73. Dê um exemplo de um grafo conexo G para o qual κ(g) < λ(g) < δ(g). 74. É verdade que κ(g) λ(g) δ(g), para todo grafo conexo G? Justifique. 75. Prove que um grafo G é conexo se e somente se G (X), para todo X V (G). 76. Prove que um grafo direcionado G é fortemente conexo se e somente se + G (X), para todo X V (G). 77. Seja G um grafo, T uma árvore geradora de G e v V (G). (a) (b) É verdade que se v tem grau maior que 1 em T, então v é vértice de corte em G? Justifique. É verdade que se v é vértice de corte em G então v tem grau maior que 1 em T? Justifique. 78. Prove que todo vértice de corte em um grafo é vértice de corte em qualquer árvore geradora deste grafo. 14

79. Considere o jogo em que o jogador recebe um grafo conexo. O objetivo é remover os vértices deste grafo, um a um, sem desconectar o grafo em nenhum momento. O jogador vence se conseguir remover todos os vértices. (a) Sempre é possível vencer o jogo 8? Justifique. (b) Descreva um algoritmo para vencer o jogo nos casos em que é possível vencer. 80. Prove que um vértice de um grafo G faz parte de dois blocos distintos de G se e somente é vértice de corte. 81. É verdade que se u e v são vértices de corte vizinhos em um grafo então a aresta {u, v} é de corte neste grafo? Justifique. 82. Um vértice de corte em um grafo pode ser folha de uma árvore geradora deste grafo? Justifique. 8 Sugestão: Use o Exercício 78 15

7 Grafos Eulerianos e Hamiltonianos 83. Prove que um grafo conexo tem trilha euleriana aberta se e somente se tem exatamente dois vértices de grau ímpar. 84. Prove que determinar o tamanho do maior ciclo de um grafo é um problema N P-difícil. 85. Prove que decidir se um grafo tem caminho hamiltoniano é um problema N P difícil 9. 86. Prove que o problema de determinar um caminho de tamanho máximo em um grafo direcionado é um problema N P difícil. 87. Seja G um grafo e seja D(G) o grafo direcionado dado por V (D(G)) = V (G), A(D(G)) = {u,v} E(G) {(u, v), (v, u)}. Prove que G é hamiltoniano se e somente se D(G) é hamiltoniano e conclua, a partir daí, que o problema de decidir se um grafo direcionado é hamiltoniano é N P Difícil. 88. Prove que o problema do Caixeiro Viajante é N P difícil. 89. Seja G um grafo e seja G o grafo que se obtém ao acrescentar a G um novo vértice v e uma aresta ligando v a cada vértice de G. Prove que G é hamiltoniano se e somente se G tem caminho hamiltoniano. 9 Sugestão: Use o Exercício 91 16

90. Seja G um grafo direcionado e seja (G, w) um grafo direcionado com pesos nas arestas completo com o mesmo conjunto de vértices de G onde w é dada por { 0, se (u, v) A(G), w(u, v) = 1, se (u, v) / A(G) Prove que G é hamiltoniano se e somente se a resposta da instância (G, w) do problema do Caixeiro Viajante tem peso 0. 91. Seja G um grafo não vazio e seja v V (G). Seja G v o grafo obtido ao acrescentar-se a G três novos vértices, v, u e w e as arestas {u, v}, {w, v } e {{v, r} r Γ G (v)}. Prove que G é hamiltoniano se e somente se G v tem caminho hamiltoniano. 17

8 Busca em Grafos 92. Explique como decidir em tempo O(n + m) se um grafo direcionado com n vértices e m arcos é acíclico e, em caso negativo, encontrar um ciclo direcionado. 93. Sejam e seja G o grafo dado por A 1 = {1, 4, 8}, A 2 = {1, 5, 9}, A 3 = {2, 4, 6}, A 4 = {2, 5, 7}, A 5 = {3, 6, 10} e A 6 = {3, 7, 8} V (G) = {A 1,..., A 6 }, E(G) = {{A i, A j } A i A j }. (a) Faça um desenho deste grafo. (b) Faça uma busca em largura em G a partir do vértice A 1 e apresente i. os níveis de cada vértice, e ii. as arestas que não estão na arborescência resultante desta busca. (c) Baseado nesta busca, diga se G é conexo. Justifique sua resposta. (d) Baseado nesta busca, diga se G é bipartido. Justifique sua resposta. 94. Prove que se (G, w) é um grafo conexo com pesos então existe uma árvore de caminhos mínimos geradora de G com raiz v para todo v V (G). 95. Seja T uma árvore de distâncias mínimas de raiz r de um grafo com pesos (G, w). Prove que diam(t ) 2diam(G). 18

96. Prove que se T é a arborescência resultante de uma busca em largura a partir do vértice r em um grafo conexo G, então rt v é um caminho mínimo em G para todo v V (G). 97. Prove que se T é a arborescência resultante de uma busca em largura sobre um grafo conexo G e r = r(t ), então d G (r, u) d G (r, v) 1, para todo {u, v} E(G S(T )). 98. Seja T a arborescência resultante de uma busca em largura sobre um grafo conexo G e seja r sua raiz. Prove que G é bipartido se e somente se d(r, u) e d(r, v) tem paridades diferentes para toda aresta {u, v} G E(S(T )). 10 99. Proponha um algoritmo que recebe um grafo de n vértices e m arestas e responde se este grafo é bipartido em tempo O(n + m). 100. Seja T a arborescência resultante de uma busca em largura sobre um grafo conexo G e seja r sua raiz. Prove que G é bipartido se e somente se d(r, u) d(r, v) para toda aresta {u, v} G E(S(T )). 101. Proponha um algoritmo baseado no algoritmo de busca em largura para detectar um ciclo de tamanho ímpar em um grafo, caso exista. 102. Prove que se F é a floresta direcionada resultante de uma busca em largura então toda aresta em G S(F ) é cruzada com relação a F. 103. Prove que se T é a arborescência resultante de uma busca em largura a partir do vértice r em um grafo conexo G, então d S(T ) (r, v) = d G (r, v), para todo v V (G). 104. Caracterize as arborescências resultantes de uma busca em largura em um grafo bipartido completo. 10 Sugestão: Use os resultados dos Exercícios 96 e 97 19

105. Seja F a floresta direcionada resultante de uma busca em profundidade sobre um grafo G. Prove que G é bipartido se e somente se u.pre e v.pre tem paridades diferentes para alguma aresta {u, v} de G F. 106. Caracterize (a) as árvores em largura de um grafo completo, e (b) as árvores em profundidade de um grafo completo. 107. Caracterize as arborescências resultantes de uma busca em profundidade de um grafo bipartido completo. 108. Um estudante propõe o seguinte algoritmo para encontrar um caminho de comprimento máximo em um grafo. CaminhoMaisLongo(G) encontre um vértice r de G que não é de corte T arborescência de busca em profundidade em G a partir de r Devolva caminho de distância máxima de r a uma folha de T O algoritmo está correto? Justifique. 109. Considere a seguinte ideia para determinar se um grafo de n vértices tem ciclo hamiltoniano. Se o grafo tem ciclo hamiltoniano, então uma busca em profundidade iniciada pelo vértice certo vai encontrá-lo, pois haverá um vértice v a distância n 1 do vértice inicial r e v será vizinho de r. Para garantir que o ciclo hamiltoniano seja encontrado, será suficiente executar n buscas em profundidade, cada uma iniciando por um dos vértices do grafo. Se nenhuma delas localizar um ciclo hamiltoniano é porque o grafo não tem ciclo hamiltoniano. A ideia está correta? Justifique sua resposta. 20

110. A tabela abaixo contém os valores dos índices de pré e pós-ordem e o valor do low point dos vértices de um grafo, computados por uma busca em profundidade. v 1 2 3 4 5 6 7 8 9 10 pre(v) 4 7 10 6 3 15 17 2 1 14 pos(v) 5 8 11 9 12 16 18 13 20 19 l(v) 1 1 3 1 0 2 0 0 0 0 (a) Apresente o grafo com o menor número de arestas para o qual os valores mostrados seriam os computados. (b) Apresente um segundo grafo, diferente do anterior, para o qual os mesmos valores seriam os computados 1. (c) Identifique os vértices e arestas de corte do grafo por meio dos valores mostrados na tabela, explicando o raciocínio. 111. Execute uma busca em profundidade no grafo abaixo a partir do vértice a computando os valores dos índices de pré ordem, pós ordem, nível e lowpoint. (a) Mostre os valores dos índices de pré ordem, pós ordem e lowpoint de cada um dos vértices. (b) Indique os vértices e arestas de corte do grafo e explique como decidir que o são com base nestes valores. 112. Seja T uma arborescência geradora de um grafo G produzida por uma busca em profundidade. Prove que 21

(a) A raiz de T é vértice de corte de G se e somente se tem mais de um filho. (b) Um vértice v que não é raiz de T é vértice de corte de G se e somente se tem um filho w tal que nenhum descendente de w é vizinho de um ancestral próprio de v. (c) Uma aresta {u, v} é aresta de corte em G se e somente se (u, v) A(T ) e nenhuma aresta em G liga um descendente de v a um ancestral de u. 113. Seja T uma arborescência em profundidade geradora de um grafo G, e seja l T : V (G) V (G) dada por Prove que l T (v) := min {L T (v)} {L T (u) {u, w} / E(T ) e v T w}. l T (v) = min {L T (v)} {L T (u) {u, v} / E(T )} {l T (w) (v, w) A(T )} para todo v V (G). 114. Formule um algoritmo que recebe um grafo de n vértices e m arestas e devolve o conjunto de seus vértices de corte em tempo O(n + m). 115. Formule um algoritmo que recebe um grafo de n vértices e m arestas e devolve o conjunto de seus blocos em tempo O(n + m). 116. Explique o que é o lowpoint e como ele pode ser usado para detectar vértices de corte de um grafo. 117. Considere o algoritmo que computa o lowpoint dos vértices de um grafo discutido em aula e suponha que, para cada v V (G), existe uma variável v.corte que vale 0 ao início da execução. Explique como modificar o algoritmo de maneira que, ao final da execução v.corte = 1 se e somente se v é vértice de corte de G. 22