public abstract class AbstractNonCHBidirAlgo extends AbstractBidirAlgo implements BidirRoutingAlgorithm
for bidirectional CH algorithms
Modifier and Type | Field and Description |
---|---|
protected EdgeFilter |
additionalEdgeFilter |
protected EdgeExplorer |
edgeExplorer |
protected FlagEncoder |
flagEncoder |
protected Graph |
graph |
protected EdgeFilter |
inEdgeFilter |
protected EdgeFilter |
outEdgeFilter |
protected Weighting |
weighting |
bestBwdEntry, bestFwdEntry, bestWeight, bestWeightMapFrom, bestWeightMapOther, bestWeightMapTo, currFrom, currTo, finishedFrom, finishedTo, from, fromOutEdge, maxVisitedNodes, nodeAccess, to, toInEdge, traversalMode, updateBestPath
Constructor and Description |
---|
AbstractNonCHBidirAlgo(Graph graph,
Weighting weighting,
TraversalMode tMode) |
Modifier and Type | Method and Description |
---|---|
protected boolean |
accept(EdgeIteratorState iter,
int prevOrNextEdgeId) |
protected boolean |
accept(EdgeIteratorState edge,
SPTEntry currEdge,
boolean reverse) |
protected double |
calcWeight(EdgeIteratorState iter,
SPTEntry currEdge,
boolean reverse) |
protected Path |
createEmptyPath() |
protected abstract SPTEntry |
createEntry(EdgeIteratorState edge,
int incEdge,
double weight,
SPTEntry parent,
boolean reverse)
Creates a new entry of the shortest path tree (a
SPTEntry or one of its subclasses) during a dijkstra
expansion. |
protected BidirPathExtractor |
createPathExtractor(Graph graph,
Weighting weighting) |
protected Path |
extractPath() |
protected void |
fillEdgesFromUsingFilter(EdgeFilter edgeFilter) |
protected void |
fillEdgesToUsingFilter(EdgeFilter edgeFilter) |
protected double |
getInEdgeWeight(SPTEntry entry) |
protected int |
getOrigEdgeId(EdgeIteratorState edge,
boolean reverse) |
protected int |
getOtherNode(int edge,
int node) |
protected int |
getTraversalId(EdgeIteratorState edge,
int origEdgeId,
boolean reverse) |
protected void |
postInitFrom() |
protected void |
postInitTo() |
String |
toString() |
protected void |
updateEntry(SPTEntry entry,
EdgeIteratorState edge,
int edgeId,
double weight,
SPTEntry parent,
boolean reverse) |
bwdSearchCanBeStopped, calcPath, calcPath, calcPaths, checkAlreadyRun, createStartEntry, finished, fromEntryCanBeSkipped, fwdSearchCanBeStopped, getCurrentFromWeight, getCurrentToWeight, getIncomingEdge, getName, getVisitedNodes, initCollections, initFrom, initTo, isMaxVisitedNodesExceeded, postInit, runAlgo, setMaxVisitedNodes, setUpdateBestPath, toEntryCanBeSkipped, updateBestPath
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
calcPath
calcPath, calcPaths, getName, getVisitedNodes, setMaxVisitedNodes
protected final Graph graph
protected final Weighting weighting
protected final FlagEncoder flagEncoder
protected EdgeExplorer edgeExplorer
protected EdgeFilter inEdgeFilter
protected EdgeFilter outEdgeFilter
protected EdgeFilter additionalEdgeFilter
public AbstractNonCHBidirAlgo(Graph graph, Weighting weighting, TraversalMode tMode)
protected abstract SPTEntry createEntry(EdgeIteratorState edge, int incEdge, double weight, SPTEntry parent, boolean reverse)
SPTEntry
or one of its subclasses) during a dijkstra
expansion.edge
- the edge that is currently processed for the expansionincEdge
- the id of the edge that is incoming to the node the edge is pointed at. usually this is the same as
edge.getEdge(), but for edge-based CH and in case edge is a shortcut incEdge is the original edge
that is incoming to the nodeweight
- the weight the shortest path three entry should carryparent
- the parent entry of in the shortest path treereverse
- true if we are currently looking at the backward search, false otherwiseprotected BidirPathExtractor createPathExtractor(Graph graph, Weighting weighting)
protected void postInitFrom()
postInitFrom
in class AbstractBidirAlgo
protected void postInitTo()
postInitTo
in class AbstractBidirAlgo
protected void fillEdgesFromUsingFilter(EdgeFilter edgeFilter)
edgeFilter
- edge filter used to filter edges during fillEdgesFrom()
protected void fillEdgesToUsingFilter(EdgeFilter edgeFilter)
fillEdgesFromUsingFilter(EdgeFilter)
protected void updateEntry(SPTEntry entry, EdgeIteratorState edge, int edgeId, double weight, SPTEntry parent, boolean reverse)
protected boolean accept(EdgeIteratorState edge, SPTEntry currEdge, boolean reverse)
protected int getOrigEdgeId(EdgeIteratorState edge, boolean reverse)
protected int getTraversalId(EdgeIteratorState edge, int origEdgeId, boolean reverse)
protected double calcWeight(EdgeIteratorState iter, SPTEntry currEdge, boolean reverse)
protected double getInEdgeWeight(SPTEntry entry)
getInEdgeWeight
in class AbstractBidirAlgo
protected int getOtherNode(int edge, int node)
getOtherNode
in class AbstractBidirAlgo
protected Path extractPath()
extractPath
in class AbstractBidirAlgo
protected boolean accept(EdgeIteratorState iter, int prevOrNextEdgeId)
protected Path createEmptyPath()
Copyright © 2012–2020. All rights reserved.