Package org.jacop.jasat.modules
Class HeuristicRestartModule
java.lang.Object
org.jacop.jasat.modules.HeuristicRestartModule
- All Implemented Interfaces:
SolverComponent,BackjumpListener,ConflictListener
public final class HeuristicRestartModule
extends Object
implements ConflictListener, BackjumpListener
A module that indicates if a restart would be useful now.
Currently based on number of conflicts since last restart. Each restart makes
the next restart twice harder to reach.
- Version:
- 4.10
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate longbooleanprivate longprivate double -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidinitialize(Core core) initializes the component with the given solver.voidonBackjump(int oldLevel, int newLevel) Called when the solver backtracks.voidonConflict(MapClause clause, int level) called when a conflict occursvoidonRestart(int oldLevel) called when the solver restarts.
-
Field Details
-
shouldRestart
public boolean shouldRestart -
conflictCount
private long conflictCount -
threshold
private long threshold -
THRESHOLD_INCREASE_RATE
private double THRESHOLD_INCREASE_RATE
-
-
Constructor Details
-
HeuristicRestartModule
public HeuristicRestartModule()
-
-
Method Details
-
onConflict
Description copied from interface:ConflictListenercalled when a conflict occurs- Specified by:
onConflictin interfaceConflictListener- Parameters:
clause- the conflict (unsatisfiable) clauselevel- the level at which the conflict occurred
-
onBackjump
public void onBackjump(int oldLevel, int newLevel) Description copied from interface:BackjumpListenerCalled when the solver backtracks. It will also be called when the solver restarts.components that want to be warned about backjumps should put themselves in Core.backjumpModules.
- Specified by:
onBackjumpin interfaceBackjumpListener- Parameters:
oldLevel- the level at which the solver was before backtrackingnewLevel- the level to which the solver backtracks
-
onRestart
public void onRestart(int oldLevel) Description copied from interface:BackjumpListenercalled when the solver restarts.components that want to be warned about restarts should put themselves in Core.restartModules.
- Specified by:
onRestartin interfaceBackjumpListener- Parameters:
oldLevel- the level at which the solver was before restarting
-
initialize
Description copied from interface:SolverComponentinitializes the component with the given solver. May be called only once. This method must register the component to the solver for the run.- Specified by:
initializein interfaceSolverComponent- Parameters:
core- core component to initialize
-