Package org.jacop.jasat.modules
Class DebugModule
- java.lang.Object
-
- org.jacop.jasat.modules.DebugModule
-
- All Implemented Interfaces:
SolverComponent
,AssertionListener
,BackjumpListener
,ClauseListener
,ConflictListener
,ExplanationListener
,ForgetListener
,PropagateListener
,SolutionListener
,StartStopListener
public final class DebugModule extends java.lang.Object implements AssertionListener, BackjumpListener, ConflictListener, PropagateListener, SolutionListener, ForgetListener, ExplanationListener, ClauseListener, StartStopListener
module used for debug : it logs every event it is informed of- Version:
- 4.8
-
-
Constructor Summary
Constructors Constructor Description DebugModule()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
initialize(Core core)
initializes the component with the given solver.void
onAssertion(int literal, int level)
Called when a variable is setvoid
onBackjump(int oldLevel, int newLevel)
Called when the solver backtracks.void
onClauseAdd(int[] clause, int clauseId, boolean isModelClause)
called when the given clause is added.void
onClauseRemoval(int clauseId)
called when the clause with unique Id @param clauseId is removedvoid
onConflict(MapClause conflictClause, int level)
called when a conflict occursvoid
onExplain(MapClause explanation)
called when the conflict clause is explainedvoid
onForget()
called when the solver's forget() method is applied.void
onPropagate(int literal, int clauseId)
called when a propagation occursvoid
onRestart(int level)
called when the solver restarts.void
onSolution(boolean satisfiable)
a handler called when a solution is found.void
onStart()
called when the solver starts search.void
onStop()
called when the solver stop search, for any reasonprivate void
printBlank()
private void
printClause(java.lang.String prefix, MapClause mapClause)
private void
printLine(boolean start)
private void
printTrail(java.lang.String prefix, MapClause clause)
-
-
-
Method Detail
-
onRestart
public void onRestart(int level)
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:
level
- the level at which the solver was before restarting
-
onConflict
public void onConflict(MapClause conflictClause, int level)
Description copied from interface:ConflictListener
called when a conflict occurs- Specified by:
onConflict
in interfaceConflictListener
- Parameters:
conflictClause
- 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
-
onAssertion
public void onAssertion(int literal, int level)
Description copied from interface:AssertionListener
Called when a variable is set- Specified by:
onAssertion
in interfaceAssertionListener
- Parameters:
literal
- the literal that is set propagation, false otherwiselevel
- the search level
-
onPropagate
public void onPropagate(int literal, int clauseId)
Description copied from interface:PropagateListener
called when a propagation occurs- Specified by:
onPropagate
in interfacePropagateListener
- Parameters:
literal
- the literal propagatedclauseId
- the unique ID of the unit clause
-
onSolution
public void onSolution(boolean satisfiable)
Description copied from interface:SolutionListener
a handler called when a solution is found.- Specified by:
onSolution
in interfaceSolutionListener
- Parameters:
satisfiable
- true when the solution is Satisfiable, false if it is Unsatisfiable.
-
onExplain
public void onExplain(MapClause explanation)
Description copied from interface:ExplanationListener
called when the conflict clause is explained- Specified by:
onExplain
in interfaceExplanationListener
- Parameters:
explanation
- the explanation clause
-
onClauseAdd
public void onClauseAdd(int[] clause, int clauseId, boolean isModelClause)
Description copied from interface:ClauseListener
called when the given clause is added.- Specified by:
onClauseAdd
in interfaceClauseListener
- Parameters:
clause
- the clauseclauseId
- the clause's unique IdisModelClause
- is this clause a model clause ?
-
onClauseRemoval
public void onClauseRemoval(int clauseId)
Description copied from interface:ClauseListener
called when the clause with unique Id @param clauseId is removed- Specified by:
onClauseRemoval
in interfaceClauseListener
- Parameters:
clauseId
- the id
-
onForget
public void onForget()
Description copied from interface:ForgetListener
called when the solver's forget() method is applied.- Specified by:
onForget
in interfaceForgetListener
-
onStart
public void onStart()
Description copied from interface:StartStopListener
called when the solver starts search. It will be called only once.- Specified by:
onStart
in interfaceStartStopListener
-
onStop
public void onStop()
Description copied from interface:StartStopListener
called when the solver stop search, for any reason- Specified by:
onStop
in interfaceStartStopListener
-
printLine
private void printLine(boolean start)
-
printBlank
private void printBlank()
-
printTrail
private void printTrail(java.lang.String prefix, MapClause clause)
-
printClause
private void printClause(java.lang.String prefix, MapClause mapClause)
-
initialize
public void initialize(Core core)
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
-
-