Anda di halaman 1dari 30

COMPUTACIN

EVOLUTIVA

HISTORIA
La evolucin natural ha sido vista como un proceso de aprendizaje desde los aos 30 del siglo XX, con el trabajo del fisilogo estadounidense Walter
Bradford Cannon (1871-1945):
The Wisdom of the Body (1932

La idea de estudiar la evolucin visualizando la distribucin de los grados de adaptacin [fitness] fue propuesta por el genetista Sewall Wright (1889-1988)
en 1932.

Alan Mathison Turing (1912-1954) reconoci tambin una conexin entre la evolucin y el aprendizaje automtico en un artculo de 1950:

En 1957, el estadstico ingls George E. P. Box, FRS (1919-2013) propuso un enfoque evolutivo para la optimizacin de la produccin industrial.
Su tcnica, denominada EVOP [Evolutionary Operation] se sigue utilizando en la industria.
A finales de los 50, R.M. Friedberg fue de los primeros en intentar evolucionar programas de ordenador usando mutacin y seleccin, aunque sus
experimentos no fueron muy exitosos y
fueron muy criticados en su poca.

HISTORIA
George J. Friedman fue el primero en proponer una aplicacin de las tcnicas evolutivas a la robtica: en su tesis de
maestra (UCLA, 1956) propuso evolucionar una serie de circuitos decontrol similares a las redes neuronales actuales.
Nils Aall Barricelli (1912-1993) realiz las primeras simulaciones de un sistema evolutivo en una computadora digital,
entre 1953 y 1956, en el Instituto de Estudios Avanzados de Princeton.
Michael Earl Conrad (1941-2000) y Howard Hunt Pattee (1926-) fueron de los primeros en simular un ecosistema
artificial jerrquico en el que un conjunto de organismos unicelulares estaban sujetos
a una estricta ley de conservacin de la materia que les induca a competir por sobrevivir.
Conrad propuso tambin un modelo de circuitos de aprendizaje evolutivo en el cual especul sobre la posibilidad
de que el cerebro use el mismo tipo de mecanismos
que usa la evolucin para aprender (uno de los primeros intentos de utilizar algoritmos evolutivos para entrenar
redes neuronales).
El bilogo Thomas S. Ray desarroll, a principios de los 90, un simulador en el que evolucionaban programas en
lenguaje ensamblador, los cuales competan por los ciclos de CPU de un ordenador a la vez que intentaban
reproducirse (o sea, copiarse a s mismos) en la memoria del ordenador.

DEFINICIN
La computacin evolutiva es una de las ramas de laInteligencia
Artificialque se aplica para la resolucin de problemas deoptimizacin
combinatoria. LaComputacion evolutiva est inspirada en los mecanismos
de evolucin biolgica propuestos porDarwin, Medel y Lamark.
De manera general la computacin evolutiva toma como base las ideas de
la evolucin propuestas porCharles Darwiny en los descubrimientos
realizados porGregor Mendelen el campo de la gentica.
La inteligencia artificial es una rama que trata de imitar a la inteligencia
natural y por tanto lacomputacin evolutivase basa en imitar la evolucin
biolgica tal y como la entendemos hoy en dia.
La CE trata de resolver problemas de optimizacin combinatoria, con el fin
de encontrar el mejor resultado al problemaLa computacin evolutiva se
basa en la llamada metfora evolutiva.

FUNDAMENTOS
La unidad fundamental de informacin en los seres vivos es el gen. El gen es parte de
una estructura denominada cromosoma. El material gentico de un individuo se
conoce como el genotipo. Su manifestacin como organismo, que determina o
afecta la propiedad visible se denomina fenotipo. Los organismos vivos pueden ser
visualizados como un dual de su genotipo (la codificacin gentica) y de su fenotipo
(la propiedad visible).
Un problema de optimizacin requiere hallar un conjunto de parmetros de forma
que se cumpla un cierto criterio de calidad que se quiere optimizar.
La computacin evolutiva es especialmente til cuando se enfrenta problemas
difciles o complejos, como lo son aquellos caracterizados por una alta
dimensionalidad, multimodalidad, fuerte no linealidad, no diferenciabilidad, presencia
de ruido y cuando se trata con funciones dependientes del tiempo.
La computacin evolutiva comprende aplicaciones basadas en los mecanismos de la
evolucin natural tales como la gentica biolgica y la seleccin natural.

METFORA EVOLUTIVA
Unapoblacinde individuos coexiste en un
determinadoentornocon recursos limitados.
Lacompeticinpor los recursos provoca laseleccinde aquellos
individuos que estnmejor adaptadosal entorno.
Estos individuos se convierten en los progenitores de nuevos
individuos a travs de procesos demutacinyrecombinacin.
Los nuevos individuos pasan a competir por su supervivencia.
Con el paso del tiempo, estaseleccin naturalprovoca el
incremento en la calidad de los individuos de la poblacin.

ESTRATEGIAS PARA LA RESOLUCIN


DE PROBLEMAS DE OPTIMIZACIN
Procesos de
Bsqueda Evolutiva
Estrategias
Evolutivas (EE):
Programacin
Evolutiva (PE):

i. Fue propuesta por Alan Turing en el


ao 1948.
i. Propuesto por Rechenberg en 1964.
Representan a los individuos con
Vectores reales.
i. Propuesto por Fogel en 1965. Utilizan
mquinas de estado finito.

Algoritmos Genticos i. Propuesto por Holland en 1975.


(AG):
Representan a los individuos como
Programacin
Gentica (PG):

cadenas binarias.
i. Propuesto por Koza en 1992. Utilizan
Arboles LISP.

ALGORITMO EVOLUTIVO
Describe sistemas de resolucin de problemas de optimizacin o bsqueda
basados en el ordenador empleando modelos computacionales de algn
mecanismo de evolucin conocido como elemento clave en su diseo e
implementacin.
Trabaja con una poblacin de individuos, que representan soluciones
candidatas a un problema. Esta poblacin se somete a ciertas
transformaciones y despus a un proceso de seleccin, que favorece a los
mejores.
Cada ciclo de transformacin y seleccin constituye una generacin, de
forma que despus de cierto nmero de generaciones se espera que el
mejor individuo de la poblacin est cerca de la solucin buscada.
Combinan la bsqueda aleatoria, dada por las transformaciones de la
poblacin, con una bsqueda dirigida dada por la seleccin.

PRINCIPALES COMPONENTES DE UN
ALGORITMO EVOLUTIVO:

Poblacin de individuos, que son una


representacin (no necesariamente directa)
de posibles soluciones.
Procedimiento de seleccin basado en la
aptitud de los individuos para resolver el
problema.
Procedimiento de transformacin para
construir nuevos individuos a partir de los
anteriores.

ESQUEMA DE UN ALGORITMO
EVOLUTIVO:

PSEUDO-CDIGO DE UN
ALGORITMO EVOLUTIVO:

PRINCIPALES PARADIGMAS DE LA
COMPUTACIN EVOLUTIVA
Los paradigmas de la computacin evolutiva difieren de los
mtodos tradicionales, en cuatro aspectos fundamentales:
Trabajan con un cdigo del conjunto de parmetros. Este cdigo es
una cadena de caracteres de valores binarios o variables de valor
real.
Realizan la bsqueda de la potencial solucin en una poblacin de
puntos, no en un slo punto.
Utilizan la informacin de una funcin objetivo, no derivadas u otro
conocimiento auxiliar.
Usan reglas probabilsticas de transicin, en lugar de reglas
determinsticas.

PROGRAMACIN
EVOLUTIVA
Fue utilizada por primera vez por Lawrence J. Fogel en los EE.UU. en los 1960 con el fin de
utilizar la evolucin simulada como un proceso de aprendizaje para generar inteligencia
artificial. Actualmente, es un dialecto de la amplia gama de la computacin evolutiva
Se deriva de la simulacin del comportamiento adaptativo propio de un proceso evolutivo.
Se caracteriza por su nfasis en el desarrollo de modelos de comportamiento. Trabaja en
el espacio del fenotipo, es decir, la evolucin es en el comportamiento observable.

Se utiliza usualmente para resolver problemas de prediccin. Emplea mquinas de estados


finitos para la prediccin y la evolucin.
El entorno es descrito como una secuencia de smbolos tomados de un alfabeto finito.
El algoritmo evolutivo opera sobre la secuencia de smbolos observados, de tal forma que
produce un smbolo de salida que maximiza el resultado, tomando en cuenta el siguiente
smbolo que aparecer (prediccin) y una funcin de costo definida que gua el proceso.

EL ALGORITMO BSICO DE LA PROGRAMACIN


EVOLUTIVA ES EL SIGUIENTE:
Su
operador

Generar aleatoriamente una poblacin inicial.

Se aplica mutacin.

Se calcula la aptitud de cada hijo y se usa un


proceso de seleccin mediante torneo
(normalmente estocstico) para determinar
cules sern las soluciones que se retendrn.

principal
es
la
mutacin,
los
miembros de la
poblacin
son
vistos como parte
de una especie
especfica en lugar
de miembros de la
misma
especie,
usa
seleccin
probabilstica

PSEUDOCDIGO DE ALGORITMO PARA


PROGRAMACIN EVOLUTIVA

EJEMPLO

En este autmata pueden ahora aplicarse cinco diferentes tipos de mutaciones:


cambiar un smbolo de salida, cambiar una transicin, agregar un estado, borrar un
estado y cambiar el estado inicial. El objetivo es hacer que el autmata reconozca
un cierto conjunto de entradas (o sea, una cierta expresin regular) sin equivocarse
ni una sola vez.

ALGUNAS APLICACIONES DE LA
PROGRAMACIN EVOLUTIVA
Prediccin
Generalizacin
Juegos
Control automtico
Problema del viajero
Planeacin de rutas
Diseo y entrenamiento de redes neuronales
Reconocimiento de patrones

PROGRAMACION
GENTICA

La programacin gentica est diseada para evolucionar


programas de computadora,
genticamente. La programacin gentica utiliza rboles para
representar a los programas sujetos a evolucin:
Las funciones definidas para el problema aparecen en los nodos
(conjunto interno).
Las variables de estado y las constantes estn localizadas en las
hojas del rbol (conjunto terminal).

PSEUDOCDIGO DE ALGORITMO PARA


PROCEDIMIENTO DE PROGRAMACIN GENTICA

ALGORITMOS GENTICOS
Son mtodos adaptativos que se derivan de la simulacin de los procesos
genticos naturales. Comprenden los mecanismos de seleccin , cruce y
mutacin. Se utilizan para resolver problemas de bsqueda y
optimizacin.
Enfatizan la importancia de la cruza sexual (operador principal) sobre el
de la mutacin (operador secundario) y usa seleccin probabilstica. El
Generar (aleatoriamente) una poblacin inicial.
algoritmo
bsico es el siguiente:
Calcular la aptitud de cada individuo.
Seleccionar (probabilsticamente) con base a la aptitud.
Aplicar operadores genticos (cruza y mutacin) para generar la
siguiente poblacin.
Ciclar hasta que cierta condicin se satisfaga.

COMPONENTES BSICOS DE
ALGORITMOS GENTICOS
Una representacin de las soluciones potenciales del problema.
Una forma de crear una poblacin inicial de posibles soluciones
(normalmente un proceso aleatorio).
Una funcin de evaluacin que clasifique las soluciones en
trminos de su aptitud.
Operadores genticos que alteren la composicin de los hijos que
se producirn para las siguientes generaciones (normalmente cruce
sexual y mutacin).
Valores para los diferentes parmetros que utiliza el algoritmo
gentico (tamao de la poblacin, probabilidad de cruza,
probabilidad de mutacin, nmero mximo de generaciones, etc.)

PSEUDOCDIGO DE ALGORITMO PARA


ALGORITMOS GENTICOS SIMPLE

APLICACIONES DE
ALGORITMOS GENTICOS
Optimizacin (estructural, de topologas, numrica, combinatoria,
etc.)
Aprendizaje de mquina (sistemas clasificadores)
Bases de datos (optimizacin de consultas)
Reconocimiento de patrones (por ejemplo, imgenes o letras)
Generacin de gramticas (regulares, libres de contexto, etc.)
Planeacin de movimientos de robots
Prediccin

ESTRATEGIAS DE
EVOLUCIN
Estn basadas en el concepto de meta evolucin y, al igual que la programacin evolutiva, enfatizan el
aspecto fenotpico del proceso evolutivo.
A pesar de utilizar las operaciones de mutacin y cruce, que en este caso se las denomina operaciones de
recombinacin, las perspectivas de ellas son diferentes a las utilizadas por los algoritmos genticos o la
programacin evolutiva:
Operaciones de mutacin o recombinacin que caen fuera de una ventana de evolucin predefinida por la
funcin de optimizacin, no son de utilidad.
El ajuste dinmico del tamao de la mutacin a una ventana de evolucin tambin dinmica, favorece la
meta evolucin.
A diferencia de los algoritmos genticos, manipulan los valores de las variables, durante la recombinacin:
Forma un descendiente utilizando los datos de dos padres seleccionados aleatoriamente. El valor de la
variable del descendiente, es igual al valor intermedio de los valores de sus padres.

El nmero de descendientes (N) es mayor que el nmero de padres (M), en una relacin tpica N/M igual a 7.

PSEUDOCDIGO DE
ALGORITMO PARA
ESTRATEGIAS DE
EVOLCION

APLICACIONES DE
ALGORITMO PARA
ESTRATEGIAS DE EVOLCION
Problemas de rutas y redes
Bioqumica
ptica
Diseo en ingeniera
Magnetismo

CUADRO DE LOS PARADIGMAS DE LA


COMPUTACIN EVOLUTIVA
Algotirmo

Representacin
del problema

Operadores
variacion

de

Mtodos
seleccion

de

Algoritmos
genticos
(Goldberg)

Cadena binaria

Mutacin
crossover

Seleccin
de
rueda de ruleta (a
veces
con
elitismo)

Estrategias
de
Evolucin
(Rechenberg/Sc
hwefel)

Vector de reales +
desviaciones
estndar

Mutacin
gaussiana
y
crossover
aritmtico
(diferentes tipos)

Diferentes tipos de
seleccin:
lambda,mu;
lambda+mu..

Programacin
evolutiva (Fogel)

Nmeros reales

Mutacin

Diversos tipos de
seleccin

Programacin
gentica (Koza)

Expresiones-S de
LISP
representadas
habitualmente
como rboles

Crossover, algo de
mutacin

Diversos tipos de
seleccin

VENTAJAS DE LAS
TCNICAS EVOLUTIVAS
Simplicidad Conceptual.
Amplia aplicabilidad.
Superiores a las tcnicas tradicionales en muchos problemas del
mundo real.
Tienen el potencial para incorporar conocimiento sobre el dominio y
para hibridarse con otras tcnicas de bsqueda/optimizacin.
Pueden explotar fcilmente las arquitecturas en paralelo.
Son robustas a los cambios dinmicos.

APLICACIONES DE LA COMPUTACIN
EVOLUTIVA
CAD System: Una de las mayores aplicaciones comerciales fue incluida por General Electric en su sistema de diseo asistido por computador EnGENEous. Este sistema
fue diseado como una herramienta independiente del dominio, combinando un conjunto de algoritmos de optimizacin tradicionales, con la conveniencia de un sistema
experto para especificar restricciones de diseo e informacin de control, con la perspectiva de optimizacin global de los algoritmos evolutivos.
Sistema Identikit: El sistema Faceprints desarrollado por el departamento de psicologa de la New Mexico State University, facilita la generacin de rostros de
sospechosos, ayudando a los testigos a evaluar en una escala subjetiva de 0 a 10, veinte rostros generados por el algoritmo evolutivo. La informacin ingresada por los
testigos es procesada genticamente por el algoritmo para generar nuevos rostros que poco a poco se asemejan a los sospechosos buscados
Aplicaciones Financieras: Una compaa en Nuevo Mxico desarroll un grupo de herramientas para prediccin usando series de tiempo y otras para inversiones, en las
que los algoritmos genticos juegan un papel importante. Estructuras en forma de reglas son evolucionadas y comparadas con datos de series de tiempo para predecir si
las estas crecern o no. Las reglas son entrenadas con datos financieros reales, utilizando una funcin objetivo que trata de minimizar el error de la prediccin
Diseo de Redes de Telecomunicaciones: Los algoritmos evolutivos han sido aplicados para obtener soluciones cuasi-ptimas al problema del rbol probabilstico de
mnimo despliegue. Este problema tiene aplicaciones en el diseo de redes de telecomunicaciones y en el diseo de circuito integrados (VLSI)
Optimizacin de Corte de Material: Un algoritmo evolutivo de mltiples opciones se utiliz para minimizar el desperdicio de material producido al cortar piezas para
manufactura y otros costos de produccin
Programacin de Transporte de Mltiples Productos por un Oleoducto: La optimizacin del transporte de mltiples productos por un oleoducto es un problema de
optimizacin difcil. Existen varias restricciones a considerar como el volumen de los lquidos a transportar para que llene la tubera, el almacenamiento disponible, la
demanda de los productos, entre otros. Los algoritmos evolutivos han sido utilizados con xito en este tipo de aplicaciones

CONCLUSIONES
La computacin evolutiva se inspira en la inteligencia artificial

Anda mungkin juga menyukai