Rule Engine definitivamente puede ayudar, pero normalmente no es suficiente.
Por lo general, las “reglas” se utilizan para calcular la función de adecuación de una solución dada, a fin de discriminar entre todas las soluciones posibles, las que son válidas y entre las válidas, las más optimizadas. Por lo general, las reglas son la forma preferida de determinar la validez y el valor de aptitud (o “puntaje”) de una solución porque las reglas pueden ser manejadas fácilmente por analistas de negocios y expertos en el dominio, en lugar de codificarlas con un lenguaje de programación. En su ejemplo, la regla se usaría para declarar que el mismo maestro no puede asignarse a dos cursos simultáneos; La regla también podría usarse para declarar cuánto “pesado” podría ser un horario dado para que los estudiantes lo sigan.
Luego, se utiliza un algoritmo de resolución para determinar las soluciones que deben verificarse para verificar su validez y que la función de aptitud física debe medirlas para encontrar las más optimizadas; El punto clave es que el algoritmo debe iterar a través de esto aprovechando la heurística, simplemente alternar entre todas las posibles soluciones por fuerza bruta normalmente no es factible porque el problema se vuelve NP-duro (es decir, tomaría una eternidad dar la solución más óptima). En su ejemplo, el solucionador intentaría todos los horarios posibles, descartaría los no válidos y trataría de encontrar los “menos pesados”, tratando de caminar a pesar de todo esto con algunas heurísticas porque solo aplicando fuerza bruta tomaría una eternidad calcular .
En resumen:
- ¿Cuáles son las mejores universidades para una maestría en comunicación de masas en la India?
- ¿Cómo es la ingeniería eléctrica y la ingeniería mecánica en el PEC, Chandigarh? ¿Vale la pena?
- ¿Cuáles son las reseñas de la Universidad de Ingeniería de la Universidad de Punjabi Patiala (departamento CSE)? ¿Cómo es la proporción de profesores y asistencia?
- ¿Cuál es mejor, SRM o VIT? ¿Por qué?
- ¿Por qué la mayoría de los indios se encuentran en Karnataka?
- Reglas para discriminar soluciones válidas y determinar la función de aptitud / “puntaje” de una solución válida
- Algoritmo y marco de trabajo para resolver de manera eficiente entre todas las soluciones para verificar las soluciones válidas y más optimizadas
Le sugiero que consulte OptaPlanner (http://www.optaplanner.org/), que es un marco de software gratuito y de código abierto, alternativamente / también con soporte comercial si lo prefiere RedHat, y es muy bueno porque está integrado con Drools Rule Engine framework, para definir las reglas, y proporciona un algoritmo solucionador con varias heurísticas. En la documentación también puede encontrar dos ejemplos / demostraciones que creo que son muy similares a su caso de uso (calendario del curso, programación del trabajo del proyecto).