The fast marching method[1] is a numerical method created by James Sethian for solving boundary value problems of the Eikonal equation:
|\nablau(x)|=1/f(x)forx\in\Omega
u(x)=0forx\in\partial\Omega
Typically, such a problem describes the evolution of a closed surface as a function of time
u
f
x
x
u(x)
\partial\Omega
x
The algorithm is similar to Dijkstra's algorithm and uses the fact that information only flows outward from the seeding area. This problem is a special case of level-set methods. More general algorithms exist but are normally slower.
Extensions to non-flat (triangulated) domains solving
|\nablaSu(x)|=1/f(x),
S
x\inS
First, assume that the domain has been discretized into a mesh. We will refer to meshpoints as nodes. Each node
xi
Ui=U(xi) ≈ u(xi)
The algorithm works just like Dijkstra's algorithm but differs in how the nodes' values are calculated. In Dijkstra's algorithm, a node's value is calculated using a single one of the neighboring nodes. However, in solving the PDE in
Rn
1
n
Nodes are labeled as far (not yet visited), considered (visited and value tentatively assigned), and accepted (visited and value permanently assigned).
xi
Ui=+infty
xi\in\partial\Omega
Ui=0
xi
xi
\tilde{U}
\tilde{U}<Ui
Ui=\tilde{U}
xi
\tilde{x}
U
\tilde{x}
xi
\tilde{x}
\tilde{U}
\tilde{U}<Ui
Ui=\tilde{U}
xi