Sei sulla pagina 1di 15

UNIVERSIDAD NACIONAL DE INGENIERA

FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

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,

lo cual es una contradiccin.

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

no puede ser mayor que n y

que 1; por lo tanto las restricciones se satisfacen siempre que

no puede ser menor


Para

se satisfacen las restricciones.

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.

La iteracin se produce sobre nodos intermedios, es decir, para todo elemento de


la matriz se prueba si lo mejor para ir de i a j a travs de un nodo intermedio elegido
o como estaba anteriormente, y esto se prueba con todos los nodos de la red.

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:

Camino mnimo en grafos dirigidos (algoritmo de Floyd).

Cierre transitivo en grafos dirigidos (algoritmo de Warshall). Es la formulacin


original del algoritmo de Warshall. El grafo es un grafo no ponderado y representado
por una matriz booleana de adyacencia. Entonces la operacin de adicin es
reemplazada por la conjuncin lgica (AND) y operacin menor por la disyuncin
lgica (OR).

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.

Fijamos la fila 1, entonces k=1, y comenzamos a revisar el algoritmo preguntando si


MatrizdePeso[i][k]+MatrizdePeso[k][j]<MatrizdePeso[i][j], si es menor se cambia si no se
mantiene. As obtenemos D1 y S1.

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.

CASO REAL DE APLICACIN DEL ALGORITMO DE FLOYD AL


REA DE CRM - INTERBANK
Luis Cubas es un analista del rea de CRM de INTERBANK. En su rea se ha creado la Campaa de
Registro y Autorizacin de Datos con el fin de reunir los requisitos necesarios de cara a la
aplicacin de la Ley de Proteccin de Datos Personales.
Durante algunas semanas el analista observo que los indicadores de la campaa no estaban dando
los resultados esperados. Es por ello que su jefa Lourdes Rojas le encomienda la tarea de brindar
capacitaciones a las tiendas INTERBANK de Miraflores, San Borja, Magdalena, Pueblo Libre, Jess
Mara y La Victoria.
Para realizar esta tarea Luis desea saber cules seran los caminos ms cortos entre tienda y tienda
para as poder desplazarse entre las seis con menor esfuerzo.

Luis Cubas Vela en Capacitacin a la Tienda de Miraflores.

Luis Cubas Vela en Capacitacin a la Tienda de San Isidro

Mapa Referencial de las Tiendas a Visitar

De acuerdo a este mapa hicimos la siguiente red de nodos

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

En la primera iteracin tomamos temporalmente la primera columna y fila de la matriz de distancias


y nos centramos en la submatriz que queda de 5x5, luego vemos cada nmero de esta submatriz y
la comparamos con la suma de las componentes de la fila 1 y columna 1 que tomamos respecto al
nmero que estamos analizando. Si esta suma es menor significa que ese nmero se puede mejorar
y se reemplaza por esta suma, si la suma es mayor se deja as. Si hay un cambio en la matriz de
distancias, en el mismo lugar en la matriz de recorrido se cambia el valor por el valor de la iteracin
en la que estamos.

ITERACIN 1

ITERACIN 2

ITERACIN 3

ITERACIN 4

ITERACIN 5

ITERACIN 6

Con la tabla final de la ltima iteracin podemos sacar las conclusiones:


Por ejemplo en la matriz de distancias nos dice la menor distancia entre un punto y otro, entre el
nodo 1 y el nodo 5 la menor distancia es 3 km y su recorrido es de frente de 1 a 5. As podemos ver
el recorrido y la distancia mnima entre cada par de nodos.

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.

El algoritmo nos brinda soluciones en tiempo real para brindar decisiones


adecuados a las circunstancias ( zonas o calles ) , lo que permitir minimizar el
tiempo que dura la trayectoria de los viajes, condicionados principalmente por
factores como el nivel de trfico y distancia.

Potrebbero piacerti anche