Package org.jacop.jasat.modules
Class StatModule
- java.lang.Object
-
- org.jacop.jasat.modules.StatModule
-
- All Implemented Interfaces:
SolverComponent,AssertionListener,BackjumpListener,ClauseListener,ConflictListener,ForgetListener,PropagateListener,StartStopListener
public final class StatModule extends java.lang.Object implements AssertionListener, BackjumpListener, ConflictListener, ForgetListener, ClauseListener, PropagateListener, StartStopListener
collects statistics about the solver- Version:
- 4.8
-
-
Field Summary
Fields Modifier and Type Field Description private Corecoreprivate longnumAssertionsprivate longnumBackjumpsprivate longnumClauseAddprivate longnumClauseRemovedprivate longnumConflictsprivate longnumForgetprivate longnumLearntClausesprivate longnumPropagateprivate longnumRestartsprivate java.util.TimerTasktaskprivate booleanthreaded
-
Constructor Summary
Constructors Constructor Description StatModule(boolean threaded)Create a StatModule.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidinitialize(Core core)initializes the component with the given solver.private voidlogStat(java.lang.String stat, long num, long timeDiff)logs one line of stat (for one parameter)voidlogStats()print current stats with solver's logc2 methodvoidonAssertion(int literal, int level)Called when a variable is setvoidonBackjump(int oldLevel, int newLevel)Called when the solver backtracks.voidonClauseAdd(int[] clause, int clauseId, boolean isModelClause)called when the given clause is added.voidonClauseRemoval(int clauseId)called when the clause with unique Id @param clauseId is removedvoidonConflict(MapClause clause, int level)called when a conflict occursvoidonForget()called when the solver's forget() method is applied.voidonPropagate(int literal, int clauseId)called when a propagation occursvoidonRestart(int oldLevel)called when the solver restarts.voidonStart()called when the solver starts search.voidonStop()called when the solver stop search, for any reasonprivate voidprintBlank()private voidprintLine(boolean start)prints a line, starting a block if @param start is true, ending the block otherwise
-
-
-
Field Detail
-
core
private Core core
-
numRestarts
private long numRestarts
-
numConflicts
private long numConflicts
-
numBackjumps
private long numBackjumps
-
numAssertions
private long numAssertions
-
numForget
private long numForget
-
numClauseAdd
private long numClauseAdd
-
numLearntClauses
private long numLearntClauses
-
numClauseRemoved
private long numClauseRemoved
-
numPropagate
private long numPropagate
-
threaded
private final boolean threaded
-
task
private java.util.TimerTask task
-
-
Method Detail
-
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
-
onConflict
public void onConflict(MapClause clause, int level)
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
-
onAssertion
public void onAssertion(int literal, int level)Description copied from interface:AssertionListenerCalled when a variable is set- Specified by:
onAssertionin interfaceAssertionListener- Parameters:
literal- the literal that is set propagation, false otherwiselevel- the search level
-
onForget
public void onForget()
Description copied from interface:ForgetListenercalled when the solver's forget() method is applied.- Specified by:
onForgetin interfaceForgetListener
-
onPropagate
public void onPropagate(int literal, int clauseId)Description copied from interface:PropagateListenercalled when a propagation occurs- Specified by:
onPropagatein interfacePropagateListener- Parameters:
literal- the literal propagatedclauseId- the unique ID of the unit clause
-
onClauseAdd
public void onClauseAdd(int[] clause, int clauseId, boolean isModelClause)Description copied from interface:ClauseListenercalled when the given clause is added.- Specified by:
onClauseAddin 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:ClauseListenercalled when the clause with unique Id @param clauseId is removed- Specified by:
onClauseRemovalin interfaceClauseListener- Parameters:
clauseId- the id
-
onStop
public void onStop()
Description copied from interface:StartStopListenercalled when the solver stop search, for any reason- Specified by:
onStopin interfaceStartStopListener
-
onStart
public void onStart()
Description copied from interface:StartStopListenercalled when the solver starts search. It will be called only once.- Specified by:
onStartin interfaceStartStopListener
-
logStats
public final void logStats()
print current stats with solver's logc2 method
-
logStat
private final void logStat(java.lang.String stat, long num, long timeDiff)logs one line of stat (for one parameter)
-
printLine
private void printLine(boolean start)
prints a line, starting a block if @param start is true, ending the block otherwise
-
printBlank
private void printBlank()
-
initialize
public void initialize(Core core)
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
-
-