Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
=
caso otro si
i N j si
P
i
n
i
i
m
N
ij ij
ij ij
m
ij
_ , 0
) ( ,
.
.
donde es el vecindario alcanzable por la hormiga cuando se encuentra
en el nodo i , y
) (i N
i
m i
m
, , son dos parmetros que ponderan la importancia relativa
de los rastros de feromona y la informacin heurstica.
Cada hormiga almacena la secuencia que ha seguido hasta el momento y su
memoria L , tal como se explic antes, se utiliza para determinar en cada
paso de construccin.
i
m
i
m ) (i N
i
m
80
Volviendo a los parmetros , , su funcin es la que sigue: si 0 = , aquellos
nodos con una preferencia heurstica mejor tienen una mayor probabilidad de ser
escogidos, haciendo el algoritmo muy similar a un algoritmo voraz probabilstico
clsico (con mltiples puntos de partida en caso de que las hormigas estn
situadas en nodos distintos al comienzo de cada iteracin). Sin embargo, si 0 = ,
slo se tienen en cuenta los rastros de feromona para guiar el proceso
constructivo, lo que puede causar un rpido estancamiento, esto es, una situacin
en la que los rastros de feromona asociados a una solucin son ligeramente
superiores al resto, provocando por tanto que las hormigas siempre construyan las
mismas soluciones, normalmente ptimos locales. Por tanto es preciso establecer
una adecuada proporcin entre la informacin heurstica y la informacin de los
rastros de feromona.
La deposicin de feromona se realiza una vez que todas las hormigas han
acabado de construir sus soluciones. Primero, los rastros de feromona asociados
a cada arco se evaporan reduciendo todos los rastros de feromona en un factor
constante:
ij ij
). 1 (
Donde ( ] 0 , 1 es la tasa de evaporacin. El siguiente paso de cada hormiga es
recorrer de nuevo el camino que ha seguido (el camino esta almacenado en su
memoria local L ) y deposita una cantidad de feromona
i
m
ij
en cada conexin
por la que ha viajado:
i
i
m ij
m
ij ij ij
s a + ,
Donde =f (C( )), es decir, la cantidad de feromona que se deposita
depende de la calidad C( ) de la solucin construida por la hormiga .
i
m
ij
i
m
S
i
m
S
i
m
S
i
m
Para resumir la descripcin del SH, mostramos a continuacin el procedimiento
Nueva_Hormiga para este algoritmo de OCH en particular:
1 Procedimiento Nueva_Hormiga (id_Hormiga)
2 = id_Hormiga; r = generar_estado_inicial; S = r
i
m
i
m
3 L = r
i
m
4 Mientras (estado_actual estado_objetivo)
5 Para cada S N (i) hacer
i
m
81
[ ] [ ]
[ ] [ ]
) ( ,
.
.
i N j si P
i
n
i
i
m
N
ij ij
ij ij m
ij
6 Siguiente_est=aplicar_poltica_de_decisin (P, ) ) (i N
i
m
7 r = siguiente_est; S
i
m
= <S , i>
i
m
8 L =L u i
i
m
i
m
9 Fin mientras
{se ejecuta el procedimiento Evaporacin_de_feromona() se lanza y
evapora la feromona en cada arco a
ij
:
ij ij
). 1 (
10 Para cada arco a
ij
S
i
m
hacer
11
ij
=
ij
+ f (C(S ))
i
m
12 Fin para
13 liberar_recursos_hormiga(id_Hormiga)
14 Fin Procedimiento
Los creadores del SH tambin propusieron una versin extendida del algoritmo
que normalmente mejoraba los resultados obtenidos, llamada SH elitista. En el SH
elitista, una vez que las hormigas han depositado feromona en las conexiones
asociadas a sus respectivas soluciones, el demonio realiza una deposicin
adicional de feromona en las aristas que pertenecen a la mejor solucin
encontrada hasta el momento en el proceso de bsqueda (esta solucin se
denomina la mejor global de aqu en adelante). La cantidad de feromona
depositada, que depende de la calidad de la mejor solucin global, se incrementa
en un factor e, que se corresponde con el nmero de hormigas elitistas que se
consideran, tal como sigue:
Global Mejor ij Global Mejor ij ij
S a S C f e
+ = )), ( ( .
7.2.2. El Sistema de Colonias de Hormigas (SCH). El SCH es uno de los
primeros sucesores del SH que introduce tres modificaciones importantes con
respecto a dicho algoritmo de OCH:
El SCH usa una regla de transicin distinta, denominada regla proporcional
pseudo-aleatoria. Sea una hormiga situada en el nodo i, q
i
m
0
[0,1] un
82
parmetro y q un valor aleatorio entre [0,1], el siguiente nodo j se elige
aleatoriamente mediante la siguiente distribucin de probabilidad:
Si q q
0
:
=
=
caso otro si
MaxN j si
P
iu iu
m
i N m
ij
i
i
m i
_ , 0
} . { arg_ , 1
) (
Si no (q > q
0
):
[ ] [ ]
[ ] [ ]
=
caso otro si
i N j si
P
i
n
i
i
m
N
ij ij
ij ij
m
ij
_ , 0
) ( ,
.
.
Como puede observarse, la regla tiene una doble intencin: cuando q q
0
, explota
el conocimiento disponible, eligiendo la mejor opcin con respecto a la informacin
heurstica y los rastros de feromona. Sin embargo, si q > q
0
se aplica una
exploracin controlada, tal como se hacia en el SH. En resumen, la regla
establece un compromiso entre la exploracin de nuevas conexiones y la
explotacin de la informacin disponible en ese momento.
En Segundo lugar, slo el demonio (y no las hormigas individualmente) actualiza
la feromona, es decir, se realiza una actualizacin de feromona fuera de lnea de
los rastros. Para llevarla a cabo, el SCH slo considera una hormiga concreta, la
que gener la mejor solucin global, S
mejor-global.
La actualizacin de la feromona se hace evaporando primero los rastros de
feromona en todas las conexiones utilizadas por la mejor hormiga global (es
importante recalcar que, en el SCH, la evaporacin de feromona slo se aplica a
las conexiones de la solucin, que es tambin la usada para depositar feromona)
tal como sigue:
Global Mejor ij ij ij
s a
, ). 1 (
A continuacin, el demonio deposita feromona usando la regla:
83
Global Mejor ij Global Mejor ij ij
s a S C f
+ = )), ( ( .
Adicionalmente, el demonio puede aplicar un algoritmo de bsqueda local para
mejorar las soluciones de las hormigas antes de actualizar los rastros de
feromona.
En tercer lugar, las hormigas aplican una actualizacin en lnea paso a paso de los
rastros de feromona que favorece la generacin de soluciones distintas a las ya
encontradas.
Cada vez que una hormiga viaja por una arista , aplica la regla:
ij
a
0
. ). 1 ( +
ij ij
donde (0,1] es un segundo parmetro de disminucin de feromona. Como
puede verse, la regla de actualizacin en lnea paso a paso incluye tanto la
evaporacin de feromona como la deposicin de la misma. Ya que la cantidad de
feromona depositada es muy pequea (de hecho,
0
es el valor del rastro de
feromona inicial y se escogiese de tal manera que, en la prctica, corresponda con
el lmite menor de rastro de feromona, esto es, con la eleccin de las reglas de
actualizacin de feromona del SCH ningn rastro de feromona puede caer por
debajo de
0
), la aplicacin de esta regla hace que los rastros de feromona entre
las conexiones recorridas por las hormigas disminuyan. As, esto lleva a una
tcnica de exploracin adicional del SCH ya que las conexiones atravesadas por
un gran nmero de hormigas son cada vez menos atractivas para el resto de
hormigas que las recorren en la iteracin actual, lo que ayuda claramente a que no
todas las hormigas sigan el mismo camino.
Los procedimientos Nueva_hormiga y Acciones_del_demonio (que en este caso
interacta con el procedimiento de evaporacin_de_feromona) para el SCH son
como sigue:
1 Procedimiento Nueva_Hormiga (id_Hormiga)
2 = id_Hormiga; r = Generar_Estado_Inicial; S = r
i
m
i
m
3 L = r
i
m
4 Mientras (estado_actual estado_objetivo)
84
5 para cada s N (i) hacer calcular
i
m
ij ij ij
b . =
6 q = generar_valor_aleatorio_en_[0,1]
si (q q
0
)
siguiente_estado = max( b
ij
, N
(i)
i
m )
si no
para cada s
N (i) hacer
i
m
=
) (i N u
iu
ij m
ij
i
m
i
b
b
P
sig_est = aplicar_poltica_de_decisin (P, N (i))
i
m
fin si
7 r = sig_est; S = < S ,i>
i
m
i
m
8
0
. ). 1 ( + =
ij ij
9
i L L
i
m i
m
=
10 Fin mientras
11 liberar_recursos_hormiga (id_Hormiga)
12 Fin Procedimiento
1 Procedimiento Acciones_del_demonio
2 para cada S hacer bsqueda_local(S ) {opcional}
i
m
i
m
3 S
mejor-actual
= mejor_solucion(S )
i
m
4 si (mejor (S
mejor-actual
, S
mejor-global
))
5 S
mejor-global
= S
mejor-actual
6 Fin si
7 para cada arista a
ij
S
mejor-global
hacer
{se ejecuta el procedimiento evaporacin_de_feromona() se lanza y
evapora feromona en la arista a
ij
:
ij ij
). 1 ( =
}
8
)) ( ( .
Global Mejor ij ij
S C f
+ =
9 Fin para
10 fin Procedimiento
85
7.2.3. El Sistema de Hormigas Max-Min (SHMM). Desarrollado por Sttzle
y Hoos en 1996, es una de las extensiones del SH que mejor rendimiento
muestran. Extiende el SH en los siguientes aspectos:
Se aplica una actualizacin de los rastros de feromona fuera de lnea, de
manera similar a como se hace en el SCH. Despus de que todas las hormigas
han construido su solucin cada rastro de feromona sufre una evaporacin:
ij ij
). 1 ( =
y a continuacin la feromona se deposita siguiendo la siguiente frmula:
Mejor ij Mejorl ij ij
s a S C f + = )), ( (
La mejor hormiga a la que se le permite aadir feromona puede ser la que
tiene una solucin mejor de la iteracin o la solucin mejor global. Los
resultados experimentales demuestran que el mejor rendimiento se obtiene
incrementando gradualmente la frecuencia de escoger la mejor global para la
actualizacin de feromona. Las soluciones que ofrecen las hormigas suelen ser
mejoradas usando optimizadores locales antes de la actualizacin de
feromona.
Los valores posibles para los rastros de feromona estn limitados al rango
[
min
,
max
]. Por lo tanto, la probabilidad de un estancamiento del algoritmo
disminuye al darle a cada conexin existente una probabilidad, aunque
bastante pequea, de ser escogida. En la prctica, existen heursticas para fijar
los valores de
min y
max
. Se puede ver que, a causa de la evaporacin de la
feromona, el nivel mximo de feromona en los rastros est limitado a
*)) ( . /( 1 * S C
Max
= , donde S* es la solucin ptima. Basndonos en este
resultado, la mejor solucin global puede usarse para estimar
max
sustituyendo S* por S
mejor-global
en la ecuacin de *
max
. Para
min
,
normalmente slo es necesario escoger su valor de tal manera que sea un
factor constante menor que
max
.
En vez de inicializar los rastros de feromona a una cantidad pequea, el SHMM
los inicializa a una estimacin del mximo permitido para un rastro (la
estimacin puede obtenerse generando una solucin S con una heurstica
voraz y reemplazando dicha solucin S en la ecuacin de *
max
). Esto lleva a
una componente adicional de diversificacin en el algoritmo, ya que al
comienzo las diferencias relativas entre los rastros de feromona no sern muy
86
significativas, lo que no ocurre cuando los rastros de feromona se inicializan a
un valor muy pequeo.
La estructura del procedimiento Acciones_del_demonio en el SHMM se muestra a
continuacin:
1 Procedimiento Acciones_del_demonio
2 Para cada S hacer bsqueda_local(S )
i
m
i
m
3 S
mejor-actual
= mejor_solucion(S )
i
m
4 si (mejor(S
mejor-actual
,S
mejor-global
) )
5 S
mejor-global
= S
mejor-actual
6 Fin si
7 S
mejor
= decisin(S
mejor-global
, S
mejor-actual
)
8 para cada arista a
ij
S
mejor
hacer
9 )) ( (
Mejorl ij ij
S C f + =
10 si (
ij
<
min
)
ij y
min
=
min
11 Fin para
12 si (condicin_de_estancamiento)
13 para cada arista a
ij
hacer
ij
=
max
14 Fin si
15 Fin Procedimiento
7.2.4. El Sistema de Hormigas con Ordenacin (SH ordenacin). El
Sistema de Hormigas con Ordenacin es otra extensin del SH propuesta por
Bullnheimer, Hartl y Strauss en 1997. Incorpora la idea de ordenar las hormigas
para realizar la actualizacin de feromona, que el demonio realiza, de nuevo, fuera
de lnea, tal como se muestra a continuacin:
Las m hormigas se ordenan de mejor a peor segn la calidad de sus
soluciones: (S
1
, ... , S
m
), siendo S
1
la mejor solucin construida en la
iteracin actual.
El demonio deposita feromona en las conexiones por las que han pasado las
( 1) mejores hormigas (hormigas elitistas). La cantidad de feromona
depositada depende directamente del orden de la hormiga y de la calidad de su
solucin.
Las conexiones por las que ha pasado la mejor hormiga global reciben una
cantidad adicional de feromona que depende nicamente de la calidad de
dicha solucin. Esta deposicin de feromona se considera la ms importante,
de hecho, recibe un peso de .
87
Esta metodologa de operacin tiene efecto al utilizar la siguiente regla de
actualizacin de feromona, la cual se aplica a cada arista una vez que todos los
rastros de feromona han sido evaporados:
Orden
ij
Mg
ij ij ij
+ + .
Donde
=
caso otro si
i S a si S C f
Global mejor ij global mejor
Mg
ij
_ , 0
) ( , ( (
=
caso otro si
S a si S C f
ij
orden
ij
_ , 0
)), ( ( ). (
1
1
Finalmente, el procedimiento Acciones_del_demonio del SH
ordenacin
presenta la
siguiente estructura:
1 Procedimiento Acciones_del_demonio
2 Para cada S hacer bsqueda_local(S ) {opcional}
i
m
i
m
3 Ordenar (S
1
, ..., S
m
) en orden decreciente segn la calidad de la solucin:
(S
1
, ..., S
m
)
4 si (mejor(S
1
, S
mejor-global
) )
5 S
mejor-global
= S
1
6 Fin si
7 desde = 1 hasta ( - 1) hacer
8 para cada arista a
ij
hacer
9 )) ( ( ). (
S C f
ij ij
+ =
10 Fin para
11 Fin desde
12 Para cada arista a
ij
S
mejor-global
hacer
13
)) ( ( .
_ global mejor ij ij
S C f
+ =
14 Fin para
88
15 Fin Procedimiento
7.2.5. El Sistema de la Mejor - Peor Hormiga (SMPH). Este algoritmo es
otra extensin del SH, propuesto por Cordn et. al. en 1999, es un algoritmo de
OCH que incorpora conceptos de computacin evolutiva.
El SMPH es el algoritmo de OCH que ha obtenido los mejores resultados en la
mayora de la pruebas realizadas.
El SMPH utiliza la misma regla de transicin de estados que el SH, as como la
misma regla de evaporacin de feromona que, al igual que en el SH
ordenacin
y el
SHMM, se aplica a todas las transiciones.
Tal como hace el SHMM, el SMPH siempre considera la explotacin sistemtica
de optimizadores locales para mejorar las soluciones de las hormigas.
Formando el ncleo del SMPH podemos encontrar las siguientes tres acciones del
demonio:
La regla mejor-peor de actualizacin de rastros de feromona, basada en la
regla de actualizacin del vector de probabilidades de PBIL, refuerza las aristas
que se encuentran en la mejor solucin global. Adems, penaliza cada
conexin de la peor solucin generada hasta el momento, S
peor-actual
, que no se
encuentre en la mejor global realizando una evaporacin de feromona adicional
de esos rastros. Por tanto, la regla de actualizacin de feromona en el SMPH
se convierte en:
global mejor ij global mejor ij ij
S a S C f
+ )), ( ( .
global mejor ij actual peor ij ij ij
S a y S a
_
, ). 1 (
Se realiza una mutacin de los rastros de feromona para introducir diversidad
en el proceso de bsqueda. Para llevarla a cabo, el rastro de feromona
asociado a cada una de las transiciones desde cada nodo (por ejemplo, cada
fila de la matriz de rastros de feromona) se muta con una probabilidad P
m
utilizando cualquier operador de mutacin con codificacin real. La propuesta
original del SMPH aplicaba un operador que alteraba los rastros de feromona
de cada transicin mutada aadiendo o restando la misma cantidad en cada
iteracin. El rango de mutacin mut(it,
umbral
), que depende de la media de los
rastros de feromona en las transiciones de la mejor solucin global,
umbral
, es
89
ms suave en las primeras etapas del algoritmo -donde no hay riesgo de
estancamiento- y ms fuerte en las ltimas etapas, donde el peligro de
estancamiento es ms fuerte:
=
= +
1 ), , (
0 ), , (
a si it mut
a si it mut
umbral ij
umbral ij
ij
donde a es un valor aleatorio en {0, 1} e it es la iteracin actual.
Como en otros modelos de OCH, el SMPH considera la reinicializacin de los
rastros de feromona cuando se estanca la bsqueda, lo que se lleva a cabo
fijando cada rastro de feromona a
0
. En las primeras versiones del algoritmo
se comprobaba si el porcentaje de arcos distintos entre la mejor y la peor
solucin de la poblacin actual era menor que un cierto valor umbral. En
versiones ms recientes se utiliza un concepto diferente para evaluar si el
algoritmo se ha estancado o no: se comprueba el porcentaje de iteraciones del
algoritmo sin haber conseguido una mejora en la mejor solucin.
El procedimiento Acciones_del_demonio es como sigue:
1 Procedimiento Acciones_del_demonio
2 para cada S hacer bsqueda_local(S )
i
m
i
m
3 S
mejor-actual
= mejor_solucion(S )
i
m
4 si (mejor(S
mejor-actual
,S
mejor-global
) )
5 S
mejor-global
= S
mejor-actual
6 fin si
7 para cada arista a
ij
S
mejor-global
hacer
8 )) ( ( .
global mejor ij ij
S C f
+ =
9 suma = suma +
ij
10fin para
11
umbral
= sum / |S
mejor-global
|
12 S
peor-actual
= peor_solucin(S )
i
m
13 para cada arista a
ij
S
peor-global
y a
ij
S
mejor-global
hacer
14
ij
= (1 - ).
ij
15 fin para
16 mut = mut (it,
umbral
)
17 para cada nodo v {1, ..., k) hacer
18 z = generar_valor_aleatorio_en_[0,1]
90
19 si (z P
m
)
20 j = generar_valor_aleatorio_en_[1,,k]
21 a = generar_valor_aleatorio_en_{0,1}
22 si (a = 0)
ij
=
ij
+ mut
23 si no
ij
=
ij
- mut
24 fin si
25 Fin para
26 si (condicin_de_estancamiento)
27 para cada arista a
ij
hacer
ij
=
0
28 Fin si
29 Fin Procedimiento
91
8. METODOLOGA DE SOLUCIN DE RUTEO UTILIZANDO
OCH
Es importante establecer una metodologa particular para cada tipo de algoritmo,
sin embargo, en general las aplicaciones actuales de OCH tienen unas directivas
comunes. Estas directivas se resumen a continuacin como una propuesta
metodologca:
(i) Formalizar el problema a resolver generando una representacin abstracta
de este como un conjunto de componentes y transiciones o a travs de un
grafo ponderado que ser recorrido por las hormigas. Por otro lado, se
deben definir claramente los objetivos que el modelo busca cumplir y las
relaciones entre la representacin del problema y los objetivos.
(ii) Analizar la literatura existente sobre mtodos utilizados para resolver el
problema, identificando los problemas encontrados y las ventajas de cada
mtodo.
(iii) Definir de manera apropiada el tipo de decisin que los rastros de feromona
inducen. Esto es un pas crucial en la implementacin de un algoritmo OCH
por lo que se requiere un gran conocimiento de modelo a resolver.
(iv) Definir de manera apropiada la informacin heurstica asociada a cada
componente o transicin.
(v) Escoger un algoritmo de OCH especifico que se amolde al problema, para
ajustarlo al problema que hay que solucionar, teniendo en cuenta todos los
aspectos nuevos o diferentes encontrados.
(vi) Generar un modelo bsico a resolver y evaluar los diseos para las
alternativas de solucin
(vii) Reunir algunas instancias especficas del problema que sean
representativas y pertinentes al problema en cuestin.
(viii) Experimentar con el modelo bsico.
(ix) Extender el modelo bsico al modelo completo diseado.
(x) Disear experimentos para efectos de comparacin y afinacin de los
parmetros utilizados.
(xi) Experimentar con el modelo completo.
(xii) Afinar los parmetros del algoritmo segn los resultados de las
experimentaciones o modificar modelo candidato de ser necesario.
(xiii) Presentar los resultados.
Debe quedar claro que los pasos mostrados slo dan una idea a grosso modo
sobre la implementacin del algoritmo de OCH. Adems, en muchas ocasiones la
implementacin es un proceso iterativo, en el que a medida que se obtiene una
visin ms profunda del problema y del comportamiento del algoritmo, se deben
revisar algunas de las decisiones iniciales. Por ltimo, es importante insistir en el
hecho de que los pasos ms importantes son los primeros cinco, ya que una
eleccin poco acertada en esos puntos no suele poder arreglarse con un buen
refinamiento del algoritmo.
93
9. CONSTRUCCIN DEL MODELO MATEMTICO PARA
RESOLVER EL PROBLEMA PLANTEADO
9.1. FORMULACIN MATEMTICA DEL PROBLEMA
El problema que se enfrenta en este trabajo es un problema combinatorio que
puede ser formulado matemticamente como un grafo dirigido . La
notacin
) , ( A V G =
107
es la siguiente:
Existe un conjunto de vrtices (nodos) }, ,.... , {
| 1 0 n
v v v V = donde representa el
depsito (bodega de origen), mientras que (i = 1,..., n) representa a cada uno
de los n clientes a ser visitados.
0
v
i
v
El conjunto de arcos de G est dado por: } ; , / ) {(
,
j i V v v v v A
j i j i
= .
C es la matriz de distancias o costos c
ij
positivos entre cada par de vrtices v
i
y v
j
(incluyendo depsito) definida como .
) 1 ( ) 1 (
} {
+ +
=
n x n
ij
c C
n
q es el vector de las demandas de los clientes donde q
i
representa la cantidad
de bienes requeridos por el cliente v
i
.
m representa el nmero de vehculos. Se asumen todos idnticos, con una
capacidad Q por vehculo.
R
i
es la ruta del vehiculo i .
107
La notacin utilizada es la misma utilizada en: BARN B. y HERMOSILLA, A. Comparacin de un
Sistema de Colonias de Hormigas y una Estrategia Evolutiva para el Problema del Ruteo de Vehculos con
Ventanas de Tiempo en un Contexto Multiobjetivo. IX Jornadas Iberoamericanas de Informtica, Cartagena
de Indias, Colombia. 2003.
[
i i
l e , ]representa la ventana de tiempo del cliente v
i
; con e
i
como la hora ms
temprana y l
i
como la hora ms tarda en que se puede iniciar el servicio a dicho
cliente v
i
.
i
Como se haba definido anteriormente este trabajo, considera slo el problema
simtrico (misma distancia/costo entre dos ciudades tanto de ida como de vuelta):
c
ij
= c
ji
para cada ( v
i
, v
j
)A. En este caso, por simplicidad es comn reemplazar A
por el conjunto } ; , / ) v
j
, {( j i V v v v E
j i i
< =
]
Se asume una velocidad constante y unitaria para los vehculos, con lo que puede
asumirse para facilitar el entendimiento, que el tiempo t
ij
necesario para ir de v
i
a v
j
es igual a la distancia c
ij
.
El intervalo [ en el depsito, es conocido como horizonte de planeacin y
hace referencia al tiempo en el que la bodega estar en operacin.
0 0
,l e
9.2. DEFINICIN DE COSTOS
En los problemas de ruteo, el costo esta asociado normalmente al tamao de la
flota, la distancia recorrida y el tiempo empleado. Como anteriormente definimos la
distancia en funcin del tiempo, el costo estar asociado nicamente al tamao de
la flota y el tiempo requerido en cada ruta R
i
.
El costo de m camiones es un costo de carcter fijo segn el numero de camiones,
por lo que en general los algoritmos de optimizacin de ruteo deben minimizar en
lo posible el tamao de la flota.
95
Se define una ruta i como , donde y
. Donde denota al j esimo cliente atendido en la ruta i , la
cual tiene a su vez un total de k clientes atendidos. Los clientes denotados iguales
a cero(0), son la bodega al inicio de la ruta y al final de esta.
} , ,...., , , {
1 2 1 0
i
k
i
k
i i i
i
i i
v v v v v R
+
=
V v
i
j
0
1 0
= =
+
i
k
i
i
v v
i
j
v
Las rutas a establecer estarn regidas por algunas condiciones, propias del
problema:
Las capacidades de los vehculos estn limitadas a q por lo tanto:
. ... 2 , 1 ,
1
m i Q q
j
k
j
i
j
=
=
Las ventanas de tiempo establecen limitaciones en orden de visitas, si se
define a b
v
como el instante en que se inicia el servicio al cliente v, entonces
ese instante debe estar limitado a :
. 1 ,... 2 , 1 , ,.... 2 , 1 , + = = k j m i l b e
i
j
i
j
i
j
v v v
Para definir el valor de , se establece que todo vehiculo viajara al cliente v
i
j
v
b
j
i
despus de haber terminado de atender al cliente v
j-1
i
, entonces:
} ; max{
,
1 1 1
i
j
i
j
i
j
i
j
i
j
i
j
v v v v v v
c b e b
+ + =
Para efectos prcticos se considera , es decir, los vehculos parten del
depsito en el mismo instante. Tambin es practico considerar a puesto que
el vehiculo no debe descargar nada en la bodega al iniciar el recorrido.
0
0 0
= = e b
i
0
0
=
i
Los tiempos de espera estarn entonces definidos por: w
} ; 0 max{
,
1 1 1
i
j
i
j
i
j
i
j
i
j
i
j
v v v v v v
c b b w
=
96
El tiempo de espera que este trabajo hace referencia se define como el tiempo
que un vehiculo debe esperar en la ubicacin de un cliente antes de poder
entregar su carga de acuerdo al intervalo de recepcin establecido.
Finalmente podemos definir el costo asociado al tiempo requerido en la ruta
como
i
R
108
:
= = =
+ + =
+
i
i
j
i
i
j
i
i
j
i
j
k
j
v
k
j
v
k
j
v v
i
w c R T
1 1 1
,
1
) (
9.3. DEFINICIN DEL OBJETIVO
Como se haba definido anteriormente este trabajo presenta un modelo
matemtico multiobjetivo, en el cual adems de optimizar el beneficio econmico,
se pretende incluir un factor estratgico definido como la satisfaccin del cliente,
mediante el control del tiempo mximo de servicio.
En un contexto multiobjetivo se manejan diferentes dimensiones de una funcin
objetivo general, cada dimensin representa un objetivo independiente. Por lo
general esta funcin general cuenta con varias soluciones optimas diferentes que
pueden ser incluso, nada comparables entre si. La funcin objetivo general se
define como:
[ ]
T
F F F F F
4 3 2 1
, , , =
En donde cada es una funcion definida para un objetivo particular:
F
m F =
1
, se desea minimizar el tamao de la flota (numero de vehculos). Esta
funcin nos da una idea del costo de la inversin en vehculos y del
costo de su mantenimiento.
108
Analisis Tomado de: BARN B. y HERMOSILLA, A. Comparacin de un Sistema de Colonias de
Hormigas y una Estrategia Evolutiva para el Problema del Ruteo de Vehculos con Ventanas de Tiempo en un
Contexto Multiobjetivo. IX Jornadas Iberoamericanas de Informtica, Cartagena de Indias, Colombia. 2003.
97
= =
+
=
m
i
k
j
v v
i
i
j
i
j
c F
1 0
,
2
1
, se desea minimizar la distancia total recorrida(o tiempo de
viaje). Esta funcin busca beneficios en cuanto al consumo
de combustibles, aceites, llantas, etc... de la flota de
camiones.
= = = =
+ + =
m
i
k
j
v
m
i
k
j
v
i
i
j
i
i
j
w F F
1 0 1 1
2 3
, se desea minimizar el tiempo total
destinado para satisfacer todos los
clientes. Esta funcin busca beneficios
en cuanto a los gastos en honorarios a
conductores y seguros de vehculos.
) ( max
1
4
i
v i
i
k
b F
+
=
, se desea minimizar el tiempo de la ruta mas larga, con lo que
se asegura que sin importar la asignacin de rutas, el ultimo
cliente atendido siempre estar satisfecho.
Formalmente el problema queda formulado como:
[ ] S x a Sujeto x f x f x f x f Minimizar
T
) ( ), ( ), ( ), (
4 3 2 1
Donde es la regin de soluciones factibles y es un vector de l
variables de decisin. Se denota como
S
T
l
x x x x ) ,..., , (
2 1
=
x
La preferencia de clientes donde la llegada este despus de la apertura de la
ventana y lo mas cerca posible del cierre de la ventana hace que el tiempo de
espera en general disminuya para todos los clientes.
La visibilidad para el objetivo (Tiempo de ruta ms larga) esta dado por:
4
F
j h
d / 1 =
La preferencia a escoger cientes con menos demanda hace que las rutas se
nivelen haciendo mas corto el tiempo de la ruta mas larga.
118
CASAL Ricardo, TONCOVICH Adrin, LPEZ Nancy, CORRAL Rafael, Estudio comparativo de
estrategias heursticas para un problema de secuenciamiento multiobjetivo. P. 43 Baha Blanca:Universidad
Nacional del Sur. Argentina 1998
119
Tomada de: GAMBARDELLA, Luca. TAILLARD, ric. AGAZZI, Giovanni. MACS-VRPTW: A
Multiple Ant Colony System For Vehicle Routing Problems With Time Windows (On Line). Lugano, Suiza.
http://www.idsia.ch (Consultado: Mayo 5 de 2005).
103
De esta manera se crean tantos factores de visibilidad como objetivos a cumplir se
tengan. Si el contexto del problema definiera que un objetivo es mas importante
que otro (en el problema planteado todos son iguales) la importancia se vera
reflejada en las potencias de cada factor de visibilidad en la formula de
probabilidad de escogencia que es asignada a cada cliente.
10.1.2. Estrategias memorsticas (Feromona). La feromona esta
inicialmente distribuida por todo el grafo, segn el algoritmo se ejecuta los rastros
se modifican con el fin de premiar las rutas que han logrado los mejores resultados
y desfavorecer los de peores resultados. La matriz de feromona es usada de igual
manera por cada uno de los cuatro objetivos del problema por lo que la
informacin guardada en ella es util al grupo de objetivos y no a uno en particular.
10.2. REGLAS DE TRANSICIN
El algoritmo propuesto utiliza la misma regla de transicin del algoritmo Mejor/Peor
Hormiga segn la cual:
Para un ingresado, y un q aleatorio en cada nodo se decide entre explotacin
del conocimiento o la exploracin aleatoria.
0
Q
Si (exploracin) se escoge el siguiente cliente a atender aleatoreamente
entre los clientes viables de visitar.
0
Q q
Si (explotacin del conocimiento) se procede a escoger el cliente con
mayor probabilidad .
0
Q q
k
ij
P
104
[ ] [ ]
[ ] [ ]
=
caso otro si
i N j si
P
k
N
h o L ij
h o L ij
k
ij
n
i
_ , 0
) ( ,
.
.
* * *
* *
Donde es el conjunto de los clientes factibles a recorrer en la ruta k desde i, ) (i N
k
es la importancia de la feromona y
+ =
120
Vase 9.11.2. Instancias.
121
ALMIRN, Marta. VIVEROS, Enrique. BARN, Benjamn, Sistema distribuido de hormigas para el
problema del cajero viajante. p. 12 Asuncion: Universidad Nacional de Asuncin. 2004
107
=
max
R es una constante definida como valor mximo de feromona correspondiente
a la menor distancia.(0.1)
=
min
R es una constante definida como valor mnimo de feromona correspondiente
a la menor distancia. (0.95)
=
max
c es la mayor distancia en la matriz de feromonas
ij
d
=
min
c es la menor distancia en la matriz de feromonas
ij
d
Figura 3. Esquema de valores escalado para la matriz de feromona
122
Segn el mtodo escogido por el usuario, el algoritmo creara la matiz de feromona
inicial
0
a ser utilizada durante la ejecucin del algoritmo.
10.6. REINICIACIN DE FEROMONA
El algoritmo propuesto contempla la reiniciacin de los valores de feromona a su
nivel inicial
0
cuando una solucin mejor global ha sido encontrada, de esta
manera se desecha la informacin que esta basada en una solucin antigua de
menor calidad y se comienza explotar el conocimiento dado por la solucin global
encontrada.
122
Figura tomada de: ALMIRN, Marta. VIVEROS, Enrique. BARN, Benjamn, Sistema distribuido de
hormigas para el problema del cajero viajante. p. 12 Asuncion: Universidad Nacional de Asuncin. 2004
108
0
=
ij Global Mejor
a concontrad S Cuando
10.7. OPERADOR DE MUTACIN
Para lograr una mayor diversidad en el proceso de bsqueda se incluye un
operador de mutacin que modifica la matriz de feromona. El operador de
mutacin se ejecuta justo antes de cada iteracin y una vez finalizada esta
restablece la matriz original para ser mutada en la siguiente iteracin.
A diferencia del algoritmo Mejor/Peor hormiga el algoritmo propuesto modifica la
matriz de feromona nicamente en una fila y una columna, este mtodo utilizado
en los algoritmos genticos realiza en cada iteracin modificaciones a una fila y
una columna de la matriz de feromona escogidas aleatoriamente mediante su
sobreposicin. El mtodo explota la diversidad que puede generar el cambio en
todos los rastros de salida de un cliente y en los de llegada de otro
123
.
aleatorios valores son b y a donde
valores demas los para
n j
n i
ij
jb bj
bi ia
ij
,
,
) 1 .... 2 , 1 , 0 (
) 1 .... 2 , 1 , 0 (
= =
= =
El algoritmo tambin presenta la opcin de ejecutar otro tipo de mutacin. En este
caso la modificacin se realiza a dos arcos aleatorios de la solucin global,
intercambiando sus valores. El mtodo explora de una manera ms conservadora,
la diversidad generada mediante la modificacin del camino ms deseable
memorsticamente por los vehculos.
aleatorios valores son b a
S a
global mejor ij ab ba ba ab
,
, ,
= =
123
BRYSY, Olli. BERGER, J ean. BARKAOUI, Mohamed. A New Hybrid Evolutionary Algorithm For
The Vehicle Routing Problem With Time Windows. p. 28 Vaasa: University of Vaasa.2002
109
10.8. BSQUEDA LOCAL
El algoritmo propuesto utiliza una bsqueda local tipo 2-Opt. para mejorar las
soluciones encontradas. Cada vez que una solucin es encontrada, se ejecuta una
bsqueda local que trata de mejorar los resultados de las funciones objetivo, si la
solucin creada es mejorada se toma esta nueva solucin como la solucin a
mejorar hasta que no se encuentren mejoras en esta solucin.
El mtodo 2-Opt. consiste en mover al menos dos clientes a una posicin diferente
dentro de la misma u otra ruta a la vez sin violar ninguna restriccin.
Para llevar a cabo este cambio, se selecciona aleatoriamente un cliente y se
procede a buscar los clientes vecinos factibles que podran tomar su posicin, si
alguno es encontrado se toma como el nuevo , y se conecta con el
viejo .
1 + x
h
y
h
1
`
+ x
h
1 y
h
1 + x
h
Este cambio puede traer dos casos diferentes si el punto hace parte o no de la
ruta de . Si hace parte de la misma ruta, un intervalo de la ruta debe cambiar
de sentido para que la ruta pueda ser cerrada. Si no hace parte de la misma ruta
las dos rutas sern cruzadas. En ambos casos las restricciones deben ser
comprobadas para todos los puntos siguientes a los modificados en las rutas
involucradas
y
h
1 + x
h
124
.
Si ninguna restriccin es violada se evalan las funciones objetivo para conocer si
se mejoro la solucin original.
La optimizacin local puede ser exhaustiva para cada cliente de toda la red o
puede ser limitada solo para algunos clientes. El algoritmo propuesto ejecuta la 2-
opt. a todos los clientes, lo cual incrementa considerablemente el tiempo de
ejecucin si muchas soluciones son encontradas.
124
GARDEL, Pedro. GMEZ, Osvaldo. BARN, Benjamn . Estudio del Espacio de Soluciones del
Problema del Cajero Viajante. P. 12. San lorenzo: Centro Nacional de Computacin. 2001.
110
10.9. ALGORITMO PROPUESTO
Como fue sealado en captulos anteriores, los algoritmos OCH pueden ser
divididos en bloques. Para facilitar el entendimiento en este trabajo dividiremos el
algoritmo en seis bloques:
(i) Bloque de Iniciacin
(ii) Bloque de actividades de creacin de soluciones
(iii) Bloque de actualizacin de feromona
(iv) Bloque de mutacin
(v) Bloque de bsqueda local
(vi) Bloque de evaluacin de soluciones al problema multiobjetivo
10.9.1. Bloque de iniciacin. En esta fase se realizan los ajustes para que el
algoritmo pueda iniciar sus funciones. El algoritmo lee los parmetros definidos por
el usuario que se consideraran mas adelante en el algoritmo como los contadores,
el coeficiente de evaporacin de la feromona...etc, se lee la matriz de distancias
, el vector de demandas d , valores
C
[ ]
i i
l e , de los intervalos de recepcin de los
clientes, los tiempos de descarga para cada cliente, ...etc.
En este mismo bloque se realizan algunos clculos como las distancias de la
matriz de costos, se calcula los valores iniciales de la matriz de feromona,
111
Leer parmetros
Leer archivo con datos del problema
Establecer contadores a cero
Obtener m rutas (infinitas) iniciales para el problema ingresado
y almacenar las rutas iniciales como las mejores rutas hasta el
inicial
M
momento
Crear ) , , , (
4 3 2 1
F F F F
Inicial
= infinitos para el conjunto de los clientes ingresados n
Crear infinito para el conjunto solucion Indicador _ ) , , , (
4 3 2 1
F F F F
Inicial
=
Almacenar el resultado de
Inicial
como P (soluciones pareto), la primera funcin no
dominada obtenida hasta el momento.
Calcular distancias para todas las ciudades ingresadas en el problema y crear la matiz de costos C
Asignar a la matriz
0
los valores iniciales del rastro de feromona segn definicin del usuario
Calcular los valores
h L
, (valores constantes) para todos los clientes
Figura 4. Esquema Bloque de iniciacin
10.9.2. Bloque de actividades de creacin de soluciones. En esta etapa
se agregan los camiones y comienza su actividad de bsqueda de soluciones al
problema.
112
Crear lista tab vaca.
Situar todos los camiones en la bodega y asignarles
tiempo de salida igual acero.
Inicializar contadores de tiempo e iteraciones
Fin del programa
Repetir hasta completar R*S iteraciones.
Bloque
Actualizacin
de feromona
Repetir hasta #iteraciones =H
Seleccionar camin con menor Tiempo de salida (si existen dos iguales,
escoger el de menor numeracin i) de los camiones disponibles.
Determinar clientes factibles (aquellos que cumplen con restricciones y
no estn en la lista tab) para posicin de camin seleccionado
Existen clientes
factibles?
Figura 5. Esquema Bloque de actividades de creacin de soluciones
Crear un q aleatorio en el intervalo {0,1}
?
0
Q q
Escoger siguiente cliente
aleatoriamente entre los
clientes factibles
Calcular los valores de para los
clientes factibles
k
ij
P
Escoger el cliente con mayor como
el siguiente cliente a visitar
k
ij
P
Mover camin hasta el cliente escogido. Registrar tiempo de llegada, calcular y
registrar tiempo de espera y Tiempo de salida. Modificar carga del camin
Enviar camin a la bodega. Registrar tiempo de llegada, calcular y
registrar y Tiempo de salida. Marcar camin como no disponible.
Existen camones
disponibles?
Bloque de evaluacin de
soluciones al problema
multiobjetivo
No
Si
No Si
No
Si
113
10.9.3. Bloque de actualizacin de la feromona. En este bloque se
registran los cambios que se producen a la matriz de feromona cuando H
iteraciones han transcurrido:
De las H iteraciones determine la peor segn Solucion Indicador _
Para los arcos que forman la mejor solucin global actualizar la
feromona segn indicador Solucion
ij ij
_ * + =
Para los arcos que forman la peor solucin y no se encuentran en la
mejor solucin global actualizar la feromona segn ) 1 ( * =
ij ij
Figura 6. Esquema bloque de actualizacin de feromona (Actualizacin)
Si una solucin mejor Global es encontrada:
Asignar los valores iniciales a la matriz de feromona
Borrar por solucin y comenzar a evaluar con los rastros de feromona
iniciales nuevamente.
Figura 7.Esquema bloque de actualizacin de feromona (Reiniciacin)
10.9.4. Bloque de Mutacin. En este bloque se realizan unos cambios
menores a la matriz de feromona
114
La mutacin definida por
el usuario es fila/columna
Seleccionar Aleatoriamente una fila y una columna de la matriz de
feromona e intercambie sus valores.
Reestablecer ultima matriz de feromona sin mutacin
Seleccionar Aleatoriamente dos arcos de la solucin global e
intercambie sus valores
Figura 8. Esquema bloque de mutacin
10.9.5. Bloque de Optimizacin local. En este bloque se intenta mejorar la
solucin encontrada mediante una optimizacin 2-opt.
115
Repetir n veces
Figura 9. Esquema bloque de optimizacin local
10.9.6. Bloque de evaluacin de las soluciones multiobjetivo. En este
bloque se realizan el manejo correspondiente a la evaluacin y registro de las
soluciones al problema multiobjetivo.
Seleccionar aleatoriamaneteuncliente
Buscar un sustituto factible (que cumpla con
restricciones) del cliente siguiente al seleccionado
Conectar al cliente seleccionado con el sustituto
encontrado y al cliente anterior al sustituto con el cliente
siguiente al seleccionado
Verificar para todos los puntos siguientes a los arcos
modificados que las restricciones se cumplen
Se encontr
sustituto?
Se cumplen las
restricciones?
Evaluar las funciones objetivo para la solucin resultante
Se mejoro la
solucin?
Guardar solucin mejorada Reestablecer los arcos
modificados
Bloque de
evaluacin de
las soluciones
No
Si
No
Si
No Si
116
Evale las funciones F para la solucin actual
4 3 2
, , F F
Figura 10. Esquema de evaluacin de soluciones
Elimine solucin actual
global Mejor
F F
_ _ 2 2
>
global Mejor
F F
_ _ 3 3
>
global Mejor
F F
_ _ 4 4
>
Solucin mejor encontrada. Eliminar
soluciones pareto anteriores.
Guardar como solucin mejor global y
asignarlo al frente pareto.
global Mejor
global Mejor
global Mejor
F F
F F
F F
_ _ 4 4
_ _ 3 3
_ _ 2 2
=
=
=
Solucin igual encontrada,
guardar solucin del frente
pareto.
Bloque de
creacin de
soluciones
Reiniciacin de
feromona
Si
No
Si
No
Si
No
Si
No
117
10.10. PSEUDOCDIGO DEL ALGORITMO PROPUESTO
Algunos autores utilizan pseudocdigos para facilitar el entendimiento del cdigo
que desarrollan hacindolos independientes del lenguaje utilizado para su
programacin. A continuacin se presenta el pseudocdigo del algoritmo
propuesto:
/*Iniciacin*/
Ingresar datos del problema y Parmetros del algoritmo
Para cada ciudad hacer } ,.... 1 { n v
Calcular distancias a todos los dems clientes segn
formula
2 2
) ( ) (
y y x x ij
j i j i C + =
Fin para
Calcular valores de la matriz de feromona inicial segn ) ( * ) 0 (
max
min max
min max
min ij ij
c c
c c
R R
R
+ =
o utilizar valor constante.
Calcular
h L
, para cada cliente
Crear Inicial
x
Si no
Eliminar solucin
Fin si
Fin si
Si no
Generar dos valores aleatorios a, b
= =
= =
valores demas los para
n j
n i
ij
jb bj
bi ia
ij
,
) 1 .... 2 , 1 , 0 (
) 1 .... 2 , 1 , 0 (
/*realiza la mutacin*/
Fin si
Hasta completar H veces
global mejor ij ij ij
S a indicador Solucion
+ = _ *
global mejor ij actual peor ij ij ij
S a y S a
=
_
) 1 ( *
Hasta* completar Ciclo (S iteraciones) /*Fin ciclo Principal*/
120
10.11. DESARROLLO DEL ALGORITMO COMPUTACIONAL
La aplicacin computacional creada en este proyecto fue desarrollada siguiendo el
modelo matemtico y algortmico diseado. Para facilitar su uso, se diseo una
interfase de fcil entendimiento pensando en el usuario como un estudioso del
algoritmo ms que como un usuario de un paquete de ruteo.
10.11.1. Lenguaje Utilizado. El programa fue desarrollado en java,
utilizando para su creacin el programa jcreator. Java fue seleccionado como el
lenguaje a utilizar bsicamente por ser una plataforma independiente, de
distribucin y uso gratuito, el cual provee un ambiente de trabajo propicio para
lograr una codificacin fcil de accesar, eficiente y fcil de entender.
Figura 11. Interfase del algoritmo computacional creado
121
Java presenta adems la caracterstica de ser multiplataforma, brindando al
usuario la posibilidad de utilizar el algoritmo desarrollado en plataformas
computacionales variadas.
El cdigo contienen comentarios y guas para hacer mas fcil su entendimiento y
seguimiento, dentro del paquete del programa adjunto a este documento se
encuentra un archivo Leame.txt con informacin mas detallada sobre los archivos
que contiene el paquete y aspectos tcnicos que pueden ser tiles para quien
decida estudiar o modificar el cdigo.
10.11.2. Instancias. El algoritmo lee los problemas (instancias) de un
archivo texto el cual debe tener unas caractersticas particulares para que sea
reconocido por el programa. El esquema utilizado es el propuesto hace varios
aos por el profesor Solomon
125
, uno de los ms difundidos y claros que existen.
El esquema se detalla a continuacin:
Figura 12. Esquema de instancia requerido
125
SOLOMON, M.M. Algorithms for Vehicle Routing and Scheduling Problems with time window
constraints. p. 326 Northeastern: Universidad de Boston, 1985.
122
Los datos deben ser ingresados en el orden en que se encuentran aqu ya que el
algoritmo no tendr en cuenta si el encabezado de las columnas se cambia.
10.12. ANLISIS ESTADSTICO DE LOS PARMETROS
Una vez el algoritmo esta terminado y funcionando, se debe realizar un estudio
sobre los valores de las componentes definidas por el usuario (parmetros) a fin
de determinar el valor para el cual el conjunto de ellas produce las soluciones de
mas alta calidad.
Para obtener conclusiones fiables, se ha aplicado el test estadstico de Anlisis de
Varianza (ANOVA). Al igual que la regresin, este test se usa para estudiar la
relacin que existe entre una variable dependiente (variable respuesta) y una o
ms variables independientes (llamadas factores).
El mtodo ANOVA nos permite comprobar si la diferencia de la respuesta depende
de la variacin de uno de los factores o si, por el contrario, ha sido fruto del azar.
Antes de poder aplicar este mtodo, debemos comprobar que las observaciones
obtenidas en el experimento cumplen las siguientes condiciones:
Las observaciones son mutuamente independientes.
Las observaciones se distribuyen siguiendo una distribucin normal.
Todas tienen la misma varianza.
Las medias se pueden expresar como combinacin lineal.
En otras experimentaciones se ha determinado que estas cuatro condiciones se
satisfacen.
Con este estudio, se intenta averiguar si los cambios en algunos de los valores de
los parmetros de las componentes del algoritmo influyen en la bondad de las
soluciones alcanzadas. Tambin se intentara establecer el valor ptimo de dichos
parmetros, entendiendo por ptimos aquellos valores con los que el algoritmo
consigue las mejores soluciones.
123
El algoritmo propuesto utiliza principalmente siete parmetros bsicos: el tipo de
mutacin, El tipo de matriz inicial, el peso de la feromona(alfa), el peso del valor
heurstico(beta), El coeficiente de evaporizacin(Rho), el porcentaje de vecinos
factibles(G) y el valor de la probabilidad de transicin( ). Para poder estudiar
adecuadamente la importancia de cada uno de estos parmetros, es necesario
trabajar con distintos valores de los mismos y aplicarlos a distintas instancias del
problema.
0
Q
Las caractersticas de la prueba son:
Se trabaja con una instancia representativa del problema para la cual es
conocida la respuesta optima:
La instancia a utilizar es la C101 del profesor Salomn de 100 clientes.
Existe un grupo de parmetros comunes a todas las pruebas a realizar cuyos
valores fueron asignados segn valores tpicos encontrados en la
documentacin consultada. Estos valores se detallan en la siguiente tabla:
Tabla 1. Parmetros constantes utilizados en la ANOVA
Nombre Definicin Valor
R #Ciclos Independientes 10
S #Iteraciones en cada ciclo 200
H
#iteraciones requeridas
para actualizar feromona
50
T Tiempo mximo por ciclo ilimitado
Para cada set de parmetros el algoritmo se corre dos veces, el resultado de
ese set de parmetros es el promedio de las respuestas en las dos
ejecuciones.
Los valores con los cuales se experimento para los diferentes parmetros son:
Tabla 2. Parmetros variables utilizados en la ANOVA
Nombre Definicin Valor
Tipo de mutacin Mutacin a aplicar en cada iteracin
Fila/Columna, Dos
valores
Tipo de Matriz
inicial
Matriz a ser utilizada como
0
Proporcional
escalonada, Valor
constante(uniforme)
Alfa Peso de la feromona 0.5, 1, 2
124
Beta Peso del valor heurstico 0.5, 1, 2
Rho
Coeficiente de evaporacin de la
feromona
0.2, 0.5, 0.9
Q
0
Valor de la probabilidad de
transicin
0.9, 0.99
G porcentaje de vecinos factibles 25, 50
Para realizar la prueba, es necesario realizar un nmero elevado de corridas del
programa con las diferentes combinaciones de parmetros. Para esta prueba de
siete factores de los cuales cuatro tienen dos niveles y tres tienen tres niveles se
requieren 432 corridas. Para facilitar este trabajo se realizo un programa adicional
que varia los datos automticamente despus de cada corrida, este programa se
incluye en el paquete adjunto de archivos con el nombre experimento.java.
Se realizaron dos corridas para cada combinacin generando 864 corridas. Los
datos recogidos consistan en la combinacin de los siete parmetros y los valores
de las funciones objetivo dos, tres y cuatro. Los datos obtenidos fueron
ingresados en el programa SPSS:
La hiptesis nula de esta prueba presupone que todas las medias son iguales y
apreciables respecto a la bondad de la respuesta obtenida.
La hiptesis alternativa indica que los parmetros no son iguales y que su
importancia es estadsticamente apreciable para un nivel de certeza del 95%
125
Tabla 3. Resultados de la prueba ANOVA
Tests of Between-Subjects Effects
Dependent Variable: F2
1.419+202
b
10 1.4190+201 251.892 .000 2518.915 1.000
3.920+202 1 3.9204+202 6959.059 .000 6959.059 1.000
2.924+200 2 1.4618+200 25.948 .000 51.896 1.000
3.674+200 2 1.8368+200 32.605 .000 65.210 1.000
6.944+197 2 3.4722+197 .062 .940 .123 .059
9.074+199 1 9.0741+199 16.107 .000 16.107 .980
5.912+201 1 5.9116+201 1049.353 .000 1049.353 1.000
2.204+201 1 2.2042+201 391.258 .000 391.258 1.000
4.167+198 1 4.1667+198 .740 .390 .740 .138
4.805+201 853 5.6335+198
5.820+202 864
1.900+202 863
Source
Corrected Model
Intercept
ALFA
BETA
RHO
G
Q0
FEROMONA
MUTACION
Error
Total
Corrected Total
Type II Sum
of Squares df Mean Square F Sig.
Noncent.
Parameter
Observed
Power
a
Computed using alpha = .05
a.
R Squared = .747 (Adjusted R Squared = .744)
b.
De acuerdo con los resultados, se observa que los valores mas significativos son
alfa, beta, Qo y la feromona. Los valores menos significativos son Rho y el tipo de
mutacin.
La prueba tambin muestra que la feromona con un valor constante y Qo con un
valor cercano a 1, generan mejores resultados. Los valores para los cuales se
encontraron mejores respuestas son
Tabla 4. Mejores valores para los parmetros segn prueba ANOVA
Alfa 1,2
Beta 0.5,1
Rho 0.9,0.5
G .25
Qo .99
Feromona Constante
Mutacin 2 valores
Una vez conocidos los parmetros significativos en la calidad de las soluciones y
las tendencias de estos, se puede optar por realizar pruebas nicamente con
estos valores en las fronteras donde mejores resultados se han obtenido.
126
Un estudio mas profundo sobre los parmetros de un algoritmo requerirn de un
analizar de regresin para hallar las componentes lineales y cuadrticas de cada
factor. Una vez hallados estas componentes se debe plantear una ecuacin no
lineal que arroje los valores ptimos para cada parmetro.
10.13. DESEMPEO DEL ALGORITMO
Para realizar un balance sobre el desempeo del algoritmo propuesto utilizaremos
los datos obtenidos en la prueba anterior
Tabla 5. Mejores resultados obtenidos para el problema C101
Descriptive Statistics
864 849.64 1.00+100 6.74E+99 4.6916E+99
864 9859.34 1.00+100 6.74E+99 4.6916E+99
864 1162.03 1.00+100 6.74E+99 4.6916E+99
864
F2
F3
F4
Valid N (listwise)
N Minimum Maximum Mean Std. Deviation
Los resultados son comparados con el valor ptimo
126
y heurstico mejor conocido
para la instancia C101:
Tabla 6. Comparacin de resultados obtenidos con el algoritmo propuesto,
el mejor heurstica y el optimo del problema
Algoritmo Propuesto Optimo Mejor Heurstico
Camiones
Distancia total
recorrida
Camiones
Distancia total
recorrida
camiones
Distancia
total
recorrida
10 849.64 10 827.3 10 828.94
126
Grupo de investigacin de los problemas de ruteo.(online). http://neo.lcc.uma.es/radi-
aeb/WebVRP/Problem_Instances/solomon100.html (Consultado: 8 de junio de 2005).
127
A diferencia del algoritmo propuesto los algoritmos utilizados para calcular el
optimo y el mejor heurstico aqu presentados, no optimizan el tiempo requerido
para la entrega (F3), ni el tiempo de la ruta mas larga(F4). Sin embargo, el
algoritmo propuesto obtiene un valor muy cercano al optimo (97.37%), mientras
optimiza las otras dos funciones.
Durante la realizacin de pruebas desactivando las funciones objetivo tres y cuatro
el algoritmo propuesto encontr una solucin igual a la del mejor heurstico
conocido. Los parmetros utilizados fueron: Alfa:0.4, beta:0.6, Rho:0.2,
G:0.25,Qo:0.98, feromona constante y Mutacin de fila columna.
Un estudio profundo del algoritmo requerir de probar varias instancias, de
diferentes tamaos, y autores.
Los resultados experimentales demuestran la convergencia del algoritmo hacia
una solucin cercana al ptimo, dando un soporte a la metodologa utilizada
durante el proyecto para la creacin del algoritmo.
128
BIBLIOGRAFA
ALMIRN, Marta. VIVEROS, Enrique. BARN, Benjamn, Sistema distribuido de
hormigas para el problema del cajero viajante. p. 12 Asuncion: Universidad
Nacional de Asuncin. 2004
ALONSO, Sergio. CORDN, Oscar. DE VIANA, Iaki. HERRERA, Francisco.
Anlisis de distintas vertientes para la paralelizacin de los algoritmos de
Optimizacin basada en Colonias de Hormigas. Actas del Segundo Congreso
Espaol de Metaheursticas. 2001
ALONSO, Sergio. CORDN, Oscar. DE VIANA, Iaki. HERRERA, Francisco La
Metaheurstica de Optimizacin Basada en Colonias de Hormigas: Modelos y
Nuevos Enfoques. p. 50. Granada: Departamento de Ciencias de la Computacin
e Inteligencia Artificial. 2002.
ANGULO, Cesar, La Logistica (Online), 2005; p. 2, www.monografias.com
(consultado: 11 de abril de 2005)
ARBONES, Eduardo. BALLOW, Ronald. BITLE, L y RAMSEY, J. Logstica
Integral (1991), Logstica Empresarial (1994). Enciclopedia del management. En
PREZ, Marisol. De la Gestin de la Produccin a la Gestin de la Cadena de
Suministro (Online) Holgun: Editorial Uho, 2003. www.monografias.com
(consultado: 6 de abril de 2005).
ATOCHA Aliseda Heurstica, hiptesis y demostracin en matemticas (online)
Mexico D.F.:Instituto de Investigaciones Filosficas.
http://minerva.filosoficas.unam.mx/ (consultado: 12 de mayo de 2005)
AUTOR DESCONOCIDO. Algoritmos Bio-Inspirados en Logstica, En Revista del
Instituto Tecnolgico de Informtica. Marzo 2002
129
AUTOR DESCONOCIDO. Gestin de Operaciones. Logstica del
transporte(Online); www.monografias.com (consultado: 7 de Mayo de 2005).
BACILIERI, Nino. GARCIA, William. Algoritmos Heuristicos. En: III Congreso
Colombiano y I Conferencia Andina Internacional De Investigacin De
Operaciones, Cartagena. 2004
BAECK Thomas, Evolutionary Computation
BARN, Benjamn. ALMIRN, Marta. Colonia de Hormigas en un Ambiente
Paralelo Asncrono. p. 11. San Lorenzo: Centro Nacional de Computacin. 2003
BARN B. y HERMOSILLA, A. Comparacin de un Sistema de Colonias de
Hormigas y una Estrategia Evolutiva para el Problema del Ruteo de Vehculos con
Ventanas de Tiempo en un Contexto Multiobjetivo. IX Jornadas Iberoamericanas
de Informtica, Cartagena de Indias, Colombia. 2003
BARN, B. y SCHAERER, M. A multiobjective Ant Colony System for Vehicle
Routing Problem with Time Windows. Proceedings of the 21st IASTED
International Conference APPLIED INFORMATICS. Innsbruck, Austria. 2003.
BARCOS, Luca. RODRGUEZ, Victoria . LVAREZ, Jess. ROBUST,
Francesc . Routing Optimization for many-to-many freight, Transportation
problems using Ant Colonies Techniques (Online). Espaa: Universidad Carlos III
En Second world conference on POM, Cancn, Mexico 2004.
http://www.iti.upv.es/cas/ (Consultado 5 de mayo de 2005)
BARROS,Oscar. VARGAS, Samuel. WEBER, Richard. Evaluacin de Prcticas
de Gestin en la Cadena de Valor de Empresas Chilenas. (Online) En Revista
Serie Gestion N44, p. 40 Enero, 2004; www.obarros.cl (consultado: 9 de Mayo
2005)
BONABEAU, E. DORIGO M. THERAULAZ, G.. Swarm Intelligence: From
Natural to Artificial Systems. Oxford University Press, New York, NY, 1999.
130
BRAYSY, Olli. Efficient Local Search Algorithms for the Vehicle Routing Problem
with Time Windows (On line). Finlandia:University of Vaasa. En Cuarta
Conferencia Internacional de Metaheursticas, Porto, Portugal, julio de 2001.
(Documento encontrado directamente a travs de www.google.com)
BRYSY, Olli. BERGER, Jean. BARKAOUI, Mohamed. A New Hybrid
Evolutionary Algorithm For The Vehicle Routing Problem With Time Windows. p.
28 Vaasa: University of Vaasa.2002
CASAL Ricardo, TONCOVICH Adrin, LPEZ Nancy, CORRAL Rafael, Estudio
comparativo de estrategias heursticas para un problema de secuenciamiento
multiobjetivo. P. 43 Baha Blanca:Universidad Nacional del Sur. Argentina 1998
CHAMOSO, Raul. Sist. de Control y Distribucin de Ventas (Online), 2004; p 3.
www.monografias.com (consultado: 10 de abril de 2005)
COLORNI A., Dorigo M., and Maniezzo V. An investigation of some properties of
an Ant algorithm. Brucelas 1992.
COMAS, Jose. Ruteo de vheiculos. (online). Valencia:Universidad politecnica
Diapositiva 4 www.mat.up.es/%7Eeqvm/opp.html (Consultado: 8 de mayo de
2005)
CONSUELO, Ana Daz. Respuesta estratgica de los operadores logsticos
europeos frente a los cambios en el entorno Lic. CC. Empresariales, TooL ULEE.
CORDN, O. HERRERA , F. MORENO,L..Integracin de Conceptos de
Computacin Evolutiva en un Nuevo Modelo de Colonias de Hormigas. En VIII
Conferencia de la Asociacin Espaola para la Inteligencia Artificial, Murcia
(Espaa), 1999, Vol. II, pginas 98-105.
CRDOVA, Juan. Optimizacin a travs de colonias de hormigas. San
Carlos:Universidad de San Carlos, p 2. 2004.
131
CRICHIGNO, Jorge. TALAVERA , Francisco. PRIETO, Joel. BARN, Benjamn.
Enrutamiento Multicast Utilizando Optimizacin Multiobjetivo p. 6. Asuncin:
Centro Nacional de Computacin. 2004
DENEUBOURG, J. GOSS, S. Collective patterns and decision making; Ethology,
Ecology, Evolution, Vol. 1, 1989, pgs. 295-311.
DOMNGUEZ, Jos A. y otros. Direccin de Operaciones. Aspectos tcticos y
operativos en la produccin y los servicios, Espaa: Editorial MC Graw Hill; 1999.
303p
DORIGO M. Optimization, Learning and Natural Algorithms. Ph.D.Thesis, Milan
:Politecnico di Milano. 1994
DORIGO, Marco. DI CARO, Gianni. GAMBARDELLA, Luca. Ant Algorithms for
Discrete Optimization. En Revista Artificial Life, Bruselas: MIT Press, 1999.
DORIGO M. and GAMBARDELLA L.M. Ant Colony System: A Cooperative
Learning Approach to The Traveling Salesman Problem.
DORIGO, M., MANIEZZO, COLORNi A. An investigation of some properties of
an Ant algorithm.
proceedings of the parallel problem solving from nature conference. Bruselas -
Blgica, 1992.
DORIGO M., MANIEZZO V., and COLORNI A. The Ant System: Optimization by A
Colony of Cooperation Agents.
ESPARCIA, Anna y SHARMAN, Ken. Algoritmos Bio-inspirados En Revista
Actualidad Tic (On line), 2004 ; p. 2, http://www.iti.upv.es/cas/ (consultado: 8 de
mayo de 2005)
132
GAMBARDELLA, Luca. TAILLARD, ric. AGAZZI, Giovanni. MACS-VRPTW: A
Multiple Ant Colony System For Vehicle Routing Problems With Time Windows
(On Line). Lugano, Suiza. http://www.idsia.ch (Consultado: Mayo 5 de 2005).
GARDEL, Pedro. GMEZ, Osvaldo. BARN, Benjamn . Estudio del Espacio de
Soluciones del Problema del Cajero Viajante. P. 12. San lorenzo: Centro Nacional
de Computacin. 2001.
GAREY, M. JOHNSON ,D. Computers andIntractability A Guide to the Theory of
NP-Completeness; New York :W. H. Freeman and Company, 1997
GIPR Grupo de investigacin de los problemas de ruteo.(online).
http://neo.lcc.uma.es/radi-aeb/WebVRP/Problem_Instances/solomon100.html
(Consultado: 8 de junio de 2005).
GUASCH, LogiSim, Simulacin de procesos logsticos y retos para la optimizacin
de flotas en tiempo real, Catalua:Universitat Politcnica de Catalunya.1999
LAKANTOS, Proofs and Refutations. The Logic of Mathematical Discovery.
Cambridge:University Press. 1976.
LEVINE, John. DUCATELLE, Frederick. Ant Colony Optimisation and Local
Search for Bin Packing and Cutting Stock Problems. Edinburgh: Centre for
Intelligent Systems and their Applications. 2003.
MELANIE, Mitchell, An Introduction to Genetic Algorithms (Complex Adaptive
Systems)
MERELO, J.J. Tcnicas heursticas de resolucin de problemas: computacin
evolutiva y redes neuronales (online) Espaa: Grupo GeNeura, 2005.
http://geneura.ugr.es (consultado: 7 de Mayo de 2005)
133
NESMACHNOW, Sergio. Una Versin Paralela del Algoritmo Evolutivo para
Optimizacin Multiobjetivo NSGA-II y su Aplicacin al Diseo de Redes de
Comunicaciones Confiables. En Actas del Tercer Congreso Espaol de
Metaheursticas, Algoritmos Evolutivos y Bioinspirados. Crdoba: Espaa.2004.
OTERO, Juan. GUERRERO, Danilo. Clasificacin Automtica Mediante Colonia
De Hormigas. La Habana: Universidad de la habana. P 12.
PACHECO, J. ARAGN, A. DELGADO, C. Diseo de algoritmos para el
problema del transporte escolar. Universidad de Burgos. Esapaa. 2001
PAEZ, Bernardo. GONZALES, Pedro. Router: Ambiente Amigable Para Ruteo Y
Scheduling De Vehiculos (online) En Congreso Encuentro de jvenes
Investigadores (Sexta edicion: 2005:Rosario), p 2 ,
www.universia.com.ar/contenidos/investigacion/unl/TECNOLOGIA/ingenieria/63.ht
m (consultado: 8 de mayo de 2005)
PREZ, Marisol. De la Gestin de la Produccin a la Gestin de la Cadena de
Suministro (Online) Holgun: Editorial Uho, 2003. www.monografias.com
(consultado: 6 de abril de 2005).
POLYA. Mathematics and Plausible Reasoning. Volume II Patterns of Plausible
Inference. p 54 Princeton :University Press, 1968.
REAL ACADEMIA ESPAOLA. Diccionario de la Lengua Espaola; edicin 21,
Madrid: Editorial Espasa, 1992.
SAAVEDRA, Caridad. FOSADO, Osvaldo. FERNANDEZ, Pedro. Tratamiento
Multicriterio de Problemas de Ruta solucionados a travs de Tcnicas de
Simulacin Monte Carlo (Online) Cuba: Universidad de Pinar del Ro.
www.monografias.com (consultado: 8 de Mayo de 2005).
134
SERRA, Daniel. Investigacin operativa y logstica empresarial (Online),
Fabra:Organizacin de Empresas GREL-IET. 2004, p.2. www.almacenar.com
(Consultado: 8 de mayo de 2005)
SOLOMON, M.M. Algorithms for Vehicle Routing and Scheduling Problems with
time window constraints. p. 326 Northeastern: Universidad de Boston, 1985.
TEJADA, Carlos. Ideas orientadoras sobre el sistema logstico del componente
ejercito en el teatro de operaciones. En revista Military Review, p. 44. Buenos
Aires:Escuela superior de guerra, Diciembre 2001
TORO, Andrs. GIRN, JM. BESADA, E., FERNNDEZ, P. LPEZ, JA.
Aplicacin del diseo de control multiobjetivo y multivariable, con algoritmos
genticos, al proceso de la fermentacin de la cerveza, Departamento de
Arquitectura de Computadores y Automtica, Universidad Complutense de
Madrid.
TORRES, Marcelo. Algoritmos heursticos para resolucin del vendedor viajero.
(online) Santiago de Chile: USACH , 2004.
http://optimos2.diinf.usach.cl/VendedorViajero/Teoria.htm (Consultado: 16 de
Mayo de 2005)
SITIOS DE INTERNET
http://duncan.cup.edu/~bro754/sci.htm
http://mat.gsia.cmu.edu/orclass/integer/node17.html
http://neo.lcc.uma.es/radi-aeb/WebVRP/
http://optimos2.diinf.usach.cl/swc/Inicio.htm
http://www.ctc.dcu.ie/ctcweb/courses/heuristics/course/vehicle.html
http://www.gestiopolis.com
135
http://www.inwap.com/pdp10/hbaker/hakmem/algorithms.html
http://www.logistpilot.com
http://www.nwrel.org/sky/Classroom/Science*Problem_Solving/Problem_Solving.ht
ml
http://www.spcomm.uiuc.edu/projects/vta/PSG/psgl3-ov.html
136
ANEXOS
137
ANEXO A
127
Mtodo Heurstico de Kart & Thompson
128
. A continuacin se presenta un
enfoque aplicado al problema del agente viajero, se utiliza este problema clsico
por ser parte fundamental de algoritmos de solucin del problema de Ruteo de
Vehculos. El problema consiste en encontrar la secuencia de puntos que el
agente debe visitar iniciando y regresando al mismo punto, minimizando la
distancia o tiempo total.
Proceso:
I. Seleccione 2 clientes, i
1
y i
2
, cualquiera del grupo disponible.
II. Suponga la existencia de un grupo de k clientes, que forman una ruta definida, con
2 <k <n, y donde n representa el total de clientes.
III. Escoja de manera aleatoria un cliente, h, diferente i
1
y i
2,
y calcule dj para j =1, tal
que dj = a
i
j, h
+
ah , i j+1
- a
i
j ,i j+1
donde se define i
k+1
para ser i
1
cuando j =k.
Donde las variables a representan la distancia, tiempo o costo entre los pares de
clientes, el valor j el orden de visitas desde el punto de origen y el valor k el numero
de puntos visitados hasta el momento.
IV. Defina j* tal que sea el valor de j asociado al dj mnimo.
V. Redefina i
j
como i
j-1
para j =j*+1,...,k , y el subndice h como i
j*
. Esto es, incorpore
el cliente h en la ruta en la posicin de i
j*
, tenindose ahora (k+1) clientes en la
misma.
VI. Si (k+1) =n, el algoritmo se termina. De otra manera, establezca k como k+1 y
contine.
Ejemplo
Se pide solucionar el problema siguiente:
127
Tomados de: COMAS, J ose. Ruteo de vheiculos. (online). Valencia:Universidad politecnica Diapositiva
36-45 www.mat.up.es/%7Eeqvm/opp.html (Consultado: 8 de mayo de 2005)
128
Es importante entender la metodologa aplicada hasta hace unos aos en la solucin del problema de ruteo.
138
31
Se escogen los puntos i
1
=A y i
2
=C, k =2. Se selecciona B =h como un punto que no est
en ruta de k =2.
Se calcula d
j
para j =1,2.
Para j =1: d
1
=a
i1,B
+a
B,i2
- a
i1, i2
=a
A,B
+a
B,C
- a
A,C
=17 +26 34 = 9.
Para j =2 d
2
=a
i2,B
+a
B,i1
- a
i2, i1
=a
C,B
+a
B,A
- a
C,A
=26 +17 34 = 9.
Se selecciona d
1
, por lo que j* =1.
La nueva ruta es ahora: i
1
=A, i
2
=B, i
3
=C.
Dado que (k+1) =3 < n =5, k =C, se contina con el algoritmo.
Se escoge se escoge aleatoriamente un nuevo punto: W.
Se calcula dj para j =1,2,3.
Para j =1: d
1
=a
i1,w
+a
w,i2
- a
i1, i2
=a
A,W
+a
W,B
- a
A,B
= 34 +47 17 = 64.
Para j =2: d
2
=a
i2,W
+a
W,i3
- a
i2, i13
=a
B,W
+a
W,C
- a
B,C
= 47 + 67 26 =88.
Para j =3 =k: d
3
=a
i3,W
+a
W,i1
- a
i3, i1
=a
C,W
+a
W,A
- a
C,A
= 67 +34 34 =67.
El mnimo es d
1
, por lo que j* =1.
El nuevo recorrido es: i
1
=A, i
2
=W, i
3
=B y i
4
=C.
Como (k+1) =4 <n =5, se contina. k =4.
Se escoge D como el nuevo punto h
48
67
34
23
17
34
26
34
47
B
W
D C
A
139
Se calcula para d
j
para j =1,2,3,4.
Para j =1 d
1
=a
A,D
+a
D,W
- a
A,D
= 23 +48 - 34 = 37.
Para j =2: d
2
=a
W,D
+a
D,B
- a
W,B
= 48 + 34 - 47 = 35.
Para j =3: d
3
=a
B,D
+a
D,C
- a
B,C
= 34 + 31 - 26 = 39.
Para j =4 =k: d
4
=a
C,D
+a
D,A
- a
C,A
= 31 + 23 - 34 = 20.
El mnimo d
j
es d
4
por lo que j* =4. Por lo tanto D se incorpora como i
5
.
El recorrido final sera; i
1
=A, i
2
=W, i
3
=B, i
4
=C y i
5
=D.
Se puede apreciar que en este mtodo heurstico la solucin depende de los
puntos iniciales escogidos aleatoreamente, por lo que no se puede asegurar que
la ruta obtenida por el algoritmo sea la ptima.
Una buena estrategia es aplicar el algoritmo considerando varios puntos diferentes
iniciales y escoger la ruta con la mnima distancia. Se debe reflexionar siempre
que el tiempo de ejecucin inicial ser multiplicado por el nmero de pares que se
evalu.
140
ANEXO B
129
Mtodo Heurstico de Barrido (sweep) para los problemas de ruteo con
mltiples vehculos. El objetivo es el de asignar m vehculos a n consumidores y
definir la secuencia de visitas de cada uno.
Esta metodologa Contempla 2 fases:
Asignacin de clientes a vehculos
La definicin de la secuencia para visitar cada cliente de cada ruta.
Proceso:
I. Ubicar los clientes y fuente (origen) en mapa.
II. Ubicar una lnea recta desde la fuente hacia cualquier direccin.
III. Rotar la lnea en una direccin intersectando clientes.
IV. Cada vez que un cliente se intersecta, se cuestiona la factibilidad de asignarlo a un
vehculo (restricciones de capacidad, tiempo de entrega, etc.).
V. Si es factible se incluye en ruta.
VI. Se contina hasta terminar con los clientes o los vehculos.
VII. Determinar la secuencia de visita de cada cliente para cada ruta aplicando un
mtodo de solucin del problema del Agente Viajero.
Ejemplo:
Se pide solucionar el siguiente problema con camiones de capacidad de 10.000
unidades.
129
Tomados de: COMAS, J ose. Ruteo de vheiculos. (online). Valencia:Universidad politecnica Diapositiva
29-35 www.mat.up.es/%7Eeqvm/opp.html (Consultado: 8 de mayo de 2005
141
1000
4000
2000
3000
2000
3000
3000
W
1000
2000
2000
2000
2000
Los crculos representan los clientes, el numero junto a ellos la demanda de
unidades y el punto W el almacn de mercanca.
Se traza una lnea horizontal hacia la derecha desde W, y se rota en sentido
antihorario.
Cada punto que se encuentra se asigna a un camin hasta que este alcanza su
capacidad.
Camin 1: C
1
=3000 + 2000 + 3000 = 8000
Camin 2: C
2
=4000 + 1000 + 3000 + 2000 = 10000
Camin 3: C
3
= 1000 + 2000 + 2000 + 2000 +2000 = 9000
1000
4000
2000
3000
2000
3000
3000
W
1000
2000
2000
2000
2000
Se utiliza un mtodo de solucin del problema del agente viajero para cada
camin tomando a W como punto de inicio.
142
1000
4000
2000
3000
2000
3000
3000
1000
2000
2000
2000
W
2000
En este problema se evidencia la importancia de la solucin empleada en el
problema del agente viajero. Utilizando la metodologa de barrido, se hace
exhaustivo el uso de algoritmos para el PAV (uno para cada camin), lo cual
reduce las posibilidades de evaluar varios pares de inicio y buscar una solucin
mejor.
Esta metodologa como muchas ms presenta soluciones locales, indicndonos
que incluso si se alcanzaran todos los ptimos locales no necesariamente se
alcanzara el ptimo global.
143