Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SANTIAGO ANTNEZ DE
MAYOLO
FACULTAD DE INGENIERA DE MINAS
GEOLOGA Y METALURGIA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA DE MINAS
TRABAJO MONOGRFICO:
ALGORITMOS GENTICOS
RESPONSABLES:
HUARAZ ANCASH
17 OCTUBRE DEL 2016
Facultad de ingeniera
Geologa y
Metalurgia
NDICE
Captulo 1. Algoritmos Genticos
1.1. INTRODUCCIN....03
1.2. ORGE......04
1.3. BASES BIOLOGICAS.05
1.4. CODIFICACION DE PROBLEMAS......06
1.5. ALGORITMO PRINCIPAL..07
1.6. OPERADORES GENETICOS...08
1.6.1. Seleccin09
1.6.1.1. Seleccin por ruleta..10
1.6.1.2. Seleccin por torneo.11
1.6.2. Cruce..11
1.6.2.1. Cruce de 1 punto...12
1.6.2.2. Cruce de 2 puntos.13
1.6.2.3. Cruce informe.13
1.6.2.4. Cruces especficos de codificaciones....14
1.6.3. Algoritmos de Reemplazo...15
1.6.4. Copia...15
1.6.5. Elitismo16
1.6.6. Mutacin..16
1.7. EVALUACION...16
1.8. EJEMPLOS PRACTICOS...18
1.8.1. Resolucin de un sistema de ecuaciones.18
1.8.1.1. Descripcin del problema..18
1.8.1.2. Codificacin del problema.19
1.8.1.3. Funcin de evaluacin...19
1.8.1.4. Ejemplo de resolucin paso a paso.....20
1.8.1.5. Implementacin en Matlab.23
1.8.2. N Reinas..24
1.8.2.1. Descripcin del problema..24
1.8.2.2. Codificacin del problema.....25
1.8.2.3. Funcin de evaluacin...26
1.8.2.4 Implementacion en Matlab..27
.
CONCLUSIONES Y RECOMENDACIONES..30
BIBLIOGRAFA .31
Facultad de ingeniera
Geologa y
Metalurgia
INTRODUCCIN
Los Algoritmos Genticos son mtodos adaptativos, generalmente usados en
problemas de bsqueda y optimizacin de parmetros, basados en la
reproduccin sexual y en el principio de supervivencia del ms apto.
Ms formalmente, y siguiendo la definicin dada por Goldberg, los Algoritmos
Genticos son algoritmos de bsqueda basados en la mecnica de seleccin
natural y de la gentica natural. Combinan la supervivencia del ms apto entre
estructuras de secuencias con un intercambio de informacin estructurado,
aunque aleatorizado, para constituir as un algoritmo de bsqueda que tenga
algo de las genialidades de las bsquedas humanas.
Para alcanzar la solucin a un problema se parte de un conjunto inicial de
individuos, llamado poblacin, generado de manera aleatoria. Cada uno de
estos individuos representa una posible solucin al problema. Estos individuos
evolucionarn tomando como base los esquemas propuestos por Darwin sobre
la seleccin natural, y se adaptarn en mayor medida tras el paso de cada
generacin a la solucin requerida
Facultad de ingeniera
Geologa y
Metalurgia
1.2 ORIGEN
A continuacin, se detallarn un poco ms los orgenes de cada una de las
disciplinas participantes en la ecuacin.
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 ajuste, valor
de bondad o fitness, 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).
Este proceso har posible que los individuos genticos tiendan hacia las
soluciones a un problema dado, aunque las condiciones del espacio de
bsqueda varen con el transcurso del tiempo (Grefenstette, 1992. Las bases
de las Estrategias de Evolucin fueron apuntadas en 1973 por Rechemberg en
su obra Evolutionsstrategie: Optimierung Technisher Sys- teme nach Prinzipien
der Biologischen Evolution (Rechenberg, 1973). Las dos Estrategias de
Evolucin ms empleadas son la (+)-ES y la (,)-ES. En la primera de ellas
un total de padres producen descendientes, reducindose nuevamente la
poblacin a individuos (los padres de la siguiente generacin) por seleccin
de los mejores individuos. De esta manera los padres sobreviven hasta que
Facultad de ingeniera
Geologa y
Metalurgia
son reemplazados por hijos mejores que ellos. En la (,)-ES la descendencia
reemplaza directamente a los padres, sin hacer ningn tipo de comprobacin.
La Programacin Evolutiva surge principalmente a raz del trabajo Ar- tificial
Intelligence Through Simulated Evolution de Fogel, Owens y Walsh, publicado
en 1966 (Fogel, Ewens & Walsh, 1966). En este caso los indivi- duos,
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.
A su vez la computacin evolutiva puede verse como uno de los campos de
investigacin de lo que se ha dado en llamar Soft Computing (ver Figura 1.2).
Facultad de ingeniera
Geologa y
Metalurgia
en la terminologa de Algoritmos Genticos) se codifica en una cadena de valores denominada cromosoma (ver Figura 1.3).
El conjunto de los parmetros representado por un cromosoma particular recibe
el nombre de genotipo. El genotipo contiene la informacin necesaria para la
construccin del organismo, es decir, la solucin real al problema, denominada
fenotipo. Por ejemplo, en trminos biolgicos, la informacin gentica contenida
en el ADN de un individuo sera el genotipo, mientras que la expresin de ese
ADN (el propio individuo) sera el fenotipo.
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.
Facultad de ingeniera
Geologa y
Metalurgia
Codificar una red de neuronas artificiales en forma de cromosoma es tan
sencillo como asignar un gen del cromosoma a cada uno de los pesos de la
red. Tambin se podran aadir genes que indiquen el nmero de capas y el
nmero de elementos de procesado en cada una.
Facultad de ingeniera
Geologa y
Metalurgia
Facultad de ingeniera
Geologa y
Metalurgia
Quizs una de las ms extendidas consiste en prescindir de la poblacin
temporal de manera que los operadores genticos de cruce y mutacin se aplican directamente sobre la poblacin gentica. Con esta variante el proceso de
cruces vara ligeramente. Ahora no basta, en el caso de que el cruce se produzca, con insertar directamente la descendencia en la poblacin. Puesto que
el nmero de individuos de la poblacin se ha de mantener constante, antes de
insertar la descendencia en la poblacin se le ha de hacer sitio. Es decir, para
ubicar a los descendientes generados previamente se han de eliminar otros
individuos de la poblacin gentica. Existen para ello diversas opciones, que se
comentarn con ms detalle en un punto posterior.
Evidentemente, trabajando con una nica poblacin no se puede decir que se
pase a la siguiente generacin cuando se llene la poblacin, pues siempre est
llena. En este caso el paso a la siguiente generacin se producir una vez que
se hayan alcanzado cierto nmero de cruces y mutaciones. Este nmero
depender de la tasa de cruces y mutaciones especificadas por el usuario y del
tamao de la poblacin. As, con una tasa de cruces del 90%, una tasa de
mutaciones del 2% y trabajando con 100 individuos se pasar a la siguiente
generacin cuando se alcanzasen 45 cruces (cada cruce genera 2 individuos
con lo que se habran insertado en la poblacin 90 individuos, esto es el 90%) o
2 mutaciones.
1.6.1 Seleccin
Los algoritmos de seleccin sern los encargados de escoger qu
individuos van a disponer de oportunidades de reproducirse y cules no.
Puesto que se trata de imitar lo que ocurre en la naturaleza, se ha de otorgar
Facultad de ingeniera
Geologa y
Metalurgia
un mayor nmero de oportunidades de reproduccin a los individuos ms
aptos. Por lo tanto, la seleccin de un individuo estar relacionada con su
valor de ajuste. No se debe, sin embargo, eliminar por completo las opciones
de reproduccin de los individuos menos aptos, pues en pocas generaciones
la poblacin se volvera homognea.
En cuanto a algoritmos de seleccin se refiere, estos pueden ser
divididos en dos grandes grupos: probabilsticos y determinsticos. Ambos
tipos de algoritmos basan su funcionamiento en el principio indicado
anteriormente (permitir escoger una mayor cantidad de veces a los ms
aptos). Sin embargo, como su nombre indica, el primer tipo adjudica estas
posibilidades con un importante componente basado en el azar. Es en este
grupo donde se encuentran los algoritmos de seleccin por ruleta o por
torneo que, dado su importancia por ser los ms frecuentemente utilizados,
se describen con detalle en esta seccin. El segundo grupo engloba una
serie de algoritmos que, dado el ajuste conocido de cada individuo, permite
asignar a cada uno el nmero de veces que ser
Escogido para reproducirse. Esto puede evitar problemas de predominancia
de ciertos individuos y cada uno de estos algoritmos presentan variaciones
respecto al nmero de veces que se tomarn los mejores y peores y, de esta
forma, se impondr una presin en la bsqueda en el espacio de estados en
la zona donde se encuentra el mejor individuo (en el caso de que se
seleccionen ms veces los mejores), o bien que se tienda a repartir la
bsqueda por el espacio de estados, pero sin dejar de tender a buscar en la
mejor zona (caso de repartir ms la leccin). Algunos de estos algoritmos son
sobrante estocstico (Brindle,1981) (Booker,1982), universal estocstica
(Baker, 1987) o muestreo determinstico. Una opcin bastante comn consiste
en seleccionar el primero de los individuos participantes en el cruce mediante
alguno de los mtodos expuestos en esta seccin y el segundo de manera
aleatoria.
1.6.1.1 Seleccin por ruleta
Propuesto por DeJong, es posiblemente el mtodo ms utilizado desde
los orgenes de los Algoritmos Genticos (Blickle & Thiele, 1995).
A cada uno de los individuos de la poblacin se le asigna una parte
proporcional a su ajuste de una ruleta, de tal forma que la suma de todos los
porcentajes sea la unidad. Los mejores individuos recibirn una porcin de la
ruleta mayor que la recibida por los peores. Generalmente, la poblacin est
ordenada en base al ajuste, por lo que las porciones ms grandes se
10
Facultad de ingeniera
Geologa y
Metalurgia
encuentran al inicio de la ruleta. Para seleccionar un individuo basta con
generar un nmero aleatorio del intervalo [0..1] y devolver el individuo situado
en esa posicin de la ruleta. Esta posicin se suele obtener recorriendo los
individuos de la poblacin y acumulando sus proporciones de ruleta hasta
que la suma exceda el valor obtenido.
Facultad de ingeniera
Geologa y
Metalurgia
1.6.2Cruce
Una vez seleccionados los individuos, stos son recombinados para
producir la descendencia que se insertar en la siguiente generacin. Tal y
como se ha indicado anteriormente, el cruce es una 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. 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 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
Cruce de 2 puntos
Cruce uniforme
1.6.2.1Cruce de 1 punto
Es la ms sencilla de las tcnicas de cruce. Una vez seleccionados dos
in- dividuos se cortan sus cromosomas por un punto seleccionado
12
Facultad de ingeniera
Geologa y
Metalurgia
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.
13
Facultad de ingeniera
Geologa y
Metalurgia
cruce por dos puntos.
Generalizando, se pueden aadir ms puntos de cruce dando lugar a algoritmos de cruce multipunto. Sin embargo existen estudios que
desaprueban esta tcnica (DeJong & Spears, 1999). Aunque se admite que
el cruce de 2 puntos aporta una sustancial mejora con respecto al cruce de
un solo punto, el hecho de aadir un mayor nmero de puntos de cruce
reduce el rendimiento del Algoritmo Gentico. El problema principal de aadir
nuevos puntos de cruce radica en que es ms fcil que los segmentos
originados sean corrompibles, es decir, que por separado quizs pierdan las
caractersticas de bondad que posean conjuntamente. Hay que evitar, por lo
tanto, romper dichos segmentos, denominados bloques constructivos.
Sin embargo no todo son desventajas y aadiendo ms puntos de cruce
se consigue que el espacio de bsqueda del problema sea explorado con
ms intensidad.
1.6.2.3Cruce uniforme
El cruce uniforme es una tcnica completamente diferente de las vistas
hasta el momento. Cada gen de la descendencia tiene las mismas
probabilidades de pertenecer a uno u otro padre.
Facultad de ingeniera
Geologa y
Metalurgia
una mezcla de genes de cada uno de los padres. El nmero efectivo de
puntos de cruce es fijo pero ser por trmino medio L/2, siendo L la longitud
del cromosoma (nmero de alelos en representaciones binarias o de genes
en otro tipo de representaciones).
1.6.2.4Cruces 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:
1.6.3Algoritmos 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:
Aleatorio: el nuevo individuo se inserta en un lugar escogido de
15
nueva
Facultad de ingeniera
Geologa y
Metalurgia
Reemplazo de similares: una vez obtenido el ajuste de la
1.6.4Copia
La copia es la otra estrategia reproductiva para la obtencin de una
nueva generacin a partir de la anterior. A diferencia del cruce, se trata de
una estrategia de reproduccin asexual.
1.6.5Elitismo
El elitismo es un caso particular del operador de copia consistente en copiar
siempre al mejor, o en sus casos mejores, individuos de una generacin en la
generacin siguiente. De esta manera se garantiza que el proceso de
bsqueda nunca dar un paso atrs en cuanto a la calidad de la mejor solucin
obtenida, sino que un cambio en sta siempre implicar una mejora.
Una variacin de este proceso consiste en copiar a los mejor o mejores
individuos de una generacin en la siguiente, nicamente cuando tras el paso
de una generacin no se haya mejorado con los operadores de cruce o
mutacin la mejor solucin de la generacin actual
1.6.6Mutacin
La mutacin de un individuo provoca que alguno de sus genes,
generalmente uno slo, vare su valor de forma aleatoria.
Aunque se pueden seleccionar los individuos directamente de la
poblacin actual y mutarlos antes de introducirlos en la nueva poblacin, la
mutacin se suele utilizar de manera conjunta con el operador de cruce.
Primera-mente se seleccionan dos individuos de la poblacin para realizar el
cruce. Si el cruce tiene xito entonces uno de los descendientes, o ambos, se
muta con cierta probabilidad Pm. Se imita de esta manera el comportamiento
16
Facultad de ingeniera
Geologa y
Metalurgia
que se da en la naturaleza, pues cuando se genera la descendencia siempre
se produce algn tipo de error, por lo general sin mayor trascendencia, en el
paso de la carga gentica de padres a hijos.
La probabilidad de mutacin es muy baja, generalmente menor al 1%.
1.7 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. Por lo tanto, para cada tipo de
problema que se desee resolver deber derivarse un nuevo mtodo, al igual
que ocurrir con la propia codificacin de los individuos.
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. Tal y como se ha comentado, este procedimiento de
evaluacin ser especfico del dominio del problema en el que se aplica el
Algoritmo Gentico. Tambin puede calcularse el ajuste mediante una
manera co-evolutiva. Por ejemplo, el ajuste de una estrategia de juego se
determina aplicando esa estrategia contra la poblacin entera (o en su
defecto una muestra) de estrategias de oposicin.
Se pueden diferenciar cuatro tipos de ajuste o fitness (Koza, 1992):
17
Facultad de ingeniera
Geologa y
Metalurgia
hormiga ser el nmero de piezas de comida llevadas por ella hasta el
hormiguero.
18
Facultad de ingeniera
Geologa y
Metalurgia
poblacin. Se obtiene de la siguiente forma (considerando una
poblacin de tamao M):
1.8.1.1.
Facultad de ingeniera
Geologa y
Metalurgia
La codificacin de un sistema de ecuaciones es realmente sencilla
mediante algoritmos genticos. Deber tenerse en cuenta que cada individuo
ha de proporcionar una solucin vlida al problema. Por lo tanto, si el sistema
de ecuaciones presenta m incgnitas, cada individuo gentico deber
codificar cada una de esas incgnitas. Podra optarse por diferentes
codificaciones pero, para mostrar paso a paso la resolucin del problema
propuesto, puede definirse que cada gen represente, mediante valores
reales, cada uno de los valores asignados a las incgnitas del sistema en la
solucin. As, en la Figura 1.10 se muestra un individuo gentico vlido para
la resolucin del citado problema.
X
=
1.25
1
X
=
5.87
2
X=15.6
8
3
X
=258.6
Funcin de Evaluacin
Facultad de ingeniera
Geologa y
Metalurgia
proporcionados por cada uno de los genes. A continuacin se realizaran los
clculos especificados en la parte izquierda de la ecuacin para obtener un
valor numrico. Dicho valor numrico podr compararse con los trminos
independientes especificados en el sistema de ecuaciones. Cuanto ms
cercano est (en valor absoluto) el valor obtenido al valor del trmino
independiente, mejor solucin representa el individuo gentico.
Evidentemente, la solucin ideal consistira en un conjunto de valores (las
soluciones del sistema) tales que, si las incgnitas se substituyesen por ellos,
los valores obtenidos fuesen idnticos a los trminos independientes.
21
Facultad de ingeniera
Geologa y
Metalurgia
Elitismo: 2 individuos
Algoritmo seleccin: torneo determinstico+aleatorio
Algoritmo cruce: 1 punto
Tasa de Cruce (P c): 90%
Tasa de Mutacin (P m): 2.5%
Algoritmo mutacin: puntual
1
2
3
4
5
6
7
8
9
2,6
1,3
6
6,3
2,5
5,2
2,7
9
9,8
9
4,5
4,0
4,68
7,6
0,0
6,5
3
1,6
3,57
2
2
14,64
5,6
0,7
7
4
28,97
2,3
32
3,1
6
2,6
33,18
9
1,2
9,5
1,2
63,32
4
5
91,02
1,2
7,6
117,15
8
7
0,6
166,04
9
4,5
6,2
8,6
233,81
538,72 6,45
Fitness
Normaliz
ado
0,0046
0,0187
0,0370
0,0408
0,0808
0,0423
0,1161
0,1495
0,2119
0,2983
Obsrvese que la poblacin aparece ordenada, tal y como suele ser habitual,
en funcin del valor de bondad de cada individuo.
Siguiendo las pautas mostradas en el pseudocdigo de la Figura 1.5 y, puesto
22
Facultad de ingeniera
Geologa y
Metalurgia
que se ha establecido un valor de elitismo de 2, los dos primeros individuos de
la poblacin pasaran a formar parte de la poblacin temporal.
Facultad de ingeniera
Geologa y
Metalurgia
descendiente generado en la operacin de cruce
3,08
4,
5
0,6
9
2,1
3
Facultad de ingeniera
Geologa y
Metalurgia
Para la implementacin de la solucin propuesta mediante Matlab se
emplear la versin 2.1 de su toolbox de algoritmos genticos. En las dos
siguientes secciones se recoge el cdigo necesario para la inicializacin del
algoritmo gentico y para la definicin de la funcin de evaluacin.
1.8.1.5.1.
1.8.1.5.1.
1.8.1.5.2.
Facultad de ingeniera
Geologa y
Metalurgia
la ecuacin correspondiente.
El bucle interno reemplaza en cada una de las ecuaciones del sistema los
valores proporcionados por el individuo para cada incgnita, mientras que el
bucle externo acumula las diferencias en valor absoluto entre el valor obtenido
tras dicha substitucin y el trmino independiente del sistema de ecuaciones.
1.8.2. N Reinas
A continuacin se muestra un ejemplo prctico resuelto mediante la aplicacin
de algoritmos genticos. El problema de las N-Reinas, debido a sus peculiares
caractersticas, permitir observar un proceso de codificacin y configuracin
especial de un algoritmo gentico para proceder a su resolucin. Una vez
mostrados los pasos necesarios para abordar la solucin del problema, se
muestra su implementacin mediante el lenguaje de programacin MATLAB
(Mathworks, 2005)
26
Facultad de ingeniera
Geologa y
Metalurgia
1.8.2.2.
27
Facultad de ingeniera
Geologa y
Metalurgia
1.8.2.3.
Funcin de Evaluacin
Para ello deber tenerse en cuenta que una solucin ser vlida cuando
ninguna reina amenaza al resto. Es decir, cuando ninguna comparta fila,
columna o diagonal. En la codificacin escogida, cada posicin i del vector se
corresponde con la posicin de la reina dentro de la fila i del tablero, con lo cual
no podr haber dos reinas compartiendo fila. Por otra parte, el vector de
posiciones representa posiciones de columnas, con lo que si en dicho vector no
existen valores repetidos, tampoco habra conflictos en cuanto a situar ms de
una reina en la misma columna. Restara por determinar si dos reinas
comparten diagonal. Ello ocurrir cuando para algn par de posiciones del
vector
(X1, X2, , Xn) se cumple que tienen el mismo valor para (fila-columna) o bien
para (fila+columna). Es decir, expresado de manera ms formal, existir un
conflicto cuando se cumpla la siguiente condicin:
Facultad de ingeniera
Geologa y
Metalurgia
es realmente una permutacin de los valores 1 a N, y que por lo tanto, tras la
aplicacin de las operaciones genticas, el cromosoma debe mantener dicha
propiedad. En cuanto a la mutacin, simplemente con aplicar la mutacin por
intercambio de 2 valores comentada anteriormente se mantendra
el
cromosoma correctamente formado. El operador de cruce es ligeramente
distinto a los explicados anteriormente. La idea es construir una operacin de
cruce que mantenga el orden relativo en el que aparecen los valores dentro del
vector de columnas. Una aproximacin vlida sera la siguiente, basada en el
cruce en un punto:
1. Escoger un punto aleatorio dentro del primer padre
2. Copiar la primera parte del cromosoma del progenitor al primer descendiente
3. Copiar en el primer descendiente los valores no incluidos en esta primera parte,
manteniendo el orden en el que aparecen en el segundo progenitor
4. Proceder de igual manera, pero intercambiado los papeles de los progenitores,
para generar el segundo descendiente.
29
Facultad de ingeniera
Geologa y
Metalurgia
de colisiones que se producen sobre la diagonal para determinar la bondad de
cada solucin.
1.8.2.4.1.
1.8.2.1.1.
Operador de mutacin:
1.8.2.1.1.
Operador de cruce:
30
Facultad de ingeniera
Geologa y
Metalurgia
El operador de cruce recoge el comportamiento explicado con anterioridad
(copia de un segmento inicial de los padres y copia de los valores no incluidos
en dicho segmento conservando el orden del segundo progenitor).
En este caso, el funcionamiento del propio toolbox de Matlab fuerza a que se
genere un nico descendiente por cada dos progenitores. Asimismo, los cruces
se realizan tambin en bloque a partir de los ndices de los progenitores
(parents) previamente seleccionados
1.8.2.1.1.
Funcin de evacuacin:
Una vez definidos los diferentes operadores, slo resta configurar el algoritmo gentico para que haga uso de ellos. Adems, es necesario configurar
las dimensiones del tablero (numeroReinas), el tamao de la poblacin
gentica (PopulationSize), el nmero mximo de generaciones (Generations),
etc.
Ejemplo de Ejecucin
Una vez mostrado el cdigo necesario para la resolucin del problema de las
N-Reinas, se muestra una ejecucin de ejemplo. sta corresponde a la
resolucin del problema para un tablero de 8x8 casillas.
Empleando un tamao de poblacin tpico (del orden de 100 individuos) la
resolucin es prcticamente instantnea, del orden de 3 o 4 iteraciones. Sin
embargo, para que pueda mostrarse la evolucin del error de la Figura 1.13 se
ha reducido este nmero hasta los 25 individuos. En esta figura, puede
observarse tanto la evolucin del error del mejor individuo y la media de la
poblacin, como la mejor solucin finalmente encontrada (5, 8, 4, 1, 7, 2, 6, 3).
31
Facultad de ingeniera
Geologa y
Metalurgia
RECOMENDACIONES Y CONCLUSIONES
32
Facultad de ingeniera
Geologa y
Metalurgia
BIBLIOGRAFA
33