0

I have a problem of creating an exam schedule based on three factors: rooms, courses, and days. There are a set number of rooms r, courses c, and days d where each day has three slots.

There is also a set of students and a mapping from students to courses so that there cannot be any conflicts.

I'm trying to find an algorithm for this and found that this fit the max-flow problem. I'm having troubles making a flow network graph for this.

Thanks

General Grievance
  • 4,555
  • 31
  • 31
  • 45
John Smith
  • 635
  • 1
  • 10
  • 19
  • 1
    What have you tried so far? There are approaches other than the one you've suggested. For instance a genetic algorithm (ftp://128.243.21.14/cs/pub/cs/ttp/Papers/PDF/AISB95.pdf or http://www.codeproject.com/Articles/23111/Making-a-Class-Schedule-Using-a-Genetic-Algorithm) or constraint satisfaction (http://stackoverflow.com/questions/1597542/scheduling-algorithm-problem). – Simon Apr 06 '13 at 21:04
  • I've created a general network flow graph given that there are no restrictions (aka student conflicts don't matter). I'm just stumped on this part. I'm not sure how to incorporate it so that given a mapping based on students, flow cannot go through. – John Smith Apr 06 '13 at 21:09

1 Answers1

1

The competition ITC2007 track 1 examination defined a very good, non-trivial exam scheduling problem with multiple real-world datasets. Because the problem is NP-complete, there's no polynomial algorithm known to man that solves it optimally.

For inspiration on which algorithms can handle this problem, take a look at this java, open source implementation of that competition with OptaPlanner:

Geoffrey De Smet
  • 26,223
  • 11
  • 73
  • 120