Sé que hay algunos problemas de programación que son NP-hard/NP-complete ... sin embargo, ninguno de ellos se indica de tal manera que muestre que esta situación también es NP.¿Todos los problemas de programación son NP-Hard?
Si usted tiene un conjunto de tareas limitadas a un startAfter, startBy y duración todos tratando de utilizar un solo recurso ... se puede resolver un horario o identificar que no se puede resolver sin una búsqueda exhaustiva?
Si la respuesta es "amigo lo siento, pero esto es NP-completo" lo que sería la mejor heurística (s?) De usar y hay maneras de disminuir el tiempo que se tarda en a) resolver un horario y b) identificar un cronograma no resuelto.
Implementé (en prolog) un objetivo básico de resolución de conflictos a través de la recursión que implementa una heurística de "ventana más pequeña primero". En realidad, esto encuentra soluciones con bastante rapidez, pero es excepcionalmente lento para encontrar horarios no válidos. ¿Hay una manera de superar esto?
¡Yay para preguntas combinadas!
¿Crees que agregarás más restricciones a este problema? Si es así, parece un problema de calendario, que es 'normalmente' resuelto a través de la programación contraint http://en.wikipedia.org/wiki/Constraint_programming o incluso programación lineal http://en.wikipedia.org/ wiki/Linear_programming Eche un vistazo al proyecto de código abierto llamado unitime.org (programación de restricciones) y el solucionador de restricciones de ilog (muy caro, pero muy rápido). – Karussell