8
1 ALGORITMOS GENÉTICOS Modelización y Predicción con Tecnologías Emergentes 2006 ALGORITMOS GENÉTICOS ORÍGENES Basados en la teoría de la evolución de Darwin. La idea es de John H. Holland (1929 - , University of Michigan) ”técnica que incorpora la selección natural en un programa de computadora”. “Living organisms are consummate problem solvers” ALGORITMOS GENÉTICOS Libros relevantes 1ª Ed. 1975 1ª Ed. 1989 ALGORITMOS GENÉTICOS FUNDAMENTOS Algoritmos de búsqueda estocástica. Simulan los procesos genéticos biológicos. Los algoritmos genéticos establecen una analogía entre el conjunto de soluciones de un problema y el conjunto de individuos de una población natural. PROPIEDADES Tiene una población de soluciones posibles. Se generan nuevas soluciones por medio de cruzamientos y mutaciones. Necesitan una función de evaluación. No se necesita información del gradiente! POBLACIÓN INICIAL El algoritmo comienza con un conjunto de soluciones (en principio generadas aleatoriamente). Ésta será la Población Inicial. X = 155 Y = 124 Z = 228 (155, 124, 228) (100110110111110011100100) X Y Z GENERACIÓN DE HIJOS: CROSSOVER Seleccionar dos padres de la Población. (155, 124, 228) (100110000000110011100111) (116, 4, 195) (011101110111010011000000) (119, 116, 192) (152, 12, 231) (155, 124, 228) (100110110111110011100100) X Y Z (116, 4, 195) (011101000000010011000011) (116, 4, 195) (155, 124, 228) (155, 124, 228) (100110110111110011100100) (116, 4, 195) (011101000000010011000011) (116, 4, 195) (155, 124, 228) Elegir los puntos de corte (no los bordes). Intercambiar los segmentos de las cadenas padres para crear los hijos.

GUSTAVO 05 - ALGORITMOS GENETICOS

Embed Size (px)

Citation preview

Page 1: GUSTAVO 05 - ALGORITMOS GENETICOS

1

ALGORITMOSGENÉTICOS

Modelización y Predicción con Tecnologías Emergentes 2006

ALGORITMOS GENÉTICOSORÍGENES

Basados en la teoría de la evolución de Darwin.La idea es de John H. Holland(1929 - , University of Michigan)

”técnica que incorpora laselección natural en un programa de computadora”.

“Living organisms areconsummate problem solvers”

ALGORITMOS GENÉTICOSLibros relevantes

1ª Ed. 1975 1ª Ed. 1989

ALGORITMOS GENÉTICOSFUNDAMENTOS

Algoritmos de búsqueda estocástica.Simulan los procesos genéticos biológicos.Los algoritmos genéticos establecen una analogía entre el conjunto de soluciones de un problema y el conjunto de individuos de una población natural.

PROPIEDADESTiene una población de soluciones posibles.Se generan nuevas soluciones por medio de cruzamientos y mutaciones.Necesitan una función de evaluación.No se necesita información del gradiente!

POBLACIÓN INICIAL

El algoritmo comienza con un conjunto de soluciones (en principio generadas aleatoriamente).

Ésta será la Población Inicial.

X = 155Y = 124Z = 228

(155, 124, 228) (100110110111110011100100)

X Y Z

GENERACIÓN DE HIJOS:CROSSOVER

Seleccionar dos padres de la Población.

(155, 124, 228) (100110000000110011100111)(116, 4, 195) (011101110111010011000000) (119, 116, 192)

(152, 12, 231)

(155, 124, 228) (100110110111110011100100)

X Y Z

(116, 4, 195) (011101000000010011000011) (116, 4, 195)(155, 124, 228)

(155, 124, 228) (100110110111110011100100)(116, 4, 195) (011101000000010011000011) (116, 4, 195)

(155, 124, 228)

Elegir los puntos de corte (no los bordes).

Intercambiar los segmentos de lascadenas padres para crear los hijos.

Page 2: GUSTAVO 05 - ALGORITMOS GENETICOS

2

GENERACIÓN DE HIJOS:CROSSOVER

Hay muchas técnicas de Crossover que pueden elegirse.

Determinará la evolución del algoritmo.

Cruce bCruce báásicosicoCruce multipuntoCruce multipuntoCruce segmentadoCruce segmentadoCruce uniformeCruce uniformeCruces para permutaciCruces para permutacióónn

