You are on page 1of 22

Universidad Nacional Autnoma de Mxico

Posgrado en Ingeniera de sistemas


Maestra en Investigacin de Operaciones

Programacin Entera

Proyecto final

Gonzlez Vargas Carlos Arturo

19 de noviembre de 2013

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

Gonzlez Vargas Carlos Arturo

Contenido
Objetivo............................................................................................................. 4
Introduccin..................................................................................................... 4
Algoritmos genticos...................................................................................... 5
Orgenes............................................................................................................ 5
Robustidad en mtodos tradicionales de optimizacin y bsqueda.......6
Evolucin natural y algoritmos genticos...................................................7
Codificacin...................................................................................................... 9
Seleccin......................................................................................................... 10
Seleccin por rueda de ruleta........................................................................11
Seleccin por rango....................................................................................... 11
Seleccin elitista............................................................................................ 11
Seleccin por estado estacionario.................................................................11
Seleccin por torneo...................................................................................... 11
Seleccin escalada......................................................................................... 11
Seleccin Jerrquica....................................................................................... 12
Cruce................................................................................................................ 12
Cruce de 1 punto (Single Point Exchange, SPX).............................................13

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

Gonzlez Vargas Carlos Arturo

Cruce de 2 puntos (Double Point Crossover, DPX).........................................13


Cruce uniforme (Uniform Point Crossover, UPX)............................................13
Cruces especficos de codificaciones no binarias:..........................................14
Algoritmos de Reemplazo.............................................................................. 15
Mutacin......................................................................................................... 15
Evaluacin....................................................................................................... 16
Ejemplo de algoritmo gentico...................................................................16
Ventajas de los algoritmos genticos........................................................17
Desventajas de los algoritmos genticos..................................................18
Aplicaciones................................................................................................... 18
Conclusiones.................................................................................................. 19
Referencias..................................................................................................... 20

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

Gonzlez Vargas Carlos Arturo

Algoritmos genticos: una alternativa en la


bsqueda de soluciones para modelos
matemticos

Objetivo
Recopilar informacin sobre los algoritmos genticos, para exponer sus
orgenes, objetivos, alcances, aplicaciones y caractersticas, justificando el por
qu son una herramienta que se debe de tomar en cuenta para la solucin de
problemas de optimizacin combinatoria, tales como son los problemas de
Programacin Entera, la cual motiva la elaboracin de este texto.

Introduccin
La Inteligencia artificial es una disciplina que se dedica al desarrollo de
software informtico capaz de ejecutar trabajos inteligentes. Sus principales
objetivos son:
1. Desarrollar modelos computacionales del comportamiento inteligente,
incluyendo tanto el aspecto cognitivo como el perceptual;
2. El desarrollo de programas computacionales que puedan resolver
problemas que normalmente se supondra que requieren de
pensamiento humano. (Richard O. Duda, 1983)
La Inteligencia Artificial es multidisciplinar y se apoya en los conceptos y
tcnicas de otras disciplinas, tales como: informtica, ingeniera, sociologa,
ciencia del comportamiento, psicologa cognitiva, investigacin de operaciones,
economa, teora general de sistemas, etc. (Snchez Toms, 1993)
Dentro de los principales campos de desarrollo de la Inteligencia artificial se
encuentran los algoritmos genticos.

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

Gonzlez Vargas Carlos Arturo

Algoritmos genticos
Segn Goldberg, los algoritmos genticos son algoritmos de bsqueda
basados en la mecnica de la seleccin natural y la gentica. Combinan la
sobrevivencia del ms apto entre estructuras de secuencias con un intercambio
de informacin estructurado, aunque aleatorizado, para construir as un
algoritmo de bsqueda que tenga algo de las genialidades de las bsquedas
humanas. En cada generacin, un nuevo arreglo de criaturas artificiales es
creado usando pedazos y piezas de lo ms ajustado del anterior;
ocasionalmente una nueva pieza ser probada para mejorar la medida. Aunque
aleatorios, los algoritmos genticos no son una simple caminata aleatoria.
Explotan eficientemente la informacin histrica para especular sobre los
nuevos puntos de bsqueda, de donde se espera un mejor desempeo.
(Goldberg, 1989)

Orgenes
El desarrollo de los algoritmos genticos se debe en 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 recibi el nombre de planes
reproductivos, a raz de la publicacin en 1975 de su libro Adaptation in
Natural and Artificial Systems (Holland, 1975) se conoce principalmente con el
nombre de Algoritmos Genticos. 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 valor de
ajuste, que cuantifica su validez como solucin al 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 (Goldberg,
2002).
La Programacin Evolutiva surge principalmente a raz del trabajo Artificial
Intelligence Through Simulated Evolution de Fogel, Owens y Walsh, publicado
en 1966. En este caso los individuos, conocidos aqu como organismos, son
mquinas de estado finito. Los organismos que mejor resuelven alguna de las
funciones objetivo obtienen la oportunidad de reproducirse. Antes de
producirse los cruces para generar la descendencia se realiza una mutacin
sobre los padres.

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

