Está en la página 1de 54

ALGORITMOS GENTICOS

Algoritmo Gentico
TPICOS
Definicin
Caractersticas
Problema de optimizacin
Representacin cromosmica
Decodificacin
Evaluacin
Algoritmo Gentico
Operadores Genticos
Algoritmo Gentico
DEFINICIN
Son mtodos de optimizacin inspirados en
los mecanismos de evolucin de poblaciones
de seres vivos.
Fue introducido por Jhon Holland (1975).
Fue popularizado por David Goldberg (1989).
Algoritmo Gentico
DEFINICIN
Los AG siguen el principio de seleccin
natural y sobrevivencia del mas apto,
declarado por el naturalista y fisilogo ingles
Charles Darwing, quien declara:
Cuanto mejor un individuo se adapta a su medio
ambiente, mayor ser su chance de sobrevivir y
generar descendientes.
Algoritmo Gentico
DEFINICIN
Esto es, el problema de la sobrevivencia de la especie es
resuelta naturalmente por los procesos de seleccin y
adaptacin de la especie.
En este sentido, podemos redefinir aproximadamente el
problema de la sobrevivencia de la especie como un problema
de optimizacin donde se desea encontrar un conjunto de
individuos con caractersticas comunes (especie solucin ) que
mejor se adapte al medio ambiente (minimice el impacto del
medio en la especie).
La propuesta de Holland y su pupilo Goldberg se resume en
escribir la metodologa natural como un procedimiento
computacional para resolver problemas de optimizacin.
Algoritmo Gentico
DEFINICIN
Los algoritmo genticos son mtodos
computacionales de bsqueda que imitan los
mecanismos de seleccin natural y de la gentica
para resolver problemas de optimizacin.
En los algoritmos genticos una poblacin de posibles
soluciones evoluciona de acuerdo con operadores
probabilsticos concebidos a partir de metforas
biolgica, de modo que existe una tendencia de que,
en la media, los individuos representen soluciones
cada vez mejores a medida que el proceso evolutivo
continua.
Algoritmo Gentico
CARACTERSTICAS
Operan sobre una poblacin de puntos (individuos), y no a
partir de puntos isolados.
Operan en un espacio de soluciones codificadas (cada individuo
es representado por su cdigo gentico), y no del espacio de
bsqueda (regin viable).
Requieren de la informacin del valor de la funcin objetivo
para cada individuo de la poblacin, y no requieren derivadas o
cualquier otro tipo de conocimiento.
Usan transiciones probabilsticas y no reglas determinsticas
Algoritmo Gentico
CARACTERSTICAS
Analoga con la naturaleza
Evolucin Natural Algoritmos Genticos
Individuo * Solucin
Cromosoma * Representacin
Reproduccin Sexual * Operador de Cruzamiento
Mutacin * Operador de Mutacin
Poblacin * Conjunto de Soluciones
Generaciones * Ciclos
Medio Ambiente * Problema
Algoritmo Gentico
CARACTERSTICAS
Se puede caracterizar a los Algoritmos genticos a
travs de los siguientes componentes
Problema a ser optimizado
Representacin de las soluciones del problema
Decodificacin del cromosoma
Evaluacin
Seleccin
Operadores Genticos
Inicializacin de la poblacin
Algoritmo Gentico
PROBLEMA DE OPTIMIZACIN
Dada una funcin f y un espacio de bsqueda S, el problema de
optimizacin puede ser formulado como:
Maximizar f(x) /
Que por su vez puede ser formulado como un problema de
bsqueda de la siguiente manera:
Encontrar
f puede tener derivada (gradiente) o no. S puede ser continuo o
discreto, cncavo o convexo.
S x
S x x f x f x ), ( *) ( / *
Algoritmo Gentico
APLICACIONES
Los algoritmos genticos se aplican a problemas
complejos de optimizacin:
- problemas con diversos parmetros o
caractersticas que necesitan ser combinadas en
busca de una solucin mejor.
- Problemas con muchas restricciones o condiciones
que no pueden ser representadas
matemticamente
- problemas con grandes espacios de bsqueda.
Algoritmo Gentico
APLICACIONES
Problema de Transporte
Planificacin de la Produccin
Expansin de Redes
Fabricacin de Nuevos Materiales
Optimizacin de Desperdicios
Optimizacin de Estructuras
Minera de Datos
Crear conocimiento (aprendizaje)
Algoritmo Gentico
1. PSEUDO CODIGO
Algoritmo Gentico
1. t 0;
2. Inicializar P(t);
3. Evaluar P(t);
4. Mientras No (Condicin de Parada)
4.1 t t +1;
4.2 Seleccionar P(t) a partir de P(t-1);
4.3 Recombinar y Mutar P(t);
4.4 Evaluar P(t);
5. Seleccionar x* mejor elemento de P(t);
6. Retornar (x*,f(x*)).
Algoritmo Gentico
1. PSEUDO CODIGO
P(t) es la poblacin codificada de soluciones en el
tiempo t.
P(0) es la poblacin codificada de soluciones al inicio.
Cada iteracin del algoritmo gentico es denominada
generacin y es denotado por el ndice t.
Entretanto no todos los individuos de una poblacin
son hijos de la poblacin de la iteracin anterior.
Algoritmo Gentico
2. INICIALIZACIN
En la mayor parte de las aplicaciones, P(0) es generada
aleatoriamente o a travs de algn proceso heurstico. Es
importante que la poblacin inicial sea lo ms representativo
posible del espacio de bsqueda.
Para el ejemplo, una poblacin inicial de seis individuos puede
ser obtenido a travs de una seleccin aleatoria, como sigue.
Cada individuo es obtenido por una secuencia de cinco dgitos
binarios los cuales son obtenidos al lanzar una moneda cinco
veces, codificando con el numeral 1 si la moneda es cara; y 0
si la moneda es sello.
00111, 11110, 00011, 00110, 10110, 01010
Algoritmo Gentico
2. INICIALIZACIN
A partir de la poblacin inicial, el AG va
generar nuevos individuos haciendo uso
de operadores genticos:
Reproduccin de individuos
Cruzamiento de los cromosomas
Mutacin, esto es alteracin de un par de
bases del DNA
Algoritmo Gentico
REPRESENTACIN CROMOSMICA
Consiste en la representacin de cada posible
solucin (individuo) como una secuencia de smbolos
s generados a partir de un alfabeto A. El alfabeto
puede ser binario, caracteres, valores enteros, etc., y
depende del problema.
Cada secuencia s corresponde a un cromosoma, y
cada elemento de s, es equivalente a un gene. Como
cada gene puede asumir cualquier valor del alfabeto
A, cada elemento de A es equivalente a un alelo
(esto es, un valor posible para cada gene).
Algoritmo Gentico
REPRESENTACIN CROMOSMICA
Ejemplo:
Maximizar
Los valores x pueden ser representado como secuencia de valores
binarios como sigue:
00000, 00001, 00010, 00011, , 11111
31 , 0 / ) (
2
x x x f
S x x f / ) ( S x x f / ) ( S x x f / ) (
Algoritmo Gentico
REPRESENTACIN CROMOSMICA
Ejemplo:
Maximizar
Los valores x pueden ser representado como secuencia de valores
binarios como sigue:
00000, 00001, 00010, 00011, , 11111
31 , 0 / ) (
2
x x x f
S x x f / ) ( S x x f / ) ( S x x f / ) (
Algoritmo Gentico
REPRESENTACIN CROMOSMICA
La representacin binaria no siempre
es la mas adecuada, puede que el
problema exija un alfabeto de
representacin con ms smbolos.
La representacin debe ser capaz de
representar todo el espacio de
bsqueda que se desea investigar.
Algoritmo Gentico
DECODIFICACIN
Consiste en la construccin de la
solucin real del problema a partir
del cromosoma.
El proceso de decodificacin
construye la solucin para que esta
sea evaluada por el problema.
La ventaja de representacin binaria
es la facilidad de transformacin para
un nmero entero o real.
Algoritmo Gentico
DECODIFICACIN
Para la transformacin a un nmero
real se considera:
donde, C es el tamao del dominio
de la variable X, XR es el nmero real
correspondiente al nmero binario XB,
n es el nmero de bits del cromosoma
y Xmin es menor valor del dominio.
Algoritmo Gentico
EVALUACIN Y FITNESS
La evaluacin es el eje entre el algoritmo gentico
y el mundo externo.
La evaluacin se realiza a travs de una funcin
que mejor representa el problema y tiene por
objetivo dar una medida de aptitud de cada
individuo
La funcin de evaluacin es especifica de cada
problema
Algoritmo Gentico
EVALUACIN Y FITNESS
Se usa la funcin objetivo como una medida
para evaluar cuan bien adaptado al ambiente,
se encuentra un individuo.
La evaluacin de cada individuo resulta en un
valor que, en ingls es denominado de
fitness, que puede ser traducido como
adaptabilidad o adecuabilidad.
Algoritmo Gentico
EVALUACIN y FITNESS
Ejemplo:
Cromosoma x f(x)
C1 01001 9 81
C2 00100 4 16
Algoritmo Gentico
SELECCIN
El mecanismo de seleccin en los algoritmos genticos simula
los procesos de reproduccin natural, el cual obedece al
principio de Darwing:
Cuanto mejor un individuo se adapta a su medio ambiente, mayor
ser su chance de sobrevivir y generar descendientes.
La literatura identifica cinco principales mecanismos de seleccin:
Proporcional, por competencias, por truncamiento, por normalizacin
lineal y por normalizacin exponencial.
Algoritmo Gentico
SELECCIN
En la seleccin proporcional la probabilidad de
seleccionar a un individuo desde una poblacin
deber ser proporcional a su adaptacin respecto a la
poblacin.
Esta seleccin es generalmente implementada por el
mtodo de la ruleta donde cada individuo es
representado por una faja proporcional a su relativa
aptitud.
Algoritmo Gentico
SELECCIN
La probabilidad de seleccionar un individuo desde una
Poblacin de N individuos es dado por:
Donde es la funcin fitness
k
s
f
N
s s ,...,
1
N
i
i
k
k sel
s f
s f
s P
1
) (
) (
: ) (
Algoritmo Gentico
4. SELECCIN
As para el ejemplo 1, se tiene los siguientes
resultados:
Individuo Fitness ( )
00111 49 0.030
11110 900 0.555
00011 9 0.006
00110 36 0.022
10110 484 0.298
01010 144 0.089
Total 1622 1.000
f sel
P
Algoritmo Gentico
4. SELECCIN
EL MTODO DE LA RULETA
Este mtodo de seleccin consiste en lo siguiente, considere
una ruleta en un casino, donde la cavidad (casa) para cada
individuo tiene un rea que es proporcional a su probabilidad
de seleccin. Esto es cuanto mayor sea su adaptabilidad
(fitness) mayor ser su probabilidad de ser seleccionado.
Para seleccionar un individuo basta girar la ruleta.
Algoritmo Gentico
4. SELECCIN
Una implementacin del mtodo de la ruleta consiste en usar
las probabilidades de seleccin acumuladas y una instruccin
RANDOM.
Para el ejemplo 1, se tiene:
Individuo Prob. Acum. Intervalos
00111 0.030 0.030 [0.000, 0.030]
11110 0.555 0.585 [0.031, 0.585]
00011 0.006 0.591 [0.586, 0.591]
00110 0.022 0.613 [0.592, 0.613]
10110 0.298 0.911 [0.614, 0.911]
01010 0.089 1.000 [0.911, 1.000]
RANDOM(0.000,1.000)=0.335 Seleccionar individuo 11110
sel
P
Algoritmo Gentico
4. SELECCIN
El mtodo de seleccin proporcional presenta dos problemas:
Existencia de sper individuos: esto ocurre cuando un
individuo presenta una aptitud mucho mayor que los restantes
individuos, lo que provocar una convergencia prematura.
competicin prxima: Ocurre cuando los individuos presentan
aptitudes semejantes (no idnticas), en este caso la
intensidad de seleccin puede ser menor que lo deseable.
Algoritmo Gentico
4. SELECCIN
N
s s ,...,
1 N
s s ,...,
1 N
s s ,...,
1
En el mtodo de seleccin por competencia un grupo de t
individuos es seleccionado aleatoriamente y el individuo con
mayor aptitud son seleccionado,
En el mtodo de seleccin por truncamiento, dado un limiar T,
apenas os T mejores individuos pueden ser seleccionados.
Cada uno de estos individuos presenta la misma probabilidad
de seleccin.
Algoritmo Gentico
4. SELECCIN
En el mtodo de seleccin por normalizacin linear los
individuos son inicialmente ordenados de acuerdo a su
aptitud, luego estos valores de aptitud son alterados de
acuerdo a una posicin relativa de cada individuo. Al mejor
individuo se le asigna una aptitud de valor Max y al peor
individuo una aptitud Min. Estos valores son determinados por
el usuario (originalmente: max = 2 min, min>0). Los dems
individuos tienen valores de aptitud linearmente distribuidos
entre min y max, respecto a su posicin relativa en la
ordenacin
Algoritmo Gentico
4. SELECCIN
Ejemplo:
Cromosoma 6 5 4 3 2 1
Evaluacin de
Aptitud
200 15 14 13 10 9
Modif. Aptitud
(tasa de 1)
100 99 98 97 96 95
Modif. Aptitud
(tasa de 20)
101 81 61 41 21 1
Algoritmo Gentico
5. OPERADORES GENETICOS
Los individuos son seleccionados y reproducidos en la
siguiente generacin a travs del operador Crossover (con
una probabilidad de Pc). Este operador es considerado la
caracterstica fundamental de los AG.
Los padres son escogidos aleatoriamente de la poblacin,
basado en su aptitud y nuevos individuos son generados a
partir del cambio del material gentico.
Los descendientes son diferentes de los padres, pero con
caractersticas genticas de los padre.
Algoritmo Gentico
5. Operador Genticos - Cruzamiento
El cruzamiento (crossover) ocurre en dos pasos:
1) Seleccione dos individuo usando el mtodo de la ruleta
Poblacin
11110
Cromosoma Padre
01111
Cromosoma Madre
00111
11110
00110
00011
10110
ruleta
01010
Algoritmo Gentico
5. Operador Genticos - Cruzamiento
2) Construya dos nuevos individuos usando los cromosomas de
los dos individuos seleccionado y una tasa de cruzamiento:
11110
Cromosoma Padre
00111
Cromosoma Madre
11111
Cromosoma hijo
00110
Cromosoma hijo
Algoritmo Gentico
5. Operador Genticos - Cruzamiento
Evaluando el fitness de los individuos
11110
Cromosoma Padre
00111
Cromosoma Padre
11111
Cromosoma hijo
00110
Cromosoma hijo
900
36 96
1
49
Algoritmo Gentico
5. Operador Genticos Mutacin
La mutacin se realiza en dos pasos:
1) Se selecciona un individuo al azar
2) Se muda el valor de una posicin aleatoria de un individuo
00101
MUTACIN
10110
Algoritmo Gentico
Una Corrida
0) t = 1
1) cruzamiento y mutacin
Poblacin P(t-1) Poblacin Hijos
00111
11110
00110
00011
10110
cruzamiento
00110
11111
00111
00010
10110
01010
01010
Algoritmo Gentico
5. Operador Genticos - Cruzamiento
2) Seleccin
Poblacin P(t-1) + hijos) Poblacin P(t)
00111
11110
00110
00011
10110
00110
11111
00111
00010
10110
01010
01010
11110
10110
00110
11111
01010
10110
ruleta
49
36
49
36
900
961
144
9
4
14
4
484
484
36
900
484
961
48
4
144
Algoritmo Gentico
Aplicacin: problema de corte 1D
Se tiene en stock una cantidad muy grande de barras o tiras de
longitud L y se tiene que atender un pedido de piezas de menores
longitudes. Supongamos por ejemplo que existen m tipos de piezas
demandadas, y se requieren bi piezas de longitud li, i = 1, ... m.
Ejemplo Generalizado del Problema de Cutting Stock
Algoritmo Gentico
Problema de corte 1D - Definicin
El problema es cmo cortar el material disponible en
el stock para servir todas las piezas demandadas de
una forma eficiente para que la cantidad
desperdiciada sea mnima.
Patrn de corte. Un patrn es una forma particular de
cortar una barra del stock produciendo cierto nmero
de piezas demandadas.
Algoritmo Gentico
Problema de corte 1D - Definicin
Patrn de Corte para satisfacer una cantidad demandada de piezas bi de longitud li
Algoritmo Gentico
Problema de corte 1D - Representacin
Representacin de soluciones mediante cromosomas
genticos.
Esquema de codificacin binaria mediante cadenas de
bits (1s y 0s) que mostrarn si un requerimiento esta
atendido o no.
Tomando una barra de longitud L, se obtendrn todas
las combinaciones de soluciones posibles (sean
optimas o no) para su corte; siendo cada una un
esquema de corte especifico para la barra.
Algoritmo Gentico
Problema de corte 1D - Representacin
Soluciones de dimensin variable NxK, donde K
es el nmero de barras que satisfacen cada
solucin y N es el nmero de requerimientos.
Como ejemplo tomaremos una barra de 5000mm
de longitud, con requerimientos de corte de
3100mm, 2500mm, 1600mm y 1400mm. Cada
requerimiento posee demanda unitaria.
Algoritmo Gentico
Problema de corte 1D - Representacin
La codificacin para estas posibles soluciones se realiza de la siguiente manera:
Algoritmo Gentico
Problema de corte 1D - Representacin
Algoritmo Gentico
Problema de corte 1D - Representacin
cromosomas variables en longitud a
consecuencia que el nmero de barras
utilizadas K es variable; adems cada barra
posee un esquema de corte distinto.
Algoritmo Gentico
Problema de corte 1D - Operadores
De recombinacin (Crossover)
De mutacin.
Algoritmo Gentico
Problema de corte 1D - Operadores
Parmetro de tasa de crossover
Formacin del nuevo cromosoma
El cromosoma hijo debe ser una solucin posible
S1
10100 101
S2
10010 110
Hijo de S1 y S2
10100 110
Algoritmo Gentico
Problema de corte 1D - Operadores
Verificacin del Cromosoma Formado
Los padres seleccionados para la recombinacin tienen
distinta longitud
Hijo de S1 y S2
10100 101
S2
10010 110
S4
10010 0011 0100
Hijo de S2 y S4
10010 110
Algoritmo Gentico
Problema de corte 1D - Mutacin
Generacin aleatoria de nmero
comprendido entre la unidad y la longitud
hallada.
Mutacin en la posicion mediante
encendido y apagado de bits.
S5
1000 0001 0110
Cromosoma Mutado
1000 0101 0010

También podría gustarte