Está en la página 1de 10

Algoritmos Genticos.

Aplicacin al Juego de las N


Reinas.
Juan Carlos Pozas Bustos Nieves Vzquez Vzquez
NIA: 100025154 NIA: 100025194
Univ.Carlos III de Madrid Univ.Carlos III de Madrid
Ing.Telecomunicacin Ing.Telecomunicacin
Espaa Espaa
100025154@alumnos.uc3m.es 100025194@alumnos.uc3m.es
en el organismo de los animales, desde el tamao y tasa de
Trminos generales ramificacin de las arterias, diseada para maximizar flujo, hasta
En el presente documento estudiaremos la historia, el desarrollo, el metabolismo, que optimiza la cantidad de energa extrada de
las ventajas y limitaciones de los algoritmos genticos as como los alimentos.
una de sus posibles aplicaciones en la resolucin de problemas.
Sin embargo, los geneticistas y bilogos evolutivos afirman
1. INTRODUCCIN que la evolucin no optimiza, sino que adapta y optimiza
Durante el curso de la historia, los seres humanos hemos localmente en el espacio y el tiempo; evolucin no significa
construido gradualmente un gran edificio de conocimiento que progreso. Un organismo ms evolucionado puede estar en
nos permite predecir el tiempo, los movimientos de los planetas, desventaja competitiva con uno de sus antepasados, si se colocan
los eclipses solares y lunares, el desarrollo de enfermedades, la en el ambiente del ltimo.
subida y la cada del desarrollo econmico y un panorama extenso
de otros fenmenos naturales, sociales, y culturales. 2. BREVE HISTORIA DE LOS
Hemos desarrollado medios cada vez ms complejos para ALGORITMOS GENTICOS
controlar muchos aspectos de nuestras vidas y de nuestras Los primeros ejemplos de lo que hoy podramos llamar
interacciones con la naturaleza. algoritmos genticos aparecieron a finales de los 50 y principios
Esta revolucin actual est aumentando nuestra capacidad de de los 60, programados por bilogos evolutivos que buscaban
predecir y de controlar la naturaleza en trminos que jams fueron realizar modelos de aspectos de la evolucin natural. A ninguno
concebidos. Para muchos, los mejores logros de esta revolucin de ellos se le ocurri que esta estrategia podra aplicarse de
sern la creacin -en forma de programas- de nuevas especies de manera ms general a los problemas artificiales, pero ese hecho no
seres inteligentes, o incluso de nuevas formas de vida. tardara en llegar.
Los objetivos de crear inteligencia artificial y vida artificial
se remontan a los orgenes de la era del ordenador. Alan Turing, John Holland se preguntaba cmo lograba la naturaleza,
Jon von Neumann, Norbert Wiener, etc. estaban, no slo crear seres cada vez ms perfectos. No saba la respuesta, pero
interesados en la electrnica, sino tambin en la idea de tena una cierta idea de como hallarla: tratando de hacer pequeos
desarrollar programas de ordenador con la inteligencia y con la modelos de la naturaleza, que tuvieran alguna de sus
capacidad adaptativa de aprender y controlar los entornos. As que caractersticas, y ver cmo funcionaban, para luego extrapolar sus
desde sus primeros pasos, los ordenadores estaban tambin conclusiones a la totalidad.
concebidos para modelar el cerebro, imitar el aprendizaje humano
y simular la evolucin biolgica. Estos tres campos han dado Fue a principios de los 60, en la Universidad de Michigan en
lugar a las redes neuronales, el aprendizaje mquina y a la Ann Arbor, donde, dentro del grupo Logic of Computers, sus
computacin evolutiva, cuyo ejemplo ms predominante son los ideas comenzaron a desarrollarse y a dar frutos. Y fue, adems,
algoritmos genticos. leyendo un libro escrito por un bilogo evolucionista, R. A.
Fisher, titulado La teora gentica de la seleccin natural, como
comenz a descubrir los medios de llevar a cabo sus propsitos de
Los algoritmos genticos estn inspirados en la naturaleza, comprensin de la naturaleza. De ese libro aprendi que la
en el fenmeno de la evolucin. La evolucin la consideramos evolucin era una forma de adaptacin ms potente que el simple
como la causa de los cambios en el contenido gentico de una aprendizaje, y tom la decisin de aplicar estas ideas para
poblacin. desarrollar programas bien adaptados para un fin determinado.

