You are on page 1of 3

Teoria dos Grafos

rvore de Cobertura - Introduo


Problema 1: Os pinos de uma placa de circuito impresso Problema 1: Os pinos de uma placa de circuito impresso
devem ser conectados com a menor quantidade de fio. devem ser conectados com a menor quantidade de fio.

Problema 2: No sistema de abastecimento de gua de Problema 2: No sistema de abastecimento de gua de


rvore de Cobertura Mnima

Campina Grande, existem vrios tanques de armazenamento e Campina Grande, existem vrios tanques de armazenamento e tratamento da gua que vem do Aude de Boqueiro. Como tratamento da gua que vem do Aude de Boqueiro. Como interligar os tanques (em princpio, qulalquer par de tanques pode interligar os tanques (em princpio, qulalquer par de tanques pode ser interligado), de modo a garantir o correto abastecimento e ser interligado), de modo a garantir o correto abastecimento e que o custo seja mnimo? que o custo seja mnimo?

Teoria dos Grafos

Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Jorge Figueiredo, DSC/UFCG

rvore de Cobertura - Introduo


Problema 1: Os pinos de uma placa de circuito impresso Problema 1: Os pinos de uma placa de circuito impresso
devem ser conectados com a menor quantidade de fio. devem ser conectados com a menor quantidade de fio.

O que uma rvore de cobertura?


Uma rvore de cobertura de um grafo no dirigido G=(V,E) Uma rvore de cobertura de um grafo no dirigido G=(V,E) um subgrafo de G que uma rvore e contm todos os um subgrafo de G que uma rvore e contm todos os vrtices de G. vrtices de G.

Problema 2: No sistema de abastecimento de gua de Problema 2: No sistema de abastecimento de gua de


Campina Grande, existem vrios tanques de armazenamento e Campina Grande, existem vrios tanques de armazenamento e tratamento da gua que vem do Aude de Boqueiro. Como tratamento da gua que vem do Aude de Boqueiro. Como interligar os tanques (em princpio, qulalquer par de tanques pode interligar os tanques (em princpio, qulalquer par de tanques pode ser interligado), de modo a garantir o correto abastecimento e ser interligado), de modo a garantir o correto abastecimento e que o custo seja mnimo? que o custo seja mnimo?
Grafo
Os dois problemas acima so conhecidos como o problema da conexo mnima. Na Teoria dos Grafos o problema de encontrar a rvore de cobertura (geradora) mnima para o grafo.
Teoria dos Grafos Jorge Figueiredo, DSC/UFCG Teoria dos Grafos Jorge Figueiredo, DSC/UFCG

rvore de Cobertura

rvore de cobertura
Um grafo pode ter mais de uma rvore de cobertura? Um grafo pode ter mais de uma rvore de cobertura? Um grafo no conectado pode ter uma rvore de cobertura? Um grafo no conectado pode ter uma rvore de cobertura?

rvore de cobertura
Um grafo pode ter mais de uma rvore de cobertura? Um grafo pode ter mais de uma rvore de cobertura? Um grafo no conectado pode ter uma rvore de cobertura? Um grafo no conectado pode ter uma rvore de cobertura?

Teoria dos Grafos

Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Jorge Figueiredo, DSC/UFCG

Como Encontrar uma rvore de Cobertura? Para encontrar uma rvore de cobertura: Para encontrar uma rvore de cobertura:
Se o grafo G no tem ciclos, G uma rvore de Se o grafo G no tem ciclos, G uma rvore de cobertura. cobertura. Se G tem ciclo, necessrio remover Se G tem ciclo, necessrio remover recursivamente arestas (at achar uma rvore), recursivamente arestas (at achar uma rvore), mantendo o grafo conectado. mantendo o grafo conectado.

rvore de Cobertura Mnima (MST)


O custo de um subgrafo (de um grafo no dirigido O custo de um subgrafo (de um grafo no dirigido ponderado) a soma dos pesos de suas arestas. ponderado) a soma dos pesos de suas arestas. Uma rvore de cobertura mnima de um grafo no dirigido Uma rvore de cobertura mnima de um grafo no dirigido ponderado uma rvore de cobertura com menor custo. ponderado uma rvore de cobertura com menor custo. Um grafo pode ter mais de uma rvore de cobertura mnima? Um grafo pode ter mais de uma rvore de cobertura mnima?
8 2 a 8 h 11 7 1 i 6 10 g 2 f 7 4

d 14

9 e

Teoria dos Grafos

Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Jorge Figueiredo, DSC/UFCG

rvore de Cobertura Mnima (MST)


