EnunciadoPracticaOptimizacion

Anuncio
METODOS MATEMATICOS EN CIENCIAS DE LA COMPUTACION
PRACTICA I: HEURISTICOS ESTOCASTICOS DE BUSQUEDA
La primera práctica del curso se realizará durante las primeras 7-8 semanas de curso y se deberá
entregar para antes del 1 de mayo del 2002. La práctica se realizará en grupos de dos personas, que se le
deberán notificar a Iñaki Inza.
La práctica consiste básicamente en la implementación-programación de dos algoritmos genéticos
que realicen una búsqueda de la solución óptima para los siguientes problemas:
1- Problema OneMax: es un conocido y simple problema de optimización de una función lineal
que se denota como:
FOneMax ( x)  i 1 xi
n
donde las variables xi son binarias (toman únicamente los valores 0,1). El óptimo global de esta
función se encuentra en el punto (1,1,1,...,1).
2- Problema del Agente Viajero o Traveling Salesman Problem (TSP) expuesto en clase.
Para ambos problemas, se tomará una decisión para los siguientes elementos, básicos para
cualquier algoritmo genético: función de selección de los padres para el cruce, operador de cruce, operador
de mutación, reducción de la población. Esto es, se implementará al menos una función de selección de
padres, una única función de reducción...
La primera población para problema el problema OneMax se generará al azar, dando una
probabilidad uniforme a cada valor en cada variable. Para el TSP, todos los órdenes posibles tendrán una
misma probabilidad de aparición en la población inicial.
La búsqueda parará cuando se llegue a la convergencia: todos los individuos de la población
tengan el mismo valor de la función objetivo. Aún así, si observas que este criterio exige demasiado tiempo
de ejecución, elige otro y hazlo constar en la documentación: número máximo de evaluaciones, número
máximo de generaciones, un número fijo de generaciones sin que aparezca una solución que la mejor
encontrada hasta el momento...
Para el problema OneMax se implementarán dos operadores de cruce y desde la línea de comandos
desde la que se lance la ejecución de la búsqueda se podrán instanciar (dar valor) el tamaño de la población,
número de variables del problema, probabilidad de cruce y probabilidad de mutación.
Para el problema del TSP, desde la línea de comandos desde la que se lance la ejecución se podrán
instanciar el tamaño de la población, probabilidad de cruce y probabilidad de mutación. También se dará
como parámetro de entrada a la ejecución una matriz cuadrada que refleje las distancias entre las ciudades
del problema. Para el problema del TSP se programarán dos operadores de cruce: uno de entre los vistos en
clase y otro propuesto por vosotros, distinto a los de clase.
Durante la ejecución del algoritmo, cuando el algoritmo genético encuentre una solución mejor que
las encontradas hasta el momento, se deberá al menos mostrar en pantalla el valor de su función objetivo y
el número de generación en la que apareció. Mostrad en pantalla cualquier otra cuestión que consideréis
pueda dar información relevante al usuario acerca del desarrollo de la búsqueda en marcha.
Para implementar dichos algoritmos se cuenta con compiladores de distintos lenguajes en la
mayoría de ordenadores de la Facultad: ADA, Java, C y C++. Se podrá realizar la implementación en el
lenguaje que consideréis oportuno.
Aparte de las horas prácticas de clase, en la sala 018 de la planta baja, los lunes, martes y miércoles
hay alumnos colaboradores que mantienen abierta la sala, en la que hay ordenadores con los lenguajes de
programación comentados. Los horarios de apertura de dicha sala aparecen en la puerta de acceso a la
misma.
Para cada problema, mediante el software estadístico SPSS (que se verá a partir de la quinta-sexta
semana de curso), se realizarán tests que recojan la significatividad estadística de las diferencias (en el
valor de la función objetivo de la mejor solución encontrada en la búsqueda y el número de generaciones
para llegar a la convergencia) encontradas en las ejecuciones para distintos valores de las probabilidades
de cruce y mutación y distintos operadores de cruce que estiméis oportuno. Como mínimo, se
experimentará con 8 configuraciones-combinaciones distintas de los tres parámetros expuestos. Para cada
combinación de los parámetros expuestos se lanzarán 10 ejecuciones. Por ejemplo, una combinación podría
ser la siguiente:
(probabilidad de cruce = 0.9; probabilidad de mutación = 0.2; operador de cruce = AX)
Las comparativas se harán parámetro a parámetro, olvidando los demás. Por ejemplo, si hemos trabajado
con probabilidades de cruce 0.5 y 0.9, probabilidades de mutación 0.2 y 0.02, operadores de cruce AX y
PM, tenemos 8 configuraciones-combinaciones distintas de estos tres parámetros. Teniendo en cuenta que
para cada combinación se han lanzado 10 ejecuciones, hay 80 ejecuciones en total, perteneciendo 40 de
ellas a un valor específico de cada parámetro: 40 con probabilidad de cruce 0.5, 40 con probabilidad de
cruce 0.9, 40 con el operador de cruce AX... Así, la comparativa con SPSS se haría:
(probabilidad de cruce 0.5) vs. (probabilidad de cruce 0.9)
(probabilidad de mutación 0.2) vs. (probabilidad de mutación 0.02)
(operador de cruce AX) vs. (operador de cruce PM)
Estas comparativas se realizarán asumiendo como fijos los demás parámetros del algoritmo genético
(tamaño de la población, número de variables del OneMax o matriz de distancias para el TSP, etc.).
No dudéis tomar decisiones para cualquier cuestión que estiméis no esté especificada del todo en la
documentación entregada. Enriqueced la práctica en los aspectos que consideréis oportunos. Estas
decisiones se deberán hacer constar en la documentación a presentar.
La documentación mínima a entregar como resultado de la práctica son las siguientes:

en diskette, tanto los ficheros ejecutables como los ficheros que contienen el código fuente para cada
uno de los problemas;

documento impreso en formato Word que recoja los siguientes aspectos:
 las comparaciones expuestas mediante el software SPSS y discusión-reflexión acerca de los datos
recogidos;
 para las distintas combinaciones de probabilidades de cruce y mutación y operador de cruce se
deberán presentar gráficas y tablas que muestren una evolución de los valores de la función
objetivo respecto al número de generaciones de la búsqueda: basadas en la mejor solución
encontrada en cada generación y/o basadas en la mejor solución encontrada en toda la búsqueda
hasta la generación representada. Las gráficas y tablas mostrarán como mínimo el comportamiento
de la mejor ejecución para cada combinación propuesta;
 explicación de los parámetros de entrada y salida de las principales
funciones-procedimientos del código desarrollado;
 explicación de las diferentes decisiones tomadas durante la implementación (lenguaje de
programación, explicación de los distintos operadores implementados, formato de la matriz de
distancias del TSP, criterio de parada implementado...) de los algoritmos y otras decisiones propias
desarrolladas y que no aparezcan en esta documentación;
 horas de trabajo para el desarrollo del código, ejecuciones y preparación de la documentación.
Toda ampliación de estas cuestiones se tendrá en cuenta a la hora de la evaluación, así como el
desarrollo y/o programación de más cuestiones que las mínimamente requeridas. En caso de problemasdudas en la ejecución del código presentado o en la documentación entregada, se citará lo antes posible
mediante una lista a los grupos para los que así se requiera.
Descargar