static void CpModelTest() { Solver solver = new Solver("TestConstraint"); IntVar x = solver.MakeIntVar(0, 10, "x"); IntVar y = solver.MakeIntVar(0, 10, "y"); solver.Add(x + y == 5); CpModel model = solver.ExportModel(); Console.WriteLine(model); Solver copy = new Solver("loader"); copy.LoadModel(model); CpModelLoader loader = copy.ModelLoader(); IntVar xc = loader.IntegerExpression(0).Var(); IntVar yc = loader.IntegerExpression(1).Var(); DecisionBuilder db = copy.MakePhase(new IntVar[] { xc, yc }, Solver.CHOOSE_FIRST_UNBOUND, Solver.ASSIGN_MIN_VALUE); copy.NewSearch(db); while (copy.NextSolution()) { Console.WriteLine("xc = " + xc.Value() + ", yx = " + yc.Value()); } copy.EndSearch(); }
//[Test] //public void Tests() //{ // using (var s = new Solver("Test")) // { // s.ExportModel(@"G:\Source\Kingdom Software\Kingdom.ConstraintSolvers\Working\src\Kingdom.Constraints.Sample.Fixturing.Tests\ExportedSolverModel.gz"); // } //} private static IntVar GetIntVarFromIntExpr(CpModelLoader loader, string name) { var e = loader.IntegerExpressionByName(name); Assert.That(e, Is.Not.Null); var v = e.Var(); Assert.That(v.Name(), Is.EqualTo(name)); return(v); }