Class HardSoftDoubleScoreHolder
- java.lang.Object
-
- org.optaplanner.core.api.score.holder.AbstractScoreHolder<HardSoftDoubleScore>
-
- org.optaplanner.core.api.score.buildin.hardsoftdouble.HardSoftDoubleScoreHolder
-
- All Implemented Interfaces:
Serializable
,ScoreHolder<HardSoftDoubleScore>
@Deprecated public class HardSoftDoubleScoreHolder extends AbstractScoreHolder<HardSoftDoubleScore>
Deprecated.Double-based scores are deprecated as floating point numbers are not associative (A + B + C == C + B + A) and therefore they are not compatible with incremental score calculation. UseHardSoftBigDecimalScoreHolder
or a scaledHardSoftLongScoreHolder
instead.WARNING: NOT RECOMMENDED TO USE DUE TO ROUNDING ERRORS THAT CAUSE SCORE CORRUPTION. UseHardSoftBigDecimalScoreHolder
instead.- See Also:
HardSoftDoubleScore
, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.optaplanner.core.api.score.holder.AbstractScoreHolder
AbstractScoreHolder.ConstraintActivationUnMatchListener
-
-
Field Summary
Fields Modifier and Type Field Description protected double
hardScore
Deprecated.protected Map<org.kie.api.definition.rule.Rule,BiConsumer<org.kie.api.runtime.rule.RuleContext,Double>>
matchExecutorByNumberMap
Deprecated.protected Map<org.kie.api.definition.rule.Rule,BiConsumer<org.kie.api.runtime.rule.RuleContext,HardSoftDoubleScore>>
matchExecutorByScoreMap
Deprecated.Slower thanmatchExecutorByNumberMap
protected double
softScore
Deprecated.-
Fields inherited from class org.optaplanner.core.api.score.holder.AbstractScoreHolder
constraintMatchEnabled, constraintMatchTotalMap, indictmentMap, zeroScore
-
-
Constructor Summary
Constructors Constructor Description HardSoftDoubleScoreHolder(boolean constraintMatchEnabled)
Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addHardConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, double hardWeight)
Deprecated.void
addMultiConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, double hardWeight, double softWeight)
Deprecated.void
addSoftConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, double softWeight)
Deprecated.void
configureConstraintWeight(org.kie.api.definition.rule.Rule rule, HardSoftDoubleScore constraintWeight)
Deprecated.Sets up aConstraintWeight
from theConstraintConfiguration
during initialization.HardSoftDoubleScore
extractScore(int initScore)
Deprecated.double
getHardScore()
Deprecated.double
getSoftScore()
Deprecated.void
impactScore(org.kie.api.runtime.rule.RuleContext kcontext)
Deprecated.For internal use only, use penalize() or reward() instead.void
penalize(org.kie.api.runtime.rule.RuleContext kcontext)
Deprecated.Penalize a match by theConstraintWeight
negated.void
penalize(org.kie.api.runtime.rule.RuleContext kcontext, double weightMultiplier)
Deprecated.Penalize a match by theConstraintWeight
negated and multiplied with the weightMultiplier for all score levels.void
penalize(org.kie.api.runtime.rule.RuleContext kcontext, double hardWeightMultiplier, double softWeightMultiplier)
Deprecated.Penalize a match by theConstraintWeight
negated and multiplied with the specific weightMultiplier per score level.void
reward(org.kie.api.runtime.rule.RuleContext kcontext)
Deprecated.Reward a match by theConstraintWeight
.void
reward(org.kie.api.runtime.rule.RuleContext kcontext, double weightMultiplier)
Deprecated.Reward a match by theConstraintWeight
multiplied with the weightMultiplier for all score levels.void
reward(org.kie.api.runtime.rule.RuleContext kcontext, double hardWeightMultiplier, double softWeightMultiplier)
Deprecated.Reward a match by theConstraintWeight
multiplied with the specific weightMultiplier per score level.-
Methods inherited from class org.optaplanner.core.api.score.holder.AbstractScoreHolder
extractJustificationList, getConstraintMatchTotalMap, getConstraintMatchTotals, getIndictmentMap, impactScore, impactScore, impactScore, isConstraintMatchEnabled, registerConstraintMatch, setJustificationListConverter
-
-
-
-
Field Detail
-
matchExecutorByNumberMap
protected final Map<org.kie.api.definition.rule.Rule,BiConsumer<org.kie.api.runtime.rule.RuleContext,Double>> matchExecutorByNumberMap
Deprecated.
-
matchExecutorByScoreMap
protected final Map<org.kie.api.definition.rule.Rule,BiConsumer<org.kie.api.runtime.rule.RuleContext,HardSoftDoubleScore>> matchExecutorByScoreMap
Deprecated.Slower thanmatchExecutorByNumberMap
-
hardScore
protected double hardScore
Deprecated.
-
softScore
protected double softScore
Deprecated.
-
-
Method Detail
-
getHardScore
public double getHardScore()
Deprecated.
-
getSoftScore
public double getSoftScore()
Deprecated.
-
configureConstraintWeight
public void configureConstraintWeight(org.kie.api.definition.rule.Rule rule, HardSoftDoubleScore constraintWeight)
Deprecated.Description copied from interface:ScoreHolder
Sets up aConstraintWeight
from theConstraintConfiguration
during initialization.- Specified by:
configureConstraintWeight
in interfaceScoreHolder<HardSoftDoubleScore>
- Overrides:
configureConstraintWeight
in classAbstractScoreHolder<HardSoftDoubleScore>
- Parameters:
rule
- never nullconstraintWeight
- never null, withScore.getInitScore()
equal to 0.
-
penalize
public void penalize(org.kie.api.runtime.rule.RuleContext kcontext)
Deprecated.Penalize a match by theConstraintWeight
negated.- Parameters:
kcontext
- never null, the magic variable in DRL
-
penalize
public void penalize(org.kie.api.runtime.rule.RuleContext kcontext, double weightMultiplier)
Deprecated.Penalize a match by theConstraintWeight
negated and multiplied with the weightMultiplier for all score levels.- Parameters:
kcontext
- never null, the magic variable in DRLweightMultiplier
- at least 0
-
penalize
public void penalize(org.kie.api.runtime.rule.RuleContext kcontext, double hardWeightMultiplier, double softWeightMultiplier)
Deprecated.Penalize a match by theConstraintWeight
negated and multiplied with the specific weightMultiplier per score level. Slower thanpenalize(RuleContext, double)
.- Parameters:
kcontext
- never null, the magic variable in DRLhardWeightMultiplier
- at least 0softWeightMultiplier
- at least 0
-
reward
public void reward(org.kie.api.runtime.rule.RuleContext kcontext)
Deprecated.Reward a match by theConstraintWeight
.- Parameters:
kcontext
- never null, the magic variable in DRL
-
reward
public void reward(org.kie.api.runtime.rule.RuleContext kcontext, double weightMultiplier)
Deprecated.Reward a match by theConstraintWeight
multiplied with the weightMultiplier for all score levels.- Parameters:
kcontext
- never null, the magic variable in DRLweightMultiplier
- at least 0
-
reward
public void reward(org.kie.api.runtime.rule.RuleContext kcontext, double hardWeightMultiplier, double softWeightMultiplier)
Deprecated.Reward a match by theConstraintWeight
multiplied with the specific weightMultiplier per score level. Slower thanreward(RuleContext, double)
.- Parameters:
kcontext
- never null, the magic variable in DRLhardWeightMultiplier
- at least 0softWeightMultiplier
- at least 0
-
impactScore
public void impactScore(org.kie.api.runtime.rule.RuleContext kcontext)
Deprecated.Description copied from class:AbstractScoreHolder
For internal use only, use penalize() or reward() instead.- Overrides:
impactScore
in classAbstractScoreHolder<HardSoftDoubleScore>
- Parameters:
kcontext
- never null
-
addHardConstraintMatch
public void addHardConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, double hardWeight)
Deprecated.- Parameters:
kcontext
- never null, the magic variable in DRLhardWeight
- higher is better, negative for a penalty, positive for a reward
-
addSoftConstraintMatch
public void addSoftConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, double softWeight)
Deprecated.- Parameters:
kcontext
- never null, the magic variable in DRLsoftWeight
- higher is better, negative for a penalty, positive for a reward
-
addMultiConstraintMatch
public void addMultiConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, double hardWeight, double softWeight)
Deprecated.- Parameters:
kcontext
- never null, the magic variable in DRLhardWeight
- higher is better, negative for a penalty, positive for a rewardsoftWeight
- higher is better, negative for a penalty, positive for a reward
-
extractScore
public HardSoftDoubleScore extractScore(int initScore)
Deprecated.Description copied from interface:ScoreHolder
Extracts theScore
, calculated by theKieSession
forDroolsScoreDirector
.Should not be called directly, use
ScoreDirector.calculateScore()
instead.- Parameters:
initScore
-<= 0
, managed by OptaPlanner, needed as a parameter in theScore
's creation method, seeScore.getInitScore()
- Returns:
- never null, the
Score
of the workingPlanningSolution
-
-