Está en la página 1de 12

Mariana Quiroz Becerril Grupo 2

Universidad Autónoma del Estado de México


Licenciatura en Bioingeniería Médica
Tratamiento de Señales Inspirado en la Naturaleza
Examen Primer Parcial
“Problema de las 8 Reinas resuelto con Algoritmos Genéticos”
Algoritmos Genéticos
Planteamiento del problema
El problema consiste en ubicar 8 reinas en un tablero de
ajedrez de 64 casillas sin que ninguna de ellas amenace a
cualquier otra.

Procedimiento de Algoritmos Genéticos


1. Definición de hiperparámetros
Tamaño de la población: Número de individuos de componen la población, en este
caso, numero de tableros de ajedrez
Numero de generaciones: Define cuantas poblaciones van a generarse (cuantas veces
se repite el programa)
Probabilidad de cruza: Define que individuos tendrá la posibilidad de ser padres Si el
individuo tiene una probabilidad menor a esta, se convertirá en un padre
Probabilidad de muta: Define que individuos tendrá la posibilidad de mutar
2. Generación de una población inicial aleatoria
▪ Cada tablero de ajedrez representa un individuo de la población, por lo que la
población es de 3 dimensiones → Numero de filas del tablero x Número de
columnas del tablero x Tamaño de la población (número de tableros o
individuos)

Numero de filas Tamaño de la


del tablero población (número
de individuos)

Numero de columnas del tablero

▪ Generación de un individuo o tablero de ajedrez: Se utilizó una representación


binaria para cada tablero de ajedrez en donde un 1 representaba una reina
Mariana Quiroz Becerril Grupo 2

dejando las casillas restantes vacías, es decir con un 0. Para la asignación de


reinas se tomó en cuenta que cada fila del tablero o matriz debía contener
únicamente una reina
▪ Cada fila del tablero de ajedrez se consideró como un gen por lo que el
proceso de cruce y mutación se realizaron acorde a las filas (no se realizó
ningún movimiento por columnas ni diagonales)

0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0 Representación binaria
0 0 1 0 0 0 0 0 de un individuo (tablero
0 0 0 0 1 0 0 0 de ajedrez)
0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1

▪ La población inicial se compone de muchos tableros que cumplen con las


características descritas

3. Diseño de función de aptitud o fitness


Evaluación por medio de penalizaciones→ Se penalizó cada tablero o individuo para la
obtención de su fitness según lo siguiente:
▪ Penalización por columnas: Si hay más de una reina en la columna → 1
penalización, si no hay ninguna reina en la columna → 1 penalización. Al final
se realizó una suma de las penalizaciones de todas las columnas del tablero.

0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
Penalizaciones
por columnas = 1 1 0 1 0 0 1 1 =5

▪ Penalización por diagonales en ambas direcciones


Penalización de diagonales hacia abajo (o negativas): se inicia por la diagonal
principal, si hay más de una reina en esa diagonal → 1 penalización; en las diagonales
no importa si no hay ninguna reina en ellas. Al final se realiza la suma de las
penalizaciones de todas las columnas hacia abajo
Mariana Quiroz Becerril Grupo 2

Ejemplo de 0 0 0 0 0 0 0 1
diagonal 0 0 0 0 0 1 0 0 0
hacia abajo o 0 0 1 0 0 0 0 0 0
negativa 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 Numero de
0 0 0 0 0 0 0 1 0 penalizaciones por
diagonales hacia
0 0 0 0 0 0 0 1 abajo = 1

Penalización de diagonales hacia arriba (o inversas): para realizar estas


penalizaciones se giró la matriz hacia la derecha para acomodarla e invertirla y poder
revisar sus diagonales inversas como si fueran diagonales hacia abajo, si hay más de
una reina en la diagonal → 1 penalización, suma de todas las penalizaciones de las
diagonales hacia arriba
Se realizó la suma de las penalizaciones de las diagonales en ambas direcciones para
calcular el total de penalizaciones correspondientes a las diagonales

0 0 0 0 0 0 0 1
Ejemplo de 0 0 0 0 0 1 0 0
diagonal 0 0 1 0 0 0 0 0 Giro de la matriz
hacia arriba o 0 0 0 0 1 0 0 0 hacia la derecha
inversa 0 0 0 0 0 0 0 1 → Cambio de la
1 0 0 0 0 0 0 0 diagonal hacia
1 0 0 0 0 0 0 0 arriba por
0 0 0 0 0 0 0 1 diagonal hacia
abajo

1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0
0 0 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0 0 Numero de
0 0 0 0 0 0 0 1 0 penalizaciones por
0 0 0 0 0 0 0 1 0 diagonales hacia
1 0 0 0 0 0 0 0 1 arriba = 2

0 0 0 0 0 0 0 1

Penalizaciones por diagonales = Penalizaciones por diagonales hacia abajo +


