SlideShare una empresa de Scribd logo
1 de 6
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:
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
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
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
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
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.

Más contenido relacionado

Similar a Implementaciones PHub ABH

Implementaciones PHub ABH Búsquedas No Constructivas
Implementaciones PHub ABH Búsquedas No ConstructivasImplementaciones PHub ABH Búsquedas No Constructivas
Implementaciones PHub ABH Búsquedas No Constructivasedmodi
 
PROGRAMACION LINEAL "METODO SIMPLEX"
PROGRAMACION LINEAL "METODO SIMPLEX"PROGRAMACION LINEAL "METODO SIMPLEX"
PROGRAMACION LINEAL "METODO SIMPLEX"ALEGRE_ALI
 
PROGRAMACION LINEAL METODO SIMPLEX
PROGRAMACION LINEAL METODO SIMPLEXPROGRAMACION LINEAL METODO SIMPLEX
PROGRAMACION LINEAL METODO SIMPLEXALEGRE_ALI
 
SOLUCION DE ECUACIONES NO LINEALES
SOLUCION DE ECUACIONES NO LINEALESSOLUCION DE ECUACIONES NO LINEALES
SOLUCION DE ECUACIONES NO LINEALESJagg602
 
Optimizacion Univariada
Optimizacion UnivariadaOptimizacion Univariada
Optimizacion Univariadamuanjaba
 
Exposicion de meodos numericos - UNIVERSIDAD DE LOS ANGELES COMALCALCO
Exposicion de meodos numericos - UNIVERSIDAD DE LOS ANGELES COMALCALCOExposicion de meodos numericos - UNIVERSIDAD DE LOS ANGELES COMALCALCO
Exposicion de meodos numericos - UNIVERSIDAD DE LOS ANGELES COMALCALCOEden Cano
 
8. Raices de ecuaciones no lineales (Una variable).pptx
8. Raices de ecuaciones no lineales (Una variable).pptx8. Raices de ecuaciones no lineales (Una variable).pptx
8. Raices de ecuaciones no lineales (Una variable).pptxWalbertoCantilloAcua
 
White y Box-Cox.pptx
White y Box-Cox.pptxWhite y Box-Cox.pptx
White y Box-Cox.pptxPedroFalcn
 
Laura rodríguez
Laura rodríguezLaura rodríguez
Laura rodríguezLauramrb12
 
Diapositivas argenis leon osf
Diapositivas argenis leon osfDiapositivas argenis leon osf
Diapositivas argenis leon osfArgenis Leon
 
Diapositivas argenis leon osf
Diapositivas argenis leon osfDiapositivas argenis leon osf
Diapositivas argenis leon osfArgenis Leon
 
Ecuaciones no lineales jose valor_21362644
Ecuaciones no lineales jose valor_21362644Ecuaciones no lineales jose valor_21362644
Ecuaciones no lineales jose valor_21362644Nheyi Valor
 
Implementacion Genetico AEB
Implementacion Genetico AEBImplementacion Genetico AEB
Implementacion Genetico AEBedmodi
 

Similar a Implementaciones PHub ABH (20)

Implementaciones PHub ABH Búsquedas No Constructivas
Implementaciones PHub ABH Búsquedas No ConstructivasImplementaciones PHub ABH Búsquedas No Constructivas
Implementaciones PHub ABH Búsquedas No Constructivas
 
PROGRAMACION LINEAL "METODO SIMPLEX"
PROGRAMACION LINEAL "METODO SIMPLEX"PROGRAMACION LINEAL "METODO SIMPLEX"
PROGRAMACION LINEAL "METODO SIMPLEX"
 
PROGRAMACION LINEAL METODO SIMPLEX
PROGRAMACION LINEAL METODO SIMPLEXPROGRAMACION LINEAL METODO SIMPLEX
PROGRAMACION LINEAL METODO SIMPLEX
 
Unidad3 metodo simplex
Unidad3 metodo simplexUnidad3 metodo simplex
Unidad3 metodo simplex
 
SOLUCION DE ECUACIONES NO LINEALES
SOLUCION DE ECUACIONES NO LINEALESSOLUCION DE ECUACIONES NO LINEALES
SOLUCION DE ECUACIONES NO LINEALES
 
Optimizacion Univariada
Optimizacion UnivariadaOptimizacion Univariada
Optimizacion Univariada
 
Unidad 1. Programación entera
Unidad 1. Programación enteraUnidad 1. Programación entera
Unidad 1. Programación entera
 
Unidad 1. Programación entera
Unidad 1. Programación enteraUnidad 1. Programación entera
Unidad 1. Programación entera
 
Exposicion de meodos numericos - UNIVERSIDAD DE LOS ANGELES COMALCALCO
Exposicion de meodos numericos - UNIVERSIDAD DE LOS ANGELES COMALCALCOExposicion de meodos numericos - UNIVERSIDAD DE LOS ANGELES COMALCALCO
Exposicion de meodos numericos - UNIVERSIDAD DE LOS ANGELES COMALCALCO
 
8. Raices de ecuaciones no lineales (Una variable).pptx
8. Raices de ecuaciones no lineales (Una variable).pptx8. Raices de ecuaciones no lineales (Una variable).pptx
8. Raices de ecuaciones no lineales (Una variable).pptx
 
White y Box-Cox.pptx
White y Box-Cox.pptxWhite y Box-Cox.pptx
White y Box-Cox.pptx
 
Problemas mn
Problemas mnProblemas mn
Problemas mn
 
Laura rodríguez
Laura rodríguezLaura rodríguez
Laura rodríguez
 
Diapositivas argenis leon osf
Diapositivas argenis leon osfDiapositivas argenis leon osf
Diapositivas argenis leon osf
 
Diapositivas argenis leon osf
Diapositivas argenis leon osfDiapositivas argenis leon osf
Diapositivas argenis leon osf
 
Argenis leon sl
Argenis leon slArgenis leon sl
Argenis leon sl
 
Ecuaciones no lineales jose valor_21362644
Ecuaciones no lineales jose valor_21362644Ecuaciones no lineales jose valor_21362644
Ecuaciones no lineales jose valor_21362644
 
Implementacion Genetico AEB
Implementacion Genetico AEBImplementacion Genetico AEB
Implementacion Genetico AEB
 
Cap5 lec2
Cap5 lec2Cap5 lec2
Cap5 lec2
 
Problemas
ProblemasProblemas
Problemas
 

Último

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 

Último (10)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
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.