Un tema polmico, con opiniones variadas dependiendo de si En esa universidad, Holland imparta un curso titulado
se trata de informticos evolutivos o de bilogos o geneticistas, es Teora de sistemas adaptativos. Dentro de este curso, y con una
si la evolucin optimiza o no. participacin activa por parte de sus estudiantes, fue donde se
crearon las ideas que ms tarde se convertiran en los algoritmos
Segn los informticos evolutivos, la evolucin optimiza, genticos.
puesto que va creando seres cada vez ms perfectos, cuya cumbre
es el hombre; adems, indicios de esta optimizacin se encuentran Por tanto, cuando Holland se enfrent a los algoritmos
genticos, los objetivos de su investigacin fueron dos:
imitar los procesos adaptativos de los sistemas proceso de copia. Luego, esta descendencia digital prosigue con la
naturales, y siguiente generacin, formando un nuevo acervo de soluciones
candidatas, y son sometidas a una ronda de evaluacin de
disear sistemas artificiales (normalmente programas) aptitud. Las candidatas que han empeorado o no han mejorado
que retengan los mecanismos importantes de los con los cambios en su cdigo son eliminadas de nuevo; pero,
sistemas naturales. nuevamente, por puro azar, las variaciones aleatorias
introducidas en la poblacin pueden haber mejorado a algunos
Unos 15 aos ms adelante, David Goldberg, actual delfn individuos, convirtindolos en mejores soluciones del problema,
de los algoritmos genticos, conoci a Holland, y se convirti en ms completas o ms eficientes. De nuevo, se seleccionan y
su estudiante. Goldberg, ingeniero industrial, fue uno de los copian estos individuos vencedores hacia la siguiente generacin
primeros que trat de aplicar los algoritmos genticos a problemas con cambios aleatorios, y el proceso se repite.
industriales. Aunque Holland trat de disuadirle, Goldberg
consigui lo que quera, escribiendo un algoritmo gentico en un Las expectativas son que la aptitud media de la poblacin se
ordenador personal Apple II. Estas y otras aplicaciones creadas incrementar en cada ronda y, por tanto, repitiendo este proceso
por estudiantes de Holland convirtieron a los algoritmos genticos cientos o miles de rondas, pueden descubrirse soluciones muy
en un campo con base suficiente como para celebrar la primera buenas del problema.
conferencia en 1985, ICGA85.
Aunque a algunos les puede parecer asombroso y
antiintuitivo, los algoritmos genticos han demostrado ser una
3. QU ES UN ALGORITMO estrategia enormemente poderosa y exitosa para resolver
GENTICO? problemas, demostrando de manera espectacular el poder de los
principios evolutivos.
Los Algoritmos Genticos (GA) pueden verse como una
familia de procedimientos de bsqueda adaptivos. Estn basados
Se han utilizado algoritmos genticos en una amplia
en modelos de cambio gentico en una poblacin de individuos.
variedad de campos para desarrollar soluciones a problemas tan
Un punto clave de estos modelos, es que el proceso de adaptacin
difciles o ms que los abordados por los diseadores humanos. Y
no se hace cambiando incrementalmente una sola estructura, sino
las soluciones que consiguen son a menudo ms eficientes y
manteniendo una poblacin de estructuras a partir de las cuales se
elegantes.
generan nuevas estructuras usando los operadores genticos. Esto
es:
4. REPRESENTACIN DE ALGORITMOS
Nocin darwiniana de aptitud (fitness) que influye en GENTICOS
generaciones futuras.
Antes de que un algoritmo gentico pueda ponerse a trabajar
en un problema, se necesita un mtodo para codificar las
Apareamiento que produce descendientes en
soluciones potenciales del problema de forma que una
generaciones futuras.
computadora pueda procesarlas.
Operadores genticos que determinan la configuracin Un enfoque comn es codificar las soluciones como cadenas
gentica de los descendientes (tomada de los padres). binarias: secuencias de 1s y 0s, donde el dgito de cada posicin
representa el valor de algn aspecto de la solucin.
Un algoritmo gentico es una tcnica de programacin que
imita a la evolucin biolgica como estrategia para resolver Otro mtodo similar consiste en codificar las soluciones
problemas. Dado un problema especfico a resolver, la entrada del como cadenas de enteros o nmeros decimales. Este mtodo
AG es un conjunto de soluciones potenciales a ese problema, permite una mayor precisin y complejidad que el anterior y a
codificadas de alguna manera, y una mtrica llamada funcin de menudo est intuitivamente ms cerca del espacio de problemas.
aptitud que permite evaluar cuantitativamente a cada solucin Los algoritmos genticos para entrenar a las redes neuronales
candidata. Estas candidatas pueden ser soluciones que ya se sabe utilizan a menudo este mtodo de codificacin.
que funcionan, con el objetivo de que el AG las mejore, pero se
suelen generar aleatoriamente. Un tercer mtodo consiste en representar a los individuos de
un AG como cadenas de letras, donde cada letra, de nuevo,
Luego el AG evala cada candidata de acuerdo con la representa un aspecto especfico de la solucin. Tambin se usa
funcin de aptitud. En un conjunto de soluciones candidatas este tipo de codificacin para entrenar redes neuronales.
generadas aleatoriamente, por supuesto, la mayora no
funcionarn en absoluto, y sern eliminadas. Sin embargo, por La virtud de estos tres mtodos es que facilitan la definicin
puro azar, unas pocas pueden ser prometedoras, pueden mostrar de operadores que causen los cambios aleatorios en las candidatas
actividad, aunque slo sea actividad dbil e imperfecta, hacia la seleccionadas: cambiar un 0 por un 1 o viceversa, sumar o restar
solucin del problema. al valor de un nmero una cantidad elegida al azar, o cambiar una
letra por otra.
Estas candidatas prometedoras se conservan y se les permite
reproducirse. Se realizan mltiples copias de ellas, pero las copias Otra estrategia, desarrollada principalmente por John Koza,
no son perfectas; se introducen cambios aleatorios durante el de la Universidad de Stanford, y denominada programacin
gentica, representa a los programas como estructuras de datos mximo de iteraciones (generaciones) detenerlo
ramificadas llamadas rboles. En este mtodo, los cambios cuando no haya cambios en la poblacin.
aleatorios pueden generarse cambiado el operador o alterando el
valor de un cierto nodo del rbol, o sustituyendo un subrbol por 6. OPERADORES GENTICOS
otro. En la figura se muestran tres ejemplos de rboles de
programa, con las expresiones matemticas que representa cada 6.1 Seleccin
uno: Un algoritmo gentico puede utilizar muchas tcnicas
diferentes para seleccionar a los individuos que deben copiarse
hacia la siguiente generacin. A continuacin se listan algunos de
los ms comunes. Algunos de estos mtodos son mutuamente
exclusivos, pero otros pueden utilizarse en combinacin, algo que
se hace a menudo.

