240720122958_grafos_cadernozero

16
Grafos (Falso rosto provisório)

Upload: oscar-velez

Post on 28-Oct-2015

21 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 240720122958_Grafos_cadernozero

Grafos

(Falso rosto provisório)

Page 2: 240720122958_Grafos_cadernozero
Page 3: 240720122958_Grafos_cadernozero

Grafos

Marcos Goldbarg

Autor

(Rosto provisório)

Page 4: 240720122958_Grafos_cadernozero

CIP-BRASIL. CATALOGAÇÃO-NA-FONTE SINDICATO NACIONAL DOS EDITORES DE LIVROS, RJ

G564g

Goldbarg, Marco Cesar Grafos : conceitos, algoritmos e aplicações / Marco Goldbarg, Elizabeth Goldbarg. - Rio de Janeiro : Elsevier, 2012.

ISBN 978-85-352-5716-8

1. Teoria dos grafos. 2. Algoritmos. I. Goldbarg, Elizabeth II. Título.

12-1694.. CDD: 511.5 CDU: 511

© 2012, Elsevier Editora Ltda.

Todos os direitos reservados e protegidos pela Lei no 9.610, de 19/02/1998.Nenhuma parte deste livro, sem autorização prévia por escrito da editora, poderá ser reproduzida ou transmitida sejam quais forem os meios empregados: eletrônicos, mecânicos, fotográficos, gravação ou quaisquer outros.

Copidesque: Tania HeglacyRevisão: Andrea VidalEditoração Eletrônica: Triall Composição Editorial Ltda.

Elsevier Editora Ltda.Conhecimento sem FronteirasRua Sete de Setembro, 111 – 16o andar20050-006 – Centro – Rio de Janeiro – RJ – Brasil

Rua Quintana, 753 – 8o andar04569-011 – Brooklin – São Paulo – SP

Serviço de Atendimento ao [email protected]

ISBN 978-85-352-5716-8

Nota: Muito zelo e técnica foram empregados na edição desta obra. No entanto, podem ocorrer erros de digitação, impressão ou dúvida conceitual. Em qualquer das hipóteses, solicitamos a comunicação ao nosso Serviço de Atendimento ao Cliente, para que possamos esclarecer ou encaminhar a questão.Nem a editora nem o autor assumem qualquer responsabilidade por eventuais danos ou perdas a pessoas ou bens origi-nados do uso desta publicação.

Page 5: 240720122958_Grafos_cadernozero

www.elservier.com.brConhecimento sem Fronteiras.

Conteúdo Complementar On-line que Facilita o Estudo

Obrigado por adquirir o livro

Grafos

Nesta página você tem o código de acesso on-line e gratuito a:

� Solução dos exercícios� Figuras coloridas

QUEM QUER SABER AINDA MAIS, CONSULTA!

Risque o adesivo com cuidado! Não use objetos

pontiagudos. Se possível, utilize uma extremidade

plástica (em vez de uma moeda) e não risque com muita

força a fim de evitar danificar o código de identificação.

Observação importante: a compra deste livro inclui acesso

a materiais complementares on-line para o uso exclusivo

do comprador. Essa licença e esse acesso funcionam

apenas para um usuário por código de acesso.

O compartilhamento de senhas é rigorosamente proibido

e qualquer tentativa dessa natureza invalidará a senha.

O acesso não pode ser compartilhado, revendido ou

divulgado e será encerrado quando a próxima edição

deste livro for lançada.

Os detalhes completos e os termos de uso estão

disponíveis no momento do registro e o acesso estará

sujeito à aceitação dos termos de uso.

O material complementar on-line será constantemente atualizado

ATENÇÃO! O livro não poderá ser devolvido se o adesivoestiver danificado. Não use objetos pontiagudos.

Page 6: 240720122958_Grafos_cadernozero
Page 7: 240720122958_Grafos_cadernozero

