La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

METAHEURISTICAS Ideas, Mitos, Soluciones

Presentaciones similares


Presentación del tema: "METAHEURISTICAS Ideas, Mitos, Soluciones"— Transcripción de la presentación:

1 METAHEURISTICAS Ideas, Mitos, Soluciones

2 OPTIMIZACION COMBINATORIA
Qué es un problema de optimización combinatoria?

3 Cómo se modela matemáticamente un problema de optimización combinatoria?
Minimizar (o maximizar) f(x) sujeto a g (xi)  bi i= 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)

4 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

5 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.

6 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

7 Metaheurísticas o heurísticas “modernas” o sistemas inteligentes
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

8 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

9 problemas generados al azar cotas inferiores
Cómo se evalúan? problemas test problemas reales problemas generados al azar cotas inferiores

10 ESQUEMA GENERAL DE UN ALGORITMO DE DESCENSO (O BUSQUEDA LOCAL)
S= conjunto de soluciones N(s) =soluciones “vecinas” de la solución s Elegir una solución inicial s0 S Repetir Elegir s  N(s0) tal que f(s) < f(s0) Reemplazar s0 por s Hasta que f(s) > f(s0) para todos los s  N(s0)

11 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

12 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.

13 Como elegir las soluciones iniciales
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)}

14 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, mayormente aplicaciones a problemas de IA). GRASP (1989) Colonia de hormigas (1992) Redes neuronales (primeras ideas en los 60, resurgieron en los 80) otras.. Híbridos

15 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.

16 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ú.

17 ESQUEMA GENERAL DE TABU SEARCH
Inicialización Elegir una solución inicial s en S Niter:=0 bestiter:=0 bestsol:= s T:= Inicializar la función de aspiración A Mientras ( f(s) > f(s*) y (niter- bestiter < nbmax) hacer niter := niter + 1 generar 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ú T si f(s*) < f(bestsol) entonces bestsol:= s* bestiter := niter s:=s*

18 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)

19 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)}

20 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.

21 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)

22 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.

23 Problemas de horarios en instituciones educativas
(“Tabú Search for large scale timetabling problems”, Hertz,A.,European Journal of Operations Research, 54, 1991.) Se tratan en este trabajo dos problemas relacionados con los horarios de los cursos y con asignar alumnos a los mismos cumpliendo una serie de restricciones. Nos referiremos en particular al problema de establecer los horarios. En este caso una de las mayores dificultades está en establecer que es lo que se va considerar la región factible, o sea el conjunto de soluciones S. El problema consiste en asignar un horario de comienzo a todas las clases x que se deben dictar. Dada la cantidad de restricciones planteadas se eligen algunas para definir un horario factible y las demás se tratan con penalidades en la función objetivo.

24 Un horario se dice factible si solo pueden ocurrir los siguientes conflictos:
cursos dictados en forma simultánea tienen el mismo profesor. idem algunos alumnos en común. Los alumnos o los profesores no tienen suficiente tiempo para ir de un edificio a otro. Para cada turno x de una materia se define como a(x) los posibles horarios en los que puede ser dictado y como p(x) los momentos t a los cuales puede ser movido el curso x manteniendo la factibilidad.

25 La función objetivo queda
f(u,v) =  (p4 d(x,y) + o(x,y) e(x,y) )+  b(x,y) (p5 d(x,y) + p6e(x,y)) donde para un par de turnos de clase x, y d(x,y) es el número de profesores en común e(x,y) es el número de alumnos en común o(x,y) depende del número de cursos opcionales entre x e y (puede ser 0,1 o 2) b(x,y) =1 si los cursos se dictan en lugares distantes y 0 sino. l(x) = duración del curso x Ut es el conjunto de cursos dictados en el periodo t Asignacion U = (U1……………….Uk)

26 Problema de localización de plantas
N talleres de una fabrica tiene que ser ubicados en N posibles ubicaciones. Se conocen las distancias aij entre los lugares y el flujo de circulación de partes entre cada taller. Se desea minimizar el total de las distancias recorridas por las partes. Función objetivo: F ( S ) =   aij bsisj Movimientos: cambiar de posición dos plantas. Facil de calcular el cambio de la función objetivo. Permite explorar todos los vecinos. Tamaño de N(S) O(n**2) Lista Tabu Pares. Movimientos que mandan a p y q a lugares donde ya estuvieron en las últimas t iteraciones. Se pueden considerar también en la lista Tabu las posiciones donde estuvieron esos elementos. Tamaño variable. Puede ser al azar.

