Introducción y motivación
Los problemas de asignación de horarios y recursos podrían parecer sencillos a primera vista, pero lo cierto es que con gran facilidad pueden complicarse demasiado. Evidentemente, el interés por hallar una solución óptima a estos problemas viene de las necesidades de organización de las empresas, pues aún cuando el equipo de trabajo es pequeño, no es ésta una tarea fácil. Además, no sólo se trata del beneficio de la propia empresa, sino también del de los propios trabajadores, como ocurre por ejemplo en los centros escolares, donde los profesores a veces pueden especificar sus preferencias, o de administrar los recursos adaptándonos su disponibilidad y a las necesidades requeridas.
Por otra parte, centrándonos en el problema de asignación de horarios, es una pregunta inmediata, cuando éste se plantea, qué entendemos por una solución óptima si es que la hubiere, pues no olvidemos que existe la posibilidad de la infactibilidad del problema. Lo cierto es que esto depende de las restricciones que consideremos en nuestro problema. Existen unas restricciones que se deben cumplir siempre, por motivos espacio-temporales, como por ejemplo que una persona no puede encontrarse en dos sitios a la vez, o que en un espacio no puedan darse dos eventos. Si sólo consideramos este tipo de restricciones vamos a poder tener varias soluciones a nuestro problema sin ser una mejor que otra.
En la realidad, a veces surgen otro tipo de restricciones, como pueden ser las comentadas anteriormente, por ejemplo, las preferencias de los empleados de una empresa. En este caso muchas veces existen problemas de factibilidad y por lo tanto se considera la solución óptima como la que más restricciones satisfaga.
Por todo esto, muchos de los programas usados para la asignación de horarios o recursos están basados en modelos heurísticos, que no encuentran la mejor solución pero sí una que se considera bastante buena.
En este trabajo vamos a considerar el problema de asignación de horarios en el que sólo se tengan en cuenta las restricciones primeras que notamos anteriormente, esto es, las que deberían cumplirse obligatoriamente (dos profesores no pueden ocupar el mismo aula, y un profesor no puede impartir más de una asignatura simultáneamente).
El problema se ha modelado como un problema de programación lineal, y se ha resuelto utilizando lpsolve integrado en R.