Está en la página 1de 13

Repblica Bolivariana de Venezuela

Universidad Nacional Experimental Simn Bolvar

Departamento de Computacin y Tecnologa de la Informacin

Introduccin a la Computacin

CI-1114

Seccin 7

Computacin evolutiva (Algoritmos Bioinspirado)

Profesor: Integrantes:
Juan Carlos Pinto Leslie Soto 12-10482

Yisbeth Yarza 12-10541

Vicente Ramos 12-10054

Sartenejas, 14 de enero de 2014


Introduccin

Los algoritmos evolutivos y su estudio conforman la computacin evolutiva,


los algoritmos evolutivos, en sus diferentes variantes, han resultado muy exitosos
en la solucin de una amplia gama de problemas del mundo real. La computacin
evolutiva est compuesta por tres paradigmas los cuales son:

Programacin evolutiva.
Estrategias evolutivas.
Algoritmos genticos.

La programacin evolutiva es una rama de la computacin evolutiva y se


dice que enfatiza los nexos de comportamientos en padres e hijos en vez de
buscar emular operadores genticos especficos. En e caso de la programacin
evolutiva los individuos son ternas cuyos valores representan estados de un
autmata finito, cada terna est conformada mediante el valor del estado actual,
un smbolo del alfabeto utilizado y el valor del nuevo estado.

El segundo paradigma de la computacin evolutiva son las estrategias


evolutivas las cuales fueron desarrolladas en 1964 por estudiantes alemanes los
cuales tenan por objetivo resolver problemas hidronmicos de alto grado de
complejidad. Las estrategias evolutivas se dividen en simples y mltiples, las
simples no son consideradas como mtodos evolutivos pero son de gran utilidad
prctica y han sido utilizadas con algunas mejoras para resolver problemas reales
en diversas reas.

El ltimo paradigma de la computacin evolutiva son los algoritmos


genticos los cuales son mtodos sistemticos para la resolucin de problemas
de bsqueda y optimizacin que aplican a estos los mismos mtodos de la
evolucin biolgica: seleccin basada en la poblacin, reproduccin sexual y
mutacin.
Origen de la Computacin Evolutiva

Desde los aos 1930s, algunos investigadores comenzaron a ver el proceso


de evolucin de las especies como un proceso de aprendizaje, mediante el cual la
naturaleza dota a las especies de diferentes mecanismos, buscando hacerlas ms
aptas para sobrevivir. Partiendo de estos, no resulta entonces difcil de que
pueden desarrollarse algoritmos que traten de resolver problemas de bsqueda y
optimizacin guiados por el principio de la supervivencia del ms apto que
postulo Charles Darwin en su teora de la evolucin de las especies. Dichos
algoritmos son denominados, hoy en da, algoritmos evolutivos y su estudio
conforma la computacin evolutiva. Los algoritmos evolutivos, en sus diferentes
variantes, han resultado muy exitosos en la solucin de una amplia gama de
problemas del mundo real.

Neo-Darwinismo

La teora evolutiva propuesta originalmente por Charles Darwin en


combinacin con el seleccionismo de August Weismann y la gentica de Gregor
Mendel, se conoce hoy en da como el paradigma Neo-Darwiniano. El Neo-
Darwinismo establece que la historia de la mayora de la vida en nuestro planeta
puede ser explicada a travs de una serie de procesos estadsticos que actan
sobre y dentro de las poblaciones y especies: la reproduccin, la mutacin, la
competencia y la seleccin. La reproduccin es una propiedad obvia de todas las
formas de vida de nuestro planeta, pues de no contar con un mecanismo de este
tipo, la vida misma no tendra forma de producirse. En cualquier sistema que se
reproduce a s mismo continuamente y que est en constante equilibrio, la
mutacin est garantizada el contar con una cantidad finita de espacio para
albergar la vida en la Tierra garantiza la existencia de la competencia. La
seleccin se vuelve la consecuencia natural del exceso de organismos que han
llenado el espacio de recursos disponibles. La evolucin es, por lo tanto, el
resultado de estos procesos estocsticos (es decir, probabilsticos) fundamentales
que interactan entre s en las poblaciones, generacin tras generacin.

La computacin evolutiva

La computacin evolutiva es una rama de la inteligencia artificial que


involucra problemas de optimizacin combinatoria. Se inspira en los mecanismos
de la evolucin biolgica.

Principales paradigmas de la Computacin Evolutiva

El trmino computacin evolutiva o algoritmos evolutivos engloba una


serie de tcnicas inspiradas en los principios de la teora Neo-Darwiniana de la
evolucin natural. En trminos generales, para simular el proceso evolutivo en una
computadora se requiere:

Codificar las estructuras que se replicarn (o sea, una estructura de datos que se
utilice para almacenar a un individuo).

Operaciones que afecten a los individuos (tpicamente, se usa cruce y


mutacin).

Una funcin de aptitud que nos indique qu tan buena es una solucin con
respecto a las dems.