penalizaciones por diagonales hacia arriba = 2
Fitness de cada individuo = - (Penalizaciones por columna + penalizaciones por
diagonales)
(Se incluye el signo menos debido a que es un algoritmo que maximiza)
Mariana Quiroz Becerril Grupo 2

Fitness de la población = promedio de los fitness de todos los individuos


4. Proceso de selección
Método de la ruleta
▪ Se genera una ruleta utilizando los rangos de probabilidad (suma acumulada
de las probabilidades) que tiene cada individuo dependiendo de su fitness →
entre mayor sea su fitness, mayor espacio ocupa en la ruleta y por lo tanto
tendrá mayor probabilidad de ser seleccionados

Probabilidad de cada fitness = fitness / suma total de fitness

0.31 0.12 0.14 0.25 0.36 0.07 0.56 0.16 0.27 0.32 0.13

0 a x1 x1 a x2 x2-x3 x3-x4 x4-x5 x5-x6 x6-x7 x7-x8 x8-x9 x9-1

Rangos de la ruleta
dependiendo del fitness

▪ Se gira la ruleta n veces (donde n es igual al tamaño de la población) para la


selección de los mejores individuos de acuerdo con su fitness y por lo tanto de
los posibles padres de la población
▪ Se genera una copia de la población actual únicamente con los individuos
posibles seleccionados en la ruleta

5. Proceso de cruza
▪ Selección de padres de acuerdo con la probabilidad de cruza → los individuos
que tenga una probabilidad menor a la probabilidad de cruza se convertirán en
padres por lo que se genera una probabilidad aleatoria a cada individuo de la
población seleccionada
▪ Se realizó una validación para que el numero resultante de padres fuera par

Si consideramos una
probabilidad de cruza
de 0.5

0.12 0.36 0.86 0.54 0.23 0.21 0.66

Se obtienen 4 posibles padres de la población


Mariana Quiroz Becerril Grupo 2

▪ Cruce por un punto → Generación de una posición aleatoria entre 2 y 6 a partir


de la cual se realizará la cruza (punto de cruza), este punto divide al individuo
en 2 partes y define que parte de cada padre formará parte de cada hijo

p1 p1 p1 p1 p1 p2 p2 p2 p2 p2
Punto
p1 p1 p1 p1 p1 p2 p2 p2 p2 p2
de
p1 p1 p1 p1 p1 p2 p2 p2 p2 p2 cruza

p1 p1 p1 p1 p1 p2 p2 p2 p2 p2
p1 p1 p1 p1 p1 p2 p2 p2 p2 p2

p1 p1 p1 p1 p1 p2 p2 p2 p2 p2

p1 p1 p1 p1 p1 p2 p2 p2 p2 p2

p2 p2 p2 p2 p2 p1 p1 p1 p1 p1

p2 p2 p2 p2 p2 p1 p1 p1 p1 p1

p2 p2 p2 p2 p2 p1 p1 p1 p1 p1

Hijo 1 Hijo 2

Primer hijo = primera parte del primer padre + segunda parte del segundo padre
Segundo hijo = primera parte del segundo padre + segunda parte del primer
padre
▪ Al final se reemplazan los padres por los hijos obtenidos en el proceso de cruza
en la nueva población

6. Proceso de mutación
Mariana Quiroz Becerril Grupo 2

▪ Se generó una probabilidad aleatoria para cada gen (fila del tablero de
ajedrez), es decir una matriz de dimensiones de Número de filas del tablero x
Tamaño de la población
▪ Selección de que genes se van a mutar a partir de la probabilidad de muta →
genes con una probabilidad menor a la probabilidad de muta se van a mutar
▪ Se crea una matriz con números aleatorios, con dimensiones de número de
filas por el tamaño de población.
▪ Se obtiene en qué posición este valor es menor a la probabilidad de muta
definiendo en que filas del tablero de la matriz (tablero de ajedrez) se realizará
la mutación.
▪ Cambio de valores
0→1
1→0
▪ Se busca la posición donde esté localizado el 1 (es decir, en donde exista una
reina) y se niega, a continuación, en ese mismo renglón se genera una nueva
posición aleatoria que será donde se colocará un 1 (la nueva reina)
asegurando que la nueva posición no sea igual a la anterior.

0 0 0 0 0 0 0 1 Gen para
0 0 0 0 0 1 0 0 mutar
0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1

0 0 0 1 0 0 0 0 Gen mutado
0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1

7. Cálculo del fitness de la nueva población


▪ Se calcula el fitness de la nueva población por medio de penalizaciones por
columnas y diagonales como se describió anteriormente

8. Diseño de un criterio de aceptación de ambas poblaciones

Población actual
Población nueva
Mariana Quiroz Becerril Grupo 2

▪ Selección de los individuos de ambas poblaciones con los mejores fitness, es


