teoria_grafos

Share Embed Donate


Short Description

Download teoria_grafos...

Description

Pontifícia Universidade Católica de Minas Gerais Mestrado em Informática

Projeto e Análise de Algoritmos Teoria dos Grafos

Raquel Aparecida de Freitas Mini [email protected]

1

Conceitos Básicos Cormen – páginas 853 até 861 ou Deo – páginas 1 até 23 (mais didático e detalhado)

2

Conceitos Básicos „ „

„

Grafo é uma coleção de vértices e arestas Vértice é um objeto simples que pode ter nomes e outros atributos Aresta é uma conexão entre dois vértices e1

V2

e2 e3

V3

e5

V1 e4 V4

Por definição um grafo deve ter pelo menos 1 vértice 3

Grafo da Amizade „

Modelagem: ‹ ‹

„ „

Vértices: pessoas Arestas: relação de amizade

n: número de vértices e: número de arestas

n=4

e=5 4

Problema das Pontes de Königsberg „

No século XVIII havia na cidade de Königsberg um conjunto de sete pontes que cruzavam o rio Pregel. Elas conectavam duas ilhas (A e D) entre si e as ilhas com as margens (B e C).

Por muito tempo os habitantes daquela cidade perguntavamse se era possível cruzar as sete pontes numa caminhada contínua sem passar duas vezes por qualquer uma delas 5

Problema das Pontes de Königsberg „

As pontes são identificadas pelas letras de a até g

„

Este problema pode ser representado pelo grafo vértices: pontos de terra aresta: pontes

6

Problema do Desenho da Casa „

No desenho abaixo, uma criança diz ter posto a ponta do lápis numa das bolinhas e com movimentos contínuos (sem levantar e sem retroceder o lápis) traçou as linhas que formam o desenho da casa, traçando cada linha uma única vez

A mãe da criança acha que ela trapaceou pois não foi capaz de achar nenhuma seqüência que pudesse produzir tal resultado. Você concorda com esta mãe? 7

O Problema das 3 Casas e 3 Serviços „

Suponha que tenhamos três casas e três serviços, a exemplo de:

É possível conectar cada serviço a cada uma das três casas sem que haja cruzamento de tubulações? 8

Problema de Transporte „

Nos problemas que envolvem transportes de carga ou pessoas, os pontos de parada, embarque e desembarque são os vértices e as estradas entre os pontos são as arestas

9

Problema de Transporte „

„

„

Problema de Conectividade: dadas as direções das vias, é possível ir da cidade A até a cidade B, sem andar na contramão? Problema de Fluxo Máximo: dada a capacidade de fluxo em cada via, qual é a quantidade de mercadoria que podemos mandar de uma cidade A a uma cidade B? Problema de Menor Caminho: Dados os comprimentos de cada via, qual o percurso mais rápido para sair de uma cidade A e chegar a uma cidade B?

10

Terminologia „

Grafo não orientado: G=(V,E)é um par onde V é um conjunto finito e o conjunto de arestas E consiste em pares de vértices não orientados. A aresta (vi,vj) e (vj,vi) são consideradas a mesma aresta. V1 e1 V5

e9

e4

e2 e 3 V4 e8

e5 e7

V2 e6

V3

11

Terminologia „

Grafo orientado: G é um par (V,E), onde V é um conjunto finito e E é uma relação binária em V.

V1 e1 V5

e9

e4

e2 e 3 V4 e8

e5 e7

V2 e6

V3

12

Terminologia „ „

„

Autoloop: uma aresta associada ao par de vértices (vi,vi) Arestas paralelas: quando mais de uma aresta está associada ao mesmo par de vértices Grafo simples: um grafo que não possui autoloops e nem arestas paralelas e1 e e2 são arestas paralelas e1

e2

e3

e3 é um autoloop

grafo simples 13

Terminologia „

„

„

