Sei sulla pagina 1di 12

Algoritmos Genticos

Contreras Mauricio Christian


ccontrerasm2@gmail.com
Universidad Nacional de Ingeniera
Facultad de Ingeniera Elctrica y Electrnica

Resumen. Este documento presenta una


introduccin a los algoritmos genticos
AGs, como algoritmos de bsqueda,
basados sobre mecanismos de seleccin y
gentica natural concordante con la teora
de la evolucin de Charles Darwin.

Objetivo
Explicar el concepto de Algoritmo
Gentico, as como todos los aspectos que
lo rodean.

Definiciones y conceptos bsicos


El Algoritmo Gentico (AG) es un
modelo de aprendizaje que debe su
comportamiento a una metfora de algunos
de los mecanismos de la evolucin que se
observan en la naturaleza (como la
reproduccin sexual y el principio de la
supervivencia del ms apto), son mtodos
adaptativos, generalmente usados en
problemas de bsqueda y optimizacin de
parmetros.
Siguiendo la definicin dada por Goldberg
en 1989:
Los Algoritmos Genticos son algoritmos
de bsqueda basados en la mecnica de la
seleccin natural y de la gentica natural.
Combinan la supervivencia del ms apto
entre estructuras de secuencias con
intercambio de informacin estructurado,
aunque aleatorizado, para constituir as un
algoritmo de bsqueda que tenga algo de
las genialidades de las bsquedas
humanas.
A grandes rasgos, un algoritmo
gentico consiste en una poblacin de
soluciones codificadas de forma similar a
cromosomas. Cada uno de estos
cromosomas tendr asociado un ajuste o

valor de bondad que cuantifica su validez


como solucin del problema. En funcin de
este valor se le darn ms o menos
oportunidades de reproduccin. Adems,
con cierta probabilidad se realizarn
mutaciones de estos cromosomas.
El poder de los AG proviene del
hecho de que se trata de una tcnica
robusta, y pueden tratar con xito una gran
variedad de problemas provenientes de
diferentes reas, incluyendo aquellos en los
que otros mtodos encuentran dicultades.
Si bien no se garantiza que el AG encuentre
la solucin ptima del problema, existe
evidencia emprica de que se encuentran
soluciones de un nivel aceptable, en un
tiempo competitivo con el resto de
algoritmos de optimizacin combinatoria.
Los algoritmos de optimizacin
combinatoria resuelven instancias de
problemas que se creen ser difciles en
general, explorando el espacio de
soluciones (usualmente grande) para estas
instancias. Los algoritmos de optimizacin
combinatoria logran esto reduciendo el
tamao efectivo del espacio, y explorando
el espacio de bsqueda eficientemente.
Estos
algoritmos
se
relacionan
frecuentemente con problemas NP.
En el caso de que existan tcnicas
especializadas para resolver un determinado
problema, lo ms probable es que superen
al AG, tanto en rapidez como en ecacia. El
gran campo de aplicacin de los AG se
relaciona con aquellos problemas para los
cuales no existen tcnicas especializadas.
Incluso en el caso en que dichas tcnicas
existan, y funcionen bien, pueden
efectuarse mejoras de las mismas
hibridndolas con los AG.

Cuando el AG es implementado, se
hace de forma que involucre el siguiente
ciclo:
1. Generacin de una poblacin inicial
de manera aleatoria.
2. Evaluar el desempeo de todos los
individuos de la poblacin,
tomando en cuenta alguna funcin
objetivo.
3. Crear una nueva poblacin
mediante
la
ejecucin
de
operaciones como el crossover y
mutacin sobre individuos cuyo
desempeo haya sido evaluado.
4. Descartar la poblacin vieja e iterar
usando la nueva, hasta que el
nmero de generaciones alcanza al
criterio de terminacin.
Una iteracin de este ciclo constituye una
generacin. Este comportamiento puntual
no se observa como un todo dentro de las
poblaciones en la naturaleza pero si
representa un modelo de implementacin
conveniente.
La primera generacin (generacin 0) de
este proceso opera sobre una poblacin de
individuos generados aleatoriamente. Desde
entonces las operaciones genticas en
conjunto con la medida del desempeo
trabajan para mejorar la poblacin.

