Sunteți pe pagina 1din 9

Problema de la Ruta mas Corta del Analisis de Redes

Posted on abril 1, 2010 by B@mpe

El problema de la ruta ms corta incluye un juego de nodos conectados donde slo un nodo es considerado
como el origen y slo un nodo es considerado como el nodo destino. El objetivo es determinar un camino de
conexiones que minimizan la distancia total del origen al destino. El problema se resuelve por el algoritmo de
etiquetado.
Se trata de encontrar la ruta de menor distancia, o costo ,a entre el punto de partida o nodo inicial y el
destino o nodo terminal.
Los problemas conocidos como problemas del camino mnimo o camino ms corto, tratan como su nombre
indica de hallar la ruta mnima o ms corta entre dos puntos. Este mnimo puede ser la
distancia entre los puntos origen y destino o bien eltiempo transcurrido para trasladarse desde un punto
a otro. Se aplica mucho para problemas de redes de comunicaciones.
Este tipo de problemas pueden ser resueltos por el mtodo del Simplex, sin embargo existen otros mtodos
ms eficientes como por ejemplo el algoritmo de Dijkstra o el de Bellman-Ford.
Este algoritmo calcula el camino mnimo de un nodo a a otro nodo z en particular, a la vez que calcula los
caminos mnimos desde el nodo inicial a dado hasta cada uno de los otros nodos del grafo.
Consiste en encontrar la ruta ms corta entre dos nodos dados de un grafo dirigido y valuado (con
capacidades).
Veremos dos algoritmos, por un lado el algoritmo de Dijkstra, que encuentra el camino ms corto entre el
nodo origen y cada uno de los otros nodos de la red, y por otro lado el algoritmo de Floyd, que encuentra el
camino ms corto entre cualquier par de nodos de la red.

Algoritmo de Floyd
El algoritmo de Floyd es ms general que el de Dijkstra, ya que determina la ruta ms corta entre dos
nodos cualquiera 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 ihasta 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, conik, 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.

Algoritmo de Dijkstra
El algoritmo de Dijkstra, tambin llamado algoritmo de caminos mnimos, es un algoritmo para la
determinacin del camino ms corto dado un vrtice origen al resto de vrtices en un grafo dirigido y con
pesos en cada arista. Su nombre se refiere aEdsger Dijkstra, quien lo describi por primera vez en 1959.
La idea subyacente en este algoritmo consiste en ir explorando todos los caminos ms cortos que parten del
vrtice origen y que llevan a todos los dems vrtices; cuando se obtiene el camino ms corto desde el vrtice
origen, al resto de vrtices que componen el grafo, el algoritmo se detiene. 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).
Tendremos a lo largo de todo el proceso dos conjuntos y dos vectores:

Conjunto C : Conjunto de vrtices candidatos. Inicialmente contiene todos los nodos menos el nodo
origen.

Conjunto S : Conjunto de vrtices seleccionados, es decir, aquellos para los que ya conocemos su
camino mnimo desde el nodo origen. Inicialmente contiene el nodo origen.

Vector D : Almacenar la longitud del camino ms corto desde el origen a cada nodo. Tendr tantas
posiciones como nodos tenga el grafo. El coste de ir del nodo origen a s mismo lo estimaremos
como cero.

Vector P : Almacenar el nodo predecesor a cada nodo en el camino ms corto desde el origen
hasta l. Tendr tantas posiciones como nodos tenga el grafo. La posicin del nodo predecesor al
origen estableceremos que sea cero para indicar que es el nodo origen.

Llamaremos al nodo origen o, y el coste de ir del nodo i al nodo j lo denotaremos como COSTEij .
Hay que seguir los siguientes pasos:

Seleccionamos el nodo que sea destino de la arista con menor valor que salga del nodo o,
llammoslo u. Introducimos el nodo u en S y lo sacamos deC. Almacenamos en la posicin u del
vector D el valor COSTEou y en la posicin u del vector P el valor del nodo predecesor, es decir, o.

Seleccionamos el siguiente nodo al que podamos llegar con menor coste, bien directamente
desde o, bien a travs del otro nodo seleccionado u. Llamamos al nuevo nodo seleccionado v.
Introducimos el nodo v en S y lo sacamos de C. Introducimos en la posicin v del vector D el coste de

llegar al nodo v, si es directamente desde o ser COSTEov, si es a travs de u serD[u]+COSTEuv.


Por ltimo, en la posicin v del vector P introducimos el valor del nodo predecesor, ya sea o o u.

Repetiremos este proceso hasta que todos los nodos hayan sido seleccionados, es decir,
hasta que el conjunto C est vaco, o lo que es lo mismo, hasta que en el conjunto S se encuentren
todos los nodos del grafo. En ese momento en el vector D tendremos almacenado el coste mnimo
para llegar desde el nodo origen a cualquier nodo del grafo, y podremos obtener el camino ms corto
mediante el vector P.

