Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Comunicaciones
Ingeniera de Telecomunicacin
Algoritmos Evolutivos y
Algoritmos Genticos
N.I.A.: 100027597
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.
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.
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
Generacin
Poblacin
Inicial
Evaluacin de la
Funcin Objetivo
Criterios de Optimizacin
alcanzados ?
No
Inicio
Generar
Nueva
Poblacin
hahghsdh
Mejor
Individuo
Solucin
Seleccin
Recombinacin
Mutacin
Representacin del
problema
Operadores de
variacin
Algoritmos genticos
(Goldberg)
Cadena binaria
Mutacin y crossover
Estrategias de Evolucin
(Rechenberg/Schwefel)
Vector de reales +
desviaciones estndar
Mutacin gaussiana
y crossover
aritmtico (diferentes
tipos)
Programacin evolutiva
(Fogel)
Nmeros reales
Mutacin
Programacin gentica
(Koza)
Expresiones-S de LISP
representadas
habitualmente como
rboles
Crossover, algo de
mutacin
Mtodos de
seleccin
Seleccin de rueda de
ruleta (a veces con
elitismo)
Diferentes tipos de
seleccin:
lambda,mu;
lambda+mu...
Diversos tipos de
seleccin
Diversos tipos de
seleccin
Algoritmos genticos
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.
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