METAHEURISTICAS Ideas, Mitos, Soluciones - PowerPoint PPT Presentation

1 / 177
About This Presentation
Title:

METAHEURISTICAS Ideas, Mitos, Soluciones

Description:

... Smith, Osman, Reeves, Smith,' Modern heuristics search methods', 1996. Reeves, C. (ed), 'Modern heuristics techniques for combinatorial Problems', Blackwell,1993 ... – PowerPoint PPT presentation

Number of Views:742
Avg rating:3.0/5.0
Slides: 178
Provided by: ire563
Category:

less

Transcript and Presenter's Notes

Title: METAHEURISTICAS Ideas, Mitos, Soluciones


1
METAHEURISTICASIdeas, Mitos, Soluciones
  • Irene Loiseau
  • 1er Cuatrimestre 2009

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

3
  • 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

4
  • 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.

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

6
Cómo se modela como problema de programación
lineal entera un problema de optimización
combinatoria?
  • Problema de la mochila
  • Problema de asignación
  • Problema de flujo máximo
  • Problema del viajante de comercio.

7
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

8
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

9
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

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

11
Problema del viajante de comercio (TSP)
  • Dado un grafo G con longitudes asignadas a los
    ejes queremos determinar un circuito hamiltoniano
    de longitud mínima.
  • No se conocen algoritmos polinomiales para
    resolver el problema del viajante de comercio.
  • Tampoco se conocen algoritmos ?- aproximados
    polinomiales para el TSP general (si se conocen
    cuando las distancias sean euclideanas)
  • Es el problema de optimización combinatoria más
    estudiado.

12
Algunas heurísticas y algoritmos aproximados para
el TSP
  • Heurística del vecino más próximo
  • --------------------------------------------------
    ----------------------
  • Empezar
  • Elegir un nodo v cualquiera de G
  • Poner l(v) 0
  • Inicializar i 0
  • Mientras haya nodos sin marcar hacer
  • poner i i 1
  • elegir el eje (v,w) más
    barato tal que w no esté marcado.
  • poner l(w) i
  • poner v w
  • Fin
  • --------------------------------------------------
    -------------------------------------
  • Cuál es la complejidad de este algoritmo?.

13
  • Heurísticas de inserción
  • --------------------------------------------------
    -----------------------
  • Empezar
  • Construir un circuito de longitud 3.
  • Marcar los nodos del circuito
  • Mientras haya nodos sin marcar hacer
  • ELEGIR un nodo v sin marcar
  • INSERTAR v en el circuito
  • Fin
  • --------------------------------------------------
    ---------------------
  • Cómo ELEGIR?. Cómo INSERTAR?.... variantes de la
    heurística de inserción.

14
  • Para INSERTAR el nodo v elegido
  • si ci j es el costo o la longitud de un eje
    (i,j), elegimos dos nodos i, i1 que ya están en
    el circuito y son consecutivos en el mismo y tal
    que
  • ci v cv i1 c i i1
  • sea mínimo. Insertamos v entre i e i1.

15
  • Podemos ELEGIR el nuevo nodo v para agregar al
    circuito tal que
  • v sea el nodo más próximo a un nodo que ya está
    en el circuito.
  • v sea el nodo más lejano a un nodo que ya está en
    el circuito.
  • v sea el nodo más barato, o sea el que hace
    crecer menos la longitud del circuito.
  • v se elige al azar.
  • En los dos primeros casos y en el cuarto la
    complejidad del algoritmo es O(n2), en el tercero
    es O(n2 log n)

16
  • En el caso de grafos euclideanos (por ejemplo
    grafos en el plano R2), se puede implementar un
    algoritmo de inserción
  • usando la cápsula convexa de los nodos como
    circuito inicial
  • insertando en cada paso un nodo v tal que el
    ángulo formado por los ejes (w,v) y (v,z), con w
    y z en el circuito ya construido, sea máximo.
  • Hay muchas variantes sobre estas ideas.

