internettuffguy
February 10th, 2008, 01:45 AM
Hi folks,
I'm keen on writing a piece of software that takes a university student's timetable options (Multiple classes, multiple tutorials, contacts and lecture options for each class etc) and generates an optimized set of class streams for that student.
An optimum day would have a couple of conditions, primarily a lunch break if more than 4 hours long, with little fragmentation of classes otherwise and ideally between the hours of 9am-2pm.
I have never embarked on a project like this and am more of a web developer than algorithm guru, so I would appreciate any advice no matter how fundamental you may have.
My current thoughts are: Process through every single option for each class, and determine which configurations cause clashes. Discard these configurations. For those remaining non-clashing configurations, evaluate them all to determine a) "fragmentation" hours (i.e. unnecessary breaks), day length and whether or not it has a lunch break, and also over what hours that configuration is distributed.
To me this seems like a clunky brute force approach. Do you have any ideas?
Should I succeed in this project I will happily post up the source code.
I'm keen on writing a piece of software that takes a university student's timetable options (Multiple classes, multiple tutorials, contacts and lecture options for each class etc) and generates an optimized set of class streams for that student.
An optimum day would have a couple of conditions, primarily a lunch break if more than 4 hours long, with little fragmentation of classes otherwise and ideally between the hours of 9am-2pm.
I have never embarked on a project like this and am more of a web developer than algorithm guru, so I would appreciate any advice no matter how fundamental you may have.
My current thoughts are: Process through every single option for each class, and determine which configurations cause clashes. Discard these configurations. For those remaining non-clashing configurations, evaluate them all to determine a) "fragmentation" hours (i.e. unnecessary breaks), day length and whether or not it has a lunch break, and also over what hours that configuration is distributed.
To me this seems like a clunky brute force approach. Do you have any ideas?
Should I succeed in this project I will happily post up the source code.