or-tools 0.18.0 → 0.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/ext/or-tools/constraint.cpp +566 -3
- data/ext/or-tools/routing.cpp +212 -25
- data/lib/or_tools/routing_model.rb +4 -0
- data/lib/or_tools/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b4b9e112aef49d6377cfb072df599cc64adb317169212e9811ba601946cda981
|
|
4
|
+
data.tar.gz: 437a96678ed5b1d0b83ae2a8535a9d7b2165ebb28f1b8bf3bac62e3495e65ec4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6cd5ae717f0d0a9f01b3d44e52d311b0b93c82369c48a9dee7b71ca83dbbd094f48b29033d02ec319f4e69233a4366b9b6bd1025670a08b58514d1d068a0b261
|
|
7
|
+
data.tar.gz: 4806b7bff7d478eda84bb8b5169f683e7df7c08dc0d146d5b0a7bddf52a1c8dd164f4ee0338a5e01841b7057303c20ecb82cb8d4c01e309ea7ebc3478ef305c5
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## 0.18.1 (2026-10-02)
|
|
2
|
+
|
|
3
|
+
- Added support for breaks for routing
|
|
4
|
+
- Added support for more constraints for routing
|
|
5
|
+
- Added more methods to `ConstraintSolverParameters`
|
|
6
|
+
- Added more methods to `RoutingModelParameters`
|
|
7
|
+
- Added more methods to `RoutingSearchParameters`
|
|
8
|
+
- Added more methods to `SatParameters`
|
|
9
|
+
|
|
1
10
|
## 0.18.0 (2026-07-06)
|
|
2
11
|
|
|
3
12
|
- Added support for releasing GVL
|
data/ext/or-tools/constraint.cpp
CHANGED
|
@@ -29,6 +29,7 @@ using operations_research::sat::TableConstraint;
|
|
|
29
29
|
|
|
30
30
|
using Rice::Array;
|
|
31
31
|
using Rice::Class;
|
|
32
|
+
using Rice::Hash;
|
|
32
33
|
using Rice::Object;
|
|
33
34
|
using Rice::String;
|
|
34
35
|
using Rice::Symbol;
|
|
@@ -54,8 +55,8 @@ namespace Rice::detail {
|
|
|
54
55
|
LinearExpr convert(VALUE v) {
|
|
55
56
|
LinearExpr expr;
|
|
56
57
|
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
Object utils = Rice::define_module("ORTools").const_get("Utils");
|
|
59
|
+
Hash coeffs = utils.call("index_expression", Object(v));
|
|
59
60
|
|
|
60
61
|
for (const auto& entry : coeffs) {
|
|
61
62
|
Object var = entry.key;
|
|
@@ -136,18 +137,580 @@ void init_constraint(Rice::Module& m) {
|
|
|
136
137
|
|
|
137
138
|
Rice::define_class_under<SatParameters>(m, "SatParameters")
|
|
138
139
|
.define_constructor(Rice::Constructor<SatParameters>())
|
|
140
|
+
.define_method("absolute_gap_limit", &SatParameters::absolute_gap_limit)
|
|
141
|
+
.define_method("absolute_gap_limit=", &SatParameters::set_absolute_gap_limit)
|
|
142
|
+
.define_method("add_cg_cuts", &SatParameters::add_cg_cuts)
|
|
143
|
+
.define_method("add_cg_cuts=", &SatParameters::set_add_cg_cuts)
|
|
144
|
+
.define_method("add_clique_cuts", &SatParameters::add_clique_cuts)
|
|
145
|
+
.define_method("add_clique_cuts=", &SatParameters::set_add_clique_cuts)
|
|
146
|
+
.define_method("add_lin_max_cuts", &SatParameters::add_lin_max_cuts)
|
|
147
|
+
.define_method("add_lin_max_cuts=", &SatParameters::set_add_lin_max_cuts)
|
|
148
|
+
.define_method("add_lp_constraints_lazily", &SatParameters::add_lp_constraints_lazily)
|
|
149
|
+
.define_method("add_lp_constraints_lazily=", &SatParameters::set_add_lp_constraints_lazily)
|
|
150
|
+
.define_method("add_mir_cuts", &SatParameters::add_mir_cuts)
|
|
151
|
+
.define_method("add_mir_cuts=", &SatParameters::set_add_mir_cuts)
|
|
152
|
+
.define_method("add_objective_cut", &SatParameters::add_objective_cut)
|
|
153
|
+
.define_method("add_objective_cut=", &SatParameters::set_add_objective_cut)
|
|
154
|
+
.define_method("add_rlt_cuts", &SatParameters::add_rlt_cuts)
|
|
155
|
+
.define_method("add_rlt_cuts=", &SatParameters::set_add_rlt_cuts)
|
|
156
|
+
.define_method("add_zero_half_cuts", &SatParameters::add_zero_half_cuts)
|
|
157
|
+
.define_method("add_zero_half_cuts=", &SatParameters::set_add_zero_half_cuts)
|
|
158
|
+
.define_method("also_bump_variables_in_conflict_reasons", &SatParameters::also_bump_variables_in_conflict_reasons)
|
|
159
|
+
.define_method("also_bump_variables_in_conflict_reasons=", &SatParameters::set_also_bump_variables_in_conflict_reasons)
|
|
160
|
+
.define_method("alternative_pool_size", &SatParameters::alternative_pool_size)
|
|
161
|
+
.define_method("alternative_pool_size=", &SatParameters::set_alternative_pool_size)
|
|
162
|
+
.define_method("at_most_one_max_expansion_size", &SatParameters::at_most_one_max_expansion_size)
|
|
163
|
+
.define_method("at_most_one_max_expansion_size=", &SatParameters::set_at_most_one_max_expansion_size)
|
|
164
|
+
.define_method("auto_detect_greater_than_at_least_one_of", &SatParameters::auto_detect_greater_than_at_least_one_of)
|
|
165
|
+
.define_method("auto_detect_greater_than_at_least_one_of=", &SatParameters::set_auto_detect_greater_than_at_least_one_of)
|
|
166
|
+
.define_method("binary_search_num_conflicts", &SatParameters::binary_search_num_conflicts)
|
|
167
|
+
.define_method("binary_search_num_conflicts=", &SatParameters::set_binary_search_num_conflicts)
|
|
168
|
+
.define_method("blocking_restart_multiplier", &SatParameters::blocking_restart_multiplier)
|
|
169
|
+
.define_method("blocking_restart_multiplier=", &SatParameters::set_blocking_restart_multiplier)
|
|
170
|
+
.define_method("blocking_restart_window_size", &SatParameters::blocking_restart_window_size)
|
|
171
|
+
.define_method("blocking_restart_window_size=", &SatParameters::set_blocking_restart_window_size)
|
|
172
|
+
.define_method("boolean_encoding_level", &SatParameters::boolean_encoding_level)
|
|
173
|
+
.define_method("boolean_encoding_level=", &SatParameters::set_boolean_encoding_level)
|
|
174
|
+
.define_method("catch_sigint_signal", &SatParameters::catch_sigint_signal)
|
|
175
|
+
.define_method("catch_sigint_signal=", &SatParameters::set_catch_sigint_signal)
|
|
176
|
+
.define_method("check_drat_proof", &SatParameters::check_drat_proof)
|
|
177
|
+
.define_method("check_drat_proof=", &SatParameters::set_check_drat_proof)
|
|
178
|
+
.define_method("check_lrat_proof", &SatParameters::check_lrat_proof)
|
|
179
|
+
.define_method("check_lrat_proof=", &SatParameters::set_check_lrat_proof)
|
|
180
|
+
.define_method("check_merged_lrat_proof", &SatParameters::check_merged_lrat_proof)
|
|
181
|
+
.define_method("check_merged_lrat_proof=", &SatParameters::set_check_merged_lrat_proof)
|
|
182
|
+
.define_method("chronological_backtrack_min_conflicts", &SatParameters::chronological_backtrack_min_conflicts)
|
|
183
|
+
.define_method("chronological_backtrack_min_conflicts=", &SatParameters::set_chronological_backtrack_min_conflicts)
|
|
184
|
+
.define_method("clause_activity_decay", &SatParameters::clause_activity_decay)
|
|
185
|
+
.define_method("clause_activity_decay=", &SatParameters::set_clause_activity_decay)
|
|
186
|
+
.define_method("clause_cleanup_lbd_bound", &SatParameters::clause_cleanup_lbd_bound)
|
|
187
|
+
.define_method("clause_cleanup_lbd_bound=", &SatParameters::set_clause_cleanup_lbd_bound)
|
|
188
|
+
.define_method("clause_cleanup_lbd_tier1", &SatParameters::clause_cleanup_lbd_tier1)
|
|
189
|
+
.define_method("clause_cleanup_lbd_tier1=", &SatParameters::set_clause_cleanup_lbd_tier1)
|
|
190
|
+
.define_method("clause_cleanup_lbd_tier2", &SatParameters::clause_cleanup_lbd_tier2)
|
|
191
|
+
.define_method("clause_cleanup_lbd_tier2=", &SatParameters::set_clause_cleanup_lbd_tier2)
|
|
192
|
+
.define_method("clause_cleanup_period", &SatParameters::clause_cleanup_period)
|
|
193
|
+
.define_method("clause_cleanup_period=", &SatParameters::set_clause_cleanup_period)
|
|
194
|
+
.define_method("clause_cleanup_period_increment", &SatParameters::clause_cleanup_period_increment)
|
|
195
|
+
.define_method("clause_cleanup_period_increment=", &SatParameters::set_clause_cleanup_period_increment)
|
|
196
|
+
.define_method("clause_cleanup_ratio", &SatParameters::clause_cleanup_ratio)
|
|
197
|
+
.define_method("clause_cleanup_ratio=", &SatParameters::set_clause_cleanup_ratio)
|
|
198
|
+
.define_method("clause_cleanup_target", &SatParameters::clause_cleanup_target)
|
|
199
|
+
.define_method("clause_cleanup_target=", &SatParameters::set_clause_cleanup_target)
|
|
200
|
+
.define_method("convert_intervals", &SatParameters::convert_intervals)
|
|
201
|
+
.define_method("convert_intervals=", &SatParameters::set_convert_intervals)
|
|
202
|
+
.define_method("core_minimization_level", &SatParameters::core_minimization_level)
|
|
203
|
+
.define_method("core_minimization_level=", &SatParameters::set_core_minimization_level)
|
|
204
|
+
.define_method("count_assumption_levels_in_lbd", &SatParameters::count_assumption_levels_in_lbd)
|
|
205
|
+
.define_method("count_assumption_levels_in_lbd=", &SatParameters::set_count_assumption_levels_in_lbd)
|
|
206
|
+
.define_method("cover_optimization", &SatParameters::cover_optimization)
|
|
207
|
+
.define_method("cover_optimization=", &SatParameters::set_cover_optimization)
|
|
139
208
|
.define_method("cp_model_presolve", &SatParameters::cp_model_presolve)
|
|
140
209
|
.define_method("cp_model_presolve=", &SatParameters::set_cp_model_presolve)
|
|
210
|
+
.define_method("cp_model_probing_level", &SatParameters::cp_model_probing_level)
|
|
211
|
+
.define_method("cp_model_probing_level=", &SatParameters::set_cp_model_probing_level)
|
|
212
|
+
.define_method("cp_model_use_sat_presolve", &SatParameters::cp_model_use_sat_presolve)
|
|
213
|
+
.define_method("cp_model_use_sat_presolve=", &SatParameters::set_cp_model_use_sat_presolve)
|
|
214
|
+
.define_method("create_1uip_boolean_during_icr", &SatParameters::create_1uip_boolean_during_icr)
|
|
215
|
+
.define_method("create_1uip_boolean_during_icr=", &SatParameters::set_create_1uip_boolean_during_icr)
|
|
216
|
+
.define_method("cut_active_count_decay", &SatParameters::cut_active_count_decay)
|
|
217
|
+
.define_method("cut_active_count_decay=", &SatParameters::set_cut_active_count_decay)
|
|
218
|
+
.define_method("cut_cleanup_target", &SatParameters::cut_cleanup_target)
|
|
219
|
+
.define_method("cut_cleanup_target=", &SatParameters::set_cut_cleanup_target)
|
|
220
|
+
.define_method("cut_level", &SatParameters::cut_level)
|
|
221
|
+
.define_method("cut_level=", &SatParameters::set_cut_level)
|
|
222
|
+
.define_method("cut_max_active_count_value", &SatParameters::cut_max_active_count_value)
|
|
223
|
+
.define_method("cut_max_active_count_value=", &SatParameters::set_cut_max_active_count_value)
|
|
224
|
+
.define_method("debug_crash_if_lrat_check_fails", &SatParameters::debug_crash_if_lrat_check_fails)
|
|
225
|
+
.define_method("debug_crash_if_lrat_check_fails=", &SatParameters::set_debug_crash_if_lrat_check_fails)
|
|
226
|
+
.define_method("debug_crash_if_presolve_breaks_hint", &SatParameters::debug_crash_if_presolve_breaks_hint)
|
|
227
|
+
.define_method("debug_crash_if_presolve_breaks_hint=", &SatParameters::set_debug_crash_if_presolve_breaks_hint)
|
|
228
|
+
.define_method("debug_crash_on_bad_hint", &SatParameters::debug_crash_on_bad_hint)
|
|
229
|
+
.define_method("debug_crash_on_bad_hint=", &SatParameters::set_debug_crash_on_bad_hint)
|
|
230
|
+
.define_method("debug_max_num_presolve_operations", &SatParameters::debug_max_num_presolve_operations)
|
|
231
|
+
.define_method("debug_max_num_presolve_operations=", &SatParameters::set_debug_max_num_presolve_operations)
|
|
232
|
+
.define_method("debug_postsolve_with_full_solver", &SatParameters::debug_postsolve_with_full_solver)
|
|
233
|
+
.define_method("debug_postsolve_with_full_solver=", &SatParameters::set_debug_postsolve_with_full_solver)
|
|
234
|
+
.define_method("decision_subsumption_during_conflict_analysis", &SatParameters::decision_subsumption_during_conflict_analysis)
|
|
235
|
+
.define_method("decision_subsumption_during_conflict_analysis=", &SatParameters::set_decision_subsumption_during_conflict_analysis)
|
|
236
|
+
.define_method("default_restart_algorithms", &SatParameters::default_restart_algorithms)
|
|
237
|
+
// .define_method("default_restart_algorithms=", &SatParameters::set_default_restart_algorithms)
|
|
238
|
+
.define_method("detect_linearized_product", &SatParameters::detect_linearized_product)
|
|
239
|
+
.define_method("detect_linearized_product=", &SatParameters::set_detect_linearized_product)
|
|
240
|
+
.define_method("detect_table_with_cost", &SatParameters::detect_table_with_cost)
|
|
241
|
+
.define_method("detect_table_with_cost=", &SatParameters::set_detect_table_with_cost)
|
|
242
|
+
.define_method("disable_constraint_expansion", &SatParameters::disable_constraint_expansion)
|
|
243
|
+
.define_method("disable_constraint_expansion=", &SatParameters::set_disable_constraint_expansion)
|
|
244
|
+
.define_method("diversify_lns_params", &SatParameters::diversify_lns_params)
|
|
245
|
+
.define_method("diversify_lns_params=", &SatParameters::set_diversify_lns_params)
|
|
246
|
+
.define_method("eagerly_subsume_last_n_conflicts", &SatParameters::eagerly_subsume_last_n_conflicts)
|
|
247
|
+
.define_method("eagerly_subsume_last_n_conflicts=", &SatParameters::set_eagerly_subsume_last_n_conflicts)
|
|
248
|
+
.define_method("encode_complex_linear_constraint_with_integer", &SatParameters::encode_complex_linear_constraint_with_integer)
|
|
249
|
+
.define_method("encode_complex_linear_constraint_with_integer=", &SatParameters::set_encode_complex_linear_constraint_with_integer)
|
|
250
|
+
.define_method("encode_cumulative_as_reservoir", &SatParameters::encode_cumulative_as_reservoir)
|
|
251
|
+
.define_method("encode_cumulative_as_reservoir=", &SatParameters::set_encode_cumulative_as_reservoir)
|
|
141
252
|
.define_method("enumerate_all_solutions", &SatParameters::enumerate_all_solutions)
|
|
142
253
|
.define_method("enumerate_all_solutions=", &SatParameters::set_enumerate_all_solutions)
|
|
254
|
+
.define_method("expand_alldiff_constraints", &SatParameters::expand_alldiff_constraints)
|
|
255
|
+
.define_method("expand_alldiff_constraints=", &SatParameters::set_expand_alldiff_constraints)
|
|
256
|
+
.define_method("expand_reservoir_constraints", &SatParameters::expand_reservoir_constraints)
|
|
257
|
+
.define_method("expand_reservoir_constraints=", &SatParameters::set_expand_reservoir_constraints)
|
|
258
|
+
.define_method("expand_reservoir_using_circuit", &SatParameters::expand_reservoir_using_circuit)
|
|
259
|
+
.define_method("expand_reservoir_using_circuit=", &SatParameters::set_expand_reservoir_using_circuit)
|
|
260
|
+
.define_method("exploit_all_lp_solution", &SatParameters::exploit_all_lp_solution)
|
|
261
|
+
.define_method("exploit_all_lp_solution=", &SatParameters::set_exploit_all_lp_solution)
|
|
262
|
+
.define_method("exploit_all_precedences", &SatParameters::exploit_all_precedences)
|
|
263
|
+
.define_method("exploit_all_precedences=", &SatParameters::set_exploit_all_precedences)
|
|
264
|
+
.define_method("exploit_best_solution", &SatParameters::exploit_best_solution)
|
|
265
|
+
.define_method("exploit_best_solution=", &SatParameters::set_exploit_best_solution)
|
|
266
|
+
.define_method("exploit_integer_lp_solution", &SatParameters::exploit_integer_lp_solution)
|
|
267
|
+
.define_method("exploit_integer_lp_solution=", &SatParameters::set_exploit_integer_lp_solution)
|
|
268
|
+
.define_method("exploit_objective", &SatParameters::exploit_objective)
|
|
269
|
+
.define_method("exploit_objective=", &SatParameters::set_exploit_objective)
|
|
270
|
+
.define_method("exploit_relaxation_solution", &SatParameters::exploit_relaxation_solution)
|
|
271
|
+
.define_method("exploit_relaxation_solution=", &SatParameters::set_exploit_relaxation_solution)
|
|
272
|
+
.define_method("extra_subsumption_during_conflict_analysis", &SatParameters::extra_subsumption_during_conflict_analysis)
|
|
273
|
+
.define_method("extra_subsumption_during_conflict_analysis=", &SatParameters::set_extra_subsumption_during_conflict_analysis)
|
|
274
|
+
.define_method("feasibility_jump_batch_dtime", &SatParameters::feasibility_jump_batch_dtime)
|
|
275
|
+
.define_method("feasibility_jump_batch_dtime=", &SatParameters::set_feasibility_jump_batch_dtime)
|
|
276
|
+
.define_method("feasibility_jump_decay", &SatParameters::feasibility_jump_decay)
|
|
277
|
+
.define_method("feasibility_jump_decay=", &SatParameters::set_feasibility_jump_decay)
|
|
278
|
+
.define_method("feasibility_jump_enable_restarts", &SatParameters::feasibility_jump_enable_restarts)
|
|
279
|
+
.define_method("feasibility_jump_enable_restarts=", &SatParameters::set_feasibility_jump_enable_restarts)
|
|
280
|
+
.define_method("feasibility_jump_linearization_level", &SatParameters::feasibility_jump_linearization_level)
|
|
281
|
+
.define_method("feasibility_jump_linearization_level=", &SatParameters::set_feasibility_jump_linearization_level)
|
|
282
|
+
.define_method("feasibility_jump_max_expanded_constraint_size", &SatParameters::feasibility_jump_max_expanded_constraint_size)
|
|
283
|
+
.define_method("feasibility_jump_max_expanded_constraint_size=", &SatParameters::set_feasibility_jump_max_expanded_constraint_size)
|
|
284
|
+
.define_method("feasibility_jump_restart_factor", &SatParameters::feasibility_jump_restart_factor)
|
|
285
|
+
.define_method("feasibility_jump_restart_factor=", &SatParameters::set_feasibility_jump_restart_factor)
|
|
286
|
+
.define_method("feasibility_jump_var_perburbation_range_ratio", &SatParameters::feasibility_jump_var_perburbation_range_ratio)
|
|
287
|
+
.define_method("feasibility_jump_var_perburbation_range_ratio=", &SatParameters::set_feasibility_jump_var_perburbation_range_ratio)
|
|
288
|
+
.define_method("feasibility_jump_var_randomization_probability", &SatParameters::feasibility_jump_var_randomization_probability)
|
|
289
|
+
.define_method("feasibility_jump_var_randomization_probability=", &SatParameters::set_feasibility_jump_var_randomization_probability)
|
|
290
|
+
.define_method("fill_additional_solutions_in_response", &SatParameters::fill_additional_solutions_in_response)
|
|
291
|
+
.define_method("fill_additional_solutions_in_response=", &SatParameters::set_fill_additional_solutions_in_response)
|
|
292
|
+
.define_method("fill_tightened_domains_in_response", &SatParameters::fill_tightened_domains_in_response)
|
|
293
|
+
.define_method("fill_tightened_domains_in_response=", &SatParameters::set_fill_tightened_domains_in_response)
|
|
294
|
+
.define_method("filter_sat_postsolve_clauses", &SatParameters::filter_sat_postsolve_clauses)
|
|
295
|
+
.define_method("filter_sat_postsolve_clauses=", &SatParameters::set_filter_sat_postsolve_clauses)
|
|
296
|
+
.define_method("find_big_linear_overlap", &SatParameters::find_big_linear_overlap)
|
|
297
|
+
.define_method("find_big_linear_overlap=", &SatParameters::set_find_big_linear_overlap)
|
|
298
|
+
.define_method("find_clauses_that_are_exactly_one", &SatParameters::find_clauses_that_are_exactly_one)
|
|
299
|
+
.define_method("find_clauses_that_are_exactly_one=", &SatParameters::set_find_clauses_that_are_exactly_one)
|
|
300
|
+
.define_method("find_multiple_cores", &SatParameters::find_multiple_cores)
|
|
301
|
+
.define_method("find_multiple_cores=", &SatParameters::set_find_multiple_cores)
|
|
302
|
+
.define_method("fix_variables_to_their_hinted_value", &SatParameters::fix_variables_to_their_hinted_value)
|
|
303
|
+
.define_method("fix_variables_to_their_hinted_value=", &SatParameters::set_fix_variables_to_their_hinted_value)
|
|
304
|
+
.define_method("glucose_decay_increment", &SatParameters::glucose_decay_increment)
|
|
305
|
+
.define_method("glucose_decay_increment=", &SatParameters::set_glucose_decay_increment)
|
|
306
|
+
.define_method("glucose_decay_increment_period", &SatParameters::glucose_decay_increment_period)
|
|
307
|
+
.define_method("glucose_decay_increment_period=", &SatParameters::set_glucose_decay_increment_period)
|
|
308
|
+
.define_method("glucose_max_decay", &SatParameters::glucose_max_decay)
|
|
309
|
+
.define_method("glucose_max_decay=", &SatParameters::set_glucose_max_decay)
|
|
310
|
+
.define_method("hint_conflict_limit", &SatParameters::hint_conflict_limit)
|
|
311
|
+
.define_method("hint_conflict_limit=", &SatParameters::set_hint_conflict_limit)
|
|
312
|
+
.define_method("ignore_names", &SatParameters::ignore_names)
|
|
313
|
+
.define_method("ignore_names=", &SatParameters::set_ignore_names)
|
|
314
|
+
.define_method("infer_all_diffs", &SatParameters::infer_all_diffs)
|
|
315
|
+
.define_method("infer_all_diffs=", &SatParameters::set_infer_all_diffs)
|
|
316
|
+
.define_method("initial_variables_activity", &SatParameters::initial_variables_activity)
|
|
317
|
+
.define_method("initial_variables_activity=", &SatParameters::set_initial_variables_activity)
|
|
318
|
+
.define_method("inprocessing_dtime_ratio", &SatParameters::inprocessing_dtime_ratio)
|
|
319
|
+
.define_method("inprocessing_dtime_ratio=", &SatParameters::set_inprocessing_dtime_ratio)
|
|
320
|
+
.define_method("inprocessing_minimization_dtime", &SatParameters::inprocessing_minimization_dtime)
|
|
321
|
+
.define_method("inprocessing_minimization_dtime=", &SatParameters::set_inprocessing_minimization_dtime)
|
|
322
|
+
.define_method("inprocessing_minimization_use_all_orderings", &SatParameters::inprocessing_minimization_use_all_orderings)
|
|
323
|
+
.define_method("inprocessing_minimization_use_all_orderings=", &SatParameters::set_inprocessing_minimization_use_all_orderings)
|
|
324
|
+
.define_method("inprocessing_minimization_use_conflict_analysis", &SatParameters::inprocessing_minimization_use_conflict_analysis)
|
|
325
|
+
.define_method("inprocessing_minimization_use_conflict_analysis=", &SatParameters::set_inprocessing_minimization_use_conflict_analysis)
|
|
326
|
+
.define_method("inprocessing_probing_dtime", &SatParameters::inprocessing_probing_dtime)
|
|
327
|
+
.define_method("inprocessing_probing_dtime=", &SatParameters::set_inprocessing_probing_dtime)
|
|
328
|
+
.define_method("inprocessing_use_congruence_closure", &SatParameters::inprocessing_use_congruence_closure)
|
|
329
|
+
.define_method("inprocessing_use_congruence_closure=", &SatParameters::set_inprocessing_use_congruence_closure)
|
|
330
|
+
.define_method("inprocessing_use_sat_sweeping", &SatParameters::inprocessing_use_sat_sweeping)
|
|
331
|
+
.define_method("inprocessing_use_sat_sweeping=", &SatParameters::set_inprocessing_use_sat_sweeping)
|
|
332
|
+
.define_method("instantiate_all_variables", &SatParameters::instantiate_all_variables)
|
|
333
|
+
.define_method("instantiate_all_variables=", &SatParameters::set_instantiate_all_variables)
|
|
334
|
+
.define_method("interleave_batch_size", &SatParameters::interleave_batch_size)
|
|
335
|
+
.define_method("interleave_batch_size=", &SatParameters::set_interleave_batch_size)
|
|
336
|
+
.define_method("interleave_search", &SatParameters::interleave_search)
|
|
337
|
+
.define_method("interleave_search=", &SatParameters::set_interleave_search)
|
|
338
|
+
.define_method("keep_all_feasible_solutions_in_presolve", &SatParameters::keep_all_feasible_solutions_in_presolve)
|
|
339
|
+
.define_method("keep_all_feasible_solutions_in_presolve=", &SatParameters::set_keep_all_feasible_solutions_in_presolve)
|
|
340
|
+
.define_method("keep_symmetry_in_presolve", &SatParameters::keep_symmetry_in_presolve)
|
|
341
|
+
.define_method("keep_symmetry_in_presolve=", &SatParameters::set_keep_symmetry_in_presolve)
|
|
342
|
+
.define_method("lb_relax_num_workers_threshold", &SatParameters::lb_relax_num_workers_threshold)
|
|
343
|
+
.define_method("lb_relax_num_workers_threshold=", &SatParameters::set_lb_relax_num_workers_threshold)
|
|
344
|
+
.define_method("linear_split_size", &SatParameters::linear_split_size)
|
|
345
|
+
.define_method("linear_split_size=", &SatParameters::set_linear_split_size)
|
|
143
346
|
.define_method("linearization_level", &SatParameters::linearization_level)
|
|
144
347
|
.define_method("linearization_level=", &SatParameters::set_linearization_level)
|
|
348
|
+
.define_method("lns_initial_deterministic_limit", &SatParameters::lns_initial_deterministic_limit)
|
|
349
|
+
.define_method("lns_initial_deterministic_limit=", &SatParameters::set_lns_initial_deterministic_limit)
|
|
350
|
+
.define_method("lns_initial_difficulty", &SatParameters::lns_initial_difficulty)
|
|
351
|
+
.define_method("lns_initial_difficulty=", &SatParameters::set_lns_initial_difficulty)
|
|
352
|
+
.define_method("load_at_most_ones_in_sat_presolve", &SatParameters::load_at_most_ones_in_sat_presolve)
|
|
353
|
+
.define_method("load_at_most_ones_in_sat_presolve=", &SatParameters::set_load_at_most_ones_in_sat_presolve)
|
|
354
|
+
.define_method("log_prefix", &SatParameters::log_prefix)
|
|
355
|
+
// .define_method("log_prefix=", &SatParameters::set_log_prefix)
|
|
356
|
+
.define_method("log_search_progress", &SatParameters::log_search_progress)
|
|
357
|
+
.define_method("log_search_progress=", &SatParameters::set_log_search_progress)
|
|
358
|
+
.define_method("log_subsolver_statistics", &SatParameters::log_subsolver_statistics)
|
|
359
|
+
.define_method("log_subsolver_statistics=", &SatParameters::set_log_subsolver_statistics)
|
|
360
|
+
.define_method("log_to_response", &SatParameters::log_to_response)
|
|
361
|
+
.define_method("log_to_response=", &SatParameters::set_log_to_response)
|
|
362
|
+
.define_method("log_to_stdout", &SatParameters::log_to_stdout)
|
|
363
|
+
.define_method("log_to_stdout=", &SatParameters::set_log_to_stdout)
|
|
364
|
+
.define_method("lp_dual_tolerance", &SatParameters::lp_dual_tolerance)
|
|
365
|
+
.define_method("lp_dual_tolerance=", &SatParameters::set_lp_dual_tolerance)
|
|
366
|
+
.define_method("lp_primal_tolerance", &SatParameters::lp_primal_tolerance)
|
|
367
|
+
.define_method("lp_primal_tolerance=", &SatParameters::set_lp_primal_tolerance)
|
|
368
|
+
.define_method("max_all_diff_cut_size", &SatParameters::max_all_diff_cut_size)
|
|
369
|
+
.define_method("max_all_diff_cut_size=", &SatParameters::set_max_all_diff_cut_size)
|
|
370
|
+
.define_method("max_alldiff_domain_size", &SatParameters::max_alldiff_domain_size)
|
|
371
|
+
.define_method("max_alldiff_domain_size=", &SatParameters::set_max_alldiff_domain_size)
|
|
372
|
+
.define_method("max_backjump_levels", &SatParameters::max_backjump_levels)
|
|
373
|
+
.define_method("max_backjump_levels=", &SatParameters::set_max_backjump_levels)
|
|
374
|
+
.define_method("max_clause_activity_value", &SatParameters::max_clause_activity_value)
|
|
375
|
+
.define_method("max_clause_activity_value=", &SatParameters::set_max_clause_activity_value)
|
|
376
|
+
.define_method("max_consecutive_inactive_count", &SatParameters::max_consecutive_inactive_count)
|
|
377
|
+
.define_method("max_consecutive_inactive_count=", &SatParameters::set_max_consecutive_inactive_count)
|
|
378
|
+
.define_method("max_cut_rounds_at_level_zero", &SatParameters::max_cut_rounds_at_level_zero)
|
|
379
|
+
.define_method("max_cut_rounds_at_level_zero=", &SatParameters::set_max_cut_rounds_at_level_zero)
|
|
380
|
+
.define_method("max_deterministic_time", &SatParameters::max_deterministic_time)
|
|
381
|
+
.define_method("max_deterministic_time=", &SatParameters::set_max_deterministic_time)
|
|
382
|
+
.define_method("max_domain_size_for_linear2_expansion", &SatParameters::max_domain_size_for_linear2_expansion)
|
|
383
|
+
.define_method("max_domain_size_for_linear2_expansion=", &SatParameters::set_max_domain_size_for_linear2_expansion)
|
|
384
|
+
.define_method("max_domain_size_when_encoding_eq_neq_constraints", &SatParameters::max_domain_size_when_encoding_eq_neq_constraints)
|
|
385
|
+
.define_method("max_domain_size_when_encoding_eq_neq_constraints=", &SatParameters::set_max_domain_size_when_encoding_eq_neq_constraints)
|
|
386
|
+
.define_method("max_drat_time_in_seconds", &SatParameters::max_drat_time_in_seconds)
|
|
387
|
+
.define_method("max_drat_time_in_seconds=", &SatParameters::set_max_drat_time_in_seconds)
|
|
388
|
+
.define_method("max_integer_rounding_scaling", &SatParameters::max_integer_rounding_scaling)
|
|
389
|
+
.define_method("max_integer_rounding_scaling=", &SatParameters::set_max_integer_rounding_scaling)
|
|
390
|
+
.define_method("max_lin_max_size_for_expansion", &SatParameters::max_lin_max_size_for_expansion)
|
|
391
|
+
.define_method("max_lin_max_size_for_expansion=", &SatParameters::set_max_lin_max_size_for_expansion)
|
|
392
|
+
.define_method("max_memory_in_mb", &SatParameters::max_memory_in_mb)
|
|
393
|
+
.define_method("max_memory_in_mb=", &SatParameters::set_max_memory_in_mb)
|
|
394
|
+
.define_method("max_num_cuts", &SatParameters::max_num_cuts)
|
|
395
|
+
.define_method("max_num_cuts=", &SatParameters::set_max_num_cuts)
|
|
396
|
+
.define_method("max_num_deterministic_batches", &SatParameters::max_num_deterministic_batches)
|
|
397
|
+
.define_method("max_num_deterministic_batches=", &SatParameters::set_max_num_deterministic_batches)
|
|
398
|
+
.define_method("max_num_intervals_for_timetable_edge_finding", &SatParameters::max_num_intervals_for_timetable_edge_finding)
|
|
399
|
+
.define_method("max_num_intervals_for_timetable_edge_finding=", &SatParameters::set_max_num_intervals_for_timetable_edge_finding)
|
|
400
|
+
.define_method("max_number_of_conflicts", &SatParameters::max_number_of_conflicts)
|
|
401
|
+
.define_method("max_number_of_conflicts=", &SatParameters::set_max_number_of_conflicts)
|
|
402
|
+
.define_method("max_pairs_pairwise_reasoning_in_no_overlap_2d", &SatParameters::max_pairs_pairwise_reasoning_in_no_overlap_2d)
|
|
403
|
+
.define_method("max_pairs_pairwise_reasoning_in_no_overlap_2d=", &SatParameters::set_max_pairs_pairwise_reasoning_in_no_overlap_2d)
|
|
404
|
+
.define_method("max_presolve_iterations", &SatParameters::max_presolve_iterations)
|
|
405
|
+
.define_method("max_presolve_iterations=", &SatParameters::set_max_presolve_iterations)
|
|
406
|
+
.define_method("max_sat_reverse_assumption_order", &SatParameters::max_sat_reverse_assumption_order)
|
|
407
|
+
.define_method("max_sat_reverse_assumption_order=", &SatParameters::set_max_sat_reverse_assumption_order)
|
|
408
|
+
.define_method("max_size_to_create_precedence_literals_in_disjunctive", &SatParameters::max_size_to_create_precedence_literals_in_disjunctive)
|
|
409
|
+
.define_method("max_size_to_create_precedence_literals_in_disjunctive=", &SatParameters::set_max_size_to_create_precedence_literals_in_disjunctive)
|
|
145
410
|
.define_method("max_time_in_seconds", &SatParameters::max_time_in_seconds)
|
|
146
411
|
.define_method("max_time_in_seconds=", &SatParameters::set_max_time_in_seconds)
|
|
412
|
+
.define_method("max_variable_activity_value", &SatParameters::max_variable_activity_value)
|
|
413
|
+
.define_method("max_variable_activity_value=", &SatParameters::set_max_variable_activity_value)
|
|
414
|
+
.define_method("maximum_regions_to_split_in_disconnected_no_overlap_2d", &SatParameters::maximum_regions_to_split_in_disconnected_no_overlap_2d)
|
|
415
|
+
.define_method("maximum_regions_to_split_in_disconnected_no_overlap_2d=", &SatParameters::set_maximum_regions_to_split_in_disconnected_no_overlap_2d)
|
|
416
|
+
.define_method("merge_at_most_one_work_limit", &SatParameters::merge_at_most_one_work_limit)
|
|
417
|
+
.define_method("merge_at_most_one_work_limit=", &SatParameters::set_merge_at_most_one_work_limit)
|
|
418
|
+
.define_method("merge_no_overlap_work_limit", &SatParameters::merge_no_overlap_work_limit)
|
|
419
|
+
.define_method("merge_no_overlap_work_limit=", &SatParameters::set_merge_no_overlap_work_limit)
|
|
420
|
+
.define_method("min_orthogonality_for_lp_constraints", &SatParameters::min_orthogonality_for_lp_constraints)
|
|
421
|
+
.define_method("min_orthogonality_for_lp_constraints=", &SatParameters::set_min_orthogonality_for_lp_constraints)
|
|
422
|
+
.define_method("minimize_reduction_during_pb_resolution", &SatParameters::minimize_reduction_during_pb_resolution)
|
|
423
|
+
.define_method("minimize_reduction_during_pb_resolution=", &SatParameters::set_minimize_reduction_during_pb_resolution)
|
|
424
|
+
.define_method("minimize_shared_clauses", &SatParameters::minimize_shared_clauses)
|
|
425
|
+
.define_method("minimize_shared_clauses=", &SatParameters::set_minimize_shared_clauses)
|
|
426
|
+
.define_method("mip_automatically_scale_variables", &SatParameters::mip_automatically_scale_variables)
|
|
427
|
+
.define_method("mip_automatically_scale_variables=", &SatParameters::set_mip_automatically_scale_variables)
|
|
428
|
+
.define_method("mip_check_precision", &SatParameters::mip_check_precision)
|
|
429
|
+
.define_method("mip_check_precision=", &SatParameters::set_mip_check_precision)
|
|
430
|
+
.define_method("mip_compute_true_objective_bound", &SatParameters::mip_compute_true_objective_bound)
|
|
431
|
+
.define_method("mip_compute_true_objective_bound=", &SatParameters::set_mip_compute_true_objective_bound)
|
|
432
|
+
.define_method("mip_drop_tolerance", &SatParameters::mip_drop_tolerance)
|
|
433
|
+
.define_method("mip_drop_tolerance=", &SatParameters::set_mip_drop_tolerance)
|
|
434
|
+
.define_method("mip_max_activity_exponent", &SatParameters::mip_max_activity_exponent)
|
|
435
|
+
.define_method("mip_max_activity_exponent=", &SatParameters::set_mip_max_activity_exponent)
|
|
436
|
+
.define_method("mip_max_bound", &SatParameters::mip_max_bound)
|
|
437
|
+
.define_method("mip_max_bound=", &SatParameters::set_mip_max_bound)
|
|
438
|
+
.define_method("mip_max_valid_magnitude", &SatParameters::mip_max_valid_magnitude)
|
|
439
|
+
.define_method("mip_max_valid_magnitude=", &SatParameters::set_mip_max_valid_magnitude)
|
|
440
|
+
.define_method("mip_presolve_level", &SatParameters::mip_presolve_level)
|
|
441
|
+
.define_method("mip_presolve_level=", &SatParameters::set_mip_presolve_level)
|
|
442
|
+
.define_method("mip_scale_large_domain", &SatParameters::mip_scale_large_domain)
|
|
443
|
+
.define_method("mip_scale_large_domain=", &SatParameters::set_mip_scale_large_domain)
|
|
444
|
+
.define_method("mip_treat_high_magnitude_bounds_as_infinity", &SatParameters::mip_treat_high_magnitude_bounds_as_infinity)
|
|
445
|
+
.define_method("mip_treat_high_magnitude_bounds_as_infinity=", &SatParameters::set_mip_treat_high_magnitude_bounds_as_infinity)
|
|
446
|
+
.define_method("mip_var_scaling", &SatParameters::mip_var_scaling)
|
|
447
|
+
.define_method("mip_var_scaling=", &SatParameters::set_mip_var_scaling)
|
|
448
|
+
.define_method("mip_wanted_precision", &SatParameters::mip_wanted_precision)
|
|
449
|
+
.define_method("mip_wanted_precision=", &SatParameters::set_mip_wanted_precision)
|
|
450
|
+
.define_method("name", &SatParameters::name)
|
|
451
|
+
// .define_method("name=", &SatParameters::set_name)
|
|
452
|
+
.define_method("new_constraints_batch_size", &SatParameters::new_constraints_batch_size)
|
|
453
|
+
.define_method("new_constraints_batch_size=", &SatParameters::set_new_constraints_batch_size)
|
|
454
|
+
.define_method("new_linear_propagation", &SatParameters::new_linear_propagation)
|
|
455
|
+
.define_method("new_linear_propagation=", &SatParameters::set_new_linear_propagation)
|
|
456
|
+
.define_method("no_overlap_2d_boolean_relations_limit", &SatParameters::no_overlap_2d_boolean_relations_limit)
|
|
457
|
+
.define_method("no_overlap_2d_boolean_relations_limit=", &SatParameters::set_no_overlap_2d_boolean_relations_limit)
|
|
458
|
+
.define_method("num_conflicts_before_strategy_changes", &SatParameters::num_conflicts_before_strategy_changes)
|
|
459
|
+
.define_method("num_conflicts_before_strategy_changes=", &SatParameters::set_num_conflicts_before_strategy_changes)
|
|
460
|
+
.define_method("num_full_subsolvers", &SatParameters::num_full_subsolvers)
|
|
461
|
+
.define_method("num_full_subsolvers=", &SatParameters::set_num_full_subsolvers)
|
|
462
|
+
.define_method("num_search_workers", &SatParameters::num_search_workers)
|
|
463
|
+
.define_method("num_search_workers=", &SatParameters::set_num_search_workers)
|
|
464
|
+
.define_method("num_violation_ls", &SatParameters::num_violation_ls)
|
|
465
|
+
.define_method("num_violation_ls=", &SatParameters::set_num_violation_ls)
|
|
147
466
|
.define_method("num_workers", &SatParameters::num_workers)
|
|
148
467
|
.define_method("num_workers=", &SatParameters::set_num_workers)
|
|
468
|
+
.define_method("only_add_cuts_at_level_zero", &SatParameters::only_add_cuts_at_level_zero)
|
|
469
|
+
.define_method("only_add_cuts_at_level_zero=", &SatParameters::set_only_add_cuts_at_level_zero)
|
|
470
|
+
.define_method("only_solve_ip", &SatParameters::only_solve_ip)
|
|
471
|
+
.define_method("only_solve_ip=", &SatParameters::set_only_solve_ip)
|
|
472
|
+
.define_method("optimize_with_core", &SatParameters::optimize_with_core)
|
|
473
|
+
.define_method("optimize_with_core=", &SatParameters::set_optimize_with_core)
|
|
474
|
+
.define_method("optimize_with_lb_tree_search", &SatParameters::optimize_with_lb_tree_search)
|
|
475
|
+
.define_method("optimize_with_lb_tree_search=", &SatParameters::set_optimize_with_lb_tree_search)
|
|
476
|
+
.define_method("optimize_with_max_hs", &SatParameters::optimize_with_max_hs)
|
|
477
|
+
.define_method("optimize_with_max_hs=", &SatParameters::set_optimize_with_max_hs)
|
|
478
|
+
.define_method("output_drat_proof", &SatParameters::output_drat_proof)
|
|
479
|
+
.define_method("output_drat_proof=", &SatParameters::set_output_drat_proof)
|
|
480
|
+
.define_method("output_lrat_proof", &SatParameters::output_lrat_proof)
|
|
481
|
+
.define_method("output_lrat_proof=", &SatParameters::set_output_lrat_proof)
|
|
482
|
+
.define_method("pb_cleanup_increment", &SatParameters::pb_cleanup_increment)
|
|
483
|
+
.define_method("pb_cleanup_increment=", &SatParameters::set_pb_cleanup_increment)
|
|
484
|
+
.define_method("pb_cleanup_ratio", &SatParameters::pb_cleanup_ratio)
|
|
485
|
+
.define_method("pb_cleanup_ratio=", &SatParameters::set_pb_cleanup_ratio)
|
|
486
|
+
.define_method("permute_presolve_constraint_order", &SatParameters::permute_presolve_constraint_order)
|
|
487
|
+
.define_method("permute_presolve_constraint_order=", &SatParameters::set_permute_presolve_constraint_order)
|
|
488
|
+
.define_method("permute_variable_randomly", &SatParameters::permute_variable_randomly)
|
|
489
|
+
.define_method("permute_variable_randomly=", &SatParameters::set_permute_variable_randomly)
|
|
490
|
+
.define_method("polarity_exploit_ls_hints", &SatParameters::polarity_exploit_ls_hints)
|
|
491
|
+
.define_method("polarity_exploit_ls_hints=", &SatParameters::set_polarity_exploit_ls_hints)
|
|
492
|
+
.define_method("polarity_rephase_increment", &SatParameters::polarity_rephase_increment)
|
|
493
|
+
.define_method("polarity_rephase_increment=", &SatParameters::set_polarity_rephase_increment)
|
|
494
|
+
.define_method("polish_lp_solution", &SatParameters::polish_lp_solution)
|
|
495
|
+
.define_method("polish_lp_solution=", &SatParameters::set_polish_lp_solution)
|
|
496
|
+
.define_method("presolve_blocked_clause", &SatParameters::presolve_blocked_clause)
|
|
497
|
+
.define_method("presolve_blocked_clause=", &SatParameters::set_presolve_blocked_clause)
|
|
498
|
+
.define_method("presolve_bva_threshold", &SatParameters::presolve_bva_threshold)
|
|
499
|
+
.define_method("presolve_bva_threshold=", &SatParameters::set_presolve_bva_threshold)
|
|
500
|
+
.define_method("presolve_bve_clause_weight", &SatParameters::presolve_bve_clause_weight)
|
|
501
|
+
.define_method("presolve_bve_clause_weight=", &SatParameters::set_presolve_bve_clause_weight)
|
|
502
|
+
.define_method("presolve_bve_threshold", &SatParameters::presolve_bve_threshold)
|
|
503
|
+
.define_method("presolve_bve_threshold=", &SatParameters::set_presolve_bve_threshold)
|
|
504
|
+
.define_method("presolve_extract_integer_enforcement", &SatParameters::presolve_extract_integer_enforcement)
|
|
505
|
+
.define_method("presolve_extract_integer_enforcement=", &SatParameters::set_presolve_extract_integer_enforcement)
|
|
506
|
+
.define_method("presolve_inclusion_work_limit", &SatParameters::presolve_inclusion_work_limit)
|
|
507
|
+
.define_method("presolve_inclusion_work_limit=", &SatParameters::set_presolve_inclusion_work_limit)
|
|
508
|
+
.define_method("presolve_probing_deterministic_time_limit", &SatParameters::presolve_probing_deterministic_time_limit)
|
|
509
|
+
.define_method("presolve_probing_deterministic_time_limit=", &SatParameters::set_presolve_probing_deterministic_time_limit)
|
|
510
|
+
.define_method("presolve_substitution_level", &SatParameters::presolve_substitution_level)
|
|
511
|
+
.define_method("presolve_substitution_level=", &SatParameters::set_presolve_substitution_level)
|
|
512
|
+
.define_method("presolve_use_bva", &SatParameters::presolve_use_bva)
|
|
513
|
+
.define_method("presolve_use_bva=", &SatParameters::set_presolve_use_bva)
|
|
514
|
+
.define_method("probing_deterministic_time_limit", &SatParameters::probing_deterministic_time_limit)
|
|
515
|
+
.define_method("probing_deterministic_time_limit=", &SatParameters::set_probing_deterministic_time_limit)
|
|
516
|
+
.define_method("probing_num_combinations_limit", &SatParameters::probing_num_combinations_limit)
|
|
517
|
+
.define_method("probing_num_combinations_limit=", &SatParameters::set_probing_num_combinations_limit)
|
|
518
|
+
.define_method("propagation_loop_detection_factor", &SatParameters::propagation_loop_detection_factor)
|
|
519
|
+
.define_method("propagation_loop_detection_factor=", &SatParameters::set_propagation_loop_detection_factor)
|
|
520
|
+
.define_method("pseudo_cost_reliability_threshold", &SatParameters::pseudo_cost_reliability_threshold)
|
|
521
|
+
.define_method("pseudo_cost_reliability_threshold=", &SatParameters::set_pseudo_cost_reliability_threshold)
|
|
522
|
+
.define_method("push_all_tasks_toward_start", &SatParameters::push_all_tasks_toward_start)
|
|
523
|
+
.define_method("push_all_tasks_toward_start=", &SatParameters::set_push_all_tasks_toward_start)
|
|
524
|
+
.define_method("random_branches_ratio", &SatParameters::random_branches_ratio)
|
|
525
|
+
.define_method("random_branches_ratio=", &SatParameters::set_random_branches_ratio)
|
|
526
|
+
.define_method("random_polarity_ratio", &SatParameters::random_polarity_ratio)
|
|
527
|
+
.define_method("random_polarity_ratio=", &SatParameters::set_random_polarity_ratio)
|
|
149
528
|
.define_method("random_seed", &SatParameters::random_seed)
|
|
150
|
-
.define_method("random_seed=", &SatParameters::set_random_seed)
|
|
529
|
+
.define_method("random_seed=", &SatParameters::set_random_seed)
|
|
530
|
+
.define_method("randomize_search", &SatParameters::randomize_search)
|
|
531
|
+
.define_method("randomize_search=", &SatParameters::set_randomize_search)
|
|
532
|
+
.define_method("relative_gap_limit", &SatParameters::relative_gap_limit)
|
|
533
|
+
.define_method("relative_gap_limit=", &SatParameters::set_relative_gap_limit)
|
|
534
|
+
.define_method("remove_fixed_variables_early", &SatParameters::remove_fixed_variables_early)
|
|
535
|
+
.define_method("remove_fixed_variables_early=", &SatParameters::set_remove_fixed_variables_early)
|
|
536
|
+
.define_method("repair_hint", &SatParameters::repair_hint)
|
|
537
|
+
.define_method("repair_hint=", &SatParameters::set_repair_hint)
|
|
538
|
+
.define_method("restart_dl_average_ratio", &SatParameters::restart_dl_average_ratio)
|
|
539
|
+
.define_method("restart_dl_average_ratio=", &SatParameters::set_restart_dl_average_ratio)
|
|
540
|
+
.define_method("restart_lbd_average_ratio", &SatParameters::restart_lbd_average_ratio)
|
|
541
|
+
.define_method("restart_lbd_average_ratio=", &SatParameters::set_restart_lbd_average_ratio)
|
|
542
|
+
.define_method("restart_period", &SatParameters::restart_period)
|
|
543
|
+
.define_method("restart_period=", &SatParameters::set_restart_period)
|
|
544
|
+
.define_method("restart_running_window_size", &SatParameters::restart_running_window_size)
|
|
545
|
+
.define_method("restart_running_window_size=", &SatParameters::set_restart_running_window_size)
|
|
546
|
+
.define_method("root_lp_iterations", &SatParameters::root_lp_iterations)
|
|
547
|
+
.define_method("root_lp_iterations=", &SatParameters::set_root_lp_iterations)
|
|
548
|
+
.define_method("routing_cut_dp_effort", &SatParameters::routing_cut_dp_effort)
|
|
549
|
+
.define_method("routing_cut_dp_effort=", &SatParameters::set_routing_cut_dp_effort)
|
|
550
|
+
.define_method("routing_cut_max_infeasible_path_length", &SatParameters::routing_cut_max_infeasible_path_length)
|
|
551
|
+
.define_method("routing_cut_max_infeasible_path_length=", &SatParameters::set_routing_cut_max_infeasible_path_length)
|
|
552
|
+
.define_method("routing_cut_subset_size_for_binary_relation_bound", &SatParameters::routing_cut_subset_size_for_binary_relation_bound)
|
|
553
|
+
.define_method("routing_cut_subset_size_for_binary_relation_bound=", &SatParameters::set_routing_cut_subset_size_for_binary_relation_bound)
|
|
554
|
+
.define_method("routing_cut_subset_size_for_exact_binary_relation_bound", &SatParameters::routing_cut_subset_size_for_exact_binary_relation_bound)
|
|
555
|
+
.define_method("routing_cut_subset_size_for_exact_binary_relation_bound=", &SatParameters::set_routing_cut_subset_size_for_exact_binary_relation_bound)
|
|
556
|
+
.define_method("routing_cut_subset_size_for_shortest_paths_bound", &SatParameters::routing_cut_subset_size_for_shortest_paths_bound)
|
|
557
|
+
.define_method("routing_cut_subset_size_for_shortest_paths_bound=", &SatParameters::set_routing_cut_subset_size_for_shortest_paths_bound)
|
|
558
|
+
.define_method("routing_cut_subset_size_for_tight_binary_relation_bound", &SatParameters::routing_cut_subset_size_for_tight_binary_relation_bound)
|
|
559
|
+
.define_method("routing_cut_subset_size_for_tight_binary_relation_bound=", &SatParameters::set_routing_cut_subset_size_for_tight_binary_relation_bound)
|
|
560
|
+
.define_method("save_lp_basis_in_lb_tree_search", &SatParameters::save_lp_basis_in_lb_tree_search)
|
|
561
|
+
.define_method("save_lp_basis_in_lb_tree_search=", &SatParameters::set_save_lp_basis_in_lb_tree_search)
|
|
562
|
+
.define_method("search_random_variable_pool_size", &SatParameters::search_random_variable_pool_size)
|
|
563
|
+
.define_method("search_random_variable_pool_size=", &SatParameters::set_search_random_variable_pool_size)
|
|
564
|
+
.define_method("share_binary_clauses", &SatParameters::share_binary_clauses)
|
|
565
|
+
.define_method("share_binary_clauses=", &SatParameters::set_share_binary_clauses)
|
|
566
|
+
.define_method("share_glue_clauses", &SatParameters::share_glue_clauses)
|
|
567
|
+
.define_method("share_glue_clauses=", &SatParameters::set_share_glue_clauses)
|
|
568
|
+
.define_method("share_glue_clauses_dtime", &SatParameters::share_glue_clauses_dtime)
|
|
569
|
+
.define_method("share_glue_clauses_dtime=", &SatParameters::set_share_glue_clauses_dtime)
|
|
570
|
+
.define_method("share_level_zero_bounds", &SatParameters::share_level_zero_bounds)
|
|
571
|
+
.define_method("share_level_zero_bounds=", &SatParameters::set_share_level_zero_bounds)
|
|
572
|
+
.define_method("share_linear2_bounds", &SatParameters::share_linear2_bounds)
|
|
573
|
+
.define_method("share_linear2_bounds=", &SatParameters::set_share_linear2_bounds)
|
|
574
|
+
.define_method("share_objective_bounds", &SatParameters::share_objective_bounds)
|
|
575
|
+
.define_method("share_objective_bounds=", &SatParameters::set_share_objective_bounds)
|
|
576
|
+
.define_method("shared_tree_balance_tolerance", &SatParameters::shared_tree_balance_tolerance)
|
|
577
|
+
.define_method("shared_tree_balance_tolerance=", &SatParameters::set_shared_tree_balance_tolerance)
|
|
578
|
+
.define_method("shared_tree_max_nodes_per_worker", &SatParameters::shared_tree_max_nodes_per_worker)
|
|
579
|
+
.define_method("shared_tree_max_nodes_per_worker=", &SatParameters::set_shared_tree_max_nodes_per_worker)
|
|
580
|
+
.define_method("shared_tree_num_workers", &SatParameters::shared_tree_num_workers)
|
|
581
|
+
.define_method("shared_tree_num_workers=", &SatParameters::set_shared_tree_num_workers)
|
|
582
|
+
.define_method("shared_tree_open_leaves_per_worker", &SatParameters::shared_tree_open_leaves_per_worker)
|
|
583
|
+
.define_method("shared_tree_open_leaves_per_worker=", &SatParameters::set_shared_tree_open_leaves_per_worker)
|
|
584
|
+
.define_method("shared_tree_split_min_dtime", &SatParameters::shared_tree_split_min_dtime)
|
|
585
|
+
.define_method("shared_tree_split_min_dtime=", &SatParameters::set_shared_tree_split_min_dtime)
|
|
586
|
+
.define_method("shared_tree_worker_enable_phase_sharing", &SatParameters::shared_tree_worker_enable_phase_sharing)
|
|
587
|
+
.define_method("shared_tree_worker_enable_phase_sharing=", &SatParameters::set_shared_tree_worker_enable_phase_sharing)
|
|
588
|
+
.define_method("shared_tree_worker_enable_trail_sharing", &SatParameters::shared_tree_worker_enable_trail_sharing)
|
|
589
|
+
.define_method("shared_tree_worker_enable_trail_sharing=", &SatParameters::set_shared_tree_worker_enable_trail_sharing)
|
|
590
|
+
.define_method("shared_tree_worker_min_restarts_per_subtree", &SatParameters::shared_tree_worker_min_restarts_per_subtree)
|
|
591
|
+
.define_method("shared_tree_worker_min_restarts_per_subtree=", &SatParameters::set_shared_tree_worker_min_restarts_per_subtree)
|
|
592
|
+
.define_method("shaving_deterministic_time_in_probing_search", &SatParameters::shaving_deterministic_time_in_probing_search)
|
|
593
|
+
.define_method("shaving_deterministic_time_in_probing_search=", &SatParameters::set_shaving_deterministic_time_in_probing_search)
|
|
594
|
+
.define_method("shaving_search_deterministic_time", &SatParameters::shaving_search_deterministic_time)
|
|
595
|
+
.define_method("shaving_search_deterministic_time=", &SatParameters::set_shaving_search_deterministic_time)
|
|
596
|
+
.define_method("shaving_search_threshold", &SatParameters::shaving_search_threshold)
|
|
597
|
+
.define_method("shaving_search_threshold=", &SatParameters::set_shaving_search_threshold)
|
|
598
|
+
.define_method("solution_pool_diversity_limit", &SatParameters::solution_pool_diversity_limit)
|
|
599
|
+
.define_method("solution_pool_diversity_limit=", &SatParameters::set_solution_pool_diversity_limit)
|
|
600
|
+
.define_method("solution_pool_size", &SatParameters::solution_pool_size)
|
|
601
|
+
.define_method("solution_pool_size=", &SatParameters::set_solution_pool_size)
|
|
602
|
+
.define_method("stop_after_first_solution", &SatParameters::stop_after_first_solution)
|
|
603
|
+
.define_method("stop_after_first_solution=", &SatParameters::set_stop_after_first_solution)
|
|
604
|
+
.define_method("stop_after_presolve", &SatParameters::stop_after_presolve)
|
|
605
|
+
.define_method("stop_after_presolve=", &SatParameters::set_stop_after_presolve)
|
|
606
|
+
.define_method("stop_after_root_propagation", &SatParameters::stop_after_root_propagation)
|
|
607
|
+
.define_method("stop_after_root_propagation=", &SatParameters::set_stop_after_root_propagation)
|
|
608
|
+
.define_method("strategy_change_increase_ratio", &SatParameters::strategy_change_increase_ratio)
|
|
609
|
+
.define_method("strategy_change_increase_ratio=", &SatParameters::set_strategy_change_increase_ratio)
|
|
610
|
+
.define_method("subsume_during_vivification", &SatParameters::subsume_during_vivification)
|
|
611
|
+
.define_method("subsume_during_vivification=", &SatParameters::set_subsume_during_vivification)
|
|
612
|
+
.define_method("subsumption_during_conflict_analysis", &SatParameters::subsumption_during_conflict_analysis)
|
|
613
|
+
.define_method("subsumption_during_conflict_analysis=", &SatParameters::set_subsumption_during_conflict_analysis)
|
|
614
|
+
.define_method("symmetry_detection_deterministic_time_limit", &SatParameters::symmetry_detection_deterministic_time_limit)
|
|
615
|
+
.define_method("symmetry_detection_deterministic_time_limit=", &SatParameters::set_symmetry_detection_deterministic_time_limit)
|
|
616
|
+
.define_method("symmetry_level", &SatParameters::symmetry_level)
|
|
617
|
+
.define_method("symmetry_level=", &SatParameters::set_symmetry_level)
|
|
618
|
+
.define_method("table_compression_level", &SatParameters::table_compression_level)
|
|
619
|
+
.define_method("table_compression_level=", &SatParameters::set_table_compression_level)
|
|
620
|
+
.define_method("transitive_precedences_work_limit", &SatParameters::transitive_precedences_work_limit)
|
|
621
|
+
.define_method("transitive_precedences_work_limit=", &SatParameters::set_transitive_precedences_work_limit)
|
|
622
|
+
.define_method("use_absl_random", &SatParameters::use_absl_random)
|
|
623
|
+
.define_method("use_absl_random=", &SatParameters::set_use_absl_random)
|
|
624
|
+
.define_method("use_all_different_for_circuit", &SatParameters::use_all_different_for_circuit)
|
|
625
|
+
.define_method("use_all_different_for_circuit=", &SatParameters::set_use_all_different_for_circuit)
|
|
626
|
+
.define_method("use_area_energetic_reasoning_in_no_overlap_2d", &SatParameters::use_area_energetic_reasoning_in_no_overlap_2d)
|
|
627
|
+
.define_method("use_area_energetic_reasoning_in_no_overlap_2d=", &SatParameters::set_use_area_energetic_reasoning_in_no_overlap_2d)
|
|
628
|
+
.define_method("use_blocking_restart", &SatParameters::use_blocking_restart)
|
|
629
|
+
.define_method("use_blocking_restart=", &SatParameters::set_use_blocking_restart)
|
|
630
|
+
.define_method("use_chronological_backtracking", &SatParameters::use_chronological_backtracking)
|
|
631
|
+
.define_method("use_chronological_backtracking=", &SatParameters::set_use_chronological_backtracking)
|
|
632
|
+
.define_method("use_combined_no_overlap", &SatParameters::use_combined_no_overlap)
|
|
633
|
+
.define_method("use_combined_no_overlap=", &SatParameters::set_use_combined_no_overlap)
|
|
634
|
+
.define_method("use_conservative_scale_overload_checker", &SatParameters::use_conservative_scale_overload_checker)
|
|
635
|
+
.define_method("use_conservative_scale_overload_checker=", &SatParameters::set_use_conservative_scale_overload_checker)
|
|
636
|
+
.define_method("use_disjunctive_constraint_in_cumulative", &SatParameters::use_disjunctive_constraint_in_cumulative)
|
|
637
|
+
.define_method("use_disjunctive_constraint_in_cumulative=", &SatParameters::set_use_disjunctive_constraint_in_cumulative)
|
|
638
|
+
.define_method("use_dual_scheduling_heuristics", &SatParameters::use_dual_scheduling_heuristics)
|
|
639
|
+
.define_method("use_dual_scheduling_heuristics=", &SatParameters::set_use_dual_scheduling_heuristics)
|
|
640
|
+
.define_method("use_dynamic_precedence_in_cumulative", &SatParameters::use_dynamic_precedence_in_cumulative)
|
|
641
|
+
.define_method("use_dynamic_precedence_in_cumulative=", &SatParameters::set_use_dynamic_precedence_in_cumulative)
|
|
642
|
+
.define_method("use_dynamic_precedence_in_disjunctive", &SatParameters::use_dynamic_precedence_in_disjunctive)
|
|
643
|
+
.define_method("use_dynamic_precedence_in_disjunctive=", &SatParameters::set_use_dynamic_precedence_in_disjunctive)
|
|
644
|
+
.define_method("use_energetic_reasoning_in_no_overlap_2d", &SatParameters::use_energetic_reasoning_in_no_overlap_2d)
|
|
645
|
+
.define_method("use_energetic_reasoning_in_no_overlap_2d=", &SatParameters::set_use_energetic_reasoning_in_no_overlap_2d)
|
|
646
|
+
.define_method("use_erwa_heuristic", &SatParameters::use_erwa_heuristic)
|
|
647
|
+
.define_method("use_erwa_heuristic=", &SatParameters::set_use_erwa_heuristic)
|
|
648
|
+
.define_method("use_exact_lp_reason", &SatParameters::use_exact_lp_reason)
|
|
649
|
+
.define_method("use_exact_lp_reason=", &SatParameters::set_use_exact_lp_reason)
|
|
650
|
+
.define_method("use_extended_probing", &SatParameters::use_extended_probing)
|
|
651
|
+
.define_method("use_extended_probing=", &SatParameters::set_use_extended_probing)
|
|
652
|
+
.define_method("use_feasibility_jump", &SatParameters::use_feasibility_jump)
|
|
653
|
+
.define_method("use_feasibility_jump=", &SatParameters::set_use_feasibility_jump)
|
|
654
|
+
.define_method("use_feasibility_pump", &SatParameters::use_feasibility_pump)
|
|
655
|
+
.define_method("use_feasibility_pump=", &SatParameters::set_use_feasibility_pump)
|
|
656
|
+
.define_method("use_hard_precedences_in_cumulative", &SatParameters::use_hard_precedences_in_cumulative)
|
|
657
|
+
.define_method("use_hard_precedences_in_cumulative=", &SatParameters::set_use_hard_precedences_in_cumulative)
|
|
658
|
+
.define_method("use_implied_bounds", &SatParameters::use_implied_bounds)
|
|
659
|
+
.define_method("use_implied_bounds=", &SatParameters::set_use_implied_bounds)
|
|
660
|
+
.define_method("use_lb_relax_lns", &SatParameters::use_lb_relax_lns)
|
|
661
|
+
.define_method("use_lb_relax_lns=", &SatParameters::set_use_lb_relax_lns)
|
|
662
|
+
.define_method("use_linear3_for_no_overlap_2d_precedences", &SatParameters::use_linear3_for_no_overlap_2d_precedences)
|
|
663
|
+
.define_method("use_linear3_for_no_overlap_2d_precedences=", &SatParameters::set_use_linear3_for_no_overlap_2d_precedences)
|
|
664
|
+
.define_method("use_lns", &SatParameters::use_lns)
|
|
665
|
+
.define_method("use_lns=", &SatParameters::set_use_lns)
|
|
666
|
+
.define_method("use_lns_only", &SatParameters::use_lns_only)
|
|
667
|
+
.define_method("use_lns_only=", &SatParameters::set_use_lns_only)
|
|
668
|
+
.define_method("use_ls_only", &SatParameters::use_ls_only)
|
|
669
|
+
.define_method("use_ls_only=", &SatParameters::set_use_ls_only)
|
|
670
|
+
.define_method("use_new_integer_conflict_resolution", &SatParameters::use_new_integer_conflict_resolution)
|
|
671
|
+
.define_method("use_new_integer_conflict_resolution=", &SatParameters::set_use_new_integer_conflict_resolution)
|
|
672
|
+
.define_method("use_objective_lb_search", &SatParameters::use_objective_lb_search)
|
|
673
|
+
.define_method("use_objective_lb_search=", &SatParameters::set_use_objective_lb_search)
|
|
674
|
+
.define_method("use_objective_shaving_search", &SatParameters::use_objective_shaving_search)
|
|
675
|
+
.define_method("use_objective_shaving_search=", &SatParameters::set_use_objective_shaving_search)
|
|
676
|
+
.define_method("use_optimization_hints", &SatParameters::use_optimization_hints)
|
|
677
|
+
.define_method("use_optimization_hints=", &SatParameters::set_use_optimization_hints)
|
|
678
|
+
.define_method("use_optional_variables", &SatParameters::use_optional_variables)
|
|
679
|
+
.define_method("use_optional_variables=", &SatParameters::set_use_optional_variables)
|
|
680
|
+
.define_method("use_overload_checker_in_cumulative", &SatParameters::use_overload_checker_in_cumulative)
|
|
681
|
+
.define_method("use_overload_checker_in_cumulative=", &SatParameters::set_use_overload_checker_in_cumulative)
|
|
682
|
+
.define_method("use_pb_resolution", &SatParameters::use_pb_resolution)
|
|
683
|
+
.define_method("use_pb_resolution=", &SatParameters::set_use_pb_resolution)
|
|
684
|
+
.define_method("use_phase_saving", &SatParameters::use_phase_saving)
|
|
685
|
+
.define_method("use_phase_saving=", &SatParameters::set_use_phase_saving)
|
|
686
|
+
.define_method("use_precedences_in_disjunctive_constraint", &SatParameters::use_precedences_in_disjunctive_constraint)
|
|
687
|
+
.define_method("use_precedences_in_disjunctive_constraint=", &SatParameters::set_use_precedences_in_disjunctive_constraint)
|
|
688
|
+
.define_method("use_probing_search", &SatParameters::use_probing_search)
|
|
689
|
+
.define_method("use_probing_search=", &SatParameters::set_use_probing_search)
|
|
690
|
+
.define_method("use_rins_lns", &SatParameters::use_rins_lns)
|
|
691
|
+
.define_method("use_rins_lns=", &SatParameters::set_use_rins_lns)
|
|
692
|
+
.define_method("use_sat_inprocessing", &SatParameters::use_sat_inprocessing)
|
|
693
|
+
.define_method("use_sat_inprocessing=", &SatParameters::set_use_sat_inprocessing)
|
|
694
|
+
.define_method("use_shared_tree_search", &SatParameters::use_shared_tree_search)
|
|
695
|
+
.define_method("use_shared_tree_search=", &SatParameters::set_use_shared_tree_search)
|
|
696
|
+
.define_method("use_strong_propagation_in_disjunctive", &SatParameters::use_strong_propagation_in_disjunctive)
|
|
697
|
+
.define_method("use_strong_propagation_in_disjunctive=", &SatParameters::set_use_strong_propagation_in_disjunctive)
|
|
698
|
+
.define_method("use_symmetry_in_lp", &SatParameters::use_symmetry_in_lp)
|
|
699
|
+
.define_method("use_symmetry_in_lp=", &SatParameters::set_use_symmetry_in_lp)
|
|
700
|
+
.define_method("use_timetable_edge_finding_in_cumulative", &SatParameters::use_timetable_edge_finding_in_cumulative)
|
|
701
|
+
.define_method("use_timetable_edge_finding_in_cumulative=", &SatParameters::set_use_timetable_edge_finding_in_cumulative)
|
|
702
|
+
.define_method("use_timetabling_in_no_overlap_2d", &SatParameters::use_timetabling_in_no_overlap_2d)
|
|
703
|
+
.define_method("use_timetabling_in_no_overlap_2d=", &SatParameters::set_use_timetabling_in_no_overlap_2d)
|
|
704
|
+
.define_method("use_try_edge_reasoning_in_no_overlap_2d", &SatParameters::use_try_edge_reasoning_in_no_overlap_2d)
|
|
705
|
+
.define_method("use_try_edge_reasoning_in_no_overlap_2d=", &SatParameters::set_use_try_edge_reasoning_in_no_overlap_2d)
|
|
706
|
+
.define_method("variable_activity_decay", &SatParameters::variable_activity_decay)
|
|
707
|
+
.define_method("variable_activity_decay=", &SatParameters::set_variable_activity_decay)
|
|
708
|
+
.define_method("variables_shaving_level", &SatParameters::variables_shaving_level)
|
|
709
|
+
.define_method("variables_shaving_level=", &SatParameters::set_variables_shaving_level)
|
|
710
|
+
.define_method("violation_ls_compound_move_probability", &SatParameters::violation_ls_compound_move_probability)
|
|
711
|
+
.define_method("violation_ls_compound_move_probability=", &SatParameters::set_violation_ls_compound_move_probability)
|
|
712
|
+
.define_method("violation_ls_perturbation_period", &SatParameters::violation_ls_perturbation_period)
|
|
713
|
+
.define_method("violation_ls_perturbation_period=", &SatParameters::set_violation_ls_perturbation_period);
|
|
151
714
|
|
|
152
715
|
Rice::define_class_under<CpModelBuilder>(m, "CpModel")
|
|
153
716
|
.define_constructor(Rice::Constructor<CpModelBuilder>())
|
data/ext/or-tools/routing.cpp
CHANGED
|
@@ -10,6 +10,7 @@ using operations_research::Assignment;
|
|
|
10
10
|
using operations_research::ConstraintSolverParameters;
|
|
11
11
|
using operations_research::DefaultRoutingSearchParameters;
|
|
12
12
|
using operations_research::FirstSolutionStrategy;
|
|
13
|
+
using operations_research::IntervalVarElement;
|
|
13
14
|
using operations_research::LocalSearchMetaheuristic;
|
|
14
15
|
using operations_research::RoutingDimension;
|
|
15
16
|
using operations_research::RoutingDisjunctionIndex;
|
|
@@ -22,6 +23,7 @@ using operations_research::RoutingSearchStatus;
|
|
|
22
23
|
|
|
23
24
|
using Rice::Array;
|
|
24
25
|
using Rice::Class;
|
|
26
|
+
using Rice::Hash;
|
|
25
27
|
using Rice::Module;
|
|
26
28
|
using Rice::Object;
|
|
27
29
|
using Rice::String;
|
|
@@ -96,13 +98,111 @@ namespace Rice::detail {
|
|
|
96
98
|
};
|
|
97
99
|
} // namespace Rice::detail
|
|
98
100
|
|
|
101
|
+
int64_t int64_strict(VALUE v) {
|
|
102
|
+
if (!Object(v).is_a(rb_cInteger)) {
|
|
103
|
+
throw std::invalid_argument{"Coefficient must be integer"};
|
|
104
|
+
}
|
|
105
|
+
return Rice::detail::From_Ruby<int64_t>().convert(v);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
operations_research::IntExpr* int_expr(operations_research::Solver& solver, Object o) {
|
|
109
|
+
Object utils = Rice::define_module("ORTools").const_get("Utils");
|
|
110
|
+
Hash rb_coeffs = utils.call("index_expression", o);
|
|
111
|
+
|
|
112
|
+
std::vector<operations_research::IntVar*> vars;
|
|
113
|
+
std::vector<int64_t> coeffs;
|
|
114
|
+
int64_t constant = 0;
|
|
115
|
+
|
|
116
|
+
for (const auto& entry : rb_coeffs) {
|
|
117
|
+
auto coeff = int64_strict(entry.value.value());
|
|
118
|
+
if (Object(entry.key).is_nil()) {
|
|
119
|
+
constant = coeff;
|
|
120
|
+
} else {
|
|
121
|
+
vars.push_back(Rice::detail::From_Ruby<operations_research::IntVar*>().convert(entry.key.value()));
|
|
122
|
+
coeffs.push_back(coeff);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
operations_research::IntExpr* expr = solver.MakeScalProd(vars, coeffs);
|
|
127
|
+
if (constant != 0) {
|
|
128
|
+
expr = solver.MakeSum(expr, constant);
|
|
129
|
+
}
|
|
130
|
+
return expr;
|
|
131
|
+
}
|
|
132
|
+
|
|
99
133
|
void init_routing(Rice::Module& m) {
|
|
100
134
|
auto rb_cRoutingSearchParameters = Rice::define_class_under<RoutingSearchParameters>(m, "RoutingSearchParameters");
|
|
101
135
|
auto rb_cIntVar = Rice::define_class_under<operations_research::IntVar>(m, "RoutingIntVar");
|
|
102
136
|
|
|
103
137
|
m.define_singleton_function("default_routing_search_parameters", &DefaultRoutingSearchParameters);
|
|
104
138
|
|
|
139
|
+
Rice::define_class_under<RoutingSearchParameters::ImprovementSearchLimitParameters>(rb_cRoutingSearchParameters, "ImprovementSearchLimitParameters")
|
|
140
|
+
.define_method("improvement_rate_coefficient", &RoutingSearchParameters::ImprovementSearchLimitParameters::improvement_rate_coefficient)
|
|
141
|
+
.define_method("improvement_rate_coefficient=", &RoutingSearchParameters::ImprovementSearchLimitParameters::set_improvement_rate_coefficient)
|
|
142
|
+
.define_method("improvement_rate_solutions_distance", &RoutingSearchParameters::ImprovementSearchLimitParameters::improvement_rate_solutions_distance)
|
|
143
|
+
.define_method("improvement_rate_solutions_distance=", &RoutingSearchParameters::ImprovementSearchLimitParameters::set_improvement_rate_solutions_distance);
|
|
144
|
+
|
|
105
145
|
rb_cRoutingSearchParameters
|
|
146
|
+
.define_method("christofides_use_minimum_matching", &RoutingSearchParameters::christofides_use_minimum_matching)
|
|
147
|
+
.define_method("christofides_use_minimum_matching=", &RoutingSearchParameters::set_christofides_use_minimum_matching)
|
|
148
|
+
.define_method("fallback_to_cp_sat_size_threshold", &RoutingSearchParameters::fallback_to_cp_sat_size_threshold)
|
|
149
|
+
.define_method("fallback_to_cp_sat_size_threshold=", &RoutingSearchParameters::set_fallback_to_cp_sat_size_threshold)
|
|
150
|
+
.define_method("first_solution_optimization_period", &RoutingSearchParameters::first_solution_optimization_period)
|
|
151
|
+
.define_method("first_solution_optimization_period=", &RoutingSearchParameters::set_first_solution_optimization_period)
|
|
152
|
+
.define_method("guided_local_search_lambda_coefficient", &RoutingSearchParameters::guided_local_search_lambda_coefficient)
|
|
153
|
+
.define_method("guided_local_search_lambda_coefficient=", &RoutingSearchParameters::set_guided_local_search_lambda_coefficient)
|
|
154
|
+
.define_method("guided_local_search_penalize_with_vehicle_classes", &RoutingSearchParameters::guided_local_search_penalize_with_vehicle_classes)
|
|
155
|
+
.define_method("guided_local_search_penalize_with_vehicle_classes=", &RoutingSearchParameters::set_guided_local_search_penalize_with_vehicle_classes)
|
|
156
|
+
.define_method("guided_local_search_reset_penalties_on_new_best_solution", &RoutingSearchParameters::guided_local_search_reset_penalties_on_new_best_solution)
|
|
157
|
+
.define_method("guided_local_search_reset_penalties_on_new_best_solution=", &RoutingSearchParameters::set_guided_local_search_reset_penalties_on_new_best_solution)
|
|
158
|
+
.define_method("heuristic_close_nodes_lns_num_nodes", &RoutingSearchParameters::heuristic_close_nodes_lns_num_nodes)
|
|
159
|
+
.define_method("heuristic_close_nodes_lns_num_nodes=", &RoutingSearchParameters::set_heuristic_close_nodes_lns_num_nodes)
|
|
160
|
+
.define_method("heuristic_expensive_chain_lns_num_arcs_to_consider", &RoutingSearchParameters::heuristic_expensive_chain_lns_num_arcs_to_consider)
|
|
161
|
+
.define_method("heuristic_expensive_chain_lns_num_arcs_to_consider=", &RoutingSearchParameters::set_heuristic_expensive_chain_lns_num_arcs_to_consider)
|
|
162
|
+
.define_method("log_cost_offset", &RoutingSearchParameters::log_cost_offset)
|
|
163
|
+
.define_method("log_cost_offset=", &RoutingSearchParameters::set_log_cost_offset)
|
|
164
|
+
.define_method("log_cost_scaling_factor", &RoutingSearchParameters::log_cost_scaling_factor)
|
|
165
|
+
.define_method("log_cost_scaling_factor=", &RoutingSearchParameters::set_log_cost_scaling_factor)
|
|
166
|
+
.define_method("log_search", &RoutingSearchParameters::log_search)
|
|
167
|
+
.define_method("log_search=", &RoutingSearchParameters::set_log_search)
|
|
168
|
+
.define_method("log_tag", &RoutingSearchParameters::log_tag)
|
|
169
|
+
// .define_method("log_tag=", &RoutingSearchParameters::set_log_tag)
|
|
170
|
+
.define_method("ls_operator_min_neighbors", &RoutingSearchParameters::ls_operator_min_neighbors)
|
|
171
|
+
.define_method("ls_operator_min_neighbors=", &RoutingSearchParameters::set_ls_operator_min_neighbors)
|
|
172
|
+
.define_method("ls_operator_neighbors_ratio", &RoutingSearchParameters::ls_operator_neighbors_ratio)
|
|
173
|
+
.define_method("ls_operator_neighbors_ratio=", &RoutingSearchParameters::set_ls_operator_neighbors_ratio)
|
|
174
|
+
.define_method("max_swap_active_chain_size", &RoutingSearchParameters::max_swap_active_chain_size)
|
|
175
|
+
.define_method("max_swap_active_chain_size=", &RoutingSearchParameters::set_max_swap_active_chain_size)
|
|
176
|
+
.define_method("multi_armed_bandit_compound_operator_exploration_coefficient", &RoutingSearchParameters::multi_armed_bandit_compound_operator_exploration_coefficient)
|
|
177
|
+
.define_method("multi_armed_bandit_compound_operator_exploration_coefficient=", &RoutingSearchParameters::set_multi_armed_bandit_compound_operator_exploration_coefficient)
|
|
178
|
+
.define_method("multi_armed_bandit_compound_operator_memory_coefficient", &RoutingSearchParameters::multi_armed_bandit_compound_operator_memory_coefficient)
|
|
179
|
+
.define_method("multi_armed_bandit_compound_operator_memory_coefficient=", &RoutingSearchParameters::set_multi_armed_bandit_compound_operator_memory_coefficient)
|
|
180
|
+
.define_method("num_max_local_optima_before_metaheuristic_switch", &RoutingSearchParameters::num_max_local_optima_before_metaheuristic_switch)
|
|
181
|
+
.define_method("num_max_local_optima_before_metaheuristic_switch=", &RoutingSearchParameters::set_num_max_local_optima_before_metaheuristic_switch)
|
|
182
|
+
.define_method("number_of_solutions_to_collect", &RoutingSearchParameters::number_of_solutions_to_collect)
|
|
183
|
+
.define_method("number_of_solutions_to_collect=", &RoutingSearchParameters::set_number_of_solutions_to_collect)
|
|
184
|
+
.define_method("optimization_step", &RoutingSearchParameters::optimization_step)
|
|
185
|
+
.define_method("optimization_step=", &RoutingSearchParameters::set_optimization_step)
|
|
186
|
+
.define_method("relocate_expensive_chain_num_arcs_to_consider", &RoutingSearchParameters::relocate_expensive_chain_num_arcs_to_consider)
|
|
187
|
+
.define_method("relocate_expensive_chain_num_arcs_to_consider=", &RoutingSearchParameters::set_relocate_expensive_chain_num_arcs_to_consider)
|
|
188
|
+
.define_method("report_intermediate_cp_sat_solutions", &RoutingSearchParameters::report_intermediate_cp_sat_solutions)
|
|
189
|
+
.define_method("report_intermediate_cp_sat_solutions=", &RoutingSearchParameters::set_report_intermediate_cp_sat_solutions)
|
|
190
|
+
.define_method("secondary_ls_time_limit_ratio", &RoutingSearchParameters::secondary_ls_time_limit_ratio)
|
|
191
|
+
.define_method("secondary_ls_time_limit_ratio=", &RoutingSearchParameters::set_secondary_ls_time_limit_ratio)
|
|
192
|
+
.define_method("solution_limit", &RoutingSearchParameters::solution_limit)
|
|
193
|
+
.define_method("solution_limit=", &RoutingSearchParameters::set_solution_limit)
|
|
194
|
+
.define_method("use_depth_first_search", &RoutingSearchParameters::use_depth_first_search)
|
|
195
|
+
.define_method("use_depth_first_search=", &RoutingSearchParameters::set_use_depth_first_search)
|
|
196
|
+
.define_method("use_full_propagation", &RoutingSearchParameters::use_full_propagation)
|
|
197
|
+
.define_method("use_full_propagation=", &RoutingSearchParameters::set_use_full_propagation)
|
|
198
|
+
.define_method("use_guided_local_search_penalties_in_local_search_operators", &RoutingSearchParameters::use_guided_local_search_penalties_in_local_search_operators)
|
|
199
|
+
.define_method("use_guided_local_search_penalties_in_local_search_operators=", &RoutingSearchParameters::set_use_guided_local_search_penalties_in_local_search_operators)
|
|
200
|
+
.define_method("use_iterated_local_search", &RoutingSearchParameters::use_iterated_local_search)
|
|
201
|
+
.define_method("use_iterated_local_search=", &RoutingSearchParameters::set_use_iterated_local_search)
|
|
202
|
+
.define_method("use_multi_armed_bandit_concatenate_operators", &RoutingSearchParameters::use_multi_armed_bandit_concatenate_operators)
|
|
203
|
+
.define_method("use_multi_armed_bandit_concatenate_operators=", &RoutingSearchParameters::set_use_multi_armed_bandit_concatenate_operators)
|
|
204
|
+
.define_method("use_unfiltered_first_solution_strategy", &RoutingSearchParameters::use_unfiltered_first_solution_strategy)
|
|
205
|
+
.define_method("use_unfiltered_first_solution_strategy=", &RoutingSearchParameters::set_use_unfiltered_first_solution_strategy)
|
|
106
206
|
.define_method(
|
|
107
207
|
"first_solution_strategy=",
|
|
108
208
|
[](RoutingSearchParameters& self, Object value) {
|
|
@@ -163,16 +263,7 @@ void init_routing(Rice::Module& m) {
|
|
|
163
263
|
|
|
164
264
|
return self.set_local_search_metaheuristic(v);
|
|
165
265
|
})
|
|
166
|
-
.define_method(
|
|
167
|
-
"log_search=",
|
|
168
|
-
[](RoutingSearchParameters& self, bool value) {
|
|
169
|
-
self.set_log_search(value);
|
|
170
|
-
})
|
|
171
|
-
.define_method(
|
|
172
|
-
"solution_limit=",
|
|
173
|
-
[](RoutingSearchParameters& self, int64_t value) {
|
|
174
|
-
self.set_solution_limit(value);
|
|
175
|
-
})
|
|
266
|
+
.define_method("improvement_limit_parameters", &RoutingSearchParameters::mutable_improvement_limit_parameters)
|
|
176
267
|
.define_method(
|
|
177
268
|
"time_limit=",
|
|
178
269
|
[](RoutingSearchParameters& self, int64_t value) {
|
|
@@ -198,14 +289,32 @@ void init_routing(Rice::Module& m) {
|
|
|
198
289
|
.define_method("index_to_node", &RoutingIndexManager::IndexToNode)
|
|
199
290
|
.define_method("node_to_index", &RoutingIndexManager::NodeToIndex);
|
|
200
291
|
|
|
292
|
+
|
|
293
|
+
Rice::define_class_under<IntervalVarElement>(m, "IntervalVarElement")
|
|
294
|
+
.define_method("var", &IntervalVarElement::Var)
|
|
295
|
+
.define_method("start_value", &IntervalVarElement::StartValue)
|
|
296
|
+
.define_method("duration_value", &IntervalVarElement::DurationValue)
|
|
297
|
+
.define_method("end_value", &IntervalVarElement::EndValue)
|
|
298
|
+
.define_method("performed_value", &IntervalVarElement::PerformedValue);
|
|
299
|
+
|
|
300
|
+
Rice::define_class_under<Assignment::IntervalContainer>(m, "IntervalContainer")
|
|
301
|
+
.define_method("size", &Assignment::IntervalContainer::Size)
|
|
302
|
+
.define_method(
|
|
303
|
+
"element",
|
|
304
|
+
[](Assignment::IntervalContainer& self, int index) {
|
|
305
|
+
return self.Element(index);
|
|
306
|
+
});
|
|
307
|
+
|
|
201
308
|
Rice::define_class_under<Assignment>(m, "Assignment")
|
|
202
309
|
.define_method("objective_value", &Assignment::ObjectiveValue)
|
|
203
310
|
.define_method("value", &Assignment::Value)
|
|
204
311
|
.define_method("min", &Assignment::Min)
|
|
205
|
-
.define_method("max", &Assignment::Max)
|
|
312
|
+
.define_method("max", &Assignment::Max)
|
|
313
|
+
.define_method("interval_var_container", &Assignment::IntervalVarContainer);
|
|
206
314
|
|
|
207
315
|
// not to be confused with operations_research::sat::IntVar
|
|
208
316
|
rb_cIntVar
|
|
317
|
+
.define_method("name", &operations_research::IntVar::name)
|
|
209
318
|
.define_method("var?", &operations_research::IntVar::IsVar)
|
|
210
319
|
.define_method("value", &operations_research::IntVar::Value)
|
|
211
320
|
.define_method("remove_value", &operations_research::IntVar::RemoveValue)
|
|
@@ -223,6 +332,7 @@ void init_routing(Rice::Module& m) {
|
|
|
223
332
|
});
|
|
224
333
|
|
|
225
334
|
Rice::define_class_under<operations_research::IntervalVar>(m, "IntervalVar")
|
|
335
|
+
.define_method("name", &operations_research::IntervalVar::name)
|
|
226
336
|
.define_method("start_min", &operations_research::IntervalVar::StartMin)
|
|
227
337
|
.define_method("start_max", &operations_research::IntervalVar::StartMax)
|
|
228
338
|
.define_method("set_start_min", &operations_research::IntervalVar::SetStartMin)
|
|
@@ -250,6 +360,8 @@ void init_routing(Rice::Module& m) {
|
|
|
250
360
|
.define_method("set_global_span_cost_coefficient", &RoutingDimension::SetGlobalSpanCostCoefficient)
|
|
251
361
|
// alias
|
|
252
362
|
.define_method("global_span_cost_coefficient=", &RoutingDimension::SetGlobalSpanCostCoefficient)
|
|
363
|
+
.define_method("set_slack_cost_coefficient_for_vehicle", &RoutingDimension::SetSlackCostCoefficientForVehicle)
|
|
364
|
+
.define_method("set_slack_cost_coefficient_for_all_vehicles", &RoutingDimension::SetSlackCostCoefficientForAllVehicles)
|
|
253
365
|
.define_method("set_cumul_var_soft_upper_bound", &RoutingDimension::SetCumulVarSoftUpperBound)
|
|
254
366
|
.define_method("cumul_var_soft_upper_bound?", &RoutingDimension::HasCumulVarSoftUpperBound)
|
|
255
367
|
.define_method("cumul_var_soft_upper_bound", &RoutingDimension::GetCumulVarSoftUpperBound)
|
|
@@ -257,7 +369,12 @@ void init_routing(Rice::Module& m) {
|
|
|
257
369
|
.define_method("set_cumul_var_soft_lower_bound", &RoutingDimension::SetCumulVarSoftLowerBound)
|
|
258
370
|
.define_method("cumul_var_soft_lower_bound?", &RoutingDimension::HasCumulVarSoftLowerBound)
|
|
259
371
|
.define_method("cumul_var_soft_lower_bound", &RoutingDimension::GetCumulVarSoftLowerBound)
|
|
260
|
-
.define_method("cumul_var_soft_lower_bound_coefficient", &RoutingDimension::GetCumulVarSoftLowerBoundCoefficient)
|
|
372
|
+
.define_method("cumul_var_soft_lower_bound_coefficient", &RoutingDimension::GetCumulVarSoftLowerBoundCoefficient)
|
|
373
|
+
.define_method(
|
|
374
|
+
"set_break_intervals_of_vehicle",
|
|
375
|
+
[](RoutingDimension& self, std::vector<operations_research::IntervalVar*> breaks, int vehicle, std::vector<int64_t> node_visit_transits) {
|
|
376
|
+
self.SetBreakIntervalsOfVehicle(breaks, vehicle, node_visit_transits);
|
|
377
|
+
});
|
|
261
378
|
|
|
262
379
|
Rice::define_class_under<RoutingDisjunctionIndex>(m, "RoutingDisjunctionIndex");
|
|
263
380
|
|
|
@@ -271,11 +388,20 @@ void init_routing(Rice::Module& m) {
|
|
|
271
388
|
[](operations_research::Solver& self, Object o) {
|
|
272
389
|
operations_research::Constraint* constraint;
|
|
273
390
|
if (o.respond_to("left")) {
|
|
274
|
-
|
|
275
|
-
|
|
391
|
+
auto left = int_expr(self, o.call("left"));
|
|
392
|
+
auto right = int_expr(self, o.call("right"));
|
|
276
393
|
std::string op = o.call("op").to_s().str();
|
|
394
|
+
|
|
277
395
|
if (op == "==") {
|
|
278
396
|
constraint = self.MakeEquality(left, right);
|
|
397
|
+
} else if (op == "!=") {
|
|
398
|
+
constraint = self.MakeNonEquality(left, right);
|
|
399
|
+
} else if (op == ">") {
|
|
400
|
+
constraint = self.MakeGreater(left, right);
|
|
401
|
+
} else if (op == ">=") {
|
|
402
|
+
constraint = self.MakeGreaterOrEqual(left, right);
|
|
403
|
+
} else if (op == "<") {
|
|
404
|
+
constraint = self.MakeLess(left, right);
|
|
279
405
|
} else if (op == "<=") {
|
|
280
406
|
constraint = self.MakeLessOrEqual(left, right);
|
|
281
407
|
} else {
|
|
@@ -291,6 +417,11 @@ void init_routing(Rice::Module& m) {
|
|
|
291
417
|
[](operations_research::Solver& self, operations_research::IntVar& start_variable, int64_t duration, const std::string& name) {
|
|
292
418
|
return self.MakeFixedDurationIntervalVar(&start_variable, duration, name);
|
|
293
419
|
})
|
|
420
|
+
.define_method(
|
|
421
|
+
"fixed_duration_interval_var",
|
|
422
|
+
[](operations_research::Solver& self, int64_t start_min, int64_t start_max, int64_t duration, bool optional, const std::string& name) {
|
|
423
|
+
return self.MakeFixedDurationIntervalVar(start_min, start_max, duration, optional, name);
|
|
424
|
+
})
|
|
294
425
|
.define_method(
|
|
295
426
|
"cumulative",
|
|
296
427
|
[](operations_research::Solver& self, Array rb_intervals, const std::vector<int64_t>& demands, int64_t capacity, const std::string& name) {
|
|
@@ -302,18 +433,64 @@ void init_routing(Rice::Module& m) {
|
|
|
302
433
|
});
|
|
303
434
|
|
|
304
435
|
Rice::define_class_under<ConstraintSolverParameters>(m, "ConstraintSolverParameters")
|
|
305
|
-
.define_method(
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
.define_method(
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
436
|
+
.define_method("array_split_size", &ConstraintSolverParameters::array_split_size)
|
|
437
|
+
.define_method("array_split_size=", &ConstraintSolverParameters::set_array_split_size)
|
|
438
|
+
.define_method("check_solution_period", &ConstraintSolverParameters::check_solution_period)
|
|
439
|
+
.define_method("check_solution_period=", &ConstraintSolverParameters::set_check_solution_period)
|
|
440
|
+
.define_method("diffn_use_cumulative", &ConstraintSolverParameters::diffn_use_cumulative)
|
|
441
|
+
.define_method("diffn_use_cumulative=", &ConstraintSolverParameters::set_diffn_use_cumulative)
|
|
442
|
+
.define_method("disable_solve", &ConstraintSolverParameters::disable_solve)
|
|
443
|
+
.define_method("disable_solve=", &ConstraintSolverParameters::set_disable_solve)
|
|
444
|
+
.define_method("max_edge_finder_size", &ConstraintSolverParameters::max_edge_finder_size)
|
|
445
|
+
.define_method("max_edge_finder_size=", &ConstraintSolverParameters::set_max_edge_finder_size)
|
|
446
|
+
.define_method("name_all_variables", &ConstraintSolverParameters::name_all_variables)
|
|
447
|
+
.define_method("name_all_variables=", &ConstraintSolverParameters::set_name_all_variables)
|
|
448
|
+
.define_method("name_cast_variables", &ConstraintSolverParameters::name_cast_variables)
|
|
449
|
+
.define_method("name_cast_variables=", &ConstraintSolverParameters::set_name_cast_variables)
|
|
450
|
+
.define_method("print_added_constraints", &ConstraintSolverParameters::print_added_constraints)
|
|
451
|
+
.define_method("print_added_constraints=", &ConstraintSolverParameters::set_print_added_constraints)
|
|
452
|
+
.define_method("print_local_search_profile", &ConstraintSolverParameters::print_local_search_profile)
|
|
453
|
+
.define_method("print_local_search_profile=", &ConstraintSolverParameters::set_print_local_search_profile)
|
|
454
|
+
.define_method("print_model", &ConstraintSolverParameters::print_model)
|
|
455
|
+
.define_method("print_model=", &ConstraintSolverParameters::set_print_model)
|
|
456
|
+
.define_method("print_model_stats", &ConstraintSolverParameters::print_model_stats)
|
|
457
|
+
.define_method("print_model_stats=", &ConstraintSolverParameters::set_print_model_stats)
|
|
458
|
+
.define_method("profile_file", &ConstraintSolverParameters::profile_file)
|
|
459
|
+
// .define_method("profile_file=", &ConstraintSolverParameters::set_profile_file)
|
|
460
|
+
.define_method("profile_local_search", &ConstraintSolverParameters::profile_local_search)
|
|
461
|
+
.define_method("profile_local_search=", &ConstraintSolverParameters::set_profile_local_search)
|
|
462
|
+
.define_method("profile_propagation", &ConstraintSolverParameters::profile_propagation)
|
|
463
|
+
.define_method("profile_propagation=", &ConstraintSolverParameters::set_profile_propagation)
|
|
464
|
+
.define_method("skip_locally_optimal_paths", &ConstraintSolverParameters::skip_locally_optimal_paths)
|
|
465
|
+
.define_method("skip_locally_optimal_paths=", &ConstraintSolverParameters::set_skip_locally_optimal_paths)
|
|
466
|
+
.define_method("store_names", &ConstraintSolverParameters::store_names)
|
|
467
|
+
.define_method("store_names=", &ConstraintSolverParameters::set_store_names)
|
|
468
|
+
.define_method("trace_propagation", &ConstraintSolverParameters::trace_propagation)
|
|
469
|
+
.define_method("trace_propagation=", &ConstraintSolverParameters::set_trace_propagation)
|
|
470
|
+
.define_method("trace_search", &ConstraintSolverParameters::trace_search)
|
|
471
|
+
.define_method("trace_search=", &ConstraintSolverParameters::set_trace_search)
|
|
472
|
+
.define_method("trail_block_size", &ConstraintSolverParameters::trail_block_size)
|
|
473
|
+
.define_method("trail_block_size=", &ConstraintSolverParameters::set_trail_block_size)
|
|
474
|
+
.define_method("use_all_possible_disjunctions", &ConstraintSolverParameters::use_all_possible_disjunctions)
|
|
475
|
+
.define_method("use_all_possible_disjunctions=", &ConstraintSolverParameters::set_use_all_possible_disjunctions)
|
|
476
|
+
.define_method("use_cumulative_edge_finder", &ConstraintSolverParameters::use_cumulative_edge_finder)
|
|
477
|
+
.define_method("use_cumulative_edge_finder=", &ConstraintSolverParameters::set_use_cumulative_edge_finder)
|
|
478
|
+
.define_method("use_cumulative_time_table", &ConstraintSolverParameters::use_cumulative_time_table)
|
|
479
|
+
.define_method("use_cumulative_time_table=", &ConstraintSolverParameters::set_use_cumulative_time_table)
|
|
480
|
+
.define_method("use_cumulative_time_table_sync", &ConstraintSolverParameters::use_cumulative_time_table_sync)
|
|
481
|
+
.define_method("use_cumulative_time_table_sync=", &ConstraintSolverParameters::set_use_cumulative_time_table_sync)
|
|
482
|
+
.define_method("use_element_rmq", &ConstraintSolverParameters::use_element_rmq)
|
|
483
|
+
.define_method("use_element_rmq=", &ConstraintSolverParameters::set_use_element_rmq)
|
|
484
|
+
.define_method("use_sequence_high_demand_tasks", &ConstraintSolverParameters::use_sequence_high_demand_tasks)
|
|
485
|
+
.define_method("use_sequence_high_demand_tasks=", &ConstraintSolverParameters::set_use_sequence_high_demand_tasks)
|
|
486
|
+
.define_method("use_small_table", &ConstraintSolverParameters::use_small_table)
|
|
487
|
+
.define_method("use_small_table=", &ConstraintSolverParameters::set_use_small_table);
|
|
315
488
|
|
|
316
489
|
Rice::define_class_under<RoutingModelParameters>(m, "RoutingModelParameters")
|
|
490
|
+
.define_method("reduce_vehicle_cost_model", &RoutingModelParameters::reduce_vehicle_cost_model)
|
|
491
|
+
.define_method("reduce_vehicle_cost_model=", &RoutingModelParameters::set_reduce_vehicle_cost_model)
|
|
492
|
+
.define_method("max_callback_cache_size", &RoutingModelParameters::max_callback_cache_size)
|
|
493
|
+
.define_method("max_callback_cache_size=", &RoutingModelParameters::set_max_callback_cache_size)
|
|
317
494
|
.define_method(
|
|
318
495
|
"solver_parameters",
|
|
319
496
|
[](RoutingModelParameters& self) {
|
|
@@ -481,7 +658,17 @@ void init_routing(Rice::Module& m) {
|
|
|
481
658
|
.define_method("write_assignment", &RoutingModel::WriteAssignment)
|
|
482
659
|
.define_method("read_assignment", &RoutingModel::ReadAssignment)
|
|
483
660
|
.define_method("restore_assignment", &RoutingModel::RestoreAssignment)
|
|
484
|
-
.define_method(
|
|
661
|
+
.define_method(
|
|
662
|
+
"_read_assignment_from_routes",
|
|
663
|
+
[](RoutingModel& self, const std::vector<std::vector<int64_t>>& routes, bool ignore_inactive_indices, bool release_gvl) {
|
|
664
|
+
if (release_gvl) {
|
|
665
|
+
return Rice::detail::no_gvl([&]() {
|
|
666
|
+
return self.ReadAssignmentFromRoutes(routes, ignore_inactive_indices);
|
|
667
|
+
});
|
|
668
|
+
} else {
|
|
669
|
+
return self.ReadAssignmentFromRoutes(routes, ignore_inactive_indices);
|
|
670
|
+
}
|
|
671
|
+
})
|
|
485
672
|
.define_method("routes_to_assignment", &RoutingModel::RoutesToAssignment)
|
|
486
673
|
.define_method("assignment_to_routes", &RoutingModel::AssignmentToRoutes)
|
|
487
674
|
.define_method("compact_assignment", &RoutingModel::CompactAssignment)
|
|
@@ -30,6 +30,10 @@ module ORTools
|
|
|
30
30
|
_solve_from_assignment_with_parameters(assignment, search_parameters, !@ruby_callback)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
+
def read_assignment_from_routes(routes, ignore_inactive_indices)
|
|
34
|
+
_read_assignment_from_routes(routes, ignore_inactive_indices, !@ruby_callback)
|
|
35
|
+
end
|
|
36
|
+
|
|
33
37
|
def register_unary_transit_callback(callback)
|
|
34
38
|
@ruby_callback = true
|
|
35
39
|
_register_unary_transit_callback(callback)
|
data/lib/or_tools/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: or-tools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.18.
|
|
4
|
+
version: 0.18.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andrew Kane
|
|
@@ -86,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
86
86
|
- !ruby/object:Gem::Version
|
|
87
87
|
version: '0'
|
|
88
88
|
requirements: []
|
|
89
|
-
rubygems_version: 4.0.
|
|
89
|
+
rubygems_version: 4.0.20
|
|
90
90
|
specification_version: 4
|
|
91
91
|
summary: Operations research tools for Ruby
|
|
92
92
|
test_files: []
|