Seleccin elitista: se garantiza la seleccin de los


miembros ms aptos de cada generacin. (La mayora de
los AGs no utilizan elitismo puro, sino que usan una
forma modificada por la que el individuo mejor, o
algunos de los mejores, son copiados hacia la siguiente
generacin en caso de que no surja nada mejor).
Es importante sealar que los algoritmos evolutivos no
necesitan representar las soluciones candidatas como cadenas de Seleccin proporcional a la aptitud: los individuos
datos de una longitud fija. Algunos las representan de esta ms aptos tienen ms probabilidad de ser seleccionados,
manera, pero otros no. Por ejemplo, la codificacin gramatical pero no la certeza.
mencionada previamente, puede escalarse eficientemente para
crear redes neuronales grandes y complejas, y los rboles de Seleccin por rueda de ruleta: una forma de seleccin
programacin gentica pueden crecer arbitrariamente tanto como proporcional a la aptitud en la que la probabilidad de
sea necesario para resolver cualquier problema que se les pida. que un individuo sea seleccionado es proporcional a la
diferencia entre su aptitud y la de sus competidores.
(Conceptualmente, esto puede representarse como un
5. ALGORITMO GENTICO SIMPLE juego de ruleta -cada individuo obtiene una seccin de
Se estructura en los siguientes pasos: la ruleta, pero los ms aptos obtienen secciones mayores
que las de los menos aptos. Luego la ruleta se hace
a) Primero, se genera aleatoriamente la poblacin inicial, girar, y en cada vez se elige al individuo que posea la
que est constituida por un conjunto de cromosomas, seccin en la que se pare la ruleta).
que representan las posibles soluciones del problema.
En caso de no hacerlo aleatoriamente, es importante Seleccin escalada: al incrementarse la aptitud media
garantizar que dentro de la poblacin inicial, se tenga la de la poblacin, la fuerza de la presin selectiva
diversidad estructural de estas soluciones para tener una tambin aumenta y la funcin de aptitud se hace ms
representacin de la mayor parte de la poblacin posible discriminadora. Este mtodo puede ser til para
o al menos evitar la convergencia prematura. seleccionar ms tarde, cuando todos los individuos
tengan una aptitud relativamente alta y slo les
b) A cada uno de los cromosomas de esta poblacin se distingan pequeas diferencias en la aptitud.
aplicar la funcin de aptitud para saber lo "buena" que
es la solucin que se est codificando. Seleccin por torneo: se eligen subgrupos de
individuos de la poblacin, y los miembros de cada
c) Despus de saber la aptitud de cada cromosoma se subgrupo compiten entre ellos. Slo se elige a un
procede a elegir los cromosomas que sern cruzados en individuo de cada subgrupo para la reproduccin.
la siguiente generacin.
Seleccin por rango: a cada individuo de la poblacin
d) Los cromosomas con mejor aptitud tienen mayor se le asigna un rango numrico basado en su aptitud, y
probabilidad de ser seleccionados. la seleccin se basa en este ranking, en lugar de las
diferencias absolutas en aptitud. La ventaja de este
e) Se aplica un operador gentico: mutacin, cruce,
mtodo es que puede evitar que individuos muy aptos
evaluacin
ganen dominancia al principio a expensas de los menos
aptos, lo que reducira la diversidad gentica de la
f) El AG se deber detener cuando se alcance la solucin
poblacin y podra obstaculizar la bsqueda de una
ptima, pero sta generalmente se desconoce, por lo que
solucin aceptable.
se deben utilizar otros criterios de detencin.
Normalmente se usan dos: correr el AG un nmero
Seleccin generacional: la descendencia de los su anlisis se considera el proceso de seleccin y los operadores
individuos seleccionados en cada generacin se de cruce y mutacin. Se basa en la nocin de bloques de
convierte en toda la siguiente generacin. No se construccin. Una buena solucin a un problema est constituida
conservan individuos entre las generaciones. por unos buenos bloques, igual que una buena mquina est hecha
por buenas piezas. El crossover es el encargado de mezclar
Seleccin por estado estacionario: la descendencia de bloques buenos que se encuentren en los diversos progenitores, y
los individuos seleccionados en cada generacin que sern los que den a los mismos una buena puntuacin. La
vuelven al acervo gentico preexistente, reemplazando a presin selectiva se encarga de que slo los buenos bloques se
algunos de los miembros menos aptos de la siguiente perpeten, y poco a poco vayan formando una buena solucin. El
generacin. Se conservan algunos individuos entre teorema de los esquemas viene a decir que la cantidad de buenos
generaciones. bloques se va incrementando con el tiempo de ejecucin de un
algoritmo gentico, y es el resultado terico ms importante en
Seleccin jerrquica: los individuos atraviesan algoritmos genticos.
mltiples rondas de seleccin en cada generacin. Las
evaluaciones de los primeros niveles son ms rpidas y Un esquema se construye utilizando un nuevo smbolo (*)
menos discriminatorias, mientras que los que para representar un comodn que puede aparear ambos valores (0
sobreviven hasta niveles ms altos son evaluados ms o 1). Ejm., el esquema 11*00* representa las cadenas: 111001,
rigurosamente. La ventaja de este mtodo es que reduce 111000, 110001, 110000.
el tiempo total de clculo al utilizar una evaluacin ms
El orden de un esquema es el nmero de elementos que no
rpida y menos selectiva para eliminar a la mayora de
son * dentro del esquema. La longitud que define a un esquema
los individuos que se muestran poco o nada
es la distancia entre la primera posicin fija y la ltima posicin
prometedores, y sometiendo a una evaluacin de aptitud
fija.
ms rigurosa y computacionalmente ms costosa slo a
los que sobreviven a esta prueba inicial.
El teorema dice que si existen N ( S , t ) instancias de un
6.2 Mutacin esquema S en una poblacin en el instante t, en el siguiente
tiempo el valor esperado de instancias en la nueva poblacin esta
En la evolucin, una mutacin es un suceso bastante poco
acotado por:
comn (sucede aproximadamente una de cada mil replicaciones).
En la mayora de los casos las mutaciones son letales, pero en
promedio, contribuyen a la diversidad gentica de la especie.

