| 
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.sat4j.pb.tools.DependencyHelper<T,C>
T - The class of the objects to map into boolean variables.C - The class of the object to map to each constraint.public class DependencyHelper<T,C>
Helper class intended to make life easier to people to feed a sat solver programmatically.
| Field Summary | |
|---|---|
 boolean | 
explanationEnabled
 | 
 INegator<T> | 
NO_NEGATION
 | 
| Constructor Summary | |
|---|---|
DependencyHelper(IPBSolver solver)
 | 
|
DependencyHelper(IPBSolver solver,
                 boolean explanationEnabled)
 | 
|
| Method Summary | |
|---|---|
 void | 
addToObjectiveFunction(T thing,
                       java.math.BigInteger weight)
Add a weighted literal to the objective function.  | 
 void | 
addToObjectiveFunction(T thing,
                       int weight)
Add a weighted literal to the objective function.  | 
 void | 
and(C name,
    T thing,
    T... otherThings)
Create a constraint of the form thing <=> (thing1 and thing 2 ... and thingn)  | 
 ImplicationNamer<T,C> | 
atMost(int i,
       T... things)
Create a constraint stating that at most i domain object should be set to true.  | 
 void | 
clause(C name,
       T... things)
Create a clause (thing1 or thing 2 ... or thingn)  | 
 void | 
discard(IVec<T> things)
 | 
 DisjunctionRHS<T,C> | 
disjunction(T... lhs)
 | 
 boolean | 
getBooleanValueFor(T t)
Retrieve the boolean value associated with a domain object in the solution found by the solver.  | 
 int | 
getNumberOfConstraints()
 | 
 int | 
getNumberOfVariables()
 | 
 java.lang.String | 
getObjectiveFunction()
 | 
 IVec<T> | 
getSolution()
Retrieve the solution found.  | 
 java.math.BigInteger | 
getSolutionCost()
 | 
 boolean | 
hasASolution()
 | 
 boolean | 
hasASolution(java.util.Collection<T> assumps)
 | 
 boolean | 
hasASolution(IVec<T> assumps)
 | 
 void | 
iff(C name,
    T thing,
    T... otherThings)
Create a constraint using equivalency chains thing <=> (thing1 <=> thing2 <=> ... <=> thingn)  | 
 void | 
ifThenElse(C name,
           T thing,
           T conditionThing,
           T thenThing,
           T elseThing)
Create a constraint of the form thing <=> (if conditionThing then thenThing else elseThing)  | 
 ImplicationRHS<T,C> | 
implication(T... lhs)
Create a logical implication of the form lhs -> rhs  | 
 void | 
or(C name,
   T thing,
   T... otherThings)
Create a constraint of the form thing <=> (thing1 or thing 2 ... or thingn)  | 
 void | 
setFalse(T thing,
         C name)
Add a constraint to set the value of a domain object to false.  | 
 void | 
setNegator(INegator<T> negator)
 | 
 void | 
setObjectiveFunction(WeightedObject<T>... wobj)
Add an objective function to ask for a solution that minimize the objective function.  | 
 void | 
setTrue(T thing,
        C name)
Add a constraint to set the value of a domain object to true.  | 
 void | 
stopExplanation()
Stop the explanation computation.  | 
 void | 
stopSolver()
Stop the SAT solver that is looking for a solution.  | 
 java.util.Set<C> | 
why()
Explain the reason of the inconsistency of the set of constraints.  | 
 java.util.Set<C> | 
why(T thing)
Explain a domain object has been set to true in a solution.  | 
 java.util.Set<C> | 
whyNot(T thing)
Explain a domain object has been set to false in a solution.  | 
| Methods inherited from class java.lang.Object | 
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
public final INegator<T> NO_NEGATION
public boolean explanationEnabled
| Constructor Detail | 
|---|
public DependencyHelper(IPBSolver solver)
solver - the solver to be used to solve the problem.
public DependencyHelper(IPBSolver solver,
                        boolean explanationEnabled)
| Method Detail | 
|---|
public void setNegator(INegator<T> negator)
public IVec<T> getSolution()
#hasASolution()}public java.math.BigInteger getSolutionCost()
public boolean getBooleanValueFor(T t)
t - a domain object
public boolean hasASolution()
                     throws TimeoutException
TimeoutException
public boolean hasASolution(IVec<T> assumps)
                     throws TimeoutException
TimeoutException
public boolean hasASolution(java.util.Collection<T> assumps)
                     throws TimeoutException
TimeoutException
public java.util.Set<C> why()
                     throws TimeoutException
TimeoutException#hasASolution()}
public java.util.Set<C> why(T thing)
                     throws TimeoutException
TimeoutException#hasASolution()}
public java.util.Set<C> whyNot(T thing)
                        throws TimeoutException
TimeoutException#hasASolution()}
public void setTrue(T thing,
                    C name)
             throws ContradictionException
thing - the domain objectname - the name of the constraint, to be used in an explanation if
            needed.
ContradictionException - if the set of constraints appears to be trivially
             inconsistent.
public void setFalse(T thing,
                     C name)
              throws ContradictionException
thing - the domain objectname - the name of the constraint, to be used in an explanation if
            needed.
ContradictionException - if the set of constraints appears to be trivially
             inconsistent.public ImplicationRHS<T,C> implication(T... lhs)
lhs - some domain objects. They form a conjunction in the left hand
            side of the implication.
public DisjunctionRHS<T,C> disjunction(T... lhs)
public ImplicationNamer<T,C> atMost(int i,
                                    T... things)
                             throws ContradictionException
i - the maximum number of domain object to set to true.things - the domain objects.
ContradictionException
public void clause(C name,
                   T... things)
            throws ContradictionException
name - things - 
ContradictionException
public void iff(C name,
                T thing,
                T... otherThings)
         throws ContradictionException
thing - a domain objectthings - other domain objects.
ContradictionException
public void and(C name,
                T thing,
                T... otherThings)
         throws ContradictionException
name - thing - otherThings - 
ContradictionException
public void or(C name,
               T thing,
               T... otherThings)
        throws ContradictionException
name - thing - otherThings - 
ContradictionException
public void ifThenElse(C name,
                       T thing,
                       T conditionThing,
                       T thenThing,
                       T elseThing)
                throws ContradictionException
name - thing - otherThings - 
ContradictionExceptionpublic void setObjectiveFunction(WeightedObject<T>... wobj)
wobj - a set of weighted objects (pairs of domain object and
            BigInteger).
public void addToObjectiveFunction(T thing,
                                   int weight)
thing - weight - 
public void addToObjectiveFunction(T thing,
                                   java.math.BigInteger weight)
thing - weight - public void stopSolver()
public void stopExplanation()
public void discard(IVec<T> things)
             throws ContradictionException
ContradictionExceptionpublic java.lang.String getObjectiveFunction()
public int getNumberOfVariables()
public int getNumberOfConstraints()
  | 
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||