Está en la página 1de 33

UNIVERSIDAD NACIONAL

SANTIAGO ANTNEZ DE
MAYOLO
FACULTAD DE INGENIERA DE MINAS
GEOLOGA Y METALURGIA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA DE MINAS

TRABAJO MONOGRFICO:

ALGORITMOS GENTICOS

RESPONSABLES:

CUEVA MENDOZA, Efran


DURAN HARO, Omar
BALTAZAR REYES, Jess
ESPINOZA PEREZ,Jhon

HUARAZ ANCASH
17 OCTUBRE DEL 2016

Anlisis de sistemas mineros


de Minas

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

Anlisis de sistemas mineros


de Minas

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

Anlisis de sistemas mineros


de Minas

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

Anlisis de sistemas mineros


de Minas

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).

Figura 1.1: Ecuacin Evolutiva

1.3 BASES BIOLGICAS


En la naturaleza, los individuos de una poblacin compiten constantemente con
otros por recursos tales como comida, agua y refugio. Los individuos que tienen
ms xito en la lucha por los recursos tienen mayores probabilidades de
sobrevivir y generalmente una descendencia mayor. Al contrario, los individuos
peor adaptados tienen un menor nmero de descendientes, o incluso ninguno.
Esto implica que los genes de los individuos mejor adaptados se propagarn a
un nmero cada vez mayor de individuos de las sucesivas generaciones.
La combinacin de caractersticas buenas de diferentes ancestros puede
originar, en ocasiones, que la descendencia est incluso mejor adaptada al medio que los padres. De esta manera, las especies evolucionan adaptndose
ms y ms al entorno a medida que transcurren las generaciones.
Pero la adaptacin de un individuo al medio no slo est determinada por su
composicin gentica. Influyen otros factores como el aprendizaje, en
ocasiones adquirido por el mtodo de prueba y error, en ocasiones adquirido
por imitacin del comportamiento de los padres, la cultura, la religin, etc.
aspectos no contemplados en el Algoritmo Gentico clsico, pero s en otras
variantes.
1.4 CODIFICACIN DE PROBLEMAS
Cualquier solucin potencial a un problema puede ser presentada dando
valores a una serie de parmetros. El conjunto de todos los parmetros (genes
5

Anlisis de sistemas mineros


de Minas

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.

En la Figura 1.3 se muestra un ejemplo de un individuo binario que codifica 3


parmetros.

Figura 1.3: Individuo gentico binario

Sin embargo, tambin existen representaciones que codifican directamente


cada parmetro con un valor entero, real o en punto flotante. A pesar de que se
acusa a estas representaciones de degradar el paralelismo implcito de las
representaciones binarias, permiten el desarrollo de operadores genticos ms
especficos al campo de aplicacin del Algoritmo Gentico.
En la Figura 1.4, se muestra un ejemplo tpico de la aplicacin de los
Algoritmos Genticos: cmo representar una red de neuronas artificiales para
posteriormente realizar el proceso de optimizacin de los pesos sinpticos.
6

Anlisis de sistemas mineros


de Minas

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.

Red de Neuronas Artificiales

Codificacin Individuo Gentico

Figura 1.4: Codificacin de una red de neuronas Artificiales

1.5 ALGORITMO PRINCIPAL


Los Algoritmos Genticos trabajan sobre una poblacin de individuos. Cada
uno de ellos representa una posible solucin al problema que se desea
resolver. Todo individuo tiene asociado un ajuste de acuerdo a la bondad con
respecto al problema de la solucin que representa (en la naturaleza el
equivalente sera una medida de la eficiencia del individuo en la lucha por los
recursos).
Una generacin se obtiene a partir de la anterior por medio de los opera- dores
de reproduccin. Existen 2 tipos:

Cruce. Se trata de una reproduccin de tipo sexual. Se genera una


descendencia a partir del mismo nmero de individuos (generalmente 2)
de la generacin anterior. Existen varios tipos que se detallarn en un
punto posterior.
Copia. Se trata de una reproduccin de tipo asexual. Un determinado
nmero de individuos pasa sin sufrir ninguna variacin directamente a la
siguiente generacin.

Anlisis de sistemas mineros


de Minas

Facultad de ingeniera
Geologa y

Metalurgia

Figura 1.5: Funcionamiento de un Algoritmo Gentico

El funcionamiento genrico de un Algoritmo Gentico puede apreciarse en el


pseudocdigo, reflejado en la Figura 1.5.
A continuacin, comienza a generarse la nueva poblacin en base a la
aplicacin de los operadores genticos de cruce y/o copia. Una vez generados
los nuevos individuos se realiza la mutacin con una probabilidad Pm. La
probabilidad de mutacin suele ser muy baja, por lo general entre el 0.5% y el
2%.
Se sale de este proceso cuando se alcanza alguno de los criterios de parada
fijados.
Los ms usuales suelen ser:

Los mejores individuos de la poblacin representan soluciones


suficientemente buenas para el problema que se desea resolver.
La poblacin ha convergido. Un gen ha convergido cuando el 95% de la
poblacin tiene el mismo valor para l, en el caso de trabajar con
codificaciones binarias, o valores dentro de un rango especificado en el
caso de trabajar con otro tipo de codificaciones. Una vez que todos los
genes alcanzan la convergencia se dice que la poblacin ha convergido.
Cuando esto ocurre la media de bondad de la poblacin se aproxima a
la bondad del mejor individuo.
Se ha alcanzado el nmero de generaciones mximo especificado.
Sobre este algoritmo inicialmente propuesto por Holland se han definido
numerosas variantes.

Anlisis de sistemas mineros


de Minas

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 Operadores genticos


Para el paso de una generacin a la siguiente se aplican una serie de
operadores genticos. Los ms empleados son los operadores de seleccin,
cruce, copia y mutacin. En el caso de no trabajar con una poblacin
intermedia temporal tambin cobran relevancia los algoritmos de reemplazo.

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

Anlisis de sistemas mineros


de Minas

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

Anlisis de sistemas mineros


de Minas

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.

1.6.1.2 Seleccin por torneo


La idea principal de este mtodo de seleccin consiste en escoger a los
individuos genticos en base a comparaciones directas entre sus genotipos.
Existen dos versiones de seleccin mediante torneo, el torneo
determinstico y el torneo probabilstico, que a continuacin pasan a
detallarse.
En la versin determinstica se selecciona al azar un nmero p de
individuos (generalmente se escoge p=2). De entre los individuos
seleccionados se selecciona el ms apto para pasarlo a la siguiente
generacin.
La versin probabilstica nicamente se diferencia en el paso de seleccin del
ganador del torneo. En vez de escoger siempre el mejor se genera un nmero
aleatorio del intervalo [0..1], si es mayor que un parmetro p (fijado para todo
el proceso evolutivo) se escoge el individuo ms alto y en caso contrario el
menos apto. Generalmente p toma valores en el rango 0.5 < p 1
Variando el nmero de individuos que participan en cada torneo se puede
modificar la presin de seleccin. Cuando participan muchos individuos en
cada torneo, la presin de seleccin es elevada y los peores individuos
apenas tienen oportunidades de reproduccin. Un caso particular es el
elitismo global. Se trata de un torneo en el que participan todos los individuos
de la poblacin, con lo cual la seleccin se vuelve totalmente determinstica.
Cuando el tamao del torneo es reducido, la presin de seleccin disminuye
y los peores individuos tienen ms oportunidades de ser seleccionados.
Elegir uno u otro mtodo de seleccin determinar la estrategia de
bsqueda del Algoritmo Gentico. Si se opta por un mtodo con una alta
presin de seleccin se centra la bsqueda de las soluciones en un entorno
prximo a las mejores soluciones actuales. Por el contrario, optando por una
presin de seleccin menor se deja el camino abierto para la exploracin de
nuevas regiones del espacio de bsqueda.
11

Anlisis de sistemas mineros


de Minas

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

Anlisis de sistemas mineros


de Minas

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.

Figura 1.6: Cruce de un punto

En la Figura 1.6 se puede ver con claridad el proceso descrito anteriormente.


En la bibliografa suele referirse a este tipo de cruce con el nombre de SPX
(Single Point Exchange).
1.6.2.2Cruce de 2 puntos
Se trata de una generalizacin del cruce de 1 punto. 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.

Figura 1.7: Cruce de dos puntos

Generalmente, es habitual referirse a este tipo de cruce con las siglas


DPX (Double Point Crossover). En la Figura 1.7 se muestra un ejemplo de

13

Anlisis de sistemas mineros


de Minas

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.

Figura 1.8: Cruce uniforme

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.
Tal y como se puede apreciar en la Figura 1.8, la descendencia contiene
14

Anlisis de sistemas mineros


de Minas

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:

Media: el gen de la descendencia toma el valor medio de los genes de

los padres. Tiene la desventaja de que nicamente se genera un


descendiente en el cruce de dos padres.
Media geomtrica: cada gen de la descendencia toma como valor la

raz cuadrada del producto de los genes de los padres. Presenta el


problema aadido de qu signo dar al resultado si los padres tienen
signos diferentes.
Extensin: se toma la diferencia existente entre los genes situados en

las mismas posiciones de los padres y se suma 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.

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

manera aleatoria en la poblacin.


Reemplazo

de padres: se obtiene espacio para la


descendencia liberando el espacio ocupado por los padres.

15

nueva

Anlisis de sistemas mineros


de Minas

Facultad de ingeniera
Geologa y

Metalurgia
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

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

Anlisis de sistemas mineros


de Minas

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):

