**2. Algorithm backgrounds**

approaches of reduced visibility graph, this fast method outperforms the rest of *O*(*n*log *n*) algorithms in the general two-dimensional situation, except the path length compared to the

In the quadratic plane, a survey of the shortest path problem concerning a two or higher dimensional geometric object (e.g. a surface, a polyhedron, space, network) can be found in [7]. The shortest path problem in the general three-dimensional situation is non-deterministic polynomial-time hard (NP-hard) problem [8], and only exponential time algorithms are known. In [9], the shortest path on a polyhedron is its local, which has an important property called unfolding, where the

It follows that any locally optimal shortest path joining two consecutive obstacle vertices can be unfolded at each edge along its edge sequence, thus obtaining a straight segment. Sharir

exact shortest path on a convex surface, where *n* is the number of edges. Later, Mitchell et al.

by a continuous Dijkstra method for general polyhedron. Chen and Han [12] improved it to

Kimmel and Sethian [13] presented a fast searching method for solving the Eikonal equation on a rectangular orthogonal mesh in *O*(*M*log *M*) steps, where *M* is the total number of grid points. They extended the fast marching method to triangulated domains with the same computational complexity. As an application, they provide an optimal time algorithm for computing the geodesic distances and thereby extracting shortest paths on triangulated manifolds. Helgason et al. [14] presented a heuristic algorithm based on geometric concepts for the problem of finding a path composed of line segments from a given destination in the presence of polygonal obstacles. The basic idea involves constructing circumscribing triangles around the obstacles to be avoided. Their heuristic algorithm considers paths composed primarily of line segments corresponding to partial edges of these circumscribing triangles and uses a simple

Kanai and Suzuki proposed a near-shortest path approach (Kanai and Suzuki, KS's algorithm [9]) based on the Delaunay triangulation, the Dijkstra algorithm, and Steiner points, with compu-

of the triangles. Although KS's algorithm is an approximation, it has the significant advantages of easy implementation, high approximation accuracy, and numerical robustness. However, to obtain a shorter path, the computation time required by the path planning will increase rapidly

In this chapter, an *O*(*n* log *n*) time near-shortest path planning is introduced. It combined with the Delaunay triangulation, Ahuja-Dijkstra algorithm, and ridge points for path planning on a quadratic surface. Experimental results show that the average path length of the Delaunay triangulation-based algorithm is 0.28% longer than the KS's algorithm; however, the speed is 31.71 times faster. Furthermore, when performing KS's algorithm with 29 Steiner points, the NP-hard shortest path will be found (extremely close approximation of the shortest path planning). Although the length is 2.81% longer than the shortest, the computation time is

) algorithm. Faster algorithms than these cannot be found by far.

branch-and-bound procedure to find a relatively short path of this type.

when the Steiner points increases. A detailed comparison can be found in **Table 1**.

*n*log *k*<sup>2</sup>

log *n*) algorithm, which first applied this property to find the

*n*), where *k* is the number of Steiner points and *n* is the number

log *n*) algorithm for propagating the shortest path map over a surface

) time shortest algorithm of visibility graph.

path must enter and leave at the same angle to the intersecting edge.

shortest *O*(*n*<sup>2</sup>

and Schorr [10] proposed an *O*(*n*<sup>3</sup>

92 Advanced Path Planning for Mobile Entities

[11] proposed an *O*(*n*<sup>2</sup>

tational complexity of *O*(*k*<sup>2</sup>

an *O*(*n*<sup>2</sup>

In this section, basic concepts of the Delaunay triangulation algorithm on the quadratic surface will be introduced, such as Euclidean plane, Delaunay triangulation, ridge points, and Dijkstra's single-source shortest path algorithm. Euclidean space is the Euclidean plane and three-dimensional space of Euclidean geometry [15], as well as the generalisations of these notions to higher dimensions. It can be used to distinguish these spaces from the curved spaces of non-Euclidean geometry and Einstein's general theory of relativity [16].

For the quadratic surface, there is essentially only one Euclidean space with three real number coordinates from the modern viewpoint.

A Quadric surface is the locus of the points (*x, y, z*), which satisfy a second-degree equation in three variables, *Ax*<sup>2</sup> + *By*<sup>2</sup> + *Cz*<sup>2</sup> + 2*Dxy* + 2*Exy* + 2*Fyz* + *Gx* + *Hy* + *Iz* + *J* = 0, and the different types of Quadric surfaces, a total of 15, are obtained by varying the coefficients of it [17].

The classification of the different types of Quadric surfaces is made, first, on the basis of the matrix of the quadratic from determining by the symmetric matrix:

$$A\_{\mathbb{Q}} = \begin{pmatrix} A & D & E \\ D & B & F \\ E & F & C \end{pmatrix} \tag{1}$$

A triangle mesh is a type of polygon mesh in computer graphics. It comprises a set of triangles (typically in three dimensions) that are connected by their common edges or corners [18]. With individual triangles, the system has to operate on three vertices for every triangle. In mathematics and computational geometry, the triangle mesh can be expressed in a Delaunay triangulation for a set *V* of vertices in the plane is a triangulation DT(*V*) such that no vertex in *V* is inside the circle of any triangle in DT(*V*) [19].

**Algorithm**: The triangle mesh-based shortest path on the quadric surfaces.

points on the quadric surface by performing Function 1.

Step 3. Construct the directed connected graph *G*′

**END** {Algorithm of the triangle mesh-based shortest path}.

Step 4. Obtain the shortest path in graph *G*′

Step 5. Call the Function 2 *PathShortening*(*P*).

and neighbour triangles vertices and ridge points.

Step 1. Construct a triangle mesh *G* by the Delaunay triangulation on the data, locate a

Step 2. Compute the shortest path between the neighbouring vertices based on the ridge

**Figure 2** illustrates the detailed process. **Figure 2(a)** shows the initiation of a triangle mesh *G*, then a source point *S* and a destination point *D* are depicted in **Figure 2(b)**. Next, ridge points will be inserted into the triangle mesh in order to generate extra path connections

**Figure 1.** Illustration of the ridge points. (a) A ridge point of ∆ABC and ∆ACD. (b) The connections between the ∆ABC

with the extra connections.

Path Planning on Quadric Surfaces and Its Application http://dx.doi.org/10.5772/intechopen.72573 95

if it exists by Ahuja-Dijkstras algorithm.

Init Load the data from a GIS map.

source point and a destination point.

A path that interconnects the two vertices *v* and *v'* of a graph *G* with minimal length for all paths is called the shortest path. Finding a shortest path in a graph *G* can be done in *O*(*n*log *n*) with Ahuja-Dijkstra's single-source shortest path algorithm by using Fibonacci heaps (F-heaps) and radix heaps [20].

A ridge is a curve consisting of ridge point: A point lies on a ridge if its neighbourhood can be subdivided by a line passing through it, and such that the surface in each half-neighbourhood is monotonically decreasing when moving away from the line [21].