17
  • Heurística del árbol generador
  • --------------------------------------------------
    -------------
  • Encontrar un árbol generador mínimo T de G
  • Duplicar los ejes de T
  • Armar un circuito euleriano E con los ejes de T y
    sus duplicados
  • Recorrer E usando DFS y armar un circuito
    hamiltoniano G
  • --------------------------------------------------
    ------------------------
  • Cuál es la complejidad de este algoritmo?

18
  • Teorema Si las distancias del grafo cumplen la
    desigualdad triangular la heurística del árbol
    generador tiene una perfomance en el peor caso
    dada por
  • xH (i)/ x (i)
    2
  • O sea si las distancias son euclideanas hay
    algoritmos polinomiales para el problema del TSP
    aproximado.

19
  • Perfomance de las otras heurísticas en el peor
    caso
  • Si las distancias en G son euclideanas se puede
    probar que valen las siguientes cotas para la
    perfomance en el peor caso
  • Vecino más próximo xh (i)/ x (i) ½
    (?log n? 1)
  • Inserción del más próximo xh (i)/ x (i) 2
  • Inserción del más lejano xh (i)/ x (i) 2
    log n 0.16
  • Inserción del más barato xh (i)/ x (i)
    2

20
  • Heurísticas de mejoramiento
  • Cómo podemos mejorar la solución obtenida por
    alguna heurística constructiva como las
    anteriores?
  • Heurística 2-opt de Lin y Kernighan
  • --------------------------------------------------
    ------------------------
  • Obtener una solución inicial H (o sea un circuito
    hamiltoniano H), por ejemplo con alguna de las
    heurísticas anteriores.
  • Mientras sea posible hacer
  • . Elegir dos ejes de G tal que al
    sacarlos de H y reemplazarlos por los dos
    necesarios para reconstruir un nuevo circuito
    hamiltoniano H obtengamos un H de longitud
    menor a la de H.
  • . H H
  • . Fin
  • --------------------------------------------------
    --------------------------------------
  • Cuándo para este algoritmo?. Se obtiene la
    solución óptima del TSP de este modo?
  • Algoritmo de búsqueda local

21
  • En vez de elegir para sacar de H un par de ejes
    que nos lleve a obtener un circuito de menor
    longitud podemos elegir el par que nos hace
    obtener el menor H entre todos los pares
    posibles.(más trabajo computacional)
  • Esta idea se extiende en las heurísticas k-opt
    donde se hacen intercambios para cualquier k. O
    sea en vez de sacar dos ejes, sacamos k ejes de H
    y vemos cual es la mejor forma de reconstruir el
    circuito. En la práctica se usa sólo 2-opt o 3
    opt.
  • Estas mismas ideas se pueden usar para construir
    un algoritmo Tabu Search para el TSP definiendo
    los vecinos de una solución usando 2- opt o 3
    opt. .

22
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) lt f(s0)
  • Reemplazar s0 por s
  • Hasta que f(s) gt f(s0) para todos los s ? N(s0)
  • --------------------------------------------------
    --------------

23
  • 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

24
Problema de asignación de tareas
  • 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.

25
  • 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)

26
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

27
  • 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.

28
  • 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.

29
  • 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.
  • Haupt,R.,Haupt,S.,Practical genetic
    algorithms,Wiley,1998.
  • Hertz,J., Krog,A., Palmer,R., Introduction to
    the theory of neural computacion,
    Addison_Wesley, 1991.

30
  • Holland,J. Adaptation in netural and artificial
    systems,MIT Press, 1975.
  • Laporte, G., Osman,I.H., Metaheuristics in
    Combinatorial
  • Optimization, Annals of Operations Research,
    Vol 63, 1996.
  • 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
    Annealingtheory and applications, Kluwer,1988
  • Voss, Martello, Osman, Rocairol,
    Metaheuristics, Kluwer, 1999.

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

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