Fitness Puro: r(i,t)

Es la medida de ajuste establecida en la terminologa natural del


propio problema. Por ejemplo, supngase una poblacin de hormigas
que deben llenar la despensa de cara al invierno. La bondad de cada

17

Anlisis de sistemas mineros


de Minas

Facultad de ingeniera
Geologa y

Metalurgia
hormiga ser el nmero de piezas de comida llevadas por ella hasta el
hormiguero.

En los problemas de maximizacin, como sera el de las hormigas mencionado


anteriormente, los individuos con un fitness puro elevado sern los ms
interesantes. Al contrario, en los problemas de minimizacin interesarn los
individuos con un fitness puro reducido.
Fitness Estandarizado. s(i,t)

Para solucionar esta dualidad ante problemas de minimizacin o


maximizacin se modifica el ajuste puro de acuerdo a la siguiente
frmula:

En el caso de problemas de minimizacin se emplea directamente la


medida de fitness puro. Si el problema es de maximizacin se resta de
una cota superior r del error el fitness puro Empleando esta mtrica la
bondad de un individuo ser menor cuanto ms cercano est a cero el
valor del ajuste. Por lo tanto, dentro de la generacin t, un individuo i
siempre ser mejor que uno j si se verifica que s(i,t) < s(j,t).
Fitness Ajustado. a(i,t)
Se obtiene aplicando la siguiente transformacin al fitness estandarizado
De esta manera, el fitness ajustado tomar siempre valores del
intervalo (0,1]. Cuando ms se aproxime el fitness ajustado de un
individuo a 1 mayor ser su bondad.
Fitness Normalizado. n(i,t)

