From: Zangitu M. <MZa...@ik...> - 2005-04-04 18:01:57
|
Hello, I"m now using choco to do some simple check. Here is my program:=20 import choco.Problem; import choco.integer.IntVar; import choco.Constraint; public class test { public static void main(String[] args) { Problem myPb =3D new Problem(); IntVar a =3D myPb.makeEnumIntVar("A", 0, 1); IntVar b =3D myPb.makeEnumIntVar("B", 0, 1); Constraint c1 =3D myPb.eq(a, 0); Constraint c2 =3D myPb.eq(b, 1); Constraint c3 =3D myPb.ifThen( c1, c2 ); // if a =3D=3D 0 Then b =3D 1 myPb.post( c3 ); myPb.solve(); System.out.println("---------------------------------"); System.out.println(a + " =3D " + a.getValue()); System.out.println(b + " =3D " + b.getValue()); System.out.println("---------------------------------"); } } and it runs but when I change the Problem to PalmProblem (because I want use later the Explanation concept) : import choco.Problem; import choco.integer.IntVar; import choco.Constraint; import choco.palm.PalmProblem; import choco.palm.integer.PalmIntVar; import choco.palm.integer.PalmIntDomain; import choco.palm.explain.Explanation; import java.util.Set; import java.util.Iterator; public class test { public static void main(String[] args) { // Problem myPb =3D new Problem(); Problem myPb =3D new PalmProblem(); IntVar a =3D myPb.makeEnumIntVar("A", 0, 1); IntVar b =3D myPb.makeEnumIntVar("B", 0, 1); Constraint c1 =3D myPb.eq(a, 0); Constraint c2 =3D myPb.eq(b, 1); Constraint c3 =3D myPb.ifThen( c1, c2 ); // if a =3D=3D 0 Then b =3D 1 myPb.post( c3 ); myPb.solve(); System.out.println("---------------------------------"); System.out.println(a + " =3D " + a.getValue()); System.out.println(b + " =3D " + b.getValue()); System.out.println("---------------------------------"); Explanation expl =3D ((PalmProblem)myPb).makeExplanation(); ((PalmIntVar)b).self_explain(PalmIntDomain.VAL, 0, expl); System.out.println("Why " + b + " !=3D 0"); Set set =3D expl.toSet(); Iterator i =3D set.iterator(); while (i.hasNext())=20 System.out.println(i.next()); =20 System.out.println("---------------------------------"); } } it goes wrong : ** JPaLM : Constraint Programming with Explanations ** JPaLM v0.9b : (July, 2004), ............................ Exception in thread "main" java.lang.NullPointerException at choco.palm.PalmProblem.post(Unknown Source) at test.main(test.java:24) So, I call you all for help Thank you, Martin |