You are on page 1of 42

PROGRAMA DE MAESTRA EN INGENIERA

GENERALIDADES SOBRE
ALGORITMOS
EVOLUTIVOS
INTRODUCCIN A LA INTELIGENCIA
ARTIFICIAL APLICADA
Luis Octavio Gonzlez Salcedo
Profesor Asociado

INTRODUCCIN
Computacin Evolutiva
La Computacin Evolutiva es una rama de la
Computacin
y
la
Inteligencia
Artificial
que
comprende mtodos de bsqueda y aprendizaje
automatizado inspirados en los mecanismos de la
evolucin natural.
Diversos enfoques a la Computacin Evolutiva han
sido propuestos: las Estrategias Evolutivas, los
Algoritmos Genticos, la Programacin Gentica,
entre otros. A estos mtodos se les denomina de
manera colectiva como Algoritmos Evolutivos, entre
los cuales los ms conocidos son probablemente los
Algoritmos Genticos.

INTRODUCCIN
Computacin Evolutiva
La Computacin Evolutiva emula a la Evolucin y
Seleccin Natural en el diseo e implementacin de
herramientas computacionales para la resolucin
problemas, y comprenden:
Una representacin y codificacin de las soluciones
potenciales al problema bajo estudio.
Una poblacin (conjunto de individuos) de estas
soluciones potenciales.
Mecanismos para generar nuevos individuos o
soluciones potenciales al problema estudiado, a
partir de los miembros de la poblacin actual.
Una funcin de desempeo o evaluacin que
determina la calidad de los individuos en la

INTRODUCCIN
Bases Biolgicas
Evolutivos

de

los

Algoritmos

Los dos procesos primarios en los que se basan los


Algoritmos Evolutivos son la Seleccin Natural y la
Reproduccin. El primero de estos procesos se
corresponde con los estudios desarrollados por Darwin
en su Teora de la Seleccin Natural, mientras que el
segundo se puede encontrar estudiando los trabajos
de Mendel sobre Herencia Gentica:
La evolucin es un proceso que no opera sobre
organismos, sino que acta sobre sus cromosomas,
que son unos instrumentos orgnicos que contienen
codificada toda la informacin referente al
individuo. Estos cromosomas y, por tanto, la

INTRODUCCIN
Bases Biolgicas
Evolutivos

de

los

Algoritmos

Durante la etapa de reproduccin se da el proceso