Se (u,v) é uma aresta em um grafo G=(V,E), dizemos que o vértice v é adjacente ao vértice u (em grafo não orientado, a relação de adjacência é simétrica). Se (u,v) é uma aresta de um grafo orientado e (v,u) não é uma aresta, dizemos que o vértice v é adjacente ao vértice u, mas u não é adjacente a v Se (u,v) é uma aresta em um grafo orientado G=(V,E), dizemos que a aresta (u,v) é incidente do ou sai do vértice u e é incidente no ou entra no vértice v Se (u,v) é uma aresta em um grafo não orientado G=(V,E) dizemos que a aresta (u,v) é incidente nos vértices u e v

14

Terminologia „

O grau de um vértice em um grafo não orientado é o número de arestas incidentes nele. Em um grafo orientado, o grau de saída de um vértice é o número de arestas que saem dele, e o grau de entrada de um vértice é o número de arestas que entram nele. O grau de um vértice em um grafo orientado é seu grau de entrada somado a seu grau de saída

grau do vértice 2 é 4

grau de entrada do vértice 5 é 2 grau de saída do vértice 5 é 1 15

Terminologia „

„

„ „

Um grafo no qual todos os vértices possuem o mesmo grau é chamado de grafo regular Um vértice com nenhuma aresta incidente é chamado de vértice isolado. Um vértice com grau 1 é chamado de vértice pendente Um grafo sem nenhuma aresta é chamado de grafo nulo (todos os vértices em um grafo nulo são vértices isolados)

grafo regular

5 é um vértice isolado 1 é um vértice pendente

grafo nulo

16

Terminologia „

Um grafo não orientado G=(V,E) é um grafo completo se para cada par de vértices vi e vj existe uma aresta entre vi e vj. Em um grafo completo quaisquer dois vértices distintos são adjacentes (Kn)

K1

K2

K3

K4

K5

K6

K7

K8 17

Terminologia „

„

„

„

Um caminho de comprimento k de um vértice u até um vértice u’ em um grafo G=(V,E) é uma seqüência de vértices tais que u=V0, u’=Vk e (Vi-1,Vi)∈ E para i=1,2,...,k O comprimento de um caminho é o número de arestas no caminho Se existe um caminho de u até u’ dizemos que u’ é acessível a partir de v Um caminho simples é aquele em que todos os vértices no caminho são distintos é um caminho simples não é um caminho simples 18

Terminologia „

„

„ „

Em um grafo orientado, um caminho forma um ciclo se V0=Vk e o caminho contém pelo menos uma aresta Ciclo simples é um ciclo no qual os vértices V1,V2,...,Vk são distintos Um autoloop é um ciclo de comprimento 1 Um grafo sem ciclos é acíclico é um ciclo é um ciclo simples

19

Terminologia „

„

„

Um grafo não orientado é conectado se todo par de vértices está conectado por um caminho Cada um dos subgrafos conectados é chamado de componente Os componentes conexos de um grafo são as classes de equivalência de vértices sob a relação “é acessível a partir de”

grafo não conectado com 5 componentes 20

Terminologia „

„

Um grafo orientado é fortemente conectado se cada um de dois vértices quaisquer é acessível a partir do outro Os componentes fortemente conectados de um grafo orientado são as classes de equivalência de vértices sob a relação “são mutuamente acessíveis”

grafo possui 3 componentes fortemente conectados 21

Terminologia „

Grafo complementar: seja G = (V,E) um grafo simples. O complemento de G, G , é um grafo formado da seguinte maneira: ‹ Os vértices de G são todos os vértices de G ‹ As arestas de G são exatamente as arestas que faltam em G para formarmos um grafo completo

G

G 22

Terminologia „

„

Um grafo bipartido é um grafo não orientado G=(V,E) em que V pode ser particionado em dois conjuntos V1 e V2 tais que (u,v)∈E implica que: u∈V1 e v∈V2 ou u∈V2 e v∈V1 Em um grafo bipartido, todas as arestas ligam um vértice do conjunto V1 com um vértice do conjunto V2 a b

d

c

e

a

b

c

d 23

Terminologia „

Dois grafos G e H são ditos isomorfos se existir uma correspondência um-para-um entre seus vértices e entre suas arestas, de maneira que as relações de incidência são preservadas e

a

c b

d

5 4

a

b

c

d

e

f

1

2

3 6

1

2

3

5

4

24

Terminologia „

