Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aeag PDF
Aeag PDF
Comunicaciones
Ingeniera de Telecomunicacin
Algoritmos Evolutivos y
Algoritmos Genticos
As como la seleccin natural trabaja exclusivamente para y por el bien de cada ser
viviente, todas las dotes mentales y corporales tienden a progresar en direccin a la
perfeccin.
Charles Darwin, El Origen de las Especies
Introduccin
Muchos problemas de optimizacin que aparecen en los mbitos de las ingenieras
son muy difciles de solucionar por medio de tcnicas tradicionales, por lo que a
menudo se aplican algoritmos evolutivos, inspirados en la naturaleza, que recogen un
conjunto de modelos basados en la evolucin de los seres vivos.
El inicio de la utilizacin de las estrategias evolutivas en la solucin de este tipo de
problemas data del ao 1960 cuando John Holland plante la posibilidad de incorporar
los mecanismos naturales de seleccin y supervivencia a la resolucin de problemas de
Inteligencia Artificial (Adaptation in Natural and Artificial Systems). Esta
investigacin fue fundamentalmente acadmica, siendo su realizacin prctica en
aquella poca muy difcil. La simulacin de procesos de evolucin natural de las
especies da como resultado una tcnica de optimizacin estocstica que posteriormente
fue llamada algoritmos evolutivos, y que fueron enmarcados dentro de las tcnicas no
convencionales de optimizacin para problemas del mundo real. A partir de la creacin
de estas estrategias evolutivas aparecieron otras vas de investigacin como son:
Algoritmos Genticos (Goldberg), Programacin Gentica (Koza), Programacin
Evolutiva (Fogel), y Estrategias de Evolucin (Rechenberg/Schwefel), en donde la
estrategia de evolucin ms conocida hoy en da son los algoritmos genticos.
Los algoritmos genticos constituyen una tcnica poderosa de bsqueda y
optimizacin con un comportamiento altamente paralelo, inspirado en el principio
darviniano de seleccin natural y reproduccin gentica. En este principio de seleccin
de los individuos ms aptos, tienen mayor longevidad y por tanto mayor probabilidad de
reproduccin. Los individuos descendientes de estos individuos tienen una mayor
posibilidad de transmitir sus cdigos genticos a las prximas generaciones.
La aparicin de computadores de grandes prestaciones y bajo coste a mediados de los
80 permite aplicar los algoritmos evolutivos a la resolucin de ciertos problemas de
ingeniera que antes eran inabordables, y a partir de entonces el desarrollo de estas
tcnicas ha sido continuo. Actualmente los algoritmos genticos han cobrado gran
importancia por su potencial como una tcnica importante para la solucin de problemas
complejos, siendo aplicados constantemente en la ingeniera. Las aplicaciones de los
algoritmos genticos han sido muy conocidas en reas como diseo de circuitos, clculo
de estrategias de mercado, reconocimiento de patrones, acstica, ingeniera
aeroespacial, astronoma y astrofsica, qumica, juegos, programacin y secuenciacin
de operaciones, contabilidad lineal de procesos, programacin de rutas, interpolacin de
superficies, tecnologa de grupos, facilidad en diseo y localizacin, transporte de
materiales y muchos otros problemas que involucran de alguna manera procesos de
optimizacin.
Modelos de computacin bio-inspirados
En este apartado se pretende situar en un marco ms general los temas que se tratarn
en ms profundidad, y el campo en el que nos situamos es el de la computacin
bio-inspirada.
La computacin bio-inspirada se basa en emplear analogas con sistemas naturales o
sociales para disear mtodos heursticos no determinsticos de bsqueda, de
aprendizaje, de imitacin de comportamiento, etc.
En la actualidad los algoritmos bio-inspirados (ABs) son uno de los campos ms
prometedores de investigacin en el diseo de algoritmos.
Los algoritmos bioinspirados modelan (de forma aproximada) un fenmeno existente
en la naturaleza, constituyendo as una metfora biolgica para resolver problemas. Son
algoritmos no determinsticos, que a menudo presentan, implcitamente, una estructura
paralela (mltiples agentes), y son adaptativos (utilizan realimentacin con el entorno
para modificar el modelo y los parmetros).
Algunos modelos de computacin bioinspirados son:
Algoritmos evolutivos
Redes neuronales
Algoritmos inmunolgicos
Algoritmos basados en inteligencia de enjambres (swarm intelligence) y
dentro de ellos, los algoritmos basados en colonias de hormigas.
Computacin evolutiva
La computacin evolutiva es una rama de la computacin emergente que engloba
tcnicas que simulan la evolucin natural, y constituye un enfoque alternativo para
abordar problemas complejos de bsqueda y aprendizaje a travs de modelos
computacionales de procesos evolutivos.
Parte de un hecho observado en la naturaleza: los organismos vivos poseen una
destreza consumada en la resolucin de los problemas que se les presentan, y obtienen
sus habilidades, casi sin proponrselo, a travs del mecanismo de la evolucin natural.
La evolucin se produce, en casi todos los organismos, como consecuencia de dos
procesos primarios: la seleccin natural y la reproduccin (cruce). La evolucin natural
es un proceso de cambio sobre una poblacin reproductiva que contiene variedades de
individuos con algunas caractersticas heredables y en donde algunas variedades
difieren en su aptitud (xito reproductivo).
Fondo Histrico
En 1859, Darwin publica su libro El origen de las especies que levant agrias
polmica en el mundo cientfico por las revolucionarias teoras que sostenan que las
especies evolucionan acorde al medio, para adaptarse a ste.
De esta manera el universo pasaba de ser una creacin de Dios esttica y perfecta y
se planteaba como un conjunto de individuos en constante competicin y evolucin para
poder perpetuar su especie en el tiempo. Las especies se crean, evolucionan y
desaparecen si no se adaptan de forma que solo los mejores, los ms aptos, los que
mejor se adapten al medio sobreviven para perpetuar sus aptitudes.
De acuerdo con esta visin de la evolucin, la computacin ve en dicho marco un
claro proceso de optimizacin: se toman los individuos mejores adaptados mejores
soluciones temporales , se cruzan mezclan, generando nuevos individuos nuevas
soluciones que contendrn parte del cdigo gentico informacin de sus antecesores,
y el promedio de adaptacin de toda la poblacin se mejora.
Originada a finales de los aos 50 con los trabajos de Bremermann, Friedberg, Box y
otros, el campo permaneci en desconocimiento por tres dcadas debido a la ausencia
de una plataforma computacional poderosa y defectos metodolgicos de los primeros
mtodos (Fogel), hasta que la llegada de los nuevos trabajos de Holland, Rechenberg,
Schwefel y Fogel cambiaron lentamente el escenario. Hoy en da el incremento de su
empleo en la ciencia es exponencial.
La computacin evolutiva se ha convertido en un concepto general adaptable para
resolucin de problemas, en especial problemas difciles de optimizacin, gracias entre
otros factores a que aade flexibilidad y adaptabilidad en la resolucin, combinables
con la robustez y las ventajas de la bsqueda global.
Computacin Evolutiva y Optimizacin
Un problema de optimizacin requiere hallar un conjunto de parmetros de forma
que se cumpla un cierto criterio de calidad que se quiere optimizar, es decir,
maximizando o minimizando una cierta funcin de evaluacin f(x) dada.
Los algoritmos evolutivos son especialmente tiles cuando nos encontramos con
problemas difciles 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 trmino es empleado para describir 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.
Los algoritmos evolutivos trabajan 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. Los algoritmos evolutivos combinan la bsqueda
aleatoria, dada por las transformaciones de la poblacin, con una bsqueda dirigida dada
por la seleccin.
Principales Componentes:
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.
La estructura general de los algoritmos evolutivos responde al siguiente esquema:
t :=0;
Inicializar P(t);
Evaluar P(t)
While no se termine do
begin
P(t) := variacin [P(t)];
evaluar [P(t)];
P(t+1) := seleccionar [P(t) Q];
t:=t+1;
end
Caractersticas
La caracterstica fundamental de los algoritmos evolutivos radica en los mtodos de
generacin de soluciones: se parte de un conjunto de soluciones iniciales y se van
empleando un conjunto de operadores de bsqueda para ir refinando la solucin final.
Para realizar dicho refinamiento de las soluciones, se pueden utilizar tcnicas clsicas
Dcomo el seguimiento del gradiente (Hill Climbing) D complementadas con
mecanismos biolgicos de exploracin: poblacin de soluciones, operadores genticos.
Clasificacin
Existen las siguientes modificaciones sobre el esquema general:
Estrategias Evolutivas: Tcnica desarrollada por Rechenberg y Schwefel y
extendida por Herdy, Kursawe, Ostermeier, Rudolph, y otros, fue diseada inicialmente
con la meta de resolver problemas de optimizacin discretos y continuos,
principalmente experimentales y considerados difciles. Trabaja con vectores de
nmeros reales Dcon desviaciones estndarD que codifican las posibles soluciones de
problemas numricos. Utiliza recombinacin o cruce (crossover aritmtico), mutacin y
la operacin de seleccin, ya sea determinstica o probabilstica, elimina las peores
soluciones de la poblacin y no genera copia de aquellos individuos con una aptitud por
debajo de la aptitud promedio.
Programacin Evolutiva: Tcnica introducida por Fogel y extendida por Burgin,
Atmar y otros, inicialmente fue diseada como un intento de crear inteligencia artificial.
La representacin del problema se realiza mediante nmeros reales (cualquier estructura
de datos), y emplea los mecanismos de mutacin y seleccin. El procedimiento es muy
similar a las estrategias evolutivas con la diferencia de que no emplea la recombinacin,
de tal forma que son denominadas en conjunto algoritmos evolutivos como una manera
de diferenciarlas de los algoritmos genticos.
Algoritmos Genticos: Modelan el proceso de evolucin como una sucesin de
frecuentes cambios en los genes, con soluciones anlogas a cromosomas. Trabajan con
una poblacin de cadenas binarias para la representacin del problema, y el espacio de
soluciones posibles es explorado aplicando transformaciones a stas soluciones
candidatas tal y como se observa en los organismos vivientes: cruce, inversin y
mutacin. Como mtodo de seleccin emplean en mecanismo de la ruleta (a veces con
elitismo). Constituyen el paradigma ms completo de la computacin 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 especficas, que
surjan dentro del campo de la computacin evolutiva. Adems, se pueden hibridar
fcilmente con otros paradigmas y enfoques, aunque no tengan ninguna relacin con la
computacin evolutiva. Se trata del paradigma con mayor base terica.
NOTA: El diagrama de funcionamiento de los algoritmos genticos responde al siguiente
esquema:
Si
No
Solucin
Inicio Seleccin
Generar
Nueva
Poblacin Recombinacin
hahghsdh Mutacin
Estructura general
Los algoritmos genticos son estrategias de bsqueda estocstica basados en el
mecanismo de seleccin natural y en algunos casos se involucran aspectos de
gentica natural, imitando a la evolucin biolgica como estrategia para resolver
problemas Los algoritmos genticos difieren de las estrategias de bsqueda
convencionales en que estos (los AGs) trabajan sobre un conjunto de potenciales
soluciones, llamado poblacin. Esta poblacin esta compuesta de una serie de
soluciones llamadas individuos y un individuo esta conformado por una serie de
posiciones que representan cada una de las variables involucradas en los procesos de
optimizacin y que son llamados cromosomas. Estos cromosomas estn compuestos
por una cadena de smbolos que en muchos casos esta presentada en nmeros
binarios. En una algoritmo gentico cada individuo esta definido como una estructura
de datos que representa una posible solucin del espacio de bsqueda del problema.
Las estrategias de evolucin trabajan sobre los individuos, que representan las
soluciones del problema, por lo que estos evolucionan a travs de generaciones.
Dentro de la poblacin cada individuo es diferenciado de acuerdo con su valor de
aptitud, que es obtenido usando algunas medidas de acuerdo con el problema a
resolver. Para la obtencin de las prximas generaciones se crean nuevos individuos,
llamados hijos, utilizando dos estrategias de evolucin bsicas como son el operador
de cruce y el de mutacin (empleadas generalmente de forma aleatoria).
Una nueva generacin es obtenida mediante la utilizacin del operador de seleccin,
que bsicamente se realiza sobre los valores de aptitud de los individuos, sobre la
poblacin obtenida tras el cruce y la mutacin. El operador de seleccin debe mantener
constante el nmero de individuos de la poblacin, y a travs de las generaciones el
individuo con mayor valor de aptitud tiene mayores posibilidades de ser seleccionado
en la siguiente generacin. Entre el conjunto de soluciones candidatas generadas
aleatoriamente muchas no funcionarn en absoluto y sern eliminadas; sin embargo, por
puro azar, unas pocas pueden resultar prometedoras y pueden mostrar actividad, aunque
slo sea actividad dbil e imperfecta, hacia la solucin del problema. Estas candidatas
prometedoras se conservan y se les permite reproducirse. Se realizan mltiples copias
de ellas, pero las copias no son perfectas; se introducen cambios aleatorios durante el
proceso de copia. Esta descendencia prosigue con la siguiente generacin, formando un
nuevo acervo de soluciones candidatas que son nuevamente sometidas a una ronda de
evaluacin de aptitud. Las candidatas que han empeorado o no han mejorado con los
cambios en su cdigo son eliminadas de nuevo; pero, de nuevo por puro azar, las
variaciones aleatorias introducidas en la poblacin pueden haber mejorado a algunos
individuos, convirtindolos en mejores soluciones del problema, ms completas o ms
eficientes. De nuevo, se seleccionan y copian estos individuos vencedores hacia la
siguiente generacin con cambios aleatorios, y el proceso se repite. Las expectativas son
que la aptitud media de la poblacin se incrementar en cada ronda y, por tanto,
repitiendo este proceso cientos o miles de rondas, pueden descubrirse soluciones muy
buenas del problema; en otras palabras, tras varias iteraciones el algoritmo converge al
individuo con mejor valor de aptitud, el cual representara el ptimo o subptimo del
problema.
Vocabulario en Algoritmos Genticos
Los algoritmos genticos toman para su definicin terminologa utilizada en
Gentica Natural y Ciencia Computacional, por lo que la literatura especfica es una
combinacin entre los trminos naturales y los artificiales, por esto se debe tener en
cuenta:
La Estructura de codificacin con la cual se construyen las soluciones para el
problema se llaman cromosomas. Uno o ms cromosomas pueden ser requeridos
para conformar una poblacin.
El conjunto completo de cromosomas se llama genotipo y un individuo en
particular, un organismo resultante, se llama fenotipo.
Cada cromosoma contiene una serie de valores individuales llamados genes.
Cada gen contiene informacin valiosa de una variable en particular y su
ubicacin dentro del individuo se conoce como loco.
Los diferentes valores de un gen son llamados alelos.
Una vez que la seleccin ha elegido a los individuos aptos, stos deben ser alterados
aleatoriamente con la esperanza de mejorar su aptitud para la siguiente generacin.
Existen dos estrategias bsicas para llevar esto a cabo. La primera y ms sencilla se
llama mutacin. Al igual que una mutacin en los seres vivos cambia un gen por otro,
una mutacin en un algoritmo gentico tambin causa pequeas alteraciones en puntos
concretos del cdigo de un individuo.
El segundo mtodo se llama cruce, e implica elegir a dos individuos para que
intercambien segmentos de su cdigo, produciendo una descendencia artificial cuyos
individuos son combinaciones de sus padres. Este proceso pretende simular el proceso
anlogo de la recombinacin que se da en los cromosomas durante la reproduccin
sexual. Las formas comunes de cruzamiento incluyen al cruzamiento de un punto, en el
que se establece un punto de intercambio en un lugar aleatorio del genoma de los dos
individuos, y uno de los individuos contribuye todo su cdigo anterior a ese punto y el
otro individuo contribuye todo su cdigo a partir de ese punto para producir una
descendencia, y al cruzamiento uniforme, en el que el valor de una posicin dada en el
genoma de la descendencia corresponde al valor en esa posicin del genoma de uno de
los padres o al valor en esa posicin del genoma del otro padre, elegido con un 50% de
probabilidad.
Los operadores genticos en este caso son operadores con memoria, guardando en
cada iteracin los cdigos genticos de los mejores individuos a travs de las
generaciones. Los procesos de evolucin darviniana generalmente son procesos
mimticos a travs de las generaciones.
Cruce y mutacin
Efecto de estos dos operadores genticos en los individuos de una poblacin de cadenas de 8 bits.
Image crossov er
Image mutation