Los diferentes tipos de fitness vistos hasta ahora hacen referencia


nicamente a la bondad del individuo en cuestin. El fitness
normalizado introduce un nuevo aspecto: indica la bondad de una
solucin con res- pecto al resto de soluciones representadas en la

18

Anlisis de sistemas mineros


de Minas

Facultad de ingeniera
Geologa y

Metalurgia
poblacin. Se obtiene de la siguiente forma (considerando una
poblacin de tamao M):

Al igual que el fitness ajustado, siempre tomar valores del intervalo

[0,1], con mejores individuos cuanto ms prximo est a la unidad.


Pero a diferencia de antes, un valor cercano a 1 no slo indica que ese
individuo represente una buena solucin al problema, sino que
adems es una solucin destacadamente mejor que las
proporcionadas por el resto de la poblacin.
La suma de los valores de fitness normalizado de una poblacin da
siempre 1. Este tipo de ajuste es empleado en la mayora de los
mtodos de seleccin proporcionales al fitness.
1.8 Ejemplo
1.8.1 Resolucin de un sistema de ecuaciones
Un ejemplo sencillo, pero en el que se aprecia la potencia de resolucin
de los algoritmos genticos, es el relativo a la resolucin de un sistema de
ecuaciones.

1.8.1.1.

Descripcin del problema

