| Dynamic Elliptical Search Strategy | |
| Input: T, S_start, S_goal Output: Path | |
| 1 | T = Tree(start) t |
| 2 | Cbest = ∞; |
| 3 | ellipse = space; |
| 4 | while not stop_condition() |
| 5 | if Cbest < ∞; |
| 6 | Update ellipse(Cbest); |
| 7 | qrand = Sample_point() |
| 8 | qnearest = Nearest node(qrand); |
| 9 | qnew = Extend tree(qnearest, qrand): |
| 10 | if is valid(qnew) |
| 11 | T.add(qnew); |
| 12 | cost = calculate cost(qnew) |
| 13 | if cost < Cbest |
| 14 | Cbest = cost; |
| 15 | end |
| 16 | return get_best_path() |