next up previous contents
Next: Función real de dos Up: Resolución de Problemas Previous: Batería de Simulaciones   Índice General

Función real multimodal de una variable

El primer problema, propuesto por Riolo en [#!Riolo92!#], consiste en la maximización de la siguiente función:
$\displaystyle f(x) = x + \vert sin(32 \pi x)\vert$     (5.1)

donde $x \in [0 \ldots 1]$.

Este primer problema se estudió a fondo en el segundo capítulo de esta memoria, en la sección [*], donde se resolvió de forma secuencial utilizando un programa desarrollado usando la biblioteca OE, por lo que no entraremos en detalles acerca de la función a optimizar.


Para resolver este problema se ha desarrollado un programa, utilizando la biblioteca OEP, lo cual requiere definir la clase de los individuos, programar la función de evaluación, y elegir los objetos transformadores (operadores genéticos), selectores, terminadores, y el tipo de algoritmo que se utilizará.

Como algoritmo principal del programa se eligió un algoritmo genético simple (clase eoSGA), que básicamente lo que hace es el bucle de un AG, aplicando selección, reproducción/mutación y reemplazo.

La clase a la que pertenecen los individuos es eoBin, lo cual significa que los individuos serán cadenas de bits (como en un AG).

Como operadores de transformación se ha hecho uso de los operadores de mutación (eoBinMutation) y de cruce (eoBinCrossover).

La condición de parada del programa se estableció mediante el uso de un terminador (clase eoGenContinue) que controla el número de iteraciones que se harán.

Por último, la función de evaluación viene dada por la ecuación [*], de forma que, implementando dicha función, como una clase descendiente de eoEvalFunc (la que define la interfaz de cualquier función evaluadora) ya tendremos el programa listo para utilizarlo.


En las tablas [*] y [*] podemos ver los resultados obtenidos al resolver este problema utilizando las versiones secuencial y paralelas (con las diferentes estrategias de migración) del programa desarrollado.


Tabla: Resultados (media y desviación estándard) para el problema de Riolo utilizando la versión secuencial del programa desarrollado.
p=100 / g=100 Tiempo
1.973186 $\pm$ 0.015203 0.21 $\pm$ 0.02
p=400 / g=100 Tiempo
1.984356 $\pm$ 0.000097 0.62 $\pm$ 0.04
p=800 / g=100 Tiempo
1.984408 $\pm$ 0.000027 1.44 $\pm$ 0.02
p=1600 / g=100 Tiempo
1.98441 $\pm$ 0.000022 4.27 $\pm$ 0.09



Tabla: Resultados (media y desviación estándard) para el problema de Riolo utilizando la versión paralela (con diferentes estrategias de migración) del programa desarrollado.
Migración 4 proc. Tiempo 8 proc. Tiempo 16 proc. Tiempo
Simple 1.976658 $\pm$ 0.016533 0.36 $\pm$ 0.04 1.983644 $\pm$ 0.001347 0.52 $\pm$ 0.04 1.984374 $\pm$ 0.000054 0.79 $\pm$ 0.09
Estrella 1.98441 $\pm$ 0.00002 0.61 $\pm$ 0.02 1.98441 $\pm$ 0.00002 0.76 $\pm$ 0.07 1.98441 $\pm$ 0.00002 1.2 $\pm$ 0.2
Broadcast 1.984402 $\pm$ 0.000025 0.61 $\pm$ 0.07 1.984412 $\pm$ 0.000018 0.8 $\pm$ 0.1 1.984412 $\pm$ 0.000018 1.4 $\pm$ 0.1
Anillo 1.98441 $\pm$ 0.00002 0.61 $\pm$ 0.06 1.98442 0.63 $\pm$ 0.08 1.98442 0.98 $\pm$ 0.07



next up previous contents
Next: Función real de dos Up: Resolución de Problemas Previous: Batería de Simulaciones   Índice General
Francisco Javier Garcia Castellano
2000-12-14