decir, los fitness mayores
▪ Se creó un vector de dimensión del doble del tamaño de la población para
incluir los fitness de la población actual y la población nueva
▪ De la posición 1 a la posición del tamaño de la población se asignaron los
fitness de la población nueva y de la posición del tamaño de la población +1 al
final del vector se asignaron los fitness de la población actual

5 98 21 54 63 21 52 49 68 95

Fitness de la nueva población Fitness de la población actual

▪ Se ordenaron los fitness de menor a mayor y se generó un nuevo vector de


dimensión del doble del tamaño de la población para arrastrar las posiciones
de cada fitness de modo que se pudieran conservar sus posiciones originales
en el vector
Vector original

5 98 21 54 63 21 52 49 68 95

Vector ordenado de menor a mayo

5 21 21 49 52 54 63 68 95 98

Vector que arrastra la posición en el ordenamiento

1 3 6 8 7 4 5 9 10 2

▪ Se tomaron las ultimas n posiciones del vector ordenado (donde n es igual al


tamaño de la población) para aceptar los mejores fitness de ambas
poblaciones
Con n=5 → se toman las ultimas posiciones correspondientes a los mejores fitness

5 21 21 49 52 54 63 68 95 98

1 3 6 8 7 4 5 9 10 2

▪ Para realizar la selección de los mejores individuos de cada población de


acuerdo con su fitness se utilizó el vector de posiciones originales para definir
que individuo debe formar parte de la población resultante
▪ Debido a que el vector de posiciones es de dimensión del doble del tamaño de
la población se utilizó una condición para definir que individuos formaban parte
de la población nueva y de la población actual tomando en cuenta la
asignación de los fitness que se realizó al inicio
▪ Si el valor de una de las posiciones seleccionadas (es decir, las n ultimas) era
menor al tamaño de la población se seleccionaba el individuo en esa posición
Mariana Quiroz Becerril Grupo 2

de la población nueva, si de lo contrario, el valor era mayor al tamaño de la


población se seleccionaba el individuo en esa posición menos el tamaño de la
población (debido a que los valores de estas posiciones excedían el tamaño de
la población y debían reajustarse) de la población actual
▪ La población resultante de esta selección contiene a los individuos con los
mejores fitness de ambas poblaciones

Población resultante

1 0 0 0 0 0 0 0
Tablero de ajedrez con fitness =2
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0

9. Prueba con distintos hiperparámetros


Prueba 1
Tampob=100
Numgen=50
Pcruza=0.5
Pmuta=0.1

Corrida 1 2 3 4 5 6 7 8 9 10
Fitness -1.60 -0.98 -1.70 -0.98 -1 -1 -1 -0.990 -0.95 -1.97
Mariana Quiroz Becerril Grupo 2

Media=-1.2170 Varianza=0.1470

Prueba 2
Tampob=50
Numgen=50
Pcruza=0.5
Pmuta=0.1
Corrida 1 2 3 4 5 6 7 8 9 10
Fitness -2.58 -2.72 -2.54 -2.46 -2.74 -2.36 -2.66 -2.58 -2.70 -2.66
Mariana Quiroz Becerril Grupo 2

Media=-2.6000 Varianza=0.0148
No encuentra fitness tan buenos porque las generaciones e iteraciones no le alcanzan,
en los otros los mejores fitness se alcanzan o encuentran después de las 50
iteraciones
No hay convergencia
Prueba 3
Tampob=100
Numgen=20
Pcruza=0.5
Pmuta=0.1

Corrida 1 2 3 4 5 6 7 8 9 10
Fitness -2.38 -2.56 -2.65 -2.77 -2.39 -2.36 -2.59 -2.84 -2.73 -2.82

Media=-2.6090 Varianza=0.0339
Prueba 4
Tampob=100
Numgen=50
Pcruza=0.7
Pmuta=0.1

Corrida 1 2 3 4 5 6 7 8 9 10
Fitness -1 -1.70 -0.93 -1.78 -1.22 -1.44 -1.58 -1.19 -0.99 -1.67
Mariana Quiroz Becerril Grupo 2

Media= -1.3500 Varianza=0.1046

Prueba 5
Tampob=100
Numgen=50
Pcruza=0.1
Pmuta=0.01

Corrida 1 2 3 4 5 6 7 8 9 10
Fitness -0.99 -1 -1.96 -1 -2 -1 -1 -1 -3 -1

Media= -1.13950 Varianza= 0.4846


Mas selectivo se observa mayor estabilidad en el fitness debido a que se producen
menos cambios → menos búsqueda
Mariana Quiroz Becerril Grupo 2

Comparación entre resultados

Conclusiones
Convergencia con 50 iteraciones
En los fitness no se observa que ningún resultado se exactamente 0 debido a que se
trata de la media de los valores de cada individuo, sin embargo esto no significa que el
algoritmo no encuentra ningún individuo con fitness de 0

También podría gustarte