Una vez establecida la frecuencia de mutacin, por ejemplo,


uno por mil, se examina cada bit de cada cadena cuando se vaya a
crear la nueva criatura a partir de sus padres (normalmente se hace donde F ( S , t ) es la aptitud del esquema S, F (t ) es la aptitud
de forma simultnea al crossover). Si un nmero generado
aleatoriamente est por debajo de esa probabilidad, se cambiar el promedio de la poblacin, y ( S , t ) es un trmino que refleja el
bit (es decir, de 0 a 1 o de 1 a 0). Si no, se dejar como est. potencial del algoritmo gentico de destruir instancias del
Dependiendo del nmero de individuos que haya y del nmero de esquema S.
bits por individuo, puede resultar que las mutaciones sean
extremadamente raras en una sola generacin. Para aplicar el crossover, entrecruzamiento o recombinacin,
se escogen aleatoriamente dos miembros de la poblacin. No pasa
No conviene abusar de la mutacin. Es cierto que es un nada si se emparejan dos descendientes de los mismos padres; ello
mecanismo generador de diversidad, y, por tanto, la solucin garantiza la perpetuacin de un individuo con buena puntuacin.
cuando un algoritmo gentico est estancado, pero tambin es Sin embargo, si esto sucede demasiado a menudo, puede crear
cierto que reduce el algoritmo gentico a una bsqueda aleatoria. problemas: toda la poblacin puede aparecer dominada por los
Siempre es ms conveniente usar otros mecanismos de generacin descendientes de algn gen, que, adems, puede tener caracteres
de diversidad, como aumentar el tamao de la poblacin, o no deseados. Esto se suele denominar en otros mtodos de
garantizar la aleatoriedad de la poblacin inicial. optimizacin atranque en un mnimo local, y es uno de los
principales problemas con los que se enfrentan los que aplican
6.3 Cruce (Crossover) algoritmos genticos.
Consiste en el intercambio de material gentico entre dos
cromosomas. El crossover es el principal operador gentico, hasta El intercambio gentico se puede llevar a cabo de muchas
el punto que se puede decir que no es un algoritmo gentico si no formas, pero hay dos grupos principales:
tiene crossover, y, sin embargo, puede serlo perfectamente sin
mutacin, segn descubri Holland. El teorema de los esquemas Crossover n-puntos: los dos cromosomas se cortan por
confa en l para hallar la mejor solucin a un problema, n puntos, y el material gentico situado entre ellos se
combinando soluciones parciales. intercambia. Lo ms habitual es un crossover de un
punto o de dos puntos.
El teorema de los esquemas proporciona el fundamento
terico de por qu los AG pueden resolver diversos problemas. En
7. OTROS OPERADORES
7.1 Cromosomas de longitud variable
Hasta ahora se han descrito cromosomas de longitud fija,
donde se conoce de antemano el nmero de parmetros de un
problema. Pero hay problemas en los que esto no sucede. En estos
casos, necesitamos dos operadores ms: aadir y eliminar. Estos
operadores se utilizan para aadir un gen, o eliminar un gen del
cromosoma. La forma ms habitual de aadir es duplicar uno ya
existente, el cual sufre mutacin y se aade al lado del anterior.
En este caso, los operadores del algoritmo gentico simple
Crossover uniforme: se genera un patrn aleatorio de (seleccin, mutacin, crossover) funcionarn de la forma habitual,
1s y 0s, y se intercambian los bits de los dos salvo, claro est, que slo se har crossover en la zona del
cromosomas que coincidan donde hay un 1 en el patrn. cromosoma de menor longitud.
O bien se genera un nmero aleatorio para cada bit, y si
supera una determinada probabilidad se intercambia ese Estos operadores permiten, adems, crear un algoritmo gentico
bit entre los dos cromosomas. de dos niveles: a nivel de cromosoma y a nivel de gen.
Supongamos que, en un problema de clasificacin, hay un gen por
clase. Se puede asignar una puntuacin a cada gen en funcin del
nmero de muestras que haya clasificado correctamente. Al
aplicar estos operadores, se duplicarn los alelos con mayor
puntuacin, y se eliminarn aquellos que hayan obtenido menor
puntuacin, o cuya puntuacin sea nula.

