Class ListUnassignMove<Solution_>
java.lang.Object
org.optaplanner.core.impl.heuristic.move.AbstractMove<Solution_>
org.optaplanner.core.impl.heuristic.selector.move.generic.list.ListUnassignMove<Solution_>
- All Implemented Interfaces:
Move<Solution_>
-
Constructor Summary
ConstructorsConstructorDescriptionListUnassignMove
(ListVariableDescriptor<Solution_> variableDescriptor, Object sourceEntity, int sourceIndex) -
Method Summary
Modifier and TypeMethodDescriptioncreateUndoMove
(ScoreDirector<Solution_> scoreDirector) Called before the move is done, so the move can be evaluated and then be undone without resulting into a permanent change in the solution.protected void
doMoveOnGenuineVariables
(ScoreDirector<Solution_> scoreDirector) LikeAbstractMove.doMoveOnly(ScoreDirector)
but without theScoreDirector.triggerVariableListeners()
call (becauseAbstractMove.doMoveOnly(ScoreDirector)
already does that).boolean
Describes the move type for statistical purposes.int
hashCode()
boolean
isMoveDoable
(ScoreDirector<Solution_> scoreDirector) Called before a move is evaluated to decide whether the move can be done and evaluated.toString()
Methods inherited from class org.optaplanner.core.impl.heuristic.move.AbstractMove
doMove, doMoveOnly, rebaseArray, rebaseList
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.optaplanner.core.impl.heuristic.move.Move
getPlanningEntities, getPlanningValues, rebase
-
Constructor Details
-
ListUnassignMove
public ListUnassignMove(ListVariableDescriptor<Solution_> variableDescriptor, Object sourceEntity, int sourceIndex)
-
-
Method Details
-
isMoveDoable
Description copied from interface:Move
Called before a move is evaluated to decide whether the move can be done and evaluated. A Move is not doable if:- Either doing it would change nothing in the
PlanningSolution
. - Either it's simply not possible to do (for example due to built-in hard constraints).
It is recommended to keep this method implementation simple: do not use it in an attempt to satisfy normal hard and soft constraints.
Although you could also filter out non-doable moves in for example the
MoveSelector
orMoveListFactory
, this is not needed as theSolver
will do it for you.- Parameters:
scoreDirector
- theScoreDirector
not yet modified by the move.- Returns:
- true if the move achieves a change in the solution and the move is possible to do on the solution.
- Either doing it would change nothing in the
-
createUndoMove
Description copied from class:AbstractMove
Called before the move is done, so the move can be evaluated and then be undone without resulting into a permanent change in the solution.- Specified by:
createUndoMove
in classAbstractMove<Solution_>
- Parameters:
scoreDirector
- theScoreDirector
not yet modified by the move.- Returns:
- an undoMove which does the exact opposite of this move.
-
doMoveOnGenuineVariables
Description copied from class:AbstractMove
LikeAbstractMove.doMoveOnly(ScoreDirector)
but without theScoreDirector.triggerVariableListeners()
call (becauseAbstractMove.doMoveOnly(ScoreDirector)
already does that).- Specified by:
doMoveOnGenuineVariables
in classAbstractMove<Solution_>
- Parameters:
scoreDirector
- never null
-
getSimpleMoveTypeDescription
Description copied from interface:Move
Describes the move type for statistical purposes. For example "ChangeMove(Process.computer)".The format is not formalized. Never parse the
String
returned by this method.- Returns:
- never null
-
equals
-
hashCode
public int hashCode() -
toString
-