graph, and it can be found by using standard graph
algorithms such as the A* algorithm.
The rest of this paper is structured as follows: Sec-
tion 2 presents and explores the direct algorithm, in-
cluding how to speed up repeated calculations and
queries to the map data through various caching
schemes and the use of multi-threading. Section 3
presents and explores the transformation algorithm
for optimal routing which allows the use of standard
shortest path algorithms, including different pruning
methods for removing redundant edges in the graph.
Sections 4, 5, and 6 illustrate the results of the em-
pirical evaluations on the Danish, the French, and the
European power grids. Section 7 concludes this paper
and discusses possible future work.
2 THE DIRECT ALGORITHM
This section presents and explores the direct algo-
rithm, including how to speed up repeated calcula-
tions and queries to the map data through various
caching schemes and the use of multi-threading.
2.1 The Extension of A* to Route
through Penalized Air and to
Consider Non-logical Intersections
The A* (pronounced “a star”) algorithm(Ducho
ˇ
n
et al., 2014) is a popular choice for path planning
problems, as it is guaranteed to return an optimal so-
lution and can be used in a wide range of contexts.
It combines the speed of heuristic approaches like
Greedy Best-First-Search (Dechter and Pearl, 1985)
and optimal approaches such as Dijkstra’s algorithm
(Noto and Sato, 2000). The A* algorithm begins with
the start node and successively computes the exact
cost of the path from the starting node to any other
node n represented as a function g(n). In order to se-
lect which n to expand next, A* employs a heuristic
based on the estimated cost from node n to the end
node represented as h(n). When the end point n
end
is reached, the A* algorithm terminates. The cost
is then known through g(n
end
), and the path repre-
senting the corresponding route can easily be recon-
structed through a simple bookkeeping exercise. As
long as the heuristic function h is admissible (i.e., it
underestimates the costs to the end node), the cost and
route found by A* are guaranteed to be optimal.
In (Sathyaraj, 2008), authors compare the A* al-
gorithm with Dijkstra solver and Floyd-Warshall al-
gorithm in the term of the increasing number of nodes
visited and the time of computation consumed. As, in
the worst-case, the Dijkstra algorithm has to consider
all paths to all possible nodes, the time complexity of
that algorithm depends on the number of nodes and
edges in the graph. However, the time complexity of
the A* algorithm does not depend on the total num-
ber of nodes(Sathyaraj, 2008) but only on the length
of the shortest path and the average branching factor.
The Floyd-Warshall algorithm computes the shortest
paths between all nodes. On large sparse graphs such
as the ones representing linear infrastructures, this is
prohibitive in terms of time and space requirements.
In (Sathyaraj, 2008), authors concludes that the A* is
the best-established general algorithm for finding op-
timal routes.
The variant of the A* algorithm proposed in this
paper has several parameters:
• SafeDist: the minimum distance to keep from
perilous infrastructure such as transformer sta-
tions
• MaxFly: the maximum free flying distance away
from infrastructure elements such as power towers
• Penalty: the penalty factor for flying away from
infrastructure elements
• Precision: when set to larger than 1, the algorithm
will perform faster but find possibly non-optimal
routes
The SafeDist parameter has two functions: it makes
the drone avoid infrastructure elements such as trans-
former stations, and it avoids unnecessary routing
complexity, as transformer stations internally consist
of a large number of logical and non-logical intersec-
tions and, consequently, increase the average branch-
ing factor. We use a default value of 100 metres.
For the MaxFly parameter, we set a default of
1000 metres, which again has two effects: it disal-
lows flying away from power towers for more than
1 km, and it keeps the average branching factor on
a somewhat manageable level. In our initial experi-
ments, we found that a much lower value would suf-
ficie for most situations. But there are situations such
as flying around a transformer station or crossing over
to a line, where free flights of up to a few hundred
metres were necessary to avoid having to add tens or
hundreds of kilometres.
The Penalty parameter is used to penalize such
free flying time away from power lines. We use a
default value of 20, as we would rather have the drone
fly for an extra kilometre than have it fly 100 metres
away from the power lines.
The Precision parameter scales the estimate for
h(n). We use a default value of 1, as we strive for
fully optimal routes in order to keep flying times for
the drones minimal.
GISTAM 2020 - 6th International Conference on Geographical Information Systems Theory, Applications and Management
328