Estructura
Tipos de Representacin
Durante los primeros aos el tipo de
representacin utilizado era siempre
binario, debido a que se adapta
perfectamente al tipo de operaciones y el
tipo de operadores que se utilizan en un
AG. Sin embargo, las representaciones
binarias no son siempre efectivas por lo que
se empezaron a utilizar otro tipo de
representaciones.
En general, una representacin debe
identicar las caractersticas constituyentes
del conjunto a estudiar, de forma que
distintas representaciones dan lugar a

distintas perspectivas y por tanto distintas


soluciones.
Tipos bsicos de representaciones:

Representacin binaria: Cada gen


es un valor 1 0.
Representacin entera: Cada gen es
un valor entero.
Representacin real: Cada gen es
un valor real.

Tamao de la poblacin
Una cuestin que se puede plantear es la
relacionada con el tamao idneo de la
poblacin. Parece intuitivo que las
poblaciones pequeas corren el riesgo de no
cubrir adecuadamente el espacio de
bsqueda, mientras que el trabajar con
poblaciones de gran tamao puede acarrear
problemas relacionados con el excesivo
costo computacional.
Poblacin Inicial
Habitualmente la poblacin inicial se
escoge al azar. Si los individuos de la
poblacin inicial se obtuviesen como
resultado de alguna tcnica heurstica o de
optimizacin local puede suceder que se
acelere la convergencia del AG. Sin
embargo en algunos casos la desventaja
resulta ser la prematura convergencia del
algoritmo, queriendo indicar con esto la
convergencia hacia ptimos locales.
Funcin Objetivo
El resultado al cual se desea llegar.
Operador de Seleccin
El operador de Seleccin es el encargado de
transmitir
y
conservar
aquellas
caractersticas de las soluciones que se
consideran valiosas a lo largo de las
generaciones. El principal medio para que
la informacin til se transmita es que
aquellos individuos mejor adaptados tengan

ms probabilidades de reproducirse. Sin


embargo, es necesario tambin incluir un
factor aleatorio que permita reproducirse a
individuos que aunque no estn muy bien
adaptados, puedan contener alguna
informacin
til
para
posteriores
generaciones, con el objeto de mantener as
tambin cierta diversidad en cada
poblacin.

descendencia mltiple, pueden


explorar el espacio de soluciones en
mltiples direcciones a la vez.

Debido al paralelismo que les


permite evaluar implcitamente
muchos esquemas a la vez, los AG
funcionan particularmente bien
resolviendo
problemas
cuyo
espacio de soluciones potenciales
es realmente grande, demasiado
vasto para hacer una bsqueda
exhaustiva en un tiempo razonable.

Poseen la habilidad para manipular


muchos
parmetros
simultneamente.
Muchos
problemas de la vida real no pueden
denirse en trminos de un nico
valor que hay que minimizar o
maximizar, sino que deben
expresarse en trminos de mltiples
objetivos.

La virtud de esta tcnica es que


permite a los AG comenzar con una
mente abierta, por as decirlo.
Cualquier estrategia de resolucin
de problemas que dependa de un
conocimiento
previo,
debe
inevitablemente
comenzar
descartando muchos caminos a
priori, perdiendo as cualquier
solucin novedosa que pueda
existir.

Operador de Cruce
El operador de Cruce permite realizar una
exploracin de toda la informacin
almacenada hasta el momento en la
poblacin y combinarla para crear mejores
individuos.
Operador de Mutacin
La mutacin se considera un operador
bsico, que proporciona un pequeo
elemento de aleatoriedad en el entorno de
los individuos de la poblacin. Si bien el
operador de cruce es el responsable de
efectuar la bsqueda a lo largo del espacio
de posibles soluciones, el operador de
mutacin va ganando en importancia a
medida que la poblacin de individuos va
convergiendo.
El objetivo del operador de mutacin es
producir nuevas soluciones a partir de la
modicacin de cierto nmero de genes de
una solucin existente, con la intencin de
fomentar la variabilidad dentro de la
poblacin. Existen muy diversas formas de
realizar la mutacin, desde la ms sencilla
(puntual),
donde
cada
gen
muta
aleatoriamente con independencia del resto
de genes, hasta conguraciones ms
complejas donde se tienen en cuanta la
estructura del problema y la relacin entre
los distintos genes.

Desventajas
Ventajas

Los AG son intrnsecamente


paralelos. Ya que los AG tienen

La primera y ms importante
consideracin al crear un AG es denir
una representacin del problema. El
lenguaje utilizado para especicar

soluciones candidatas debe ser robusto;


