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>
16 #include <google/protobuf/port_def.inc>
23 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BopOptimizerMethod>
_instance;
27 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BopSolverOptimizerSet>
_instance;
31 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BopParameters>
_instance;
36 GOOGLE_PROTOBUF_VERIFY_VERSION;
41 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
43 ::operations_research::bop::BopOptimizerMethod::InitAsDefaultInstance();
50 GOOGLE_PROTOBUF_VERIFY_VERSION;
52 ::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.DefaultConstruct();
53 *::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get_mutable() = std::string(
"methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } ", 714);
54 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyString(
55 ::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get_mutable());
59 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
61 ::operations_research::bop::BopParameters::InitAsDefaultInstance();
69 GOOGLE_PROTOBUF_VERIFY_VERSION;
74 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
76 ::operations_research::bop::BopSolverOptimizerSet::InitAsDefaultInstance();
182 { 0, 6,
sizeof(::operations_research::bop::BopOptimizerMethod)},
183 { 7, -1,
sizeof(::operations_research::bop::BopSolverOptimizerSet)},
184 { 13, 55,
sizeof(::operations_research::bop::BopParameters)},
193 const char descriptor_table_protodef_ortools_2fbop_2fbop_5fparameters_2eproto[]
PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
194 "\n ortools/bop/bop_parameters.proto\022\027oper"
195 "ations_research.bop\"\204\004\n\022BopOptimizerMeth"
196 "od\022G\n\004type\030\001 \001(\01629.operations_research.b"
197 "op.BopOptimizerMethod.OptimizerType\"\244\003\n\r"
198 "OptimizerType\022\022\n\016SAT_CORE_BASED\020\000\022\025\n\021SAT"
199 "_LINEAR_SEARCH\020\017\022\025\n\021LINEAR_RELAXATION\020\001\022"
200 "\020\n\014LOCAL_SEARCH\020\002\022\031\n\025RANDOM_FIRST_SOLUTI"
201 "ON\020\003\022\031\n\025RANDOM_CONSTRAINT_LNS\020\004\022\027\n\023RANDO"
202 "M_VARIABLE_LNS\020\005\022\020\n\014COMPLETE_LNS\020\007\022\025\n\021LP"
203 "_FIRST_SOLUTION\020\010\022\034\n\030OBJECTIVE_FIRST_SOL"
204 "UTION\020\t\022\036\n\032USER_GUIDED_FIRST_SOLUTION\020\016\022"
205 "&\n\"RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP\020\013\022"
206 "$\n RANDOM_VARIABLE_LNS_GUIDED_BY_LP\020\014\022\026\n"
207 "\022RELATION_GRAPH_LNS\020\020\022#\n\037RELATION_GRAPH_"
208 "LNS_GUIDED_BY_LP\020\021\"U\n\025BopSolverOptimizer"
209 "Set\022<\n\007methods\030\001 \003(\0132+.operations_resear"
210 "ch.bop.BopOptimizerMethod\"\356\023\n\rBopParamet"
211 "ers\022 \n\023max_time_in_seconds\030\001 \001(\001:\003inf\022#\n"
212 "\026max_deterministic_time\030\033 \001(\001:\003inf\022$\n\031lp"
213 "_max_deterministic_time\030% \001(\001:\0011\0229\n1max_"
214 "number_of_consecutive_failing_optimizer_"
215 "calls\030# \001(\005\022\"\n\022relative_gap_limit\030\034 \001(\001:"
216 "\0060.0001\022\"\n\027max_num_decisions_in_ls\030\002 \001(\005"
217 ":\0014\0224\n max_num_broken_constraints_in_ls\030"
218 "& \001(\005:\n2147483647\022\"\n\023log_search_progress"
219 "\030\016 \001(\010:\005false\022&\n\030compute_estimated_impac"
220 "t\030\003 \001(\010:\004true\022 \n\021prune_search_tree\030\004 \001(\010"
221 ":\005false\022,\n\035sort_constraints_by_num_terms"
222 "\030\005 \001(\010:\005false\022\034\n\016use_random_lns\030\006 \001(\010:\004t"
223 "rue\022\026\n\013random_seed\030\007 \001(\005:\0018\022\034\n\020num_relax"
224 "ed_vars\030\010 \001(\005:\00210\0223\n%max_number_of_confl"
225 "icts_in_random_lns\030\t \001(\005:\0042500\022\037\n\024num_ra"
226 "ndom_lns_tries\030\n \001(\005:\0011\0221\n\036max_number_of"
227 "_backtracks_in_ls\030\013 \001(\003:\t100000000\022\030\n\nus"
228 "e_lp_lns\030\014 \001(\010:\004true\0221\n#use_sat_to_choos"
229 "e_lns_neighbourhood\030\017 \001(\010:\004true\0223\n\'max_n"
230 "umber_of_conflicts_for_quick_check\030\020 \001(\005"
231 ":\00210\022\033\n\014use_symmetry\030\021 \001(\010:\005false\0225\n&exp"
232 "loit_symmetry_in_sat_first_solution\030( \001("
233 "\010:\005false\022B\n5max_number_of_conflicts_in_r"
234 "andom_solution_generation\030\024 \001(\005:\003500\022\?\n0"
235 "max_number_of_explored_assignments_per_t"
236 "ry_in_ls\030\025 \001(\003:\00510000\022+\n\035use_transpositi"
237 "on_table_in_ls\030\026 \001(\010:\004true\0223\n$use_potent"
238 "ial_one_flip_repairs_in_ls\030\' \001(\010:\005false\022"
239 ".\n use_learned_binary_clauses_in_lp\030\027 \001("
240 "\010:\004true\022\034\n\021number_of_solvers\030\030 \001(\005:\0011\022r\n"
241 "\024synchronization_type\030\031 \001(\0162@.operations"
242 "_research.bop.BopParameters.ThreadSynchr"
243 "onizationType:\022NO_SYNCHRONIZATION\022M\n\025sol"
244 "ver_optimizer_sets\030\032 \003(\0132..operations_re"
245 "search.bop.BopSolverOptimizerSet\022\362\005\n\035def"
246 "ault_solver_optimizer_sets\030! \001(\t:\312\005metho"
247 "ds:{type:LOCAL_SEARCH } "
248 " methods:{type:RANDOM_FIRST_SOLUTIO"
249 "N } methods:{type:LINEAR_RE"
250 "LAXATION } methods:{typ"
251 "e:LP_FIRST_SOLUTION } m"
252 "ethods:{type:OBJECTIVE_FIRST_SOLUTION } "
253 " methods:{type:USER_GUIDED_FIRS"
254 "T_SOLUTION } methods:{type:RANDO"
255 "M_CONSTRAINT_LNS_GUIDED_BY_LP } methods:"
256 "{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP }"
257 " methods:{type:RELATION_GRAPH_LNS } "
258 " methods:{type:RELATION_GRA"
259 "PH_LNS_GUIDED_BY_LP } methods:{type:R"
260 "ANDOM_CONSTRAINT_LNS } meth"
261 "ods:{type:RANDOM_VARIABLE_LNS } "
262 " methods:{type:SAT_CORE_BASED } "
263 " methods:{type:COMPLETE"
264 "_LNS } \022&\n\027use_lp_"
265 "strong_branching\030\035 \001(\010:\005false\022.\n\"decompo"
266 "ser_num_variables_threshold\030\036 \001(\005:\00250\0220\n"
267 "%num_bop_solvers_used_by_decomposition\030\037"
268 " \001(\005:\0011\0221\n&decomposed_problem_min_time_i"
269 "n_seconds\030$ \001(\001:\0010\022(\n\032guided_sat_conflic"
270 "ts_chunk\030\" \001(\005:\0041000\0220\n%max_lp_solve_for"
271 "_feasibility_problems\030) \001(\005:\0010\"b\n\031Thread"
272 "SynchronizationType\022\026\n\022NO_SYNCHRONIZATIO"
273 "N\020\000\022\023\n\017SYNCHRONIZE_ALL\020\001\022\030\n\024SYNCHRONIZE_"
285 false,
false, descriptor_table_protodef_ortools_2fbop_2fbop_5fparameters_2eproto,
"ortools/bop/bop_parameters.proto", 3210,
322 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
340 constexpr
int BopOptimizerMethod::OptimizerType_ARRAYSIZE;
341 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
357 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
363 constexpr
int BopParameters::ThreadSynchronizationType_ARRAYSIZE;
364 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
368 void BopOptimizerMethod::InitAsDefaultInstance() {
372 using HasBits = decltype(std::declval<BopOptimizerMethod>()._has_bits_);
374 (*has_bits)[0] |= 1u;
378 BopOptimizerMethod::BopOptimizerMethod(::PROTOBUF_NAMESPACE_ID::Arena* arena)
379 : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
381 RegisterArenaDtor(arena);
384 BopOptimizerMethod::BopOptimizerMethod(
const BopOptimizerMethod& from)
385 : ::PROTOBUF_NAMESPACE_ID::Message(),
386 _has_bits_(from._has_bits_) {
387 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
392 void BopOptimizerMethod::SharedCtor() {
396 BopOptimizerMethod::~BopOptimizerMethod() {
399 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
402 void BopOptimizerMethod::SharedDtor() {
403 GOOGLE_DCHECK(GetArena() ==
nullptr);
406 void BopOptimizerMethod::ArenaDtor(
void*
object) {
407 BopOptimizerMethod* _this =
reinterpret_cast< BopOptimizerMethod*
>(object);
410 void BopOptimizerMethod::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
412 void BopOptimizerMethod::SetCachedSize(
int size)
const {
413 _cached_size_.Set(size);
415 const BopOptimizerMethod& BopOptimizerMethod::default_instance() {
417 return *internal_default_instance();
421 void BopOptimizerMethod::Clear() {
425 (void) cached_has_bits;
429 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
432 const char* BopOptimizerMethod::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
433 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
435 ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
436 while (!ctx->Done(&ptr)) {
438 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
449 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields());
451 }
else goto handle_unusual;
455 if ((tag & 7) == 4 || tag == 0) {
456 ctx->SetLastTag(tag);
459 ptr = UnknownFieldParse(tag,
460 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
462 CHK_(ptr !=
nullptr);
468 _has_bits_.Or(has_bits);
480 (void) cached_has_bits;
482 cached_has_bits = _has_bits_[0];
484 if (cached_has_bits & 0x00000001u) {
485 target = stream->EnsureSpace(target);
486 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
487 1, this->_internal_type(), target);
490 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
491 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
492 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
498 size_t BopOptimizerMethod::ByteSizeLong()
const {
500 size_t total_size = 0;
504 (void) cached_has_bits;
507 cached_has_bits = _has_bits_[0];
508 if (cached_has_bits & 0x00000001u) {
510 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_type());
513 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
514 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
515 _internal_metadata_, total_size, &_cached_size_);
517 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
518 SetCachedSize(cached_size);
522 void BopOptimizerMethod::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
524 GOOGLE_DCHECK_NE(&from,
this);
525 const BopOptimizerMethod* source =
526 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BopOptimizerMethod>(
528 if (source ==
nullptr) {
530 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
537 void BopOptimizerMethod::MergeFrom(
const BopOptimizerMethod& from) {
539 GOOGLE_DCHECK_NE(&from,
this);
540 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
542 (void) cached_has_bits;
544 if (from._internal_has_type()) {
545 _internal_set_type(from._internal_type());
549 void BopOptimizerMethod::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
551 if (&from ==
this)
return;
556 void BopOptimizerMethod::CopyFrom(
const BopOptimizerMethod& from) {
558 if (&from ==
this)
return;
563 bool BopOptimizerMethod::IsInitialized()
const {
567 void BopOptimizerMethod::InternalSwap(BopOptimizerMethod* other) {
569 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
570 swap(_has_bits_[0], other->_has_bits_[0]);
571 swap(type_, other->type_);
574 ::PROTOBUF_NAMESPACE_ID::Metadata BopOptimizerMethod::GetMetadata()
const {
575 return GetMetadataStatic();
581 void BopSolverOptimizerSet::InitAsDefaultInstance() {
587 BopSolverOptimizerSet::BopSolverOptimizerSet(::PROTOBUF_NAMESPACE_ID::Arena* arena)
588 : ::PROTOBUF_NAMESPACE_ID::Message(arena),
591 RegisterArenaDtor(arena);
594 BopSolverOptimizerSet::BopSolverOptimizerSet(
const BopSolverOptimizerSet& from)
595 : ::PROTOBUF_NAMESPACE_ID::Message(),
596 methods_(from.methods_) {
597 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
601 void BopSolverOptimizerSet::SharedCtor() {
605 BopSolverOptimizerSet::~BopSolverOptimizerSet() {
608 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
611 void BopSolverOptimizerSet::SharedDtor() {
612 GOOGLE_DCHECK(GetArena() ==
nullptr);
615 void BopSolverOptimizerSet::ArenaDtor(
void*
object) {
616 BopSolverOptimizerSet* _this =
reinterpret_cast< BopSolverOptimizerSet*
>(object);
619 void BopSolverOptimizerSet::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
621 void BopSolverOptimizerSet::SetCachedSize(
int size)
const {
622 _cached_size_.Set(size);
624 const BopSolverOptimizerSet& BopSolverOptimizerSet::default_instance() {
626 return *internal_default_instance();
630 void BopSolverOptimizerSet::Clear() {
634 (void) cached_has_bits;
637 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
640 const char* BopSolverOptimizerSet::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
641 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
642 ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
643 while (!ctx->Done(&ptr)) {
645 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
654 ptr = ctx->ParseMessage(_internal_add_methods(), ptr);
656 if (!ctx->DataAvailable(ptr))
break;
657 }
while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
658 }
else goto handle_unusual;
662 if ((tag & 7) == 4 || tag == 0) {
663 ctx->SetLastTag(tag);
666 ptr = UnknownFieldParse(tag,
667 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
669 CHK_(ptr !=
nullptr);
686 (void) cached_has_bits;
689 for (
unsigned int i = 0,
690 n =
static_cast<unsigned int>(this->_internal_methods_size()); i < n; i++) {
691 target = stream->EnsureSpace(target);
692 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
693 InternalWriteMessage(1, this->_internal_methods(i), target, stream);
696 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
697 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
698 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
704 size_t BopSolverOptimizerSet::ByteSizeLong()
const {
706 size_t total_size = 0;
710 (void) cached_has_bits;
713 total_size += 1UL * this->_internal_methods_size();
714 for (
const auto& msg : this->methods_) {
716 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
719 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
720 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
721 _internal_metadata_, total_size, &_cached_size_);
723 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
724 SetCachedSize(cached_size);
728 void BopSolverOptimizerSet::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
730 GOOGLE_DCHECK_NE(&from,
this);
731 const BopSolverOptimizerSet* source =
732 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BopSolverOptimizerSet>(
734 if (source ==
nullptr) {
736 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
743 void BopSolverOptimizerSet::MergeFrom(
const BopSolverOptimizerSet& from) {
745 GOOGLE_DCHECK_NE(&from,
this);
746 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
748 (void) cached_has_bits;
750 methods_.MergeFrom(from.methods_);
753 void BopSolverOptimizerSet::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
755 if (&from ==
this)
return;
760 void BopSolverOptimizerSet::CopyFrom(
const BopSolverOptimizerSet& from) {
762 if (&from ==
this)
return;
767 bool BopSolverOptimizerSet::IsInitialized()
const {
771 void BopSolverOptimizerSet::InternalSwap(BopSolverOptimizerSet* other) {
773 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
774 methods_.InternalSwap(&other->methods_);
777 ::PROTOBUF_NAMESPACE_ID::Metadata BopSolverOptimizerSet::GetMetadata()
const {
778 return GetMetadataStatic();
784 void BopParameters::InitAsDefaultInstance() {
788 using HasBits = decltype(std::declval<BopParameters>()._has_bits_);
790 (*has_bits)[0] |= 4096u;
793 (*has_bits)[0] |= 536870912u;
796 (*has_bits)[1] |= 8u;
799 (*has_bits)[0] |= 64u;
802 (*has_bits)[0] |= 1073741824u;
805 (*has_bits)[0] |= 8192u;
808 (*has_bits)[1] |= 4u;
811 (*has_bits)[0] |= 2u;
814 (*has_bits)[0] |= 131072u;
817 (*has_bits)[0] |= 4u;
820 (*has_bits)[0] |= 8u;
823 (*has_bits)[0] |= 262144u;
826 (*has_bits)[0] |= 16384u;
829 (*has_bits)[0] |= 32768u;
832 (*has_bits)[0] |= 65536u;
835 (*has_bits)[0] |= 2097152u;
838 (*has_bits)[0] |= 4194304u;
841 (*has_bits)[0] |= 524288u;
844 (*has_bits)[0] |= 1048576u;
847 (*has_bits)[0] |= 8388608u;
850 (*has_bits)[0] |= 16u;
853 (*has_bits)[0] |= 128u;
856 (*has_bits)[0] |= 16777216u;
859 (*has_bits)[0] |= 33554432u;
862 (*has_bits)[0] |= 67108864u;
865 (*has_bits)[0] |= 256u;
868 (*has_bits)[0] |= 134217728u;
871 (*has_bits)[0] |= 268435456u;
874 (*has_bits)[0] |= 32u;
877 (*has_bits)[0] |= 1u;
880 (*has_bits)[0] |= 512u;
883 (*has_bits)[0] |= 2147483648u;
886 (*has_bits)[1] |= 1u;
889 (*has_bits)[0] |= 1024u;
892 (*has_bits)[1] |= 2u;
895 (*has_bits)[0] |= 2048u;
899 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string> BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_;
900 BopParameters::BopParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
901 : ::PROTOBUF_NAMESPACE_ID::Message(arena),
902 solver_optimizer_sets_(arena) {
904 RegisterArenaDtor(arena);
907 BopParameters::BopParameters(
const BopParameters& from)
908 : ::PROTOBUF_NAMESPACE_ID::Message(),
909 _has_bits_(from._has_bits_),
910 solver_optimizer_sets_(from.solver_optimizer_sets_) {
911 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
912 default_solver_optimizer_sets_.UnsafeSetDefault(&::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get());
913 if (from._internal_has_default_solver_optimizer_sets()) {
914 default_solver_optimizer_sets_.Set(&::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get(), from._internal_default_solver_optimizer_sets(),
917 ::memcpy(&log_search_progress_, &from.log_search_progress_,
918 static_cast<size_t>(
reinterpret_cast<char*
>(&lp_max_deterministic_time_) -
919 reinterpret_cast<char*
>(&log_search_progress_)) +
sizeof(lp_max_deterministic_time_));
923 void BopParameters::SharedCtor() {
925 default_solver_optimizer_sets_.UnsafeSetDefault(&::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get());
926 ::memset(&log_search_progress_, 0,
static_cast<size_t>(
927 reinterpret_cast<char*
>(&max_lp_solve_for_feasibility_problems_) -
928 reinterpret_cast<char*
>(&log_search_progress_)) +
sizeof(max_lp_solve_for_feasibility_problems_));
929 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
930 max_num_decisions_in_ls_ = 4;
932 num_relaxed_vars_ = 10;
933 max_number_of_conflicts_in_random_lns_ = 2500;
934 compute_estimated_impact_ =
true;
935 use_random_lns_ =
true;
937 use_sat_to_choose_lns_neighbourhood_ =
true;
938 num_random_lns_tries_ = 1;
939 max_number_of_backtracks_in_ls_ = PROTOBUF_LONGLONG(100000000);
940 max_number_of_conflicts_for_quick_check_ = 10;
941 max_number_of_conflicts_in_random_solution_generation_ = 500;
942 max_number_of_explored_assignments_per_try_in_ls_ = PROTOBUF_LONGLONG(10000);
943 use_transposition_table_in_ls_ =
true;
944 use_learned_binary_clauses_in_lp_ =
true;
945 number_of_solvers_ = 1;
946 max_deterministic_time_ = std::numeric_limits<double>::infinity();
947 relative_gap_limit_ = 0.0001;
948 decomposer_num_variables_threshold_ = 50;
949 num_bop_solvers_used_by_decomposition_ = 1;
950 guided_sat_conflicts_chunk_ = 1000;
951 max_num_broken_constraints_in_ls_ = 2147483647;
952 lp_max_deterministic_time_ = 1;
955 BopParameters::~BopParameters() {
958 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
961 void BopParameters::SharedDtor() {
962 GOOGLE_DCHECK(GetArena() ==
nullptr);
963 default_solver_optimizer_sets_.DestroyNoArena(&::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get());
966 void BopParameters::ArenaDtor(
void*
object) {
967 BopParameters* _this =
reinterpret_cast< BopParameters*
>(object);
970 void BopParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
972 void BopParameters::SetCachedSize(
int size)
const {
973 _cached_size_.Set(size);
975 const BopParameters& BopParameters::default_instance() {
977 return *internal_default_instance();
981 void BopParameters::Clear() {
985 (void) cached_has_bits;
987 solver_optimizer_sets_.Clear();
988 cached_has_bits = _has_bits_[0];
989 if (cached_has_bits & 0x00000001u) {
990 default_solver_optimizer_sets_.ClearToDefault(&::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get(), GetArena());
992 if (cached_has_bits & 0x000000feu) {
993 ::memset(&log_search_progress_, 0,
static_cast<size_t>(
994 reinterpret_cast<char*
>(&exploit_symmetry_in_sat_first_solution_) -
995 reinterpret_cast<char*
>(&log_search_progress_)) +
sizeof(exploit_symmetry_in_sat_first_solution_));
997 if (cached_has_bits & 0x0000ff00u) {
998 ::memset(&use_potential_one_flip_repairs_in_ls_, 0,
static_cast<size_t>(
999 reinterpret_cast<char*
>(&max_lp_solve_for_feasibility_problems_) -
1000 reinterpret_cast<char*
>(&use_potential_one_flip_repairs_in_ls_)) +
sizeof(max_lp_solve_for_feasibility_problems_));
1001 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
1002 max_num_decisions_in_ls_ = 4;
1004 num_relaxed_vars_ = 10;
1006 if (cached_has_bits & 0x00ff0000u) {
1007 max_number_of_conflicts_in_random_lns_ = 2500;
1008 compute_estimated_impact_ =
true;
1009 use_random_lns_ =
true;
1011 use_sat_to_choose_lns_neighbourhood_ =
true;
1012 num_random_lns_tries_ = 1;
1013 max_number_of_backtracks_in_ls_ = PROTOBUF_LONGLONG(100000000);
1014 max_number_of_conflicts_for_quick_check_ = 10;
1016 if (cached_has_bits & 0xff000000u) {
1017 max_number_of_conflicts_in_random_solution_generation_ = 500;
1018 max_number_of_explored_assignments_per_try_in_ls_ = PROTOBUF_LONGLONG(10000);
1019 use_transposition_table_in_ls_ =
true;
1020 use_learned_binary_clauses_in_lp_ =
true;
1021 number_of_solvers_ = 1;
1022 max_deterministic_time_ = std::numeric_limits<double>::infinity();
1023 relative_gap_limit_ = 0.0001;
1024 decomposer_num_variables_threshold_ = 50;
1026 cached_has_bits = _has_bits_[1];
1027 if (cached_has_bits & 0x0000000fu) {
1028 num_bop_solvers_used_by_decomposition_ = 1;
1029 guided_sat_conflicts_chunk_ = 1000;
1030 max_num_broken_constraints_in_ls_ = 2147483647;
1031 lp_max_deterministic_time_ = 1;
1034 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1037 const char* BopParameters::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1038 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1039 ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
1040 while (!ctx->Done(&ptr)) {
1042 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1049 max_time_in_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1050 ptr +=
sizeof(double);
1051 }
else goto handle_unusual;
1057 max_num_decisions_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1059 }
else goto handle_unusual;
1065 compute_estimated_impact_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1067 }
else goto handle_unusual;
1073 prune_search_tree_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1075 }
else goto handle_unusual;
1081 sort_constraints_by_num_terms_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1083 }
else goto handle_unusual;
1089 use_random_lns_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1091 }
else goto handle_unusual;
1097 random_seed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1099 }
else goto handle_unusual;
1105 num_relaxed_vars_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1107 }
else goto handle_unusual;
1113 max_number_of_conflicts_in_random_lns_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1115 }
else goto handle_unusual;
1121 num_random_lns_tries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1123 }
else goto handle_unusual;
1129 max_number_of_backtracks_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1131 }
else goto handle_unusual;
1137 use_lp_lns_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1139 }
else goto handle_unusual;
1145 log_search_progress_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1147 }
else goto handle_unusual;
1153 use_sat_to_choose_lns_neighbourhood_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1155 }
else goto handle_unusual;
1161 max_number_of_conflicts_for_quick_check_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1163 }
else goto handle_unusual;
1169 use_symmetry_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1171 }
else goto handle_unusual;
1177 max_number_of_conflicts_in_random_solution_generation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1179 }
else goto handle_unusual;
1185 max_number_of_explored_assignments_per_try_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1187 }
else goto handle_unusual;
1193 use_transposition_table_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1195 }
else goto handle_unusual;
1201 use_learned_binary_clauses_in_lp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1203 }
else goto handle_unusual;
1209 number_of_solvers_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1211 }
else goto handle_unusual;
1221 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(25, val, mutable_unknown_fields());
1223 }
else goto handle_unusual;
1231 ptr = ctx->ParseMessage(_internal_add_solver_optimizer_sets(), ptr);
1233 if (!ctx->DataAvailable(ptr))
break;
1234 }
while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<210>(ptr));
1235 }
else goto handle_unusual;
1241 max_deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1242 ptr +=
sizeof(double);
1243 }
else goto handle_unusual;
1249 relative_gap_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1250 ptr +=
sizeof(double);
1251 }
else goto handle_unusual;
1257 use_lp_strong_branching_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1259 }
else goto handle_unusual;
1265 decomposer_num_variables_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1267 }
else goto handle_unusual;
1273 num_bop_solvers_used_by_decomposition_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1275 }
else goto handle_unusual;
1280 auto str = _internal_mutable_default_solver_optimizer_sets();
1281 ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1283 ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str,
"operations_research.bop.BopParameters.default_solver_optimizer_sets");
1286 }
else goto handle_unusual;
1292 guided_sat_conflicts_chunk_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1294 }
else goto handle_unusual;
1300 max_number_of_consecutive_failing_optimizer_calls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1302 }
else goto handle_unusual;
1308 decomposed_problem_min_time_in_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1309 ptr +=
sizeof(double);
1310 }
else goto handle_unusual;
1316 lp_max_deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1317 ptr +=
sizeof(double);
1318 }
else goto handle_unusual;
1324 max_num_broken_constraints_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1326 }
else goto handle_unusual;
1332 use_potential_one_flip_repairs_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1334 }
else goto handle_unusual;
1340 exploit_symmetry_in_sat_first_solution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1342 }
else goto handle_unusual;
1348 max_lp_solve_for_feasibility_problems_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1350 }
else goto handle_unusual;
1354 if ((tag & 7) == 4 || tag == 0) {
1355 ctx->SetLastTag(tag);
1358 ptr = UnknownFieldParse(tag,
1359 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1361 CHK_(ptr !=
nullptr);
1378 (void) cached_has_bits;
1380 cached_has_bits = _has_bits_[0];
1382 if (cached_has_bits & 0x00001000u) {
1383 target = stream->EnsureSpace(target);
1384 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(1, this->_internal_max_time_in_seconds(), target);
1388 if (cached_has_bits & 0x00002000u) {
1389 target = stream->EnsureSpace(target);
1390 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_max_num_decisions_in_ls(), target);
1394 if (cached_has_bits & 0x00020000u) {
1395 target = stream->EnsureSpace(target);
1396 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_compute_estimated_impact(), target);
1400 if (cached_has_bits & 0x00000004u) {
1401 target = stream->EnsureSpace(target);
1402 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_prune_search_tree(), target);
1406 if (cached_has_bits & 0x00000008u) {
1407 target = stream->EnsureSpace(target);
1408 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_sort_constraints_by_num_terms(), target);
1412 if (cached_has_bits & 0x00040000u) {
1413 target = stream->EnsureSpace(target);
1414 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_use_random_lns(), target);
1418 if (cached_has_bits & 0x00004000u) {
1419 target = stream->EnsureSpace(target);
1420 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_random_seed(), target);
1424 if (cached_has_bits & 0x00008000u) {
1425 target = stream->EnsureSpace(target);
1426 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(8, this->_internal_num_relaxed_vars(), target);
1430 if (cached_has_bits & 0x00010000u) {
1431 target = stream->EnsureSpace(target);
1432 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(9, this->_internal_max_number_of_conflicts_in_random_lns(), target);
1436 if (cached_has_bits & 0x00200000u) {
1437 target = stream->EnsureSpace(target);
1438 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(10, this->_internal_num_random_lns_tries(), target);
1442 if (cached_has_bits & 0x00400000u) {
1443 target = stream->EnsureSpace(target);
1444 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(11, this->_internal_max_number_of_backtracks_in_ls(), target);
1448 if (cached_has_bits & 0x00080000u) {
1449 target = stream->EnsureSpace(target);
1450 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(12, this->_internal_use_lp_lns(), target);
1454 if (cached_has_bits & 0x00000002u) {
1455 target = stream->EnsureSpace(target);
1456 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(14, this->_internal_log_search_progress(), target);
1460 if (cached_has_bits & 0x00100000u) {
1461 target = stream->EnsureSpace(target);
1462 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_use_sat_to_choose_lns_neighbourhood(), target);
1466 if (cached_has_bits & 0x00800000u) {
1467 target = stream->EnsureSpace(target);
1468 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(16, this->_internal_max_number_of_conflicts_for_quick_check(), target);
1472 if (cached_has_bits & 0x00000010u) {
1473 target = stream->EnsureSpace(target);
1474 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(17, this->_internal_use_symmetry(), target);
1478 if (cached_has_bits & 0x01000000u) {
1479 target = stream->EnsureSpace(target);
1480 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(20, this->_internal_max_number_of_conflicts_in_random_solution_generation(), target);
1484 if (cached_has_bits & 0x02000000u) {
1485 target = stream->EnsureSpace(target);
1486 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(21, this->_internal_max_number_of_explored_assignments_per_try_in_ls(), target);
1490 if (cached_has_bits & 0x04000000u) {
1491 target = stream->EnsureSpace(target);
1492 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(22, this->_internal_use_transposition_table_in_ls(), target);
1496 if (cached_has_bits & 0x08000000u) {
1497 target = stream->EnsureSpace(target);
1498 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(23, this->_internal_use_learned_binary_clauses_in_lp(), target);
1502 if (cached_has_bits & 0x10000000u) {
1503 target = stream->EnsureSpace(target);
1504 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(24, this->_internal_number_of_solvers(), target);
1508 if (cached_has_bits & 0x00000020u) {
1509 target = stream->EnsureSpace(target);
1510 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1511 25, this->_internal_synchronization_type(), target);
1515 for (
unsigned int i = 0,
1516 n =
static_cast<unsigned int>(this->_internal_solver_optimizer_sets_size()); i < n; i++) {
1517 target = stream->EnsureSpace(target);
1518 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1519 InternalWriteMessage(26, this->_internal_solver_optimizer_sets(i), target, stream);
1523 if (cached_has_bits & 0x20000000u) {
1524 target = stream->EnsureSpace(target);
1525 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(27, this->_internal_max_deterministic_time(), target);
1529 if (cached_has_bits & 0x40000000u) {
1530 target = stream->EnsureSpace(target);
1531 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(28, this->_internal_relative_gap_limit(), target);
1535 if (cached_has_bits & 0x00000200u) {
1536 target = stream->EnsureSpace(target);
1537 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(29, this->_internal_use_lp_strong_branching(), target);
1541 if (cached_has_bits & 0x80000000u) {
1542 target = stream->EnsureSpace(target);
1543 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(30, this->_internal_decomposer_num_variables_threshold(), target);
1546 cached_has_bits = _has_bits_[1];
1548 if (cached_has_bits & 0x00000001u) {
1549 target = stream->EnsureSpace(target);
1550 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(31, this->_internal_num_bop_solvers_used_by_decomposition(), target);
1553 cached_has_bits = _has_bits_[0];
1555 if (cached_has_bits & 0x00000001u) {
1556 ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
1557 this->_internal_default_solver_optimizer_sets().data(),
static_cast<int>(this->_internal_default_solver_optimizer_sets().length()),
1558 ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
1559 "operations_research.bop.BopParameters.default_solver_optimizer_sets");
1560 target = stream->WriteStringMaybeAliased(
1561 33, this->_internal_default_solver_optimizer_sets(), target);
1564 cached_has_bits = _has_bits_[1];
1566 if (cached_has_bits & 0x00000002u) {
1567 target = stream->EnsureSpace(target);
1568 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(34, this->_internal_guided_sat_conflicts_chunk(), target);
1571 cached_has_bits = _has_bits_[0];
1573 if (cached_has_bits & 0x00000040u) {
1574 target = stream->EnsureSpace(target);
1575 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(35, this->_internal_max_number_of_consecutive_failing_optimizer_calls(), target);
1579 if (cached_has_bits & 0x00000400u) {
1580 target = stream->EnsureSpace(target);
1581 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(36, this->_internal_decomposed_problem_min_time_in_seconds(), target);
1584 cached_has_bits = _has_bits_[1];
1586 if (cached_has_bits & 0x00000008u) {
1587 target = stream->EnsureSpace(target);
1588 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(37, this->_internal_lp_max_deterministic_time(), target);
1592 if (cached_has_bits & 0x00000004u) {
1593 target = stream->EnsureSpace(target);
1594 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(38, this->_internal_max_num_broken_constraints_in_ls(), target);
1597 cached_has_bits = _has_bits_[0];
1599 if (cached_has_bits & 0x00000100u) {
1600 target = stream->EnsureSpace(target);
1601 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(39, this->_internal_use_potential_one_flip_repairs_in_ls(), target);
1605 if (cached_has_bits & 0x00000080u) {
1606 target = stream->EnsureSpace(target);
1607 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(40, this->_internal_exploit_symmetry_in_sat_first_solution(), target);
1611 if (cached_has_bits & 0x00000800u) {
1612 target = stream->EnsureSpace(target);
1613 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(41, this->_internal_max_lp_solve_for_feasibility_problems(), target);
1616 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1617 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1618 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1624 size_t BopParameters::ByteSizeLong()
const {
1626 size_t total_size = 0;
1630 (void) cached_has_bits;
1633 total_size += 2UL * this->_internal_solver_optimizer_sets_size();
1634 for (
const auto& msg : this->solver_optimizer_sets_) {
1636 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
1639 cached_has_bits = _has_bits_[0];
1640 if (cached_has_bits & 0x000000ffu) {
1642 if (cached_has_bits & 0x00000001u) {
1644 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1645 this->_internal_default_solver_optimizer_sets());
1649 if (cached_has_bits & 0x00000002u) {
1650 total_size += 1 + 1;
1654 if (cached_has_bits & 0x00000004u) {
1655 total_size += 1 + 1;
1659 if (cached_has_bits & 0x00000008u) {
1660 total_size += 1 + 1;
1664 if (cached_has_bits & 0x00000010u) {
1665 total_size += 2 + 1;
1669 if (cached_has_bits & 0x00000020u) {
1671 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_synchronization_type());
1675 if (cached_has_bits & 0x00000040u) {
1677 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1678 this->_internal_max_number_of_consecutive_failing_optimizer_calls());
1682 if (cached_has_bits & 0x00000080u) {
1683 total_size += 2 + 1;
1687 if (cached_has_bits & 0x0000ff00u) {
1689 if (cached_has_bits & 0x00000100u) {
1690 total_size += 2 + 1;
1694 if (cached_has_bits & 0x00000200u) {
1695 total_size += 2 + 1;
1699 if (cached_has_bits & 0x00000400u) {
1700 total_size += 2 + 8;
1704 if (cached_has_bits & 0x00000800u) {
1706 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1707 this->_internal_max_lp_solve_for_feasibility_problems());
1711 if (cached_has_bits & 0x00001000u) {
1712 total_size += 1 + 8;
1716 if (cached_has_bits & 0x00002000u) {
1718 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1719 this->_internal_max_num_decisions_in_ls());
1723 if (cached_has_bits & 0x00004000u) {
1725 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1726 this->_internal_random_seed());
1730 if (cached_has_bits & 0x00008000u) {
1732 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1733 this->_internal_num_relaxed_vars());
1737 if (cached_has_bits & 0x00ff0000u) {
1739 if (cached_has_bits & 0x00010000u) {
1741 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1742 this->_internal_max_number_of_conflicts_in_random_lns());
1746 if (cached_has_bits & 0x00020000u) {
1747 total_size += 1 + 1;
1751 if (cached_has_bits & 0x00040000u) {
1752 total_size += 1 + 1;
1756 if (cached_has_bits & 0x00080000u) {
1757 total_size += 1 + 1;
1761 if (cached_has_bits & 0x00100000u) {
1762 total_size += 1 + 1;
1766 if (cached_has_bits & 0x00200000u) {
1768 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1769 this->_internal_num_random_lns_tries());
1773 if (cached_has_bits & 0x00400000u) {
1775 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1776 this->_internal_max_number_of_backtracks_in_ls());
1780 if (cached_has_bits & 0x00800000u) {
1782 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1783 this->_internal_max_number_of_conflicts_for_quick_check());
1787 if (cached_has_bits & 0xff000000u) {
1789 if (cached_has_bits & 0x01000000u) {
1791 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1792 this->_internal_max_number_of_conflicts_in_random_solution_generation());
1796 if (cached_has_bits & 0x02000000u) {
1798 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1799 this->_internal_max_number_of_explored_assignments_per_try_in_ls());
1803 if (cached_has_bits & 0x04000000u) {
1804 total_size += 2 + 1;
1808 if (cached_has_bits & 0x08000000u) {
1809 total_size += 2 + 1;
1813 if (cached_has_bits & 0x10000000u) {
1815 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1816 this->_internal_number_of_solvers());
1820 if (cached_has_bits & 0x20000000u) {
1821 total_size += 2 + 8;
1825 if (cached_has_bits & 0x40000000u) {
1826 total_size += 2 + 8;
1830 if (cached_has_bits & 0x80000000u) {
1832 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1833 this->_internal_decomposer_num_variables_threshold());
1837 cached_has_bits = _has_bits_[1];
1838 if (cached_has_bits & 0x0000000fu) {
1840 if (cached_has_bits & 0x00000001u) {
1842 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1843 this->_internal_num_bop_solvers_used_by_decomposition());
1847 if (cached_has_bits & 0x00000002u) {
1849 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1850 this->_internal_guided_sat_conflicts_chunk());
1854 if (cached_has_bits & 0x00000004u) {
1856 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1857 this->_internal_max_num_broken_constraints_in_ls());
1861 if (cached_has_bits & 0x00000008u) {
1862 total_size += 2 + 8;
1866 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1867 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1868 _internal_metadata_, total_size, &_cached_size_);
1870 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1871 SetCachedSize(cached_size);
1875 void BopParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1877 GOOGLE_DCHECK_NE(&from,
this);
1878 const BopParameters* source =
1879 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BopParameters>(
1881 if (source ==
nullptr) {
1883 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
1890 void BopParameters::MergeFrom(
const BopParameters& from) {
1892 GOOGLE_DCHECK_NE(&from,
this);
1893 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1895 (void) cached_has_bits;
1897 solver_optimizer_sets_.MergeFrom(from.solver_optimizer_sets_);
1898 cached_has_bits = from._has_bits_[0];
1899 if (cached_has_bits & 0x000000ffu) {
1900 if (cached_has_bits & 0x00000001u) {
1901 _internal_set_default_solver_optimizer_sets(from._internal_default_solver_optimizer_sets());
1903 if (cached_has_bits & 0x00000002u) {
1904 log_search_progress_ = from.log_search_progress_;
1906 if (cached_has_bits & 0x00000004u) {
1907 prune_search_tree_ = from.prune_search_tree_;
1909 if (cached_has_bits & 0x00000008u) {
1910 sort_constraints_by_num_terms_ = from.sort_constraints_by_num_terms_;
1912 if (cached_has_bits & 0x00000010u) {
1913 use_symmetry_ = from.use_symmetry_;
1915 if (cached_has_bits & 0x00000020u) {
1916 synchronization_type_ = from.synchronization_type_;
1918 if (cached_has_bits & 0x00000040u) {
1919 max_number_of_consecutive_failing_optimizer_calls_ = from.max_number_of_consecutive_failing_optimizer_calls_;
1921 if (cached_has_bits & 0x00000080u) {
1922 exploit_symmetry_in_sat_first_solution_ = from.exploit_symmetry_in_sat_first_solution_;
1924 _has_bits_[0] |= cached_has_bits;
1926 if (cached_has_bits & 0x0000ff00u) {
1927 if (cached_has_bits & 0x00000100u) {
1928 use_potential_one_flip_repairs_in_ls_ = from.use_potential_one_flip_repairs_in_ls_;
1930 if (cached_has_bits & 0x00000200u) {
1931 use_lp_strong_branching_ = from.use_lp_strong_branching_;
1933 if (cached_has_bits & 0x00000400u) {
1934 decomposed_problem_min_time_in_seconds_ = from.decomposed_problem_min_time_in_seconds_;
1936 if (cached_has_bits & 0x00000800u) {
1937 max_lp_solve_for_feasibility_problems_ = from.max_lp_solve_for_feasibility_problems_;
1939 if (cached_has_bits & 0x00001000u) {
1940 max_time_in_seconds_ = from.max_time_in_seconds_;
1942 if (cached_has_bits & 0x00002000u) {
1943 max_num_decisions_in_ls_ = from.max_num_decisions_in_ls_;
1945 if (cached_has_bits & 0x00004000u) {
1946 random_seed_ = from.random_seed_;
1948 if (cached_has_bits & 0x00008000u) {
1949 num_relaxed_vars_ = from.num_relaxed_vars_;
1951 _has_bits_[0] |= cached_has_bits;
1953 if (cached_has_bits & 0x00ff0000u) {
1954 if (cached_has_bits & 0x00010000u) {
1955 max_number_of_conflicts_in_random_lns_ = from.max_number_of_conflicts_in_random_lns_;
1957 if (cached_has_bits & 0x00020000u) {
1958 compute_estimated_impact_ = from.compute_estimated_impact_;
1960 if (cached_has_bits & 0x00040000u) {
1961 use_random_lns_ = from.use_random_lns_;
1963 if (cached_has_bits & 0x00080000u) {
1964 use_lp_lns_ = from.use_lp_lns_;
1966 if (cached_has_bits & 0x00100000u) {
1967 use_sat_to_choose_lns_neighbourhood_ = from.use_sat_to_choose_lns_neighbourhood_;
1969 if (cached_has_bits & 0x00200000u) {
1970 num_random_lns_tries_ = from.num_random_lns_tries_;
1972 if (cached_has_bits & 0x00400000u) {
1973 max_number_of_backtracks_in_ls_ = from.max_number_of_backtracks_in_ls_;
1975 if (cached_has_bits & 0x00800000u) {
1976 max_number_of_conflicts_for_quick_check_ = from.max_number_of_conflicts_for_quick_check_;
1978 _has_bits_[0] |= cached_has_bits;
1980 if (cached_has_bits & 0xff000000u) {
1981 if (cached_has_bits & 0x01000000u) {
1982 max_number_of_conflicts_in_random_solution_generation_ = from.max_number_of_conflicts_in_random_solution_generation_;
1984 if (cached_has_bits & 0x02000000u) {
1985 max_number_of_explored_assignments_per_try_in_ls_ = from.max_number_of_explored_assignments_per_try_in_ls_;
1987 if (cached_has_bits & 0x04000000u) {
1988 use_transposition_table_in_ls_ = from.use_transposition_table_in_ls_;
1990 if (cached_has_bits & 0x08000000u) {
1991 use_learned_binary_clauses_in_lp_ = from.use_learned_binary_clauses_in_lp_;
1993 if (cached_has_bits & 0x10000000u) {
1994 number_of_solvers_ = from.number_of_solvers_;
1996 if (cached_has_bits & 0x20000000u) {
1997 max_deterministic_time_ = from.max_deterministic_time_;
1999 if (cached_has_bits & 0x40000000u) {
2000 relative_gap_limit_ = from.relative_gap_limit_;
2002 if (cached_has_bits & 0x80000000u) {
2003 decomposer_num_variables_threshold_ = from.decomposer_num_variables_threshold_;
2005 _has_bits_[0] |= cached_has_bits;
2007 cached_has_bits = from._has_bits_[1];
2008 if (cached_has_bits & 0x0000000fu) {
2009 if (cached_has_bits & 0x00000001u) {
2010 num_bop_solvers_used_by_decomposition_ = from.num_bop_solvers_used_by_decomposition_;
2012 if (cached_has_bits & 0x00000002u) {
2013 guided_sat_conflicts_chunk_ = from.guided_sat_conflicts_chunk_;
2015 if (cached_has_bits & 0x00000004u) {
2016 max_num_broken_constraints_in_ls_ = from.max_num_broken_constraints_in_ls_;
2018 if (cached_has_bits & 0x00000008u) {
2019 lp_max_deterministic_time_ = from.lp_max_deterministic_time_;
2021 _has_bits_[1] |= cached_has_bits;
2025 void BopParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2027 if (&from ==
this)
return;
2032 void BopParameters::CopyFrom(
const BopParameters& from) {
2034 if (&from ==
this)
return;
2039 bool BopParameters::IsInitialized()
const {
2043 void BopParameters::InternalSwap(BopParameters* other) {
2045 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2046 swap(_has_bits_[0], other->_has_bits_[0]);
2047 swap(_has_bits_[1], other->_has_bits_[1]);
2048 solver_optimizer_sets_.InternalSwap(&other->solver_optimizer_sets_);
2049 default_solver_optimizer_sets_.Swap(&other->default_solver_optimizer_sets_, &::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get(), GetArena());
2050 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2051 PROTOBUF_FIELD_OFFSET(BopParameters, max_lp_solve_for_feasibility_problems_)
2052 +
sizeof(BopParameters::max_lp_solve_for_feasibility_problems_)
2053 - PROTOBUF_FIELD_OFFSET(BopParameters, log_search_progress_)>(
2054 reinterpret_cast<char*
>(&log_search_progress_),
2055 reinterpret_cast<char*
>(&other->log_search_progress_));
2056 swap(max_time_in_seconds_, other->max_time_in_seconds_);
2057 swap(max_num_decisions_in_ls_, other->max_num_decisions_in_ls_);
2058 swap(random_seed_, other->random_seed_);
2059 swap(num_relaxed_vars_, other->num_relaxed_vars_);
2060 swap(max_number_of_conflicts_in_random_lns_, other->max_number_of_conflicts_in_random_lns_);
2061 swap(compute_estimated_impact_, other->compute_estimated_impact_);
2062 swap(use_random_lns_, other->use_random_lns_);
2063 swap(use_lp_lns_, other->use_lp_lns_);
2064 swap(use_sat_to_choose_lns_neighbourhood_, other->use_sat_to_choose_lns_neighbourhood_);
2065 swap(num_random_lns_tries_, other->num_random_lns_tries_);
2066 swap(max_number_of_backtracks_in_ls_, other->max_number_of_backtracks_in_ls_);
2067 swap(max_number_of_conflicts_for_quick_check_, other->max_number_of_conflicts_for_quick_check_);
2068 swap(max_number_of_conflicts_in_random_solution_generation_, other->max_number_of_conflicts_in_random_solution_generation_);
2069 swap(max_number_of_explored_assignments_per_try_in_ls_, other->max_number_of_explored_assignments_per_try_in_ls_);
2070 swap(use_transposition_table_in_ls_, other->use_transposition_table_in_ls_);
2071 swap(use_learned_binary_clauses_in_lp_, other->use_learned_binary_clauses_in_lp_);
2072 swap(number_of_solvers_, other->number_of_solvers_);
2073 swap(max_deterministic_time_, other->max_deterministic_time_);
2074 swap(relative_gap_limit_, other->relative_gap_limit_);
2075 swap(decomposer_num_variables_threshold_, other->decomposer_num_variables_threshold_);
2076 swap(num_bop_solvers_used_by_decomposition_, other->num_bop_solvers_used_by_decomposition_);
2077 swap(guided_sat_conflicts_chunk_, other->guided_sat_conflicts_chunk_);
2078 swap(max_num_broken_constraints_in_ls_, other->max_num_broken_constraints_in_ls_);
2079 swap(lp_max_deterministic_time_, other->lp_max_deterministic_time_);
2082 ::PROTOBUF_NAMESPACE_ID::Metadata BopParameters::GetMetadata()
const {
2083 return GetMetadataStatic();
2090 PROTOBUF_NAMESPACE_OPEN
2092 return Arena::CreateMessageInternal< ::operations_research::bop::BopOptimizerMethod >(arena);
2095 return Arena::CreateMessageInternal< ::operations_research::bop::BopSolverOptimizerSet >(arena);
2098 return Arena::CreateMessageInternal< ::operations_research::bop::BopParameters >(arena);
2100 PROTOBUF_NAMESPACE_CLOSE
2103 #include <google/protobuf/port_undef.inc>