Professional Documents
Culture Documents
2. Antecedentes histricos.
Los algoritmos genticos tienen sus antecedentes en la biologa y comienzan con Charles
Darwin, que con su libro El origen de las especies por medio de la seleccin natural o la
preservacin de las razas favorecidas en su lucha por la vida, nos habla sobre los principios de la
seleccin natural.
Los principios bsicos de los algoritmos genticos se derivan de las Leyes de la Vida Natural
descritos por Darwin:
Los algoritmos genticos imitan los principios de la vida descritos y los utilizan para propsitos de
optimizacin.
Una de las principales deficiencias del argumento de Darwin es que, a pesar de que la herencia
juega un papel preponderante en su teora, no ofrece una explicacin acerca de su funcionamiento.
Sin embargo, desde Mendel se conoce que la herencia se produce a travs del cdigo gentico
presente en las clulas reproductivas.
3. Representacin.
Todos los organismos vivos estn constituidos por clulas, y cada clula contiene
uno o ms cromosomas (cadenas de ADN), que le sirven como una especie de
plano al organismo. Un cromosoma puede ser conceptualmente dividido en genes
cada uno de los cuales codifica una protena. En trminos generales, se puede
decir que un gen se codifica como si fuera un rasgo, como puede serlo el color de
ojos. Cada gen se encuentra en una posicin particular del cromosoma, y est
formado por alelos.
Se supone que los individuos (posibles soluciones del problema), pueden representarse como un
conjunto de parmetros (que denominaremos genes), los cuales agrupados forman una ristra de
valores, a menudo referida como cromosoma. Debe existir una representacin de estos genes para
poder utilizarlos posteriormente en el algoritmo gentico y dotarles de unos valores. Se pueden
considerar tres tipos bsicos de representacin o codificacin de los genes:
Binaria: en ella se utiliza un vector cuya longitud es la del nmero de genes de cada
individuo y el valor que puede tomar cada elemento es un nmero binario.
Entera: en ella se utiliza un vector cuya longitud es la del nmero de genes de cada individuo
y el valor que puede tomar cada elemento es un nmero entero.
Real: en ella se utiliza un vector cuya longitud es la del nmero de genes de cada individuo
y el valor que puede tomar cada elemento es un nmero real.
Un individuo es una solucin potencial al problema que se trata. Cada individuo contiene un
cromosoma. A un conjunto de individuos se le denomina poblacin. El fitness de un individuo es la
evaluacin de la funcin de evaluacin e indica qu tan bueno es el individuo (es decir, la solucin
al problema) con respecto a los dems.
4. Algoritmo.
Desarrollado por John H. Holland, el algoritmo gentico opera entonces a nivel de genotipo de las
soluciones mediante la siguiente secuencia:
1. Comenzar con una poblacin inicial, la cual puede ser generada de manera aleatoria.
2. Calcular el fitness (aptitud) de cada individuo.
3. Aplicar el operador de seleccin con base en el fitness de la poblacin.
4. Aplicar los operadores genticos de reproduccin, cruce y mutacin a la poblacin actual
para generar a la poblacin de la siguiente generacin.
5. Ir al paso 2 hasta que la condicin de parada se satisfaga.
6. Cuando se cumple la condicin de parada, se devuelve al mejor individuo encontrado
(bien el mejor de todas las generaciones, bien el mejor de la ltima generacin).
Al igual que en muchas otras heursticas, el comportamiento del algoritmo gentico es altamente
dependiente de los parmetros iniciales (tamao de la poblacin, porcentaje de cruce, porcentaje de
mutacin, nmero de generaciones, etc.), por lo que ser necesario ajustar esos parmetros para
tratar de mejorar la solucin para los objetivos del problema.
A cada iteracin de este proceso se le denomina una generacin. Un algoritmo gentico tpicamente
se itera de 50 a 500 o incluso ms generaciones. El conjunto entero de generaciones se denomina
una ejecucin. Al final de una ejecucin existen a menudo uno o varios cromosomas altamente
adecuados en la poblacin, y que pueden ser elegidos como solucin al problema.
La funcin de evaluacin o de fitness de un problema es realmente la funcin que se desea
optimizar. Su diseo es junto con el del genotipo, una de las caractersticas ms importantes a la
hora de encontrar la mejor solucin a un problema.
Como se ha podido ver en el algoritmo, en cada generacin se selecciona a un conjunto de los
mejores individuos (paso 3) y se les modifica para generar la siguiente generacin mediante los
llamados operadores genticos (paso 4). Estos operadores son tres: reproduccin, cruce y mutacin.
El operador de cruce intenta simular la reproduccin sexual, de tal manera que los individuos
resultantes del cruce contendrn informacin de varios individuos. El operador de mutacin simula
la mutacin biolgica, de tal manera que los individuos mutados sern ligeramente diferentes de los
individuos originales. El operador de reproduccin simplemente copia sin modificacin un individuo
de una generacin a la siguiente. As en la siguiente generacin, algunos individuos simplemente
habrn sido copiados, y otros cruzados y/o mutados.
6. Operadores genticos.
En su forma ms simple, un algoritmo gentico consta de los siguientes operadores genticos:
seleccin, reproduccin, cruce (crossover) y mutacin.
Seleccin
El proceso de seleccin sirve para escoger a los individuos de la poblacin mejor adaptados, para
que acten de progenitores de la siguiente generacin. En la naturaleza existen varios factores que
intervienen para que un individuo pueda tener descendencia. El primero de todos es que consiga
sobrevivir, ya sea porque no es devorado por depredadores, o porque sea capaz de procurarse
alimento. Lo segundo es que encuentre pareja para reproducirse. El ltimo factor es que la
combinacin de ambos individuos sea apta para crear un nuevo individuo.
Sin embargo, en la realidad es posible que el mejor individuo no pueda reproducirse, pero otro
individuo de peor calidad pueda conseguirlo. Aunque este hecho es menos probable, sigue siendo
posible.
En los algoritmos genticos, la seleccin es un conjunto de reglas que sirven para elegir a los
progenitores de la siguiente generacin. Estos progenitores se reproducirn (cruzamiento gentico)
y generarn descendencia.
Un sistema muy utilizado en los algoritmos genticos es la seleccin por torneo. Este sistema
consiste en escoger aleatoriamente de la poblacin un cierto nmero de individuos. De esos
individuos se escoge el mejor de todos para ser el padre. Para escoger la madre se repite el proceso:
se escoge aleatoriamente a un nmero de individuos de la poblacin y se elige al individuo con mejor
calidad. Este sistema garantiza un mnimo de diversidad, ya que no siempre se elegir al mejor
individuo de la poblacin para tener descendencia. Pero, por el contrario, existen grandes
posibilidades de que ste tenga descendencia, ya que si es escogido en algn torneo, ser el
vencedor.
Reproduccin
En este contexto, se entender por reproduccin la clonacin de un individuo. Es decir, un individuo
pasar a la siguiente generacin sin modificacin. De esta manera, la reproduccin es un operador
gentico que se contrapone al cruce y la mutacin, puesto que estos ltimos modifican los individuos
que pasan a la siguiente generacin. El objetivo de la reproduccin es mantener en la siguiente
generacin a individuos con fitness alta de la presente generacin.
Relacionado con el concepto de reproduccin est el de elitismo, el cual mantiene a los mejores
individuos de una generacin a la siguiente, para que no se pierda su informacin.
Cruce
Durante esta fase se cruzan o mezclan los individuos seleccionados en la fase anterior. Es decir, los
genes de los dos padres se mezclan entre s para dar lugar a los diferentes hijos. Existen diversos
mtodos de cruce, pero los ms utilizados son los siguientes:
Cruce basado en un punto: 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. Es decir, los
genes del padre1 a la izquierda del punto de corte forman parte del hijo1 y los situados a la
derecha formaran parte del hijo2, mientras que con el padre2 suceder lo contrario.
Cruce punto a punto: este tipo de cruce es similar al anterior pero realizndose para cada
gen de los padres. Por tanto, en este cruce los genes pares del padre1 formarn parte del
hijo1 y los genes impares formarn parte del hijo2, mientras que para el padre2 suceder lo
contrario.
Cruce multipunto: en este tipo de cruce se selecciona aleatoriamente la cantidad de puntos
que se van a utilizar para el cruce. De esta forma, y de manera anloga al anterior cruce, se
irn intercambiando los genes para formar los dos nuevos hijos.
Cruces especficos de codificaciones no binarias: Para este tipo de codificacin se pueden
definir, adems de los anteriores, otros tipos de operadores de cruce:
o Media: el gen de la descendencia toma el valor medio de los genes de los padres.
Tiene la desventaja de que nicamente se genera un descendiente en el cruce de
dos padres.
Media geomtrica: cada gen de la descendencia toma como valor la raz cuadrada
del producto de los genes de los padres. Presenta el problema aadido de qu signo
dar al resultado si los padres tienen signos diferentes.
Extensin: se toma la diferencia existente entre los genes situados en las mismas
posiciones de los padres y se suma el valor ms alto o se resta del valor ms bajo.
Solventa el problema de generar un nico descendiente.
Mutacin
La mutacin se considera un operador bsico, que proporciona un pequeo elemento de
aleatoriedad en 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, el operador de
mutacin es el responsable del aumento o reduccin del espacio de bsqueda dentro del algoritmo
gentico y del fomento de la variabilidad gentica de los individuos de la poblacin. Existen varios
mtodos para aplicar la mutacin a los individuos de una poblacin, pero el ms comnmente
utilizado es el de mutar un porcentaje de los genes totales de la poblacin.
Este porcentaje de genes a mutar se puede seleccionar de dos maneras, de forma fija, especificando
el mismo porcentaje de mutacin a todas las generaciones del algoritmo gentico y de forma variable,
es decir, modificando el porcentaje de mutacin de una generacin a otra, por ejemplo reducindolo.
De esta manera, se consigue hacer una bsqueda ms amplia y global al principio e ir reducindola
en las siguientes generaciones.
Con otro tipo de codificaciones (por ejemplo codificacin real) existen otras opciones de mutacin,
aplicadas con una probabilidad generalmente pequea:
Mutacin al azar: Modifica el valor de un gen asignando con un nuevo valor que se
encuentra dentro de un determinado rango. El nuevo valor es independiente del valor previo
del gen.
Mutacin gaussiana: Dado un cromosoma p con un gen seleccionado para la mutacin i,
se le aplica una distribucin normal N de media pi y desviacin estndar s (parmetro).
Alternativamente se puede disminuir el valor de s a medida que aumenta el nmero de
generaciones.