es decir, debe ser capaz de tolerar
cambios aleatorios que no produzcan
constantemente errores fatales o
resultados sin sentido.

El problema de cmo escribir la


funcin objetivo debe considerarse
cuidadosamente para que se pueda
alcanzar una mayor aptitud y
verdaderamente se d una solucin
mejor para el problema dado.
Un problema muy conocido que puede
surgir con un AG se conoce como
convergencia prematura, esto a raz de
una incorrecta definicin de la
poblacin inicial.

Las soluciones deben programarse de


una forma que resulte relativamente
fcil de implementar en el computador.

Antecedentes y desarrollo histricos.


El desarrollo de los Algoritmos Genticos
se debe a gran medida a John Holland,
investigador de la Universidad de
Michigan. A finales de la dcada de los 60
desarroll una tcnica que imitaba en su
funcionamiento a la seleccin natural.
Aunque originalmente esta tcnica que
imitaba en su funcionamiento a la seleccin
natural.

Finales de los 59 y principios de los


60.- Algoritmos Genticos programados
en
computadoras
por
bilogos
evolutivos
que
buscaban
explcitamente realizar modelos de
aspectos de la evolucin natural.

En 1962, investigadores como G.E.P.


Box, G.J. Friedman, W.W. Bledsoe y
H.J. Bremermann haban desarrollado
independientemente
algoritmos
inspirados en la evolucin para
optimizacin de
funciones y
aprendizaje automtico, pero sus
trabajos generaron poca reaccin.

Sin embargo, no todos los problemas


pudieran ser apropiados para la tcnica, y se
recomienda en general tomar en cuenta las
siguientes caractersticas del mismo antes
de intentar usarla:

En 1965 surgi un desarrollo ms


exitoso, cuando Ingo Rechenberg,
entonces de la Universidad Tcnica de
Berln, introdujo una tcnica que llam
estrategia evolutiva.

Su espacio de bsqueda (sus posibles


soluciones) debe de estar delimitado
dentro de un cierto rango.

Debe permitir la definicin de una


funcin de aptitud que nos indique que
tan buena o mala es cierta respuesta.

En
1975
apareci
el
trabajo
fundamental en el campo de los
algoritmos genticos con la publicacin
del libro Adaptacin en Sistemas
Naturales y Artificiales de John
Holland'.

No utilizar AG en problemas resolubles


de manera analtica, pues estos mtodos
analticos
tradicionales
consumen
mucho menos tiempo y potencia
computacional que los AG y, a
diferencia de los AG, a menudo est
demostrado matemticamente que
ofrecen la nica solucin exacta.

Cundo usar algoritmos genticos?


La aplicacin ms comn de los AG ha sido
la solucin de problemas de optimizacin,
en donde han mostrado ser muy ecientes y
conables.

A finales de 1980s la General Electric


comenz a vender el primer producto
de Algoritmo Gentico para solucionar
problemas de procesos industriales.
En 1989 se cre el producto Evolver
que fue el primer producto de
Algoritmo Gentico para Computadoras
personales.

Fundamentos biolgicos.
En la naturaleza, los individuos de una
poblacin compiten constantemente con
otros por recursos tales como la comida,
agua y refugio. Los individuos que tienen
ms xito en la lucha por los recursos
tienen
mayores
probabilidades
de
sobrevivir
y
generalmente
una
descendencia mayor. Al contrario, los
individuos peor adaptados tienen un menor
nmero de descendientes, o incluso
ninguno. Esto implica que los genes de los
individuos mejor adaptados se propagarn a
un nmero cada vez mayor de individuos de
las sucesivas generaciones.
La combinacin de caractersticas buenas
de diferentes ancestros puede originar en
ocasiones que la descendencia est incluso
mejor adaptada al medio que los padres. De
esta manera, las especies evolucionan
adaptndose ms y ms al medio a medida
que transcurren las generaciones [Beasley
et al., 1993].
Pero la adaptacin de un individuo no slo
est determinada por su composicin
gentica. Influyen otros factores como el
aprendizaje, en ocasiones adquirido por el
mtodo de prueba y error, en ocasiones
adquirido
por
imitacin
del
comportamiento de los padres. Para imitar
esta adquisicin de conocimiento se han
desarrollado variantes como el Ajuste Fino,
consistentes en pequeas modificaciones de
los genes de un cromosoma. Por ejemplo,
estas modificaciones pueden realizarse
tomando como resultado e mejor individuo
tras la ejecucin de varias generaciones de

