Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de...

24
Métodos basados en poblaciones 1 Métodos basados en poblaciones En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran en los mecanismos de evolución natural Algoritmos genéticos Algoritmos meméticos Búsqueda dispersa (“Scatter search”) y caminos reconectados ( “path relinking”) Algoritmos evolutivos basados en modelos probabilísticos Colonias de hormigas (“Ant colony optimization”): basado en el comportamiento y dinámica real de las colonias de hormigas

Transcript of Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de...

Page 1: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 1

Métodos basados en poblaciones

• En cada iteración se trabaja con un conjunto o población de soluciones

• Computación evolutiva: algoritmos que se inspiran en los mecanismos de evolución natural– Algoritmos genéticos– Algoritmos meméticos– Búsqueda dispersa (“Scatter search”) y caminos

reconectados ( “path relinking”)– Algoritmos evolutivos basados en modelos probabilísticos

• Colonias de hormigas (“Ant colony optimization”): basado en el comportamiento y dinámica real de las colonias de hormigas

Page 2: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 2

Computación evolutiva (EC)• Amplio espectro de técnicas heurísticas que funcionan

emulando mecanismos de evolución natural.

• Trabaja sobre una población de individuos o conjunto de soluciones, que evoluciona utilizando mecanismos de selección y construcción de nuevas soluciones candidatas mediante recombinación de características de las soluciones seleccionadas.

• Etapas del mecanismo evolutivo:– Evaluación: función de fitness– Selección : de individuos adecuados (de acuerdo al fitness)

para la aplicación de operadores evolutivos– Aplicación de operadores evolutivos– Reemplazo o recambio generacional

Page 3: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 3

Algoritmo 13 Computación Evolutiva

Generación 0

P (0) GenerarPoblacionInicial()

Mientras no se cumple condición de fin do

Evaluar (P(generación)) Q Seleccionar(P (generación)) (Padres)

R AplicarOperadoresEvolutivos(Q) (Hijos)

P´ Reemplazar(R,P(generación))

generación generación + 1

P(generación) = P´

End mientras

Page 4: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 4

• Operadores evolutivos: determinan el modo en que el algoritmo explora el espacio de búsqueda.

• Gran diversidad de tipos de operadores, que dan origen a diferentes variantes de algoritmos evolutivos. Los más comunes son los de recombinación de dos o mas individuos y los de mutación (autoadaptación)

• Condición de parada: cantidad de generaciones,

variación de valores de la función de fitness, estimación de la distancia al óptimo, etc.

Page 5: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 5

Características de los algoritmos de EC:• Descripción de los individuos. Los individuos de una

población no necesariamente son soluciones. En problemas de optimización combinatoria, la representación de los individuos comunmente se hace como strings de bits o permutaciones de enteros.

• Proceso evolutivo: decide en cada iteración qué individuos entrarán en la próxima población.

• Estructura de vecindad (para poblaciones estructuradas) : es una estructura que permite obtener para todo individuo, cuáles son los posibles individuos con los cuales puede ser recombinado. Pueden existir poblaciones desestructuradas (se permite cualquier recombinación de individuos)

Page 6: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 6

• Fuentes de información: trasmisión de información entre parejas de padres o múltiples (más de dos individuos padres) a hijos.

• Infactibiliddad: los EC pueden trabajar con individuos no factibles. Los individuos no factibles se pueden rechazar, se pueden penalizar o tratar de encontrar soluciones factibles a partir de no factibles.

• Estrategia de intensificación: uso de algoritmos para la mejora de la función de fitness, por ejemplo búsquedas locales (algoritmos meméticos) o uso de recombinaciones especiales utilizando individuos con buenas propiedades.

• Estrategia de diversificación: importante pues problema de EC es convergencia prematura en soluciones sub-óptimas. Introducción de ruido. Introducción sistemática de individuos de áreas no exploradas.

Page 7: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 7

Algoritmos genéticos

• Cruzamiento es el operador principal, mientras que la mutación es un operador secundario, solamente para agregar mayor diversidad al mecanismo de exploración

• Grado de adaptación de un individuo se evalúa a través de la función de fitness

Page 8: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 8

Algoritmo 13-1Generación 0P (0) GenerarPoblacionInicial()Mientras no se cumple condición de fin do

Evaluar (P(generación)) Q Seleccionar(P (generación)) (Padres)

R AplicarRecombinación(Q) (Hijos)

R AplicarMutación(R) (Hijos)

P´ Reemplazar(R,P(generación)) generación generación + 1 P(generación) = P´ End mientras

Page 9: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 9

Algoritmos meméticos (MA)

• Técnicas basadas en la combinación de conceptos y estrategias de diferentes heurísticas: poblaciones y búsqueda local.

• Usan algoritmos de mejora de la función de fitness de los individuos

• Para cada individuo, utilizan local search como estrategia de intensificación que permite identificar buenas áreas de búsqueda

• Son de naturaleza poblacional

Page 10: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 10

• Características:– En todo momento hay una población de soluciones al

problema considerado– Agente: es una solución al problema (individuo)– Agentes relacionados en un marco competitivo y de

cooperación– Interacciones entre agentes: estructurada en sucesión

de pasos temporales, llamados generaciones.– Cada generación es la actualización de la población de

agentes. – La nueva población recombinación de características

de agentes seleccionados– Competencia entre agentes: selección y actualización.

Page 11: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 11

Esquema de una generación:

PROC Paso_Generacional

Pob:Agente[ ] (parámetro de E/S)

Ops:Operador[ ] (parámetro de entrada)

Variables

Criadores,nueva_pob:Agente[ ]

Inicio

criadores Seleccionar(pob)

nueva_pob Reproducir(criadores,ops) pob Actualizar(pob,nueva_pob)

fin

Page 12: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 12

