This is an implementation of a multiagent system for timetable scheduling, in NetLogo. Different breeds of agents play the role of different stake-holders in the problem, and simulate the negotiation that normally occurs in offline course-scheduling to arrive at an optimal schedule.
In this model, I make the following assumptions:
- All lectures are of the same time interval
- All lectures are of the same type
- There is no bottleneck in terms of rooms (we do not need to account for rooms during scheduling - just the time slots)
I've used the largest degree heuristic and simulated annealing to solve part of the problem. Currently, this handles intra-department scheduling. I still have to implement the function where individual department schedules are patched together to create a global schedule, while minimizing the number of clashes.
num_departments
num_courses
[course_id department_id]
num_professors
[department_id list_courses]
num_students
[department_id list_own_dept_courses list_other_dept_courses]