un Algoritmo Gentico cuya poblacin


previamente ha sido creada a partir de
ligeras variaciones del individuo al que se
desea incorporar el conocimiento.

Estado del arte


En la actualidad los algoritmos genticos se
utilizan para infinidad de cosas, existen
trabajos y proyectos tanto comerciales
como no comerciales. Entre ellas tenemos
empresas de aplicaciones como las
siguientes:

JGAP: Aplicacin hecha en java para


generar soluciones a problemas
implementando algoritmos genticos,
tiene diversas funcionalidades como:
educativas, de investigacin o simple
entretenimiento.

Optimal Synthesis Inc.: Organizacin


que ofrece herramientas para bsqueda
gentica a partir de los algoritmos
genticos, abalada por la marina de
Estados Unidos, ofrece su producto
para trabajar con MatLab.

Anglo American Chaos: Modelado y


anlisis de datos no lineales en conjunto
con los algoritmos genticos y otras
tecnologas
de
la
IA
como
programacin gentica, prediccin de
patrones, estimacin de ruidos, etc.

Perfect tablePlan: Programa funcional


que ayuda a planear la localizacin de
las personas en una boda.

RML Technologies Inc.: Programa


Discipulus 5 que usa la programacin
gentica basada en los algoritmos
genticos para predecir modelos.

JAGA:
Software
para
crear
aplicaciones que funcionen con
algoritmos genticos y programacin
gentica.

En la actualidad los usos y tecnologas de


los algoritmos genticos van mejorando y
creciendo cada da ms. A continuacin se
mencionan algunas reas y clases donde se
aplican los algoritmos genticos.

reas de aplicacin y clases

mltiples en tiempo evolutivo, ha resultado


til el empleo de esta tcnica.
Ecologa: En el modelado de fenmenos
ecolgicos tales como las carreras de
armamento biolgico, la coevolucin de
parsito-huesped, la simbiosis, y el ujo de
recursos.

Optimizacin: Se trata de un campo


especialmente abonado para el uso de los
AG, por las caractersticas intrnsecas de
estos problemas. No en vano fueron la
fuente de inspiracin para los creadores de
estos algoritmos. Los AG se han utilizado
en numerosas tareas de optimizacin,
incluyendo la optimizacin numrica, y los
problemas de optimizacin combinatoria.

Gentica de poblaciones: En el estudio de


preguntas del tipo "Bajo qu condiciones
ser viable evolutivamente un gen para la
recombinacin?".

Programacin automtica: Los AG se han


empleado para desarrollar programas para
tareas especcas, y para disear otras
estructuras computacionales tales como el
autmata celular, y las redes de
clasicacin.

Sistemas sociales: En el estudio de


aspectos evolutivos de los sistemas
sociales, tales como la evolucin del
comportamiento social en colonias de
insectos, y la evolucin de la cooperacin y
la comunicacin en sistemas multiagentes.

Aprendizaje mquina: Los AG se han


utilizado tambin en muchas de estas
aplicaciones, tales como la prediccin del
tiempo o la estructura de una protena. Han
servido
asimismo
para
desarrollar
determinados
aspectos
de
sistemas
particulares de aprendizaje, como pueda ser
el de los pesos en una red neuronal, las
reglas para sistemas de clasicacin de
aprendizaje o sistemas de produccin
simblica, y los sensores para robots.

Programacin Gentica

Economa: En este caso, se ha hecho uso


de estos Algoritmos para modelar procesos
de innovacin, el desarrollo de estrategias
de puja, y la aparicin de mercados
econmicos.
Sistemas inmunes: Al momento de
modelar varios aspectos de los sistemas
inmunes naturales, incluyendo la mutacin
somtica durante la vida de un individuo y
el descubrimiento de familias de genes

Evolucin y aprendizaje: Los AG se han


utilizado en el estudio de las relaciones
entre el aprendizaje individual y la
evolucin de la especie.

Es un retoo de los Algoritmos Genticos,


en el que los cromosomas (estructuras de
datos) que sufren la adaptacin, son en s
mismos programas de computador. Se usan
operadores genticos especializados que
generalizan la recombinacin sexual y la
mutacin, para los programas de
computador estructurados en rbol que
estn bajo adaptacin. La Programacin
Gentica, PG,
tiene las siguientes
caractersticas:

Material gentico no lineal y


generalmente estructurado en rbol.
Aunque
algunos
Algoritmos
Genticos tienen material gentico

que no es lineal, el material


gentico lineal sigue siendo la regla
en los Algoritmos Genticos. Sin
embargo, la PG casi siempre opera
sobre material gentico no lineal, y
generalmente explcitamente en
estructura de rbol.

Material
variable.

gentico

de

longitud

La PG casi siempre opera sobre


material gentico que puede variar
de tamao. Por razones prcticas,
generalmente
se
implementan
limitaciones en el crecimiento, pero
normalmente permite crecimientos
considerables a partir de la
generacin original que se produce
aleatoriamente.

Material gentico ejecutable.


La PG es la evolucin directa de
programas de computador. As, en
casi todos los casos el material
gentico que est evolucionando es
en cierto sentido ejecutable.
Aunque ejecutable no es el trmino
ms preciso, y sobre esto hay una
serie de reas grises. Generalmente
las estructuras son interpretadas por
algn interpretador, a veces en un
lenguaje idntico o muy parecido a
un lenguaje de computacin
existente, a veces en un lenguaje
diseado para el problema a mano.
Sin embargo, en casi todos los
casos hay un concepto de ejecucin
del material gentico, con el objeto
de
ver
directamente
el
comportamiento de la funcin
deseada, a partir de la cual se
obtiene la aptitud.

Cruce que preserva la sintaxis.


Aunque se han reportado muchos
operadores de cruce para PG, en la

mayora de los
casos estn
definidos de manera que preserven
la
correccin sintctica
del
programa que es el material
gentico, definida por cualquier
lenguaje que se haya escogido para
su representacin.

Conceptos bsicos de la PG
El espacio de bsqueda en la PG es el
espacio de todos los posibles programas de
computador compuestos de funciones y
terminales apropiados al dominio del
problema. Las funciones pueden ser
operaciones aritmticas, operaciones de
programacin, funciones matemticas,
funciones lgicas, o funciones especficas
del dominio.
La PG es un intento de tratar con uno de los
aspectos centrales en ciencias de la
computacin:
Cmo pueden aprender los computadores
a solucionar problemas sin que se les
programe explcitamente? En otras
palabras, cmo podemos hacer para que
los computadores hagan lo que tienen que
hacer, sin necesidad de decirles
exactamente como lo deben hacer?
En la aplicacin de la PG a un problema,
hay cinco pasos preparatorios importantes,
definir:
1.
1.
2.
3.

El conjunto de terminales,
El conjunto de funciones primitivas,
La medida de la aptitud,
Los parmetros para controlar la
corrida, y
4. El mtodo para designar un resultado
y el criterio para terminar la
ejecucin del programa
Paso 1. Consiste en identificar el
conjunto de terminales. Los terminales
son las hojas de los rboles que
corresponden a variables o a valores
constantes, se pueden ver como las

entradas al programa. El conjunto de


terminales (junto con el conjunto de
funciones) son los ingredientes a partir
de los cuales la PG, trata de construir un
programa
de computador para
solucionar total, o parcialmente, un
problema.
Paso 2. Consiste en identificar el
conjunto de funciones que se van a usar,
para generar la expresin matemtica
que trata de satisfacer la muestra dada
finita de datos. A cada funcin le
corresponde una aridad (nmero de
parmetros) y un tipo de datos.
Cada programa de computador (rbol
de anlisis gramatical) es una
composicin de funciones del conjunto
de funciones F y terminales del conjunto
de terminales T.
Cada una de las funciones del conjunto
de funciones debe ser capaz de aceptar,
como sus argumentos, cualquier valor y
tipo de dato que posiblemente, pueda
retornar cualquier funcin del conjunto
de funciones, y cualquier valor y tipo de
dato que posiblemente, pueda tomar por
cualquier terminal del conjunto de
terminales. Esto es, el conjunto de
funciones y el conjunto de terminales
deben tener la propiedad de clausura.
En PG, se incuban genticamente
poblaciones de cientos, o ms programas
de computador. Esta incubacin se hace
usando el principio de supervivencia
darwiniana, la reproduccin del ms
apto junto, una operacin de cruce
gentico apropiada para el apareamiento
de programas de computador y una
operacin de mutacin gentica.
La PG comienza con una poblacin
inicial de programas de computador
compuestos de funciones y terminales
apropiadas al dominio del problema. La
creacin de esta poblacin inicial es, en

