190 likes | 324 Views
Schedule Maker Language. Sinan Xiao Green Zhang Liang Zhang Zhemin Zhang. What is a Schedule by Google Calendar?. Calendar Program Drawbacks. Schedule MANAGEMENT Static – user needs to make every change No logic distinction between Fixed events, e.g. class lectures
E N D
Schedule Maker Language Sinan Xiao Green Zhang Liang Zhang Zhemin Zhang
Calendar Program Drawbacks • Schedule MANAGEMENT • Static – user needs to make every change • No logic distinction between • Fixed events, e.g. class lectures • To-do tasks, e.g. homework • No inter-relationships • Does it matter if you read the textbook before or after class? • Insertion of new item: • Manually locate valid times, based on user’s understandings of relationships
Alternative Scheduling System • User defines: • START and END, the “scope” of the output schedule • Fixed Events with known start and end times • Non-Fixed Events with just a duration • Constraints, each help describe when tasks should be scheduled • reading before class • homework before deadline • party after homework • … • System can find a time for each task
Schedule Maker Language • Declarative Language: plt_mon: Mon, 4:10pm to 5:25pm plt_mon: Mon, 4:10pm FOR 1hr 15min plt_write_powerpoint: FOR 4hr plt_rehearse: FOR 1hr 20min plt_rehearse after plt_write_powerpoint plt_rehearse before plt_mon
Schedule Maker Language • User describes the problem • System provides a solution • Fill in the time for non-fixed events • Ensure fulfillment of constraints
Feasible and optimal schedule • It is easy to check the existence of a complete schedule and then finding it • If all events are fixed • Sorting by time • If all events are not fixed(with constraints) • topological sort • Making an optimal schedule (like 0-1 knapsack).
Our problem • Our input: fixed events, unfixed events constraints between them • making an optimal schedule turns out to be NP-hard as well as finding a complete schedule. • Even deciding existence of a complete schedule is NP-complete, which asks whether there is a schedule that can schedule all events which satisfy all constraints.
Our problem(2) • In fact, our scheduling problem is same as shortest TSP, it is in Polynomial Hierarchy • What we do is • Using Linear programming/topological sort • Or finding a suboptimal schedule (heuristic/ local search) • Branch and bound • Dynamic programming
Linear programming • Works for optimization: • before, after • shorter, longer • as early as we can, as late as we can • A fatal drawback: cannot deal with overlapping among events
Topological sort • works for nonoverlapping among events works for before, after • A fatal drawback: cannot deal with fixed events
Our solution • Combine topological sort and linear programming • Use topological sort for events nonoverlapping • Use linear programming for all other optimization work
Design Issues • Challenges in Implementing Scheduling • Solution in Design • Take multiple source files together (this can lead to support of multi-users) • Instead of generating IR in one to one mapping, use internal data structure to store the sets and generate afterwards • Separate the solver part --> more scalable • In real life, an emergency may happen every quantum of time. • The events and the constraints should be considered as sets regardless the sequence. • No perfect algorithm can solve the problem at the moment
Other Syntax Features plt_wed: Wed, 16:10pm to 17:25 EVERY 7dy plt_final: 5/4, 4:10pm to 5:25pm PRIO 200 if(plt_final before END) plt_final_review: FOR 2hr plt_final_review before plt_final end
Use Schedule Maker! Features