Gonzlez Vargas Carlos Arturo

Robustidad en mtodos tradicionales de optimizacin y bsqueda


Goldberg menciona tres tipos principales de bsqueda: Basados en clculos,
enumerativos y aleatorios:
Los mtodos basados en clculo se dividen en dos clases principales: indirectos
y directos. Los indirectos buscan extremos locales resolviendo usualmente
sistemas de ecuaciones no lineales, ajustando el gradiente de la funcin
objetivo como igual a cero. Dada una funcin irrestricta, buscar un posible pico
comienza restringiendo la bsqueda a esos puntos con pendiente cero en todas
las direcciones. Por otro lado la bsqueda directa sigue el ptimo local
brincando a travs de la funcin y movindose en la direccin del gradiente
local. Ambos mtodos encuentran un ptimo que es el mejor punto en su
vecindad. Dichos mtodos de derivacin no son aplicables para muchas
funciones objetivo con discontinuidades y recorridos o dominios no amistosos
para el clculo diferencial.
Los esquemas enumerativos se han considerado en muchas formas y tamaos.
La idea en general es que dado un espacio finito de bsqueda o un espacio
discreto infinito, el algoritmo empieza buscando valores de la funcin objetivo
en cada punto del espacio, uno por uno. El problema con este tipo de mtodos
es la carencia de eficiencia. El tamao del problema al resolver puede ser la
principal limitante para estos mtodos, ya que la cantidad de puntos a probar
puede ser demasiado grande.
Los algoritmos de bsqueda aleatoria pueden no ser mejores que los mtodos
enumerativos en la solucin de problemas grandes. Hay que hacer una
distincin entre los mtodos aleatorios y las tcnicas aleatorizadas; el
algoritmo gentico es un ejemplo de un procedimiento de bsqueda que utiliza
una eleccin aleatoria como herramienta para guiar una bsqueda altamente
aprovechable a travs de un espacio. (Goldberg, 1989)
Con esto podemos entender que este los tres tipos de mtodos mencionados
no son robustos. Son funcionales siempre que los problemas que intentan
resolver cumplan con las caractersticas mnimas requeridas para utilizarlos,

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

Gonzlez Vargas Carlos Arturo

pero todos los problemas que no cumplan con esto se resuelven de manera
ineficiente o no se pueden resolver por medio de estos mtodos.
Para encontrar ventajas sobre otros mtodos de optimizacin y bsqueda
tradicionales en cuanto a robustidad, los algoritmos genticos deben ser
diferentes en ciertas formas fundamentales:

Trabajan con un cdigo del conjunto de parmetros, no con el conjunto


mismo (necesitan que el conjunto de parmetros del problema de
optimizacin est codificado en cadenas finitas sobre un determinado
alfabeto). Por trabajar a nivel de cdigo, y no con las funciones y sus
variables de control, como los otros mtodos, son ms difciles de
engaar.
Buscan una poblacin de puntos, no un nico punto. Manteniendo una
poblacin de puntos muestrales bien adaptados, se reduce la
probabilidad de caer en una cima falsa.
Emplean la funcin objetivo, no necesitan derivadas ni otra informacin
complementaria, tan difcil a veces de conseguir. De este modo ganan
en eficiencia y en generalidad.
Se valen de reglas de transicin estocsticas, no deterministas. Los
Algoritmos Genticos se valen de operadores aleatorios para guiar la
bsqueda de los mejores puntos. (Tolmos Rodriguez-Piero, 2000)

Evolucin natural y algoritmos genticos


Todos los organismos que conocemos estn compuestos por una o ms clulas,
cada una de las cuales contiene a su vez uno o ms cromosomas (esto es,
cadenas de ADN). Un cromosoma se puede dividir conceptualmente en genes,
bloques funcionales de ADN que codifican una determinada protena. Se suele
pensar en los genes, como los responsables de determinar los rasgos del
individuo, tales como el color de los ojos, o del cabello. Las diferentes
posibilidades de escoger un rasgo (ojos azules, marrones o verdes, por
ejemplo) reciben el nombre de alelos. Cada gen est localizado en una
determinada posicin (lugar) dentro del cromosoma que integra. Muchos
organismos tienen varios cromosomas en cada clula. El genoma del
organismo es la coleccin completa del material gentico. Lo que se conoce

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

Gonzlez Vargas Carlos Arturo

como genotipo, es el conjunto de genes contenido en un genoma. El genotipo


dar lugar, tras el desarrollo fetal, al fenotipo del organismo, esto es, a sus
caractersticas fsicas y mentales, tales como el color de ojos, la estatura, o la
inteligencia. La mayora de las especies con reproduccin sexual que habitan
nuestro planeta, almacenan sus cromosomas por parejas (son diploides; se
llaman haploides en caso contrario). En el caso del ser humano, cada clula
somtica (no germinales) de su cuerpo contiene 23 pares de cromosomas.
Durante la reproduccin sexual se produce una recombinacin o cruce: en cada
padre, se intercambian los genes entre cada par de cromosomas, para formar
un gameto (un cromosoma nico), y entonces, los gametos de los dos padres
se emparejan para constituir un conjunto completo de cromosomas diploides.
En el caso de la reproduccin haploide, los genes se intercambian entre dos
padres con una sola rama de cromosomas. La descendencia est sujeta a
mutaciones, donde se produce un cambio en algn nucletido (bits
elementales de ADN) de padre a hijo; esas modificaciones son resultado
habitualmente de errores de copia. La capacidad del organismo se define
como la probabilidad de que el organismo viva para reproducirse (viabilidad) o
como una funcin del nmero de descendencia que tenga ese organismo
(fertilidad).
Trasladando estos conceptos a la vida artificial: en los algoritmos genticos,
el trmino cromosoma se refiere a un candidato a solucin del problema, que a
menudo se codifica como una cadena de bits. Los genes son tanto un bit como
bloques cortos de bits adyacentes que codifican un elemento particular del
candidato a solucin (por ejemplo, en el caso de la optimizacin de una funcin
multiparamtrica, los bits que codifican un parmetro particular, se considera
un gen). Un alelo en una cadena de bits ser un 0 o un 1 (para alfabetos largos
cada lugar puede tener ms alelos). El cruce consiste, normalmente, como en
su espejo biolgico, en un intercambio de material gentico entre dos
cromosomas de dos padres haploides. La mutacin es una permutacin en un
bit en un lugar aleatorio (o, en el caso de alfabetos largos, remplazar el smbolo
de un lugar escogido aleatoriamente con un smbolo nuevo escogido tambin
aleatoriamente).
En la mayora de las aplicaciones de los algoritmos genticos nos
encontraremos con individuos haploides, concretamente, de cromosomas
nicos. El genotipo de un individuo en un algoritmo gentico que emplea
cadenas de bits es, simplemente, la configuracin de bits del cromosoma de
ese individuo. La nocin de fenotipo no aparece en el contexto de los
algoritmos genticos, aunque avances recientes en la materia trabajan con

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

Gonzlez Vargas Carlos Arturo

algoritmos que poseen un nivel genotpico y uno fenotpico (por ejemplo, la


cadena de bits que codifica una red neuronal, y la red en s misma).
Segn hemos visto, podemos considerar que los algoritmos genticos tienen, al
menos, estos elementos en comn: poblaciones de cromosomas, seleccin en
base a su capacidad, cruces para producir descendencia nueva, y mutacin
aleatoria de la nueva descendencia. La inversin (el cuarto elemento de los
algoritmos genticos tal y como los concibi Holland) se usa raramente en las
implementaciones actuales, y sus ventajas, si las tiene, no estn del todo
establecidas.
Se puede pensar en cada cromosoma de un algoritmo gentico como en un
punto en el espacio de bsqueda de candidatos a soluciones. El algoritmo
gentico procesa poblaciones de cromosomas, remplazando sucesivamente
cada poblacin por otra. El algoritmo suele requerir una funcin de capacidad o
potencial que asigna una puntuacin (la capacidad) a cada cromosoma de la
poblacin actual. La capacidad o el potencial de un cromosoma depende de
cmo resuelva ese cromosoma el problema a tratar. Un concepto relacionado
es el del paisaje del potencial. Definido originalmente por Sewell Wright
(1931) en el contexto de la gentica de poblaciones, el paisaje de un potencial
es la representacin del espacio de todos los posibles genotipos junto con sus
capacidades. De este modo, los operadores de cruce y mutacin pueden verse
como modos de mover una poblacin en el paisaje definido por su funcin de
capacidad, y un algoritmo gentico como un mtodo de bsqueda de ese
paisaje para cadenas altamente cualificadas.
La forma ms simple de algoritmo gentico utiliza tres tipos de operadores:
seleccin, cruce y mutacin.

Seleccin o reproduccin: Este operador escoge cromosomas entre la


