|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.sat4j.tools.AbstractOutputSolver
public abstract class AbstractOutputSolver
| Field Summary | |
|---|---|
protected boolean |
firstConstr
|
protected boolean |
fixedNbClauses
|
protected int |
nbclauses
|
protected int |
nbvars
|
| Constructor Summary | |
|---|---|
AbstractOutputSolver()
|
|
| Method Summary | |
|---|---|
void |
addAllClauses(IVec<IVecInt> clauses)
Create clauses from a set of set of literals. |
IConstr |
addBlockingClause(IVecInt literals)
Add a clause in order to prevent an assignment to occur. |
void |
clearLearntClauses()
Remove clauses learned during the solving process. |
void |
expireTimeout()
Expire the timeout of the solver. |
int[] |
findModel()
Look for a model satisfying all the clauses available in the problem. |
int[] |
findModel(IVecInt assumps)
Look for a model satisfying all the clauses available in the problem. |
String |
getLogPrefix()
|
SearchListener |
getSearchListener()
Get the current SearchListener. |
Map<String,Number> |
getStat()
To obtain a map of the available statistics from the solver. |
int |
getTimeout()
Useful to check the internal timeout of the solver. |
long |
getTimeoutMs()
Useful to check the internal timeout of the solver. |
boolean |
isDBSimplificationAllowed()
Indicate whether the solver is allowed to simplify the formula by propagating the truth value of top level satisfied variables. |
boolean |
isSatisfiable()
Check the satisfiability of the set of constraints contained inside the solver. |
boolean |
isSatisfiable(boolean global)
Check the satisfiability of the set of constraints contained inside the solver. |
boolean |
isSatisfiable(IVecInt assumps)
Check the satisfiability of the set of constraints contained inside the solver. |
boolean |
isSatisfiable(IVecInt assumps,
boolean global)
Check the satisfiability of the set of constraints contained inside the solver. |
boolean |
isVerbose()
To know if the solver is in verbose mode (output allowed) or not. |
int[] |
model()
Provide a model (if any) for a satisfiable formula. |
boolean |
model(int var)
Provide the truth value of a specific variable in the model. |
int[] |
primeImplicant()
Provide a prime implicant, i.e. a set of literal that is sufficient to satisfy all constraints of the problem. |
void |
printInfos(PrintWriter output,
String prefix)
To print additional informations regarding the problem. |
void |
printStat(PrintStream output,
String prefix)
Display statistics to the given output stream Please use writers instead of stream. |
void |
printStat(PrintWriter output,
String prefix)
Display statistics to the given output writer |
boolean |
removeConstr(IConstr c)
Remove a constraint returned by one of the add method from the solver. |
boolean |
removeSubsumedConstr(IConstr c)
Remove a constraint returned by one of the add method from the solver that is subsumed by a constraint already in the solver or to be added to the solver. |
void |
setDBSimplificationAllowed(boolean status)
Set whether the solver is allowed to simplify the formula by propagating the truth value of top level satisfied variables. |
void |
setLogPrefix(String prefix)
Set the prefix used to display information. |
void |
setSearchListener(SearchListener sl)
Allow the user to hook a listener to the solver to be notified of the main steps of the search process. |
void |
setTimeout(int t)
To set the internal timeout of the solver. |
void |
setTimeoutMs(long t)
To set the internal timeout of the solver. |
void |
setTimeoutOnConflicts(int count)
To set the internal timeout of the solver. |
void |
setVerbose(boolean value)
Set the verbosity of the solver |
IVecInt |
unsatExplanation()
Retrieve an explanation of the inconsistency in terms of assumption literals. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.sat4j.specs.ISolver |
|---|
addAtLeast, addAtMost, addClause, addExactly, modelWithInternalVariables, newVar, nextFreeVarId, realNumberOfVariables, registerLiteral, reset, setExpectedNumberOfClauses, toString |
| Methods inherited from interface org.sat4j.specs.IProblem |
|---|
nConstraints, newVar, nVars |
| Field Detail |
|---|
protected int nbvars
protected int nbclauses
protected boolean fixedNbClauses
protected boolean firstConstr
| Constructor Detail |
|---|
public AbstractOutputSolver()
| Method Detail |
|---|
public boolean removeConstr(IConstr c)
ISolver
removeConstr in interface ISolverc - a constraint returned by one of the add method.
public void addAllClauses(IVec<IVecInt> clauses)
throws ContradictionException
ISolver
addAllClauses in interface ISolverclauses - a vector of set (VecInt) of literals in the dimacs format. The
vector can be reused since the solver is not supposed to keep
a reference to that vector.
ContradictionException - iff the vector of literals is empty or if it contains only
falsified literals after unit propagationISolver.addClause(IVecInt)public void setTimeout(int t)
ISolver
setTimeout in interface ISolvert - the timeout (in s)public void setTimeoutMs(long t)
ISolver
setTimeoutMs in interface ISolvert - the timeout (in milliseconds)public int getTimeout()
ISolver
getTimeout in interface ISolverpublic long getTimeoutMs()
ISolver
getTimeoutMs in interface ISolverpublic void expireTimeout()
ISolver
expireTimeout in interface ISolver
public boolean isSatisfiable(IVecInt assumps,
boolean global)
throws TimeoutException
IProblem
isSatisfiable in interface IProblemassumps - a set of literals (represented by usual non null integers in
Dimacs format).global - whether that call is part of a global process (i.e.
optimization) or not. if (global), the timeout will not be
reset between each call.
TimeoutException
public boolean isSatisfiable(boolean global)
throws TimeoutException
IProblem
isSatisfiable in interface IProblemglobal - whether that call is part of a global process (i.e.
optimization) or not. if (global), the timeout will not be
reset between each call.
TimeoutException
public void printInfos(PrintWriter output,
String prefix)
IProblem
printInfos in interface IProblemoutput - the place to print the informationprefix - the prefix to put in front of each linepublic void setTimeoutOnConflicts(int count)
ISolver
setTimeoutOnConflicts in interface ISolvercount - the timeout (in number of counflicts)public boolean isDBSimplificationAllowed()
ISolver
isDBSimplificationAllowed in interface ISolverpublic void setDBSimplificationAllowed(boolean status)
ISolver
setDBSimplificationAllowed in interface ISolver
public void printStat(PrintStream output,
String prefix)
ISolver
printStat in interface ISolverprefix - the prefix to put in front of each lineISolver.printStat(PrintWriter, String)
public void printStat(PrintWriter output,
String prefix)
ISolver
printStat in interface ISolverprefix - the prefix to put in front of each linepublic Map<String,Number> getStat()
ISolver
getStat in interface ISolverpublic void clearLearntClauses()
ISolver
clearLearntClauses in interface ISolverpublic int[] model()
IProblem
model in interface IProblemIProblem.isSatisfiable(),
IProblem.isSatisfiable(IVecInt)public boolean model(int var)
IProblem
model in interface IProblemvar - the variable id in Dimacs format
IProblem.model()
public boolean isSatisfiable()
throws TimeoutException
IProblem
isSatisfiable in interface IProblemTimeoutException
public boolean isSatisfiable(IVecInt assumps)
throws TimeoutException
IProblem
isSatisfiable in interface IProblemassumps - a set of literals (represented by usual non null integers in
Dimacs format).
TimeoutException
public int[] findModel()
throws TimeoutException
IProblem
if (isSatisfiable()) {
return model();
}
return null;
findModel in interface IProblemnull if no model is found
TimeoutException - if a model cannot be found within the given timeout.
public int[] findModel(IVecInt assumps)
throws TimeoutException
IProblem
if (isSatisfiable(assumpt)) {
return model();
}
return null;
findModel in interface IProblemnull if no model is found
TimeoutException - if a model cannot be found within the given timeout.public boolean removeSubsumedConstr(IConstr c)
ISolver
removeSubsumedConstr in interface ISolverc - a constraint returned by one of the add method. It must be the
latest constr added to the solver.
public IConstr addBlockingClause(IVecInt literals)
throws ContradictionException
ISolver
addBlockingClause in interface ISolverContradictionExceptionpublic SearchListener getSearchListener()
ISolver
getSearchListener in interface ISolverpublic void setSearchListener(SearchListener sl)
ISolver
setSearchListener in interface ISolversl - a Search Listener.public boolean isVerbose()
ISolver
isVerbose in interface ISolverpublic void setVerbose(boolean value)
ISolver
setVerbose in interface ISolvervalue - true to allow the solver to output messages on the console,
false either.public void setLogPrefix(String prefix)
ISolver
setLogPrefix in interface ISolverprefix - the prefix to be in front of each line of textpublic String getLogPrefix()
getLogPrefix in interface ISolverpublic IVecInt unsatExplanation()
ISolver
unsatExplanation in interface ISolverIProblem.isSatisfiable(IVecInt),
IProblem.isSatisfiable(IVecInt, boolean)public int[] primeImplicant()
IProblem
primeImplicant in interface IProblem
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||