public class LexicoDecoratorPB extends LexicoDecorator<IPBSolver> implements IPBSolver
| Modifier and Type | Field and Description | 
|---|---|
protected List<ObjectiveFunction> | 
objs  | 
criteria, currentCriterion, isSolutionOptimal, prevboolmodel, prevConstr, prevfullmodel, prevmodelwithinternalvars| Constructor and Description | 
|---|
LexicoDecoratorPB(IPBSolver solver)  | 
| Modifier and Type | Method and Description | 
|---|---|
IConstr | 
addAtLeast(IVecInt literals,
          IVec<BigInteger> coeffs,
          BigInteger degree)
Create a pseudo-boolean constraint of the type "at least". 
 | 
IConstr | 
addAtLeast(IVecInt literals,
          IVecInt coeffs,
          int degree)
Create a pseudo-boolean constraint of the type "at least". 
 | 
IConstr | 
addAtMost(IVecInt literals,
         IVec<BigInteger> coeffs,
         BigInteger degree)
Create a pseudo boolean constraint of the type "at most". 
 | 
IConstr | 
addAtMost(IVecInt literals,
         IVecInt coeffs,
         int degree)
Create a pseudo boolean constraint of the type "at most". 
 | 
void | 
addCriterion(IVecInt literals)  | 
void | 
addCriterion(IVecInt literals,
            IVec<BigInteger> coefs)  | 
IConstr | 
addExactly(IVecInt literals,
          IVec<BigInteger> coeffs,
          BigInteger weight)
Create a pseudo-boolean constraint of the type "subset sum". 
 | 
IConstr | 
addExactly(IVecInt literals,
          IVecInt coeffs,
          int weight)
Create a pseudo-boolean constraint of the type "subset sum". 
 | 
IConstr | 
addPseudoBoolean(IVecInt lits,
                IVec<BigInteger> coeffs,
                boolean moreThan,
                BigInteger d)
Create a Pseudo-Boolean constraint of the type "at least n or at most n
 of those literals must be satisfied" 
 | 
boolean | 
admitABetterSolution(IVecInt assumps)  | 
protected IConstr | 
discardSolutionsForOptimizing()  | 
protected Number | 
evaluate()  | 
protected Number | 
evaluate(int criterion)  | 
protected void | 
fixCriterionValue()  | 
ObjectiveFunction | 
getObjectiveFunction()
Retrieve the objective function from the solver. 
 | 
int | 
numberOfCriteria()  | 
void | 
setObjectiveFunction(ObjectiveFunction obj)
Provide an objective function to the solver. 
 | 
admitABetterSolution, calculateObjective, discard, discardCurrentSolution, forceObjectiveValueTo, getObjectiveValue, getObjectiveValue, hasNoObjectiveFunction, isOptimal, manageUnsatCase, model, model, modelWithInternalVariables, nonOptimalMeansSatisfiable, setTimeoutForFindingBetterSolutionaddAllClauses, addAtLeast, addAtMost, addBlockingClause, addClause, addExactly, clearDecorated, clearLearntClauses, decorated, expireTimeout, findModel, findModel, getLogPrefix, getSearchListener, getSolvingEngine, getStat, getTimeout, getTimeoutMs, isDBSimplificationAllowed, isSatisfiable, isSatisfiable, isSatisfiable, isSatisfiable, isSolverKeptHot, isVerbose, 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, setUnitClauseProvider, setVerbose, toString, toString, unsatExplanationclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddAllClauses, addAtLeast, addAtMost, addBlockingClause, addClause, addExactly, clearLearntClauses, expireTimeout, getLogPrefix, getSearchListener, getSolvingEngine, getStat, getTimeout, getTimeoutMs, isDBSimplificationAllowed, isSolverKeptHot, isVerbose, modelWithInternalVariables, newVar, nextFreeVarId, printStat, printStat, printStat, realNumberOfVariables, registerLiteral, removeConstr, removeSubsumedConstr, reset, setDBSimplificationAllowed, setExpectedNumberOfClauses, setKeepSolverHot, setLogPrefix, setSearchListener, setTimeout, setTimeoutMs, setTimeoutOnConflicts, setUnitClauseProvider, setVerbose, toString, unsatExplanationfindModel, findModel, isSatisfiable, isSatisfiable, isSatisfiable, isSatisfiable, model, nConstraints, newVar, nVars, primeImplicant, primeImplicant, printInfos, printInfosmodelprotected final List<ObjectiveFunction> objs
public LexicoDecoratorPB(IPBSolver solver)
public IConstr addPseudoBoolean(IVecInt lits, IVec<BigInteger> coeffs, boolean moreThan, BigInteger d) throws ContradictionException
IPBSolveraddPseudoBoolean in interface IPBSolverlits - a set of literals. The vector can be reused since the solver
            is not supposed to keep a reference to that vector.coeffs - the coefficients of the literals. The vector can be reused
            since the solver is not supposed to keep a reference to that
            vector.moreThan - true if it is a constraint >= degree, false if it is a
            constraint <= degreed - the degree of the cardinality constraintContradictionException - iff the vector of literals is empty or if the constraint is
             falsified after unit propagationISolver.removeConstr(IConstr)public void setObjectiveFunction(ObjectiveFunction obj)