27 Criterios de aspiración:
El movimiento deja de ser Tabu si mejora la mejor solución hasta el momento. Penalidad de un movimiento: se calcula la frecuencia fm con que un movimiento se realiza se pone pm = si m cumple con el criterio de aspiración w fm sino y se usa como valor del movimiento f (x + m ) – f(x) + pm

28 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

29 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

30 EJEMPLOS 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 iJ* 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)

31 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,}

32 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.

33 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 }

34 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 }.

35 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.

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

37 2. Máximo conjunto independiente
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.

38 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.

39 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.

40 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.

41 Los temas que figuran a continuación en esta presentación sobre metaheurísticas no serán dados en la teóricas de Algoritmos III y quedan como material opcional para quien le interese ver más sobre los mismos.

42 SIMULATING ANNEALING Ideas básicas:
Metropolis, A., Rosenbluth,M., Rosenbluth,A., Teller, A., Teller,E., “ Equation of state calculation by fast computing machines”, J. of Chemistry Physics, 1953 Algoritmo para simular el proceso de enfriamiento de un material en un baño de calor (annealing). Si un material sólido se calienta por encima de su punto de fundición y después se enfría hasta quedar en estado sólido, las propiedades de este sólido dependen de la velocidad de enfriamiento. 30 años más tarde: Kirkpatrick,S., Gellat,C., Vecchi,M., “Optimization by simulating annealing”, Science, 1983. Proponen mejorar el algoritmo básico de (descenso o búsqueda local), permitiendo movimientos donde el valor de la función empeora con una frecuencia gobernada por una función de probabilidad que cambia a lo largo del algoritmo, inspirada en el trabajo de Metropolis et all.

43 Las leyes de la termodinámica dicen que a temperatura t la probabilidad de un crecimiento de la energía de magnitud E está dada por p (E) = exp ( -E/ kt) (1) donde k es la constante de Boltzman. Metropolis et all. generan una perturbación y calculan el cambio de energía. Si la energía decrece el sistema se mueve al nuevo estado. Si crece el nuevo estado es aceptado con probabilidad (1). El procedimiento se repite para un número predeterminado de iteraciones para cada temperatura, después de lo cual la temperatura se disminuye hasta que el sistema se congela en estado sólido. Kirkpatrick et all., y Cerny (1985) propusieron en forma independiente usar este algoritmo en problemas de optimización combinatoria haciendo un paralelo entre el proceso de enfriamiento y los elementos de este tipo de problemas

44 Si hacemos la siguiente correspondencia:
estado del sistema Solución factible Energía Costo cambio de estado Solución vecina Temperatura Parámetro de control estado de congelamiento Solución heurística

45 Con esto cualquier algoritmo de búsqueda local puede convertirse en un algoritmo “annealing” tomando al azar un cierto numero de vecinos y permitiendo que elija una solución peor de acuerdo a la ecuación (1) Cómo es la función de energía para la mayor parte de los materiales?. Cómo es la función objetivo en problemas de optimización?.

46 ESQUEMA GENERAL DE UN ALGORITMO SIMULATING ANNEALING
Elegir una solución inicial s0 Elegir una temperatura inicial t0 > 0 Elegir una función de reducción de temperatura  (t) Repetir mientras no se verifique la condición de parada Repetir hasta icount = nrep (t) Elegir al azar s  N(s0 )  = f(s) - f(s0 ) Si  < 0 entonces s := s0 Sino Generar x al azar en (0,1) Si x < exp (- / t) entonces s := s0 Fin Poner t =  (t)

47 Qué hay que hacer para usar este esquema en la práctica?
Definir conjunto de soluciones Definir función de costo Definir vecinos “Elegir” parámetros: temperatura, nrep,  “Elegir” criterio de parada

