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> 18 PROTOBUF_PRAGMA_INIT_SEG
22 ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
35 ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
47 ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
48 : solver_optimizer_sets_()
49 , default_solver_optimizer_sets_(nullptr)
50 , log_search_progress_(false)
51 , prune_search_tree_(false)
52 , sort_constraints_by_num_terms_(false)
53 , use_symmetry_(false)
54 , synchronization_type_(0)
56 , max_number_of_consecutive_failing_optimizer_calls_(0)
57 , exploit_symmetry_in_sat_first_solution_(false)
58 , use_potential_one_flip_repairs_in_ls_(false)
59 , use_lp_strong_branching_(false)
60 , decomposed_problem_min_time_in_seconds_(0)
61 , max_lp_solve_for_feasibility_problems_(0)
62 , max_time_in_seconds_(std::numeric_limits<double>::infinity())
63 , max_num_decisions_in_ls_(4)
65 , num_relaxed_vars_(10)
66 , max_number_of_conflicts_in_random_lns_(2500)
67 , compute_estimated_impact_(true)
68 , use_random_lns_(true)
70 , use_sat_to_choose_lns_neighbourhood_(true)
71 , num_random_lns_tries_(1)
72 , max_number_of_backtracks_in_ls_(int64_t{100000000})
73 , max_number_of_conflicts_for_quick_check_(10)
74 , max_number_of_conflicts_in_random_solution_generation_(500)
75 , max_number_of_explored_assignments_per_try_in_ls_(int64_t{10000})
76 , use_transposition_table_in_ls_(
true)
77 , use_learned_binary_clauses_in_lp_(
true)
78 , number_of_solvers_(1)
79 , max_deterministic_time_(std::numeric_limits<double>::infinity())
80 , relative_gap_limit_(0.0001)
81 , decomposer_num_variables_threshold_(50)
82 , num_bop_solvers_used_by_decomposition_(1)
83 , guided_sat_conflicts_chunk_(1000)
84 , max_num_broken_constraints_in_ls_(2147483647)
85 , lp_max_deterministic_time_(1){}
207 const char descriptor_table_protodef_ortools_2fbop_2fbop_5fparameters_2eproto[]
PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
208 "\n ortools/bop/bop_parameters.proto\022\027oper" 209 "ations_research.bop\"\204\004\n\022BopOptimizerMeth" 210 "od\022G\n\004type\030\001 \001(\01629.operations_research.b" 211 "op.BopOptimizerMethod.OptimizerType\"\244\003\n\r" 212 "OptimizerType\022\022\n\016SAT_CORE_BASED\020\000\022\025\n\021SAT" 213 "_LINEAR_SEARCH\020\017\022\025\n\021LINEAR_RELAXATION\020\001\022" 214 "\020\n\014LOCAL_SEARCH\020\002\022\031\n\025RANDOM_FIRST_SOLUTI" 215 "ON\020\003\022\031\n\025RANDOM_CONSTRAINT_LNS\020\004\022\027\n\023RANDO" 216 "M_VARIABLE_LNS\020\005\022\020\n\014COMPLETE_LNS\020\007\022\025\n\021LP" 217 "_FIRST_SOLUTION\020\010\022\034\n\030OBJECTIVE_FIRST_SOL" 218 "UTION\020\t\022\036\n\032USER_GUIDED_FIRST_SOLUTION\020\016\022" 219 "&\n\"RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP\020\013\022" 220 "$\n RANDOM_VARIABLE_LNS_GUIDED_BY_LP\020\014\022\026\n" 221 "\022RELATION_GRAPH_LNS\020\020\022#\n\037RELATION_GRAPH_" 222 "LNS_GUIDED_BY_LP\020\021\"U\n\025BopSolverOptimizer" 223 "Set\022<\n\007methods\030\001 \003(\0132+.operations_resear" 224 "ch.bop.BopOptimizerMethod\"\356\023\n\rBopParamet" 225 "ers\022 \n\023max_time_in_seconds\030\001 \001(\001:\003inf\022#\n" 226 "\026max_deterministic_time\030\033 \001(\001:\003inf\022$\n\031lp" 227 "_max_deterministic_time\030% \001(\001:\0011\0229\n1max_" 228 "number_of_consecutive_failing_optimizer_" 229 "calls\030# \001(\005\022\"\n\022relative_gap_limit\030\034 \001(\001:" 230 "\0060.0001\022\"\n\027max_num_decisions_in_ls\030\002 \001(\005" 231 ":\0014\0224\n max_num_broken_constraints_in_ls\030" 232 "& \001(\005:\n2147483647\022\"\n\023log_search_progress" 233 "\030\016 \001(\010:\005false\022&\n\030compute_estimated_impac" 234 "t\030\003 \001(\010:\004true\022 \n\021prune_search_tree\030\004 \001(\010" 235 ":\005false\022,\n\035sort_constraints_by_num_terms" 236 "\030\005 \001(\010:\005false\022\034\n\016use_random_lns\030\006 \001(\010:\004t" 237 "rue\022\026\n\013random_seed\030\007 \001(\005:\0018\022\034\n\020num_relax" 238 "ed_vars\030\010 \001(\005:\00210\0223\n%max_number_of_confl" 239 "icts_in_random_lns\030\t \001(\005:\0042500\022\037\n\024num_ra" 240 "ndom_lns_tries\030\n \001(\005:\0011\0221\n\036max_number_of" 241 "_backtracks_in_ls\030\013 \001(\003:\t100000000\022\030\n\nus" 242 "e_lp_lns\030\014 \001(\010:\004true\0221\n#use_sat_to_choos" 243 "e_lns_neighbourhood\030\017 \001(\010:\004true\0223\n\'max_n" 244 "umber_of_conflicts_for_quick_check\030\020 \001(\005" 245 ":\00210\022\033\n\014use_symmetry\030\021 \001(\010:\005false\0225\n&exp" 246 "loit_symmetry_in_sat_first_solution\030( \001(" 247 "\010:\005false\022B\n5max_number_of_conflicts_in_r" 248 "andom_solution_generation\030\024 \001(\005:\003500\022\?\n0" 249 "max_number_of_explored_assignments_per_t" 250 "ry_in_ls\030\025 \001(\003:\00510000\022+\n\035use_transpositi" 251 "on_table_in_ls\030\026 \001(\010:\004true\0223\n$use_potent" 252 "ial_one_flip_repairs_in_ls\030\' \001(\010:\005false\022" 253 ".\n use_learned_binary_clauses_in_lp\030\027 \001(" 254 "\010:\004true\022\034\n\021number_of_solvers\030\030 \001(\005:\0011\022r\n" 255 "\024synchronization_type\030\031 \001(\0162@.operations" 256 "_research.bop.BopParameters.ThreadSynchr" 257 "onizationType:\022NO_SYNCHRONIZATION\022M\n\025sol" 258 "ver_optimizer_sets\030\032 \003(\0132..operations_re" 259 "search.bop.BopSolverOptimizerSet\022\362\005\n\035def" 260 "ault_solver_optimizer_sets\030! \001(\t:\312\005metho" 261 "ds:{type:LOCAL_SEARCH } " 262 " methods:{type:RANDOM_FIRST_SOLUTIO" 263 "N } methods:{type:LINEAR_RE" 264 "LAXATION } methods:{typ" 265 "e:LP_FIRST_SOLUTION } m" 266 "ethods:{type:OBJECTIVE_FIRST_SOLUTION } " 267 " methods:{type:USER_GUIDED_FIRS" 268 "T_SOLUTION } methods:{type:RANDO" 269 "M_CONSTRAINT_LNS_GUIDED_BY_LP } methods:" 270 "{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP }" 271 " methods:{type:RELATION_GRAPH_LNS } " 272 " methods:{type:RELATION_GRA" 273 "PH_LNS_GUIDED_BY_LP } methods:{type:R" 274 "ANDOM_CONSTRAINT_LNS } meth" 275 "ods:{type:RANDOM_VARIABLE_LNS } " 276 " methods:{type:SAT_CORE_BASED } " 277 " methods:{type:COMPLETE" 278 "_LNS } \022&\n\027use_lp_" 279 "strong_branching\030\035 \001(\010:\005false\022.\n\"decompo" 280 "ser_num_variables_threshold\030\036 \001(\005:\00250\0220\n" 281 "%num_bop_solvers_used_by_decomposition\030\037" 282 " \001(\005:\0011\0221\n&decomposed_problem_min_time_i" 283 "n_seconds\030$ \001(\001:\0010\022(\n\032guided_sat_conflic" 284 "ts_chunk\030\" \001(\005:\0041000\0220\n%max_lp_solve_for" 285 "_feasibility_problems\030) \001(\005:\0010\"b\n\031Thread" 286 "SynchronizationType\022\026\n\022NO_SYNCHRONIZATIO" 287 "N\020\000\022\023\n\017SYNCHRONIZE_ALL\020\001\022\030\n\024SYNCHRONIZE_" 292 false,
false, 3210, descriptor_table_protodef_ortools_2fbop_2fbop_5fparameters_2eproto,
"ortools/bop/bop_parameters.proto",
332 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 351 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 367 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 374 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 380 using HasBits = decltype(std::declval<BopOptimizerMethod>()._has_bits_);
382 (*has_bits)[0] |= 1u;
387 bool is_message_owned)
388 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
390 if (!is_message_owned) {
391 RegisterArenaDtor(arena);
396 : ::PROTOBUF_NAMESPACE_ID::Message(),
397 _has_bits_(from._has_bits_) {
398 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
403 inline void BopOptimizerMethod::SharedCtor() {
409 if (GetArenaForAllocation() !=
nullptr)
return;
411 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
414 inline void BopOptimizerMethod::SharedDtor() {
415 GOOGLE_DCHECK(GetArenaForAllocation() ==
nullptr);
418 void BopOptimizerMethod::ArenaDtor(
void*
object) {
422 void BopOptimizerMethod::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
424 void BopOptimizerMethod::SetCachedSize(
int size)
const {
425 _cached_size_.Set(size);
430 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
432 (void) cached_has_bits;
436 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
440 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure 442 while (!ctx->Done(&ptr)) {
443 ::PROTOBUF_NAMESPACE_ID::uint32 tag;
444 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
448 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
449 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
452 _internal_set_type(static_cast<::operations_research::bop::BopOptimizerMethod_OptimizerType>(val));
456 }
else goto handle_unusual;
460 if ((tag == 0) || ((tag & 7) == 4)) {
462 ctx->SetLastTag(tag);
465 ptr = UnknownFieldParse(tag,
466 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
468 CHK_(ptr !=
nullptr);
474 _has_bits_.Or(has_bits);
483 ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream)
const {
485 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
486 (void) cached_has_bits;
488 cached_has_bits = _has_bits_[0];
490 if (cached_has_bits & 0x00000001u) {
491 target = stream->EnsureSpace(target);
492 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
493 1, this->_internal_type(), target);
496 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
497 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
498 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
506 size_t total_size = 0;
508 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
510 (void) cached_has_bits;
513 cached_has_bits = _has_bits_[0];
514 if (cached_has_bits & 0x00000001u) {
516 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_type());
519 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
520 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
521 _internal_metadata_, total_size, &_cached_size_);
523 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
524 SetCachedSize(cached_size);
529 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
530 BopOptimizerMethod::MergeImpl
534 void BopOptimizerMethod::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
535 const ::PROTOBUF_NAMESPACE_ID::Message&from) {
536 static_cast<BopOptimizerMethod *>(to)->MergeFrom(
537 static_cast<const BopOptimizerMethod &>(from));
543 GOOGLE_DCHECK_NE(&from,
this);
544 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
545 (void) cached_has_bits;
547 if (from._internal_has_type()) {
548 _internal_set_type(from._internal_type());
550 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
555 if (&from ==
this)
return;
566 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
567 swap(_has_bits_[0], other->_has_bits_[0]);
568 swap(type_, other->type_);
572 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
584 bool is_message_owned)
585 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
588 if (!is_message_owned) {
589 RegisterArenaDtor(arena);
594 : ::PROTOBUF_NAMESPACE_ID::Message(),
595 methods_(from.methods_) {
596 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
600 inline void BopSolverOptimizerSet::SharedCtor() {
605 if (GetArenaForAllocation() !=
nullptr)
return;
607 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
610 inline void BopSolverOptimizerSet::SharedDtor() {
611 GOOGLE_DCHECK(GetArenaForAllocation() ==
nullptr);
614 void BopSolverOptimizerSet::ArenaDtor(
void*
object) {
618 void BopSolverOptimizerSet::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
620 void BopSolverOptimizerSet::SetCachedSize(
int size)
const {
621 _cached_size_.Set(size);
626 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
628 (void) cached_has_bits;
631 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
635 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure 636 while (!ctx->Done(&ptr)) {
637 ::PROTOBUF_NAMESPACE_ID::uint32 tag;
638 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
642 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
646 ptr = ctx->ParseMessage(_internal_add_methods(), ptr);
648 if (!ctx->DataAvailable(ptr))
break;
649 }
while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
650 }
else goto handle_unusual;
654 if ((tag == 0) || ((tag & 7) == 4)) {
656 ctx->SetLastTag(tag);
659 ptr = UnknownFieldParse(tag,
660 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
662 CHK_(ptr !=
nullptr);
676 ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream)
const {
678 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
679 (void) cached_has_bits;
682 for (
unsigned int i = 0,
683 n = static_cast<unsigned int>(this->_internal_methods_size()); i < n; i++) {
684 target = stream->EnsureSpace(target);
685 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
686 InternalWriteMessage(1, this->_internal_methods(i), target, stream);
689 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
690 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
691 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
699 size_t total_size = 0;
701 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
703 (void) cached_has_bits;
706 total_size += 1UL * this->_internal_methods_size();
707 for (
const auto& msg : this->methods_) {
709 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
712 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
713 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
714 _internal_metadata_, total_size, &_cached_size_);
716 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
717 SetCachedSize(cached_size);
722 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
723 BopSolverOptimizerSet::MergeImpl
727 void BopSolverOptimizerSet::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
728 const ::PROTOBUF_NAMESPACE_ID::Message&from) {
729 static_cast<BopSolverOptimizerSet *>(to)->MergeFrom(
730 static_cast<const BopSolverOptimizerSet &>(from));
736 GOOGLE_DCHECK_NE(&from,
this);
737 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
738 (void) cached_has_bits;
740 methods_.MergeFrom(from.methods_);
741 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
746 if (&from ==
this)
return;
757 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
758 methods_.InternalSwap(&other->methods_);
762 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
771 using HasBits = decltype(std::declval<BopParameters>()._has_bits_);
773 (*has_bits)[0] |= 4096u;
776 (*has_bits)[0] |= 536870912u;
779 (*has_bits)[1] |= 8u;
782 (*has_bits)[0] |= 64u;
785 (*has_bits)[0] |= 1073741824u;
788 (*has_bits)[0] |= 8192u;
791 (*has_bits)[1] |= 4u;
794 (*has_bits)[0] |= 2u;
797 (*has_bits)[0] |= 131072u;
800 (*has_bits)[0] |= 4u;
803 (*has_bits)[0] |= 8u;
806 (*has_bits)[0] |= 262144u;
809 (*has_bits)[0] |= 16384u;
812 (*has_bits)[0] |= 32768u;
815 (*has_bits)[0] |= 65536u;
818 (*has_bits)[0] |= 2097152u;
821 (*has_bits)[0] |= 4194304u;
824 (*has_bits)[0] |= 524288u;
827 (*has_bits)[0] |= 1048576u;
830 (*has_bits)[0] |= 8388608u;
833 (*has_bits)[0] |= 16u;
836 (*has_bits)[0] |= 128u;
839 (*has_bits)[0] |= 16777216u;
842 (*has_bits)[0] |= 33554432u;
845 (*has_bits)[0] |= 67108864u;
848 (*has_bits)[0] |= 256u;
851 (*has_bits)[0] |= 134217728u;
854 (*has_bits)[0] |= 268435456u;
857 (*has_bits)[0] |= 32u;
860 (*has_bits)[0] |= 1u;
863 (*has_bits)[0] |= 512u;
866 (*has_bits)[0] |= 2147483648u;
869 (*has_bits)[1] |= 1u;
872 (*has_bits)[0] |= 1024u;
875 (*has_bits)[1] |= 2u;
878 (*has_bits)[0] |= 2048u;
882 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}};
884 bool is_message_owned)
885 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
886 solver_optimizer_sets_(arena) {
888 if (!is_message_owned) {
889 RegisterArenaDtor(arena);
894 : ::PROTOBUF_NAMESPACE_ID::Message(),
895 _has_bits_(from._has_bits_),
896 solver_optimizer_sets_(from.solver_optimizer_sets_) {
897 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
898 default_solver_optimizer_sets_.UnsafeSetDefault(
nullptr);
899 if (from._internal_has_default_solver_optimizer_sets()) {
900 default_solver_optimizer_sets_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::NonEmptyDefault{}, from._internal_default_solver_optimizer_sets(),
901 GetArenaForAllocation());
903 ::memcpy(&log_search_progress_, &from.log_search_progress_,
904 static_cast<size_t>(reinterpret_cast<char*>(&lp_max_deterministic_time_) -
905 reinterpret_cast<char*>(&log_search_progress_)) +
sizeof(lp_max_deterministic_time_));
909 inline void BopParameters::SharedCtor() {
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;
918 num_relaxed_vars_ = 10;
919 max_number_of_conflicts_in_random_lns_ = 2500;
920 compute_estimated_impact_ =
true;
921 use_random_lns_ =
true;
923 use_sat_to_choose_lns_neighbourhood_ =
true;
924 num_random_lns_tries_ = 1;
925 max_number_of_backtracks_in_ls_ = int64_t{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_ = int64_t{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;
943 if (GetArenaForAllocation() !=
nullptr)
return;
945 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
948 inline void BopParameters::SharedDtor() {
949 GOOGLE_DCHECK(GetArenaForAllocation() ==
nullptr);
950 default_solver_optimizer_sets_.DestroyNoArena(
nullptr);
953 void BopParameters::ArenaDtor(
void*
object) {
954 BopParameters* _this = reinterpret_cast< BopParameters* >(
object);
957 void BopParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
959 void BopParameters::SetCachedSize(
int size)
const {
960 _cached_size_.Set(size);
965 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
967 (void) cached_has_bits;
969 solver_optimizer_sets_.Clear();
970 cached_has_bits = _has_bits_[0];
971 if (cached_has_bits & 0x00000001u) {
972 default_solver_optimizer_sets_.ClearToDefault(::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_, GetArenaForAllocation());
974 if (cached_has_bits & 0x000000feu) {
975 ::memset(&log_search_progress_, 0, static_cast<size_t>(
976 reinterpret_cast<char*>(&exploit_symmetry_in_sat_first_solution_) -
977 reinterpret_cast<char*>(&log_search_progress_)) +
sizeof(exploit_symmetry_in_sat_first_solution_));
979 if (cached_has_bits & 0x0000ff00u) {
980 ::memset(&use_potential_one_flip_repairs_in_ls_, 0, static_cast<size_t>(
981 reinterpret_cast<char*>(&max_lp_solve_for_feasibility_problems_) -
982 reinterpret_cast<char*>(&use_potential_one_flip_repairs_in_ls_)) +
sizeof(max_lp_solve_for_feasibility_problems_));
983 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
984 max_num_decisions_in_ls_ = 4;
986 num_relaxed_vars_ = 10;
988 if (cached_has_bits & 0x00ff0000u) {
989 max_number_of_conflicts_in_random_lns_ = 2500;
990 compute_estimated_impact_ =
true;
991 use_random_lns_ =
true;
993 use_sat_to_choose_lns_neighbourhood_ =
true;
994 num_random_lns_tries_ = 1;
995 max_number_of_backtracks_in_ls_ = int64_t{100000000};
996 max_number_of_conflicts_for_quick_check_ = 10;
998 if (cached_has_bits & 0xff000000u) {
999 max_number_of_conflicts_in_random_solution_generation_ = 500;
1000 max_number_of_explored_assignments_per_try_in_ls_ = int64_t{10000};
1001 use_transposition_table_in_ls_ =
true;
1002 use_learned_binary_clauses_in_lp_ =
true;
1003 number_of_solvers_ = 1;
1004 max_deterministic_time_ = std::numeric_limits<double>::infinity();
1005 relative_gap_limit_ = 0.0001;
1006 decomposer_num_variables_threshold_ = 50;
1008 cached_has_bits = _has_bits_[1];
1009 if (cached_has_bits & 0x0000000fu) {
1010 num_bop_solvers_used_by_decomposition_ = 1;
1011 guided_sat_conflicts_chunk_ = 1000;
1012 max_num_broken_constraints_in_ls_ = 2147483647;
1013 lp_max_deterministic_time_ = 1;
1016 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1020 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure 1021 while (!ctx->Done(&ptr)) {
1022 ::PROTOBUF_NAMESPACE_ID::uint32 tag;
1023 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1027 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 9)) {
1029 max_time_in_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1030 ptr +=
sizeof(double);
1031 }
else goto handle_unusual;
1035 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
1037 max_num_decisions_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1039 }
else goto handle_unusual;
1043 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
1045 compute_estimated_impact_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1047 }
else goto handle_unusual;
1051 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
1053 prune_search_tree_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1055 }
else goto handle_unusual;
1059 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
1061 sort_constraints_by_num_terms_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1063 }
else goto handle_unusual;
1067 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
1069 use_random_lns_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1071 }
else goto handle_unusual;
1075 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
1077 random_seed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1079 }
else goto handle_unusual;
1083 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
1085 num_relaxed_vars_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1087 }
else goto handle_unusual;
1091 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
1093 max_number_of_conflicts_in_random_lns_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1095 }
else goto handle_unusual;
1099 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
1101 num_random_lns_tries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1103 }
else goto handle_unusual;
1107 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
1109 max_number_of_backtracks_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1111 }
else goto handle_unusual;
1115 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
1117 use_lp_lns_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1119 }
else goto handle_unusual;
1123 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
1125 log_search_progress_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1127 }
else goto handle_unusual;
1131 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
1133 use_sat_to_choose_lns_neighbourhood_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1135 }
else goto handle_unusual;
1139 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 128)) {
1141 max_number_of_conflicts_for_quick_check_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1143 }
else goto handle_unusual;
1147 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 136)) {
1149 use_symmetry_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1151 }
else goto handle_unusual;
1155 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) {
1157 max_number_of_conflicts_in_random_solution_generation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1159 }
else goto handle_unusual;
1163 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 168)) {
1165 max_number_of_explored_assignments_per_try_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1167 }
else goto handle_unusual;
1171 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 176)) {
1173 use_transposition_table_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1175 }
else goto handle_unusual;
1179 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184)) {
1181 use_learned_binary_clauses_in_lp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1183 }
else goto handle_unusual;
1187 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
1189 number_of_solvers_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1191 }
else goto handle_unusual;
1195 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
1196 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1199 _internal_set_synchronization_type(static_cast<::operations_research::bop::BopParameters_ThreadSynchronizationType>(val));
1203 }
else goto handle_unusual;
1207 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 210)) {
1211 ptr = ctx->ParseMessage(_internal_add_solver_optimizer_sets(), ptr);
1213 if (!ctx->DataAvailable(ptr))
break;
1214 }
while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<210>(ptr));
1215 }
else goto handle_unusual;
1219 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 217)) {
1221 max_deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1222 ptr +=
sizeof(double);
1223 }
else goto handle_unusual;
1227 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 225)) {
1229 relative_gap_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1230 ptr +=
sizeof(double);
1231 }
else goto handle_unusual;
1235 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 232)) {
1237 use_lp_strong_branching_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1239 }
else goto handle_unusual;
1243 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 240)) {
1245 decomposer_num_variables_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1247 }
else goto handle_unusual;
1251 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 248)) {
1253 num_bop_solvers_used_by_decomposition_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1255 }
else goto handle_unusual;
1259 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1260 auto str = _internal_mutable_default_solver_optimizer_sets();
1261 ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1263 ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str,
"operations_research.bop.BopParameters.default_solver_optimizer_sets");
1266 }
else goto handle_unusual;
1270 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
1272 guided_sat_conflicts_chunk_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1274 }
else goto handle_unusual;
1278 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
1280 max_number_of_consecutive_failing_optimizer_calls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1282 }
else goto handle_unusual;
1286 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 33)) {
1288 decomposed_problem_min_time_in_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1289 ptr +=
sizeof(double);
1290 }
else goto handle_unusual;
1294 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 41)) {
1296 lp_max_deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1297 ptr +=
sizeof(double);
1298 }
else goto handle_unusual;
1302 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
1304 max_num_broken_constraints_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1306 }
else goto handle_unusual;
1310 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
1312 use_potential_one_flip_repairs_in_ls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1314 }
else goto handle_unusual;
1318 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
1320 exploit_symmetry_in_sat_first_solution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1322 }
else goto handle_unusual;
1326 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
1328 max_lp_solve_for_feasibility_problems_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1330 }
else goto handle_unusual;
1334 if ((tag == 0) || ((tag & 7) == 4)) {
1336 ctx->SetLastTag(tag);
1339 ptr = UnknownFieldParse(tag,
1340 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1342 CHK_(ptr !=
nullptr);
1356 ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream)
const {
1358 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1359 (void) cached_has_bits;
1361 cached_has_bits = _has_bits_[0];
1363 if (cached_has_bits & 0x00001000u) {
1364 target = stream->EnsureSpace(target);
1365 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(1, this->_internal_max_time_in_seconds(), target);
1369 if (cached_has_bits & 0x00002000u) {
1370 target = stream->EnsureSpace(target);
1371 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_max_num_decisions_in_ls(), target);
1375 if (cached_has_bits & 0x00020000u) {
1376 target = stream->EnsureSpace(target);
1377 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_compute_estimated_impact(), target);
1381 if (cached_has_bits & 0x00000004u) {
1382 target = stream->EnsureSpace(target);
1383 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_prune_search_tree(), target);
1387 if (cached_has_bits & 0x00000008u) {
1388 target = stream->EnsureSpace(target);
1389 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_sort_constraints_by_num_terms(), target);
1393 if (cached_has_bits & 0x00040000u) {
1394 target = stream->EnsureSpace(target);
1395 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_use_random_lns(), target);
1399 if (cached_has_bits & 0x00004000u) {
1400 target = stream->EnsureSpace(target);
1401 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_random_seed(), target);
1405 if (cached_has_bits & 0x00008000u) {
1406 target = stream->EnsureSpace(target);
1407 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(8, this->_internal_num_relaxed_vars(), target);
1411 if (cached_has_bits & 0x00010000u) {
1412 target = stream->EnsureSpace(target);
1413 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(9, this->_internal_max_number_of_conflicts_in_random_lns(), target);
1417 if (cached_has_bits & 0x00200000u) {
1418 target = stream->EnsureSpace(target);
1419 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(10, this->_internal_num_random_lns_tries(), target);
1423 if (cached_has_bits & 0x00400000u) {
1424 target = stream->EnsureSpace(target);
1425 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(11, this->_internal_max_number_of_backtracks_in_ls(), target);
1429 if (cached_has_bits & 0x00080000u) {
1430 target = stream->EnsureSpace(target);
1431 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(12, this->_internal_use_lp_lns(), target);
1435 if (cached_has_bits & 0x00000002u) {
1436 target = stream->EnsureSpace(target);
1437 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(14, this->_internal_log_search_progress(), target);
1441 if (cached_has_bits & 0x00100000u) {
1442 target = stream->EnsureSpace(target);
1443 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_use_sat_to_choose_lns_neighbourhood(), target);
1447 if (cached_has_bits & 0x00800000u) {
1448 target = stream->EnsureSpace(target);
1449 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(16, this->_internal_max_number_of_conflicts_for_quick_check(), target);
1453 if (cached_has_bits & 0x00000010u) {
1454 target = stream->EnsureSpace(target);
1455 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(17, this->_internal_use_symmetry(), target);
1459 if (cached_has_bits & 0x01000000u) {
1460 target = stream->EnsureSpace(target);
1461 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(20, this->_internal_max_number_of_conflicts_in_random_solution_generation(), target);
1465 if (cached_has_bits & 0x02000000u) {
1466 target = stream->EnsureSpace(target);
1467 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(21, this->_internal_max_number_of_explored_assignments_per_try_in_ls(), target);
1471 if (cached_has_bits & 0x04000000u) {
1472 target = stream->EnsureSpace(target);
1473 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(22, this->_internal_use_transposition_table_in_ls(), target);
1477 if (cached_has_bits & 0x08000000u) {
1478 target = stream->EnsureSpace(target);
1479 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(23, this->_internal_use_learned_binary_clauses_in_lp(), target);
1483 if (cached_has_bits & 0x10000000u) {
1484 target = stream->EnsureSpace(target);
1485 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(24, this->_internal_number_of_solvers(), target);
1489 if (cached_has_bits & 0x00000020u) {
1490 target = stream->EnsureSpace(target);
1491 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1492 25, this->_internal_synchronization_type(), target);
1496 for (
unsigned int i = 0,
1497 n = static_cast<unsigned int>(this->_internal_solver_optimizer_sets_size()); i < n; i++) {
1498 target = stream->EnsureSpace(target);
1499 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1500 InternalWriteMessage(26, this->_internal_solver_optimizer_sets(i), target, stream);
1504 if (cached_has_bits & 0x20000000u) {
1505 target = stream->EnsureSpace(target);
1506 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(27, this->_internal_max_deterministic_time(), target);
1510 if (cached_has_bits & 0x40000000u) {
1511 target = stream->EnsureSpace(target);
1512 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(28, this->_internal_relative_gap_limit(), target);
1516 if (cached_has_bits & 0x00000200u) {
1517 target = stream->EnsureSpace(target);
1518 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(29, this->_internal_use_lp_strong_branching(), target);
1522 if (cached_has_bits & 0x80000000u) {
1523 target = stream->EnsureSpace(target);
1524 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(30, this->_internal_decomposer_num_variables_threshold(), target);
1527 cached_has_bits = _has_bits_[1];
1529 if (cached_has_bits & 0x00000001u) {
1530 target = stream->EnsureSpace(target);
1531 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(31, this->_internal_num_bop_solvers_used_by_decomposition(), target);
1534 cached_has_bits = _has_bits_[0];
1536 if (cached_has_bits & 0x00000001u) {
1537 ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
1538 this->_internal_default_solver_optimizer_sets().data(), static_cast<int>(this->_internal_default_solver_optimizer_sets().length()),
1539 ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
1540 "operations_research.bop.BopParameters.default_solver_optimizer_sets");
1541 target = stream->WriteStringMaybeAliased(
1542 33, this->_internal_default_solver_optimizer_sets(), target);
1545 cached_has_bits = _has_bits_[1];
1547 if (cached_has_bits & 0x00000002u) {
1548 target = stream->EnsureSpace(target);
1549 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(34, this->_internal_guided_sat_conflicts_chunk(), target);
1552 cached_has_bits = _has_bits_[0];
1554 if (cached_has_bits & 0x00000040u) {
1555 target = stream->EnsureSpace(target);
1556 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(35, this->_internal_max_number_of_consecutive_failing_optimizer_calls(), target);
1560 if (cached_has_bits & 0x00000400u) {
1561 target = stream->EnsureSpace(target);
1562 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(36, this->_internal_decomposed_problem_min_time_in_seconds(), target);
1565 cached_has_bits = _has_bits_[1];
1567 if (cached_has_bits & 0x00000008u) {
1568 target = stream->EnsureSpace(target);
1569 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(37, this->_internal_lp_max_deterministic_time(), target);
1573 if (cached_has_bits & 0x00000004u) {
1574 target = stream->EnsureSpace(target);
1575 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(38, this->_internal_max_num_broken_constraints_in_ls(), target);
1578 cached_has_bits = _has_bits_[0];
1580 if (cached_has_bits & 0x00000100u) {
1581 target = stream->EnsureSpace(target);
1582 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(39, this->_internal_use_potential_one_flip_repairs_in_ls(), target);
1586 if (cached_has_bits & 0x00000080u) {
1587 target = stream->EnsureSpace(target);
1588 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(40, this->_internal_exploit_symmetry_in_sat_first_solution(), target);
1592 if (cached_has_bits & 0x00000800u) {
1593 target = stream->EnsureSpace(target);
1594 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(41, this->_internal_max_lp_solve_for_feasibility_problems(), target);
1597 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1598 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1599 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1607 size_t total_size = 0;
1609 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1611 (void) cached_has_bits;
1614 total_size += 2UL * this->_internal_solver_optimizer_sets_size();
1615 for (
const auto& msg : this->solver_optimizer_sets_) {
1617 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
1620 cached_has_bits = _has_bits_[0];
1621 if (cached_has_bits & 0x000000ffu) {
1623 if (cached_has_bits & 0x00000001u) {
1625 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1626 this->_internal_default_solver_optimizer_sets());
1630 if (cached_has_bits & 0x00000002u) {
1631 total_size += 1 + 1;
1635 if (cached_has_bits & 0x00000004u) {
1636 total_size += 1 + 1;
1640 if (cached_has_bits & 0x00000008u) {
1641 total_size += 1 + 1;
1645 if (cached_has_bits & 0x00000010u) {
1646 total_size += 2 + 1;
1650 if (cached_has_bits & 0x00000020u) {
1652 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_synchronization_type());
1656 if (cached_has_bits & 0x00000040u) {
1658 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1659 this->_internal_max_number_of_consecutive_failing_optimizer_calls());
1663 if (cached_has_bits & 0x00000080u) {
1664 total_size += 2 + 1;
1668 if (cached_has_bits & 0x0000ff00u) {
1670 if (cached_has_bits & 0x00000100u) {
1671 total_size += 2 + 1;
1675 if (cached_has_bits & 0x00000200u) {
1676 total_size += 2 + 1;
1680 if (cached_has_bits & 0x00000400u) {
1681 total_size += 2 + 8;
1685 if (cached_has_bits & 0x00000800u) {
1687 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1688 this->_internal_max_lp_solve_for_feasibility_problems());
1692 if (cached_has_bits & 0x00001000u) {
1693 total_size += 1 + 8;
1697 if (cached_has_bits & 0x00002000u) {
1699 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1700 this->_internal_max_num_decisions_in_ls());
1704 if (cached_has_bits & 0x00004000u) {
1706 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1707 this->_internal_random_seed());
1711 if (cached_has_bits & 0x00008000u) {
1713 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1714 this->_internal_num_relaxed_vars());
1718 if (cached_has_bits & 0x00ff0000u) {
1720 if (cached_has_bits & 0x00010000u) {
1722 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1723 this->_internal_max_number_of_conflicts_in_random_lns());
1727 if (cached_has_bits & 0x00020000u) {
1728 total_size += 1 + 1;
1732 if (cached_has_bits & 0x00040000u) {
1733 total_size += 1 + 1;
1737 if (cached_has_bits & 0x00080000u) {
1738 total_size += 1 + 1;
1742 if (cached_has_bits & 0x00100000u) {
1743 total_size += 1 + 1;
1747 if (cached_has_bits & 0x00200000u) {
1749 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1750 this->_internal_num_random_lns_tries());
1754 if (cached_has_bits & 0x00400000u) {
1756 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1757 this->_internal_max_number_of_backtracks_in_ls());
1761 if (cached_has_bits & 0x00800000u) {
1763 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1764 this->_internal_max_number_of_conflicts_for_quick_check());
1768 if (cached_has_bits & 0xff000000u) {
1770 if (cached_has_bits & 0x01000000u) {
1772 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1773 this->_internal_max_number_of_conflicts_in_random_solution_generation());
1777 if (cached_has_bits & 0x02000000u) {
1779 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1780 this->_internal_max_number_of_explored_assignments_per_try_in_ls());
1784 if (cached_has_bits & 0x04000000u) {
1785 total_size += 2 + 1;
1789 if (cached_has_bits & 0x08000000u) {
1790 total_size += 2 + 1;
1794 if (cached_has_bits & 0x10000000u) {
1796 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1797 this->_internal_number_of_solvers());
1801 if (cached_has_bits & 0x20000000u) {
1802 total_size += 2 + 8;
1806 if (cached_has_bits & 0x40000000u) {
1807 total_size += 2 + 8;
1811 if (cached_has_bits & 0x80000000u) {
1813 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1814 this->_internal_decomposer_num_variables_threshold());
1818 cached_has_bits = _has_bits_[1];
1819 if (cached_has_bits & 0x0000000fu) {
1821 if (cached_has_bits & 0x00000001u) {
1823 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1824 this->_internal_num_bop_solvers_used_by_decomposition());
1828 if (cached_has_bits & 0x00000002u) {
1830 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1831 this->_internal_guided_sat_conflicts_chunk());
1835 if (cached_has_bits & 0x00000004u) {
1837 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1838 this->_internal_max_num_broken_constraints_in_ls());
1842 if (cached_has_bits & 0x00000008u) {
1843 total_size += 2 + 8;
1847 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1848 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1849 _internal_metadata_, total_size, &_cached_size_);
1851 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1852 SetCachedSize(cached_size);
1857 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1858 BopParameters::MergeImpl
1862 void BopParameters::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
1863 const ::PROTOBUF_NAMESPACE_ID::Message&from) {
1864 static_cast<BopParameters *>(to)->MergeFrom(
1865 static_cast<const BopParameters &>(from));
1871 GOOGLE_DCHECK_NE(&from,
this);
1872 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1873 (void) cached_has_bits;
1875 solver_optimizer_sets_.MergeFrom(from.solver_optimizer_sets_);
1876 cached_has_bits = from._has_bits_[0];
1877 if (cached_has_bits & 0x000000ffu) {
1878 if (cached_has_bits & 0x00000001u) {
1879 _internal_set_default_solver_optimizer_sets(from._internal_default_solver_optimizer_sets());
1881 if (cached_has_bits & 0x00000002u) {
1882 log_search_progress_ = from.log_search_progress_;
1884 if (cached_has_bits & 0x00000004u) {
1885 prune_search_tree_ = from.prune_search_tree_;
1887 if (cached_has_bits & 0x00000008u) {
1888 sort_constraints_by_num_terms_ = from.sort_constraints_by_num_terms_;
1890 if (cached_has_bits & 0x00000010u) {
1891 use_symmetry_ = from.use_symmetry_;
1893 if (cached_has_bits & 0x00000020u) {
1894 synchronization_type_ = from.synchronization_type_;
1896 if (cached_has_bits & 0x00000040u) {
1897 max_number_of_consecutive_failing_optimizer_calls_ = from.max_number_of_consecutive_failing_optimizer_calls_;
1899 if (cached_has_bits & 0x00000080u) {
1900 exploit_symmetry_in_sat_first_solution_ = from.exploit_symmetry_in_sat_first_solution_;
1902 _has_bits_[0] |= cached_has_bits;
1904 if (cached_has_bits & 0x0000ff00u) {
1905 if (cached_has_bits & 0x00000100u) {
1906 use_potential_one_flip_repairs_in_ls_ = from.use_potential_one_flip_repairs_in_ls_;
1908 if (cached_has_bits & 0x00000200u) {
1909 use_lp_strong_branching_ = from.use_lp_strong_branching_;
1911 if (cached_has_bits & 0x00000400u) {
1912 decomposed_problem_min_time_in_seconds_ = from.decomposed_problem_min_time_in_seconds_;
1914 if (cached_has_bits & 0x00000800u) {
1915 max_lp_solve_for_feasibility_problems_ = from.max_lp_solve_for_feasibility_problems_;
1917 if (cached_has_bits & 0x00001000u) {
1918 max_time_in_seconds_ = from.max_time_in_seconds_;
1920 if (cached_has_bits & 0x00002000u) {
1921 max_num_decisions_in_ls_ = from.max_num_decisions_in_ls_;
1923 if (cached_has_bits & 0x00004000u) {
1924 random_seed_ = from.random_seed_;
1926 if (cached_has_bits & 0x00008000u) {
1927 num_relaxed_vars_ = from.num_relaxed_vars_;
1929 _has_bits_[0] |= cached_has_bits;
1931 if (cached_has_bits & 0x00ff0000u) {
1932 if (cached_has_bits & 0x00010000u) {
1933 max_number_of_conflicts_in_random_lns_ = from.max_number_of_conflicts_in_random_lns_;
1935 if (cached_has_bits & 0x00020000u) {
1936 compute_estimated_impact_ = from.compute_estimated_impact_;
1938 if (cached_has_bits & 0x00040000u) {
1939 use_random_lns_ = from.use_random_lns_;
1941 if (cached_has_bits & 0x00080000u) {
1942 use_lp_lns_ = from.use_lp_lns_;
1944 if (cached_has_bits & 0x00100000u) {
1945 use_sat_to_choose_lns_neighbourhood_ = from.use_sat_to_choose_lns_neighbourhood_;
1947 if (cached_has_bits & 0x00200000u) {
1948 num_random_lns_tries_ = from.num_random_lns_tries_;
1950 if (cached_has_bits & 0x00400000u) {
1951 max_number_of_backtracks_in_ls_ = from.max_number_of_backtracks_in_ls_;
1953 if (cached_has_bits & 0x00800000u) {
1954 max_number_of_conflicts_for_quick_check_ = from.max_number_of_conflicts_for_quick_check_;
1956 _has_bits_[0] |= cached_has_bits;
1958 if (cached_has_bits & 0xff000000u) {
1959 if (cached_has_bits & 0x01000000u) {
1960 max_number_of_conflicts_in_random_solution_generation_ = from.max_number_of_conflicts_in_random_solution_generation_;
1962 if (cached_has_bits & 0x02000000u) {
1963 max_number_of_explored_assignments_per_try_in_ls_ = from.max_number_of_explored_assignments_per_try_in_ls_;
1965 if (cached_has_bits & 0x04000000u) {
1966 use_transposition_table_in_ls_ = from.use_transposition_table_in_ls_;
1968 if (cached_has_bits & 0x08000000u) {
1969 use_learned_binary_clauses_in_lp_ = from.use_learned_binary_clauses_in_lp_;
1971 if (cached_has_bits & 0x10000000u) {
1972 number_of_solvers_ = from.number_of_solvers_;
1974 if (cached_has_bits & 0x20000000u) {
1975 max_deterministic_time_ = from.max_deterministic_time_;
1977 if (cached_has_bits & 0x40000000u) {
1978 relative_gap_limit_ = from.relative_gap_limit_;
1980 if (cached_has_bits & 0x80000000u) {
1981 decomposer_num_variables_threshold_ = from.decomposer_num_variables_threshold_;
1983 _has_bits_[0] |= cached_has_bits;
1985 cached_has_bits = from._has_bits_[1];
1986 if (cached_has_bits & 0x0000000fu) {
1987 if (cached_has_bits & 0x00000001u) {
1988 num_bop_solvers_used_by_decomposition_ = from.num_bop_solvers_used_by_decomposition_;
1990 if (cached_has_bits & 0x00000002u) {
1991 guided_sat_conflicts_chunk_ = from.guided_sat_conflicts_chunk_;
1993 if (cached_has_bits & 0x00000004u) {
1994 max_num_broken_constraints_in_ls_ = from.max_num_broken_constraints_in_ls_;
1996 if (cached_has_bits & 0x00000008u) {
1997 lp_max_deterministic_time_ = from.lp_max_deterministic_time_;
1999 _has_bits_[1] |= cached_has_bits;
2001 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2006 if (&from ==
this)
return;
2017 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2018 swap(_has_bits_[0], other->_has_bits_[0]);
2019 swap(_has_bits_[1], other->_has_bits_[1]);
2020 solver_optimizer_sets_.InternalSwap(&other->solver_optimizer_sets_);
2021 ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
2023 &default_solver_optimizer_sets_, GetArenaForAllocation(),
2024 &other->default_solver_optimizer_sets_, other->GetArenaForAllocation()
2026 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2027 PROTOBUF_FIELD_OFFSET(
BopParameters, max_lp_solve_for_feasibility_problems_)
2028 +
sizeof(BopParameters::max_lp_solve_for_feasibility_problems_)
2029 - PROTOBUF_FIELD_OFFSET(
BopParameters, log_search_progress_)>(
2030 reinterpret_cast<char*>(&log_search_progress_),
2031 reinterpret_cast<char*>(&other->log_search_progress_));
2032 swap(max_time_in_seconds_, other->max_time_in_seconds_);
2033 swap(max_num_decisions_in_ls_, other->max_num_decisions_in_ls_);
2034 swap(random_seed_, other->random_seed_);
2035 swap(num_relaxed_vars_, other->num_relaxed_vars_);
2036 swap(max_number_of_conflicts_in_random_lns_, other->max_number_of_conflicts_in_random_lns_);
2037 swap(compute_estimated_impact_, other->compute_estimated_impact_);
2038 swap(use_random_lns_, other->use_random_lns_);
2039 swap(use_lp_lns_, other->use_lp_lns_);
2040 swap(use_sat_to_choose_lns_neighbourhood_, other->use_sat_to_choose_lns_neighbourhood_);
2041 swap(num_random_lns_tries_, other->num_random_lns_tries_);
2042 swap(max_number_of_backtracks_in_ls_, other->max_number_of_backtracks_in_ls_);
2043 swap(max_number_of_conflicts_for_quick_check_, other->max_number_of_conflicts_for_quick_check_);
2044 swap(max_number_of_conflicts_in_random_solution_generation_, other->max_number_of_conflicts_in_random_solution_generation_);
2045 swap(max_number_of_explored_assignments_per_try_in_ls_, other->max_number_of_explored_assignments_per_try_in_ls_);
2046 swap(use_transposition_table_in_ls_, other->use_transposition_table_in_ls_);
2047 swap(use_learned_binary_clauses_in_lp_, other->use_learned_binary_clauses_in_lp_);
2048 swap(number_of_solvers_, other->number_of_solvers_);
2049 swap(max_deterministic_time_, other->max_deterministic_time_);
2050 swap(relative_gap_limit_, other->relative_gap_limit_);
2051 swap(decomposer_num_variables_threshold_, other->decomposer_num_variables_threshold_);
2052 swap(num_bop_solvers_used_by_decomposition_, other->num_bop_solvers_used_by_decomposition_);
2053 swap(guided_sat_conflicts_chunk_, other->guided_sat_conflicts_chunk_);
2054 swap(max_num_broken_constraints_in_ls_, other->max_num_broken_constraints_in_ls_);
2055 swap(lp_max_deterministic_time_, other->lp_max_deterministic_time_);
2059 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
2067 PROTOBUF_NAMESPACE_OPEN
2069 return Arena::CreateMessageInternal< ::operations_research::bop::BopOptimizerMethod >(arena);
2072 return Arena::CreateMessageInternal< ::operations_research::bop::BopSolverOptimizerSet >(arena);
2075 return Arena::CreateMessageInternal< ::operations_research::bop::BopParameters >(arena);
2077 PROTOBUF_NAMESPACE_CLOSE
2080 #include <google/protobuf/port_undef.inc> constexpr BopSolverOptimizerSetDefaultTypeInternal()
PROTOBUF_NOINLINE ::operations_research::bop::BopSolverOptimizerSet * Arena::CreateMaybeMessage< ::operations_research::bop::BopSolverOptimizerSet >(Arena *arena)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fbop_2fbop_5fparameters_2eproto[2]
~BopOptimizerMethod() override
bool BopParameters_ThreadSynchronizationType_IsValid(int value)
void MergeFrom(const BopSolverOptimizerSet &from)
static void set_has_use_transposition_table_in_ls(HasBits *has_bits)
static void set_has_max_number_of_conflicts_in_random_solution_generation(HasBits *has_bits)
static void set_has_use_lp_lns(HasBits *has_bits)
BopSolverOptimizerSet _instance
static constexpr OptimizerType RANDOM_VARIABLE_LNS_GUIDED_BY_LP
constexpr BopParametersDefaultTypeInternal()
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
~BopSolverOptimizerSet() override
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * BopParameters_ThreadSynchronizationType_descriptor()
~BopOptimizerMethodDefaultTypeInternal()
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_once
void swap(IdMap< K, V > &a, IdMap< K, V > &b)
static void set_has_num_random_lns_tries(HasBits *has_bits)
static void set_has_default_solver_optimizer_sets(HasBits *has_bits)
static const ClassData _class_data_
static void set_has_num_relaxed_vars(HasBits *has_bits)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static void set_has_max_time_in_seconds(HasBits *has_bits)
static void set_has_use_symmetry(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_use_potential_one_flip_repairs_in_ls(HasBits *has_bits)
static void set_has_lp_max_deterministic_time(HasBits *has_bits)
static void set_has_max_number_of_conflicts_for_quick_check(HasBits *has_bits)
static void set_has_use_random_lns(HasBits *has_bits)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
bool IsInitialized() const final
static constexpr OptimizerType LOCAL_SEARCH
static void set_has_compute_estimated_impact(HasBits *has_bits)
static constexpr OptimizerType RELATION_GRAPH_LNS
decltype(std::declval< BopOptimizerMethod >()._has_bits_) HasBits
static constexpr OptimizerType RANDOM_VARIABLE_LNS
static void set_has_prune_search_tree(HasBits *has_bits)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet * mutable_unknown_fields()
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const BopOptimizerMethod &from)
BopOptimizerMethod_OptimizerType
void CopyFrom(const BopSolverOptimizerSet &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static constexpr int ThreadSynchronizationType_ARRAYSIZE
static void set_has_number_of_solvers(HasBits *has_bits)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
size_t ByteSizeLong() const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BopSolverOptimizerSetDefaultTypeInternal _BopSolverOptimizerSet_default_instance_
BopOptimizerMethod _instance
static void set_has_max_number_of_consecutive_failing_optimizer_calls(HasBits *has_bits)
static void set_has_random_seed(HasBits *has_bits)
static constexpr OptimizerType RELATION_GRAPH_LNS_GUIDED_BY_LP
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
PROTOBUF_ATTRIBUTE_WEAKconst ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable * descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_getter()
static constexpr ThreadSynchronizationType SYNCHRONIZE_ON_RIGHT
static constexpr ThreadSynchronizationType NO_SYNCHRONIZATION
~BopParameters() override
static void set_has_max_number_of_explored_assignments_per_try_in_ls(HasBits *has_bits)
static const ClassData _class_data_
static void set_has_decomposer_num_variables_threshold(HasBits *has_bits)
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fbop_2fbop_5fparameters_2eproto
~BopSolverOptimizerSetDefaultTypeInternal()
static void set_has_guided_sat_conflicts_chunk(HasBits *has_bits)
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fbop_2fbop_5fparameters_2eproto::offsets [] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static constexpr ThreadSynchronizationType SYNCHRONIZE_ALL
void CopyFrom(const BopParameters &from)
static void set_has_decomposed_problem_min_time_in_seconds(HasBits *has_bits)
static constexpr OptimizerType SAT_LINEAR_SEARCH
bool BopOptimizerMethod_OptimizerType_IsValid(int value)
static void set_has_use_lp_strong_branching(HasBits *has_bits)
friend void swap(BopParameters &a, BopParameters &b)
size_t ByteSizeLong() const final
inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet * mutable_unknown_fields()
static void set_has_use_sat_to_choose_lns_neighbourhood(HasBits *has_bits)
static constexpr OptimizerType RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP
static constexpr OptimizerType COMPLETE_LNS
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::bop::BopOptimizerMethod * Arena::CreateMaybeMessage< ::operations_research::bop::BopOptimizerMethod >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::bop::BopParameters * Arena::CreateMaybeMessage< ::operations_research::bop::BopParameters >(Arena *arena)
bool IsInitialized() const final
void MergeFrom(const BopOptimizerMethod &from)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static constexpr OptimizerType RANDOM_CONSTRAINT_LNS
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto
static void set_has_max_number_of_backtracks_in_ls(HasBits *has_bits)
constexpr BopOptimizerMethodDefaultTypeInternal()
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static constexpr OptimizerType OBJECTIVE_FIRST_SOLUTION
size_t ByteSizeLong() const final
static constexpr OptimizerType OptimizerType_MIN
static void set_has_synchronization_type(HasBits *has_bits)
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fbop_2fbop_5fparameters_2eproto[3]
~BopParametersDefaultTypeInternal()
static constexpr OptimizerType LINEAR_RELAXATION
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * BopOptimizerMethod_OptimizerType_descriptor()
static constexpr OptimizerType LP_FIRST_SOLUTION
static constexpr OptimizerType RANDOM_FIRST_SOLUTION
static void set_has_type(HasBits *has_bits)
static const ClassData _class_data_
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BopOptimizerMethodDefaultTypeInternal _BopOptimizerMethod_default_instance_
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BopParametersDefaultTypeInternal _BopParameters_default_instance_
static void set_has_max_num_broken_constraints_in_ls(HasBits *has_bits)
BopParameters_ThreadSynchronizationType
Collection of objects used to extend the Constraint Solver library.
static void set_has_log_search_progress(HasBits *has_bits)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
static void set_has_sort_constraints_by_num_terms(HasBits *has_bits)
static void set_has_relative_gap_limit(HasBits *has_bits)
static void set_has_max_deterministic_time(HasBits *has_bits)
static constexpr OptimizerType SAT_CORE_BASED
static void set_has_max_num_decisions_in_ls(HasBits *has_bits)
static constexpr OptimizerType USER_GUIDED_FIRST_SOLUTION
friend void swap(BopOptimizerMethod &a, BopOptimizerMethod &b)
static void set_has_num_bop_solvers_used_by_decomposition(HasBits *has_bits)
static constexpr OptimizerType OptimizerType_MAX
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
void MergeFrom(const BopParameters &from)
bool IsInitialized() const final
static void set_has_max_number_of_conflicts_in_random_lns(HasBits *has_bits)
static constexpr int OptimizerType_ARRAYSIZE
decltype(std::declval< BopParameters >()._has_bits_) HasBits
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static constexpr ThreadSynchronizationType ThreadSynchronizationType_MAX
static void set_has_exploit_symmetry_in_sat_first_solution(HasBits *has_bits)
static constexpr ThreadSynchronizationType ThreadSynchronizationType_MIN