Cruce de Cruce de mapeamientomapeamiento parcialparcialCruce de ordenCruce de ordenCruce de cicloCruce de ciclo

Chromosomes line up and then swapthe portions of their genetic code beyond the crossover point.

GENERACIÓN DE HIJOS:MUTACIÓN

Ocasionalmente, producir mutaciones en los hijos:Puntuales, en un bit aleatorioComplejas, sobre un patrón o secuencia de bits.

(152, 12, 231) (100110000000110011100111)

(152, 76, 231)(100110000100110011100111)

Logra movimiento en el espacio de búsqueda (local o global).

Restaura posibles pérdidas de información en la población.

GENERACIÓN DE HIJOS:MUTACIÓN

Consiste en un cambio de bit(s) elegido aleatoriamente.

Permite salir de máximos locales.

Contribuye a la diversidad genética de la especie.

Se establece la probabilidad de mutación como parámetro.

Una posible implementación: Se examina cada bit de cada cadena. Si un número aleatorio está por debajo de la probabilidad se cambiará el bit. De lo contrario no.

Existen varias técnicas distintas de mutación:

Mutación de bit, Mutación multibit, Mutación de gen, Mutación multigen, Mutación de intercambio, Mutación de barajado

FUNCIÓN DE APTITUD

Se aplica a cada uno de los individuos generados.

Esta función debe ser capaz de "castigar" a las malas soluciones y de "premiar" a las buenas, de forma que sean

estas últimas las que se propaguen con mayor rapidez.

¡¡EN LAS APLICACIONES, ES LA CLAVE PARA QUEEL ALGORITMO SEA ÚTIL Y

CONDUZCA A UNA SOLUCIÓN EXITOSA!!

SELECCIÓN DE INDIVIDUOS

Generar un conjunto de nuevos hijos.

Evaluar la función de costo para cada uno de ellos.

Remover los peores individuos de modo quela población quede con la cantidad inicial.

Algoritmo Generacionalse reemplaza la población entera en cada iteración.

Algoritmo “Steady-state”se reemplazan sólo algunos individuos. A veces se mantienen los N mejores individuos de una población a la siguiente.

SELECCIÓN DE INDIVIDUOS

Parámetros típicos para un problema pequeño:

50 – 100Population size:

20 – 20,000Generations:

< 5%Mutations:

0 – 3Crossovers:

= population sizeChildren per generation:

Otros parámetros:Diversidad de la población.Políticas de preferencia de individuos.Políticas de eliminación de individuos.Criterio de terminación.

Page 3: GUSTAVO 05 - ALGORITMOS GENETICOS

3

DETENCIÓN DEL ALGORITMO GENÉTICO

Se detienen las iteraciones cuando un porcentaje alto de la población converge a un valor.Si con ese valor no se llega a la medida esperada, entonces:

se toma una pequeña proporción y se inyecta “diversidad genética”o se reemplaza completamente la población.

O bien, se agota un tiempo de cálculo especificado.

ALGORITMO GENÉTICORESUMEN

Población Ganadores

Padres

Hijos

Mutaciones

¿POR QUÉ UTILIZAR ALGORITMOS GENÉTICOS?

No necesitan conocimientos específicos sobre el problema que intentan resolver.Resulta sumamente fácil ejecutarlos en las modernas arquitecturas masivamente paralelas.Útiles cuando el problema tiene un espacio grande de soluciones. No requiere derivadas.La función de evaluación no tiene que ser suave.Las variables no necesitan ser escaladas.La función de evaluación puede ser ruidosa.

Útiles cuando se requiere una BUENA solución.

¿CUÁNDO NO UTILIZAR ALGORITMOS GENÉTICOS?

Cuando se requiere optimización global. Cuando el problema es suave y convexo

Usar un optimizador basado en el gradiente.

Cuando el espacio de búsqueda es muy pequeñoUsar enumeración.

Cuando no se acepta una solución basada en operadores probabilísticos,Cuando importa que pueden tardar mucho tiempo en converger, no converger en absoluto o incluso converger prematuramente.

APLICACIONES

Los Cromosomas podrían ser:

Cadenas de bits (0101 ... 1100)

Números Reales (43.2 -33.1 ... 0.0 89.2)

Permutaciones de elementos (E11 E3 E7 ... E1 E15)

Listas de reglas (R1 R2 R3 ... R22 R23)

Elementos de Programas (genetic programming)

... Cualquier estructura de datos ...

