Evaluando propuestas

Algoritmo para generación automática de horarios académicos

Publicado el 27 Septiembre, 2019 en Programación y Tecnología

Sobre este proyecto

Abierto

Estoy desarrollando un proyecto de Gestión de Horarios Académicos de una Universidad, requiero que se desarrolle un algoritmo tipo memético o tabu  para que genere horarios académicos óptimos (que generare varias propuestas de horarios), en base a cantidad de alumnos, cursos que deben aperturarse,  capacidad de alumnado en aulas, disponibilidad horaria de las aulas , disponibilidad horaria de docentes y otras reglas de negocio. No requiero que se desarrolle un panel de configuración, toda las reglas de negocio pueden ser configuradas en una tabla de la BD. Les dejo un par de ejemplo para que se entienda mejor lo que requiero:

Ejemplo 1: Si tengo la apertura de un curso "A" (el curso está configurado a dictarse 2 horas a la semana y que se dicte solo en las mañanas entre las 07:00am a 12:00pm), y este curso puede ser dictado por 2 profesores: profesor1 y profesor2, ambos tienen disponibilidad horaria (08:00am-10:00am o están en rango de lo que demanda el curso(07:00am a 12:00pm)), pero el profesor1 es nombrado, por lo que tiene más prioridad, el profesor2 es contratado tiene menos prioridad de asignación, entonces el horario del curso "A" debe ser asignado al  profesor1.





Ejemplo 2: La demanda de alumnos para el Curso "B" es de 65 alumnos, el curso es de Teoría, por lo que el Aula a asignar debe ser de tipo Aula (existen otros tipos de aula: laboratorio, modulo, etc), el curso no tiene configurado un rango de horario específico (quiere decir que puede dictarse en cualquier horario y día) y el Curso "B" puede ser dictado por el profesor3 y profesor4, ambos profesores tienen disponibilidad horaria, pero el sistema no encuentra un aula disponible para 65 alumnos, entonces el sistema debe crear 2 horarios para el curso y con 2 Aulas de capacidad de 30 o 40 alumnos (indicador de capacidad de aula), pueden ser la misma aula pero en diferentes horarios. Si el profesor3 puede dictar en horarios distintos se le asignará el curso, caso contrario el curso puede ser asignado a los 2 profesores.

Se aceptan sugerencias, definitivamente tiene que existir una tabla de configuración de reglas y prioridades de asignación por cada escenario que se pueda presentar en el proceso de generación. Entiendo que este desarrollo debe hacerse con unos formularios tipo asistente (paso 1, paso 2, paso 3) o que cuando deje vacíos la generación, pueda existir una pantalla con todas las observaciones de horarios que no han podido ser generados y estos tengan la intervención del usuario para completar manualmente la generación de horarios.

Es por ello que de preferencia busco programadores que tengan experiencia en este tipo de sistema de Generación de Horarios para que la transferencia del requerimiento sea más transparente.

Importante: Necesito recibir propuestas de programadores que estén realmente seguros de poder realizar el algoritmo y lean la documentación que adjunto, es un claro ejemplo de lo que necesito.

Tengo el modelo de datos y diseño completo de la BD: Docentes, alumnos, cursos, secciones, aulas, horarios. Yo me encargo de todo lo demás solo necesito un programador con experiencia en este tipo de algoritmos avanzados y que sea proactivo con el desarrollo.

Lenguaje de programación: PHP 7.1*
Framework: Laravel 5.6*
Base de Datos: MySQL

Quedo atento a sus consultas.

Categoría Programación y Tecnología
Subcategoría Programación Web
¿Cuál es el alcance del proyecto? Bug o cambio pequeño
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo Tengo el diseño
Disponibilidad requerida Según se necesite
Experiencia en este tipo de proyectos Sí (He administrado este tipo de proyectos anteriormente)
Roles necesarios Programador

Plazo de Entrega: No definido

Habilidades necesarias

Otros proyectos publicados por A. V.