• Selección: se encarga de elegir una muestra de los mejores agentes de la población actual.

• Función de guía Fg: cuantifica la bondad de un agente en la resolución del problema

• Actualización: aspecto competitivo en la tarea de limitar el tamaño de la población, eliminando algunos agentes para permitir la entrada de nuevos (se puede hacer a través de Fg).

• Fase de selección y reemplazo: varía la distribución de agentes

• Fase de reproducción: lo más típico es utilizar operadores de recombinación (cooperación) y mutación.

Page 13: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 13

Operadores de mutación:• Meta-operador: basado en la aplicación iterativa de

operador de mutación sobre un agente• Meta-operadores iteran la mutación conservando los

cambios que llevan a una mejora en la bondad del agente (optimizador local)

• Optimizadores locales: constituyen otro operador que puede aplicarse en diferentes fases de la reproducción

• Algoritmo MA es una colección de agentes que realizan exploraciones autónomas cooperando ocasionalmente a través de la recombinación y compitiendo contínuamente por los recursos computacionales a través de la selección y el reemplazo.

Page 14: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 14

“Scatter search” y “path relinking”

• Path relinking es una generalización de scatter search• Se genera un conjunto de soluciones (llamado conjunto

prueba) combinando subconjuntos de un conjunto seleccionado o conjunto de soluciones de referencia (factibles).

• Las soluciones del conjunto prueba no necesariamente son factibles y usualmente se factibilizan mediante un proceso de “reparación”. Luego estas soluciones pueden ser mejoradas mediante, por ejemplo, una búsqueda local. Estas constituyen el conjunto de soluciones “dispersas”

• En la próxima iteración se utiliza el conjunto de referencia actualizado con el conjunto de soluciones “dispersas”

Page 15: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 15

Algoritmo 14 Scatter search y path relinking

Fase 0:GeneraciónSoluciones semillas()

RepeatGenerarDiversificación()

Mejora()

Acutualizarconjunto de referencia()

Until conjunto de referencia con cardinalidad n

Fase 1Repeat

GenerarSubconjuntos()

CombinarSoluciones()

Mejora()

Acutualizarconjunto de referencia()

Until criterio fin

Page 16: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 16

• Scatter search: – soluciones codificadas como puntos en el espacio

Euclediano y las nuevas soluciones se obtienen por combinaciones lineales de las soluciones de referencia permitiendo utilizar pesos positivos y negativos

– Al realizara las CL se puede salir de la región factible

• Path relinking:– El espacio Euclediano se sustituye por espacios de

vecindades, combinaciones lineales de puntos en el espacio Euclediano pueden ser re-interpretadas como caminos entre soluciones en el espacio de vecindades

– Caminos habilitados: desde la solución inicial los movimientos deben introducir sucesivamente atributos seleccionados en una búsqueda guiada.

Page 17: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 17

– Se pueden considerar caminos con múltiples puntos de inicio si se consideran atributos combinados proporcionados por un conjunto de soluciones guiadas. Se deben establecer pesos para los atributos de forma de establecer prioridades.

Page 18: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 18

EC basados en modelos probabilísticos

• La recombinación de soluciones presenta algunas desventajas que los algoritmos basados en estimaciones de distribuciones (EDA) pretenden mejorar.

• Algoritmo 15 (EDA)P GenerarPoblacionInicial()Mientras no se cumple condición de fin do

Psel Seleccionar(P)

(x) (x/ Psel ) EstimarDistribuciónPoblación() P MuestraDistribuciónPoblación()

End mientras

Page 19: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 19

• Basados en teoría de probabilidades y la población evoluciona con la búsqueda.

• EDA utiliza el modelo probabilístico de la población seleccionada para estimar la distribución del espacio de búsqueda.

• Con la distribución estimada, se toma una muestra del espacio que constituye la nueva población.

Page 20: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 20

Colonias de hormigas• Heurísticas que se basan en imitar el comportamiento

de las hormigas.

• Si bien cada hormiga tiene individualmente capacidades básicas, la colonia en conjunto logra un comportamiento inteligente.

• A pesar de ser insectos casi ciegos logran encontrar el camino más corto entre el hormiguero y una fuente de comida y regresar, en base a una comunicación entre ellas de orígen químico que se potencia con la presencia simultánea de muchas hormigas

• Comunicación en base a feromonas, que dejan un ¨rastro¨ que sirve de referencia a otras hormigas.

Page 21: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 21

Fuente de comida

Hormiguero

Fuente de comida

Hormiguero

Fuente de comida

obstáculo

Hormiguero

obstáculo

Page 22: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 22

• En los algoritmos ANT, una hormiga artificial construye artificialmente una solución adiccionando componentes a una solución parcial en consideración.

Algortimo 16 (ANT)

InicializarValoresFeromona()

Mientras no se cumple condición de fin do

Para todas hormigas a A do

sa ConstruirSolucion(,)

End Para todas

ActualizarValorFeromona()

End mientras

Page 23: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 23

• Hormigas artificiales hacen caminos randómicos en un grafo conexo G=(C,L), siendo el conjunto de vértices C, un conjunto de componentes de soluciones y L un conjunto de conexiones.

• G es el grafo de construcción

• Procedimiento constructivo

• Factibilidad

= rastro de feromona

= valor heurístico que representa una información a priori, o actualizada a lo largo del algoritmo, sobre la instancia del problema que se esta procesando y de cómo moverse en el grafo de construcción

Page 24: Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.

Métodos basados en poblaciones 24

• ConstruirSolucion(,): la hormiga decide en forma probabilística la próxima componenete a ser adiccionada, usando probabilidades de transición.

• ActualizarValorFeromona(): la regla de actualización incrementa la feromona en las componentes de solución que han tenido mejor calidad que otras.