48 Más Detalles La temperatura inicial debe ser suficientemente “alta” como para permitir un intercambio casi libre de las soluciones vecinas. La forma de reducir la temperatura es vital para el éxito de la heurística. Hay que determinar: número de repeticiones en cada temperatura. forma de reducción de la temperatura Muchas iteraciones por temperatura para pocos valores de temperatura o al revés. Por ejemplo:  (t) = a t con a < 1 Se acostumbra usar 0.8 < a < 0.99 nrep puede crecer geométricamente o aritméticamente en cada temperatura. En algunos casos se usa la historia para determinar nrep Otra propuesta:  (t) = t/ (1 + b t ) con b chico En la práctica

49 Criterios de parada: teóricos en la práctica.....nro. de iteraciones sucesivas sin mejora Elección del espacio de soluciones y definición de vecinos: muy importante. Factibilidad Penalidades en la función objetivo Evitar funciones “chatas”

50 Problema del viajante de comercio
Espacio de soluciones: permutaciones de (1,2,……………..n) Solución inicial al azar Movimientos: k intercambios, se usa k=2. Tamaño del espacio: ( n-1)!/2 # de vecinos de una solución dada: n(n-1)/2 Todas las soluciones son alcanzables entre si Es fácil generar vecinos al azar y actualizar el costo Con estas definiciones se puede usar el esquema básico

51 Coloreo de grafos Grafo G = (V, X) Se puede plantear el problema como particionar el conjunto de vértices en K conjuntos. Una solución sería entonces s = (V1,V2…………, Vk ) El objetivo es entonces minimizar k. Qué pasa si se intentan usar intercambios para pasar de una solución factible a otra?. Componentes bicolores. Complicado

52 Ideas: Cambiar la definición de solución factible. Poner como solución factible una partición cualquiera de V, aunque no defina un coloreo factible. Entonces los vecinos son los que se obtienen a partir de s cambiando un nodo de un conjunto Vi a otro. Agregar a la función objetivo una función de penalidad que cuente cuantos ejes hay dentro de cada subconjunto o sea f (s) = k +  | Ei | donde Ei es el conjunto de ejes entre nodos del conjunto Vi No es una buena función objetivo…………..

53 Problemas de horarios en instituciones educativas
Cada institución tiene sus propias reglas. Muchas restricciones y objetivos. Consideremos acá el problema de programar un conjunto dado de exámenes en un numero fijo de franjas horarias, de modo que ningún estudiante tenga que dar dos exámenes a la vez, y que haya aulas del tamaño necesario para los mismos. Puede haber muchas otras restricciones. Consideremos el ejemplo presentado por Dowsland,K., 1996

54 Restricciones: 3000 alumnos, 24 franjas horarias disponibles ningún alumno puede dar dos exámenes al mismo tiempo. algunos pares de exámenes pueden ser programados en el mismo horario. algunos pares de exámenes NO pueden ser programados en el mismo horario. algunos grupos de exámenes tienen que ser programados en un cierto orden. algunos exámenes tienen que ser programados dentro de determinadas ventanas de tiempo. no puede haber mas de 1200 alumnos dando examen al mismo tiempo.

55 Objetivos secundarios:
Minimizar el numero de exámenes de mas de 100 alumnos después de el periodo 10. minimizar la cantidad de alumnos que tienen que dar dos exámenes en periodos consecutivos. Difícil encontrar una solución factible. Primer paso: decidir cuales serán las soluciones factibles y cuales restricciones se incorporaran a la función objetivo como penalidades. El problema básico de horarios se puede modelar como un problema de coloreo de grafos. La solución propuesta se basa en algoritmos Simulating Annealing para ese problema. Espacio de soluciones: asignación de exámenes a las 24 franjas que verifiquen las restricciones de orden. Vecinos: cambiar una franja horaria para un examen.

56 Costo: w1 c1 + w2 c2 + w3 c3 + w4 c4 + w5 c5 + w6 c6 donde c1 es el número de conflictos de los estudiantes c2 es el número de exámenes que colisionan por otras razones c3 es el número de violaciones de ventanas de tiempo c4 es el número de violaciones de la capacidad de las aulas c5 es el número de exámenes que no verifican la segunda restricción secundaria c6 es el número de exámenes de mas de 100 alumnos fuera del periodo preferido. w1,w2,w3,w4,w5,w6 pesos

