Hybrid VNS-TS heuristics for University Course Timetabling Problem

Goal: Propose hybrid heuristics combining VNS and Tabu Search (TS) for adding adaptability to University Course Timetabling Problem (UCTTP) resolution. Design / Methodology / Approach: VNS and TS metaheuristics were used isolated and in combination in order to verify which shape acquired the best solutions. Those heuristics were verified using constraints found at two undergraduate courses of Federal Fluminense University. Effectiveness is verified by comparing them with solutions manually elaborated by undergraduate course coordinators. Results: The computational results showed the efficiency of the hybrid VNS-TS heuristics, with emphasis on the heuristic VNS-TS1, which uses tabu search as local search method. Limitations of the investigation: This research was applied using data from two undergraduate courses of Federal Fluminense University. New experiments on data from other universities will soon be carried out. Practical implications: The hybrid heuristic VNS-TS1 has been in use since the first half of 2019 by some of UFF undergraduate courses coordinations. Even though each university has specific constraints on its timetable, the use of the proposed heuristics is possible because it has been developed using the framework FINESS that allows for the easy insertion and removal of constraints. Originality / Value: We have the following innovative contributions: Development of heuristics with a high degree of adaptation to the needs of educational institutions; Two proposed VNS-TS heuristics; Proposed VND-TS improvement method.


