navigational problems. The algorithm put forward in
(Mark 1986) takes into account both the length of
the route and the complexity of its description. He
does this by classifying intersections by how
difficult they are to guide a user through and
adjusting the weights of each route accordingly.
An improvement suggested in (Duckham 2003),
would be to take into account the type of roads in the
network. Their algorithm relies purely on evaluating
the complexity of navigating a particular route. As
such there is no account made for how quickly a
particular road can be traversed, or indeed the speed
limit or the number of lanes on the road. It would
also be good to direct the algorithm to more
important roads. That said, the authors note that the
simplest route is often already directed to the more
important roads.
3.1.2 Search Algorithm
In order to find an optimal route from a given origin
to a given destination a search algorithm must be
used. While Dijkstra’s algorithm (Dijksra 1959) and
some of its modified versions (Fu 2004, Sanders
2007) are widely recognised as some of the best
route finding algorithms (as they are guaranteed to
give the optimal result), they are very labour
intensive both in terms of time and memory usage.
This is due to the fact that they blindly searches for
routes, looking in all directions equally.
To overcome these problems the A* or Goal-
directed search algorithm (Guzolek 1989, Ikeda
1994) can be used. This algorithm incorporates an
estimate of the remaining cost into the metric (i.e.
f(n) = g(n) + h(n) where g(n) is the actual cost from
the origin to node n and h(n) is an estimate of the
cost from node n to the destination. In order to guide
the search and in order to guarantee an optimal
solution, the value of h(n) must be a lower bound for
the remaining cost from the current node to the
destination. When using shortest path methods, the
value of h(n) is generally based on the Euclidean
distance and the maximum speed limit for the road
network as this would give the minimum time to get
to the destination. However, it is not as easy to use
the A* algorithm when simplest path criteria dictate
in the cost function. This is due to the fact there is no
way to adequately determine a lower bound for the
simplest path criteria from node n to the destination
as these criteria generally do not depend on the
relative position between node n and the destination.
The only lower bound which could be chosen which
would ensure a minimum bound would be zero
(which in most cases would correspond to node n
being on a road which itself leads to the destination
without any instructions needed along the way).
Having h(n) = 0 however, gives the Dijkstra
Algorithm itself and so there would be no speed-up
or increase in efficiency as the search would not be
guided in any way.
3.2 Combined Simplest Route &
Shortest Route Cost Function
We have developed a cost function which combines
both the simplest route and the shortest route costs.
To compute the shortest path we use the following
formulas.
c(R) = Σ
n
c
i
= Σ
n
(TravelTime
i
+ RoadDelay
i
+ TurnDelay
i
)
TravelTime = Distance / SpeedLimit
where Distance is the distance of the road,
SpeedLimit is the legal speed limit of the road,
RoadDelay is the time delay in traversing a
particular road (due mainly to traffic), and
TurnDelay is the time needed to complete a specific
turn. Note, the value for TurnDelay is the time delay
in travelling from the previous road (road i-1) to the
current road (road i).
To incorporate the simplest path with this metric
we compute:
COST(R) = ( Σ
n
(TravelTime
i
+ RoadDelay
i
+ TurnDelay
i
) * RoadTypeWeight
i
*
LaneNumberWeight
i
) * Π
n
TurnWeight
i
where RoadTypeWeight
i
is the road type weight
which is assigned to road i. Take the following
example: a minor road has a weighting of 1.1, a
major road (of the same length) a weighting of 1
Each road has an initial cost function (total time of
travel) of 4. When taking road type weighting into
account the cost value ci for the minor road is now
4.4 while the cost value ci for the major road is now
4. Because the major road results in a lower cost
function, an algorithm which favours lower cost
functions will thus favour routes with major roads.
LaneNumberWeight
i
is a similar weighting factor
which gives more cost to roads with single lanes (as
more major roads facilitate easier overtaking of slow
vehicles and are generally better signposted). The
TurnWeight takes into account the complexity
associated with navigating a turn. For example a
right turn off a busy road without the aid of traffic
lights is a much more stressful and complicated turn
to take for the driver than a simple slip road off to
the left.
ROUTE PLANNING FOR THE BEST VALUE FUEL
175