Package org.jacop.satwrapper
Class SatTranslation
- java.lang.Object
-
- org.jacop.satwrapper.SatTranslation
-
public class SatTranslation extends java.lang.ObjectSatTranslation defines SAT clauses for typical logical constraints- Version:
- 4.8
-
-
Field Summary
Fields Modifier and Type Field Description (package private) SatWrapperclausesbooleandebug(package private) longnumberClauses(package private) Storestore
-
Constructor Summary
Constructors Constructor Description SatTranslation(Store store)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) java.lang.StringclauseToString(int[] clause)voidgenerate_allZero_reif(IntVar[] as, IntVar c)voidgenerate_and(IntVar[] a, IntVar c)voidgenerate_clause(IntVar[] a1, IntVar[] a2)voidgenerate_clause_reif(IntVar[] a, IntVar[] b, IntVar r)voidgenerate_eq(IntVar a, IntVar b)voidgenerate_eq_reif(IntVar a, IntVar b, IntVar c)voidgenerate_implication(IntVar a, IntVar b)voidgenerate_implication_reif(IntVar a, IntVar b, IntVar c)voidgenerate_le(IntVar a, IntVar b)voidgenerate_le_reif(IntVar a, IntVar b, IntVar c)voidgenerate_lt(IntVar a, IntVar b)voidgenerate_lt_reif(IntVar a, IntVar b, IntVar c)voidgenerate_neq_reif(IntVar a, IntVar b, IntVar c)voidgenerate_not(IntVar a, IntVar b)voidgenerate_or(IntVar[] a, IntVar c)voidgenerate_xor(IntVar[] a, IntVar c)To represent XOR function in CNF one needs to have 2^{n-1} clauses, where n is the size of your XOR function :( Our method cuts list to 3 or 2 element parts, generates XOR for them and composesd them back to the original XOR.voidgenerate_xor(IntVar a, IntVar b, IntVar c)voidgenerate_xor(IntVar a, IntVar b, IntVar c, IntVar d)voidimpose()longnumberClauses()
-
-
-
Field Detail
-
debug
public boolean debug
-
clauses
SatWrapper clauses
-
store
Store store
-
numberClauses
long numberClauses
-
-
Constructor Detail
-
SatTranslation
public SatTranslation(Store store)
-
-
Method Detail
-
generate_xor
public void generate_xor(IntVar[] a, IntVar c)
To represent XOR function in CNF one needs to have 2^{n-1} clauses, where n is the size of your XOR function :( Our method cuts list to 3 or 2 element parts, generates XOR for them and composesd them back to the original XOR. Further improvements possible, if using 4-7 decompositions.- Parameters:
a- parameters to be xor'edc- result
-
impose
public void impose()
-
numberClauses
public long numberClauses()
-
clauseToString
java.lang.String clauseToString(int[] clause)
-
-