33
Si hacemos la siguiente correspondencia
34
  • 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?.

35
ESQUEMA GENERAL DE UN ALGORITMO SIMULATING
ANNEALING
  • --------------------------------------------------
    -----------------------
  • Elegir una solución inicial s0
  • Elegir una temperatura inicial t0 gt 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 ? lt 0
  • entonces s
    s0
  • Sino
  • Generar x
    al azar en (0,1)
  • Si x
    lt exp (-? / t) entonces s s0
  • Fin
  • Poner t ? (t)
  • Fin
  • --------------------------------------------------
    ----------------

36
  • 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

37
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 lt 1
  • Se acostumbra usar 0.8 lt a lt 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...............

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

39
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

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

41
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

42
  • 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.

43
  • 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.

44
  • 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

45
  • 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 gt 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.

46
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,bisitij
  • wj, tiempo de espera si el vehículo llega a j
    antes de ej.
  • wj ej (bisitij)

47
  • 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.

48
  • 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 gtgt b2gt b3
  • donde
  • R es el total de vehículos usados
  • D la distancia total recorrida
  • T el tiempo total de recorrer todas las rutas

49
  • 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

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

51
ESQUEMA GENERAL DE TABU SEARCH
Inicialización Elegir una solución inicial s en
S Niter0 bestiter0 bestsol
s T? Inicializar la función de aspiración
A Mientras ( f(s) gt f(s) y (niter- bestiter lt
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) lt f(bestsol) entonces
bestsol s bestiter niter
ss -----------------------------
--------------------------------------------
52
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)

53
Volviendo al ejemplo anterior
  • 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)

54
  • 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 lt 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.

55
  • 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)

56
  • Ejercicio
  • Pensar cómo implementaría un algoritmo tipo Tabu
    search para el siguiente problema
  • Encontrar el árbol de mínimo peso de con k ejes
    (MWKT) en un grafo G (V,X) con pesos en los
    ejes.

57
Problema del viajante de comercio
  • Espacio de soluciones
  • permutaciones de (1,2,..n)
  • Solución inicial al azar
  • Movimientos
  • k intercambios, se usa k2.
  • 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

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

59
Coloreo de grafos
  • (Using Tabu Search Techniques for graph
    coloring, Hertz, de Werra, Computing 39,
    345-351, 1987)
  • El problema de coloreo de grafos consiste en
    determinar cual es el mínimo número de colores
    con los cuales se pueden colorear los nodos de un
    grafo sin que dos nodos adyacentes tengan el
    mismo color.
  • Características del algoritmo Tabú Search
    implementado
  • G (V,X) grafo
  • Soluciones factibles
  • s (V1,V2,.Vk)
  • (cada solución es una partición de V)
  • Se arma una solución inicial al azar
  • Función objetivo
  • f(s) ? ( E (Vi) ,
    i 1.k)
  • Vecinos cambiar un nodo de un conjunto Vi a
    otro.
  • Lista Tabú
  • (x,i), x ? Vi por varias
    iteraciones
  • Función de aspiración
  • Inicial A(z) z 1

60
  • 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.

61
  • 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.

62
  • 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)

63
  • 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(n2)
  • 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.

64
  • 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 0 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

65
Problema de ruteo de vehículos
  • (A Tabu Search heuristic for the vehicle routing
    problem, Gendreau, Hertz, Laporte, Management
    Science, Vol 40, nro 10, 1994)
  • El problema básico de ruteo de vehículos consiste
    en determinar que recorrido tienen que hacer un
    número de vehículos dado para visitar un cierto
    número de lugares prefijados y volver al lugar de
    origen con un costo o tiempo mínimo. El conocido
    problema del Viajante de Comercio es un caso
    particular del mismo.
  • Importancia de este tipo de problemas.