Condições necessárias mas não suficientes para que G e H sejam isomorfos: ‹ ‹ ‹ ‹

„

mesmo número de vértices mesmo número de arestas mesmo número de componentes mesmo número de vértices com o mesmo grau

Exemplo:

d

5 1

2

3

4 6

a

b

c

e

f

Não existe um algoritmo eficiente para determinar se dois grafos são isomorfos 25

Número de Vértices de Grau Ímpar „

A soma dos graus de todos os vértices de um grafo G é duas vezes o número de arestas de G. n

∑ d(vi) = 2 e

i =1

„

O número de vértices de grau ímpar em um grafo é par n

∑ d(vi) =

i =1

∑ d(vj) par

d(vj) +

∑ d(vk)

d(vk)ímpar

26

Exercícios 1. Todos os grafos abaixo são isomorfos, exceto:

(a)

(b)

(d)

(c)

(e) 27

Exercícios 2. Com relação ao grafo completo Kn, responda: a) Qual é o grau dos seus vértices? b) Quantas arestas ele possui?

3. Encontre um grafo com 5 vértices que seja isomorfo a seu complemento. 4. Qual o número de arestas de um grafo que é isomorfo a seu complemento?

28

Exercícios 5. Com relação ao grafo abaixo, responda: v4 v5

v3 v1 a) b) c) d) e) f) g)

v7

v2 v6

O grafo é simples? Completo? Regular? Conectado? Encontre 2 caminhos simples entre V3 e V6 Encontre 1 ciclo Indique uma aresta cuja remoção tornará o grafo não conectado 29

Número Mínimo e Máximo de Arestas „

„

O número mínimo de arestas de um grafo simples com n vértices e k componentes é n-k O número máximo de arestas de um grafo simples com n vértices e k é (n − k )(n − k + 1) 2

Grafo simples e conexo

Grafo simples

n(n + 1) n −1 ≤ e ≤ 2

( n − k )(n − k + 1) n−k ≤ e ≤ 2

30

Estruturas de Dados

Cormen – páginas 419 até 422

31

Matriz de Adjacências „

A matriz de adjacências de um grafo simples G com n vértices é uma matriz n x n, definida como: ‹ ‹

„

Mij = 1, se existe uma aresta entre os vértices i e j Mij = 0, caso contrário

Vantagem: verificar adjacência é O(1)

32

Lista de Adjacências „

„

„

„

Consiste de uma lista para cada vértice do grafo contendo todos os vértices adjacentes a ele Armazena apenas os elementos diferentes de zero da matriz de adjacências

Desvantagem: para encontrar se um vértice é adjacente a outro devemos percorrer uma lista encadeada Adequada quando e d[u] + w(u,v) then d[v] ← d[u] + w(u,v) π[v] ← u

142

Algoritmo de Dijkstra

143

Algoritmo de Dijkstra

144

Coloração

Deo – páginas 165 até 169 e 186 até 190

145

Coloração de Grafos „

Dado um grafo G, como pintar seus vértices com várias cores de maneira que vértices adjacentes são pintados com cores diferentes? Qual é o menor número de cores necessárias? v5

„

v1

v3

v2

v4

Dado um grafo G sem autoloops, uma coloração de G é uma atribuição de cores aos vértices de G de maneira que cores diferentes são atribuídas a vértices adjacentes 146

Coloração de Grafos „

„

Se existe uma coloração para um grafo G que utiliza K cores, então G é um grafo K-colorido O número cromático de um grafo G, denotado por X(G), é o menor número K para o qual G é K-colorido

X(G) = 3 147

Coloração de Grafos „

Observações ‹

‹ ‹

Não precisamos considerar grafos desconexos porque as cores utilizadas em um componente não tem efeito sobre as do outro componente Arestas paralelas não afetam a coloração Grafo não pode ter loops

GRAFOS CONEXOS SIMPLES

148

Coloração de Grafos „

O que podemos dizer sobre o número cromático dos seguintes grafos? ‹ ‹ ‹ ‹ ‹

grafo que consiste de um único vértice grafo com pelo menos uma aresta grafo completo Kn grafo bipartite árvore com 2 ou mais vértices

„

Todo grafo 2-cromático é bipartido?

