Scheduling is a classic problem. For example, the University has to schedule
classes each semester. They would like a piece of software that would help
them. Develop such a piece of software.
Describe the problem, the knowledge needed, the search space, your
algorithm, and your algorithms traversal of the search space.
I have provided an evaluation scheme. Every conflicting lecture (same room,
same time) is -10, every conflicting seminar (same room, same time) is -5,
every conflicting lecturer (different lecture or seminar, same room, same time)
is -2, and every conflicting student (different module, same room, same time)
is -1. My best score on the complex data set is undone.
Grading Scheme
- 10%Problem Description
- 10%Knowledge Description
- 20%State Space Description
- 10%Code
- 10%Result on Simple Test
- 20%Result on Complex Test
- 20%Algorithm and Algorithm Description
Further notes
You can write the code in any language you like, but I prefer Java or C++. If
I can not compile (assuming I need to compile) and run the code you will have
to help me do that.
Two sample data sets are provided.
simple data
and
complex data.
I have provided an input class in Java, an output class in Java and an
evaluator in Java. They are available at
input,
output, and
evaluator. Please feel free to report
any problems with these back to me, though I make no guarantees. If you want
to share code for these portions of the project, feel free.