7.2 Operadores de nicho (ecolgico)


Estos operadores estn encaminados a mantener la diversidad
gentica de la poblacin, de forma que cromosomas similares
sustituyan slo a cromosomas similares, y son especialmente
tiles en problemas con muchas soluciones; un algoritmo gentico
Crossover especializado: en algunos problemas, aplicar con estos operadores es capaz de hallar todos los mximos,
aleatoriamente el crossover da lugar a cromosomas que dedicndose cada especie a un mximo. Ms que operadores
codifican soluciones invlidas; en este caso hay que genticos, son formas de enfocar la seleccin y la evaluacin de la
aplicar el crossover de forma que genere siempre poblacin.
soluciones vlidas.
Uno de las formas de llevar esto a cabo ya ha sido nombrada,
En toda ejecucin de un algoritmo gentico hay que decidir la introduccin del crowding (apiamiento). Otra forma es
con qu frecuencia se va a aplicar cada uno de los operadores introducir una funcin de comparticin o sharing, que indica cun
genticos; en algunos casos, como en la mutacin o el crossover similar es un cromosoma al resto de la poblacin. La puntuacin
uniforme, se debe de aadir algn parmetro adicional, que de cada individuo se dividir por esta funcin de comparticin, de
indique con qu frecuencia se va a aplicar dentro de cada gen del forma que se facilita la diversidad gentica y la aparicin de
cromosoma. La frecuencia de aplicacin de cada operador estar individuos diferentes.
en funcin del problema; teniendo en cuenta los efectos de cada
operador, tendr que aplicarse con cierta frecuencia o no. 7.3 Operadores especializados
Generalmente, la mutacin y otros operadores que generen
diversidad se suele aplicar con poca frecuencia; la recombinacin En una serie de problemas hay que restringir las nuevas
se suele aplicar con frecuencia alta. soluciones generadas por los operadores genticos, pues no todas
las soluciones generadas van a ser vlidas, sobre todo en los
En general, la frecuencia de los operadores no vara durante problemas con restricciones. Por ello, se aplican operadores que
la ejecucin del algoritmo, pero hay que tener en cuenta que cada mantengan la estructura del problema. Otros operadores son
operador es ms efectivo en un momento de la ejecucin. Por simplemente generadores de diversidad, pero la generan de una
ejemplo, al principio, en la fase denominada de exploracin, los forma determinada:
ms eficaces son la mutacin y la recombinacin; posteriormente,
cuando la poblacin ha convergido en parte, la recombinacin no Zap: en vez de cambiar un solo bit de un cromosoma,
es til, pues se est trabajando con individuos bastante similares, cambia un gen completo de un cromosoma.
y es poca la informacin que se intercambia. Sin embargo, si se
produce un estancamiento, la mutacin tampoco es til, pues est Creep: este operador aumenta o disminuye en 1 el valor
reduciendo el algoritmo gentico a una bsqueda aleatoria; y hay de un gen; sirve para cambiar suavemente y de forma
que aplicar otros operadores. En todo caso, se pueden usar controlada los valores de los genes.
operadores especializados.
Transposicin: similar al crossover y a la en combinacin pueden conducir hacia mejoras en la aptitud
recombinacin gentica, pero dentro de un solo mucho mayores. La no linealidad produce una explosin
cromosoma; dos genes intercambian sus valores, sin combinatoria, sobre la que, gracias al paralelismo implcito
afectar al resto del cromosoma. Similar a este es el de los AGs se les permite superar estos problemas ante un
operador de eliminacin-reinsercin, en el que un gen enorme nmero de posibilidades, encontrando con xito
cambia de posicin con respecto a los dems. resultados ptimos o muy buenos en un corto periodo de
tiempo.
8. VENTAJAS DE LOS ALGORITMOS
GENTICOS Otra ventaja notable de los algoritmos genticos es que se
desenvuelven bien en problemas donde la funcin de aptitud
es discontinua, ruidosa, cambia con el tiempo, o tiene
El primer y ms importante punto es que los algoritmos muchos ptimos locales. La mayora de los problemas
genticos son intrnsecamente paralelos. La mayora de los prcticos tienen un espacio de soluciones enorme, imposible
otros algoritmos son en serie y slo pueden explorar el de explorar exhaustivamente; el reto se convierte entonces en
espacio de soluciones hacia una solucin en una direccin al cmo evitar los ptimos locales.
mismo tiempo, y si la solucin que descubren resulta
subptima, no se puede hacer otra cosa que abandonar todo Los algoritmos evolutivos han demostrado su efectividad al
el trabajo hecho y empezar de nuevo. Sin embargo, ya que escapar de dichos ptimos locales y descubrir el ptimo
los algoritmos genticos tienen descendencia mltiple, global incluso en paisajes adaptativos muy escabrosos y
pueden explorar el espacio de soluciones en mltiples complejos. Los cuatro componentes principales de los
direcciones a la vez. Si un camino resulta ser un callejn sin algoritmos genticos -paralelismo, seleccin, mutacin y
salida, pueden eliminarlo fcilmente y continuar el trabajo en cruzamiento- trabajan juntos para conseguir esto.
avenidas ms prometedoras, dndoles una mayor
probabilidad en cada ejecucin de encontrar la solucin.

Sin embargo, la ventaja del paralelismo va ms all de esto.


