Sie sind auf Seite 1von 47

SISTEMAS INTELIGENTES

Algoritmos Genticos

ALGORITMOS GENTICOS

ALGORITMOS GENTICOS
Considere los siguientes problemas:
1. Pedro desea visitar 12 universidades. Antes de decidir a la
que va a postular, sus padres le dicen a Pedro, que dibuje
la ruta ms eficiente en el mapa para poder as viajar en el
auto de la familia.
2. Javier desea programar un software que maneje un telescopio,
de tal manera que el nmero de estrellas que pueda
observar sea maximizado, mientras el movimiento del
telescopio sea minimizado.
La solucin ptima a los problemas anteriores ser el fitness
individual de cada generacin, luego de muchos ciclos de
seleccin, reproduccin y mutacin.

ALGORITMOS GENTICOS

Se inspiran en la teora de la evolucin de Darwin.

ALGORITMOS GENTICOS
Fundamento biolgico
Cromosoma
Son cadenas de ADN, y son como un modelo.
Los cromosonas son un conjunto de genes (bloques
de ADN). Cada gen codifica proteinas
particulares, (rasgos como el color de los ojos)
para el organismo.
Los posibles ajustes para un gen se llaman alelos
(color de ojos = marron)

ALGORITMOS GENTICOS
Fundamento biolgico
Genoma es el conjunto de material gentico, es decir
todos los cromosomas.

Genotipo es un conjunto particular de genes en el


genoma.

Locus es la posicion del gen en el cromosoma.

ALGORITMOS GENTICOS
Fundamento biolgico
Reproduccin
Es la recombinacin o cruzamiento de los genes de los
padres para formar un cromosoma totalmente nuevo.

Mutacin se refiere al hecho de que una descendencia


puede cambiar en algo su ADN.
El

fitness de un organismo es medido por el xito del

organismo en su vida.

ALGORITMOS GENTICOS

Problemas P vs NP
Los algoritmos genticos son una alternativa de
solucin para problemas NP.

P= polinomiales.
NP=No polinomiales.
Lista de problemas de optimizacion NP:
http://www.nada.kth.se/~viggo/problemlist/

ALGORITMOS GENTICOS : ALGORITMO GENERAL


1.
2.
3.

[inicio] : Generar aleatoriamente " n" cromosomas (posibles soluciones


para el problema)
[fitness] : Evaluar f(x) para cada cromosoma x en la poblacin.
[descendencia] : Crear nueva poblacin.

a. [seleccion] : Seleccionar cromosomas de acuerdo a f(x) (mayor fitness


mayor oportunidad)
b. [cruzamiento] : Cruzar cromosonas con alguna probabilidad de
cruzamiento, sino la desendencia es la copia exacta de los padres.
c. [mutacin] : Con probabilidad de mutacin mutar la descendencia
en su locus.
d. [aceptacin] : Localizar la nueva descendecia como nueva poblacin.
4. [reemplazo] : Usar la descendencia para correr el
algoritmo
[test] : Si se satisface alguna condicion parar, y retornar la mejor solucin
5.
del problema.
6. [Loop] : retornar al paso 2

ALGORITMOS GENTICOS: OPERADORES

Codificacin de cromosomas
Contienen informacin de la solucin que representan.
La manera ms usada de codificarlas es usando cadenas
binarias.
Cromosoma 1:
Cromosoma 2:

1101100100110110
11011 11 000011110

"Schafer lo llama cromosoma mientras que Holland lo llama Genotipo"

ALGORITMOS GENTICOS:
OPERADORES

Funcin de evaluacin y funcin fitness


Funcin de evaluacin o funcin objetivo(fi) da una
medida de performance con respecto a un conjunto de
parmetros (es independiente entre cromosomas)

Funcin fitness trasforma la funcin de evaluacin en


oportunidades de reproduccin, y est definida con
respecto a todos los cromosomas de la poblacin.

fitness = fi/ f promedio

ALGORITMOS GENTICOS:
OPERADORES

Funcin de evaluacin y funcin fitness


