prof. marco antonio m. carvalho - decom-ufop | início · grafo de exemplo, árvore geradora e ......

30
Prof. Marco Antonio M. Carvalho

Upload: lamkhuong

Post on 12-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Prof. Marco Antonio M. Carvalho

Lembretes

¤  Lista de discussão ¤  Endereço:

¤  [email protected] ¤  Solicitem acesso:

¤  http://groups.google.com/group/programaacao

¤  Página com material dos treinamentos ¤  http://www.decom.ufop.br/marco/extensao/obi/

¤  Repositório online de problemas das edições passadas da OBI ¤  http://br.spoj.com/problems/obi/sort=-7

¤  Moodle ¤  http://programaacao.net.br/login/index.php

2

Avisos

3

Na aula de hoje

¤ Árvore Geradora

¤ Árvore Geradora Mínima

¤ Algoritmo de Prim

¤ Problema Selecionado

¤ Um Problema de Lógica

4

Árvore Geradora

5

Árvore Geradora

¤  Todo grafo G conexo possui uma árvore que contém todos os seus vértices;

¤  Uma árvore geradora de um grafo G é um subgrafo conexo e acíclico que possui todos os vértices originais de G e um subconjunto das arestas originais de G ¤  Em outras palavras, uma árvore geradora é um subgrafo

gerador que é uma árvore.

¤ Como consequência das propriedades de uma árvore, todo grafo conexo possui pelo menos uma árvore geradora.

6

7

Árvores Geradoras

Grafo de exemplo e árvores geradoras.Marco Antonio M. Carvalho (UFOP) BCC204 6 de fevereiro de 2014 10 / 52

Árvore Geradora

8

Árvores Geradoras

Grafo de exemplo, árvore geradora e uma árvore não geradora.

Marco Antonio M. Carvalho (UFOP) BCC204 6 de fevereiro de 2014 11 / 52

Grafo de exemplo, árvore geradora e árvore não geradora.

Árvore Geradora

¤ Uma floresta é um conjunto de árvores sem vértices em comum;

¤ Uma floresta geradora é uma floresta que contém todos os vértices de um grafo.

9

Florestas

DefiniçõesUma floresta é um conjunto de árvores sem vértices em comum.

Uma floresta geradora é uma floresta que contém todos os vértices de um grafo.

Grafo de exemplo e florestas. A primeira floresta é geradora.

Marco Antonio M. Carvalho (UFOP) BCC204 6 de fevereiro de 2014 12 / 52

Grafo de exemplo e florestas, apenas a primeira é geradora.

Árvore Geradora Mínima

10

Árvore Geradora Mínima

¤ A árvore geradora de custo mínimo é a árvore geradora de menor custo dentre todas as possíveis em um grafo;

¤ Analogamente, a árvore geradora de custo máximo é a árvore geradora de maior custo dentre todas as possíveis em um grafo;

¤ A determinação de ambas as árvores descritas pode ser feita em tempo polinomial.

11

Árvore Geradora Mínima

12

Árvore Geradora de Custo Mínimo e Máximo

Grafo de exemplo, árvore geradora de custo mínimo e árvore geradora de custo máximo.

Marco Antonio M. Carvalho (UFOP) BCC204 6 de fevereiro de 2014 15 / 52

Grafo de exemplo e árvores geradoras de custo mínimo e máximo.

Árvore Geradora Mínima

¤ Um dos primeiros algoritmos para determinação de árvores geradoras mínimas data do ano de 1928.

¤ De lá para cá, a complexidade dos algoritmos evoluiu de O(|A|log|V|) para O(|A|), cuja implementação data de 2008;

¤ Dois dos algoritmos mais populares para determinação de árvores geradoras mínimas, ambos gulosos, remetem ao final da década de 50: o algoritmo de Prim e o Algoritmo de Kruskal.

13

Algoritmo de Prim

14

Algoritmo de Prim

¤ Este algoritmo foi proposto 1930 pelo matemático tcheco Vojtech Jarník;

¤ Este mesmo algoritmo foi novamente proposto pelo cientista da computação americano Robert C. Prim (* 1921 – † 2009) em 1957 e redescoberto posteriormente pelo holandês Edsger Dijkstra em 1959.

15

Algoritmo de Prim