57 RESULTADOS: Mucho experimentos con enfriamiento muy lento. Pesos altos para las restricciones mas importantes, permitieron que cuando quedaban satisfechas no volvieran a ser violadas. Basada en las observaciones de estos primeros experimentos, se intento un procedimiento en 2 etapas. La función objetivo para la primera fase fue: f1= w1 c1 + w2 c2 + w3 (c3 + c6) + w4 c4 Este primer problema se resolvió con relativa facilidad poniendo todos los pesos en 1y usando una tasa de enfriamiento de 0.99 cada 1000 iteraciones. Se obtuvieron entonces soluciones con costo 0. La fase 2 partió de esta solución final y trabajo en un espacio de soluciones en las cuales todas las soluciones con f1 > 0 habían sido eliminadas. La función objetivo fue f2 = c5 Fue necesario usar un esquema de enfriamiento muy lento para obtener buenos resultados. Se uso una temperatura inicial de 20, reduciéndola a 0.99 t cada 5000 iteraciones.

58 Problemas de Ruteo de Vehículos
Chiang, W,Russell, R.,“Simulating annealing metaheuritics for the vehicle routing problem with time windows”, Annals of Operations Research 63 (1996) Ruteo de vehículos con ventanas de tiempo qi , carga o demanda del cliente i si, tiempo de servicion del cliente i ei, hora más temprana en que puede iniciarse el servicio en i li, última hora en que puede iniciarse el servicio en i tij, tiempo de viaje entre i y j dij, distancia entre i y j Qv, capacidad del vehículo v bi, momento en que se empieza el servicio en i bij, momento en que puede empezar a servirse al cliente j suponiendo que el cliente j va después del i en una ruta. bij= max { ej,bi+si+tij} wj, tiempo de espera si el vehículo llega a j antes de ej. wj = ej – (bi+si+tij)

59 Estimación inicial de la cantidad de vehículos requeridos
Rutas iniciales Reglas para tratar de mantener la factibilidad de las ventanas de tiempo durante la construcción. La inserción de un cliente en una ruta se determina usando el crecimiento de la longitud de la ruta y del tiempo de recorrido.

60 Algoritmo Simulating annealing:
Soluciones factibles: conjunto de rutas que verifican las ventanas de tiempo {R1,…….Rv} donde Rp es el conjunto de clientes visitados por el vehículo p Vecinos: se obtienen cambiando un cliente de una ruta a otra o intercambiando 2 clientes. (Se consideraron 2 opciones). Función de Costo C(S) = b1 R + b2 T + b3 D con b1 >> b2> b3 donde R es el total de vehículos usados D la distancia total recorrida T el tiempo total de recorrer todas las rutas

61 Parámetros del algoritmo:
Temperatura inicial T0 Probabilidad inicial P0 = 0.05 Cambio de la temperatura (t)=0.95 t Nrep proporcional a del tamaño del vecindario (0.95%) Criterio de parada

62 ALGORITMOS GENETICOS Primeras ideas Holland ( 1975) (hay algún trabajo anterior) Basados en los principios de evolución y herencia. Modelar o simular fenómenos naturales, evolución de las especies, procesos de selección natural, mutación, etc. Vocabulario de la genética: individuos, cromosomas, etc. Programas o algoritmos evolutivos

63 Estructura general de un algoritmo evolutivo
Empezar t := 0 inicializar P(t) evaluar P(t) Mientras no se cumpla la condició de parada hacer t:= t + 1 construir P (t) a partir de P( t-1) modificar P(t) evaluar P (t) Fin

64 P(t) = {x1, x2, x3........xn} población de la generación t
Los xk son los individuos de esa población. Cada uno representa una solución del problema que se está tratando. Se evalúa cada individuo usando una función apropiada para medirlo. Para formar la población de la siguiente generación se eligen los mejores, se realiza el cruzamiento y eventualmente se realiza una mutación. Después de un numero de generaciones se espera que el mejor individuo represente una buena solución (casi óptima).

65 Qué hace falta para construir un algoritmo genético para un problema particular?
representación “genética” de las soluciones forma de generar la población inicial función de evaluación operadores genéticos que alteren la composición de los hijos. determinación de parámetros (tamaño de la población, probabilidad de aplicar operadores genéticos, etc.)

66 Minimización de una función
max f(x) = x sen (10 x) + 1 s.a –1 < x < 2 Se puede resolver analíticamente

