CAPÍTULO IV

Busca do Caminho Mínimo

 
Abaixo está sendo apresentado o pseudocódigo do algoritmo implementado:
 

Caminho-Mínimo ( Grafo, Inicio, Fim )

Para todo vértice V pertencente ao Grafo faça

Se

V = Inicio

V.Dist <- 0

Senão V.Dist <- Infinita;

Lista <- Inicio;

Enquanto (Lista <> vazia) faça

E <- CAR(Lista);

Lista <- CDR(Lista);

Para cada adjacente A de E faça

Se A.Dist > E.Dist + Distancia(A, E)

A.Dist <- E.Dist + Distancia(A, E);

A.Pai <- E;

Lista <- Lista + A;

Mostre Resultado.

Fim.

 
Os seguintes predicados estão disponíveis para serem usados ao representar o grafo na base:
n_nos(NUMERO): onde a variável NUMERO determina o número de nós que o grafo possui.
no_adjacentes(NO,ADJACENTES) : onde cada vértice que compõe o grafo é armazenado na base, juntamente com seus vértice adjacentes.
distancia(VERTICE1,VERTICE2,DISTANCIA): representa a distância existente entre os vértices 1 e 2.
inf(INIFINITO): representa a distância máxima que pode existir entre dois vértices.
 
Exemplo:
 

Grafo

Representação

inf(1000)
nos(3)
n_adjacentes(1,[2,3])
n_adjacentes(2,[1,3])
n_adjacentes(3,[1,2])
distancia(1,2,2)
distancia(2,1,2)
distancia(1,3,1)
distancia(3,1,,1)
distancia(2,3,4)
distancia(3,2,4)

 

<<= Anterior - Conteúdo - Próximo =>>