21 package org.matsim.core.router;
23 import org.apache.logging.log4j.LogManager;
24 import org.apache.logging.log4j.Logger;
121 super(network, costFunction, timeFunction, preProcessData);
145 visitNode(fromNode, data, pendingNodes, startTime, 0, null);
151 final double currTime,
final double currCost,
final Node toNode) {
153 final double travelTime = this.timeFunction.
getLinkTravelTime(l, currTime, this.person, this.vehicle);
158 visitNode(n, data, pendingNodes, currTime + travelTime, currCost + travelCost, remainingTravelCost, l);
162 final double nCost = data.
getCost();
163 final double totalCost = currCost + travelCost;
164 if (totalCost < nCost) {
165 revisitNode(n, data, pendingNodes, currTime + travelTime, totalCost, l);
167 }
else if (totalCost == nCost) {
171 if ( totalCost==0. ) {
172 log.warn(
"finding totalCost=" + totalCost +
"; this will often (or always?) lead to a null " +
173 "pointer exception later. In my own case, it was related to a network " +
174 "having freespeed infinity at places. linkId=" + l.
getId()+
". kai, jan'18") ;
178 revisitNode(n, data, pendingNodes, currTime + travelTime, totalCost, l);
198 final double time,
final double cost,
final double expectedRemainingCost,
final Link outLink) {
200 super.visitNode(n, data, pendingNodes, time, cost, outLink);
244 void setMinTravelCostPerLength(
final double minTravelCostPerLength) {
final double overdoFactor
static double calcEuclideanDistance(Coord coord, Coord other)
double getMinTravelCostPerLength()
void setExpectedRemainingCost(final double expectedCost)
double getLinkTravelTime(Link link, double time, Person person, Vehicle vehicle)
void revisitNode(final Node n, final DijkstraNodeData data, final RouterPriorityQueue< Node > pendingNodes, final double time, final double cost, final Link outLink)
double getLinkTravelDisutility(final Link link, final double time, final Person person, final Vehicle vehicle)
final double getMinTravelCostPerLength()
boolean addToPendingNodes(final Link l, final Node n, final RouterPriorityQueue< Node > pendingNodes, final double currTime, final double currCost, final Node toNode)
final PreProcessDijkstra preProcessData
final TravelDisutility costFunction
void initFromNode(final Node fromNode, final Node toNode, final double startTime, final RouterPriorityQueue< Node > pendingNodes)
final TravelTime timeFunction
AStarNodeData createNodeData()
double estimateRemainingTravelCost(final Node fromNode, final Node toNode)
double minTravelCostPerLength
void visitNode(final Node n, final AStarNodeData data, final RouterPriorityQueue< Node > pendingNodes, final double time, final double cost, final double expectedRemainingCost, final Link outLink)
double getPriority(final DijkstraNodeData data)
AStarNodeData getData(final Node n)
boolean isVisited(final int iterID)