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 ID: 489568
Download Presentation The PPT/PDF document "Schedule Maker Language" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Schedule Maker Language
Sinan
Xiao
Green Zhang
Liang Zhang
Zhemin
ZhangSlide2
What is a Schedule by
Google Calendar?Slide3
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 relationshipsSlide4
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 taskSlide5
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_monSlide6
Schedule Maker Language
User describes the problem
System provides a solution
Fill in the time for non-fixed events
Ensure fulfillment of constraintsSlide7
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).Slide8
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.Slide9
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
Slide10
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 eventsSlide11
Topological sort
works for nonoverlapping among events
works for before, after
A fatal drawback:
cannot deal with fixed events
Slide12
Our solution
Combine topological sort and linear programming
Use topological sort for events nonoverlapping
Use linear programming for all other optimization workSlide13
Design Issues
Challenges in Implementing Scheduling
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
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 scalableSlide14
ArchitectureSlide15
Implementing and TestingSlide16
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
endSlide17
Use Schedule Maker!
FeaturesSlide18
Use Schedule Maker!Slide19
Thanks for your time!!