org.optaplanner.core.api.score.buildin.bendable
public final class BendableScore extends AbstractScore<BendableScore> implements FeasibilityScore<BendableScore>
Score
is based on n levels of int constraints.
The number of levels is bendable at configuration time.
This class is immutable.
The getHardLevelCount()
and getSoftLevelCount()
must be the same as in the
BendableScoreDefinition
used.Score
,
Serialized FormModifier | Constructor and Description |
---|---|
protected |
BendableScore(int[] hardScores,
int[] softScores) |
Modifier and Type | Method and Description |
---|---|
BendableScore |
add(BendableScore augment)
Returns a Score whose value is (this + augment).
|
int |
compareTo(BendableScore other) |
BendableScore |
divide(double divisor)
Returns a Score whose value is (this / divisor).
|
boolean |
equals(Object o) |
int |
getHardLevelCount() |
int |
getHardScore(int index) |
int |
getSoftLevelCount() |
int |
getSoftScore(int index) |
int |
hashCode() |
boolean |
isFeasible()
A
Solution is feasible if it has no broken hard constraints. |
BendableScore |
multiply(double multiplicand)
Returns a Score whose value is (this * multiplicand).
|
static BendableScore |
parseScore(int hardLevelCount,
int softLevelCount,
String scoreString) |
BendableScore |
power(double exponent)
Returns a Score whose value is (this ^ exponent).
|
BendableScore |
subtract(BendableScore subtrahend)
Returns a Score whose value is (this - subtrahend).
|
Number[] |
toLevelNumbers()
Returns an array of doubles representing the Score.
|
String |
toString() |
void |
validateCompatible(BendableScore other) |
static BendableScore |
valueOf(int[] hardScores,
int[] softScores)
Creates a new
BendableScore . |
buildScorePattern, buildScorePattern, parseLevelStrings, parseLevelStrings
public static BendableScore parseScore(int hardLevelCount, int softLevelCount, String scoreString)
public static BendableScore valueOf(int[] hardScores, int[] softScores)
BendableScore
.hardScores
- never null, never change that array afterwards: it must be immutablesoftScores
- never null, never change that array afterwards: it must be immutablepublic int getHardLevelCount()
public int getHardScore(int index)
index
- 0 <= index < hardLevelCountpublic int getSoftLevelCount()
public int getSoftScore(int index)
index
- 0 <= index < softLevelCountpublic boolean isFeasible()
FeasibilityScore
Solution
is feasible if it has no broken hard constraints.isFeasible
in interface FeasibilityScore<BendableScore>
public BendableScore add(BendableScore augment)
Score
add
in interface Score<BendableScore>
augment
- value to be added to this Scorepublic BendableScore subtract(BendableScore subtrahend)
Score
subtract
in interface Score<BendableScore>
subtrahend
- value to be subtracted from this Scorepublic BendableScore multiply(double multiplicand)
Score
Math.floor(double)
.
/> If the implementation has a scale/precision, then the unspecified scale/precision of the double multiplicand should have no impact on the returned scale/precision.
multiply
in interface Score<BendableScore>
multiplicand
- value to be multiplied by this Score.public BendableScore divide(double divisor)
Score
Math.floor(double)
.
/> If the implementation has a scale/precision, then the unspecified scale/precision of the double divisor should have no impact on the returned scale/precision.
divide
in interface Score<BendableScore>
divisor
- value by which this Score is to be dividedpublic BendableScore power(double exponent)
Score
Math.floor(double)
.
/> If the implementation has a scale/precision, then the unspecified scale/precision of the double exponent should have no impact on the returned scale/precision.
power
in interface Score<BendableScore>
exponent
- value by which this Score is to be poweredpublic Number[] toLevelNumbers()
Score
Math.floor(double)
.
The length of the returned array must be stable for a specific Score
implementation.
For example: -0hard/-7soft returns new double{-0.0, -7.0}toLevelNumbers
in interface Score<BendableScore>
public int compareTo(BendableScore other)
compareTo
in interface Comparable<BendableScore>
public void validateCompatible(BendableScore other)
Copyright © 2006-2013 JBoss by Red Hat. All Rights Reserved.