21 package org.matsim.core.scoring.functions;
48 final double priority1 = priority;
50 final double zeroUtilityDuration = typicalDuration_s1 * Math.exp( -10.0 / (typicalDuration_s1 / 3600.0) / priority1 );
54 return zeroUtilityDuration;
60 final double priority1 = priority;
62 final double zeroUtilityDuration = typicalDuration_s1 * Math.exp( -1.0 / priority1 );
64 return zeroUtilityDuration;
77 private double priority = 1. ;
127 this.priority = priority;
170 this.typicalDuration_s.
ifDefined( duration -> params.
zeroUtilityDuration_h =
this.zeroUtilityComputation.computeZeroUtilityDuration_s(priority, duration ) / 3600. );
182 this.zeroUtilityComputation = zeroUtilityComputation;
188 private double typicalDuration_s = 0;
210 if (this.scoreAtAll && this.zeroUtilityDuration_h == 0.0) {
211 throw new RuntimeException(
"zeroUtilityDuration of type " + type +
" must be greater than 0.0. Did you forget to specify the typicalDuration?");
Builder setEarliestEndTime(double earliestEndTime)
final OptionalTime getLatestStartTime()
void ifDefined(DoubleConsumer action)
double computeZeroUtilityDuration_s(final double priority, final double typicalDuration_s)
Builder setZeroUtilityComputation(ZeroUtilityComputation zeroUtilityComputation)
Builder setScoreAtAll(boolean scoreAtAll)
final double getTypicalDuration()
Builder setMinimalDuration(double minimalDuration)
final OptionalTime getEarliestEndTime()
ActivityUtilityParameters build()
OptionalTime getLatestStartTime()
Builder setType(String type)
TypicalDurationScoreComputation getTypicalDurationScoreComputation()
final boolean isScoreAtAll()
OptionalTime earliestEndTime
Builder setLatestStartTime(double latestStartTime)
final double getZeroUtilityDuration_h()
Builder setOpeningTime(double openingTime)
OptionalTime getClosingTime()
OptionalTime getOpeningTime()
OptionalTime getEarliestEndTime()
Builder(ActivityParams ppp)
double computeZeroUtilityDuration_s(double priority, double typicalDuration_s)
double zeroUtilityDuration_h
double computeZeroUtilityDuration_s(double priority, double typicalDuration_s)
ActivityUtilityParameters(final String type)
static OptionalTime defined(double seconds)
OptionalTime minimalDuration
OptionalTime getTypicalDuration()
OptionalTime getMinimalDuration()
boolean isScoringThisActivityAtAll()
final OptionalTime getOpeningTime()
final OptionalTime getMinimalDuration()
OptionalTime latestStartTime
final OptionalTime getClosingTime()
Builder setTypicalDuration_s(double typicalDurationS)
static OptionalTime undefined()
Builder setPriority(double priority)
Builder setClosingTime(double closingTime)