Commit 5272ab89 authored by Sebastian Hörl's avatar Sebastian Hörl
Browse files

Adjust costs

parent 61e54de5
......@@ -70,8 +70,8 @@ public class SwissDiscreteModeChoiceModule extends AbstractDiscreteModeChoiceExt
@Provides
@Singleton
public CostModel provideCostModel(CostParameters parameters) {
return new CostModel(parameters);
public CostModel provideCostModel(SwissUtilityParameters parameters) {
return new CostModel(parameters.costs);
}
@Provides
......
......@@ -13,6 +13,7 @@ import org.apache.log4j.Logger;
import ch.ethz.matsim.baseline_scenario.config.CommandLine;
import ch.ethz.matsim.baseline_scenario.config.CommandLine.ConfigurationException;
import ch.ethz.matsim.projects.astra_2018_002.mode_choice.cost.CostParameters;
/**
* Gives utility parameters based on
......@@ -39,6 +40,9 @@ public class SwissUtilityParameters {
public double referenceIncome_1000CHF = 7.0;
public double referenceCrowflyDistance_km = 40.0;
// Costs
public CostParameters costs = new CostParameters();
// I) General
public double betaCost = 0.0;
public double betaDelay = 0.0;
......@@ -164,11 +168,11 @@ public class SwissUtilityParameters {
// VI) Private AV
public class PrivateAVParameters {
public double alpha = 0.0;
public double betaTravelTimeLevel3 = 0.0;
public double betaTravelTimeLevel4 = 0.0;
public double betaTravelTimeLevel5 = 0.0;
public double constantAccessEgressWalkTime_min = 0.0;
}
......
......@@ -30,7 +30,11 @@ public class CostModel {
case None:
return Math.max(parameters.ptCostMinimum, parameters.ptCostPerKm * distance_km);
case Regional:
return Math.max(parameters.ptCostMinimumRegional, parameters.ptCostPerKmRegional * distance_km);
if (distance_km <= parameters.ptRegionalRadius_km) {
return 0.0;
} else {
return Math.max(parameters.ptCostMinimumRegional, parameters.ptCostPerKmRegional * distance_km);
}
default:
throw new IllegalStateException();
}
......
......@@ -4,13 +4,15 @@ public class CostParameters {
public double carCostPerKm = 0.26;
public double avCostPerKm = 0.4;
public double ptCostPerKm = 0.25;
public double ptCostPerKmHalfFare = 0.25 * 0.5;
public double ptCostPerKm = 0.8;
public double ptCostPerKmHalfFare = 0.8 * 0.5;
public double ptCostPerKmGA = 0.0;
public double ptCostPerKmRegional = 0.25 * 0.5;
public double ptCostPerKmRegional = 0.8;
public double ptCostMinimum = 2.0;
public double ptCostMinimumHalfFare = 2.0 * 0.5;
public double ptCostMinimum = 2.7;
public double ptCostMinimumHalfFare = 2.7 * 0.5;
public double ptCostMinimumGA = 0.0;
public double ptCostMinimumRegional = 2.0 * 0.5;
public double ptCostMinimumRegional = 2.7;
public double ptRegionalRadius_km = 30.0;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment