IAIC 19-20: Grupos de Prácticas
Práctica I
La siguiente tabla muestra los Grupos de Prácticas asignados para la Parte I de la asignatura. Los alumnos que no aparezcan en esta lista están asignados a la modalidad de Evaluación Continua por Exámenes (el plazo para seleccionar modalidad acabó el Viernes 11 de Octubre de 2019).
Las propuestas de Prácticas para la parte I se pueden encontrar un poco más abajo en esta misma página.
Se recuerda que tras la entrega de la Parte I, los alumnos de esta lista serán distribuidos en nuevos grupos de prácticas para la Parte II.
Grupo | Nombre | Propuesta |
---|---|---|
I.1 | AGUAYO OROZCO, ALVARO | 1 |
ALCANTARA LAGUNA, ALEJANDRO | ||
BAZAN TICSE, KEVIN ALEXANDER | ||
I.2 | BLASCO VAZQUEZ, JAVIER | 2 |
CHAMBER GONZALEZ DE QUEVEDO, ENRIQUE | ||
COMITRE PALACIOS, JOSE JOAQUIN | ||
I.3 | CRESPO FALCON, JOSE CARLOS | 3 |
DAN, GIGI MARCEL | ||
FERNANDEZ CALATAYUD, FERNANDO | ||
I.4 | FERNANDEZ CUEVAS, PLACIDO | 4 |
FRANKFORD, EDUARD | ||
HONORES MURRAY, GUSTAVO ARIEL | ||
I.5 | MACIAS VELLARINO, JUAN CARLOS | 5 |
MARTÍN AUDÉN, ALEJANDRO | ||
MUNOZ, ELIAS | ||
I.6 | OTERO GONZALEZ, ALBERTO | 6 |
PERALVO GERMAN, MARCOS STEPHAN | ||
PEREZ GOMEZ, ANTONIO | ||
I.7 | PEREZ LOPEZ, SERGIO | 7 |
PHILIBERT, JULIETTE | ||
PIEDRA VENEGAS, ENRIQUE | ||
I.8 | PUERTO BORREGUERO, ANTONIO JOSE | 8 |
RUIZ JURADO, PABLO | ||
RUIZ MONGE, JOSE LUIS | ||
CHURA PASCUAL, ALBARO |
Prácticas Propuestas Parte I
- Hacer un jugador de Othello/Reversi (reglas aquí).
- Hacer un jugador de Damas (reglas aquí).
- Hacer un jugador de 4 en Línea (reglas aquí).
- Hacer un jugador de Mancala (reglas aquí).
- Hacer un jugador de Ranitas (reglas aquí).
- Hacer un jugador de 4 en Línea múltiple (reglas aquí).
- Hacer un jugador de Asimilación (reglas aquí).
- Hacer un jugador de Gran Avance (reglas aquí).
Para ello, las fases que se evaluarán son:
- Dar una representación formal del juego: estados y movimientos del juego, explicitando estados y movimientos válidos, y cómo los movimientos cambian los estados. Esta representación debe ser dada en NetLogo.
- Hacer una implementación visual del juego para dos jugadores humanos. Esta implementación debe contemplar la representación formal dada en 1, y las restricciones impuestas por las reglas del juego. Además, debería estar preparada para el paso siguiente.
- Hacer una implementación de un jugador automático por medio de MCTS o Minimax.
- Conectar el jugador automático a la implementación anterior.
Práctica II
La siguiente tabla muestra los Grupos de Prácticas asignados para la Parte II de la asignatura. Las propuestas de Prácticas para la parte II se pueden encontrar un poco más abajo en esta misma página.
Grupo | Nombre | Propuesta |
---|---|---|
II.1 | AGUAYO OROZCO, ALVARO | 1 |
BLASCO VAZQUEZ, JAVIER | ||
CRESPO FALCON, JOSE CARLOS | ||
II.2 | FERNANDEZ CUEVAS, PLACIDO | 2 |
MACIAS VELLARINO, JUAN CARLOS | ||
OTERO GONZALEZ, ALBERTO | ||
II.3 | PEREZ LOPEZ, SERGIO | 3 |
PUERTO BORREGUERO, ANTONIO JOSE | ||
PHILIBERT, JULIETTE | ||
II.4 | CHAMBER GONZALEZ DE QUEVEDO, ENRIQUE | 4 |
DAN, GIGI MARCEL | ||
FRANKFORD, EDUARD | ||
II.5 | CHURA PASCUAL, ALBARO | 5 |
PERALVO GERMAN, MARCOS STEPHAN | ||
ALCANTARA LAGUNA, ALEJANDRO | ||
II.6 | RUIZ JURADO, PABLO | 6 |
BAZAN TICSE, KEVIN ALEXANDER | ||
COMITRE PALACIOS, JOSE JOAQUIN | ||
II.7 | FERNANDEZ CALATAYUD, FERNANDO | 7 |
HONORES MURRAY, GUSTAVO ARIEL | ||
MUNOZ, ELIAS | ||
II.8 | MARTÍN AUDÉN, ALEJANDRO | 8 |
PIEDRA VENEGAS, ENRIQUE | ||
RUIZ MONGE, JOSE LUIS |
Prácticas Propuestas Parte II
En todos los trabajos se espera un documento (en markdown, formato que usa NetLogo para la edición de la pestaña de información de los modelos) que exponga la teoría y fundamentos del modelo o variante que se ha implementado. Para la realización de este documento se puede hacer uso de uno de los muchos editores gratuitos de Markdown que hay disponibles (por ejemplo, de Typora).
Para aquellos trabajos en los que el resultado sea una librería de optimización puede usarse la extensión Landscapes de NetLogo, que proporciona muchas funciones interesantes para ser optimizadas como benchmark.
Los trabajos que se proponen para cada uno de los grupos son (el índice del trabajo corresponde con el grupo asociado):
-
Extender la librería de Algoritmos Genéticos que se proporciona en el curso añadiendo métodos adicionales de cruzamiento, mutación y selección. Puede seguirse como guía inicial la referencia de la Wikipedia que trata este tipo de opciones (aunque se valorará la búsqueda de otras alternativas):
- Extender la librería de Algoritmos Genéticos que se proporciona en el curso añadiendo la posibilidad de trabajar con representaciones continuas. Para ello, se puede seguir la aproximación que se da en el siguiente documento.
- Usando la librería de Algoritmos Genéticos que se ha visto en el curso, dar aproximaciones a posibles soluciones alternativas de TSP. Se puede empezar con la aproximación que se da en el siguiente documento, pero también sería deseable que se hiciera un recorrido por la implementación de otras soluciones disponibles que se encuentren en la literatura (como este).
- Implementar algún método de PSO Discreto (donde el espacio de búsqueda en una o más de las variables no es un intervalo, sino un conjunto de opciones) Se puede seguir la aproximación que se da en el siguiente documento.
- Implementar los siguientes métodos de PSO: BPSO, NBPSO, INBPSO. Se puede seguir la aproximación que se da en el siguiente documento.
- Extender la librería PSO vista en clase para reconocer variantes. Por ejemplo: conjuntos de partículas divididas en familias (cada partícula solo considera el óptimo global de su familia, no el del grupo completo), geométricos (cada partícula solo considera el óptimo global de entre aquellas partículas que están dentro de un determinado radio, que es un parámetro más del sistema), funciones dinámicas (la función a optimizar cambia en el tiempo, y por tanto el óptimo a buscar puede cambiar de localización, las partículas deben adaptarse a este cambio y ser capaces de seguirlo en el tiempo), estrategias de no acumulación (para que las partículas no exploren el mismo punto, por ejemplo, cuando acaban en torno al óptimo encontrado), etc...
- Partiendo de la solución proporcionada en clase, crear una librería para resolver Problemas de Satisfacción de Restricciones por medio de Sistemas de Hormigas. Se puede seguir la aproximación que se da en la unidad del curso que trata ese problema y en el siguiente documento.
- Combinar las diversas librerías que se han visto en este bloque del curso para optimizar el comportamiento de diversos modelos de la librería de NetLogo. Para ello, se deben seleccionar modelos que se consideren interesantes, definir qué comportamiento o salida se quiere optimizar, y hacer uso de las librerías adecuadas para conseguir el conjunto de parámetros adecuado para conseguir esa optimización. Se recomienda en este caso echar un vistazo a la librería LevelSpace de NetLogo.
Práctica III
La siguiente tabla muestra los Grupos de Prácticas asignados para la Parte III de la asignatura. Las propuestas de Prácticas para la parte II se pueden encontrar un poco más abajo en esta misma página (este viernes).
Grupo | Nombre | Propuesta |
---|---|---|
III.1 | AGUAYO OROZCO, ALVARO | 1 |
FERNANDEZ CUEVAS, PLACIDO | ||
PEREZ LOPEZ, SERGIO | ||
III.2 | CHAMBER GONZALEZ DE QUEVEDO, ENRIQUE | 2 |
MARTÍN AUDÉN, ALEJANDRO | ||
RUIZ JURADO, PABLO | ||
III.3 | FERNANDEZ CALATAYUD, FERNANDO | 3 |
CHURA PASCUAL, ALBARO | ||
BLASCO VAZQUEZ, JAVIER | ||
III.4 | MACIAS VELLARINO, JUAN CARLOS | 4 |
PUERTO BORREGUERO, ANTONIO JOSE | ||
DAN , GIGI MARCEL | ||
III.5 | PERALVO GERMAN, MARCOS STEPHAN | 5 |
BAZAN TICSE, KEVIN ALEXANDER | ||
HONORES MURRAY, GUSTAVO ARIEL | ||
III.6 | PIEDRA VENEGAS, ENRIQUE | 6 |
CRESPO FALCON, JOSE CARLOS | ||
OTERO GONZALEZ, ALBERTO | ||
III.7 | ALCANTARA LAGUNA, ALEJANDRO | 7 |
FRANKFORD , EDUARD | ||
PHILIBERT , JULIETTE | ||
III.8 | COMITRE PALACIOS, JOSE JOAQUIN | 8 |
MUNOZ , ELIAS | ||
RUIZ MONGE, JOSE LUIS |
Prácticas Propuestas Parte III
En todos los trabajos se espera un documento (en markdown, formato que usa NetLogo para la edición de la pestaña de información de los modelos) que exponga la teoría y fundamentos del modelo o variante que se ha implementado. Para la realización de este documento se puede hacer uso de uno de los muchos editores gratuitos de Markdown que hay disponibles (por ejemplo, de Typora).
Los trabajos que se proponen para cada uno de los grupos son (el índice del trabajo corresponde con el grupo asociado):
- El algoritmo K-NN presenta el problema de que requiere mucha memoria y tiempo de ejecución porque hay que almacenar permanentemente todos los datos que forman el espacio de ejemplos con el que se trabaja. Sin embargo, es muy probable que muchas de esas muestras no sean necesarias/determinantes para la clasificación, ya que su información es redundante con las otras existentes. Con el fin de reducir este problema, existen algunas variantes que tienen como objetivo obtener clasificadores similares a los originales, pero reduciendo el tamaño del dataset original:
- Condensación: Dado un orden en los datos de entrada, para cada ejemplo se clasifica por medio de K-NN haciendo uso únicamente de los datos anteriores según el orden dado (es decir, el dato $x_{n+1}$ se clasifica usando K-NN con $\{x_1,\dots,x_n\}$. Si la clasificación obtenida coincide con la real, ese ejemplo se elimina de los datos, si no, permanece. Comprueba que depende del orden dado a los datos y, además, que tiene el problema de conservar los datos que introducen ruido al sistema.
- Reducción: Se comienza con el conjunto completo de datos, y se eliminan aquellos que no afectan a la clasificación del resto de datos de entrada (en contra de la condensación anterior, es capaz de eliminar las muestras que producen ruido, y guarda aquellas que son críticas para la clasificación).
Implementa las variantes anteriores y acompáñalas de comparaciones sobre datasets específicos en los que se vea claramente su forma de trabajar.
- Implementa el algoritmo de clustering llamado Affinity Propagation.
- Modifica la librería ID3 para crear una variante que sea capaz de trabajar con atributos numéricos por medio de la aplicación previa de algoritmos de clustering a esos atributos. Es decir, se aplica el algoritmo de clustering a la parte numérica de los datos, y se sustituyen los atributos numéricos por el identificador del cluster al que pertenecen (que ya es una variable categórica). Esta tarea se puede hacer para cada atributo por separado (estarías haciendo cluster 1D), o considerando varios atributos a la vez (sería N-dimensional). Se recomienda usar varios de los algoritmos de clustering vistos en el curso. Añadir, además, las funciones necesarias para que calcule la matriz de confusión del modelo obtenido sobre un conjunto de test que se le pase.
- Un problema que tiene el algoritmo ID3/C4.5 tal y como lo hemos visto es que puede producirse un sobreajuste ya que termina realiza el árbol más completo posible con los datos disponibles. Modifica el algoritmo visto en clase para que construya árboles de decisión aproximados. Para ello, haz que la construcción del árbol dependa de los parámetros siguientes (busca en la literatura si hay más opciones): un parámetro que indique el tamaño mínimo de los conjuntos de datos para que se consideren directamente hojas, otro parámetro que establezca una profundidad máxima en el árbol construido (una vez alcanzada esa profundidad, el algoritmo considera que los nodos alcanzados son hojas y da una respuesta por mayoría). En este caso, una opción interesante sería que la salida del árbol ya no sea una clasificación concreta, sino la probabilidad de que sea de una clase u otra (un vector de probabilidades). Añadir, además, las funciones necesarias para que calcule la matriz de confusión del modelo obtenido sobre un conjunto de test que se le pase.
- Utiliza SOM y los otros métodos de clustering vistos en clase (K-medias, DBSCAN,... ) para hacer un análisis de las agrupaciones que se pueden conseguir sobre el dataset optdigits (que contiene imágenes reducidas, como mapas de grises, de dígitos escritos a mano). El objetivo es ver si estos algoritmos son capaces de agrupar los dígitos del dataset de forma que cada cluster contenga las imágenes asociadas al mismo dígito. Utiliza la misma idea para dar agrupaciones de otros conjuntos de datos clasificados y comprobar si los algoritmos de clustering reconocen bien las clases presentes.
- Implementa el algoritmo Growing Neural Gas (capítulo 1 de este trabajo), y crea conjuntos de datos donde se pueda poner a prueba la fiabilidad del algoritmo desarrollado.
Disponemos de un robot con un brazo con 3 grados de libertad (es decir, 3 sectores) y un cabezal que se mueve en 2D tal y como muestra la figura. Ajustando los ángulos $\theta_1$, $\theta_2$ y $\theta_3$ (por ejemplo, por medio de servo-motores) el robot puede colocar su cabezalen diversos puntos del plano.
- Entrena una red neuronal que sea capaz de aprender la cinemática inversa del robot, es decir, dadas las coordenadas del cabezal, $(x,y)$, como entrada, la red debe devolver los correspondientes ángulos $(\theta_1,\theta_2,\theta_3)$ que le permitan alcanzar ese punto.
A partir de esta red construye un procedimiento para que el robot pueda desplazar su cabeza de forma eficiente entre dos puntos cualesquiera del plano.
- Si hubiera zonas del plano por las que el robot no puede cruzar (obstáculos verticales que le impiden que ninguno de los sectores del brazo pase por ellos), da un procedimiento para que el robot sea capaz de hacer la misma tarea moviendo su cabeza entre zonas permitidas.
- Reproducir en la medida de lo posible Neural Network Playground con NetLogo y la librería ANN.