O custo de um subgrafo (de um grafo no dirigido O custo de um subgrafo (de um grafo no dirigido ponderado) a soma dos pesos de suas arestas. ponderado) a soma dos pesos de suas arestas. Uma rvore de cobertura mnima de um grafo no dirigido Uma rvore de cobertura mnima de um grafo no dirigido ponderado uma rvore de cobertura com menor custo. ponderado uma rvore de cobertura com menor custo. Um grafo pode ter mais de uma rvore de cobertura mnima? Um grafo pode ter mais de uma rvore de cobertura mnima?
8 2 a 8 h 11 7 1 i 6 10 g 2 f 7 4

Como Encontrar uma MST?


Algoritmo Genrico Algoritmo Genrico 1. A 1. A 2. while A no uma rvore de cobertura 2. while A no uma rvore de cobertura 3. do encontre uma aresta (u,v) que segura para A 3. do encontre uma aresta (u,v) que segura para A 4. A A {(u,v)} 4. A A {(u,v)} 5. return A 5. return A

d 14

9 e

Teoria dos Grafos

Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Jorge Figueiredo, DSC/UFCG

Como Reconhecer uma Aresta Segura?


Definir um corte no grafo, particionando o conjunto Definir um corte no grafo, particionando o conjunto de vrtices. de vrtices. Uma aresta cruza o corte se cada um dos vrtices Uma aresta cruza o corte se cada um dos vrtices que formam a aresta est em partio diferente. que formam a aresta est em partio diferente. O corte deve respeitar A. Isso acontece se nenhuma O corte deve respeitar A. Isso acontece se nenhuma aresta de A cruza o corte. aresta de A cruza o corte. A aresta segura aquela de menor peso que cruza A aresta segura aquela de menor peso que cruza o corte. o corte.

Aresta Segura

4 a 8

b 11 7 h

8 2 i 6

7 4

d 14

9 e 10

Teoria dos Grafos

Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Jorge Figueiredo, DSC/UFCG

Algoritmos para Encontrar MST


Kruskal: Encontra a aresta segura e adiciona a rvore de Kruskal: Encontra a aresta segura e adiciona a rvore de cobertura que est sendo formada. A nova aresta no deve cobertura que est sendo formada. A nova aresta no deve necessariamente ter um dos vrtices na rvore que est necessariamente ter um dos vrtices na rvore que est sendo formada. Ou seja, uma floresta pode existir antes da sendo formada. Ou seja, uma floresta pode existir antes da MST ter sido encontrada. MST ter sido encontrada. Prim: Encontra a aresta segura e um dos vrtices Prim: Encontra a aresta segura e um dos vrtices necessariamente deve pertencer a rvore que est sendo necessariamente deve pertencer a rvore que est sendo construda. Sempre existe uma nica rvore parcial. construda. Sempre existe uma nica rvore parcial.

Algoritmo de Kruskal
1. A 1. A 2. for cada vrtice v V[G] 2. for cada vrtice v V[G] 3. do Make-Set(v) 3. do Make-Set(v) 4. Ordene as arestas de E (ordem crescente por peso w) 4. Ordene as arestas de E (ordem crescente por peso w) 5. edge (u,v) E, (considerando a ordem) 5. edge (u,v) E, (considerando a ordem) 6. if Find-Set(u) Find-Set(v) 6. if Find-Set(u) Find-Set(v) 7. then A A {(u,v)} 7. then A A {(u,v)} 8. Union(u,v) 8. Union(u,v) 9. return A 9. return A

Teoria dos Grafos

Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Jorge Figueiredo, DSC/UFCG

Algoritmo de Prim
1. for cada vrtice u V[G] 1. for cada vrtice u V[G] 2. do chave[u] // chave[u] o custo de u para vrtice da rvore 2. do chave[u] // chave[u] o custo de u para vrtice da rvore 3. [u] NIL 3. [u] NIL // rr a raiz da rvore 4. chave[r] 0 // a raiz da rvore 4. chave[r] 0 5. Q V[G] // Q contm todos os vrtices que ainda no esto na rvore 5. Q V[G] // Q contm todos os vrtices que ainda no esto na rvore 6. while Q 6. while Q 7. do u Extract-Min[Q] 7. do u Extract-Min[Q] 8. for cada v Adj[u] 8. for cada v Adj[u] 9. do if v Q w(u,v) < chave[v] 9. do if v Q w(u,v) < chave[v] 10. then [v] u 10. then [v] u 11. chave[v] w(u,v) 11. chave[v] w(u,v)

Teoria dos Grafos

Jorge Figueiredo, DSC/UFCG

You might also like