O algoritmo de Floyd apesar de ser o mais complexo dos apresentados tem a vantagem de ser de programação
fácil ( uma única matriz) e ser de difusão total, ou seja, quando aplicado permite obter o Encargo Total Mínimo
entre qualquer par de vértices do grafo e o Encaminhamento associado (o que não sucede com outros métodos
que são de difusão parcial).
A aplicação do método supõe que no grafo não há circuitos com encargo total negativo (absorventes).
1. Algoritmo de Floyd
Considere-se o Grafo da figura e respectiva matriz de distâncias (km) para calcular a Matriz de Distâncias
Mínimas.
x y z w
x 38
00
4
14
005 7
00
300
00 y
Z
W
Para os pares de vértices não ligados por arco considera-se a distância "+00" por se tratar de minimização de uma
função (distância total).
O cálculo será efectuado com a seguinte sequência considerando Cij a distância entre os vértices "i" e "j":
Nas colunas "k =1 a n" executar:
Nas linhas "i = 1 a m" executar:
z = cik + 'i<.j
se z < c lJ.. substituir c..IJ = z
Nova coluna da linha
Nova linha
Nova coluna
2. Somar cada elemento Cu (operador) aos elementos da linha com índice "j" (índice igual ao da coluna do
operador); a linha de valores obtida compara-se com a linha do operador sendo os valores desta linha
substituídos se são superiores aos calculados (melhoria).
Grnfos - Encaminhamentos e Localizações
3. Quando se efectuam substituições, ao novo valor de distância agrega-se o índice da colmm do operador
(vértice intermédio) para posteriormente reconstituir o encaminhamento.
400 8
O
00 17 •Diagonal Colill1a
Desnecessário;
SOlllar distânciade X
àPrincipal
de X
linha através de X
Tarefa
obtendo:não é possível
wx melhorar de(i W
= j);
aosdesnecessário
restantes
• • Melhoria melhorar
X
vértices.
3operador distância
(linha de
Z) Y aos restantes
ador czx= 3 para
Comparar •comZW 3 = 17km
linha passando
corrente
RegistaremZW, 17x por
do
Cyx= 00
c = 00
Malharia:
Z a W: 17km porX
Após percorrida a Ia colill1a (vértice X como ponto intermédio), a lllatriz de distâncias tem registados os
seguintes valores:
X Y Z w
X 4358
14
00
00 7
17x
30000 Y
Z
W
Terminada a procura de melhores encaminhamentos entre cada par de vértices usando X como POnto intermédio,
passa-se à colill1a seguinte em que o ponto intermédio será o vértice Y.
Gratos - Encaminhamentos e Localizações
4840O87O0
1511 Somar Coluna de Y
Y j); Y
wy
yy
11 17x •Desnecessário;
Diagonal linha através
àPrincípal
de (i =
Tarefade não é possível
desnecessário
obtendo:
Y
vértices.
melhorar 00 de X aos restantes
distância
00
opemdor
==0015
3Registar
• czy porY (linha W)
Z)
emdor c =00
•Melhoria
•• Compamr
Compamr
Melhoria com
paro WZ
com
paro linha
ZW =4corrente
7km
corrente
km ZW,
WZ,do 7y
empassando l5y por
passando
c =8
Melhoria:
Z a W: 7km porY
Melhoria:
z Wa z: 15km porY
7/• \. 15y
®-8--0<3~
Após percorrida a 2a coluna (vértice Y como ponto intermédio), a matriz de distâncias tem registados os
seguintes valores:
X Y Z W
X 00
14
15y
8
435 7
7y
300
00 Y
Z
W
Terminada a procura de melhores encaminhamentos entre cada par de vértices usando Y como ponto
intermédio, passa-se à coluna seguinte em que o ponto intermédio será o vértice Z.
Gratos - Encaminhamentos e Localizações
€J0
8·...
h) / 33/
Malhoria: XaW: 12kmporZ
95 8511
114
1922
15
315 77O
2 Somar àà
••• Melhorla:
Somar 15y"j);~4--0
ColunadeZ
linha
linha de
Z de Tarefa
Z
Z obtendo:
obtendo: ~ Malhoria:
7y 18z
// 00 YSomar
a x: 10km
Diagonal linha
por de (i
Principal Z=obtendo:
x desnecessário
a Y: 9km porZ
7y
~';--7~4--0
• Melhoria
• Comparar
Operador C
~ cwz=
yz
czz para
Ocom
==715
3
YX = operador
10
• linha km em
Registar
WaX:18kmporZ
(linha
818corrente
passando
do 9z
XY,
lO
Y) ; em XW,
Malhoria:
0-5~4 l2z
~ ~~
.~
18 km passando
Após percorrida a 3a coluna (vértice Z como ponto intermédio), a matriz de distâncias tem registados os
seguintes valores:
x y Z W
x 439Z
12z
l5y58 7y7
18..•.
310z y
Z
W
I U I I
No momento, o encaminhamento mais favorável de X para Y é:
X => Z => Y no total de 9 km
Terminada a procura de melhores encaminhamentos entre cada par de vértices usando Z como ponto
intem1édio, passa-se à coluna seguinte em que o ponto intem1édio será o vértice W.
Gratos - Encaminhamentos e Localizações
1215
322
7311 718
5O SomarColunalinhadedeW , .18,-
,18z
310
O
4O9••Diagonal
• Somar
Somar
operador (linha X)
àààPrincipal
IIlinha
linha de
de W
Tarefa
WW=obtendo:
(i obtendo:
obtendo:
j); desnecessário
Z 15"
15,-,
@--3~8___0
,18z' W~,.0)
".<Z>
~
~_u-12,. u ..v,o::..B y
,-~
Nesta matriz obtém-se por leitura directa a distância rrúnima entre qualquer par de vértices.
Para reconstituir o caminho associado àquelas distâncias, no caso de não se tratar de caminho com um único
arco, vejam-se os exemplos seguintes:
• Caminho de Z para W ; distância núnima 7 km
Na matriz temos ZW= 7y o que significa que entre Z e W está o vértice Y. Notar que apenas se sabe
Cons,ultando ~z o J4\rt1L ll!-illn (sem vértice i~teWn~dio) com o que se atinge o destino:
• Caminho de X paraW ; distância núnima 12 km
Na matriz temos XW= 12z o que significa que entre X e W está o vértice Z. Notar que apenas se sabe
-----~ Y • W
Que Z antecedl2jão sabendo
4km se é L!j-o imediatamentm
3km isso tem-se:
Gratos - Encaminhamentos e Localizações
Consultando na matriz O par XZ lê-se 5 km (sem vértice intermédio). Actualiza-se a figura anterior:
Consultando na matriz o par ZW= 7y significa que entre Z e W está o vértice Y. Notar que apenas se
sabe que Y ant~::W: (lli\~eldJ sé- é lou não imediatamente). Por is~o~~-se:
Consultando na matriz o par zy lê-se 4 km (sem vértice intermédio). Actualiza-se a figura anterior:
I X I ~1<m" 0 [TI ~
Consultando na matriz o par YW lê-se 3 km (sem vértice intermédio) com o que se atinge o destino:
2. Localizações no grafo
Considere-se o grafo da figura G=(V,U), a matriz de distâncias e a matriz de distâncias mínimas (km):
No caso de grafo orientado, no vértice vi podem medir-se as excentricidades exterior < e interior e;:- .
A matriz de distâncias mínimas pode ser orlada com a excentricidade de cada vértice como mostra a figura
seguinte:
O centro do grafo da figura é o vértice "E" (excentricidade = raio = 29 km). É O vértice que, sob o ponto de
vista de distância, oferece melhores condições para uma instalação de equipamentocolectivo. Se o quartel
dos bombeiros se situar em "E" todas as' suas intervenções se situam, no máximo, a29 km.
g. Mediana do Grafo
E o vértice vi pam o qual a soma dos encargos aos restantes vértices do grafo tem valor minimo.
A matriz de distâncias mínimas pode ser orlada com a soma das distâncias de cada vértice como mostro a
figura seguinte:
A B C D E F G H I Soma (km) Obs.
A 12
15
27
26
26
25
39
11
27
24
29
25
21
20
43
468 35
16
45
32
37
38
18
10
17
13
45
28
40
27
35
14 13
8
10
39
11
15 221
25
46
37
12
28
20
38
15 B 200
C 224
D 193
E 165 (min) Mediana
F 197
G 223
H 203
I 236
No grafo da figura, o vértice "E" é a mediana do grafo. Éo vértice que, sob o ponto de vista de distância,
oferece melhores condições paro uma instalação de tipo logístico (apoio de uma rede) pois a totalidade das
distâncias a percorrer é mínima.
h. Anti-Centro do Grafo
É o vértice Vi cujo menor encargo pam os restantes vértices do grafo tem valor máximo.
A B C D E F G H I Min(km) Obs.
A 8 35
12
27
45
43
37
17
28
25
40
16
27
20
25
15
26
21
10
32
27
39
18
13
24
35
46
29
26
14
11
38 8
10
39
15
13
11 12
B 8
C 8
D 14 (max) Max{Min} == anticentro
E 10
F 10
G 13
H 11
I 11
o anti-centro é o vértice que, sob o ponto de vista de distância, oferece melhores condições paro uma
instalação não desejável em qualquer ponto da rede (lixeim por exemplo). Veja-se que uma lixeim em "D"
gamnte que os restantes vértices estão pelo menos a 14 km.
Gratos - Encaminhamentos e Localizações
3. Auto Teste
b. Os custo de transporte (por Kg) entre cada par de localidades e os custos de transbordo (carga/descarga) são
os indicados na matriz seguinte:
650
400 200
300
500 Anuais
lJanlAn02
810
Custos
lJanlAno
Tipo de Computador lJanlAn03
Custos 250
41Início
Manutençãoda de
Conversão(u.m.) da
(u.m.)
0.8
035~
0.5
0.6 0.1 OA
0.9
0.3
O~P