| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.sat4j.tools.SolverDecorator<T>
org.sat4j.tools.LexicoDecorator<IPBSolver>
org.sat4j.pb.tools.LexicoDecoratorPB
public class LexicoDecoratorPB
| Field Summary | 
|---|
| Fields inherited from class org.sat4j.tools.LexicoDecorator | 
|---|
| criteria, currentCriterion, prevboolmodel, prevfullmodel | 
| Constructor Summary | |
|---|---|
| LexicoDecoratorPB(IPBSolver solver) | |
| Method Summary | |
|---|---|
|  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  void | fixCriterionValue() | 
|  ObjectiveFunction | getObjectiveFunction()Retrieve the objective function from the solver. | 
| protected  int | numberOfCriteria() | 
|  void | setObjectiveFunction(ObjectiveFunction obj)Provide an objective function to the solver. | 
| Methods inherited from class org.sat4j.tools.LexicoDecorator | 
|---|
| admitABetterSolution, calculateObjective, discard, discardCurrentSolution, forceObjectiveValueTo, getObjectiveValue, hasNoObjectiveFunction, isOptimal, model, model, nonOptimalMeansSatisfiable | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | 
| Methods inherited from interface org.sat4j.specs.IProblem | 
|---|
| findModel, findModel, isSatisfiable, isSatisfiable, isSatisfiable, isSatisfiable, model, model, nConstraints, newVar, nVars, primeImplicant, primeImplicant, printInfos | 
| Constructor Detail | 
|---|
public LexicoDecoratorPB(IPBSolver solver)
| Method Detail | 
|---|
public IConstr addPseudoBoolean(IVecInt lits,
                                IVec<BigInteger> coeffs,
                                boolean moreThan,
                                BigInteger d)
                         throws ContradictionException
IPBSolver
addPseudoBoolean 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 constraint
ContradictionException - iff the vector of literals is empty or if the constraint is
             falsified after unit propagationISolver.removeConstr(IConstr)public void setObjectiveFunction(ObjectiveFunction obj)
IPBSolver
setObjectiveFunction in interface IPBSolverobj - the objective functionpublic ObjectiveFunction getObjectiveFunction()
IPBSolver
getObjectiveFunction in interface IPBSolver
public 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 void fixCriterionValue()
                          throws ContradictionException
fixCriterionValue in class LexicoDecorator<IPBSolver>ContradictionException
protected IConstr discardSolutionsForOptimizing()
                                         throws ContradictionException
discardSolutionsForOptimizing in class LexicoDecorator<IPBSolver>ContradictionExceptionprotected int numberOfCriteria()
numberOfCriteria in class LexicoDecorator<IPBSolver>
public IConstr addAtMost(IVecInt literals,
                         IVecInt coeffs,
                         int degree)
                  throws ContradictionException
IPBSolver
addAtMost 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 constraint
ContradictionException - iff the constraint is found trivially unsat.ISolver.removeConstr(IConstr)
public IConstr addAtMost(IVecInt literals,
                         IVec<BigInteger> coeffs,
                         BigInteger degree)
                  throws ContradictionException
IPBSolver
addAtMost 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 constraint
ContradictionException - iff the constraint is found trivially unsat.ISolver.removeConstr(IConstr)
public IConstr addAtLeast(IVecInt literals,
                          IVecInt coeffs,
                          int degree)
                   throws ContradictionException
IPBSolver
addAtLeast 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 constraint
ContradictionException - iff the constraint is found trivially unsat.ISolver.removeConstr(IConstr)
public IConstr addAtLeast(IVecInt literals,
                          IVec<BigInteger> coeffs,
                          BigInteger degree)
                   throws ContradictionException
IPBSolver
addAtLeast 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 constraint
ContradictionException - iff the constraint is found trivially unsat.ISolver.removeConstr(IConstr)
public IConstr addExactly(IVecInt literals,
                          IVecInt coeffs,
                          int weight)
                   throws ContradictionException
IPBSolver
addExactly 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 satisfied
ContradictionException - iff the constraint is trivially unsatisfiable.
public IConstr addExactly(IVecInt literals,
                          IVec<BigInteger> coeffs,
                          BigInteger weight)
                   throws ContradictionException
IPBSolver
addExactly 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 satisfied
ContradictionException - iff the constraint is trivially unsatisfiable.| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||