First, assume that the domain has been discretized into a mesh. We will refer to mesh points as nodes. Each node x i {\displaystyle x_{i}} has a corresponding value U i = U ( x i ) ≈ u ( x i ) {\displaystyle U_{i}=U(x_{i})\approx u(x_{i})} .
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 R n {\displaystyle \mathbb {R} ^{n}} , between 1 {\displaystyle 1} and n {\displaystyle n} of the neighboring nodes are used.
Nodes are labeled as far (not yet visited), considered (visited and value tentatively assigned), and accepted (visited and value permanently assigned).
J.A. Sethian. A Fast Marching Level Set Method for Monotonically Advancing Fronts, Proc. Natl. Acad. Sci., 93, 4, pp.1591--1595, 1996. [1] https://math.berkeley.edu/~sethian/2006/Papers/sethian.fastmarching.pdf ↩