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)); }
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)); }