190 likes | 337 Vues
Discover a powerful scheduling tool designed to enhance your time management. Our Schedule Maker Language allows users to define fixed and non-fixed events, set constraints, and generate optimal schedules. Unlike traditional static scheduling, our system uses declarative language to describe scheduling problems, enabling automated solutions for complex scenarios. By combining topological sorting and linear programming, we provide a feasible approach to scheduling that can handle overlapping events and multi-user support. This groundbreaking tool revolutionizes how you manage your time efficiently!
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