public class LexicoDecorator<T extends ISolver> extends SolverDecorator<T> implements IOptimizationProblem
| Modifier and Type | Field and Description | 
|---|---|
| protected List<IVecInt> | criteria | 
| protected int | currentCriterion | 
| protected boolean[] | prevboolmodel | 
| protected int[] | prevfullmodel | 
| Constructor and Description | 
|---|
| LexicoDecorator(T solver) | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addCriterion(IVecInt literals) | 
| boolean | admitABetterSolution()Look for a solution of the optimization problem. | 
| boolean | admitABetterSolution(IVecInt assumps)Look for a solution of the optimization problem when some literals are
 satisfied. | 
| Number | calculateObjective()Compute the value of the objective function for the current solution. | 
| void | discard()Discard the current solution in the optimization problem. | 
| void | discardCurrentSolution()Discard the current solution in the optimization problem. | 
| protected IConstr | discardSolutionsForOptimizing() | 
| protected Number | evaluate() | 
| protected Number | evaluate(int criterion) | 
| protected void | fixCriterionValue() | 
| void | forceObjectiveValueTo(Number forcedValue)Force the value of the objective function. | 
| Number | getObjectiveValue()Read only access to the value of the objective function for the current
 solution. | 
| Number | getObjectiveValue(int criterion) | 
| boolean | hasNoObjectiveFunction()If the optimization problem has no objective function, then it is a
 simple decision problem. | 
| boolean | isOptimal()Allows to check afterwards if the solution provided by the solver is
 optimal 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. | 
| boolean | nonOptimalMeansSatisfiable()A suboptimal solution has different meaning depending of the optimization
 problem considered. | 
| int | numberOfCriteria() | 
| void | setTimeoutForFindingBetterSolution(int seconds)Allow to set a specific timeout when the solver is in optimization mode. | 
addAllClauses, addAtLeast, addAtMost, addBlockingClause, addClause, addExactly, clearDecorated, clearLearntClauses, decorated, expireTimeout, findModel, findModel, getLogPrefix, getSearchListener, getSolvingEngine, getStat, getTimeout, getTimeoutMs, isDBSimplificationAllowed, isSatisfiable, isSatisfiable, isSatisfiable, isSatisfiable, isSolverKeptHot, isVerbose, modelWithInternalVariables, nConstraints, newVar, newVar, nextFreeVarId, nVars, primeImplicant, primeImplicant, printInfos, printInfos, printStat, printStat, printStat, realNumberOfVariables, registerLiteral, removeConstr, removeSubsumedConstr, reset, setDBSimplificationAllowed, setExpectedNumberOfClauses, setKeepSolverHot, setLogPrefix, setSearchListener, setTimeout, setTimeoutMs, setTimeoutOnConflicts, setVerbose, toString, toString, unsatExplanationclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitfindModel, findModel, isSatisfiable, isSatisfiable, isSatisfiable, isSatisfiable, nConstraints, newVar, nVars, primeImplicant, primeImplicant, printInfos, printInfosprotected int currentCriterion
protected int[] prevfullmodel
protected boolean[] prevboolmodel
public LexicoDecorator(T solver)
public void addCriterion(IVecInt literals)
public boolean admitABetterSolution()
                             throws TimeoutException
IOptimizationProblemadmitABetterSolution in interface IOptimizationProblemTimeoutException - if the solver cannot answer in reasonable time.ISolver.setTimeout(int)public boolean admitABetterSolution(IVecInt assumps) throws TimeoutException
IOptimizationProblemadmitABetterSolution in interface IOptimizationProblemassumps - a set of literals in Dimacs format.TimeoutException - if the solver cannot answer in reasonable time.ISolver.setTimeout(int)public int numberOfCriteria()
protected void fixCriterionValue()
                          throws ContradictionException
ContradictionExceptionpublic int[] model()
IProblemmodel in interface IProblemmodel in class SolverDecorator<T extends ISolver>IProblem.isSatisfiable(), 
IProblem.isSatisfiable(IVecInt)public boolean model(int var)
RandomAccessModelmodel in interface RandomAccessModelmodel in class SolverDecorator<T extends ISolver>var - the variable id in Dimacs format#model()public boolean hasNoObjectiveFunction()
IOptimizationProblemhasNoObjectiveFunction in interface IOptimizationProblempublic boolean nonOptimalMeansSatisfiable()
IOptimizationProblemnonOptimalMeansSatisfiable in interface IOptimizationProblempublic Number calculateObjective()
IOptimizationProblemcalculateObjective in interface IOptimizationProblemIOptimizationProblem.getObjectiveValue()public Number getObjectiveValue()
IOptimizationProblemgetObjectiveValue in interface IOptimizationProblempublic Number getObjectiveValue(int criterion)
public void forceObjectiveValueTo(Number forcedValue) throws ContradictionException
IOptimizationProblemforceObjectiveValueTo in interface IOptimizationProblemContradictionExceptionpublic void discard()
             throws ContradictionException
IOptimizationProblemdiscard in interface IOptimizationProblemContradictionException - if a trivial inconsistency is detected.IOptimizationProblem.discardCurrentSolution()public void discardCurrentSolution()
                            throws ContradictionException
IOptimizationProblemdiscardCurrentSolution in interface IOptimizationProblemContradictionException - if a trivial inconsistency is detected.protected IConstr discardSolutionsForOptimizing() throws ContradictionException
ContradictionExceptionprotected Number evaluate()
protected Number evaluate(int criterion)
public boolean isOptimal()
IOptimizationProblemisOptimal in interface IOptimizationProblempublic void setTimeoutForFindingBetterSolution(int seconds)
IOptimizationProblemsetTimeoutForFindingBetterSolution in interface IOptimizationProblemCopyright © 2013 Centre de Recherche en Informatique de Lens (CRIL). All Rights Reserved.