Sei sulla pagina 1di 19

Nombres: Yesica Giraldo Pieros, David Gutirrez Mora, Andrs Hernndez Salamanca,

Valentina Prez Bejarano. Grupo: 1. Equipo: 4.

PROBLEMA DE LA RUTA MS CORTA

Generalidades de las redes:

Una red consiste en una serie de nodos enlazados con arcos (o ramas). La notacin para
describir una red es (N, A), donde N es el conjunto de nodos y A es el conjunto de arcos.
Ejemplo:

N = {1, 2, 3, 4, 5}
A = {(1,2), (1,3), (2,3), (2,5), (3,4), (3,5), (4,2), (4,5)}.

Cada red se asocia a algn tipo de flujo (por ejemplo, flujo de productos petroleros en un
oleoducto y flujos de trfico de automviles en carreteras). En general, el flujo en una red
est limitado por la capacidad de sus arcos, que pueden ser finitos o infinitos.

Ruta: Sucesin de arcos distintos que unen dos nodos pasando por otros nodos,
independientemente de la direccin de flujo en cada arco. Una ruta forma un ciclo si
conecta un nodo consigo mismo, pasando por otros nodos.

Problema de la ruta ms corta:

Consiste en encontrar una ruta ptima entre un nodo fuente y un nodo destino, los cuales
estn enlazados a travs de una red con arcos que poseen cierto atributo, el cual puede ser
costo, distancia, tiempo, etc.

Definicin del problema

1) Se tienen N nodos.
2) Se parte desde el nodo fuente hasta el nodo destino, mediante los arcos que
conectan los nodos i y j y que poseen distancias mayores que cero (dij).
3) Se desea encontrar la ruta de mnima distancia que conecta el nodo 1 (fuente) con el
nodo n (destino).
4) Por medio del software TORA, es posible conocer distancia mnima entre un nodo
origen y un nodo destino.

Solucin en TORA: Para solucionar problemas de este tipo, basta con ingresar a men
principal, seleccionar Network Models Shortest Route e ingresar la matriz de nodos, que
se plantea determinando la relacin (a travs de sus arcos) de un nodo base con sus vecinos,
partiendo del nodo fuente hacia el nodo destino.

Ejemplo (reemplazo de equipo):

RentCar est desarrollando un plan de reposicin de su flotilla de automviles para un


horizonte de planeacin de 4 aos, que comienza el 1 de enero de 2001 y termina el 31 de
diciembre de 2004. Al iniciar cada ao se toma la decisin de si un auto se debe mantener
en operacin o se debe sustituir. Un automvil debe estar en servicio durante 1 ao como
mnimo, y 3 aos como mximo. La tabla siguiente muestra el costo de reposicin en
funcin del ao de adquisicin del vehculo y los aos que tiene en funcionamiento.

Es posible formular el problema anterior como una red :

Nodo fuente Nodo destino


Los nodos 1 a 5 representan el inicio de los aos 2001 a 2005.
Los arcos del nodo 1 (ao 2001) slo pueden alcanzar los nodos 2, 3 y 4, porque un
vehculo debe estar en funcionamiento entre 1 y 3 aos.
La longitud de cada arco es igual al costo de reposicin.
La solucin del problema equivale a determinar la ruta ms corta entre los nodos 1 y
5.

La solucin proporcionada por el software, indica que la ruta ms corta es 1-3-5 y se


representa en el diagrama anterior con las flechas en negrilla. Se interpreta, como que
un automvil adquirido al iniciar el ao 2001 (nodo 1) debe reemplazarse pasados 2
aos, es decir, al iniciar el ao 2003 (nodo 3). El auto de reposicin debe estar en
servicio hasta el final de 2004. El costo total de esta poltica de reposicin es $12,500
($5400 + $7100).

- Solucin con TORA

La solucin para la ruta ms corta entre los nodos 1 y 5 es:

Algoritmo de Dijkstra