efecto, una bsqueda aleatoria ciega, en


el espacio de bsqueda del dominio del
problema representado como programas
de computador.
Paso 3. Cada programa de computador
individual en la poblacin, se mide en
trminos de que tan bien se comporta en
el ambiente del problema particular. Esta
medida se llama medida de aptitud. La
naturaleza de la medida de aptitud vara
con el problema.
Para muchos problemas, la aptitud de un
programa se mide ponderando el error
que se produce al ejecutar ese programa.
El mejor programa de computador
tendr un error cercano a cero. En un
problema de control ptimo, la aptitud
de un programa de computador puede
ser el tiempo (combustible o dinero) que
toma llevar el sistema al estado objetivo.
Si uno esta tratando ejemplos de
reconocimiento de patrones o de
clasificacin, la aptitud de un programa
particular se puede medir por una
combinacin del nmero de instancias
manejadas
correctamente
(cierto
positivo, y falso negativo) y nmero de
instancias manejadas incorrectamente
(cierto negativo, y falso positivo). Por
otro lado si uno encuentra un buen
generador de nmeros aleatorios, la
aptitud de un programa se puede medir
por medio de entropa, satisfaccin de la
prueba de brecha, satisfaccin de la
prueba de corrida, o alguna combinacin
de estos factores. Para algunos
problemas, puede ser apropiado usar una
medida de aptitud multiobjetivo, que
incorpore una combinacin de factores
tales como correccin, parsimonia, o
eficiencia.
En muchos casos, cada programa de la
poblacin se corre para varios casos de
aptitud, de manera que su aptitud se
mida como una suma o producto de una
variedad de situaciones representativas

diferentes. Estos casos de aptitud a veces


representan un muestreo de valores
diferentes de una variable independiente,
o un muestreo de condiciones iniciales
diferentes de un sistema. Por ejemplo, la
aptitud de un programa individual, se
puede medir en trminos de la suma del
valor absoluto de las diferencias entre la
salida producida por el programa y la
respuesta correcta.
Los programas de computador de la
poblacin
inicial,
generacin
0,
generalmente tienen una aptitud
excesivamente pobre. No obstante,
algunos individuos de la poblacin sern
ms aptos que otros. Estas diferencias
en el comportamiento son las que se
explotan y exploran posteriormente.
La operacin reproduccin incluye la
seleccin de un programa de la
poblacin actual de programas, se basa
en su aptitud, permitindole si es del
caso, sobrevivir copindolo en la nueva
poblacin.
La operacin cruce se usa para crear
nuevos hijos programas de computador,
a partir de dos programas padres
seleccionados. Los programas padres en
PG, normalmente son de diferentes
tamaos y formas. Los programas hijos
se componen de subexpresiones
(subrboles, subprogramas, subrutinas,
bloques) de sus padres. As, los
programas hijos normalmente son de
diferentes tamaos y formas que sus
padres.
Intuitivamente, si dos programas de
computador tienen alguna efectividad en
solucionar un problema, entonces alguna
de sus partes probablemente tenga algn
mrito. La recombinacin de partes
escogidas aleatoriamente, de programas
con alguna efectividad, a veces produce
nuevos programas de computador que
son an ms aptos para solucionar un

problema determinado, que cualquiera


de sus padres. En el siguiente numeral se
justifica formalmente que en cada
generacin se encuentran mejores
programas.
Paso 4. Despus de que se efectan las
operaciones genticas sobre la poblacin
actual, la poblacin de hijos reemplaza
la generacin anterior, a cada individuo
de la nueva poblacin se le mide su
aptitud, y el proceso se repite por
muchas generaciones. En cada etapa de
este proceso altamente paralelo,
controlado localmente, el estado del
proceso consistir nicamente de la
poblacin actual de individuos. La
fuerza que controla este proceso consiste
solo en la aptitud observada de los
individuos en su lucha con el ambiente
problema. Normalmente, los parmetros
que controlan la ejecucin de PG son: el
tamao de la poblacin; el nmero de
generaciones; las probabilidades de
aplicacin de los operadores genticos
de cruce y mutacin; y la estrategia de
seleccin de los individuos para la nueva
generacin.
Paso 5. El mejor individuo que aparece
en cualquier generacin de una corrida,
es decir el mejor hasta ahora,
normalmente se designa como el
resultado producido por la corrida de
PG.
La variabilidad dinmica de los
programas que se desarrollan para una
solucin, es otra caracterstica de la PG.
Generalmente es difcil y no es natural,
tratar de especificar o limitar con
anterioridad el tamao y la forma de una
solucin eventual. Sin embargo, la
especificacin
o
limitacin
con
anterioridad, del tamao o la forma de la
solucin a un problema restringe la
ventana a travs de la cual el sistema ve
el mundo y puede imposibilitar

