Route Planning
ISYS Route Planning can be used to find the shortest or quickest route between two or more waypoints.
It can also be used in dispatch systems to find the nearest vehicle(s) to a location. Most
dispatch systems choose available vehicles based on zones and/or straight line distances. This can
result in significant delays and poor service if the closest vehicle has to travel several miles further
away before it can turn around on a motorway, or find a bridge to cross a river or railway. Using accurate
route planning, to find the vehicle that can get to the location the quickest, removes these types of problems.
This results in a faster response/service for customers, less wear and tear on vehicles and less unpaid or dead
time for staff/drivers.
Route Planning Sample Map
Fully tunable with modifiable speed and preference settings for all road types (Motorway, Primary,
National, Regional, Local, Minor, Track, Alley) sub types (Dual carriage way, single carriage way,
Link/slip-roads, Roundabouts) and the degree of urbanisation. Can also be tuned to suit the speed
vs quality of calculation required.
Typical applications include:
Dispatch systems for emergency services, service engineers & Private hire/taxi operators.
ISYS Know How
ISYS Route Planning uses the A* Algorithim, modified to search only major roads except when close to the start
and target locations.
The A* algorithm combines the information that Dijkstra's algorithm uses (favoring vertices
that are close to the starting point) and information that Best First Search (BFS) uses (favoring vertices that are
close to the goal).
In the terminology used when talking about A*, g(n) represents the cost of the path from the starting point to any
vertex n, h(n) represents the heuristic estimated cost from vertex n to the target point.
A* balances the two as it moves from the starting point to target. Each time through the main loop, it examines the
vertex n that has the lowest f(n) = g(n) + h(n). The heuristic can be used to control A*'s behavior.
At one extreme, if h(n) is 0, then only g(n) plays a role, and A* turns into Dijkstra's algorithm, which is
guaranteed to find a shortest path. If h(n) is always lower than (or equal to) the cost of moving from n to the goal,
then A* is guaranteed to find a shortest path. The lower h(n) is, the more nodes A* expands, making it slower.
If h(n) is exactly equal to the cost of moving from n to the goal, then A* will only follow the best path and never
expand anything else, making it very fast.
If h(n) is sometimes greater than the cost of moving from n to the goal, then A* is not guaranteed to find a shortest
path, but it can run faster (less back-tracking).
At the other extreme, if h(n) is very high relative to g(n), then only h(n) plays a role, and A* turns into BFS.
So we can decide what we want to get out of A* and tune it accordingly.