Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TEMA:
METODO DE FLOYD DE LA RUTA MAS CORTA APLICADO AL REA DE
INTERBANK
CURSO:
INVESTIGACION DE OPERACIONES II
INTEGRANTES:
RIVERO ARANDA, RAL DANIEL
PROFESOR:
ING LUIS MEDINA AQUINO
ESPECIALIDAD:
INGENIERIA INDUSTRIAL
CRM -
MARCO TERICO
El algoritmo de Floyd es ms general que el de Dijkstra, ya que determina la ruta ms corta
entre dos nodos cualesquiera de la red.
El algoritmo representa una red de n nodos como una matriz cuadrada de orden n, la
llamaremos matriz C. De esta forma, el valor Cij representa el coste de ir desde el nodo i al
nodo j, inicialmente en caso de no existir un arco entre ambos, el valor Cijser infinito.
Definiremos otra matriz D, tambin cuadrada de orden n, cuyos elementos van a ser los
nodos predecesores en el camino hacia el nodo origen, es decir, el valor Dijrepresentar el
nodo predecesor a j en el camino mnimo desde i hasta j. Inicialmente se comienza con
caminos de longitud 1, por lo que Dij = i.
Las diagonales de ambas matrices representan el coste y el nodo predecesor para ir de un
nodo a si mismo, por lo que no sirven para nada, estarn bloqueadas.
Los pasos a dar en la aplicacin del algoritmo de Floyd son los siguientes:
Formar las matrices iniciales C y D.
Se toma k=1.
Se selecciona la fila y la columna k de la matriz C y entonces, para i y j, con ik, jk eij,
hacemos:
Si (Cik + Ckj) < Cij Dij = Dkj y Cij = Cik + Ckj
En caso contrario, dejamos las matrices como estn.
Si k n, aumentamos k en una unidad y repetimos el paso anterior, en caso contrario
paramos las iteraciones.
La matriz final C contiene los costes ptimos para ir de un vrtice a otro, mientras que la
matriz D contiene los penltimos vrtices de los caminos ptimos que unen dos vrtices, lo
cual permite reconstruir cualquier camino ptimo para ir de un vrtice a otro.
Modelo matemtico
Sea
igual 1, si existe el camino de ir de la i a la ciudad j, y 0 en otro caso, para el
conjunto de ciudades 0,..., n.
la distancia desde la ciudad i a la ciudad j. Entonces el modelo de programacin lineal
en enteros puede ser escrito como:
El primer conjunto de igualdades asegura que cada ciudad 0, ..., n de salida llegue
exactamente a una ciudad, y el segundo conjunto de igualdades aseguran que desde cada
ciudad 1, ..., n se salga exactamente hacia una ciudad (ambas restricciones tambin
implican que exista exactamente una salida desde la ciudad 0.) La ltima restriccin obliga
a que un solo camino cubra todas las ciudades y no dos o ms caminos disjuntos cubran
conjuntamente todas las ciudades. Para probar esto se muestra en (1) que toda solucin
factible contiene solamente una secuencia cerrada de ciudades, y en (2) que para cada uno
de los recorridos que cubren todas las ciudades, hay valores para todas las variables
que
satisfacen las restricciones.
Para probar que cada solucin factible contiene solamente una secuencia cerrada de
ciudades, es suficiente mostrar que cada sub-ruta en una solucin factible pasa a travs de
la ciudad 0 (note que las igualdades aseguran que solamente pude haber un recorrido de
ese tipo). Por tanto, si sumamos todas las desigualdades correspondiente a
cada sub-ruta de k pasos que no pasan a travs de la
obtenemos
para
ciudad 0,
Ahora, mostramos que para cada recorrido que cubre todas las ciudades, hay valores de
las variables
que satisfacen las restricciones.
Sin prdida de generalidad, se define el recorrido con origen y fin en la ciudad 0.
Escoger
si la ciudad i es visitada en el paso t (i, t = 1, 2, ..., n).
Entonces
dado
METODO DE SOLUCION
ALGORITMO DE FLOYD
El algoritmo de Floyd es ms general que el de Dijkstra, ya que determina la ruta ms corta
entre dos nodos cualesquiera de la red.
El algoritmo representa una red de n nodos como una matriz cuadrada de orden n, la
llamaremos matriz C. De esta forma, el valor Cij representa el coste de ir desde el nodo i al
nodo j, inicialmente en caso de no existir un arco entre ambos, el valor Cij ser infinito.
Definiremos otra matriz D, tambin cuadrada de orden n, cuyos elementos van a ser los
nodos predecesores en el camino hacia el nodo origen, es decir, el valor Dij representar el
nodo predecesor a j en el camino mnimo desde i hasta j. Inicialmente se comienza con
caminos de longitud 1, por lo que Dij = i.
Las diagonales de ambas matrices representan el coste y el nodo predecesor para ir de un
nodo a s mismo, por lo que no sirven para nada, estarn bloqueadas.
Los pasos a dar en la aplicacin del algoritmo de Floyd son los siguientes:
Formar las matrices iniciales C y D.
Se toma k=1.
Se selecciona la fila y la columna k de la matriz C y entonces, para i y j, con ik, jk e ij,
hacemos:
Si (Cik + Ckj) < Cij Dij = Dkj y Cij = Cik + Ckj
En caso contrario, dejamos las matrices como estn.
Si k n, aumentamos k en una unidad y repetimos el paso anterior, en caso contrario
paramos las iteraciones.
La matriz final C contiene los costes ptimos para ir de un vrtice a otro, mientras que la
matriz D contiene los penltimos vrtices de los caminos ptimos que unen dos vrtices, lo
cual permite reconstruir cualquier camino ptimo para ir de un vrtice a otro.
Caractersticas generales
Obtiene la mejor ruta entre todo par de nodos.
Trabaja con la matriz D inicializada con las distancias directas entre todo par de
nodos.
Una vez probados todos los nodos de la red como nodos intermedios, la matriz
resultante da la mejor distancia entre todo par de nodos.
Matriz Sn que entrega el nodo intermedio para llegar desde un nodo i a un nodo j
del grafo.
Anlisis de complejidad
El algoritmo de Floyd es mucho ms eficiente desde el punto de vista de almacenamiento
dado que puede ser implementado una vez actualizado la distancia de la matriz con cada
eleccin en k. En muchas aplicaciones especficas, es ms rpido que cualquier versin del
algoritmo de Dijkstra.
Aplicaciones y generalizaciones
El algoritmo de Floyd puede ser utilizado para resolver los siguientes problemas, entre
otros:
Encontrar una expresin regular dada por un lenguaje regular aceptado por un
autmata finito (algoritmo de Kleene).
Ruta ptima. En esta aplicacin es interesante encontrar el camino del flujo mximo
entre 2 vrtices. Esto significa que en lugar de tomar los mnimos con el
pseudocdigo anterior, se coge el mximo. Los pesos de las aristas representan las
limitaciones del flujo. Los pesos de los caminos representan cuellos de botella; por
ello, la operacin de adicin anterior es reemplazada por la operacin mnimo.
FUNCIONAMIENTO
Sea el grafo:
Como vemos ac, el algoritmo no permite que existan nodos que apunten a s mismos, ya
que las diagonales quedan inhabilitadas.
La matriz Do 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 lo
que reprenda que no existe la conexin entre los nodos, por lo tanto el peso que trae pasar
por ah no se puede tasar.
La matriz S0 se llena con los nodos intermedios entre un par de nodos, en este caso
suponemos que no existe otro camino entre los nodos que ir directamente hacia ellos.
Luego de completar las primeras matrices, comenzamos fijando una fila y una columna
pivote, para ver todos los caminos que existen entre el nodok y todos los dems, cualquier
cambio que ocurra en la matriz de peso, incurrir en un cambio en la matriz de nodos
intermedios, asumiendo que localmente el nodok es el de menor peso en esa iteracin.
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
Como vemos en las posiciones 1,3 y 4,3 de la matriz de peso, hubo cambios y como
habamos fijado k =2, entonces en las mismas posiciones se generarn cambios en la matriz
de nodos intermedios.
Ahora fijamos k =3
Como vemos en las posiciones 2,1; 2,4 y 4,1 de la matriz de peso, hubo cambios y como
habamos fijado k =3, entonces en las mismas posiciones se generarn cambios en la matriz
de nodos intermedios.
Ahora fijamos k =4
Como vemos en las posiciones 1,2; 1,3 y 3,2 de la matriz de peso, hubo cambios y como
habamos fijado k =4, entonces en las mismas posiciones se generarn cambios en la matriz
de nodos intermedios, y como ya completamos las 4 iteraciones, estas son las matrices con
los pesos ptimos y sus respectivos caminos.
NODO 1: La Victoria
NODO 2: Jess Mara
NODO 3: Miraflores
NODO 4: Magdalena
NODO 5: San Borja
NODO 6: Pueblo Libre
Posteriormente elaboramos la matriz de distancias en km de acuerdo a las calles que debe recorrer
la camioneta para llegar de un destino a otro, por lo que una distancia de un punto a otro de ida no
es la misma que de vuelta, la distancia entre nodos que no se conectan es infinito. Y luego la matriz
de recorrido
MATRIZ DE DISTANCIAS
2
3
1,7
1,1
00
2,2
1,3
00
3,3
1,4
0,85
00
0,85
2,5
2,7
00
2,3
0,1
00
2,2
2,7
2,7
00
00
2,2
1,3
2,4
2,5
00
MATRIZ DE RECORRIDO
3
4
3
4
1
1
2
2
4
-
5
5
6
6
ITERACIN 1
ITERACIN 2
ITERACIN 3
ITERACIN 4
ITERACIN 5
ITERACIN 6
CONCLUSIONES
El algoritmo nos permite llevar un registro y control de las rutas ptimas para
Luis a fin de que pueda recorrer las tiendas con el menor esfuerzo posible.