Implementaciones PHub ABH Búsquedas No Constructivas
1. Práctica 1 de Algoritmos Heurísticos y de Búsquedas
Eduardo Moreno Díaz
Alumno Ingeniería Informática Universidad de Huelva
eduardo.diaz@alu.uhu.es
Resumen búsqueda local, greedy más búsqueda local
extendida.
Este documento presenta los resultados
obtenidos por cuatro algoritmos basados en 2. Descripción del problema
trayectorias para la resolución del problema
conocido como “p-hub”. Se realizará un estudio O’Kelly [2], describe el problema
con tres casos del problema y las distintas técnicas considerando los siguientes valores:
implementadas. Al final, se expondrán los Wij= número de unidades de tráfico que se
resultados obtenidos que serán analizados para envían desde el punto i al j.
obtener unas conclusiones sobre éstos métodos de Cij= coste unitario por unidad de tráfico
búsqueda. enviada sobre el arco (i,j).
Las variables de decisión vienen definidas por:
PALABRAS CLAVES: Optimización, búsqueda
heurística, búsqueda basada trayectoria, problema 1, si el punto i es asignado al hub
p-hub j
Xij =
0, en otro caso
1. Introducción
1, si el punto j es hub
El problema del “p-hub” [1], también Yij =
conocido como problema de nodos conectores y 0, en otro caso
concentradores, modela la situación cuando n nodos
pueden interactuar solamente a través de un La fórmula matemática corresponde a:
conjunto de p hubs completamente conectados;
estos dos conjuntos, hubs y nodos, y sus respectivos
arcos de unión, conforman un grafo totalmente
interconectado. Usando la cantidad de flujo y el
coste por unidad de flujo entre dos nodos en una
red, se debe decidir sobre la localización de hubs y , donde β, γ, α representan los costes de recogida,
sobre la asignación de cada nodo que no es hub a distribución y entrega en este orden, y está sujeta a
aquéllos que lo son. Además, también se usan una las siguientes restricciones:
serie de costes adicionales que influyen en la
evaluación de la solución final. Estos costes son el
de recogida, distribución y entrega. En esta
memoria, se van a estudiar los problemas CAB
(25,4), AP(40,3) y AP(50,5)
Con el objetivo de resolver los casos
indicados, se van a implementar cuatro métodos de
búsqueda basados en trayectorias diferentes:
búsqueda multiarranque básica, grasp, grasp
extendido e ils. También se usarán otros algoritmos 3. Diseño / Implementación
de comparación como son el greedy, greedy más
2. Representación de la solución localizada, por lo que se ha tomado una función de
evaluación que es la siguiente:
La representación que se hará de una
solución es la siguiente:
Cabría esperar que la misma función en la
Dicha solución integra a las matrices X e Y que se sustenta el p-hub fuera la función de
de modo que un hub es identificado porque en la evaluación con la que se han logrado los resultados
posición que le corresponde aparece su mismo óptimos para los citados casos de estudio, pero no
identificador. Un nodo normal presenta en la ha sido así.
posición de su representación al hub que tiene
asignado.
Operadores de vecindad 3.1. Búsqueda Multiarranque Básica
Para el problema del p-hub se presentan El algoritmo de Búsqueda Multiarranque
dos operadores de vecindad: Básica (BMB en adelante) empleado consiste en
generar un conjunto de soluciones iniciales
1) Cambio de conexión del nodo (L): se aleatorias y optimizar cada una de ellas con una
cambia el hub al que esta conectado un búsqueda local [3]. Al final, el algoritmo da como
nodo resultado la mejor solución encontrada durante todo
2) Intercambio de hub (R): se elige a un el proceso.
nodo aleatoriamente y se convierte en
hub. Del mismo modo, se elige un hub Este proceso se realizó con 50 soluciones
de entre los que existan en la solución aleatorias y con búsqueda local de 1600*nodos
y se convierte en nodo. Al resto de iteraciones, 100 iteraciones de no mejoría para
nodos que conectaban con este nodo, acelerar la búsqueda local y 5, 10, 15 y 20 vecinos
se direccional ahora al nuevo hub. de exploración.
Operadores de mutación 3.2. GRASP
Algunos de los algoritmos presentados El algoritmo de Búsqueda Aleatoria
necesitan de una operación especial de mutación Adaptativa Greedy (GRASP) se basa en construir
que les permita explorar el espacio de búsqueda. soluciones greedy de manera probabilística y
Esta operación se basa en aplicar el operador de aplicarles una búsqueda local como en la BMB
vecindad en sus dos variantes de forma reiterativa para optimizarlas. La obtención de las soluciones
durante cierto número de veces, obteniéndose iniciales greedy, selecciona a los nodos con mayor
soluciones que pueden ser explotadas por una potencial de flujo como hubs y asigna el resto como
búsqueda local. nodos a los hubs con menor costo.
Dicha operación ha sido estudiada a fondo El carácter probabilístico se aplica a la
en las diferentes implementaciones y para los todos elección de los hubs. Éstos se almacenan en una
los casos de estudio. En el anexo I pueden verse los lista de mayor a menor potencial de flujo. Se eligen
resultados obtenidos. los l mejores hubs (siendo l >= p). A continuación,
se seleccionarán los p hubs que conforman parte de
la solución del problema.
Función objetivo
Posteriormente a este proceso, el resto de
Se hace necesario resaltar en este punto nodos no conectores se asocia, mediante un
que la función con la que han sido evaluados los procedimiento similar al expuesto, a los hubs. Se
casos de estudio que se van a estudiar no ha sido añaden a una lista ordenados por menor coste y se
eligen r nodos (siendo r <= p). Por último, se eligen
3. al azar un nodo de dicha sublista para realizar la El algoritmo ha aplicado 50 búsquedas
asignación. Este procedimiento se aplica a todos los locales, una a la solución aleatoria y 49 a las
nodos no conectores hasta completar una solución soluciones mutadas, con 1600*nodos iteraciones,
para el problema. 200 iteraciones de no mejoría y 5, 10, 15 y 20
vecinos en la exploración. Del mismo modo que el
Del mismo modo que para BMB, se han GRASP Extendido, se han aplicado todas las
creado 50 soluciones iniciales sobre los que la posibles combinaciones para el operador de
búsqueda local ha realizado 1600*nodos mutación.
iteraciones, 200 iteraciones de no mejoría y 5, 10,
15 y 20 vecinos de exploración. 3.5. Greedy
Tanto este como los dos siguiente
3.3. GRASP Extendido algoritmos, se utilizan en este estudio para
compararlos con los procedimiento ya descritos en
Este algoritmo es exactamente igual que el los puntos anteriores. Son algoritmos deterministas
presentado en el apartado anterior, excepto por la a las que se les ha aplicado técnicas como la
incorporación del operador de mutación. Dicho búsqueda local y la mutación. El objetivo es
operador se aplica tras la obtención de la solución comprobar si merece la pena la utilización de los
greedy probabilística. De esta manera, la búsqueda métodos anteriores para la obtención de resultados.
local que se realiza posteriormente recibe una
solución mutada para que sea explorada. El algoritmo Greedy (GR) implementado
se basa en la heurística de seleccionar como hubs a
La mejoría que pretende aportar este los nodos con el flujo de unidades más alto y
algoritmo es la de crear soluciones rápidamente de asignarlos a los nodos cuyo coste sea menor.
manera casi determinista pero otorgándoles cierto
punto de aleatoriedad que la propia generación no
puede y que resulta muy interesante de poder
Procedure GR
explorar.
S0 = vacio
Para la obtención de los resultados de este lista = CalcularFlujoNodos()
algoritmo, se ha partido de 10 soluciones iniciales a ordenarMayorAMenor(lista)
las que se les ha aplicado 5 veces el procedimiento hubs = coger los “p” primeros
de mutación y búsqueda local. Para la mutación se S0 = MarcarComoHubs(hubs)
han utilizado todas las combinaciones posibles entre
intercambio de hub como cambio de conexión. En Para c=1 Hasta nunNodos Hacer
el axexo I se muestran todos los valores utilizados. S0[c] = nodoMenorCosteA(hubs)
Para la búsqueda local se han utilizado los mismos Fin
parámetros que en el GRASP. Devolver S0
3.4. ILS Fin
El algoritmo de Búsqueda Iterativa Local
(ILS) pretende dar pequeños saltos en el espacio de 3.6. Greedy + BL
búsqueda de manera muy similar a como actúa la
mutación en los algoritmos genéticos [4]. Para el El algoritmo Greedy más Búsqueda Local
caso que nos requiere, se parte de una solución consiste en ejecutar el algoritmo expuesto en el
aleatoria a la que se le aplica una búsqueda local. punto anterior y una búsqueda local para encontrar
Una vez obtenida la solución optimiza, aplicamos una solución optimizada.
una mutación sobre la mejor de entre la inicial o la
optimizada. A continuación, se aplica de nuevo una Obviamente, si lo que se busca es una
búsqueda local y el proceso se repite siguiendo el medida de comparación, los parámetros utilizados
criterio del mejor como condición de aceptación de para la búsqueda local deben de ser los mismos que
soluciones. en los casos anteriores: 1600*nodos iteraciones, 200
iteraciones de no mejoría con 5, 10 15 y 20 vecinos
en la exploración.
4. 3.7. Greedy + BL Extendida 4. Experimentación
El algoritmo Greedy más Búsqueda Local Se ha realizado una batería de pruebas
Extendida no es más que el algoritmo GRASP sobre los casos de estudio CAB-25-4, AP-40-3 y
Extendido expuesto anteriormente pero partiendo en AP-50-5 con un PC de sobremesa con procesador
este caso de una solución greedy determinista, Intel Pentium Dual Core a 2.33GHz, 2GB de
proporcionada por el algoritmo GR. memoria RAM, sistema operativo Windows XP SP2
con Java JDK 1.6. Los parámetros para la búsqueda
Como se puede apreciar, estos dos últimos local y la mutación que han aportado las mejores
algoritmos son exactamente iguales al algoritmo soluciones son por caso de estudio y algoritmo los
GRASP y GRASP Extendido, salvo por la siguientes:
generación de la solución inicial que se utiliza en
cada procedimiento. CAB-25-4:
- BMB: 10 Vecinos
- Greedy + BL: 10Vecinos
- Greedy + Bl Ext: 10Vecinos, L = 4, R
=4
- Grasp: 10Vecinos, L = 8, R = 4
- Grasp ext: 10Vecinos, L = 10, R = 9
- Ils: 5 Vecinos, L = 8, R = 4
AP-40-3:
- BMB: 5 Vecinos
- Greedy + BL: 5 Vecinos
- Greedy + Bl Ext: 5Vecinos, L = 4, R =
4
- Grasp: 20Vecinos, L = 10, R = 4
- Grasp ext: 20Vecinos, L = 7, R = 8
- Ils: 20 Vecinos, L = 6, R = 4
AP-50-5:
- BMB: 15 Vecinos
- Greedy + BL: 20 Vecinos
- Greedy + Bl Ext: 5Vecinos, L = 5, R =
5
- Grasp: 10 Vecinos, L = 5, R = 5
- Grasp ext: 5 Vecinos, L = 6, R = 5
- Ils: 10 Vecinos, L = 7, R = 6
CAB-25-4 AP-40-4 AP-50-5
Método Coste Coste Coste
Óptimo 939 158830 132366
Greedy 7329 194494 136348
Búsqueda Local 8223 195185 199201
BMB 4870 144075 127637
Greedy + BL 5983 174463 133369
Greedy + BL Ext 4960 154868 128446
Grasp 6458 177018 179479
Grasp Ext 4571 147376 147089
Ils 7636 181601 178831
Tabla 1. Resultados Globales
5. Lo primero que se observa en la gráfica 1
es que el óptimo ha sido alcanzado en varias
210000
Óptimo
ocasiones. Esto no es debido a que se haya
180000
Greedy
encontrado una solución mejor, sino que como ya se
150000 Búsqueda Local ha comentado al principio del documento, la
120000 BMB función de evaluación con la que se ha obtenido ese
óptimo no es la misma que se ha usado en este
Coste
Greedy + BL
90000 Greedy + BL Ext estudio.
60000 Grasp
30000
Grasp Ext También se aprecia que algoritmo BMB es
Ils el que presenta los mejores resultados para todos los
0
casos de estudio. Cabe destacar que sólo se ha
CAB-25-4 AP-40-4 AP-50-5
utilizado una semilla para la obtención de resultado.
Gráfica 1. Resultados Globales
Como puede observarse en la gráfica 1 , los
algoritmos GRASP no están teniendo resultados de
9000 calidad. No mejoran a sus versiones simplificadas
8000 Greedy Greedy. La causa podría deberse a que la
7000 Búsqueda Local
6000 BM B
generación de la solución greedy probabilística no
es adecuada. Se tendría que estudiar con mayor
Coste
5000 Greedy + BL
4000 Greedy + BL Ext detenimiento este matiz.
3000 Grasp
2000 Grasp Ext
1000 ILS En las graficas 5, 6 y 7, se muestra que la
0 búsqueda local tiende a oscilar cuando se modifican
CAB-25-4
el número de vecinos del entorno sobre los que se
realiza la búsqueda, con lo que para obtener buenos
Gráfica 2. Resultados Cab-25-4 en detalle
resultados es muy importante determinar este cuál
va a ser su valor. También es importante elegir un
250000
buen factor de mutación, ya que de él depende el
Greedy número de vecinos que habría que utilizar en la
200000 Búsqueda Local búsqueda.
BM B
150000
Coste
Greedy + BL
Greedy + BL Ext Cabe destacar que, a medida que crece el
100000
Grasp tamaño de nodos del problema, la mutación debe
Grasp Ext
50000
ILS
ser pequeña, ya que si no es así, la proporción
0
exploración/explotación queda a favor de la
AP-40-4 exploración y nunca termina de explotar las
soluciones que, a priori, presentan buena calidad.
Gráfica 3. Resultados Ap-40-3 en detalle
Por último, resaltar que en los algoritmos
250000
Greedy + Bl Extendida y Grasp aplicar la variante
Greedy
de mutación de intercambio de hub no tiene
200000
Búsqueda Local influencia sobre el resultado de las soluciones que
150000
BM B se obtienen, como se aprecia en los gráficos 5, 6 y
Coste
Greedy + BL
Greedy + BL Ext
7.
100000
Grasp
50000 Grasp Ext
ILS
0 6. Conclusiones
AP-50-5
Gráfica 4. Resultados Ap-50-5 en detalle El algoritmo BMB ha sido el que mejores
resultados ha proporcionado en los casos
estudiados.
5. Análisis de resultados
Las versiones greedy implementadas han
presentado resultados de mejor calidad que sus
6. técnicas más sofisticadas Grasp y sus diferentes intercambio modal y plataformas logísticas”, Julio
evoluciones. 2008
[2] M.E. O'Kelly (1987). “A cuadratic integer program
Se muestra que la elección del número de for
the location of interacting hub facilities”. European
vecinos empleados en las búsquedas locales es de
Journal of Operational Research., 32(3):393-404.
vital importancia para la consecución de buenos [3] E. M. Díaz (2011). Práctica 1 Algoritmos Heurísticos
resultados. y de Búsquedas
[4] E. M. Díaz (2011) Practica 2 Algoritmos Evolutivos y
Bioinspirados
7. Referencias
[1] David Agra Martínez, “Localización de centros de
Anexo I
Comparativa de resultados globales
En este anexo se recogen todas las gráficas que se han generado durante el proceso de pruebas en las que se
han estudiado en profundidad cómo afectan el número de vecinos y las dos opciones que proporciona el
operador de mutación en el resultado final del algoritmo.
CAB-25-4
7. Gráfica 5. Resultado estudio para problema CAB-25-4
Gráfica 6. Resultado estudio para problema AP-40-3
8. Gráfica 7. Resultado estudio para problema AP-50-5
Los datos que aparecen en el eje horizontal corresponden el número de vecinos para el caso de los algoritmos
BMB y Greedy + BL y al factor de mutación en el resto. Este factor corresponde al número de asignaciones
de intercambio de conectores como parte izquierda y al número de cambios de hubs en la parte derecha. Asi el
valor 4-5 representa a 4 cambios de asignación y 5 cambios de hubs.