=Paper=
{{Paper
|id=Vol-1348/maics2013_paper_5
|storemode=property
|title=Navigation on Density-Unbalanced Terrain
|pdfUrl=https://ceur-ws.org/Vol-1348/maics2013_paper_5a.pdf
|volume=Vol-1348
|dblpUrl=https://dblp.org/rec/conf/maics/HanY13
}}
==Navigation on Density-Unbalanced Terrain==
Navigation on Density-Unbalanced Terrain Qiang Han, Weiya Yue University of Cincinnati School of Electronic & Computing System Cincinnati, OH 45220, USA hanqg@ucmail.uc.edu, weiyayue@hotmail.com Abstract When the environment is static, the well known A* algo- rithm (Hart, Nilsson, & Raphael 1968) uses a vertex evalu- Navigation algorithms have shown to be important in ation function f (v) to determine the order in which the al- many practical applications. In an unknown or con- gorithm chooses vertices in the search tree to build the path stantly changing environment, D* Lite, a classic dy- from vs to vg . The evaluation function, f (v) has two addi- namic algorithm, replans a shortest path in an efficient manner. However, if there are multiple shortest paths, tive components, that is, f (v) = g(v) + h(v), where g(v) is the D* Lite algorithm arbitrarily selects one. When the actual cost from vs to the current vertex v, and h(v) is it comes to a density-unbalanced terrain, the shortest a cost estimating heuristic from v to vg . Another algorithm, paths with the same cost may have different meaning. Lifelong Planning A* (LPA*) (Koenig, Likhachev, & Furcy The algorithm performance largely depends on how 2004) (Koenig & Likhachev 2001), introduces an additional crowded are the areas through which the selected short- component, rhs(v), which is calculated using the updated est path traverses. In this paper, we propose the density- g-value of v’s predecessors and thus potentially better in- aware D* Lite algorithm, DAD* Lite, which is capa- formed and more updated than v’s own g-value. However, ble to take into account crowded areas and avoid them LPA* only recalculates the lowest cost path when the agent to find a (best) shortest path even when this has more is at vs and it does not replan as the agent moves and finds detours than other shortest paths. Experiments show DAD* Lite improves D* Lite by giving better results changes. on successful runs and moving distance. D* Lite can be treated as a dynamic version of LPA*. However, unlike LPA*, which detects environment changes globally, D* Lite employs a parameter called sensor-radius. Introduction Only vertices that are within sensor-radius from the current vertex are exactly in sight and the agent has accurate infor- Navigation algorithms, largely used to develop autonomous mation on these vertices. Therefore, the agent knows only vehicles, intelligent agents, etc, are an important area of part of the terrain precisely, beyond which it holds old infor- study in artificial intelligence. Under a dynamic environ- mation, which might be out of date. ment, knowledge of the terrain – initially partially known, or As the D* algorithm (Stentz 1995) (Stentz 1997), D* Lite unknown – is updated as the agent (for example, an explor- performs a backward search from vg to vs . For D* and all its ing planet rover, and vehicle parking) moves. Replanning descendant algorithms, the backward search is the key point in dynamic circumstances is a very practical problem and to their success, because the g-value of every node v in G it is a key part of a navigation algorithm. D* Lite (Koenig is exactly the path cost from vg to v and can be reused after & Likhachev 2002) (Koenig & Likhachev 2005) has been the agent moves. When edge cost changes are detected, and proven and largely used as an efficient dynamic navigation the g-values of the vertices affected by these changes need algorithm. to be updated, D* Lite propagates the computation from the The D* Lite algorithm seeks to find a minimum cost path affected vertices to vs . In most cases, the backward propa- from the start point to the goal point in the dynamic envi- gation expands much less vertices than a forward search. ronment. Terrain information is modeled as an undirected D* Lite also uses the “more informed” rhs function to graph G(V, E) with a start vertex vs and a goal vertex vg . make better vertex updates during expansion. The rhs func- An edge cost function, denoted by c(v, u), is associated to tion in D* Lite is defined by each directed edge (v, u), and the cost of a path is the sum minv0 ∈succ(v) g(v 0 ) + c(v, v 0 ) v 6= vg of all the edge costs along that path. Determining the global minimum cost path from vs to vg is by no means trivial since rhs(v) = 0 otherwise. the known environment information held by the agent may change unpredictably. Three states are defined for a vertex v: the vertes is lo- cally consistent if rhs(v) = g(v), locally overconsistent if rhs(v) < g(v), and locally underconsistent if rhs(v) > Copyright held by the authors. g(v). To generate the shortest path, D* Lite maintains the vertices in a priority queue with in ascending order of Planning on Density-Unbalanced Terrain key − values defined as min(g(v), rhs(v)) + h(vs , v). Motivation for DAD* Lite Every time an inconsistent vertex is updated by making D* Lite and all its variants conduct experiments on random g(v) = rhs(v), the algorithm needs to check whether its terrains. For example, each node on the grid world is se- neighbor becomes inconsistent. If this happens, this neigh- lected as a block with the same probability and all the un- bor is added to the queue. D* Lite propagates calculations blocked edges have equal cost. However, the real world en- until all vertices on the path, including vs , are locally con- vironments are much more complex for which the assump- sistent. When selecting the shortest path, the agent moves tion of an even-distribution terrain does not hold. Moreover, to its neighbor vertex with the minimum of g-value plus the these algorithms do not consider the information caused by edge cost, which is the maximum-g-decrease-value. If the the unbalance, when, in fact, such information can help de- agent detects any changes that have been made since the velop a more efficient navigation algorithm. Fig. 1 is a Mars last round, this makes these changed vertices inconsistent, panorama taken by Mars Exploration Rover (Nasa 2012). and D* Lite adds them to the priority queue for possible up- In the middle of the picture, there is an area crowded with date. Because D* Lite only updates partially inconsistent rocks, while in other regions the terrain is clear of rocks and vertices, making (g, rhs) consistent instead of all vertices, spacious. it can perform much more efficient than the other navigation algorithms. D* Lite has been improved by avoiding unneccessary cal- culations in the case where the previous planned shortest path is still available and considering the new changes de- tected there is no better solution to replace this path (Yue & Franco 2009) (Yue & Franco 2010). Additionally, a variant of D*, ID* Lite, seeks to reduce calculation by first expand- ing the vertices which are more likely to contribute a short- Figure 1: Mars Panorama taken by Mars Exploration Rover est path (Yue et al. 2011). A threshold is used in ID* Lite to control updates. Only the vertices with key-value smaller Density-unbalanced terrain can be illustrated in a grid than the threshold can be updated. The threshold value is world as shown in Fig. 2, where vi,j denotes the ith row increased gradually, until the shortest path is found. Due to the way of performing undates, ID* Lite avoids unnecessary and j th column vertex. Fig. 2 shows three shortest paths update significantly and it shows much better results than D* from vs = v3,3 to vg = v0,0 . When the agent starts to move Lite. from vs , D* Lite picks up one of vs ’s on-the-shortest-path successors, v3,2 or v2,3 arbitrarily. Based on the perception There are many other variants from D* Lite, which deal of human beings, going to v2,3 is better, because this area with different constraints or requirements. For example, is spacious while the bottom left side of the grid is more DD* Lite (Mills-Tettey, Stentz, & Dias 2006) combines D* crowded. P ath1 may be blocked more in the future, and Lite with a technique of detecting dominance relationships it does not have a detour. However, D* Lite makes deci- to solve navigation problems with global constraints. By sions on the next move only depending on c(vs , v) + g(v), using the dominance relationship it prunes the search tree v ∈ succ(vs ), thus the agent has the same probability to go obtaining a fast planning. The anytime algorithm family, to the crowded area or the spacious area. such as AWA* (Hansen & Zhou 2007), ARA* (Likhachev, Gordon, & Thrun 2003), AD* (Likhachev et al. 2005), and IAD* (Yue et al. 2012), share the so called inflated heuristics strategy, according to which the evaluation func- tion f (v) is replaced by f 0 (v) = g(v) + · h(v), where >= 1 denotes the inflation factor. Its effect is to increase the weight of h-value in f (v), which causes fewer vertices to be updated, and a sub-optimal path is returned. Thus, any- time algorithms work best in time-limited and suboptimal solution acceptable environments. Figure 2: A 4 × 4 4-directional grid example A new algorithm, Density-Aware D* Lite (DAD* Lite), which replans a minimum cost path in a density-unbalanced environment is introduced in this study. Section Planning on Heuristics in DAD* Lite Density-Unbalanced Terrain describes DAD* Lite and moti- vation behind it. The experimental setup, results, and analy- With the above observations, designing an algorithm able sis are presented in Section Experiments. Finally, Section to select a shortest path in the most spacious region, thus Conclusion and Future Work concludes the current study avoiding crowded areas is an important problem. To solve and presents future work. this problem, two issues must be considered. The first issue concerns the pool of candidate paths, in particular, how to obtain them. In DAD* Lite, the candi- date pool contains all the shortest paths from vs to vg . One could argue that a slightly-longer-than-shortest path that goes through a much more spacious and easier route each of Procedure Initialize(): the shortest paths, will potentially avoid more interruptions 01. U = ∅; and finally get to vg with the minimum overall cost. It may 02. km = 0; help to overcome the shortcomings of the D* Lite family al- 03. for all v ∈ V rhs(v) = g(v) = ∞; eval(v) = 0; gorithms due to the unpredictable future changes (dynamic 04. rhs(vg ) = 0; environment) and the inaccurate information (limitation of 05. eval(vg ) = 1; the sensor radius): D* Lite only computes the shortest path 06. U.Insert(vg , CalcKey(vg )); based on local and temporary information which turns out Procedure GetDAPath(u) not to be a globally optimal solution almost certainly. How- 01. if(u 6= vg ) ever we treat this non-trivial problem as our future work and 02. for all v ∈ succ(u) in this paper, the proposed DAD* Lite algorithm considers 03. if (rhs(u) = g(v) + c(u, v) && eval(v) = 0) only all the shortest paths as the candidate pool. 04. eval(u)+ =GetDAPath(v); As a descendant of D* Lite, DAD* Lite uses the same 05. next(u) = argmaxv∈succ(u)&&rhs(u)=g(v)+c(u,v) eval(v); 06. cnt = # of blocked v | v ∈ pred(u); procedure to calculate shortest paths. D* Lite finds all the 07. eval(u) = eval(u)/2cnt ; shortest paths after calling ComputerShortestPath() shown 08. return (eval(u)); in the pseudocode of (Koenig & Likhachev 2005). The rea- son is that when one child of a vertex has been updated to be Procedure GetDAPath() consistent, then all its other children will be updated to be 01. for all visited v in last round except vg consistent. So if one shortest path has been found, suppos- 02. eval(v) = 0; 03. GetDAPath(vs ); ing an other arbitrary path p from vs to vg is also shortest, then the child of vc on p must be updated and consistent too. Iteratively, all the vertices on p are updated and consistent, Figure 3: Subroutines of DAD* Lite and thus all alternative shortest paths can be found, as shown in (Yue & Franco 2009) and (Yue & Franco 2010). The cor- rectness of DAD* Lite follows from that of D* Lite, and thus DAD* Lite is guaranteed to find all the shortest paths. The second issue concerns the design of heuristics to select a path along with less crowded areas. DAD* Lite chooses two factors to represent the how crowded a path is: • Number of blocked path neighbors: • Number of detours to other shortest paths: Procedure Main(): The heuristic value of a path is an accumulation of each ver- 01. vlast = vs ; tex’s evaluation on this path, and DAD* Lite calculates the 02. Initialize(); evaluation value of each vertex along the shortest paths. The 03. ComputeShortestPath(); evaluation value reflects the information of both the number 04. GetDAPath(); of blocked neighbors from this vertex to the goal and the 05. while (vs 6= vg ) number of detours to the other shortest paths. The detailed 06. /* if (g(vg ) = inf) then there is no known path */ computation of the evaluation value is shown next. 07. vs = next(vs ); 08. Agent moves to vs ; DAD* Lite Implementation 09. Scan graph for changed edge costs; 10. if any edge cost changes were observed Fig. 3 and Fig. 4 illustrate the DAD* Lite pseudocode. 11. km = km + h(vlast , vs ); Since DAD* Lite is built on D* Lite only the new and 12. vlast = vs ; changed subroutines are shown; the omitted D* Lite sub- 13. for all directed edges (u, v) with changed edge costs routines can be found in (Koenig & Likhachev 2005). In 14. Update the edge cost c(u, v); the main function in Fig. 4, when ComputerShortestPath() 15. UpdateVertex(u); in Line 03 and Line 16 finishes, all the shortest paths are 16. ComputeShortestPath(); found. Then DAD* Lite calls GetDAPath() which aims to 17. GetDAPath(); find the shortest path avoiding crowded areas. Another dif- ference from D* Lite in the main function, is that when the Figure 4: Main function of DAD* Lite agent moves, it just moves to next(vs ). next(v) is the next vertex from v based on the density-aware path. In Fig. 3, firstly GetDAPath() initializes eval(v) for ver- tices which are visited in the last round of GetDAPath() com- putation. Then it calls GetDAPath(v). GetDAPath(v) is a re- cursive function, which computes eval(v) for each vertex v of the whole terrain area; different crowded areas overlap. on the shortest paths. Lines 02-07 show how the heuristics Before every navigation, the agent has an old map, in which are calculated. Lines 02-04 sum the eval(v) of u’s succes- every obstacle is considered wrongly to be at its neighbor sors only if its successor v is on the shortest paths. This position with probability 0.5. As the agent moves, in each calculation gives higher value for the vertices with more de- step, all the obstacles in the terrain have probability 0.5 to tours. Line 05 chooses the vertex v which has the high- move to their neighbors excluding vs and vg . est evaluation value from all u’s successors and saves it to next(u). In line 06, cnt counts the number of the blocked Results and Analysis v in u’s predecessors. The larger cnt, the higher probability In Fig. 6, the performance of D* Lite and DAD* Lite is that a block will move to u and block the path from u to vg . compared along two aspects – successful runs and moving Line 07 gives the formula of eval(u), which is is directly distance – with different crowded-percentage. Experiments proportional to the sum of u’s on-the-shortest-path succes- of D* Lite and DAD* Lite, respectively, run 1000 times. In sors’ evaluation value, and is inversely proportional to two each experiment, navigation stops when the algorithm can- to the power of the number of blocks around u. not find a single path from vs to vg and thus vg can never be reached. successful runs represents the number of exper- An Example iments in which the agent reaches vg in the end. Among all Fig. 5 shows how DAD* Lite works in a grid world exam- the successful runs, moving distance measures the average ple. In Fig. 5(a), (g, rhs) values are calculated in Comput- distance that the agent moves from vs to vg . Compared to erShortestPath(). GetDAPath() calculates eval(v) in depth- the other D* Lite family algorithms experiments, where the first-search fashion from the root vs . For example, in Fig. emphasis is mostly on running time and heap operation, suc- 5(b) to calculate eval(v1,3 ), its two successors v1,2 and cessful runs and moving distance reflect a more global point v0,3 evaluation values are 321 and 321 respectively, and v1,3 of view. has one blocked neighbor. So eval(v1,3 ) is calculated as 1000 450 D* Lite 1 1 1 ( 32 + 32 )/21 = 32 . DAD* Lite Moving distance Successful runs 750 400 500 350 250 300 D* Lite DAD* Lite 0 250 0.15 0.2 0.25 0.3 0.35 0.4 0.15 0.2 0.25 0.3 0.35 0.4 crowded-percentage crowded-percentage (a) (b) (a) (g, rhs) value (b) eval(v) value Figure 6: size = 200, sensor − radius = 10, spacious − percentage = 0.1 Figure 5: A 4-direction grid world example on eval(v) cal- In Fig. 6(a), DAD* Lite shows better results in success- culation ful runs than D* Lite. This benefit reaches the maximum In Fig. 5(b), arrows indicate the vertex pointed to by at crowded-percentage = 0.3. When crowded-percentage next(v). Then next(v) always goes to the successor with is small, the terrain is actually rather spacious, with small the maximum eval. That is, next(vs ) points to v2,3 , be- crowded areas, so the advantage of DAD* Lite is not ob- 1 cause it has a larger eval (equal to 128 ) than v3,2 . It can be vious. As crowded-percentage increases, the crowded ar- seen in Fig. 5(b) that the eval value has the capability to eas have more obstacles. If a shortest path exists, D* Lite reflect directly how crowded a shortest path is. picks up one arbitrarily. If this shortest path goes through crowded areas, the probability that the agent is trapped in Experiments one of these increases. Therefore, DAD* Lite outperforms D* Lite in this situation. As crowded-percentage increases, Experimental Setup fewer and fewer paths can pass through the crowded areas, In this section, DAD* Lite is compared with D* Lite on ran- so the shortest paths through the crowded areas account for dom grid terrains. The grid world is a 4-direction square a small proportion among all the shortest paths and there- terrain with size × size vertices. All the experiments are fore, it becomes easy for D* Lite to select a path avoiding carried out on the terrain with size = 200. vg = v(20,20) crowded areas. This explains why DAD* Lite gains less in and vs = v(180,180) . The sensor-radius is the observable dis- successful runs when crowded-percentage = 0.4. tance from the agent’s current vertex. In every experiment, In Fig. 6(b), DAD* Lite has shorter moving distance than each vertex in the spacious area is randomly selected as D* Lite. Because the benchmark used is random and the ter- blocked with some probability spacious-percentage, which rain block density is still small, if the planned shortest path higher for vertices in crowded areas, described by crowded- is interrupted, it is easier for the algorithm to find an alter- percentage. To simulate the crowded areas, a number of native shortest path with the same distance as the old one, squares, with a random side length from 30 to 50, are in- and hence, for both DAD* Lite and D* Lite, the moving dis- jected in the terrains. The total crowded areas sum up to 30% tance is not big. However, it should be noticed that since 600 600 vs = v(180,180) and vg = v(20,20) , the cost of the possible Time(milliseconds) Time(milliseconds) shortest path is 320. In Fig. 6(b) the values for moving dis- 500 500 tance produced by DAD* Lite are all closed to 320, which 400 400 shows that the benefit of DAD* Lite with respcet to the mov- 300 300 ing distance is relatively stable. D* Lite DAD* Lite D* Lite DAD* Lite 200 200 0.15 0.2 0.25 0.3 0.35 0.4 2 5 10 15 20 1000 450 D* Lite crowded-percentage sensor-radius DAD* Lite Moving distance Successful runs 400 750 (a) sensor-radius = 10, (b) spacious-percentage = 0.1, 500 350 spacious-percentage = 0.1 crowded-percentage = 0.3 300 650 250 D* Lite 600 Time(milliseconds) DAD* Lite 0 250 500 2 5 10 15 20 2 5 10 15 20 sensor-radius sensor-radius 400 (a) (b) 300 D* Lite DAD* Lite 200 Figure 7: size = 200, spacious-percentage = 0.1, crowded- 0.1 0.15 0.2 0.25 spacious percentage percentage = 0.3 = crowded percentage (c) sensor-radius = 10 In Fig. 7, two algorithms are compared with different sensor-radius. Fig. 7(a) shows that the number of successful Figure 9: Running time comparisons runs decreases with sensor-radius for both DAD* Lite and D*. However, compared to D* Lite, DAD* Lite is less af- fected by the change of sensor-radius. More importantly, it Similarly, ID* Lite (Yue et al. 2011) also calls a subroutine, can be seen that DAD* Lite with sensor-radius = 2 shows get-alternative(), to generate the shortest path. Because ID* the similar result to D* Lite with sensor-radius = 20. In Lite reduces the number of vertices to expand, it consumes other words, in the same environment, the result of using much less time than D* Lite in total. Another big difference DAD* Lite is equal to that of using D* Lite with a 10× is that the subroutine get-alternative() in ID* Lite only ex- sensor-radius. Fig. 7(b) shows the improvement of DAD* pands one shortest path, and thus does not have to traverse Lite with respect to the moving distance. all the vertices on all the shortest paths as DAD* Lite does. 450 In Fig. 9(a), the difference between two algorithms 1000 D* Lite DAD* Lite reaches the minimum point at crowded-percentage = 0.3, Moving distance Successful runs 750 400 because DAD* Lite saves more moving distance than D* 500 350 Lite as shown in Fig. 6(b). In Fig. 9(c), the biggest differ- 250 D* Lite 300 ence between the two algorithms comes when block percent- 0 DAD* Lite 250 age = 0.1. That is, when the terrain becomes more spacious, 0.1 0.15 0.2 0.25 0.1 0.15 0.2 0.25 there are more shortest paths, therefore GetDAPath() needs spacious percentage spacious percentage = crowded percentage = crowded percentage to expand more vertices and thus, it consumes more time. (a) (b) Conclusion and Future Work Figure 8: size = 200, sensor-radius = 10 This study proposed DAD* Lite, the Density-Aware D* Lite algorithm. Compared to D* Lite selecting a shortest Fig. 8 depicts the results of two algorithms in the terrains path arbitrarily, DAD* Lite finds a shortest path which may when spacious percentage = crowded percentage. In this have more detours than other shortest paths and avoid the case, all blocks are randomly chosen and evenly distributed crowded areas. From a global point of view, by using a among the terrain. DAD* Lite performs better than D* Lite heuristic to quantify how crowded an area is, DAD* Lite with respect to both successful runs and moving distance. produces better results than D* Lite. This improvement is The advantage is small but stable. This result shows that reflected experimentally in the values of successful runs and even for a block-evenly-distributed terrain, there may exist moving distance. some random crowded areas, of which DAD* Lite can take From the experimental results, DAD* Lite consumes advantage to a certain extent. more time than D* Lite, which is determined by the struc- Fig. 9 shows the running time comparisons of the above ture of the algorithm. Future work will set a threshold on three experiment configurations, responding to Fig. 6, Fig. running time of GetDAPath() or a threshold on the number 7 and Fig. 8 respectively. Running time is the average time of the shortest paths to search in GetDAPath() to prune the of all the successful runs in each experiment configuration. search tree. Furthermore, the option of embedding DAD* Because DAD* Lite inserts the procedure GetDAPath() and Lite heuristic with ID* Lite, in order to shorten computation it basically has the same structure as D* Lite, potentially its time, will also be explored. However, for a system that does running time is longer. GetDAPath() has to traverse all the not have a strict time limit, and when crowded areas are an vertices on the shortest paths to calculate evaluation values. important issue (e.g., the agent may be damaged if traveling in such areas), DAD* Lite will always have a higher chance ference on Automated Planning and Scheduling (ICAPS), to reach vg successfully on the shorter path (i.e., moving less 262–271. distance). Likhachev, M.; Gordon, G.; and Thrun, S. 2003. Ara*: As already discussed, D* Lite has its inherent shortcom- anytime a* with provable bounds on sub-optimality. Ad- ings because the local and temporary nature of the informa- vances in Neural Information Processing Systems. tion it owns. Without global information, it is impossible to Mills-Tettey, G.; Stentz, A.; and Dias, M. 2006. Ddˆ* find a globally optimal solution. The DAD* Lite algorithm lite: Efficient incremental search with state dominance. In presented here is a good start in the direction of obtaining Proceedings of the National Conference on Artificial Intel- a globally optimal solution. Improving the candidate pool ligence, volume 21(2), 1032. Menlo Park, CA; Cambridge, of the paths and development of better heuristics will likely MA; London; AAAI Press; MIT Press; 1999. lead solutions close to global optimality. Nasa. 2012. Spirit mars rover in ’mcmurdo’ panorama. http://marsrovers.jpl.nasa.gov/ References gallery/press/spirit/20121109a.html. Hansen, E., and Zhou, R. 2007. Anytime heuristic search. Stentz, A. 1995. The focussed d* algorithm for real-time Journal of Artificial Intelligence Research 28(1):267–297. replanning. In Proceedings of the International Joint Con- Hart, P.; Nilsson, N.; and Raphael, B. 1968. A formal ba- ference on Artificial Intelligence, 1652–1659. sis for the heuristic determination of minimum cost paths. Stentz, A. 1997. Optimal and efficient path planning for Systems Science and Cybernetics, IEEE Transactions on partially-known environments. The Kluwer International 4(2):100–107. Series in Engineering and Computer Science 388:203–220. Koenig, S., and Likhachev, M. 2001. Incremental a*. Ad- Yue, W., and Franco, J. 2009. Avoiding unnecessary cal- vances in neural information processing systems 14:1539– culations in robot navigation. In Proceedings of World 1546. Congress on Engineering and Computer Science, 718–723. Koenig, S., and Likhachev, M. 2002. D*lite. In Eighteenth Yue, W., and Franco, J. 2010. A new way to reduce com- national conference on Artificial intelligence 2002, 476– puting in navigation algorithm. Journal of Engineering 483. Letters 18(4):EL 18 4 03. Koenig, S., and Likhachev, M. 2005. Fast replanning for Yue, W.; Franco, J.; Cao, W.; and Yue, H. 2011. Id* navigation in unknown terrain. Robotics, IEEE Transac- lite: improved d* lite algorithm. In Proceedings of the tions on 21(3):354–363. 2011 ACM Symposium on Applied Computing, 1364–1369. ACM. Koenig, S.; Likhachev, M.; and Furcy, D. 2004. Lifelong planning a*. Artificial Intelligence 155(1):93–146. Yue, W.; Franco, J.; Cao, W.; and Han, Q. 2012. A new anytime dynamic navigation algorithm. In Proceedings of Likhachev, M.; Ferguson, D.; Gordon, G.; Stentz, A.; and the World Congress on Engineering and Computer Science Thrun, S. 2005. Anytime dynamic a*: An anytime, replan- 2012, WCECS 2012, volume 1, 17–22. ning algorithm. In Proceedings of the International Con-