Title: D Algorithm
1D Algorithm
- Vincent Lee-Shue Jr.
- Prasad Narendra Atkar
2D Algorithm
Goal
- Point to point path planning in unknown,
partially known or changing environments in an
efficient, optimal and complete manner.
3Abstraction
- Lets look at P2P problem on a Grid
- Problem is a graph search one
- Objective values (Time, Distance, Energy)
- Blind Search Wavefront (BFS)
- Highly inefficient
4Informed Search A
- Utilizes information obtained from the
environment. - Concept of a heuristic function (Estimation)
- conditions of heuristic
- Optimistic (must be less than or equal to the
real cost) - As close to the real cost as possible
- Algorithm
- Nodes expanded in order of (cost incurred in
moving to current location from the start
Estimated cost to goal from current location)
5Example (1/5)
Legend
h(x)
c(x)
Priority g(x) h(x)
Note
g(x) sum of all previous arc costs, c(x),
from start to x Example c(H) 2
6Example (2/5)
First expand the start node
If goal not found, expand the first node in the
priority queue (in this case, B)
Insert the newly expanded nodes into the priority
queue and continue until the goal is found, or
the priority queue is empty (in which case no
path exists)
Note for each expanded node, you also need a
pointer to its respective parent. For example,
nodes A, B and C point to Start
7Example (3/5)
No expansion
GOAL(5)
Weve found a path to the goal Start gt A gt E
gt Goal (from the pointers) Are we done?
8Example (4/5)
No expansion
GOAL(5)
There might be a shorter path, but
assuming non-negative arc costs, nodes with a
lower priority than the goal cannot yield a
better path. In this example, nodes with a
priority greater than or equal to 5 can be
pruned. Why dont we expand nodes with an
equivalent priority? (why not expand nodes D and
I?)
9Example (5/5)
No expansion
GOAL(5)
GOAL(4)
We can continue to throw away nodes with priority
levels lower than the lowest goal found. As we
can see from this example, there was a shorter
path through node K. To find the path,
simply follow the back pointers. Therefore the
path would be Start gt C gt K gt Goal
If the priority queue still wasnt empty, we
would continue expanding while throwing away
nodes with priority lower than 4. (remember,
lower numbers higher priority)
10Completeness, Optimality and Efficiency
- A yields an optimal path, if it exists. If goal
is unreachable, it signals so. (i.e. A Complete
and optimal) - Efficient A is very efficient for static
worlds (much better than Wavefront) - What happens with Dynamic worlds, where the arc
costs may change ?
11Dynamics Worlds
- A Replanner Plan by A using all the available
information at the start. - Start tracing the optimal path
- If there is a discrepancy between the initial map
and the actual environment, update the new cost
values for the corresponding arcs, run A again
for planning between the current position and the
goal. Trace new optimal path, if discrepancy
between map and environment, update corresponding
arc costs, run A again.
12Efficiency of A Replanner
- In expansive environments where the goal is far
away, little changes may force the planner to use
A over the whole environment, although the
changes in the optimal path may be small, that
is, the new optimal path may be very similar to
the old assumed optimal path. - Hence, A re-planner can be grossly inefficient
computationally. - What can we do to improve the efficiency of A
Re-planner?
13Dynamic A (D ) Stentz, 1994
- Functionally equivalent to A replanner.
- Plan initial path using A to every state in the
world (Dijkstras search ). - Make local changes to the map and the resultant
optimal path when a discrepancy between map and
the environment is found. - Essentially prunes the graph search.
- Optimal given the information at a time
- Omniscient optimal if exact representation of map
is available.
14D Definitions
- X represents a state
- Qu D maintains a Priority Queue
- t(X) OPEN, if X is on Qu.
- NEW, if X has never been on Qu.
- CLOSED , if X is not currently on Qu but
it was on Qu earlier. - c(X,Y) cost of moving from X to Y c(Y,X).
- h(X) current cost of path from X to Goal.
- k(X) Estimated minimum cost from X to Goal.
- min unmodifed h(X), all h(X)
value X takes when X is put on - O.
- o(X) cost of optimal path from X to Goal.
- X path to goal, i.e.,sequence of states from
X to Goal - b(X) Y , Y is parent state of X, X-Y-Goal
15Procedures
MODIFY-COST(X,Y,cval)
MIN-STATE()
c(X,Y)cval if t(X) CLOSED then INSERT
(X,h(X)) Return GET-MIN ( )
Return X if k(X) is minimum for all states on Qu
INSERT(X,hnew)
GET-KMIN()
if t(X) NEW then k(X)hnew if t(X) OPEN then
k(X)min(k(X),hnew) if t(X) CLOSED then
k(X)min(k(X),hnew) and t(X) OPEN Sort Qu based
on increasing k values
Return the minimum value of k for all states on
Qu
16Procedures
PROCESS-STATE()
else for each neighbor Y of X if t(Y)
NEW or (b(Y) X and h(Y) ? h(X)c (X,Y) ) then
b(Y) X INSERT(Y, h(X)c(X,Y)) else
if b(Y) ? X and h(Y) gt h(X)c (X,Y)
then INSERT(X, h(X)) else
if b(Y) ? X and h(X) gt h(Y)c (X,Y) and
t(Y) CLOSED and h(Y) gt kold then
INSERT(Y, h(Y)) Return GET-KMIN ( )
X MIN-STATE( ) if X NULL then return 1 kold
GET-KMIN( ) DELETE(X) if koldlt h(X) then
for each neighbor Y of X if h(Y) lt kold and
h(X) gt h(Y) c(Y,X) then b(X) Y h(X)
h(Y)c(Y,X) if kold h(X) then for each
neighbor Y of X if t(Y) NEW or (b(Y) X and
h(Y) ? h(X)c (X,Y) ) or (b(Y) ? X and h(Y) gt
h(X)c (X,Y) ) then b(Y) X INSERT(Y,
h(X)c(X,Y))
17D Algorithm
h(G)0 do kminPROCESS-STATE() while(kmin
! -1 start state not removed from
Qu) if(kmin -1) goal unreachable
exit else do do trace
optimal path() while ( goal is not reached
map environment) if (
goal_is_reached) exit else
Y State of discrepancy reached trying
to move from some State X
MODIFY-COST(Y,X,newc(Y,X)) do
kminPROCESS-STATE()
while( k(Y) lt h(Y) kmin ! -1)
if(kmin-1) exit()
while(1)
18c(x1,x2)1
c(x1,x3)1.4
c(x1,x8)10000,if x8 is in obstacle,x1 is a
freecell
c(x1,x9)10000.4, if x9 is in obstacle, x1 is a
freecell
19Goal
Gate
Start
20(No Transcript)
21(No Transcript)
22(No Transcript)
23(No Transcript)
24(No Transcript)
25(No Transcript)
26(No Transcript)
27(No Transcript)
28(No Transcript)
29(No Transcript)
30(No Transcript)
31(No Transcript)
32(No Transcript)
33(No Transcript)
34(No Transcript)
35Example Pictures
36Comparisons
- Comparison with A replanner
- Size of environment , number, size and
placement of obstacles affect relative superior
performance of D over A replanner. D is much
better is expansive and more complex
environments. - Where do we go from here?
37Focussed D.
- Adds the focus heuristics to limit the search
space. Stentz, 1995
38Applications
- Now we have an optimal, efficient and complete
planner. So what? - Planetary Exploration (Mars, etc)
- Search and Rescue (WTC)
- Any graph search problem where change is possible
- Financial Markets
- Artificial Intelligence