Introdução �Conceitos �Algoritmos  Aplicações vii

IntroduçãoO presente texto objetiva dar suporte ao ensino e ao estudo dos conceitos básicos em Teoria dos Grafos, em algoritmos em grafos e em suas conexões com a otimização combinatória e aplicações reais. O livro ocupa um espaço didático pouco povoado situado na conexão da Teoria dos Grafos com as aplicações reais. Cinco focos definem a proposta e estão exibidos na Figura 1:

Otimização combinatória

e problemas do mundo real

Ancoragem para a

pesquisa

Algoritmos emgrafos

Facilitação ao acesso

à informação

Autoaprendizagem

Focos

Figura 1: Os focos do livro

►1o foco

O emprego do ferramental da Teoria dos Grafos na solução de problemas de otimização combinatória e do mundo real. Nesse foco estão especialmente envolvidos os Capítulos 2, 8 e 9, bem como os tópicos de aplicações existentes em cada capítulo.

►2o foco

Suporte ao desenvolvimento de algoritmos em grafos para a solução computacional desses problemas. Com exceção do Capítulo 2, todos os demais apresentam vários algoritmos de solução para os tópicos abordados.

►3o foco

Desenvolvimento do texto de forma a facilitar a auto-aprendizagem e o incentivo à motivação para o domí-nio das competências e habilidades relativas a essa disciplina. Tópicos semelhantes são, na medida do possível, reunidos e estudados em conjunto. Todos os conceitos apresentados são imediatamente exemplificados. Vários exercícios resolvidos auxiliam a autoaprendizagem.

►4o foco

Criação de ancoragem para a pesquisa e ampliação e aprofundamento dos temas abordados no livro através da disponibilização de uma rede de referências bibliográficas. Os principais temas do livro são objeto de um

Page 8: 240720122958_Grafos_cadernozero

viii Grafos

levantamento do estado da arte. O objetivo de identificar e relacionar a literatura associada aos temas em estudo é permitir ao leitor facilidade em aprofundar os temas abordados no livro.

►5o foco

Facilitação ao acesso à informação. Diversas referências bibliográficas do livro podem ser obtidas gratuitamente na internet. Tais referências estão assinaladas e trazem endereço URL.

O texto é introdutório. Não existe a pretensão do aprofundamento para além dos cursos de graduação. A aten-ção está centrada nos conceitos básicos, no desenvolvimento de algoritmos e nas aplicações reais. A imersão mais intensa, especialmente no que diz respeito ao ferramental matemático do modelo, foge ao escopo do traba-lho. Todavia, o livro está aparelhado para o uso em cursos de pós-graduação em áreas afins à Programação Discreta ou Ciência da Computação.

São disponibilizados exercícios resolvidos e exercícios propostos. A solução dos exercícios propostos é parte do desafio do processo de aprendizagem. Como na maioria dos casos a resposta dos exercícios propostos é a própria resolução, essas soluções não constam do texto.

A metodologia busca organizar o texto de forma a reunir conceitos semelhantes em quadros vizinhos. Os con-ceitos são fichados. Isso permite ao leitor confrontar imediatamente o conceito abordado com outros assemelha-dos, esclarecendo eventuais dúvidas. A Figura 2 exemplifica a apresentação dos conceitos correlacionados.

Um grafo G bipartido é dito completo se cada vértice do conjunto N1 com p vértices é adjacente a todos os q vértices do conjunto N2 e vice-versa.

Um grafo clique de um grafo G é um subgrafo completo de G.

Um grafo KG é um grafo clique se e somente se ele contém uma família F de subgrafos completos cuja união resulta KG, e tal que nenhum par de grafos com-pletos em alguma subfamília possui uma interseção* vazia – a interseção entre todos os membros da família é não vazia (Harary, 1994, p. 20).

Um grafo G é dito completo se existe uma aresta associada a cada par de vértices de G. No caso orientado isso significa a existência de um arco para cada par ordenado de vértices.