„

Todo grafo 2-cromático é uma árvore?

149

Coloração de Circuitos „

„

Um grafo consistindo simplesmente de um circuito com n≥3 vértices é 2-cromático se n é par e 3-cromático se n é impar

Um grafo simples G com pelo menos uma aresta é 2cromático se, e somente se, G não contiver circuitos de tamanho ímpar

150

Coloração de Grafos „

Se d é o maior grau dos vértices de um grafo simples G então

X(G) ≤ d+1

„

Se d é o maior grau dos vértices de um grafo simples G, tal que G não contém um grafo circuito com um número ímpar de vértices e nem um grafo completo, de d+1 vértices, então

X(G) ≤ d

151

Exercícios 23. Qual é o número cromático dos seguintes grafos?

a)

b)

152

Coloração de Arestas „

„

„

Uma coloração de arestas de um grafo simples G é uma atribuição de cores às arestas de G de maneira que cores diferentes são atribuídas a arestas adjacentes Se existe uma coloração de arestas para um grafo G que utiliza K cores, então, G é um grafo K-colorido de arestas O índice cromático de um grafo G, denotado por X’(G) é o menor número K para qual G é K-colorido de arestas

153

Coloração de Arestas „

„

Se G é um grafo simples cujo vértice de maior grau tem grau d, então d ≤ X’(G) ≤ d+1

Qual é a coloração de arestas do Kn?

154

Coloração de Arestas „

Três professores lecionam disciplinas em 4 períodos do curso: 1º Período 2º Período

João

3º Período

José

4º Período

Ana

Como alocar horários para as aulas, sem que haja conflito para os professores e para as turmas?

155

Exercícios 24. Mostre que se um grafo bipartido possui algum circuito, esse deve ser de tamanho par. 25. Qual é o índice cromático do Cn? 26. Qual é o índice cromático do Kn? 27. Encontre o X’(G) para os seguintes grafo G:

(a)

(b)

156

Independência Dominância Casamento Deo – páginas 169 até 173 e 177 até 182

157

Conjunto Independente „

„

Uma coloração de um grafo induz a um particionamento dos vértices em subconjuntos de vértices chamados conjunto independentes Conjunto independente: conjunto de vértices do grafo no qual nenhum par de vértices do conjunto é adjacente

158

Conjunto Independente „

„

Conjunto independente máximo: conjunto independente no qual nenhum vértice pode ser adicionado sem destruir a independência Número de independência: número de vértices do maior conjunto independente máximo do grafo (β(G))

159

Conjunto Dominante „

„

Conjunto dominante: conjunto de vértices do grafo que “dominam” todos os vértices do grafo: um vértice v pertence ao conjunto dominante ou é adjacente a um vértice que pertence. Conjunto dominante mínimo: conjunto dominante com o menor número de vértices. α(G)

160

Casamento „

Uma agência de casamentos tem cadastrados r rapazes e m moças que desejam se casar. A agência detectou a seguinte afinidade entre eles: R a p a z e s

M o ç a s

Como maximizar o número de casamentos? 161

Casamento „

„

„

Um casamento em um grafo é um conjunto de arestas no qual nenhum par de arestas do grafo é adjacente Casamento máximo é um casamento no qual nenhuma aresta pode ser incluída Casamento completo (em grafos bipartidos) é um casamento no qual todos os vértices de um dos conjuntos são casados a algum vértice do outro conjunto

162

Casamento „

Um casamento completo de V1 em V2 em um grafo bipartido G existe se, e somente se, todo subconjunto de r vértices de V1 for coletivamente adjacente a r ou mais vértices de V2 para todos os valores possíveis de r. s1 c1 s2 c2 s3 c3 s4 s5

V1

V2 163

Exercícios 29. Encontre um casamento máximo e um casamento completo para o seguinte grafo bipartido. a b c d e f g

1 2 3 4 5 6

164

Exercícios 30. Encontre um conjunto dominante mínimo em cada um dos seguintes grafos:

(a)

(b)

165

Coberturas

Deo – páginas 182 até 186

166

Cobertura de Vértices „

„