67 Representación: Cromosoma: vector binario de longitud relacionada con la precisión requerida (en este caso queremos 6 decimales) [-1,2] tiene que dividirse en intervalos (22 bits) = 2**21 < < 2**22 = Para convertir un string binario en un número real: pasar (b b0) de base 2 a base 10 y obtener x’ x = -1 + x’ * (3/ 2**22 –1) Población inicial Se construye una población de vectores de binarios de 22 bits. Evaluación La función de evaluación es la función f

68 Operadores genéticos Mutación Se altera uno o mas genes con una probabilidad igual a la tasa de mutación predeterminada Por ejemplo si el 5to gen de v3 = ( ) es elegido para mutación el nuevo cromosoma queda v3”= ( ) En cambio si se eligiera el 10mo gen quedaría v3” = ( )

69 Cruzamiento Supongamos que tienen que cruzarse v2 y v3 y que el punto de cruzamiento queda en el 5to gen. Entonces si v2 = ( ) v3 =( ) los nuevos cromosomas son v2”= ( ) v3” = ( )

70 Parámetros Tamaño de la población Probabilidad de cruzamiento Probabilidad de mutación

71 Resultados Después de 150 generaciones: vmax = (111. ) = 1
Resultados Después de 150 generaciones: vmax = ( ) = f(vmax) = 2.85 # de Generación Función de evaluación 1 6 8 9 10 12 39 40 51 99 137 145

72 Más detalles: Población inicial al azar de tamaño al azar
Se calcula eval (vi) para cada cromosoma vi de la solución. Valor de la población: F=  eval (vi) Probabilidad de selección de vi pi = eval(vi) / F Probabilidad de selección: qi =  pj Proceso de selección: Hacer pop veces: Generar un número al azar r en el intervalo (0,1) Si r < q1 elegir v1 sino elegir i tal que qi-1 < r < qi (algunos cromosomas pueden ser elegidos más de una vez)

73 Crossover: Dada la probabilidad dada de crossover pc (parámetro) se toman pc * pop cromosomas para participar del cruzamiento. Para cada cromosoma de la nueva población: generar r al azar en (0,1) si r < pc elegir el cromosoma para cruzamiento Aparear los cromosomas elegidos. Para cada par determinar al azar pos (b1,b2.....bpos,bpos+1, bm) (c1,c2.....cpos,cpos+1, cm) se reemplazan por (b1,b2.....bpos,cpos+1, cm) (c1,c2.....cpos,bpos+1, bm)

74 Mutación: Dada la probabilidad de mutación pm se cambian pm * m * pop bits. Para cada cromosoma y para cada bit generar r al azar entre 0 y 1. Si r < pm cambiar el bit.

75 El problema del viajante de comercio
Representación: Conviene usar vector binario en este caso?. Haría falta un vector binario de [log2 n] bits para cada ciudad, n [log2 n] en total. Que pasaría con el crossover y la mutación?. Algoritmos de reparación Es mejor usar una representación entera. Usamos un vector (i1,i2,......in) para representar un tour. Inicialización: Se pueden usar heurísticas constructivas empezando de distintas ciudades o generar los tours al azar.

76 Crossover: Hay muchas posibilidades, por ejemplo: Padres : (1,2,3,4,5,6,7,8,9,10,11,12) (7,3,1,11,4,12,5,2,10,9,6,8) Se toma por ejemplo el segmento (4,5,6,7) y queda el descendiente (1,11,12,4,5,6,7,2,10,9,8,3) De la misma forma se construye el otro hijo. Se puede hacer mutación acá?.Cámo?

77 Ventajas y desventajas de los Algoritmos Genéticos
Inicialmente GA se usaba para problemas típicos de Inteligencia Artificial (reconocimiento de patrones, machine learning, etc.) Aplicaciones exitosas a problemas de Optimización Problema: como hacer la representación. Ventajas

