Plataforma de aprendizaje experiencial para algoritmos genéticos

Descripción

Este proyecto ha producido material para el aprendizaje experiencial en las asignaturas de Inteligencia Artificial (asignatura obligatoria de segundo curso en los Grados de Ingeniería del Software, Ingeniería de Computadores e Ingeniería de Sistemas), Agentes Inteligentes (optativa en estos mismos grados) y Tendencias en Inteligencia Artificial, obligatoria en el Máster Universitario en Ciencias y Tecnologías de la Computación.

Dentro de estas asignaturas, uno de los temas tratados es el de la computación evolutiva. Esta técnica se considera actualmente una de las de mayor utilidad para optimización de sistemas. Se impartieron los conocimientos teóricos de este tipo de técnicas en clase magistral, y posteriormente se realizaron unas sesiones piloto de prácticas para la adquisición de estos conocimientos, a través de la implementación real y la experimentación, utilizando el material generado por este proyecto.

Aunque el área temática básica de este proyecto es el aprendizaje experiencial, también está muy relacionado con el concepto de Aula Invertida, ya que ha permitido que los estudiantes estudiasen en casa los
fundamentos y funcionamiento básico de un sistema basado en Computación Evolutiva para que después en el laboratorio y en presencia del profesor se experimentara con aplicaciones reales de los mismos.

En resumen, el objetivo de este proyecto ha sido adaptar SALGA para la resolución de una colección de casos de uso específicos para el aprendizaje experiencial, junto con la documentación necesaria para que los estudiantes pudieran experimentar en problemas reales o cuasi-reales.

Material generado

El director del proyecto desarrolló SALGA (System for Automatic Learning based in Genetics Algorithms), una aplicación diseñada para facilitar la utilización y aprendizaje de algoritmos genéticos. Representa gráficamente la evolución, lo cual es muy adecuado para cuestiones didácticas. Su manual también se actualizó para este proyecto y puede consultarse aquí.

Los problemas básicos son aproximaciones didácticas:

  • Cifras y letras: encontrar la solución al conocido problema del concurso televisivo para el caso de las
    cifras: dada una lista de números, encontrar la mejor combinación de operaciones para aproximarse a
    otro número dado.
  • Laberinto: encontrar la salida de un laberinto en el menor número de pasos.
  • Ajuste de polinomios: ajustar los coeficientes de un polinomio para que aproxime un conjunto de
    valores dado.
  • Viajante de comercio unidimensional: encontrar el orden adecuado de visita de ciudades para que el recorrido total sea lo más corto posible, en un mundo unidimensional.
  • Viajante de comercio bidimensional: similar al problema unidimensional, pero siendo una aproximación más real, en un plano.
  • Cálculo del mínimo de una función: encontrar el valor mínimo de una función dentro de un rango.

Los problemas avanzados están pensados para mostrar la aplicabilidad de estos métodos a problemas reales. Se les suministra la solución completa a los alumnos pero pueden experimentar modificando partes del sistema y parámetros de configuración para ver cómo afectan al proceso de cálculo
de la solución.

  • Ajuste de controladores PID: encontrar los parámetros de ajuste de un controlador PID para que su
    error sea mínimo.
  • Optimización de horarios de clase: calcular el horario óptimo que cumple una serie de restricciones.
  • Selección de productos para compras: elegir un conjunto de compras navideñas con un presupuesto
    máximo y limitaciones adicionales.
  • Estimación de parámetros de control de diabetes: calcular los parámetros IR (ratio insulina por ración de carbohidratos) y FS (factor de sensibilidad a la insulina), dependientes de cada paciente, que condicionan el cálculo de bolo y de insulina basal para un paciente, a partir de una tabla de datos históricos.

El sistema permite su uso en tres niveles de especialización:

  1. Cargar ejemplos pre-programados y ejecutar el sistema para comprobar el proceso de búsqueda de
    soluciones, pudiendo modificar de modo interactivo los parámetros de los algoritmos y comprobando
    cómo afectan al proceso de búsqueda de la solución.
  2. Modificar los ejemplos pre-programados para conseguir nuevos objetivos de la optimización.
  3. Programar componentes para otros problemas diferentes a los que se suministran con el sistema.

DESCARGAR SOFTWARE SALGA CON EJEMPLOS

Actividades realizadas

Durante la primera sesión de prácticas (2 horas), los alumnos probaron con SALGA los scripts de cifras y letras, mínimo de una función, ajuste de polinomios y viajante de comercio unidimensional; modificaron los parámetros de mutación, entrecruzamiento o elitismo y observaron, como consecuencia, cambios en el aprendizaje del sistema. Finalmente, los alumnos comenzaron a cambiar la función de calidad del código fuente de regalos.py. En la siguiente sesión (2 horas), se profundizó en los problemas reales. Quienes terminaron el fitness de regalos.py, comenzaron a modificar horarios.py. Estos dos problemas son interesantes, pues son problemas reales en los que la función de calidad se define con intereses en conflicto.

Las actividades realizadas se apoyaron en unas guías de prácticas especificas para cada problema.

DESCARGAR GUÍAS DE PRÁCTICAS  Y TEST

Resultados

En la última sesión los alumnos realizaron un examen tipo test y una encuesta anónima de satisfacción.

  • La calificación media del examen: 8.9
  • El fitness modificado de regalos.py lo entregaron correctamente el 71% de los alumnos.
  • El fitness de horarios.py, que entrañaba mayor dificultad, lo modificaron correctamente el 43% de los alumnos.

Resultados de la encuesta de satisfacción

Debían contestar en una escala del 1 al 7, donde 1 es totalmente negativo y 7 totalmente positivo a las siguientes preguntas:

Pregunta Media Mediana
¿Te ha sido útil la práctica piloto para entender mejor los Algoritmos Genéticos? 5.62 6
¿Te ha sido útil la práctica para aumentar tu interés por la Inteligencia Artificial? 5.43 5
¿Crees que sería interesante enfocar toda la asignatura de Inteligencia Artificial de esta manera? 5.48 6
¿La herramienta suministrada (SALGA) es útil para la comprensión de la materia de Algoritmos Genéticos? 5.19 5
¿Crees que gracias a esta práctica serías capaz de afrontar la solución de un problema real? 4.86 5
¿Crees que la práctica es adecuada para la asignatura de Inteligencia Artificial? 6.14 6
¿Crees que la duración de la práctica es adecuada? 5.05 5
¿Repetirías la experiencia? 5.86 6
¿Recomendarías esta práctica a tus compañeros del próximo curso? 6.14 7

La última pregunta era de respuesta libre: “Indica qué aspectos mejorarías en las prácticas”. Salvo el 19% de los alumnos, que pidieron que durasen más las prácticas, ninguna respuesta fue común a todos. Se tomarán todas en cuenta para siguientes sesiones.

Comments are closed.