poblacin para efectuar la reproduccin. Cuanto ms capaz sea el
cromosoma, ms veces ser seleccionado para reproducirse;
Cruce: Se trata de un operador cuya labor es elegir un lugar, y cambiar
las secuencias antes y despus de esa posicin entre dos cromosomas,
para crear nueva descendencia (por ejemplo, las cadenas 10010011 y
11111010 pueden cruzarse despus del tercer lugar para producir la
descendencia 10011010 y 11110011). Imita la recombinacin biolgica
entre dos organismos haploides;
Mutacin: Este operador produce variaciones de modo aleatorio en un
cromosoma (por ejemplo, la cadena 00011100 puede mutar su segunda
posicin para dar lugar a la cadena 01011100). La mutacin puede darse
en cada posicin de un bit en una cadena, con una probabilidad,

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

10

Gonzlez Vargas Carlos Arturo

normalmente muy pequea (por ejemplo 0.001) (Tolmos RodriguezPiero, 2000).


Dichos operadores genticos, junto con su aplicacin en algoritmos genticos,
son explicados ms adelante en este documento.
Los pasos bsicos de un algoritmo gentico son:
Evaluar la puntuacin de cada uno de los cromosomas generados.
Permitir la reproduccin de los cromosomas siendo los ms aptos los
que tengan ms probabilidad de reproducirse.
Con cierta probabilidad de mutacin, mutar un gen del nuevo individuo
generado.
Organizar la nueva poblacin.
Estos pasos se repetirn hasta que se d una condicin de terminacin. Se
puede fijar un nmero mximo de iteraciones antes de finalizar el algoritmo
gentico o detenerlo cuando no se produzcan ms cambios en la poblacin
(convergencia del algoritmo). Esta ltima opcin suele ser la ms habitual.
(Arranz de la Pea & Parra Truyol)

Codificacin
Desde los primeros trabajos de John Holland la codificacin suele hacerse
mediante valores binarios. Se asigna un determinado nmero de bits a cada
parmetro y se realiza una discretizacin de la variable representada por cada
gen. El nmero de bits asignados depender del grado de ajuste que se desee
alcanzar. Evidentemente no todos los parmetros tienen por qu estar
codificados con el mismo nmero de bits. Cada uno de los bits pertenecientes a
un gen suele recibir el nombre de alelo.

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

11

Gonzlez Vargas Carlos Arturo

Individuo gentico binario (Gestal, Rivero, Rabual, Dorado, & Pazos, 2010).

Dentro de la transformacin realizada desde el proceso natural hasta el


proceso computacional, se deben de tomar en consideracin los papeles que
juegan los operadores genticos, aplicados en el algoritmo en el paso de una
generacin a otra.

Seleccin
Es necesario hacer una seleccin con los individuos ms capacitados para que
estos sean los que se reproduzcan con ms probabilidad, de acuerdo con la
teora de Darwin, en la cual los ms capacitados son los que deben sobrevivir y
crear una nueva descendencia ms facultada.
Por lo tanto una vez evaluado cada cromosoma y obtenida su puntuacin, se
tiene que crear la nueva poblacin teniendo en cuenta que los buenos rasgos
de los mejores se transmitan a sta. Esta seleccin se puede realizar de varias
formas como se ver a continuacin en algunas tcnicas recopiladas por Arranz
de la Pea y Parra Truyol.

Seleccin por rueda de ruleta


Se crea para esta seleccin una ruleta con los cromosomas presentes en una
generacin. Cada cromosoma tendr una parte de dicha ruleta mayor o menor
en funcin de la puntuacin que tenga cada uno. Se hace girar la ruleta y se
selecciona el cromosoma en el que se para la ruleta. El cromosoma con mayor
puntuacin saldr con mayor probabilidad. En caso de que las probabilidades

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

12

Gonzlez Vargas Carlos Arturo

difieran mucho, este mtodo de seleccin dar problemas puesto que si un


cromosoma tiene un 90% de posibilidades de ser seleccionado, el resto apenas
saldr, lo que reducira la diversidad gentica.

Seleccin por rango


En este mtodo a cada cromosoma se le asigna un rango numrico basado en
su aptitud y la seleccin se realiza con base en este ranking. En este ltimo
caso se va a producir una variedad gentica mucho ms rica que en el primer
caso. El problema de esta seleccin es que la convergencia puede ser ms
lenta, ya que no existe tanta diferencia entre el mejor cromosoma y el resto
como ocurra antes.

Seleccin elitista
En ciertas ocasiones puede suceder que tras el cruce y la mutacin, perdamos
el cromosoma con mejor adaptacin. Este mtodo de seleccin copia el mejor
cromosoma o alguno de los mejores en la nueva poblacin. El resto se realiza
de la misma forma que hemos visto anteriormente. El elitismo puede mejorar
el funcionamiento de los algoritmos genticos al evitar que se pierda la mejor
solucin. Una variacin del elitismo es que el mejor cromosoma solo se copie a
la siguiente generacin en caso de que tras una reproduccin/mutacin no se
haya generado un cromosoma mejor.

Seleccin por estado estacionario


