Design and Development of a Scheduling Intelligent System for Youth Camps based on Constraint Programming

David Pérez Sanz. (2021). Design and Development of a Scheduling Intelligent System for Youth Camps based on Constraint Programming. Trabajo Fin de Titulación (TFM). Universidad Politécnica de Madrid, ETSI Telecomunicación.

As all we know, life is a set of problems that society must face continuously to achieve the goals proposed. Problems appear in all contexts of life; academic, professional, or even in family life. One type of these problems is scheduling and planning problems. The objective here is to assign some resources to others in an orderly manner while complying with some restrictions predefined. The presence of this type of problem is common in society, for example, for creating workgroups in businesses or for work shifts definition. The planning should respect some requirements such as working hours, rest time, vacations, workers’ conventions, preferences, etc. This context includes subjects like nurse rostering in hospitals, schools teachers and classrooms planning, 24x7 services personnel coverage, cloud balancing systems, project task assigning, congress conference schedule, or exams planning. This problem is present in youth associations when they have to define a planning with the workgroups at the beginning of the year. The preparation of a planning gets complex with all the considerations that workgroups and personnel request, and people should spend a long time to obtain a suitable solution. The project provides a web application capable of generating valid plannings for scout associations in some minutes by introducing the data of the personnel and workgroups requirements, and without any additional human effort. The process of developing the application requires some steps to elaborate the accurate solution to the problem. The project exposes the problematic to know the context and the exact problem to solve as the first step. This information allows us to perform the require- ment analysis to extract the characteristics of the application to develop. The requirement analysis provides the necessary information to elaborate the architecture of the system. Finally, the thesis includes an example where the system receives synthetic data similar to the real data that the application would receive to analyze the solution that it provides.