• No se han encontrado resultados

Algoritmos Genéticos

N/A
N/A
Protected

Academic year: 2021

Share "Algoritmos Genéticos"

Copied!
61
0
0

Texto completo

(1)
(2)

AG un vistazo rápido

 Desarrollado: USA en 1970’s

 Primeros nombres: J. Holland, K. DeJong, D.

Goldberg

 Típicamente aplicado a:

Optimización discreta

 Características exhibidas:

– No demasiado rápido

Buen heurístico para problemas combinatorios

 Características especiales:

– Tradicionalmente enfatiza la combinación de información de buenos padres (crossover)

(3)

Algoritmos genéticos

El AG original de Holland se conoce como

algoritmo genético simple (AGS)

Otros AGs utilizan diferentes:

– Representaciones

– Mutaciones – Crossovers

(4)

AGS resumen técnico

Representación strings binarios

Recombinación N-point o uniforme Mutación Cambio de bit con

probabilidad fija

Selección de padres Proporcional al fitness

Selección de supervivientes Todos hijos sustituyen a los padres

(5)
(6)

AGS ciclo reproductivo

1. Seleccionar individuos de la población para formar el mating pool (individuos que van a ser padres)

(tamaño del mating pool = tamaño de la población) 1. Desordenar el mating pool

2. Para cada par de individuos consecutivos aplicar

crossover con probabilidad pc, en otro caso copiar los padres

3. Para cada hijo (offspring) aplicar mutación (bit-flip con probabilidad pm independientemente para cada bit)

(7)

AGS operadores: 1-point crossover

 Elegir un punto aleatorio en los dos padres  Dividir los padres en ese punto

 Crear hijos intercambiando las colas

(8)

AGS operadores: mutación

Altera cada gen independientemente con probabilidad pm pm se llama tasa de mutación

(9)

 Idea principal: los individuos mejores consiguen una mayor probabilidad

– Probabilidades proporcionales al fitness – Implementación: técnica de la ruleta

 Asignar a cada individuo una parte de la

ruleta

 Girar la ruleta n veces para seleccionar n

individuos

AGS operadores: Selección

(10)

Un ejemplo Goldberg ‘89 (1)

Problema simple max x

2

sobre {0,1,…,31}

Aproximación mediante AG:

– Representación: código bin, e.g. 01101 ↔ 13 – Tamaño de población: 4

– 1-point xover, bitwise mutation – Selección mediante ruleta

– Inicialización aleatoria

(11)
(12)
(13)
(14)

EL AGS

Ha sido objeto de numerosos estudios

– Aún utilizado como benchmark para nuevos AGs 

Presenta algunas deficiencias:

– La representación es demasiado restrictiva

– Mutación y crossovers sólo son aplicables para

representaciones de cadenas de bits y enteros

– Mecanismo de selección delicado para converger

poblaciones de individuos con fitness similares