66
  • En este caso particular, las características del
    problema tratado fueron
  • a) todas las rutas empiezan y terminan en el
    depósito v0
  • b) cada ciudad (salvo el depósito) es visitada
    exactamente una vez por uno y solo un vehículo.
  • c) en cada ciudad hay una demanda qi (q0 0)
  • d) la demanda total de una ruta no puede superar
    la capacidad de los vehículos Q.
  • e) en cada ciudad hay que considerar un tiempo de
    servicio ti (t0 0 ).
  • f) la longitud total de una ruta (tiempo de
    recorrido mas tiempo de servicio) no puede
    superar un valor máximo L

67
Algoritmo Tabu Search propuesto
  • Soluciones Una solución S es un conjunto de m
    rutas R1,.....Rm donde cada vértice vi, salvo el
    deposito, pertenece a una única ruta.
  • (las soluciones entonces no consideran las
    restricciones d y f).
  • Función objetivo
  • F1 (S) ? ? cij
  • donde cij es el tiempo para ir de la ciudad i a
    la ciudad j
  • F2 (S) F1 (S) p1 ? max 0, (?qi) Q
  • p2 ? max 0, ? cij ? ti) L

68
  • Vecinos
  • Una ciudad se inserta en otra ruta solo si en
    ella está alguno de sus k vecinos mas próximos, o
    en una ruta vacía si hace falta crear una nueva
    ruta. Para obtener la nueva solución se
    reoptimiza esa nueva ruta.
  • Lista Tabu
  • Se prohibe a una ciudad volver a una cierta
    ruta por un cierto número de iteraciones.
  • Tamaño variable, y dependiente de variables
    aleatorias.

69
  • Función de aspiración
  • Un movimiento de la lista Tabu se acepta si la
    solución que produce es factible y mejora el
    valor de F1 o es no factible y mejora el valor de
    F2.
  • Ajuste de los parámetros de penalidad
  • Los parámetros p1 y p2 se revisan cada h
    iteraciones. Si las pasadas h iteraciones
    produjeron soluciones que cumplen la restricción
    d p1 se divide por 2, sino se multiplica por 2.
    Lo mismo para p2.

70
  • Criterio de parada
  • Si los valores de la función no cambiaron después
    de Nmax iteraciones.
  • Soluciones iniciales
  • Si las ciudades se representan en coordenadas
    en el plano, se ordenan según el ángulo que
    forman con el deposito. Se arma una solución para
    el TSP para estas ciudades, y después se parte
    en m rutas, donde m es el número máximo de
    vehículos disponibles.
  • Estrategias de intensificación y diversificación

71
  • RESULTADOS
  • Se testearon con 14 problemas de literatura, de
    entre 50 y 199 ciudades y se compararon los
    resultados con otras 12 heuristicas clasicas o
    implementaciones de simulating annealing y Tabu
    Search.

72
Problema de supervivencia de redes de
comunicaciones
  • Solución para problemas de supervivencia de
    redes de comunicaciones. Una estrategia con
    búsqueda Tabú, Gustavo Vulcano, Tesis de
    Licenciatura, Depto. de Computación, Facultad de
    Ciencias Exactas y Naturales, UBA, 1997)
  • El problema consiste en diseñar una red de
    comunicaciones de costo mínimo que cumpla ciertas
    condiciones de seguridad en el caso en que haya
    una falla en alguno de sus componentes. Los
    requerimientos de seguridad pueden ser muchos. En
    el caso considerado aquí la red esta formada por
    dos tipos de centrales
  • Tipo 2, son los nodos troncales de la misma y por
    lo tanto la salida de servicio de una de ellas no
    debe impedir la comunicación entre cualquier otro
    par de centrales de tipo 2.
  • Tipo 1, Su rotura podría impedir la comunicación
    entre otros dos nodos.

