Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nreinasalgoritmosgeneticos PDF
Nreinasalgoritmosgeneticos PDF
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.
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.
, 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' )
11. REFERENCIAS
[1] Adam Marczyk. Algoritmos genticos y computacin
evolutiva.
[2] Juan Julin Merelo Guervs. Informtica evolutiva:
Algoritmos genticos