Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nicolas Barajas
Universidad Nacional de Colombia
Facultad de Ingenieria
Maestrı́a en Ingenierı́a de Sistemas y Computación
wnbarajasm@unal.edu.co
k−1
X
Fi (k) = pj ⇔ HV (vi )+T (p0 , Fi (1)) T (Fi (z), Fi (z+1)) < LH(pj )
z=1
para todo k = 1, 2, .., U (i) , i = 1, 2, .., m , j = 1, 2, .., n Figura 3: Clasificación Técnicas de Solución al VRP
en la Figura 4 se hace un planteamiento cronológico, mos-
trando el año en el que fue planteada la técnica para proble-
mas de optimización combinatoria en general, contrastando
con el año en que la técnica fue implementada para resolver
VRPs.
Minimizar:
X
dk Xk
k∈S
Sujeto a:
X
aik Xk = 1 para i = 1, 2, ..., n
k∈S
En [31] se presenta una nueva heurı́stica basada en métodos La representación de los individuos (soluciones) se hace me-
de barrido para solucionar un VRP, los autores trabajan diante cadenas de genes llamadas cromosomas en donde se
también el concepto de pétalos, para la generación de las define claramente la solución, un aspecto muy importante
zonas. en algoritmos genéticos es definir como se van a representar
las soluciones en estos cromosomas ya que esto es lo que va
4.2 Computación Evolutiva a permitir un proceso de evaluación mas sencillo y también
La computación evolutiva es una rama de la inteligencia ar- permitirá conseguir mejores resultados. A continuación se
tificial que se usa principalmente para resolver problemas describen brevemente cada uno de los pasos mostrados en
de optimización. Esta técnica está basada en la evolución la Figura 7, sin embargo éstos solo son ciertas nociones li-
de los seres vivos. Ası́ como en la evolución las especies se mitadas, para un mejor entendimiento es necesario referirse
crean, se dan unas soluciones factibles iniciales. De igual a un texto guı́a en algoritmos genéticos tal como [30] o [22],
manera como en la evolución, los individuos se tienen que o a fuentes en donde el tema sea tratado junto con otros
adaptar a un ambiente cambiante y solo sobreviven los me- métodos de optimización tal como lo hacen en [21], en donde
jores o los que evolucionan para reproducirse y seguir con los algoritmos genéticos son estudiados como una gran parte
el ciclo de vida, en la computación se escogen las mejores de las metaheurı́sticas.
soluciones y se mezclan de manera que se tomen las bue-
nas caracterı́sticas de cada una (de igual manera que en la Población Inicial: En este paso se crean un número deter-
evolución la reproducción mantiene el código genético de los minado de individuos aleatoriamente o también se pueden
padres), de manera que se crean posibles mejores solucio- crear de una manera estructurada con la que se va a obtener
nes. En [33] se presenta una visión general en computación una mejor población inicial. En muchos de los problemas en
evolutiva. los que se usan algoritmos genéticos se usa un tamaño de po-
blación de 100 individuos, sin embargo esta cantidad puede
En la computación evolutiva existen tres técnicas que se ser diferente.
basan en lo anterior pero que son independientes entre sı́:
Evaluación de los Individuos: Aquı́ es donde se mide
el Fitness que es lo que representa que tan buenos son los
• Algoritmos Genéticos individuos que hay en la población. En este paso es impor-
• Programación Evolutiva tante que la función de evaluación tenga en cuenta todos los
aspectos que harı́an bueno o malo a un individuo.
• Estrategias Evolutivas
Selección de Padres: En el proceso reproductivo de cierta
población generalmente los mejores individuos son los que se
Para dar solución al VRP la técnica más usada son los Al- cruzan, para esta parte del algoritmo genético existen diver-
goritmos Genéticos, que será la técnica en la que se hará sas técnicas para seleccionar los padres, entre las que están:
énfasis en esta sección el método elitista, en el cual se escogen los mejores indivi-
duos; el método de ruleta, en donde los mejores individuos
4.2.1 Algoritmos Genéticos tienen una mayor probabilidad de ser escogidos; y muchas
El proceso de un algoritmo genético básico es el que se mues- más técnicas que permiten tener un mejor comportamiento
tra en la Figura 7. El proceso en el que cada vez que se ite- del modelo teniendo en cuenta el problema a solucionar.
ran los pasos: Evaluación - Selección - Operadores Genéticos
es llamado una generación y se itera creando nuevas gene- Operadores Genéticos: Después del proceso de selección,
raciones hasta que el criterio de terminación es cumplido. se aplican generalmente dos operadores genéticos los cuales
son: cruce y mutación. El cruce nos va a permitir crear Algoritmo 2 Mutación
posibles mejores nuevos individuos que sean producto de i = random[1, n]
los buenos padres seleccionados en el paso anterior, se de- j = random[1, n]
fine una probabilidad de cruce para establecer si en cierta aux = F1 (i)
generación se realiza el cruce. La mutación es aplicada ge- F1 (i) = F1 (j)
neralmente a cada individuo después del cruce, también se F1 (j) = aux
define una probabilidad de mutación.
Criterio de Terminación: El criterio de terminación ge- Para una mutación en el Hijo 1 en el segundo y quinto gen
neralmente es un número dado de iteraciones (generaciones), del cromosoma se obtiene los siguiente:
o en algunos casos cierto valor de Fitness que alcance algún
individuo.
Hijo 1 sin mutuación: 1 4 6 8 7 5 2 3
4.2.2 Algoritmos Genéticos y VRP Hijo 1 con mutuación: 1 7 6 8 4 5 2 3
En el VRP una de las representaciones más utilizada es en
la que el cromosoma está definido por los clientes y el orden
en el que van a ser visitados, es decir el cromosoma será Existen otros tipos de operadores que se usan en esta clase
equivalente a F1 para un único vehı́culo en el caso especı́fico de problemas, uno de éstos es el de inversión que consiste en
TSP del VRP. Con n = 8 (Planteándolo como un VRP, ya cambiar el orden de una parte escogida al azar del cromo-
que en realidad serı́a un TSP con n = 9) se tiene la siguiente soma (Ver Algoritmo 2).
representación:
Algoritmo 3 Inversión
4 1 6 8 2 3 5 7 a = random[1, n]
b = random[1, n]
if a > b then
en donde el cliente 4 es el primero en ser visitado, el cliente 1
es el segundo y ası́ sucesivamente, notando que no puede ha- aux = a
ber clientes repetidos en el cromosoma. Con esta represen- a=b
tación la medición del Fitness simplemente podrı́a consistir b = aux
en calcular el negativo del costo de recorrer la distancia total end if
asociada a cada individuo, que para el caso anterior serı́a: for i = a to a + (int((b − a + 1)/2) − 1) do
F itness = −(C(p0 , p4 ) + C(p4 , p1 ) + C(p1 , p6 ) + C(p6 , p8 ) aux = F1 (i)
+C(p8 , p2 ) + C(p2 , p3 ) + C(p3 , p5 ) + C(p5 , p7 ) + C(p7 , p0 )) F1 (i) = F1 (a + b − i)
F1 (a + b − i)) = aux
teniendo mayor Fitness un menor costo asociado. Se pueden end for
realizar cruce y mutación de la siguiente manera:
Hijo 2: 7 5 2 4 1 6 8 3
en donde el vehı́culo 1 visitarı́a los clientes 4, 5 y 8; el
Padre 1: 1 4 6 8 2 3 5 7
vehı́culo 2 los clientes 1 y 2 y el vehı́culo 4 clientes 3, 6
y 7. El inconveniente en este tipo de representación es sa-
El operador de mutación consiste en intercambiar un par de ber en que orden serán recorridos los clientes asignados a
genes en el individuo, estos genes son escogidos aleatoria- cada vehı́culo, en [3] proponen resolver el TSP para cada
mente (Ver Algoritmo 1). vehı́culo, teniendo en cuenta los clientes asignados.
En [12] se hace una comparación entre tres clases de repre-
sentaciones para el TSP múltiple que consiste en un TSP
con varios agentes viajeros; aquı́ se tratan representaciones
basadas en las dos nombradas anteriormente. La primera
representación al igual que en [28] consiste en conformar el
cromosoma por los clientes y el orden en que van a ser visita-
dos, dividiendo el cromosoma en partes que le corresponden
a cada vehı́culo. La segunda representación consiste en que
cada gen representa el vehı́culo que va a ser asignado a cada
cliente y el orden está dado por otra parte del cromosoma
que indica el orden de las ciudades. Finalmente los autores
proponen una representación con la que se van a obtener
mejores resultados, en la cual la primera parte del cromo-
soma va a ser igual que en la primera representación y una
segunda parte del cromosoma indicará cuantos clientes van
a ser asignados a cada vehı́culo, obteniendo de esta manera
las rutas asociadas a cada vehı́culo.
Figura 8: Colonia de Hormigas
Como se puede notar hay diversas formas de representación
y pueden haber muchas más, en [13] los cromosomas están
representados por puntajes dados a cada cliente, de esta mización combinatoria. A continuación se mostrará como
manera el cliente con menor puntuación va a ser el primero es posible plantear el VRP con esta metodologı́a.
en ser recorrido, y el operador de cruce no va a tener que ser
ordenado, ya que si se llegan a repetir puntajes, éstos serán
removidos aleatoriamente.
4.3.2 ACO y VRP
En la implementación de la ACO al VRP cada vehı́culo
va a ser representado por una hormiga que va partir del
4.3 Colonia de Hormigas depósito y va a ir visitando clientes hasta que su capacidad
4.3.1 Generalidades de la técnica esté completa o hasta que no haya más clientes por visitar.
La Optimización Colonia de Hormigas (ACO), es un método Las hormigas (vehı́culos) van a realizar el procedimiento una
de optimización que está basado en el comportamiento de después de otra hasta que todos los clientes hayan sido visi-
las hormigas en cuanto a la forma en que éstas buscan su tados. La probabilidad de que Fk (q) = pi y Fk (q + 1) = pj
alimento. Es un hecho que las hormigas encuentran los ca- para cierto vehı́culo vk va a estar dada por la siguiente for-
minos más cortos entre el hormiguero y las fuentes de ali- mula:
mento aunque no puedan utilizar la visión como una forma
(τpi pj )(ηpi pj )β
para hacerlo debido a su casi completa falta de este sentido. Pp i pj = P (3)
β
Las hormigas empiezan a buscar su alimento moviéndose / k (τpi pu )(ηpi pu )
pu ∈M
aleatoriamente y en este proceso van expulsando una sus- si pj ∈
/ Mk , 0 en otro caso
tancia llamada feromona la cual puede ser muy susceptible
de olor para las otras hormigas, de esta manera las hormi- en donde τpi pj es la cantidad de feromona en el arco que une
gas que encuentren primero el alimento van a regresar más al punto pi con el punto pj , ηpi pj es el inverso de la distancia
rápido al hormiguero y van a dejar en el camino una concen- que hay entre el punto pi y el punto pj , el parámetro β indica
tración mayor de feromona la cual va a ser seguida por las la importancia que se le da a la distancia S entre los puntos
demás hormigas dejando la búsqueda aleatoria, de esta ma- con respecto al nivel de feromona y Mk = m i=1 ran(Fi )
nera todas las hormigas empiezan a seguir el mejor camino
hacia la fuente de alimentación. En la Figura 8 se muestra Un aspecto tenido en cuenta en ACO es el hecho de que
un esquema de lo mencionado anteriormente, en donde las el nivel de feromona se va evaporando, ya que una ruta se
hormigas van siguiendo el camino con mayor nivel de fero- puede volver muy predominante haciendo caer la solución a
monas, hasta que el camino más largo deja de ser tomado. óptimos locales, para la actualización del nivel de feromona
De esta manera para la implementación de un modelo de se maneja la siguiente relación:
optimización basado en lo anterior, se crea un modelo artifi- τ p i pj = (1 − α)τpi pj + (α)τ0 (3)
cial de colonia de hormigas en donde se definen parámetros
tales como niveles de feromona, tendencia de las hormigas a en donde α es un parámetro que controla la velocidad de
seguir a un nodo más cercano o a un nodo donde la arista evaporación de la feromona y τ0 es el nivel de feromona
tiene un mayor nivel de feromona, entre otros. Para una inicial para todos los arcos.
comprensión más detallada de los modelos de colonias de
hormigas en [18], [17] y [16] se dan buenas bases del método De esta manera se pueden diseñar algoritmos definiendo
de ACO y sus diferentes enfoques. parámetros tales como número de iteraciones y nivel de fe-
romona inicial, entre otros, que permitan obtener una buena
En general la ACO es utilizada para resolver problemas de solución para los diferentes tipos de VRPs. En [6] se nota
cubrimiento de nodos y hallar distancias más cortas, es por la similitud (en cuanto a resultados) que esta técnica tiene
eso que esta metaheurı́stica es muy apropiada para tratar con respecto a las otras técnicas estudiadas en este artı́culo.
el VRP. En [7] al igual que en [9] la ACO es tratada como Los autores diseñan experimentos y muestran la significan-
una de las principales metaheurı́sticas en procesos de opti- cia que los resultados de éstos tienen en la solución de VRPs,
mostrando que para pequeños tamaños de VRP los resulta-
dos están difiriendo entre el 1% con respecto a una solución
óptima conocida.
5. APLICACIONES
El VRP es aplicable a cualquier sistema en donde se requie-
ran trasladar objetos de ciertos lugares a otros y se presente
una estructura que consista en una flota de vehı́culos que de-
ben visitar determinados clientes partiendo de un depósito
dado. Dependiendo de la situación presentada en la vida
real el VRP puede tener muchas variaciones como la mos-
tradas en la sección 3, y de esta manera puede ser aplicado
a muchas más situaciones de la vida real.
[4] G. Barbarosoglu and D. Ozgur. A tabu search [17] M. Dorigo, G. D. Caro, and L. M. Gambardella. Ant
algorithm for the vehicle routing problem. Computers algorithms for discrete optimization. Artif. Life,
and Operations Research, 26(3):255–270, Mar. 1999. 5(2):137–172, 1999.
[18] M. Dorigo and G. Di Caro. The ant colony
[5] T. Bektas. The multiple traveling salesman problem: optimization meta-heuristic. In D. Corne, M. Dorigo,
an overview of formulations and solution procedures. and F. Glover, editors, New Ideas in Optimization,
Omega, 34(3):209–219, June 2006. pages 11–32. McGraw-Hill, London, 1999.
[6] J. Bell and P. McMullen. Ant colony optimization [19] M. Ehrgott and X. Gandibleux. An annotated
techniques for the vehicle routing problem. Advanced bibliography of multiobjective combinatorial
Engineering Informatics, 18(1):41–48, 2004. optimization. Technical Report 62/2000, Universitat
Kaiserslautern, Kaiserslautern, Germany, 2000.
[7] L. Bianchi, M. Dorigo, L. M. Gambardella, and W. J.
Gutjahr. Metaheuristics in stochastic combinatorial [20] M. L. Gillett, B.E. A heuristic algorithm for the
optimization: a survey. Technical report, Dalle Molle vehicle-dispatch problem. Operations Research,
Institute for Artificial Intelligence, 2006. 22:340–349, 1974.
[21] F. Glover. Handbook of Metaheuristics. Kluwer
[8] U. Blasum and W. Hochstättler. Application of the Academic Publishers, 2002.
branch and cut method to the vehicle routing
problem. Technical report, Zentrum für Angewandte [22] D. E. Goldberg. Genetic Algorithms in Search,
Informatik Köln, 2002. Optimization and Machine Learning. Addison-Wesley
Longman Publishing Co., Inc., Boston, MA, USA,
[9] C. Blum and A. Roli. Metaheuristics in combinatorial 1989.
optimization: Overview and conceptual comparison.
ACM Computing Surveys, 35(3):268–308, 2003. [23] A. Jaszkiewicz and P. Kominek. Genetic local search
with distance preserving recombination operator for a
[10] O. Braysy and M. Gendreau. Genetic algorithms for vehicle routing problem. European Journal of
the vehicle routing problem with time windows. Operational Research, 151(2):352–364, 2003.
Technical report, Internal Report STF42 A01021, [24] G. Laporte, M. Gendreau, J.-Y. Potvin, and F. Semet.
SINTEF Applied Mathematics, Department of Classical and modern heuristics for the vehicle routing
Optimization, Oslo, Norway, 2001. problem. International Transactions in Operational
Research, 7(4-5):285–300, Sept. 2000.
[11] O. Braysy and M. Gendreau. Tabu search heuristics
for the vehicle routing problem with time windows. [25] H. Lau, M. Sim, and K. Teo. Vehicle routing problem
Technical report, Internal Report STF42 A01022, with time windows and a limited number of vehicles.
SINTEF Applied Mathematics, Department of European Journal of Operational Research,
Optimization, Oslo, Norway., 2001. 148(3):559–569, 2003.
[26] E. S. Lawler. Combinatorial Optimization: Networks
and Matroids. Courier Dover Publications, 2001.
[27] R. Montemanni, L. Gambardella, A. Rizzoli, and
A. Donati. Ant colony system for a dynamic vehicle
routing problem. Journal of Combinatorial
Optimization, 10(4):327–343, 2005.
[28] F. B. Pereira, J. Tavares, P. Machado, and E. Costa.
Gvr: a new genetic representation for the vehicle
routing problem. In 13th Irish Conference on Artificial
Intelligence and Cognitive Science (AICS 2002), pages
95–102, 2002.
[29] T. Ralphs. Parallel branch and cut for capacitated
vehicle routing. Parallel Computing, 29(5
SPEC.):607–629, 2003.
[30] C. R. Reeves. Genetic Algorithms - Principles and
Perspectives : A Guide to GA Theory. Kluwer
Academic Publishers, 2002.
[31] J. Renaud and F. F. Boctor. A sweep-based algorithm
for the fleet size and mix vehicle routing problem.
European Journal of Operational Research,
140(3):618–628, Aug. 2002.
[32] D. M. Ryan, C. Hjorring, and F. Glover. Extensions of
the petal method for vehicle routeing. J Oper Res Soc,
44(3):289–296, 1993.
[33] J. E. Smith and A. E. Eiben. Introduction to
Evolutionary Computing. 2003.
[34] K. Tan, Y. Chew, and L. Lee. A hybrid multi-objective
evolutionary algorithm for solving truck and trailer
vehicle routing problems. European Journal of
Operational Research, 172(3):855–885, 2006.
[35] C. Tarantilis, G. Ioannou, and G. Prastacos.
Advanced vehicle routing algorithms for complex
operations management problems. Journal of Food
Engineering, 70(3):455–471, 2005.
[36] R. Tavakkoli, N. Safaei, and Y. Gholipour. A hybrid
simulated annealing for capacitated vehicle routing
problems with the independent route length. Applied
Mathematics and Computation, 176(2):445–454, May
2006.
[37] R. Tavakkoli, N. Safaei, M. Kah, and M. Rabbani. A
new capacitated vehicle routing problem with split
service for minimizing fleet cost by simulated
annealing. Journal of the Franklin Institute, In Press,
Corrected Proof:–, 2005.
[38] P. Toth. Optimization engineering techniques for the
exact solution of np-hard combinatorial optimization
problems. European Journal of Operational Research,
125(2):222–238, Sept. 2000.