Schedule Maker Language Sinan Xiao Green Zhang Liang

  • Slides: 19
Download presentation
Schedule Maker Language Sinan Xiao Green Zhang Liang Zhemin Zhang

Schedule Maker Language Sinan Xiao Green Zhang Liang Zhemin Zhang

What is a Schedule by Google Calendar?

What is a Schedule by Google Calendar?

Calendar Program Drawbacks • Schedule MANAGEMENT – Static – user needs to make every

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

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: 10 pm to 5: 25

Schedule Maker Language • Declarative Language: plt_mon: Mon, 4: 10 pm to 5: 25 pm plt_mon: Mon, 4: 10 pm FOR 1 hr 15 min plt_write_powerpoint: FOR 4 hr plt_rehearse: FOR 1 hr 20 min plt_rehearse after plt_write_powerpoint plt_rehearse before plt_mon

Schedule Maker Language • User describes the problem • System provides a solution –

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

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

Our problem • Our input: fixed events, unfixed events constraints between them Ø making an optimal schedule turns out to be NPhard as well as finding a complete schedule. Ø Even deciding existence of a complete schedule is NP-complete, which asks whethere 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

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

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

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

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 1. Take multiple

Design Issues • Challenges in Implementing Scheduling • Solution in Design 1. Take multiple source files 1. In real life, an together (this can lead to emergency may happen every quantum of time. support of multi-users) 2. The events and the 2. Instead of generating IR in constraints should be one to one mapping, use considered as sets internal data structure to regardless the sequence. store the sets and generate 3. No perfect algorithm can afterwards solve the problem at the 3. Separate the solver part --> moment more scalable

Architecture

Architecture

Implementing and Testing

Implementing and Testing

Other Syntax Features plt_wed: Wed, 16: 10 pm to 17: 25 EVERY 7 dy

Other Syntax Features plt_wed: Wed, 16: 10 pm to 17: 25 EVERY 7 dy plt_final: 5/4, 4: 10 pm to 5: 25 pm PRIO 200 if(plt_final before END) plt_final_review: FOR 2 hr plt_final_review before plt_final end

Use Schedule Maker! Make Scheduling Convenient Easy to Use Nice Output Features Support Multiple

Use Schedule Maker! Make Scheduling Convenient Easy to Use Nice Output Features Support Multiple Users Extendable

Use Schedule Maker! Strong Event/Time Representation Complicated Relationships Powerful Schedule Algorithm

Use Schedule Maker! Strong Event/Time Representation Complicated Relationships Powerful Schedule Algorithm

Thanks for your time!!

Thanks for your time!!