Grafo Completo

Grafo Bipartido Completo

Grafo Clique – Kn

Grafo Clique – Definição Alternativa

Kn

K,p,q

Conceitos associados

Conceito principal

Notação usada

Figura 2: Exemplo de apresentação de conceitos correlacionados

São apresentadas dicas para a solução dos modelos examinados no texto. Esse cuidado caminha no sen-tido da criação de conexões entre o que se apresenta e um eventual aprofundamento para além do escopo imediato do livro. A Figura 3 exibe um exemplo desse tipo de ancoragem na literatura.

Page 9: 240720122958_Grafos_cadernozero

Introdução �Conceitos �Algoritmos  Aplicações ix

❂  Decomposição em Árvore – Dicas de Trabalhos

Xu et al. (2005) apresentam uma aplicação da decomposição em árvore na predição da estrutura de proteínas. Bodlaender & Fomin (2005) abordam o problema associado da decomposição em árvores de menor custo. Dourisboure & Gavoille (2007) tratam da de-composição em árvores com menor diâmetro.

Figura 3: Exemplo de ancoragem na literatura

Os algoritmos abordados são descritos tanto no texto como resumidos através de pseudocódigo, como exemplifica a Figura 4.

Ler G = (N, M)S ← ; β (G) ← 0;Ordenar os vértices em ordem não crescente de grausEnquanto N ≠ ∅ Fazer k ← mínimo { j tal que x

j ∈ N }

N ← N \ { xk }

S ← S ∪ { xk }

M ← M \ R // R o conjunto das arestas adjacentes a xk)//

β (G) ← β (G) + 1Fim_EnquantoEscrever S e β (G)

A Cobertura de Vértices

HeurísticoFigura 4: Exemplo de pseudocódigo

Os algoritmos cujo pseudocódigo é apresentado possuem sua complexidade analisada em item específico, como exemplifica a Figura 5.

Após a inicialização, são executadas, no máximo, n–1 iterações do k. Em cada uma destas iterações são calculados cami-nhos com k arestas entre a origem e cada um dos demais vértices do grafo. Para cada vértice, a lista dos seus antecessores é examinada. Uma vez que o rótulo do vértice origem não é alterado, o exame deste antecessor pode ser descartado. Deste modo, para cada vértice, no máximo, n–2 antecessores são examinados. Cada exame consiste apenas de operações de adição e comparação. Portanto, a complexidade do algoritmo apresentado é O(n3).

Ford-Moore-BellmanComplexidade

O(n3)

Figura 5: Exemplo de análise de complexidade de um algoritmo descrito em pseudocódigo

Os problemas de otimização combinatória são introduzidos e associados aos problemas em grafos ou sugeridos como questões específicas, como exemplifica a Figura 6.

Page 10: 240720122958_Grafos_cadernozero

x Grafos

A partir de algum ponto da cidade de Königsberg – no século XVIII, é possível fazer uma caminhada que atravesse todas as pontes da cidade somente uma vez?

3a Questão p

A partir de algum ponto da cidade de Königsberg – no século XXI, torna-se possível fazer uma caminhada que atra-vesse todas as pontes da cidade somente uma vez?

4a Questão p

Determinar um passeio fechado de custo mínimo passando por todas as arestas do grafo G.

O Problema do Carteiro Chinês p

Determinar um passeio fechado de custo mínimo passando por todas as arestas do grafo G em uma matriz de custos assimétrica.

O Problema do Carteiro ao Vento – Windy p

Figura 6: Conexões dos modelos em grafos com os problemas de otimização combinatória

