Escolar Documentos
Profissional Documentos
Cultura Documentos
2 Algoritmo de Bellman-Ford
3 Algoritmo de Dijkstra
Ideia
Admite pesos negativos nas arestas;
Relaxa as progressivamente arestas do grafo.
Sequência (exemplo):
(t , x ); (t , y ); (t , z ); (x , t ); (y , x ); (y , z ); (z , x ); (z , s ); (s , t ); (s , y ).
Mayron César O. Moreira (UFLA) GCC218 8 / 20
Bellman-Ford
Algoritmo
Complexidade: O (mn).
Mayron César O. Moreira (UFLA) GCC218 9 / 20
Dijkstra
Ideia
Arestas são não-negativas;
S : conjunto de vértices cujo caminho mínimo em relação a s já foi
calculado;
Selecionar u ∈ V − S , com menor estimativa de caminho mínimo,
adicionar u a S e relaxar todas as arestas (u , v ) tal que v ∈ Adj [u ].
Ideia
Ordenar topologicamente;
Aproveitar a nova estrutura do grafo e calcular o caminho mais
eciente.
Algoritmo
Complexidade: O (m + n ).
Equação geral:
xj − xi ≤ bk
onde 1 ≤ i , j ≤ n e 1 ≤ k ≤ m
Mayron César O. Moreira (UFLA) GCC218 18 / 20
Outra aplicação: Sistema de Restrições de Diferença
Objetivo
Encontrar os valores de x que respeitem as restrições do sistema.
Exemplo: x = (x1 , x2 , x3 , x4 , x5 ) = (−5, −3, 0, −1, −4).
Pergunta
Como utilizar o algoritmo de Bellman-Ford para resolver este problema?
x1 − x2 ≤ 0
x1 − x5 ≤ −1
x2 − x5 ≤ 1
x3 − x1 ≤ 5
x4 − x1 ≤ 4
x5 − x3 ≤ −3
x5 − x4 ≤ −3