Skip to content

Proyecto 2 la asignatura "Heurística y Optimización" del grado de ingeniería informática, curso 3, cuatrimestre 1. Universidad Carlos III de Madrid.

Notifications You must be signed in to change notification settings

carlosiborra/Bus-Seat-Assignment-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HyO. Práctica 2 por 100451170 y 100451258

Proyecto 2 la asignatura "Heurística y Optimización" del grado de ingeniería informática, curso 3, cuatrimestre 1. Universidad Carlos III de Madrid. <br/><br/>

Requisitos

  • Se recomienda usar Python 3.10.8
  • Se recomienda usar un entorno virtual para instalar las dependencias
  • Instalar las dependencias (en requirements.txt) <br/><br/>

Notas a leer

  • Para entrar en el virtualenv (venv):

    • Windows: venv\Scripts\activate.bat
    • Linux: source venv/bin/activate
    • O simplemente añadir un nuevo terminal en VSCode y seleccionar el entorno virtual.
  • Para instalar las dependencias (una vez dentro del venv):

    • pip install -r requirements.txt
  • Para ver correctamente el color de los comentarios (!, ?, * ...) en el código, instalar la extensión "Better Comments" en VSCode.

  • Para poder ejecutarlo correctamente, debemos ejecutar el archivo desde un Bash (el de git mismamente) (en VSCode, añadir un nuevo terminal y seleccionar bash). Si no, no funcionará correctamente. <br/>De todas maneras, se puede ejecutar desde Linux (recomendado).<br/> Imágen de ejemplo de ejecución (con el comando sh ./parte-1/code/CSP-calls.sh):<br/> 1669374620519 <br/><br/>

TODO's

Parte 1 - TODO's

  • Crear el repositorio
  • Crear el README.md
  • Crear el .gitignore
  • Crear el venv
  • Crear el requirements.txt
  • Externalizar las funciones
  • Crear la restricción de los hermanos
  • Crear la restricción de los hermanos
  • Crear la función write al archivo de salida
  • Sacar 3 soluciones DISTINTAS y ALEATORIAS
  • Crear el archivo .sh para ejecutar el código
  • Eliminar variables (listas) no usadas
  • CREAR 15 TESTS ESPECÍFICOS, CHECK BOUNDARIES !!
  • SACAR TODO DE LA CARPETA CODE, REORDENAR !! <br/>

Parte 2 - TODO's

  • Eliminar duplicados
  • Añadir las funciones externas necesarias para que funcione A*
  • Añadir cola_total sacado del resultado de la parte 1
  • Crear heuríticas nuevas, más eficientes; estaría bien que fueran mínimo 3
    • Crear heurística 1
    • Crear heurística 2
    • Crear heurística 3
  • Exportar el resultado de la parte 2
    • Estadísticas
    • Resultados
  • CREAR 15 TESTS ESPECÍFICOS, CHECK BOUNDARY VALUES !!
  • Automatizar la comprobación de la validez de las soluciones, costes y heurísticas
  • Comentar mejor el A* <br/><br/>

Dudas a responder

Parte 1 - Dudas

  • ¿Se debe seguir de forma estricta la distribución de los ficheros?
  • ¿Se puede usar el bus con posición vertical? Es más eficiente que el horizontal (que aparece en el pdf).
  • ¿Es necesario usar X, C y R's en las estructuras de las tuplas?
  • ¿Cuentan las puertas y el chofer como posiciones del bus? (de la misma forma que el pasillo no lo hace)
  • ¿Se han de crear listas externas o es irrelevante, tema de velocidad, optimización...?
  • ¿Afectan las pertas a los alumnos conflictivos (entre ciclo 1 y 2)? o ¿siguen tienendo que dejar espacio con otro conflictivos sin contar las puertas?
  • ¿Se puede usar el formato de path: python ./parte-1/code/CSPCargaBUS.py ./parte-1/CSP-tests/alumnos00?
  • ¿Ha de ser la primera solución aleatoria también o la primera que se lanza? Ahora mismo los 3 resultados son aleatorios.
  • Tamaño y longitud de los tests, complejidad, etc.
  • Forma de exportar los resultados
  • ¿Si hay un alumno de movilidad reducida en 2, puede sentarse otro en 3? <br/>

Parte 2 - Dudas

  • ¿El formato de los test debe ser las soluciones anteriores, con el num total y las aleatorias?
  • Si un alumno tiene delante un conflictivo y encima este tiene menor id, ¿se multiplica x4?
  • Se coge como archivo test un predet. o uno de la parte 1?
  • Resto de dudas no formuladas ya resultas
  • Si no se encuentra solución, ¿se deben exportar las estadísticas? <br/><br/>

About

Proyecto 2 la asignatura "Heurística y Optimización" del grado de ingeniería informática, curso 3, cuatrimestre 1. Universidad Carlos III de Madrid.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages