Class BendableScoreDefinition
- java.lang.Object
-
- ai.timefold.solver.core.impl.score.definition.AbstractScoreDefinition<Score_>
-
- ai.timefold.solver.core.impl.score.definition.AbstractBendableScoreDefinition<BendableScore>
-
- ai.timefold.solver.core.impl.score.buildin.BendableScoreDefinition
-
- All Implemented Interfaces:
ScoreDefinition<BendableScore>
public class BendableScoreDefinition extends AbstractBendableScoreDefinition<BendableScore>
-
-
Field Summary
-
Fields inherited from class ai.timefold.solver.core.impl.score.definition.AbstractBendableScoreDefinition
hardLevelsSize, softLevelsSize
-
-
Constructor Summary
Constructors Constructor Description BendableScoreDefinition(int hardLevelsSize, int softLevelsSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BendableScorebuildOptimisticBound(InitializingScoreTrend initializingScoreTrend, BendableScore score)BendableScorebuildPessimisticBound(InitializingScoreTrend initializingScoreTrend, BendableScore score)BendableScorecreateScore(int... scores)BendableScorecreateScoreUninitialized(int initScore, int... scores)BendableScoredivideBySanitizedDivisor(BendableScore dividend, BendableScore divisor)ReturnScorewhose every level is the result of dividing the matching levels in this and the divisor.BendableScorefromLevelNumbers(int initScore, Number[] levelNumbers)The opposite ofScore.toLevelNumbers().Class<?>getNumericType()Return the type of number that the score implementation operates on.BendableScoregetOneSoftestScore()The score that represents the softest possible one.Class<BendableScore>getScoreClass()BendableScoregetZeroScore()The score that represents zero.BendableScoreparseScore(String scoreString)-
Methods inherited from class ai.timefold.solver.core.impl.score.definition.AbstractBendableScoreDefinition
generateLevelLabels, getFeasibleLevelsSize, getHardLevelsSize, getLevelsSize, getSoftLevelsSize, isCompatibleArithmeticArgument
-
Methods inherited from class ai.timefold.solver.core.impl.score.definition.AbstractScoreDefinition
divide, divide, divide, divide, formatScore, getInitLabel, getLevelLabels, sanitize, sanitize, sanitize, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface ai.timefold.solver.core.impl.score.definition.ScoreDefinition
formatScore, getInitLabel, getLevelLabels, isNegativeOrZero, isPositiveOrZero
-
-
-
-
Method Detail
-
getScoreClass
public Class<BendableScore> getScoreClass()
Description copied from interface:ScoreDefinitionReturns theClassof the actualScoreimplementation. For example: returnsHardSoftScore.classonHardSoftScoreDefinition.- Returns:
- never null
-
getZeroScore
public BendableScore getZeroScore()
Description copied from interface:ScoreDefinitionThe score that represents zero.- Returns:
- never null
-
getOneSoftestScore
public final BendableScore getOneSoftestScore()
Description copied from interface:ScoreDefinitionThe score that represents the softest possible one.- Returns:
- never null
-
parseScore
public BendableScore parseScore(String scoreString)
Description copied from interface:ScoreDefinition- Parameters:
scoreString- never null- Returns:
- never null
- See Also:
ScoreDefinition.formatScore(Score)
-
fromLevelNumbers
public BendableScore fromLevelNumbers(int initScore, Number[] levelNumbers)
Description copied from interface:ScoreDefinitionThe opposite ofScore.toLevelNumbers().- Parameters:
initScore-<= 0, managed by Timefold, needed as a parameter in theScore's creation method, seeScore.initScore()levelNumbers- never null- Returns:
- never null
-
createScore
public BendableScore createScore(int... scores)
-
createScoreUninitialized
public BendableScore createScoreUninitialized(int initScore, int... scores)
-
buildOptimisticBound
public BendableScore buildOptimisticBound(InitializingScoreTrend initializingScoreTrend, BendableScore score)
Description copied from interface:ScoreDefinitionBuilds aScorewhich is equal or better than any otherScorewith more variables initialized (while the already variables don't change).- Parameters:
initializingScoreTrend- never null, withInitializingScoreTrend.getLevelsSize()equal toScoreDefinition.getLevelsSize().score- never null, withScore.initScore()0.- Returns:
- never null
-
buildPessimisticBound
public BendableScore buildPessimisticBound(InitializingScoreTrend initializingScoreTrend, BendableScore score)
Description copied from interface:ScoreDefinitionBuilds aScorewhich is equal or worse than any otherScorewith more variables initialized (while the already variables don't change).- Parameters:
initializingScoreTrend- never null, withInitializingScoreTrend.getLevelsSize()equal toScoreDefinition.getLevelsSize().score- never null, withScore.initScore()0- Returns:
- never null
-
divideBySanitizedDivisor
public BendableScore divideBySanitizedDivisor(BendableScore dividend, BendableScore divisor)
Description copied from interface:ScoreDefinitionReturnScorewhose every level is the result of dividing the matching levels in this and the divisor. When rounding is needed, it is floored (as defined byMath.floor(double)).If any of the levels in the divisor are equal to zero, the method behaves as if they were equal to one instead.
divisor- value by which this Score is to be divided- Returns:
- this / divisor
-
getNumericType
public Class<?> getNumericType()
Description copied from interface:ScoreDefinitionReturn the type of number that the score implementation operates on. Examples:- int.class for
SimpleScore - BigDecimal.class for
SimpleBigDecimalScore
- Returns:
- never null
- int.class for
-
-