Un Algoritmo Genético H´ıbrido Paralelo para Instancias Complejas ...
Un Algoritmo Genético H´ıbrido Paralelo para Instancias Complejas ...
Un Algoritmo Genético H´ıbrido Paralelo para Instancias Complejas ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Intercambio<br />
Ind. Original 1 2 3 4 5 6 7 8<br />
Ind. Mutado<br />
1 2 5 4 3 6 7 8<br />
Inserción<br />
Ind. Original 1 2 3 4 5 6 7 8<br />
Ind. Mutado<br />
1 2 3 5 6 7 4 8<br />
Fig. 4. Los operadores de mutación.<br />
Inversión<br />
1 2 3 4 5 6 7 8<br />
1 2 6 5 4 3 7 8<br />
Dispersión<br />
1 2 3 4 5 6 7 8<br />
1 2 6 7 3 4 5 8<br />
toriamente. En este caso, todos los clientes deben<br />
pertenecer a la misma ruta.<br />
• Inserción. Consiste en insertar un cliente seleccionado<br />
aleatoriamente en otro lugar del cromosoma<br />
del individuo también aleatorio, perteneciente a la<br />
misma ruta o a otra.<br />
• Dispersión. Es similar al operador de inserción,<br />
pero aplicado a una sub-ruta (conjunto de clientes)<br />
en lugar de un único cliente.<br />
Búsqueda Local. El método de búsqueda consiste<br />
en aplicar hasta 50 pasos de búsqueda por 1-<br />
Intercambio [16], y después se aplican hasta 50 pasos<br />
de 2-Opt [17] a cada ruta de la solución obtenida tras<br />
el 1-Intercambio. El método de 1-Intercambio consiste<br />
en intercambiar un cliente de una ruta por otro<br />
perteneciente a otra ruta, o insertar un cliente de<br />
una ruta en otra ruta distinta. Por otro lado, 2-Opt<br />
trabaja siempre dentro de cada ruta, y consiste en<br />
eliminar dos ejes de una ruta y conectar los clientes<br />
en la otra forma posible (ver Figura 5). Como estos<br />
dos métodos de búsqueda local son deterministas, la<br />
búsqueda <strong>para</strong> en el caso de que no se haya logrado<br />
mejorar la solución en un paso del algoritmo. Esto<br />
nos permitirá reducir considerablemente el tiempo<br />
de ejecución.<br />
a b a b<br />
d c d c<br />
Fig. 5. El operador 2-Opt.<br />
IV. Experimentación<br />
Recientemente, Li, Golden y Wasil presentaron<br />
en [10] un nuevo conjunto de instancias del problema<br />
CVRP caracterizado fundamentalmente por el elevado<br />
número de clientes de que estaban compuestas.<br />
Este conjunto de problemas fue llamado VLSVRP,<br />
acrónimo de Very Large Scale VRP, que se puede<br />
traducir como VRP de escala muy grande. El tamaño<br />
de las instancias propuestas por los autores<br />
en VLSVRP oscila entre los 560 y los 1200 clientes,<br />
mientras que los conjuntos de instancias más aceptados<br />
y utilizados en la comunidad científica hasta<br />
entonces estaban formados por instancias de entre 50<br />
y 199 clientes en el caso de CMT [15], o problemas<br />
desde 200 a 483 clientes en el caso de las propuestas<br />
en [4] por Golden et al. Algunas características<br />
importantes adicionales de VLSVRP es que se ha<br />
creado utilizando un generador de instancias, por lo<br />
que resulta sencillo obtener instancias de mayor tamaño<br />
(<strong>para</strong> más detalles acerca de este generador de<br />
instancias, consulte [10]). Además, las instancias generadas<br />
son geométricamente simétricas, siguiendo<br />
un patrón circular. Esto nos permite sin mucho esfuerzo<br />
obtener una estimación visual de la mejor solución<br />
al problema. Todas las instancias de VLSVRP<br />
incluyen restricciones en la longitud máxima de las<br />
rutas.<br />
TABLA I<br />
Parametrización utilizada en PEGA.<br />
Tamaño de Población Islas: 100 Individuos (10 × 10)<br />
Total: 400 Individuos (4 islas)<br />
Vecindario NEWS<br />
Selección de Padres Torneo Binario + Individuo Actual<br />
Recombinación generic crossover [12], pc = 1,0<br />
Mutación de<br />
Individuos<br />
Intercambio (pint = 0,05),<br />
Inversión (pinv = 0,1),<br />
Inserción (pins = 0,05),<br />
y Dispersión (pdisp = 0,15)<br />
Reemplazo Reemplazar si es Mejor<br />
Búsqueda Local 1-Intercambio + 2-Opt,<br />
50 Pasos de Optimización por Método<br />
Frec. de Migración Cada 10 4 Evaluaciones<br />
Condición de Parada 500000 Evaluaciones en Cada Isla<br />
PEGA ha sido diseñado con la idea de ser utilizado<br />
<strong>para</strong> resolver las instancias que forman VLSVRP.<br />
Debido a la dificultad y gran tamaño de estos problemas,<br />
decidimos ejecutar PEGA en un entorno grid<br />
compuesto por un máximo de 125 ordenadores de<br />
diversas características, como por ejemplo PCs o estaciones<br />
de trabajo Sun. El algoritmo está codificado<br />
utilizando Java y la biblioteca ProActive <strong>para</strong> gestionar<br />
el entorno grid. La <strong>para</strong>metrización utilizada<br />
en nuestro algoritmo <strong>para</strong> las pruebas realizadas<br />
se detalla en la Tabla I. En concreto, como ya se<br />
avanzó en la Sección III, hemos descentralizado el<br />
algoritmo en 4 islas en anillo, que intercambian sólo<br />
un individuo con una única isla vecina cada 10 4 evaluaciones.<br />
En cada una de estas islas se ejecuta un<br />
cGA como el descrito en la Sección III-A, que trabaja<br />
sobre una rejilla de 10 × 10 individuos. <strong>Un</strong>o<br />
de los padres es seleccionado mediante torneo binario<br />
dentro del vecindario del individuo actual (que<br />
está compuesto por los individuos situados al norte,<br />
sur, este, oeste –NEWS). El otro padre es el propio<br />
individuo actual. Ambos padres se recombinan<br />
con una probabilidad del 100 % usando el operador<br />
generic crossover, y el individuo resultante se muta<br />
utilizando uno de los operadores de intercambio,<br />
inversión, inserción, y dispersión con probabilidades<br />
0.05, 0.1, 0.05, y 0.15, respectivamente [12]. Posteriormente,<br />
se le aplica al descendiente un método