- Type Parameters:
Solution_- the solution type, the class with the
- All Known Subinterfaces:
- All Known Implementing Classes:
public interface SolutionCloner<Solution_>Clones a
PlanningSolutionduring planning. Used to remember the state of a good
PlanningSolutionso it can be recalled at a later time when the original
PlanningSolutionis already modified. Also used in population based heuristics to increase or repopulate the population.
Planning cloning is hard: avoid doing it yourself.
An implementing class must be thread-safe after initialization.
cloneSolutionDoes a planning clone. The returned
PlanningSolutionclone must fulfill these requirements:
- The clone must represent the same planning problem.
Usually it reuses the same instances of the problem facts and problem fact collections as the
- The clone must have the same (equal) score as the
- The clone must use different, cloned instances of the entities and entity collections.
If a cloned entity changes, the original must remain unchanged.
If an entity is added or removed in a cloned
PlanningSolution, the original
PlanningSolutionmust remain unchanged.
This method is thread-safe.
- The clone must represent the same planning problem. Usually it reuses the same instances of the problem facts and problem fact collections as the