public interface ILcdShortestRouteAlgorithm
ILcdShortestRouteAlgorithm
is an interface for algorithms that find the shortest
routes from a source node to a destination node.Modifier and Type | Method and Description |
---|---|
<N,E> ILcdRoute<N,E> |
getShortestRoute(ILcdGraph<N,E> aGraph,
ILcdRoute<N,E> aPrecedingRoute,
ILcdRoute<N,E> aSucceedingRoute,
ILcdEdgeValueFunction<N,E> aEdgeValueFunction,
ILcdDistanceFunction<N,E> aHeuristicDistanceFunction)
Returns an
ILcdRoute describing the shortest route between
aPrecedingRoute and aSucceedingRoute . |
<N,E> ILcdRoute<N,E> getShortestRoute(ILcdGraph<N,E> aGraph, ILcdRoute<N,E> aPrecedingRoute, ILcdRoute<N,E> aSucceedingRoute, ILcdEdgeValueFunction<N,E> aEdgeValueFunction, ILcdDistanceFunction<N,E> aHeuristicDistanceFunction)
ILcdRoute
describing the shortest route between
aPrecedingRoute
and aSucceedingRoute
.aGraph
- the graph for which the route is to be calculated.aPrecedingRoute
- the route preceding the shortest route, i.e. where the first
edge of the shortest route should connect to. Only the last
n
edges of this route will have an influence on
the result, where n
is equal to the order of the
given ILcdEdgeValueFunction
.aSucceedingRoute
- the route succeeding the shortest route, i.e. where the last
edge of the shortest route should connect to. Only the first
n
edges of this route will have an influence on
the result, where n
is equal to the order of the
given ILcdEdgeValueFunction
.aEdgeValueFunction
- a function that associates a cost with each edgeaHeuristicDistanceFunction
- a distance function, indicating the estimate cost to travel
from one node to another. This function can be used to
accelerate the search process. Note that this estimate
should always be an underestimate of the real remaining
distance, in order to result in an optimal solution. A
heuristic function, although it can greatly increase the performance
is not required for the algorithm to
work - it may be null
.null
if no such route is found.java.lang.NullPointerException
- if one of the arguments, with exception of aHeuristicDistanceFunction
is null
.java.lang.IllegalArgumentException
- if one of the given routes is not completely contained in the given graph.java.lang.IllegalArgumentException
- if one of the given routes is an empty route. Each of the two given routes
should contain at least one node.