En la Figura 1.9 se muestra un sistema con n ecuaciones y un total de


m incgnitas (junto con su representacin matricial). Los coeficientes de las
incgnitas Xi estn representados por los valores a i,j, mientras que el trmino
independiente de cada ecuacin se representa con el valor bi.

1.8.1.2 Codificacin del problema


19

Anlisis de sistemas mineros


de Minas

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

Figura 1.10: Individuo Gentico

Tal y como se ha comentado, cada uno de los genes representar el valor


asignado a cada incgnita para la resolucin del sistema planteado. Asimismo,
durante la fase de codificacin se podr establecer un lmite mximo y mnimo
para el valor de los genes.
1.8.1.3.

Funcin de Evaluacin

Una vez codificado el problema, ser necesario proporcionar una funcin de


evaluacin que permita determinar cmo de buena es la solucin
proporcionada por cada uno de los individuos de la poblacin gentica.

A medida que se incrementa el nmero de ecuaciones y el nmero de


incgnitas, la resolucin por mtodos puramente matemticos de este tipo de
problemas se complica considerablemente. Sin embargo, trabajando con
algoritmos genticos debe tenerse en cuenta que no es necesario proporcionar
un mtodo de resolucin.
Sino un mtodo que permita determinar si una so- lucin es buena o no, y en
qu medida. As, una aproximacin perfectamente vlida para evaluar la
bondad de un individuo consistira en lo siguiente. En primer lugar, debern
reemplazarse las incgnitas del sistema de ecuaciones por los valores
20

Anlisis de sistemas mineros


de Minas

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.

1.8.1.4 Ejemplo de resolucin paso a paso:


Siguiendo la codificacin y mtodo de evaluacin anteriormente comen- tados,
a continuacin se mostrar paso a paso la resolucin del sistema de
ecuaciones planteado.

Figura 1.11: Sistema de ecuaciones de partida


Tal y como se ha comentado anteriormente, la fortaleza de los algorit- mos
evolutivos reside en la evolucin en paralelo de mltiples soluciones. Sin
embargo, con el objetivo de hacer comprensible la simulacin se escogern
valores fuera del rango normal de operacin de este tipo de algoritmos, como
puede ser el tamao de poblacin.
As, en este caso los parmetros de configuracin del algoritmo gentico
sern los siguientes:
Tamao de poblacin: 10 individuos

21

Anlisis de sistemas mineros


de Minas

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

El primer paso en la ejecucin del algoritmo gentico consistir en la


inicializacin de la poblacin gentica. En este caso, por simplicidad podemos
suponer que se restringen los valores de los genes al rango [-10..10] y que se
permiten nicamente 2 valores decimales.

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

Anlisis de sistemas mineros


de Minas

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.

El resto de la poblacin temporal se rellenar como resultado de los