Tiene por objeto determinar las rutas ms cortas entre el nodo fuente y los dems nodos de
la red, fue desarrollado por el cientfico en computacin Edsger Dijkstra en 1959 y tiene
una de sus mayores aplicaciones en la actualidad con los sistemas de GPS.

Modelo de resolucin del algoritmo:

1. Conocer el vrtice origen y el vrtice destino.


2. Marcar el vrtice origen y sus vecinos.
3. Mirar los atributos de las rutas hacia sus vecinos, y establecer las etiquetas
temporales cara cada no al que puede llegar el nodo origen.
4. Marcar el vecino de la ruta ms corta y su estado pasa a ser permanente.
5. El vecino marcado se convierte en el nuevo vrtice origen.
6. Repetir pasos 2 a 5, sin tener en cuenta el camino entre un punto de origen y un
punto permanente.
7. Terminar el proceso de iteracin hasta que todos los nodos tengan un estado
permanente.

Nomenclatura

[u i+ d ij , i]

ui Distancia recorrida antes del nodo i


d ij Distancia entre el nodo de origen y el nodo vecino
i Nodo de origen

Ejemplo:

Determinar la ruta ms corta desde el nodo 1 para llegar al nodo 6.

Nodo fuente Nodo destino

Iteracin 1

Nodo Etiqueta Estado


1 [0, ] Permanente
2 [0 + 2, 1] = [2, 1] Temporal Permanente
3 [0 + 4, 1] = [4, 1] Temporal
Iteracin 2

Nodo Etiqueta Estado


1 [0, ] Permanente
2 [2, 1] Permanente
[0 + 4, 1] = [4, 1]
3 Temporal Permanente
[2 + 1, 2] = [3, 2]
4 [2 + 4, 2] = [6, 2] Temporal
5 [2 + 2, 2] = [4, 2] Temporal

Iteracin 3

Nodo Etiqueta Estado


1 [0, ] Permanente
2 [2, 1] Permanente
3 [3, 2] Permanente
4 [2 + 4, 2] = [6, 2] Temporal
[2 + 2, 2] = [4, 2]
5 Temporal Permanente
[3 + 3, 3] = [6, 3]

Iteracin 4

Nodo Etiqueta Estado


1 [0, ] Permanente
2 [2, 1] Permanente
3 [3, 2] Permanente
[2 + 4, 2] = [6, 2]
4 Temporal Permanente
[4 + 3, 5] = [7, 5]
5 [4, 2] Permanente
6 [4 + 2, 5] = [6, 5] Temporal

Iteracin 5

Nodo Etiqueta Estado


1 [0, ] Permanente
2 [2, 1] Permanente
3 [3, 2] Permanente
4 [6, 2] Permanente
5 [4, 2] Permanente
[4 + 2, 5] = [6, 5]
6 Temporal Permanente
[6 + 2, 4] = [8, 4]
Solucin Final

Nodo Etiqueta Estado


1 [0, ] Permanente
2 [2, 1] Permanente
3 [3, 2] Permanente
4 [6, 2] Permanente
5 [4, 2] Permanente
6 [6, 5] Permanente

- Solucin con TORA

Para completar la matriz se toman los nodos de las filas y se van emprejando con el valor
de distancia que tengan respecto a los demas, ejemplo; N1 esta a 2 de N2 y 4 de N3, asi
mismo se expresa en la matriz.

Solucin: Ruta mas corta entre el nodo fuente (NF=1) y el nodo destino (NF=6)
El resultado indica que para llegar al nodo 6, se debe recorrer una distancia de 6 millas, y la
ruta que se indica es: Antes de llegar al nodo 6 toca llegar al nodo 5 en donde se han
recorrido 4 millas antes, para llegar al nodo 5 se necesita haber pasado por el nodo 2 en
dondne se han recorrido 2 millas antes, para llegar al nodo 2 se debe partir del nodo 1. Por
lo tanto la ruta mas corta es 1 2 5 6.

Algoritmo de Floyd