Otra rea en el que destacan los algoritmos genticos es en su
habilidad para manipular muchos parmetros
Todas las cadenas binarias de 8 dgitos forman un espacio de
simultneamente. Su uso del paralelismo les permite producir
bsqueda, que puede representarse como ******** (donde *
mltiples soluciones, igualmente buenas, al mismo problema,
significa ``o 0 o 1''). La cadena 01101010 es un miembro de
donde posiblemente una solucin candidata optimiza un
este espacio. Sin embargo, tambin es un miembro del
parmetro y otra candidata optimiza uno distinto, y luego un
espacio 0*******, del espacio 01******, del espacio
supervisor humano puede seleccionar una de esas candidatas
0******0, del espacio 0*1*1*1*, del espacio 10*01**0,
para su utilizacin.
etctera. Evaluando la aptitud de esta cadena particular, un
algoritmo gentico estara sondeando cada uno de los
espacios a los que pertenece. Tras muchas evaluaciones, ira Finalmente, una de las cualidades de los algoritmos genticos
obteniendo un valor cada vez ms preciso de la aptitud media que, a primera vista, puede parecer un desastre, resulta ser
de cada uno de estos espacios, cada uno de los cuales una de sus ventajas: los algoritmos genticos no saben nada
contiene muchos miembros. Por tanto, un algoritmo gentico de los problemas que deben resolver. En lugar de utilizar
que evale explcitamente un nmero pequeo de individuos informacin especfica conocida a priori para guiar cada paso
est evaluando implcitamente un grupo de individuos realizan cambios aleatorios en sus soluciones candidatas y
mucho ms grande. luego utilizan la funcin de aptitud para determinar si esos
cambios producen una mejora.
De la misma manera, el algoritmo gentico puede
dirigirse hacia el espacio con los individuos ms aptos y Por ello, todos los caminos de bsqueda posibles estn
encontrar el mejor de ese grupo. En el contexto de los abiertos sin perder as cualquier solucin novedosa que
algoritmos evolutivos, esto se conoce como teorema del pueda existir. No obstante, cualquier tcnica que dependa de
esquema, y es la ventaja principal de los algoritmos genticos conocimiento previo fracasar ante dicho planteamiento.
sobre otros mtodos de resolucin de problemas.
9. LIMITACIONES DE LOS ALGORITMOS
Debido al paralelismo que les permite evaluar implcitamente GENTICOS
muchos esquemas a la vez, los algoritmos genticos
funcionan particularmente bien resolviendo problemas cuyo Los AGs tienen ciertas limitaciones; sin embargo, se demostrar
espacio de soluciones potenciales es realmente grande. La que todas ellas pueden superarse y que ninguna afecta a la validez
mayora de los problemas que caen en esta categora se de la evolucin biolgica.
conocen como no lineales. En un problema lineal, la
aptitud de cada componente es independiente, por lo que La primera y ms importante consideracin al crear un
cualquier mejora en alguna parte dar como resultado una algoritmo gentico es definir una representacin del
mejora en el sistema completo. Sin embargo la no linealidad problema. El lenguaje utilizado para especificar soluciones
es la norma en la vida real, donde cambiar un componente candidatas debe ser robusto; es decir, debe ser capaz de
puede tener efectos en cadena en todo el sistema, y donde tolerar cambios aleatorios que no produzcan constantemente
cambios mltiples que, individualmente, son perjudiciales, errores fatales o resultados sin sentido.
Hay dos maneras principales para conseguir esto. La primera, curso de la ejecucin, se puede reproducir tan
utilizada por la mayora de los algoritmos genticos, es abundantemente que merme la diversidad de la poblacin
definir a los individuos como listas de nmeros -binarios, demasiado pronto, provocando que el algoritmo converja
enteros o reales- donde cada nmero representa algn hacia el ptimo local que representa ese individuo. Esto es
aspecto de la solucin candidata. Si los individuos son un problema especialmente comn en las poblaciones
cadenas binarias, un 0 o 1 podra significar la ausencia o pequeas.
presencia de una cierta caracterstica. As, la mutacin
implica cambiar estos nmeros, cambiar bits o sumar o restar Los mtodos ms comunes implementados para solucionar
valores aleatorios. En este caso, el propio cdigo del este problema implican controlar la fuerza selectiva, para no
programa no cambia; el cdigo es lo que dirige la simulacin proporcionar tanta ventaja a los individuos excesivamente
y hace un seguimiento de los individuos, evaluando sus aptos. La seleccin escalada, por rango y por torneo,
aptitudes y quiz asegurando que slo se producen valores discutidas anteriormente, son tres de los mtodos principales
realistas y posibles para el problema dado. para conseguir esto.

En otro mtodo, la programacin gentica, el propio cdigo Finalmente, varios investigadores (Holland, Forrest, Haupt y
del programa s cambia. Sera el casoya descrito en el que a Haupt) aconsejan no utilizar algoritmos genticos en
los individuos se les representa como rboles de cdigo problemas resolubles de manera analtica. No es que los
ejecutables que pueden mutar cambiando o intercambiando algoritmos genticos no puedan encontrar soluciones buenas
subrboles. para estos problemas; simplemente es que los mtodos
analticos tradicionales consumen mucho menos tiempo y
Ambos mtodos producen representaciones robustas ante la potencia computacional que los AGs y, a diferencia de los
mutacin, y pueden representar muchos tipos diferentes de AGs, a menudo est demostrado matemticamente que
problemas. ofrecen la nica solucin exacta.

