1 / 134

DD* Lite: Efficient Incremental Search with State Dominance

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.

maegan
Télécharger la présentation

DD* Lite: Efficient Incremental Search with State Dominance

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. 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

  4. 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

  5. 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?

  6. 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?

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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

  12. 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

  13. 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.

  14. 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.

  15. 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.

  16. 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.

  17. DD* Lite: New Update Rule for rhs • Update rule for rhs from D* Lite: • Update rule for rhs from DD* Lite:

  18. DD* Lite: New Update Rule for rhs

  19. 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.

  20. 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.

  21. DD* Lite Algorithm (1/3)

  22. DD* Lite Algorithm (2/3)

  23. DD* Lite Algorithm (3/3)

  24. 1 2 3 1 2 3 4 1 2 3

  25. 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))

  26. 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 = {}

  27. 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 = {}

  28. 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 = {}

  29. 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))

  30. 1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 U = { (1,2,0) – [0;0] }

  31. 1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 U = { } S = (1,2,0) – [0;0]

  32. 1 2 3 (rhs(s),D,g(s),D,e) 1 2 3 4 1 2 3 U = { } S = (1,2,0) – [0;0]

  33. 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]

  34. 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)

  35. 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)

  36. 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]

  37. 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]

  38. 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]

  39. 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)

  40. 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)

  41. 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)

  42. 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)

  43. 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)

  44. 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)

  45. 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)

  46. 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)

  47. 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)

  48. 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)

  49. 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)

  50. 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)

More Related