Tiene por objeto determinar la ruta ms corta entre dos nodos cualesquiera de la red. Este
algoritmo representa la red de n nodos por medio de una matriz cuadrada con n renglones y
n columnas. El elemento (i, j) representa la distancia del nodo i al nodo j, en donde es un
valor finito su hay una conexin directa y es infinita si no estn conectados directamente.

Modelo de resolucin del algoritmo:

1. Definir las matrices iniciales de distancias D0 y de secuencias de nodos S0


2. Igualar k = i.
3. Definir el rengln k y la columna k como rengln pivote y columna pivote.
4. Aplicar la operacin triple para cada uno de los elementos que no hace parte del
rengln y la columna pivote

5. Crear la matriz Dk, en la cual donde se cumpla la desigualdad anterior, se reemplaza


el valor por la suma.
6. Crear la matriz Sk, en la cual donde se hizo el cambio de los valores en la matriz D k,
se coloca el valor de k.
7. Igualar k = k + 1
8. Repetir pasos 3 a 7
9. Terminar el proceso de iteracin hasta llevar a k = n

Ejemplo:

Determinar la ruta ms corta entre cada uno de los nodos de la siguiente red:

Renglon y Columna pivote


Elemento que cambia

Interacin 0

D0 S0
1 2 3 4 5 6 1 2 3 4 5 6
1 -- 2 4 1 -- 2 3 4 5 6
2 -- 1 4 2 2 1 -- 3 4 5 6
3 -- 3 3 1 2 -- 4 5 6
4 -- 2 4 1 2 3 -- 5 6
5 3 -- 2 5 1 2 3 4 -- 6
6 -- 6 1 2 3 4 5 --

En ningun elemento se cumple la desigualdad.

Interacin 1
D1 S1
1 2 3 4 5 6 1 2 3 4 5 6
1 -- 2 4 1 -- 2 3 4 5 6
2 -- 1 4 2 2 1 -- 3 4 5 6
3 -- 3 3 1 2 -- 4 5 6
4 -- 2 4 1 2 3 -- 5 6
5 3 -- 2 5 1 2 3 4 -- 6
6 -- 6 1 2 3 4 5 --

Interacin 2

D2 S2
1 2 3 4 5 6 1 2 3 4 5 6
1 -- 2 3 6 4 1 -- 2 2 2 2 6
2 -- 1 4 2 2 1 -- 3 4 5 6
3 -- 3 3 1 2 -- 4 5 6
4 -- 2 4 1 2 3 -- 5 6
5 3 -- 2 5 1 2 3 4 -- 6
6 -- 6 1 2 3 4 5 --

En ningun elemento se cumple la desigualdad.

Interacin 3

D3 S3
1 2 3 4 5 6 1 2 3 4 5 6
1 -- 2 3 6 4 1 -- 2 2 2 2 6
2 -- 1 4 2 2 1 -- 3 4 5 6
3 -- 3 3 1 2 -- 4 5 6
4 -- 2 4 1 2 3 -- 5 6
5 3 -- 2 5 1 2 3 4 -- 6
6 -- 6 1 2 3 4 5 --

Interacin 4

D4 S4
1 2 3 4 5 6 1 2 3 4 5 6
1 -- 2 3 6 4 8 1 -- 2 2 2 2 4
2 -- 1 4 2 6 2 1 -- 3 4 5 4
3 -- 3 3 1 2 -- 4 5 6
4 -- 2 4 1 2 3 -- 5 6
5 3 -- 2 5 1 2 3 4 -- 6
6 -- 6 1 2 3 4 5 --

Interacin 5

D5 S5
1 2 3 4 5 6 1 2 3 4 5 6
1 -- 2 3 6 4 6 1 -- 2 2 2 2 5
2 -- 1 4 2 4 2 1 -- 3 4 5 5
3 -- 6 3 5 3 1 2 -- 5 5 5
4 -- 2 4 1 2 3 -- 5 6
5 3 -- 2 5 1 2 3 4 -- 6
6 -- 6 1 2 3 4 5 --

En ningun elemento se cumple la desigualdad. Como ya se llego a k = n = 5, se termina el


proceso de iteracin y la solucin final es:

