Ejemplo n.º 1
0
    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();
    }
Ejemplo n.º 2
0
        //[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);
        }