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
21 ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
24 , use_relocate_pair_(0)
26 , use_relocate_neighbors_(0)
32 , use_cross_exchange_(0)
38 , use_lin_kernighan_(0)
44 , use_make_inactive_(0)
46 , use_make_chain_inactive_(0)
50 , use_extended_swap_active_(0)
54 , use_full_path_lns_(0)
58 , use_inactive_lns_(0)
60 , use_node_pair_swap_active_(0)
62 , use_relocate_and_make_active_(0)
64 , use_exchange_pair_(0)
66 , use_relocate_expensive_chain_(0)
68 , use_light_relocate_pair_(0)
70 , use_relocate_subtrip_(0)
72 , use_exchange_subtrip_(0)
74 , use_global_cheapest_insertion_path_lns_(0)
76 , use_local_cheapest_insertion_path_lns_(0)
78 , use_global_cheapest_insertion_expensive_chain_lns_(0)
80 , use_local_cheapest_insertion_expensive_chain_lns_(0)
82 , use_global_cheapest_insertion_close_nodes_lns_(0)
84 , use_local_cheapest_insertion_close_nodes_lns_(0)
86 , use_relocate_path_global_cheapest_insertion_insert_unperformed_(0)
98 ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
99 : improvement_rate_solutions_distance_(0)
100 , improvement_rate_coefficient_(0){}
111 ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
112 : log_tag_(&::PROTOBUF_NAMESPACE_ID::
internal::fixed_address_empty_string)
113 , local_search_operators_(nullptr)
114 , time_limit_(nullptr)
115 , lns_time_limit_(nullptr)
116 , improvement_limit_parameters_(nullptr)
117 , sat_parameters_(nullptr)
118 , first_solution_strategy_(0)
120 , local_search_metaheuristic_(0)
122 , guided_local_search_lambda_coefficient_(0)
123 , optimization_step_(0)
124 , solution_limit_(int64_t{0})
125 , use_full_propagation_(
false)
127 , number_of_solutions_to_collect_(0)
128 , savings_neighbors_ratio_(0)
129 , cheapest_insertion_farthest_seeds_ratio_(0)
130 , savings_arc_coefficient_(0)
131 , relocate_expensive_chain_num_arcs_to_consider_(0)
132 , use_unfiltered_first_solution_strategy_(
false)
133 , savings_add_reverse_arcs_(
false)
134 , savings_parallel_routes_(
false)
135 , cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_(
false)
136 , cheapest_insertion_first_solution_neighbors_ratio_(0)
137 , log_cost_scaling_factor_(0)
138 , savings_max_memory_usage_bytes_(0)
143 , log_cost_offset_(0)
144 , cheapest_insertion_add_unperformed_entries_(
false)
145 , christofides_use_minimum_matching_(
false)
146 , use_multi_armed_bandit_concatenate_operators_(
false)
147 , use_depth_first_search_(
false)
148 , heuristic_expensive_chain_lns_num_arcs_to_consider_(0)
149 , cheapest_insertion_ls_operator_neighbors_ratio_(0)
150 , continuous_scheduling_solver_(0)
152 , mixed_integer_scheduling_solver_(0)
154 , heuristic_close_nodes_lns_num_nodes_(0)
155 , cheapest_insertion_first_solution_min_neighbors_(0)
156 , multi_armed_bandit_compound_operator_memory_coefficient_(0)
157 , multi_armed_bandit_compound_operator_exploration_coefficient_(0)
158 , cheapest_insertion_ls_operator_min_neighbors_(0)
159 , use_generalized_cp_sat_(0)
171 ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
172 : solver_parameters_(nullptr)
173 , reduce_vehicle_cost_model_(false)
174 , max_callback_cache_size_(0){}
305 const char descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[]
PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
306 "\n2ortools/constraint_solver/routing_para" 307 "meters.proto\022\023operations_research\032\036googl" 308 "e/protobuf/duration.proto\032-ortools/const" 309 "raint_solver/routing_enums.proto\0321ortool" 310 "s/constraint_solver/solver_parameters.pr" 311 "oto\032 ortools/sat/sat_parameters.proto\032#o" 312 "rtools/util/optional_boolean.proto\"\372%\n\027R" 313 "outingSearchParameters\022Q\n\027first_solution" 314 "_strategy\030\001 \001(\01620.operations_research.Fi" 315 "rstSolutionStrategy.Value\022.\n&use_unfilte" 316 "red_first_solution_strategy\030\002 \001(\010\022\037\n\027sav" 317 "ings_neighbors_ratio\030\016 \001(\001\022&\n\036savings_ma" 318 "x_memory_usage_bytes\030\027 \001(\001\022 \n\030savings_ad" 319 "d_reverse_arcs\030\017 \001(\010\022\037\n\027savings_arc_coef" 320 "ficient\030\022 \001(\001\022\037\n\027savings_parallel_routes" 321 "\030\023 \001(\010\022/\n\'cheapest_insertion_farthest_se" 322 "eds_ratio\030\020 \001(\001\0229\n1cheapest_insertion_fi" 323 "rst_solution_neighbors_ratio\030\025 \001(\001\0227\n/ch" 324 "eapest_insertion_first_solution_min_neig" 325 "hbors\030, \001(\005\0226\n.cheapest_insertion_ls_ope" 326 "rator_neighbors_ratio\030\037 \001(\001\0224\n,cheapest_" 327 "insertion_ls_operator_min_neighbors\030- \001(" 328 "\005\022P\nHcheapest_insertion_first_solution_u" 329 "se_neighbors_ratio_for_initialization\030. " 330 "\001(\010\0222\n*cheapest_insertion_add_unperforme" 331 "d_entries\030( \001(\010\022)\n!christofides_use_mini" 332 "mum_matching\030\036 \001(\010\022m\n\026local_search_opera" 333 "tors\030\003 \001(\0132M.operations_research.Routing" 334 "SearchParameters.LocalSearchNeighborhood" 335 "Operators\0224\n,use_multi_armed_bandit_conc" 336 "atenate_operators\030) \001(\010\022\?\n7multi_armed_b" 337 "andit_compound_operator_memory_coefficie" 338 "nt\030* \001(\001\022D\n<multi_armed_bandit_compound_" 339 "operator_exploration_coefficient\030+ \001(\001\0225" 340 "\n-relocate_expensive_chain_num_arcs_to_c" 341 "onsider\030\024 \001(\005\022:\n2heuristic_expensive_cha" 342 "in_lns_num_arcs_to_consider\030 \001(\005\022+\n#heu" 343 "ristic_close_nodes_lns_num_nodes\030# \001(\005\022W" 344 "\n\032local_search_metaheuristic\030\004 \001(\01623.ope" 345 "rations_research.LocalSearchMetaheuristi" 346 "c.Value\022.\n&guided_local_search_lambda_co" 347 "efficient\030\005 \001(\001\022\036\n\026use_depth_first_searc" 348 "h\030\006 \001(\010\0224\n\006use_cp\030\034 \001(\0162$.operations_res" 349 "earch.OptionalBoolean\0228\n\nuse_cp_sat\030\033 \001(" 350 "\0162$.operations_research.OptionalBoolean\022" 351 "D\n\026use_generalized_cp_sat\030/ \001(\0162$.operat" 352 "ions_research.OptionalBoolean\022>\n\016sat_par" 353 "ameters\0300 \001(\0132&.operations_research.sat." 354 "SatParameters\022c\n\034continuous_scheduling_s" 355 "olver\030! \001(\0162=.operations_research.Routin" 356 "gSearchParameters.SchedulingSolver\022f\n\037mi" 357 "xed_integer_scheduling_solver\030\" \001(\0162=.op" 358 "erations_research.RoutingSearchParameter" 359 "s.SchedulingSolver\022\031\n\021optimization_step\030" 360 "\007 \001(\001\022&\n\036number_of_solutions_to_collect\030" 361 "\021 \001(\005\022\026\n\016solution_limit\030\010 \001(\003\022-\n\ntime_li" 362 "mit\030\t \001(\0132\031.google.protobuf.Duration\0221\n\016" 363 "lns_time_limit\030\n \001(\0132\031.google.protobuf.D" 364 "uration\022s\n\034improvement_limit_parameters\030" 365 "% \001(\0132M.operations_research.RoutingSearc" 366 "hParameters.ImprovementSearchLimitParame" 367 "ters\022\034\n\024use_full_propagation\030\013 \001(\010\022\022\n\nlo" 368 "g_search\030\r \001(\010\022\037\n\027log_cost_scaling_facto" 369 "r\030\026 \001(\001\022\027\n\017log_cost_offset\030\035 \001(\001\022\017\n\007log_" 370 "tag\030$ \001(\t\032\327\022\n LocalSearchNeighborhoodOpe" 371 "rators\022:\n\014use_relocate\030\001 \001(\0162$.operation" 372 "s_research.OptionalBoolean\022\?\n\021use_reloca" 373 "te_pair\030\002 \001(\0162$.operations_research.Opti" 374 "onalBoolean\022E\n\027use_light_relocate_pair\030\030" 375 " \001(\0162$.operations_research.OptionalBoole" 376 "an\022D\n\026use_relocate_neighbors\030\003 \001(\0162$.ope" 377 "rations_research.OptionalBoolean\022B\n\024use_" 378 "relocate_subtrip\030\031 \001(\0162$.operations_rese" 379 "arch.OptionalBoolean\022:\n\014use_exchange\030\004 \001" 380 "(\0162$.operations_research.OptionalBoolean" 381 "\022\?\n\021use_exchange_pair\030\026 \001(\0162$.operations" 382 "_research.OptionalBoolean\022B\n\024use_exchang" 383 "e_subtrip\030\032 \001(\0162$.operations_research.Op" 384 "tionalBoolean\0227\n\tuse_cross\030\005 \001(\0162$.opera" 385 "tions_research.OptionalBoolean\022@\n\022use_cr" 386 "oss_exchange\030\006 \001(\0162$.operations_research" 387 ".OptionalBoolean\022J\n\034use_relocate_expensi" 388 "ve_chain\030\027 \001(\0162$.operations_research.Opt" 389 "ionalBoolean\0229\n\013use_two_opt\030\007 \001(\0162$.oper" 390 "ations_research.OptionalBoolean\0228\n\nuse_o" 391 "r_opt\030\010 \001(\0162$.operations_research.Option" 392 "alBoolean\022\?\n\021use_lin_kernighan\030\t \001(\0162$.o" 393 "perations_research.OptionalBoolean\0229\n\013us" 394 "e_tsp_opt\030\n \001(\0162$.operations_research.Op" 395 "tionalBoolean\022=\n\017use_make_active\030\013 \001(\0162$" 396 ".operations_research.OptionalBoolean\022J\n\034" 397 "use_relocate_and_make_active\030\025 \001(\0162$.ope" 398 "rations_research.OptionalBoolean\022\?\n\021use_" 399 "make_inactive\030\014 \001(\0162$.operations_researc" 400 "h.OptionalBoolean\022E\n\027use_make_chain_inac" 401 "tive\030\r \001(\0162$.operations_research.Optiona" 402 "lBoolean\022=\n\017use_swap_active\030\016 \001(\0162$.oper" 403 "ations_research.OptionalBoolean\022F\n\030use_e" 404 "xtended_swap_active\030\017 \001(\0162$.operations_r" 405 "esearch.OptionalBoolean\022G\n\031use_node_pair" 406 "_swap_active\030\024 \001(\0162$.operations_research" 407 ".OptionalBoolean\022:\n\014use_path_lns\030\020 \001(\0162$" 408 ".operations_research.OptionalBoolean\022\?\n\021" 409 "use_full_path_lns\030\021 \001(\0162$.operations_res" 410 "earch.OptionalBoolean\0229\n\013use_tsp_lns\030\022 \001" 411 "(\0162$.operations_research.OptionalBoolean" 412 "\022>\n\020use_inactive_lns\030\023 \001(\0162$.operations_" 413 "research.OptionalBoolean\022T\n&use_global_c" 414 "heapest_insertion_path_lns\030\033 \001(\0162$.opera" 415 "tions_research.OptionalBoolean\022S\n%use_lo" 416 "cal_cheapest_insertion_path_lns\030\034 \001(\0162$." 417 "operations_research.OptionalBoolean\022l\n>u" 418 "se_relocate_path_global_cheapest_inserti" 419 "on_insert_unperformed\030! \001(\0162$.operations" 420 "_research.OptionalBoolean\022_\n1use_global_" 421 "cheapest_insertion_expensive_chain_lns\030\035" 422 " \001(\0162$.operations_research.OptionalBoole" 423 "an\022^\n0use_local_cheapest_insertion_expen" 424 "sive_chain_lns\030\036 \001(\0162$.operations_resear" 425 "ch.OptionalBoolean\022[\n-use_global_cheapes" 426 "t_insertion_close_nodes_lns\030\037 \001(\0162$.oper" 427 "ations_research.OptionalBoolean\022Z\n,use_l" 428 "ocal_cheapest_insertion_close_nodes_lns\030" 429 " \001(\0162$.operations_research.OptionalBool" 430 "ean\032u\n ImprovementSearchLimitParameters\022" 431 "$\n\034improvement_rate_coefficient\030& \001(\001\022+\n" 432 "#improvement_rate_solutions_distance\030\' \001" 433 "(\005\"3\n\020SchedulingSolver\022\t\n\005UNSET\020\000\022\010\n\004GLO" 434 "P\020\001\022\n\n\006CP_SAT\020\002\"\250\001\n\026RoutingModelParamete" 435 "rs\022J\n\021solver_parameters\030\001 \001(\0132/.operatio" 436 "ns_research.ConstraintSolverParameters\022!" 437 "\n\031reduce_vehicle_cost_model\030\002 \001(\010\022\037\n\027max" 438 "_callback_cache_size\030\003 \001(\005BI\n#com.google" 439 ".ortools.constraintsolverP\001\252\002\037Google.OrT" 440 "ools.ConstraintSolverb\006proto3" 443 &::descriptor_table_google_2fprotobuf_2fduration_2eproto,
451 false,
false, 5389, descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto,
"ortools/constraint_solver/routing_parameters.proto",
478 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 485 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 494 bool is_message_owned)
495 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
497 if (!is_message_owned) {
498 RegisterArenaDtor(arena);
503 : ::PROTOBUF_NAMESPACE_ID::Message() {
504 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
505 ::memcpy(&use_relocate_, &from.use_relocate_,
506 static_cast<size_t>(reinterpret_cast<char*>(&use_relocate_path_global_cheapest_insertion_insert_unperformed_) -
507 reinterpret_cast<char*>(&use_relocate_)) +
sizeof(use_relocate_path_global_cheapest_insertion_insert_unperformed_));
511 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedCtor() {
512 ::memset(reinterpret_cast<char*>(
this) + static_cast<size_t>(
513 reinterpret_cast<char*>(&use_relocate_) - reinterpret_cast<char*>(
this)),
514 0, static_cast<size_t>(reinterpret_cast<char*>(&use_relocate_path_global_cheapest_insertion_insert_unperformed_) -
515 reinterpret_cast<char*>(&use_relocate_)) +
sizeof(use_relocate_path_global_cheapest_insertion_insert_unperformed_));
520 if (GetArenaForAllocation() !=
nullptr)
return;
522 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
525 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedDtor() {
526 GOOGLE_DCHECK(GetArenaForAllocation() ==
nullptr);
529 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::ArenaDtor(
void*
object) {
533 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
535 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SetCachedSize(
int size)
const {
536 _cached_size_.Set(size);
541 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
543 (void) cached_has_bits;
545 ::memset(&use_relocate_, 0, static_cast<size_t>(
546 reinterpret_cast<char*>(&use_relocate_path_global_cheapest_insertion_insert_unperformed_) -
547 reinterpret_cast<char*>(&use_relocate_)) +
sizeof(use_relocate_path_global_cheapest_insertion_insert_unperformed_));
548 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
552 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure 553 while (!ctx->Done(&ptr)) {
554 ::PROTOBUF_NAMESPACE_ID::uint32 tag;
555 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
559 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
560 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
562 _internal_set_use_relocate(static_cast<::operations_research::OptionalBoolean>(val));
563 }
else goto handle_unusual;
567 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
568 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
570 _internal_set_use_relocate_pair(static_cast<::operations_research::OptionalBoolean>(val));
571 }
else goto handle_unusual;
575 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
576 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
578 _internal_set_use_relocate_neighbors(static_cast<::operations_research::OptionalBoolean>(val));
579 }
else goto handle_unusual;
583 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
584 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
586 _internal_set_use_exchange(static_cast<::operations_research::OptionalBoolean>(val));
587 }
else goto handle_unusual;
591 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
592 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
594 _internal_set_use_cross(static_cast<::operations_research::OptionalBoolean>(val));
595 }
else goto handle_unusual;
599 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
600 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
602 _internal_set_use_cross_exchange(static_cast<::operations_research::OptionalBoolean>(val));
603 }
else goto handle_unusual;
607 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
608 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
610 _internal_set_use_two_opt(static_cast<::operations_research::OptionalBoolean>(val));
611 }
else goto handle_unusual;
615 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
616 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
618 _internal_set_use_or_opt(static_cast<::operations_research::OptionalBoolean>(val));
619 }
else goto handle_unusual;
623 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
624 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
626 _internal_set_use_lin_kernighan(static_cast<::operations_research::OptionalBoolean>(val));
627 }
else goto handle_unusual;
631 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
632 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
634 _internal_set_use_tsp_opt(static_cast<::operations_research::OptionalBoolean>(val));
635 }
else goto handle_unusual;
639 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
640 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
642 _internal_set_use_make_active(static_cast<::operations_research::OptionalBoolean>(val));
643 }
else goto handle_unusual;
647 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
648 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
650 _internal_set_use_make_inactive(static_cast<::operations_research::OptionalBoolean>(val));
651 }
else goto handle_unusual;
655 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
656 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
658 _internal_set_use_make_chain_inactive(static_cast<::operations_research::OptionalBoolean>(val));
659 }
else goto handle_unusual;
663 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
664 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
666 _internal_set_use_swap_active(static_cast<::operations_research::OptionalBoolean>(val));
667 }
else goto handle_unusual;
671 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
672 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
674 _internal_set_use_extended_swap_active(static_cast<::operations_research::OptionalBoolean>(val));
675 }
else goto handle_unusual;
679 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 128)) {
680 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
682 _internal_set_use_path_lns(static_cast<::operations_research::OptionalBoolean>(val));
683 }
else goto handle_unusual;
687 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 136)) {
688 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
690 _internal_set_use_full_path_lns(static_cast<::operations_research::OptionalBoolean>(val));
691 }
else goto handle_unusual;
695 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144)) {
696 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
698 _internal_set_use_tsp_lns(static_cast<::operations_research::OptionalBoolean>(val));
699 }
else goto handle_unusual;
703 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152)) {
704 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
706 _internal_set_use_inactive_lns(static_cast<::operations_research::OptionalBoolean>(val));
707 }
else goto handle_unusual;
711 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) {
712 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
714 _internal_set_use_node_pair_swap_active(static_cast<::operations_research::OptionalBoolean>(val));
715 }
else goto handle_unusual;
719 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 168)) {
720 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
722 _internal_set_use_relocate_and_make_active(static_cast<::operations_research::OptionalBoolean>(val));
723 }
else goto handle_unusual;
727 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 176)) {
728 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
730 _internal_set_use_exchange_pair(static_cast<::operations_research::OptionalBoolean>(val));
731 }
else goto handle_unusual;
735 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184)) {
736 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
738 _internal_set_use_relocate_expensive_chain(static_cast<::operations_research::OptionalBoolean>(val));
739 }
else goto handle_unusual;
743 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
744 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
746 _internal_set_use_light_relocate_pair(static_cast<::operations_research::OptionalBoolean>(val));
747 }
else goto handle_unusual;
751 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
752 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
754 _internal_set_use_relocate_subtrip(static_cast<::operations_research::OptionalBoolean>(val));
755 }
else goto handle_unusual;
759 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 208)) {
760 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
762 _internal_set_use_exchange_subtrip(static_cast<::operations_research::OptionalBoolean>(val));
763 }
else goto handle_unusual;
767 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 216)) {
768 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
770 _internal_set_use_global_cheapest_insertion_path_lns(static_cast<::operations_research::OptionalBoolean>(val));
771 }
else goto handle_unusual;
775 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 224)) {
776 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
778 _internal_set_use_local_cheapest_insertion_path_lns(static_cast<::operations_research::OptionalBoolean>(val));
779 }
else goto handle_unusual;
783 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 232)) {
784 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
786 _internal_set_use_global_cheapest_insertion_expensive_chain_lns(static_cast<::operations_research::OptionalBoolean>(val));
787 }
else goto handle_unusual;
791 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 240)) {
792 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
794 _internal_set_use_local_cheapest_insertion_expensive_chain_lns(static_cast<::operations_research::OptionalBoolean>(val));
795 }
else goto handle_unusual;
799 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 248)) {
800 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
802 _internal_set_use_global_cheapest_insertion_close_nodes_lns(static_cast<::operations_research::OptionalBoolean>(val));
803 }
else goto handle_unusual;
807 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 0)) {
808 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
810 _internal_set_use_local_cheapest_insertion_close_nodes_lns(static_cast<::operations_research::OptionalBoolean>(val));
811 }
else goto handle_unusual;
815 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
816 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
818 _internal_set_use_relocate_path_global_cheapest_insertion_insert_unperformed(static_cast<::operations_research::OptionalBoolean>(val));
819 }
else goto handle_unusual;
823 if ((tag == 0) || ((tag & 7) == 4)) {
825 ctx->SetLastTag(tag);
828 ptr = UnknownFieldParse(tag,
829 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
831 CHK_(ptr !=
nullptr);
845 ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream)
const {
847 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
848 (void) cached_has_bits;
851 if (this->_internal_use_relocate() != 0) {
852 target = stream->EnsureSpace(target);
853 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
854 1, this->_internal_use_relocate(), target);
858 if (this->_internal_use_relocate_pair() != 0) {
859 target = stream->EnsureSpace(target);
860 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
861 2, this->_internal_use_relocate_pair(), target);
865 if (this->_internal_use_relocate_neighbors() != 0) {
866 target = stream->EnsureSpace(target);
867 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
868 3, this->_internal_use_relocate_neighbors(), target);
872 if (this->_internal_use_exchange() != 0) {
873 target = stream->EnsureSpace(target);
874 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
875 4, this->_internal_use_exchange(), target);
879 if (this->_internal_use_cross() != 0) {
880 target = stream->EnsureSpace(target);
881 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
882 5, this->_internal_use_cross(), target);
886 if (this->_internal_use_cross_exchange() != 0) {
887 target = stream->EnsureSpace(target);
888 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
889 6, this->_internal_use_cross_exchange(), target);
893 if (this->_internal_use_two_opt() != 0) {
894 target = stream->EnsureSpace(target);
895 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
896 7, this->_internal_use_two_opt(), target);
900 if (this->_internal_use_or_opt() != 0) {
901 target = stream->EnsureSpace(target);
902 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
903 8, this->_internal_use_or_opt(), target);
907 if (this->_internal_use_lin_kernighan() != 0) {
908 target = stream->EnsureSpace(target);
909 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
910 9, this->_internal_use_lin_kernighan(), target);
914 if (this->_internal_use_tsp_opt() != 0) {
915 target = stream->EnsureSpace(target);
916 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
917 10, this->_internal_use_tsp_opt(), target);
921 if (this->_internal_use_make_active() != 0) {
922 target = stream->EnsureSpace(target);
923 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
924 11, this->_internal_use_make_active(), target);
928 if (this->_internal_use_make_inactive() != 0) {
929 target = stream->EnsureSpace(target);
930 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
931 12, this->_internal_use_make_inactive(), target);
935 if (this->_internal_use_make_chain_inactive() != 0) {
936 target = stream->EnsureSpace(target);
937 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
938 13, this->_internal_use_make_chain_inactive(), target);
942 if (this->_internal_use_swap_active() != 0) {
943 target = stream->EnsureSpace(target);
944 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
945 14, this->_internal_use_swap_active(), target);
949 if (this->_internal_use_extended_swap_active() != 0) {
950 target = stream->EnsureSpace(target);
951 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
952 15, this->_internal_use_extended_swap_active(), target);
956 if (this->_internal_use_path_lns() != 0) {
957 target = stream->EnsureSpace(target);
958 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
959 16, this->_internal_use_path_lns(), target);
963 if (this->_internal_use_full_path_lns() != 0) {
964 target = stream->EnsureSpace(target);
965 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
966 17, this->_internal_use_full_path_lns(), target);
970 if (this->_internal_use_tsp_lns() != 0) {
971 target = stream->EnsureSpace(target);
972 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
973 18, this->_internal_use_tsp_lns(), target);
977 if (this->_internal_use_inactive_lns() != 0) {
978 target = stream->EnsureSpace(target);
979 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
980 19, this->_internal_use_inactive_lns(), target);
984 if (this->_internal_use_node_pair_swap_active() != 0) {
985 target = stream->EnsureSpace(target);
986 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
987 20, this->_internal_use_node_pair_swap_active(), target);
991 if (this->_internal_use_relocate_and_make_active() != 0) {
992 target = stream->EnsureSpace(target);
993 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
994 21, this->_internal_use_relocate_and_make_active(), target);
998 if (this->_internal_use_exchange_pair() != 0) {
999 target = stream->EnsureSpace(target);
1000 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1001 22, this->_internal_use_exchange_pair(), target);
1005 if (this->_internal_use_relocate_expensive_chain() != 0) {
1006 target = stream->EnsureSpace(target);
1007 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1008 23, this->_internal_use_relocate_expensive_chain(), target);
1012 if (this->_internal_use_light_relocate_pair() != 0) {
1013 target = stream->EnsureSpace(target);
1014 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1015 24, this->_internal_use_light_relocate_pair(), target);
1019 if (this->_internal_use_relocate_subtrip() != 0) {
1020 target = stream->EnsureSpace(target);
1021 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1022 25, this->_internal_use_relocate_subtrip(), target);
1026 if (this->_internal_use_exchange_subtrip() != 0) {
1027 target = stream->EnsureSpace(target);
1028 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1029 26, this->_internal_use_exchange_subtrip(), target);
1033 if (this->_internal_use_global_cheapest_insertion_path_lns() != 0) {
1034 target = stream->EnsureSpace(target);
1035 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1036 27, this->_internal_use_global_cheapest_insertion_path_lns(), target);
1040 if (this->_internal_use_local_cheapest_insertion_path_lns() != 0) {
1041 target = stream->EnsureSpace(target);
1042 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1043 28, this->_internal_use_local_cheapest_insertion_path_lns(), target);
1047 if (this->_internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1048 target = stream->EnsureSpace(target);
1049 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1050 29, this->_internal_use_global_cheapest_insertion_expensive_chain_lns(), target);
1054 if (this->_internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1055 target = stream->EnsureSpace(target);
1056 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1057 30, this->_internal_use_local_cheapest_insertion_expensive_chain_lns(), target);
1061 if (this->_internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1062 target = stream->EnsureSpace(target);
1063 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1064 31, this->_internal_use_global_cheapest_insertion_close_nodes_lns(), target);
1068 if (this->_internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1069 target = stream->EnsureSpace(target);
1070 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1071 32, this->_internal_use_local_cheapest_insertion_close_nodes_lns(), target);
1075 if (this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1076 target = stream->EnsureSpace(target);
1077 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1078 33, this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed(), target);
1081 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1082 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1083 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1091 size_t total_size = 0;
1093 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1095 (void) cached_has_bits;
1098 if (this->_internal_use_relocate() != 0) {
1100 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate());
1104 if (this->_internal_use_relocate_pair() != 0) {
1106 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_pair());
1110 if (this->_internal_use_relocate_neighbors() != 0) {
1112 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_neighbors());
1116 if (this->_internal_use_exchange() != 0) {
1118 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange());
1122 if (this->_internal_use_cross() != 0) {
1124 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cross());
1128 if (this->_internal_use_cross_exchange() != 0) {
1130 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cross_exchange());
1134 if (this->_internal_use_two_opt() != 0) {
1136 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_two_opt());
1140 if (this->_internal_use_or_opt() != 0) {
1142 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_or_opt());
1146 if (this->_internal_use_lin_kernighan() != 0) {
1148 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_lin_kernighan());
1152 if (this->_internal_use_tsp_opt() != 0) {
1154 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_tsp_opt());
1158 if (this->_internal_use_make_active() != 0) {
1160 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_active());
1164 if (this->_internal_use_make_inactive() != 0) {
1166 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_inactive());
1170 if (this->_internal_use_make_chain_inactive() != 0) {
1172 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_chain_inactive());
1176 if (this->_internal_use_swap_active() != 0) {
1178 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_swap_active());
1182 if (this->_internal_use_extended_swap_active() != 0) {
1184 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_extended_swap_active());
1188 if (this->_internal_use_path_lns() != 0) {
1190 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_path_lns());
1194 if (this->_internal_use_full_path_lns() != 0) {
1196 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_full_path_lns());
1200 if (this->_internal_use_tsp_lns() != 0) {
1202 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_tsp_lns());
1206 if (this->_internal_use_inactive_lns() != 0) {
1208 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_inactive_lns());
1212 if (this->_internal_use_node_pair_swap_active() != 0) {
1214 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_node_pair_swap_active());
1218 if (this->_internal_use_relocate_and_make_active() != 0) {
1220 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_and_make_active());
1224 if (this->_internal_use_exchange_pair() != 0) {
1226 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange_pair());
1230 if (this->_internal_use_relocate_expensive_chain() != 0) {
1232 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_expensive_chain());
1236 if (this->_internal_use_light_relocate_pair() != 0) {
1238 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_light_relocate_pair());
1242 if (this->_internal_use_relocate_subtrip() != 0) {
1244 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_subtrip());
1248 if (this->_internal_use_exchange_subtrip() != 0) {
1250 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange_subtrip());
1254 if (this->_internal_use_global_cheapest_insertion_path_lns() != 0) {
1256 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_path_lns());
1260 if (this->_internal_use_local_cheapest_insertion_path_lns() != 0) {
1262 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_path_lns());
1266 if (this->_internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1268 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_expensive_chain_lns());
1272 if (this->_internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1274 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_expensive_chain_lns());
1278 if (this->_internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1280 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_close_nodes_lns());
1284 if (this->_internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1286 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_close_nodes_lns());
1290 if (this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1292 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed());
1295 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1296 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1297 _internal_metadata_, total_size, &_cached_size_);
1299 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1300 SetCachedSize(cached_size);
1305 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1306 RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeImpl
1310 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
1311 const ::PROTOBUF_NAMESPACE_ID::Message&from) {
1312 static_cast<RoutingSearchParameters_LocalSearchNeighborhoodOperators *>(to)->MergeFrom(
1313 static_cast<const RoutingSearchParameters_LocalSearchNeighborhoodOperators &>(from));
1319 GOOGLE_DCHECK_NE(&from,
this);
1320 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1321 (void) cached_has_bits;
1323 if (from._internal_use_relocate() != 0) {
1324 _internal_set_use_relocate(from._internal_use_relocate());
1326 if (from._internal_use_relocate_pair() != 0) {
1327 _internal_set_use_relocate_pair(from._internal_use_relocate_pair());
1329 if (from._internal_use_relocate_neighbors() != 0) {
1330 _internal_set_use_relocate_neighbors(from._internal_use_relocate_neighbors());
1332 if (from._internal_use_exchange() != 0) {
1333 _internal_set_use_exchange(from._internal_use_exchange());
1335 if (from._internal_use_cross() != 0) {
1336 _internal_set_use_cross(from._internal_use_cross());
1338 if (from._internal_use_cross_exchange() != 0) {
1339 _internal_set_use_cross_exchange(from._internal_use_cross_exchange());
1341 if (from._internal_use_two_opt() != 0) {
1342 _internal_set_use_two_opt(from._internal_use_two_opt());
1344 if (from._internal_use_or_opt() != 0) {
1345 _internal_set_use_or_opt(from._internal_use_or_opt());
1347 if (from._internal_use_lin_kernighan() != 0) {
1348 _internal_set_use_lin_kernighan(from._internal_use_lin_kernighan());
1350 if (from._internal_use_tsp_opt() != 0) {
1351 _internal_set_use_tsp_opt(from._internal_use_tsp_opt());
1353 if (from._internal_use_make_active() != 0) {
1354 _internal_set_use_make_active(from._internal_use_make_active());
1356 if (from._internal_use_make_inactive() != 0) {
1357 _internal_set_use_make_inactive(from._internal_use_make_inactive());
1359 if (from._internal_use_make_chain_inactive() != 0) {
1360 _internal_set_use_make_chain_inactive(from._internal_use_make_chain_inactive());
1362 if (from._internal_use_swap_active() != 0) {
1363 _internal_set_use_swap_active(from._internal_use_swap_active());
1365 if (from._internal_use_extended_swap_active() != 0) {
1366 _internal_set_use_extended_swap_active(from._internal_use_extended_swap_active());
1368 if (from._internal_use_path_lns() != 0) {
1369 _internal_set_use_path_lns(from._internal_use_path_lns());
1371 if (from._internal_use_full_path_lns() != 0) {
1372 _internal_set_use_full_path_lns(from._internal_use_full_path_lns());
1374 if (from._internal_use_tsp_lns() != 0) {
1375 _internal_set_use_tsp_lns(from._internal_use_tsp_lns());
1377 if (from._internal_use_inactive_lns() != 0) {
1378 _internal_set_use_inactive_lns(from._internal_use_inactive_lns());
1380 if (from._internal_use_node_pair_swap_active() != 0) {
1381 _internal_set_use_node_pair_swap_active(from._internal_use_node_pair_swap_active());
1383 if (from._internal_use_relocate_and_make_active() != 0) {
1384 _internal_set_use_relocate_and_make_active(from._internal_use_relocate_and_make_active());
1386 if (from._internal_use_exchange_pair() != 0) {
1387 _internal_set_use_exchange_pair(from._internal_use_exchange_pair());
1389 if (from._internal_use_relocate_expensive_chain() != 0) {
1390 _internal_set_use_relocate_expensive_chain(from._internal_use_relocate_expensive_chain());
1392 if (from._internal_use_light_relocate_pair() != 0) {
1393 _internal_set_use_light_relocate_pair(from._internal_use_light_relocate_pair());
1395 if (from._internal_use_relocate_subtrip() != 0) {
1396 _internal_set_use_relocate_subtrip(from._internal_use_relocate_subtrip());
1398 if (from._internal_use_exchange_subtrip() != 0) {
1399 _internal_set_use_exchange_subtrip(from._internal_use_exchange_subtrip());
1401 if (from._internal_use_global_cheapest_insertion_path_lns() != 0) {
1402 _internal_set_use_global_cheapest_insertion_path_lns(from._internal_use_global_cheapest_insertion_path_lns());
1404 if (from._internal_use_local_cheapest_insertion_path_lns() != 0) {
1405 _internal_set_use_local_cheapest_insertion_path_lns(from._internal_use_local_cheapest_insertion_path_lns());
1407 if (from._internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1408 _internal_set_use_global_cheapest_insertion_expensive_chain_lns(from._internal_use_global_cheapest_insertion_expensive_chain_lns());
1410 if (from._internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1411 _internal_set_use_local_cheapest_insertion_expensive_chain_lns(from._internal_use_local_cheapest_insertion_expensive_chain_lns());
1413 if (from._internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1414 _internal_set_use_global_cheapest_insertion_close_nodes_lns(from._internal_use_global_cheapest_insertion_close_nodes_lns());
1416 if (from._internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1417 _internal_set_use_local_cheapest_insertion_close_nodes_lns(from._internal_use_local_cheapest_insertion_close_nodes_lns());
1419 if (from._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1420 _internal_set_use_relocate_path_global_cheapest_insertion_insert_unperformed(from._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed());
1422 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1427 if (&from ==
this)
return;
1438 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1439 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1441 +
sizeof(RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_relocate_path_global_cheapest_insertion_insert_unperformed_)
1443 reinterpret_cast<char*>(&use_relocate_),
1444 reinterpret_cast<char*>(&other->use_relocate_));
1448 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1460 bool is_message_owned)
1461 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
1463 if (!is_message_owned) {
1464 RegisterArenaDtor(arena);
1469 : ::PROTOBUF_NAMESPACE_ID::Message() {
1470 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1471 ::memcpy(&improvement_rate_solutions_distance_, &from.improvement_rate_solutions_distance_,
1472 static_cast<size_t>(reinterpret_cast<char*>(&improvement_rate_coefficient_) -
1473 reinterpret_cast<char*>(&improvement_rate_solutions_distance_)) +
sizeof(improvement_rate_coefficient_));
1477 inline void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedCtor() {
1478 ::memset(reinterpret_cast<char*>(
this) + static_cast<size_t>(
1479 reinterpret_cast<char*>(&improvement_rate_solutions_distance_) - reinterpret_cast<char*>(
this)),
1480 0, static_cast<size_t>(reinterpret_cast<char*>(&improvement_rate_coefficient_) -
1481 reinterpret_cast<char*>(&improvement_rate_solutions_distance_)) +
sizeof(improvement_rate_coefficient_));
1486 if (GetArenaForAllocation() !=
nullptr)
return;
1488 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1491 inline void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedDtor() {
1492 GOOGLE_DCHECK(GetArenaForAllocation() ==
nullptr);
1495 void RoutingSearchParameters_ImprovementSearchLimitParameters::ArenaDtor(
void*
object) {
1499 void RoutingSearchParameters_ImprovementSearchLimitParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1501 void RoutingSearchParameters_ImprovementSearchLimitParameters::SetCachedSize(
int size)
const {
1502 _cached_size_.Set(size);
1507 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1509 (void) cached_has_bits;
1511 ::memset(&improvement_rate_solutions_distance_, 0, static_cast<size_t>(
1512 reinterpret_cast<char*>(&improvement_rate_coefficient_) -
1513 reinterpret_cast<char*>(&improvement_rate_solutions_distance_)) +
sizeof(improvement_rate_coefficient_));
1514 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1518 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure 1519 while (!ctx->Done(&ptr)) {
1520 ::PROTOBUF_NAMESPACE_ID::uint32 tag;
1521 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1525 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 49)) {
1526 improvement_rate_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1527 ptr +=
sizeof(double);
1528 }
else goto handle_unusual;
1532 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
1533 improvement_rate_solutions_distance_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1535 }
else goto handle_unusual;
1539 if ((tag == 0) || ((tag & 7) == 4)) {
1541 ctx->SetLastTag(tag);
1544 ptr = UnknownFieldParse(tag,
1545 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1547 CHK_(ptr !=
nullptr);
1561 ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream)
const {
1563 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1564 (void) cached_has_bits;
1567 if (!(this->_internal_improvement_rate_coefficient() <= 0 && this->_internal_improvement_rate_coefficient() >= 0)) {
1568 target = stream->EnsureSpace(target);
1569 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(38, this->_internal_improvement_rate_coefficient(), target);
1573 if (this->_internal_improvement_rate_solutions_distance() != 0) {
1574 target = stream->EnsureSpace(target);
1575 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(39, this->_internal_improvement_rate_solutions_distance(), target);
1578 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1579 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1580 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1588 size_t total_size = 0;
1590 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1592 (void) cached_has_bits;
1595 if (this->_internal_improvement_rate_solutions_distance() != 0) {
1597 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1598 this->_internal_improvement_rate_solutions_distance());
1602 if (!(this->_internal_improvement_rate_coefficient() <= 0 && this->_internal_improvement_rate_coefficient() >= 0)) {
1603 total_size += 2 + 8;
1606 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1607 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1608 _internal_metadata_, total_size, &_cached_size_);
1610 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1611 SetCachedSize(cached_size);
1616 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1617 RoutingSearchParameters_ImprovementSearchLimitParameters::MergeImpl
1621 void RoutingSearchParameters_ImprovementSearchLimitParameters::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
1622 const ::PROTOBUF_NAMESPACE_ID::Message&from) {
1623 static_cast<RoutingSearchParameters_ImprovementSearchLimitParameters *>(to)->MergeFrom(
1624 static_cast<const RoutingSearchParameters_ImprovementSearchLimitParameters &>(from));
1630 GOOGLE_DCHECK_NE(&from,
this);
1631 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1632 (void) cached_has_bits;
1634 if (from._internal_improvement_rate_solutions_distance() != 0) {
1635 _internal_set_improvement_rate_solutions_distance(from._internal_improvement_rate_solutions_distance());
1637 if (!(from._internal_improvement_rate_coefficient() <= 0 && from._internal_improvement_rate_coefficient() >= 0)) {
1638 _internal_set_improvement_rate_coefficient(from._internal_improvement_rate_coefficient());
1640 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1645 if (&from ==
this)
return;
1656 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1657 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1659 +
sizeof(RoutingSearchParameters_ImprovementSearchLimitParameters::improvement_rate_coefficient_)
1661 reinterpret_cast<char*>(&improvement_rate_solutions_distance_),
1662 reinterpret_cast<char*>(&other->improvement_rate_solutions_distance_));
1666 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1682 const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators&
1684 return *msg->local_search_operators_;
1686 const ::operations_research::sat::SatParameters&
1688 return *msg->sat_parameters_;
1690 const PROTOBUF_NAMESPACE_ID::Duration&
1692 return *msg->time_limit_;
1694 const PROTOBUF_NAMESPACE_ID::Duration&
1696 return *msg->lns_time_limit_;
1698 const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters&
1700 return *msg->improvement_limit_parameters_;
1703 if (GetArenaForAllocation() ==
nullptr && sat_parameters_ !=
nullptr) {
1704 delete sat_parameters_;
1706 sat_parameters_ =
nullptr;
1709 if (GetArenaForAllocation() ==
nullptr && time_limit_ !=
nullptr) {
1712 time_limit_ =
nullptr;
1715 if (GetArenaForAllocation() ==
nullptr && lns_time_limit_ !=
nullptr) {
1716 delete lns_time_limit_;
1718 lns_time_limit_ =
nullptr;
1721 bool is_message_owned)
1722 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
1724 if (!is_message_owned) {
1725 RegisterArenaDtor(arena);
1730 : ::PROTOBUF_NAMESPACE_ID::Message() {
1731 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1732 log_tag_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1733 if (!from._internal_log_tag().empty()) {
1734 log_tag_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_log_tag(),
1735 GetArenaForAllocation());
1737 if (from._internal_has_local_search_operators()) {
1738 local_search_operators_ = new ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators(*from.local_search_operators_);
1740 local_search_operators_ =
nullptr;
1742 if (from._internal_has_time_limit()) {
1743 time_limit_ =
new PROTOBUF_NAMESPACE_ID::Duration(*from.time_limit_);
1745 time_limit_ =
nullptr;
1747 if (from._internal_has_lns_time_limit()) {
1748 lns_time_limit_ =
new PROTOBUF_NAMESPACE_ID::Duration(*from.lns_time_limit_);
1750 lns_time_limit_ =
nullptr;
1752 if (from._internal_has_improvement_limit_parameters()) {
1753 improvement_limit_parameters_ = new ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters(*from.improvement_limit_parameters_);
1755 improvement_limit_parameters_ =
nullptr;
1757 if (from._internal_has_sat_parameters()) {
1758 sat_parameters_ = new ::operations_research::sat::SatParameters(*from.sat_parameters_);
1760 sat_parameters_ =
nullptr;
1762 ::memcpy(&first_solution_strategy_, &from.first_solution_strategy_,
1763 static_cast<size_t>(reinterpret_cast<char*>(&use_generalized_cp_sat_) -
1764 reinterpret_cast<char*>(&first_solution_strategy_)) +
sizeof(use_generalized_cp_sat_));
1768 inline void RoutingSearchParameters::SharedCtor() {
1769 log_tag_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1770 ::memset(reinterpret_cast<char*>(
this) + static_cast<size_t>(
1771 reinterpret_cast<char*>(&local_search_operators_) - reinterpret_cast<char*>(
this)),
1772 0, static_cast<size_t>(reinterpret_cast<char*>(&use_generalized_cp_sat_) -
1773 reinterpret_cast<char*>(&local_search_operators_)) +
sizeof(use_generalized_cp_sat_));
1778 if (GetArenaForAllocation() !=
nullptr)
return;
1780 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1783 inline void RoutingSearchParameters::SharedDtor() {
1784 GOOGLE_DCHECK(GetArenaForAllocation() ==
nullptr);
1785 log_tag_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1793 void RoutingSearchParameters::ArenaDtor(
void*
object) {
1797 void RoutingSearchParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1799 void RoutingSearchParameters::SetCachedSize(
int size)
const {
1800 _cached_size_.Set(size);
1805 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1807 (void) cached_has_bits;
1809 log_tag_.ClearToEmpty();
1810 if (GetArenaForAllocation() ==
nullptr && local_search_operators_ !=
nullptr) {
1811 delete local_search_operators_;
1813 local_search_operators_ =
nullptr;
1814 if (GetArenaForAllocation() ==
nullptr && time_limit_ !=
nullptr) {
1817 time_limit_ =
nullptr;
1818 if (GetArenaForAllocation() ==
nullptr && lns_time_limit_ !=
nullptr) {
1819 delete lns_time_limit_;
1821 lns_time_limit_ =
nullptr;
1822 if (GetArenaForAllocation() ==
nullptr && improvement_limit_parameters_ !=
nullptr) {
1823 delete improvement_limit_parameters_;
1825 improvement_limit_parameters_ =
nullptr;
1826 if (GetArenaForAllocation() ==
nullptr && sat_parameters_ !=
nullptr) {
1827 delete sat_parameters_;
1829 sat_parameters_ =
nullptr;
1830 ::memset(&first_solution_strategy_, 0, static_cast<size_t>(
1831 reinterpret_cast<char*>(&use_generalized_cp_sat_) -
1832 reinterpret_cast<char*>(&first_solution_strategy_)) +
sizeof(use_generalized_cp_sat_));
1833 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1837 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure 1838 while (!ctx->Done(&ptr)) {
1839 ::PROTOBUF_NAMESPACE_ID::uint32 tag;
1840 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1844 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
1845 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1847 _internal_set_first_solution_strategy(static_cast<::operations_research::FirstSolutionStrategy_Value>(val));
1848 }
else goto handle_unusual;
1852 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
1853 use_unfiltered_first_solution_strategy_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1855 }
else goto handle_unusual;
1859 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
1860 ptr = ctx->ParseMessage(_internal_mutable_local_search_operators(), ptr);
1862 }
else goto handle_unusual;
1866 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
1867 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1869 _internal_set_local_search_metaheuristic(static_cast<::operations_research::LocalSearchMetaheuristic_Value>(val));
1870 }
else goto handle_unusual;
1874 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 41)) {
1875 guided_local_search_lambda_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1876 ptr +=
sizeof(double);
1877 }
else goto handle_unusual;
1881 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
1882 use_depth_first_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1884 }
else goto handle_unusual;
1888 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 57)) {
1889 optimization_step_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1890 ptr +=
sizeof(double);
1891 }
else goto handle_unusual;
1895 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
1896 solution_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1898 }
else goto handle_unusual;
1902 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
1903 ptr = ctx->ParseMessage(_internal_mutable_time_limit(), ptr);
1905 }
else goto handle_unusual;
1909 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
1910 ptr = ctx->ParseMessage(_internal_mutable_lns_time_limit(), ptr);
1912 }
else goto handle_unusual;
1916 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
1917 use_full_propagation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1919 }
else goto handle_unusual;
1923 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
1924 log_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1926 }
else goto handle_unusual;
1930 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 113)) {
1931 savings_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1932 ptr +=
sizeof(double);
1933 }
else goto handle_unusual;
1937 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
1938 savings_add_reverse_arcs_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1940 }
else goto handle_unusual;
1944 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 129)) {
1945 cheapest_insertion_farthest_seeds_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1946 ptr +=
sizeof(double);
1947 }
else goto handle_unusual;
1951 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 136)) {
1952 number_of_solutions_to_collect_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1954 }
else goto handle_unusual;
1958 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 145)) {
1959 savings_arc_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1960 ptr +=
sizeof(double);
1961 }
else goto handle_unusual;
1965 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152)) {
1966 savings_parallel_routes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1968 }
else goto handle_unusual;
1972 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) {
1973 relocate_expensive_chain_num_arcs_to_consider_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1975 }
else goto handle_unusual;
1979 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 169)) {
1980 cheapest_insertion_first_solution_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1981 ptr +=
sizeof(double);
1982 }
else goto handle_unusual;
1986 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 177)) {
1987 log_cost_scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1988 ptr +=
sizeof(double);
1989 }
else goto handle_unusual;
1993 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 185)) {
1994 savings_max_memory_usage_bytes_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1995 ptr +=
sizeof(double);
1996 }
else goto handle_unusual;
2000 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 216)) {
2001 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2003 _internal_set_use_cp_sat(static_cast<::operations_research::OptionalBoolean>(val));
2004 }
else goto handle_unusual;
2008 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 224)) {
2009 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2011 _internal_set_use_cp(static_cast<::operations_research::OptionalBoolean>(val));
2012 }
else goto handle_unusual;
2016 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 233)) {
2017 log_cost_offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2018 ptr +=
sizeof(double);
2019 }
else goto handle_unusual;
2023 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 240)) {
2024 christofides_use_minimum_matching_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2026 }
else goto handle_unusual;
2030 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 249)) {
2031 cheapest_insertion_ls_operator_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2032 ptr +=
sizeof(double);
2033 }
else goto handle_unusual;
2037 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 0)) {
2038 heuristic_expensive_chain_lns_num_arcs_to_consider_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2040 }
else goto handle_unusual;
2044 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
2045 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2047 _internal_set_continuous_scheduling_solver(static_cast<::operations_research::RoutingSearchParameters_SchedulingSolver>(val));
2048 }
else goto handle_unusual;
2052 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
2053 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2055 _internal_set_mixed_integer_scheduling_solver(static_cast<::operations_research::RoutingSearchParameters_SchedulingSolver>(val));
2056 }
else goto handle_unusual;
2060 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
2061 heuristic_close_nodes_lns_num_nodes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2063 }
else goto handle_unusual;
2067 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
2068 auto str = _internal_mutable_log_tag();
2069 ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
2070 CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str,
"operations_research.RoutingSearchParameters.log_tag"));
2072 }
else goto handle_unusual;
2076 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
2077 ptr = ctx->ParseMessage(_internal_mutable_improvement_limit_parameters(), ptr);
2079 }
else goto handle_unusual;
2083 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
2084 cheapest_insertion_add_unperformed_entries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2086 }
else goto handle_unusual;
2090 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
2091 use_multi_armed_bandit_concatenate_operators_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2093 }
else goto handle_unusual;
2097 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 81)) {
2098 multi_armed_bandit_compound_operator_memory_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2099 ptr +=
sizeof(double);
2100 }
else goto handle_unusual;
2104 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 89)) {
2105 multi_armed_bandit_compound_operator_exploration_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2106 ptr +=
sizeof(double);
2107 }
else goto handle_unusual;
2111 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
2112 cheapest_insertion_first_solution_min_neighbors_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2114 }
else goto handle_unusual;
2118 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
2119 cheapest_insertion_ls_operator_min_neighbors_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2121 }
else goto handle_unusual;
2125 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
2126 cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2128 }
else goto handle_unusual;
2132 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
2133 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2135 _internal_set_use_generalized_cp_sat(static_cast<::operations_research::OptionalBoolean>(val));
2136 }
else goto handle_unusual;
2140 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
2141 ptr = ctx->ParseMessage(_internal_mutable_sat_parameters(), ptr);
2143 }
else goto handle_unusual;
2147 if ((tag == 0) || ((tag & 7) == 4)) {
2149 ctx->SetLastTag(tag);
2152 ptr = UnknownFieldParse(tag,
2153 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2155 CHK_(ptr !=
nullptr);
2169 ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream)
const {
2171 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2172 (void) cached_has_bits;
2175 if (this->_internal_first_solution_strategy() != 0) {
2176 target = stream->EnsureSpace(target);
2177 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2178 1, this->_internal_first_solution_strategy(), target);
2182 if (this->_internal_use_unfiltered_first_solution_strategy() != 0) {
2183 target = stream->EnsureSpace(target);
2184 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_use_unfiltered_first_solution_strategy(), target);
2188 if (this->_internal_has_local_search_operators()) {
2189 target = stream->EnsureSpace(target);
2190 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2191 InternalWriteMessage(
2196 if (this->_internal_local_search_metaheuristic() != 0) {
2197 target = stream->EnsureSpace(target);
2198 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2199 4, this->_internal_local_search_metaheuristic(), target);
2203 if (!(this->_internal_guided_local_search_lambda_coefficient() <= 0 && this->_internal_guided_local_search_lambda_coefficient() >= 0)) {
2204 target = stream->EnsureSpace(target);
2205 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(5, this->_internal_guided_local_search_lambda_coefficient(), target);
2209 if (this->_internal_use_depth_first_search() != 0) {
2210 target = stream->EnsureSpace(target);
2211 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_use_depth_first_search(), target);
2215 if (!(this->_internal_optimization_step() <= 0 && this->_internal_optimization_step() >= 0)) {
2216 target = stream->EnsureSpace(target);
2217 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(7, this->_internal_optimization_step(), target);
2221 if (this->_internal_solution_limit() != 0) {
2222 target = stream->EnsureSpace(target);
2223 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(8, this->_internal_solution_limit(), target);
2227 if (this->_internal_has_time_limit()) {
2228 target = stream->EnsureSpace(target);
2229 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2230 InternalWriteMessage(
2235 if (this->_internal_has_lns_time_limit()) {
2236 target = stream->EnsureSpace(target);
2237 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2238 InternalWriteMessage(
2243 if (this->_internal_use_full_propagation() != 0) {
2244 target = stream->EnsureSpace(target);
2245 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(11, this->_internal_use_full_propagation(), target);
2249 if (this->_internal_log_search() != 0) {
2250 target = stream->EnsureSpace(target);
2251 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(13, this->_internal_log_search(), target);
2255 if (!(this->_internal_savings_neighbors_ratio() <= 0 && this->_internal_savings_neighbors_ratio() >= 0)) {
2256 target = stream->EnsureSpace(target);
2257 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(14, this->_internal_savings_neighbors_ratio(), target);
2261 if (this->_internal_savings_add_reverse_arcs() != 0) {
2262 target = stream->EnsureSpace(target);
2263 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_savings_add_reverse_arcs(), target);
2267 if (!(this->_internal_cheapest_insertion_farthest_seeds_ratio() <= 0 && this->_internal_cheapest_insertion_farthest_seeds_ratio() >= 0)) {
2268 target = stream->EnsureSpace(target);
2269 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_cheapest_insertion_farthest_seeds_ratio(), target);
2273 if (this->_internal_number_of_solutions_to_collect() != 0) {
2274 target = stream->EnsureSpace(target);
2275 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(17, this->_internal_number_of_solutions_to_collect(), target);
2279 if (!(this->_internal_savings_arc_coefficient() <= 0 && this->_internal_savings_arc_coefficient() >= 0)) {
2280 target = stream->EnsureSpace(target);
2281 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(18, this->_internal_savings_arc_coefficient(), target);
2285 if (this->_internal_savings_parallel_routes() != 0) {
2286 target = stream->EnsureSpace(target);
2287 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(19, this->_internal_savings_parallel_routes(), target);
2291 if (this->_internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
2292 target = stream->EnsureSpace(target);
2293 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(20, this->_internal_relocate_expensive_chain_num_arcs_to_consider(), target);
2297 if (!(this->_internal_cheapest_insertion_first_solution_neighbors_ratio() <= 0 && this->_internal_cheapest_insertion_first_solution_neighbors_ratio() >= 0)) {
2298 target = stream->EnsureSpace(target);
2299 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(21, this->_internal_cheapest_insertion_first_solution_neighbors_ratio(), target);
2303 if (!(this->_internal_log_cost_scaling_factor() <= 0 && this->_internal_log_cost_scaling_factor() >= 0)) {
2304 target = stream->EnsureSpace(target);
2305 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_log_cost_scaling_factor(), target);
2309 if (!(this->_internal_savings_max_memory_usage_bytes() <= 0 && this->_internal_savings_max_memory_usage_bytes() >= 0)) {
2310 target = stream->EnsureSpace(target);
2311 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(23, this->_internal_savings_max_memory_usage_bytes(), target);
2315 if (this->_internal_use_cp_sat() != 0) {
2316 target = stream->EnsureSpace(target);
2317 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2318 27, this->_internal_use_cp_sat(), target);
2322 if (this->_internal_use_cp() != 0) {
2323 target = stream->EnsureSpace(target);
2324 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2325 28, this->_internal_use_cp(), target);
2329 if (!(this->_internal_log_cost_offset() <= 0 && this->_internal_log_cost_offset() >= 0)) {
2330 target = stream->EnsureSpace(target);
2331 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(29, this->_internal_log_cost_offset(), target);
2335 if (this->_internal_christofides_use_minimum_matching() != 0) {
2336 target = stream->EnsureSpace(target);
2337 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(30, this->_internal_christofides_use_minimum_matching(), target);
2341 if (!(this->_internal_cheapest_insertion_ls_operator_neighbors_ratio() <= 0 && this->_internal_cheapest_insertion_ls_operator_neighbors_ratio() >= 0)) {
2342 target = stream->EnsureSpace(target);
2343 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(31, this->_internal_cheapest_insertion_ls_operator_neighbors_ratio(), target);
2347 if (this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2348 target = stream->EnsureSpace(target);
2349 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(32, this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider(), target);
2353 if (this->_internal_continuous_scheduling_solver() != 0) {
2354 target = stream->EnsureSpace(target);
2355 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2356 33, this->_internal_continuous_scheduling_solver(), target);
2360 if (this->_internal_mixed_integer_scheduling_solver() != 0) {
2361 target = stream->EnsureSpace(target);
2362 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2363 34, this->_internal_mixed_integer_scheduling_solver(), target);
2367 if (this->_internal_heuristic_close_nodes_lns_num_nodes() != 0) {
2368 target = stream->EnsureSpace(target);
2369 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(35, this->_internal_heuristic_close_nodes_lns_num_nodes(), target);
2373 if (!this->_internal_log_tag().empty()) {
2374 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
2375 this->_internal_log_tag().data(), static_cast<int>(this->_internal_log_tag().length()),
2376 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
2377 "operations_research.RoutingSearchParameters.log_tag");
2378 target = stream->WriteStringMaybeAliased(
2379 36, this->_internal_log_tag(), target);
2383 if (this->_internal_has_improvement_limit_parameters()) {
2384 target = stream->EnsureSpace(target);
2385 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2386 InternalWriteMessage(
2391 if (this->_internal_cheapest_insertion_add_unperformed_entries() != 0) {
2392 target = stream->EnsureSpace(target);
2393 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(40, this->_internal_cheapest_insertion_add_unperformed_entries(), target);
2397 if (this->_internal_use_multi_armed_bandit_concatenate_operators() != 0) {
2398 target = stream->EnsureSpace(target);
2399 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(41, this->_internal_use_multi_armed_bandit_concatenate_operators(), target);
2403 if (!(this->_internal_multi_armed_bandit_compound_operator_memory_coefficient() <= 0 && this->_internal_multi_armed_bandit_compound_operator_memory_coefficient() >= 0)) {
2404 target = stream->EnsureSpace(target);
2405 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(42, this->_internal_multi_armed_bandit_compound_operator_memory_coefficient(), target);
2409 if (!(this->_internal_multi_armed_bandit_compound_operator_exploration_coefficient() <= 0 && this->_internal_multi_armed_bandit_compound_operator_exploration_coefficient() >= 0)) {
2410 target = stream->EnsureSpace(target);
2411 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(43, this->_internal_multi_armed_bandit_compound_operator_exploration_coefficient(), target);
2415 if (this->_internal_cheapest_insertion_first_solution_min_neighbors() != 0) {
2416 target = stream->EnsureSpace(target);
2417 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(44, this->_internal_cheapest_insertion_first_solution_min_neighbors(), target);
2421 if (this->_internal_cheapest_insertion_ls_operator_min_neighbors() != 0) {
2422 target = stream->EnsureSpace(target);
2423 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(45, this->_internal_cheapest_insertion_ls_operator_min_neighbors(), target);
2427 if (this->_internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() != 0) {
2428 target = stream->EnsureSpace(target);
2429 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(46, this->_internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(), target);
2433 if (this->_internal_use_generalized_cp_sat() != 0) {
2434 target = stream->EnsureSpace(target);
2435 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2436 47, this->_internal_use_generalized_cp_sat(), target);
2440 if (this->_internal_has_sat_parameters()) {
2441 target = stream->EnsureSpace(target);
2442 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2443 InternalWriteMessage(
2447 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2448 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2449 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2457 size_t total_size = 0;
2459 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2461 (void) cached_has_bits;
2464 if (!this->_internal_log_tag().empty()) {
2466 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
2467 this->_internal_log_tag());
2471 if (this->_internal_has_local_search_operators()) {
2473 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2474 *local_search_operators_);
2478 if (this->_internal_has_time_limit()) {
2480 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2485 if (this->_internal_has_lns_time_limit()) {
2487 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2492 if (this->_internal_has_improvement_limit_parameters()) {
2494 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2495 *improvement_limit_parameters_);
2499 if (this->_internal_has_sat_parameters()) {
2501 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2506 if (this->_internal_first_solution_strategy() != 0) {
2508 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_first_solution_strategy());
2512 if (this->_internal_local_search_metaheuristic() != 0) {
2514 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_local_search_metaheuristic());
2518 if (!(this->_internal_guided_local_search_lambda_coefficient() <= 0 && this->_internal_guided_local_search_lambda_coefficient() >= 0)) {
2519 total_size += 1 + 8;
2523 if (!(this->_internal_optimization_step() <= 0 && this->_internal_optimization_step() >= 0)) {
2524 total_size += 1 + 8;
2528 if (this->_internal_solution_limit() != 0) {
2530 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
2531 this->_internal_solution_limit());
2535 if (this->_internal_use_full_propagation() != 0) {
2536 total_size += 1 + 1;
2540 if (this->_internal_log_search() != 0) {
2541 total_size += 1 + 1;
2545 if (this->_internal_number_of_solutions_to_collect() != 0) {
2547 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2548 this->_internal_number_of_solutions_to_collect());
2552 if (!(this->_internal_savings_neighbors_ratio() <= 0 && this->_internal_savings_neighbors_ratio() >= 0)) {
2553 total_size += 1 + 8;
2557 if (!(this->_internal_cheapest_insertion_farthest_seeds_ratio() <= 0 && this->_internal_cheapest_insertion_farthest_seeds_ratio() >= 0)) {
2558 total_size += 2 + 8;
2562 if (!(this->_internal_savings_arc_coefficient() <= 0 && this->_internal_savings_arc_coefficient() >= 0)) {
2563 total_size += 2 + 8;
2567 if (this->_internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
2569 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2570 this->_internal_relocate_expensive_chain_num_arcs_to_consider());
2574 if (this->_internal_use_unfiltered_first_solution_strategy() != 0) {
2575 total_size += 1 + 1;
2579 if (this->_internal_savings_add_reverse_arcs() != 0) {
2580 total_size += 1 + 1;
2584 if (this->_internal_savings_parallel_routes() != 0) {
2585 total_size += 2 + 1;
2589 if (this->_internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() != 0) {
2590 total_size += 2 + 1;
2594 if (!(this->_internal_cheapest_insertion_first_solution_neighbors_ratio() <= 0 && this->_internal_cheapest_insertion_first_solution_neighbors_ratio() >= 0)) {
2595 total_size += 2 + 8;
2599 if (!(this->_internal_log_cost_scaling_factor() <= 0 && this->_internal_log_cost_scaling_factor() >= 0)) {
2600 total_size += 2 + 8;
2604 if (!(this->_internal_savings_max_memory_usage_bytes() <= 0 && this->_internal_savings_max_memory_usage_bytes() >= 0)) {
2605 total_size += 2 + 8;
2609 if (this->_internal_use_cp_sat() != 0) {
2611 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cp_sat());
2615 if (this->_internal_use_cp() != 0) {
2617 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cp());
2621 if (!(this->_internal_log_cost_offset() <= 0 && this->_internal_log_cost_offset() >= 0)) {
2622 total_size += 2 + 8;
2626 if (this->_internal_cheapest_insertion_add_unperformed_entries() != 0) {
2627 total_size += 2 + 1;
2631 if (this->_internal_christofides_use_minimum_matching() != 0) {
2632 total_size += 2 + 1;
2636 if (this->_internal_use_multi_armed_bandit_concatenate_operators() != 0) {
2637 total_size += 2 + 1;
2641 if (this->_internal_use_depth_first_search() != 0) {
2642 total_size += 1 + 1;
2646 if (this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2648 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2649 this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
2653 if (!(this->_internal_cheapest_insertion_ls_operator_neighbors_ratio() <= 0 && this->_internal_cheapest_insertion_ls_operator_neighbors_ratio() >= 0)) {
2654 total_size += 2 + 8;
2658 if (this->_internal_continuous_scheduling_solver() != 0) {
2660 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_continuous_scheduling_solver());
2664 if (this->_internal_mixed_integer_scheduling_solver() != 0) {
2666 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_mixed_integer_scheduling_solver());
2670 if (this->_internal_heuristic_close_nodes_lns_num_nodes() != 0) {
2672 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2673 this->_internal_heuristic_close_nodes_lns_num_nodes());
2677 if (this->_internal_cheapest_insertion_first_solution_min_neighbors() != 0) {
2679 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2680 this->_internal_cheapest_insertion_first_solution_min_neighbors());
2684 if (!(this->_internal_multi_armed_bandit_compound_operator_memory_coefficient() <= 0 && this->_internal_multi_armed_bandit_compound_operator_memory_coefficient() >= 0)) {
2685 total_size += 2 + 8;
2689 if (!(this->_internal_multi_armed_bandit_compound_operator_exploration_coefficient() <= 0 && this->_internal_multi_armed_bandit_compound_operator_exploration_coefficient() >= 0)) {
2690 total_size += 2 + 8;
2694 if (this->_internal_cheapest_insertion_ls_operator_min_neighbors() != 0) {
2696 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2697 this->_internal_cheapest_insertion_ls_operator_min_neighbors());
2701 if (this->_internal_use_generalized_cp_sat() != 0) {
2703 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_generalized_cp_sat());
2706 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2707 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2708 _internal_metadata_, total_size, &_cached_size_);
2710 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2711 SetCachedSize(cached_size);
2716 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
2717 RoutingSearchParameters::MergeImpl
2721 void RoutingSearchParameters::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
2722 const ::PROTOBUF_NAMESPACE_ID::Message&from) {
2723 static_cast<RoutingSearchParameters *>(to)->MergeFrom(
2724 static_cast<const RoutingSearchParameters &>(from));
2730 GOOGLE_DCHECK_NE(&from,
this);
2731 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2732 (void) cached_has_bits;
2734 if (!from._internal_log_tag().empty()) {
2735 _internal_set_log_tag(from._internal_log_tag());
2737 if (from._internal_has_local_search_operators()) {
2738 _internal_mutable_local_search_operators()->::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeFrom(from._internal_local_search_operators());
2740 if (from._internal_has_time_limit()) {
2741 _internal_mutable_time_limit()->PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_time_limit());
2743 if (from._internal_has_lns_time_limit()) {
2744 _internal_mutable_lns_time_limit()->PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_lns_time_limit());
2746 if (from._internal_has_improvement_limit_parameters()) {
2747 _internal_mutable_improvement_limit_parameters()->::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters::MergeFrom(from._internal_improvement_limit_parameters());
2749 if (from._internal_has_sat_parameters()) {
2750 _internal_mutable_sat_parameters()->::operations_research::sat::SatParameters::MergeFrom(from._internal_sat_parameters());
2752 if (from._internal_first_solution_strategy() != 0) {
2753 _internal_set_first_solution_strategy(from._internal_first_solution_strategy());
2755 if (from._internal_local_search_metaheuristic() != 0) {
2756 _internal_set_local_search_metaheuristic(from._internal_local_search_metaheuristic());
2758 if (!(from._internal_guided_local_search_lambda_coefficient() <= 0 && from._internal_guided_local_search_lambda_coefficient() >= 0)) {
2759 _internal_set_guided_local_search_lambda_coefficient(from._internal_guided_local_search_lambda_coefficient());
2761 if (!(from._internal_optimization_step() <= 0 && from._internal_optimization_step() >= 0)) {
2762 _internal_set_optimization_step(from._internal_optimization_step());
2764 if (from._internal_solution_limit() != 0) {
2765 _internal_set_solution_limit(from._internal_solution_limit());
2767 if (from._internal_use_full_propagation() != 0) {
2768 _internal_set_use_full_propagation(from._internal_use_full_propagation());
2770 if (from._internal_log_search() != 0) {
2771 _internal_set_log_search(from._internal_log_search());
2773 if (from._internal_number_of_solutions_to_collect() != 0) {
2774 _internal_set_number_of_solutions_to_collect(from._internal_number_of_solutions_to_collect());
2776 if (!(from._internal_savings_neighbors_ratio() <= 0 && from._internal_savings_neighbors_ratio() >= 0)) {
2777 _internal_set_savings_neighbors_ratio(from._internal_savings_neighbors_ratio());
2779 if (!(from._internal_cheapest_insertion_farthest_seeds_ratio() <= 0 && from._internal_cheapest_insertion_farthest_seeds_ratio() >= 0)) {
2780 _internal_set_cheapest_insertion_farthest_seeds_ratio(from._internal_cheapest_insertion_farthest_seeds_ratio());
2782 if (!(from._internal_savings_arc_coefficient() <= 0 && from._internal_savings_arc_coefficient() >= 0)) {
2783 _internal_set_savings_arc_coefficient(from._internal_savings_arc_coefficient());
2785 if (from._internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
2786 _internal_set_relocate_expensive_chain_num_arcs_to_consider(from._internal_relocate_expensive_chain_num_arcs_to_consider());
2788 if (from._internal_use_unfiltered_first_solution_strategy() != 0) {
2789 _internal_set_use_unfiltered_first_solution_strategy(from._internal_use_unfiltered_first_solution_strategy());
2791 if (from._internal_savings_add_reverse_arcs() != 0) {
2792 _internal_set_savings_add_reverse_arcs(from._internal_savings_add_reverse_arcs());
2794 if (from._internal_savings_parallel_routes() != 0) {
2795 _internal_set_savings_parallel_routes(from._internal_savings_parallel_routes());
2797 if (from._internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() != 0) {
2798 _internal_set_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(from._internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization());
2800 if (!(from._internal_cheapest_insertion_first_solution_neighbors_ratio() <= 0 && from._internal_cheapest_insertion_first_solution_neighbors_ratio() >= 0)) {
2801 _internal_set_cheapest_insertion_first_solution_neighbors_ratio(from._internal_cheapest_insertion_first_solution_neighbors_ratio());
2803 if (!(from._internal_log_cost_scaling_factor() <= 0 && from._internal_log_cost_scaling_factor() >= 0)) {
2804 _internal_set_log_cost_scaling_factor(from._internal_log_cost_scaling_factor());
2806 if (!(from._internal_savings_max_memory_usage_bytes() <= 0 && from._internal_savings_max_memory_usage_bytes() >= 0)) {
2807 _internal_set_savings_max_memory_usage_bytes(from._internal_savings_max_memory_usage_bytes());
2809 if (from._internal_use_cp_sat() != 0) {
2810 _internal_set_use_cp_sat(from._internal_use_cp_sat());
2812 if (from._internal_use_cp() != 0) {
2813 _internal_set_use_cp(from._internal_use_cp());
2815 if (!(from._internal_log_cost_offset() <= 0 && from._internal_log_cost_offset() >= 0)) {
2816 _internal_set_log_cost_offset(from._internal_log_cost_offset());
2818 if (from._internal_cheapest_insertion_add_unperformed_entries() != 0) {
2819 _internal_set_cheapest_insertion_add_unperformed_entries(from._internal_cheapest_insertion_add_unperformed_entries());
2821 if (from._internal_christofides_use_minimum_matching() != 0) {
2822 _internal_set_christofides_use_minimum_matching(from._internal_christofides_use_minimum_matching());
2824 if (from._internal_use_multi_armed_bandit_concatenate_operators() != 0) {
2825 _internal_set_use_multi_armed_bandit_concatenate_operators(from._internal_use_multi_armed_bandit_concatenate_operators());
2827 if (from._internal_use_depth_first_search() != 0) {
2828 _internal_set_use_depth_first_search(from._internal_use_depth_first_search());
2830 if (from._internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2831 _internal_set_heuristic_expensive_chain_lns_num_arcs_to_consider(from._internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
2833 if (!(from._internal_cheapest_insertion_ls_operator_neighbors_ratio() <= 0 && from._internal_cheapest_insertion_ls_operator_neighbors_ratio() >= 0)) {
2834 _internal_set_cheapest_insertion_ls_operator_neighbors_ratio(from._internal_cheapest_insertion_ls_operator_neighbors_ratio());
2836 if (from._internal_continuous_scheduling_solver() != 0) {
2837 _internal_set_continuous_scheduling_solver(from._internal_continuous_scheduling_solver());
2839 if (from._internal_mixed_integer_scheduling_solver() != 0) {
2840 _internal_set_mixed_integer_scheduling_solver(from._internal_mixed_integer_scheduling_solver());
2842 if (from._internal_heuristic_close_nodes_lns_num_nodes() != 0) {
2843 _internal_set_heuristic_close_nodes_lns_num_nodes(from._internal_heuristic_close_nodes_lns_num_nodes());
2845 if (from._internal_cheapest_insertion_first_solution_min_neighbors() != 0) {
2846 _internal_set_cheapest_insertion_first_solution_min_neighbors(from._internal_cheapest_insertion_first_solution_min_neighbors());
2848 if (!(from._internal_multi_armed_bandit_compound_operator_memory_coefficient() <= 0 && from._internal_multi_armed_bandit_compound_operator_memory_coefficient() >= 0)) {
2849 _internal_set_multi_armed_bandit_compound_operator_memory_coefficient(from._internal_multi_armed_bandit_compound_operator_memory_coefficient());
2851 if (!(from._internal_multi_armed_bandit_compound_operator_exploration_coefficient() <= 0 && from._internal_multi_armed_bandit_compound_operator_exploration_coefficient() >= 0)) {
2852 _internal_set_multi_armed_bandit_compound_operator_exploration_coefficient(from._internal_multi_armed_bandit_compound_operator_exploration_coefficient());
2854 if (from._internal_cheapest_insertion_ls_operator_min_neighbors() != 0) {
2855 _internal_set_cheapest_insertion_ls_operator_min_neighbors(from._internal_cheapest_insertion_ls_operator_min_neighbors());
2857 if (from._internal_use_generalized_cp_sat() != 0) {
2858 _internal_set_use_generalized_cp_sat(from._internal_use_generalized_cp_sat());
2860 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2865 if (&from ==
this)
return;
2876 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2877 ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
2878 &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
2879 &log_tag_, GetArenaForAllocation(),
2880 &other->log_tag_, other->GetArenaForAllocation()
2882 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2884 +
sizeof(RoutingSearchParameters::use_generalized_cp_sat_)
2886 reinterpret_cast<char*>(&local_search_operators_),
2887 reinterpret_cast<char*>(&other->local_search_operators_));
2891 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
2903 const ::operations_research::ConstraintSolverParameters&
2905 return *msg->solver_parameters_;
2908 if (GetArenaForAllocation() ==
nullptr && solver_parameters_ !=
nullptr) {
2909 delete solver_parameters_;
2911 solver_parameters_ =
nullptr;
2914 bool is_message_owned)
2915 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
2917 if (!is_message_owned) {
2918 RegisterArenaDtor(arena);
2923 : ::PROTOBUF_NAMESPACE_ID::Message() {
2924 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2925 if (from._internal_has_solver_parameters()) {
2926 solver_parameters_ = new ::operations_research::ConstraintSolverParameters(*from.solver_parameters_);
2928 solver_parameters_ =
nullptr;
2930 ::memcpy(&reduce_vehicle_cost_model_, &from.reduce_vehicle_cost_model_,
2931 static_cast<size_t>(reinterpret_cast<char*>(&max_callback_cache_size_) -
2932 reinterpret_cast<char*>(&reduce_vehicle_cost_model_)) +
sizeof(max_callback_cache_size_));
2936 inline void RoutingModelParameters::SharedCtor() {
2937 ::memset(reinterpret_cast<char*>(
this) + static_cast<size_t>(
2938 reinterpret_cast<char*>(&solver_parameters_) - reinterpret_cast<char*>(
this)),
2939 0, static_cast<size_t>(reinterpret_cast<char*>(&max_callback_cache_size_) -
2940 reinterpret_cast<char*>(&solver_parameters_)) +
sizeof(max_callback_cache_size_));
2945 if (GetArenaForAllocation() !=
nullptr)
return;
2947 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2950 inline void RoutingModelParameters::SharedDtor() {
2951 GOOGLE_DCHECK(GetArenaForAllocation() ==
nullptr);
2955 void RoutingModelParameters::ArenaDtor(
void*
object) {
2959 void RoutingModelParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2961 void RoutingModelParameters::SetCachedSize(
int size)
const {
2962 _cached_size_.Set(size);
2967 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2969 (void) cached_has_bits;
2971 if (GetArenaForAllocation() ==
nullptr && solver_parameters_ !=
nullptr) {
2972 delete solver_parameters_;
2974 solver_parameters_ =
nullptr;
2975 ::memset(&reduce_vehicle_cost_model_, 0, static_cast<size_t>(
2976 reinterpret_cast<char*>(&max_callback_cache_size_) -
2977 reinterpret_cast<char*>(&reduce_vehicle_cost_model_)) +
sizeof(max_callback_cache_size_));
2978 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2982 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure 2983 while (!ctx->Done(&ptr)) {
2984 ::PROTOBUF_NAMESPACE_ID::uint32 tag;
2985 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2989 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2990 ptr = ctx->ParseMessage(_internal_mutable_solver_parameters(), ptr);
2992 }
else goto handle_unusual;
2996 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
2997 reduce_vehicle_cost_model_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2999 }
else goto handle_unusual;
3003 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
3004 max_callback_cache_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3006 }
else goto handle_unusual;
3010 if ((tag == 0) || ((tag & 7) == 4)) {
3012 ctx->SetLastTag(tag);
3015 ptr = UnknownFieldParse(tag,
3016 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3018 CHK_(ptr !=
nullptr);
3032 ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream)
const {
3034 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3035 (void) cached_has_bits;
3038 if (this->_internal_has_solver_parameters()) {
3039 target = stream->EnsureSpace(target);
3040 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3041 InternalWriteMessage(
3046 if (this->_internal_reduce_vehicle_cost_model() != 0) {
3047 target = stream->EnsureSpace(target);
3048 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_reduce_vehicle_cost_model(), target);
3052 if (this->_internal_max_callback_cache_size() != 0) {
3053 target = stream->EnsureSpace(target);
3054 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_max_callback_cache_size(), target);
3057 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3058 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3059 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3067 size_t total_size = 0;
3069 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3071 (void) cached_has_bits;
3074 if (this->_internal_has_solver_parameters()) {
3076 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3077 *solver_parameters_);
3081 if (this->_internal_reduce_vehicle_cost_model() != 0) {
3082 total_size += 1 + 1;
3086 if (this->_internal_max_callback_cache_size() != 0) {
3088 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3089 this->_internal_max_callback_cache_size());
3092 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3093 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3094 _internal_metadata_, total_size, &_cached_size_);
3096 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3097 SetCachedSize(cached_size);
3102 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
3103 RoutingModelParameters::MergeImpl
3107 void RoutingModelParameters::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
3108 const ::PROTOBUF_NAMESPACE_ID::Message&from) {
3109 static_cast<RoutingModelParameters *>(to)->MergeFrom(
3110 static_cast<const RoutingModelParameters &>(from));
3116 GOOGLE_DCHECK_NE(&from,
this);
3117 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3118 (void) cached_has_bits;
3120 if (from._internal_has_solver_parameters()) {
3121 _internal_mutable_solver_parameters()->::operations_research::ConstraintSolverParameters::MergeFrom(from._internal_solver_parameters());
3123 if (from._internal_reduce_vehicle_cost_model() != 0) {
3124 _internal_set_reduce_vehicle_cost_model(from._internal_reduce_vehicle_cost_model());
3126 if (from._internal_max_callback_cache_size() != 0) {
3127 _internal_set_max_callback_cache_size(from._internal_max_callback_cache_size());
3129 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3134 if (&from ==
this)
return;
3145 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3146 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3148 +
sizeof(RoutingModelParameters::max_callback_cache_size_)
3150 reinterpret_cast<char*>(&solver_parameters_),
3151 reinterpret_cast<char*>(&other->solver_parameters_));
3155 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
3162 PROTOBUF_NAMESPACE_OPEN
3164 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators >(arena);
3167 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters >(arena);
3170 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters >(arena);
3173 return Arena::CreateMessageInternal< ::operations_research::RoutingModelParameters >(arena);
3175 PROTOBUF_NAMESPACE_CLOSE
3178 #include <google/protobuf/port_undef.inc> ::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
static const ClassData _class_data_
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void CopyFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
~RoutingSearchParameters_ImprovementSearchLimitParameters() override
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[4]
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal _RoutingSearchParameters_ImprovementSearchLimitParameters_default_instance_
~RoutingModelParameters() override
bool IsInitialized() const final
PROTOBUF_NOINLINE ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters * Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters >(Arena *arena)
size_t ByteSizeLong() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2futil_2foptional_5fboolean_2eproto
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingModelParametersDefaultTypeInternal _RoutingModelParameters_default_instance_
static constexpr int SchedulingSolver_ARRAYSIZE
void swap(IdMap< K, V > &a, IdMap< K, V > &b)
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2fsolver_5fparameters_2eproto
void CopyFrom(const RoutingSearchParameters_ImprovementSearchLimitParameters &from)
bool IsInitialized() const final
static const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators & local_search_operators(const RoutingSearchParameters *msg)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void MergeFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[1]
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
constexpr RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal()
void MergeFrom(const RoutingModelParameters &from)
bool IsInitialized() const final
~RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal()
void clear_sat_parameters()
static constexpr SchedulingSolver UNSET
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
~RoutingSearchParameters() override
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingSearchParametersDefaultTypeInternal _RoutingSearchParameters_default_instance_
RoutingSearchParameters_LocalSearchNeighborhoodOperators _instance
void MergeFrom(const RoutingSearchParameters &from)
size_t ByteSizeLong() const final
PROTOBUF_NOINLINE ::operations_research::RoutingModelParameters * Arena::CreateMaybeMessage< ::operations_research::RoutingModelParameters >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
bool RoutingSearchParameters_SchedulingSolver_IsValid(int value)
bool IsInitialized() const final
void CopyFrom(const RoutingModelParameters &from)
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
static const ClassData _class_data_
RoutingSearchParameters_ImprovementSearchLimitParameters _instance
void MergeFrom(const RoutingSearchParameters_ImprovementSearchLimitParameters &from)
constexpr RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal()
void clear_lns_time_limit()
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators * Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators >(Arena *arena)
size_t ByteSizeLong() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
RoutingModelParameters _instance
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fenums_2eproto
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static constexpr SchedulingSolver SchedulingSolver_MIN
~RoutingSearchParametersDefaultTypeInternal()
static const RoutingSearchParameters * internal_default_instance()
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable *const descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_deps[5]
void clear_solver_parameters()
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
~RoutingSearchParameters_LocalSearchNeighborhoodOperators() override
~RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal()
static const ClassData _class_data_
RoutingSearchParameters _instance
void CopyFrom(const RoutingSearchParameters &from)
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static constexpr SchedulingSolver GLOP
static const RoutingModelParameters * internal_default_instance()
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
static const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters & improvement_limit_parameters(const RoutingSearchParameters *msg)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
RoutingSearchParameters_SchedulingSolver
static const PROTOBUF_NAMESPACE_ID::Duration & lns_time_limit(const RoutingSearchParameters *msg)
constexpr RoutingSearchParametersDefaultTypeInternal()
static const ::operations_research::sat::SatParameters & sat_parameters(const RoutingSearchParameters *msg)
static const ::operations_research::ConstraintSolverParameters & solver_parameters(const RoutingModelParameters *msg)
PROTOBUF_ATTRIBUTE_WEAKconst ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable * descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_getter()
Collection of objects used to extend the Constraint Solver library.
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * RoutingSearchParameters_SchedulingSolver_descriptor()
constexpr RoutingModelParametersDefaultTypeInternal()
RoutingSearchParameters_ImprovementSearchLimitParameters()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal _RoutingSearchParameters_LocalSearchNeighborhoodOperators_default_instance_
PROTOBUF_NOINLINE ::operations_research::RoutingSearchParameters * Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters >(Arena *arena)
size_t ByteSizeLong() const final
static constexpr SchedulingSolver SchedulingSolver_MAX
static const ClassData _class_data_
static const PROTOBUF_NAMESPACE_ID::Duration & time_limit(const RoutingSearchParameters *msg)
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
static constexpr SchedulingSolver CP_SAT
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
~RoutingModelParametersDefaultTypeInternal()
RoutingSearchParameters_LocalSearchNeighborhoodOperators()
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_once
RoutingSearchParameters()
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto::offsets [] PROTOBUF_SECTION_VARIABLE(protodesc_cold)