78 COLONIA DE HORMIGAS (primeras ideas Dorigo , Colorni, Maniezzo, 1991)
Inspiración en modelo biológico: comportamiento de una colonia de hormigas (Argentine ants) en un experimento de laboratorio donde tenían que llegar a la comida por uno de dos puentes de distinta longitud. Después de unos minutos la mayoría de las hormigas eligen siempre el más corto. Las hormigas dejan una huella de pheromona cada vez que recorren un camino. Cada vez que una hormiga llega a una intersección elige para seguir la rama por donde hay más pheromona. A partir de allí surgen las ideas básicas: buscar en forma paralela a lo largo de  huellas o caminos guardar traza de los caminos prometedores Cada hormiga va construyendo paso a paso una solución del problema a resolver.

79 Características principales de un algoritmo de colonia de hormigas para problemas de optimización combinatoria: Para cada problema particular tenemos que definir: Un conjunto finito de componentes C = {c1, c2 ... cn} Un conjunto finito L de posibles conexiones o transiciones entre los elementos de C Para cada lij  L un costo de conexión Jij Un conjunto de restricciones sobre los elementos de C y L Los estados del problema se definen como sucesiones de elementos de C, s =( ci1, ci cik). Estados factibles o soluciones. Una estructura de vecinos Un costo asociado a cada solución ij valor heurístico asociado a un eje conteniendo información a priori sobre el problema.

80 El problema se representa por un grafo G = ( C, L)
El problema se representa por un grafo G = ( C, L). las soluciones se pueden pensar como caminos factibles en G. Objetivos y más detalles: Obtener una solución intercambiando información entre las hormigas, mejor que la que cada una construye individualmente. Cada hormiga usa información propia o del nodo que esta visitando o de la conexión que que está recorriendo.

81 Las hormigas se comunican entre ellas en forma indirecta a través de la información que proveen las huellas de pheromona. Las hormigas no tienen un comportamiento adaptativo individual. Cada hormiga busca una solución de mínimo costo. Cada hormiga tiene una memoria que puede usar para almacenar información del camino que esta recorriendo. la memoria se puede usar para construir una solución factible, para evaluar la solución actual y para reconstruir el camino hacia atrás. Una hormiga en estado sr puede moverse a cualquier nodo de su vecindario N. Se mueve en función de una regla probabilística de decisión. Cuando la hormiga se mueve del nodo i al nodo j se puede actualizar el valor de la huella de pheromona ij. O sino cuando termina de construir la solución recorre el camino hacia atrás y actualiza entonces ij . Cuando terminan su trabajo de construir la solución y actualizar la pheromona, la hormiga “muere”.

82 Evaporación de la pheromona: Se disminuye la intensidad de la pheromona a lo largo de las iteraciones para evitar una convergencia muy rápida a un óptimo local.

83 Esquema general de un algoritmo de colonia de hormigas:
ij valor que indica la atracción a priori del movimiento (i,j) pk ij = (ij + (1 - ) ij )/ ((ij + (1 - ) ij )) donde la sumatoria del denominador es sobre los movimientos posibles para la hormiga k. 0   < 1,  parámetros definidos por el usuario.

84 Esquema: Inicialización Construcción Para k=1,m hacer hasta que k termine: Repetir - Calcular ij para todo (i,j) - Elegir el próximo movimiento con probabilidad pk ij - Agregar el movimiento a la lista Tabú de la hormiga k. 3. Actualización de la huella Para cada movimiento (i,j) calcular ij y actualizar la matriz de trazas. ij =  ij + ij 4. Si se verifica condición de parada parar, sino repetir.

