View Javadoc

1   /*
2    * SAT4J: a SATisfiability library for Java Copyright (C) 2004-2006 Daniel Le Berre
3    * 
4    * Based on the original minisat specification from:
5    * 
6    * An extensible SAT solver. Niklas E?n and Niklas S?rensson. Proceedings of the
7    * Sixth International Conference on Theory and Applications of Satisfiability
8    * Testing, LNCS 2919, pp 502-518, 2003.
9    * 
10   * This library is free software; you can redistribute it and/or modify it under
11   * the terms of the GNU Lesser General Public License as published by the Free
12   * Software Foundation; either version 2.1 of the License, or (at your option)
13   * any later version.
14   * 
15   * This library is distributed in the hope that it will be useful, but WITHOUT
16   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
18   * details.
19   * 
20   * You should have received a copy of the GNU Lesser General Public License
21   * along with this library; if not, write to the Free Software Foundation, Inc.,
22   * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
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       * (non-Javadoc)
42       * 
43       * @see org.sat4j.Lanceur#configureSolver(java.lang.String[])
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       * (non-Javadoc)
54       * 
55       * @see org.sat4j.Lanceur#createReader(org.sat4j.specs.ISolver)
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"); //$NON-NLS-1$
81      }
82  
83      @Override
84      protected String getInstanceName(String[] args) {
85          assert args.length == 1;
86          return args[0];
87      }
88  
89  }