Está en la página 1de 48

ALGORITMOS GENETICOS

NDICE
1. Introduccin
1.1 Antecedentes
1.2 Definicin
1.3 Problemtica
1.4 Ventajas y Desventajas
1.5 Limitaciones
1.6 Como saber si es posible usar un Algoritmo Gentico
1.7 Marco de Desarrollo
1.8 Comparacin con otros Mtodos de Optimizacin


2. El Algoritmo Gentico Simple
2.1. Codificacin
2.2. Ejemplo
3. Extensiones y Modificaciones del Algoritmo Gentico Simple
3.1. Poblacin
3.1.1. Tamao de la poblacin
3.1.2. Poblacin inicial
3.2. Funcin objetivo
3.3. Seleccin
3.4. Cruce
3.5. Mutacin
3.6. Reduccin
3.7. Algoritmos Genticos Paralelos
4. Lgica Borrosa (fuzzy logic) y Algoritmos Genticos
4.1. Funciones Borrosas
4.2. Algoritmos Genticos basados en Lgica Borrosa
5. Ejemplos de Aplicacin
5.1 Ejemplo 1
5.2 Ejemplo 2
6. Conclusiones
7. Referencias (Bibliografa)
1. Introduccin
1.1. Antecedentes
El algoritmo gentico es una tcnica de bsqueda basada en la teora de la
evolucin de Darwin, que ha cobrado tremenda popularidad en todo el mundo
durante los ltimos aos. Se presentarn aqu los conceptos bsicos que se
requieren para abordarla, as como unos sencillos ejemplos que permitan a los
lectores comprender cmo aplicarla al problema de su eleccin.
En los ltimos aos, la comunidad cientfica internacional ha mostrado un
creciente inters en una nueva tcnica de bsqueda basada en la teora de la
evolucin y que se conoce como el algoritmo gentico. Esta tcnica se basa en
los mecanismos de seleccin que utiliza la naturaleza, de acuerdo a los cuales los
individuos ms aptos de una poblacin son los que sobreviven, al adaptarse ms
fcilmente a los cambios que se producen en su entorno. Hoy en da se sabe que
estos cambios se efectan en los genes de un individuo (unidad bsica de
codificacin de cada uno de los atributos de un ser vivo), y que sus atributos ms
deseables (i.e., los que le permiten adaptarse mejor a su entorno) se transmiten a
sus descendientes cuando ste se reproduce sexualmente.
Un investigador de la Universidad de Michigan llamado John Holland era
consciente de la importancia de la seleccin natural, y a fines de los 60s
desarroll una tcnica que permiti incorporarla a un programa. Su objetivo era
lograr que las computadoras aprendieran por s mismas. A la tcnica que invent
Holland se le llam originalmente "planes reproductivos", pero se hizo popular
bajo el nombre "algoritmo gentico" tras la publicacin de su libro en 1975.
Una definicin bastante completa de un algoritmo gentico es la propuesta por
John Koza:
"Es un algoritmo matemtico altamente paralelo que transforma un conjunto de
objetos matemticos individuales con respecto al tiempo usando operaciones
modeladas de acuerdo al principio Darwiniano de reproduccin y supervivencia
del ms apto, y tras haberse presentado de forma natural una serie de operaciones
genticas de entre las que destaca la recombinacin sexual. Cada uno de estos
objetos matemticos suele ser una cadena de caracteres (letras o nmeros) de
longitud fija que se ajusta al modelo de las cadenas de cromosomas, y se les
asocia con una cierta funcin matemtica que refleja su aptitud. "

1.2. Definicin
Los Algoritmos Genticos (AGs) son mtodos adaptativos que pueden usarse
para resolver problemas de bsqueda y optimizacin. Estn basados en el proceso
gentico de los organismos vivos. A lo largo de las generaciones, las poblaciones
evolucionan en la naturaleza de acorde con los principios de la seleccin natural
y la supervivencia de los ms fuertes, postulados por Darwin. Por imitacin de
este proceso, los Algoritmos Genticos son capaces de ir creando soluciones para
problemas del mundo real. La evolucin de dichas soluciones hacia valores
ptimos del problema depende en buena medida de una adecuada codificacin de
las mismas.
Un algoritmo gentico consiste en una funcin matemtica o una rutina de
software que toma como entradas a los ejemplares y retorna como salidas cuales
de ellos deben generar descendencia para la nueva generacin.
Versiones ms complejas de algoritmos genticos generan un ciclo iterativo que
directamente toma a la especie (el total de los ejemplares) y crea una nueva
generacin que reemplaza a la antigua una cantidad de veces determinada por su
propio diseo. Una de sus caractersticas principales es la de ir perfeccionando su
propia heurstica en el proceso de ejecucin, por lo que no requiere largos
perodos de entrenamiento especializado por parte del ser humano, principal
defecto de otros mtodos para solucionar problemas, como los Sistemas
Expertos.
1.3. Problemtica
Los principios bsicos de los Algoritmos Genticos fueron establecidos por
Holland, y se encuentran bien descritos en varios textos . Goldberg, Davis,
Michalewicz, Reeves.
En la naturaleza los individuos de una poblacin compiten entre s en la
bsqueda de recursos tales como comida, agua y refugio. Incluso los miembros
de una misma especie compiten a menudo en la bsqueda de un compaero.
Aquellos individuos que tienen ms xito en sobrevivir y en atraer compaeros
tienen mayor probabilidad de generar un gran nmero de descendientes. Por el
contrario individuos poco dotados producirn un menor nmero de
descendientes. Esto significa que los genes de los individuos mejor adaptados se
propagarn en sucesivas generaciones hacia un nmero de individuos creciente.
La combinacin de buenas caractersticas provenientes de diferentes ancestros,
puede a veces producir descendientes "superindividuos", cuya adaptacin es
mucho mayor que la de cualquiera de sus ancestros. De esta manera, las especies
evolucionan logrando unas
caractersticas cada vez mejor adaptadas al entorno en el que viven.
Los Algoritmos Genticos usan una analoga directa con el comportamiento
natural. Trabajan con una poblacin de individuos, cada uno de los cuales
representa una solucin factible a un problema dado. A cada individuo se le
asigna un valor puntuacin, relacionado con la bondad de dicha solucin. En la
naturaleza esto equivaldra al grado de efectividad de un organismo para
competir por unos determinados recursos. Cuanto mayor sea la adaptacin de un
individuo al problema, mayor ser la probabilidad de que el mismo sea
seleccionado para reproducirse, cruzando su material gentico con otro individuo
seleccionado de igual forma. Este cruce producir nuevos individuos .
descendientes de los anteriores . los cuales comparten algunas de las
caractersticas de sus padres. Cuanto menor sea la adaptacin de un individuo,
menor ser la probabilidad de que dicho individuo sea seleccionado para la
reproduccin, y por tanto de que su material gentico se propague en sucesivas
generaciones.
De esta manera se produce una nueva poblacin de posibles soluciones, la cual
reemplaza a la anterior y verifica la interesante propiedad de que contiene una
mayor proporcin de buenas caractersticas en comparacin con la poblacin
anterior. As a lo largo de las generaciones las buenas caractersticas se propagan
a travs de la poblacin. Favoreciendo el cruce de los individuos mejor
adaptados, van siendo exploradas las reas ms prometedoras del espacio de
bsqueda. Si el Algoritmo Gentico ha sido bien diseado, la, poblacin
converger hacia una solucin ptima del problema.
1.4. Ventajas y Desventajas
No necesitan conocimientos especficos sobre el problema que intentan resolver.
Operan de forma simultnea con varias soluciones, en vez de trabajar de
forma secuencial como las tcnicas tradicionales.
Cuando se usan para problemas de optimizacin maximizar una funcin
objetivo- resultan menos afectados por los mximos locales (falsas
soluciones) que las tcnicas tradicionales.
Resulta sumamente fcil ejecutarlos en las modernas arquitecturas
masivamente paralelas.
Usan operadores probabilsticos, en vez de los tpicos operadores
determinsticos de las otras tcnicas.
Pueden tardar mucho en converger, o no converger en absoluto,
dependiendo en cierta medida de los parmetros que se utilicen tamao de
la poblacin, nmero de generaciones, etc.-.
Pueden converger prematuramente debido a una serie de problemas de
diversa ndole.
1.5. Limitaciones
El poder de los Algoritmos Genticos 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 dificultades. Si bien no se garantiza que el Algoritmo Gentico
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. En el caso de que existan
tcnicas especializadas para resolver un determinado problema, lo ms probable
es que superen al Algoritmo Gentico, tanto en rapidez como en eficacia. El gran
campo de aplicacin de los Algoritmos Genticos 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 Algoritmos Genticos.
1.6. Como Saber si es Posible usar un Algoritmo Gentico
La aplicacin ms comn de los algoritmos genticos ha sido la solucin de
problemas de optimizacin, en donde han mostrado ser muy eficientes y
confiables. 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:
Su espacio de bsqueda (i.e., sus posibles soluciones) debe estar
delimitado dentro de un cierto rango.
Debe poderse definir una funcin de aptitud que nos indique qu tan buena
o mala es una cierta respuesta.
Las soluciones deben codificarse de una forma que resulte relativamente
fcil de implementar en la computadora.
El primer punto es muy importante, y lo ms recomendable es intentar resolver
problemas que tengan espacios de bsqueda discretos aunque stos sean muy
grandes. Sin embargo, tambin podr intentarse usar la tcnica con espacios de
bsqueda continuos, pero preferentemente cuando exista un rango de soluciones
relativamente pequeo.
La funcin de aptitud no es ms que la funcin objetivo de nuestro problema de
optimizacin. El algoritmo gentico nicamente maximiza, pero la minimizacin
puede realizarse fcilmente utilizando el recproco de la funcin maximizante
(debe cuidarse, por supuesto, que el recproco de la funcin no genere una
divisin por cero). Una caracterstica que debe tener esta funcin es que tiene ser
capaz de "castigar" a las malas soluciones, y de "premiar" a las buenas, de forma
que sean estas ltimas las que se propaguen con mayor rapidez.
La codificacin ms comn de las soluciones es a travs de cadenas binarias,
aunque se han utilizado tambin nmeros reales y letras. El primero de estos
esquemas ha gozado de mucha popularidad debido a que es el que propuso
originalmente Holland, y adems porque resulta muy sencillo de implementar.
1.7. Marco de Desarrollo
Antes de continuar ahondando en la tcnica de los Algoritmos Genticos sera
interesante dejarla situada dentro de un marco ms amplio. Nos referimos a la
rama de la Inteligencia Artificial que se ha denominado Computacin Evolutiva.
El trmino Computacin Evolutiva se refiere al estudio de los fundamentos y
aplicaciones de ciertas tcnicas heursticas de bsqueda basadas en los principios
naturales de la evolucin. Una gran variedad de algoritmos evolutivos han sido
propuestos pero principalmente pueden clasificarse en: Algoritmos Genticos,
Programacin Evolutiva, Estrategias Evolutivas, Sistemas Clasificadores y
Programacin Gentica. Esta clasificacin se basa sobre todo en detalles de
desarrollo histrico ms que en el hecho de un funcionamiento realmente
diferente, de hecho las bases biolgicas en las que se apoyan son esencialmente
las mismas. Las diferencias entre ellos se centra en los operadores que se usan en
cada caso y en general en la forma de implementar la seleccin, reproduccin y
sustitucin de individuos en una poblacin.
Aunque los detalles de la evolucin no han sido completamente comprendidos,
incluso hoy en da, existen algunos puntos en los que se fundamentan:
La evolucin es un proceso que opera a nivel de cromosomas, y no a nivel
de individuos. Cada individuo es codificado como un conjunto de
cromosomas.
La seleccin natural es el mecanismo mediante el cual los individuos
mejor adaptados son los que tienen mayores posibilidades de reproducirse.
El proceso evolutivo tiene lugar en la etapa de la reproduccin. Es en esta
etapa donde se producen la mutacin, que es la causante de que los
cromosomas de los hijos puedan ser diferentes a los de los padres, y el
cruce, que combina los cromosomas de los padres para que los hijos
tengan cromosomas diferentes.
De forma breve, pasamos a comentar cada una de los algoritmos mencionados
anteriormente, para que el lector pueda tener una idea de las similitudes y
diferencias entre ellos.
Los Algoritmos Genticos resuelven los problemas generando poblaciones
sucesivas a las que se aplican los operadores de mutacin y cruce. Cada
individuo representa una solucin al problema, y se trata de encontrar al
individuo que represente a la mejor solucin.
La Programacin Gentica funciona igual que la tcnica anterior pero se centra
en el estudio de problemas cuya solucin es un programa. De manera que los
individuos de la poblacin son programas que se acercan ms o menos a realizar
una tarea que es la solucin.
La Programacin Evolutiva es otro enfoque de los algoritmos genticos, en este
caso el estudio se centra en conseguir operadores genticos que imiten lo mejor
posible a la naturaleza, en cada caso, ms que en la relacin de los padres con su
descendencia. En este caso no se utiliza el operador de cruce, tomando la mxima
importancia el operador de mutacin.
Estrategias Evolutivas se centran en el estudio de problemas de optimizacin e
incluyen una visin del aprendizaje en dos niveles: a nivel de genotipo, y a nivel
de fenotipo. Y por ltimo los Sistemas Clasificadores engloban el estudio de
problemas en los que la solucin buscada se corresponde con toda una poblacin.
Para finalizar se muestra un esquema en el que se sitan las tcnicas
mencionadas con respecto a otros procedimientos de bsqueda conocidos.
1.8 Comparacin con otros mtodos de optimizacin


Algoritmos Genticos y Matemticos
Existen problemas de optimizacin que pueden ser resueltos por la
implementacin de un algoritmo tradicional. En este caso lo ms conveniente es
utilizarlo.
Por ejemplo: Si tenemos la funcin "Es el doble de" , sta puede ser interpretada
como :
Ecuacin 1

Esto tambin es vlido para funciones booleanas (retornan un valor de Verdadero
o Falso ). Por ejemplo la funcin "Es mayor que" , puede ser interpretada como
Ecuacin 2

Para resolver un problema que requiera como solucin saber solamente cual
nmero es mas grande, resulta mas eficaz utilizar el algoritmo matemtico
directamente.
Sin embargo , stos no son aplicables a problemas que posean algunas de estas
caractersticas:
La funcin representativa del problema no es continua. En este caso el
mismo no es computable. Los algoritmos genticos pueden trabajar con
todo tipo de funciones ya que encontrarn un mnimo aceptable si no es
posible encontrar el ptimo.
La funcin representativa es dinmica: La relacin entre las variable
cambia dependiendo de los valores que tomen las mismas. Esta relacin
puede ser advertida o no. Las reglas del tipo
"X es igual a Y si el valor de X es chico;
X es 1.5 de y si el valor de X es grande
no se sabe que pasa para valores medios de X"
no pueden ser convertidas en un algoritmo algebraico ya que existen valores que
se desconocen. A diferencia de un algoritmo tradicional , un algoritmo gentico
puede ser diseado para trabajar bajo estas condiciones.
Algoritmos Genticos y Mtodos Enumerativos
Existe la posibilidad terica de encontrar soluciones a problemas a optimizacin
enumerando todas las soluciones posibles para todos los casos y posteriormente
buscando la misma en la base de datos resultante. Los problemas se limitan
entonces a un sistema de bsqueda eficiente del caso concreto. Por ejemplo los
libros con tablas de logaritmos tradicionales constan de una larga serie de
clculos para todos los valores usuales. La solucin consiste simplemente en
buscar en la lista el nmero decimal y retornar el logaritmo dado.
La memorizacin de las tablas de multiplicar que se ensean a los nios es otro
ejemplo usual. Se espera que ante la pregunta Cunto es siete por cinco? los
nios respondan instantneamente "35" sin tener que estar calculando
mentalmente la multiplicacin.
Este mtodo es factible siempre que el nmero de valores sea manejable. De otra
manera el simple clculo de los mismos se vuelve imposible. Ejemplo: Generar
una tabla que contenga todas las movidas de todos los partidos posibles de un
juego de damas resultara imposible de hacer en la prctica.
La " memorizacin " de una serie de datos no es otra cosa que la construccin en
la memoria del equivalente a una base de datos en donde se busca la pregunta y
se encuentra automticamente la respuesta.
Los algoritmos genticos usan heurstica para la resolucin de problemas , lo cual
limita drsticamente el nmero de datos a utilizar.
Algoritmos Genticos y Sistemas Expertos
Un Sistema Experto es un programa de computadora que encuentra soluciones a
problemas del tipo condicional con la estructura:
Si ocurren los hechos A,B,C,D , cual sera el valor del suceso E
Ejemplo: Si un anlisis mdico detecta los sntomas A , B , C y D en un paciente
, Cual ser la enfermedad del sujeto?
Ejemplo: Si el anlisis geolgico de una capa de suelo detecta la presencia de los
compuestos qumicos A , B , C y D Es factible que exista petrleo en la misma?.
Si bien existen en la literatura ejemplos de la utilidad de sta tcnica , las reglas
deben ser provistas por un especialista ( o varios ) en el tema. Por ende , se
requiere que los conocimientos estn disponibles, que sean estructurados o
factibles de ser estructurados ( convertidos a reglas heursticas ) y que los hechos
de la realidad sean relativamente estticos , es decir que las causas para arribar a
una determinada conclusin no cambien , ya que cada vez que esto sucede , los
expertos deben reelaborrar las reglas , lo cual dificulta y retarda
considerablemente la operatoria del sistema.
Las condiciones bsicas necesarias para la implementacin efectiva de un sistema
experto pueden observarse en el cuadro GA005.
Los Sistemas Expertos tuvieron su apogeo en la dcada de los 80
`s
,
aproximadamente de 1979 a 1985. En esa poca se los lleg a considerar
verdaderas panaceas que resolveran muchos de los problemas cotidianos del
hombre. Incluso se formaron en ese entonces varias compaas con el objeto
especfico de realizarlos y comercializarlos. Algunos fueron exitosos y
funcionaron bien , pero las dificultades planteadas anteriormente no tardaron en
aparecer. En particular:
Existen temas en los cuales el conocimiento no es esttico , sino que la
aparicin de nueva informacin altera las pautas o reglas de inferencia de
los resultados. La necesidad permanentes de reevaluar las reglas por medio
de expertos humanos lleva al sistema a una operatoria lenta y burocrtica.
Cada conocimiento nuevo implica reentrenar manualmente el sistema. Los
Sistemas Expertos demostraron no ser tiles en este campo.
Existen temas en los cuales la interrelacin de ciertas variables no es
conocida. Si la informacin disponible de cierto asunto es limitada , y no
se conoce el comportamiento de algunas de sus variables , el Sistema
experto tendr grandes dificultades de programarse ya que sus reglas sern
imprecisas.
El Cuadro GA5 muestra las condiciones bsicas necesarias para la
implementacin efectiva de un sistema experto
Condiciones bsicas necesarias para la implementacin efectiva de un
sistema experto

Los expertos no siempre estructuran su conocimiento. Existen numerosas
personas que razonan por mtodos empricos. Esto hace que les resulte
muy difcil traducir sus pensamientos o su mtodo deductivo a reglas que
la computadora pueda interpretar. Un Sistema experto no podr llegar a
resultados valederos cuando los especialistas en un tema no puedan tener
estructurados sus pensamientos. Por ejemplo: supngase que se quiera
programar un sistema experto para calificar obras de arte. Difcilmente se
encontrar un crtico de arte que pueda estructurar las razones por las
cuales considera "buena" o "mala" a una obra de arte. En general las
palabras que pueda decir resultarn a los odos del programador del
Sistema como una serie de subjetividades imposibles de sistematizar.
Luego de observar todo esto, se empez a considerar a los Sistemas expertos
como aptos solamente para entornos reducidos y con condiciones de ejecucin
acotadas. La idea del Sistema Experto como " resolvedor universal de problemas
" qued sepultada.
Si bien la investigacin bsica de los algoritmos genticos es contempornea a la
de los sistemas expertos , la renovada importancia que se les dio en el mbito
cientfico se produjo en paralelo a la desvalorizacin que sufrieron estos ltimos.
Los algoritmos genticos se revalorizaron ya que poseen las siguientes ventajas
competitivas:
Solo necesitan asesoramiento del experto cuando se agregan o suprimen
variables al modelo. Los Sistemas Expertos requieren la presencia del
mismo ante cada modificacin del entorno.
Los algoritmos genticos solo requieren el asesoramiento del experto para
identificar las variables pertinentes , aunque no es necesario que stos
definan sus valores ni sus relaciones (las reglas) iniciales o finales. Los
Sistemas Expertos solo trabajan con las reglas y valores que les dictan los
seres humanos.
Algoritmos Genticos y Redes Neuronales
Una red neuronal es el intento de poder realizar una simulacin computacional
del comportamiento de partes del cerebro humano mediante la rplica en pequea
escala de los patrones que ste desempea para la formacin de resultados a
partir de los sucesos percibidos. El cerebro consta de unidades llamadas
neuronas, las cuales estn conectadas entre si formando una red (de ah la
denominacin " red neuronal ")
Concretamente, se trata de poder analizar y reproducir el mecanismo de
aprendizaje de sucesos que poseen los animales ms evolucionados.
La red simula grupos de neuronas , llamados " capas " las cuales estn
relacionadas unas con otras. Los datos se introducen en la primera capa , llamada
"capa de entradas" Cada capa transfiere la informacin a sus vecinas., teniendo
un peso o ponderacin para los valores , lo que va modificando los mismos en su
paso a travs de la red
Cuando los datos llegan a la ltima de las capas , llamada " capa de salida " el
valor resultante es tomado como el resultado de la red. La red puede ser
entrenada para diversos usos , entre ellos como mecanismo de optimizacin. En
este sentido, se puede expresar que seran un modelo alternativo competitivo con
los algoritmos genticos , si se las programara para este fin. En rigor de verdades
, la literatura sugiere que se podran hacer modelos mixtos o hbridos en donde se
combinen las ventajas de las redes neuronales y los algoritmos genticos , aunque
hay muy poco material disponible en este campo. Tal vez esto se deba al hecho
que los GA y el estudio de las redes forman dos ramas o escuelas separadas
dentro de la inteligencia artificial , por lo que existe una preferencia en los
investigadores en perfeccionar alguno de los dos modelos antes que tratar de
unirlos.



1.
2.El Algoritmo Gentico Simple
El Algoritmo Gentico Simple, tambin denominado Cannico, se
representa en la Figura . 1. Como se ver a continuacin, se necesita una
codificacin o representacin del problema, que resulte adecuada al
mismo. Adems se requiere una funcin de ajuste adaptacin al
problema, la cual asigna un nmero real a cada posible solucin
codificada. Durante la ejecucin del algoritmo, los padres deben ser
seleccionados para la reproduccin, a continuacin dichos padres
seleccionados se cruzarn generando dos hijos, sobre cada uno de los
cuales actuar un operador de mutacin. El resultado de la combinacin de
las anteriores funciones ser un conjunto de individuos (posibles
soluciones al problema), los cuales en la evolucin del Algoritmo
Gentico formarn parte de la siguiente poblacin.

Figura 1
2.1. Codificacin
Se supone que los individuos (posibles soluciones del problema), pueden
representarse como un conjunto de parmetros (que denominaremos
penes), los cuales agrupados forman una ristra de valores (a menudo
referida como cromosoma). Si bien el alfabeto utilizado para representar
los individuos no debe necesariamente estar constituido por el (0, l), buena
parte de la teora en la que se fundamentan los Algoritmos Genticos
utiliza dicho alfabeto. En trminos biolgicos, el conjunto de parmetros
representando un cromosoma particular se denomina fenotipo. El fenotipo
contiene la informacin requerida para construir un organismo, el cual se
refiere como genotipo. Los mismos trminos se utilizan en el campo de los
Algoritmos Genticos. La adaptacin al problema de un individuo depende
de la evaluacin del genotipo. Esta ltima puede inferirse a partir del
fenotipo, es decir puede ser computada a partir del cromosoma, usando la
funcin de evaluacin. La funcin de adaptacin debe ser diseada para
cada problema de manera especfica. Dado un cromosoma particular, la
funcin de adaptacin le asigna un nmero real, que se supone refleja el
nivel de adaptacin al problema del individuo representado por el
cromosoma.
Durante la fase reproductiva se seleccionan los individuos de la poblacin
para cruzarse y producir descendientes, que constituirn, una vez.
mutados, la siguiente generacin de individuos. La seleccin de padres se
efecta al azar usando un procedimiento que favorezca a los individuos
mejor adaptados, ya que a cada individuo se le asigna una probabilidad
de ser seleccionado que es proporcional a su funcin de adaptacin. Este
procedimiento se dice que est basado en la ruleta sesgada. Segn dicho
esquema, los individuos bien adaptados se escogern probablemente varias
veces por generacin, mientras que, los pobremente adaptados al
problema, no se escogern ms que de vez en cuando.
Una vez seleccionados dos padres, sus cromosomas se combinan,
utilizando habitualmente los operadores de cruce y mutacin. Las formas
bsicas de dichos operadores se describen a continuacin.
El operador de cruce, coge dos padres seleccionados y corta sus ristras de
cromosomas en una posicin escogida al azar, para producir dos subristras
iniciales y dos subristras finales. Despus se intercambian las subristras
finales, producindose dos nuevos cromosomas completos (vase la Figura
2). Ambos descendientes heredan genes de cada uno de los padres. Este
operador se conoce como operador de cruce basado en un punto.
Habitualmente el operador de cruce no se aplica a todos los pares de
individuos que han
Figura 2
sido seleccionados para emparejarse, sino que se aplica de manera
aleatoria, normalmente con una probabilidad comprendida entre 0.5 y 1.0.
En el caso en que el operador de cruce no se aplique, la descendencia se
obtiene simplemente duplicando los padres.
El operador de mutacin se aplica a cada hijo de manera individual, y
consiste en la alteracin aleatoria (normalmente con probabilidad pequea)
de cada gen componente del cromosoma. La Figura 3 muestra la mutacin
del quinto gen del cromosoma. S bien

Figura 3
puede en principio pensarse que el operador de cruce es ms importante
que el operador de mutacin, ya que proporciona una exploracin rpida
del espacio de bsqueda, ste ltimo asegura que ningn punto del espacio
de bsqueda tenga probabilidad cero de ser examinado, y es de capital
importancia para asegurar la convergencia de los Algoritmos Genticos.
Para criterios prcticos, es muy til la definicin de convergencia
introducida en este campo por De Jong en su tesis doctoral. Si el
Algoritmo Gentico ha sido correctamente implementado, la poblacin
evolucionar a lo largo de las generaciones sucesivas de tal manera que la
adaptacin media extendida a todos los individuos de la poblacin, as
como la adaptacin del mejor individuo se irn incrementando hacia el
ptimo global. El concepto de convergencia est relacionado con la
progresin hacia la uniformidad: un gen ha convergido cuando al menos el
95 % de los individuos de la poblacin comparten el mismo valor para
dicho gen. Se dice que la poblacin converge cuando todos los genes han
convergido. Se puede generalizar dicha definicin al caso en que al menos
un poco de los individuos de la poblacin hayan convergido.
La Figura 4 muestra como vara la adaptacin media y la mejor adaptacin
en un Algoritmo Gentico Simple tpico.

Figura 4
A medida que el nmero de generaciones aumenta, es ms probable que la
adaptacin media se aproxime a la del mejor individuo.
2.2. Ejemplo
Como ilustracin de los diferentes componentes del Algoritmo Gentico
Simple, supongamos el problema . adaptado de Goldberg de encontrar el
mximo de la funcin f(z) = x
2
sobre los enteros (1,2,...,32).
Evidentemente para lograr dicho ptimo, bastara actuar por bsqueda
exhaustiva, dada la baja cardinalidad del espacio de bsqueda. Se trata por
tanto de un mero ejemplo con el que pretendemos ilustrar el
comportamiento del algoritmo anteriormente descrito. Consultando l
pseudocdigo de la Figura 1, vemos que el primer paso a efectuar consiste
en determinar el tamao de la poblacin inicial, para a continuacin
obtener dicha poblacin al azar y computar la funcin de evaluacin de
cada uno de sus individuos.
Suponiendo que el alfabeto utilizado para codificar los individuos est
constituido por (0, 1), necesitaremos ristras de longitud 5 para representar
los 32 puntos del espacio de bsqueda.
En la Tabla 1, hemos representado los 4 individuos que constituyen la
poblacin inicial, junto con su funcin de adaptacin al problema, as
como la probabilidad de que cada uno de dichos individuos sea
seleccionado . segn el modelo de ruleta sesgada . para emparejarse.
Volviendo a consultar el pseudocdigo expresado en la Figura 1, vemos
que el siguiente paso consiste en la seleccin de 2 parejas de individuos.
Para ello es suficiente, con obtener 4 nmeros reales provenientes de una
distribucin de probabilidad uniforme en el intervalo

Tabla 1

Tabla 2
(0, 1), y compararlos con la ltima columna de la Tabla l. As por ejemplo,
supongamos que dichos 4 nmeros hayan sido: 0.58; 0.84; 0.11 y 0.43.
Esto significa que los individuos seleccionados para el cruce han sido: el
individuo 2 junto con el individuo 4, as como el individuo 1 junto con el
individuo 2.
Para seguir con el Algoritmo Gentico Simple, necesitamos determinar la
probabilidad de cruce, p,. Supongamos que se fije en p, = 0.8. Valindonos
al igual que antes de, 2 en este caso, nmeros provenientes de la
distribucin uniforme, determinaremos si los emparejamientos anteriores
se llevan a cabo. Admitamos, por ejemplo, que los dos nmeros extrados
sean menores que 0.8, decidindose por tanto efectuar el cruce entre las
dos parejas. Para ello escogeremos un nmero al azar entre l y 1 . 1
(siendo l la longitud de la ristra utilizada para representar el individuo).
Notse que la restriccin impuesta al escoger el nmero entre 1 y l . l, y no
l, se realiza con la finalidad de que los descendientes no coincidan con los
padres.
Supongamos, tal y como se indica en la Tabla 2, que los puntos de cruce
resulten ser 2 y 3. De esta manera obtendramos los 4 descendientes
descritos en la tercera columna de la Tabla 2. A continuacin siguiendo el
pseudocdigo de la Figura 1, mutaramos con una probabilidad, p, cercana
a cero, cada uno de los bit de las cuatro ristras de individuos. En este caso
suponemos que el nico bit mutado corresponde al primer gen del tercer
individuo. En las dos ltimas columnas se pueden consultar los valores de
los individuos, as como las funciones de adaptacin correspondientes.
Como puede observarse, tanto el mejor individuo como la funcin de
adaptacin media han mejorado sustancialmente al compararlos con los
resultados de la Tabla 1.

3.Extensiones y Modificaciones del
Algoritmo Gentico Simple
En este apartado se introducirn algunas extensiones y modificaciones del
Algoritmo Gentico Simple. Se comenzar dando un pseudocdigo para un
Algoritmo Gentico Abstracto (AGA), para a continuacin introducir algunas
variantes que se han ido proponiendo en trabajos desarrollados en estos ltimos
aos.

Figura 5
3.1. Poblacin
3.1.1. Tamao de la poblacin
Una cuestin que uno puede plantearse 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.
Goldberg efectu un estudio terico, obteniendo como conclusin que el tamao
ptimo de la poblacin para ristras de longitud I, con codificacin binaria, crece
exponencialmente con el tamao de la ristra.
Este resultado traera como consecuencia que la aplicabilidad de los Algoritmos
Genticos en problemas reales sera muy limitada, ya que resultaran no
competitivos con otros mtodos de optimizacin combinatoria. Alander,
basndose en evidencia emprica sugiere que un tamao de poblacin
comprendida entre l y 21 es suficiente para atacar con xito los problemas por el
considerados.
3.1.2. Poblacin inicial
Habitualmente la poblacin inicial se escoge generando ristras al azar, pudiendo
contener cada gen uno de los posibles valores del alfabeto con probabilidad
uniforme. Nos podramos preguntar que es lo que sucedera si los individuos de
la poblacin inicial se obtuviesen como resultado de alguna tcnica heurstica o
de optimizacin local. En los pocos trabajos que existen sobre este aspecto, se
constata que esta inicializacin no aleatoria de la poblacin inicial, puede
acelerar la convergencia del Algoritmo Gentico. Sin embargo en algunos casos
la desventaja resulta ser la prematura convergencia del algoritmo, queriendo
indicar con esto la convergencia hacia ptimos locales.
3.2. Funcin objetivo
Dos aspectos que resultan cruciales en el comportamiento de los Algoritmos
Genticos son la determinacin de una adecuada funcin de adaptacin o funcin
objetivo, as como la codificacin utilizada.
Idealmente nos interesara construir funciones objetivo con "ciertas
regularidades", es decir funciones objetivo que verifiquen que para dos
individuos que se encuentren cercanos en el espacio de bsqueda, sus respectivos
valores en las funciones objetivo sean similares. Por otra parte una dificultad en
el comportamiento del Algoritmo Gentico puede ser la existencia de gran
cantidad de ptimos locales, as como el hecho de que el ptimo global se
encuentre muy aislado.
La regla, general para construir una buena funcin objetivo es que sta debe
reflejar el valor del individuo de una manera "real", pero en muchos problemas
de optimizacin combinatoria, donde existe gran cantidad de restricciones, buena
parte de los puntos del espacio de bsqueda representan individuos no vlidos.
Para este planteamiento en el que los individuos estn sometidos a restricciones,
se han propuesto varias soluciones. La primera sera la que podramos denominar
absolutista, en la que 'aquellos individuos que no verifican las restricciones, no
son considerados como tales, y se siguen efectuando cruces y mutaciones hasta
obtener individuos vlidos, o bien, a dichos individuos se les asigna una funcin
objetivo igual a cero.
Otra posibilidad consiste en reconstruir aquellos individuos que no verifican las
restricciones. Dicha reconstruccin suele llevarse a cabo por medio de un nuevo
operador que se acostumbra a denominar reparador.
Otro enfoque est basado en la penalizacin de la funcin objetivo. La idea
general consiste en dividir la funcin objetivo del individuo por una cantidad (la
penalizacin) que guarda relacin con las restricciones que dicho individuo viola.
Dicha cantidad puede simplemente tener en cuenta el nmero de restricciones
violadas bien el denominado costo esperado de reconstruccin, es decir el coste
asociado a la conversin de dicho individuo en otro que no viole ninguna
restriccin.
Otra tcnica que se ha venido utilizando en el caso en que la computacin de la
funcin objetivo sea muy compleja es la denominada evaluacin aproximada de
la funcin objetivo. En algunos casos la obtencin de n funciones objetivo
aproximadas puede resultar mejor que la evaluacin exacta de una nica funcin
objetivo (supuesto el caso de que la evaluacin aproximada resulta como mnimo
n veces ms rpida que la, evaluacin exacta).
Un problema habitual en las ejecuciones de los Algoritmos Genticos surge
debido a la velocidad con la que el algoritmo converge. En algunos casos la
convergencia es muy rpida, lo que suele denominarse convergencia prematura,
en la cual el algoritmo converge hacia ptimos locales, mientras que en otros
casos el problema es justo el contrario, es decir se produce una convergencia
lenta del algoritmo. Una posible solucin a estos problemas pasa por efectuar
transformaciones en la funcin objetivo. El problema de la convergencia
prematura, surge a menudo cuando la seleccin de individuos se realiza de
manera proporcional a su funcin objetivo. En tal caso, pueden existir individuos
con una adaptacin al problema muy superior al resto, que a medida que avanza
el algoritmo "dominan" a la poblacin. Por medio de una transformacin de la
funcin objetivo, en este caso una comprensin del rango de variacin de la
funcin objetivo, se pretende que dichos "superindividuos" no lleguen a dominar
a la poblacin.
El problema de la lenta convergencia del algoritmo, se resolvera de manera
anloga, pero en este caso efectuando una expansin del rango de la funcin
objetivo.
La idea de especies de organismos, ha sido imitada en el diseo de los
Algoritmos Genticos en un mtodo propuesto por Goldberg y Richardson,
utilizando una modificacin de la funcin objetivo de cada individuo, de tal
manera que individuos que estn muy cercanos entre s devalen su funcin
objetivo, con objeto de que la poblacin gane en diversidad.

Funcin
3.3 Seleccin
La funcin de seleccin de padres ms utilizada, es la denominada funcin de
seleccin proporcional a la funcin objetivo, en la cual cada individuo tiene una,
probabilidad de ser seleccionado como padre que es proporcional al valor de su
funcin objetivo.
Denotando por (p super prop sub j,t) la probabilidad de que el individuo (I super j
sub t) sea seleccionado como padre, se tiene que:

Funcin
Esta funcin de seleccin es invariante ante un cambio de escala, pero no ante
una traslacin.
Una de las maneras de superar el problema relacionado con la rpida
convergencia proveniente de los superindividuos, que surge al aplicar la anterior
funcin de seleccin, es el efectuar la seleccin proporcional al rango del
individuo, con lo cual se produce una reparticin ms uniforme de la
probabilidad de seleccin, tal y como se ilustra en la Figura 6. Si denotamos por
rango(g(I super j sub t)) el rango de la funcin objetivo del individuo (I super j
sub t) cuando

Figura 6
los individuos de la poblacin han sido ordenados de menor a mayor (es decir el
peor individuo tiene rango 1, mientras que el individuo con mejor funcin
objetivo tiene rango lambda), y sea (p super rango sub j,t) la probabilidad de que
el individuo (I super j sub t) sea seleccionado como padre cuando la seleccin se
efecta proporcionalmente al rango del individuo, se tiene que

Funcin
La suma de los rangos, lambda(lambda + 1)/2, constituye la constante de
normalizacin.
La funcin de seleccin basada en el rango es invariante frente a la translacin y
al cambio de escala.
Otro posible refinamiento del modelo de seleccin proporcional, es el modelo de
seleccin del valor esperado, el cual acta de la manera siguiente: para, cada
individuo If, se introduce un contador, inicialiazado en g(I super j sub t)/gt,
donde, gt denota la media, de. ) a funcin objetivo en la generacin t. Cada vez
que el individuo (I super j sub t) es seleccionado para el cruce, dicho contador
decrece en una cantidad c (c pertenece a (0, 5;.1)). El individuo en cuestin
dejar de poder ser seleccionado en esa generacin, cuando su contador sea
negativo.
Un esquema de seleccin, introducido por Brindle, y que empricamente ha
proporcionado buenos resultados, es el denominado muestreo estocstico con
reemplazamiento del resto, en el cual cada individuo es seleccionado un nmero
de veces que coincide con la parte entera del nmero esperado de ocurrencias de
dicho suceso, compitiendo los individuos por los restos. Es decir, si denotamos
por n(I super j sub t) el nmero de veces que el individuo (I super j sub t) es
seleccionado para el cruce, tenemos que:

Funcin
Baker introduce un mtodo denominado muestreo universal estocstico, el cual
utiliza un nico giro de la ruleta siendo los sectores circulares proporcionales a la
funcin objetivo. Los individuos son seleccionados a partir de marcadores (vase
Figura 7), igualmente espaciados y con comienzo aleatorio.
Efectuando un paralelismo con los mtodos de muestreo estadsticos, este ltimo
tipo

Figura 7
de seleccin de padres se relaciona con el muestreo sistemtico, mientras que la
seleccin proporcional a la funcin objetivo, est basada en el muestreo
estratificado con fijacin proporcional al tamao. Tambin el procedimiento de
seleccin que hemos denominado muestreo estocstico con reemplazamiento del
resto, mantiene un paralelismo con el muestreo estratificado con fijacin de
compromiso.
En el modelo de seleccin elitista se fuerza a que el mejor individuo de la
poblacin en el tiempo t, sea seleccionado como padre.
La seleccin por torneo, constituye un procedimiento de seleccin de padres muy
extendido y en el cual la idea consiste en escoger al azar un nmero de
individuos de la poblacin, tamao del torneo, (con o sin reemplazamiento),
seleccionar el mejor individuo de este grupo, y repetir el proceso hasta que el
nmero de individuos seleccionados coincida con el tamao de la poblacin.
Habitualmente el tamao del torneo es 2, y en tal caso se ha utilizado una versin
probabilstica en la cual se permite la seleccin de individuos sin que
necesariamente sean los mejores.
Una posible clasificacin de procedimientos de seleccin de padres consistir en:
mtodos de seleccin dinmicos, en los cuales las probabilidades de seleccin
varan de generacin a generacin, (por ejemplo la seleccin proporcional a la
funcin objetivo), frente a mtodos de seleccin estticos, en los cuales dichas
probabilidades permanecen constantes (por ejemplo la seleccin basada en
rangos).
Si se asegura que todos los individuos tienen asignada una probabilidad de
seleccin distinta de cero el mtodo de seleccin se denomina preservativo. En
caso contrario se acostumbra a denominarlo extintivo.
3.4. Cruce
El Algoritmo Gentico Cannico descrito anteriormente utiliza el cruce basado
en un punto, en el cual los dos individuos seleccionados para jugar el papel de
padres, son recombinados por medio de la seleccin de un punto de corte, para
posteriormente intercambiar las secciones que se encuentran a la derecha de
dicho punto.
Se han investigado otros operadores de cruce, habitualmente teniendo en cuenta
ms de un punto de cruce. De Jong investig el comportamiento del operador de
cruce basado en mltiples puntos, concluyendo que el cruce basado en dos
puntos, representaba una mejora mientras que aadir ms puntos de cruce no
beneficiaba el comportamiento del algoritmo. La ventaja de tener ms de un
punto de cruce radica en que el espacio de bsqueda puede ser explorado ms
fcilmente, siendo la principal desventaja el hecho de aumentar la probabilidad
de ruptura de buenos esquemas.
En el operador de cruce basado en dos puntos, los cromosomas (individuos)
pueden contemplarse como un circuito en el cual se efecta la seleccin aleatoria
de dos puntos, tal y como se indica en la Figura 8.

Figura 8
Desde este punto de vista, el cruce basado en un punto, puede verse como un
caso particular del cruce basado en dos puntos, en el cual uno de los puntos de
corte se encuentra fijo al comienzo de la ristra que representa al individuo. Vase
Figura,9.
En el denominado operador de cruce uniforme (Syswerda) cada gen, en la
descendencia se crea copiando el correspondiente gen de uno de los dos padres,
escogido de acuerdo ' a una "mscara de cruce" generada aleatoriamente. Cuando
existe un l en la "mscara de cruce", el gen es copiado del primer padre, mientras
que cuando exista un 0 en la

Figura 9
"mscara de cruce", el gen se copia del segundo padre, tal y como se muestra en
la Figura 10. En la literatura, el trmino operador de cruce uniforme se relaciona
con la obtencin

Figura 10
de la "mscara de cruce" uniforme, en el sentido de que cualquiera de los
elementos del alfabeto tenga asociada la misma probabilidad. Hablando en
trminos de la teora de la probabilidad la mscara de cruce est compuesta por
una muestra aleatoria de tamao A extrada de una distribucin de probabilidad
de Bernouilli de parmetro l/2.
Si tuvisemos en cuenta el valor de la funcin de adaptacin de cada padre en el
momento de generar la "mscara de cruce", de tal manera que cuanto mayor sea
la funcin de adaptacin de un individuo, ms probable sea heredar sus
caractersticas, podramos definir, vase Larraaga y Poza [26], un operador de
cruce basado en la funcin objetivo, en el cual la "mscara de cruce" se interpreta
como una muestra aleatoria de tamao l proveniente de una distribucin de
Bernouilli de parmetro

Funcin
donde (I super j sub t) y I(super i sub t) denotan los padres seleccionados para ser
cruzados.
El concepto de "mscara de cruce" puede tambin servir para representar los
cruces basados en un punto y basados en mltiples puntos, tal y como se muestra
en Figura 11.
Sirag y Weiser, modifican el operador de cruce en el sentido del Simulated
Annealing. De esta manera el operador de cruce se modifica definiendo un
umbral de energa H. y una temperatura T, las cuales influencian la manera en la
que se escogen los bits individuales. Segn el operador propuesto el bit (i + 1)-
simo se tomar del padre opuesto al que se ha tomado el bit i-simo, con
probabilidad exp( . (tetha sub c)/T), donde T es el parmetro "temperatura" el
cual, al igual que en Simulated Annealing, decrecer lentamente por medio de un
programa de enfriamiento. Con altas temperaturas el comportamiento se asemeja
al del operador de cruce uniforme, es decir con probabilidad cercana a la unidad
los bits se van escogiendo alternativamente de cada padre. Por otra parte cuando
el valor

Figura 11
del parmetro temperatura se acerca a cero el hijo "resultante coincide
prcticamente con uno de los padres.
Existen otros operadores de cruce especficos para un determinado problema
como son, por ejemplo, los definidos para el problema del agente de comercio.
Por otra parte, la idea de que el cruce debera de ser ms probable en algunas
posiciones ha sido descrita por varios autores (Schaffer y Morishima, Holland,
Davis, Levenick).
3.5. Mutacin
La mutacin se considera un operador bsico, que proporciona un pequeo
elemento de aleatoriedad en la vecindad (entorno) de los individuos de la
poblacin. Si bien se admite que el operador de cruce es el responsable de
efectuar la bsqueda a lo largo del espacio de posibles soluciones, tambin
parece desprenderse de los experimentos efectuados por varios investigadores
que el operador de mutacin va ganando en importancia a medida que la
poblacin de individuos va convergiendo (Davis).
Schaffer y col. encuentran que el efecto del cruce en la bsqueda es inferior al
que previamente se esperaba. Utilizan la denominada evolucin primitiva, en la
cual, el proceso evolutivo consta tan slo de seleccin y mutacin. Encuentran
que dicha evolucin primitiva supera con creces a una evolucin basada
exclusivamente en la seleccin y el cruce. Otra conclusin de su trabajo es que la
determinacin del valor ptimo de la probabilidad de mutacin es mucho ms
crucial que el relativo a la probabilidad de cruce.
La bsqueda del valor ptimo para la probabilidad de mutacin, es una cuestin
que ha sido motivo de varios trabajos. As, De Jong recomienda la utilizacin de
una probabilidad de mutacin del bit de (l super -1), siendo l la longitud del
string. Schaffer y col. utilizan resultados experimentales para estimar la tasa
ptima proporcional a l /(lambda super 0.9318),(l super 0.4535), donde lambda
denota el nmero de individuos en la poblacin.
Si bien en la mayora de las implementaciones de Algoritmos Genticos se asume
que tanto la probabilidad de cruce como la de mutacin permanecen constantes,
algunos autores han obtenido mejores resultados experimentales modificando la
probabilidad de mutacin a medida que aumenta el nmero de iteraciones.
Pueden consultarse los trabajos de Ackley, Bramlette, Fogarty y Michalewicz y
Janikow.
3.6. Reduccin
Una vez obtenidos los individuos descendientes de una determinada poblacin en
el tiempo t, el proceso de reduccin al tamao original, consiste en escoger
lambda individuos de entre los Lambda individuos que forman parte de la
poblacin en el tiempo t, y los lambda individuos descendientes de los mismos.
Dicho proceso se suele hacer fundamentalmente de dos formas distintas.
O bien los lambda individuos descendientes son los que forman parte de la
poblacin en el tiempo t + 1, es lo que se denomina reduccin simple, o bien se
escogen de entre los 2lambra individuos, los lambda individuos ms adaptados al
problema, siguiendo lo que podemos denominar un criterio de reduccin elitista
de grado lambda. Podemos tambin considerar otros procedimientos de
reduccin que se colocan entre los anteriores, por ejemplo, si escogemos los
(lambda sub 1) mejores de entre padres y descendientes, escogindose los lambda
. (lambda sub 1)y restantes de entre los descendientes no seleccionados hasta el
momento.
El concepto de reduccin est ligado con el de tasa de reemplazamiento
generacional, (t sub rg) es decir en el porcentaje de hijos generados con respecto
del tamao de la, poblacin.
Si bien en la idea primitiva de Holland [22] dicho reemplazamiento se efectuaba,
de l en 1, es decir (t sub gr)=(lambda super -1), habitualmente dicho
reemplazamiento se efecta en bloque, (t sub gr)= 1. De Jong [13] introdujo el
concepto de tasa de reemplazamiento generacional con el objetivo de efectuar un
solapamiento controlado entre padres e hijos. En su trabajo, en cada paso una
proporcin, t,~, de la poblacin es seleccionada para ser cruzada. Los hijos
resultantes podrn reemplazar a miembros de la poblacin anterior. Este tipo de
Algoritmos Genticos se conocen bajo el nombre de SSGA (Steady State Genetie
Algorithm), un ejemplo de los cuales lo constituye GENITOR (Whitley y Kauth,
Whitley).
Michalewicz introduce un algoritmo que denomina Algoritmo Gentico
Modificado, (MOD sub GA), en el cual para llevar a cabo el reemplazamiento
generacional, selecciona al azar r1 individuos para la reproduccin, as como r2
individuos (distintos de los anteriores) destinados a morir. Estas selecciones
aleatorias tienen en consideracin el valor de la funcin objetivo de cada
individuo, de tal manera que cuanto mayor es la funcin objetivo, mayor es la
probabilidad de que sea seleccionado para la reproduccin, y menor es la
probabilidad de que dicho individuo fallezca. El resto de los lambda . (r1 + r2)
individuos son considerados como neutros y pasan directamente a formar parte
de la poblacin en la siguiente generacin.
3.7. Algoritmos Genticos Paralelos
En este apartado se introducirn tres maneras diferentes de explotar el
paralelismo de los Algoritmos Genticos, por medio de los denominados
modelos de islas. Para una profundizacin sobre el tema puede consultarse
Stender.
Modelos de islas.
La idea bsica consiste en dividir la poblacin total en varias subpoblaciones en
cada una de las cuales se lleva, a cabo un Algoritmo Gentico. Cada cierto
nmero de generaciones, se efecta un intercambio de informacin entre las
subpoblaciones, proceso que se denomina migracin. La introduccin de la
migracin hace que los modelos de islas sean capaces de explotar las diferencias
entre las diversas subpoblaciones, obtenindose de esta manera una fuente de
diversidad gentica. Cada subpopulacin es una "isla", definindose un
procedimiento por medio del cual se mueve el material gentico de una "isla" a
otra. La determinacin de la, tasa de migracin, es un asunto de capital
importancia, ya que de ella puede depender la convergencia prematura de la
bsqueda.
Se pueden distinguir diferentes modelos de islas en funcin de la comunicacin
entre las
subpoblaciones. Algunas comunicaciones tpicas son las siguientes:
Comunicacin en estrella, en la cual existe una subpoblacin que es
seleccionada como maestra (aquella que tiene mejor media en el valor de
la funcin objetivo), siendo las dems consideradas como esclavas. Todas
las subpoblaciones esclavas mandan sus h1 mejores individuos (h1, > 1) a
la subpoblacin maestra la cual a su vez manda sus h2 mejores individuos
(h2 > 1) a cada una de las subpoblaciones esclavas. Vase Figura 12.

Figura 12
Comunicacin en red, en la cual no existe una jerarqua entre las
subpoblaciones, mandando todas y cada una de ellas sus h3 (h3 > 1)
mejores individuos al resto de las subpoblaciones. Vase Figura 13.

Figura 13
Comunicacin en anillo, en la cual cada subpoblacin enva sus h4
mejores individuos (h4 > 1), a una poblacin vecina, efectundose la
migracin en un nico sentido de flujo. Vase Figura 14.
El modelo de islas ha sido utilizado por varios autores (Whitley y Starkweather,
Gorges-Schleuter, Tanese).

Figura 14
4. Lgica borrosa (fuzzy logic) y algoritmos genticos
La lgica borrosa trata de acercar la matemtica al lenguaje impreciso del
hombre comn. El ser humano se maneja habitualmente con conceptos vagos ,
los cuales no pueden ser representados por la matemtica tradicional.
Si se pregunta a una serie de personas acerca del estado del clima , es factible que
las respuestas sean del tipo:
"Hace mucho calor".
"Hace frio"
"Hoy llovi mucho"
"No llovi casi nada: Apenas unas gotitas"
Si alguien responde a la pregunta en forma concreta , su respuesta se parecera a :
"En este momento hay 30 grados centigrados y se espera que para el resto del da
la temperatura se eleve hasta los 35 grados , para luego decaer a 20 grados a lo
largo dela noche"
Este tipo de respuesta parece extractada del parte meteorolgico del noticiero.
Esperamos or algo similar cuando miramos la televisin , pero no tenemos la
expectativa de hacerlo cuando le preguntamos al compaero de trabajo que acaba
de llegar si hace calor afuera del edificio.
Tenemos entonces que el hombre se maneja con trminos vagos para muchas de
las acciones de su vida. Una matemtica estructurada para trabajar con conceptos
precisos no puede entonces representar estos conceptos. La lgica borrosa trata
de poder incorporar mtodos para que conceptos vagos puedan ser utilizados
como funciones matemticas.
Esta ha tenido una utilidad prctica inmediata en los mecanismos de control de
las maquinarias. La lgica borrosa no es un mecanismo de optimizacin en si
mismo , pero vuelve mas flexibles a los sistemas de control de los dispositivos
electrnicos , por lo que podramos decir que se trata de un mtodo optimizado
de control.. La difusin que ha tenido en el mundo se le debe en gran parte a la
incorporacin que han hecho los japoneses durante la dcada de los 80's de estas
tcnicas en los productos que comercializan mundialmente , en especial los
electrodomsticos. (No es raro ver un lavarropas o una heladera de marca
japonesa con el logotipo de Fuzzy Logic incorporado). Si se utiliza lgica borrosa
, un dispositivo automtico puede ser programado con rdenes del tipo expuesto
en el Cuadro GA6

Tipo de rdenes plausibles de ser implementadas en un contexto de lgica
borrosa


La formulacin de este tipo de reglas es mucho mas sencilla de entender y
explicar por los expertos humanos que deben introducir las mismas. As mismo ,
la programacin del software es mas simple al igual que su mantenimiento.
4.1. Funciones Borrosas
La lgica borrosa trabaja con las llamadas funciones borrosas , las cuales
permiten efectuar las condiciones descriptas precedentemente.
Ejemplo: Para definir la funcin " mucho " dentro de una serie de valores se
procede de la siguiente manera:
Se toma la serie , se la ordena de mayor a menor y se extrae el valor mas
grande y el valor mas chico. Estos valores corresponden al lmite superior
y al lmite inferior de la serie.
Tenemos entonces que dada una serie variando de a
0
hasta a
n
elementos:
Ecuacin 3


Se establece como amplitud de la serie la diferencia del lmite superior y el
inferior:
Ecuacin 4

La funcin " mucho " queda definida como:
Ecuacin 5

En una serie de nmeros naturales , cuyos valores estn entre 0 y 1000 ; A=(LS-
LI) ; A=(1000-0) ; A=1000
La funcin " mucho " fue definida como x/A , por lo que variar desde 0/1000
para x=0 hasta 1000/1000 para x=1000. Tendremos entonces un rango de valores
entre 0 y 1.
Ecuacin 6

Para facilitar los clculos , si la serie no comienza de 0 o contiene valores
negativos, conviene convertirla en serie de nmeros positivos sumando a cada
trmino el valor mximo negativo.
Ejemplo: la serie de {-3 -2 -1 0 1 2 3 4 5} puede ser convertida en {0 1 2 3 4 5 6
7 8} sumndole 3 a todos los trminos.
La serie {3,4,5,6} puede ser convertida en {0,1,2,3} restndole 3 a todos los
trminos.
Por ello , la ecuacin 3 se transforma en:
Ecuacin 7


Donde LI
0
y LS
0
representan los lmites originales. Estos lmites se normalizan
a LS
1
y LI
1
llevando la serie al rango {0..n}.
Ecuacin 8


Veamos un caso concreto:
Supongamos la siguiente serie de temperaturas:
TEM
( t
i
)
HORA TEMPERATURA
(GRADOS CELSI US)
1 9 3
2 10 5
3 11 7
4 12 9
5 13 11
6 14 14
7 15 16
8 16 18
9 17 22
10 18 25
11 9 27
12 10 29
13 11 30
14 12 32
15 13 33
16 14 34
17 15 35
18 16 34
19 17 30
20 18 25
La pregunta que se sesea que se responda es Hizo mucho calor a las 16 hs?. Esta
pregunta es imposible de responder por los mtodos tradicionales ya que la
computadora solo puede retornar el valor 34 , pero no discriminar si eso es
mucho o no. veamos como trabaja entonces la funcin " mucho "
Ecuacin 9

Observamos que en definitiva la funcin " mucho " retorna un nmero
representativo del 96,85%. Cuanto mas se acerque el nmero a 1 o 100% mas
valedera ser la afirmacin. Cuanto mas se acerque a 0 , menos valedera ser la
misma. Solo en el caso que el resultado sea 0 o 1 (0% o 100%) se puede decir
taxativamente que el enunciado es verdadero o falso., blanco o negro. Todos los
valores intermedios caen bajo la categora de "gris ". Un valor tendr un " gris
mas oscuro " ( que lo acercar al negro ) cuando su valor tienda a 1 . De la misma
forma , ser un " gris mas claro " ( que lo acercar al blanco ) si tiende a 0. No
existen , entonces lmites precisos para las categoras. volvindose imprecisos los
mismos ( de ah la nomenclatura de lgica borrosa )
Dado que la funcin se acerca al 100% obtendremos como resultado que
efectivamente hizo mucho calor a la hora sealada.
De la misma manera ,la funcin " Poco " puede ser descripta como la inversa de
la funcin " mucho " , por lo que tendremos que :
Ecuacin 10


Ecuacin 11

Dado que el resultado de la funcin se acerca al 0% obtendremos como resultado
que NO hizo poco calor a la hora sealada.
4.2. Algoritmos Genticos basados en Lgica borrosa
Existe la posibilidad de planear la arquitectura de un GA para que sus funciones
de convergencia y control, as como sus operadores genticos estn basados en
lgica borrosa. El GA estara entonces programado para la supervivencia ante
entornos borrosos. Esto acarreara por un lado la ventaja de la programacin de
las mismas, aunque tendra un efecto en la supervivencia indistinta de ciertos
especmenes con similar valor de la funcin borrosa aunque diferente valor
absoluto. Ejemplo: Si se programa el GA para seleccionar los especmenes con
valores " altos " , esto dar igual ponderacin a un ejemplar con un 90% de
performance (de la funcin "alto" ) que a uno con el 92% de la misma
funcin.(Ambos son "altos").
Sin lgica borrosa el segundo ejemplar sera mas competitivo que el primero y lo
aniquilara. Dado que el efecto de utilizar o no esta lgica cambia la arquitectura
del GA , su implementacin no es en si misma ni buena ni mala , dependiendo de
los objetivos del programador y de los resultados esperados.
Las diferencias entre un GA con y sin lgica borrosa pueden ser apreciadas en el
Cuadro GA7

Cuadro GA7 Diferencias entre un GA con y sin lgica borrosa

5. Ejemplos de Aplicacin
5.1. Ejemplo1
Veamos cmo funciona un algoritmo gentico:
Vamos a partir de una funcin f(x) muy sencilla:
f(x)=x
2

Imagina que deseas encontrar el valor de x que hace que la funcin f(x) alcance
su valor mximo, pero restringiendo a la variable x a tomar valores
comprendidos entre 0 y 31. An ms, a x slo le vamos a permitir tomar valores
enteros, es decir: 0,1,2,3,...,30, 31. Obviamente el mximo se tiene para x = 31,
donde f vale 961. No necesitamos saber algoritmos genticos para resolver este
problema, pero su sencillez hace que el algoritmo sea ms fcil de comprender.
Lo primero que debemos hacer es encontrar una manera de codificar las posibles
soluciones(posibles valores de x). Una manera de hacerlo es con la codificacin
binaria. Con esta codificacin un posible valor de x es (0,1,0,1,1). Cmo se
interpreta esto? Muy sencillo: multiplica la ltima componente (un 1) por 1, la
penltima (un 1) por 2, la anterior (un 0) por 4, la segunda (un 1) por 8 y la
primera(un 0) por 16 y a continuacin haz la suma: 11. Observa que (0,0,0,0,0)
equivale a x = 0 y que (1,1,1,1,1) equivale a x = 31.
A cada posible valor de la variable x en representacin binaria le vamos a llamar
individuo. Una coleccin de individuos constituye lo que se denomina poblacin
y el nmero de individuos que la componen es el tamao de la poblacin. Una
vez que tenemos codificada la solucin, debemos escoger un tamao de
poblacin. Para este ejemplo ilustrativo vamos a escoger 6 individuos.
Debemos partir de una poblacin inicial. Una manera de generarla es
aleatoriamente: coge una moneda y lnzala al aire; si sale cara, la primera
componente del primer individuo es un 0 y en caso contrario un 1. Repite el
lanzamiento de la moneda y tendremos la segunda componente del primer
individuo (un 0 s sale cara y un 1 s sale cruz). As hasta 5 veces y obtendrs el
primer individuo. Repite ahora la secuencia anterior para generar los individuos
de la poblacin restantes. En total tienes que lanzar 5 * 6 = 30 veces la moneda.
Nuestro siguiente paso es hacer competir a los individuos entre s. Este proceso
se conoce como seleccin. La tabla 1 resume el proceso.

Tabla 1.- SELECCION
(1) (2) (3) (4) (5)
1 (0,1,1,0,0) 12 144 6
2 (1,0,0,1,0) 18 324 3
3 (0,1,1,1,1) 15 225 2
4 (1,1,0,0,0) 24 576 5
5 (1,1,0,1,0) 26 676 4
6 (0,0,0,0,1) 1 1 1
Cada fila en la tabla 1 est asociada a un individuo de la poblacin inicial. El
significado de cada columna de la tabla es el siguiente:
(1) = Nmero que le asignamos al individuo.
(2)= Individuo en codificacin binaria.
(3) = Valor de x.
(4) = Valor de f(x).
Observa que el mejor individuo es el 5 con f = 676. Calcula la media de f y
obtendrs fmed=324.3. En cuanto a la columna (5) ahora te lo explico. Una
manera de realizar el proceso de seleccin es mediante un torneo entre dos. A
cada individuo de la poblacin se le asigna una pareja y entre ellos se establece
un torneo: el mejor genera dos copias y el peor se desecha. La columna (5) indica
la pareja asignada a cada individuo, lo cual se ha realizado aleatoriamente.
Existen muchas variantes de este proceso de seleccin, aunque este mtodo nos
vale para ilustrar el ejemplo.
Despus de realizar el proceso de seleccin, la poblacin que tenemos es la
mostrada en la columna (2) de la tabla 2. Observa, por ejemplo, que en el torneo
entre el individuo 1 y el 6 de la poblacin inicial, el primero de ellos ha recibido
dos copias, mientras que el segundo cae en el olvido.


Tabla 2.- CRUCE
(1) (2) (3) (4)
1 (0,1,1,0,0) 5 1
2 (0,1,1,0,0) 3 3
3 (1,0,0,1,0) 2 3
4 (1,0,0,1,0) 6 1
5 (1,1,0,1,0) 1 1
6 (1,1,0,1,0) 4 1
Tras realizar la seleccin, se realiza el cruce. Una manera de hacerlo es mediante
el cruce 1X: se forman parejas entre los individuos aleatoriamente de forma
similar a la seleccin. Dados dos individuos pareja se establece un punto de cruce
aleatorio, que no es ms que un nmero aleatorio entre 1 y 4 (la longitud del
individuo menos 1). Por ejemplo, en la pareja 2-3 el punto de cruce es 3, lo que
significa que un hijo de la pareja conserva los tres primeros bits del padre y
hereda los dos ltimos de la madre, mientras que el otro hijo de la pareja
conserva los tres primeros bits de la madre y hereda los dos ltimos del padre. La
poblacin resultante se muestra en la columna (2) de la tabla 3.
Tabla 3.- POBLACION TRAS EL CRUCE
(1) (2) (3) (4)
1 (0,1,0,1,0) 10 100
2 (1,1,1,0,0) 28 784
3 (0,1,1,1,0) 14 196
4 (1,0,0,0,0) 16 256
5 (1,1,0,1,0) 26 676
6 (1,0,0,1,0) 18 324
En la columna (3) tienes el valor de x; en la siguiente tienes el valor de f
correspondiente. Fjate en que ahora el valor mximo de f es 784 (para el
individuo 2), mientras que antes de la seleccin y el cruce era de 676. Adems
fmed ha subido de 324.3 a 389.3. Qu quiere decir esto? Simplemente que los
individuos despus de la seleccin y el cruce son mejores que antes de estas
transformaciones.
El siguiente paso es volver a realizar la seleccin y el cruce tomando como
poblacin inicial la de la tabla 3. Esta manera de proceder se repite tantas veces
como nmero de iteraciones t fijes. Y cul es el ptimo?. En realidad un
algoritmo gentico no te garantiza la obtencin del ptimo pero, si est bien
construido, te proporcionar una solucin razonablemente buena. Puede que
obtengas el ptimo, pero el algoritmo no te confirma que lo sea. As que qudate
con la mejor solucin de la ltima iteracin. Tambin es buena idea ir guardando
la mejor solucin de todas las iteraciones anteriores y al final quedarte con la
mejor solucin de las exploradas.
Consideraciones adicionales
En problemas reales en los que se aplican los algoritmos genticos, existe la
tendencia a la homegeinizacin de la poblacin, es decir a que todos los
individuos de la misma sean idnticos. Esto impide que el algoritmo siga
explorando nuevas soluciones, con lo que podemos quedar estancados en un
mnimo local no muy bueno.
Existen tcnicas para contrarrestar esta "deriva gentica". El mecanismo ms
elemental, aunque no siempre suficientemente eficaz, es introducir una mutacin
tras la seleccin y el cruce. Una vez que has realizado la seleccin y el cruce
escoges un nmero determinado de bits de la poblacin y los alteras
aleatoriamente. En nuestro ejemplo consiste simplemente en cambiar algunos(s)
bit(s) de 1 a 0 de 0 a 1.
2. Ejemplo 2
Con la finalidad de aclarar mejor los conceptos cubiertos previamente,
presentaremos ahora una sencilla aplicacin del algoritmo gentico a un
problema de optimizacin:
Un grupo de financieros mexicanos ha resuelto invertir 10 millones de pesos en
la nueva marca de vino "Carta Nueva". As pues, en 4 ciudades de las principales
de Mxico se decide iniciar una vigorosa campaa comercial: Mxico en el
centro, Monterrey en el noroeste, Guadalajara en el occidente y Veracruz en el
oriente. A esas 4 ciudades van a corresponder las zonas comerciales I, II, III y
IV. Un estudio de mercado ha sido realizado en cada una de las zonas citadas y
han sido establecidas curvas de ganancias medias, en millones de pesos, en
funcin de las inversiones totales (almacenes, tiendas de venta, representantes,
publicidad, etc.) Estos datos se ilustran en la tabla 2 y en la figura 4. Para
simplificar los clculos, supondremos que las asignaciones de crditos o de
inversiones deben hacerse por unidades de 1 milln de pesos. La pregunta es: en
dnde se deben de asignar los 10 millones de pesos de los que se dispone para
que la ganancia total sea mxima?
Inversin
(en
millones)
Beneficio
I
Beneficio
II
Beneficio
III
Beneficio
IV
0 0 0 0 0
1 0.28 0.25 0.15 0.20
2 0.45 0.41 0.25 0.33
3 0.65 0.55 0.40 0.42
4 0.78 0.65 0.50 0.48
5 0.90 0.75 0.62 0.53
6 1.02 0.80 0.73 0.56
7 1.13 0.85 0.82 0.58
8 1.23 0.88 0.90 0.60
9 1.32 0.90 0.96 0.60
10 1.38 0.90 1.00 0.60
Tabla 1. Datos obtenidos con la investigacin de mercado en cada una de las
regiones en estudio
1) Representacin: Para poder aplicar el algoritmo gentico, lo primero que
necesitamos determinar es cul ser el esquema a utilizarse para representar las
posibles soluciones del problema. En este caso necesitamos 4 bits (2^4 = 16) para
representar cada solucin, porque cada una admite 11 valores posibles (de 0 a
10). Como existen 4 valores independientes (uno por cada zona de estudio), se
requieren entonces 16 bits (4 x 4) por cada cromosoma. Es importante hacer
notar que se requiere una funcin de codificacin (i.e., que transforme el valor de
la inversin a binario) y una de decodificacin (i.e., que realice el proceso
inverso). Debido a que en este caso los 4 bits utilizados para representar una
solucin pueden producir ms valores de los que se necesitan, se usar una
funcin de ajuste que haga que los resultados producidos siempre se encuentren
en el rango vlido.
2) Funcin de Aptitud: Dado que el objetivo es obtener las inversiones que
sumen 10, y que tengan un beneficio mximo, podemos usar la siguiente funcin
de aptitud penalizada:
c1+c2+c3+c4
F(x)=-------------
500*V+1
donde c1, c2, c3 y c4 son las ganancias por zona, que se calculan de acuerdo a los
valores de la tabla 2, y v es el valor absoluto de la diferencia entre la suma
obtenida de las inversiones y 10. Ntese que cuando no se viole ninguna
restriccin (i.e., cuando la suma de inversiones sea exactamente 10) la funcin de
aptitud no ser "castigada".
3) Operadores: Se usar una cruza de 2 puntos. La probabilidad que se dar a la
misma ser del 80%. En cuanto a la mutacin, se le asignar una probabilidad
baja, que ser del 1%. El tamao de poblacin manejado para este ejemplo ser
de 50 cromosomas, y se correr el algoritmo gentico durante 20 generaciones.
4) Resultados: El resultado obtenido en una corrida tpica es un beneficio de
1.81 millones de pesos, correspondiente a invertir 4 millones en la zona
comercial I, 3 millones en la zona II, 1 milln en la zona III y 2 millones en la
zona IV. Esta es la solucin ptima, la cual se obtuvo originalmente mediante
programacin dinmica. El tiempo que le tom al algoritmo gentico encontrar
este valor fue de slo 13 segundos. Debe hacerse notar que, en este caso, si
deseramos analizar inversiones que sumen otra cantidad, y en unidades menores
al milln, el algoritmo gentico tendra que modificarse de manera mnima,
mientras que la programacin dinmica requerira una cantidad tal de trabajo que
prcticamente se volvera inoperante.
5. Bibliografa

"Aplicaciones de la Computacin Evolutiva"
http://www.geocities.com/SiliconValley/7491/aplce_c.htm
"Evaluacin del comportamiento de los Algoritmos Genticos"
http://www.geocities.com/SiliconValley/9802/3d5ca400.htm
"Introduccin a la vida artificial"
http://igeocities.com/CapeCanaveral/8104/ivan.htm
"Construccin de bases de conocimiento con Computacin Evolutiva"
http://www.fciencias.unam.mx/revista/soluciones/N17/Vlad1.html
"Introduccin a los algoritmos genticos"
http://www.fciencias.unam.mx/revista/soluciones/Coello2.html
"Los placeres existenciales de los algoritmos genticos"
http://www.fciencias.unam.mx/revista/soluciones/N17/Gold3.html
"Algoritmos Genticos"
http://www.iamnet.com/users/jcontre/genetic/ag.htm
"Operadores genticos"
http://www.iamnet.com/users/jcontre/genetic/operadores.htm
"Travelling Salesman problem using genetic algoritms"
http://www.lalena.com/ai/TSP
"Algoritmos genticos"
http://www.uv.es/~rmarti/genet.html
"Introduccin.(Tantas veces va el cntaro al agua hasta que se rompe)"
http://homepages.mty.itesm.mx/~lagrado/al-gen.htm
"Algoritmos Genticos"
http://www.iamnet.com/users/jcontre/genetic/ag.htm
"MannaMouse"
http://www.caplet.com/MannaMouse.html#parameters
"The flying circus" (contiene acceso al programa ejecutable Match)
http://www.wi.leidenuniv.nl/~gusz/Flying_Circus/index.html
"The Hitch-Hiker. s guide to Evolutionary Computation"
http://gnomics.udg.es/~encore/www/top.htm

[1] Holland, J.H., "Adaptation in Natural and Artificial Systems", University of
Michigan Press, 1975, 211 p.
[2] Koza, J.R., "Genetic Programming. On the Programming of Computers by
Means of Natural Selection", The MIT Press, 1992, 819 p.
[3] Buckles, B.P., and Petry, F.E., "Genetic Algorithms", IEEE Computer Society
Press, 1992, 109 p.
[4] Goldberg, D.E., "Genetic Algorithms in Search, Optimization and Machine
Learning", Addison- Wesley Publishing Company, 1989, 412 p.
[5] Booker, L.B.; Goldberg, D.E., and Holland, J.H., "Classifier Systems and
Genetic Algorithms", Artificial Intelligence, 40, 1989, pp. 235-282.
[6] Davis, L. (Editor), "Handbook of Genetic Algorithms", Van Nostrand
Reinhold, 1991, 385 p.
[7] Forrest, S., "Genetic Algorithms: Principles of Natural Selection Applied to
Computation", Science, Vol. 261, No. 5123, August 13, 1993, pp. 872-878.
[8] Smith, R.E.; Goldberg, D.E., and Earickson, J.A., "SGA-C : A C-language
Implementation of a Simple Genetic Algorithm", TCGA Report No. 91002, The
Clearinghouse for Genetic Algorithms, The University of Alabama, May 14,
1991.
[9] Ribeiro Filho, J.L.; Treleaven, Ph.C., and Alippi, C., "Genetic-Algorithm
Programming Environments", IEEE Computer, June 1994, pp. 28-43.
[10] Srinivas, M., and Patnaik, L.M., "Genetic Algorithms : A Survey", IEEE
Computer, June 1994, pp. 17-26.
[11] Rawlins, G.J.E. (Editor), "Foundations of Genetic Algorithms", Morgan
Kaufmann Publishers, 1991, 341 p.
[12] Whitley, L.D. (Editor), "Foundations of Genetic Algorithms 2", Morgan
Kaufmann Publishers, 1993, 322 p.
[13] Kaufmann, A., y Faure, R., "Invitacin a la Investigacin de Operaciones",
Segunda Edicin, CECSA, Mxico, 1977, 311 p.
[14] Porter, K., "Handling Huge Arrays", Dr. Dobb's Journal of Software Tools
for the Professional Programmer, Vol. 13, No. 3, 1988, pp. 60-3.
[15] Koza, J., "Genetic Programming II : Automatic Discovery of Reusable
Programs", The MIT Press, 1992, 746 p.
[16 ] Francisco J. Varedas&Francisco J.Vico ,"Computacin Evolutiva Basada
en un modelo de codificain implicita", Inteligencia Artificial, N 5, pag 20-25.

También podría gustarte