Assignments Robust Execution of Temporal Plans • Remember:

advertisement
Massachusetts Institute of Technology
Robust Execution of Temporal Plans Slide Contributions:
Andreas Hofmann
Julie Shah
Prof Brian Williams
16.410 / 16.413
October.6th, 2010
Assignments
• Remember:
Problem Set #5 due today, Wed, Oct. 6th, 2010.
Problem Set #6 out today.
• Reading:
– Today: Dechter, R., I. Meiri, J. Pearl, “Temporal Constraint
Networks,” Artificial Intelligence, 49, pp. 61-95,1991.
– Wednesday: Logic [AIMA] Ch. 7, 8
• Exam:
– Mid-Term - October 20th.
Brian Williams, Fall 10
2
1
Executing Time Critical Missions
Image credit: NASA.
3
Team Coordination under Time Pressure
Images of scrub nurses and surgeons
removed due to copyright restrictions.
An effective Scrub Nurse:
•
works hand-to-hand, face-to-face with surgeon,
•
assesses and anticipates needs of surgeon,
•
provides assistance and tools in order of need,
•
responds quickly to changing circumstances,
•
responds quickly to surgeon’s cues and requests.
4
2
Human-Robot Teaming
Images of human-robot teaming (in surgical, space, and rescue settings)
removed due to copyright restrictions.
5
Robust Execution of Time-critical Tasks
• Executing Simple Plans
• Robust Execution
– Describing Temporal Plans
– Checking Temporal Plan Consistency
– Scheduling Plans
– Robust, Dynamic Scheduling
6
3
Total Order Plans <Actions[i] >
Contain Irrelevant Commitments
cleanH
quiet
wrap
dinner
present
Prop at 0 Action at 0
noGarb
Prop at 1
carry
noop-dinner
noop-present
Action at 1
cleanH
dinner
present
Prop at 2
Partial Order Plans <Actions, Orderings, Links>
Remove Irrelevant Commitments
cleanH
quiet
cook
wrap
Prop at 0 Action at 0
noGarb
present
carry
Prop at 1
Action at 1
dinner
cleanH
dinner
present
Prop at 2
4
Partial Order Plan Execution
cleanH
quiet
cook
wrap
Start
Prop at 0 Action at 0
noGarb
present
carry
Prop at 1
Action at 1
dinner
cleanH
dinner
present
Prop at 2
Partial Order Plan Execution
Initialize queue Ready, with action Start..
Mark all actions as “not executed.”
Loop
• If Ready is empty, Then terminate.
• Dequeue action a from Ready and execute.
• When completed, mark a as executed.
• For each succeeding action b such that
a < b or linked(a,b,p),
– If every preceding action c is marked “executed,”
such that c < b or linked(c,b,p’),
– Then queue b on Ready.
5
Plan Execution w Action Monitoring
cleanH
quiet
cook
wrap
Start
Prop at 0 Action at 0
noGarb
present
carry
Prop at 1
Action at 1
dinner
cleanH
dinner
present
Prop at 2
Plan Execution w Action Monitoring
Initialize queue Ready, with action Start.
Mark all actions as “not executed.”
Loop
• If Ready is empty, Then terminate.
• Dequeue action a from Ready.
• If a’s preconditions satisfied, then execute, else fail.
• When completed, mark a as executed.
• For each succeeding action b such that
a < b or linked(a,b,p),
– If every preceding action c is marked “executed,”
such that c < b or linked(c,b,p’),
– Then queue b on Ready.
6
Execution Monitoring
• Check if any preconditions of unexecuted actions are violated.
link that crosses the current time is violated.
Check if a causal
noGarb
carry
cleanH
cleanH
cook
quiet
dinner
dinner
wrap
present
present
Prop at 0 Action at 0
Prop at 1
Action at 1
Prop at 2
Plan Execution w Execution Monitoring
Initialize agenda Ready with action Start
Initialize agenda ActiveLinks to empty
Mark all actions as “not executed.”
Loop
• If Ready is empty then terminate.
• For each link on ActiveLinks
– If the proposition for link doesn’t hold,
Then return failure
• Dequeue action a from Ready
• If preconditions of action are satisfied
– Then execute
– Else return failure
• … (continued on next slide)
7
Plan Execution w Execution Monitoring (cont)
Loop
• … (continued from previous slide)
• Mark a as “executed.”
• For each action c such that linked(c,a,p).
– dequeue <c,a,p> from ActiveLinks.
• For each action d such that linked(a,d,p).
– queue <a,d,p> on ActiveLinks.
• For each action b such that a < b or linked(a,b,p).
– If every action c has been executed,
such that c < b or linked(c,b,p’)
– Then queue b on Ready.
Robust Execution of Time-critical Tasks
• Executing Simple Plans
• Robust Execution
16
8
Executing Timed Programs and Plans Robustly
imageScienceTargets(Rover1, Rover2)
{Parallel
{Sequence
[5,10] Rover1.goto(p4);
[5,10] Rover1.goto(p5);
[2,5] Rover1.imageTargets();
[5,10] Rover1.goto(p3);
},
{Sequence
[5,10] Rover2.goto(p1);
[5,10]Rover2.imageTargets();
[2,5] Rover2.goto(p2);
[5,10] Rover2.goto(p3);
}
}
[5,10]
p4
p5
1
2
p1
p2
in RMPL [williams et al]
[5,10]
[2,5]
p3
[5,10]
Start
End
Rover1.goto(p4)
[5,10]
Rover1.goto(p5) Rover1.imageTargets Rover1.goto(p3)
[5,10]
[2,5]
Rover2.goto(p1) Rover2.imageTargets Rover2.goto(p2)
[5,10]
Rover2.goto(p3)
Agents adapt to temporal disturbances in a coordinated manner
by scheduling the start of activities on the fly.
In general, categorize durations into controllable and uncontrollable (STNUs).
17
To Execute a Temporal Plan
Part I : Scheduling Off-line
Part II: Scheduling Online
1. Describe Temporal Plan
2. Test Consistency
1. Describe Temporal Plan
2. Test Consistency
3. Schedule Plan
3. Reformulate Plan
4. Execute Plan
offline
online
4. Dynamically Execute Plan
18
9
Expanding Robustness by
Dynamically Choosing Methods
imageScienceTargets(Rover1, Rover2)
{
{
p4
[5,10] Rover1.goto(p4);
p5
1
choose {
{
2
do { [5,10] Rover1.goto(p5); }
maintaining( site1 = ¬ obstructed);
[2,5] Rover1.imageTargets();
}
{
p1
[2,5] Rover1.imageTargets();
[5,10] Rover1.goto(p5);
}
};
in RMPL [williams et al]
p2
p3
Ask site1 = ¬ obstructed
[5,10] Rover1.goto(p3);
Rover1.goto(p5)
},
{
Rover1.imageTargets
Rover1.goto(p3)
Rover1.goto(p4)
[5,10] Rover2.goto(p1);
Start
choose {
{
Rover1.imageTargets
Rover1.goto(p5)
End
do { [2,5 ]Rover2.imageTargets(); }
maintaining ( site1 = ¬ obstructed);
Ask
sk site1 = ¬ obstructed
[5,10] Rover2.goto(p2);
[5,10] Rover2.goto(p3);
Failure
}
{
Rover2.imageTargets
Rover2.goto(p3)
Rover2.goto(p2)
Rover2.goto(p1)
[5,10] Rover2.goto(p2);
[5,10] Rover2.goto(p3);
[2,5] Rover2.imageTargets();
Rover2.goto(p2)
}
Rover2.goto(p3)
Rover2.imageTargets
}
}
distributed Kirk
[Kim:Effinger;Block; Wehowsky]]
obstructed
Tell site1 = ¬
obstructed
19
Expanding Robustness by
Dynamically Assigning Tasks
in RMPL [williams et al]
Swap black striped ball
• Right Robot picks up and
offers ball.
• Robots perform hand-to-hand
swap.
Swap red striped ball
• Left Robot picks up and offers
ball.
• Robots perform hand-to-hand
swap.
Agents choose and
schedule activities
(Someone) Remove one ball from red bin
Remove one ball from red bin
Remove one ball from blue bin
Remove one ball from red bin
Remove one ball from pink bin
OR
L[32,39] V R[42,55]
Remove one ball from green bin
tstart
20
20
Chaski, Drake,
tfinishKirk
[Kim; Shah; Conrad]
10
Expanding Robustness
by Dynamically Assigning Tasks
• Off-nominal
• Partner adapts
in response to
teammate’s
failure.
21
Expanding Robustness by
Coordinating Underactuated Systems
22
Chekov; Sulu: Kongming
[Hofmann; Leaute; Blackmore; Ono; Li]
11
Expanding Robustness by
Coordinating Underactuated Systems
23
Chekov; Sulu: Kongming
[Hofmann; Leaute; Blackmore; Ono; Li]
Robust Execution of Time-critical Tasks
• Executing Simple Plans
• Robust Execution
– Describing Temporal Plans
– Checking Temporal Plan Consistency
– Scheduling Plans
– Robust, Dynamic Scheduling
24
12
To Execute a Temporal Plan
Part I : Schedule Off-line
Part II: Schedule Online
1. Describe Temporal Plan
2. Test Consistency
1. Describe Temporal Plan
Test Consistency
2.
3. Schedule Plan
3. Reformulate Plan
offline
online
4. Execute Plan
4. Dynamically Execute Plan
25
Describing Temporal Plans
•
•
Activities to perform
Relationships among activities
Image credit: NASA.
Remove NH3 Shunt
Vent NH3 Shunt & Stow
Release Loop A Tray
Egress/ Setup
Configure Vent Tools
Fluid Caps
SFU Reconfig
Release Loop B Tray
t = tmax
26
13
Describing Temporal Plans
Qualitative Temporal Relationships (Allen 83)
X before Y
Y after X
X
Y
X meets Y
X
X overlaps Y
X
X during Y
XY
X starts Y
Y met-by X
Y
Y overlapped-by X
Y
Y contains X
Y started-by X
X Y
X finishes Y
Y finished-by X
Y X
Y
X
X equals Y
Y equals X
X disjoint Y
27
Describing Temporal Plans
Example: Deep Space One Remote Agent Experiment
Timer
Max_Thrust
Idle
Idle
contained_by
SEP_Segment
Idle_Seg
Th_Sega
Th_Seg
contained_by
Th_Seg
Th_Seg
Th_Seg Idle_Seg
contained_by
Accum thrust
Thr_Boundary Accum_Thr
Accum_NO_Thr
Accum_Thr
Accum_Thr
Thr_Boundary
equals
SEP Action
Standby
Start_Up
Attitude
equals
meets
meets
Thrust
Thrust
Standby
Shut_Down
Start_Up
Thrust
Thrust
contained_by
CP(Ips_Tvc)
28
CP(Ips_Tvc)
Standby
Shut_Down
CP(Ips_Tvc)
Poke
14
Describing Temporal Plans
Adding Metric Information
• Going to the store takes at least 10 min and at
most 30 min.
[10min, 30min]
Activity: Going to the store
• Bread should be eaten within one day of baking.
Activity: Bake Bread
[0d, 1d]
Activity: Eat Bread
29
Describing Temporal Plans
Simplify by reducing interval relations to
relations on timepoints.
Activity A
A+
A-
Start Activity A
End Activity A
30
15
Describing Temporal Plans
Qualitative Temporal Relationships as timepoint inequalities
[0,inf] -
+ < Y+
X before Y
X
X
Y
X
Y
[0,0] -
X meets Y
X+ = YX
Y
X+
Y
Y- < X+ and X- < Y+ X overlaps Y
X
X during Y
XY
Y- < X- and X+ < Y+ X Y
X- = Y- and X+ < Y+ X starts Y
X finishes Y
Y
X- < Y- and X+ = Y+ Y X
X- = Y- and X+ = Y+ Y
X
X equals Y
X+ < Y- or Y+ < X- X disjoint Y
31
Describing Temporal Plans
Encode metric Information by generalizing inequalities
to interval constraints.
• Going to the store takes at least 10 min and at
most 30 min.
[10,30]
10 < [G+ - G-] < 30
G
G+
Start Going to Store
End Going to Store
• Bread should be eaten within one day of baking.
B+
End Bake Bread
[0,1]
E-
0 < [E- - B+] < 1
Start Eat Bread
32
16
Temporal Relations Described as an STP
• Simple Temporal Problem (STP)
• variables X1,…Xn, representing time points with real-valued domains, • binary constraints of the form:
X1
[l1, u1]
[l2, u2]
X3
[l3, u3]
X2
( X k X i ) [aik ,bik ].
Sufficient to represent:
• all Allen relations but 1…
• simple metric constraints
Can’t represent:
• Disjoint activities
33
Temporal Relations Described as a TCSP
• Temporal Constraint
Satisfaction Problem (TCSP)
• Extends STP by allowing multiple
intervals for each binary constraints: [l1, u1]V [l2, u2]V…V[ln,un] X1
X2
( X k X i ) P({[aik ,bik ] | aik bik }).
Supports:
X1
•Multiple time windows for accomplishing an
activity.
[5, 7] V [10, 11]
X2
•Different methods of accomplishing an activity.
34
17
Temporal Relations Described as a DTP
• Disjunctive Temporal Problem (DTP)
• Extends TCSP by allowing non-binary constraints. Activities of Mars Rover: Drill (D) , Image (I), Send Data (S)
[0, inf]
MS
[5, 10]
D-
Drill
[0, inf]
D+
[4, 5]
S- Send data S+
[0, inf]
[15, 15]
I-
Image
I+
[1, 1]
Drilling causes vibration.
Image cannot occur • during the last two minutes before drilling, or
• during the first minute after drilling ends.
2 < D+ - I+ < inf
OR
1 < I - - D+ < inf
35
A Temporal Plan Described as a DTP
• Disjunctive Temporal Problem (DTP)
• extends a TCSP by allowing non-binary constraints. DTP
-non-binary constraints
-multiple intervals in constraints
constraints
TCSP --mbinary
ultiple intervals
STP
- binary constraints
-simple intervals
36
18
Temporal Plan Networks and Conditional STPs
p4
RMPL - Nested Compositions:
• Activity
• Sequence
• Parallel
• Choice
• With Time
p5
1
2
p1
p2
TPN:
37
To Execute a Temporal Plan
Part I : Schedule Off-line
1. Describe Temporal Plan
2. Test Consistency
[1,10]
B
[1,1]
C
[2,2]
A
[0,9]
D
3. Schedule Plan
4. Execute Plan
offline
online
38
19
Consistency of an STP
Input:An STP <X, C> where Cj = <Xk, Xi, lj, uj>
[1,10] B [1,1]
A
D
C [2,2]
[0,9]
Output: True iff there exists an X satisfying C
39
Map STP to Equivalent Distance Graph
Idea: Map STN to distance (weighted) graph and check for negative cycles.
•
Map upper bound to outgoing, non-negative arc.
•
Map lower bound to incoming, negative arc.
Xj – Xi u
l Xj – Xi u
Xi – Xj - l
-13
[13,13]
13
For efficient
inference
19
[19,19]
-19
40
20
STP Consistency
• Example of inconsistent constraint:
1
A
[2, 1]
B
A
B
-2
– An STP is consistent iff its distance graph has no negative
cycles.
– Detect by computing shortest path from one node to all
other nodes.
• Single Source Shortest Path (SSSP)
41
STP Consistency:
Generic Labeling Algorithm
Detect negative cycles by computing the shortest-path
from a single node to all other nodes (Single Source Shortest Path).
1.
For all nodes s in graph G
2.
d(s) = inf
3.
d(sstart) = 0
4.
while some arc(i,j) is violating,
5.
d(A) = inf
d(B) = inf
d(j) = d(i) + c(i,j)
42
21
STP Consistency:
Generic Labeling Algorithm
Can detect negative cycles by just computing the shortest-path from a single node to
all the other nodes (Single Source Shortest Path)
1.
For all nodes s in graph G
2.
d(s) = inf
3.
d(sstart) = 0
4.
while some arc(i,j) is violating,
5.
d(A) = 0
d(B) = inf
d(j) = d(i) + c(i,j)
43
STP Consistency:
Generic Labeling Algorithm
Can detect negative cycles by just computing the shortest-path from a single node to
all the other nodes (Single Source Shortest Path)
1.
For all nodes s in graph G
2.
d(s) = inf
3.
d(sstart) = 0
4.
while some arc(i,j) is violating,
5.
d(A) = 0
d(B) = inf
d(j) = d(i) + c(i,j)
arc(i,j) is violating if,
d(j) > d(i) + c(i,j)
44
22
STP Consistency:
Generic Labeling Algorithm
Can detect negative cycles by just computing the shortest-path from a single node to
all the other nodes (Single Source Shortest Path)
1.
For all nodes s in graph G
2.
d(s) = inf
3.
d(sstart) = 0
4.
while some arc(i,j) is violating,
5.
d(A) = 0
d(B) = 2
d(j) = d(i) + c(i,j)
45
STP Consistency:
Generic Labeling Algorithm
Can detect negative cycles by just computing the shortest-path from a single node to
all the other nodes (Single Source Shortest Path)
1.
For all nodes s in graph G
2.
d(s) = inf
3.
d(sstart) = 0
4.
while some arc(i,j) is violating,
5.
d(A) = -1
d(B) = 2
d(j) = d(i) + c(i,j)
46
23
STP Consistency:
Generic Labeling Algorithm
Can detect negative cycles by just computing the shortest-path from a single node to
all the other nodes (Single Source Shortest Path)
1.
For all nodes s in graph G
2.
d(s) = inf
3.
d(sstart) = 0
4.
while some arc(i,j) is violating,
5.
d(A) = -1
d(B) = 1
d(j) = d(i) + c(i,j)
47
STP Consistency:
Generic Labeling Algorithm
Can detect negative cycles by just computing the shortest-path from a single node to
all the other nodes (Single Source Shortest Path)
1.
For all nodes s in graph G
2.
d(s) = inf
3.
d(sstart) = 0
4.
while some arc(i,j) is violating,
5.
d(A) = -2
d(B) = 1
d(j) = d(i) + c(i,j)
48
24
STP Consistency:
Generic Labeling Algorithm
Can detect negative cycles by just computing the shortest-path from a single node to
all the other nodes (Single Source Shortest Path)
1.
For all nodes s in graph G
2.
d(s) = inf
3.
d(sstart) = 0
4.
while some arc(i,j) is violating,
5.
d(A) = -2
d(B) = 0
d(j) = d(i) + c(i,j)
49
STP Consistency:
Generic Labeling Algorithm
Can detect negative cycles by just computing the shortest-path from a single node to
all the other nodes (Single Source Shortest Path)
1.
For all nodes s in graph G
2.
d(s) = inf
3.
d(sstart) = 0
4.
while some arc(i,j) is violating,
5.
d(A) = -3
d(B) = 0
d(j) = d(i) + c(i,j)
50
25
STP Consistency:
Generic Labeling Algorithm
Can detect negative cycles by just computing the shortest-path from a single node to
all the other nodes (Single Source Shortest Path)
1.
For all nodes s in graph G
2.
d(s) = inf
3.
d(sstart) = 0
4.
while some arc(i,j) is violating,
5.
d(A) = -3
d(B) = -1
d(j) = d(i) + c(i,j)
51
STP Consistency:
Generic Labeling Algorithm
Can detect negative cycles by just computing the shortest-path from a single node to
all the other nodes (Single Source Shortest Path)
1.
For all nodes s in graph G
2.
d(s) = inf
3.
d(sstart) = 0
4.
while some arc(i,j) is violating,
5.
d(A) = -4
d(B) = -1
d(j) = d(i) + c(i,j)
52
26
STP Consistency:
Generic Labeling Algorithm
Can detect negative cycles by just computing the shortest-path from a single node to
all the other nodes (Single Source Shortest Path)
1.
For all nodes s in graph G
2.
d(s) = inf
3.
d(sstart) = 0
4.
while some arc(i,j) is violating,
5.
d(A) = -4
d(B) = -1
d(j) = d(i) + c(i,j)
How do we detect inconsistency?
1.
One way: Check for any d-value to drop below –nC
53
STP Consistency:
FIFO Labeling Algorithm
Can detect negative cycles by just computing the shortest-path from a single node to
all the other nodes (Single Source Shortest Path)
1.
For all nodes s in graph G
2.
d(s) = inf
3.
d(sstart) = 0
4.
while some arc(i,j) is violating,
5.
d(j) = d(i) + c(i,j)
d(A) = -4
d(B) = -1
•Maintain queue of updated nodes.
•For each node on queue, check for
outgoing arcs that may be potentially
violating.
54
27
To Execute a Temporal Plan
Part I : Schedule Off-line
1. Describe Temporal Plan
2. Test Consistency
[1,10]
B
[1,1]
C
[2,2]
A
[0,9]
D
3. Schedule Plan
offline
online
4. Execute Plan
55
Scheduling
[40,50]
[10,20]
X0
[30,40]
Ls
Le
[10,20]
X0
[10,20]
[20,30]
[1
[10,20]
Ss
[40,50]
[30,40]
[50
,60
]
]
0
2
,
0
Ls
Se
S s
[40,50]
Le
[20,30]
S e
[60,70]
[60,70]
• Idea: Expose Implicit Constraints in STP
56
28
Scheduling with All Pairs Shortest Path Graph
20
[10,20]
X0
40
[30,40]
Ls
Le
X0
-10
Ls
-10
20
[10,20]
Ss
[40,50]
Le
-30
50
Se
Ss
-40
Se
70
[60,70]
-60
• Idea: Expose Implicit Constraints in STP
• Compute All-Pairs-Shortest-Path (APSP) of d-graph
(Floyd-Warshall).
57
Distance Graph Gd implies Constraints
• Path constraint: i0 =i, i1 = . . ., ik = j
k
X j X i ui j 1 ,i j
j=1
Conjoined path constraints result in the shortest
path as bound:
X j Xi dij
where dij is the shortest path from i to j
58
29
All Pairs Shortest Path
Floyd-Warshall (alternatively Johnson)
1. for i := 1 to n do dii 0;
2. for i, j := 1 to n do dij w(i,j);
Initialize distances
Take minimum distance
over all triangles
3. for k := 1 to n do
4. for i, j := 1 to n do
5. dij
min{dij, dik + dkj};
k
i
j
Complexity O(n3)
59
APSP
3. for k := 1 to n do
4. for i, j := 1 to n do
5. dij
min{dij, dik + dkj};
20
40
i = X0, k = Ls, j = L
0
20
inf
inf
70
inf
inf
-10
inf
60
40
-10
inf
-30
inf
inf
20
-60
inf
inf
X0
-10
Ls
Le
-30
-10
20
50
Ss
50
-40
Se
70
40
-60
Initial d-graph
Slatest = (d01, , d0n)
60
30
Scheduling with All Pairs Shortest Path Graph
After Floyd Warshall
[40,50]
20
-10
50
30
70
40
20
60
[10,20]
X0
-40
-30
-20
-10
20
-60
-50
-20
-10
[30,40]
[50
,60
]
]
0
0,2
Ls
30
Le
[10,20]
[20,30]
[1
50
S e
[40,50]
S s
40
[20,30]
[60,70]
APSP d-graph
61
Scheduling: Latest Solution
Active constraints
0
20
-10
50
30
70
40
20
60
-10
30
-40
-30
-20
-10
20
-60
-50
-20
20
40
reference
X0
-10
Ls
Le
-30
-10
20
50
Ss
50
-40
Se
70
40
-60
APSP d-graph
Slatest = (d01, , d0n)
62
31
Scheduling: Earliest Solution
Active constraints
0
20
-10
50
30
70
40
20
60
-10
30
-40
-30
-20
-10
20
-60
-50
-20
20
40
reference
X0
-10
Ls
Le
-30
-10
20
50
Ss
50
-40
Se
70
40
-60
APSP d-graph
Searliest = (-d10, , dn0)
63
Scheduling: Window of Feasible Values
0
20
-10
50
30
70
40
20
60
-10
30
Latest Times
•Ls in [10, 20]
-40
-30
-20
-10
20
-60
-50
-20
•Le in [40, 50]
50
•Ss in [20, 30]
40
•Se in [60, 70]
Earliest Times
APSP d-graph
64
32
Scheduling without Search:
Solution by Decomposition
•
Can assign variables in any order, without backtracking.
Key ideas
• Incrementally tighten feasible intervals,
as commitments are made.
• Perform on demand.
[40,50]
[10,20]
X0
[30,40]
[50
,60
]
0]
2
,
0
Ls
Le
[10,20]
[20,30]
[1
[40,50]
S s
[20,30]
S e
[60,70]
65
Scheduling without Search:
Solution by Decomposition
•
Can assign variables in any order, without backtracking.
Key ideas
• Incrementally tighten feasible intervals,
as commitments are made.
• Perform on demand.
•
Select value for X0
[40,50]
t=0
[10,20]
X0
[30,40]
[50
,60
]
]
0
2
,
0
Ls
[10,20]
[20,30]
[1
S s
[40,50]
Le
[20,30]
S e
[60,70]
66
33
Scheduling without Search:
Solution by Decomposition
•
Can assign variables in any order, without backtracking.
Key ideas
• Incrementally tighten feasible intervals,
as commitments are made.
• Perform on demand.
•
Select value for X0
•
Select value for Ls,
consistent with X0
[40,50]
t=0
[10,20]
X0
[10,20]
[30,40]
[50
,60
]
0]
2
,
0
Ls
Le
[10,20]
[20,30]
[1
[40,50]
S s
[20,30]
S e
[60,70]
67
Scheduling without Search:
Solution by Decomposition
•
Can assign variables in any order, without backtracking.
Key ideas
• Incrementally tighten feasible intervals,
as commitments are made.
• Perform on demand.
•
Select value for X0
•
Select value for Ls,
consistent with X0
•
Select value for Le,
consistent with X0, Ls
[40,50]
t=0
[10,20]
X0
t=15
Ls
[10,20]
[20,30]
[1
S s
[30,40]
[50
,60
]
]
0
2
,
0
[40,50]
[45,50]
Le
[20,30]
S e
[60,70]
68
34
Scheduling without Search:
Solution by Decomposition
•
Can assign variables in any order, without backtracking.
Key ideas
• Incrementally tighten feasible intervals,
as commitments are made.
• Perform on demand.
•
Select value for X0
•
Select value for Ls,
consistent with X0
•
Select value for Le,
consistent with X0, Ls
[40,50]
t=0
[10,20]
X0
t=15
Ls
[30,40]
[50
,60
]
0]
2
,
0
Le
[10,20]
[20,30]
[1
[40,50]
S s
t=45
[20,30]
S e
[60,70]
69
Scheduling without Search:
Solution by Decomposition
•
Can assign variables in any order, without backtracking.
Key ideas
• Incrementally tighten feasible intervals,
as commitments are made.
• Perform on demand.
•
Select value for X0
•
Select value for Ls,
consistent with X0
•
Select value for Le,
consistent with X0, Ls
•
Select value for Ss,
consistent with X0, Ls,
Le
[40,50]
t=0
[10,20]
X0
t=15
Ls
[30,40]
[50
,60
]
]
0
2
,
0
[10,20]
[20,30]
[1
S s
[40,50]
t=45
Le
[20,30]
S e
[25,30]
[60,70]
70
35
Scheduling without Search:
Solution by Decomposition
•
Can assign variables in any order, without backtracking.
Key ideas
• Incrementally tighten feasible intervals,
as commitments are made.
• Perform on demand.
•
Select value for X0
•
Select value for Ls,
consistent with X0
•
Select value for Le,
consistent with X0, Ls
•
Select value for Ss,
consistent with X0, Ls,
Le
[40,50]
t=0
[10,20]
X0
t=15
Ls
[30,40]
[50
,60
]
0]
2
,
0
t=45
Le
[10,20]
[20,30]
[1
[40,50]
S s
[20,30]
S e
t=30
[60,70]
71
Scheduling without Search:
Solution by Decomposition
•
Can assign variables in any order, without backtracking.
Key ideas
• Incrementally tighten feasible intervals,
as commitments are made.
• Perform on demand.
•
Select value for X0
•
Select value for Ls,
consistent with X0
•
Select value for Le,
consistent with X0, Ls
•
Select value for Ss,
consistent with X0, Ls,
Le
•
[40,50]
t=0
[10,20]
X0
t=15
Ls
[30,40]
[50
,60
]
]
0
2
,
0
[10,20]
[20,30]
[1
S s
[40,50]
t=30
t=45
Le
[20,30]
S e
t=70
[60,70]
Select value for Se…
72
36
To Execute a Temporal Plan
Problem: delays and fluctuations in task
duration can cause plan failure.
Part I : Schedule Off-line
1. Describe Temporal Plan
2. Test Consistency
Observation: Least commitment
temporal plans leave room to
adapt.
Flexible Execution adapts through
dynamic scheduling [Muscettola et al]
3. Schedule Plan
4. Execute Plan
– Assigns time to event when
executed
offline
online
73
To Execute a Temporal Plan
Part I : Schedule Off-line
Part II: Schedule Online
1. Describe Temporal Plan
2. Test Consistency
1. Describe Temporal Plan
2. Test Consistency
3. Schedule Plan
3. Reformulate Plan
4. Execute Plan
offline
online
4. Dynamically Execute Plan
74
37
To Execute a Temporal Plan
Part do
I : we
Schedule
Off-line
How
schedule on
line?
[1,10]
B
[1,1]
C
[2,2]
B
[1,1]
A
[0,9]
t=0
A
[0,9]
1. Describe Temporal Plan
2. Test Consistency
D
[1,1]
A
[0,9]
Part II: Schedule Online
3. Reformulate Plan
D
C
offline
online
t=3
B [1,1] t=4
[1,1]
D
C
4. Dynamically Execute Plan
t=2
75
Dynamic Scheduling by Decomposition?
Consider a Simple Example
•
Select executable timepoint and assign
•
Propagate assignment to neighbors
[2,11]
B
[1,1]
[0,10]
A
D
[1,1]
[0,10]
[2,2]
C
76
38
Dynamic Scheduling by Decomposition?
Consider a Simple Example
•
Select executable timepoint and assign
•
Propagate assignment to neighbors
[2,11]
B
[1,1]
[0,10]
[0, 10]
t=0
A
D
[1,1]
[0,10]
[0, 10]
[2, 11]
[2,2]
C
77
Dynamic Scheduling by Decomposition?
Consider a Simple Example
Uh oh! •
Select executable timepoint and assign
•
Propagate assignment to neighbors
C must be
executed at t =2 in the past! [2,11]
B
[1,1]
[0,10]
t=3
t=0
A
D [4, 4]
[1,1]
[0,10]
[2, 2]
[2,2]
How can we fix it?
C
78
39
Dispatching Execution Controller
• How can we fix it?
– Assignments must monotonically increase in value.
– Respect induced orderings.
• Execute an event when enabled and alive
– Enabled – Predecessors are completed
[2,11]
– Alive – Current time within bound of task
[0,10]
A
B
[1,1]
[1,1]
D
[0,10]
[2,2]
C
79
Dispatching Execution Controller
Initially:
•
E = Time points w/o predecessors
•
S = { }
Repeat:
1. Wait until current time has advanced
such that some TP in E is active
2. Set TP’s execution time to current time.
3. Add TP to S.
4. Propagate time of execution to TP’s
immediate neighbors
5. Add to E, all immediate neighbors that
become enabled
• TP enabled if all +lb edges
starting at TP have their
destination in S.
[2,11]
[0,10]
A
B
[1,1]
[0,10]
[1,1]
D
[2,2]
C
80
40
Dynamic Scheduling through Dispatchable Execution
Temporal
Plan
Compiler
Image credit: NASA.
offline
online
Dispatcher
Observations of
past events
Generate dynamic
schedule
81
41
MIT OpenCourseWare
http://ocw.mit.edu
16.410 / 16.413 Principles of Autonomy and Decision Making
Fall 2010
For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.
Download