Un mecanismo de seleccin que implemente el principio de supervivencia del


ms apto de la teora de Darwin.

Aunque hoy en da es cada vez ms difcil distinguir las diferencias entre


los distintos tipos de algoritmos evolutivos existentes, por razones sobre todo
histricas, suele hablarse de tres paradigmas principales:
Programacin Evolutiva
Estrategias Evolutivas
Algoritmos Genticos

Cada uno de estos paradigmas se origin de manera independiente y con


motivaciones muy distintas, por lo que procederemos a describir brevemente a
cada uno de ellos de forma totalmente independiente.

Programacin evolutiva.

La programacin evolutiva es una rama de la Computacin Evolutiva. La


programacin evolutiva es prcticamente una variacin de
los algoritmos genticos, donde lo que cambia es la representacin de los
individuos. En el caso de la programacin evolutiva los individuos son
ternas (tripletas) cuyos valores representan estados de un autmata finito. Cada
terna est formada por:

El valor del estado actual;

Un smbolo del alfabeto utilizado;

El valor del nuevo estado.

Estos valores se utilizan, como en un autmata finito, de la siguiente


manera: Teniendo el valor del estado actual en el que nos encontramos, tomamos
el valor del smbolo actual y si es el smbolo de nuestra terna, nos debemos mover
al nuevo estado.

Bsicamente as funciona y as se representan los individuos en la


programacin evolutiva. Evidentemente las funciones de seleccin,
Cruce (crossover) y mutacin deben variar para adaptarse y funcionar con una
poblacin de individuos de este tipo.
La programacin evolutiva es una tcnica propuesta por Lawrence J. Fogel
en 1960, en la cual la inteligencia se ve como un comportamiento adaptivo. La
programacin evolutiva enfatiza los nexos de comportamiento entre padres e hijos,
en vez de buscar emular operadores genticos especficos (como en el caso de
los algoritmos genticos).

El algoritmo bsico de la programacin evolutiva es el siguiente:

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.

La programacin evolutiva es una abstraccin de la evolucin al nivel de las


especies, por lo que no se requiere el uso de un operador de recombinacin
(diferentes especies no se pueden cruzar entre s). Asimismo, usa seleccin
probabilstica.

Algunas aplicaciones de la Programacin Evolutiva son:

Prediccin

Generalizacin

Juegos

Control automtico

Problema del viajero

Planeacin de rutas

Diseo y entrenamiento de redes neuronales

Reconocimiento de patrones
Perspectiva Histrica de la programacin evolutiva.

Estaba dirigida a producir inteligencia ya que la inteligencia se vea como


comportamiento adaptivo, por ende la prediccin del entorno se vea como
requisito para comportamiento adaptivo. En consecuencia la capacidad de
predecir es clave para un comportamiento inteligente.

Programacion Evolutiva Moderna.

En general no tiene una representacin predefinida

Consecuentemente: no hay una mutacin predefinida (en general debe


corresponder de alguna manera con la representacion elegida)

Aplica auto-adaptacion al operador de mutacion

Estrategias evolutivas.

Las estrategias evolutivas fueron desarrolladas en 1964 por un grupo de


estudiantes alemanes de ingeniera encabezado por Ingo Rechenberg y Hans-
Paul Schwefel. Su objetivo era resolver problemas hidrodinmicos de alto grado
de complejidad.

Esta tcnica esta bsicamente enfocada hacia la optimizacin paramtrica.


En esencia son mtodos estocsticos con paso adaptativo, que permiten resolver
problemas de optimizacin paramtrica. A este mtodo se le han agregado
procedimientos propios de la computacin evolutiva, que lo han convertido en un
paradigma ms de dicha metodologa. Con tal mezcla, las EEs pueden definirse
como algoritmos evolutivos enfocados hacia la optimizacin paramtrica, teniendo
como caractersticas principales que utilizan una representacin a travs de
vectores reales, una seleccin determinstica y operadores genticos especficos
de cruce y mutacin. Adems, su objetivo fundamental consiste en encontrar el
valor real de un vector de N dimensiones.

Las EEs pueden dividirse en dos tipos: Estrategias Evolutivas Simples y


Estrategias Evolutivas Mltiples.
EEs Simples.

Son consideradas como procedimientos estocsticos de optimizacin


paramtrica con paso adaptativo, esta caracterstica las hace similares al temple
simulado. En este caso, se hace evolucionar un solo individuo usando nicamente
a la mutacin como operador gentico. Son relativamente sencillas, y se
denominan tambin EEs de dos miembros. Debido a que evoluciona un solo
individuo a la vez, no son consideradas estrictamente como mtodos evolutivos. A
pesar de ser muy sencillas, son de gran utilidad prctica y han sido utilizadas, con
algunas mejoras, para resolver problemas reales en diversas reas.

EEs Mltiples.