73
  • Heurística Tabu implementada
  • Soluciones, espacio no-conexo.
  • Construcción de la solución inicial usando una
    heurística constructiva llamada
    greedy-ears-sparse
  • Para construir los vecinos se usan heurísticas
    de intercambio. Después de analizar varias se
    propone la 1-opt.
  • Lista Tabú
  • Función de Aspiración
  • Problemas en que fue testeado el algoritmo
  • Resultados

74
  • A tabu search algorithm for frecuency assignment
  • Castelino, Hurley, Sephens, Annals of Operations
    research,63,1996.
  • En que consiste el problema de asignación de
    frecuencias.
  • Modelado como problema de coloreo de grafos con
    restricciones.
  • En este caso se consideró el problema de asigna
    frecuencias de radio para comunicarse entre
    varios lugares, donde hay transmisores y
    receptores. Las frecuencias disponibles están
    separadas por 50 KHZ. No todos los canales se
    pueden asignar.
  • Se ponen restricciones para minimizar la
    interferencia.

75
  • Restricciones en el mismo sitio
  • Separación cada par de frecuencias en un mismo
    lugar tiene que estar separadas por una cantidad
    fija (500 kHZ o 10 canales). esto se escribe como
  • fi fj ? m
  • donde m es el número de canales de separación.
  • itermodulacion
  • 2 fi fj ? fk
  • 3fi 2fj ? fk
  • fi fj fk ? fl
  • 2fi fj 2 fk ? fl

76
  • Restricciones entre sitios lejanos
  • Restricción de distancia dos radios en sitios
    diferenctes no deben tener asignados la misma
    frecuencia, al menos que esten suficientemente
    lejos
  • fi fj ? 0
  • restricciones de canal
  • fi fj ? m
  • donde m es el número de canales de separación.
  • Este problema es NP-Hard

77
  • Tabu Search
  • Una asignación de frecuencias se representa por
    un vector
  • (fi .............fn )
  • Los vecinos difieren de la actual asignación en
    una sola frecuencia. Se representan por el
    movimiento que indica la posición y el valor.
  • Las soluciones se evaluan en función del número
    de interferencias.
  • detalles de implementación
  • Comparación con método de búsqueda local y con
    algoritmo genético.

78
  • Code design, Honkala, Ostergard, 1997
  • construcción de códigos para transmisión de la
    información.
  • Como hacer para corregir el ruido y reconstruir

79
  • El código
  • palabras (vectores) sobre un alfabeto de q
    símbolos
  • distancia de Hamming
  • longitud de una palabra
  • peso de una palabra
  • C q-ary code de longitud n.
  • distancia d(C)
  • esfera de Hamming
  • distancia mínima de código 2 e 1
  • e-error-correcting code

80
  • PROBLEMA
  • determinar
  • Aq (n,d) el cardinal máximo de un código de q
    símbolos con palabras de longitud n y distancia
    mínima al menos d.
  • Porqué se busca esto?
  • Varias metaheurísticas.

81
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
  • --------------------------------------------------
    -----------------------

82
  • 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

83
  • Qué tenemos que hacer para usar esta metodología
    para un problema particular?
  • 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 o sea los intercambios de
    la búsqueda local.
  • Decidir el tamaño del conjunto V ? N(s) que será
    considerado en cada iteración.
  • Determinar el parámetro ß
  • Definir criterios de parada.

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

85
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,

86
  • 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 tamaño de la lista de
    candidatos a tener a lo sumo ? elementos.
  • Dentro de esta lista de conjuntos se elige
    uno al azar.

87
  • 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 lt 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

88
  • 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 .

89
  • Resultados presentados en el trabajo de Feo y
    Resende
  • Testearon el algoritmo en problemas no muy
    grandes pero difíciles que aparecían en la
    literatura.
  • 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.
  • Usaron solo 1,0 intercambios o sea sólo se
    eliminaron columnas superfluas.

90
  • 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.
  • El intercambio se hizo 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.

91
  • 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.

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

93
  • 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.