encontrar la
problema.

solucin

de

todo

el

Otra caracterstica de la PG es la
ausencia, o el papel relativamente
mnimo, del pre procesamiento de
entradas y el pos procesamiento de
salidas. Las entradas, resultados
intermedios, y
salidas se expresan
normalmente directamente en trminos
de la terminologa natural del dominio
del problema. El postprocesamiento de
la salida del programa, si lo hay, se hace
con una envoltura (interface de salida).
Finalmente,
otra
caracterstica
importante de la PG es que las
estructuras que sufren la adaptacin
gentica son estructuras activas. Es decir
los cromosomas son el genotipo y
tambin el fenotipo

escogidos, con una probabilidad basada


en la aptitud.
i.

Reproducir un programa
existente copindolo en la
nueva poblacin.

ii.

Crear dos programas a


partir de dos programas
existentes, recombinando
genticamente
partes
escogidas de los dos
programas
en
forma
aleatoria,
usando la
operacin cruce aplicada a
un punto de cruce, escogido
aleatoriamente dentro de
cada programa.

iii.

Crear un programa a partir


de
otro
seleccionado
aleatoriamente, cambiando
aleatoriamente un gen
(funcin o terminal). Es
posible que se requiera un
procedimiento
de
reparacin para que se
satisfaga la condicin de
clausura.

Pasos para la solucin de problemas


por PG.
Solucin de problemas por PG
En resumen, la PG incuba programas de
computador para la solucin de problemas,
ejecutando los siguientes pasos:
1. Generar una poblacin inicial de
composiciones aleatorias de funciones y
terminales del problema (es decir,
programas).
1. Ejecutar iterativamente los siguientes
pasos hasta que se satisfaga el criterio de
terminacin:
a. Ejecutar cada programa de la
poblacin y asignarle un valor de
aptitud, de acuerdo a su comportamiento
frente al problema.
b. Crear una nueva poblacin de
programas aplicando las siguientes dos
operaciones primarias, a los programas

2. El programa identificado con la mayor


aptitud (el mejor hasta la ltima
generacin), se designa como el
resultado de la corrida de PG. Este
resultado puede representar una solucin
(o una solucin aproximada) al
problema.

Conclusiones
En esta tesis se realiza un profundo estudio
sobre algoritmos genticos (GAs), un tipo
de algoritmo evolutivo (EA) que utiliza una
poblacin estructurada, de forma que los
individuos que la forman solo pueden
relacionarse con sus vecinos ms prximos.
Inicialmente, se presenta una introduccin
al concepto de optimizacin, y a las
principales (y ms modernas) tcnicas de

optimizacin existentes en la actualidad. En


esta lnea, se presta especial atencin a los
algoritmos evolutivos, que son un tipo de
tcnicas aproximadas de optimizacin muy
eficientes al tratar con problemas altamente
complejos, que incluso podran ser
difcilmente abordables con otras tcnicas.
Para un algoritmo evolutivo, se ha
demostrado en varios estudios [27, 119] que
estructurando la poblacin podemos
mejorar su comportamiento con respecto a
la versin equivalente, lo que nos permite
obtener una mayor eficiencia y eficacia en
la resolucin de los problemas abordados.
Antes de comenzar las investigaciones
desarrolladas en este trabajo, se ha
realizado una amplia exploracin del estado
del arte en algoritmos evolutivos celulares,
que incluye y clasifica algunas de las
publicaciones ms importantes relacionadas
con este campo. Tras este estudio inicial, se
ha propuesto un modelo formal para un GA
cannico, lo que nos ha permitido
caracterizar este tipo de algoritmos.
Trabajo Futuro
A lo largo del trabajo, numerosas lneas de
investigacin
reportaron
interesantes
resultados o han dejado aspectos abiertos
que merecen un estudio o una
profundizacin como continuacin lgica
en el futuro inmediato.
Abordar un estudio terico y experimental
con el objetivo de ampliar el conjunto de
problemas de prueba puede considerarse
como el principal aspecto no relacionado
directamente con los algoritmos de
resolucin del problema. Con este fin,
deben estudiarse las caractersticas y las
propiedades del problema para tratar de
incorporar nuevas instancias, obtenidas de
adaptar conjuntos ya existentes para
problemas de complejidad reducida (como
el problema del rbol de Steiner o los
problemas de biconexin) y para disear
instancias con valores ptimos conocidos