El problema de cmo escribir la funcin de aptitud debe 10. APLICACIN AL JUEGO DE LAS N
considerarse cuidadosamente para que se pueda alcanzar una
mayor aptitud y verdaderamente signifique una solucin REINAS
mejor para el problema dado. Si se elige mal una funcin de Los problemas que no tienen soluciones deterministas que se
aptitud o se define de manera inexacta, puede que el ejecutan en tiempo polinomial se denominan problemas de tipo
algoritmo gentico sea incapaz de encontrar una solucin al NP. Debido a su elevado complejidad ( O(2n) o O(n!)), deben ser
problema, o puede acabar resolviendo el problema resueltos en una cantidad de tiempo razonable empleando
equivocado. mtodos heursticos. Los algoritmos genticos son mtodos de
este estilo muy poderosos, capaces de realizar bsquedas en
Adems de elegir bien la funcin de aptitud, tambin deben grandes espacios de soluciones de forma muy eficiente. Sin
elegirse cuidadosamente los otros parmetros de un AG -el embargo, debido al nmero elevado de clculos que han de
tamao de la poblacin, el ritmo de mutacin y cruzamiento, realizarse, algn tipo de paralelismo es necesario.
el tipo y fuerza de la seleccin. Si el tamao de la poblacin
es demasiado pequeo, puede que el algoritmo gentico no
explore suficientemente el espacio de soluciones para El problema original de ocho reinas consista en intentar
encontrar buenas soluciones consistentemente. Si el ritmo de encontrar una forma de colocar a ocho reinas en un tablero de
cambio gentico es demasiado alto o el sistema de seleccin ajedrez de modo que dos reinas no se atacaran la una a la otra. Es
se escoge inadecuadamente, puede alterarse el desarrollo de decir, que en un tablero de 8 por 8, ninguna de las reinas
esquemas beneficiosos y la poblacin puede entrar en comparta una fila, columna o diagonal.
catstrofe de errores, al cambiar demasiado rpido para que
la seleccin llegue a producir convergencia.
Existen 92 soluciones a este problema, de las cuales 12
tienen un patrn distinto. Cada una de las 92 soluciones puede ser
Otro problema con el que los algoritmos genticos tienen
transformada en una de estos 12 patrones, utilizando rotaciones y
dificultades es con las funciones de aptitud engaosas en
reflexiones. La disposicin de las 8 reinas en las 12 soluciones
las que la situacin de los puntos mejorados ofrecen
bsicas se muestra en la siguiente figura:
informacin engaosa sobre dnde se encuentra
probablemente el ptimo global. Sin embargo puede
funcionar casi igual de bien alcanzando la cima de un ptimo
local alto y, para la mayora de las situaciones, eso ser
suficiente, incluso aunque el ptimo global no pueda
alcanzarse fcilmente desde ese punto. A dems la situacin
de las mejoras locales suelen proporcionar alguna
informacin sobre la situacin del ptimo global.

Otro problema muy conocido que puede surgir es la