94
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

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

96
  • 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).

97
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.)

98
  • Minimización de una función
  • max f(x) x sen (10 x) 1
  • s.a. 1 lt x
    lt 2
  • Se puede resolver analíticamente

99
  • 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 3000000 intervalos
  • (22 bits)
  • 2097152 221 lt 3000000 lt 222 4194304
  • Para convertir un string binario en un número
    real
  • pasar (b21...............b0) de base 2 a base 10
    y obtener x
  • x -1 x (3/ 222 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

100
  • 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 (1110100000111111000101)
  • es elegido para mutación el nuevo cromosoma queda
  • v3 (1110000000111111000101)
  • En cambio si se eligiera el 10mo gen quedaría
  • v3 (1110000001111111000101)

101
  • Cruzamiento
  • Supongamos que tienen que cruzarse v2 y v3 y que
    el punto de cruzamiento queda en el 5to gen.
  • Entonces si
  • v2 (0000001110000000010000)
  • v3 (1110000000111111000101)
  • los nuevos cromosomas son
  • v2 (0000000000111111000101)
  • v3 (1110001110000000010000)

102
  • Parámetros
  • Tamaño de la población 50
  • Probabilidad de cruzamiento 0.25
  • Probabilidad de mutación 0.01

103
ResultadosDespués de 150 generaciones vmax
(111........................) 1.850773
f(vmax) 2.85
104
Más detalles
  • Población inicial al azar de tamaño al azar
  • Se calcula eval (vi) para cada cromosoma vi de la
    población.
  • Valor de la población
  • F ?i eval (vi)
  • Probabilidad de selección de vi
  • pi eval(vi) / F
  • Probabilidad de selección
  • qi ?1j pj

105
  • Proceso de selección de la nueva población
  • Hacer pop veces
  • Generar un número al azar r en el intervalo (0,1)
  • Si r lt q1 elegir v1 sino elegir i tal que
  • qi-1 lt r lt qi
  • (algunos cromosomas pueden ser elegidos más de
    una vez)

106
  • Crossover (entre los individuos de la nueva
    población)
  • 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 lt pc elegir el cromosoma para cruzamiento

107
  • Aparear los cromosomas elegidos. Para cada par
    determinar al azar pos
  • (b1,b2.....bpos,bpos1,...........bm)
  • (c1,c2.....cpos,cpos1,............cm)
  • se reemplazan por
  • (b1,b2.....bpos,cpos1,...........cm)
  • (c1,c2.....cpos,bpos1,............bm)

108
  • 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 lt pm cambiar el bit.

109
El dilema del prisionero
  • Cuento dos prisioneros están en celdas
    separadas, imposibilitados de comunicarse y se
    les pide que traicionen al otro en forma
    independiente............
  • El dilema del prisionero puede jugarse como un
    juego de 2 jugadores, donde cada uno a su turno
    traiciona o coopera con el otro. El puntaje que
    cada uno saca esta dado por la siguiente tabla

110
  • Queremos diseñar un algoritmo que aprenda una
    estrategia para jugar al dilema del prisionero
  • Representación de la estrategia
  • Consideraremos estrategias determinísticas, que
    usen los resultados de las tres últimas jugadas
    para decidir la jugada actual.
  • Una estrategia se representa por un string de 64
    bits indicando que hacer después de cada una de
    las posibles historias, más 6 bits para iniciar
    el juego (total 70 bits).

111
  • Esquema del algoritmo
  • Elegir una población inicial a cada jugador se
    le asigna al azar un string.
  • Para determinar el score de cada jugador
    haciéndolo jugar con los otros. El score es el
    promedio de todos los juegos.
  • Un jugador con score promedio se le asigna un
    par, a uno por debajo del promedio ninguna, y a
    los que están por encima 2 parejas.
  • Los jugadores exitosos se aparean al azar para
    producir dos descendientes por pareja. La
    estrategia de cada descendiente se arma a partir
    de la estrategia de sus padres usando crossover y
    mutación.

112
  • Resultados experimentales
  • Partiendo de una población al azar se obtuvieron
    poblaciones donde el jugador medio era tan
    exitoso como el de las mejores heurísticas
    conocidas hasta el momento.
  • Se sacaron conclusiones acerca del
    comportamiento de los mejores jugadores
  • i) Continúe cooperando después de tres
    cooperaciones mutuas .... (ponga C después de
    recibir (CC)(CC)(CC))
  • ii)Provoque traicione después que el otro
    traiciona después de varias cooperaciones (ponga
    D después de recibir (CC)(CC)(CD))

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