evolutivo; cuando se genera un individuo nuevo,
ste hereda la informacin de los cromosomas de
sus
progenitores
mediante
recombinacin.
Asimismo, tambin se pueden dar en este proceso
casos de mutacin de genes, que propician la
variabilidad del material gentico de los individuos,
y que pueden ser determinantes de la adaptacin
del individuo ante posibles cambios del (o en el)
entorno en el que se encuentre.
Mediante la Seleccin Natural se permite que los
mejores individuos (aquellos con informacin en su
cromosoma ms adecuada para el medio en el que

INTRODUCCIN
Bases Biolgicas
Evolutivos

de

los

Algoritmos

Los procesos que se dan en la naturaleza no


persiguen ningn fin, son simplemente procesos en
los que los individuos van interaccionando,
reaccionando, entre s, mientras que los sistemas
desarrollados por el hombre s van persiguiendo un
objetivo final, que se encuentre de la manera ms
rpida y eficiente posible.
Se puede pensar en construir sistemas inspirados en
la Evolucin Natural intentando reproducir lo ms
fielmente posible los principios naturales (Vida
Artificial), o en utilizar dichos principios como
inspiracin, de manera que se modifiquen de la
manera ms precisa para obtener sistemas eficientes

INTRODUCCIN
Analogas entre aspectos de la evolucin
natural y los algoritmos evolutivos

INTRODUCCIN
Esquema
Evolutivo

general

de

un

Algoritmo

INTRODUCCIN
Enfoques
Histricamente existen tres enfoques bien definidos a
la Computacin Evolutiva, con origen independiente,
que son similares a nivel conceptual, pero difieren en
la manera de implementar el Algoritmo Evolutivo:
La Programacin Evolutiva (Fogel, Owens y Walsh,
1966).
Las Estrategias Evolutivas (Rechenberg, 1973).
Los Algoritmos Genticos (Holland, 1975).
Las diferencias corresponden a distintos aspectos del
Algoritmo incluyendo la manera de representar los
individuos, los mecanismos de seleccin, y el nfasis y
tipo de operadores de variacin gentica utilizados.

INTRODUCCIN
Enfoques
Los
organismos
vivos
pueden ser vistos como una
dualidad de su genotipo (el
cdigo gentico subyacente)
y su fenotipo (la manera de
respuesta contenida en el
comportamiento, fisiologa, y
Lewontin
ilustra esta
morfologa1974,
del organismo).
distincin especificando dos
espacios de estados: el
espacio
genotpico
poblacional (informacin) y
el
espacio
fenotpico
poblacional

INTRODUCCIN
Enfoques
La

funcin , epignesis,
mapea el elemento dentro
del espacio P como una
coleccin
particular
de
fenotipos cuyo desarrollo es
modificado
por su
La
funcin
, ambiente.
seleccin,
mapea los fenotipos dentro
de
La . funcin , supervivencia
genotpica,
describe
los
efectos de los procesos de
seleccin
y migracin
sobre
La
funcin
,
mutacin,
G.
mapea las codificaciones
representativas

para

el

INTRODUCCIN
Enfoques
El nivel de abstraccin en una
simulacin dicta la oportunidad
de los operadores fenotpicos o
genotpicos.
En las simulaciones basadas en
gentica, los operadores con el
cual emula la forma de la
transformacin
gentica
en
evolucin natural son aplicadas a
los genotipos abstrados.
En las simulaciones basadas en
fenotipos, los operadores son

INTRODUCCIN
Enfoques
Los Algoritmos Genticos operan desde un genotipo a
otro genotipo.Los nuevos genotipos son generados
por mecanismos genticos especficos de emulacin
como se observa en la naturaleza.

INTRODUCCIN
Enfoques
Las Estrategias Evolutivas y la Programacin Evolutiva
operan desde un fenotipo a otro fenotipo. Los nuevos
genotipos son generados entonces para tomar sobre
una distribucin deseada.

INTRODUCCIN
Poblacin,
Individuo,
Genotipo, Fenotipo

Cromosoma,

ALGORITMOS GENTICOS
Definicin

Son mtodos adaptativos que pueden usarse para


resolver problemas de bsqueda y optimizacin. Estn
basados en el proceso gentico de los organismos
vivos. A lo largo de las generaciones, las poblaciones
evolucionan en la naturaleza acorde con los principios
de la seleccin natural y la supervivencia de los ms
fuertes, postulados por Darwin. Por imitacin de este
proceso, los AG son capaces de ir creando soluciones
para problemas del mundo real.

ALGORITMOS GENTICOS
Definicin
En la naturaleza los individuos de una poblacin
compiten entre s en la bsqueda de recursos tales
como comida, agua y refugio. Incluso los miembros de
una misma especie compiten a menudo en la bsqueda
de un compaero. Aquellos individuos que tienen ms
xito en sobrevivir y en atraer compaeros tienen
Por
el contrario,
individuos
poco dotados
producirn
mayor
probabilidad
de generar
un gran
nmero un
de
menor
nmero de descendientes. Esto significa que los
descendientes.
genes de los individuos mejor adaptados se propagarn
en sucesivas generaciones hacia un nmero creciente
de individuos. La combinacin de buenas caractersticas
provenientes de diferentes ancestros, puede a veces
producir
descendientes
super-individuos,
cuya
adaptacin es mucho mayor que la de cualquiera de
sus ancestros. De esta manera, las especies

ALGORITMOS GENTICOS
Esquema de funcionamiento general
Algoritmo Gentico:
1.-Generar una Poblacin
Inicial.
2.-Iterar hasta un criterio
de parada.
3.-Evaluar cada Individuo
de la Poblacin.
4.-Seleccionar
los
progenitores.
5.-Aplicar el operador de
Cruce y Mutacin a estos
progenitores.

ALGORITMOS GENTICOS
Esquema de funcionamiento general

ALGORITMOS GENTICOS
Tipos de representacin
Durante los primeros aos el tipo de representacin
utilizado siempre era binario, debido a que se adapta
perfectamente al tipo de operaciones y el tipo de
operadores que se utilizan en un AG. Sin embargo, las
representaciones binarias no son siempre efectivas por
lo que se empezaron a utilizar otro tipo de
representaciones.
En general, una representacin ha de ser capaz de
identificar las caractersticas constituyentes de un
conjunto de soluciones, de forma que distintas
representaciones dan lugar a distintas perspectivas y
por tanto distintas soluciones.
Representacin Binaria.
Representacin Entera.
Representacin Real.

ALGORITMOS GENTICOS
Poblacin, Tamao de la Poblacin,
Poblacin
Inicial
Cul es el tamao idneo de la poblacin?
Poblaciones pequeas corren el riesgo de no cubrir
adecuadamente el espacio de bsqueda.
Poblaciones de gran tamao pueden acarrear
problemas relacionados con el excesivo costo
computacional.
Goldberg 1989 efectu un estudio terico, obteniendo
como conclusin que el tamao ptimo de la poblacin
para ristras de longitud , con codificacin binaria, crece
exponencialmente con el tamao de la ristra.
Alander 1992, basndose en evidencia emprica sugiere
que un tamao de poblacin comprendida entre y es
suficiente para atacar con xito los problemas
considerados.

ALGORITMOS GENTICOS
Poblacin, Tamao de la Poblacin,
Poblacin
Inicial
La poblacin inicial de un AG puede ser creada de muy
diversas formas, desde generar aleatoriamente el valor
de cada gen para cada individuo, utilizar una funcin, o
generar alguna parte de cada individuo y luego aplicar
una bsqueda local.
Matriz de Lmites o Matriz de Bounds.
Funcin distancia.
En particular los Algoritmos Evolutivos trabajan con una
poblacin de potenciales soluciones a un problema, en
el cual cada individuo que pertenece a la poblacin
representa una solucin particular, generalmente
representada en la forma de cdigo gentico.

ALGORITMOS GENTICOS
Funcin de Evaluacin o Desempeo
Una funcin de desempeo, tambin llamada funcin
de evaluacin, funcin objetivo, funcin de Fitness o
funcin de mrito, debe disearse para cada problema
a ser resuelto. El propsito de esta funcin es el de
medir la calidad de los cromosomas en su capacidad de
resolver el problema bajo estudio.
Tambin recibe el nombre de funcin de adaptacin, y
dado un cromosoma en particular, la funcin de
adaptacin le asigna un nmero real, que se supone
refleja el nivel de adaptacin al problema del individuo
representado por el cromosoma.
En los casos ms triviales, la funcin de evaluacin
puede coincidir exactamente con la funcin de

ALGORITMOS GENTICOS
Funcin de Evaluacin o Desempeo
Una dificultad en los Algoritmos Evolutivos es la
existencia de gran cantidad de ptimos locales en el
espacio de bsqueda generado por la funcin de
adecuacin, o tambin con la posibilidad de que el
ptimo global est muy aislado.
Al disearse una funcin de evaluacin se debe tener
en cuenta que no todos los individuos tienen por qu
representar soluciones factibles; entonces, nuestra
funcin de evaluacin debe ser capaz de penalizar a
aquellos individuos que representen soluciones no
factibles.
Las funciones de evaluacin tambin pueden cumplir el

ALGORITMOS GENTICOS
Operadores Genticos
Los Operadores Genticos introducen diversidad
gentica en la poblacin; su propsito es generar
nuevos individuos a partir de los individuos existentes
en la poblacin actual.
Cada operador tiene un parmetro asociado que
controla la probabilidad de su aplicacin en cada
iteracin (generacin) del algoritmo.
Seleccin.
Cruce, cruzamiento, combinacin o recombinacin.
Mutacin.

ALGORITMOS GENTICOS
Operador Gentico: Seleccin
La seleccin se encarga de asignar oportunidades de
reproduccin a cada uno de los miembros de la
poblacin. Mientras ms alto sea el valor de la funcin
de desempeo de un individuo, ms oportunidades
tendr de reproducirse. La seleccin debe ser
balanceada con los operadores de variacin (mutacin
y cruce). Todo algoritmo de bsqueda debe balancear
estas dos fuerzas opuestas:
La exploracin de nuevas zonas en el espacio de
bsqueda.
La explotacin de zonas promisorias del mismo que
ya han sido descubiertas.

ALGORITMOS GENTICOS
Operador Gentico: Seleccin
La seleccin es el componente que determina
principalmente las caractersticas del proceso de
bsqueda.
Si la seleccin es muy fuerte, individuos de calidad
sub-ptima pueden dominar la poblacin y por lo
tanto reducir la diversidad gentica requerida para el
cambio y el avance.
Si la seleccin es muy dbil, puede resultar un
proceso evolutivo muy lento.
Varios esquemas de seleccin ha sido propuestos en la
literatura: seleccin proporcional, por escalamiento, por

ALGORITMOS GENTICOS
Operador Gentico: Cruce
El cruce o crossover se considera el operador de
bsqueda principal en los Algoritmos Genticos. Este
operador produce individuos descendientes a partir de
combinar o mezclar el material gentico de dos o ms
individuos progenitores.
La motivacin detrs de este operador es que la mezcla
de sub-partes de los progenitores puede crear nuevos
individuos con combinaciones favorables de genes. La
aplicacin del cruce es controlada por un parmetro
denominado la probabilidad o tasa de cruce.
Varios operadores de cruce han sido propuestos en la
literatura: cruce en un punto, cruce en dos puntos,

ALGORITMOS GENTICOS
Operador Gentico: Mutacin
El operador de mutacin realiza alteraciones o
perturbaciones pequeas al genotipo, para generar un
individuo ligeramente distinto pero relacionado con el
progenitor.
Tradicionalmente, la mutacin se considera como un
operador secundario en los algoritmos genticos, cuyo
rol es el de restaurar el material gentico perdido,
siendo el cruce el principal operador de bsqueda.
Existen muy diversas formas de realizar la mutacin,
desde la ms sencilla, donde cada gen muta
aleatoriamente con independencia del resto de genes,
hasta configuraciones ms complejas donde se tienen

ALGORITMOS GENTICOS
Operadores Genticos: Un modelo de
evolucin de formas vegetales

ALGORITMOS GENTICOS
Operadores Genticos: Un modelo de
evolucin de formas vegetales

ALGORITMOS GENTICOS
Operadores Genticos: Un modelo de
evolucin de formas vegetales

ALGORITMOS GENTICOS
Operadores Genticos: Un modelo de
evolucin de formas vegetales

ALGORITMOS GENTICOS
Reemplazo de la Poblacin

Pueden distinguirse dos modelos bsicos para realizar


el reemplazo de una poblacin simulada de una
generacin o iteracin del algoritmo a la siguiente:
En el modelo generacional, toda la poblacin es
reemplazada en cada generacin.
En el modelo estado-estacionario, solo pocos
individuos son reemplazados en cada generacin.
En un modelo intermedio, denominado de brecha
generacional, se define un porcentaje de los
individuos que sern reemplazados cada generacin.

ALGORITMOS GENTICOS
Operadores Genticos

ALGORITMOS GENTICOS
Operador Gentico: Seleccin

ALGORITMOS GENTICOS
Operador Gentico: Cruce

ALGORITMOS GENTICOS
Operador Gentico: Cruce

ALGORITMOS GENTICOS
Operador Gentico: Cruce

ALGORITMOS GENTICOS
Operador Gentico: Cruce

ALGORITMOS GENTICOS
Operador Gentico: Cruce

ALGORITMOS GENTICOS
Operador Gentico: Cruce

You might also like