O desenvolvimento da proposta didática comportou a elaboração de aproximadamente 2.100 conjuntos de desenhos, 470 exercícios, 100 exercícios resolvidos e 40 aplicações reais detalhadamente descritas. No livro cerca de 850 referências bibliográficas são citadas. Material eletrônico adicional permite que alguns recursos do texto possam ser incorporados aos trabalhos didáticos e as aulas da disciplina, de forma a auxiliar o processo de aprendizagem. A solução dos exercícios solucionados apresentados em cada capítulo, as figuras coloridas e o material eletrônico adicional será disponibilizado aos leitores no site www.elsevier.com.br/grafos.

Os autores formulam votos de que o presente projeto possa ser útil na formação dos alunos de graduação e no auxílio ao ensino da disciplina de Grafos. Assim nos colocamos prontos e desejosos de ouvir as importantes obser-vações daqueles a quem o livro foi dedicado.

Ementas que podem ser associadas ao livroO livro aborda diversos temas pertinentes a Teoria dos Grafos, de modo que pode dar suporte a mais de uma disciplina. Grandes temas como:

– Algoritmo em grafos;– Introdução à Teoria dos Grafos;– Aplicações de grafos;– Grafos e otimização combinatória.

podem encontrar suporte no conteúdo didático do livro. No sentido de exemplificar o alcance do conteúdo dispo-nibilizado, são transcritas a seguir algumas ementas que podem ser desenvolvidas com base no texto. Observe que as ementas citadas não esgotam as possibilidades de composição do conteúdo do livro, todavia permitem ressaltar sua versatilidade.

Page 11: 240720122958_Grafos_cadernozero

Introdução �Conceitos �Algoritmos  Aplicações xi

►Ementa 1 – Ampla

Definição e aplicação de grafos. Conceitos básicos em grafos. Representação de grafos: matrizes de adjacências, incidência, listas de adjacências e representação em estrela. Operações em grafos. Árvores. Árvore geradora mí-nima. Caminhos e ciclos. Caminho mais curto. Ciclos hamiltonianos e eulerianos. Conectividade de vértices e arestas. Subconjunto de vértices e arestas. Estabilidade, absorção e dominância e emparelhamentos. Introdução à planaridade. Coloração. Redes e fluxos em redes. Problemas de otimização em grafos.

►Ementa 2 – Foco em algoritmos

Definição e aplicação de grafos. Subgrafos e hipergrafos. Busca em profundidade. Algoritmos para componentes conexas. Busca em largura. Árvores. Algoritmos para árvores geradoras mínima e máxima. Caminhos. Algo-ritmos para caminhos mais curtos. Coloração. Algoritmos para coloração. Fluxo em redes. Algoritmos de fluxo máximo em redes. Emparelhamentos. Algoritmos para emparelhamentos.

►Ementa 3 – Foco em aplicações

Definição e aplicação de grafos. Conceitos básicos em grafos. Representação de grafos: matrizes de adjacências, incidência, listas de adjacências e representação em estrela. Operações em grafos. Modelos em grafos. Árvores. Modelos em árvores. Árvore de Steiner. Caminhos e ciclos. Carteiro chinês. Caixeiro-viajante. Coloração. T-Co-loração. Fluxo em redes.

Ementa 4 – Introdutória

Introdução. Noções básicas: grafos orientados, não orientados, bipartidos. Percursos em grafos. Subgrafos e Su-pergrafos. Cliques. Árvores e árvores geradoras. Conectividade. Problemas de caminhos. Estabilidade e nú-mero cromático. Emparelhamentos. Grafos planares. Circuitos eulerianos e hamiltonianos. Grafos acíclicos. Coloração em grafos. Redes. Fluxos em redes.

►Ementa 5 – Foco em tópicos específicos

Definição e aplicação de grafos. Subgrafos e hipergrafos. Busca em profundidade, componentes biconexos, com-ponentes fortemente conexos, busca em largura, busca em largura lexicográfica, busca irrestrita, número cromá-tico. Árvores geradoras máximas e mínimas. Introdução à planaridade. Algoritmos de fluxo máximo em redes. Algoritmos para emparelhamentos.

►Ementa 6 – Foco em tópicos específicos

