Вы находитесь на странице: 1из 3

Algoritmo de Floyd

Inicialmente, esse algoritmo faz uma matriz de custo do grafo. Ou seja,


ele verifica a distncia entre cada par de vrtices. Se existir uma aresta, o valor
que ele coloca naquela posio da matriz o custo da aresta. Se no existir
uma aresta entre o par de vrtices, ele coloca o valor .
Em seguida, ele verifica se existe um caminho de menor custo entre
cada par de vrtices, ao passar por um vrtice intermedirio. Ou seja, suponha
um grafo com 5 vrtices. De um modo geral, aps montar a matriz de
distncias, ele far 5 iteraes:
1. Iterao: descobrir se h caminhos que ficam menores ao passar
pelo vrtice 1
2. Iterao: descobrir se h caminhos que ficam menores ao passar
pelo vrtice 2
3. Iterao: descobrir se h caminhos que ficam menores ao passar
pelo vrtice 3
4. Iterao: descobrir se h caminhos que ficam menores ao passar
pelo vrtice 4
5. Iterao: descobrir se h caminhos que ficam menores ao passar
pelo vrtice 5

Algoritmo:

Parte1 Construir a matriz de distncia e a matriz de roteamento


0, se i=j
A ij = , se no existe aresta entre o vrtice i e o vrtice j
0

custo da aresta entre o vrtice i e o vrtice j

Parte2 Verificar, para cada posio da matriz, se existe um caminho mais


curto
Considerando que n o nmero de vrtices:

Para k= 1,.., n faa


Para i=1,..n faa
Para j=1,...n faa
Se (Ak-1 ik + Ak-1 kj < Ak-1 ij) ento
Akij := Ak-1 ik + Ak-1kj;
Fim do Se.
Fim do Para
Fim do Para
Fim do Para
Exerccios
1) Aplicar o algoritmo de Floyd para encontrar a matriz de custo mnimo
para os seguintes grafos:

a)
b

5 3 4

a 5 2 c
e

4 3

b) c

4
4 3

6 d
b
4 5
2
2 e
a

c)
e 4 d

5 6
5 7 5
f c
5 6
4
a b

2) Em cada caso, olhando apenas para as matrizes, responda:


a) Qual a rota de custo mnimo entre o vrtice a e o vrtice c?
b) Qual a rota de custo mnimo entre o vrtice c e o vrtice e?

Вам также может понравиться