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