Definição e aplicação de grafos. Subgrafos e hipergrafos. Isomorfismo de grafos. Representação computacional. Algoritmos de buscas. Grafos orientados. Trilhas, caminhos e ciclos. Distâncias. Caminhos. Conectividade. Ciclos eulerianos e hamiltonianos. Problema do caixeiro-viajante. Problema do carteiro chinês. Árvores, árvore geradora mínima. Introdução à planaridade. Coloração de vértices. Número cromático. Emparelhamento. Fluxos em redes.

Page 12: 240720122958_Grafos_cadernozero
Page 13: 240720122958_Grafos_cadernozero

Sumário xiii

Sumário

Capítulo 1 Conceitos Básicos .......................................................................................................1

1.1 Grafos: Notação Básica e Exemplos ............................................................................... 2

1.2 Definições Básicas ......................................................................................................... 6

1.3 Subgrafos e Supergrafos ............................................................................................. 25

1.4 Família de Grafos Especiais ......................................................................................... 36

1.5 Operações com Grafos e Estruturas Parciais ................................................................ 43

1.6 Estruturas de Dados para Grafos ................................................................................. 53

1.7 Busca em Grafos ........................................................................................................ 59

1.8 Grafos com Apelidos .................................................................................................. 68

1.9 Exercícios Resolvidos do Capítulo 1 ............................................................................. 71

1.10 Exercícios Propostos do Capítulo 1 .............................................................................. 75

1.11 Referências ................................................................................................................. 89

Capitulo 2 Modelos de Aplicação ........................................................................................................... 91

2.1 Exemplos de Aplicação dos Modelos em Grafos .......................................................... 92

2.2 Modelando Problemas Através de Grafos .................................................................. 107

2.3 Exercícios Resolvidos do Capítulo 2 ........................................................................... 121

2.4 Exercícios Propostos do Capítulo 2 ............................................................................ 123

2.5 Referências ............................................................................................................... 128

Capitulo 3 Árvores ................................................................................................................................ 129

3.1 Conceitos Básicos ..................................................................................................... 130

3.2 Árvores Geradoras .................................................................................................... 137

3.3 Árvores Geradoras Mínimas ...................................................................................... 150

3.4 Exemplos de Aplicação ............................................................................................. 161

3.5 Grafos Especiais Associados às Árvores ..................................................................... 168

3.6 Aplicações Reais Selecionadas ................................................................................... 169

3.7 Exercícios Resolvidos do Capítulo 3 ........................................................................... 170

3.8 Exercícios Propostos do Capítulo 3 ............................................................................ 172

3.9 Referências ............................................................................................................... 179

Capitulo 4 Caminhos ............................................................................................................................ 185

4.1 Conexidade .............................................................................................................. 186

4.2 Caminhos em Grafos ................................................................................................ 195

4.3 Algoritmos para o Caminho mais Curto .................................................................... 199

4.4 Caminhos e Ciclos Hamiltonianos ............................................................................. 216

4.5 Caminhos e Ciclos Eulerianos.................................................................................... 220

4.6 Variantes do Caminho mais Curto............................................................................. 228

4.7 Cadeias Eulerianas e Modelos de Otimização ............................................................ 233

4.8 Exemplos de Aplicações ............................................................................................ 236

Page 14: 240720122958_Grafos_cadernozero

xiv Grafos

4.9 Grafos Especiais dos Temas do Capítulo .................................................................... 247

4.10 Aplicações Reais Selecionadas ................................................................................... 257

4.11 Exercícios Resolvidos do Capítulo 4 ........................................................................... 259

4.12 Exercícios Propostos do Capítulo 4 ............................................................................ 264

4.13 Referências ............................................................................................................... 285

Capitulo 5 Subconjuntos de Vértices e Arestas .................................................................................... 293

5.1 Coberturas ............................................................................................................... 294

