A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CC/EC/MestradoTeoria dos Grafos Algoritmos de Caminho Mínimo em Grafos.

Apresentações semelhantes


Apresentação em tema: "CC/EC/MestradoTeoria dos Grafos Algoritmos de Caminho Mínimo em Grafos."— Transcrição da apresentação:

1 CC/EC/MestradoTeoria dos Grafos Algoritmos de Caminho Mínimo em Grafos

2 CAMINHOS MAIS CURTOS

3 Caminhos mais Curtos Dados: grafo G=(V,A) orientado e distância c ij associada ao arco (i,j) A. Problema: Obter o caminho mais curto entre dois nós s e t. O comprimento de um caminho é igual à soma dos comprimentos (distâncias) dos arcos que formam o caminho. A distância ou comprimento de um arco pode ter diversas interpretações dependendo da aplicação: custos, distâncias, consumo de combustível, etc. Exemplo 1: Dado um mapa rodoviário, determinar a rota mais curta de uma cidade a outra. (rota mais rápida, rota com menor consumo de combustível,...)

4 Caminhos mais Curtos Exemplo 2: Construção de uma estrada entre duas cidades A e K. O grafo abaixo representa os diversos trechos possíveis e o custo de construção de cada um. Determinar o trajeto ótimo cujo custo de construção seja mínimo (corresponde a achar o caminho mais curto de A a K em relação a estes custos). A B C D F E GJ I H K Solução:A – D – G – I – K custo = = 16

5 Caminhos mais Curtos Condição de existência: Caminho de i a j contendo um ciclo w: k j i w Comprimento do caminho = comprimento (i k) + comprimento (w) + comprimento (k j) Qual é o comprimento do caminho mais curto de i a j se o comprimento do ciclo w é negativo?

6 Caminhos mais Curtos Condição de existência: não há ciclos de comprimento negativo. A solução ótima (caminho mais curto) sempre será um caminho elementar (sem ciclos).

7 Caminhos mais Curtos Caminho mais curto: - De um nó a outro - De um nó a todos os demais - Entre todos os pares de nós de um grafo - De um nó a todos os demais

8 Caminhos mais Curtos Caminho mais curto do nó 1 a cada nó do grafo G=(V,A) Hipótese: todas as distâncias c ij são positivas: c ij 0, (i,j) A Algoritmo de Moore-Dijkstra ( ) *(i) = comprimento do caminho mais curto do nó 1 ao nó i Em especial, *(1)=0 (distâncias positivas). Algoritmo com n-1 iterações No início de cada iteração, o conjunto V de nós está particionado em dois subconjuntos S e S, com o nó 1 em S.

9 Cada nó i V possui um rótulo (i ), que verifica a seguinte propriedade: Caminhos mais Curtos dá o valor do caminho mais curto de 1 a i sob a restrição de que todos os nós utilizados (exceto o próprio i ) pertençam a S. a 1b c i c ai c bi c ci

10 Caminhos mais Curtos Teorema: Seja o nó tal que. Então, isto é, o comprimento do caminho mais curto do nó 1 ao nó j é igual a. Demonstração: Por construção, certamente existe um caminho de 1 até j com comprimento (j). Suponhamos que exista outro caminho de 1 a j de comprimento menor do que (j). Dividamos este caminho em duas partes: - P 1 é a parte inicial, do nó 1 ao nó L, onde L é o primeiro nó de encontrado - P 2 é a parte final, do nó L ao nó j

11 Caminhos mais Curtos comprimento de P 1 (L) (j) comprimento de P 2 0 Logo, o comprimento de P 1 + P 2 (j).

12 CC/EC/MestradoTeoria dos Grafos Algoritmo de Dijkstra Resolve o problema com um vértice-fonte em grafos cujas arestas tenham peso maior ou igual a zero. Este algoritmo é capaz de determinar o caminho mínimo, a partir de um vértice inicial v, para todos os outros vértices do grafo.

13 CC/EC/MestradoTeoria dos Grafos Algoritmo de Dijkstra v INI = vértice inicial d(v INI, v INI ) = 0 d(v INI, i) = INFINITO, i, i V – {v INI } fechado = aberto = V anterior(i) = 0, i, i V enquanto(aberto ) { k = vértice pertencente a aberto, mais próximo do vértice inicial fechado = fechado k; aberto = aberto – k; para cada vizinho i de k que está em aberto faça{ custo = min{d(v INI, i), d(v INI,k) + c(k,i)} se (custo < d(v INI, i)) então d(v INI, i) = custo; anterior(i) = k }

14 CC/EC/MestradoTeoria dos Grafos Execução 1. o grafo inicial2. inicializando os custos3. atualizando o conjunto fechado4. examinando os vértices vizinhos ao 1 que estão em aberto 5. 3 é o vértice de menor custo; fechado = fechado+{3} 6. examinando os vértices vizinhos ao é o vértice de menor custo; fechado = fechado+{2} 8. examinando os vértices vizinhos ao é o vértice de menor custo; fechado = fechado+{4} 10. examinando os vértices vizinhos ao é o vértice de menor custo; fechado = fechado+{5} 12. examinando os vértices vizinhos ao é o vértice de menor custo; fechado = fechado+{6} 14. fim alcançado fim do algoritmo

15 Caminhos mais Curtos Número de operações (tempo): ~ n 2 n-1 iterações, cada iteração busca o mínimo em uma lista com até n-1 elementos Caminho mais curto do nó 1: ao nó j a todos os nós Mesma complexidade, mas critérios de parada diferentes. Distâncias negativas: Caminho mais curto de 1 a 3? Resultado do algoritmo? 2 3 Porque?


Carregar ppt "CC/EC/MestradoTeoria dos Grafos Algoritmos de Caminho Mínimo em Grafos."

Apresentações semelhantes


Anúncios Google