La descendencia de los individuos seleccionados en cada generacin vuelve a
la poblacin gentica preexistente, reemplazando a algunos de los miembros
menos aptos de la anterior generacin. Se conservan algunos individuos entre
generaciones.

Seleccin por torneo


Se escogen de forma aleatoria un nmero de individuos de la poblacin, y el
que tiene puntuacin mayor se reproduce, sustituyendo su descendencia al
que tiene menor puntuacin.

Seleccin escalada
Al incrementarse la aptitud media de la poblacin, la fuerza de la presin
selectiva tambin aumenta y la funcin de aptitud se hace ms discriminadora.
Este mtodo puede ser til para seleccionar ms tarde, cuando todos los
individuos tengan una aptitud relativamente alta y slo les distingan pequeas
diferencias en la aptitud.

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

13

Gonzlez Vargas Carlos Arturo

Seleccin Jerrquica
En esta seleccin, los individuos atraviesan mltiples rondas de seleccin en
cada generacin. Las evaluaciones de los primeros niveles son ms rpidas y
menos discriminatorias, mientras que los que sobreviven hasta niveles ms
altos son evaluados ms rigurosamente. La ventaja de este mtodo es que
reduce el tiempo total de clculo al utilizar una evaluacin ms rpida y menos
selectiva para eliminar a la mayora de los individuos que se muestran poco o
nada prometedores, y sometiendo a una evaluacin de aptitud ms rigurosa y
computacionalmente ms costosa slo a los que sobreviven a esta prueba
inicial.

Cruce
Una vez seleccionados los individuos, stos son recombinados para producir la
descendencia que se insertar en la siguiente generacin, como estrategia de
reproduccin sexual.
Su importancia para la transicin entre generaciones es elevada, puesto que
las tasas de cruce con las que se suele trabajar rondan el 90%.
Los diferentes mtodos de cruce podrn operar de dos formas diferentes. Si se
opta por una estrategia destructiva los descendientes se insertarn en la
poblacin temporal aunque sus padres tengan mejor ajuste (trabajando con
una nica poblacin esta comparacin se realizar con los individuos a
reemplazar). Por el contrario, utilizando una estrategia no destructiva la
descendencia pasar a la siguiente generacin nicamente si supera la bondad
del ajuste de los padres (o de los individuos a reemplazar).
La idea principal del cruce se basa en que, si se toman dos individuos
correctamente adaptados al medio y se obtiene una descendencia que
comparta genes de ambos, existe la posibilidad de que los genes heredados
sean precisamente los causantes de la bondad de los padres. Al compartir las
caractersticas buenas de dos individuos, la descendencia, o al menos parte de
ella, debera tener una bondad mayor que cada uno de los padres por
separado. Si el cruce no agrupa las mejores caractersticas en uno de los hijos
y la descendencia tiene un peor ajuste que los padres no significa que se est
dando un paso atrs. Optando por una estrategia de cruce no destructiva
garantizamos que pasen a la siguiente generacin los mejores individuos. Si,
an con un ajuste peor, se opta por insertar a la descendencia, y puesto que
los genes de los padres continuarn en la poblacin (aunque dispersos y
posiblemente levemente modificados por la mutacin), en posteriores cruces

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

14

Gonzlez Vargas Carlos Arturo

se podrn volver a obtener estos padres, recuperando as la bondad


previamente perdida.
Existen multitud de algoritmos de cruce. Sin embargo los ms empleados son
los que se detallarn a continuacin:

Cruce de 1 punto (Single Point Exchange, SPX)


Una vez seleccionados dos individuos se cortan sus cromosomas por un punto
seleccionado aleatoriamente para generar dos segmentos diferenciados en
cada uno de ellos: la cabeza y la cola. Se intercambian las colas entre los dos
individuos para generar los nuevos descendientes. De esta manera ambos
descendientes heredan informacin gentica de los padres;

Cruce de un punto (Gestal, Rivero, Rabual, Dorado, & Pazos, 2010).

Cruce de 2 puntos (Double Point Crossover, DPX)


En vez de cortar por un nico punto los cromosomas de los padres como en el
caso anterior, se realizan dos cortes. Deber tenerse en cuenta que ninguno de
estos puntos de corte coincida con el extremo de los cromosomas para
garantizar que se originen tres segmentos. Para generar la descendencia se
escoge el segmento central de uno de los padres y los segmentos laterales del
otro padre;

Cruce de dos puntos (Gestal, Rivero, Rabual, Dorado, & Pazos, 2010).

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

15

Gonzlez Vargas Carlos Arturo

Cruce uniforme (Uniform Point Crossover, UPX)


