@Override public TransitRouter get() { if (this.routerNetwork == null) { this.routerNetwork = TransitRouterNetwork.createFromSchedule(transitSchedule, this.config.getBeelineWalkConnectionDistance()); } if (this.preparedTransitSchedule == null) { this.preparedTransitSchedule = new PreparedTransitSchedule(transitSchedule); } TransitRouterNetworkTravelTimeAndDisutility ttCalculator = new TransitRouterNetworkTravelTimeAndDisutility(this.config, this.preparedTransitSchedule); return new TransitRouterImpl(this.config, this.preparedTransitSchedule, this.routerNetwork, ttCalculator, ttCalculator); }
public TransitRouterImpl(final TransitRouterConfig trConfig, final TransitSchedule schedule) { super(trConfig); this.transitNetwork = TransitRouterNetwork.createFromSchedule(schedule, trConfig.getBeelineWalkConnectionDistance()); this.preparedTransitSchedule = new PreparedTransitSchedule(schedule); TransitRouterNetworkTravelTimeAndDisutility transitRouterNetworkTravelTimeAndDisutility = new TransitRouterNetworkTravelTimeAndDisutility( trConfig, new PreparedTransitSchedule(schedule)); this.travelDisutility = transitRouterNetworkTravelTimeAndDisutility; this.travelTime = transitRouterNetworkTravelTimeAndDisutility; setTransitTravelDisutility(this.travelDisutility); this.cacheTree = trConfig.isCacheTree(); }
@SuppressWarnings("unchecked") public Path calcLeastCostPath(final Map<Node, InitialNode> fromNodes, final Map<Node, InitialNode> toNodes, final Person person) { Map<Node, InitialNode> swapedToNodes = swapNodes(toNodes); TransitLeastCostPathTree tree = new TransitLeastCostPathTree(network, costFunction, timeFunction, swapNodes(fromNodes), swapedToNodes, person); return tree.getPath(swapedToNodes); }
@Override public double getLinkTravelDisutility(final Link link, final double time, final Person person, final Vehicle vehicle, final CustomDataManager dataManager) { double cost; if (((TransitRouterNetworkLink) link).getRoute() == null) { // "route" here means "pt route". If no pt route is attached, it means that it is a transfer link. cost = defaultTransferCost(link, time, person, vehicle); } else { double offVehWaitTime = offVehicleWaitTime(link, time); double inVehTime = getLinkTravelTime(link,time, person, vehicle) - offVehWaitTime; cost = - inVehTime * this.config.getMarginalUtilityOfTravelTimePt_utl_s() -offVehWaitTime * this.config.getMarginalUtilityOfWaitingPt_utl_s() -link.getLength() * this.config.getMarginalUtilityOfTravelDistancePt_utl_m(); } return cost; }
@Inject RandomizingTransitRouterFactory(Config config, TransitSchedule schedule) { this.trConfig = new TransitRouterConfig(config); this.schedule = schedule; this.routerNetwork = TransitRouterNetwork.createFromSchedule(schedule, trConfig.getBeelineWalkConnectionDistance()); }
@Override public double getWalkTravelDisutility(Person person, Coord coord, Coord toCoord) { // getMarginalUtilityOfTravelTimeWalk INCLUDES the opportunity cost of time. kai, dec'12 double timeCost = - getWalkTravelTime(person, coord, toCoord) * config.getMarginalUtilityOfTravelTimeWalk_utl_s() ; // (sign: margUtl is negative; overall it should be positive because it is a cost.) double distanceCost = - CoordUtils.calcEuclideanDistance(coord,toCoord) * config.getBeelineDistanceFactor() * config.getMarginalUtilityOfTravelDistanceWalk_utl_m(); // (sign: same as above) return timeCost + distanceCost ; }
protected final double getTransferTime(Person person, Coord coord, Coord toCoord) { return getTravelDisutility().getWalkTravelTime(person, coord, toCoord) + this.getConfig().getAdditionalTransferTime(); }
@Override public TransitRouter get() { RandomizingTransitRouterTravelTimeAndDisutility ttCalculator = new RandomizingTransitRouterTravelTimeAndDisutility(trConfig); ttCalculator.setDataCollection(RandomizingTransitRouterTravelTimeAndDisutility.DataCollection.randomizedParameters, true) ; ttCalculator.setDataCollection(RandomizingTransitRouterTravelTimeAndDisutility.DataCollection.additionalInformation, false) ; return new TransitRouterImpl(trConfig, new PreparedTransitSchedule(schedule), routerNetwork, ttCalculator, ttCalculator); }
protected void init() { buildNetwork(); buildStops(); buildRedLine(); buildBlueLine(); buildGreenLine(); }
@Override public PlanAlgorithm getPlanAlgoInstance() { return new TransitActsRemover(); }
private double getWalkTime(Person person, Coord coord, Coord toCoord) { return this.ttCalculator.getWalkTravelTime(person, coord, toCoord); }
protected final double getWalkTime(Person person, Coord coord, Coord toCoord) { return getTravelDisutility().getWalkTravelTime(person, coord, toCoord); }
protected final double getWalkDisutility(Person person, Coord coord, Coord toCoord) { return getTravelDisutility().getWalkTravelDisutility(person, coord, toCoord); }
@Override public double getWalkTravelDisutility(Person person, Coord coord, Coord toCoord) { return routerDisutility.getWalkTravelDisutility(person, coord, toCoord); }
@Override public double getCapacity() { return getCapacity(Time.UNDEFINED_TIME); }
@Override public double getNumberOfLanes() { return getNumberOfLanes(Time.UNDEFINED_TIME); }
public TransitRouterImpl( final TransitRouterConfig trConfig, final PreparedTransitSchedule preparedTransitSchedule, final TransitRouterNetwork routerNetwork, final TravelTime travelTime, final TransitTravelDisutility travelDisutility) { super(trConfig, travelDisutility); this.transitNetwork = routerNetwork; this.preparedTransitSchedule = preparedTransitSchedule; this.travelDisutility = travelDisutility; this.travelTime = travelTime; this.cacheTree = trConfig.isCacheTree(); }
@Override public double getFreespeed() { return getFreespeed(Time.UNDEFINED_TIME); }
public PersonReRouteStuck(final PlanAlgorithm router, final MutableScenario scenario, Set<Id<Person>> agentsStuck) { super(router, scenario, agentsStuck); this.transitActsRemover = new TransitActsRemover(); }
@Override public double getWalkTravelTime(Person person, Coord coord, Coord toCoord) { return routerDisutility.getWalkTravelTime(person, coord, toCoord); }