convergencia prematura. Si un individuo que es ms apto que
la mayora de sus competidores emerge muy pronto en el
Podemos generalizar este problema para poder disponer n %algoritmo gentico
reinas en un tablero de tamao n x n sin que ninguna sea atacada. %
Como cada reina debe estar en una fila o columna diferente,
podemos asumir que la reina i se sita en la columna i. Todas las % INPUT:
soluciones al problema de las n reinas se pueden representar como % nReinas: nmero de reinas
n tuplas (q1, q2,, qn), que son permutaciones de una tupla n (1,
% NIND: nmero de individuos de cada generacin
2,, n). La posicin de un nmero en la tupla representa la
posicin de la columna de la reina, mientras que su valor % MAXGEN: nmero mximo de generaciones
representa la posicin de la fila de la reina. Utilizando esta % porcNewInd: porcentaje de nuevos individuos en la siguiente
representacin, el espacio de soluciones, donde el conflicto entre % generacin
fila y columna ya est solucionado, debe ser encontrado para
poder eliminar los conflictos de la diagonal. La complejidad de % porcMutacion: porcentaje de mutacin
este problema es O(n!). A continuacin se muestran dos ejemplos % funSeleccion: operador de seleccin (Ruleta o Torneo)
de posibles soluciones para el problema de 4 reinas: %
% OUTPUT:
% fitnessMedio: vector con el fitness medio de cada generacin
% mejorFitness: vector con el mejor fitness de cada generacin
% mejorIndividuo: matriz que contiene la representacin del
mejor individuo de cada generacin
% Representacin:
% Se utiliza un vector con tantas posiciones como columnas tiene
El problema de determinar una funcin de aptitud o fitness es % el tablero. Cada valor del vector indica la fila en la que se
igual que para cualquier problema de combinatoria: la solucin es %encuentra la reina en esa columna. No se permiten valores
tanto correcta como incorrecta. Por tanto, una funcin de fitness %repetidos en el vector.
debe ser capaz de determinar lo cerca que una solucin incorrecta
est de una correcta. Como la representacin explicada
ValorObjetivo = sum(1:nReinas-1);
previamente elimina el conflicto entre filas y columnas, las
soluciones incorrectas son aquellas en las que las reinas se atacan fprintf('ValorObjetivo: %d\n',ValorObjetivo);
unas a otras diagonalmente. Una funcin de fitness puede ser
implementada para contar el nmero de conflictos que hay en la
diagonal: cuantos ms conflictos haya, ms errnea ser la % Poblacion inicial
solucin. Para una solucin correcta, la funcin de fitness deber Poblacion=GeneraPoblacionInicial(NIND,nReinas,'GeneraPosic
devolver como resultado un 0. ion');
ObjV = EvaluaPoblacion(Poblacion,'EvaluaPosicion');
En la implementacin realizada se ha elegido la siguiente
funcin de fitness: considerando una n-tupla (q1,, qi,, qj,,
% Para el grfico
qn), las reinas i y j compartirn la diagonal si:
close;
i qi = j q j grid;
o hold on;
i + qi = j + q j axis([1 MAXGEN ValorObjetivo/2 ValorObjetivo]);

, que se reduce a:
% Inicializaciones
qi qj = i j FinessMedio = zeros(MAXGEN,1);
MejorFitness = zeros(1,1);
mejorIndividuo = zeros(MAXGEN,nReinas);
A continuacin se adjunta la funcin principal del algoritmo
gentico implementado en MATLAB: gen = 0;
while ((gen < MAXGEN) & (max(mejorFitness) ~=
ValorObjetivo)),
function [ fitnessMedio mejorFitness mejorIndividuo ] =
GAnReinas( nReinas, NIND, MAXGEN, porcNewInd,pMutacion,
funSeleccion) Poblacion=FormaNuevaPoblacion(Poblacion,ObjV,porcNewInd,
% GAnReinas Resuelve el problema de las n-reinas con un funSeleccion, 'CruzaPosicion', 'MutaPosicion',pMutacion);
Comenzamos ejecutando el programa con los siguientes
ObjV= EvaluaPoblacion(Poblacion,'EvaluaPosicion'); parmetros:
Nmero de reinas: [3 10]
Nmero de individuos de cada generacin: 50
% Almacenar media del fitness y mejor individuo
Nmero mximo de generaciones: 250
mejor = find(ObjV==max(ObjV)); Porcentaje de nuevos individuos en la siguiente
mejorFitness(gen+1) = ObjV(mejor(1)); generacin: 0.97
Porcentaje de mutacin: 0.1
mejorIndividuo(gen+1,:) = Poblacion(mejor(1),:);
Funcin de seleccin: Ruleta, Torneo
fitnessMedio(gen+1) = mean(ObjV);
Para un nmero de reinas entre 4 y 9, la convergencia es
% Incrementar el numero de generaciones prcticamente instantnea: la generacin en la que se alcanza el
fitness buscado es muy pequea. Para 10 reinas, la convergencia
gen = gen + 1; es mucho ms lenta y se alcanza muchas generaciones despus de
la inicial. Sin embargo, para 3 reinas, no se llega a alcanzar el
% Actualizar grfico valor de fitness deseado.

plot(mejorFitness,'-b');
plot(fitnessMedio,'-r');
if gen == 1
legend('Mejor Fitness', 'Media de la Poblacion');
end
drawnow;
end
hold off
val = PintaTablero( mejorIndividuo(gen,:),'EvaluaPosicion' )

Los pasos que sigue esta implementacin son los siguientes:

1. Se calcula el valor de fitness objetivo.


2. Se crea la poblacin inicial: se crea una matriz de
tamao NIND x nReinas, donde cada vector fila
representa los cromosomas de las posibles soluciones
del problema. Se genera de forma aleatoria. Cada valor
del vector indica la fila en la que se encuentra la reina
en esa columna. No se permiten valores repetidos en el
vector.
3. Se evala dicha poblacin: calcula el fitness de los
individuos de la poblacin, es decir, de cada fila cuenta
los posibles ataques entre las reinas.
4. Se genera una nueva poblacin a partir de la anterior:
en primer lugar se calcula el nmero de nuevos
individuos. El resto se completar con elitismo: algunos
de los mejores individuos son copiados hacia la
siguiente generacin. Despus se seleccionan los padres
y se cruzan. Se han implementado dos operadores de
seleccin: Ruleta y Torneo. Por ltimo, se insertan uno
o dos hijos, y se mutan los individuos creados (de
acuerdo al porcentaje de mutacin).
5. Se evala la nueva poblacin: se almacena la media del
fitness y del mejor individuo, para poder representarlo
de forma grfica.
6. Se repiten los pasos 3 y 4 hasta que se alcanza el
nmero mximo de generaciones o hasta que se alcanza
el objetivo.
[3] Eduardo Morales Manzanares. Algoritmos Genticos.
[4] Javier Campos . Algoritmos Genticos.
[5] Mealnie Mitchell. An Introduction to Genetic Algorithms.
[6] Darrel Whitley. A Genetic Algorithm Tutorial.
[7] Bill Butler. The N-queens problem.

Vemos que para 3 reinas, el fitness medio es muy variable


para cada una de las generaciones y que en contadas ocasiones se
alcanza el valor del mejor fitness. Para 10 reinas, esta situacin se
mantiene, aunque es ms evidente la diferencia entre ambos
valores si elegimos como funcin de seleccin la ruleta.
No obstante y como idea global, el algoritmo resuelve el
problema encontrando, como es lgico, la solucin antes
despus en funcin de la complejidad del problema.

11. REFERENCIAS
[1] Adam Marczyk. Algoritmos genticos y computacin
evolutiva.
[2] Juan Julin Merelo Guervs. Informtica evolutiva:
Algoritmos genticos

También podría gustarte