Ejemplo n.º 1
0
    private static void BasicLns()
    {
        Console.WriteLine("BasicLns");
        Solver solver = new Solver("BasicLns");

        IntVar[]                   vars        = solver.MakeIntVarArray(4, 0, 4, "vars");
        IntVar                     sum_var     = vars.Sum().Var();
        OptimizeVar                obj         = sum_var.Minimize(1);
        DecisionBuilder            db          = solver.MakePhase(vars, Solver.CHOOSE_FIRST_UNBOUND, Solver.ASSIGN_MAX_VALUE);
        OneVarLns                  one_var_lns = new OneVarLns(vars);
        LocalSearchPhaseParameters ls_params   = solver.MakeLocalSearchPhaseParameters(sum_var, one_var_lns, db);
        DecisionBuilder            ls          = solver.MakeLocalSearchPhase(vars, db, ls_params);
        SolutionCollector          collector   = solver.MakeLastSolutionCollector();

        collector.AddObjective(sum_var);
        SearchMonitor log = solver.MakeSearchLog(1000, obj);

        solver.Solve(ls, collector, obj, log);
        Console.WriteLine("Objective value = {0}", collector.ObjectiveValue(0));
    }
Ejemplo n.º 2
0
 private static void BasicLns()
 {
   Console.WriteLine("BasicLns");
   Solver solver = new Solver("BasicLns");
   IntVar[] vars = solver.MakeIntVarArray(4, 0, 4, "vars");
   IntVar sum_var = vars.Sum().Var();
   OptimizeVar obj = sum_var.Minimize(1);
   DecisionBuilder db = solver.MakePhase(vars,
                                         Solver.CHOOSE_FIRST_UNBOUND,
                                         Solver.ASSIGN_MAX_VALUE);
   OneVarLns one_var_lns = new OneVarLns(vars);
   LocalSearchPhaseParameters ls_params =
       solver.MakeLocalSearchPhaseParameters(one_var_lns, db);
   DecisionBuilder ls = solver.MakeLocalSearchPhase(vars, db, ls_params);
   SolutionCollector collector = solver.MakeLastSolutionCollector();
   collector.AddObjective(sum_var);
   SearchMonitor log = solver.MakeSearchLog(1000, obj);
   solver.Solve(ls, collector, obj, log);
   Console.WriteLine("Objective value = {0}", collector.ObjectiveValue(0));
 }