Presentación guía sencilla en Microsoft Excel.pptx
Implementaciones PHub ABH
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 También se usará un algoritmo de comparación
greedy.
El objetivo de este documento es el de
presentar los resultado obtenidos en la práctica 2. Descripción del problema
número uno de la asignatura Algoritmos
Heurísticos y de Búsqueda en el curso 2010/2011. O’Kelly [2], describe el problema
Se trata de resolver el problema conocido como “p- considerando los siguientes valores:
hub” a través de la implementación de los Wij= número de unidades de tráfico que se
diferentes algoritmos estudiados en clase. Se envían desde el punto i al j.
realizará un estudio comparativo entre los Cij= coste unitario por unidad de tráfico
diferentes casos del problema y las diferentes enviada sobre el arco (i,j).
técnicas implementadas. Al final, se expondrán las Las variables de decisión vienen definidas por:
conclusiones a las que hemos llegado partiendo
desde la premisa de que los resultados se han 1, si el punto i es asignado al hub
obtenido a partir de una parametización j
proporcionada por el profesor y no se ha Xij =
modificado en ningún momento. 0, en otro caso
1. Introducción 1, si el punto j es hub
Yij =
El problema del “p-hub”, también 0, en otro caso
conocido como problema de nodos conectores y
concentradores, modela la situación cuando n nodos La fórmula matemática corresponde a:
pueden interactuar solamente a través de un
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 , donde β, γ, α representan los costes de recogida,
red, se debe decidir sobre la localización de hubs y distribución y entrega en este orden, y está sujeta a
sobre la asignación de cada nodo que no es hub a las siguientes restricciones:
aquéllos que lo son [1]. Además, también se usan
una 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 5 métodos de
búsqueda diferentes: búsqueda aleatoria, búsqueda La representación que se hará de una solución es la
local, enfriamiento simulado y búsqueda tabú. siguiente:
2. Procedure BL
solucion = solucionInicial;
mejorSolucion = solucion
Repetir
nuevaSol = MejorSolucionVecindario
(solucion)
3. Búsqueda Aleatoria Si coste (nuevaSol < mejorSolucion)
mejorSolucion = nuevaSol
El algoritmo de Búsqueda Aleatoria (BA Fin
en adelante) empleado consiste en generar una Incrementar it
solución aleatoria en cada iteración. Para ello, Hasta it <iteraciones
selecciona aleatoriamente p nodos como hubs y les Fin
asigna también aleatoriamente un nodo de los
restantes, asegurándose de que cada nodo esta Procedure MejorSolucionVecindario(solucion)
conectado a un hub. hubs = todos los hubs de solucion
Procedure BA Hacer
solucion = vacio n = Elegir nodo de solucion
hubs = vacio Si (nodo = hub)
nuevoHub = Elegir un hub de
hubs = Elegir p hubs y marcarlos como hubs; hubs[] que no sea n
Convetir nuevoHub en hub
Repetir (resto de nodos) Sino
hub = Elegir un hub de hubs hub = Elegir un hub de hubs[]
solucion[nodo] = hub solucion[nodo] = hub
Fin Fin
Devolver solucion
Fin Si coste (solucion < mejorSolucion)
mejorSolucion = solucion
Este proceso se realizó durante Fin
1600*nodos iteraciones y con 10 semillas diferentes Mientras numeroVecinosAGenerar < n/2*p
para el generador de aleatorios. Como resultado se Devolver mejorsolucion;
devuelve el mejor resultado de todas ellas. Fin
4. Búsqueda Local Al tratarse de un algoritmo que no
reaprovecha las soluciones que va generando, se
La Búsqueda Local (BL) implementada hace necesario hacer gran número de iteraciones
parte de la solución generada por la BA y la para que los resultados se consideren como buenos.
modifica para ir explorando el vecindario de
soluciones. Esta exploración consiste en cambiar Del mismo modo que la BA, se ha
bien a un nodo de hub o seleccionar a un hub y realizado 1600*nodos iteraciones y con 10 semillas
cambiarlo por otro que sea nodo. De esta forma, la diferentes para el generador de aleatorios. La
relación exploración/explotación del vecindario solución inicial se ha obtenido como resultado de
queda satisfecha. Para que sea más eficiente, se ha una BA
especificado el número de vecinos que puede
generar, oscilando dicho valor entre 2*p y n/2*p. Se 5. Enfriamiento Simulado
preserva así la búsqueda de una solución en tiempo
razonable y con coste computacional controlado. El algoritmo de Enfriamiento Simulado
(ES) es un método de búsqueda por entornos
caracterizado por un criterio de aceptación de
soluciones vecinas que se adapta a lo largo de su
ejecución.
El problema principal de los algoritmos de
búsqueda local utilizados en problemas de
3. optimización reside en que a partir de una solución Fin
inicial que se va modificando y sustituyendo por Fin
soluciones mejores, se llega a una solución óptima
local no necesariamente global. Una manera de En la fase de experimentación se ha
evitar esto es permitir que algunos movimientos se realizado este algoritmo con 80*n iteraciones, el
realicen hacia soluciones peores. Pero por si la número de soluciones vecinas L(T) = 20, μ = Ф =
búsqueda está yendo realmente hacia una buena 0,3 con 10 semillas diferentes. En la generación de
solución estos movimientos de “escape” deben vecinos se han utilizado el mismo esquema de
realizarse de un modo controlado [3]. generación de vecinos que el los algoritmos ya
presentados pero en dos versiones que alteran la
Se hace uso de la llamada variable probabilidad de convertir a hub o cambiar de hub
Temperatura, T, cuyo valor determina en qué entre 0.4 y 0.6 para la primera versión y 0.6 y 0.4
medida pueden aceptarse nuevas soluciones vecinas para la segunda. La solución inicial parte de una
L(T) peores que la actual. Esta Temperatura se solución generada por BA.
inicializa aun valor alto:
6. Búsqueda Tabú
T0 = μ / -log(Φ) * C(S0)
donde C(S0) es el costo de la solución inicial y La Búsqueda Tabú (BT) es un
Φ[0,1] es la probabilidad de aceptar una solución un procedimiento heurístico de memoria adaptativa
μ por 1 peor que la inicial. que explora el espacio de soluciones a través de
repetidos movimientos desde una solución a la
Esta temperatura va decreciendo mejor de sus vecinas tratando de evitar los óptimos
gradualmente a medida que avanza el algoritmo. locales. BT realiza una búsqueda por entornos en la
Esta probabilidad de aceptación depende de la cual se desplaza en cada iteración a la mejor
diferencia de coste en la solución actual y la vecina solución no tabú del vecindario de la solución
y la temperatura T. actual. Los principales atributos de cada solución
visitada son almacenados en una lista tabú por un
P = e (-/T) determinado número de iteraciones para evitar que
estas soluciones sean re-visitadas, evitando ciclos en
A mayor temperatura, mayor probabilidad la búsqueda por entornos. Así, un elemento del
de aceptación. Una vez finalizada la generación de vecindario de la solución actual es declarado tabú
soluciones vecinas, se decrementa la temperatura (prohibido) si alguno de sus atributos está en la lista
siguiendo un modelo, como puede ser Cauchy: tabú.
Tk = T0 / (1+k) Para escapar de los óptimos locales, se ha
implementado un conjunto de técnicas de
donde k la iteraron actual. reinicialización basadas en probabilidades. Estas
técnicas retornan una solución a partir de la cual el
Normalmente el criterio de parada será un algoritmo puede volver a ser lanzado. En esta
número de iteraciones dadas, aunque también puede implementación se ha optado por tres: aleatoria, que
utilizarse un nivel de temperatura, sólo que este genera una nueva solución partiendo de la resultante
último caso resulta complejo de manejar. de una BA; mejor solución encontrada, que genera
la nueva solución igualándola con la mejor
Procedure ES encontrada durante todo el proceso del algoritmo; y
T = T0 memoria a largo plazo. Para este último caso, se va
Sact = S0 almacenando el número de veces que un nodo ha
sido utilizado como hub, freci. Posteriormente, se
Mientras it < iteraciones aplica una fórmula y se ordenan en función del
Para c=1 Hasta L(T) Hacer coste de aplicar dicha fórmula a cada nodo
Scand = generarSolucion(S act) eligiéndose p hubs en orden decreciente.
Si coste(S cand < Sact) ó criterioAceptación(S cand)
Sact = Scand
Fin
Fin
T = ↓T
Incrementar it
4. S0[c] = nodoMenorCosteA(hubs)
Fin
Devolver S0
Fin
8. Experimentación
Procedure BT
Sact = So Se ha realizado una batería de pruebas
Svecino = So sobre un ordenador portátil HP Compaq Presario
Mientras it < iteraciones V5000, procesador Dual Core a 1.66GHz, 1GB de
Para c=1 Hasta vecinosAGenerar Hacer memoria RAM, sistema operativo Windows XP SP2
Scand = generarSolucion(S act) bajo una implementación en Java JDK 1.6 y estos
Si (¬esTabu ó (esTabú ^ pruebaAspiración)) son los resultados obtenidos:
Si coste(Scand < Svecino)
Svecino = Scand
ActualizarMLP(Sact)
Fin
Fin
Fin
Sact = Svecino
ActualizarListaTabu()
Si Procede → Reinicialización()
Incrementar it
Fin
Fin
Para este algoritmo, la estrategia de
selección de vecinos se ha basado en evaluar a 40
vecinos generados de la misma forma que en el
resto de implementaciones asignando los
porcentajes para la estrategia de cambio de hub y
conversión de hub al 50% cada una. La estrategia
de reinicialización se he ejecutado cada 8*n
iteraciones de las 40*n totales que se han ejecutado.
Para la reinicialización aleatoria y mejor solución
encontrada, se les ha dado una probabilidad de 0.25
mientras que el 0.5 restante se ha otorgado a la
estrategia de memoria de largo plazo. También se
ha repetido su ejecución con 10 semillas diferentes
7. Algoritmo de comparación Greedy
Este algoritmo Greedy (GR) se basa en la
heurística de seleccionar como hubs a los nodos con
el flujo de unidades más alto y asignarlos a los
nodos cuyo coste sea menor.
Procedure GR
S0 = vacio
lista = CalcularFlujoNodos()
ordenarMayorAMenor(lista)
hubs = coger los “p” primeros
S0 = MarcarComoHubs(hubs)
Para c=1 Hasta nunNodos Hacer
5. Búsqueda Aleatoria
Búsqueda Local
Enfriamiento Simulado
Búsqueda Tabú
Coste
CAB-25-4 AP-40-3 AP-50-5
Comparativa todos los algoritmos e instancias (media
geo.)
Anexo I. Comparativa de resultados de manera
global
8. Conclusiones
Llegado este punto se hace necesario notar
que las conclusiones aquí expuestas se basan en sólo
tres instancias de poca complejidad del problema
del “p-hub”. No deben tomarse como referencia en
ningún caso puesto que no conforma una batería de
pruebas de media o extensa magnitud.
Se observa que existen dos partes bien
diferenciadas, la primera referente a los algoritmos
que no usan las soluciones que van creando y la
segunda que sí los usa. Por tanto, este hecho
demuestra que aquellos algoritmos que construyen
nuevas soluciones a partir de las que descubren
obtienen mejores soluciones.
Todos ellos marcan una fuerte robustez
puesto que sus medias no difieren en demasía
indicando que los valores medios obtenidos en las
ejecuciones no dependen de la semilla que se use
para la inicialización de los objetos aleatorios
empleados. Es en sus desviaciones típicas donde
podemos ver que no suponen un más de un 30-35%
de la diferencia que existe entre la mejor y peor
solución obtenidas. Consecuentemente, la media es
un valor que se podría dar como resultado para estos
algoritmos.
Respecto al algoritmo GR, la heurística
empleado no ha sido una mala elección ya que la
diferencia entre sus resultados y los del resto no
Tablas de resultados parciales difiere mucho, incluso en problemas de mayo
tamaño como es el caso del AP (50,5). Es por tanto
6. una buena heurística para tomar como solución 9. Referencias
inicial en el resto de algoritmos.
[1] David Agra Martínez, “Localización de centros de
También cabe notar que en el algoritmo de intercambio modal y plataformas logísticas”, Julio
búsqueda local no se aprecia ninguna diferencia en 2008
la utilización de 2*p ó 20*p vecinos para la [2] M.E. O'Kelly (1987). “A cuadratic integer program
generación de nuevas soluciones. Este hecho puede for
deberse a que en problemas de complejidad baja, la the location of interacting hub facilities”. European
aleatoriedad funciona lo suficientemente bien como Journal of Operational Research., 32(3):393-404.
[3] N. Metropolis, A. Rosenbluth, M. Rosenbluth, A.
para que no se haga necesario iterar sobre
Teller, and E. Teller. Equation of state calculations
soluciones a priori malas. by
fast computing machines. Journal of Chemical
Physics,
21:1087–1092, 1953
[4] Glover, Fred, "Tabu Search : A Tutorial", Interfaces,
Vol 20, No. 4, pp. 74-94, July-August 1990.
Anexo I
Comparativa de resultados globales
La siguiente tabla recoge los datos obtenidos en la fase de experimentación de manera global, para
que al lector le sea más fácil tener una visión general de los resultados
Para el algoritmo de BL se ha decidido coger de ente las tres pruebas realizadas, para estudiar cómo
afecta el número de vecinos generados a la solución final, aquella cuya desviación típica es más próxima a 0,
de esta forma, se apuesta por un algoritmo cuya media es representativa y elimina la relación que tiene con
respecto a la semilla elegida. En este caso ha sido más robusto el que selecciona a 20*p vecinos.
Respecto al de ES, se ha decidido seguir el mismo criterio de selección que en el anterior, resultando
elegido el que se realiza con las probabilidades 0.4 - 0.6. No obstante, cabe resaltar que este algoritmo en su
otra variante, presenta uno rango de diferencias entre la mejor y peor solución menor que la variante
seleccionada. Esto hecho es indicativo de la propia naturaleza del algoritmo. Si la se decide por priorizar al
intercambio de un hub por otro es lógico que el algoritmo explore más una solución que en otro caso, las
soluciones obtenidas varían más una a otras haciendo que se peguen saltos grandes por el dominio del
problema, encontrándose así soluciones muy buenas y soluciones muy malas.