Cada gen de la descendencia tiene las mismas probabilidades de pertenecer a
uno u otro padre. Aunque se puede implementar de muy diversas formas, la
tcnica implica la generacin de una mscara de cruce con valores binarios. Si
en una de las posiciones de la mscara hay un 1, el gen situado en esa
posicin en uno de los descendientes se copia del primer padre. Si por el
contrario hay un 0 el gen se copia del segundo padre. Para producir el segundo
descendiente se intercambian los papeles de los padres, o bien se intercambia
la interpretacin de los unos y los ceros de la mscara de cruce. La mscara de
cruce puede no permanecer fija durante todo el proceso evolutivo, se genera
de manera aleatoria para cada cruce.

Cruce uniforme (Gestal, Rivero, Rabual, Dorado, & Pazos, 2010).

Cruces especficos de codificaciones no binarias:


Los tres tipos de cruce vistos hasta el momento son vlidos para cualquier tipo
de representacin del genotipo. Si se emplean genotipos compuestos por
valores enteros o reales pueden definirse otro tipo 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

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

16

Gonzlez Vargas Carlos Arturo

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 al valor ms
alto o se resta del valor ms bajo. Solventa el problema de
generar un nico descendiente. Una variante basada en este
cruce son los Algoritmos genticos de evolucin diferencial.

Algoritmos de Reemplazo
Cuando en vez de trabajar con una poblacin temporal se hace con una nica
poblacin, sobre la que se realizan las selecciones e inserciones, deber
tenerse en cuenta que para insertar un nuevo individuo deber de eliminarse
previamente otro de la poblacin. Existen diferentes mtodos de reemplazo:
o
o
o

Aleatorio: el nuevo individuo se inserta en un lugar escogido de


manera aleatoria en la poblacin;
Reemplazo de padres: se obtiene espacio para la nueva
descendencia liberando el espacio ocupado por los padres.;
Reemplazo de similares: una vez obtenido el ajuste de la
descendencia se selecciona un grupo de individuos (entre seis y
diez) de la poblacin con un ajuste similar. Se reemplazan
aleatoriamente los que sean necesarios;
Reemplazo de los peores: de entre un porcentaje de los peores
individuos de la poblacin se seleccionan aleatoriamente los
necesarios para dejar sitio a la descendencia. (Gestal, Rivero,
Rabual, Dorado, & Pazos, 2010)

Mutacin
Tras el cruce, tiene lugar la mutacin. Las mutaciones suelen ser beneficiosas,
pues contribuyen a la diversidad gentica de la especie. Adems previenen a
las soluciones de la poblacin de verse limitadas por un ptimo local. Por lo
tanto la mutacin consiste en modificar ciertos genes de forma aleatoria
atendiendo a la probabilidad de mutacin establecida con anterioridad. La
mutacin depende de la codificacin y de la reproduccin. Si se abusa de la
mutacin podemos caer en el uso del algoritmo gentico como una simple
bsqueda aleatoria. Por lo tanto antes de aumentar las mutaciones, conviene
estudiar otras soluciones que aporten diversidad a la poblacin como podra

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

17

Gonzlez Vargas Carlos Arturo

ser el aumento del tamao de la poblacin o garantizar la aleatoriedad de la


poblacin inicial.
Para el caso de una codificacin binaria, la mutacin consiste simplemente en
la inversin del gen mutado que corresponder con un bit. En el caso de una
codificacin numrica, la mutacin podra consistir en sustituir un nmero por
otro o intercambiar un nmero por otro que est en otra posicin del
cromosoma. En el caso de codificacin por valor directo en el que por ejemplo
usemos nmeros reales, la mutacin puede consistir simplemente en modificar
el valor en unos decimales. Por ltimo, en una codificacin en rbol, la
mutacin podra radicar en el cambio de operador, de un nmero o incluso en
la mutacin de una rama entera (Arranz de la Pea & Parra Truyol).

Evaluacin
Para el correcto funcionamiento de un Algoritmo Gentico se debe de poseer
un mtodo que indique si los individuos de la poblacin representan o no
buenas soluciones al problema planteado. De esto se encarga la funcin de
evaluacin, que establece una medida numrica de la bondad de una solucin.
Esta medida recibe el nombre de ajuste. En la naturaleza el ajuste (o
adecuacin) de un individuo puede considerarse como la probabilidad de que
ese individuo sobreviva hasta la edad de reproduccin y se reproduzca. Esta
probabilidad deber estar ponderada con el nmero de individuos de la
poblacin gentica.
En el mundo de los Algoritmos Genticos se emplear esta medicin para
controlar la aplicacin de los operadores genticos. Es decir, permitir controlar
el nmero de selecciones, cruces, copias y mutaciones llevadas a cabo.
La aproximacin ms comn consiste en crear explcitamente una medida de
ajuste para cada individuo de la poblacin. A cada uno de los individuos se le
asigna un valor de ajuste escalar por medio de un procedimiento de evaluacin
bien definido (Gestal, Rivero, Rabual, Dorado, & Pazos, 2010).