114
  • 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?

115
  • Otra representación La ciudad i está en la
    posición j si el tour va de la ciudd I a la
    ciudad j.
  • Posible cruzamiento
  • Elegir al azar un eje del primer padre, después
    elegir el eje que sigue del segundo y así
    siguiendo. (Si elige un eje que genera subtour,
    se elige al azar uno que no genere subtour).
  • Ej padres
  • (2 3 8 7 9 1 4 5 6)
  • (7 5 1 6 9 2 8 4 3)
  • Hijo (2 5 8 7 9 1 6 4 3)

116
  • Otra posibilidad de cruzamiento.
  • Elegir una ciudad al azar y después el menor eje
    de ambos padres saliendo de esa ciudad. Si ese
    produce ciclo elegir el otro. Si ese también
    produce ciclo elegir otro dentro de un pool de q
    ejes elegidos al azar.

117
  • Otra representación
  • Si tenemos el tour
  • C (1 2 4 3 8 5 9 6 7)
  • se representa por (1 1 2 1 4 1 3 1 1)
  • (i representa la posición en la que está la
    ciudad que sigue en el orden en el tour que
    queda después que se fueron sacando las
    anteriores).

118
  • Acá se puede usar el cruzamiento clásico.
  • Padres
  • (1 1 2 1 4 1 3 1 1)
  • ( 5 1 5 5 5 3 3 2 1)
  • Hijos
  • (1 1 2 1 5 3 3 2 1)
  • (5 1 5 5 4 1 3 1 1)
  • corresponden a tours válidos
  • Ver que significa esto respecto de los circuitos
    representados por los padres y los hijos.

119
  • Representaciones matriciales
  • M matriz binaria donde mij 1 si la ciudad i
    está antes que la ciudad j en el circuito.
  • Características de estas matrices?.
  • Ideas de cruzamiento?

120
A family of genetic algorithms for the pallet
loading problem. Herbert, Dowsland, ANOR, 1996.
  • Pallet loading o Two dimensional packing
    problem.
  • Suponemos que el container y las piezas son
    rectangulares.
  • Las piezas se acomodan paralelas a los bordes

121
  • Qué consideran una solución?.
  • Cómo representarla?
  • Cómo hacer crossover y mutación?
  • Función objetivo
  • Cómo generar la primera población?
  • Reparación de soluciones

122
  • Porqué funcionan los algoritmos genéticos (con
    representación binaria)?.
  • Esquemas
  • ( x x 1 1 x x 0 0 1 1 x 1)
  • ( 1 1 0 1 1 x x 1 1 1 1 0)
  • Idea de porqué sobreviven los mejores esquemas.

123
  • Orden de un esquema
  • Longitud de un esquema
  • Teorema del esquema. (Schema Theorem)
  • Los esquemas cortos, de bajo orden de valor
    (fitness) por encima de la media van a ser
    revisados un número exponencialmente creciente de
    veces en las generaciones de un algoritmo
    genético.

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

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

126
  • A partir de allí surgen las ideas básicas que
    permiten construir soluciones a problemas de
    optimización
  • buscar en forma paralela a lo largo de ? huellas
    o caminos
Write a Comment
User Comments (0)
About PowerShow.com