+ All Categories
Home > Documents > METAHEURISTICAS Ideas, Mitos, Soluciones

METAHEURISTICAS Ideas, Mitos, Soluciones

Date post: 25-Jan-2016
Category:
Upload: heba
View: 60 times
Download: 0 times
Share this document with a friend
Description:
METAHEURISTICAS Ideas, Mitos, Soluciones. OPTIMIZACION COMBINATORIA. Qué es un problema de optimización combinatoria?. Cómo se modela matemáticamente un problema de optimización combinatoria?. Minimizar (o maximizar) f(x) - PowerPoint PPT Presentation
Popular Tags:
36
METAHEURISTICAS Ideas, Mitos, Soluciones
Transcript

METAHEURISTICASIdeas, Mitos, Soluciones

OPTIMIZACION COMBINATORIA

Qué es un problema de optimización combinatoria?

Cómo se modela matemáticamente un problema de optimización combinatoria?

Minimizar (o maximizar) f(x)

sujeto a g (xi) bi i=1.........m1

h (xi) = ci i= m1 +1,....... M

xi Z

• función objetivo

• variables de decisión

• restricciones

(No siempre se puede modelar exactamente así un problema de optimización combinatoria)

Ejemplos de problemas de optimización combinatoria:

• Problema de la suma de subconjuntos

• Determinación de caminos mínimos en grafos

• Flujo en redes

• Asignación de tareas

• Problema de la mochila

• Problemas de ruteo de vehículos. El problema del Viajante de comercio

• Diseño de redes de comunicaciones

• Ruteo en redes de comunicaciones

• VLSI

• Planificación de tareas • Asignación de recursos y horarios en instituciones educativas• Minimizaron de desperdicios en el corte de materiales• Localización de plantas• Planificación financiera• Problemas de energía• Biología Computacional (secuenciamiento de ADN, árboles

filogenéticos, doblamiento de proteínas)• etc.

Cómo se resuelve un problema de optimización combinatoria?

• Enumeración completa o “algoritmo de fuerza bruta”. Sirve?

COMPLEJIDAD COMPUTACIONAL

Qué hacer?

• SOLUCIONES EXACTAS

• HEURISTICAS

HEURISTICAS

• Heurísticas clásicas

• Metaheurísticas o heurísticas “modernas” o sistemas inteligentes

Cuándo usarlas?

• Problemas para los cuales no se conocen “buenos” algoritmos exactos

• Problemas difíciles de modelar

Porqué usarlas?

• Adaptabilidad a modificaciones de los datos o del problema una vez que ya se obtuvo un resultado.

• Fáciles de implementar y programar• Basadas en tener una gran capacidad de cálculo• No sólo para problemas de optimización

combinatoria

Cómo se evalúan?

• problemas test

• problemas reales

• problemas generados al azar

• cotas inferiores

ESQUEMA GENERAL DE UN ALGORITMO DE DESCENSO (O BUSQUEDA LOCAL)

S= conjunto de solucionesN(s) =soluciones “vecinas” de la solución s----------------------------------------------------------------Elegir una solución inicial s0 SRepetir Elegir s N(s0) tal que f(s) < f(s0) Reemplazar s0 por sHasta que f(s) > f(s0) para todos los s N(s0)----------------------------------------------------------------

Cómo determinar las soluciones vecinas de una solución s dada?

Qué se obtiene con este procedimiento? Sirve?

Optimos locales y globales

Espacio de búsqueda

Ejemplo:

Supongamos que tenemos el problema de asignar tareas a un sola máquina de modo a minimizar el tiempo total de ejecución.

Cada trabajo j tiene un tiempo de procesamiento p j y una fecha de entrega d j. El objetivo es entonces minimizar

T = j max {(C j – dj),0}

donde C j es el momento en que se completa el trabajo j.

Como elegir las soluciones iniciales. A priori se puede tomar cualquier permutación de las tareas.

Determinación de los vecinos de una solución dada: en este caso podemos tomar los que se obtengan de la solución actual cambiando la posición de un trabajo con otro.

En un problema con 4 trabajos por ejemplo los vecinos de (1,2,3,4) serán:

N(s) = {(1,3,2,4),(3,2,1,4),(1,2,4,3), (1,4,3,2),(2,1,3,4),(4,2,3,1)}

TECNICAS METAHEURISTICAS

• Simulated annealing (primeros trabajos 1953, 1983)• Algoritmos Tabú Search (primeras aplicaciones a optimización

combinatoria en 1986, basado en algunas ideas de los 70)• Algoritmos genéticos y evolutivos (primeras ideas en los 60, en ese

momento mayormente aplicaciones a problemas de IA). Algoritmos meméticos, BRKGA (1994, 2007)

• Scatter search and path relinking (1998) • GRASP (1989)• ISL• Colonia de hormigas (1992)• Redes neuronales (primeras ideas en los 60, resurgieron en los 80)• otras..