que permitan abarcar una amplia gama en


cuanto a la complejidad de los problemas
planteados.
Los resultados obtenidos permitieron
comprobar que existe un margen
considerable para mejorar algunos de los
algoritmos evolutivos propuestos. Tomando
en cuenta que se identific a la prdida de
diversidad como el principal motivo por el
cual los algoritmos evolutivos no son
capaces de alcanzar resultados de mejor
calidad, el estudio de los diferentes
mecanismos de introduccin de diversidad
se manifiesta como una tarea lgica para
mejorar
los
resultados
obtenidos.
Conjuntamente, deber estudiarse la
influencia de los propios mecanismos de
introduccin de diversidad en el
comportamiento de los algoritmos, tanto en
lo referente al mtodo de exploracin del
espacio de soluciones y la calidad de
resultados obtenidos como el aspecto
relacionado
con
su
eficiencia
computacional. En esta lnea de trabajo, el
estudio de modelos y representaciones ms
complejas, como las representaciones
basadas en caminos, la utilizacin de
soluciones no factibles complementadas
con mecanismos de penalizacin de fitness
y/o correccin de soluciones, as como la
introduccin de informacin dependiente
del problema y operadores especializados
constituyen lneas claras de trabajo a
abordar en el futuro inmediato.
Ciertos aspectos relacionados con los
modelos de paralelismo fueron poco
analizados como consecuencia del escaso
nmero de recursos computacionales
disponibles, que limit el alcance del
trabajo en esta rea de investigacin. En
caso de poder acceder a plataformas
paralelas de alto poder computacional, el
estudio del modelo de migracin podr
profundizarse
adecuadamente,
para
determinar sus contribuciones a mejorar la
calidad de resultados del problema.

El estudio de otros modelos de paralelismo


aplicados a algoritmos evolutivos para la
resolucin del Problema de Steiner
Generalizado ha sido planificado como una
tarea a desarrollar en el futuro. Durante el
desarrollo del trabajo se decidi postergar el
estudio de un modelo celular aplicado al
problema, tomando en cuenta la falta de
disponibilidad de una arquitectura paralela
de memoria compartida durante buena parte
del tiempo de desarrollo del trabajo. Sobre
el final del trabajo, y evaluando en especial
los buenos resultados obtenidos con el
modelo de subpoblaciones con migracin,
se posterg definitivamente el diseo de
modelos de algoritmos genticos celulares.
En la actualidad se dispone de un equipo
multiprocesador en la Facultad de
Ingeniera y el diseo de modelos de
algoritmos evolutivos celulares surge como
una lnea clara a abordar en el futuro con el
objetivo de estudiar un nuevo modelo de
paralelismo
y
sus
caractersticas,
comparando con los resultados obtenidos
para el modelo de subpoblaciones con
migracin.
Por ltimo, la extensin de las ideas
aplicadas en el trabajo a otros problemas de
optimizacin vinculados con el diseo de
redes de comunicaciones confiables
constituye en s misma una interesante lnea
de trabajo que se plantea como probable

origen de nuevos proyectos en el futuro


cercano.

Bibliografa

AMADOR, N. J., PINEDA, W.,


Diseo y Desarrollo de Algoritmos
y Sistemas de Control por
Clonacin Artificial de un sensor de
viscosidad. Tesis de Maestra en
Ciencias Computacionales, 193
p.p., 2006.

GOLDBERG,
D.E.
Genetic
Algorithms in Search, Optimization
& Machine Learning. Reading:
Addison-Wesley, 1989.

MITCHELL, M. An Introduction
To Genetic Algorithms.
Eight
edition. Cambridge: MIT Press,
2002.

MUOZ, A.F., Aplicacin de los


algoritmos
genticos
en
la
identificacin
y
control
de
bioprocesos por clonacin artificial.
IEEE Transactions on Systems,
Man, and Cybernetic V 19 No. 2
58-76, 1998.

Potrebbero piacerti anche