1.34k likes | 1.58k Views
DD* Lite: Efficient Incremental Search with State Dominance. Paper by G. Ayorkor Mills-Tettey, Anthony Stentz, and M. Bernardine Dias. Presented on 1 October 2007 in 16-735 Motion Planning by Ross A. Knepper and Sean Hyde. 1. 2. 3. 4. 5. D* Lite.
E N D
DD* Lite: Efficient Incremental Search with State Dominance Paper by G. Ayorkor Mills-Tettey, Anthony Stentz, and M. Bernardine Dias Presented on 1 October 2007 in 16-735 Motion Planning by Ross A. Knepper and Sean Hyde
1 2 3 4 5 D* Lite • As we saw in class last week, D* Lite is an optimal, efficient algorithm for performing incremental search in a 2D grid. • It optimizes an objective function, g(s). • For example, D* Lite can be used to find the lowest time-cost path in a grid … total cost=19 S G
1 2 3 4 5 D* Lite • As we saw in class last week, D* Lite is an optimal, efficient algorithm for performing incremental search in a 2D grid. • It optimizes an objective function, g(s). • For example, D* Lite can be used to find the lowest time-cost path in a grid … total cost=20 … even when costs change. S G
Preview: DD* Lite DD* Lite modifiesD* Lite in order to reason about additional “cost dimensions” such as energy expenditure. DD* Lite path D* Lite path
Augmented States • D* Lite uses a state like (x, y). • Some problems have other information that is important to find the “best” path. • Augment the state with extra terms to indicate other factors. Example. Battery energy level: s=(x, y, e). • What are the implications of that extra dimension?
Effect of State Augmentation • In normal D* Lite, two equal-cost paths to the same position constitute a tie, which is broken arbitrarily. • With an augmented state, there are more states to search, but the answer which optimizes the whole state will be found. • How to handle extra dimension(s) efficiently?
State Dominance • Definition. State s1dominates another state s2 when no solution through s2 leads to a solution as good as the best solution that can be obtained through s1. • Note that dominance defines only a partial ordering on the set of all states, S. • In practical usage, selection of dominance neighbors is always problem-specific. Example. Suppose there are two ways for a Mars Rover to get to the same position in the same amount of time, but one of them uses less battery power.s1 = (xi, yi, e1) dominates s2 = (xi, yi, e2) when e1 < e2.
Dominance Relations • Definition. A dominance relation exists between two states when one state dominates the other. • Properties: • Non-reflexivity: A state cannot dominate itself. • Non-symmetry: If a state u dominates a state v, then vdoes not dominate u. • Transitivity: If a state u dominates another state v, and v in turn dominates w, then u dominates w. • In general, it can be hard to know whether two states have a dominance relation or not.
Why Use State Dominance? • A dominated state can never lead to a better solution than the best solution that can be obtained from the dominating state. • Can prune dominated states out of the search without loss of optimality. • Consequently, the path we’ll find from start to goal will be free of dominated states. • Speeds up the search • Breaks ties in the best cost path using a second meaningful metric.
Time-cost map Energy-cost map S S G G 1 2 3 4 5 State Dominance Example • There are separate time- and energy- cost maps show the respective time and energy penalties for crossing each cell. • The shade of a 2D cell in the energy cost map represents the derivative of energy – the rate at which the battery level changes. • The 3D state contains position and an absolute energy level, which is the result of traversing the cost map.
1 2 3 4 5 State Dominance Example Time-cost map Energy-cost map • There are separate time- and energy- cost maps show the respective time and energy penalties for crossing each cell. • The shade of a 2D cell in the energy cost map represents the derivative of energy – the rate at which the battery level changes. • The 3D state contains position and an absolute energy level, which is the result of traversing the cost map. S S G G
Energy-cost map S G 1 2 3 4 5 State Dominance Example Time-cost map • Goal is set to energy=0. • State (x,y,e)=(2,2,15) dominates (2,2,33). • Less energy expenditure leads to a better solution. S G
From D* Lite to DD* Lite • Changes include tweaks to: • Objective function • Algorithm • Key change: • In addition to keeping track of one-step lookahead of the objective function, also keep track of one-step lookahead of whether or not a state is dominated.
Dominance relation Solution cost DD* Lite: Extra Bookkeeping • The g and rhs values of a node are augmented to track dominance of the state. • The dominance component can take two values: NOT_DOMINATED or DOMINATED. • We define NOT_DOMINATED < DOMINATED.
DD* Lite: Tracking Dominance • Definition of dominance requires us to define comparisons between objective functions, which are now ordered pairs. • Define less-than operator: • Note that gdom values only matter when gobjf values are equal.
DD* Lite: Tracking Consistency • Similarly, the definition of consistency requires us to define comparisons between g and rhs, which are now ordered pairs. • Define less-than operator: • Just as before, *dom values only matter when *objf values are equal.
DD* Lite: New Update Rule for rhs • Update rule for rhs from D* Lite: • Update rule for rhs from DD* Lite:
DD* Lite: New Update Rule for rhs • F(s) is the family of all states which can potentially lower the objective function at s. • D(s) is the set of all states that can cause s to be dominated.
Domain-Dependent Functions • Dominate(s’, s) returns TRUE iff the state s’ dominates the state s. • DominanceNeighbors(s) returns the set of all states s’ in S for which Dominate(s, s’) Dominate(s’, s) is TRUE. Note that the set of dominance neighbors need not intersect with the sets of predecessors and successors.
1 2 3 1 2 3 4 1 2 3
1 2 3 1 2 3 4 1 2 3 Initialize() U = Ø For all s rhs(s),g(s) [∞,NOT_DOMINATED] rhs(sgoal) [0,NOT_DOMINATED] U.insert(sgoal,CalculateKey(sgoal))
1 2 3 1 2 3 4 1 2 3 Initialize() U = Ø For all s rhs(s),g(s) [∞,NOT_DOMINATED] rhs(sgoal) [0,NOT_DOMINATED] U.insert(sgoal,CalculateKey(sgoal)) U = {}
1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 Initialize() U = Ø For all s rhs(s),g(s) [∞,NOT_DOMINATED] rhs(sgoal) [0,NOT_DOMINATED] U.insert(sgoal,CalculateKey(sgoal)) U = {}
1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 Initialize() U = Ø For all s rhs(s),g(s) [∞,NOT_DOMINATED] rhs(sgoal) [0,NOT_DOMINATED] U.insert(sgoal,CalculateKey(sgoal)) U = {}
1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 U = { (1,2,0) – [0;0] } Initialize() U = Ø For all s rhs(s),g(s) [∞,NOT_DOMINATED] rhs(sgoal) [0,NOT_DOMINATED] U.insert(sgoal,CalculateKey(sgoal))
1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 U = { (1,2,0) – [0;0] }
1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 U = { } S = (1,2,0) – [0;0]
1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 U = { } S = (1,2,0) – [0;0]
1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 U = { } DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) S = (1,2,0) – [0;0]
1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 U = { } DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) F = (1,2,0) , (2,1,-1), (2,2,-1)
1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 U = { } DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) F = (1,2,0) , (2,1,-1), (2,2,-1) Tempobjf = 1 (1,2,0)
1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 U = { } DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) F = (1,2,0) , (2,1,-1), (2,2,-1) Temp = [(1,2,0), NOT_DOMINATED]
1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 U = { } DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) s' = {} Temp = [(1,2,0), NOT_DOMINATED]
1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 U = { } DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) Temp = [(1,2,0), NOT_DOMINATED]
U = { (1,1,1) – [3;1] } 1 2 3 1 2 3 4 1 2 3 (rhs(s),D,g(s),D,e) DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1)
U = { (1,1,1) – [3;1] } 1 2 3 1 2 3 4 1 2 3 (rhs(s),D,g(s),D,e) DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) F = (1,1,0) , (1,2,0), (2,2,-1), (3,2,-1), (3,1,0)
U = { (1,1,1) – [3;1] } 1 2 3 1 2 3 4 1 2 3 (rhs(s),D,g(s),D,e) DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) F = (1,1,0) , (1,2,0), (2,2,-1), (3,2,-1), (3,1,0) Tempobjf = 1 (1,2,0)
U = { (1,1,1) – [3;1] } 1 2 3 1 2 3 4 1 2 3 (rhs(s),D,g(s),D,e) DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) F = (1,1,0) , (1,2,0), (2,2,-1), (3,2,-1), (3,1,0) Tempobjf = 1 (1,2,0)
U = { (1,1,1) – [3;1] (2,1,1) – [2;1] } 1 2 3 1 2 3 4 1 2 3 (rhs(s),D,g(s),D,e) DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1)
U = { (1,1,1) – [3;1] (2,1,1) – [2;1] } 1 2 3 1 2 3 4 1 2 3 (rhs(s),D,g(s),D,e) DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) F = (1,1,0) , (1,2,0), (1,3,0), (2,3,-2), (3,3,0), (3,2,-1), (3,1,0), (2,1,-1)
U = { (1,1,1) – [3;1] (2,1,1) – [2;1] } 1 2 3 1 2 3 4 1 2 3 (rhs(s),D,g(s),D,e) DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) F = (1,1,0) , (1,2,0), (1,3,0), (2,3,-2), (3,3,0), (3,2,-1), (3,1,0), (2,1,-1) Tempobjf = 1 (1,2,0)
U = { (1,1,1) – [3;1] (2,1,1) – [2;1] } 1 2 3 1 2 3 4 1 2 3 (rhs(s),D,g(s),D,e) DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) F = (1,1,0) , (1,2,0), (1,3,0), (2,3,-2), (3,3,0), (3,2,-1), (3,1,0), (2,1,-1) Tempobjf = 1 (1,2,0)
U = { (1,1,1) – [3;1] (2,1,1) – [2;1] (2,2,1) – [2;1] } 1 2 3 1 2 3 4 1 2 3 (rhs(s),D,g(s),D,e) DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1)
U = { (1,1,1) – [3;1] (2,1,1) – [2;1] (2,2,1) – [2;1] } 1 2 3 1 2 3 4 1 2 3 (rhs(s),D,g(s),D,e) DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) F = (1,2,0) , (2,1,-2), (2,2,-1)
U = { (1,1,1) – [3;1] (2,1,1) – [2;1] (2,2,1) – [2;1] } 1 2 3 1 2 3 4 1 2 3 (rhs(s),D,g(s),D,e) DominanceNeighbors(s) U Pred(s) = { (1,2,1) (1,2,2) (1,2,3) (1,2,4) (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) F = (1,2,0) , (2,1,-2), (2,2,-1) Tempobjf = 1 (1,2,0)
U = { (1,1,1) – [3;1] (2,1,1) – [2;1] (2,2,1) – [2;1] } 1 2 3 1 2 3 4 1 2 3 (rhs(s),D,g(s),D,e) DominanceNeighbors(s) U Pred(s) = { (1,1,1) (2,1,1) (2,2,1) (1,3,1) (2,3,1) F = (1,2,0) , (2,1,-2), (2,2,-1) Tempobjf = 1 (1,2,0)