IPBSolversetObjectiveFunction in interface IPBSolverobj - the objective functionpublic ObjectiveFunction getObjectiveFunction()
IPBSolvergetObjectiveFunction in interface IPBSolverpublic boolean admitABetterSolution(IVecInt assumps) throws TimeoutException
admitABetterSolution in interface IOptimizationProblemadmitABetterSolution in class LexicoDecorator<IPBSolver>TimeoutExceptionpublic void addCriterion(IVecInt literals)
addCriterion in class LexicoDecorator<IPBSolver>public void addCriterion(IVecInt literals, IVec<BigInteger> coefs)
protected Number evaluate()
evaluate in class LexicoDecorator<IPBSolver>protected Number evaluate(int criterion)
evaluate in class LexicoDecorator<IPBSolver>protected void fixCriterionValue()
                          throws ContradictionException
fixCriterionValue in class LexicoDecorator<IPBSolver>ContradictionExceptionprotected IConstr discardSolutionsForOptimizing() throws ContradictionException
discardSolutionsForOptimizing in class LexicoDecorator<IPBSolver>ContradictionExceptionpublic int numberOfCriteria()
numberOfCriteria in class LexicoDecorator<IPBSolver>public IConstr addAtMost(IVecInt literals, IVecInt coeffs, int degree) throws ContradictionException
IPBSolveraddAtMost in interface IPBSolverliterals - a set of literals The vector can be reused since the solver is
            not supposed to keep a reference to that vector.coeffs - the coefficients of the literals. The vector can be reused
            since the solver is not supposed to keep a reference to that
            vector.degree - the degree of the pseudo-boolean constraintContradictionException - iff the constraint is found trivially unsat.ISolver.removeConstr(IConstr)public IConstr addAtMost(IVecInt literals, IVec<BigInteger> coeffs, BigInteger degree) throws ContradictionException
IPBSolveraddAtMost in interface IPBSolverliterals - a set of literals The vector can be reused since the solver is
            not supposed to keep a reference to that vector.coeffs - the coefficients of the literals. The vector can be reused
            since the solver is not supposed to keep a reference to that
            vector.degree - the degree of the pseudo-boolean constraintContradictionException - iff the constraint is found trivially unsat.ISolver.removeConstr(IConstr)public IConstr addAtLeast(IVecInt literals, IVecInt coeffs, int degree) throws ContradictionException
IPBSolveraddAtLeast in interface IPBSolverliterals - a set of literals. The vector can be reused since the solver
            is not supposed to keep a reference to that vector.coeffs - the coefficients of the literals. The vector can be reused
            since the solver is not supposed to keep a reference to that
            vector.degree - the degree of the pseudo-boolean constraintContradictionException - iff the constraint is found trivially unsat.ISolver.removeConstr(IConstr)public IConstr addAtLeast(IVecInt literals, IVec<BigInteger> coeffs, BigInteger degree) throws ContradictionException
IPBSolveraddAtLeast in interface IPBSolverliterals - a set of literals. The vector can be reused since the solver
            is not supposed to keep a reference to that vector.coeffs - the coefficients of the literals. The vector can be reused
            since the solver is not supposed to keep a reference to that
            vector.degree - the degree of the pseudo-boolean constraintContradictionException - iff the constraint is found trivially unsat.ISolver.removeConstr(IConstr)public IConstr addExactly(IVecInt literals, IVecInt coeffs, int weight) throws ContradictionException
IPBSolveraddExactly in interface IPBSolverliterals - a set of literals. The vector can be reused since the solver
            is not supposed to keep a reference to that vector.coeffs - the coefficients of the literals. The vector can be reused
            since the solver is not supposed to keep a reference to that
            vector.weight - the number of literals that must be satisfiedContradictionException - iff the constraint is trivially unsatisfiable.public IConstr addExactly(IVecInt literals, IVec<BigInteger> coeffs, BigInteger weight) throws ContradictionException
IPBSolveraddExactly in interface IPBSolverliterals - a set of literals. The vector can be reused since the solver
            is not supposed to keep a reference to that vector.coeffs - the coefficients of the literals. The vector can be reused
            since the solver is not supposed to keep a reference to that
            vector.weight - the number of literals that must be satisfiedContradictionException - iff the constraint is trivially unsatisfiable.Copyright © 2013 Centre de Recherche en Informatique de Lens (CRIL). All Rights Reserved.