La computación evolutiva:
Es una rama de la computación
emergente que engloba técnicas que simulan la evolución natural, y constituye
un enfoque alternativo para abordar problemas complejos de búsqueda y
aprendizaje a través de modelos computacionales de procesos evolutivos. Parte
de un hecho observado en la naturaleza: los organismos vivos poseen una
destreza consumada en la resolución de los problemas que se les presentan, y
obtienen sus habilidades, casi sin proponérselo, a través del mecanismo de la
evolución natural.
La evolución se produce, en
casi todos los organismos, como consecuencia de dos procesos primarios: la
selección natural y la reproducción (cruce). La evolución natural es un proceso
de cambio sobre una población reproductiva que contiene variedades de
individuos con algunas características heredables y en donde algunas variedades
difieren en su aptitud (éxito reproductivo).
La computación evolutiva es
una de las ramas de la Inteligencia Artificial que se aplica para la
resolución de problemas de optimización combinatoria. La CE está
inspirada en los mecanismos de evolución biológica propuestos por Darwin,
Medel y Lamark.
Darwin propuso la "Selección
natural de los más adaptados"
Medel propuso la "Teoría
corpuscular de la herencia"
Lamark propuso la "Herencia
de caracteres adquiridos".
Los algoritmos genéticos (AGs) junto con las
estrategias evolutivas y la programación evolutiva constituyen un nuevo enfoque
a la solución de numerosos problemas de optimización y búsqueda. Esta técnica está
en el contexto de una nueva ciencia denominada computación evolutiva.
Se propone a los AGs como una técnica
computacional que intenta imitar el proceso evolutivo de la naturaleza, para el
diseño de sistemas artificiales adaptativos.
Computación Evolutiva y Optimización
Un problema de optimización requiere hallar
un conjunto de parámetros de forma que se cumpla un cierto criterio de calidad
que se quiere optimizar, es decir, maximizando o minimizando una cierta función
de evaluación f(x) dada.
Los algoritmos evolutivos son especialmente
útiles cuando nos encontramos con problemas difíciles o altamente irresolubles,
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.
Algoritmos Evolutivos Este término es
empleado para describir sistemas de resolución de problemas de optimización o
búsqueda basados en el ordenador empleando modelos computacionales de algún
mecanismo de evolución conocido como elemento clave en su diseño e
implementación. Los algoritmos evolutivos trabajan con una población de
individuos, que representan soluciones candidatas a un problema.
Esta población se somete a ciertas
transformaciones y después a un proceso de selección, que favorece a los
mejores. Cada ciclo de transformación y selección constituye una generación, de
forma que después de cierto número de generaciones se espera que el mejor
individuo de la población esté cerca de la solución buscada. Los algoritmos
evolutivos combinan la búsqueda aleatoria, dada por las transformaciones de la
población, con una búsqueda dirigida dada por la selección.
Los algoritmos evolutivos son especialmente
útiles cuando nos encontramos con problemas difíciles o altamente irresolubles,
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.
Características:
La característica fundamental de los
algoritmos evolutivos radica en los métodos de generación de soluciones: se
parte de un conjunto de soluciones iniciales y se van empleando un conjunto de
operadores de búsqueda para ir refinando la solución final. Para realizar dicho
refinamiento de las soluciones, se pueden utilizar técnicas clásicas Dcomo el
seguimiento del gradiente (Hill Climbing) D complementadas con mecanismos
biológicos de exploración: población de soluciones, operadores genéticos.
Los algoritmos bioinspirados modelan (de
forma aproximada) un fenómeno existente en la naturaleza, constituyendo así una
metáfora biológica para resolver problemas. Son algoritmos no determinísticos,
que a menudo presentan, implícitamente, una estructura paralela (múltiples
agentes), y son adaptativos (utilizan realimentación con el entorno para
modificar el modelo y los parámetros). Algunos modelos de computación
bioinspirados son:
Algoritmos evolutivos.
Redes neuronales.
Algoritmos inmunológicos
Algoritmos basados en inteligencia de
enjambres (swarm intelligence) y dentro de ellos, los algoritmos basados en
colonias de hormigas.
Estrategias Evolutivas:
Técnica desarrollada por Rechenberg y
Schwefel y extendida por Herdy, Kursawe, Ostermeier, Rudolph, y otros, fue
diseñada inicialmente con la meta de resolver problemas de optimización
discretos y continuos, principalmente experimentales y considerados difíciles.
Trabaja con vectores de números reales Dcon desviaciones estándarD que
codifican las posibles soluciones de problemas numéricos.
Utiliza recombinación o cruce (crossover
aritmético), mutación y la operación de selección, ya sea determinística o
probabilística, elimina las peores soluciones de la población y no genera copia
de aquellos individuos con una aptitud por debajo de la aptitud promedio.
Programación Evolutiva:
Técnica introducida por Fogel y extendida por
Burgin, Atmar y otros, inicialmente fue diseñada como un intento de crear
inteligencia artificial. La representación del problema se realiza mediante
números reales (cualquier estructura de datos), y emplea los mecanismos de
mutación y selección. El procedimiento es muy similar a las estrategias
evolutivas con la diferencia de que no emplea la recombinación, de tal forma
que son denominadas en conjunto algoritmos evolutivos como una manera de
diferenciarlas de los algoritmos genéticos.
Algoritmos Genéticos:
Modelan el proceso de evolución como una
sucesión de frecuentes cambios en los genes, con soluciones análogas a
cromosomas. Trabajan con una población de cadenas binarias para la
representación del problema, y el espacio de soluciones posibles es explorado
aplicando transformaciones a estas soluciones candidatas tal y como se observa
en los organismos vivientes: cruce, inversión y mutación. Como método de
selección emplean en mecanismo de la ruleta (a veces con elitismo).
Constituyen el paradigma más completo de la
computación evolutiva ya que resumen de modo natural todas las ideas
fundamentales de dicho enfoque. Son muy flexibles ya que pueden adoptar con
facilidad nuevas ideas, generales o específicas, que surjan dentro del campo de
la computación evolutiva. Además, se pueden hibridar fácilmente con otros
paradigmas y enfoques, aunque no tengan ninguna relación con la computación
evolutiva. Se trata del paradigma con mayor base teórica.
Programación genética:
Desarrollada por Koza, los individuos son
programas o autómatas de longitud variable, descritos mediante Expresiones-S de
LISP representadas habitualmente como árboles, y como operadores de variación
emplea crossover y modificación, además de mecanismos de selección.
Referencias
Bibliográficas:
-- D.Sc. Yván Jesús Túpac
Valdivia (2013) Computarizan evolutiva, principios y aplicaciones,
Recuperado el 23 de Septiembre de 2017,
de http://www.ucsp.edu.pe/~ytupac/speaks/2013/CIS-DAY_CompEvolApp.pdf
-- Fernando Berzal. (s.f)
Computación Evolutiva Departamento de ciencias de la Computación Recuperado el
23 de Septiembre de 2017,
de http://elvex.ugr.es/decsai/iaio/slides/G1%20Evolutionary%20Computation.pdf
-- Alfonso Mateos Andaluz
(N.I.A) Inteligencia de Redes de Comunicación, Algoritmos Evolutivos y
Genéticos Recuperado el 23 de Septiembre de 2017,
de http://www.it.uc3m.es/~jvillena/irc/practicas/estudios/aeag
-- Caparrini, F. S.
(s.f.). Algoritmos Genéticos y Computación Evolutiva. Recuperado el 23 de
Septiembre de 2017, de http://www.cs.us.es/~fsancho/?e=65
-- Coello, D. C.
(s.f.). Introducción a la Computación Evolutiva. Recuperado el 24 de
Septiembre de 2017, de
http://posgrado.itlp.edu.mx/mcastro/CE/Introducci%F3n%20a%20la%20Computaci%F3n%20Evolutiva%20Coello/clase3-2011.pdf





