You are on page 1of 2

Sistemas Neuro-Difusos

Boletín de Prácticas: 1
Tema: Diseño de un sistema de optimización
basado en Algoritmos Genéticos
Geovanny Paredes 1, Pedro Urgiles 2
1geovannyparedes@hotmail.com
2
pedrou_o@hotmail.com

I. INTRODUCCIÓN ∑2j=0 (∑2k=0 Matriz [k+jx3]) / 15 + ∑2j=0 (∑2k=0 Matriz [k x 3]) / 15


En el presente boletín de práctica se ha desarrollado un
programa que implementa algoritmos genéticos, para la La función anterior aplicando al programa obtiene el
resolución de un cuadrado mágico de NxN, definiendo conteo de filas y columnas que cumplen con la suma
como cuadrado mágico, aquella matriz en la que la suma requerida.
de sus filas sea igual a la suma de sus columnas.

IV. ESTRUCTURA DE FENOTIPOS Y GENOTIPOS


II. PASOS A SEGUIR EN LA RESOLUCIÓN La estructura de los fenotipos y genotipos para nuestro
Los pasos para desarrollar el programa son: programa es la siguiente:
- Creación de una población inicial Individuo =vector[1..9] con valores mezclados
Genotipo=suma de condiciones cumplidas para cada fila o
- Evaluación correspondiente a la primera columna.
población Para obtener el genotipo aplicamos la función de fitness
- Selección de una segunda población por torneo. anteriormente indicada en la sección III.
- Generación de una tercera población utilizando Como condición inicial se ha generado 24 individuos a
crossover partir de los cuales se va generando nuevas poblaciones más
- Evaluación de la última población generada fuertes, hasta llegar a la solución deseada.
A continuación se indica la estructura de la población
Todos estos pasos tienen su propia función en nuestro inicial.
programa, los cuales se encuentran anidados en un bucle
con la única condición de que si es que en el vector
de genotipos se encuentra con que se llegó a la
máxima evaluación, terminaría con el proceso.
III. FUNCIÓN DE FITNESS
Para la función de fitness, consideramos las
condiciones de evaluación para cada individuo de la
población. En nuestro programa, cada individuo está
constituido por valores de 1 hasta NxN y en el que cada Población inicial
N valores se lo considera como una fila nueva de la
matriz. Luego para evaluar al individuo sumaremos los
valores correspondientes a las filas formadas al igual que
el de las columnas que entre éstas se forman.
La condición de suma para filas y columnas se basa en
la siguiente fórmula: A continuación se muestra una gráfica de las iteraciones
y la evolución de los genotipos para individuo.
Suma=N(N2+1) / 2
Con todas éstas consideraciones llegamos a la siguiente
función de fitness:
comprobado que pasado un cierto número de
repeticiones el resultado no cambia.

V. RESULTADOS FINALES

En la parte final de nuestro programa obtenemos un


En la gráfica anterior se podrá observar la evolución de vector lineal el cual lo acomodaremos en una matriz
parte de las 190 iteraciones en las que convergió nuestro cada N datos según el valor a calcular.
algoritmo, teniendo en cuenta que para cada ejecución
del programa el número de iteraciones varia.

7 4 4

1 9 5

También podemos observar el comportamiento en estas


7 2 6
10 primeras iteraciones, de los valores correspondientes
a la suma de los genotipos y sus promedios para los 24
individuos.
Matriz final
VI. CONCLUSIONES
En el proceso de la programación se probó con varias
poblaciones iniciales. Primero se probó con 6 individuos,
35 los cuales no fueron suficientes para obtener el resultado
30
25
óptimo. Luego se incrementó la población al doble,
20 observándose que se llegaba a un resultado óptimo pero
Este
15 con un número bastante grande de iteraciones. Al final
10
5 se duplicó otra vez la población, mejorando el algoritmo.
0 El proceso carece de mutación por lo que se concluye
que se podría mejorar aun más el trabajo si se aplicara
0

0
18

18

18

Ite n 18

18

19

este método.
n

n
cio

cio

cio

cio

cio

cio

También pudimos observar que el número de


ra

ra

ra

ra

ra

ra
Ite

Ite

Ite

Ite

Ite

iteraciones para la ejecución del programa variaba


Grafica de evolución del algoritmo y su aptitud notablemente por lo que al generar los individuos, se
media utilizó una pila generada randómicamente la misma que
estaría basada en la probabilidad de generar números.

En la gráfica de la evolución hemos considerado los


últimos 10 datos para comprobar la convergencia. Para
fines de lograr un resultado se ha considerado cada 30
iteraciones, volver a generar una nueva población en
caso de no converger a una solución, ya que se ha

You might also like