1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 package org.sat4j.minisat.core;
31
32 import org.junit.Test;
33 import org.sat4j.core.VecInt;
34 import org.sat4j.minisat.SolverFactory;
35 import org.sat4j.opt.MaxSatDecorator;
36 import org.sat4j.specs.ContradictionException;
37 import org.sat4j.specs.ISolver;
38 import org.sat4j.specs.TimeoutException;
39 import org.sat4j.tools.ModelIterator;
40 import org.sat4j.tools.OptToSatAdapter;
41
42 public class BugFatih {
43
44 @Test
45 public void testBugReport() throws ContradictionException, TimeoutException {
46 ISolver theSolver = SolverFactory.newDefault();
47 ModelIterator solver = new ModelIterator(new OptToSatAdapter(
48 new MaxSatDecorator(SolverFactory.newDefault())));
49 System.out.println("Taille de voc : " + solver.nVars());
50 solver.newVar(3);
51 solver.setExpectedNumberOfClauses(3);
52 solver.addClause(new VecInt(new int[] { 1, 2 }));
53 solver.addClause(new VecInt(new int[] { 1, 3 }));
54 solver.addClause(new VecInt(new int[] { 2, 3 }));
55 System.out.println("Taille de voc : " + solver.nVars());
56 if (solver.isSatisfiable()) {
57 System.out.println("Taille du modèle : " + solver.model().length);
58 for (int i = 1; i <= solver.model().length; i++) {
59 System.out.print(solver.model(i) + " ");
60 }
61 System.out.println();
62 }
63
64 solver.reset();
65 System.out.println("Taille de voc : " + solver.nVars());
66 solver.newVar(2);
67 solver.setExpectedNumberOfClauses(2);
68 solver.addClause(new VecInt(new int[] { 1, 2 }));
69 solver.addClause(new VecInt(new int[] { 2 }));
70 System.out.println("Taille de voc : " + solver.nVars());
71 if (solver.isSatisfiable()) {
72 System.out.println("Taille du modèle : " + solver.model().length);
73 for (int i = 1; i <= solver.model().length; i++) {
74 System.out.print(solver.model(i) + " ");
75 }
76 System.out.println();
77 }
78 System.out.println("The End.");
79
80 }
81 }