85 Problema del Viajante de Comercio
Tabla de ruteo de la hormiga: A = [aij] donde aij = [ij (t)] [ij ]/ ( lNi [ij (t) ] [ij ] Probabilidad con la que la hormiga k que esta en la ciudad i en la iteración t elige la ciudad j Nik : pijk (t) = aij (t) / (lNik ail (t)) donde Nik  Ni es el conjunto de vecinos del nodo i para la hormiga k (o sea las ciudades que k todavía no visitó). Papel de los parámetros  y  . Qué pasa si  = 0 o  = 0?.

86 ij (t) ----------- ij (t) + k (t)
Después que todas las hormigas completaron su tour, cada una de ellas deposita una cantidad de pheromona igual a k (t) = 1 / Jk (t) en cada eje lij usado donde Jk (t) es la longitud del tour hecho por la hormiga k en la interación t. o sea ij (t)  ij (t) + k (t) para todo lij que haya sido usado por alguna hormiga. Evaporación de pheromona: ij (t)  (1- ) ij (t)

87 Más ejemplos de aplicaciones de técnicas metaheurísticas…………..

88 OTRAS METAHEURISTICAS
GRASP Scatter Search Noisy methods

89 Comentarios y Conclusiones
Cuándo usar metaheuristicas?. Problemas difíciles (NP-hard) Problemas difíciles de modelar Problemas reales donde se quiere tener una “buena” solución urgentemente. Ventajas Relativamente fáciles de programar, transportables. Modificación del problema de los datos,flexibilidad, interacción con el usuario. Paralelización

90 Qué metaheurística elegir?.
Cuál es mejor?. Cómo comparar?. Cómo saber si los resultados son buenos?.

91 Falta “teoría” Nomenclatura PROGRAMACION Híbridos Relación con: Heurísticas tradicionales Métodos exactos (cotas, branch and cut,generación de columnas, etc.)

92 Estadísticas del MIC”99 Tabú Search : 23 Local Search: 10 GRASP: 12
Simulating annealing: 6 Algoritmos genéticos y evolutivos: 17 Scatter Search: 2 Redes neuronales: 2 Colonia de hormigas: 2 Exactos + metaheuristicas : 2 Generalidades: 6 Varios: 11

93 BIBLIOGRAFIA De que tratan los libros de metaheuristicas?. De que tratan los papers?: “nuevas ideas” para las metaheuristicas tradicionales. nuevas metaheurísticas aplicaciones a una enorme cantidad de problemas REVISTAS: Journal of Heuristics, Kluwer Revistas de Operations Research, Sistemas Inteligentes, Inteligencia artificial, etc.

94 LIBROS y ANALES Aarts,E.,Korst,J.,”Simulated Annealing and Boltzmann machines”, Wiley, 1989. Aarts,E. Lenstra,J.K., “ Local Search in Combinatorial Optimization” Bonabeau, E.,Dorigo, M.,Theraulaz,G.,”swarm Intelligence”,Oxford University Press, 1999. Corne,D., Dorigo,M.,Glover, F., “New ideas in Optimization”, McGrawHill, 1999. Davis,L.(ed),”Handbook of genetic algorithms”, Reinhold,1991. Dorigo,M.,Stutzle,T.,”Ant Colony Optimization”, MIT Press 2004. Glover,F., Laguna,M., “Tabu Search”, Kluwer Academic Pub., 1997. Glover, F., Laguna, M., Taillard, E., de Werra, D. (eds), “Tabu Search”, Annals of Operations Research, Vol. 41, 1993. Goldberg, D.,” Genetic algorithms in Search, Optimization and Machine learning”, Addison-Wesley,1989. Hertz,J., Krog,A., Palmer,R., “Introduction to the theory of neural computacion”, Addison_Wesley, 1991.

95 Laporte, G., Osman,I.H., “Metaheuristics in Combinatorial
Optimization”, Annals of Operations Research, Vol 63, Michalewicz, Z.,”Genetic algorithms + Data Structures = Evolutionary programs”, 1996. Mitchell,M.,”An introduction to genetic algorithms (complex adaptive systems)”, 1996. Osman,I.,Kelly,J.,(eds) “Metaheuristics: theory and applications”, Kluwer Academic pub., 1996. Pham,D.,Karaboga,D.” Intelligent Optimization Techniques: Genetic Algorithms, Tabu Search, Simulated Annealing, and Neural Networks”, Springer Verlag, 1998. Rayward- Smith, Osman, Reeves, Smith,” Modern heuristics search methods”, 1996. Reeves, C. (ed), “Modern heuristics techniques for combinatorial Problems”, Blackwell,1993 Van Laarhoven,P.,Aarts,E.”Simulated Annealing:theory and applications”, Kluwer,1988 Voss, Martello, Osman, Rocairol, “Metaheuristics”, Kluwer, 1999.

96 Heurísticas vrs Métodos Exactos?
CONCLUSIONES Cuándo usar técnicas metaheurísticas? Cuál elegir? Cómo hacer para decidir si es buena? Heurísticas vrs Métodos Exactos?


Descargar ppt "METAHEURISTICAS Ideas, Mitos, Soluciones"

Presentaciones similares


Anuncios Google