CAMPOS DE APLICACIÓN DE ALGORITMOS GENÉTICOS

Domain Application Types

Control gas pipeline, pole balancing, missile evasion, pursuit

Design semiconductor layout, aircraft design, keyboard configuration, communication networks

Scheduling manufacturing, facility scheduling, resource allocation

Robotics trajectory planning

Machine Learning designing neural networks, improving classification algorithms, classifier systems

Signal Processing filter design

Game Playing poker, checkers, prisoner’s dilemma

Combinatorial Optimization

set covering, travelling salesman, routing, bin packing, graph colouring and partitioning

Page 4: GUSTAVO 05 - ALGORITMOS GENETICOS

4

EJEMPLOUbicación en la Función de Evaluación

Distribución de individuos en la Población Inicial

Distribución de individuos en la Población N

EJEMPLO (1/5)El viajero – Ubicación de las ciudades

0

10

20

30

40

50

60

70

80

90

100

0 10 20 30 40 50 60 70 80 90 100

x

y

EJEMPLO (2/5) El viajero – Distancia recorrida: 941 km

TSP30 (Performance = 941)

0

10

20

30

40

50

60

70

80

90

100

0 10 20 30 40 50 60 70 80 90 100

x

y

EJEMPLO (3/5) El viajero – Distancia recorrida: 800 km

TSP30 (Performance = 800)

0

10

20

30

40

50

60

70

80

90

100

0 10 20 30 40 50 60 70 80 90 100

x

y

EJEMPLO (4/5) El viajero – Distancia recorrida: 652 km

TSP30 (Performance = 652)

0

10

20

30

40

50

60

70

80

90

100

0 10 20 30 40 50 60 70 80 90 100

x

y

EJEMPLO (5/5) El viajero – Distancia recorrida: 420 km

TSP30 Solution (Performance = 420)

0

10

20

30

40

50

60

70

80

90

100

0 10 20 30 40 50 60 70 80 90 100

x

y

Page 5: GUSTAVO 05 - ALGORITMOS GENETICOS

5

EJEMPLOModelo lineal y = ax+b

Se encuentra un modelo lineal diferente al obtenido por mínimos cuadrados, sin derivadas, ni resolución de

ecuaciones, y con menor error que la regresión lineal.

Algoritmo GenéticoMínimos Cuadrados

EJEMPLOOptimización de Funciones de Pertenencia

• Se varían los parámetros de las funciones de pertenencia.• La función de evaluación es la norma del error.• Se logra una forma más suave, con menor error.

Algoritmo GenéticoModelo Takagi - Sugeno

• Función de evaluación para cada individuo:

EJEMPLO (1/3)Máximo de una función

( )nf x

• Generamos la población al azar.10011 00110 11011 11001

284 219 156 200

• Probabilidad de selección:

0.3306 0.2549 0.1816 0.2328

( ) / ( )n ii

f x f x∑

• El mejor individuo en esta población:

10011 (19)

EJEMPLO (2/3)Máximo de una función

• Generamos probabilidades de cruce aleatoriamente con posiciones aleatorias de cruce 2 y 3 respectivamente.

Probabilidades = 0.58; 0.84; 0.11 y 0.43

10011 con 00110 = 10110 y 0001110011 con 00110 = 10010 y 00111

• Nueva población, con el bit 2 del tercer individuo mutado:10110 00011 10000 00111

• Nuevas Probabilidades de selección:

0.2665 0.1656 0.3174 0.2505

EJEMPLO (3/3)Máximo de una función

• El mejor individuo de esta segunda población:10000 (16)

mejor individuo dela población inicial

mejor individuo de la segundapoblación (se acerca a la solución)

¿Qué se necesita para utilizarAlgoritmos Genéticos?

UN PROBLEMA A RESOLVER y...

Una técnica de codificación.Un procedimiento de inicialización.UNA FUNCIÓN OBJETIVO.Un criterio de selección de padres.Un criterio de creación de hijos.

…y paciencia, prueba, error y creatividad

Page 6: GUSTAVO 05 - ALGORITMOS GENETICOS

6

MATLAB R14 (7.0)Toolbox de Algoritmos Genéticos

DATOS GENERALES

Fitness function es la función que se desea minimizar. Se indica @funcion donde funcion.m es un archivo que devuelve un escalar.

Number of variables es la cantidad de parámetros que el algoritmo genético buscará (es la dimensión del espacio de búsqueda)