¤ O princípio do algoritmo é Incluir, de forma gulosa, um a um, os vértices da árvore geradora mínima;

¤ O algoritmo parte de qualquer vértice do grafo;

¤ A cada passo, acrescenta menor aresta incidente no conjunto de vértices que já foram selecionados e que possui uma extremidade em vértices no conjunto de não selecionados.

16

Algoritmo de Prim

¤ Terminologia ¤  Tmin: Conjunto de arestas que define a árvore geradora

mínima;

¤  T: Conjunto dos vértices já selecionados pelo algoritmo;

¤  N: Conjunto dos vértices não selecionados pelo algoritmo;

¤  \: subtração em conjuntos.

17

Algoritmo de Prim

18

Algoritmo de Prim

Entrada: Grafo G = (V , A) e matriz de pesos D={dij} para todas as arestas {i , j}1 Escolha qualquer vértice i 2 V ;2 T {i};3 N V \ i ;4 Tmin ;;5 enquanto |T | 6= |V | faça6 Encontre a aresta (j , k) 2 A tal que j 2 T , k 2 N e djk é mínimo;7 T T [ {k};8 N N \ {k};9 Tmin Tmin [ (j , k);

10 fim

Marco Antonio M. Carvalho (UFOP) BCC204 6 de fevereiro de 2014 19 / 52

Algoritmo de Prim

19

Exemplo

Grafo de exemplo. O vértice 1 é o primeiro a ser escolhido.

Marco Antonio M. Carvalho (UFOP) BCC204 6 de fevereiro de 2014 21 / 52Grafo de exemplo. O vértice 1 é o primeiro a ser escolhido.

Algoritmo de Prim

20

Exemplo

Inserção do vértice 2 e da aresta {1, 2}.A região em azul indica os vértices escolhidos.

Marco Antonio M. Carvalho (UFOP) BCC204 6 de fevereiro de 2014 22 / 52Inserção do vértice 2 e da aresta {1, 2}.

A região em azul indica os vértices escolhidos.

Algoritmo de Prim

21

Exemplo

Inserção do vértice 3 e da aresta {2, 3}.

Marco Antonio M. Carvalho (UFOP) BCC204 6 de fevereiro de 2014 23 / 52Inserção do vértice 3 e da aresta {2, 3}.

Algoritmo de Prim

22

Exemplo

Inserção do vértice 4 e da aresta {2, 4}.

Marco Antonio M. Carvalho (UFOP) BCC204 6 de fevereiro de 2014 24 / 52

Inserção do vértice 4 e da aresta {2, 4}.

Algoritmo de Prim

23

Exemplo

Inserção do vértice 5 e da aresta {4, 5}.

Marco Antonio M. Carvalho (UFOP) BCC204 6 de fevereiro de 2014 25 / 52Inserção do vértice 5 e da aresta {4, 5}.

Algoritmo de Prim

24

Exemplo

Inserção do vértice 6 e da aresta {4, 6}.A árvore geradora mínima foi determinada.

Marco Antonio M. Carvalho (UFOP) BCC204 6 de fevereiro de 2014 26 / 52

Inserção do vértice 6 e da aresta {4, 6}. A árvore geradora mínima foi determinada.

Aplicações ¤  Projeto de redes de computadores e de comunicação;

¤  Instalações telefônicas, hidráulicas, elétricas, de petróleo e gás;

¤  Análise de agrupamentos;

¤  Análise genética;

¤  Análise de padrões de distribuição espacial de esporos;

¤  Astronomia (determinação de agrupamento de quasars);

¤  Geração de limites de problemas NP-Difíceis;

¤  Computação móvel;

¤  Modelos de localização de interação de partículas em fluxo turbulento de fluidos;

¤  etc. 25

Problema Selecionado

26

Problemas Selecionados

¤  http://www.urionlinejudge.com.br/judge/pt/problems/view/1152

27

Um Problema de Lógica

28

Um Problema de Lógica

¤ Um carro precisa transportar uma pessoa importante através de um deserto;

¤ Não há posto de gasolina no deserto, e o tanque do carro só tem capacidade para ir até metade do deserto;

¤ Por sorte, existem carros que podem transferir o combustível de seu tanque para outros carros;

¤ Quantos carros serão necessários para transportar a pessoa até o outro lado do deserto?

29

30

Perguntas?