The CSP Object Model is a CP Modelling API, compatible with the XCSP 2.0 language.
Example modelling the n-queens problem :
- final cspom.Problem problem = new cspom.Problem("Queens");
- final Domain domain = new IntervalDomain("", 0, size - 1);
- for (int i = 0; i < size; i++) {
- problem.addVariable(new cspom.variable.Variable("Q" + i, domain));
- }
- final Predicate predicate = new Predicate("", "int X int Y int diff",
- "X!=Y && abs(X-Y)!=diff");
- for (int i = 0; i < size; i++) {
- for (int j = i + 1; j < size; j++) {
- problem.addConstraint(new PredicateConstraint("C" + i + j, "Q"
- + i + " Q" + j + " " + diff, predicate, problem
- .getVariables().get(i), problem.getVariables().get(j)));
- }
- }
Or loading from XCSP format :
- final cspom.Problem problem = new CspOM.load("queens-120.xml");
CSP for Java