– Modelo de población Generacional (el paso 5 del AGS

(15)

Operadores de Crossover alternativos

 El rendimiento del 1-Point Crossover depende del orden en el que las

variables aparecen en la representación

– Es más probable mantener juntos genes que están juntos unos de

otros

– Mayor probabilidad de mantener juntos bits próximos y

imposibilidad de manentener juntos los genes de extremos opuestos del string (Positional Bias)

(16)

Crossover de n-point

 Elegir n puntos aleatorios de crossover  Dividir a lo largo de dichos puntos

(17)

Crossover uniforme

 Para el primer hijo, se lanza una moneda y si sale cara se toma el bit del primer

padre y en caso contrario del segundo.

 El segundo hijo toma los valores complementarios del primero.

 La herencia es independiente de la posición (no hay bias posicional), pero hay

(18)

Crossover O mutación?

 Gran debate: cuál es mejor?

 Respuesta (al menos, ampliamente aceptada):

– Depende del problema, pero

en general, es bueno usar ambos. – Cada uno tiene su papel.

(19)

Exploración: Descubrir areas prometedoras en espacio de búsqueda, i.e. obtener más información del problema

Exploitation: Optimizar dentro de un area prometedora, i.e. usar la

información

Existe una cooperación y competición entre ellos

Crossover es “explorativo”, hace un gran salto a un area en algún lugar entre dos areas de las dos areas de los padres (en general) Mutación es “exploitative”, crea pequeñas desviaciones aleatorias, permaneciendo cerca del area del padre (en general)

(20)

Sólo el crossover puede combinar información

de dos padres

Sólo la mutación puede introducir nueva

información (alelos)

El crossover no cambia la frecuencia de los

alelos (n-point o uniforme)

(21)

Otras representaciones

 Codificación Gray de enteros (cromosomas binarios)

La codificación Gray es un maping que hace que “pequeños cambios en el genotipo causa pequeños cambios en el

fenotipo” (improbable en codificación binaria). Mapping

“suaves” entre genotipos y fenotipos hacen la vida más fácil para los AG

Hoy en día está generalmente aceptado que es mejor codificar variables numéricas directamente como

 Enteros

(22)

Código Gray (Frank Gray)

D Bin Gray 0 000 000 1 001 001 2 010 011 3 011 010 4 100 110 5 101 111 6 110 101 7 111 100

Distancia Hamming 1 entre

(23)

Representaciones Enteras

 Algunos problemas tienen asociados de forma natural

variables enteras, e.g. parámetros de procesos de imagen

Otros toman valores categóricos de un conjunto fijo, e.g.

{blue, green, yellow, pink}

 Los operadores de crossover N-point / uniform crossover

funcionan igual que en el caso de string binarios

 Se puede extender la mutación bit-flipping para hacer

– “creep” i.e. mayor probabilidad para moverse a valores similares – En general será difícil conocer un rango correcto para ‘creep’.

Por tanto se pueden usan dos operadores de mutación en tandem

(24)

Problemas con variables reales

 Muchos problemas son real-valuados, e.g.

optimización con parametros continuos f : n

(25)

Mapping reales en cadenas de bits

z ∈ [x,y] ⊆ ℜ representado por {a1,…,aL} ∈ {0,1}L

• [x,y] → {0,1}L debe ser invertible (un fenotipo por genotipo)

∀ Γ: {0,1}L → [x,y] define la representación

 Sólo se representan 2L valores de los infinitos

 L determina la máxima precisión posible de las soluciones  Alta precisión  cromosomas grandes (evolución lenta)

Γ  a

1

,. .. ,a

L

=x+

y −x

2

L

−1

⋅

j=0 L−1

(26)

Mutaciones reales 1

Esquema general de mutaciones de variables reales

Mutación Uniforme:

Análoga a bit-flipping (binarios) o búsqueda aleatoria (enteros)

x

i

,x

i'

[

LB

i

,UB

i

]

x1, x2, . . . xn> −−−−> < x'1,x2' , . . . ,x'n¿ ¿

(27)

Mutaciones reales 2

Mutaciones No-uniformes:

– Se han propuesto muchos métodos, tales como

variación dependiente del tiempo de la amplitud de la mutación, etc.

– Muchos esquemas son probabilísticos pero

usualmente sólo hacen un pequeño cambio al valor

– El método más común es sumar una desviación

aleatoria a cada componente de forma separada, tomado de una N(0, σ)

– La desv. Estándar σ controla la maginitud de cambio

(28)

variables reales

Discreto:

Cada alelo del hijo z proviene de sus padres (x,y) con

igual probabilidad: zi = xi o yi

– Puede usarse crossover de n-puntos o uniforme 

Intermedio

– Explota la idea de crear hijos “entre” los padres

(recombinación aritmética)

zi = α xi + (1 - α) yi donde α : 0 ≤ α 1.

El

parámetro

α

puede ser:

constante: recombinación aritmética uniforme

(29)

Single arithmetic crossover

• Padres: 〈x1,…,xn y 〈y1,…,yn

Seleccionar un único gen (k) aleatoriamente, • hijo1:

Intercambiando

α

y 1-

α

para el otro hijo

. e.g. con α = 0.5

(30)

Simple arithmetic crossover

• Padres: 〈x1,…,xn y 〈y1,…,yn

Seleccionar aleatoriamente un gen (k) tras este punto mezclar los valores

• hijo1 :

Cambiar

α

por 1-

α

para el otro hijo

. e.g. con α = 0.5

(31)

• El más utilizado

• Padres: 〈x1,…,xn y 〈y1,…,yn〉 • Hijo 1 es:

• Hijo 2 como en otros casos. e.g. con α = 0.5

Crossover aritmético completo

(32)

Permutaciones como representaciones

 Los problemas de ordenación/secuenciación

constituyen un tipo especial

 La tarea es (o puede resolverse) ordenando algunos

objetos en un cierto orden

Ejemplo: algoritmo de ordenación: lo importante es que elementos van antes que los otros (orden)

Ejemplo: Problema del agente viajero: lo importante es que elementos está a continuación de cada uno (adyacencia)

 Estos problemas se expresan en general como una

permutación:

(33)

ejemplo TSP (Problema del viajante)

 Problema:

Dadas n ciudades

• Encontrar un tour completo de longitud mínima

 Codificación:

Etiquetar las ciudades 1, 2, …, n

Un tour completo es una permutación (e.g. for n =4 [1,2,3,4], [3,4,2,1] son OK)  El espacio de búsqueda es

GRANDE:

para 30 ciudades hay 30! ≈ 1032

(34)

Permutaciones: Oper. de Mutación

 Los operadores de mutación usuales conducen a

soluciones no factibles

e.g. mutación bit-wise: Cambiar el valor del gen i que contiene el valor j

Cambiar a un valor k significaría que k ocurre dos veces y j no aparece

 Por tanto hay que cambiar al menos dos valores

 El parámetro de la Mutación ahora refleja la probabilidad

(35)

Mutation de insercción

Tomar dos alelos aleatoriamente

Mover el segundo a continuación del primero,

trasladando el resto

(36)

Mutación por intercambio

Tomar dos alelos aleatoriamente e

intercambiarlos

Preserva la mayoría de la información de

(37)

Mutación por inversión

Seleccionar dos alelos aleatoriamente e

invertir los elementos del substring contenido

entre ellos.

(38)

Mutación Scramble

Seleccionar un subconjunto de genes

aleatoriamente

Reordenar aleatoriamente sus alelos en esas

posiciones

(39)

Los operadors de Crossover “

Normales” a menudo

conducen a soluciones infactibles:

Se han diseñado muchos operadores

especializados para combinar la información

sobre orden y adyacencia de los padres

Oper. Crossover para Permutaciones

1 2 3 4 5 5 4 3 2 1

(40)

Order Crossover

 La idea es preservar el orden relativo en el que aparecen los elementos

 Procedimiento:

1. Elegir un trozo arbitrario del primer padre 2. Copiar esta parte al primer hijo

3. Copiar los números que no están en la primera parte en el primer hijo:

Empezando a la derecha del punto de corte de la parte copiada

Utilizando el orden del segundo padre Volviendo al principio al alcanzar el final

(41)

Order Crossover ejemplo

 Copiar el conjunto seleccionado aleatoriamente del

primer padre

(42)

Procedimiento:

Seleccionar un segmento aleatorio del padre 1 copiarlo en el primer hijo

• Comenzando desde el primer punto de crossover buscar los

elementos en dicho segmento del segundo padre que no han sido copiados

Para cada uno de estos i mirar en el hijo para ver que elemento j ha sido copiado en su lugar desde el padre 1.

Situar i en la posicion ocupada j en el padre 2, ya que sabemos que no pondremos j allí

Si la posicion ocupada por j en el padre 2 ha sido rellenada en la posición k, poner i en la posición ocupada por k en el padre 2

• Tras haber tratado los elementos del segmento del crossover, el resto se rellena del padre 2.

El segundo hijo se crea análogamente

(43)

Ejemplo PMX

 Step 1

 Step 2

(44)

Crossover con ciclos

Idea básica:

Cada alelo procede de un padre junto con su posición.

Procedimiento:

1. Hacer un ciclo de alelos de P1 de la forma siguiente.

(a) Empezad con el primer alelo de P1.

(b) Mirar el alelo en la misma posición de P2. (c) Ir a la posición con el mismo alelo en P1. (d) Añadir este alelo al ciclo.

(e) Repetir el paso b hasta d hasta llegar al primer alelo de P1.

2. Poner los alelos del ciclo en el primer hijo en las posiciones que tenían en el primer padre.

(45)

Ejemplo de crossover con ciclos

 Step 1: identificar ciclos

(46)

Recombinación de ejes

Construir una tabla de listas de uniones que

están presentes en los padres, si pertenece a

los dos poner un +

(47)

Tras construir la tabla de lista de uniones

1. Tomar aleatoriamente un elemento inicial y ponerlo en el hijo 2. Establecer dicho elementos, como elemento actual

3. Borrar todas las referencias al elemento actual 4. Examinar la lista del elemento actual:

Si hay algún elemento común, tomarlo para ser el siguiente elementoEn otro caso tomar la entrada en la lista que es más corta

– Si hay empates romperlos aleatoriamente

5. En caso de encontrar una lista vacía:

Examinar el otro extremo del hijo para proseguir

En otro caso elegir un nuevo elemento aleatoriamente

(48)
(49)

Recombinaciones Multipadre

 En nuestros modelos no estamos sujetos a las leyes

naturales

 Observar que la mutación utiliza un padre, el crossover

“tradicional” 2, la extensión a a>2 es facíl de considerar

 Entorno a los años 1960s, algunos trabajos, aunque no

muchos, indicaban su utilidad

 Tres tipos principalmente:

– Basados en frecuencias de los alelos, e.g., p-sexual voting generalización del crossover uniforme

– Basados en segmentación y recombinación de los padres, e.g., crossover diagonal que generaliza al n-point crossover

(50)

Modelos de poblaciones

 AGS utiliza un modelo Generacional:

– Cada individuo sobrevive exactamente una generación – El conjunto entero de padres es sustituido por los hijos

 En el otro extremo de modelos están los modelos de

Estado estacionario (Steady-State):

– En cada generación se genera un descendiente/hijo, – Un miembro de la población se reemplaza

 Gap generacional

La proporción de la población reemplazada

(51)

Selección/competición basada en fitness

 La selección tiene lugar en dos sitios:

– Selección para tomar parte del mating pool (selección de los padres)

Selección de padres + hijos para sobrevivir (survivor selection)

 Los operadores de selección operan a nivel de individuo

completo

i.e. Son independientes de la representación

 Elementos del proceso de selección

(52)

Ejemplo de utilización: AGS

Número esperado de copias de un individuo i

E( ni ) = µ • f(i)/ f

(µ = tam. Pop., f(i) = fitness de i, 〈f〉 fitness medio en pob.)

 Algoritmo de ruleta (Roulette wheel algorithm):

Dada una distribución de probabilidad, girar una ruleta n veces para obtener n selecciones. (cada 'quesito de la ruleta' con

amplitud proporcional a la probabilidad f(i)/<f>)No garantiza el valor real de ni

 Algoritmo SUS de Baker (stochastic universal

sampling):

n selecciones uniformemente elegidas a partir de una selección aleatoria obtenida al girar la ruleta

(53)

 Presenta los problemas siguientes

– Un miembro muy bueno (con fitness muy elevado) puede apoderarse del resto si este es mucho menos bueno:

Convergencia prematura

Al final de la ejecución cuando los fitness son muy similares, la presión de la selección se pierde

– Altamente sensible a traslaciones

 EL escalado puede evitar los dos últimos problemas

Windowing: f’(i) = f(i) - β

 Donde β es el peor fitness en la/las última/s n generaciones

Sigma Scaling: f’(i) = max( f(i) – ( f - c σf ), 0.0)

Donde c es una constante, usualmente 2.0

(54)
(55)

Selección basada en ranking

Intento de evitar los problemas de SPF

basando las probabilidades de selección en

fitness relativos en lugar del absolutos

Se ordena la población de acuerdo a su fitness

y entonces las probabilidades de selección se

asginan de forma que la mejor tenga ranking

µ

-1 y la peor ranking 0

Esto supone un esfuerzo extra al algoritmo,

pero generalmente es despreciable comparado

con el resto de costo computacional del

(56)

Ranking Lineal

Parametrizado por un factor s: 1.0 < s ≤ 2.0 – Mide la ventaja del mejor individuo

En AG generacionales s corresponde al número de copias que recibe dicho individuo (µ tamaño de la población)

 Ejemplo con población de 3 miembros

(57)

Ranking Exponencial

La presión de selección está limitada al usar

ranking lineal

Ranking Exponencial puede seleccionar más

de 2 copias del mejor individuo

(58)

Selección por torneo (Tournament)

Todos los métodos de selección anteriores se

basán en estadísticas globales de la población

– Pueden ser un cuello de botella, especialmente en

proceso en paralelo

– Se basan en una función fitness que podría no

existir

Procedimiento:

Tomar k miembros de la población aleatoriamente y

selecciona el mejor de ellos

(59)

La prob. de la selección de i depende de:

Ranking/orden de i

Tamaño de la muestra k

Cuanto mayor k mayor presion de selección

– Si los participantes del torneo se toman con

reemplazamiento o no

Seleccionar sin reemplazamiento incrementa la presión de selección

– Si el mejor participante siempre gana (determinista) o

lo hace con probabilidad p

(60)

Selección de supervivientes

La mayoría de los métodos anteriores

utilizados para selección de padres son válidos

La selección de supervivientes puede dividirse

en dos aproximaciones:

– Basadas en edad

e.g. AGS

In SSGA can implement as “delete-random” (not

recommended) or as first-in-first-out (a.k.a. delete-oldest)

– Basadas en Fitness

(61)

Dos casos especiales

Elitismo

– Ampliamente utilizado en ambos modelos

poblacionales (GGA, SSGA)

– Siempre se guarda al menos una copia del mejor

individuo hasta el momento

GENITOR: “borrar-el-peor”

– Los λ peores individuos de la población se

Referencias

Documento similar

Este límite será aplicable también a la realización de actividades culturales en estos espacios y con un máximo de hasta 10 personas en las actividades de grupos, sean o

También puede usarlo como guía durante y después de su tratamiento.. Los nutricionistas dietistas clínicos

E speramos con esta información haber contribuido a que Vds, los padres y madres de nuestros adolescentes y jóve- nes, sean más conscientes no sólo de los riesgos del consumo de

Un intento interesante de vincular las dos posiciones que he presentado, la de un antropocentrismo más amplio que sólo puede apelar a razones éticas de

Aunque ambas guerras responden a contextos distintos, y el escenario descrito por Gruzinski incide en el papel de la imagen (o la destrucción de las mismas) como elemento

tratamientos se mezclan dos o más productos, y no sólo por la intoxicación que pucde producirse, sino también porque esa misma mezcla puede dañar al cultivo que se pretende

Cada una de Las aulas del Centro de Educación Especial “Virgen del Castillo”, están orga- nizadas en base al grado de afectación de los alumnos del grupo y la necesidad de una mayor o

La cosa vale, en particular cuando la heredera de la explotación es una hija: ella puede subrogar a los padres sólo «si non adprehenderit servum», como se comienza a poner por escrito