Ejemplo de algoritmo gentico

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

18

Gonzlez Vargas Carlos Arturo

Para representar una aproximacin de la teora revisada hasta el momento a su


transcripcin computacional, se eligi tomar un ejemplo presentado por Tolmos
Rodriguez-Piero, tomado de Mitchell M. (1998), ya que se est redactado en
forma parecida a un pseudocdigo de programacin, sin serlo, ya que al estar
ms desarrollado, es ms entendible:
Sea X el problema a resolver. Dada una representacin de candidatas a
soluciones en una cadena de bits, un algoritmo gentico simple, trabajara del
siguiente modo:
1. Comenzar con una poblacin P generada aleatoriamente de n
cromosomas de 1 bit.
2. Calcular la capacidad f(x) para cada cromosoma x de P.
3. Si f(x) da un valor ptimo, terminar, en otro caso:
4. Repetir los siguientes pasos hasta que se hayan creado n descendientes:
a. Seleccionar un par de cromosomas padre de P , siendo la
probabilidad de seleccin una funcin creciente de la capacidad.
La seleccin se realiza con remplazamiento, es decir, que el
mismo cromosoma puede ser seleccionado en ms de una ocasin
para ser padre.
b. Con probabilidad pc (probabilidad de cruce, o tasa de cruce),
cruzar el par en un punto elegido aleatoriamente (con
probabilidad uniforme) para formar dos descendientes. Si no tiene
lugar ningn cruce, formar dos descendientes que sean copias
exactas de sus respectivos padres.
c. Mutar los dos descendientes en cada lugar con probabilidad pm
(probabilidad de mutacin, o tasa de mutacin), y colocar los
cromosomas resultantes en la nueva poblacin P. Si n es impar,
se puede rechazar aleatoriamente a un miembro de la nueva
poblacin.
5. Remplazar la poblacin actual P con la nueva P.
6. Volver al paso 2.

Ventajas de los algoritmos genticos

Una clara ventaja es que los algoritmos genticos son intrnsicamente


paralelos, es decir, operan de forma simultnea con varias soluciones,
en vez de trabajar de forma secuencial como las tcnicas tradicionales.
Esto significa que mientras tcnicas tradicionales slo pueden explorar
el espacio de soluciones hacia una solucin en una direccin al mismo

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

19

Gonzlez Vargas Carlos Arturo

tiempo, y si la solucin que descubren resulta subptima, no se puede


hacer otra cosa que abandonar todo el trabajo hecho y empezar de
nuevo. Sin embargo, los algoritmos genticos simplemente desechan
esta solucin subptima y siguen por otros caminos;
Cuando se usan para problemas de optimizacin resultan menos
afectados por los mximos locales (falsas soluciones) que las tcnicas
tradicionales. Muchos algoritmos de bsqueda pueden quedar atrapados
en los ptimos locales: si llegan a lo alto de una colina del paisaje
adaptativo, descubrirn que no existen soluciones mejores en las
cercanas y concluirn que han alcanzado la mejor de todas, aunque
existan picos ms altos en algn otro lugar del mapa, situacin que no
sucede para algoritmos genticos;
Otra ventaja es su habilidad para manipular muchos parmetros
simultneamente. Resulta interesante en caso de tener varios objetivos
a resolver;
No necesitan conocimientos especficos sobre el problema que intentan
resolver. Realizan cambios aleatorios en sus soluciones candidatas y
luego utilizan la funcin de aptitud para determinar si esos cambios
producen una mejora o no;
Resulta sumamente fcil ejecutarlos en las modernas arquitecturas
masivas en paralelo;
Usan operadores probabilsticos, en vez de los tpicos operadores
determinsticos de las otras tcnicas.

Desventajas de los algoritmos genticos

Definir una representacin del problema. El lenguaje utilizado para


especificar soluciones candidatas debe ser robusto, debe ser capaz de
tolerar cambios aleatorios que no produzcan constantemente errores
fatales o resultados sin sentido. Se puede solucionar mediante la
definicin de los individuos como listas de nmeros donde cada nmero
representa algn aspecto de la solucin candidata.
Pueden tardar mucho en converger, o no converger en absoluto,
dependiendo en cierta medida de los parmetros que se utilicen.
Pueden converger prematuramente debido a una serie de problemas. Si
un individuo que es ms apto que la mayora de sus competidores
emerge muy pronto en el curso de la ejecucin, se puede reproducir tan
abundantemente que merme la diversidad de la poblacin demasiado
pronto, provocando que el algoritmo converja hacia el ptimo local que

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

20

Gonzlez Vargas Carlos Arturo

representa ese individuo, en lugar de rastrear el paisaje adaptativo lo


