Skip to content

Commit 5efeab0

Browse files
committed
cleanup cp-sat default search configurations
1 parent 7b96f04 commit 5efeab0

3 files changed

Lines changed: 16 additions & 29 deletions

File tree

ortools/flatzinc/cp_model_fz_solver.cc

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1685,20 +1685,14 @@ void SolveFzWithCpModelProto(const fz::Model& fz_model,
16851685
m.parameters.set_search_branching(SatParameters::AUTOMATIC_SEARCH);
16861686
if (!p.search_all_solutions && p.ortools_mode) {
16871687
m.parameters.set_interleave_search(true);
1688-
if (fz_model.objective() != nullptr) {
1689-
m.parameters.add_subsolvers("default_lp");
1690-
m.parameters.add_subsolvers(
1691-
m.proto.search_strategy().empty() ? "quick_restart" : "fixed");
1692-
m.parameters.add_subsolvers("core_or_no_lp"),
1693-
m.parameters.add_subsolvers("max_lp");
1694-
1695-
} else {
1696-
m.parameters.add_subsolvers("default_lp");
1697-
m.parameters.add_subsolvers(
1698-
m.proto.search_strategy().empty() ? "probing" : "fixed");
1699-
m.parameters.add_subsolvers("no_lp");
1700-
m.parameters.add_subsolvers("max_lp");
1701-
m.parameters.add_subsolvers("quick_restart");
1688+
m.parameters.set_use_rins_lns(false);
1689+
m.parameters.add_subsolvers("default_lp");
1690+
m.parameters.add_subsolvers("max_lp");
1691+
m.parameters.add_subsolvers("quick_restart");
1692+
m.parameters.add_subsolvers("core_or_no_lp"); // no_lp if no objective.
1693+
m.parameters.set_num_violation_ls(1); // Off if no objective.
1694+
if (!m.proto.search_strategy().empty()) {
1695+
m.parameters.add_subsolvers("fixed");
17021696
}
17031697
}
17041698
} else if (num_workers > 1 && num_workers < 8 && p.ortools_mode) {

ortools/sat/cp_model_solver.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2141,7 +2141,7 @@ void SolveCpModelParallel(SharedClasses* shared, Model* global_model) {
21412141
}
21422142
num_thread_available = std::max(num_thread_available, 0);
21432143
// If we are in interleaved mode with one worker, num_thread_available is
2144-
// always negative. We force it to 1 so that we at least have a
2144+
// always zero. We force it to 1 so that we at least have a
21452145
// feasibility_jump subsolver.
21462146
if (params.interleave_search() && params.num_workers() == 1) {
21472147
// TODO(user): the 1 should be a parameter.

ortools/sat/sat_runner.cc

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -171,23 +171,16 @@ void LogInPbCompetitionFormat(int num_variables, bool has_objective,
171171
final_response_callback);
172172
}
173173

174-
void SetInterleavedWorkers(bool has_objective, SatParameters* parameters) {
174+
void SetInterleavedWorkers(SatParameters* parameters) {
175175
// Enable interleaved workers when num_workers is 1.
176176
if (parameters->num_workers() == 1) {
177177
parameters->set_interleave_search(true);
178178
parameters->set_use_rins_lns(false);
179-
if (has_objective) {
180-
parameters->add_subsolvers("default_lp");
181-
parameters->add_subsolvers("quick_restart");
182-
parameters->add_subsolvers("core_or_no_lp");
183-
parameters->add_subsolvers("max_lp");
184-
parameters->set_num_violation_ls(1);
185-
} else {
186-
parameters->add_subsolvers("default_lp");
187-
parameters->add_subsolvers("no_lp");
188-
parameters->add_subsolvers("max_lp");
189-
parameters->add_subsolvers("quick_restart");
190-
}
179+
parameters->add_subsolvers("default_lp");
180+
parameters->add_subsolvers("max_lp");
181+
parameters->add_subsolvers("quick_restart");
182+
parameters->add_subsolvers("core_or_no_lp"); // no_lp if no objective.
183+
parameters->set_num_violation_ls(1); // Off if no objective.
191184
}
192185
}
193186

@@ -227,7 +220,7 @@ bool LoadProblem(const std::string& filename, absl::string_view hint_file,
227220
parameters);
228221
}
229222
if (absl::GetFlag(FLAGS_force_interleave_search)) {
230-
SetInterleavedWorkers(cp_model->has_objective(), parameters);
223+
SetInterleavedWorkers(parameters);
231224
}
232225
} else if (absl::EndsWith(filename, ".cnf") ||
233226
absl::EndsWith(filename, ".cnf.xz") ||

0 commit comments

Comments
 (0)