• Híbridos

• Origen, motivación, exceso de nomenclatura, similitudes ¨forzadas¨ con problemas de la física y la biología por ejemplo, etc.

• Se usan en otros problemas, que no son de optimización combinatoria también.

TABU SEARCH

CONCEPTOS BASICOS:

• Permitir elegir una solución vecina que no sea estrictamente mejor que la actual para “salir” de un mínimo local.

• Usar una lista Tabú de soluciones (o movimientos) para evitar que el algoritmo cicle.

• Usar una función de aspiración que permita en algunos casos elegir un elemento o movimiento Tabú.

ESQUEMA GENERAL DE TABU SEARCH

InicializaciónElegir una solución inicial s en SNiter:=0bestiter:=0bestsol:= sT:=Inicializar la función de aspiración AMientras ( f(s) > f(s*) y (niter- bestiter < nbmax) hacer niter := niter + 1generar un conjunto V* de soluciones sv en N(s) que no sean Tabu o tales que A(f(s)) f(sv)elegir una solución s* que minimice f en V*actualizar la función de aspiración A y la lista Tabú Tsi f(s*) < f(bestsol) entonces bestsol:= s* bestiter := niter s:=s* -------------------------------------------------------------------------

Qué hay que hacer para usar este esquema?:

• Determinar el conjunto de soluciones factibles S.• Determinar la función objetivo f.• Dar un procedimiento para generar los elementos de N(s),

“vecinos de s”. • Decidir el tamaño del conjunto V* N(s) que será

considerado en cada iteración• Definir el tamaño de la lista Tabú T.• De ser posible definir una cota inferior para la función objetivo

f.• Definir la función de Aspiración A(z) para todos los valores z

que puede tomar la función objetivo.• Definir criterios de parada (nbmax y/o comparación con la cota

inferior si la hay)

Ejemplo: seguimos con el ejemplo anterior de asignar tareas a un sola máquina de modo a minimizar el tiempo total de ejecución.

Como construir el conjunto de soluciones posibles V* ?

En este caso, si, cuando la solución actual es (1,2,3,4) la lista Tabu, proveniente de los pasos anteriores del algoritmo es

T= {(1,3,2,4),(3,1,2,4)(3,2,1,4)}

Entonces V* tiene solo cuatro elementos(1,2,4,3), (1,4,3,2),(2,1,3,4),(4,2,3,1)}

Posibles reglas Tabu a usar en este caso:• impedir todos los movimientos donde i ocupa la posición p(i) y j

ocupa la posición p(j)• impedir los movimientos donde alguna de las situaciones arriba

suceda• impedir que el trabajo i vuelva a una posición k con k < p(i)• impedir que el trabajo i cambie de posición• impedir que i y j cambien de posición

Como elegir el tiempo de permanencia en la lista Tabu:• valor fijo ( a ser ajustado en la experimentación)• valor aleatorio entre un tmin y tmax dados a priori.• valor variable de acuerdo al tamaño de la lista y las variaciones

del valor de la función objetivo.

Ejemplos de criterios de aspiración:

• cuando todos los movimientos o vecinos posibles son Tabu, se elige alguno de ellos (“el menos tabu”)

• cuando con un movimiento tabu se obtiene una solución mejor que la mejor hasta ese momento (global o en la región)

MAS DETALLES de Tabu search......

Uso de la memoria “a largo plazo”, en contraposición con la que se usa para manejar N(s), “a corto plazo”:

• Frecuencia : guardar información sobre atributos en una misma posición, movimientos que se repiten, datos sobre el valor de la solución cuando un atributo esta en una posición dada, etc.

• Lista de soluciones “elite”• Intensificación• Diversificación• Camino de soluciones entre dos soluciones prometedoras.• Etc.

GRASP

(Feo, T.,Resende, M.,”Greedy randomized adaptive search procedures”, Journal of Global Optimization, 1995, pp 1,27)

Esquema de un algoritmo GRASP------------------------------------------------------------------------Mientras no se verifique el criterio de parada

ConstruirGreedyRandomizedSolución ( Solución) Búsqueda Local (Solución) ActualizarSolución (Solución, MejorSolución)

End-------------------------------------------------------------------------

• Algoritmo ConstruirGreedyRandomizedSolución (Solución)

En vez de usar un algoritmo goloso que elija el elemento más prometedor para agregar a la solución, en cada iteración se elige al azar entre los que cumplen que no pasan de un porcentaje del valor del mejor elemento.

Se puede limitar el tamaño de la lista de estos elementos.

• Algoritmo Búsqueda Local (Solución)

Definición de intercambios

EJEMPLOS

1. Cubrimiento de conjuntos

Dados n conjuntos P1, P2,………..Pn

sea I = i Pi y J ={1,2,….n}

Un subconjunto J* de J es un cubrimiento si

iJ* Pi = I

