Está en la página 1de 39

Algoritmos Evolutivos

Computacin Evolutiva
M. E. Mazzei
UNA

Evolucin

En la naturaleza, los procesos


evolutivos ocurren cuando
coexisten poblaciones de
individuos que son capaces de
reproducirse.
En la poblacin existen individuos
que poseen alguna diferencia con
respecto al resto de sta, que los
hacen ms aptos.

2/39
UNA

Evolucin y Gentica

Es posible transmitir esa


diferencia a nuevas generaciones a
travs del cruce entre los individuos
ms aptos, resultando poblaciones
de individuos mejor adaptados.
Eventualmente ocurren mutaciones,
alteraciones en los cromosomas
de los individuos, que se pueden
transmitir a los descendientes.
3/39
UNA

Evolucin y Gentica

La evolucin es un proceso que opera sobre los


cromosomas, los cuales representan los cdigos de las
estructuras de la vida.

4/39
UNA

Evolucin segn Darwin

La poblacin consiste de un conjunto diverso de


individuos.
Las combinaciones de caractersticas que producen
mejor adaptacin tienden a aumentar su
representacin en la poblacin.
Ocurren variaciones a travs de cambios al azar, que
producen una fuente constante de diversidad.

5/39
UNA

De la Gentica y la Evolucin a los Sistemas Artificiales

Las ideas de la Seleccin Natural y de la Gentica han


sido tomadas para desarrollar tcnicas basadas en
meta-heursticas, en el mbito de la Computacin. Se
entiende por meta-heurstica, una estrategia de alto
nivel que gua a otras heursticas en la bsqueda de
soluciones factibles en dominios en los cuales la
bsqueda puede ser compleja.
Como resultado se han desarrollado mtodos muy
exitosos en la resolucin de diversos tipos de
problemas.
6/39
UNA

Evolucin Artificial

Metfora

7/39
UNA

Evolucin Artificial

Las soluciones forman una poblacin de individuos,


que se cruzarn mediante procesos aleatorios y a su
grado de adaptacin.
La evaluacin (o fitness) del individuo permite
cuantificar su adaptacin.
La calidad de la solucin podr propagarse a nuevas
generaciones.

8/39
UNA

Paradigmas a tratar

9/39
UNA

Algoritmos Genticos: Generalidades

Los Algoritmos Genticos (GA) son mtodos de


bsqueda basados en una simulacin parcial de los
mecanismos de la evolucin natural. Originalmente
fueron creados para optimizar funciones en valores
binarios.
Fueron creados en la dcada de los 60 por John
Holland, como un modelo de estudio de los procesos
adaptativos de los sistemas biolgicos y para el
desarrollo de sistemas artificiales en el computador
que permitieran incorporar las fortalezas presentes en
los sistemas biolgicos.
10/39
UNA

Algoritmos Genticos: Elementos

Cada individuo se representa por un cromosoma.


Cada cromosoma consta de cierto nmero de
posiciones o genes. Cada gen contiene un alelo.
Sobre los individuos o cromosomas actan ciertos
operadores: seleccin de individuos a reproducir,
recombinacin y mutacin.
Se realizan ajustes de parmetros.

11/39
UNA

Algoritmo Gentico: otros conceptos tomados de la Gentica


La informacin gentica que posee un organismo se
llama genotipo y la apariencia fsica se llama
fenotipo.
El fenotipo se determina a partir del genotipo y
comprende la morfologa, fisiologa y conducta del
organismo.

12/39
UNA

Algoritmo Gentico en seudolenguaje

Iniciar poblacin
Evaluar poblacin
Mientras no se satisfaga ( criterio de terminacin) hacer
Seleccionar padres para reproduccin
Aplicar operadores de recombinacin y mutacin
Evaluar poblacin
Fin Mientras

13/39
UNA

Algoritmo Gentico: Cromosomas

Los cromosomas pueden ser:


Nmeros reales: ej.(0, 0.5, 45,6, -0.2)
L
J
Cadenas de caracteres: ej:
Cadenas de bits: ej. 00111101010
Permutaciones de un conjunto de elementos: ej.
BAGF HLEJ BLGF HAEJ
Reglas: ej. R2 R9 R11 R23 R19
Cualquier estructura de datos
14/39
UNA

Evaluacin o fitness