1 2 3 4 5 6 1 2 3 4 5 6
1 -- 2 3 6 4 6 1 -- 2 2 2 2 5
2 -- 1 4 2 4 2 1 -- 3 4 5 5
3 -- 6 3 5 3 1 2 -- 5 5 5
4 -- 2 4 1 2 3 -- 5 6
5 3 -- 2 5 1 2 3 4 -- 6
6 -- 6 1 2 3 4 5 --

De acuerdo a lo anterior se puede establecer que donde esta el simbolo no se pude hacer
trazar una ruta entre el nodo de la columna hasta el nodo l renglon (ejemplo, no se pude
hacer la ruta de 5 a 3 por ningun camino). Un ejemplo de interpretacin del camino seria
determinar la ruta mas corta desde el nodo 1 al nodo 6:

- Distancia recorrida (d16) = 6

- Ruta mas corta: Para que una ruta sea durecta se debe cumplir que dij = j
1 6.

d16 = 5, como no es igual a 6 no es una ruta directa por lo que toca hacer: 1
5 6.
d15 = 2, como no es igual a 5 no es una ruta directa por lo que toca hacer: 1
2 5 6.
d12 = 2; d25 = 5; d56 = 6; como se cumple que d ij = j en cada uno de los
trayectos esta es la ruta mas corta para llegar a 6 desde el nodo 1.

- Solucin con TORA

Solucin:

Formulacin del problema de la ruta ms corta en programacin lineal


Se pueden describir dos formulaciones de programacin lineal para el problema de la ruta
ms corta. Las formulaciones son generales, en el sentido que se pueden usar para
determinar la ruta ms corta entre dos nodos cualquiera de la red. A este respecto, las
formulaciones de programa lineal son equivalentes al algoritmo de Floyd. Suponiendo que
la red de ruta ms corta tiene n nodos, y que se desea determinar la ruta ms corta entre dos
nodos cualesquiera s y t de la red.

Formulacin 1: En esta formulacin se supone que entra a la red una unidad externa de
flujo en el nodo s y sale en el nodo t, siendo s y t dos nodos entre los que se busca
determinar la ruta ms corta.

Se definen

xij = cantidad de flujo en el arco (i, j) para toda i y j factibles


cij = longitud del arco (i, j) para toda i y j factibles

Como slo puede haber una unidad de flujo en algn arco en cualquier momento, la
variable xij debe asumir solamente valores binarios (0 o 1). As, la funcin objetivo del
programa lineal se vuelve:

Hay una restriccin que representa la conservacin de flujo en cada nodo; esto es, en
cualquier nodo j,

Flujo total que entra = Flujo total que sale

Formulacin 2: La segunda formulacin es en realidad el problema dual del programa


lineal en la formulacin 1. Como la cantidad de restricciones en la formulacin 1 es igual a
la cantidad de nodos, el problema dual tendr tantas variables como cantidad de nodos haya
en la red. Tambin, las variables duales no deben estar restringidas, porque todas las
restricciones de la formulacin 1 son ecuaciones. Sea:

yj =la restriccin dual asociada al nodo j

Como s y t son los nodos inicial y terminal de la red, el problema dual se define como sigue:
Sujeta y j y i c ij para toda i y j factibles

Ejemplo:

Suponer que se desea determinar la ruta ms corta del nodo 1 al nodo 2; esto es, s =1 y t =
2

- Formulacin 1

La lista del programa lineal asociado, usando la formulacin 1, se ve a continuacin:

Las restricciones representan la conservacin de flujo en cada nodo. Por ejemplo, en el


nodo 2 flujo que entra=flujo que sale es x 12+x42 =1+x23. Ntese que una de las
restricciones siempre es redundante. Por ejemplo, si se suman las ltimas cuatro
restricciones en forma simultnea se obtiene x 12 +x13 =1, que es igual que la restriccin 1.
La solucin ptima (obtenida con TORA) es:
Esta solucin expresa la ruta ms corta del nodo 1 al nodo 2 como 1 3 4 2, y la
distancia asociada es z = 55 (millas).