MATLAB R14 (7.0)Toolbox de Algoritmos Genéticos

FITNESS SCALING

Mapea las evaluaciones de cada individuo en un rango adecuado para la función de selección.

Rank: según su posición en las evaluaciones ordenadas. El rank del mejor individuo es 1, el siguiente es 2, etc.

Proportional: makes the expectation proportional to theraw fitness score. This strategy has weaknesses when rawscores are not in a "good" range.

Top: los mejores K individuos quedan con el mismo score.

Shift linear - The function scales the raw scores so that theexpectation of the fittest individual is equal to a constant, which you can specify as Maximum survival rate, multipliedby the average score.

MATLAB R14 (7.0)Toolbox de Algoritmos Genéticos

SELECTION

Esta función elige los padres para la siguiente generación, según los valores de fitness que fueron previamente “scaleados”.

Roulette: simula una ruleta con el área de cada segmento proporcional a su esperanza de ser elegido.

MATLAB R14 (7.0)Toolbox de Algoritmos Genéticos

SELECTION

Tournament: individuos aleatorios según TournamentSize, y luego elige los mejores de ellos.

Stochastic uniform: hace una línea y ubica los padres abarcando secciones proporcionales a su esperanza. El algoritmo se mueve en pasos de igual tamaño escogiendo padres. El primer paso es un número aleatorio uniforme menor que el paso.

Remainder: elige según la parte entera de su valor scaleado y luego una roulette para la parte fraccionaria.

Uniform: selecciona padres aleatoriamente con distribución uniforme. No es muy útil.

MATLAB R14 (7.0)Toolbox de Algoritmos Genéticos

REPRODUCTION

Determina cómo se crean los hijos de la nueva generación.

Elite count: especifica el número de individuos que seguro sobrevivirán a la siguiente generación.

Crossover fraction: especifica qué fracción de la siguiente generación se producirá por cruzamiento. Los que queden se crearán por mutación.

MATLAB R14 (7.0)Toolbox de Algoritmos Genéticos

MUTATION

Uniform: Primero selecciona una fracción del vector para mutar, según la probabilidad MutationRate. Luego lo cambia por un valor aleatorio para esa posición.

Gaussian: agrega un número aleatorio gaussiano con media 0 a cada posición del vector. Se da el valor de sigma para la primera población. Puede ser constante o ir cayendo a 0.

Page 7: GUSTAVO 05 - ALGORITMOS GENETICOS

7

MATLAB R14 (7.0)Toolbox de Algoritmos Genéticos

CROSSOVER

Single point: elige un único punto de cruce aleatoriamente.

Two point: dos puntos de corte aleatorios.

MATLAB R14 (7.0)Toolbox de Algoritmos Genéticos

CROSSOVER

Scattered: crea un vector binario aleatorio de ceros y uno, el que determina qué gen de cada individuo se tomará de un padre o del otro.

Intermediate: crea los hijos haciendo un promedio pesado de los padres, según:

HIJO1 = PADRE1 + rnd * Ratio * (PADRE2 – PADRE1)

Heuristic: pone los padres en línea. El hijo comienza un poco después del padre con mejor fitness y toma una porción del otro padre.

MATLAB R14 (7.0)Toolbox de Algoritmos Genéticos

MIGRATION

La Migración es el movimiento de individuos entre generaciones. Los mejores individuos de una generación reemplazan a los peores de otra.

Puede ser en generaciones anteriores o posteriores o en ambas, lo que se determina con el parámetro Direction.

MATLAB R14 (7.0)Toolbox de Algoritmos Genéticos

STOPPING CRITERIA

El algoritmo se detiene si…

… se alcanza un número máximo de generaciones.[Generations]

… transcurre un determinado tiempo[Time limit]

… el mejor valor de fitness es menor que un mínimo.[Fitness limit]

… no hay mejoras en un número de generaciones.[Stall generations]

… no hay mejoras y transcurre un determinado tiempo[Stall time limit]

MATLAB Otras librerías de Algoritmos Genéticos

EA_Matlabhttp://www.systemtechnik.tu-ilmenau.de/~pohlheim/EA_Matlab/ea_matlab.html

GAOT (Se puede usar en la versión 5)Genetic Algorithm Optimization Toolboxhttp://www.ie.ncsu.edu/mirage/GAToolBox/gaot/

FIN

Page 8: GUSTAVO 05 - ALGORITMOS GENETICOS

8

FIN