@Override public double getLinkMinimumTravelDisutility(final Link link) { return this.delegate.getLinkMinimumTravelDisutility(link); }
@Override public double getLinkMinimumTravelDisutility(Link link) { return baseTransportDisutility.getLinkMinimumTravelDisutility(link); }
@Override public double getLinkMinimumTravelDisutility(Link link) { return this.normalTravelDisutility.getLinkMinimumTravelDisutility(link); }
@Override public double getLinkMinimumTravelDisutility(Link link) { return base.getLinkMinimumTravelDisutility(link); }
private void updateMinTravelCostPerLength(final Network network) { for (Link link : network.getLinks().values()) { double minCost = this.costFunction.getLinkMinimumTravelDisutility(link) / link.getLength(); if (getMinTravelCostPerLength() > minCost) { setMinTravelCostPerLength(minCost); } } }
private void expandLandmarkTo() { LandmarksToTravelTimeComparator comparator = new LandmarksToTravelTimeComparator(this.nodeData, this.landmarkIdx); PriorityQueue<Node> pendingNodes = new PriorityQueue<>(100, comparator); LandmarksData role = (LandmarksData) this.nodeData.get(this.landmark); role.setToLandmarkTravelTime(this.landmarkIdx, 0.0); role.setFromLandmarkTravelTime(this.landmarkIdx, 0.0); pendingNodes.add(this.landmark); while (!pendingNodes.isEmpty()) { Node node = pendingNodes.poll(); double toTravTime = ((LandmarksData) this.nodeData.get(node)).getToLandmarkTravelTime(this.landmarkIdx); LandmarksData role2; for (Link l : node.getInLinks().values()) { Node n = l.getFromNode(); double linkTravTime = this.costFunction.getLinkMinimumTravelDisutility(l); role2 = (LandmarksData) this.nodeData.get(n); double totalTravelTime = toTravTime + linkTravTime; if (role2.getToLandmarkTravelTime(this.landmarkIdx) > totalTravelTime) { role2.setToLandmarkTravelTime(this.landmarkIdx, totalTravelTime); pendingNodes.add(n); } } } }
private void expandLandmarkFrom() { LandmarksFromTravelTimeComparator comparator = new LandmarksFromTravelTimeComparator(this.nodeData, this.landmarkIdx); PriorityQueue<Node> pendingNodes = new PriorityQueue<>(100, comparator); LandmarksData role = (LandmarksData) this.nodeData.get(this.landmark); role.setToLandmarkTravelTime(this.landmarkIdx, 0.0); role.setFromLandmarkTravelTime(this.landmarkIdx, 0.0); pendingNodes.add(this.landmark); while (!pendingNodes.isEmpty()) { Node node = pendingNodes.poll(); double fromTravTime = ((LandmarksData) this.nodeData.get(node)).getFromLandmarkTravelTime(this.landmarkIdx); LandmarksData role2; for (Link l : node.getOutLinks().values()) { Node n; n = l.getToNode(); double linkTravTime = this.costFunction.getLinkMinimumTravelDisutility(l); role2 = (LandmarksData) this.nodeData.get(n); double totalTravelTime = fromTravTime + linkTravTime; if (role2.getFromLandmarkTravelTime(this.landmarkIdx) > totalTravelTime) { role2.setFromLandmarkTravelTime(this.landmarkIdx, totalTravelTime); pendingNodes.add(n); } } } }