5.2 Conjunto Dominante, Independente e k-Packing .......................................................3045.3 Emparelhamento ou Matching .................................................................................. 308

5.4 Resumo dos Invariantes ............................................................................................ 317

5.5 Decomposição em Subgrafos .................................................................................... 318

5.6 Algoritmo para Conjunto Estável .............................................................................. 321

5.7 Algoritmo para Cobertura de Vértice ........................................................................ 323

5.8 Problemas de Otimização Associados ........................................................................ 325

5.9 Exemplos de Aplicações ............................................................................................ 326

5.10 Grafos Especiais Associados ao Tema do Capítulo ..................................................... 336

5.11 Aplicações Reais Selecionadas ................................................................................... 343

5.12 Exercícios Resolvidos do Capítulo 5 ........................................................................... 344

5.13 Exercícios Propostos do Capítulo 5 ............................................................................ 350

5.14 Referências ............................................................................................................... 361

Capitulo 6 Fluxo em Redes ................................................................................................................... 367

6.1 Fluxo em Redes – Conceitos Básicos.......................................................................... 368

6.2 O Problema do Fluxo Máximo ................................................................................... 373

6.3 O Problema da Circulação Viável em Redes ............................................................... 387

6.4 Exemplos de Aplicações ............................................................................................ 390

6.5 Aplicações Reais Selecionadas ................................................................................... 394

6.6 Exercícios Resolvidos do Capítulo 6 ........................................................................... 396

6.7 Exercícios Propostos do Capítulo 6 ............................................................................ 401

6.8 Referências ............................................................................................................... 410

Capitulo 7 Coloração e Grafos Perfeitos .............................................................................................. 415

7.1 Grafos Perfeitos ........................................................................................................ 416

7.2 Coloração ................................................................................................................. 418

7.3 Teorema das Quatro Cores ........................................................................................ 440

7.4 Tira de Möbius ......................................................................................................... 441

7.5 Algoritmo Exato para Coloração Própria – Zykov ....................................................... 442

7.6 Algoritmo DSATUR para Coloração Própria ............................................................... 443

7.7 Algoritmos Exatos para a Coloração de Vértices ........................................................ 446

7.8 Outros Problemas Associados à Coloração ................................................................ 447

7.9 Exemplos de Aplicações ............................................................................................ 449

7.10 Grafos Especiais nos Temas do Capítulo .................................................................... 459

7.11 Exercícios Resolvidos do Capítulo 7 ........................................................................... 468

Page 15: 240720122958_Grafos_cadernozero

Sumário xv

7.12 Exercícios Propostos do Capítulo 7 ............................................................................ 472

7.13 Referências ............................................................................................................... 478

Capitulo 8 Árvore de Steiner ................................................................................................................ 483

8.1 A Árvore de Steiner em Grafos ................................................................................. 484

8.2 Algoritmos Heurísticos para Árvore de Steiner ........................................................... 504

8.3 Exemplos de Aplicações ............................................................................................ 514

8.4 Aplicações Reais Selecionadas ................................................................................... 518

8.5 Exercícios Resolvidos do Capítulo 8 ........................................................................... 518

8.6 Exercícios Propostos do Capítulo 8 ............................................................................ 519

8.7 Referências ............................................................................................................... 528

Capitulo 9 Caixeiro-viajante ................................................................................................................. 535

9.1 O Problema do Caixeiro-viajante ............................................................................... 536

9.2 Algoritmos Heurísticos para o PCV ............................................................................ 538

9.3 Exemplos de Aplicações ............................................................................................ 573

9.4 Variantes do Caixeiro-viajante ................................................................................... 577

9.5 Exercícios Resolvidos do Capítulo 9 ........................................................................... 605

9.6 Exercícios Propostos do Capítulo 9 ............................................................................ 606

9.7 Referências ............................................................................................................... 608

Índice Remissivo ........................................................................................................................................... 617

Page 16: 240720122958_Grafos_cadernozero