INTRODUCTION
In recent decades, the scientific community has been struggling to find automated solutions to the process of resource allocation under constraints (Babaei et al., 2015). One of the typical problems of this nature is the scheduling problem, also known as timetabling problem, that can be found in companies, schools, universities or hospitals.
In the educational context, the timetabling problem is the task of scheduling professors and students meeting without violating their constraints (Schaerf, 1999). Lima (2016) argues that these tasks usually demand substantial time to be accomplished due to several factors that make it difficult to solve this problem manually, such as the number of students, number of courses, type of institution and their constraints.
In Pereira and Costa (2016) is presented three categories of educational timetable scheduling: (i) school timetabling scheduling which regards scheduling for a period of time (Birbas et al., 2009); (ii) university course timetabling problem (UCTTP) which allow joining classes for efficiency (Avella and Vasil'ev, 2005); and (iii) exams timetabling problem which schedules exams in a short period of time (Kahar and Kendall, 2010). All categories have distinct constraints that depends on institution features (Asratian and Werra, 2002;Lima, 2016). Lindahl et al. (2018) define the UCTTP as the problem of assigning courses to rooms and time periods. This scheduling should be done without violating the hard constraints -constraints that when violated make the solution infeasible -and with minimal violations of soft constraints, which do not make the solution infeasible but reduce its quality.
To overcome this difficulty, the need arises for a dynamic tool that allows the adaptation of the restrictions to the interests of the institutions.
Thus, the principal objective of this work is to propose a flexible method that allows to insert and easily remove constraints in order to adapt the solutions to the needs of the institutions. For this purpose, two hybrid heuristics based on Variable Neighborhood Search (VNS) and Tabu Search (TS) for UCTTP were developed and adapted. Success of using metaheuristics VNS and Tabu Search on NP-Hard problems is widespread in the literature, as can be seen in Jat and Yang (2011), Zeng et al. (2016) and Delgoshaei et al. (2018).
As innovative contributions of this work, we mention: (i) development of heuristics with a high degree of adaptation to the needs of educational institutions; (ii) two proposed VNS-TS heuristics; and (iii) proposed VND-TS improvement method.
The study is structured as following: Section 2 describes subjects that support the work -the problem addressed is detailed; Metaheuristics VNS and Tabu Search, used in the proposed solutions, are described; The framework FINESS, which supported the development of the proposed heuristics, is presented; and the multicriteria method AHP, used to define the violation penalties of each constraint, is introduced -; The methodology is described in Section 3; Section 4 presents the proposed heuristics for the addressed problem; Computational experiments are presented in Section 5. Finally, the conclusion and references are presented.

THEORETICAL FRAMEWORK
This section describes the problem being addressed, presents the metaheuristics VNS and Tabu Search, introduces the framework FINESS, which simplifies heuristics implementation, and presents the method AHP (Analytic Hierarchy Process).

Addressed problem
The university course timetabling problem (UCTTP) consists of scheduling university courses to rooms and time periods (Lindahl et al., 2018). In the scientific literature, UCTTP is solved by exact methods (Phillips et al., 2017;Prabodanie, 2017;Lindahl et al., 2018;Gülcü and Bulkan, 2019) or heuristics. Because it is an NP-Hard problem (Socha et al., 2003) -the time complexity required to solve the problem grows exponentially with the size of the problem -and because it commonly has a large number of decision variables, the use of heuristic methods is the most appropriate strategy for your solution (Babaei et al., 2015). As examples of works applying heuristics to the problem addressed, we can mention: Abdelhalim and El Khayat (2016) and Jat and Yang (2011) use genetic algorithms -the second on is a hybrid version that uses tabu search as a search intensification method -; Simulated annealing is the method applied by Bellio et al. (2016); Qu and Burke (2009) and Pillay and Özcan (2019) use hyper-heuristics approaches; Harmony search algorithm is the method chosen by Al-Betar and Khader (2012) in their work; Bolaji et al. (2014) and Mazlan et al. (2019) use colony algorithms, which uses, respectively, artificial bee colony algorithm and ant colony optimization.
This work aims to solve the UCTTP of two undergraduate courses at Federal Fluminense University (UFF): Computer Science and Industrial Engineering. These courses are composed of classes and UFF's Rules of Procedure implies that each class should be divided in 2-hours allocations. These classes must start from 7 a.m. to 1 p.m. in the morning, from 2 p.m. to 6 p.m. in the afternoon and from 6 p.m. to 10 p.m. in the evening. Classes are organized in semester groups. Each class belongs to a semester group following an undergraduate course program. Classes are offered at a limit number of classrooms and at certain time periods: morning, afternoon and evening. Some classes must be offered at a specific time, i.e. they cannot be scheduled. At the beginning of each semester, students point out which classes they desire to attend.
Besides UFF's Rules of Procedure, professors and students were interviewed to catch other constraints. The list of constraints for the problem addressed is: • Class allocated time -classes with more than 2 hours can be allocated in distinct days but they should be allocated at the same time in a week. • Class allocated day -classes should not be offered at consecutive days in a week; • Class maximum hours per day -refers to the maximum number of hours that a class can be assigned in a day. Depending on the penalty associated with a violation of this constraint, quality of a solution may be affected mildly or even border the impracticality; • Class minimum hours per day -classes, if assigned in a day, must have a minimum number of hours; • Class available shift -classes should be allocated according to the shifts (morning, afternoon or evening) available to respective university course; • Class fixed timeslots -there are some predefined classes which are scheduled in given timeslots; • Class interval -lunch break is 1-2 p.m.; • Class maximal and minimal timeslots -start time of classes is 7 a.m. and ending time is 10 p.m; • Classroom available -the number of available classrooms must be considered; • Class semester group time collision -classes belonging to a semester group in a course program cannot be allocated at a same day and time; • Class shift -classes offered at distinct days should be offered at the same shift (morning, afternoon or evening); • Class time windows -classes with more than 2h in a day must be offered continuously; • Professor unavailable time -classes must be allocated considering timeslots a professor declares himself available. However, a professor can declare timeslots of total availability, timeslots of total unavailability and timeslots of partial availability, that is, in which the professor is available, but if possible, allocation of classes should be avoided; • Professor time collision -two or more classes cannot be assigned to a professor at a same day and time; • Professor maximum days -refers to the maximum number of days in a week a professor has classes assigned. Depending on the penalty associated with a violation of this constraint, quality of the solution may be affected mildly or even border the impracticality; • Professor time windows -aims to maximize the number of continuously allocated classes for a professor in a day; • Professor class collision -a professor could not attend two classes at the same time; • Professor hours per day -refers to the maximum number of hours a professor teaches in a day. Depending on the penalty associated with a violation of this constraint, quality of the solution may be affected mildly or even border the impracticality; • Student classes collision -aims to maximize the number of classes each student desires to attend.
As suggested in Pereira and Costa (2016), constraints were classified as hard (must be satisfied) and soft (should be satisfied Soft constraints were divided into three groups because they may vary from desired constraints to crucial ones. Group 1 contains soft constraints with less importance. Group 2 has soft constraints a bit more important than Group 1. Group 3 contains soft constraints with higher importance, which should be satisfied whenever possible. Some soft constraints are equivalent but with distinct weights (penalties). For instance, R3.5 and R1.2 deal with the maximum number of days allocated to a professor. R1.2 has an amount of days as a parameter that, if not violated, brings a bit more quality to the solution, whereas R3.5 has the maximum number of days that should be allocated. So, R3.5 has greater importance than R1.2. Babaei et al. (2015) points out UCTTP has on average between 6 and 7 hard constraints and between 9 and 10 soft constraints. The UCTTP addressed in this paper has 7 hard constraints and 15 soft constraints, which demonstrates the complexity of this problem.

Variable Neighborhood Search
In metaheuristic Variable Neighborhood Search (VNS) (Mladenovic and Hansen, 1997), an initial solution is built by a constructive method, which is systematically disturbed using different neighborhood structures. This process acts as a search diversification mechanism. After this process a local search is performed which is typically a search intensification mechanism. Whenever local search cannot improve the best solution, the disturbance mechanism is altered using another neighborhood structure.
Although metaheuristics VNS is commonly used to solve NP-Hard problems (Burke et al., 2010;Cruz et al., 2012;Schermer et al., 2019;Cai and Zhu, 2019), only one paper - Borchani et al. (2017) -using this metaheuristic for UCTPP has been found in the scientific literature 1 , which does not apply VNS directly; applies only the local search procedure on variable neighborhood -VND (variable neighborhood descent). Figure 1 presents the standard algorithm of metaheuristic VNS for a minimization problem, which receives as input parameters the r neighborhood structures to be analyzed. Initially, Line 1, an initial solution, s, is constructed by a purely greedy method. The loop in Lines 2-14 ensures that VNS iterations will be performed until the stop condition is reached. Each of the VNS iterations begins, Line 3, with the random choice of a neighbor solution, s', of s in the current neighborhood structure, Nk. Then, Line 4, s' is refined by a local search method. If the solution s" found by refinement method is better than s, then s is updated and N1 becomes the current neighborhood structure. Otherwise, the next neighborhood structure (Nk+1) is investigated. Finally, the best solution found, s, is returned in Line 15.

Tabu Search
The metaheuristic Tabu Search -TS - (Glover, 1989;1990) is an adaptive auxiliary procedure that guides a local search algorithm in continuous exploration within a search space. Starting from an initial solution, the search moves, at each iteration, to the best solution in the neighborhood, not accepting moves that lead to already visited solutions, which are stored in a tabu list 2 . The list remains in memory by saving solutions already visited (tabu) over a number of iterations (tabu time). As a result, the global optimum is expected to be found or a solution very close to it.
TS is one of the most commonly used local search-based metaheuristics for solving NP-Hard problems (Zeng et al., 2016;Delgoshaei et al., 2018;Schermer et al., 2019). This fact also occurs reviewing the scientific literature on the UCTPP, where TS is often used in hybrid versions (Jat and Yang, 2011;Lohpetch and Jaengchuea, 2016;Feng et al., 2017). Figure 2 presents the standard tabu search algorithm for a minimization problem. In Line 1, a solution is constructed by a purely greedy method. The loop in Lines 4-11 ensures that the search will remain until the stopping criterion is met. In Line 5, the best neighbor solution s' generated from a non-tabu movement or satisfying an aspiration criterion 3 is selected. In Line 06, the tabu list T is updated. The conditional test on Lines 8-10 verifies that the best solution s* should be updated. Finally, line 12 returns the best solution found.  Research to develop an environment that facilitates the development of heuristics is the focus of some studies in the literature. Some computational tools for this purpose already exist to reduce heuristic development complexity and make them more generic. Among the available tools are: iOPT (Voudouris et al., 2001), EO (Keijzer et al., 2001), JEO (Arenas et al., 2002), Hot-Frame (Fink and Voß, 2002), HeuristicLab (Wagner and Affenzeller, 2005), EasyLocal ++ (Di Gaspero and Schaerf, 2003), ParadisEO (Cahon et al., 2004), JCLEC (Ventura et al., 2008), OPT4J (Lukasiewycz et al., 2011), MDF (Lau et al., 2007) and Jenes (Troiano and Pasquale, 2010). These tools have in common the goal of reusing code by providing implemented common parts in metaheuristic developments. Thus, only the specific parts of a new heuristic need to be implemented by the user.
The framework FINESS, like the others computational tools, focuses on reuse, but also on other features: • Performance -besides being easy to use, FINESS aims performance when compared with manual implementation.
Among those characteristics, extensibility concerns FINESS framework's main goal. Class diagram of this framework is shown in Figure 3. The objective of this figure, in this paper, is to highlight the relationship between classes "CProblem" and "CConstraint", which expresses that a problem will have lists of constraints associated, one of hard constraints and another of soft constraints. A penalty is associated with each soft constraint in this list, symbolizing how much the quality of the solution is affected by a violation of such a constraint.
In this way, once constraints for solving a problem are implemented, it can be easily configured to meet other problems of the same class. For example, an implementation performed to solve an UCTTP of a specific institution can be simply tuned to another institution. This can be done by: (i) removing or inserting constraints in one of the lists (restrictions that exist for one problem may not exist for another); (ii) changing the constraints from one list to another (hard constraints for one problem may be soft constraints for another, and vice versa); and (iii) changing the penalty associated with soft restrictions (violation of a constraint may be more restrictive from one problem to another).

Analytic Hierarchy Process
Analytic Hierarchy Process (AHP) was presented in (Saaty, 1980;2001) as a technique for choosing one among a set of alternatives, considering a set of criteria (objectives). In a macro way, AHP has two main phases: (i) definition of weight (preferences) of each criterion; and (ii) definition of priority of each alternative according to the criteria involved. In (i), a pairwise comparison between the criteria is performed to define the weight of each criterion. In (ii), for each criterion, a pairwise comparison between the alternatives is performed to define the priority of each one.
In the scientific literature, it is common to find articles that use the method AHP to: (i) select one of a set of alternatives (Santis et al., 2017;Qin et al.;Tavana et al., 2019); and (ii) classify a specific scenario into a set of predefined categories (Chakraborty et al., 2019;Karan et al., 2019;Yang et al., 2019). However, some articles use AHP to define weights, which will serve as input to other methods, such as fuzzy logic (Agápito et al., 2019;Peng et al., 2019), heuristics (Wang et al., 2018;Toktas and Can, 2019), etc.
According to Saaty (1980;2001), each element a ij of a pairwise comparison matrix (Matrix A) is defined as Equations 1 and 2. ij a 1 where n is the number of criteria or alternatives under analysis. Judgement scale used in this work is the same one proposed by Saaty (1980), which is described in Chart 1.

Relative intensity
Definition Explanation According to Saaty's method (Saaty, 1980), the preference matrix A should be normalized, generating the matrix B (Equations 3 and 4).
In order to calculate the eigenvector w= [wi], which expresses the preference (weight) of the elements, the Equation 5 is used.
The next step involves the consistency check (Saaty, 1980;2001) of comparisons by calculating the maximal eigenvalue, according to the Equations 6 and 7.
where λmax is the matrix's largest eigenvalue and CI is the consistency index.
Using the random consistency index table from Saaty (1980), we can calculate the consistency ratio CR with the Equation 8. .

METHODOLOGY
To achieve the objectives described in Section "Introduction", the following methodology was followed: • Data acquisition: data were collected from the coordinators of the undergraduate courses in Computer Science and Industrial Engineering at the Fluminense Federal University (UFF); • Problem solving: Hybrid heuristics, which combine metaheuristics VNS and Tabu Search, have been proposed. These heuristics were developed with the aid of the FINESS framework (described in Section "Framework FINESS"); • Experiments: they were conducted over four real instances, referring to the second semester of 2016 and the first semester of 2017 of the undergraduate courses in Computer Science and Industrial Engineering at UFF; • Validation of results: The results obtained by the proposed hybrid heuristics were compared with the manual solution obtained by the course coordinators. The results were also compared with standard versions of the metaheuristics VNS (algorithm of Figure 1) and Tabu Search (algorithm of Figure 2), which were also developed with the aid of the FINESS framework.

SOLUTION APPROACHES
Four heuristics were developed using the FINESS framework for granting fast development. For a better understanding, objective function and solution encoding is presented in Section "Objective function and solution encoding", method used to set soft constraints violation penalties is described in Section "Definition of violations penalties", constructive algorithm is presented in Section "Constructive method", neighborhood structures used are described in Section "Neighborhood structures", the chosen local search method is presented in Section "Local search method" and finally proposed heuristics are detailed in Section "Proposed heuristics".  pi values were obtained using a multicriteria decision analysis method, which is detailed in Section "Definition of violations penalties".

Objective function and solution encoding
A solution to the addressed problem was encoded as a three-dimensional matrix Mq×m×n, where m, n and q represent, respectively, the number of timeslots, the number of days and the number of semester groups. Each position (i,j,l) of the matrix M has the class, of semester group l, allocated at timeslot i of day j. if Mi(i,j,l)=0, there is no class allocated.

Definition of violations penalties
As described in the previous section, quality of solution is associated with the amount of soft constraints violated. Less violation implies better solutions.
As already mentioned, there are three groups of soft constraints. Constraints of Group 3 when violated turn solution almost unfeasible. Therefore, a high penalty to constraints of this group are applied. Penalty was set at 10000, which was chosen so that this group stands out from the other two.
The penalties of the other two groups were defined using multicriteria decision analysis. However, due to the importance of each group, the range of values in which each group is comprised is defined a priori. Penalties of constraints of Group 1 were defined as between 1 and 10. The penalties of the constraints of Group 2 were defined as between 100 and 500.
The multicriteria decision method used was "Analytic Hierarchy Process" (AHP), which defines a preference (between 0 and 1) for each of the criteria analyzed. After applying the AHP method, preferences are scaled to the range defined for each group of constraints, generating penalty values.
The application of the method AHP for defining the violation penalties of the constraints of Group 1 and 2 will be described in Section 5.

Constructive method
In the proposed constructive method, classes are allocated according to the following preference order: (i) classes assigned to professors with many time restrictions; (ii) course shift preference; and (iii) timeslots in chosen shift are considered.
When inserting a class x in the partial solution, x is divided into 2-hours allocations for which priority is given to the insertion in the same shift (morning, afternoon or evening), at the same time and on nonconsecutive days. Figure 4 depicts a class scheduling example, in which two classes are allocated: Calc1 and ProgComp1. Class Calc1 has 4 hours (Mondays and Wednesdays at 9 a.m.) and cannot be scheduled (it has a fixed schedule). Class ProgComp1 has 6 hours and his professor is unavailable on Wednesday mornings and on Fridays. Allocation of classes prioritizes morning period, then afternoon period and finally evening period. As Calc1 has a fixed schedule, it is allocated first, at 9 a.m. on Mondays and Wednesdays. Then ProgComp1 is allocated at 7 a.m. on Monday. As his professor is unavailable at Wednesday mornings, ProgComp1 is allocated at 2 p.m. on Wednesday. Finally, since his professor is unavailable on Fridays, ProgComp1 is allocated at 7 a.m. on Thursdays.

Neighborhood structures
Two neighborhood structures were used: k-Reschedule and k-Exchange. Movements in those neighborhood structures happens inside a semester group. In k-Reschedule neighborhood, k allocations are randomly chosen and reschedule, i.e. each of the k allocations is removed from the current day/time and inserted at another day/time. Figure 5 exemplifies 1-Reschedule. Class "IntroCienComp" previously allocated on Wednesday at 7 a.m. is moved to Monday at 2 p.m.  In k-Exchange neighborhood, k allocation pairs (a1, a2) are randomly chosen. Each allocation pair is inverted, i.e. allocations a1 and a2 have their positions exchanged. Figure 6 exemplifies a 1-Exchange movement between classes "GeoAnaCalcVet" and "ProgComp1".

Local search method
This work uses method VND (Variable Neighborhood Descent) (Mladenovic and Hansen, 1997) as local search strategy since it allows multiple neighborhood structures. Figure 7 presents VND algorithm, which receives as input parameters the solution s0 to be refined and the neighborhood structures N1=1-Exchange, N2=2-Reschedule and N3=2-Exchange.

Proposed heuristics
In this work, four heuristics were proposed: 1. VNS -follows the VNS framework described in Figure 1. In the VNS disturbance procedure, the neighborhoods 3-Reschedule and 3-Exchange were used. 2. TS -follows the Tabu Search framework described in Figure 2. As local search procedure, a method VND-TS was used, which is based on the VND algorithm described in Figure 7, using tabu search to investigate the neighborhood Nk (Line 4). The tabu search procedure is interrupted when a solution better than s (current best solution) is found or when 200 iterations without improvement are performed. For each neighborhood, a different tabu tenure was defined: 100 for 1-Exchange and 2-Exchange; and 50 for 2-Reschedule. This VND-TS method is different from that used by Cruz et al. (2012) and Zeng et al. (2016), since the TS method is not used as an intensification process applied after the execution of the VND search. 3. VNS-TS1 -adapts the VNS framework described in Figure 1, replacing the local search procedure by the Tabu Search method. In the VNS disturbance procedure, the neighborhoods 3-Reschedule and 3-Exchange were used. As local search procedure, method VND-TS described at Item 2 was used. 4. VNS-TS2 -follows the VNS framework described in Figure 1, inserting an intensification phase, which is performed every 50 VNS iterations. During these 50 iterations, a pool with the 5 best solutions is defined which is investigated, in the intensification phase, by the VND-TS method described at Item 2. In the VNS disturbance procedure, the neighborhoods 3-Reschedule and 3-Exchange were used.
The values of the input parameters and the neighborhood structures used by the proposed heuristics were defined by experiments.

RESULTS AND DISCUSSION
The experiments were conducted using a 1.10GHz Intel Processor. Initially, the violation penalties of the soft constraints of Groups 1 and 2 were set. Then, the proposed heuristics were evaluated.

Definition of penalties of the constraints of Groups 1 and 2
As already reported, AHP has two main phases: (i) definition of weight (preferences) of each criterion; and (ii) definition of priority of each alternative according to the criteria involved. In this study, only the first phase will be held.
Initially, we will define penalties of Group 1 constraints, which is formed by the following constraints (already defined in Section "Addressed problem"): Each of these restrictions were treated as a criterion, for which a weight should be defined by AHP method. Each criterion was pairwise compared with others and placed in the preference matrix A described in Table 1. For such comparison, a set of specialists (current and former coordinators of undergraduate courses) were gathered in a room, which reached a consensus. The normalized matrix B is presented in Table 2 -the last column presents the eigenvector w. Consistency ratio found was CR = 7.777%, which is consistent because it is less than 10% (Saaty, 1980;2001).
To scale the weights (eigenvector w) found between 1 and 10 (range defined for Group 1), the Equation 10 was used. where wmax and wmin represent respectively the largest and smallest values of w and pi represents the penalty associated to constraint i. Penalties associated to constraints R1.1, R1.2, R1.3 and R1.4 were respectively set in 10, 6, 3 and 1.
To obtain Group 2 constraints penalties, the same procedure was followed. Group 2 is formed by the following constraints (already defined in Section "Addressed problem"): The preference matrix A is described in Table 3. For such pairwise comparison, a set of specialists (current and former coordinators of undergraduate courses) were gathered in a room, which reached a consensus. Normalized matrix B is presented in Table 4 -last column presents eigenvector w. Consistency ratio found was CR = 7.800%, which is consistent because it is less than 10% (Saaty, 1980;2001).
To scale the weights (eigenvector w) found between 100 and 500 (range defined for Group 2), the Equation 11 was used. where wmax and wmin are respectively the largest and smallest values of w and pi is the penalty associated to constraint i. Penalties associated to constraints R2.1, R2.2, R2.3, R2.4, R2.5 and R2.6 were respectively set in 170, 100, 500, 118, 140 and 140.

Evaluation of the proposed heuristics
The proposed heuristics were coded in C++, using the Visual Studio 2018 compiler. The performance of the proposed heuristics was evaluated on a set of 4 real instances, which were approached by the coordination of the undergraduate courses in Computer Science and Industrial Engineering of Fluminense Federal University (UFF) in the second semester of 2016 and in the first semester of 2017.
Each proposed heuristic was executed five times, in which each execution lasted 300 seconds. Chart 2 shows the instances used at the computational experiments. For each instance is presented: name, number of classes (c), number of professors (p) and the cost of the solution manually obtained by the undergraduate course coordination. Table 5 and 6 present the results. Table 5 shows, for each instance and for each heuristic, the cost of the best solution (Best) found and the Gap -percentage of improvement of the best solution cost in relation to the solution manually obtained. The best results were highlighted in bold.  Table 6 shows, for each instance and for each heuristic, the average cost (Avg) obtained in five executions and the Gap -percentage of improvement of the average cost (Avg) in relation to the solution manually obtained. Best results were highlighted in bold. All proposed heuristics outperform manual solutions. Hybrid heuristics obtained the best results, with emphasis on the heuristic VNS-TS1. Analyzing the average cost obtained on five executions, VNS-TS1 obtained best results for all instances. When the best solutions found are compared, VNS-TS1 obtained the best results in three out of four instances, being surpassed by the heuristic VNS-TS2 on the other instance. VNS-TS2 obtained the best solution for three out of four instances.

FINAL CONSIDERATIONS AND RECOMMENDATIONS
In this work, four heuristics were developed for the university course timetabling problem (UCTTP), which were applied in the Computer Science and Industrial Engineering undergraduate courses of Fluminense Federal University. The heuristics were developed with the support of the FINESS framework, which, among other virtues, allows the heuristic extensibility, that is, the process of adding and removing constraints is simple, as well as changing the values of penalties of soft constraints. This feature allows proposed heuristics to be more easily adaptable to UCTTP of other educational institutions.
The computational results showed the efficiency of the hybrid VNS-TS heuristics, with emphasis on the heuristic VNS-TS1, which uses tabu search as local search method. VNS-TS1 obtained best average results for all instances and found best solution for three out of four instances. The percentage of improvement obtained by this heuristic, in relation to the manual solution, ranged in average between 12.0 to 15.5%. The heuristic VNS-TS2, which uses tabu search as an intensification strategy, also achieved good results.
In addition to the heuristics, it is also proposed, as an original contribution of this work, a method VND-TS which combines VND flexibility with deep investigation of Tabu Search. This method is used as local search phase of heuristic VNS-TS1, which contributed to the success of this heuristic.
The proposed heuristic VNS-TS1 has been in use since the first half of 2019 by the coordination of the undergraduate courses in Computer Science and Industrial Engineering of Fluminense Federal University (UFF). Even though each university has specific constraints on its timetable, the use of the proposed heuristic is possible because it has been developed using a framework that allows for the easy insertion and removal of constraints. In other words, little programming effort will be needed to adapt the proposed heuristic to another university timetabling problem.
The next step of this study is the development of a collaborative computer system for the university time allocation problem. This system will make use of collaborative techniques that will gather "suggestions" from teachers and students in the elaboration of the timetable. The heuristic VNS-TS1 will be used by the collaborative system to solve the timetabling problem.