A few weeks ago I was working on a recursive scheduling algorithm for assigning jobs to computers. At that time, PJYelton and I discussed what we thought would work as an iterative solution. I'm now investigating this, but my current solution is not doing the trick.
The general problem: I have a list of jobs, each of which may be scheduled on several different computers. Each job has a start and end time associated with it. The goal is to schedule as many of the jobs as possible. No job may be scheduled on the same computer at the same time...if this occurs, then perhaps one of the jobs may be scheduled on another machine.
I have succesfully solved this problem using recursion, but I now desire for a fast and correct iterative solution. I attempted to solve it using a greddy algo which simply starts with the first computer, assigns all possible jobs to it, then moves to the next computer, assigns all possible remaining jobs, etc. This solution solves almost all cases, but unfortunatly, doesn't get the job done in general.
Does anyone care to point me in the right direction? If there are questions about the problem, please ask.