El evaluador decodifica los cromosomas y le asigna


una medida de acondicionamiento.
La medicin de evaluacin representa la relacin entre
el GA y su resolucin. Normalmente en los problemas
tpicos de optimizacin, la evaluacin corresponde a la
funcin objetivo.
Ejemplo: f (x) = ex1 x2 x3 x4 x5

15/39
UNA

Cruce

El cruce acelera la bsqueda temprana hacia la


evolucin de la poblacin
Ejemplo: P1 y P2 son los padres ; h1 y h2 los hijos
P1 : (1 1 1 0 1 0 1 0)

h1 : (1 1 1 1 1 1 0 1)

P2 : (0 1 0 1 1 1 0 1)

h2 : (0 1 0 0 1 0 1 0)

16/39
UNA

Mutacin

Eventualmente el material gentico cambia


ligeramente. Esto significa que un hijo puede
tener informacin gentica no heredada de los
padres.
Ejemplo:
antes:

(1.05,3.45,5.09,7.32)

despus:

(1.05,3.45,5.01,7.32)

17/39
UNA

GA: Resumen de trminos

18/39
UNA

Tipos de Operadores

Operadores de Seleccin: Son los mecanismos que se


emplean para seleccionar los padres en cada generacin.
Los mtodos ms comunes son: Mtodo de la Ruleta o
Mtodo Proporcional, el Mtodo del Torneo y el Mtodo de
Escalamiento por Rango( Ranking).
Operadores de Variacin: Son los mecanismos que se
aplican para recombinar( o cruzar) y para generar
mutaciones en los individuos. El operador de
recombinacin o cruce acta sobre dos o ms individuos
seleccionados, para dar origen a uno o ms individuos.

19/39
UNA

Mtodo de la Ruleta

Se seleccionan ambos padres al azar, de acuerdo a


alguna distribucin de probabilidad, obtenida sobre la base
de la mejor adaptacin de los individuos. A cada individuo
le corresponde un sector de la ruleta. Funciona sobre la
base del principio: Los mejor adaptados tienen ms
posibilidad de ser seleccionados, pero no todos participan

en la seleccin.
20/39
UNA

Mtodo de Seleccin por Torneo

Consiste en la seleccin de un grupo de q individuos de la


poblacin al azar, con o sin reemplazo. Este grupo de
individuos seleccionados formar parte del torneo. El
mejor individuo seleccionado es el que tiene mejor fitness

21/39
UNA

Estrategias Evolutivas: Generalidades

Son tcnicas de optimizacin muy rpidas.


Fueron creadas por Rechenberg y Schwefel en la
dcada de los 70, para resolver un problema de
mecnica de fluidos.
Originalmente se emplearon en la optimizacin de
funciones en valores reales.

22/39
UNA

Estrategias Evolutivas

Tipos a tratar

23/39
UNA

Estrategias Evolutivas (1 + 1):

En t = 0 se genera un individuo al azar.


Se aplica el operador mutacin al individuo obtenido.
De los dos individuos ( el original y el mutado) se
selecciona el que tenga mejor evaluacin.
El proceso contina hasta que se satisfaga la condicin
de terminacin.
El ltimo individuo obtenido es el que tiene mejor
y es la solucin del problema
adaptacion

24/39
UNA

Estrategias Evolutivas ( + 1)

En t = 0 se genera una poblacin de individuos al


azar( > 1).
Se seleccionan al azar 2 individuos de la poblacin.
Se aplica el operador recombinacin entre los 2
individuos.
Se aplica el operador seleccin para eliminar entre los
+ 1 individuos el que tenga peor evaluacin.
El proceso contina hasta que se satisfaga la condicin
de terminacin.
El mejor individuo representa la solucin.
25/39
UNA

Estrategias Evolutivas ( + )

En t = 0 se genera una poblacin de individuos al


azar( > ).
Se generan individuos a partir de los iniciales,
empleando recombinacin.
Se aplica el operador seleccin para eliminar los
peores individuos segn su evaluacin.
El proceso contina hasta que se satisfaga la condicin
de terminacin.
El mejor individuo representa la solucin.
26/39
UNA

Estrategias Evolutivas (, )

Es una modificacin de la estrategia ( + )


