net.walend.measured
Class JITShortestGEPaths
java.lang.Object
|
+--net.walend.digraph.path.AbstractDelegateDigraphOfGEPaths
|
+--net.walend.measured.AbstractShortestGEPaths
|
+--net.walend.measured.DijkstraShortestGEPaths
|
+--net.walend.measured.JITShortestGEPaths
- All Implemented Interfaces:
- CEDigraph, Digraph, DigraphOfGEPaths, HasState, IndexedCEDigraph, IndexedDigraph, java.io.Serializable, ShortestGEPaths
- public class JITShortestGEPaths
- extends DijkstraShortestGEPaths
- implements ShortestGEPaths, java.io.Serializable
JITShortestGEPaths is an implementation of ShortestGEPaths that uses Dijkstra's algorithm to find the shortest paths just in time. It caches previous results and uses those results to run future calls for new destinations faster. For repeated destinations, it simply returns an existing result.
- Author:
- David Walend dfw1@cornell.edu
- See Also:
- Serialized Form
Methods inherited from class net.walend.measured.AbstractShortestGEPaths |
bfTest, getEdge, getLength, getPath, getPath, getPathMeter, getPrincipleInterface, getShortestPath, initializeSolution, relax, safeLength, sameStateAs, toString, valid, validLengths |
Methods inherited from class net.walend.digraph.path.AbstractDelegateDigraphOfGEPaths |
addEdge, clearEdges, containsCEDigraph, containsEdge, containsEdge, containsEdge, containsEdge, containsNode, containsNode, containsNodes, countInboundEdges, countInboundEdges, countOutboundEdges, countOutboundEdges, edgeCount, edgeIterator, edgeNodeIterator, getBase, getDelegate, getEdge, getEdges, getFromIndices, getFromNodes, getFromNodes, getInboundEdges, getInboundEdges, getNode, getNodeIndex, getNodes, getOutboundEdges, getOutboundEdges, getToIndices, getToNodes, getToNodes, indexedEdgeIterator, indexedEdgeNodeIterator, indexedNodeIterator, intersectWithCEDigraph, isEdgeFree, isEmpty, nodeCapacity, nodeCount, nodeIndices, nodeIterator, sameCEDigraphAs, unionCEDigraph |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface net.walend.digraph.IndexedDigraph |
containsEdge, containsNode, countInboundEdges, countOutboundEdges, getFromIndices, getFromNodes, getNode, getNodeIndex, getToIndices, getToNodes, indexedEdgeNodeIterator, indexedNodeIterator, nodeCapacity, nodeIndices |
Methods inherited from interface net.walend.digraph.Digraph |
containsEdge, containsNode, containsNodes, countInboundEdges, countOutboundEdges, edgeCount, edgeNodeIterator, getFromNodes, getNodes, getToNodes, isEdgeFree, isEmpty, nodeCount, nodeIterator |
measuredNodes
private boolean[] measuredNodes
JITShortestGEPaths
public JITShortestGEPaths(IndexedGEDigraph ceDigraph,
GEPathMeter pathMeter)
throws GENegativeWeightCycleException
JITShortestGEPaths
public JITShortestGEPaths(IndexedGEDigraph ceDigraph,
IndexedMutableCEDigraph delegate,
GEPathMeter pathMeter)
throws GENegativeWeightCycleException
recalculate
public void recalculate()
throws GENegativeWeightCycleException
- If the digraph is not valid, rediscover the shortest paths.
- Specified by:
recalculate
in interface ShortestGEPaths
- Specified by:
recalculate
in class AbstractShortestGEPaths
GENegativeWeightCycleException
getLength
public int getLength(int from,
int to)
- Specified by:
getLength
in interface ShortestGEPaths
- Overrides:
getLength
in class AbstractShortestGEPaths
getShortestPath
public MeasuredGEPath getShortestPath(int fromIndex,
int toIndex)
- Specified by:
getShortestPath
in interface ShortestGEPaths
- Overrides:
getShortestPath
in class AbstractShortestGEPaths
Copyright (c) 2001, 2002, David Walend