operadores de cruce, copia y/o mutacin. El siguiente paso consistir en
seleccionar dos individuos para la realizacin del cruce. El primero de ellos se
seleccionar mediante el algoritmo de torneo determinstico (p=2), por lo que
previamente debern seleccionarse al azar dos individuos de la poblacin, supngase que sean los individuos 3 y 8 de la poblacin. De entre estos, el que
presenta mejor fitness es el individuo 3, por lo que ser seleccionado como
primer padre para el algoritmo de cruce. El segundo de los padres del
algoritmo de cruce se seleccionar al azar, por ejemplo el individuo nmero 7.
Una vez seleccionados los padres se deber determinar si se procede o no a
la aplicacin del algoritmo de cruce. Para ello se genera un nmero al azar.
En este caso el algoritmo de cruce escogido es el cruce en un punto, por lo
que deber escogerse un punto de cruce dentro del genotipo de los
individuos. Suponiendo que el punto escogido es el 1, el resultado del cruce
sera el siguiente:

Una vez realizado el cruce deber comprobarse si es o no necesario reali- zar


la operacin de mutacin. En este caso supngase que se genera un valor 0,02
que, al ser menor que P determinar la necesidad de realizar la muta- cin. En
esta ocasin se mutar de manera aleatoria el tercer gen del primer
23

Anlisis de sistemas mineros


de Minas

Facultad de ingeniera
Geologa y

Metalurgia
descendiente generado en la operacin de cruce
3,08

4,
5

0,6
9

2,1
3

Ambos individuos debern ser insertados en la poblacin temporal que,


llegado este punto, ya se encuentra completa. Por lo tanto, la poblacin
genti- ca actual se descarta y se establece como poblacin de la siguiente
generacin, en este caso la 1, la actual poblacin temporal.

Obsrvese cmo tras esta primera iteracin el individuo ms adaptado


obtenido ya mejora al mejor individuo previo. Es decir, la poblacin gentica
se va adaptando paulatinamente al medio, en este caso, a la resolucin del
sistema de ecuaciones.
Ahora sera el momento de determinar si la ejecucin del algoritmo gentico contina o bien si ha de detenerse. Esta comprobacin suele realizarse
en base al nmero de generaciones transcurridas o en base a la aptitud del
mejor individuo. Tambin puede hacerse en base a criterios algo ms
complejos, como el hecho de que la mejor solucin proporcionada por el
algoritmo gen- tico vare en un porcentaje menor a uno prefijado durante
determinado nmero de generaciones.
1.8.1.5 Implementacin en Matlab
24

Anlisis de sistemas mineros


de Minas

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.

Inicializacin de algoritmo gentico:

El fichero de inicializacin se encarga de la configuracin de los


diferentes parmetros del algoritmo gentico: tamao y tipo de poblacin,
definicin de los algoritmos de seleccin, cruce y mutacin, establecimiento
de los criterios de parada, etc.
Adems, en este fichero se establecen los coeficientes y trminos
independientes del sistema de ecuaciones que desea resolverse (variable
sistema Ecuaciones). Esta variable se declara global para que sea
directamente accesible desde el fichero de evaluacin.

1.8.1.5.1.

Inicializacin de algoritmo gentico:

El fichero de inicializacin se encarga de la configuracin de los


diferentes parmetros del algoritmo gentico: tamao y tipo de poblacin,
definicin de los algoritmos de seleccin, cruce y mutacin, establecimiento
de los criterios de parada, etc.
Adems, en este fichero se establecen los coeficientes y trminos
independientes del sistema de ecuaciones que desea resolverse (variable
sistema
Ecuaciones). Esta variable se declara global para que sea
directamente accesible desde el fichero de evaluacin

1.8.1.5.2.

Definicin de la funcin de evaluacin:

La funcin evaluacin es una traduccin directa a cdigo Matlab del


pseudocdigo mostrado anteriormente.
As, el valor de ajuste de un individuo sera el sumatorio de las diferencias en
valor absoluto entre cada uno de los trminos independientes del sistema y
los trminos independientes obtenidos al sustituir los valores del genotipo en
25