El problema de recubrimiento mínimo (set covering problem) consiste en determinar un cubrimiento de I de cardinal mínimo ( o sea con la mínima cantidad de conjuntos Pi)

Ejemplo:

P1 = { 1,2 }, P2 = { 1,3 }, P3 = { 2 }, P4 = { 3 }

Los cubrimientos mínimos tienen cardinal 2 y son:

{P1 P2,} ó

{P1 P4,} ó

{P2 P3,}

Primer paso:ConstruirGreedyRandomizedSolución ( Solución)Un algoritmo goloso podría ser agregar al cubrimiento el

conjunto que cubre la mayor cantidad de elementos de I sin cubrir.

En este caso para el algoritmo GreedyRandomized consideramos como conjuntos candidatos a los que cubren al menos un porcentaje del número cubierto por el conjunto determinado por el algoritmo goloso.

También se puede limitar el tamño de la lista de candidatos a tener a lo sumo elementos.

Dentro de esta lista de conjuntos se elige uno al azar.

Segundo paso:

Búsqueda Local (Solución)

Para el algoritmo de descenso se definen los vecinos usando el siguiente procedimiento de intercambios:

Un k,p-intercambio, con p < q, consiste en cambiar si es posible k-uplas del cubrimiento por p-uplas que no pertenezcan al mismo.

Ejemplo: cambiar la 2-upla P2 = { 1,3 } con la 1-upla P4 =

{ 3 }

Ejemplo:

P1 = { 3,4 } , P2 = { 3 } , P3 = { 2 },

P4 = { 2,3,4 } , P5 = { 3,4,5 }, P6 = { 1,4,5 }, P7 = { 2,3 },

P8 = { 4 }Tomamos = 40%

En la primer iteración la lista es {P1, P4, P5 ,P6 , P7}. Supongamos que sale elegido al azar P5..

Para el segundo paso la lista es {P3, P4,P6 , P7}. Si resultara elegido P3 tendríamos el cubrimiento {P3, P5 ,P6 } que no es óptimo y podriamos pasar al algoritmo de búsqueda local.

Si en primer lugar hubiera resultado elegido P6. y después hubiera salido P4.hubieramos obtenido la solución óptima {P4,P6 }.

Resultados presentados en el trabajo de Feo y Resende:

Testearon el algoritmo en problemas no muy grandes pero díficiles que aparecían en la literatura.

• Se lograron resolver problemas pequeños pero que aún no habían sido resueltos. Se hicieron 10 corridas para cada ejemplo con ß = 0.5,0.6,0.7,0.8,0.9.

• Se usaron solo 1,0 intercambios o sea sólo se eliminaron columnas superfluas.

Los ejemplos siguientes de GRASP los veremos más adelante después de ver los conceptos correspondientes de grafos.

2. Máximo conjunto independiente

i) en este caso la medida para decidir que nodo agregar al conjunto independiente puede ser el grado. Se puede hacer un algoritmo goloso que en cada iteración agregue el nodo de menor grado.

ii) En este caso el intercambio se hace de la siguiente forma:Si tenemos un conjunto independiente S de tamaño p, para cada k-

upla de nodos en ese conjunto hacemos una búsqueda exhaustiva para encontrar el máximo conjunto independiente en el grafo inducido por los nodos de G que no son

adyacentes a los nodos de S” = S \ {v1.....vk}. Si el conjunto N resultante es de cardinal mayor que S entonces S U N es un conjunto independiente mayor que S.

RESULTADOS

• Se testeó el algoritmo en grafos generados al azar de 1000 nodos (con ciertas condiciones). Se usó un máximo de 100 iteraciones y ß = 0.1.

• Se hizo un preprocesamiento para facilitar el trabajo de GRASP, que se corre en grafos más chicos que los originales.

3. Job Scheduling

Problema: Un conjunto de tareas debe ser ejecutada en un único procesador. Hay tiempos no simétricos de transición entre tareas.

Base del algoritmo: se construye un camino hamiltoniano en forma golosa. Se usa un procedimiento de intercambio de nodos para la búsqueda local.

4. A GRASP for graph planarization, (Resende, Ribeiro, 1995).

Problema: Encontrar un subconjunto F de los ejes de G tal que el grafo G\F sea planar.

Base: un algoritmo GRASP como primer paso de una heurística conocida que antes usaba un algoritmo goloso + heuristica de conjunto independiente + extension del subgrafo planar.

Tabu Search y GRASP se dan como ejemplo de técnicas metaheurísticas. Dar una idea de todas ellas y de sus numerosísimas aplicaciones abarca un curso completo o más. A continuación mencionamos dos referencias recientes de entra las muchas que dan un panorama completo sobre metaheurísticas:

• Gendreau, M., Potvin, J. »Handbook of Metaheuristics “, Springer, 2010.

• Talbi, E.G. "Metaheuristics: from design to implementation", Wiley, 2009


Recommended