gustavo 05 - algoritmos geneticos
TRANSCRIPT
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.
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.
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
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
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
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.
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
8
FIN