**3. Preliminaries and Notation**

All the algorithms studied in this paper work in planar, eight-connected grid maps with regions of obstacles consisting of blocked cells. A wavefront launched by a cell state change can propagate from one cell to its neighbor in any cardinal or diagonal directions, and the length of the cardinal and diagonal moves are 1 and <sup>√</sup> 2, respectively. We follow the definition of octile distance to compute the heuristic distance between any two cells in a grid map, i.e., the distance between cells *s* and *s'* is computed by following Equation (2):

$$dist(\mathbf{s}, \mathbf{s}') = \sqrt{2} \times min(d\mathbf{x}, dy) + \left| d\mathbf{x} - dy \right| \tag{2}$$

In Equation (2), *dx* and *dy* denote the differences of the 2D coordinates of cell *s* and *s'*. For each cell *s*, *obsts* maintains coordinates of the obstacle cell *so* to which *s* is currently closest, and *dists* maintains the distance between *s* and *so*. The notation *dirs* maintains the direction along with which s would propagate the wavefront. The options of *dirs* include four cardinal directions (denoted as left = 1, up = 3, right = 5, and down = 7), four diagonal directions (denoted as up-left = 2, up-right = 4, down-right = 6, and down-left = 8), and full directions (denoted as full-dir = 0, declaring that *s* is the source of the wavefront; thus, all the eight directions need to be considered in the next round propagation). The notation *raises* shows if the wavefront on *s* is a raise wavefront or a lower one (the differences between raise and lower wavefronts are explained in Section 4.1.1). Given a cell *s*, a direction *d*, and an integer *k*, the notation s' = *s* + *kd* denotes a cell *s'* that is reached from *s* by moving *k* steps along *d*. For two perpendicular directions *c1* and *c2*, we have *d*=*c1*+*c2* to denote that the sum of *c1* and *c2* results in their corresponding diagonal direction *d*.
