OR-Tools  8.0
bop_parameters.pb.cc
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/bop/bop_parameters.proto
3 
5 
6 #include <algorithm>
7 
8 #include <google/protobuf/io/coded_stream.h>
9 #include <google/protobuf/extension_set.h>
10 #include <google/protobuf/wire_format_lite.h>
11 #include <google/protobuf/descriptor.h>
12 #include <google/protobuf/generated_message_reflection.h>
13 #include <google/protobuf/reflection_ops.h>
14 #include <google/protobuf/wire_format.h>
15 // @@protoc_insertion_point(includes)
16 #include <google/protobuf/port_def.inc>
17 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fbop_2fbop_5fparameters_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BopOptimizerMethod_ortools_2fbop_2fbop_5fparameters_2eproto;
18 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fbop_2fbop_5fparameters_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_BopSolverOptimizerSet_ortools_2fbop_2fbop_5fparameters_2eproto;
19 namespace operations_research {
20 namespace bop {
22  public:
23  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BopOptimizerMethod> _instance;
26  public:
27  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BopSolverOptimizerSet> _instance;
30  public:
31  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BopParameters> _instance;
33 } // namespace bop
34 } // namespace operations_research
36  GOOGLE_PROTOBUF_VERIFY_VERSION;
37 
38  {
41  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
42  }
43  ::operations_research::bop::BopOptimizerMethod::InitAsDefaultInstance();
44 }
45 
46 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BopOptimizerMethod_ortools_2fbop_2fbop_5fparameters_2eproto =
47  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_BopOptimizerMethod_ortools_2fbop_2fbop_5fparameters_2eproto}, {}};
48 
50  GOOGLE_PROTOBUF_VERIFY_VERSION;
51 
52  ::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.DefaultConstruct();
53  *::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get_mutable() = std::string("methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } ", 714);
54  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyString(
55  ::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get_mutable());
56  {
59  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
60  }
61  ::operations_research::bop::BopParameters::InitAsDefaultInstance();
62 }
63 
64 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_BopParameters_ortools_2fbop_2fbop_5fparameters_2eproto =
65  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_BopParameters_ortools_2fbop_2fbop_5fparameters_2eproto}, {
67 
69  GOOGLE_PROTOBUF_VERIFY_VERSION;
70 
71  {
74  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
75  }
76  ::operations_research::bop::BopSolverOptimizerSet::InitAsDefaultInstance();
77 }
78 
79 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_BopSolverOptimizerSet_ortools_2fbop_2fbop_5fparameters_2eproto =
80  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_BopSolverOptimizerSet_ortools_2fbop_2fbop_5fparameters_2eproto}, {
82 
83 static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fbop_2fbop_5fparameters_2eproto[3];
84 static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_ortools_2fbop_2fbop_5fparameters_2eproto[2];
85 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_ortools_2fbop_2fbop_5fparameters_2eproto = nullptr;
86 
88  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopOptimizerMethod, _has_bits_),
89  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopOptimizerMethod, _internal_metadata_),
90  ~0u, // no _extensions_
91  ~0u, // no _oneof_case_
92  ~0u, // no _weak_field_map_
93  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopOptimizerMethod, type_),
94  0,
95  ~0u, // no _has_bits_
96  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopSolverOptimizerSet, _internal_metadata_),
97  ~0u, // no _extensions_
98  ~0u, // no _oneof_case_
99  ~0u, // no _weak_field_map_
100  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopSolverOptimizerSet, methods_),
101  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _has_bits_),
102  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _internal_metadata_),
103  ~0u, // no _extensions_
104  ~0u, // no _oneof_case_
105  ~0u, // no _weak_field_map_
106  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, max_time_in_seconds_),
107  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, max_deterministic_time_),
108  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, lp_max_deterministic_time_),
109  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, max_number_of_consecutive_failing_optimizer_calls_),
110  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, relative_gap_limit_),
111  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, max_num_decisions_in_ls_),
112  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, max_num_broken_constraints_in_ls_),
113  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, log_search_progress_),
114  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, compute_estimated_impact_),
115  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, prune_search_tree_),
116  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, sort_constraints_by_num_terms_),
117  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, use_random_lns_),
118  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, random_seed_),
119  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, num_relaxed_vars_),
120  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, max_number_of_conflicts_in_random_lns_),
121  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, num_random_lns_tries_),
122  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, max_number_of_backtracks_in_ls_),
123  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, use_lp_lns_),
124  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, use_sat_to_choose_lns_neighbourhood_),
125  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, max_number_of_conflicts_for_quick_check_),
126  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, use_symmetry_),
127  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, exploit_symmetry_in_sat_first_solution_),
128  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, max_number_of_conflicts_in_random_solution_generation_),
129  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, max_number_of_explored_assignments_per_try_in_ls_),
130  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, use_transposition_table_in_ls_),
131  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, use_potential_one_flip_repairs_in_ls_),
132  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, use_learned_binary_clauses_in_lp_),
133  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, number_of_solvers_),
134  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, synchronization_type_),
135  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, solver_optimizer_sets_),
136  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, default_solver_optimizer_sets_),
137  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, use_lp_strong_branching_),
138  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, decomposer_num_variables_threshold_),
139  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, num_bop_solvers_used_by_decomposition_),
140  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, decomposed_problem_min_time_in_seconds_),
141  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, guided_sat_conflicts_chunk_),
142  PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, max_lp_solve_for_feasibility_problems_),
143  12,
144  29,
145  35,
146  6,
147  30,
148  13,
149  34,
150  1,
151  17,
152  2,
153  3,
154  18,
155  14,
156  15,
157  16,
158  21,
159  22,
160  19,
161  20,
162  23,
163  4,
164  7,
165  24,
166  25,
167  26,
168  8,
169  27,
170  28,
171  5,
172  ~0u,
173  0,
174  9,
175  31,
176  32,
177  10,
178  33,
179  11,
180 };
181 static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
182  { 0, 6, sizeof(::operations_research::bop::BopOptimizerMethod)},
183  { 7, -1, sizeof(::operations_research::bop::BopSolverOptimizerSet)},
184  { 13, 55, sizeof(::operations_research::bop::BopParameters)},
185 };
186 
187 static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
188  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::bop::_BopOptimizerMethod_default_instance_),
189  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::bop::_BopSolverOptimizerSet_default_instance_),
190  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::bop::_BopParameters_default_instance_),
191 };
192 
193 const char descriptor_table_protodef_ortools_2fbop_2fbop_5fparameters_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
194  "\n ortools/bop/bop_parameters.proto\022\027oper"
195  "ations_research.bop\"\204\004\n\022BopOptimizerMeth"
196  "od\022G\n\004type\030\001 \001(\01629.operations_research.b"
197  "op.BopOptimizerMethod.OptimizerType\"\244\003\n\r"
198  "OptimizerType\022\022\n\016SAT_CORE_BASED\020\000\022\025\n\021SAT"
199  "_LINEAR_SEARCH\020\017\022\025\n\021LINEAR_RELAXATION\020\001\022"
200  "\020\n\014LOCAL_SEARCH\020\002\022\031\n\025RANDOM_FIRST_SOLUTI"
201  "ON\020\003\022\031\n\025RANDOM_CONSTRAINT_LNS\020\004\022\027\n\023RANDO"
202  "M_VARIABLE_LNS\020\005\022\020\n\014COMPLETE_LNS\020\007\022\025\n\021LP"
203  "_FIRST_SOLUTION\020\010\022\034\n\030OBJECTIVE_FIRST_SOL"
204  "UTION\020\t\022\036\n\032USER_GUIDED_FIRST_SOLUTION\020\016\022"
205  "&\n\"RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP\020\013\022"
206  "$\n RANDOM_VARIABLE_LNS_GUIDED_BY_LP\020\014\022\026\n"
207  "\022RELATION_GRAPH_LNS\020\020\022#\n\037RELATION_GRAPH_"
208  "LNS_GUIDED_BY_LP\020\021\"U\n\025BopSolverOptimizer"
209  "Set\022<\n\007methods\030\001 \003(\0132+.operations_resear"
210  "ch.bop.BopOptimizerMethod\"\356\023\n\rBopParamet"
211  "ers\022 \n\023max_time_in_seconds\030\001 \001(\001:\003inf\022#\n"
212  "\026max_deterministic_time\030\033 \001(\001:\003inf\022$\n\031lp"
213  "_max_deterministic_time\030% \001(\001:\0011\0229\n1max_"
214  "number_of_consecutive_failing_optimizer_"
215  "calls\030# \001(\005\022\"\n\022relative_gap_limit\030\034 \001(\001:"
216  "\0060.0001\022\"\n\027max_num_decisions_in_ls\030\002 \001(\005"
217  ":\0014\0224\n max_num_broken_constraints_in_ls\030"
218  "& \001(\005:\n2147483647\022\"\n\023log_search_progress"
219  "\030\016 \001(\010:\005false\022&\n\030compute_estimated_impac"
220  "t\030\003 \001(\010:\004true\022 \n\021prune_search_tree\030\004 \001(\010"
221  ":\005false\022,\n\035sort_constraints_by_num_terms"
222  "\030\005 \001(\010:\005false\022\034\n\016use_random_lns\030\006 \001(\010:\004t"
223  "rue\022\026\n\013random_seed\030\007 \001(\005:\0018\022\034\n\020num_relax"
224  "ed_vars\030\010 \001(\005:\00210\0223\n%max_number_of_confl"
225  "icts_in_random_lns\030\t \001(\005:\0042500\022\037\n\024num_ra"
226  "ndom_lns_tries\030\n \001(\005:\0011\0221\n\036max_number_of"
227  "_backtracks_in_ls\030\013 \001(\003:\t100000000\022\030\n\nus"
228  "e_lp_lns\030\014 \001(\010:\004true\0221\n#use_sat_to_choos"
229  "e_lns_neighbourhood\030\017 \001(\010:\004true\0223\n\'max_n"
230  "umber_of_conflicts_for_quick_check\030\020 \001(\005"
231  ":\00210\022\033\n\014use_symmetry\030\021 \001(\010:\005false\0225\n&exp"
232  "loit_symmetry_in_sat_first_solution\030( \001("
233  "\010:\005false\022B\n5max_number_of_conflicts_in_r"
234  "andom_solution_generation\030\024 \001(\005:\003500\022\?\n0"
235  "max_number_of_explored_assignments_per_t"
236  "ry_in_ls\030\025 \001(\003:\00510000\022+\n\035use_transpositi"
237  "on_table_in_ls\030\026 \001(\010:\004true\0223\n$use_potent"
238  "ial_one_flip_repairs_in_ls\030\' \001(\010:\005false\022"
239  ".\n use_learned_binary_clauses_in_lp\030\027 \001("
240  "\010:\004true\022\034\n\021number_of_solvers\030\030 \001(\005:\0011\022r\n"
241  "\024synchronization_type\030\031 \001(\0162@.operations"
242  "_research.bop.BopParameters.ThreadSynchr"
243  "onizationType:\022NO_SYNCHRONIZATION\022M\n\025sol"
244  "ver_optimizer_sets\030\032 \003(\0132..operations_re"
245  "search.bop.BopSolverOptimizerSet\022\362\005\n\035def"
246  "ault_solver_optimizer_sets\030! \001(\t:\312\005metho"
247  "ds:{type:LOCAL_SEARCH } "
248  " methods:{type:RANDOM_FIRST_SOLUTIO"
249  "N } methods:{type:LINEAR_RE"
250  "LAXATION } methods:{typ"
251  "e:LP_FIRST_SOLUTION } m"
252  "ethods:{type:OBJECTIVE_FIRST_SOLUTION } "
253  " methods:{type:USER_GUIDED_FIRS"
254  "T_SOLUTION } methods:{type:RANDO"
255  "M_CONSTRAINT_LNS_GUIDED_BY_LP } methods:"
256  "{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP }"
257  " methods:{type:RELATION_GRAPH_LNS } "
258  " methods:{type:RELATION_GRA"
259  "PH_LNS_GUIDED_BY_LP } methods:{type:R"
260  "ANDOM_CONSTRAINT_LNS } meth"
261  "ods:{type:RANDOM_VARIABLE_LNS } "
262  " methods:{type:SAT_CORE_BASED } "
263  " methods:{type:COMPLETE"
264  "_LNS } \022&\n\027use_lp_"
265  "strong_branching\030\035 \001(\010:\005false\022.\n\"decompo"
266  "ser_num_variables_threshold\030\036 \001(\005:\00250\0220\n"
267  "%num_bop_solvers_used_by_decomposition\030\037"
268  " \001(\005:\0011\0221\n&decomposed_problem_min_time_i"
269  "n_seconds\030$ \001(\001:\0010\022(\n\032guided_sat_conflic"
270  "ts_chunk\030\" \001(\005:\0041000\0220\n%max_lp_solve_for"
271  "_feasibility_problems\030) \001(\005:\0010\"b\n\031Thread"
272  "SynchronizationType\022\026\n\022NO_SYNCHRONIZATIO"
273  "N\020\000\022\023\n\017SYNCHRONIZE_ALL\020\001\022\030\n\024SYNCHRONIZE_"
274  "ON_RIGHT\020\002"
275  ;
276 static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_deps[1] = {
277 };
278 static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_sccs[3] = {
282 };
283 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_once;
284 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto = {
285  false, false, descriptor_table_protodef_ortools_2fbop_2fbop_5fparameters_2eproto, "ortools/bop/bop_parameters.proto", 3210,
289 };
290 
291 // Force running AddDescriptors() at dynamic initialization time.
292 static bool dynamic_init_dummy_ortools_2fbop_2fbop_5fparameters_2eproto = (static_cast<void>(::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto)), true);
293 namespace operations_research {
294 namespace bop {
295 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* BopOptimizerMethod_OptimizerType_descriptor() {
296  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto);
298 }
300  switch (value) {
301  case 0:
302  case 1:
303  case 2:
304  case 3:
305  case 4:
306  case 5:
307  case 7:
308  case 8:
309  case 9:
310  case 11:
311  case 12:
312  case 14:
313  case 15:
314  case 16:
315  case 17:
316  return true;
317  default:
318  return false;
319  }
320 }
321 
322 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
323 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::SAT_CORE_BASED;
324 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::SAT_LINEAR_SEARCH;
325 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::LINEAR_RELAXATION;
326 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::LOCAL_SEARCH;
327 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::RANDOM_FIRST_SOLUTION;
328 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::RANDOM_CONSTRAINT_LNS;
329 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::RANDOM_VARIABLE_LNS;
330 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::COMPLETE_LNS;
331 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::LP_FIRST_SOLUTION;
332 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::OBJECTIVE_FIRST_SOLUTION;
333 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::USER_GUIDED_FIRST_SOLUTION;
334 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP;
335 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::RANDOM_VARIABLE_LNS_GUIDED_BY_LP;
336 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::RELATION_GRAPH_LNS;
337 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::RELATION_GRAPH_LNS_GUIDED_BY_LP;
338 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::OptimizerType_MIN;
339 constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod::OptimizerType_MAX;
340 constexpr int BopOptimizerMethod::OptimizerType_ARRAYSIZE;
341 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
342 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* BopParameters_ThreadSynchronizationType_descriptor() {
343  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto);
345 }
347  switch (value) {
348  case 0:
349  case 1:
350  case 2:
351  return true;
352  default:
353  return false;
354  }
355 }
356 
357 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
358 constexpr BopParameters_ThreadSynchronizationType BopParameters::NO_SYNCHRONIZATION;
359 constexpr BopParameters_ThreadSynchronizationType BopParameters::SYNCHRONIZE_ALL;
360 constexpr BopParameters_ThreadSynchronizationType BopParameters::SYNCHRONIZE_ON_RIGHT;
361 constexpr BopParameters_ThreadSynchronizationType BopParameters::ThreadSynchronizationType_MIN;
362 constexpr BopParameters_ThreadSynchronizationType BopParameters::ThreadSynchronizationType_MAX;
363 constexpr int BopParameters::ThreadSynchronizationType_ARRAYSIZE;
364 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
365 
366 // ===================================================================
367 
368 void BopOptimizerMethod::InitAsDefaultInstance() {
369 }
371  public:
372  using HasBits = decltype(std::declval<BopOptimizerMethod>()._has_bits_);
373  static void set_has_type(HasBits* has_bits) {
374  (*has_bits)[0] |= 1u;
375  }
376 };
377 
378 BopOptimizerMethod::BopOptimizerMethod(::PROTOBUF_NAMESPACE_ID::Arena* arena)
379  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
380  SharedCtor();
381  RegisterArenaDtor(arena);
382  // @@protoc_insertion_point(arena_constructor:operations_research.bop.BopOptimizerMethod)
383 }
384 BopOptimizerMethod::BopOptimizerMethod(const BopOptimizerMethod& from)
385  : ::PROTOBUF_NAMESPACE_ID::Message(),
386  _has_bits_(from._has_bits_) {
387  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
388  type_ = from.type_;
389  // @@protoc_insertion_point(copy_constructor:operations_research.bop.BopOptimizerMethod)
390 }
391 
392 void BopOptimizerMethod::SharedCtor() {
393  type_ = 0;
394 }
395 
396 BopOptimizerMethod::~BopOptimizerMethod() {
397  // @@protoc_insertion_point(destructor:operations_research.bop.BopOptimizerMethod)
398  SharedDtor();
399  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
400 }
401 
402 void BopOptimizerMethod::SharedDtor() {
403  GOOGLE_DCHECK(GetArena() == nullptr);
404 }
405 
406 void BopOptimizerMethod::ArenaDtor(void* object) {
407  BopOptimizerMethod* _this = reinterpret_cast< BopOptimizerMethod* >(object);
408  (void)_this;
409 }
410 void BopOptimizerMethod::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
411 }
412 void BopOptimizerMethod::SetCachedSize(int size) const {
413  _cached_size_.Set(size);
414 }
415 const BopOptimizerMethod& BopOptimizerMethod::default_instance() {
416  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BopOptimizerMethod_ortools_2fbop_2fbop_5fparameters_2eproto.base);
417  return *internal_default_instance();
418 }
419 
420 
421 void BopOptimizerMethod::Clear() {
422 // @@protoc_insertion_point(message_clear_start:operations_research.bop.BopOptimizerMethod)
423  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
424  // Prevent compiler warnings about cached_has_bits being unused
425  (void) cached_has_bits;
426 
427  type_ = 0;
428  _has_bits_.Clear();
429  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
430 }
431 
432 const char* BopOptimizerMethod::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
433 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
434  _Internal::HasBits has_bits{};
435  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
436  while (!ctx->Done(&ptr)) {
438  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
439  CHK_(ptr);
440  switch (tag >> 3) {
441  // optional .operations_research.bop.BopOptimizerMethod.OptimizerType type = 1;
442  case 1:
443  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
444  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
445  CHK_(ptr);
446  if (PROTOBUF_PREDICT_TRUE(::operations_research::bop::BopOptimizerMethod_OptimizerType_IsValid(val))) {
447  _internal_set_type(static_cast<::operations_research::bop::BopOptimizerMethod_OptimizerType>(val));
448  } else {
449  ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields());
450  }
451  } else goto handle_unusual;
452  continue;
453  default: {
454  handle_unusual:
455  if ((tag & 7) == 4 || tag == 0) {
456  ctx->SetLastTag(tag);
457  goto success;
458  }
459  ptr = UnknownFieldParse(tag,
460  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
461  ptr, ctx);
462  CHK_(ptr != nullptr);
463  continue;
464  }
465  } // switch
466  } // while
467 success:
468  _has_bits_.Or(has_bits);
469  return ptr;
470 failure:
471  ptr = nullptr;
472  goto success;
473 #undef CHK_
474 }
475 
476 ::PROTOBUF_NAMESPACE_ID::uint8* BopOptimizerMethod::_InternalSerialize(
477  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
478  // @@protoc_insertion_point(serialize_to_array_start:operations_research.bop.BopOptimizerMethod)
479  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
480  (void) cached_has_bits;
481 
482  cached_has_bits = _has_bits_[0];
483  // optional .operations_research.bop.BopOptimizerMethod.OptimizerType type = 1;
484  if (cached_has_bits & 0x00000001u) {
485  target = stream->EnsureSpace(target);
486  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
487  1, this->_internal_type(), target);
488  }
489 
490  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
491  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
492  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
493  }
494  // @@protoc_insertion_point(serialize_to_array_end:operations_research.bop.BopOptimizerMethod)
495  return target;
496 }
497 
498 size_t BopOptimizerMethod::ByteSizeLong() const {
499 // @@protoc_insertion_point(message_byte_size_start:operations_research.bop.BopOptimizerMethod)
500  size_t total_size = 0;
501 
502  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
503  // Prevent compiler warnings about cached_has_bits being unused
504  (void) cached_has_bits;
505 
506  // optional .operations_research.bop.BopOptimizerMethod.OptimizerType type = 1;
507  cached_has_bits = _has_bits_[0];
508  if (cached_has_bits & 0x00000001u) {
509  total_size += 1 +
510  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_type());
511  }
512 
513  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
514  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
515  _internal_metadata_, total_size, &_cached_size_);
516  }
517  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
518  SetCachedSize(cached_size);
519  return total_size;
520 }
521 
522 void BopOptimizerMethod::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
523 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.bop.BopOptimizerMethod)
524  GOOGLE_DCHECK_NE(&from, this);
525  const BopOptimizerMethod* source =
526  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BopOptimizerMethod>(
527  &from);
528  if (source == nullptr) {
529  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.bop.BopOptimizerMethod)
530  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
531  } else {
532  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.bop.BopOptimizerMethod)
533  MergeFrom(*source);
534  }
535 }
536 
537 void BopOptimizerMethod::MergeFrom(const BopOptimizerMethod& from) {
538 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.bop.BopOptimizerMethod)
539  GOOGLE_DCHECK_NE(&from, this);
540  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
541  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
542  (void) cached_has_bits;
543 
544  if (from._internal_has_type()) {
545  _internal_set_type(from._internal_type());
546  }
547 }
548 
549 void BopOptimizerMethod::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
550 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.bop.BopOptimizerMethod)
551  if (&from == this) return;
552  Clear();
553  MergeFrom(from);
554 }
555 
556 void BopOptimizerMethod::CopyFrom(const BopOptimizerMethod& from) {
557 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.bop.BopOptimizerMethod)
558  if (&from == this) return;
559  Clear();
560  MergeFrom(from);
561 }
562 
563 bool BopOptimizerMethod::IsInitialized() const {
564  return true;
565 }
566 
567 void BopOptimizerMethod::InternalSwap(BopOptimizerMethod* other) {
568  using std::swap;
569  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
570  swap(_has_bits_[0], other->_has_bits_[0]);
571  swap(type_, other->type_);
572 }
573 
574 ::PROTOBUF_NAMESPACE_ID::Metadata BopOptimizerMethod::GetMetadata() const {
575  return GetMetadataStatic();
576 }
577 
578 
579 // ===================================================================
580 
581 void BopSolverOptimizerSet::InitAsDefaultInstance() {
582 }
584  public:
585 };
586 
587 BopSolverOptimizerSet::BopSolverOptimizerSet(::PROTOBUF_NAMESPACE_ID::Arena* arena)
588  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
589  methods_(arena) {
590  SharedCtor();
591  RegisterArenaDtor(arena);
592  // @@protoc_insertion_point(arena_constructor:operations_research.bop.BopSolverOptimizerSet)
593 }
594 BopSolverOptimizerSet::BopSolverOptimizerSet(const BopSolverOptimizerSet& from)
595  : ::PROTOBUF_NAMESPACE_ID::Message(),
596  methods_(from.methods_) {
597  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
598  // @@protoc_insertion_point(copy_constructor:operations_research.bop.BopSolverOptimizerSet)
599 }
600 
601 void BopSolverOptimizerSet::SharedCtor() {
602  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_BopSolverOptimizerSet_ortools_2fbop_2fbop_5fparameters_2eproto.base);
603 }
604 
605 BopSolverOptimizerSet::~BopSolverOptimizerSet() {
606  // @@protoc_insertion_point(destructor:operations_research.bop.BopSolverOptimizerSet)
607  SharedDtor();
608  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
609 }
610 
611 void BopSolverOptimizerSet::SharedDtor() {
612  GOOGLE_DCHECK(GetArena() == nullptr);
613 }
614 
615 void BopSolverOptimizerSet::ArenaDtor(void* object) {
616  BopSolverOptimizerSet* _this = reinterpret_cast< BopSolverOptimizerSet* >(object);
617  (void)_this;
618 }
619 void BopSolverOptimizerSet::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
620 }
621 void BopSolverOptimizerSet::SetCachedSize(int size) const {
622  _cached_size_.Set(size);
623 }
624 const BopSolverOptimizerSet& BopSolverOptimizerSet::default_instance() {
625  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BopSolverOptimizerSet_ortools_2fbop_2fbop_5fparameters_2eproto.base);
626  return *internal_default_instance();
627 }
628 
629 
630 void BopSolverOptimizerSet::Clear() {
631 // @@protoc_insertion_point(message_clear_start:operations_research.bop.BopSolverOptimizerSet)
632  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
633  // Prevent compiler warnings about cached_has_bits being unused
634  (void) cached_has_bits;
635 
636  methods_.Clear();
637  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
638 }
639 
640 const char* BopSolverOptimizerSet::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
641 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
642  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
643  while (!ctx->Done(&ptr)) {
645  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
646  CHK_(ptr);
647  switch (tag >> 3) {
648  // repeated .operations_research.bop.BopOptimizerMethod methods = 1;
649  case 1:
650  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
651  ptr -= 1;
652  do {
653  ptr += 1;
654  ptr = ctx->ParseMessage(_internal_add_methods(), ptr);
655  CHK_(ptr);
656  if (!ctx->DataAvailable(ptr)) break;
657  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
658  } else goto handle_unusual;
659  continue;
660  default: {
661  handle_unusual:
662  if ((tag & 7) == 4 || tag == 0) {
663  ctx->SetLastTag(tag);
664  goto success;
665  }
666  ptr = UnknownFieldParse(tag,
667  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
668  ptr, ctx);
669  CHK_(ptr != nullptr);
670  continue;
671  }
672  } // switch
673  } // while
674 success:
675  return ptr;
676 failure:
677  ptr = nullptr;
678  goto success;
679 #undef CHK_
680 }
681 
682 ::PROTOBUF_NAMESPACE_ID::uint8* BopSolverOptimizerSet::_InternalSerialize(
683  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
684  // @@protoc_insertion_point(serialize_to_array_start:operations_research.bop.BopSolverOptimizerSet)
685  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
686  (void) cached_has_bits;
687 
688  // repeated .operations_research.bop.BopOptimizerMethod methods = 1;
689  for (unsigned int i = 0,
690  n = static_cast<unsigned int>(this->_internal_methods_size()); i < n; i++) {
691  target = stream->EnsureSpace(target);
692  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
693  InternalWriteMessage(1, this->_internal_methods(i), target, stream);
694  }
695 
696  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
697  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
698  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
699  }
700  // @@protoc_insertion_point(serialize_to_array_end:operations_research.bop.BopSolverOptimizerSet)
701  return target;
702 }
703 
704 size_t BopSolverOptimizerSet::ByteSizeLong() const {
705 // @@protoc_insertion_point(message_byte_size_start:operations_research.bop.BopSolverOptimizerSet)
706  size_t total_size = 0;
707 
708  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
709  // Prevent compiler warnings about cached_has_bits being unused
710  (void) cached_has_bits;
711 
712  // repeated .operations_research.bop.BopOptimizerMethod methods = 1;
713  total_size += 1UL * this->_internal_methods_size();
714  for (const auto& msg : this->methods_) {
715  total_size +=
716  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
717  }
718 
719  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
720  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
721  _internal_metadata_, total_size, &_cached_size_);
722  }
723  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
724  SetCachedSize(cached_size);
725  return total_size;
726 }
727 
728 void BopSolverOptimizerSet::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
729 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.bop.BopSolverOptimizerSet)
730  GOOGLE_DCHECK_NE(&from, this);
731  const BopSolverOptimizerSet* source =
732  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BopSolverOptimizerSet>(
733  &from);
734  if (source == nullptr) {
735  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.bop.BopSolverOptimizerSet)
736  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
737  } else {
738  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.bop.BopSolverOptimizerSet)
739  MergeFrom(*source);
740  }
741 }
742 
743 void BopSolverOptimizerSet::MergeFrom(const BopSolverOptimizerSet& from) {
744 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.bop.BopSolverOptimizerSet)
745  GOOGLE_DCHECK_NE(&from, this);
746  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
747  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
748  (void) cached_has_bits;
749 
750  methods_.MergeFrom(from.methods_);
751 }
752 
753 void BopSolverOptimizerSet::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
754 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.bop.BopSolverOptimizerSet)
755  if (&from == this) return;
756  Clear();
757  MergeFrom(from);
758 }
759 
760 void BopSolverOptimizerSet::CopyFrom(const BopSolverOptimizerSet& from) {
761 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.bop.BopSolverOptimizerSet)
762  if (&from == this) return;
763  Clear();
764  MergeFrom(from);
765 }
766 
767 bool BopSolverOptimizerSet::IsInitialized() const {
768  return true;
769 }
770 
771 void BopSolverOptimizerSet::InternalSwap(BopSolverOptimizerSet* other) {
772  using std::swap;
773  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
774  methods_.InternalSwap(&other->methods_);
775 }
776 
777 ::PROTOBUF_NAMESPACE_ID::Metadata BopSolverOptimizerSet::GetMetadata() const {
778  return GetMetadataStatic();
779 }
780 
781 
782 // ===================================================================
783 
784 void BopParameters::InitAsDefaultInstance() {
785 }
787  public:
788  using HasBits = decltype(std::declval<BopParameters>()._has_bits_);
789  static void set_has_max_time_in_seconds(HasBits* has_bits) {
790  (*has_bits)[0] |= 4096u;
791  }
792  static void set_has_max_deterministic_time(HasBits* has_bits) {
793  (*has_bits)[0] |= 536870912u;
794  }
796  (*has_bits)[1] |= 8u;
797  }
799  (*has_bits)[0] |= 64u;
800  }
801  static void set_has_relative_gap_limit(HasBits* has_bits) {
802  (*has_bits)[0] |= 1073741824u;
803  }
804  static void set_has_max_num_decisions_in_ls(HasBits* has_bits) {
805  (*has_bits)[0] |= 8192u;
806  }
808  (*has_bits)[1] |= 4u;
809  }
810  static void set_has_log_search_progress(HasBits* has_bits) {
811  (*has_bits)[0] |= 2u;
812  }
813  static void set_has_compute_estimated_impact(HasBits* has_bits) {
814  (*has_bits)[0] |= 131072u;
815  }
816  static void set_has_prune_search_tree(HasBits* has_bits) {
817  (*has_bits)[0] |= 4u;
818  }
820  (*has_bits)[0] |= 8u;
821  }
822  static void set_has_use_random_lns(HasBits* has_bits) {
823  (*has_bits)[0] |= 262144u;
824  }
825  static void set_has_random_seed(HasBits* has_bits) {
826  (*has_bits)[0] |= 16384u;
827  }
828  static void set_has_num_relaxed_vars(HasBits* has_bits) {
829  (*has_bits)[0] |= 32768u;
830  }
832  (*has_bits)[0] |= 65536u;
833  }
834  static void set_has_num_random_lns_tries(HasBits* has_bits) {
835  (*has_bits)[0] |= 2097152u;
836  }
838  (*has_bits)[0] |= 4194304u;
839  }
840  static void set_has_use_lp_lns(HasBits* has_bits) {
841  (*has_bits)[0] |= 524288u;
842  }
844  (*has_bits)[0] |= 1048576u;
845  }
847  (*has_bits)[0] |= 8388608u;
848  }
849  static void set_has_use_symmetry(HasBits* has_bits) {
850  (*has_bits)[0] |= 16u;
851  }
853  (*has_bits)[0] |= 128u;
854  }
856  (*has_bits)[0] |= 16777216u;
857  }
859  (*has_bits)[0] |= 33554432u;
860  }
862  (*has_bits)[0] |= 67108864u;
863  }
865  (*has_bits)[0] |= 256u;
866  }
868  (*has_bits)[0] |= 134217728u;
869  }
870  static void set_has_number_of_solvers(HasBits* has_bits) {
871  (*has_bits)[0] |= 268435456u;
872  }
873  static void set_has_synchronization_type(HasBits* has_bits) {
874  (*has_bits)[0] |= 32u;
875  }
877  (*has_bits)[0] |= 1u;
878  }
879  static void set_has_use_lp_strong_branching(HasBits* has_bits) {
880  (*has_bits)[0] |= 512u;
881  }
883  (*has_bits)[0] |= 2147483648u;
884  }
886  (*has_bits)[1] |= 1u;
887  }
889  (*has_bits)[0] |= 1024u;
890  }
892  (*has_bits)[1] |= 2u;
893  }
895  (*has_bits)[0] |= 2048u;
896  }
897 };
898 
899 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string> BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_;
900 BopParameters::BopParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
901  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
902  solver_optimizer_sets_(arena) {
903  SharedCtor();
904  RegisterArenaDtor(arena);
905  // @@protoc_insertion_point(arena_constructor:operations_research.bop.BopParameters)
906 }
907 BopParameters::BopParameters(const BopParameters& from)
908  : ::PROTOBUF_NAMESPACE_ID::Message(),
909  _has_bits_(from._has_bits_),
910  solver_optimizer_sets_(from.solver_optimizer_sets_) {
911  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
912  default_solver_optimizer_sets_.UnsafeSetDefault(&::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get());
913  if (from._internal_has_default_solver_optimizer_sets()) {
914  default_solver_optimizer_sets_.Set(&::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get(), from._internal_default_solver_optimizer_sets(),
915  GetArena());
916  }
917  ::memcpy(&log_search_progress_, &from.log_search_progress_,
918  static_cast<size_t>(reinterpret_cast<char*>(&lp_max_deterministic_time_) -
919  reinterpret_cast<char*>(&log_search_progress_)) + sizeof(lp_max_deterministic_time_));
920  // @@protoc_insertion_point(copy_constructor:operations_research.bop.BopParameters)
921 }
922 
923 void BopParameters::SharedCtor() {
924  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_BopParameters_ortools_2fbop_2fbop_5fparameters_2eproto.base);
925  default_solver_optimizer_sets_.UnsafeSetDefault(&::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get());
926  ::memset(&log_search_progress_, 0, static_cast<size_t>(
927  reinterpret_cast<char*>(&max_lp_solve_for_feasibility_problems_) -
928  reinterpret_cast<char*>(&log_search_progress_)) + sizeof(max_lp_solve_for_feasibility_problems_));
929  max_time_in_seconds_ = std::numeric_limits<double>::infinity();
930  max_num_decisions_in_ls_ = 4;
931  random_seed_ = 8;
932  num_relaxed_vars_ = 10;
933  max_number_of_conflicts_in_random_lns_ = 2500;
934  compute_estimated_impact_ = true;
935  use_random_lns_ = true;
936  use_lp_lns_ = true;
937  use_sat_to_choose_lns_neighbourhood_ = true;
938  num_random_lns_tries_ = 1;
939  max_number_of_backtracks_in_ls_ = PROTOBUF_LONGLONG(100000000);
940  max_number_of_conflicts_for_quick_check_ = 10;
941  max_number_of_conflicts_in_random_solution_generation_ = 500;
942  max_number_of_explored_assignments_per_try_in_ls_ = PROTOBUF_LONGLONG(10000);
943  use_transposition_table_in_ls_ = true;
944  use_learned_binary_clauses_in_lp_ = true;
945  number_of_solvers_ = 1;
946  max_deterministic_time_ = std::numeric_limits<double>::infinity();
947  relative_gap_limit_ = 0.0001;
948  decomposer_num_variables_threshold_ = 50;
949  num_bop_solvers_used_by_decomposition_ = 1;
950  guided_sat_conflicts_chunk_ = 1000;
951  max_num_broken_constraints_in_ls_ = 2147483647;
952  lp_max_deterministic_time_ = 1;
953 }
954 
955 BopParameters::~BopParameters() {
956  // @@protoc_insertion_point(destructor:operations_research.bop.BopParameters)
957  SharedDtor();
958  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
959 }
960 
961 void BopParameters::SharedDtor() {
962  GOOGLE_DCHECK(GetArena() == nullptr);
963  default_solver_optimizer_sets_.DestroyNoArena(&::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get());
964 }
965 
966 void BopParameters::ArenaDtor(void* object) {
967  BopParameters* _this = reinterpret_cast< BopParameters* >(object);
968  (void)_this;
969 }
970 void BopParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
971 }
972 void BopParameters::SetCachedSize(int size) const {
973  _cached_size_.Set(size);
974 }
975 const BopParameters& BopParameters::default_instance() {
976  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BopParameters_ortools_2fbop_2fbop_5fparameters_2eproto.base);
977  return *internal_default_instance();
978 }
979 
980 
981 void BopParameters::Clear() {
982 // @@protoc_insertion_point(message_clear_start:operations_research.bop.BopParameters)
983  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
984  // Prevent compiler warnings about cached_has_bits being unused
985  (void) cached_has_bits;
986 
987  solver_optimizer_sets_.Clear();
988  cached_has_bits = _has_bits_[0];
989  if (cached_has_bits & 0x00000001u) {
990  default_solver_optimizer_sets_.ClearToDefault(&::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get(), GetArena());
991  }
992  if (cached_has_bits & 0x000000feu) {
993  ::memset(&log_search_progress_, 0, static_cast<size_t>(
994  reinterpret_cast<char*>(&exploit_symmetry_in_sat_first_solution_) -
995  reinterpret_cast<char*>(&log_search_progress_)) + sizeof(exploit_symmetry_in_sat_first_solution_));
996  }
997  if (cached_has_bits & 0x0000ff00u) {
998  ::memset(&use_potential_one_flip_repairs_in_ls_, 0, static_cast<size_t>(
999  reinterpret_cast<char*>(&max_lp_solve_for_feasibility_problems_) -
1000  reinterpret_cast<char*>(&use_potential_one_flip_repairs_in_ls_)) + sizeof(max_lp_solve_for_feasibility_problems_));
1001  max_time_in_seconds_ = std::numeric_limits<double>::infinity();
1002  max_num_decisions_in_ls_ = 4;
1003  random_seed_ = 8;
1004  num_relaxed_vars_ = 10;
1005  }
1006  if (cached_has_bits & 0x00ff0000u) {
1007  max_number_of_conflicts_in_random_lns_ = 2500;
1008  compute_estimated_impact_ = true;
1009  use_random_lns_ = true;
1010  use_lp_lns_ = true;
1011  use_sat_to_choose_lns_neighbourhood_ = true;
1012  num_random_lns_tries_ = 1;
1013  max_number_of_backtracks_in_ls_ = PROTOBUF_LONGLONG(100000000);
1014  max_number_of_conflicts_for_quick_check_ = 10;
1015  }
1016  if (cached_has_bits & 0xff000000u) {
1017  max_number_of_conflicts_in_random_solution_generation_ = 500;
1018  max_number_of_explored_assignments_per_try_in_ls_ = PROTOBUF_LONGLONG(10000);
1019  use_transposition_table_in_ls_ = true;
1020  use_learned_binary_clauses_in_lp_ = true;
1021  number_of_solvers_ = 1;
1022  max_deterministic_time_ = std::numeric_limits<double>::infinity();
1023  relative_gap_limit_ = 0.0001;
1024  decomposer_num_variables_threshold_ = 50;
1025  }
1026  cached_has_bits = _has_bits_[1];
1027  if (cached_has_bits & 0x0000000fu) {
1028  num_bop_solvers_used_by_decomposition_ = 1;
1029  guided_sat_conflicts_chunk_ = 1000;
1030  max_num_broken_constraints_in_ls_ = 2147483647;
1031  lp_max_deterministic_time_ = 1;
1032  }
1033  _has_bits_.Clear();
1034  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1035 }
1036 
1037 const char* BopParameters::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1038 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1039  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
1040  while (!ctx->Done(&ptr)) {
1042  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1043  CHK_(ptr);
1044  switch (tag >> 3) {
1045  // optional double max_time_in_seconds = 1 [default = inf];
1046  case 1:
1047  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 9)) {
1049  max_time_in_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1050  ptr += sizeof(double);
1051  } else goto handle_unusual;
1052  continue;
1053  // optional int32 max_num_decisions_in_ls = 2 [default = 4];
1054  case 2:
1055  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
1057  max_num_decisions_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1058  CHK_(ptr);
1059  } else goto handle_unusual;
1060  continue;
1061  // optional bool compute_estimated_impact = 3 [default = true];
1062  case 3:
1063  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
1065  compute_estimated_impact_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1066  CHK_(ptr);
1067  } else goto handle_unusual;
1068  continue;
1069  // optional bool prune_search_tree = 4 [default = false];
1070  case 4:
1071  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
1073  prune_search_tree_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1074  CHK_(ptr);
1075  } else goto handle_unusual;
1076  continue;
1077  // optional bool sort_constraints_by_num_terms = 5 [default = false];
1078  case 5:
1079  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
1081  sort_constraints_by_num_terms_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1082  CHK_(ptr);
1083  } else goto handle_unusual;
1084  continue;
1085  // optional bool use_random_lns = 6 [default = true];
1086  case 6:
1087  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
1088  _Internal::set_has_use_random_lns(&_has_bits_);
1089  use_random_lns_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1090  CHK_(ptr);
1091  } else goto handle_unusual;
1092  continue;
1093  // optional int32 random_seed = 7 [default = 8];
1094  case 7:
1095  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
1096  _Internal::set_has_random_seed(&_has_bits_);
1097  random_seed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1098  CHK_(ptr);
1099  } else goto handle_unusual;
1100  continue;
1101  // optional int32 num_relaxed_vars = 8 [default = 10];
1102  case 8:
1103  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
1105  num_relaxed_vars_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1106  CHK_(ptr);
1107  } else goto handle_unusual;
1108  continue;
1109  // optional int32 max_number_of_conflicts_in_random_lns = 9 [default = 2500];
1110  case 9:
1111  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
1113  max_number_of_conflicts_in_random_lns_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1114  CHK_(ptr);
1115  } else goto handle_unusual;
1116  continue;
1117  // optional int32 num_random_lns_tries = 10 [default = 1];
1118  case 10:
1119  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
1121  num_random_lns_tries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1122  CHK_(ptr);
1123  } else goto handle_unusual;
1124  continue;
1125  // optional int64 max_number_of_backtracks_in_ls = 11 [default = 100000000];
1126  case 11:
1127  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
1129  max_number_of_backtracks_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1130  CHK_(ptr);
1131  } else goto handle_unusual;
1132  continue;
1133  // optional bool use_lp_lns = 12 [default = true];
1134  case 12:
1135  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
1136  _Internal::set_has_use_lp_lns(&_has_bits_);
1137  use_lp_lns_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1138  CHK_(ptr);
1139  } else goto handle_unusual;
1140  continue;
1141  // optional bool log_search_progress = 14 [default = false];
1142  case 14:
1143  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
1145  log_search_progress_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1146  CHK_(ptr);
1147  } else goto handle_unusual;
1148  continue;
1149  // optional bool use_sat_to_choose_lns_neighbourhood = 15 [default = true];
1150  case 15:
1151  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
1153  use_sat_to_choose_lns_neighbourhood_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1154  CHK_(ptr);
1155  } else goto handle_unusual;
1156  continue;
1157  // optional int32 max_number_of_conflicts_for_quick_check = 16 [default = 10];
1158  case 16:
1159  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 128)) {
1161  max_number_of_conflicts_for_quick_check_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1162  CHK_(ptr);
1163  } else goto handle_unusual;
1164  continue;
1165  // optional bool use_symmetry = 17 [default = false];
1166  case 17:
1167  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 136)) {
1168  _Internal::set_has_use_symmetry(&_has_bits_);
1169  use_symmetry_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1170  CHK_(ptr);
1171  } else goto handle_unusual;
1172  continue;
1173  // optional int32 max_number_of_conflicts_in_random_solution_generation = 20 [default = 500];
1174  case 20:
1175  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) {
1177  max_number_of_conflicts_in_random_solution_generation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1178  CHK_(ptr);
1179  } else goto handle_unusual;
1180  continue;
1181  // optional int64 max_number_of_explored_assignments_per_try_in_ls = 21 [default = 10000];
1182  case 21:
1183  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 168)) {
1185  max_number_of_explored_assignments_per_try_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1186  CHK_(ptr);
1187  } else goto handle_unusual;
1188  continue;
1189  // optional bool use_transposition_table_in_ls = 22 [default = true];
1190  case 22:
1191  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 176)) {
1193  use_transposition_table_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1194  CHK_(ptr);
1195  } else goto handle_unusual;
1196  continue;
1197  // optional bool use_learned_binary_clauses_in_lp = 23 [default = true];
1198  case 23:
1199  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184)) {
1201  use_learned_binary_clauses_in_lp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1202  CHK_(ptr);
1203  } else goto handle_unusual;
1204  continue;
1205  // optional int32 number_of_solvers = 24 [default = 1];
1206  case 24:
1207  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
1209  number_of_solvers_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1210  CHK_(ptr);
1211  } else goto handle_unusual;
1212  continue;
1213  // optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];
1214  case 25:
1215  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
1216  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1217  CHK_(ptr);
1219  _internal_set_synchronization_type(static_cast<::operations_research::bop::BopParameters_ThreadSynchronizationType>(val));
1220  } else {
1221  ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(25, val, mutable_unknown_fields());
1222  }
1223  } else goto handle_unusual;
1224  continue;
1225  // repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;
1226  case 26:
1227  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 210)) {
1228  ptr -= 2;
1229  do {
1230  ptr += 2;
1231  ptr = ctx->ParseMessage(_internal_add_solver_optimizer_sets(), ptr);
1232  CHK_(ptr);
1233  if (!ctx->DataAvailable(ptr)) break;
1234  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<210>(ptr));
1235  } else goto handle_unusual;
1236  continue;
1237  // optional double max_deterministic_time = 27 [default = inf];
1238  case 27:
1239  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 217)) {
1241  max_deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1242  ptr += sizeof(double);
1243  } else goto handle_unusual;
1244  continue;
1245  // optional double relative_gap_limit = 28 [default = 0.0001];
1246  case 28:
1247  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 225)) {
1249  relative_gap_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1250  ptr += sizeof(double);
1251  } else goto handle_unusual;
1252  continue;
1253  // optional bool use_lp_strong_branching = 29 [default = false];
1254  case 29:
1255  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 232)) {
1257  use_lp_strong_branching_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1258  CHK_(ptr);
1259  } else goto handle_unusual;
1260  continue;
1261  // optional int32 decomposer_num_variables_threshold = 30 [default = 50];
1262  case 30:
1263  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 240)) {
1265  decomposer_num_variables_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1266  CHK_(ptr);
1267  } else goto handle_unusual;
1268  continue;
1269  // optional int32 num_bop_solvers_used_by_decomposition = 31 [default = 1];
1270  case 31:
1271  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 248)) {
1273  num_bop_solvers_used_by_decomposition_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1274  CHK_(ptr);
1275  } else goto handle_unusual;
1276  continue;
1277  // optional string default_solver_optimizer_sets = 33 [default = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } "];
1278  case 33:
1279  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1280  auto str = _internal_mutable_default_solver_optimizer_sets();
1281  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1282  #ifndef NDEBUG
1283  ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.bop.BopParameters.default_solver_optimizer_sets");
1284  #endif // !NDEBUG
1285  CHK_(ptr);
1286  } else goto handle_unusual;
1287  continue;
1288  // optional int32 guided_sat_conflicts_chunk = 34 [default = 1000];
1289  case 34:
1290  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
1292  guided_sat_conflicts_chunk_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1293  CHK_(ptr);
1294  } else goto handle_unusual;
1295  continue;
1296  // optional int32 max_number_of_consecutive_failing_optimizer_calls = 35;
1297  case 35:
1298  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
1300  max_number_of_consecutive_failing_optimizer_calls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1301  CHK_(ptr);
1302  } else goto handle_unusual;
1303  continue;
1304  // optional double decomposed_problem_min_time_in_seconds = 36 [default = 0];
1305  case 36:
1306  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 33)) {
1308  decomposed_problem_min_time_in_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1309  ptr += sizeof(double);
1310  } else goto handle_unusual;
1311  continue;
1312  // optional double lp_max_deterministic_time = 37 [default = 1];
1313  case 37:
1314  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 41)) {
1316  lp_max_deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1317  ptr += sizeof(double);
1318  } else goto handle_unusual;
1319  continue;
1320  // optional int32 max_num_broken_constraints_in_ls = 38 [default = 2147483647];
1321  case 38:
1322  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
1324  max_num_broken_constraints_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1325  CHK_(ptr);
1326  } else goto handle_unusual;
1327  continue;
1328  // optional bool use_potential_one_flip_repairs_in_ls = 39 [default = false];
1329  case 39:
1330  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
1332  use_potential_one_flip_repairs_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1333  CHK_(ptr);
1334  } else goto handle_unusual;
1335  continue;
1336  // optional bool exploit_symmetry_in_sat_first_solution = 40 [default = false];
1337  case 40:
1338  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
1340  exploit_symmetry_in_sat_first_solution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1341  CHK_(ptr);
1342  } else goto handle_unusual;
1343  continue;
1344  // optional int32 max_lp_solve_for_feasibility_problems = 41 [default = 0];
1345  case 41:
1346  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
1348  max_lp_solve_for_feasibility_problems_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1349  CHK_(ptr);
1350  } else goto handle_unusual;
1351  continue;
1352  default: {
1353  handle_unusual:
1354  if ((tag & 7) == 4 || tag == 0) {
1355  ctx->SetLastTag(tag);
1356  goto success;
1357  }
1358  ptr = UnknownFieldParse(tag,
1359  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1360  ptr, ctx);
1361  CHK_(ptr != nullptr);
1362  continue;
1363  }
1364  } // switch
1365  } // while
1366 success:
1367  return ptr;
1368 failure:
1369  ptr = nullptr;
1370  goto success;
1371 #undef CHK_
1372 }
1373 
1374 ::PROTOBUF_NAMESPACE_ID::uint8* BopParameters::_InternalSerialize(
1375  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1376  // @@protoc_insertion_point(serialize_to_array_start:operations_research.bop.BopParameters)
1377  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1378  (void) cached_has_bits;
1379 
1380  cached_has_bits = _has_bits_[0];
1381  // optional double max_time_in_seconds = 1 [default = inf];
1382  if (cached_has_bits & 0x00001000u) {
1383  target = stream->EnsureSpace(target);
1384  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(1, this->_internal_max_time_in_seconds(), target);
1385  }
1386 
1387  // optional int32 max_num_decisions_in_ls = 2 [default = 4];
1388  if (cached_has_bits & 0x00002000u) {
1389  target = stream->EnsureSpace(target);
1390  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_max_num_decisions_in_ls(), target);
1391  }
1392 
1393  // optional bool compute_estimated_impact = 3 [default = true];
1394  if (cached_has_bits & 0x00020000u) {
1395  target = stream->EnsureSpace(target);
1396  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_compute_estimated_impact(), target);
1397  }
1398 
1399  // optional bool prune_search_tree = 4 [default = false];
1400  if (cached_has_bits & 0x00000004u) {
1401  target = stream->EnsureSpace(target);
1402  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_prune_search_tree(), target);
1403  }
1404 
1405  // optional bool sort_constraints_by_num_terms = 5 [default = false];
1406  if (cached_has_bits & 0x00000008u) {
1407  target = stream->EnsureSpace(target);
1408  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_sort_constraints_by_num_terms(), target);
1409  }
1410 
1411  // optional bool use_random_lns = 6 [default = true];
1412  if (cached_has_bits & 0x00040000u) {
1413  target = stream->EnsureSpace(target);
1414  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_use_random_lns(), target);
1415  }
1416 
1417  // optional int32 random_seed = 7 [default = 8];
1418  if (cached_has_bits & 0x00004000u) {
1419  target = stream->EnsureSpace(target);
1420  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_random_seed(), target);
1421  }
1422 
1423  // optional int32 num_relaxed_vars = 8 [default = 10];
1424  if (cached_has_bits & 0x00008000u) {
1425  target = stream->EnsureSpace(target);
1426  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(8, this->_internal_num_relaxed_vars(), target);
1427  }
1428 
1429  // optional int32 max_number_of_conflicts_in_random_lns = 9 [default = 2500];
1430  if (cached_has_bits & 0x00010000u) {
1431  target = stream->EnsureSpace(target);
1432  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(9, this->_internal_max_number_of_conflicts_in_random_lns(), target);
1433  }
1434 
1435  // optional int32 num_random_lns_tries = 10 [default = 1];
1436  if (cached_has_bits & 0x00200000u) {
1437  target = stream->EnsureSpace(target);
1438  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(10, this->_internal_num_random_lns_tries(), target);
1439  }
1440 
1441  // optional int64 max_number_of_backtracks_in_ls = 11 [default = 100000000];
1442  if (cached_has_bits & 0x00400000u) {
1443  target = stream->EnsureSpace(target);
1444  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(11, this->_internal_max_number_of_backtracks_in_ls(), target);
1445  }
1446 
1447  // optional bool use_lp_lns = 12 [default = true];
1448  if (cached_has_bits & 0x00080000u) {
1449  target = stream->EnsureSpace(target);
1450  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(12, this->_internal_use_lp_lns(), target);
1451  }
1452 
1453  // optional bool log_search_progress = 14 [default = false];
1454  if (cached_has_bits & 0x00000002u) {
1455  target = stream->EnsureSpace(target);
1456  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(14, this->_internal_log_search_progress(), target);
1457  }
1458 
1459  // optional bool use_sat_to_choose_lns_neighbourhood = 15 [default = true];
1460  if (cached_has_bits & 0x00100000u) {
1461  target = stream->EnsureSpace(target);
1462  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_use_sat_to_choose_lns_neighbourhood(), target);
1463  }
1464 
1465  // optional int32 max_number_of_conflicts_for_quick_check = 16 [default = 10];
1466  if (cached_has_bits & 0x00800000u) {
1467  target = stream->EnsureSpace(target);
1468  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(16, this->_internal_max_number_of_conflicts_for_quick_check(), target);
1469  }
1470 
1471  // optional bool use_symmetry = 17 [default = false];
1472  if (cached_has_bits & 0x00000010u) {
1473  target = stream->EnsureSpace(target);
1474  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(17, this->_internal_use_symmetry(), target);
1475  }
1476 
1477  // optional int32 max_number_of_conflicts_in_random_solution_generation = 20 [default = 500];
1478  if (cached_has_bits & 0x01000000u) {
1479  target = stream->EnsureSpace(target);
1480  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(20, this->_internal_max_number_of_conflicts_in_random_solution_generation(), target);
1481  }
1482 
1483  // optional int64 max_number_of_explored_assignments_per_try_in_ls = 21 [default = 10000];
1484  if (cached_has_bits & 0x02000000u) {
1485  target = stream->EnsureSpace(target);
1486  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(21, this->_internal_max_number_of_explored_assignments_per_try_in_ls(), target);
1487  }
1488 
1489  // optional bool use_transposition_table_in_ls = 22 [default = true];
1490  if (cached_has_bits & 0x04000000u) {
1491  target = stream->EnsureSpace(target);
1492  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(22, this->_internal_use_transposition_table_in_ls(), target);
1493  }
1494 
1495  // optional bool use_learned_binary_clauses_in_lp = 23 [default = true];
1496  if (cached_has_bits & 0x08000000u) {
1497  target = stream->EnsureSpace(target);
1498  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(23, this->_internal_use_learned_binary_clauses_in_lp(), target);
1499  }
1500 
1501  // optional int32 number_of_solvers = 24 [default = 1];
1502  if (cached_has_bits & 0x10000000u) {
1503  target = stream->EnsureSpace(target);
1504  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(24, this->_internal_number_of_solvers(), target);
1505  }
1506 
1507  // optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];
1508  if (cached_has_bits & 0x00000020u) {
1509  target = stream->EnsureSpace(target);
1510  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1511  25, this->_internal_synchronization_type(), target);
1512  }
1513 
1514  // repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;
1515  for (unsigned int i = 0,
1516  n = static_cast<unsigned int>(this->_internal_solver_optimizer_sets_size()); i < n; i++) {
1517  target = stream->EnsureSpace(target);
1518  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1519  InternalWriteMessage(26, this->_internal_solver_optimizer_sets(i), target, stream);
1520  }
1521 
1522  // optional double max_deterministic_time = 27 [default = inf];
1523  if (cached_has_bits & 0x20000000u) {
1524  target = stream->EnsureSpace(target);
1525  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(27, this->_internal_max_deterministic_time(), target);
1526  }
1527 
1528  // optional double relative_gap_limit = 28 [default = 0.0001];
1529  if (cached_has_bits & 0x40000000u) {
1530  target = stream->EnsureSpace(target);
1531  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(28, this->_internal_relative_gap_limit(), target);
1532  }
1533 
1534  // optional bool use_lp_strong_branching = 29 [default = false];
1535  if (cached_has_bits & 0x00000200u) {
1536  target = stream->EnsureSpace(target);
1537  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(29, this->_internal_use_lp_strong_branching(), target);
1538  }
1539 
1540  // optional int32 decomposer_num_variables_threshold = 30 [default = 50];
1541  if (cached_has_bits & 0x80000000u) {
1542  target = stream->EnsureSpace(target);
1543  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(30, this->_internal_decomposer_num_variables_threshold(), target);
1544  }
1545 
1546  cached_has_bits = _has_bits_[1];
1547  // optional int32 num_bop_solvers_used_by_decomposition = 31 [default = 1];
1548  if (cached_has_bits & 0x00000001u) {
1549  target = stream->EnsureSpace(target);
1550  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(31, this->_internal_num_bop_solvers_used_by_decomposition(), target);
1551  }
1552 
1553  cached_has_bits = _has_bits_[0];
1554  // optional string default_solver_optimizer_sets = 33 [default = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } "];
1555  if (cached_has_bits & 0x00000001u) {
1556  ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
1557  this->_internal_default_solver_optimizer_sets().data(), static_cast<int>(this->_internal_default_solver_optimizer_sets().length()),
1558  ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
1559  "operations_research.bop.BopParameters.default_solver_optimizer_sets");
1560  target = stream->WriteStringMaybeAliased(
1561  33, this->_internal_default_solver_optimizer_sets(), target);
1562  }
1563 
1564  cached_has_bits = _has_bits_[1];
1565  // optional int32 guided_sat_conflicts_chunk = 34 [default = 1000];
1566  if (cached_has_bits & 0x00000002u) {
1567  target = stream->EnsureSpace(target);
1568  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(34, this->_internal_guided_sat_conflicts_chunk(), target);
1569  }
1570 
1571  cached_has_bits = _has_bits_[0];
1572  // optional int32 max_number_of_consecutive_failing_optimizer_calls = 35;
1573  if (cached_has_bits & 0x00000040u) {
1574  target = stream->EnsureSpace(target);
1575  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(35, this->_internal_max_number_of_consecutive_failing_optimizer_calls(), target);
1576  }
1577 
1578  // optional double decomposed_problem_min_time_in_seconds = 36 [default = 0];
1579  if (cached_has_bits & 0x00000400u) {
1580  target = stream->EnsureSpace(target);
1581  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(36, this->_internal_decomposed_problem_min_time_in_seconds(), target);
1582  }
1583 
1584  cached_has_bits = _has_bits_[1];
1585  // optional double lp_max_deterministic_time = 37 [default = 1];
1586  if (cached_has_bits & 0x00000008u) {
1587  target = stream->EnsureSpace(target);
1588  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(37, this->_internal_lp_max_deterministic_time(), target);
1589  }
1590 
1591  // optional int32 max_num_broken_constraints_in_ls = 38 [default = 2147483647];
1592  if (cached_has_bits & 0x00000004u) {
1593  target = stream->EnsureSpace(target);
1594  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(38, this->_internal_max_num_broken_constraints_in_ls(), target);
1595  }
1596 
1597  cached_has_bits = _has_bits_[0];
1598  // optional bool use_potential_one_flip_repairs_in_ls = 39 [default = false];
1599  if (cached_has_bits & 0x00000100u) {
1600  target = stream->EnsureSpace(target);
1601  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(39, this->_internal_use_potential_one_flip_repairs_in_ls(), target);
1602  }
1603 
1604  // optional bool exploit_symmetry_in_sat_first_solution = 40 [default = false];
1605  if (cached_has_bits & 0x00000080u) {
1606  target = stream->EnsureSpace(target);
1607  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(40, this->_internal_exploit_symmetry_in_sat_first_solution(), target);
1608  }
1609 
1610  // optional int32 max_lp_solve_for_feasibility_problems = 41 [default = 0];
1611  if (cached_has_bits & 0x00000800u) {
1612  target = stream->EnsureSpace(target);
1613  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(41, this->_internal_max_lp_solve_for_feasibility_problems(), target);
1614  }
1615 
1616  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1617  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1618  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1619  }
1620  // @@protoc_insertion_point(serialize_to_array_end:operations_research.bop.BopParameters)
1621  return target;
1622 }
1623 
1624 size_t BopParameters::ByteSizeLong() const {
1625 // @@protoc_insertion_point(message_byte_size_start:operations_research.bop.BopParameters)
1626  size_t total_size = 0;
1627 
1628  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1629  // Prevent compiler warnings about cached_has_bits being unused
1630  (void) cached_has_bits;
1631 
1632  // repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;
1633  total_size += 2UL * this->_internal_solver_optimizer_sets_size();
1634  for (const auto& msg : this->solver_optimizer_sets_) {
1635  total_size +=
1636  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
1637  }
1638 
1639  cached_has_bits = _has_bits_[0];
1640  if (cached_has_bits & 0x000000ffu) {
1641  // optional string default_solver_optimizer_sets = 33 [default = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } "];
1642  if (cached_has_bits & 0x00000001u) {
1643  total_size += 2 +
1644  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1645  this->_internal_default_solver_optimizer_sets());
1646  }
1647 
1648  // optional bool log_search_progress = 14 [default = false];
1649  if (cached_has_bits & 0x00000002u) {
1650  total_size += 1 + 1;
1651  }
1652 
1653  // optional bool prune_search_tree = 4 [default = false];
1654  if (cached_has_bits & 0x00000004u) {
1655  total_size += 1 + 1;
1656  }
1657 
1658  // optional bool sort_constraints_by_num_terms = 5 [default = false];
1659  if (cached_has_bits & 0x00000008u) {
1660  total_size += 1 + 1;
1661  }
1662 
1663  // optional bool use_symmetry = 17 [default = false];
1664  if (cached_has_bits & 0x00000010u) {
1665  total_size += 2 + 1;
1666  }
1667 
1668  // optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];
1669  if (cached_has_bits & 0x00000020u) {
1670  total_size += 2 +
1671  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_synchronization_type());
1672  }
1673 
1674  // optional int32 max_number_of_consecutive_failing_optimizer_calls = 35;
1675  if (cached_has_bits & 0x00000040u) {
1676  total_size += 2 +
1677  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1678  this->_internal_max_number_of_consecutive_failing_optimizer_calls());
1679  }
1680 
1681  // optional bool exploit_symmetry_in_sat_first_solution = 40 [default = false];
1682  if (cached_has_bits & 0x00000080u) {
1683  total_size += 2 + 1;
1684  }
1685 
1686  }
1687  if (cached_has_bits & 0x0000ff00u) {
1688  // optional bool use_potential_one_flip_repairs_in_ls = 39 [default = false];
1689  if (cached_has_bits & 0x00000100u) {
1690  total_size += 2 + 1;
1691  }
1692 
1693  // optional bool use_lp_strong_branching = 29 [default = false];
1694  if (cached_has_bits & 0x00000200u) {
1695  total_size += 2 + 1;
1696  }
1697 
1698  // optional double decomposed_problem_min_time_in_seconds = 36 [default = 0];
1699  if (cached_has_bits & 0x00000400u) {
1700  total_size += 2 + 8;
1701  }
1702 
1703  // optional int32 max_lp_solve_for_feasibility_problems = 41 [default = 0];
1704  if (cached_has_bits & 0x00000800u) {
1705  total_size += 2 +
1706  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1707  this->_internal_max_lp_solve_for_feasibility_problems());
1708  }
1709 
1710  // optional double max_time_in_seconds = 1 [default = inf];
1711  if (cached_has_bits & 0x00001000u) {
1712  total_size += 1 + 8;
1713  }
1714 
1715  // optional int32 max_num_decisions_in_ls = 2 [default = 4];
1716  if (cached_has_bits & 0x00002000u) {
1717  total_size += 1 +
1718  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1719  this->_internal_max_num_decisions_in_ls());
1720  }
1721 
1722  // optional int32 random_seed = 7 [default = 8];
1723  if (cached_has_bits & 0x00004000u) {
1724  total_size += 1 +
1725  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1726  this->_internal_random_seed());
1727  }
1728 
1729  // optional int32 num_relaxed_vars = 8 [default = 10];
1730  if (cached_has_bits & 0x00008000u) {
1731  total_size += 1 +
1732  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1733  this->_internal_num_relaxed_vars());
1734  }
1735 
1736  }
1737  if (cached_has_bits & 0x00ff0000u) {
1738  // optional int32 max_number_of_conflicts_in_random_lns = 9 [default = 2500];
1739  if (cached_has_bits & 0x00010000u) {
1740  total_size += 1 +
1741  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1742  this->_internal_max_number_of_conflicts_in_random_lns());
1743  }
1744 
1745  // optional bool compute_estimated_impact = 3 [default = true];
1746  if (cached_has_bits & 0x00020000u) {
1747  total_size += 1 + 1;
1748  }
1749 
1750  // optional bool use_random_lns = 6 [default = true];
1751  if (cached_has_bits & 0x00040000u) {
1752  total_size += 1 + 1;
1753  }
1754 
1755  // optional bool use_lp_lns = 12 [default = true];
1756  if (cached_has_bits & 0x00080000u) {
1757  total_size += 1 + 1;
1758  }
1759 
1760  // optional bool use_sat_to_choose_lns_neighbourhood = 15 [default = true];
1761  if (cached_has_bits & 0x00100000u) {
1762  total_size += 1 + 1;
1763  }
1764 
1765  // optional int32 num_random_lns_tries = 10 [default = 1];
1766  if (cached_has_bits & 0x00200000u) {
1767  total_size += 1 +
1768  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1769  this->_internal_num_random_lns_tries());
1770  }
1771 
1772  // optional int64 max_number_of_backtracks_in_ls = 11 [default = 100000000];
1773  if (cached_has_bits & 0x00400000u) {
1774  total_size += 1 +
1775  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1776  this->_internal_max_number_of_backtracks_in_ls());
1777  }
1778 
1779  // optional int32 max_number_of_conflicts_for_quick_check = 16 [default = 10];
1780  if (cached_has_bits & 0x00800000u) {
1781  total_size += 2 +
1782  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1783  this->_internal_max_number_of_conflicts_for_quick_check());
1784  }
1785 
1786  }
1787  if (cached_has_bits & 0xff000000u) {
1788  // optional int32 max_number_of_conflicts_in_random_solution_generation = 20 [default = 500];
1789  if (cached_has_bits & 0x01000000u) {
1790  total_size += 2 +
1791  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1792  this->_internal_max_number_of_conflicts_in_random_solution_generation());
1793  }
1794 
1795  // optional int64 max_number_of_explored_assignments_per_try_in_ls = 21 [default = 10000];
1796  if (cached_has_bits & 0x02000000u) {
1797  total_size += 2 +
1798  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1799  this->_internal_max_number_of_explored_assignments_per_try_in_ls());
1800  }
1801 
1802  // optional bool use_transposition_table_in_ls = 22 [default = true];
1803  if (cached_has_bits & 0x04000000u) {
1804  total_size += 2 + 1;
1805  }
1806 
1807  // optional bool use_learned_binary_clauses_in_lp = 23 [default = true];
1808  if (cached_has_bits & 0x08000000u) {
1809  total_size += 2 + 1;
1810  }
1811 
1812  // optional int32 number_of_solvers = 24 [default = 1];
1813  if (cached_has_bits & 0x10000000u) {
1814  total_size += 2 +
1815  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1816  this->_internal_number_of_solvers());
1817  }
1818 
1819  // optional double max_deterministic_time = 27 [default = inf];
1820  if (cached_has_bits & 0x20000000u) {
1821  total_size += 2 + 8;
1822  }
1823 
1824  // optional double relative_gap_limit = 28 [default = 0.0001];
1825  if (cached_has_bits & 0x40000000u) {
1826  total_size += 2 + 8;
1827  }
1828 
1829  // optional int32 decomposer_num_variables_threshold = 30 [default = 50];
1830  if (cached_has_bits & 0x80000000u) {
1831  total_size += 2 +
1832  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1833  this->_internal_decomposer_num_variables_threshold());
1834  }
1835 
1836  }
1837  cached_has_bits = _has_bits_[1];
1838  if (cached_has_bits & 0x0000000fu) {
1839  // optional int32 num_bop_solvers_used_by_decomposition = 31 [default = 1];
1840  if (cached_has_bits & 0x00000001u) {
1841  total_size += 2 +
1842  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1843  this->_internal_num_bop_solvers_used_by_decomposition());
1844  }
1845 
1846  // optional int32 guided_sat_conflicts_chunk = 34 [default = 1000];
1847  if (cached_has_bits & 0x00000002u) {
1848  total_size += 2 +
1849  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1850  this->_internal_guided_sat_conflicts_chunk());
1851  }
1852 
1853  // optional int32 max_num_broken_constraints_in_ls = 38 [default = 2147483647];
1854  if (cached_has_bits & 0x00000004u) {
1855  total_size += 2 +
1856  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1857  this->_internal_max_num_broken_constraints_in_ls());
1858  }
1859 
1860  // optional double lp_max_deterministic_time = 37 [default = 1];
1861  if (cached_has_bits & 0x00000008u) {
1862  total_size += 2 + 8;
1863  }
1864 
1865  }
1866  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1867  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1868  _internal_metadata_, total_size, &_cached_size_);
1869  }
1870  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1871  SetCachedSize(cached_size);
1872  return total_size;
1873 }
1874 
1875 void BopParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1876 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.bop.BopParameters)
1877  GOOGLE_DCHECK_NE(&from, this);
1878  const BopParameters* source =
1879  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BopParameters>(
1880  &from);
1881  if (source == nullptr) {
1882  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.bop.BopParameters)
1883  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1884  } else {
1885  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.bop.BopParameters)
1886  MergeFrom(*source);
1887  }
1888 }
1889 
1890 void BopParameters::MergeFrom(const BopParameters& from) {
1891 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.bop.BopParameters)
1892  GOOGLE_DCHECK_NE(&from, this);
1893  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1894  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1895  (void) cached_has_bits;
1896 
1897  solver_optimizer_sets_.MergeFrom(from.solver_optimizer_sets_);
1898  cached_has_bits = from._has_bits_[0];
1899  if (cached_has_bits & 0x000000ffu) {
1900  if (cached_has_bits & 0x00000001u) {
1901  _internal_set_default_solver_optimizer_sets(from._internal_default_solver_optimizer_sets());
1902  }
1903  if (cached_has_bits & 0x00000002u) {
1904  log_search_progress_ = from.log_search_progress_;
1905  }
1906  if (cached_has_bits & 0x00000004u) {
1907  prune_search_tree_ = from.prune_search_tree_;
1908  }
1909  if (cached_has_bits & 0x00000008u) {
1910  sort_constraints_by_num_terms_ = from.sort_constraints_by_num_terms_;
1911  }
1912  if (cached_has_bits & 0x00000010u) {
1913  use_symmetry_ = from.use_symmetry_;
1914  }
1915  if (cached_has_bits & 0x00000020u) {
1916  synchronization_type_ = from.synchronization_type_;
1917  }
1918  if (cached_has_bits & 0x00000040u) {
1919  max_number_of_consecutive_failing_optimizer_calls_ = from.max_number_of_consecutive_failing_optimizer_calls_;
1920  }
1921  if (cached_has_bits & 0x00000080u) {
1922  exploit_symmetry_in_sat_first_solution_ = from.exploit_symmetry_in_sat_first_solution_;
1923  }
1924  _has_bits_[0] |= cached_has_bits;
1925  }
1926  if (cached_has_bits & 0x0000ff00u) {
1927  if (cached_has_bits & 0x00000100u) {
1928  use_potential_one_flip_repairs_in_ls_ = from.use_potential_one_flip_repairs_in_ls_;
1929  }
1930  if (cached_has_bits & 0x00000200u) {
1931  use_lp_strong_branching_ = from.use_lp_strong_branching_;
1932  }
1933  if (cached_has_bits & 0x00000400u) {
1934  decomposed_problem_min_time_in_seconds_ = from.decomposed_problem_min_time_in_seconds_;
1935  }
1936  if (cached_has_bits & 0x00000800u) {
1937  max_lp_solve_for_feasibility_problems_ = from.max_lp_solve_for_feasibility_problems_;
1938  }
1939  if (cached_has_bits & 0x00001000u) {
1940  max_time_in_seconds_ = from.max_time_in_seconds_;
1941  }
1942  if (cached_has_bits & 0x00002000u) {
1943  max_num_decisions_in_ls_ = from.max_num_decisions_in_ls_;
1944  }
1945  if (cached_has_bits & 0x00004000u) {
1946  random_seed_ = from.random_seed_;
1947  }
1948  if (cached_has_bits & 0x00008000u) {
1949  num_relaxed_vars_ = from.num_relaxed_vars_;
1950  }
1951  _has_bits_[0] |= cached_has_bits;
1952  }
1953  if (cached_has_bits & 0x00ff0000u) {
1954  if (cached_has_bits & 0x00010000u) {
1955  max_number_of_conflicts_in_random_lns_ = from.max_number_of_conflicts_in_random_lns_;
1956  }
1957  if (cached_has_bits & 0x00020000u) {
1958  compute_estimated_impact_ = from.compute_estimated_impact_;
1959  }
1960  if (cached_has_bits & 0x00040000u) {
1961  use_random_lns_ = from.use_random_lns_;
1962  }
1963  if (cached_has_bits & 0x00080000u) {
1964  use_lp_lns_ = from.use_lp_lns_;
1965  }
1966  if (cached_has_bits & 0x00100000u) {
1967  use_sat_to_choose_lns_neighbourhood_ = from.use_sat_to_choose_lns_neighbourhood_;
1968  }
1969  if (cached_has_bits & 0x00200000u) {
1970  num_random_lns_tries_ = from.num_random_lns_tries_;
1971  }
1972  if (cached_has_bits & 0x00400000u) {
1973  max_number_of_backtracks_in_ls_ = from.max_number_of_backtracks_in_ls_;
1974  }
1975  if (cached_has_bits & 0x00800000u) {
1976  max_number_of_conflicts_for_quick_check_ = from.max_number_of_conflicts_for_quick_check_;
1977  }
1978  _has_bits_[0] |= cached_has_bits;
1979  }
1980  if (cached_has_bits & 0xff000000u) {
1981  if (cached_has_bits & 0x01000000u) {
1982  max_number_of_conflicts_in_random_solution_generation_ = from.max_number_of_conflicts_in_random_solution_generation_;
1983  }
1984  if (cached_has_bits & 0x02000000u) {
1985  max_number_of_explored_assignments_per_try_in_ls_ = from.max_number_of_explored_assignments_per_try_in_ls_;
1986  }
1987  if (cached_has_bits & 0x04000000u) {
1988  use_transposition_table_in_ls_ = from.use_transposition_table_in_ls_;
1989  }
1990  if (cached_has_bits & 0x08000000u) {
1991  use_learned_binary_clauses_in_lp_ = from.use_learned_binary_clauses_in_lp_;
1992  }
1993  if (cached_has_bits & 0x10000000u) {
1994  number_of_solvers_ = from.number_of_solvers_;
1995  }
1996  if (cached_has_bits & 0x20000000u) {
1997  max_deterministic_time_ = from.max_deterministic_time_;
1998  }
1999  if (cached_has_bits & 0x40000000u) {
2000  relative_gap_limit_ = from.relative_gap_limit_;
2001  }
2002  if (cached_has_bits & 0x80000000u) {
2003  decomposer_num_variables_threshold_ = from.decomposer_num_variables_threshold_;
2004  }
2005  _has_bits_[0] |= cached_has_bits;
2006  }
2007  cached_has_bits = from._has_bits_[1];
2008  if (cached_has_bits & 0x0000000fu) {
2009  if (cached_has_bits & 0x00000001u) {
2010  num_bop_solvers_used_by_decomposition_ = from.num_bop_solvers_used_by_decomposition_;
2011  }
2012  if (cached_has_bits & 0x00000002u) {
2013  guided_sat_conflicts_chunk_ = from.guided_sat_conflicts_chunk_;
2014  }
2015  if (cached_has_bits & 0x00000004u) {
2016  max_num_broken_constraints_in_ls_ = from.max_num_broken_constraints_in_ls_;
2017  }
2018  if (cached_has_bits & 0x00000008u) {
2019  lp_max_deterministic_time_ = from.lp_max_deterministic_time_;
2020  }
2021  _has_bits_[1] |= cached_has_bits;
2022  }
2023 }
2024 
2025 void BopParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2026 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.bop.BopParameters)
2027  if (&from == this) return;
2028  Clear();
2029  MergeFrom(from);
2030 }
2031 
2032 void BopParameters::CopyFrom(const BopParameters& from) {
2033 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.bop.BopParameters)
2034  if (&from == this) return;
2035  Clear();
2036  MergeFrom(from);
2037 }
2038 
2039 bool BopParameters::IsInitialized() const {
2040  return true;
2041 }
2042 
2043 void BopParameters::InternalSwap(BopParameters* other) {
2044  using std::swap;
2045  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2046  swap(_has_bits_[0], other->_has_bits_[0]);
2047  swap(_has_bits_[1], other->_has_bits_[1]);
2048  solver_optimizer_sets_.InternalSwap(&other->solver_optimizer_sets_);
2049  default_solver_optimizer_sets_.Swap(&other->default_solver_optimizer_sets_, &::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get(), GetArena());
2050  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2051  PROTOBUF_FIELD_OFFSET(BopParameters, max_lp_solve_for_feasibility_problems_)
2052  + sizeof(BopParameters::max_lp_solve_for_feasibility_problems_)
2053  - PROTOBUF_FIELD_OFFSET(BopParameters, log_search_progress_)>(
2054  reinterpret_cast<char*>(&log_search_progress_),
2055  reinterpret_cast<char*>(&other->log_search_progress_));
2056  swap(max_time_in_seconds_, other->max_time_in_seconds_);
2057  swap(max_num_decisions_in_ls_, other->max_num_decisions_in_ls_);
2058  swap(random_seed_, other->random_seed_);
2059  swap(num_relaxed_vars_, other->num_relaxed_vars_);
2060  swap(max_number_of_conflicts_in_random_lns_, other->max_number_of_conflicts_in_random_lns_);
2061  swap(compute_estimated_impact_, other->compute_estimated_impact_);
2062  swap(use_random_lns_, other->use_random_lns_);
2063  swap(use_lp_lns_, other->use_lp_lns_);
2064  swap(use_sat_to_choose_lns_neighbourhood_, other->use_sat_to_choose_lns_neighbourhood_);
2065  swap(num_random_lns_tries_, other->num_random_lns_tries_);
2066  swap(max_number_of_backtracks_in_ls_, other->max_number_of_backtracks_in_ls_);
2067  swap(max_number_of_conflicts_for_quick_check_, other->max_number_of_conflicts_for_quick_check_);
2068  swap(max_number_of_conflicts_in_random_solution_generation_, other->max_number_of_conflicts_in_random_solution_generation_);
2069  swap(max_number_of_explored_assignments_per_try_in_ls_, other->max_number_of_explored_assignments_per_try_in_ls_);
2070  swap(use_transposition_table_in_ls_, other->use_transposition_table_in_ls_);
2071  swap(use_learned_binary_clauses_in_lp_, other->use_learned_binary_clauses_in_lp_);
2072  swap(number_of_solvers_, other->number_of_solvers_);
2073  swap(max_deterministic_time_, other->max_deterministic_time_);
2074  swap(relative_gap_limit_, other->relative_gap_limit_);
2075  swap(decomposer_num_variables_threshold_, other->decomposer_num_variables_threshold_);
2076  swap(num_bop_solvers_used_by_decomposition_, other->num_bop_solvers_used_by_decomposition_);
2077  swap(guided_sat_conflicts_chunk_, other->guided_sat_conflicts_chunk_);
2078  swap(max_num_broken_constraints_in_ls_, other->max_num_broken_constraints_in_ls_);
2079  swap(lp_max_deterministic_time_, other->lp_max_deterministic_time_);
2080 }
2081 
2082 ::PROTOBUF_NAMESPACE_ID::Metadata BopParameters::GetMetadata() const {
2083  return GetMetadataStatic();
2084 }
2085 
2086 
2087 // @@protoc_insertion_point(namespace_scope)
2088 } // namespace bop
2089 } // namespace operations_research
2090 PROTOBUF_NAMESPACE_OPEN
2091 template<> PROTOBUF_NOINLINE ::operations_research::bop::BopOptimizerMethod* Arena::CreateMaybeMessage< ::operations_research::bop::BopOptimizerMethod >(Arena* arena) {
2092  return Arena::CreateMessageInternal< ::operations_research::bop::BopOptimizerMethod >(arena);
2093 }
2094 template<> PROTOBUF_NOINLINE ::operations_research::bop::BopSolverOptimizerSet* Arena::CreateMaybeMessage< ::operations_research::bop::BopSolverOptimizerSet >(Arena* arena) {
2095  return Arena::CreateMessageInternal< ::operations_research::bop::BopSolverOptimizerSet >(arena);
2096 }
2097 template<> PROTOBUF_NOINLINE ::operations_research::bop::BopParameters* Arena::CreateMaybeMessage< ::operations_research::bop::BopParameters >(Arena* arena) {
2098  return Arena::CreateMessageInternal< ::operations_research::bop::BopParameters >(arena);
2099 }
2100 PROTOBUF_NAMESPACE_CLOSE
2101 
2102 // @@protoc_insertion_point(global_scope)
2103 #include <google/protobuf/port_undef.inc>
operations_research::bop::BopParameters::_Internal::set_has_num_bop_solvers_used_by_decomposition
static void set_has_num_bop_solvers_used_by_decomposition(HasBits *has_bits)
Definition: bop_parameters.pb.cc:885
operations_research::bop::BopParameters::_Internal::set_has_guided_sat_conflicts_chunk
static void set_has_guided_sat_conflicts_chunk(HasBits *has_bits)
Definition: bop_parameters.pb.cc:891
operations_research::bop::BopParameters_ThreadSynchronizationType
BopParameters_ThreadSynchronizationType
Definition: bop_parameters.pb.h:115
descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_once
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_once
Definition: bop_parameters.pb.cc:283
operations_research::bop::BopParameters::_Internal::set_has_prune_search_tree
static void set_has_prune_search_tree(HasBits *has_bits)
Definition: bop_parameters.pb.cc:816
operations_research::bop::BopParameters::_Internal::set_has_sort_constraints_by_num_terms
static void set_has_sort_constraints_by_num_terms(HasBits *has_bits)
Definition: bop_parameters.pb.cc:819
operations_research::bop::BopParameters::_Internal::set_has_use_symmetry
static void set_has_use_symmetry(HasBits *has_bits)
Definition: bop_parameters.pb.cc:849
scc_info_BopParameters_ortools_2fbop_2fbop_5fparameters_2eproto
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 1 > scc_info_BopParameters_ortools_2fbop_2fbop_5fparameters_2eproto
Definition: bop_parameters.pb.cc:64
InitDefaultsscc_info_BopSolverOptimizerSet_ortools_2fbop_2fbop_5fparameters_2eproto
static void InitDefaultsscc_info_BopSolverOptimizerSet_ortools_2fbop_2fbop_5fparameters_2eproto()
Definition: bop_parameters.pb.cc:68
operations_research::bop::BopParameters::_Internal::set_has_max_number_of_conflicts_in_random_solution_generation
static void set_has_max_number_of_conflicts_in_random_solution_generation(HasBits *has_bits)
Definition: bop_parameters.pb.cc:855
operations_research::bop::BopParameters::_Internal::set_has_max_lp_solve_for_feasibility_problems
static void set_has_max_lp_solve_for_feasibility_problems(HasBits *has_bits)
Definition: bop_parameters.pb.cc:894
operations_research::bop::BopParameters_ThreadSynchronizationType_IsValid
bool BopParameters_ThreadSynchronizationType_IsValid(int value)
Definition: bop_parameters.pb.cc:346
TableStruct_ortools_2fbop_2fbop_5fparameters_2eproto::offsets
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
Definition: bop_parameters.pb.h:55
operations_research::bop::BopParameters::_Internal::set_has_use_lp_lns
static void set_has_use_lp_lns(HasBits *has_bits)
Definition: bop_parameters.pb.cc:840
operations_research::bop::BopParameters::_Internal::HasBits
decltype(std::declval< BopParameters >()._has_bits_) HasBits
Definition: bop_parameters.pb.cc:788
operations_research::bop::BopOptimizerMethod_OptimizerType
BopOptimizerMethod_OptimizerType
Definition: bop_parameters.pb.h:79
scc_info_BopSolverOptimizerSet_ortools_2fbop_2fbop_5fparameters_2eproto
PROTOBUF_INTERNAL_EXPORT_ortools_2fbop_2fbop_5fparameters_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 1 > scc_info_BopSolverOptimizerSet_ortools_2fbop_2fbop_5fparameters_2eproto
Definition: bop_parameters.pb.cc:79
operations_research::bop::BopSolverOptimizerSet
CreateMaybeMessage< ::operations_research::bop::BopSolverOptimizerSet >
PROTOBUF_NOINLINE ::operations_research::bop::BopSolverOptimizerSet * Arena::CreateMaybeMessage< ::operations_research::bop::BopSolverOptimizerSet >(Arena *arena)
Definition: bop_parameters.pb.cc:2094
operations_research::bop::BopParameters::_Internal::set_has_number_of_solvers
static void set_has_number_of_solvers(HasBits *has_bits)
Definition: bop_parameters.pb.cc:870
file_default_instances
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
Definition: bop_parameters.pb.cc:187
operations_research::bop::BopOptimizerMethod::_Internal
Definition: bop_parameters.pb.cc:370
value
int64 value
Definition: demon_profiler.cc:43
operations_research::bop::BopParameters::_Internal::set_has_compute_estimated_impact
static void set_has_compute_estimated_impact(HasBits *has_bits)
Definition: bop_parameters.pb.cc:813
operations_research
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
Definition: dense_doubly_linked_list.h:21
InitDefaultsscc_info_BopOptimizerMethod_ortools_2fbop_2fbop_5fparameters_2eproto
static void InitDefaultsscc_info_BopOptimizerMethod_ortools_2fbop_2fbop_5fparameters_2eproto()
Definition: bop_parameters.pb.cc:35
operations_research::bop::BopParameters::_Internal::set_has_max_number_of_conflicts_for_quick_check
static void set_has_max_number_of_conflicts_for_quick_check(HasBits *has_bits)
Definition: bop_parameters.pb.cc:846
operations_research::bop::BopParameters::_Internal
Definition: bop_parameters.pb.cc:786
operations_research::bop::BopSolverOptimizerSetDefaultTypeInternal
Definition: bop_parameters.pb.cc:25
file_level_service_descriptors_ortools_2fbop_2fbop_5fparameters_2eproto
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fbop_2fbop_5fparameters_2eproto
Definition: bop_parameters.pb.cc:85
operations_research::bop::BopParameters::_Internal::set_has_relative_gap_limit
static void set_has_relative_gap_limit(HasBits *has_bits)
Definition: bop_parameters.pb.cc:801
operations_research::bop::BopParameters::_Internal::set_has_max_number_of_consecutive_failing_optimizer_calls
static void set_has_max_number_of_consecutive_failing_optimizer_calls(HasBits *has_bits)
Definition: bop_parameters.pb.cc:798
operations_research::bop::BopParameters::_Internal::set_has_use_lp_strong_branching
static void set_has_use_lp_strong_branching(HasBits *has_bits)
Definition: bop_parameters.pb.cc:879
schemas
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
Definition: optional_boolean.pb.cc:23
operations_research::bop::BopParametersDefaultTypeInternal::_instance
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< BopParameters > _instance
Definition: bop_parameters.pb.cc:31
operations_research::bop::BopSolverOptimizerSetDefaultTypeInternal::_instance
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< BopSolverOptimizerSet > _instance
Definition: bop_parameters.pb.cc:27
operations_research::bop::BopParameters::_Internal::set_has_use_learned_binary_clauses_in_lp
static void set_has_use_learned_binary_clauses_in_lp(HasBits *has_bits)
Definition: bop_parameters.pb.cc:867
operations_research::bop::_BopOptimizerMethod_default_instance_
class operations_research::bop::BopOptimizerMethodDefaultTypeInternal _BopOptimizerMethod_default_instance_
Definition: bop_parameters.pb.h:61
operations_research::bop::BopOptimizerMethod::_Internal::HasBits
decltype(std::declval< BopOptimizerMethod >()._has_bits_) HasBits
Definition: bop_parameters.pb.cc:372
operations_research::bop::BopOptimizerMethodDefaultTypeInternal::_instance
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< BopOptimizerMethod > _instance
Definition: bop_parameters.pb.cc:23
operations_research::bop::BopParameters::_Internal::set_has_use_random_lns
static void set_has_use_random_lns(HasBits *has_bits)
Definition: bop_parameters.pb.cc:822
operations_research::bop::BopParameters::_Internal::set_has_max_deterministic_time
static void set_has_max_deterministic_time(HasBits *has_bits)
Definition: bop_parameters.pb.cc:792
scc_info_BopOptimizerMethod_ortools_2fbop_2fbop_5fparameters_2eproto
PROTOBUF_INTERNAL_EXPORT_ortools_2fbop_2fbop_5fparameters_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_BopOptimizerMethod_ortools_2fbop_2fbop_5fparameters_2eproto
Definition: bop_parameters.pb.cc:46
CreateMaybeMessage< ::operations_research::bop::BopOptimizerMethod >
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::bop::BopOptimizerMethod * Arena::CreateMaybeMessage< ::operations_research::bop::BopOptimizerMethod >(Arena *arena)
Definition: bop_parameters.pb.cc:2091
CreateMaybeMessage< ::operations_research::bop::BopParameters >
PROTOBUF_NOINLINE ::operations_research::bop::BopParameters * Arena::CreateMaybeMessage< ::operations_research::bop::BopParameters >(Arena *arena)
Definition: bop_parameters.pb.cc:2097
operations_research::bop::BopParameters::_Internal::set_has_max_time_in_seconds
static void set_has_max_time_in_seconds(HasBits *has_bits)
Definition: bop_parameters.pb.cc:789
CHK_
#define CHK_(x)
uint32
unsigned int uint32
Definition: integral_types.h:38
operations_research::bop::BopParameters::_Internal::set_has_default_solver_optimizer_sets
static void set_has_default_solver_optimizer_sets(HasBits *has_bits)
Definition: bop_parameters.pb.cc:876
operations_research::bop::BopParameters::_Internal::set_has_lp_max_deterministic_time
static void set_has_lp_max_deterministic_time(HasBits *has_bits)
Definition: bop_parameters.pb.cc:795
operations_research::bop::BopParameters
operations_research::bop::BopParameters::_Internal::set_has_max_num_broken_constraints_in_ls
static void set_has_max_num_broken_constraints_in_ls(HasBits *has_bits)
Definition: bop_parameters.pb.cc:807
descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_deps
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable *const descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_deps[1]
Definition: bop_parameters.pb.cc:276
operations_research::bop::BopParameters::_Internal::set_has_random_seed
static void set_has_random_seed(HasBits *has_bits)
Definition: bop_parameters.pb.cc:825
operations_research::bop::BopOptimizerMethod_OptimizerType_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * BopOptimizerMethod_OptimizerType_descriptor()
Definition: bop_parameters.pb.cc:295
uint64
uint64_t uint64
Definition: integral_types.h:39
operations_research::bop::_BopParameters_default_instance_
class operations_research::bop::BopParametersDefaultTypeInternal _BopParameters_default_instance_
Definition: bop_parameters.pb.h:64
operations_research::bop::BopParameters::_Internal::set_has_num_relaxed_vars
static void set_has_num_relaxed_vars(HasBits *has_bits)
Definition: bop_parameters.pb.cc:828
InitDefaultsscc_info_BopParameters_ortools_2fbop_2fbop_5fparameters_2eproto
static void InitDefaultsscc_info_BopParameters_ortools_2fbop_2fbop_5fparameters_2eproto()
Definition: bop_parameters.pb.cc:49
operations_research::bop::BopParameters::_Internal::set_has_max_number_of_backtracks_in_ls
static void set_has_max_number_of_backtracks_in_ls(HasBits *has_bits)
Definition: bop_parameters.pb.cc:837
dynamic_init_dummy_ortools_2fbop_2fbop_5fparameters_2eproto
static bool dynamic_init_dummy_ortools_2fbop_2fbop_5fparameters_2eproto
Definition: bop_parameters.pb.cc:292
operations_research::bop::BopSolverOptimizerSet::_Internal
Definition: bop_parameters.pb.cc:583
operations_research::bop::BopParameters::_Internal::set_has_log_search_progress
static void set_has_log_search_progress(HasBits *has_bits)
Definition: bop_parameters.pb.cc:810
operations_research::bop::BopParameters::_Internal::set_has_num_random_lns_tries
static void set_has_num_random_lns_tries(HasBits *has_bits)
Definition: bop_parameters.pb.cc:834
PROTOBUF_SECTION_VARIABLE
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fbop_2fbop_5fparameters_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_sccs
::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase *const descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_sccs[3]
Definition: bop_parameters.pb.cc:278
operations_research::bop::BopParametersDefaultTypeInternal
Definition: bop_parameters.pb.cc:29
operations_research::bop::_BopSolverOptimizerSet_default_instance_
class operations_research::bop::BopSolverOptimizerSetDefaultTypeInternal _BopSolverOptimizerSet_default_instance_
Definition: bop_parameters.pb.h:67
bop_parameters.pb.h
operations_research::bop::BopParameters::_Internal::set_has_decomposed_problem_min_time_in_seconds
static void set_has_decomposed_problem_min_time_in_seconds(HasBits *has_bits)
Definition: bop_parameters.pb.cc:888
operations_research::bop::BopParameters::_Internal::set_has_max_number_of_conflicts_in_random_lns
static void set_has_max_number_of_conflicts_in_random_lns(HasBits *has_bits)
Definition: bop_parameters.pb.cc:831
uint8
unsigned char uint8
Definition: integral_types.h:36
descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto
Definition: bop_parameters.pb.cc:284
operations_research::bop::BopOptimizerMethod
operations_research::bop::BopParameters_ThreadSynchronizationType_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * BopParameters_ThreadSynchronizationType_descriptor()
Definition: bop_parameters.pb.cc:342
operations_research::bop::BopParameters::_Internal::set_has_synchronization_type
static void set_has_synchronization_type(HasBits *has_bits)
Definition: bop_parameters.pb.cc:873
operations_research::bop::BopParameters::_Internal::set_has_use_transposition_table_in_ls
static void set_has_use_transposition_table_in_ls(HasBits *has_bits)
Definition: bop_parameters.pb.cc:861
file_level_enum_descriptors_ortools_2fbop_2fbop_5fparameters_2eproto
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fbop_2fbop_5fparameters_2eproto[2]
Definition: bop_parameters.pb.cc:84
operations_research::bop::BopOptimizerMethodDefaultTypeInternal
Definition: bop_parameters.pb.cc:21
operations_research::bop::BopParameters::_Internal::set_has_max_number_of_explored_assignments_per_try_in_ls
static void set_has_max_number_of_explored_assignments_per_try_in_ls(HasBits *has_bits)
Definition: bop_parameters.pb.cc:858
operations_research::bop::BopOptimizerMethod::_Internal::set_has_type
static void set_has_type(HasBits *has_bits)
Definition: bop_parameters.pb.cc:373
operations_research::bop::BopParameters::_Internal::set_has_use_potential_one_flip_repairs_in_ls
static void set_has_use_potential_one_flip_repairs_in_ls(HasBits *has_bits)
Definition: bop_parameters.pb.cc:864
operations_research::bop::BopParameters::_Internal::set_has_use_sat_to_choose_lns_neighbourhood
static void set_has_use_sat_to_choose_lns_neighbourhood(HasBits *has_bits)
Definition: bop_parameters.pb.cc:843
operations_research::bop::BopParameters::_Internal::set_has_exploit_symmetry_in_sat_first_solution
static void set_has_exploit_symmetry_in_sat_first_solution(HasBits *has_bits)
Definition: bop_parameters.pb.cc:852
file_level_metadata_ortools_2fbop_2fbop_5fparameters_2eproto
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fbop_2fbop_5fparameters_2eproto[3]
Definition: bop_parameters.pb.cc:83
operations_research::bop::BopOptimizerMethod_OptimizerType_IsValid
bool BopOptimizerMethod_OptimizerType_IsValid(int value)
Definition: bop_parameters.pb.cc:299
operations_research::bop::BopParameters::_Internal::set_has_decomposer_num_variables_threshold
static void set_has_decomposer_num_variables_threshold(HasBits *has_bits)
Definition: bop_parameters.pb.cc:882
operations_research::bop::BopParameters::_Internal::set_has_max_num_decisions_in_ls
static void set_has_max_num_decisions_in_ls(HasBits *has_bits)
Definition: bop_parameters.pb.cc:804