Em um grafo G, um conjunto g de vértices é chamado de cobertura de vértices se todas as arestas de G são incidentes a pelo menos um vértice de g Se este conjunto é o menor com tal propriedade dizemos que g é uma cobertura mínima de vértices

167

Cobertura de Arestas „

„

Em um grafo G, um conjunto e de arestas é chamado de cobertura de aresta se todos os vértices de G são incidentes a pelo menos uma aresta de e Se este conjunto é o menor com tal propriedade dizemos que e é uma cobertura mínima de aresta

168

Exercícios 31. Quantos vértices existem em uma cobertura mínima de vértices de grafos bipartidos, grafos completos e grafos circuitos? 32. Podemos dizer que o número de vértices de uma cobertura mínima de vértices é sempre maior ou igual ao número de vértices do conjunto dominante mínimo? Justifique. 33. Dado um grafo conexo G, quais arestas estarão sempre presentes em todas as coberturas de aresta de G? 34. Dê exemplos de grafos que não possuem cobertura de aresta.

169

Modelagens

170

Exemplo 1 „

A rainha é a peça mais poderosa do jogo de Xadrez. Numa jogada ela pode mover-se tantas casas quantas quiser em qualquer direção vertical, horizontal ou diagonal, desde que não haja nenhuma outra peça que obstrua sua passagem. O desenho que se segue mostra uma posição particular da rainha, juntamente com as 27 possibilidades de movimento. Estas 27 casas (além daquela onde a rainha está) estão sob o domínio da rainha. Qualquer outra peça que estivesse numa destas casas estaria sob ataque da rainha em questão.

171

Exemplo 1 (cont.) „

„

Encontre o número máximo de rainhas que podem ser colocadas em um tabuleiro de forma que nenhuma rainha ataque a outra. Modele este problema utilizando Teoria dos Grafos e proponha uma solução para ele. Encontre o menor número de rainhas que podem ser colocadas em um tabuleiro de forma que toda posição não ocupada seja atacada. Modele este problema utilizando Teoria dos Grafos e proponha uma solução para ele.

172

Exemplo 2 „

Uma empresa possui N tarefas a serem executadas e K funcionários já contratados. Muitas das tarefas são complexas e exigem trabalho especializado, de modo que a partir das características de cada funcionários e de cada tarefa, a empresa já designou quais funcionários estarão responsáveis por quais tarefas. Se todos os funcionários designados para uma determinada tarefa estiverem disponíveis, esta tarefa poderá ser executada em uma hora. A empresa deseja saber o número mínimo de horas que serão necessários para que todas as tarefas sejam executadas. Modele este problema utilizando teoria de grafos e proponha uma solução para ele.

173

Exemplo 3 „

„

„

„

Suponha que N candidatos a uma vaga devem ser entrevistados individualmente por profissionais de uma empresa. Os entrevistadores são escolhidos de acordo com a área de atuação que o candidato está pleiteando Como determinar o número mínimo de períodos de entrevista considerando que cada profissional entrevista individualmente cada candidato? Como determinar o número mínimo de períodos de entrevista considerando que todos os profissionais entrevistam conjuntamente todos os candidatos no mesmo período.

174

Exemplo 4 „

Existem 2n meninas que toda manhã vão andando para o colégio em grupo de 2. Encontre o número de dias que serão necessários para que cada garota saia exatamente 1 vez com todas as outras meninas.

175

Exemplo 5 „

Neste ano, Maria ficou responsável pela organização da quadrilha do seu bairro. Sabe-se que existem n meninas e n meninos dispostos a participar. Ela gostaria de saber de quantas maneiras possíveis ela poderia fazer o agrupamento dos casais de forma que nenhum casal de repita de um agrupamento para o outro. Modele este problema utilizando teoria dos grafos e proponha uma solução para ele.

176

Exemplo 6 „

Suponha que n times estão participando de uma competição na qual cada time deve jogar exatamente uma vez contra cada um dos outros n-1 times. Assumindo que qualquer quantidade de jogos com qualquer quantidade de times pode ser jogado simultaneamente, quantas rodadas serão necessárias para finalizar este torneio? Modele este problema utilizando teoria de grafos e proponha uma solução para ele.

177

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF