Question

I'm working on a Java application which should allow users to optimize their daily schedule. For that, I need a framework that helps calculate optimal times for "tasks" taking note of:

  1. Required resources and resource usage limits
  2. Dependencies between tasks (can do with only F->S relations though)
  3. Earliest and latest start-finish times, slack times
  4. Baseline vs. actual times - allowing to report actual start and finish times, updating the rest of the tasks accordingly

Some clarifications: I am not looking for neither a framework to draw these gantts, nor a framework that deals with one specific problem domain (such as classrooms), and definitely not a framework that deals with thread scheduling.

Thanks!

Was it helpful?

Solution

I don't think there is a framework that will suit your needs out of the box. I know you said you're not looking for a job/thread scheduler, but I think your best bet is probably to roll your own optimization/prioritization code around a "dumb" job/thread scheduling framework like Quartz (or whatever you have in place). If you go with Quartz, the API can probably provide you with some information useful for items 3 and 4 of your optimization criteria. Additionally, Quartz has a job "priority" concept, so once you've computed the optimized priority, it should make scheduling the execution easy.

If you do find a framework that does what you ask, please post back here -- I'm sure there are others who could use something similar.

OTHER TIPS

You could check for a project management software. It seems you need it written in java with the ability to modify the code. It really narrows down the list but I made a quick scan and I see at least 2 of them which could help (Endeavour and Project.net).

Perhaps what you need is something like evolutionary/genetic algorithm to generate an optimized schedule?

If yes, you may have a look at this Watchmaker Framework: http://watchmaker.uncommons.org/

With evolutionary/genetic algorithm, it randomly generate a pool of schedule. Your main focus will be defining the scoring criteria to evaluate each schedule generated. Then let it(the schedules generated) evolve from generation to generation until it is optimum enough for you.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top