Se parte de una poblacin de > individuos al azar.
Se generan individuos a partir de los iniciales,
empleando recombinacin.
Los individuos nuevos son mutados.
Se aplica un operador de seleccin para eliminar los
peores individuos.
El proceso contina hasta que se satisfaga la condicin
de terminacin.
El mejor individuo representa la solucin.
27/39
UNA

Resumen: Tipos de Estrategias Evolutivas

: Nmero de individuos de la poblacin.


individuos adicionales.
(1 + 1) ES es una estrategia evolutiva de dos
miembros.
( + 1), ( + ) y (, ) son estrategias evolutivas
de mltiples miembros.

28/39
UNA

Programacin Gentica

La Programacin Gentica(GP,Genetic Programming) es


una tcnica desarrollada por John Koza, a finales de la
dcada de los ochenta.
El objetivo era crear una generacin automtica de
programas.
Se crea inicialmente una poblacin de individuos.
Los individuos son programas que evolucionan
Se emplean operadores de variacin y seleccin para
obtener nuevos individuos.
Los programas se expresan mediante rboles.
29/39
UNA

Ejemplo de Programacin Gentica

Un Robot en un mundo cuadriculado ( N. Nilsson, ver


bibliografa)

Sea un robot ubicado en un recinto como el que se


muestra en la figura. Se sealan las posibles acciones.

30/39
UNA

Ejemplo de Programacin Gentica

El objetivo es desarrollar un programa que haga que el


robot se mueva,desde alguna posicin inicial hasta una
celda contigua a la pared, para continuar paralelo a la
pared a lo largo del recinto. Las funciones primitivas son
las siguientes:
and(x,y) = 0 si x = 0; si no, y
or (x,y) = 1 si x = 1; si no, y
not (x) = 0 si x = 1; si no, 1
if(x,y,z)= y si x = 1; si no 2
31/39
UNA

Ejemplo de Programacin Gentica

Las entradas sensoriales asociadas al robot son: n,


ne, e, se, s, so, o y no. Estas toman un valor 0 siempre
que la celda correspondiente pueda ser ocupada por
el robot, en caso contrario toman el valor 1.
Se debe asegurar que todas las expresiones y
sub-expresiones usadas sean correctas, y por lo tanto
se puedan evaluar.
En la siguiente figura se observa un programa, el cual
ejecutado ocasiona que el robot se mueva hacia el
norte hasta que encuentre la pared. El movimiento
siempre ser en el sentido de las agujas del reloj.
32/39
UNA

Ejemplo de Programacin Gentica

33/39
UNA

Ejemplo de Programacin Gentica

Se crea una poblacin inicial de 5.000 programas al


azar.
Cada programa debe hacer que el robot se mueva en
alguna direccin.
Cada programa( individuo) es evaluado. Para ello se
ejecuta 10 veces. Cuando el robot no se desplaza
adherido a la pared se obtiene una puntuacin de cero.
Se suman todos los desplazamientos en las 10
ejecuciones. El valor mximo posible es 320(8 4 10)
Se seleccionan los programas que tienen mejor
evaluacin.
34/39
UNA

Ejemplo de Programacin Gentica

Se selecciona un 10 % de los individuos, empleando la


seleccin por torneo con reemplazo.
Se generan 4.500 hijos, empleando cruces.
Eventualmente se aplican mutaciones.
Luego de cierto nmero de iteraciones( generaciones),
se observa que los individuos tienen mejor adaptacin,
hasta obtener la solucin deseada.

35/39
UNA

Ejemplo de Programacin Gentica

Dos individuos a cruzar

36/39
UNA

Ejemplo de Programacin Gentica

Resultado del cruce

37/39
UNA

Ejemplo de Programacin Gentica

Resultado:
Una vez obtenidas 10 generaciones, se logr un
programa( individuo) que sigue perfectamente
las paredes del recinto.

38/39
UNA

Aplicaciones: Algoritmos Evolutivos

Los algoritmos evolutivos se han aplicado en la resolucin


de una gran variedad de problemas. Los Algoritmos
Genticos y las Estrategias Evolutivas se han aplicado
en la resolucin de problemas de optimizacin.
Por otra parte, la Programacin Gentica se ha
empleado, con mucho xito en problemas de la
Inteligencia Artificial, como operacin de robots
especializados, mundo de bloques y en el diseo de filtros
electrnicos, amplificadores y circuitos.

39/39
UNA