Está en la página 1de 16

Un algoritmo clsico de Investigacin de Operaciones es el de la ruta

ms corta, usado por ejemplo para encontrar en una serie de


ciudades conectadas por carreteras, la ruta para llegar de una ciudad
a otra, siguiendo una trayectoria mnima.
Existen dos tipos principales de algoritmos: Cclicos y ciclicos. !os
algoritmos ciclicos son usados en redes "ue no tienen ciclos, es
decir "ue no tienen rutas "ue partiendo de un nodo lo lleven a #l
mismo de nuevo. !os ciclos son tam$i#n llamados %la&os%. !os
algoritmos cclicos son para las redes "ue tienen ciclos o la&os... o en
espa'ol vueltas en redondo. Un ejemplo de un la&o: (i del nodo %%
puedo ir al nodo %)%, y del nodo %)% puedo ir al %C% y del %C% al %*% y
del %*% puedo retornar al %% de nuevo, a+ +ay un la&o o un ciclo. !as
,ec+as indican en "ue sentido esta permitido el movimiento.
Algoritmo Aciclico:
(i la red no tiene ciclos, apli"uemos el siguiente algoritmo:
Eti"uetar cada nodo con el siguiente -ormato .distancia desde el nodo
inicial, /om$re del /odo 0recedente1. 0ara el nodo inicial por
de2nicin la distancia es cero 3la distancia a s mismo4, y el nodo
precedente es vaco 3ninguno4: .5 , 1 . *espu#s para cada nodo, se
anali&a los nodos "ue lo preceden por las ,ec+as, se escoge a"uel
cuya distancia al nodo inicial ms la distancia al nodo presente sea
mnima. (e eti"ueta con la suma, y el nom$re del nodo escogido...
$ueno, esto en carreta es muy enrredador... mejor con un ejemplo,
paso a paso.

Consideremos la siguiente red:
!os nodos pueden representan sitios 3p.e ciudades, -aclidades, etc4
las ,ec+as 3tam$i#n llamadas Arcos4indican las trayectorias
permitidas y so$re ellas estan las distancias 3pero tam$i#n puede
representar el costo de despla&amiento, o el nivel de riesgo, o un
producto de am$os4.
Encontremos la distancia ms corta entre el nodo %% y el nodo %6%.
7. 8otular el /odo Inicial : 8ecordemos el -ormato del rtulo es :
.distancia al primer nodo, nodo precedente1.
!a distancia al primer nodo, es la distancia a s mismo eneste caso,
por lo tanto es cero. E! nodo precedente: como no viene de ning9n
nodo, lo rotulamos vacio: . 5, 1 :
:. 8otular todos los nodos "ue dependan unicamente del nodo inicial:
El /odo ) se puede llegar desde el /odo , con la ruta ;C;) o con
la ruta ;*;C;). si "ue depende de otros nodos a parte del /odo
inicial. !o mismo podemos decir del /odo C. 0ero...
... 0ero al /odo * slo se puede llegar directamente desde el /odo .
Este es el nodo "ue vamos a rotular, y si +u$ieran ms como #l
tam$i#n los rotulariamos, pero en este ejemplo slo tenemos el *.
El rtulo del /odo *, es : .distancia mnima desde el /odo Inicial,
/odo 0recedente1.
!a distancia mnima desde el /odo Inicial al /odo * es 7<: pos no +ay
otra alternativa, c+e= y el /odo 0recedente el %%.
8tulo: .7<, %%1
>. 8otular ?odos los /odos "ue tengan la in-ormacin su2ciente para
rotularlos:
!a in-ormacin necesaria para rotular un /odo con este algoritmo, es
"ue todos los /odos de los "ue dependa, de$en estar ya rotulados.
0or ejemplo el /odo ): depende del y del C. El /odo ya esta
rotulado, pero el C a9n no. s "ue a9n no se puede rotular el /odo ).
El /odo C depende del y del *, y am$os estan rotulados, as "ue si
podemos rotularlo.
!a distancia desde es @, y desde * es: la distancia "ue tiene en el
rtulo 3"ue es la distancia mnima desde #l al /odo inicial, o sea 7<4,
A( la distancia entre * y C B 7< CD B 7E: entre @ y 7E es ms
pe"ue'o @. s "ue escogemos el /odo como precedente: el rtulo
es . @ , %%1
D. (eguir rotulando todos los /odos "ue tengan in-ormacin su2ciente
+asta llegar al /odo deseado: 6.
+ora ya +ay in-ormacin su2ciente para rotular los /odos ) y F.
Entonces rotulemos el /odo ) 3no importa cul se +aga primero, igual
+ay "ue rotularlos todos4.
El rotulo para el /odo ): !a distancia desde es 75, la distancia
mnima al /odo inicial desde C es: el la distancia del rtulo de C: @ C
la distancia de C a ) : > BG @ C > B 77. El mnimo entre 75 y 77 es
75.
8tuloB .75, %%1.
8tulo para el F: *esde C : @ C D B 7: y desde * : 7< C 7< B >5.
Entonces el 8tulo es .7:, %C% 1
8tulo para el /odo E: *esde ) : 75 C :5 B >5 y desde C: @ C 7< B
:> 8tulo : .:>,%C%1
0or 9ltimo para el /odo 6: la distancia desde E es :> C < B :@ y
desde F es 7: C > B 7<
8tulo .7<, F1
+ora se puede leer la trayectoria mnima partiendo del rtulo del
/odo 6, dic+o rotulo nos dice "ue viene del F el de F dice "ue viene
del C y el del C dice "ue viene del .
(olucin:
*istancia AnimaB 7<
8uta As Corta B ;C;F;6

... Auy pronto, el algoritmo ms general de 8uta As Corta, el
algoritmo cclico de *iHstra.
*omingo >5 de Aar&o, :55>. I:>D 0.A
!o siguiente es tomado de un li$ro, lo transcri$o literalmente. Espero "ue me
entiendan muc+o ms de lo "ue yo entend esto la primera ve& "ue lo le...jajaja.
Un procedimiento de la ruta ms corta cuando todos los costos
son no negativos
(e concidera el caso cuando todo cij GB5. En este caso existe un procedimiento
muy simple y e2ciente para determinar la ruta ms corta 3del nodo 7 al nodo m4
0aso Inicial:
(e toma JK7 B 5 y se de2ne LBM7N.
0aso principal:
(ea L concid#rense los arcos en el conjunto 3L, L $arra4 B M3i,j4: i e L, j e LN
(ea JKp C Cp" B Animo MJKi C Cij N
3i,j4 e 3L, L $arra4
(e toma JK" B JKp C Cp" y se coloca el nodo " en L. (e repite el paso principal,
exactamente m ;7 veces 3incluyendo la primera ve&4 y despu#s se terminaO se
tiene a la mano la solucin ptima.
Algoritmo Cclico (Algoritmo de Dikstra)

!a di-erencia principal del algoritmo acclico y el cclico es "ue el
cclico permite tra$ajar con la&os mientras el algoritmo cclico no lo
permite. 0or lo tanto el algoritmo cclico es muc+o ms general. !a
idea principal del algoritmo cclico es muy parecida al del acclicoO
pero en este se tra$aja con dos tipos de eti"uetas: Eti"uetas
?emporales y Eti"uetas 0ermanentes. El -ormato de la eti"ueta es el
mismo: .distancia mnima encontrada al nodo inicial, /om$re del
/odo 0recedente1.
El lgoritmo se descri$e as:
8otular todos los nodos a los "ue se puede llegar desde el nodo
inicial con eti"uetas temporales, la eti"ueta "ue se les pondr
ser .distancia desde el nodo inicial, /om$re del /odo Inicial1.
"u no nos va a importar "ue estos nodos tengan caminos
desde otros nodos di-erentes al nodo inicial, a di-erencia del
algoritmo anterior. (encillamente se rotulan como se descri$i.
Evaluar de todas los nodos con eti"uetas temporales, cual
posee la distancia ms corta en la eti"ueta. Aarcarlo como
Eti"ueta 0ermanente 3para esto puede usar un asterisco4.
Eti"uetar todos los nodos a los "ue se pueda llegar desde el
9ltimo nodo con eti"ueta permanente, si ya tienen una eti"ueta
temporal, esta se reeval9a con respecto a la distancia del nodo
permanente con "ue se est tra$ajando. (i la distancia "ue da
3o sea la distancia de la eti"ueta permanente C la distancia al
nodo evaluado 4 es menor "ue la "ue tiene en la eti"ueta #sta
es cam$iada por una nueva eti"ueta con la distancia calculada
a la de la eti"ueta permanente.
(e c+e"uean todas las eti"uetas temporales existentes, la "ue
tenga la distancia ms pe"ue'a se marca como eti"ueta
permanente y se repite el paso anterior +asta "ue todas las
eti"uetas sean permanentes.
do Pou got itQ
Reamos con Ejemplo
(upongamos "ue existen I ciudades interconectadas 3o sitios
cual"uiera: $arrios en una ciudad, departamentos en una -a$rica,
etc.4, cada lnea representa la trayectoria permitida de una ciudad a
otra. !as distancias 3o costo de transporte4 entre ciudades esta
representado por un valor so$re la lnea. (e pregunta por la secuencia
de ciudades "ue dan la distancia mnima entre la ciudad y la ciudad
6.

Parntesis: Este m#todo como muc+os de Investigacin de
Operaciones, es prctico cuando el n9mero de com$inaciones es muy
grande como para "ue una enumeracin ex+austiva sea mejor. 0or
ejemplo, en la red anterior se puede -cilmente de una manera visual,
evaluar cul es la ruta ms corta, sin tener "ue apelar a algoritmos de
eti"uetado, ni *isHtra, ni nada de eso... $ueno y entonces como para
"ue o "ue, nos desgastamos, yo escri$iendo esto, y usted ley#ndoloQ
0ues por "ue una cosa son mseros I nodos, y otra cosa muy
di-erente seran 755... as "ue sigamos adelante=
1. Eti"uetar todos los nodos a donde pueda llegar desde el nodo
inicial: Es decir los nodos ), C y *.
Eti"ueta para el nodo ): Es distancia desde el nodo "ue viene
B D, nom$re del nodo "ue viene B %%
Eti"uetaB .D,%%1 , de manera anloga para el nodo C B .<, %%1
y el nodo * B .>, %%1
2. Evaluar cual de todas las eti"uetas temporales, tiene la mnima
distancia para "ue sea convertida en eti"ueta permanente.
Aar"uemos como eti"ueta permanente, con un asterisco. En nuestro
caso +ay tres eti"uetas temporales, .D,%%1, .<,%%1 y .>,%%1. !a "ue
tiene la menor distancia es .>,%%1 en el nodo *. !a convertimos en
eti"ueta permanente.
3. +ora, con $ase en la ultima eti"ueta permanente 3la del nodo *
por supuesto4, se eti"uetan todos los nodos a los "ue se pueda llegar
desde el /odo * 3el de la 9ltima eti"ueta permanente4. En nuestro
caso, son los /odos C y F. !a eti"ueta para el /odo F es .>CIB75,
%*%1, es decir .75, *1, para el /odo C, se puede colocar la eti"ueta
.>C:, %*%1 B . < ,%*%1. *a igual dejar la eti"ueta actual, "ue tiene
una distancia de <, "ue cam$iarla por esta 9ltima. Como se dice por
ac: %nos res$ala%, as "ue dejemos la "ue tiene actualmente.
D. *e nuevo se eval9a de todas las eti"uetas temporales, cual es la
"ue tiene la distancia ms pe"ue'a:.D,%%1, .<,%%1 y .75,%%1. El nodo
) "ue tiene la eti"ueta temporal con la distancia ms pe"ue'a, se
pasa a tener una eti"ueta permanente.
<. Eti"uetar todos los nodos a los "ue se puede llegar desde el nodo
con la 9ltima eti"ueta permanente, es decir el ). Estos nodos son el C
y el E. !a eti"ueta pro$a$le para el nodo C sera .DC>, %)%1B .I,%)%1,
pero como ya tiene una eti"ueta temporal de .<,%%1, "ue tiene una
distancia menor, pues ni so'amos con cam$iarla=== *ej#mosla
"uietecita y miremos el /odo E. !a eti"ueta para el /odo E es .DCS,
%)%1 B .75, %)%1
S. Evaluar de todas las eti"uetas temporales, cual es la "ue tiene la
distancia ms corta: .75,%)%1, .<,%%1 y .75,%*%1. !a de menor
distancia es la .<,%%1. !a marcamos como eti"ueta permanente.
+ora eti"uetar todos los nodos a los "ue se puede llegar desde el
/odo C y "ue no tengan ya, una eti"ueta permanente. Estamos
+a$lando del /odo E, F y 6. 0ara el /odo E la eti"ueta sera .<CD,%C%1
B.E,%C%1, "ue nos da una distancia menor "ue la "ue tiene 3.75,%)%14.
0or lo tanto la cam$iamos. 0ara el /odo F nos da .<C<,%C%1B.75,%C%1,
como ya tiene una eti"ueta con 75, nos es indi-erente y no la
cam$iamos. 0ara el /odo 6 la eti"ueta es .<C:<, %C%1B.>5,%C%1.
I. Evaluar cual de las eti"uetas temporales tiene la distancia ms
corta: .E,%C%1, .75, %*%1 y .>5,%C%1. 6ana el nodo E. !o marcamos
como eti"ueta permanente y desde #l evaluamos para rotular a todos
los nodos a los "ue pueda llegar, con eti"uetas temporales: F y 6.
0ara el /odo F, lo dejamos como esta por "ue la distancia nos da ECS
B 7< "ue es mayor "ue el "ue tiene actualmente 75, pero para el
/odo 6 el rotulo es .ECI,%E%1 B [1! "#"$.
Tuedan como rtulos temporales el del nodo F y 6. El menor es el del
/odo F, se marca como permanente... no +ay ms rtulos temporales
excepto el del /odo 6 y el /odo 6 "uedara como .75C@,
%6%1B.7@,%6%1 "ue es mayor "ue el "ue ya tiene, as "ue mejor
dej#moslo "uietico y por 9ltimo mar"u#moslo como eti"ueta
permanente.
Pa podemos leer la trayectoria "ue da una mnima distancia: 6;E;C;,
con una distancia mnima de 7S.
($ado, 7E de $ril de :55>.
Home

(upongamos "ue "ueremos unir todas las secciones de una -a$rica
mediante un sistema de rieles, o de $andas transportadoras, "ue
adems de ser 9tiles, son costosas. s "ue deseamos "ue todas las
secciones 3nodos de la red4, "ueden conectados entre s, pero como
no tenemos tanta plata, "ueremos mantener mnimo el costo...
...lo mismo, si tenemos una serie de pue$litos cercanos donde los
"ueremos unir por una carretera, manteniendo mnimo los costos.
0ara solucionar este tipo de pro$lemas, existe el lgoritmo de Ur$ol
de 8ecorrido Animo, donde se tienen una serie de nodos "ue de$en
ser unidos entre s, dnde la suma de las distancias entre las
conexiones de los nodos sea mnima.
Algoritmo:
1. Escoja cual"uier nodo y 9nalo al nodo ms cercano a #l.
2. *e los nodos conectados, $us"ue el nodo "ue tenga la mnima
distancia a un nodo no conectado, y 9nalo a #l
3. 8epita el paso :, +asta "ue todos los nodos est#n conectados.
Ejemplo:
(e tienen las siguientes po$laciones eti"uetadas de la a la 6, se
muestra so$re las lneas la distancia entre ellas. (e desea pavimentar
las carreteras de manera "ue todas las ciudades est#n conectadas
entre si, pero "ue su costo sea mnimo:
%oluci&n:
7. Escoger ar$itrariamente un nodo cual"uiera: 0ara no pensar
muc+o, escojamos el nodo .
:. Conectar el nodo escogido al siguiente nodo con la distancia ms
corta: /o +ay "ue sa$er clculo in2nitesimal especial con geometra
analtica, para eso: es el nodo *=== Conectar el /odo con el /odo *
3para representar la conexin, yo di$ujo a"u en verde4
>. )uscar el siguiente nodo ms cercano a los nodos conectados
actualmente. !os nodos posi$les son ), C y F. P las distancias a los
nodos conectados son : D,<,: y I. !a menor distancia es : "ue lleva
del nodo * 3conectado4 al nodo C 3no conectado4. Vacer la Conexin.
D. )uscar el siguiente nodo ms cercano a los nodos conectados
actualmente. !os nodos posi$les son ), E, 6 y F. P las distancias a los
nodos conectados son : D,>,D,:<,< y I !a menor distancia es > "ue
lleva del nodo C 3conectado4 al nodo ) 3no conectado4. Vacer la
Conexin.
<. )uscar el siguiente nodo ms cercano a los nodos conectados
actualmente. !os nodos posi$les son E, F y 6. P las distancias a los
nodos conectados son : S,D, :<,< y I !a menor distancia es D "ue
lleva del nodo C 3conectado4 al nodo E 3no conectado4. Vacer la
Conexin.
S. )uscar el siguiente nodo ms cercano a los nodos conectados
actualmente. !os nodos posi$les son, F y 6. P las distancias a los
nodos conectados son : I,S, < y I. !a menor distancia es < "ue lleva
del nodo C 3conectado4 al nodo F 3no conectado4. Vacer la Conexin.
I. (lo "ueda el nodo 6 por conectar. !as distancias posi$les son I,:<
y @. !a distancia mnima es I desde el /odo E. Unir el nodo E al 6
'erminado: El r$ol de recorrido mnimo esta se'alado en verde.
($ado, :S de $ril de :55>: E:>5 0.A

También podría gustarte