Funcin de evaluacin o funcin objetivo(fi) da una
medida de performance con respecto a un conjunto de
parmetros (es independiente entre cromosomas)

Funcin fitness trasforma la funcin de evaluacin en


oportunidades de reproduccin, y est definida con
respecto a todos los cromosomas de la poblacin.

fitness = fi/ f promedio


fi = funcin de evaluacin de cada cromosoma.
fpromedio = promedio de la funcin de evaluacin de todos los
cromosomas en la poblacin.

ALGORITMOS GENTICOS: OPERADORES

Cruzamiento
Escoger aleatoriamente algn punto (o varios) de cruce, y
copiar la informacin de un cromosoma hacia otro a partir del
punto generado.
Ejemplo 1:

Cromosona 1
Cromosona 2
Descendencia 1
Descendencia
2

11011 | 00100110110
11011 | 11000011110
11011 | 11000011110
11011 | 00100110110

ALGORITMOS GENTICOS: OPERADORES

Cruzamiento
Ejemplo 2:
Punto de corte

1 1 1 1 1 1 1

1 1 1 0 0 0 0

0 0 0 0 0 0 0

0 0 0 1 1 1 1

padres

hijos

ALGORITMOS GENTICOS: OPERADORES

Cruzamiento (binaria)
Cruzamiento de un punto
11001011

11011111

11001111

Cruzamiento de dos puntos


11001011

11011111

11011111

ALGORITMOS GENTICOS:
OPERADORES

Mutacin
til para salir o evitar mnimos locales.
Cambia aleatoriamente la descendecia.
Ejemplo 1:

Original descendencia 1
Original descendencia 2
Descendencia mutada 1
Descendencia mutada 2

1101111000011110
1101100100110110
1100111000011110
1101101100110110

ALGORITMOS GENTICOS:
OPERADORES

Mutacin
Ejemplo 2:

antes

1 1 1 1 1 1 1

despus

1 1 1 0 1 1 1

ALGORITMOS GENTICOS:
PARMETROS

Probabilidad de cruce
100% todos los descendientes son hechos por cruzamientos.
0% no se usa cruzamiento.

Probabilidad de mutacin
No ocurre mucho, ya que se estara realizando una
bsqueda aleatoria.

ALGORITMOS GENTICOS: PARMETROS

Tamao de la Poblacin
Es la cantidad de cromosomas q u e existen en la poblacin
de una generacin.
Si la poblacin es muy pequea el espacio de bsqueda es
limitado; si es muy grande el algoritmo se vuelve muy lento.

ALGORITMOS GENTICOS: PARMETROS

Seleccin
La teora de la evolucin de Darwin sugiere que solamente los
mejores deben sobrevivir y formar una nueva poblacin.
Algunas tcnicas computacionales para seleccionar los
mejores cromosomas son las siguientes:
Seleccin de la ruleta.
Seleccin de estado de equilibrio.
Seleccin de ranking.
Seleccin de Boltzman.
Seleccin mediante torneo.

ALGORITMOS GENTICOS:
PARMETROS

Seleccin
Seleccin de la ruleta

1 [sumar] : S es la suma de todos los fitness de los


cromosomas en una poblacin.
2 [seleccionar] : Generar un nmero aleatorio r en el rango
(0,S)
3 [Loop] : sumar los fitness de la poblacin de 0 a S, si S>r
parar y retornar cromosoma.

ALGORITMOS GENTICOS:
PARMETROS

Seleccin
Seleccin de estado de equilibrio
La idea es que la mayor parte de los cromosomas
sobrevivan a la siguiente generacin.
Los cromosomas con mas alto fitness se reproducen, y
esta descendencia reemplazar a los cromosomas con
mas bajo fitness.
El resto de cromosomas sobreviven a la siguiente
generacin.

ALGORITMOS GENTICOS: PARMETROS

Codificacin
Depende mucho del problema.
Codificacin Binaria

Cromosoma A:

101100101100101011100101

Cromosoma B:

111111100000110000011111