bastante a fondo para encontrar el ptimo global. Esto es un problema
especialmente comn en las poblaciones pequeas, donde incluso una
variacin aleatoria en el ritmo de reproduccin puede provocar que un
genotipo se haga dominante sobre los otros.

Aplicaciones
Los algoritmos genticos tienen, en general, aplicacin en la solucin de
problemas donde los mtodos alternativos no satisfacen los requerimientos de
robustidad del caso en cuestin, como se mencion en el apartado
correspondiente de este texto, sin embargo, se puede destacar su utilizad en
las siguientes reas:

Optimizacin: Se trata de un campo especialmente abonado para el uso


de los Algoritmos Genticos, por las caractersticas intrnsecas de estos
problemas. No en vano fueron la fuente de inspiracin para los creadores
estos algoritmos. Los algoritmos genticos se han utilizado en
numerosas tareas de optimizacin, incluyendo la optimizacin numrica,
y los problemas de optimizacin combinatoria.
Programacin automtica: Los algoritmos genticos se han empleado
para desarrollar programas para tareas especficas, y para disear otras
estructuras computacionales tales como el autmata celular, y las redes
de clasificacin.
Aprendizaje mquina: Los algoritmos genticos 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 clasificacin de aprendizaje o sistemas de produccin simblica, y los
sensores para robots.
Economa: En este caso, se ha hecho uso de estos algoritmos para
modelar procesos de innovacin, el desarrollo estrategias de puja, y la
aparicin de mercados econmicos.
Sistemas inmunes: A la hora 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 mltiples en
tiempo evolutivo, ha resultado til el empleo de esta tcnica.

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

21

Gonzlez Vargas Carlos Arturo

Ecologa: En la modelacin de fenmenos ecolgicos tales como las


carreras de armamento biolgico, la co-evolucin de parsito-huesped,
la simbiosis, y el flujo de recursos.
Gentica de poblaciones: En el estudio de preguntas del tipo Bajo qu
condiciones ser viable evolutivamente un gen para la recombinacin?
Evolucin y aprendizaje: Los algoritmos genticos se han utilizado en el
estudio de las relaciones entre el aprendizaje individual y la evolucin de
la especie.
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 multi-agentes.

Aunque esta lista no es, en modo alguno, exhaustiva, s transmite la idea de la


variedad de aplicaciones que tienen los algoritmos genticos. Gracias al xito
en estas y otras reas, los algoritmos genticos han llegado a ser un campo
puntero en la investigacin actual.

Conclusiones
Los algoritmos genticos, como tcnica heurstica para la solucin de
problemas, resulta ser una herramienta poderosa y aplicable a muchos casos
en los que los mtodos o tcnicas exactas pueden fallar o no son aplicables. Se
caracterizan por buscar soluciones basndose, en una buena medida, en
tcnicas estocsticas, combinndolas con algunas determinsticas, por lo que a
diferencia de otros mtodos heursticos, no se busca directamente en los
puntos de solucin que rodean al punto actual, por lo que tiene ventajas al
buscar los ptimos globales aunque el algoritmo se encuentre sobre un ptimo
local, aunque no se garantice que se encuentre el ptimo global.
Este tipo de algoritmos, adems nos presentan mucha versatilidad a la hora de
disearlos, buscando lo que ms nos convenga a la hora de atacar un
problema en especfico, cambiando los parmetros o tcnicas mediante las
cules se ejecutan los procesos derivados de los operadores genticos.
Por su naturaleza y forma de bsqueda de soluciones, los algoritmos genticos
pueden tener muchas ventajas en su aplicacin a problemas de optimizacin
combinatoria, por lo que representan una alternativa de solucin para
problemas de programacin entera en los que los mtodos de solucin exactos

Algoritmos genticos: una alternativa


soluciones para modelos matemticos

en

la

bsqueda

de

22

Gonzlez Vargas Carlos Arturo

no sean lo suficientemente eficientes o tengan problemas para encontrar


soluciones en un tiempo adecuado.

Referencias
Arranz de la Pea, J., & Parra Truyol, A. (s.f.). Algoritmos Genticos. Madrid:
Universidad Carlos III.
Gestal, M., Rivero, D., Rabual, J., Dorado, J., & Pazos, A. (2010). Introduccin a
los Algoritmos Genticos y Programacin Gentica. La Corua:
Universidade da Corua, Servizo de Publicacins.
Goldberg, D. E. (1989). Genetic algorithms in search, optimization, and
machine learning. Estados Unidos: Addison-Wesley Publishing Company.
Richard O. Duda, E. H. (1983). Expert Systems Research. Science, 261-220.
Snchez Toms, A. (1993). Sistemas expertos en Auditora. Tcnica Contable,
529-544.
Tolmos Rodriguez-Piero, P. (2000). Introduccin a los algoritmos genticos y
sus aplicaciones. Madrid, Espaa.

You might also like