Algoritmo de Marshall y Camino Mínimo
Algoritmo de Marshall y Camino Mínimo
Algoritmo de Marshall y Camino Mínimo
FACULTAD DE INGENIERA
E.A.P. DE INGENIERA DE SISTEMAS E INFORMTICA
ALUMNOS:
DOCENTE:
ASIGNATURA:
ESTRUCTURA DE DATOS
CICLO:
III
2015
ALGORITMO DE WARSHALL
SOBRE EL ALGORITMO DE WARSHALL
Este algoritmo calcula la matriz de caminos P (tambin llamado
cierre transitivo) de un grafo G de n vrtices, representado por su
matriz de adyacencia A. la estrategia que sigue el algoritmo consiste
en definir, a nivel lgico, una secuencia de matrices n-cuadradas P0 ,
P1 , P2,.Pn; los elementos de cada una de las matrices P k [i,j] tienen
el valor 0 si no hay camino y 1 si existe un camino del vrtice i y al j.
la matriz P0 es la matriz de adyacencia.
Los elementos Pij de P1 son igual a 1 si lo son los de la matriz P 0, o
bien se puede formar un camino desde el vrtice V i a Vj con la ayuda
del vrtice 1.
En definitiva, P1[ i, j ] = 1, si lo es P0 [ i, j ], o bien, hay un camino:
V1
Vi
Vj
P0[i,j] =
1 si existe un camino simple de Vi a Vj que no para por ningn vrtice, a no ser por el vrtice 1.
0 en otro
caso.
P1[i,j]
=
1 Si existe un camino simple de Vi a Vj que no pasa por otro vrtice, a no ser por los que estn comprendid
0 en otro caso.
P2[i,j] =
1 Si existe un camino simple de Vi a Vj que no pasa por otro vrtice, a no ser por los que estn comprendid
0 en otro caso.
P3[i,j] =
1 Si existe un camino simple de Vi a Vj que no pasa por otro vrtice, a no ser por los que estn comprendid
0 en otro caso.
Pk[i,j] =
1 Si existe un camino simple de Vi a Vj que no pasa por otro vrtice, a no ser por los que estn comprendid
0 en otro caso.
Pn[i,j] =
(2)
Camino de Vi a Vj
Vj
Posibilidad de
camino de Vi a
Vi
Vj
Camino de Vi - Vk Vj
Vj
Vk
Vi
inicial
en
el
grafo)
unos
(1)
(no hay
(hay
una
todas
las
posibles
uniones
entre
nodos,
directa
CDIGO JAVA
Algoritmo de Floyd
El algoritmo de Floyd es un algoritmo de programacin dinmica, que
encuentra el camino mnimo entre todos los pares de vrtices en una nica
ejecucin. Es decir este
posibles caminos a travs del grafo entre cada par de vrtices; cuando se
obtiene el camino ms corto desde un nodo i a un nodo j cualquiera, el
algoritmo se detiene.
Por tanto el algoritmo es una especializacin de la bsqueda de costo
uniforme, y como tal, no funciona en grafos con aristas de costo negativo (al
elegir siempre el nodo con distancia menor, pueden quedar excluidos de la
bsqueda, nodos que en prximas iteraciones bajaran el costo general del
camino al pasar por una arista con costo negativo).
Comportamiento con ciclos negativos
Para que haya coherencia numrica, Floyd
negativos (de hecho, entre cualquier pareja de vrtices que forme parte de un
ciclo negativo, el camino mnimo no est bien definido porque el camino puede
ser infinitamente pequeo). No obstante, si hay ciclos negativos, Floyd puede
ser usado para detectarlos. Si ejecutamos el algoritmo una vez ms, algunos
caminos pueden decrementarse pero no garantiza que, entre todos los vrtices,
caminos entre los cuales puedan ser infinitamente pequeos, el camino se
reduzca. Si los nmeros de la diagonal de la matriz de caminos son negativos,
es condicin necesaria y suficiente para que este vrtice pertenezca a un ciclo
negativo.
Para su recorrido es necesario de:
Salida:
Matriz Dn que entrega el menor camino para ir de un nodo i a un
nodo j del grafo.
Matriz Sn que entrega el nodo intermedio para llegar desde un nodo i
a un nodo j del grafo.
8
2
4
4
2
1
Matriz de Peso
D0 1 2 3 algoritmo
4
S0
1 2 3 4
no permite
que
8
3 4
1 existan
1
1 nodos 2que
2
3 4
2
4
1
9
apunten a s mismos, ya
1
3
que
las 2 diagonales
quedan inhabilitadas.
3 1 2
4 1 2
4
4
La matriz D0 se llena con los pesos de cada camino que representa la matriz[i][j]
del ejemplo, como vemos, si no existe conexin entre los nodos, se completa
con el smbolo
Como se puede ver en las posiciones 3,2 y 3,5 de la matriz de peso, hubo
cambios y como habamos fijado k =1, entonces en las mismas posiciones se
generarn cambios en la matriz de nodos intermedios. Ahora fijamos k =2 y
seguimos con el procedimiento hasta llegar a k =4, que es el nmero total de
nodos en el grafo.
REFERENCIA BIBLIOGRFICAS