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 package org.sat4j;
26
27 import org.sat4j.minisat.SolverFactory;
28 import org.sat4j.reader.CSPExtSupportReader;
29 import org.sat4j.reader.Reader;
30 import org.sat4j.reader.XMLCSPReader;
31 import org.sat4j.specs.ISolver;
32
33 public class CSPLauncher extends AbstractLauncher {
34
35
36
37
38 private static final long serialVersionUID = 1L;
39
40
41
42
43
44
45 @Override
46 protected ISolver configureSolver(String[] args) {
47 ISolver asolver = SolverFactory.newMiniSAT2Heap();
48 log(asolver.toString(COMMENT_PREFIX));
49 return asolver;
50 }
51
52
53
54
55
56
57 @Override
58 protected Reader createReader(final ISolver solver, final String problemname) {
59 Reader reader;
60 if (problemname.endsWith(".txt")) {
61 reader = new CSPExtSupportReader(solver);
62 } else {
63 assert problemname.endsWith(".xml");
64 reader = new XMLCSPReader(solver);
65 }
66 if (System.getProperty("verbose") != null) {
67 log("verbose mode on");
68 reader.setVerbosity(true);
69 }
70 return reader;
71 }
72
73 public static void main(String[] args) {
74 AbstractLauncher lanceur = new CSPLauncher();
75 lanceur.run(args);
76 }
77
78 @Override
79 protected void usage() {
80 System.out.println("java -jar sat4jCSP instance-name");
81 }
82
83 @Override
84 protected String getInstanceName(String[] args) {
85 assert args.length == 1;
86 return args[0];
87 }
88
89 }