org.drools.planner.core.score.definition
Interface ScoreDefinition<S extends Score>

All Known Implementing Classes:
AbstractScoreDefinition, HardAndSoftLongScoreDefinition, HardAndSoftScoreDefinition, SimpleDoubleScoreDefinition, SimpleScoreDefinition

public interface ScoreDefinition<S extends Score>

A ScoreDefinition knows how to compare scores and what the perfect maximum/minimum Score is.

See Also:
AbstractScoreDefinition, HardAndSoftScoreDefinition

Method Summary
 ScoreHolder buildScoreHolder()
          TODO JBRULES-2238 remove when the rule that sums the final score can be written as a single rule and ScoreHolder is dead
 double calculateTimeGradient(S startScore, S endScore, S score)
          See explanation in Termination.calculateSolverTimeGradient(DefaultSolverScope).
 S getPerfectMaximumScore()
          The perfect maximum score is the score of which there is no better in any problem instance.
 S getPerfectMinimumScore()
          The perfect minimum score is the score of which there is no worser in any problem instance.
 Score parseScore(String scoreString)
          Parses the String and returns a Score.
 

Method Detail

getPerfectMaximumScore

S getPerfectMaximumScore()
The perfect maximum score is the score of which there is no better in any problem instance. This doesn't mean that the current problem instance, or any problem instance for that matter, could ever attain that score.

For example, most cases have a perfect maximum score of zero, as most use cases only have negative scores.

Returns:
null if not supported

getPerfectMinimumScore

S getPerfectMinimumScore()
The perfect minimum score is the score of which there is no worser in any problem instance. This doesn't mean that the current problem instance, or any problem instance for that matter, could ever attain such a bad score.

For example, most cases have a perfect minimum score of negative infinity.

Returns:
null if not supported

parseScore

Score parseScore(String scoreString)
Parses the String and returns a Score.

Parameters:
scoreString - never null
Returns:
never null

calculateTimeGradient

double calculateTimeGradient(S startScore,
                             S endScore,
                             S score)
See explanation in Termination.calculateSolverTimeGradient(DefaultSolverScope).

Parameters:
startScore - never null
endScore - never null
score - never null
Returns:
between 0.0 and 1.0

buildScoreHolder

ScoreHolder buildScoreHolder()
TODO JBRULES-2238 remove when the rule that sums the final score can be written as a single rule and ScoreHolder is dead

Returns:
never null


Copyright © 2001-2014 JBoss by Red Hat. All Rights Reserved.