OptaPlanner core 6.0.1.Final

org.optaplanner.core.api.score
Interface Score<S extends Score>

All Superinterfaces:
Comparable<S>
All Known Subinterfaces:
FeasibilityScore<S>
All Known Implementing Classes:
AbstractScore, BendableScore, HardMediumSoftScore, HardSoftBigDecimalScore, HardSoftDoubleScore, HardSoftLongScore, HardSoftScore, SimpleBigDecimalScore, SimpleDoubleScore, SimpleLongScore, SimpleScore

public interface Score<S extends Score>
extends Comparable<S>

A Score is result of the score function (AKA fitness function) on a single possible solution.

Implementations must be immutable.

Implementations are allowed to optionally implement Pareto comparison and therefore slightly violate the transitive requirement of Comparable.compareTo(Object).

See Also:
AbstractScore, HardSoftScore

Method Summary
 S add(S augment)
          Returns a Score whose value is (this + augment).
 S divide(double divisor)
          Returns a Score whose value is (this / divisor).
 S multiply(double multiplicand)
          Returns a Score whose value is (this * multiplicand).
 S power(double exponent)
          Returns a Score whose value is (this ^ exponent).
 S subtract(S subtrahend)
          Returns a Score whose value is (this - subtrahend).
 Number[] toLevelNumbers()
          Returns an array of doubles representing the Score.
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Method Detail

add

S add(S augment)
Returns a Score whose value is (this + augment).

Parameters:
augment - value to be added to this Score
Returns:
this + augment

subtract

S subtract(S subtrahend)
Returns a Score whose value is (this - subtrahend).

Parameters:
subtrahend - value to be subtracted from this Score
Returns:
this - subtrahend, rounded as necessary

multiply

S multiply(double multiplicand)
Returns a Score whose value is (this * multiplicand). When rounding is needed, it should be floored (as defined by 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.

Parameters:
multiplicand - value to be multiplied by this Score.
Returns:
this * multiplicand

divide

S divide(double divisor)
Returns a Score whose value is (this / divisor). When rounding is needed, it should be floored (as defined by 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.

Parameters:
divisor - value by which this Score is to be divided
Returns:
this / divisor

power

S power(double exponent)
Returns a Score whose value is (this ^ exponent). When rounding is needed, it should be floored (as defined by 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.

Parameters:
exponent - value by which this Score is to be powered
Returns:
this ^ exponent

toLevelNumbers

Number[] toLevelNumbers()
Returns an array of doubles representing the Score. Each double represents 1 score level. A greater score level uses a lower array index than a lesser score level.

When rounding is needed, each rounding should be floored (as defined by 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}

Returns:
never null

OptaPlanner core 6.0.1.Final

Copyright © 2006-2013 JBoss by Red Hat. All Rights Reserved.