Ruta ms corta
El mtodo de la ruta ms corta es un mtodo de programacin lineal, que permite buscar la
solucin a un problema de optimizacin que resulte de una combinatoria y de diferentes
aplicaciones, el objetivo de este mtodo esta en encontrar rutas cortas o de menor costo, segn
sea el caso, que va desde un nodo especifico hasta cada uno de los dems nodos de la red. En
este sentido un nodo es una representacin grafica en forma de circulo, este nodo es muy
importante ya que denota los orgenes y destinos del problema que se realice, asimismo una red
representa un conjunto de puntos y lneas que conectan pares de puntos, estos puntos son los que
llamaremos nodos y las lneas seran las aristas., por ejemplo:

FIGURA1. Ejemplo De NODOS Y ARCOS

Un ejemplo simple para aplicar a este tipo de problemas sera el viaje de una persona desde un
estado a ciudad el cual pudiese tener varias alternativas, segn el inters de la persona, bien sea
para ir ms rpido o llegar de manera econmica segn sus recursos, para el primer caso se
minimizara la distancia y para el segundo caso el costo, en cualquier caso el objetivo consistira en
encontrar la ruta ms eficiente a un menor costo, y por lo tanto tendramos que los estados estarn
representados como los nodos y las carreteras como los arcos.

IMPORTANCIA

Este mtodo es muy importante ya que por medio de este modelo se pueden resolver de
manera rpida, ya que pueden formularse como modelos de redes obteniendo soluciones enteras
sin necesidad de restricciones (aunque en algunos casos pudieran tenerlas), asimismo se puede
decir que no importa que tan grande sea el problema se puede resolver por pequeos algoritmos.
Por otra parte segn la pgina www.ptolomeo.unam.mx en sus conceptos bsicos, capitulo 1
seala la importancia de este mtodo:

El problema de la Ruta ms Corta es fundamental en muchas reas, como son: investigacin de


operaciones, ciencia de la computacin e ingeniera. Algunas de las razones son:

I. La amplia variedad de aplicaciones prcticas como es el envo de algn material entre dos
puntos especficos de la forma ms eficiente, econmica o rpida.

II. Existen mtodos de solucin eficientes, los cuales al ser aplicados a una red con
caractersticas especficas (a cclica y con costos no negativos), proveen una solucin exacta a un
tiempo y costo razonables.

III. Se puede utilizar como inicio en el estudio de modelos complejos de redes, esto es,
cuando no se conoce la estructura de la red se pueden aplicar algoritmos para conocer algunas
caractersticas de la red (presencia de ciclos negativos).

IV. Se utiliza frecuentemente como sub-problemas (subrutinas) en la solucin de problemas


combinatorios y redes, as en el caso de problemas para los cuales no existe un algoritmo de
solucin exacto (p. e. problemas NP-completos), la aplicacin de algoritmos de ruta ms corta,
resultan auxiliares para encontrar una buena solucin.

APLICACIONES

En cuanto a sus aplicaciones este modelo tiene muchas aplicaciones en la vida practica, dentro
de las que podemos mencionar:

Transporte,

Horarios de operadores telefnicos,

Planeacin de trfico urbano,

Trasbordo,

En las redes elctricas,

Diseo de rutas de vehculos

Telecomunicaciones,

Planeacin de inventarios,

Planeacin de produccin, entre otros.

EJERCICIO DE LA RUTA MS CORTA

Considere la siguiente red dirigida (para una red indirecta, haga que los arcos estn dirigidos en
ambas direcciones, luego aplique la misma formulacin. Note que en este caso usted tiene Xij y Xji
variables. El objetivo es encontrar el camino ms corto desde el nodo 1 al nodo 7. La red sera:

Figura 2.Ejercicio Ejemplo

Para encontrar la funcin objetivo para los costos se plantea:

MinZ(x) = 15X12+10X13+8X32 +4X35+6X24+17X27+4X45+5X47+2X56+6X67

Para hacer las ecuaciones hay que tomar en cuenta:

Entra al nodo es +

Sale del nodo es S.A.:

Nodo 1: X12+X13 = 1

Nodo 2: X12+X32-X24-X27 = 0

Nodo 3: X13-X32-X35 = 0

Nodo 4: X24-X47-X45 = 0

Nodo 5: X35+X45 X56 = 0

Nodo 6: X56-X67 = 0

Nodo 7: X27+X47+X67 = 1

WinQSB
1. Cliquear la opcin New Problem, del men File

2. Activar la casilla Shortest Path Problem

3. Llenar las casillas con los datos del problema

4. Darle clic a Solve, y mostrar el resultado.

BIBLIOGRAFA CONSULTADA

http://profmgodoy.wordpress.com/2013/01/02/modelo-de-redes-la-ruta-mas-corta/

www.ptolomeo.unam.mx

http://www.slideshare.net/luenfajardo/el-problema-de-la-ruta-mas-corta

S-ar putea să vă placă și