Skip to content

Commit

Permalink
feat: StartLinkAsDepot + refactor package name
Browse files Browse the repository at this point in the history
  • Loading branch information
tschlenther committed Feb 20, 2024
1 parent 2b58976 commit aca1145
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.matsim.drtFare;
package org.matsim.drt;

import com.google.inject.Inject;
import org.apache.logging.log4j.LogManager;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.matsim.drtFare;
package org.matsim.drt;

import org.matsim.api.core.v01.network.Network;
import org.matsim.contrib.drt.run.DrtConfigGroup;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.matsim.drtFare;
package org.matsim.drt;

import jakarta.validation.constraints.PositiveOrZero;
import org.matsim.core.config.ReflectiveConfigGroup;
Expand Down
46 changes: 46 additions & 0 deletions src/main/java/org/matsim/drt/StartLinkAsDepot.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/* *********************************************************************** *
* project: org.matsim.*
* Controler.java
* *
* *********************************************************************** *
* *
* copyright : (C) 2007 by the members listed in the COPYING, *
* LICENSE and WARRANTY file. *
* email : info at matsim dot org *
* *
* *********************************************************************** *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* See also COPYING, LICENSE and WARRANTY file *
* *
* *********************************************************************** */

package org.matsim.drt;

import org.matsim.api.core.v01.network.Link;
import org.matsim.contrib.drt.optimizer.depot.DepotFinder;
import org.matsim.contrib.dvrp.fleet.DvrpVehicle;
import org.matsim.contrib.dvrp.fleet.Fleet;

import java.util.Map;
import java.util.stream.Collectors;

public class StartLinkAsDepot implements DepotFinder {

private Map<DvrpVehicle, Link> vehicleToStartLink;

public StartLinkAsDepot(Fleet fleet) {
this.vehicleToStartLink = fleet.getVehicles()
.values()
.stream()
.collect(Collectors.toUnmodifiableMap(v -> v, DvrpVehicle::getStartLink));
}
@Override
public Link findDepot(DvrpVehicle vehicle) {
return vehicleToStartLink.get(vehicle);
}

}
2 changes: 1 addition & 1 deletion src/main/java/org/matsim/run/RunKelheimRealDrtDemands.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import org.matsim.core.controler.Controler;
import org.matsim.core.controler.OutputDirectoryHierarchy;
import org.matsim.core.scenario.ScenarioUtils;
import org.matsim.drtFare.KelheimDrtFareModule;
import org.matsim.drt.KelheimDrtFareModule;
import picocli.CommandLine;

import java.nio.file.Path;
Expand Down
16 changes: 15 additions & 1 deletion src/main/java/org/matsim/run/RunKelheimScenario.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,15 @@
import org.matsim.contrib.drt.extension.DrtWithExtensionsConfigGroup;
import org.matsim.contrib.drt.extension.companions.DrtCompanionParams;
import org.matsim.contrib.drt.extension.companions.MultiModeDrtCompanionModule;
import org.matsim.contrib.drt.optimizer.depot.DepotFinder;
import org.matsim.contrib.drt.routing.DrtRoute;
import org.matsim.contrib.drt.routing.DrtRouteFactory;
import org.matsim.contrib.drt.run.DrtConfigGroup;
import org.matsim.contrib.drt.run.DrtConfigs;
import org.matsim.contrib.drt.run.MultiModeDrtConfigGroup;
import org.matsim.contrib.drt.run.MultiModeDrtModule;
import org.matsim.contrib.dvrp.fleet.Fleet;
import org.matsim.contrib.dvrp.run.AbstractDvrpModeQSimModule;
import org.matsim.contrib.dvrp.run.DvrpConfigGroup;
import org.matsim.contrib.dvrp.run.DvrpModule;
import org.matsim.contrib.dvrp.run.DvrpQSimComponents;
Expand All @@ -50,7 +53,8 @@
import org.matsim.core.controler.Controler;
import org.matsim.core.router.AnalysisMainModeIdentifier;
import org.matsim.core.scoring.functions.ScoringParametersForPerson;
import org.matsim.drtFare.KelheimDrtFareModule;
import org.matsim.drt.KelheimDrtFareModule;
import org.matsim.drt.StartLinkAsDepot;
import org.matsim.extensions.pt.routing.ptRoutingModes.PtIntermodalRoutingModesConfigGroup;
import org.matsim.run.prepare.PrepareNetwork;
import org.matsim.run.prepare.PreparePopulation;
Expand Down Expand Up @@ -338,6 +342,16 @@ public void handleEvent(PersonDepartureEvent event) {

for (DrtConfigGroup drtCfg : multiModeDrtConfig.getModalElements()) {
controler.addOverridingModule(new KelheimDrtFareModule(drtCfg, network, avFare));
if (drtCfg.mode.equals("av")) {
//we want to override the DepotFinder - but only for AV
controler.addOverridingQSimModule(new AbstractDvrpModeQSimModule(drtCfg.mode) {
@Override
protected void configureQSim() {
bindModal(DepotFinder.class).toProvider(
modalProvider(getter -> new StartLinkAsDepot(getter.getModal(Fleet.class)))).asEagerSingleton();
}
});
}
}

//controler.addOverridingModule(new DrtEstimatorModule());
Expand Down

0 comments on commit aca1145

Please sign in to comment.