Anlisis de sistemas mineros


de Minas

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)

1.8.2.1. Descripcin del problema


A grandes rasgos, el problema de las N Reinas consiste en situar N rei- nas
sobre un hipottico tablero de ajedrez de NxN celdas, de tal manera que
ninguna reina pueda atacar la posicin del resto de reinas. Es decir, colocar N
reinas sobre el tablero NxN sin que ninguna comparta fila, columna o diagonal
de dicho tablero.
Una bsqueda secuencial de todas las posibles combinaciones implicara la
bsqueda de N(N-1) 1 = N! posibilidades. Concretamente, para un tablero tradicional de 8x8 casillas, existiran 8! = 40.320 posibilidades, de las
cuales nicamente 92 seran soluciones vlidas. En la Figura 1.12 se muestra
una de estas soluciones vlidas, con la ubicacin de las 8 reinas sobre el tablero de ajedrez

26

Anlisis de sistemas mineros


de Minas

Facultad de ingeniera
Geologa y

Metalurgia

1.8.2.2.

Codificacin del problema

Si desea abordarse el problema mediante el empleo de algoritmos genticos,


en primer lugar ser necesario codificarlo en los trminos adecuados.
Una primera aproximacin a la codificacin del problema se podra plantear
como una matriz de NxN elementos binarios. En este caso un valor 1
significara que se encuentra una reina en esa posicin, y un 0 que esa casilla
del tablero est vaca. Se tratara de una codificacin claramente ineficiente ya
que se est almacenando mucha ms informacin de la necesaria, puesto que
el hecho de conocer en que posiciones se colocan las reinas implica directamente el conocimiento acerca de las casillas que se encuentran vacas.
Por lo tanto puede plantearse otra codificacin, mucho ms eficiente. Para
ello, hay que recordar que cada reina ha de estar en una fila y columna diferente. Partiendo de que en cada fila existir una reina, el problema se puede
replantear de tal manera que consista en determinar la columna dentro de la
fila correspondiente en la que haya que colocar la reina, de tal manera que
ninguna se haga jaque. Por lo tanto, la solucin al problema podr codificarse
en forma de una tupla de n valores S = (X1, X2, , Xn) en la que cada Xi
representa la columna en la que se coloca la reina de la fila i. Para evitar
situar ms
de una reina en la misma columna, los valores de S sern una permutacin de
la tupla (1, 2, , N).

Retomando la solucin mostrada en la Figura 1.12, sta se codificara segn


la siguiente tupla S = (5, 3, 8, 4, 7, 1, 6, 2), de tal manera que la reina de la
primera fila se sita en la columna 5, la reina de la segunda fila se sita en la
columna 3, y as sucesivamente.

27

Anlisis de sistemas mineros


de Minas

Facultad de ingeniera
Geologa y

Metalurgia

1.8.2.3.

Funcin de Evaluacin

Una vez determinada la codificacin del problema, ser necesario proporcionar


una funcin de fitness que permita determinar la validez de cada uno de los
individuos generados por el algoritmo gentico.

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:

Esta expresin puede simplificarse de la siguiente manera con el objetivo de


determinar si existe o no colisin en diagonal para dos reinas situadas en las
columnas i y j:

Tal y como se ha indicado, la propia codificacin del problema elimina la


existencia de problemas como que una reina sea atacada por otra de la
misma fila.
Utilizando convenientemente las operaciones de cruce y mutacin es posible
tambin eliminar la probabilidad de que en una misma columna se ubique ms
de una reina. Ambas operaciones deben tener en cuenta que el cromosoma
28

Anlisis de sistemas mineros


de Minas

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.

An con la codificacin escogida y los operadores genticos definidos, lo que


