-
Enhancement
-
Resolution: Done
-
Critical
-
6.3.0.Final
-
None
-
NEW
-
NEW
There is a guarantee that the every notification to a VariableListener is unique. For example beforeVarChange(Paris) won't be called twice in the same move. This is interesting for when a shadow variable depends on 2 planning variable or for certain (custom) moves that might change the same entity twice (not applicable to CompositeMove).
That uniqueness guarantee can be costly, for example in VRPTW for reversing chain moves. A VariableListener can be implemented to gracefully ignore non-unique notifications (without having to keep a Set), by simply doing nothing if the shadow variable is already in the deterministic state. If the VariableListener implements a new tagging interface, then VariableListenerNotifiable can use a List instead of a Set for the notificationQueue.
(Based by Jiri's feedback)
- is caused by
-
PLANNER-252 VariableListeners for shadow variables that are triggered on other shadow variables should be triggered predictably in a smart order
- Resolved
- is related to
-
PLANNER-479 TailChainSwapMove's reverseChain() seems to cause a performance loss since 6.3.0.CR1
- Resolved
- relates to
-
PLANNER-2809 Deprecate VariableListener#requiresUniqueEntityEvents
- Open
-
PLANNER-481 TailChainSwapMoveSelector configuration should also support not generating reversing tailchainswaps
- Open