Solution_
- the solution type, the class with the PlanningSolution
annotationpublic class IncrementalScoreDirector<Solution_> extends AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
ScoreDirector
, which only recalculates the Score
of the part of the working solution
that changed,
instead of the going through the entire PlanningSolution
. This is incremental calculation, which is fast.ScoreDirector
allChangesWillBeUndoneBeforeStepEnds, calculationCount, constraintMatchEnabledPreference, locator, locatorEnabled, logger, scoreDirectorFactory, variableListenerSupport, workingEntityListRevision, workingInitScore, workingSolution
Constructor and Description |
---|
IncrementalScoreDirector(IncrementalScoreDirectorFactory<Solution_> scoreDirectorFactory,
boolean locatorEnabled,
boolean constraintMatchEnabledPreference,
IncrementalScoreCalculator<Solution_> incrementalScoreCalculator) |
afterEntityAdded, afterEntityRemoved, afterVariableChanged, assertExpectedWorkingScore, assertShadowVariablesAreNotStale, assertWorkingScoreFromScratch, beforeEntityAdded, beforeEntityRemoved, beforeVariableChanged, buildScoreCorruptionAnalysis, changeVariableFacade, clone, cloneSolution, cloneWorkingSolution, createChildThreadScoreDirector, dispose, extractIndictmentMap, getCalculationCount, getScoreDefinition, getScoreDirectorFactory, getSolutionDescriptor, getSupplyManager, getWorkingEntityCount, getWorkingEntityList, getWorkingEntityListRevision, getWorkingSolution, getWorkingValueCount, isAllChangesWillBeUndoneBeforeStepEnds, isConstraintMatchEnabledPreference, isLocatorEnabled, isWorkingEntityListDirty, locateWorkingObject, overwriteConstraintMatchEnabledPreference, resetCalculationCount, setAllChangesWillBeUndoneBeforeStepEnds, setCalculatedScore, setWorkingEntityListDirty, toString, triggerVariableListeners
public IncrementalScoreDirector(IncrementalScoreDirectorFactory<Solution_> scoreDirectorFactory, boolean locatorEnabled, boolean constraintMatchEnabledPreference, IncrementalScoreCalculator<Solution_> incrementalScoreCalculator)
public IncrementalScoreCalculator<Solution_> getIncrementalScoreCalculator()
public void setWorkingSolution(Solution_ workingSolution)
ScoreDirector
working solution
must never be the same instance as the
best solution
, it should be a (un)changed clone.
Only call this method on a separate ScoreDirector
instance,
built by Solver.getScoreDirectorFactory()
,
not on the one used inside the Solver
itself.
setWorkingSolution
in interface ScoreDirector<Solution_>
setWorkingSolution
in class AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
workingSolution
- never nullpublic Score calculateScore()
ScoreDirector
Score
and updates the working solution
accordingly.Score
of the working solution
public boolean isConstraintMatchEnabled()
ScoreDirector.getConstraintMatchTotals()
can be calledpublic Collection<ConstraintMatchTotal> getConstraintMatchTotals()
ScoreDirector
Score
of ScoreDirector.calculateScore()
.public void beforeEntityAdded(EntityDescriptor<Solution_> entityDescriptor, Object entity)
beforeEntityAdded
in class AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
public void afterEntityAdded(EntityDescriptor<Solution_> entityDescriptor, Object entity)
afterEntityAdded
in class AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
public void beforeVariableChanged(VariableDescriptor variableDescriptor, Object entity)
beforeVariableChanged
in interface ScoreDirector<Solution_>
beforeVariableChanged
in class AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
public void afterVariableChanged(VariableDescriptor variableDescriptor, Object entity)
afterVariableChanged
in interface ScoreDirector<Solution_>
afterVariableChanged
in class AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
public void beforeEntityRemoved(EntityDescriptor<Solution_> entityDescriptor, Object entity)
beforeEntityRemoved
in class AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
public void afterEntityRemoved(EntityDescriptor<Solution_> entityDescriptor, Object entity)
afterEntityRemoved
in class AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
public void beforeProblemFactAdded(Object problemFact)
beforeProblemFactAdded
in interface ScoreDirector<Solution_>
beforeProblemFactAdded
in class AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
public void afterProblemFactAdded(Object problemFact)
afterProblemFactAdded
in interface ScoreDirector<Solution_>
afterProblemFactAdded
in class AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
public void beforeProblemPropertyChanged(Object problemFactOrEntity)
beforeProblemPropertyChanged
in interface ScoreDirector<Solution_>
beforeProblemPropertyChanged
in class AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
public void afterProblemPropertyChanged(Object problemFactOrEntity)
afterProblemPropertyChanged
in interface ScoreDirector<Solution_>
afterProblemPropertyChanged
in class AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
public void beforeProblemFactRemoved(Object problemFact)
beforeProblemFactRemoved
in interface ScoreDirector<Solution_>
beforeProblemFactRemoved
in class AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
public void afterProblemFactRemoved(Object problemFact)
afterProblemFactRemoved
in interface ScoreDirector<Solution_>
afterProblemFactRemoved
in class AbstractScoreDirector<Solution_,IncrementalScoreDirectorFactory<Solution_>>
Copyright © 2006–2016 JBoss by Red Hat. All rights reserved.