Submitted:
09 September 2024
Posted:
10 September 2024
You are already at the latest version
Abstract
Keywords:
1. Introduction
1.1. Context
1.2. Motivation
1.3. Objectives
1.4. Expected Impact
- The implementation of automated timetable generation will result in noteworthy reductions in the temporal and laborious demands placed on both administrative personnel and faculty members. The process of manually creating timetables can consume a significant amount of resources. By automating these tasks, administrators can allocate their time to other strategic activities.
- The implementation of the system is expected to optimize the efficiency of academic operations in the faculty. The optimization of timetables can lead to increased efficiency in resource utilization, reduced scheduling conflicts, and streamlined administrative processes.
- The implementation of an automated timetable generation system will enhance the academic experience by promoting a better work-life balance for faculty members. This will be achieved by aligning their schedules with their preferences and workload constraints. By implementing this approach, individuals can optimize their time management, effectively schedule research or administrative duties, and prevent scheduling conflicts. Consequently, the reduction of stress levels and the increase in job satisfaction among faculty members will result in heightened productivity and an enhanced quality of teaching.
- The automated timetable generation system offers a notable benefit in terms of enhancing the efficient utilization of resources. The implementation of a system that efficiently allocates courses, faculty members, and rooms can effectively mitigate inefficiencies and minimize occurrences of underutilization or overbooking. The optimization of available resources without the requirement of supplementary investments will result in cost savings for the faculty. The system will facilitate the allocation of classrooms and facilities in a manner that reduces the likelihood of conflicts and promotes a cohesive and structured learning environment.
- The development of an automated system for generating timetables is intended to be flexible and versatile, capable of accommodating the evolving requirements of the academic staff. As the academic staff expands or novel courses are implemented, the system can readily integrate supplementary limitations and inclinations. The ability of the system to produce optimized timetables despite an increase in the size and complexity of the faculty is attributed to its scalability.
2. Related Work
3. Model of the Automatic Timetable Generation System
3.1. System Architecture
3.2. Frontend Architecture
- Component-Based Architecture: Angular's architecture is based on a component-based approach, which focuses on creating reusable components. Every component contains its own HTML, CSS [25], and TypeScript [26], which helps maintain a clear distinction between different aspects of the application and facilitates its management and scalability.
- Data Binding: Angular offers robust data binding features, covering both one-way and two-way data binding. This enables smooth synchronization between the model and the view, guaranteeing that the user interface is consistently updated with the underlying data.
- Dependency Injection: Angular's inherent dependency injection architecture improves modularity and testability. Components can be readily injected with services and other dependencies, resulting in code that is more manageable and facilitates testing.
- Routing: Angular's router module facilitates the development of a multi-page user interface within a single-page application. Developers can use it to specify routes and transition between several views while preserving the application's state and ensuring a seamless user experience.
- Reactive Programming: Angular leverages RxJS to enable reactive programming, allowing developers to efficiently manage asynchronous data streams and events.
- Forms and Validation: Angular offers powerful form-handling features, including template-driven and reactive forms, enabling effective form management and validation. The presence of built-in validators and the option to develop custom validators assist in guaranteeing the integrity of data and validating user input.
3.3. Backend Architecture
- Auto-Configuration: Spring Boot's auto-configuration feature streamlines the application setup process by automatically setting Spring and third-party libraries according to the project's dependencies. This reduces the need for redundant code and configuration.
- Embedded Servers: Spring Boot incorporates embedded servers such as Tomcat, and Jetty enabling programmers to execute their applications as independent executables without requiring a separate application server.
- Microservices Support: Spring Boot is highly compatible with the construction of microservices. It offers several capabilities such as Spring Cloud integration, service discovery, configuration management, and circuit breakers. These characteristics facilitate the creation of distributed systems that are both scalable and resilient.
- Security: Spring Security [34] smoothly integrates with Spring Boot, providing extensive security functionalities including authentication, authorization, and protection against prevalent vulnerabilities such as CSRF and XSS.
- Testing: Spring Boot provides comprehensive testing capabilities, including JUnit for unit testing and Spring's testing framework for integration testing [37]. These features guarantee the dependability and accuracy of the application.
- Spring IoC: Spring IoC, also known as Inversion of Control, is a crucial component of the Spring Framework [38]. It plays a vital role in overseeing the life cycle and configuration of objects within an application and it is achieved by employing dependency injection. This mechanism enables objects to specify their dependencies via constructor arguments, factory methods, or properties. The Spring container is then responsible for creating and providing these dependencies.
- The Presentation Layer is responsible for managing API endpoints and operating as the intermediary between the backend and the frontend. The main objective of this layer is to receive incoming HTTP requests, execute the required actions on them, and provide appropriate responses.
- The Service Layer is responsible for managing the business logic and operational procedures involved in the creation and optimization of timetables. It functions as a mediator between the display layer and the data access layer, guaranteeing the consistent application of business rules.
- The Data Access Layer is responsible for handling interactions with the database and ensuring the long-term storage of relevant data. Spring Data JPA [35] is utilized to abstract the fundamental database activities, simplifying the process of switching databases if necessary.
3.4. Timefold Solver Optimization Algorithm
- A score computation engine is a powerful instrument that efficiently calculates the rating of a solution to a scheduling problem. It streamlines and enables the incorporation of additional hard or soft constraints in a scalable manner. The program does progressive score calculation, commonly referred to as deltas, without needing additional coding. Nevertheless, it is usually inappropriate to find new solutions.
- An optimization algorithm excels at discovering enhanced solutions for a planning challenge, without the need to exhaustively explore every possible option. However, it cannot efficiently calculate the score of a solution and does not provide any support in doing so.
- A hard constraint, whether negative or not, must not be violated. For instance, a teacher is unable to instruct two distinct lessons simultaneously.
- A negative soft constraint should be respected wherever possible. For instance, Teacher A has a dislike of teaching classes on Friday afternoons.
- Certain problems also have positive limitations.
- If feasible, it is desirable to fulfill a positive soft restriction (or incentive). For instance, Teacher X specifically prefers teaching lessons on Monday mornings.
- The First Fit algorithm sequentially iterates over all planning entities, initializing one at a time, according to their default sequence. The process allocates the planning entity to the most optimal planning value, considering the previously initiated planning entities. The termination occurs when all planned entities are fully initialized. Once a planning entity has been designated, it remains unchanged.
- The First Fit Decreasing algorithm is a variant of the First Fit algorithm, but it prioritizes assigning the more challenging planning entities first, as they are less inclined to be accommodated in the remaining space. Therefore, it arranges the planning entities in descending order of difficulty.
- The Weakest Fit algorithm is a variant of the First Fit algorithm, but it prioritizes using weaker planning values initially. This is because the stronger planning values have a higher probability of being able to support subsequent planning entities. Therefore, it arranges the planning values in ascending order of their strength.
- The Strongest Fit algorithm is similar to the First Fit algorithm, the Strongest Fit algorithm prioritizes the adoption of planning variables that have a higher likelihood of having a decreased soft cost. Therefore, it arranges the planning values in descending order of strength.
3.5. Constraints
- Courses must be organized according to the specified time slots provided by the faculty, ensuring the timing is suitable.
- The room capacity should be sufficient to accommodate the number of students enrolled in each subject.
- A teacher is unable to simultaneously teach two distinct lessons in separate classrooms.
- It is not possible for a room to accommodate two distinct lessons simultaneously.
- The scheduling of lessons should not have any overlapping.
- A lesson with a duration of x cannot be scheduled for a time slot with a different duration than x.
- A student group cannot attend 2 different lessons at the same time.
- It is imperative to provide a fair allocation of teaching hours among faculty members to avoid stressing certain teachers while underutilizing others and also take into consideration the availability of faculty members who are assigned to teach them. This approach is important for sustaining faculty satisfaction and minimizing burnout.
- Courses and seminars should be organized together in the same time slot and room, either for a whole series of students (in the case of courses) or for a specific group of students (in the case of seminars).
- It is advisable to spread out the courses evenly across the week to prevent the concentration of too many lessons on a single day. This helps to minimize exhaustion for both students and professors and also ensures efficient utilization of classroom space.
- The maximum amount of hours of courses per day for a student group should not exceed 10 hours.
- It is important to ensure that students' schedules are evenly distributed throughout the week to facilitate efficient learning and mitigate the risk of exhaustion. This entails the avoidance of scheduling back-to-back classes and maintaining sufficient intervals between sessions.
- A teacher's workload should not exceed 12 hours of courses each day.
- Courses should be arranged based on the availability of teachers during specific time slots for teaching.
- Teachers have a preference for instructing in a singular place to minimize the necessity of moving between several classrooms.
- Students exhibit a preference for having courses located in the same building to minimize the duration and effort required for transitioning between classes.
- It is important to avoid intervals greater than 4 hours between two consecutive courses, as these prolonged breaks might cause disruptions to students' schedules.
- It is advisable to arrange laboratory courses at the same time and in the same location for student groups to ensure consistency.
- Teachers prioritize maintaining a continuous and efficient teaching schedule by avoiding gaps between their classes.
3.6. Database Considerations
- Resilience: PostgreSQL is acknowledged for its robustness and ability to endure challenges. This resilience ensures data consistency and reliability, crucial for managing complex timetabling data.
- Sophisticated Functionalities: The system's capability to accommodate sophisticated functionalities aligns seamlessly with the intricate nature of university timetabling. From managing course details to handling concurrent requests, PostgreSQL stands as a versatile and capable solution.
- Data Integrity: PostgreSQL places a premium on data integrity, ensuring that information remains accurate and consistent. This aspect is pivotal when dealing with diverse datasets and intricate relationships within the timetabling context.
- Concurrency Control: The system's prowess in managing concurrent requests is particularly relevant in the context of the timetabling system, where multiple users interact with the database simultaneously. PostgreSQL's concurrency control mechanisms contribute to a seamless and reliable user experience.
3.7. Integration and Communication
3.8. Enhancing System Integrity
- 1.
- Data Security and Privacy
- Robust Authentication and Authorization Protocols: Implementing a robust set of authentication and authorization protocols ensures that access to sensitive information is restricted to authorized individuals. This includes the meticulous use of role-based access controls, where users are granted specific permissions based on their roles within the academic hierarchy.
- Hashing of Data: Sensitive information undergoes hashing procedures, a cryptographic technique that converts data into irreversible, fixed-length strings of characters. Hashing ensures that the original data cannot be reconstructed from the hash values, providing an additional layer of protection against unauthorized access and potential data breaches [51].
- Adherence to Data Privacy Standards: Striving for excellence, the system adheres steadfastly to established data privacy standards. This commitment ensures that the collection, storage, and utilization of personal data strictly comply with legal and ethical guidelines, fostering a secure and trustworthy environment for all stakeholders.
- 2.
- Reliability: The Timefold Solver Library
- Algorithmic Precision: The Timefold Solver library employs cutting-edge algorithms, rigorously tested and validated with diverse datasets and scenarios. This ensures the generation of accurate and conflict-free timetables, contributing significantly to the reliability of the overall system.
- Error Mitigation: With a focus on minimizing conflicts and rectifying errors, the Timefold Solver library incorporates extensive error detection and handling mechanisms. This ensures that unexpected issues are identified promptly, preventing disruptions in the timetable generation process.
- 3.
- Security: Role Guards and JWT Authentication
- Role Guards: Role guards [52] play a pivotal role in ensuring that only authorized users with specific roles or permissions can access designated parts of the application. This measure enhances data and system security, preventing unauthorized individuals from tampering with critical information.
- JWT Authentication and Authorization: The system employs JSON Web Token (JWT) [53] authentication, a secure and efficient method for verifying the identity of users. This, coupled with robust authorization mechanisms, ensures that only authenticated and authorized users can interact with the system, minimizing the risk of unauthorized access.
4. Research Methodology
4.1. Problem Analysis and Requirements Gathering
4.2. Literature Review
4.3. System Design
4.4. System Implementation
4.5. Data Collection and Integration
4.6. Evaluation and Performance Analysis
4.7. Iterative Refinement
4.8. Ethical Considerations
5. The Development of Theoretical/Practical Contributions
5.1. Comprehensive Approach to Automated Timetable Generation
- Student Hierarchy: Students are categorized into series, which are then separated into groups, and these groupings can be further divided into semigroups. Classes are conducted for complete series, seminars for groups, and laboratory sessions for either groups or subgroups.
- Room and Time Constraints: Lessons must be assigned to rooms that have suitable capacity to handle the student groups. In addition, students are limited to a maximum of 10 hours of coursework every day.
- Scheduling Complexity: The interplay of these constraints leads to a high level of complexity in scheduling, requiring the allocation of many lessons into available rooms and timeslots without any clashes. The timetable generation problem includes 153 rooms with different capacities and located in different buildings, 195 timeslots (from Monday to Friday), 18 constraints of hard, medium, or soft levels, 166 teachers, 4187 lessons, and 338 students’ groups (including Bachelor and Master students). This is the highest complexity, compared with other papers, research articles, and implementations.
- Lessons: Detailed information about courses, seminars, and laboratory sessions.
- Student Groups: Organization of series, groups, and semigroups.
- Rooms: Name, capacity, and location details.
- Teachers: Name and availability.
- Timeslots: Defined periods for scheduling lessons.
- Constraints: Rules for maximum hours per day, room capacity, lesson type allocation, and the basic constraints that exist in the university timetable college.
- (1)
-
StudentGroupAttributes:
- -
- id (Primary Key): Unique identifier for each student group.
- -
- year: year of the student group
- -
- name: Name of the series of student group (e.g., AA1, AB3).
- -
- studentGroup (group): Group to which the students belong.
- -
- semiGroup: Semigroup to which the students belong (Semigroup 1, Semigroup 2, or Semigroup 0 for the Master students).
- -
- numberOfStudents: Number of students in the group.
Relationships:- -
- A student group can be linked to multiple lessons.
- -
- A student group is associated with specific constraints.
- (2)
-
TeacherAttributes:
- -
- id (Primary Key): Unique identifier for each teacher.
- -
- name: Full name of the teacher.
- -
- timeslots: Time slots during which the teacher is available to teach.
Relationships:- -
- A teacher can be linked to multiple lessons.
- -
- A teacher is associated with specific constraints.
- (3)
-
LessonAttributes:
- -
- id (Primary Key): Unique identifier for each lesson.
- -
- subject: Lesson's name
- -
- teacherId (Foreign Key): Identifier of the teacher conducting the lesson.
- -
- studentGroupId (Foreign Key): Identifier of the student group attending the lesson.
- -
- lessonType: Type of lesson (e.g., Course, Seminar, Laboratory).
- -
- year: The year for which the lesson is held.
- -
- duration: Duration of the lesson.
- -
- timeslotId (Foreign Key): Identifier of the timeslot where the lesson is assigned.
- -
- roomId (Foreign Key): Identifier of the room where the lesson is held.
Relationships:- -
- A lesson is linked to a specific teacher and student group.
- -
- A lesson must be scheduled in an appropriate room and time slot.
- (4)
-
RoomAttributes:
- -
- id (Primary Key): Unique identifier for each room.
- -
- name: Name or number of the room.
- -
- capacity: Maximum number of students the room can accommodate.
- -
- building: Physical location of the room.
Relationships:- -
- A room can host multiple lessons.
- -
- A room is associated with specific constraints.
- (5)
-
ConstraintModelAttributes:
- -
- id (Primary Key): Unique identifier for each constraint.
- -
- description: Description of the constraint.
- -
- weight: Type of constraint (e.g., Hard, Medium, Soft).
Relationships:- -
- Constraints are linked to student groups, teachers, rooms, and lessons.
- -
- Constraints must be considered during timetable generation to ensure compliance.
- (6)
-
TimeslotAttributes:
- -
- id (Primary Key): Unique identifier for each time slot.
- -
- day: Day of the week (e.g., Monday, Tuesday).
- -
- startTime: Start time of the time slot.
- -
- endTime: End time of the time slot.
Relationships:- -
- A time slot can be assigned to multiple lessons.
- -
- Time slots must align with teacher availability.
- (7)
-
UserAttributes:
- -
- id (Primary Key): Unique identifier for each user.
- -
- email: Contact email of the user.
- -
- password: Hashed password for the user account.
- -
- role: Role of the user (e.g., Admin, Normal User).
Relationships:- -
- Users can manage and access timetable data according to their role.
- -
- Admin users have additional permissions for configuring constraints and settings or for generating the timetable.
5.2. Functionalities of the Application
- Course and Activity Management: The application should allow administrators to define and manage courses and various academic activities such as courses, seminars, laboratories, and exams. It should provide options to specify activity durations, resource requirements, and any constraints associated with each activity.
- Faculty and Staff Management: The application should support the management of faculty members and staff by allowing administrators to input their availability, preferences, and workload constraints. This information will be used to generate optimized timetables that consider individual preferences and constraints.
- Room and Resource Management: The application should facilitate the management of rooms and resources available within the faculty. It should allow administrators to define room capacities, availability, and any specific requirements for activities. This information will be used to allocate appropriate rooms and resources during the timetable generation process.
- Timetable Generation: The core functionality of the application is to generate automated timetables based on the input data provided. It should employ optimization algorithms, such as genetic algorithms or other suitable techniques, to create conflict-free and optimized timetables while considering various constraints and preferences.
- Conflict Resolution: The application should have mechanisms to identify and resolve conflicts that may arise during the timetable generation process. Conflicts could include overlapping activities, resource constraints, faculty availability conflicts, or student preferences that cannot be accommodated. The system should provide options for resolving these conflicts based on predefined rules or user-defined priorities.
- Timetable Visualization and Editing: The generated timetables should be presented in a user-friendly and intuitive manner. The application should provide visualization tools to display timetables, allowing users to easily view and navigate through the schedules. Additionally, there should be options for manual editing or adjustments to the generated timetables, if necessary.
5.3. Use Case UML Diagram
5.4. Implementation Details
- @PlanningEntity: Marks classes as entities manipulated by Timefold to identify an optimal solution. Entities include activities, teachers, and classrooms.
- @PlanningVariable: Identifies variables subject to change during optimization, such as time slots and rooms for each activity.
- @PlanningSolution: Designates the class representing the entire problem to solve, with the timetable serving as the planning solution.
- @SolverFactory: Configures and initializes the solver, allowing for custom settings such as optimization algorithms and termination conditions.
- @PlanningScore: Identifies the attribute representing the score or fitness of the solution, guiding Timefold in refining the timetable.
- @ConstraintConfigurationProvider: Holds the configured constraint weights and other constraint parameters.
- @PlanningEntityCollectionProperty: Timefold Solver can change the annotated object during solving and the ConstraintProvider (where the constraints are implemented) can select from those too.
- @ProblemFactCollectionProperty: The ConstraintProvider can select from those annotated object instances to assign to a @PlanningEntity object.
- (1)
-
Timefold Configuration
- InitializingScoreTrend: This parameter defines the trend of the score during the initialization phase, while the previously initialized variables remain unchanged. Some optimization algorithms, including Construction Heuristics, can achieve better execution times when provided with such information.
- MoveThreadCount: This parameter is set to AUTO, which allows Timefold to automatically determine the optimal number of threads for performing move evaluations in parallel. This enhances the solver’s performance by leveraging multi-core processors, thereby reducing the computational time required for generating optimized timetables
- (2)
-
Algorithms Used
-
Construction Heuristic Phase: Strongest Fit DecreasingIn the Construction Heuristic phase, a generic form of the Strongest Fit Decreasing (SFD) algorithm was used. This algorithm works as follows:
- ○
- Sorting: It sorts the lessons based on their 'strength' or importance, such as their duration and it also sorts the timeslots and rooms by their importance, such as interval between start time and end time in the case of timeslot, and capacity in the case of room.
- ○
- Assignment: It then assigns the most 'difficult' lessons (strongest fit) to the most suitable time slots and rooms first, ensuring that the hardest parts of the problem are tackled initially.
-
-
Hill Climbing Late Acceptance:
- ○
- Hill Climbing: This method iteratively improves the solution by making small changes (moves) that lead to better scores.
- ○
- Late Acceptance: To avoid the algorithm from being trapped in local optima, Late Acceptance allows the acceptance of worse solutions if they are better than a solution encountered several steps earlier. This adds a level of flexibility and helps the solver escape local minima.
-
Tabu Search:
- ○
- Memory Structure: Tabu Search uses a memory structure to keep track of recently visited solutions and marks them as 'tabu' (forbidden) for a certain number of iterations. This prevents the solver from cycling back to previously visited solutions and encourages the exploration of new areas in the solution space.
- ○
- Aspiration Criteria: Despite being marked as 'tabu', certain moves can be accepted if they meet specific criteria (aspiration criteria), such as leading to a significantly better solution.
- Strongest Fit Decreasing: Ensures a robust starting point by addressing the most challenging constraints first.
- Hill Climbing Late Acceptance: Provides a mechanism to explore the solution space effectively, allowing for temporary acceptance of suboptimal solutions to escape local optima.
- Tabu Search: Further enhances the search process by maintaining diversity in the solutions explored and preventing cycles.
- (3)
- Timefold Constraints
- Network Construction: The RETE algorithm builds a network of nodes, consisting of alpha nodes and beta nodes. Alpha nodes evaluate basic conditions on particular facts. The entering facts are filtered depending on attribute values, such as verifying the availability of an instructor at a specific time. Beta nodes execute join operations on several facts, merging partial matches obtained from alpha nodes. They are accountable for managing intricate situations that involve several factors, such as ensuring that no teacher is scheduled for two classes simultaneously.
- Fact Propagation: Facts are distributed throughout the network, originating from the alpha nodes. Every alpha node assesses its condition based on the incoming facts and transmits the corresponding facts to the beta nodes.
- Partial Match Storage: Beta nodes store partial matches in memory, which are intermediate results of the join operations. This storage allows the RETE algorithm to avoid re-evaluating the same conditions repeatedly, significantly improving efficiency.
- Rule Activation: The rule is activated when all the conditions of the rule are satisfied by a collection of facts, and this activation occurs at the final node in the network. The RETE algorithm effectively oversees the working memory, guaranteeing that only pertinent modifications initiate rule assessments.
- Efficiency: The efficiency of the RETE algorithm comes from its ability to share condition evaluations among different rules and store intermediate results. This reduces the number of comparisons needed, especially in systems with a large number of rules and facts.
6. Performance Analysis Measure
6.1. Timetable Quality Metrics
- The metric of conflict resolution evaluates the frequency of conflicts or discrepancies in the schedule, such as the occurrence of lectures or exams that overlap. A reduced frequency of conflicts is indicative of a superior-quality timetable. Timefold Solver provides a score calculation functionality that indicates the quality of the solution within a specified time.
- Resource utilization refers to the measurement of the efficiency with which the available resources, including but not limited to classrooms and faculty, are being utilized. The process assesses the distribution of resources to reduce instances of either underutilization or overutilization.
- The metric of "balanced workload" prioritizes the equitable distribution of workload among faculty members. The algorithm takes into account various parameters, including the number of instructional hours, intervals between courses, and successive instructional hours assigned to individual faculty members.
6.2. Computational Performance Metrics
- The metric of execution time pertains to the duration required by the system to produce a schedule. A reduced execution time is a desirable outcome, as it signifies a more expedited timetable generation process.
- Scalability refers to the system's ability to maintain optimal performance levels as the scope and complexity of the problem being addressed increase. The evaluation assesses the system's capacity to process extensive datasets and produces schedules within acceptable temporal constraints.
- The evaluation of memory usage pertains to the memory demands of the system while generating the timetable. This aids in the detection of any suboptimal memory utilization or possible performance limitations.
6.3. User Satisfaction Surveys
6.4. Comparison with Manual Timetabling
6.5. Real-World Testing and Validation
7. Results
8. Conclusions and Future Work
- Interactive Elements: Users will be able to interact with the timetable, making manual adjustments or edits based on specific requirements. This will provide greater flexibility and customization for meeting unique needs.
- Reporting and Communication: The application will enable the generation of reports and summaries of the generated timetables. These reports can be used by administrators, faculty members, and students for various purposes such as academic planning, resource allocation, and schedule communication. Additionally, the application will support communication features to notify stakeholders about timetable updates or changes.
- Load Balancing [55]: Implementing load balancing will enhance the system’s performance, particularly when handling large datasets or multiple simultaneous users.
- Automated Data Retrieval and Export: An automated way to retrieve the rooms, timeslots, student groups, teachers, and lessons (via Excel, for example) will be added. This will streamline data entry processes and ensure accuracy. Furthermore, a feature to export the generated timetable will be included.
- Issue Resolution and Entity Updates: Current issues related to the implemented constraints and updating entities using Spring JPA will be addressed to enhance overall system performance and accuracy.
- Algorithm Fine-Tuning: Fine-tuning the algorithm and adding a filtered move selection for faster construction of the initial solution after the Construction Heuristics phase will be undertaken to improve efficiency.
- Benchmarking: A benchmark feature will be added, allowing users to test various configurations and evaluate their impact on performance.
- Centralized Timetable Generation: The application will be extended to enable centralized timetable generation for schools, high schools, and other colleges, each with potentially different constraints. This will expand the system's applicability and utility across various educational institutions.
Author Contributions
Funding
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Knauer, B.A. Solution of a Timetable Problem, Computers & Operations Research, 1974, 1, 3–4, 363-375. [CrossRef]
- Petrovic, S.; Burke, E. University timetabling. In Handbook of scheduling: Algorithms, Models, and Performance Analysis, CRC Press, Boca Raton, FL, 2004, 1-23.
- Pinedo M.L. Planning and scheduling in manufacturing and services. In Springer Series in Operations Research, Springer, New York, 2005, 3-8.
- Fang H. L. Genetic Algorithms in Timetabling Scheduling. Ph.D. Thesis, University of Edinburgh, Edinburgh, UK, 1994.
- D'souza, D.; D'sa, O.; Pillai, P.; Shaikh, P. Multi-Constraint Satisfaction and Solution Optimization Using Genetic Algorithm for Solving Timetable Generation Problem Proceedings of the International Conference on Recent Advances in Computational Techniques (IC-RACT) 2020.
- Teoh, C.-K.; Abdullah M. Y. C.; Haron H. Effect of Pre-Processors on Solution Quality of University Course Timetabling Problem, 2015 IEEE Student Conference on Research and Development (SCOReD), Kuala Lumpur, Malaysia, 2015, 472-477.
- Wungguli, D.; Nurwan, N. Application of Integer Linear Programming Model in Automatic Lectures Scheduling Optimization, BAREKENG: J. Math. & App., 2020, 14, 3, 413-424.
- Schrijver, A. Theory of Linear and Integer Programming, Wiley, 1998. [CrossRef]
- Feng, X.; Lee, Y.; Moon, I. An Integer Program and a Hybrid Genetic Algorithm for the University Timetabling Problem, Optimization Methods and Software, 2016, 32, 3, 625–649. [CrossRef]
- Schaerf, A. A Survey of Automated Timetabling, Artificial Intelligence Review, 1999, 13, 87–127. [CrossRef]
- Bertsimas, D.; Tsitsiklis, J. Simulated Annealing, Statistical Science, 1993, 8, 1, 10-15. [CrossRef]
- Pirim, H.; Eksioglu, B.; Bayraktar, E. Tabu Search: A Comparative Study, 2008. 10.5772/5637. [CrossRef]
- Socha, K.; Sampels, M.; Manfrin, M. Ant Algorithms for the University Course Timetabling Problem with Regard to the State-of-the-Art. In: Cagnoni, S., et al. Applications of Evolutionary Computing. EvoWorkshops 2003. Lecture Notes in Computer Science, vol 2611. Springer, Berlin, Heidelberg.
- Abuhamdah A.; Ayob M. MPCA-ARDA for Solving Course Timetabling Problems, 2011 3rd Conference on Data Mining and Optimization (DMO), Putrajaya, Malaysia, 2011, 171-177.
- Abuhamdah A.; Ayob M. Multi-neighbourhood Particle Collision Algorithm for Solving Course Timetabling Problems, Proceeding in 2009 2nd Conference On Data Mining and Optimization, Selangor, Malaysia, IEEE, 2009, 21-27.
- Abuhamdah A.; Ayob M. Adaptive Randomized Descent Algorithm for Solving Course Timetabling Problems, International Journal of the Physical Sciences, 2010, 5,16, 2516-2522.
- Wankhede, S. Automatic College Timetable Generation, International Journal of Scientific Research in Computer Science, Engineering and Information Technology, 2019.
- Ong, B. C. Web-based Scheduling Software for a University, Dissertation, Universiti Tunku Abdul Rahman, Malaysia, 2020.
- Atef Yekta, H.; Day, R. Optimization-Based Mechanisms for the Course Allocation Problem. INFORMS Journal on Computing, 2020, 32, 3, 641-660. [CrossRef]
- Burgess, R. Automation for CSUN Computer Science Department Course Scheduling Doctoral dissertation, California State University, Northridge, 2017.
- OptaPlanner Official Website - Available online: https://www.optaplanner.org/.
- Timefold Official Website - Available online: https://timefold.ai/.
- Fiechter, A. University Timetable Scheduling Bachelor Project Report, Università della Svizzera Italiana, Faculty of Informatics, 2018.
- Grant, A. The Basics of AngularJS, Beginning AngularJS, Apress, Berkeley, CA, 2014, 35-45.
- Meloni, J.; Kyrnin, J. HTML, CSS, and JavaScript All in One, Sams Publishing, 2018.
- Freeman A. Essential TypeScript 5, Third Edition, Manning, 2023.
- Jasmine Documentation - Available online: https://jasmine.github.io/.
- Protractor Documentation - Available online: https://www.protractortest.org/.
- Arnold, K.; Gosling, J.; Holmes, D. The Java Programming Language, 4th ed.; Addison-Wesley Professional: Glenview, IL, USA, 2005.
- Sierra, K.; Bates, B.; Gee, T. Head First Java: A Brain-Friendly Guide, 3rd ed.; O’Reilly Media: Sebastopol, CA, USA, 2022.
- Spring Boot Documentation - Available online: https://docs.spring.io/spring-boot/index.html.
- Fielding, R.T. Architectural Styles and the Design of Network-based Software Architectures, PhD Thesis, 2000.
- Chain, R Mastering Spring MVC: From Novice to Expert Independently published, 2023.
- Spilcă, L., Spring Security in Action; Second Edition; Manning: New York, NY, USA, 2024.
- Tudose, C. Java Persistence with Spring Data and Hibernate; Manning: New York, NY, USA, 2023.
- Bonteanu, A.M.; Tudose, C. Performance Analysis and Improvement for CRUD Operations in Relational Databases from Java Programs Using JPA, Hibernate, Spring Data JPA, Applied Sciences – Basel, 2024, 14, 7, 2743. [CrossRef]
- Tudose, C. JUnit in Action; Manning: New York, NY, USA, 2020.
- Spilcă, L., Spring Start Here: Learn What You Need and Learn It Well; Manning: New York, NY, USA, 2021.
- Erder, M.; Pureur, P., Woods, E. Continuous Architecture in Practice: Software Architecture in the Age of Agility and DevOps; Addison-Wesley Professional, 2021.
- Christofides, N. Vehicle Routing Problem, Revue francaise d’automatique, informatique, recherche operationnelle, 1976, 10, 2, 55-70.
- Zurn, H.H. Generator Maintenance Scheduling via Successive Approximations Dynamic-Programming IEEE Transactions on Power Apparatus And Systems, Quintana, VH, 1975, 94, 2, 665-671.
- Mandel, R. A. Contribution to Solution of Job-Shop Scheduling Problems Ekonomicko-Matematicky Obzor, 1975, 11, 1, 22-27.
- Bruen A; Dixon R . N-Queens Problem, Discrete Mathematics, 1975, 12, 4, 393-395.
- Ohashi, T.; Aghbari, Z.; Makinouchi, A. Hill-Climbing Algorithm for Efficient Color-Based Image Segmentation, IASTED International Conference on Signal Processing, Pattern Recognition, and Applications, 2003, 17-22.
- Gendreau, M.; Potvin, J.Y. Tabu Search. Search Methodologies: Introductory Tutorials in Optimization and Decision Support Techniques, 2005, 165-186.
- Burke, E.K.; Bykov, Y. The Late Acceptance Hill-Climbing Heuristic, European Journal of Operational Research, 2017, 258, 1, 70-78. [CrossRef]
- McMullan, P. An Extended Implementation of the Great Deluge Algorithm for Course Timetabling, Computational Science–ICCS 2007: 7th International Conference, Beijing, China, 2007, I, 7, 538-545.
- Aarts, E.; Korst, J.; Michiels, W. Simulated Annealing, Search Methodologies: Introductory Tutorials in Optimization and Decision Support Techniques, 2005, 187-210.
- Kalshetti, U.; Nahar, D.; Deshpande, K. Gawas, S.; Sudeep, S. Dynamic Timetable Generation Using Constraint Satisfaction Algorithm. Proceedings of the Second International Conference on Computer and Communication Technologies 2015, 1, 761-771.
- Ferrari, L.; Pirozzi, E., Learn PostgreSQL: Use, manage and build secure and scalable databases with PostgreSQL 16, 2nd Edition; Packt Publishing; 2023.
- Shukla, S.; George, J.P.; Tiwari, K.; Kureethara, J.V. Data Security Data Ethics and Challenges, 2022, 41-59. Singapore: Springer Singapore.
- Park, J.S.; Sandhu, R.; Ahn, G.J. Role-Based Access Control on the Web ACM Transactions on Information and System Security (TISSEC), 2001, 4, 1, 37-71.
- Jones, M.; Bradley, J.; Sakimura, N. JSON Web Token (JWT), RFC 7519, 2015.
- Forgy, C.L. Rete: A Fast Algorithm for the Many Pattern/Many Object Pattern Match Problem. Readings in Artificial Intelligence and Databases, 1989, 547-559, Morgan Kaufmann.
- Ghomi, E.J.; Rahmani, A.M.; Qader, N.N. Load-Balancing Algorithms in Cloud Computing: A Survey. Journal of Network and Computer Applications, 2017, 88, 50-71. [CrossRef]










| Machine | Hours | Score | Score Calculation Speed |
|---|---|---|---|
| M1 Air (I) | 5 | -3122init/0hard/-462medium/3417soft | 8703/sec |
| M1 Air (II) | 8 | -1938init/0hard/-798medium/5531soft | 6666/sec |
| M1 Air (III) | 11 | -1102init/0hard/-1246medium/6571soft | 5478/sec |
| M1 Air (alt. config) | 8 | -10hard/-5602medium/3361soft | 664/sec |
| M1 Pro (I) | 8 | -262init/0hard/-2113medium/7647soft | 8401/sec |
| M1 Pro (II) | 12 | 0hard/-2183medium/8121soft | 6342/sec |
| Simulation (M1 Air) | 6 | 0hard/-1778medium/8265soft | 73135/sec |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).