Surgen como respuesta a las debilidades de las EEs simples, las cuales
tienden a converger hacia subptimos. En las EEs mltiples existen mltiples
individuos (poblacin), y se producen en cada generacin varios nuevos
individuos, usando tanto mutacin como cruce (tambin puede usarse cualquier
otro operador). Se usa normalmente e cruce promedio, el cual genera un nico
descendiente de dos padres, promediando los vectores de estos. En cuanto a los
criterios de reemplazo, siempre se usa un esquema determinstico pudindose
utilizar una estrategia de insercin o de inclusin.

Algunas aplicaciones de las Estrategias Evolutivas son:

Problemas de rutas y redes

Bioqumica

ptica

Diseo en ingeniera

Magnetismo
Algoritmos Genticos

Los Algoritmos Genticos fueron denominados originalmente planes


reproductivos genticos, fueron desarrollados por John H. Holland a principios de
los 1960s, motivado por su inters en resolver problemas de aprendizaje de
mquina.

Un algoritmo gentico es un mtodo de bsqueda que imita la teora de la


evolucin biolgica de Darwin para la resolucin de problemas. Para ello, se parte
de una poblacin inicial de la cual se seleccionan los individuos ms capacitados
para luego reproducirlos y mutarlos para finalmente obtener la siguiente
generacin de individuos que estarn ms adaptados que la anterior generacin.

Los algoritmos genticos son mtodos sistemticos para la resolucin de


problemas de bsqueda y optimizacin que aplican a estos los mismos mtodos
de la evolucin biolgica: seleccin basada en la poblacin, reproduccin sexual y
mutacin

El algoritmo gentico enfatiza la importancia de la cruza sexual como


operador principal sobre el de la mutacin como operador secundario y usa
seleccin probabilstica. El algoritmo bsico es el siguiente:

Generar (aleatoriamente) una poblacin inicial.


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.
La representacin tradicional es la binaria. A la cadena binaria se le llama
cromosoma. Al bloque de bits que codifica una sola variable del problema se le
denomina gen y al valor dentro de cada posicin cromosmica se le llama alelo.

Para poder aplicar el algoritmo gentico se requiere de los 5 componentes


bsicos siguientes:

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.)

Algunas aplicaciones de los Algoritmos Genticos son las siguientes:

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

Ventajas de las tcnicas evolutivas.


Es importante destacar las diversas ventajas que presenta el uso de
tcnicas evolutivas para resolver problemas de bsqueda y optimizacin:
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.
Conclusin

La computacin evolutiva toma a la naturaleza como una increble


solucionadora de problemas de optimizacin, as como de reconocimiento y
bsqueda. Por ende es necesario mencionar a los algoritmos genticos o
bioinspirados, ya que estos son una forma de resolver problemas, esto inspirado
en los seres vivos, ya que los animales y las plantas a lo largo de su evolucin han
logrado adaptarse al conjunto de cambios a su entorno, cambiando su forma de
vida o o en otros casos cambiando su estructura .Los algoritmos evolutivos tienen
tres paradigmas los cuales son: Programacin evolutiva, estrategias evolutivas y
algoritmos genticos.

La programacin evolutiva es la variacin de los algoritmos genticos en el


cual la inteligencia se ve como un comportamiento adaptivo, fue propuesta por
Lawrence Fogel en 1960

. Las estrategias evolutivas son algoritmos evolutivos enfocados hacia la


optimizacin paramtrica, su objetivo fundamental consiste en encontrar el valor
real de un vector de N dimensiones. Las aplicaciones de las estrategias evolutivas
son en la bioqumica, ptica, diseo en ingeniera, magnetismo y problemas de
rutas y redes. Los algoritmos genticos fueron desarrollados por John Holland y se
define como un mtodo que imita a la teora de la evolucin de Darwin para la
resolucin de problemas y su aplicacin es en la optimizacin, aprendizaje de
mquina, reconocimiento de patrones, predicciones entre otros.

Los algoritmos evolutivos ayudan a resolver diferentes problemas, su


estudia conforma la computacin evolutiva, muchas personas suelen utilizar los
algoritmos evolutivos ya que han resueltos millones de problemas del mundo real.
La computacin evolutiva es una rama de la inteligencia artificial que involucra
problemas de optimizacin combinatoria y se inspira en los mecanismos de
la evolucin biolgica.
Bibliografa.

Una introduccin a la computacin evolutiva y algunas de sus aplicaciones


en Economa y Finanzas, publicado en revista de mtodos cuantitativos para la
economa y la empresa. Autor: Coello, Carlos. Diciembre 2006.

Programacin evolutiva, publicado en algoritmogeneticouba.blogspot.


Autor Contreras, Eduardo. Noviembre 2012.

Programacin evolutiva. Algoritmos evolutivos y memeticos. Curso de


Postgrado. Junio 2004

http://www.exa.unicen.edu.ar/escuelapav/cursos/bio/l4.pdf

Programacin evolutiva. Autor Cataln Edgar, publicado en Prezi.


Diciembre 2012.

También podría gustarte