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.8
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate long
boolean
private long
private double
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
initialize
(Core core) initializes the component with the given solver.void
onBackjump
(int oldLevel, int newLevel) Called when the solver backtracks.void
onConflict
(MapClause clause, int level) called when a conflict occursvoid
onRestart
(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:ConflictListener
called when a conflict occurs- Specified by:
onConflict
in 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:BackjumpListener
Called 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:
onBackjump
in 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:BackjumpListener
called when the solver restarts.components that want to be warned about restarts should put themselves in Core.restartModules.
- Specified by:
onRestart
in interfaceBackjumpListener
- Parameters:
oldLevel
- the level at which the solver was before restarting
-
initialize
Description copied from interface:SolverComponent
initializes 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:
initialize
in interfaceSolverComponent
- Parameters:
core
- core component to initialize
-