Ejemplo: problema de la mochila binaria

ALGORITMOS GENTICOS: PARMETROS

Codificacin
Codificacin por Permutacin
Los cromosomas son cadenas de nmeros, que representan
una secuencia.
Cromosoma A

7 9

Cromosoma B

1 4

Ejemplo Problema del agente viajero: Cada cromosoma


lleva la lista ordenada de ciudades que el agente visitar.

ALGORITMOS GENTICOS: PARMETROS

Codificacin
Codificacin por Valor
Cada cromosoma es una cadena de valores. Los valores
pueden ser numros enteros, reales, caracteres, etc.

Cromosoma A
Cromosoma B
Cromosoma C

1.2324

5.3243

0.4556

2.3293 2.4545

ABDJEIFJDHDIERJFDLDFLFEGT
(back), (back), (right), (forward), (left)

Ejemplo: Buscar Pesos para una red neuronal

ALGORITMOS GENTICOS:
PARMETROS

Codificacin
Codificacin de rbol
Cada cromosoma es un rbol de objetos como funciones,
comandos etc.

ALGORITMOS GENTICOS: PARMETROS

Codificacin

Codificacin de rbol
Cromosoma A

Cromosoma B

(+ x (/ 5 y))
(

do_until step wall )

ALGORITMOS GENTICOS:
PARMETROS

Cruzamiento y Mutacin
(rbol)
Cruzamiento de rbol
Se selecciona en mbos padres un punto de cruce y
se
intercambian los subrboles

Mutacin : Se selecciona un nodo que ser


cambiado

ALGORITMOS GENTICOS: APLICACIONES

Problemas NP, arte, musica

Sistemas lineales no dinmicos - prediccin, anlisis de datos


Diseo de redes neuronales, arquitectura y pesos
Trayectoria de Robots
Programas LISP evolutivos (programacion gentica)
Estrategias de planificacin
Encontrar la forma de molculas de protenas
TSP y secuencias de programacin

ALGORITMOS GENTICOS: EJEMPLO

ALGORITMOS GENTICOS: EJEMPLO

ALGORITMOS GENTICOS: EJEMPLO

ALGORITMOS GENTICOS: EJEMPLO

ALGORITMOS GENTICOS: EJEMPLO

ALGORITMOS GENTICOS: EJEMPLO

ALGORITMOS GENTICOS: EJEMPLO

ALGORITMOS GENTICOS: EJEMPLO

ALGORITMOS GENTICOS: EJEMPLO

ALGORITMOS GENTICOS: EJEMPLO

ALGORITMOS GENTICOS: EJEMPLO 2


Problema N-Reynas n=8
Recordando
Un estado sucesor es generado por combinar dos estados
padres.
Empezar con
(poblacin)

estados

generados

aleatoriamente

Funcin de evaluacin (fitness). Altos valores para mejores


estados.
Producir la siguiente generacin de cromosomas luego de la
seleccin, cruzamiento, y mutacin.

ALGORITMOS GENTICOS: EJEMPLO 2


Problema 8-Reynas

ab
i st
n ra
cc

ALGORITMOS GENTICOS: EJEMPLO 2


Problema 8-Reynas

ALGORITMOS GENTICOS: EJEMPLO 2


Problema 8-Reynas

Fitness: nmero de pares de reynas que no se atacan


[min=0, max= (87/2) = 28]
24/(24+23+20+11) = 31%
23/(24+23+20+11) = 29% etc

ALGORITMOS GENTICOS: EJEMPLO 2


Problema 8-Reynas

ALGORITMOS GENTICOS: EJEMPLO 2


Problema 8-Reynas

ALGORITMOS GENTICOS: EJEMPLO 2


Problema 8-Reynas

Fitness: nmero de pares de reynas que no se atacan


[min=0, max= (87/2) = 28]
24/(24+23+20+11) = 31%
23/(24+23+20+11) = 29% etc

ALGORITMOS GENTICOS: EJEMPLO 2

Ejemplo de
cruzamiento

Das könnte Ihnen auch gefallen