- Solucin con TORA

Solucin:

- Formulacin 2

Para aplicar la formulacin 2, el problema dual asociado con el programa lineal anterior es:
Aunque el problema dual anterior es una definicin matemtica pura derivada del
problema primal, en realidad se puede interpretar el problema en una forma lgica. Se
define:

yi =Distancia al nodo i

Con esta definicin, la distancia ms corta del nodo inicial 1 al nodo terminal 2 se
determina maximizando y2 y1. La restriccin asociada con la ruta (i, j) indica que la
distancia del nodo i al nodo j no puede ser mayor que la longitud directa de esa ruta.
Puede ser menor si se puede llegar al nodo j desde el nodo i pasando por otros nodos que
formen una ruta ms corta. Por ejemplo, la distancia mxima del nodo 1 al nodo 2 es 100.
Con la definicin de yi como distancia al nodo i, se puede suponer que todas las variables
son no negativas (en lugar de no tener restriccin). Tambin se puede suponer que y1 0 es
la distancia al nodo 1. Con base en la explicacin anterior, y suponiendo que todas las
variables son no negativas, la solucin ptima es:

El valor de z = 55 expresa la distancia ms corta del nodo 1 al nodo 2, que tambin es igual
a y2 -y1 = 55- 0 =55.
La determinacin de la ruta misma, a partir de esta solucin, se puede determinar por
medio del valor dual de las restricciones, en donde toda restriccin que tenga un valor
dual distinto de cero debe estar satisfecha en forma de ecuacin, por lo que hace parte de
la ruta ms corta del problema. Este resultado identifica que la ruta ms corta es la 1 3
4 2.

- Solucin con TORA


APLICACIONES

Este modelo tiene muchas aplicaciones en la vida practica, dentro de las que podemos
mencionar

Transoporte
Horarios de operadores telefonicos
Planeacion de trafico urbano
Transbordo
Redes Electricas
Diseo de rutas de vehiculos
Telecomunicaciones
Planeacion de produccion
Planeacion de inventarios
EJERCICIOS PARA TRABAJO AUTNOMO

1. La red contiene las distancias, en millas, entre pares de ciudades 1 a 8.

a. Use el algoritmo de Dijkstra para determinar la ruta ms corta entre las ciudades 1 y
8.
b. Use el algoritmo de Floyd para determinar la ruta ms corta entre cada par de
ciudades. Con base en este, establezca la ruta ms corta entre las ciudades 1 y 7.
c. Use la programacin lineal (cualquiera de las dos formulaciones) para comprobar la
ruta ms corta entre las ciudades 1 y 8.

2. Use el algoritmo de Dijkstra para determinar la ruta ms corta entre el nodo 1 y


todos los dems nodos en la siguiente red:
3. Seis nios, Joe, Kay, Jim, Bob, Rae y Kim, juegan una variedad del juego de
escondidas. El lugar de escondite de un nio slo lo conocen ciertos nios de los
dems. Un nio se junta con otro para tratar de encontrar su escondite. Esto se hace
a travs de una cadena de otros nios, que al final llevan a descubrir dnde est
escondido el nio designado. Por ejemplo, suponga que Joe debe encontrar a Kim, y
que Joe sabe dnde se esconde Jim, que a su vez sabe dnde est Kim. As, Joe
puede encontrar a Kim encontrando primero a Jim, quien a su vez gua a Joe hacia
Kim. La siguiente lista muestra las relaciones entre los nios:

Joe sabe los escondites de Bob y de Kim.


Kay sabe los escondites de Bob, Jim y Rae.
Jim y Bob slo saben el escondite de Kay.
Rae sabe dnde se esconde Kim.
Kim sabe dnde se esconden Joe y Bob.

Desarrolle un plan para que cada nio encuentre a todos los dems con la cantidad
mnima de contactos. Cul es la cantidad mxima de contactos que puede haber
para que un nio encuentre a otro? Use el algoritmo de Floyd y especifique las rutas
en donde se d el nmero mximo de contactos.

Potrebbero piacerti anche