D* Lite and Incremental Replanning

D* Lite is an incremental heuristic search algorithm used for replanning in dynamic environments such as live air routing. This lesson introduces the g- and rhs-values, local consistency, the priority key with the k_m modifier, and how a single edge-cost change is processed without replanning from scratch.

Step 1 of 157%

Tutorial

Why Incremental Replanning?

In live air routing, weather cells move, restricted airspace opens and closes, and traffic constraints shift while a flight is already underway. Replanning from scratch with A* after every change is wasteful — most of the previous plan is still valid. D Lite* is an incremental search algorithm that reuses prior computation when edge costs change.

D* Lite searches backward from the goal. For every node ss it maintains two quantities:

  • g(s)g(s): the cost-to-goal estimate carried over from the previous search.
  • rhs(s)rhs(s): a fresh one-step lookahead based on the latest neighbor information,
rhs(s)={0,s=sgoal,minsSucc(s)(c(s,s)+g(s)),otherwise,rhs(s) = \begin{cases} 0, & s = s_{goal}, \\ \min\limits_{s' \in \text{Succ}(s)} \big( c(s,s') + g(s') \big), & \text{otherwise}, \end{cases}

where c(s,s)c(s,s') is the edge cost from ss to ss' and Succ(s)\text{Succ}(s) is the set of successors of ss. The gg-values are memory from the last search; the rhsrhs-values are the freshly recomputed lookahead.

For example, suppose ss has two successors aa and bb with c(s,a)=5c(s,a) = 5, c(s,b)=3c(s,b) = 3, and current values g(a)=8g(a) = 8, g(b)=12g(b) = 12. Then

rhs(s)=min(5+8, 3+12)=min(13,15)=13.rhs(s) = \min(5+8,\ 3+12) = \min(13, 15) = 13.
navigate · Enter open · Esc close · ⌘K/Ctrl K toggle