no se elimina es la posibilidad de conflictos con respecto a que una reina sea
atacada por otra que est en su misma diagonal. La funcin de fitness deber
ser capaz de determinar lo cerca que est de una solucin vlida cada una de
las soluciones proporcionadas por el algoritmo gentico. Por lo tanto, una
opcin ser considerar el valor de ajuste de un individuo como el nmero de
conflictos que se presentan en la diagonal. As, cuantos ms conflictos haya,
ms errnea ser la solucin, mientras que si el nmero de conflictos es 0, el
individuo gentico representar una solucin vlida.

1.8.2.4. Implementacin en Matlab


Para la implementacin de la solucin propuesta mediante Matlab se emplear
la versin 2.1 de su toolbox de algoritmos genticos. En las siguientes
secciones se recogen todos los pasos necesarios. As, se incluye la
implementacin de la funcin de creacin de la poblacin gentica (para forzar
a que los individuos sean una permutacin de valores), la implementacin de
los algoritmos de cruce y mutacin que tengan en cuenta esta peculiaridad de
los individuos, y, por ltimo, la funcin de evaluacin, que calcular el nmero

29

Anlisis de sistemas mineros


de Minas

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.

Creacin de la poblacin gentica

La funcin de creacin inicializa la poblacin mediante individuos consistentes


en una permutacin de valores, manteniendo los individuos proporcionados
por el usuario (mediante el parmetro options.InitialPopulation) en caso de
que estos existan.

1.8.2.1.1.

Operador de mutacin:

El operador de mutacin simplemente realiza el intercambio entre dos genes


escogidos al azar dentro del cromosoma de los individuos genticos
seleccionados para la mutacin.
El vector parents empleado en la implementacin del operador recoge los
ndices de los individuos seleccionados para la mutacin. El propio funcionamiento determina que la aplicacin del operador de mutacin no se hace de
manera individual, sino en conjunto a todos aquellos individuos seleccionados
para la mutacin gentica.

1.8.2.1.1.

Operador de cruce:

30

Anlisis de sistemas mineros


de Minas

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:

Tal y como se coment anteriormente, la bondad de un individuo se de- termina


en base al nmero de colisiones, o posibles ataques entre reinas, que se
producen en la diagonal del tablero. Para ello es necesario comprobar cada
reina con cada una de las restantes para verificar si pueden atacarse entre s.
1.8.2.1.1.

Configuracin del algoritmo gentico:

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

Anlisis de sistemas mineros


de Minas

Facultad de ingeniera
Geologa y

Metalurgia

RECOMENDACIONES Y CONCLUSIONES

Seguir los pasos adecuados para la solucin de algoritmos


genticos que 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.

Seguir los pasos de seleccin de algoritmos 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 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 eliminar por completo las opciones de reproduccin de


los individuos menos aptos, pues en pocas generaciones la
poblacin se volvera homognea.

32

Anlisis de sistemas mineros


de Minas

Facultad de ingeniera
Geologa y

Metalurgia

BIBLIOGRAFA

Aguirre, H. E., Tanaka, K. and Sugimura, T. (1999). Cooperative


crossover and mutation operators in genetic algorithms. Proceedings
of the Genetic and Evolutionary Computation Conference, GECCO-99.
Morgan Kaufmann. Orlando, Florida. pp 772.

Angeline, P. J. (1996). An investigation into the sensitivity of genetic


programming to the frequency of leaf selection during subtree
crossover. Genetic Programming 1996: Proceedings of the First
Annual Conference GP-96. MIT Press. Stanford University, California,
USA. pp 21-29.

Angeline, P. J. (1996) Two self-adaptive crossover operators for


genetic programming. Advances in Genetic Programming 2. MIT
Press. Cambridge, MA, USA. pp 89-110. 1996.

Asuncion, A. & Newman, D.J. (2007) UCI Machine Learning


Repository. Irvine, CA: University of California, School of Information
and Computer Science.

33

También podría gustarte