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>
18PROTOBUF_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){}
309const char descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[]
PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
310 "\n2ortools/constraint_solver/routing_para"
311 "meters.proto\022\023operations_research\032\036googl"
312 "e/protobuf/duration.proto\032-ortools/const"
313 "raint_solver/routing_enums.proto\0321ortool"
314 "s/constraint_solver/solver_parameters.pr"
315 "oto\032 ortools/sat/sat_parameters.proto\032#o"
316 "rtools/util/optional_boolean.proto\"\372%\n\027R"
317 "outingSearchParameters\022Q\n\027first_solution"
318 "_strategy\030\001 \001(\01620.operations_research.Fi"
319 "rstSolutionStrategy.Value\022.\n&use_unfilte"
320 "red_first_solution_strategy\030\002 \001(\010\022\037\n\027sav"
321 "ings_neighbors_ratio\030\016 \001(\001\022&\n\036savings_ma"
322 "x_memory_usage_bytes\030\027 \001(\001\022 \n\030savings_ad"
323 "d_reverse_arcs\030\017 \001(\010\022\037\n\027savings_arc_coef"
324 "ficient\030\022 \001(\001\022\037\n\027savings_parallel_routes"
325 "\030\023 \001(\010\022/\n\'cheapest_insertion_farthest_se"
326 "eds_ratio\030\020 \001(\001\0229\n1cheapest_insertion_fi"
327 "rst_solution_neighbors_ratio\030\025 \001(\001\0227\n/ch"
328 "eapest_insertion_first_solution_min_neig"
329 "hbors\030, \001(\005\0226\n.cheapest_insertion_ls_ope"
330 "rator_neighbors_ratio\030\037 \001(\001\0224\n,cheapest_"
331 "insertion_ls_operator_min_neighbors\030- \001("
332 "\005\022P\nHcheapest_insertion_first_solution_u"
333 "se_neighbors_ratio_for_initialization\030. "
334 "\001(\010\0222\n*cheapest_insertion_add_unperforme"
335 "d_entries\030( \001(\010\022)\n!christofides_use_mini"
336 "mum_matching\030\036 \001(\010\022m\n\026local_search_opera"
337 "tors\030\003 \001(\0132M.operations_research.Routing"
338 "SearchParameters.LocalSearchNeighborhood"
339 "Operators\0224\n,use_multi_armed_bandit_conc"
340 "atenate_operators\030) \001(\010\022\?\n7multi_armed_b"
341 "andit_compound_operator_memory_coefficie"
342 "nt\030* \001(\001\022D\n<multi_armed_bandit_compound_"
343 "operator_exploration_coefficient\030+ \001(\001\0225"
344 "\n-relocate_expensive_chain_num_arcs_to_c"
345 "onsider\030\024 \001(\005\022:\n2heuristic_expensive_cha"
346 "in_lns_num_arcs_to_consider\030 \001(\005\022+\n#heu"
347 "ristic_close_nodes_lns_num_nodes\030# \001(\005\022W"
348 "\n\032local_search_metaheuristic\030\004 \001(\01623.ope"
349 "rations_research.LocalSearchMetaheuristi"
350 "c.Value\022.\n&guided_local_search_lambda_co"
351 "efficient\030\005 \001(\001\022\036\n\026use_depth_first_searc"
352 "h\030\006 \001(\010\0224\n\006use_cp\030\034 \001(\0162$.operations_res"
353 "earch.OptionalBoolean\0228\n\nuse_cp_sat\030\033 \001("
354 "\0162$.operations_research.OptionalBoolean\022"
355 "D\n\026use_generalized_cp_sat\030/ \001(\0162$.operat"
356 "ions_research.OptionalBoolean\022>\n\016sat_par"
357 "ameters\0300 \001(\0132&.operations_research.sat."
358 "SatParameters\022c\n\034continuous_scheduling_s"
359 "olver\030! \001(\0162=.operations_research.Routin"
360 "gSearchParameters.SchedulingSolver\022f\n\037mi"
361 "xed_integer_scheduling_solver\030\" \001(\0162=.op"
362 "erations_research.RoutingSearchParameter"
363 "s.SchedulingSolver\022\031\n\021optimization_step\030"
364 "\007 \001(\001\022&\n\036number_of_solutions_to_collect\030"
365 "\021 \001(\005\022\026\n\016solution_limit\030\010 \001(\003\022-\n\ntime_li"
366 "mit\030\t \001(\0132\031.google.protobuf.Duration\0221\n\016"
367 "lns_time_limit\030\n \001(\0132\031.google.protobuf.D"
368 "uration\022s\n\034improvement_limit_parameters\030"
369 "% \001(\0132M.operations_research.RoutingSearc"
370 "hParameters.ImprovementSearchLimitParame"
371 "ters\022\034\n\024use_full_propagation\030\013 \001(\010\022\022\n\nlo"
372 "g_search\030\r \001(\010\022\037\n\027log_cost_scaling_facto"
373 "r\030\026 \001(\001\022\027\n\017log_cost_offset\030\035 \001(\001\022\017\n\007log_"
374 "tag\030$ \001(\t\032\327\022\n LocalSearchNeighborhoodOpe"
375 "rators\022:\n\014use_relocate\030\001 \001(\0162$.operation"
376 "s_research.OptionalBoolean\022\?\n\021use_reloca"
377 "te_pair\030\002 \001(\0162$.operations_research.Opti"
378 "onalBoolean\022E\n\027use_light_relocate_pair\030\030"
379 " \001(\0162$.operations_research.OptionalBoole"
380 "an\022D\n\026use_relocate_neighbors\030\003 \001(\0162$.ope"
381 "rations_research.OptionalBoolean\022B\n\024use_"
382 "relocate_subtrip\030\031 \001(\0162$.operations_rese"
383 "arch.OptionalBoolean\022:\n\014use_exchange\030\004 \001"
384 "(\0162$.operations_research.OptionalBoolean"
385 "\022\?\n\021use_exchange_pair\030\026 \001(\0162$.operations"
386 "_research.OptionalBoolean\022B\n\024use_exchang"
387 "e_subtrip\030\032 \001(\0162$.operations_research.Op"
388 "tionalBoolean\0227\n\tuse_cross\030\005 \001(\0162$.opera"
389 "tions_research.OptionalBoolean\022@\n\022use_cr"
390 "oss_exchange\030\006 \001(\0162$.operations_research"
391 ".OptionalBoolean\022J\n\034use_relocate_expensi"
392 "ve_chain\030\027 \001(\0162$.operations_research.Opt"
393 "ionalBoolean\0229\n\013use_two_opt\030\007 \001(\0162$.oper"
394 "ations_research.OptionalBoolean\0228\n\nuse_o"
395 "r_opt\030\010 \001(\0162$.operations_research.Option"
396 "alBoolean\022\?\n\021use_lin_kernighan\030\t \001(\0162$.o"
397 "perations_research.OptionalBoolean\0229\n\013us"
398 "e_tsp_opt\030\n \001(\0162$.operations_research.Op"
399 "tionalBoolean\022=\n\017use_make_active\030\013 \001(\0162$"
400 ".operations_research.OptionalBoolean\022J\n\034"
401 "use_relocate_and_make_active\030\025 \001(\0162$.ope"
402 "rations_research.OptionalBoolean\022\?\n\021use_"
403 "make_inactive\030\014 \001(\0162$.operations_researc"
404 "h.OptionalBoolean\022E\n\027use_make_chain_inac"
405 "tive\030\r \001(\0162$.operations_research.Optiona"
406 "lBoolean\022=\n\017use_swap_active\030\016 \001(\0162$.oper"
407 "ations_research.OptionalBoolean\022F\n\030use_e"
408 "xtended_swap_active\030\017 \001(\0162$.operations_r"
409 "esearch.OptionalBoolean\022G\n\031use_node_pair"
410 "_swap_active\030\024 \001(\0162$.operations_research"
411 ".OptionalBoolean\022:\n\014use_path_lns\030\020 \001(\0162$"
412 ".operations_research.OptionalBoolean\022\?\n\021"
413 "use_full_path_lns\030\021 \001(\0162$.operations_res"
414 "earch.OptionalBoolean\0229\n\013use_tsp_lns\030\022 \001"
415 "(\0162$.operations_research.OptionalBoolean"
416 "\022>\n\020use_inactive_lns\030\023 \001(\0162$.operations_"
417 "research.OptionalBoolean\022T\n&use_global_c"
418 "heapest_insertion_path_lns\030\033 \001(\0162$.opera"
419 "tions_research.OptionalBoolean\022S\n%use_lo"
420 "cal_cheapest_insertion_path_lns\030\034 \001(\0162$."
421 "operations_research.OptionalBoolean\022l\n>u"
422 "se_relocate_path_global_cheapest_inserti"
423 "on_insert_unperformed\030! \001(\0162$.operations"
424 "_research.OptionalBoolean\022_\n1use_global_"
425 "cheapest_insertion_expensive_chain_lns\030\035"
426 " \001(\0162$.operations_research.OptionalBoole"
427 "an\022^\n0use_local_cheapest_insertion_expen"
428 "sive_chain_lns\030\036 \001(\0162$.operations_resear"
429 "ch.OptionalBoolean\022[\n-use_global_cheapes"
430 "t_insertion_close_nodes_lns\030\037 \001(\0162$.oper"
431 "ations_research.OptionalBoolean\022Z\n,use_l"
432 "ocal_cheapest_insertion_close_nodes_lns\030"
433 " \001(\0162$.operations_research.OptionalBool"
434 "ean\032u\n ImprovementSearchLimitParameters\022"
435 "$\n\034improvement_rate_coefficient\030& \001(\001\022+\n"
436 "#improvement_rate_solutions_distance\030\' \001"
437 "(\005\"3\n\020SchedulingSolver\022\t\n\005UNSET\020\000\022\010\n\004GLO"
438 "P\020\001\022\n\n\006CP_SAT\020\002\"\250\001\n\026RoutingModelParamete"
439 "rs\022J\n\021solver_parameters\030\001 \001(\0132/.operatio"
440 "ns_research.ConstraintSolverParameters\022!"
441 "\n\031reduce_vehicle_cost_model\030\002 \001(\010\022\037\n\027max"
442 "_callback_cache_size\030\003 \001(\005BI\n#com.google"
443 ".ortools.constraintsolverP\001\252\002\037Google.OrT"
444 "ools.ConstraintSolverb\006proto3"
447 &::descriptor_table_google_2fprotobuf_2fduration_2eproto,
455 false,
false, 5389, descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto,
"ortools/constraint_solver/routing_parameters.proto",
482#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
498 bool is_message_owned)
499 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
501 if (!is_message_owned) {
502 RegisterArenaDtor(arena);
507 : ::PROTOBUF_NAMESPACE_ID::Message() {
508 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
509 ::memcpy(&use_relocate_, &from.use_relocate_,
510 static_cast<size_t>(
reinterpret_cast<char*
>(&use_relocate_path_global_cheapest_insertion_insert_unperformed_) -
511 reinterpret_cast<char*
>(&use_relocate_)) +
sizeof(use_relocate_path_global_cheapest_insertion_insert_unperformed_));
515inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedCtor() {
516::memset(
reinterpret_cast<char*
>(
this) +
static_cast<size_t>(
517 reinterpret_cast<char*
>(&use_relocate_) -
reinterpret_cast<char*
>(
this)),
518 0,
static_cast<size_t>(
reinterpret_cast<char*
>(&use_relocate_path_global_cheapest_insertion_insert_unperformed_) -
519 reinterpret_cast<char*
>(&use_relocate_)) +
sizeof(use_relocate_path_global_cheapest_insertion_insert_unperformed_));
524 if (GetArenaForAllocation() !=
nullptr)
return;
526 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
529inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedDtor() {
530 GOOGLE_DCHECK(GetArenaForAllocation() ==
nullptr);
533void RoutingSearchParameters_LocalSearchNeighborhoodOperators::ArenaDtor(
void*
object) {
537void RoutingSearchParameters_LocalSearchNeighborhoodOperators::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
539void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SetCachedSize(
int size)
const {
540 _cached_size_.Set(size);
545 uint32_t cached_has_bits = 0;
547 (void) cached_has_bits;
549 ::memset(&use_relocate_, 0,
static_cast<size_t>(
550 reinterpret_cast<char*
>(&use_relocate_path_global_cheapest_insertion_insert_unperformed_) -
551 reinterpret_cast<char*
>(&use_relocate_)) +
sizeof(use_relocate_path_global_cheapest_insertion_insert_unperformed_));
552 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
556#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
557 while (!ctx->Done(&ptr)) {
559 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
563 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 8)) {
564 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
572 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 16)) {
573 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
581 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 24)) {
582 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
590 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 32)) {
591 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
599 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 40)) {
600 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
608 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 48)) {
609 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
617 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 56)) {
618 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
626 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 64)) {
627 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
635 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 72)) {
636 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
644 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 80)) {
645 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
653 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 88)) {
654 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
662 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 96)) {
663 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
671 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 104)) {
672 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
680 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 112)) {
681 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
689 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 120)) {
690 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
698 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 128)) {
699 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
707 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 136)) {
708 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
716 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 144)) {
717 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
725 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 152)) {
726 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
734 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 160)) {
735 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
743 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 168)) {
744 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
752 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 176)) {
753 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
761 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 184)) {
762 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
770 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 192)) {
771 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
779 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 200)) {
780 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
788 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 208)) {
789 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
797 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 216)) {
798 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
806 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 224)) {
807 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
815 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 232)) {
816 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
824 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 240)) {
825 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
833 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 248)) {
834 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
842 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 0)) {
843 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
851 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 8)) {
852 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
862 if ((tag == 0) || ((tag & 7) == 4)) {
864 ctx->SetLastTag(tag);
867 ptr = UnknownFieldParse(
869 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
871 CHK_(ptr !=
nullptr);
882 uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream)
const {
884 uint32_t cached_has_bits = 0;
885 (void) cached_has_bits;
888 if (this->_internal_use_relocate() != 0) {
889 target = stream->EnsureSpace(target);
890 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
891 1, this->_internal_use_relocate(), target);
895 if (this->_internal_use_relocate_pair() != 0) {
896 target = stream->EnsureSpace(target);
897 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
898 2, this->_internal_use_relocate_pair(), target);
902 if (this->_internal_use_relocate_neighbors() != 0) {
903 target = stream->EnsureSpace(target);
904 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
905 3, this->_internal_use_relocate_neighbors(), target);
909 if (this->_internal_use_exchange() != 0) {
910 target = stream->EnsureSpace(target);
911 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
912 4, this->_internal_use_exchange(), target);
916 if (this->_internal_use_cross() != 0) {
917 target = stream->EnsureSpace(target);
918 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
919 5, this->_internal_use_cross(), target);
923 if (this->_internal_use_cross_exchange() != 0) {
924 target = stream->EnsureSpace(target);
925 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
926 6, this->_internal_use_cross_exchange(), target);
930 if (this->_internal_use_two_opt() != 0) {
931 target = stream->EnsureSpace(target);
932 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
933 7, this->_internal_use_two_opt(), target);
937 if (this->_internal_use_or_opt() != 0) {
938 target = stream->EnsureSpace(target);
939 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
940 8, this->_internal_use_or_opt(), target);
944 if (this->_internal_use_lin_kernighan() != 0) {
945 target = stream->EnsureSpace(target);
946 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
947 9, this->_internal_use_lin_kernighan(), target);
951 if (this->_internal_use_tsp_opt() != 0) {
952 target = stream->EnsureSpace(target);
953 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
954 10, this->_internal_use_tsp_opt(), target);
958 if (this->_internal_use_make_active() != 0) {
959 target = stream->EnsureSpace(target);
960 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
961 11, this->_internal_use_make_active(), target);
965 if (this->_internal_use_make_inactive() != 0) {
966 target = stream->EnsureSpace(target);
967 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
968 12, this->_internal_use_make_inactive(), target);
972 if (this->_internal_use_make_chain_inactive() != 0) {
973 target = stream->EnsureSpace(target);
974 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
975 13, this->_internal_use_make_chain_inactive(), target);
979 if (this->_internal_use_swap_active() != 0) {
980 target = stream->EnsureSpace(target);
981 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
982 14, this->_internal_use_swap_active(), target);
986 if (this->_internal_use_extended_swap_active() != 0) {
987 target = stream->EnsureSpace(target);
988 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
989 15, this->_internal_use_extended_swap_active(), target);
993 if (this->_internal_use_path_lns() != 0) {
994 target = stream->EnsureSpace(target);
995 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
996 16, this->_internal_use_path_lns(), target);
1000 if (this->_internal_use_full_path_lns() != 0) {
1001 target = stream->EnsureSpace(target);
1002 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1003 17, this->_internal_use_full_path_lns(), target);
1007 if (this->_internal_use_tsp_lns() != 0) {
1008 target = stream->EnsureSpace(target);
1009 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1010 18, this->_internal_use_tsp_lns(), target);
1014 if (this->_internal_use_inactive_lns() != 0) {
1015 target = stream->EnsureSpace(target);
1016 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1017 19, this->_internal_use_inactive_lns(), target);
1021 if (this->_internal_use_node_pair_swap_active() != 0) {
1022 target = stream->EnsureSpace(target);
1023 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1024 20, this->_internal_use_node_pair_swap_active(), target);
1028 if (this->_internal_use_relocate_and_make_active() != 0) {
1029 target = stream->EnsureSpace(target);
1030 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1031 21, this->_internal_use_relocate_and_make_active(), target);
1035 if (this->_internal_use_exchange_pair() != 0) {
1036 target = stream->EnsureSpace(target);
1037 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1038 22, this->_internal_use_exchange_pair(), target);
1042 if (this->_internal_use_relocate_expensive_chain() != 0) {
1043 target = stream->EnsureSpace(target);
1044 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1045 23, this->_internal_use_relocate_expensive_chain(), target);
1049 if (this->_internal_use_light_relocate_pair() != 0) {
1050 target = stream->EnsureSpace(target);
1051 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1052 24, this->_internal_use_light_relocate_pair(), target);
1056 if (this->_internal_use_relocate_subtrip() != 0) {
1057 target = stream->EnsureSpace(target);
1058 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1059 25, this->_internal_use_relocate_subtrip(), target);
1063 if (this->_internal_use_exchange_subtrip() != 0) {
1064 target = stream->EnsureSpace(target);
1065 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1066 26, this->_internal_use_exchange_subtrip(), target);
1070 if (this->_internal_use_global_cheapest_insertion_path_lns() != 0) {
1071 target = stream->EnsureSpace(target);
1072 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1073 27, this->_internal_use_global_cheapest_insertion_path_lns(), target);
1077 if (this->_internal_use_local_cheapest_insertion_path_lns() != 0) {
1078 target = stream->EnsureSpace(target);
1079 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1080 28, this->_internal_use_local_cheapest_insertion_path_lns(), target);
1084 if (this->_internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1085 target = stream->EnsureSpace(target);
1086 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1087 29, this->_internal_use_global_cheapest_insertion_expensive_chain_lns(), target);
1091 if (this->_internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1092 target = stream->EnsureSpace(target);
1093 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1094 30, this->_internal_use_local_cheapest_insertion_expensive_chain_lns(), target);
1098 if (this->_internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1099 target = stream->EnsureSpace(target);
1100 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1101 31, this->_internal_use_global_cheapest_insertion_close_nodes_lns(), target);
1105 if (this->_internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1106 target = stream->EnsureSpace(target);
1107 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1108 32, this->_internal_use_local_cheapest_insertion_close_nodes_lns(), target);
1112 if (this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1113 target = stream->EnsureSpace(target);
1114 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1115 33, this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed(), target);
1118 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1119 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1120 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1128 size_t total_size = 0;
1130 uint32_t cached_has_bits = 0;
1132 (void) cached_has_bits;
1135 if (this->_internal_use_relocate() != 0) {
1137 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate());
1141 if (this->_internal_use_relocate_pair() != 0) {
1143 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_pair());
1147 if (this->_internal_use_relocate_neighbors() != 0) {
1149 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_neighbors());
1153 if (this->_internal_use_exchange() != 0) {
1155 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange());
1159 if (this->_internal_use_cross() != 0) {
1161 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cross());
1165 if (this->_internal_use_cross_exchange() != 0) {
1167 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cross_exchange());
1171 if (this->_internal_use_two_opt() != 0) {
1173 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_two_opt());
1177 if (this->_internal_use_or_opt() != 0) {
1179 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_or_opt());
1183 if (this->_internal_use_lin_kernighan() != 0) {
1185 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_lin_kernighan());
1189 if (this->_internal_use_tsp_opt() != 0) {
1191 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_tsp_opt());
1195 if (this->_internal_use_make_active() != 0) {
1197 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_active());
1201 if (this->_internal_use_make_inactive() != 0) {
1203 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_inactive());
1207 if (this->_internal_use_make_chain_inactive() != 0) {
1209 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_chain_inactive());
1213 if (this->_internal_use_swap_active() != 0) {
1215 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_swap_active());
1219 if (this->_internal_use_extended_swap_active() != 0) {
1221 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_extended_swap_active());
1225 if (this->_internal_use_path_lns() != 0) {
1227 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_path_lns());
1231 if (this->_internal_use_full_path_lns() != 0) {
1233 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_full_path_lns());
1237 if (this->_internal_use_tsp_lns() != 0) {
1239 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_tsp_lns());
1243 if (this->_internal_use_inactive_lns() != 0) {
1245 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_inactive_lns());
1249 if (this->_internal_use_node_pair_swap_active() != 0) {
1251 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_node_pair_swap_active());
1255 if (this->_internal_use_relocate_and_make_active() != 0) {
1257 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_and_make_active());
1261 if (this->_internal_use_exchange_pair() != 0) {
1263 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange_pair());
1267 if (this->_internal_use_relocate_expensive_chain() != 0) {
1269 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_expensive_chain());
1273 if (this->_internal_use_light_relocate_pair() != 0) {
1275 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_light_relocate_pair());
1279 if (this->_internal_use_relocate_subtrip() != 0) {
1281 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_subtrip());
1285 if (this->_internal_use_exchange_subtrip() != 0) {
1287 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange_subtrip());
1291 if (this->_internal_use_global_cheapest_insertion_path_lns() != 0) {
1293 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_path_lns());
1297 if (this->_internal_use_local_cheapest_insertion_path_lns() != 0) {
1299 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_path_lns());
1303 if (this->_internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1305 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_expensive_chain_lns());
1309 if (this->_internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1311 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_expensive_chain_lns());
1315 if (this->_internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1317 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_close_nodes_lns());
1321 if (this->_internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1323 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_close_nodes_lns());
1327 if (this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1329 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed());
1332 return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
1336 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1337 RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeImpl
1341void RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
1342 const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1350 GOOGLE_DCHECK_NE(&from,
this);
1351 uint32_t cached_has_bits = 0;
1352 (void) cached_has_bits;
1354 if (from._internal_use_relocate() != 0) {
1355 _internal_set_use_relocate(from._internal_use_relocate());
1357 if (from._internal_use_relocate_pair() != 0) {
1358 _internal_set_use_relocate_pair(from._internal_use_relocate_pair());
1360 if (from._internal_use_relocate_neighbors() != 0) {
1361 _internal_set_use_relocate_neighbors(from._internal_use_relocate_neighbors());
1363 if (from._internal_use_exchange() != 0) {
1364 _internal_set_use_exchange(from._internal_use_exchange());
1366 if (from._internal_use_cross() != 0) {
1367 _internal_set_use_cross(from._internal_use_cross());
1369 if (from._internal_use_cross_exchange() != 0) {
1370 _internal_set_use_cross_exchange(from._internal_use_cross_exchange());
1372 if (from._internal_use_two_opt() != 0) {
1373 _internal_set_use_two_opt(from._internal_use_two_opt());
1375 if (from._internal_use_or_opt() != 0) {
1376 _internal_set_use_or_opt(from._internal_use_or_opt());
1378 if (from._internal_use_lin_kernighan() != 0) {
1379 _internal_set_use_lin_kernighan(from._internal_use_lin_kernighan());
1381 if (from._internal_use_tsp_opt() != 0) {
1382 _internal_set_use_tsp_opt(from._internal_use_tsp_opt());
1384 if (from._internal_use_make_active() != 0) {
1385 _internal_set_use_make_active(from._internal_use_make_active());
1387 if (from._internal_use_make_inactive() != 0) {
1388 _internal_set_use_make_inactive(from._internal_use_make_inactive());
1390 if (from._internal_use_make_chain_inactive() != 0) {
1391 _internal_set_use_make_chain_inactive(from._internal_use_make_chain_inactive());
1393 if (from._internal_use_swap_active() != 0) {
1394 _internal_set_use_swap_active(from._internal_use_swap_active());
1396 if (from._internal_use_extended_swap_active() != 0) {
1397 _internal_set_use_extended_swap_active(from._internal_use_extended_swap_active());
1399 if (from._internal_use_path_lns() != 0) {
1400 _internal_set_use_path_lns(from._internal_use_path_lns());
1402 if (from._internal_use_full_path_lns() != 0) {
1403 _internal_set_use_full_path_lns(from._internal_use_full_path_lns());
1405 if (from._internal_use_tsp_lns() != 0) {
1406 _internal_set_use_tsp_lns(from._internal_use_tsp_lns());
1408 if (from._internal_use_inactive_lns() != 0) {
1409 _internal_set_use_inactive_lns(from._internal_use_inactive_lns());
1411 if (from._internal_use_node_pair_swap_active() != 0) {
1412 _internal_set_use_node_pair_swap_active(from._internal_use_node_pair_swap_active());
1414 if (from._internal_use_relocate_and_make_active() != 0) {
1415 _internal_set_use_relocate_and_make_active(from._internal_use_relocate_and_make_active());
1417 if (from._internal_use_exchange_pair() != 0) {
1418 _internal_set_use_exchange_pair(from._internal_use_exchange_pair());
1420 if (from._internal_use_relocate_expensive_chain() != 0) {
1421 _internal_set_use_relocate_expensive_chain(from._internal_use_relocate_expensive_chain());
1423 if (from._internal_use_light_relocate_pair() != 0) {
1424 _internal_set_use_light_relocate_pair(from._internal_use_light_relocate_pair());
1426 if (from._internal_use_relocate_subtrip() != 0) {
1427 _internal_set_use_relocate_subtrip(from._internal_use_relocate_subtrip());
1429 if (from._internal_use_exchange_subtrip() != 0) {
1430 _internal_set_use_exchange_subtrip(from._internal_use_exchange_subtrip());
1432 if (from._internal_use_global_cheapest_insertion_path_lns() != 0) {
1433 _internal_set_use_global_cheapest_insertion_path_lns(from._internal_use_global_cheapest_insertion_path_lns());
1435 if (from._internal_use_local_cheapest_insertion_path_lns() != 0) {
1436 _internal_set_use_local_cheapest_insertion_path_lns(from._internal_use_local_cheapest_insertion_path_lns());
1438 if (from._internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1439 _internal_set_use_global_cheapest_insertion_expensive_chain_lns(from._internal_use_global_cheapest_insertion_expensive_chain_lns());
1441 if (from._internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1442 _internal_set_use_local_cheapest_insertion_expensive_chain_lns(from._internal_use_local_cheapest_insertion_expensive_chain_lns());
1444 if (from._internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1445 _internal_set_use_global_cheapest_insertion_close_nodes_lns(from._internal_use_global_cheapest_insertion_close_nodes_lns());
1447 if (from._internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1448 _internal_set_use_local_cheapest_insertion_close_nodes_lns(from._internal_use_local_cheapest_insertion_close_nodes_lns());
1450 if (from._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1451 _internal_set_use_relocate_path_global_cheapest_insertion_insert_unperformed(from._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed());
1453 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1458 if (&from ==
this)
return;
1469 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1470 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1472 +
sizeof(RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_relocate_path_global_cheapest_insertion_insert_unperformed_)
1474 reinterpret_cast<char*
>(&use_relocate_),
1475 reinterpret_cast<char*
>(&other->use_relocate_));
1479 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1491 bool is_message_owned)
1492 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
1494 if (!is_message_owned) {
1495 RegisterArenaDtor(arena);
1500 : ::PROTOBUF_NAMESPACE_ID::Message() {
1501 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1502 ::memcpy(&improvement_rate_solutions_distance_, &from.improvement_rate_solutions_distance_,
1503 static_cast<size_t>(
reinterpret_cast<char*
>(&improvement_rate_coefficient_) -
1504 reinterpret_cast<char*
>(&improvement_rate_solutions_distance_)) +
sizeof(improvement_rate_coefficient_));
1508inline void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedCtor() {
1509::memset(
reinterpret_cast<char*
>(
this) +
static_cast<size_t>(
1510 reinterpret_cast<char*
>(&improvement_rate_solutions_distance_) -
reinterpret_cast<char*
>(
this)),
1511 0,
static_cast<size_t>(
reinterpret_cast<char*
>(&improvement_rate_coefficient_) -
1512 reinterpret_cast<char*
>(&improvement_rate_solutions_distance_)) +
sizeof(improvement_rate_coefficient_));
1517 if (GetArenaForAllocation() !=
nullptr)
return;
1519 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1522inline void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedDtor() {
1523 GOOGLE_DCHECK(GetArenaForAllocation() ==
nullptr);
1526void RoutingSearchParameters_ImprovementSearchLimitParameters::ArenaDtor(
void*
object) {
1530void RoutingSearchParameters_ImprovementSearchLimitParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1532void RoutingSearchParameters_ImprovementSearchLimitParameters::SetCachedSize(
int size)
const {
1533 _cached_size_.Set(size);
1538 uint32_t cached_has_bits = 0;
1540 (void) cached_has_bits;
1542 ::memset(&improvement_rate_solutions_distance_, 0,
static_cast<size_t>(
1543 reinterpret_cast<char*
>(&improvement_rate_coefficient_) -
1544 reinterpret_cast<char*
>(&improvement_rate_solutions_distance_)) +
sizeof(improvement_rate_coefficient_));
1545 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1549#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1550 while (!ctx->Done(&ptr)) {
1552 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1556 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 49)) {
1557 improvement_rate_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1558 ptr +=
sizeof(double);
1560 goto handle_unusual;
1564 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 56)) {
1565 improvement_rate_solutions_distance_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
1568 goto handle_unusual;
1571 goto handle_unusual;
1574 if ((tag == 0) || ((tag & 7) == 4)) {
1576 ctx->SetLastTag(tag);
1579 ptr = UnknownFieldParse(
1581 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1583 CHK_(ptr !=
nullptr);
1594 uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream)
const {
1596 uint32_t cached_has_bits = 0;
1597 (void) cached_has_bits;
1600 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
1601 double tmp_improvement_rate_coefficient = this->_internal_improvement_rate_coefficient();
1602 uint64_t raw_improvement_rate_coefficient;
1603 memcpy(&raw_improvement_rate_coefficient, &tmp_improvement_rate_coefficient,
sizeof(tmp_improvement_rate_coefficient));
1604 if (raw_improvement_rate_coefficient != 0) {
1605 target = stream->EnsureSpace(target);
1606 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(38, this->_internal_improvement_rate_coefficient(), target);
1610 if (this->_internal_improvement_rate_solutions_distance() != 0) {
1611 target = stream->EnsureSpace(target);
1612 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(39, this->_internal_improvement_rate_solutions_distance(), target);
1615 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1616 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1617 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1625 size_t total_size = 0;
1627 uint32_t cached_has_bits = 0;
1629 (void) cached_has_bits;
1632 if (this->_internal_improvement_rate_solutions_distance() != 0) {
1634 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1635 this->_internal_improvement_rate_solutions_distance());
1639 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
1640 double tmp_improvement_rate_coefficient = this->_internal_improvement_rate_coefficient();
1641 uint64_t raw_improvement_rate_coefficient;
1642 memcpy(&raw_improvement_rate_coefficient, &tmp_improvement_rate_coefficient,
sizeof(tmp_improvement_rate_coefficient));
1643 if (raw_improvement_rate_coefficient != 0) {
1644 total_size += 2 + 8;
1647 return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
1651 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1652 RoutingSearchParameters_ImprovementSearchLimitParameters::MergeImpl
1656void RoutingSearchParameters_ImprovementSearchLimitParameters::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
1657 const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1665 GOOGLE_DCHECK_NE(&from,
this);
1666 uint32_t cached_has_bits = 0;
1667 (void) cached_has_bits;
1669 if (from._internal_improvement_rate_solutions_distance() != 0) {
1670 _internal_set_improvement_rate_solutions_distance(from._internal_improvement_rate_solutions_distance());
1672 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
1673 double tmp_improvement_rate_coefficient = from._internal_improvement_rate_coefficient();
1674 uint64_t raw_improvement_rate_coefficient;
1675 memcpy(&raw_improvement_rate_coefficient, &tmp_improvement_rate_coefficient,
sizeof(tmp_improvement_rate_coefficient));
1676 if (raw_improvement_rate_coefficient != 0) {
1677 _internal_set_improvement_rate_coefficient(from._internal_improvement_rate_coefficient());
1679 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1684 if (&from ==
this)
return;
1695 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1696 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1698 +
sizeof(RoutingSearchParameters_ImprovementSearchLimitParameters::improvement_rate_coefficient_)
1700 reinterpret_cast<char*
>(&improvement_rate_solutions_distance_),
1701 reinterpret_cast<char*
>(&other->improvement_rate_solutions_distance_));
1705 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1721const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators&
1723 return *msg->local_search_operators_;
1725const ::operations_research::sat::SatParameters&
1727 return *msg->sat_parameters_;
1729const ::PROTOBUF_NAMESPACE_ID::Duration&
1731 return *msg->time_limit_;
1733const ::PROTOBUF_NAMESPACE_ID::Duration&
1735 return *msg->lns_time_limit_;
1737const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters&
1739 return *msg->improvement_limit_parameters_;
1742 if (GetArenaForAllocation() ==
nullptr && sat_parameters_ !=
nullptr) {
1743 delete sat_parameters_;
1745 sat_parameters_ =
nullptr;
1748 if (GetArenaForAllocation() ==
nullptr && time_limit_ !=
nullptr) {
1751 time_limit_ =
nullptr;
1754 if (GetArenaForAllocation() ==
nullptr && lns_time_limit_ !=
nullptr) {
1755 delete lns_time_limit_;
1757 lns_time_limit_ =
nullptr;
1760 bool is_message_owned)
1761 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
1763 if (!is_message_owned) {
1764 RegisterArenaDtor(arena);
1769 : ::PROTOBUF_NAMESPACE_ID::Message() {
1770 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1771 log_tag_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1772 #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
1773 log_tag_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
"", GetArenaForAllocation());
1775 if (!from._internal_log_tag().empty()) {
1776 log_tag_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_log_tag(),
1777 GetArenaForAllocation());
1779 if (from._internal_has_local_search_operators()) {
1780 local_search_operators_ = new ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators(*from.local_search_operators_);
1782 local_search_operators_ =
nullptr;
1784 if (from._internal_has_time_limit()) {
1785 time_limit_ = new ::PROTOBUF_NAMESPACE_ID::Duration(*from.time_limit_);
1787 time_limit_ =
nullptr;
1789 if (from._internal_has_lns_time_limit()) {
1790 lns_time_limit_ = new ::PROTOBUF_NAMESPACE_ID::Duration(*from.lns_time_limit_);
1792 lns_time_limit_ =
nullptr;
1794 if (from._internal_has_improvement_limit_parameters()) {
1795 improvement_limit_parameters_ = new ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters(*from.improvement_limit_parameters_);
1797 improvement_limit_parameters_ =
nullptr;
1799 if (from._internal_has_sat_parameters()) {
1800 sat_parameters_ = new ::operations_research::sat::SatParameters(*from.sat_parameters_);
1802 sat_parameters_ =
nullptr;
1804 ::memcpy(&first_solution_strategy_, &from.first_solution_strategy_,
1805 static_cast<size_t>(
reinterpret_cast<char*
>(&use_generalized_cp_sat_) -
1806 reinterpret_cast<char*
>(&first_solution_strategy_)) +
sizeof(use_generalized_cp_sat_));
1810inline void RoutingSearchParameters::SharedCtor() {
1811log_tag_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1812#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
1813 log_tag_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
"", GetArenaForAllocation());
1815::memset(
reinterpret_cast<char*
>(
this) +
static_cast<size_t>(
1816 reinterpret_cast<char*
>(&local_search_operators_) -
reinterpret_cast<char*
>(
this)),
1817 0,
static_cast<size_t>(
reinterpret_cast<char*
>(&use_generalized_cp_sat_) -
1818 reinterpret_cast<char*
>(&local_search_operators_)) +
sizeof(use_generalized_cp_sat_));
1823 if (GetArenaForAllocation() !=
nullptr)
return;
1825 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1828inline void RoutingSearchParameters::SharedDtor() {
1829 GOOGLE_DCHECK(GetArenaForAllocation() ==
nullptr);
1830 log_tag_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1838void RoutingSearchParameters::ArenaDtor(
void*
object) {
1842void RoutingSearchParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1844void RoutingSearchParameters::SetCachedSize(
int size)
const {
1845 _cached_size_.Set(size);
1850 uint32_t cached_has_bits = 0;
1852 (void) cached_has_bits;
1854 log_tag_.ClearToEmpty();
1855 if (GetArenaForAllocation() ==
nullptr && local_search_operators_ !=
nullptr) {
1856 delete local_search_operators_;
1858 local_search_operators_ =
nullptr;
1859 if (GetArenaForAllocation() ==
nullptr && time_limit_ !=
nullptr) {
1862 time_limit_ =
nullptr;
1863 if (GetArenaForAllocation() ==
nullptr && lns_time_limit_ !=
nullptr) {
1864 delete lns_time_limit_;
1866 lns_time_limit_ =
nullptr;
1867 if (GetArenaForAllocation() ==
nullptr && improvement_limit_parameters_ !=
nullptr) {
1868 delete improvement_limit_parameters_;
1870 improvement_limit_parameters_ =
nullptr;
1871 if (GetArenaForAllocation() ==
nullptr && sat_parameters_ !=
nullptr) {
1872 delete sat_parameters_;
1874 sat_parameters_ =
nullptr;
1875 ::memset(&first_solution_strategy_, 0,
static_cast<size_t>(
1876 reinterpret_cast<char*
>(&use_generalized_cp_sat_) -
1877 reinterpret_cast<char*
>(&first_solution_strategy_)) +
sizeof(use_generalized_cp_sat_));
1878 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1882#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1883 while (!ctx->Done(&ptr)) {
1885 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1889 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 8)) {
1890 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1894 goto handle_unusual;
1898 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 16)) {
1899 use_unfiltered_first_solution_strategy_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1902 goto handle_unusual;
1906 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 26)) {
1907 ptr = ctx->ParseMessage(_internal_mutable_local_search_operators(), ptr);
1910 goto handle_unusual;
1914 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 32)) {
1915 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1919 goto handle_unusual;
1923 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 41)) {
1924 guided_local_search_lambda_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1925 ptr +=
sizeof(double);
1927 goto handle_unusual;
1931 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 48)) {
1932 use_depth_first_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1935 goto handle_unusual;
1939 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 57)) {
1940 optimization_step_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1941 ptr +=
sizeof(double);
1943 goto handle_unusual;
1947 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 64)) {
1948 solution_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1951 goto handle_unusual;
1955 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 74)) {
1956 ptr = ctx->ParseMessage(_internal_mutable_time_limit(), ptr);
1959 goto handle_unusual;
1963 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 82)) {
1964 ptr = ctx->ParseMessage(_internal_mutable_lns_time_limit(), ptr);
1967 goto handle_unusual;
1971 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 88)) {
1972 use_full_propagation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1975 goto handle_unusual;
1979 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 104)) {
1980 log_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1983 goto handle_unusual;
1987 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 113)) {
1988 savings_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1989 ptr +=
sizeof(double);
1991 goto handle_unusual;
1995 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 120)) {
1996 savings_add_reverse_arcs_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1999 goto handle_unusual;
2003 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 129)) {
2004 cheapest_insertion_farthest_seeds_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2005 ptr +=
sizeof(double);
2007 goto handle_unusual;
2011 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 136)) {
2012 number_of_solutions_to_collect_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2015 goto handle_unusual;
2019 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 145)) {
2020 savings_arc_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2021 ptr +=
sizeof(double);
2023 goto handle_unusual;
2027 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 152)) {
2028 savings_parallel_routes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2031 goto handle_unusual;
2035 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 160)) {
2036 relocate_expensive_chain_num_arcs_to_consider_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2039 goto handle_unusual;
2043 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 169)) {
2044 cheapest_insertion_first_solution_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2045 ptr +=
sizeof(double);
2047 goto handle_unusual;
2051 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 177)) {
2052 log_cost_scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2053 ptr +=
sizeof(double);
2055 goto handle_unusual;
2059 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 185)) {
2060 savings_max_memory_usage_bytes_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2061 ptr +=
sizeof(double);
2063 goto handle_unusual;
2067 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 216)) {
2068 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2072 goto handle_unusual;
2076 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 224)) {
2077 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2081 goto handle_unusual;
2085 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 233)) {
2086 log_cost_offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2087 ptr +=
sizeof(double);
2089 goto handle_unusual;
2093 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 240)) {
2094 christofides_use_minimum_matching_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2097 goto handle_unusual;
2101 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 249)) {
2102 cheapest_insertion_ls_operator_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2103 ptr +=
sizeof(double);
2105 goto handle_unusual;
2109 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 0)) {
2110 heuristic_expensive_chain_lns_num_arcs_to_consider_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2113 goto handle_unusual;
2117 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 8)) {
2118 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2122 goto handle_unusual;
2126 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 16)) {
2127 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2131 goto handle_unusual;
2135 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 24)) {
2136 heuristic_close_nodes_lns_num_nodes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2139 goto handle_unusual;
2143 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 34)) {
2144 auto str = _internal_mutable_log_tag();
2145 ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
2146 CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str,
"operations_research.RoutingSearchParameters.log_tag"));
2149 goto handle_unusual;
2153 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 42)) {
2154 ptr = ctx->ParseMessage(_internal_mutable_improvement_limit_parameters(), ptr);
2157 goto handle_unusual;
2161 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 64)) {
2162 cheapest_insertion_add_unperformed_entries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2165 goto handle_unusual;
2169 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 72)) {
2170 use_multi_armed_bandit_concatenate_operators_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2173 goto handle_unusual;
2177 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 81)) {
2178 multi_armed_bandit_compound_operator_memory_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2179 ptr +=
sizeof(double);
2181 goto handle_unusual;
2185 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 89)) {
2186 multi_armed_bandit_compound_operator_exploration_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2187 ptr +=
sizeof(double);
2189 goto handle_unusual;
2193 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 96)) {
2194 cheapest_insertion_first_solution_min_neighbors_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2197 goto handle_unusual;
2201 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 104)) {
2202 cheapest_insertion_ls_operator_min_neighbors_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2205 goto handle_unusual;
2209 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 112)) {
2210 cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2213 goto handle_unusual;
2217 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 120)) {
2218 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2222 goto handle_unusual;
2226 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 130)) {
2227 ptr = ctx->ParseMessage(_internal_mutable_sat_parameters(), ptr);
2230 goto handle_unusual;
2233 goto handle_unusual;
2236 if ((tag == 0) || ((tag & 7) == 4)) {
2238 ctx->SetLastTag(tag);
2241 ptr = UnknownFieldParse(
2243 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2245 CHK_(ptr !=
nullptr);
2256 uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream)
const {
2258 uint32_t cached_has_bits = 0;
2259 (void) cached_has_bits;
2262 if (this->_internal_first_solution_strategy() != 0) {
2263 target = stream->EnsureSpace(target);
2264 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2265 1, this->_internal_first_solution_strategy(), target);
2269 if (this->_internal_use_unfiltered_first_solution_strategy() != 0) {
2270 target = stream->EnsureSpace(target);
2271 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_use_unfiltered_first_solution_strategy(), target);
2275 if (this->_internal_has_local_search_operators()) {
2276 target = stream->EnsureSpace(target);
2277 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2278 InternalWriteMessage(
2283 if (this->_internal_local_search_metaheuristic() != 0) {
2284 target = stream->EnsureSpace(target);
2285 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2286 4, this->_internal_local_search_metaheuristic(), target);
2290 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2291 double tmp_guided_local_search_lambda_coefficient = this->_internal_guided_local_search_lambda_coefficient();
2292 uint64_t raw_guided_local_search_lambda_coefficient;
2293 memcpy(&raw_guided_local_search_lambda_coefficient, &tmp_guided_local_search_lambda_coefficient,
sizeof(tmp_guided_local_search_lambda_coefficient));
2294 if (raw_guided_local_search_lambda_coefficient != 0) {
2295 target = stream->EnsureSpace(target);
2296 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(5, this->_internal_guided_local_search_lambda_coefficient(), target);
2300 if (this->_internal_use_depth_first_search() != 0) {
2301 target = stream->EnsureSpace(target);
2302 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_use_depth_first_search(), target);
2306 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2307 double tmp_optimization_step = this->_internal_optimization_step();
2308 uint64_t raw_optimization_step;
2309 memcpy(&raw_optimization_step, &tmp_optimization_step,
sizeof(tmp_optimization_step));
2310 if (raw_optimization_step != 0) {
2311 target = stream->EnsureSpace(target);
2312 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(7, this->_internal_optimization_step(), target);
2316 if (this->_internal_solution_limit() != 0) {
2317 target = stream->EnsureSpace(target);
2318 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(8, this->_internal_solution_limit(), target);
2322 if (this->_internal_has_time_limit()) {
2323 target = stream->EnsureSpace(target);
2324 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2325 InternalWriteMessage(
2330 if (this->_internal_has_lns_time_limit()) {
2331 target = stream->EnsureSpace(target);
2332 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2333 InternalWriteMessage(
2338 if (this->_internal_use_full_propagation() != 0) {
2339 target = stream->EnsureSpace(target);
2340 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(11, this->_internal_use_full_propagation(), target);
2344 if (this->_internal_log_search() != 0) {
2345 target = stream->EnsureSpace(target);
2346 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(13, this->_internal_log_search(), target);
2350 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2351 double tmp_savings_neighbors_ratio = this->_internal_savings_neighbors_ratio();
2352 uint64_t raw_savings_neighbors_ratio;
2353 memcpy(&raw_savings_neighbors_ratio, &tmp_savings_neighbors_ratio,
sizeof(tmp_savings_neighbors_ratio));
2354 if (raw_savings_neighbors_ratio != 0) {
2355 target = stream->EnsureSpace(target);
2356 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(14, this->_internal_savings_neighbors_ratio(), target);
2360 if (this->_internal_savings_add_reverse_arcs() != 0) {
2361 target = stream->EnsureSpace(target);
2362 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_savings_add_reverse_arcs(), target);
2366 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2367 double tmp_cheapest_insertion_farthest_seeds_ratio = this->_internal_cheapest_insertion_farthest_seeds_ratio();
2368 uint64_t raw_cheapest_insertion_farthest_seeds_ratio;
2369 memcpy(&raw_cheapest_insertion_farthest_seeds_ratio, &tmp_cheapest_insertion_farthest_seeds_ratio,
sizeof(tmp_cheapest_insertion_farthest_seeds_ratio));
2370 if (raw_cheapest_insertion_farthest_seeds_ratio != 0) {
2371 target = stream->EnsureSpace(target);
2372 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_cheapest_insertion_farthest_seeds_ratio(), target);
2376 if (this->_internal_number_of_solutions_to_collect() != 0) {
2377 target = stream->EnsureSpace(target);
2378 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(17, this->_internal_number_of_solutions_to_collect(), target);
2382 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2383 double tmp_savings_arc_coefficient = this->_internal_savings_arc_coefficient();
2384 uint64_t raw_savings_arc_coefficient;
2385 memcpy(&raw_savings_arc_coefficient, &tmp_savings_arc_coefficient,
sizeof(tmp_savings_arc_coefficient));
2386 if (raw_savings_arc_coefficient != 0) {
2387 target = stream->EnsureSpace(target);
2388 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(18, this->_internal_savings_arc_coefficient(), target);
2392 if (this->_internal_savings_parallel_routes() != 0) {
2393 target = stream->EnsureSpace(target);
2394 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(19, this->_internal_savings_parallel_routes(), target);
2398 if (this->_internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
2399 target = stream->EnsureSpace(target);
2400 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(20, this->_internal_relocate_expensive_chain_num_arcs_to_consider(), target);
2404 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2405 double tmp_cheapest_insertion_first_solution_neighbors_ratio = this->_internal_cheapest_insertion_first_solution_neighbors_ratio();
2406 uint64_t raw_cheapest_insertion_first_solution_neighbors_ratio;
2407 memcpy(&raw_cheapest_insertion_first_solution_neighbors_ratio, &tmp_cheapest_insertion_first_solution_neighbors_ratio,
sizeof(tmp_cheapest_insertion_first_solution_neighbors_ratio));
2408 if (raw_cheapest_insertion_first_solution_neighbors_ratio != 0) {
2409 target = stream->EnsureSpace(target);
2410 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(21, this->_internal_cheapest_insertion_first_solution_neighbors_ratio(), target);
2414 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2415 double tmp_log_cost_scaling_factor = this->_internal_log_cost_scaling_factor();
2416 uint64_t raw_log_cost_scaling_factor;
2417 memcpy(&raw_log_cost_scaling_factor, &tmp_log_cost_scaling_factor,
sizeof(tmp_log_cost_scaling_factor));
2418 if (raw_log_cost_scaling_factor != 0) {
2419 target = stream->EnsureSpace(target);
2420 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_log_cost_scaling_factor(), target);
2424 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2425 double tmp_savings_max_memory_usage_bytes = this->_internal_savings_max_memory_usage_bytes();
2426 uint64_t raw_savings_max_memory_usage_bytes;
2427 memcpy(&raw_savings_max_memory_usage_bytes, &tmp_savings_max_memory_usage_bytes,
sizeof(tmp_savings_max_memory_usage_bytes));
2428 if (raw_savings_max_memory_usage_bytes != 0) {
2429 target = stream->EnsureSpace(target);
2430 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(23, this->_internal_savings_max_memory_usage_bytes(), target);
2434 if (this->_internal_use_cp_sat() != 0) {
2435 target = stream->EnsureSpace(target);
2436 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2437 27, this->_internal_use_cp_sat(), target);
2441 if (this->_internal_use_cp() != 0) {
2442 target = stream->EnsureSpace(target);
2443 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2444 28, this->_internal_use_cp(), target);
2448 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2449 double tmp_log_cost_offset = this->_internal_log_cost_offset();
2450 uint64_t raw_log_cost_offset;
2451 memcpy(&raw_log_cost_offset, &tmp_log_cost_offset,
sizeof(tmp_log_cost_offset));
2452 if (raw_log_cost_offset != 0) {
2453 target = stream->EnsureSpace(target);
2454 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(29, this->_internal_log_cost_offset(), target);
2458 if (this->_internal_christofides_use_minimum_matching() != 0) {
2459 target = stream->EnsureSpace(target);
2460 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(30, this->_internal_christofides_use_minimum_matching(), target);
2464 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2465 double tmp_cheapest_insertion_ls_operator_neighbors_ratio = this->_internal_cheapest_insertion_ls_operator_neighbors_ratio();
2466 uint64_t raw_cheapest_insertion_ls_operator_neighbors_ratio;
2467 memcpy(&raw_cheapest_insertion_ls_operator_neighbors_ratio, &tmp_cheapest_insertion_ls_operator_neighbors_ratio,
sizeof(tmp_cheapest_insertion_ls_operator_neighbors_ratio));
2468 if (raw_cheapest_insertion_ls_operator_neighbors_ratio != 0) {
2469 target = stream->EnsureSpace(target);
2470 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(31, this->_internal_cheapest_insertion_ls_operator_neighbors_ratio(), target);
2474 if (this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2475 target = stream->EnsureSpace(target);
2476 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(32, this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider(), target);
2480 if (this->_internal_continuous_scheduling_solver() != 0) {
2481 target = stream->EnsureSpace(target);
2482 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2483 33, this->_internal_continuous_scheduling_solver(), target);
2487 if (this->_internal_mixed_integer_scheduling_solver() != 0) {
2488 target = stream->EnsureSpace(target);
2489 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2490 34, this->_internal_mixed_integer_scheduling_solver(), target);
2494 if (this->_internal_heuristic_close_nodes_lns_num_nodes() != 0) {
2495 target = stream->EnsureSpace(target);
2496 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(35, this->_internal_heuristic_close_nodes_lns_num_nodes(), target);
2500 if (!this->_internal_log_tag().empty()) {
2501 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
2502 this->_internal_log_tag().data(),
static_cast<int>(this->_internal_log_tag().length()),
2503 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
2504 "operations_research.RoutingSearchParameters.log_tag");
2505 target = stream->WriteStringMaybeAliased(
2506 36, this->_internal_log_tag(), target);
2510 if (this->_internal_has_improvement_limit_parameters()) {
2511 target = stream->EnsureSpace(target);
2512 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2513 InternalWriteMessage(
2518 if (this->_internal_cheapest_insertion_add_unperformed_entries() != 0) {
2519 target = stream->EnsureSpace(target);
2520 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(40, this->_internal_cheapest_insertion_add_unperformed_entries(), target);
2524 if (this->_internal_use_multi_armed_bandit_concatenate_operators() != 0) {
2525 target = stream->EnsureSpace(target);
2526 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(41, this->_internal_use_multi_armed_bandit_concatenate_operators(), target);
2530 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2531 double tmp_multi_armed_bandit_compound_operator_memory_coefficient = this->_internal_multi_armed_bandit_compound_operator_memory_coefficient();
2532 uint64_t raw_multi_armed_bandit_compound_operator_memory_coefficient;
2533 memcpy(&raw_multi_armed_bandit_compound_operator_memory_coefficient, &tmp_multi_armed_bandit_compound_operator_memory_coefficient,
sizeof(tmp_multi_armed_bandit_compound_operator_memory_coefficient));
2534 if (raw_multi_armed_bandit_compound_operator_memory_coefficient != 0) {
2535 target = stream->EnsureSpace(target);
2536 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(42, this->_internal_multi_armed_bandit_compound_operator_memory_coefficient(), target);
2540 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2541 double tmp_multi_armed_bandit_compound_operator_exploration_coefficient = this->_internal_multi_armed_bandit_compound_operator_exploration_coefficient();
2542 uint64_t raw_multi_armed_bandit_compound_operator_exploration_coefficient;
2543 memcpy(&raw_multi_armed_bandit_compound_operator_exploration_coefficient, &tmp_multi_armed_bandit_compound_operator_exploration_coefficient,
sizeof(tmp_multi_armed_bandit_compound_operator_exploration_coefficient));
2544 if (raw_multi_armed_bandit_compound_operator_exploration_coefficient != 0) {
2545 target = stream->EnsureSpace(target);
2546 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(43, this->_internal_multi_armed_bandit_compound_operator_exploration_coefficient(), target);
2550 if (this->_internal_cheapest_insertion_first_solution_min_neighbors() != 0) {
2551 target = stream->EnsureSpace(target);
2552 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(44, this->_internal_cheapest_insertion_first_solution_min_neighbors(), target);
2556 if (this->_internal_cheapest_insertion_ls_operator_min_neighbors() != 0) {
2557 target = stream->EnsureSpace(target);
2558 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(45, this->_internal_cheapest_insertion_ls_operator_min_neighbors(), target);
2562 if (this->_internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() != 0) {
2563 target = stream->EnsureSpace(target);
2564 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(46, this->_internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(), target);
2568 if (this->_internal_use_generalized_cp_sat() != 0) {
2569 target = stream->EnsureSpace(target);
2570 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2571 47, this->_internal_use_generalized_cp_sat(), target);
2575 if (this->_internal_has_sat_parameters()) {
2576 target = stream->EnsureSpace(target);
2577 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2578 InternalWriteMessage(
2582 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2583 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2584 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2592 size_t total_size = 0;
2594 uint32_t cached_has_bits = 0;
2596 (void) cached_has_bits;
2599 if (!this->_internal_log_tag().empty()) {
2601 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
2602 this->_internal_log_tag());
2606 if (this->_internal_has_local_search_operators()) {
2608 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2609 *local_search_operators_);
2613 if (this->_internal_has_time_limit()) {
2615 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2620 if (this->_internal_has_lns_time_limit()) {
2622 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2627 if (this->_internal_has_improvement_limit_parameters()) {
2629 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2630 *improvement_limit_parameters_);
2634 if (this->_internal_has_sat_parameters()) {
2636 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2641 if (this->_internal_first_solution_strategy() != 0) {
2643 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_first_solution_strategy());
2647 if (this->_internal_local_search_metaheuristic() != 0) {
2649 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_local_search_metaheuristic());
2653 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2654 double tmp_guided_local_search_lambda_coefficient = this->_internal_guided_local_search_lambda_coefficient();
2655 uint64_t raw_guided_local_search_lambda_coefficient;
2656 memcpy(&raw_guided_local_search_lambda_coefficient, &tmp_guided_local_search_lambda_coefficient,
sizeof(tmp_guided_local_search_lambda_coefficient));
2657 if (raw_guided_local_search_lambda_coefficient != 0) {
2658 total_size += 1 + 8;
2662 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2663 double tmp_optimization_step = this->_internal_optimization_step();
2664 uint64_t raw_optimization_step;
2665 memcpy(&raw_optimization_step, &tmp_optimization_step,
sizeof(tmp_optimization_step));
2666 if (raw_optimization_step != 0) {
2667 total_size += 1 + 8;
2671 if (this->_internal_solution_limit() != 0) {
2672 total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_solution_limit());
2676 if (this->_internal_use_full_propagation() != 0) {
2677 total_size += 1 + 1;
2681 if (this->_internal_log_search() != 0) {
2682 total_size += 1 + 1;
2686 if (this->_internal_number_of_solutions_to_collect() != 0) {
2688 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2689 this->_internal_number_of_solutions_to_collect());
2693 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2694 double tmp_savings_neighbors_ratio = this->_internal_savings_neighbors_ratio();
2695 uint64_t raw_savings_neighbors_ratio;
2696 memcpy(&raw_savings_neighbors_ratio, &tmp_savings_neighbors_ratio,
sizeof(tmp_savings_neighbors_ratio));
2697 if (raw_savings_neighbors_ratio != 0) {
2698 total_size += 1 + 8;
2702 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2703 double tmp_cheapest_insertion_farthest_seeds_ratio = this->_internal_cheapest_insertion_farthest_seeds_ratio();
2704 uint64_t raw_cheapest_insertion_farthest_seeds_ratio;
2705 memcpy(&raw_cheapest_insertion_farthest_seeds_ratio, &tmp_cheapest_insertion_farthest_seeds_ratio,
sizeof(tmp_cheapest_insertion_farthest_seeds_ratio));
2706 if (raw_cheapest_insertion_farthest_seeds_ratio != 0) {
2707 total_size += 2 + 8;
2711 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2712 double tmp_savings_arc_coefficient = this->_internal_savings_arc_coefficient();
2713 uint64_t raw_savings_arc_coefficient;
2714 memcpy(&raw_savings_arc_coefficient, &tmp_savings_arc_coefficient,
sizeof(tmp_savings_arc_coefficient));
2715 if (raw_savings_arc_coefficient != 0) {
2716 total_size += 2 + 8;
2720 if (this->_internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
2722 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2723 this->_internal_relocate_expensive_chain_num_arcs_to_consider());
2727 if (this->_internal_use_unfiltered_first_solution_strategy() != 0) {
2728 total_size += 1 + 1;
2732 if (this->_internal_savings_add_reverse_arcs() != 0) {
2733 total_size += 1 + 1;
2737 if (this->_internal_savings_parallel_routes() != 0) {
2738 total_size += 2 + 1;
2742 if (this->_internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() != 0) {
2743 total_size += 2 + 1;
2747 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2748 double tmp_cheapest_insertion_first_solution_neighbors_ratio = this->_internal_cheapest_insertion_first_solution_neighbors_ratio();
2749 uint64_t raw_cheapest_insertion_first_solution_neighbors_ratio;
2750 memcpy(&raw_cheapest_insertion_first_solution_neighbors_ratio, &tmp_cheapest_insertion_first_solution_neighbors_ratio,
sizeof(tmp_cheapest_insertion_first_solution_neighbors_ratio));
2751 if (raw_cheapest_insertion_first_solution_neighbors_ratio != 0) {
2752 total_size += 2 + 8;
2756 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2757 double tmp_log_cost_scaling_factor = this->_internal_log_cost_scaling_factor();
2758 uint64_t raw_log_cost_scaling_factor;
2759 memcpy(&raw_log_cost_scaling_factor, &tmp_log_cost_scaling_factor,
sizeof(tmp_log_cost_scaling_factor));
2760 if (raw_log_cost_scaling_factor != 0) {
2761 total_size += 2 + 8;
2765 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2766 double tmp_savings_max_memory_usage_bytes = this->_internal_savings_max_memory_usage_bytes();
2767 uint64_t raw_savings_max_memory_usage_bytes;
2768 memcpy(&raw_savings_max_memory_usage_bytes, &tmp_savings_max_memory_usage_bytes,
sizeof(tmp_savings_max_memory_usage_bytes));
2769 if (raw_savings_max_memory_usage_bytes != 0) {
2770 total_size += 2 + 8;
2774 if (this->_internal_use_cp_sat() != 0) {
2776 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cp_sat());
2780 if (this->_internal_use_cp() != 0) {
2782 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cp());
2786 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2787 double tmp_log_cost_offset = this->_internal_log_cost_offset();
2788 uint64_t raw_log_cost_offset;
2789 memcpy(&raw_log_cost_offset, &tmp_log_cost_offset,
sizeof(tmp_log_cost_offset));
2790 if (raw_log_cost_offset != 0) {
2791 total_size += 2 + 8;
2795 if (this->_internal_cheapest_insertion_add_unperformed_entries() != 0) {
2796 total_size += 2 + 1;
2800 if (this->_internal_christofides_use_minimum_matching() != 0) {
2801 total_size += 2 + 1;
2805 if (this->_internal_use_multi_armed_bandit_concatenate_operators() != 0) {
2806 total_size += 2 + 1;
2810 if (this->_internal_use_depth_first_search() != 0) {
2811 total_size += 1 + 1;
2815 if (this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2817 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2818 this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
2822 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2823 double tmp_cheapest_insertion_ls_operator_neighbors_ratio = this->_internal_cheapest_insertion_ls_operator_neighbors_ratio();
2824 uint64_t raw_cheapest_insertion_ls_operator_neighbors_ratio;
2825 memcpy(&raw_cheapest_insertion_ls_operator_neighbors_ratio, &tmp_cheapest_insertion_ls_operator_neighbors_ratio,
sizeof(tmp_cheapest_insertion_ls_operator_neighbors_ratio));
2826 if (raw_cheapest_insertion_ls_operator_neighbors_ratio != 0) {
2827 total_size += 2 + 8;
2831 if (this->_internal_continuous_scheduling_solver() != 0) {
2833 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_continuous_scheduling_solver());
2837 if (this->_internal_mixed_integer_scheduling_solver() != 0) {
2839 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_mixed_integer_scheduling_solver());
2843 if (this->_internal_heuristic_close_nodes_lns_num_nodes() != 0) {
2845 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2846 this->_internal_heuristic_close_nodes_lns_num_nodes());
2850 if (this->_internal_cheapest_insertion_first_solution_min_neighbors() != 0) {
2852 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2853 this->_internal_cheapest_insertion_first_solution_min_neighbors());
2857 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2858 double tmp_multi_armed_bandit_compound_operator_memory_coefficient = this->_internal_multi_armed_bandit_compound_operator_memory_coefficient();
2859 uint64_t raw_multi_armed_bandit_compound_operator_memory_coefficient;
2860 memcpy(&raw_multi_armed_bandit_compound_operator_memory_coefficient, &tmp_multi_armed_bandit_compound_operator_memory_coefficient,
sizeof(tmp_multi_armed_bandit_compound_operator_memory_coefficient));
2861 if (raw_multi_armed_bandit_compound_operator_memory_coefficient != 0) {
2862 total_size += 2 + 8;
2866 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2867 double tmp_multi_armed_bandit_compound_operator_exploration_coefficient = this->_internal_multi_armed_bandit_compound_operator_exploration_coefficient();
2868 uint64_t raw_multi_armed_bandit_compound_operator_exploration_coefficient;
2869 memcpy(&raw_multi_armed_bandit_compound_operator_exploration_coefficient, &tmp_multi_armed_bandit_compound_operator_exploration_coefficient,
sizeof(tmp_multi_armed_bandit_compound_operator_exploration_coefficient));
2870 if (raw_multi_armed_bandit_compound_operator_exploration_coefficient != 0) {
2871 total_size += 2 + 8;
2875 if (this->_internal_cheapest_insertion_ls_operator_min_neighbors() != 0) {
2877 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2878 this->_internal_cheapest_insertion_ls_operator_min_neighbors());
2882 if (this->_internal_use_generalized_cp_sat() != 0) {
2884 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_generalized_cp_sat());
2887 return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
2891 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
2892 RoutingSearchParameters::MergeImpl
2896void RoutingSearchParameters::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
2897 const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2905 GOOGLE_DCHECK_NE(&from,
this);
2906 uint32_t cached_has_bits = 0;
2907 (void) cached_has_bits;
2909 if (!from._internal_log_tag().empty()) {
2910 _internal_set_log_tag(from._internal_log_tag());
2912 if (from._internal_has_local_search_operators()) {
2913 _internal_mutable_local_search_operators()->::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeFrom(from._internal_local_search_operators());
2915 if (from._internal_has_time_limit()) {
2916 _internal_mutable_time_limit()->::PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_time_limit());
2918 if (from._internal_has_lns_time_limit()) {
2919 _internal_mutable_lns_time_limit()->::PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_lns_time_limit());
2921 if (from._internal_has_improvement_limit_parameters()) {
2922 _internal_mutable_improvement_limit_parameters()->::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters::MergeFrom(from._internal_improvement_limit_parameters());
2924 if (from._internal_has_sat_parameters()) {
2925 _internal_mutable_sat_parameters()->::operations_research::sat::SatParameters::MergeFrom(from._internal_sat_parameters());
2927 if (from._internal_first_solution_strategy() != 0) {
2928 _internal_set_first_solution_strategy(from._internal_first_solution_strategy());
2930 if (from._internal_local_search_metaheuristic() != 0) {
2931 _internal_set_local_search_metaheuristic(from._internal_local_search_metaheuristic());
2933 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2934 double tmp_guided_local_search_lambda_coefficient = from._internal_guided_local_search_lambda_coefficient();
2935 uint64_t raw_guided_local_search_lambda_coefficient;
2936 memcpy(&raw_guided_local_search_lambda_coefficient, &tmp_guided_local_search_lambda_coefficient,
sizeof(tmp_guided_local_search_lambda_coefficient));
2937 if (raw_guided_local_search_lambda_coefficient != 0) {
2938 _internal_set_guided_local_search_lambda_coefficient(from._internal_guided_local_search_lambda_coefficient());
2940 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2941 double tmp_optimization_step = from._internal_optimization_step();
2942 uint64_t raw_optimization_step;
2943 memcpy(&raw_optimization_step, &tmp_optimization_step,
sizeof(tmp_optimization_step));
2944 if (raw_optimization_step != 0) {
2945 _internal_set_optimization_step(from._internal_optimization_step());
2947 if (from._internal_solution_limit() != 0) {
2948 _internal_set_solution_limit(from._internal_solution_limit());
2950 if (from._internal_use_full_propagation() != 0) {
2951 _internal_set_use_full_propagation(from._internal_use_full_propagation());
2953 if (from._internal_log_search() != 0) {
2954 _internal_set_log_search(from._internal_log_search());
2956 if (from._internal_number_of_solutions_to_collect() != 0) {
2957 _internal_set_number_of_solutions_to_collect(from._internal_number_of_solutions_to_collect());
2959 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2960 double tmp_savings_neighbors_ratio = from._internal_savings_neighbors_ratio();
2961 uint64_t raw_savings_neighbors_ratio;
2962 memcpy(&raw_savings_neighbors_ratio, &tmp_savings_neighbors_ratio,
sizeof(tmp_savings_neighbors_ratio));
2963 if (raw_savings_neighbors_ratio != 0) {
2964 _internal_set_savings_neighbors_ratio(from._internal_savings_neighbors_ratio());
2966 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2967 double tmp_cheapest_insertion_farthest_seeds_ratio = from._internal_cheapest_insertion_farthest_seeds_ratio();
2968 uint64_t raw_cheapest_insertion_farthest_seeds_ratio;
2969 memcpy(&raw_cheapest_insertion_farthest_seeds_ratio, &tmp_cheapest_insertion_farthest_seeds_ratio,
sizeof(tmp_cheapest_insertion_farthest_seeds_ratio));
2970 if (raw_cheapest_insertion_farthest_seeds_ratio != 0) {
2971 _internal_set_cheapest_insertion_farthest_seeds_ratio(from._internal_cheapest_insertion_farthest_seeds_ratio());
2973 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2974 double tmp_savings_arc_coefficient = from._internal_savings_arc_coefficient();
2975 uint64_t raw_savings_arc_coefficient;
2976 memcpy(&raw_savings_arc_coefficient, &tmp_savings_arc_coefficient,
sizeof(tmp_savings_arc_coefficient));
2977 if (raw_savings_arc_coefficient != 0) {
2978 _internal_set_savings_arc_coefficient(from._internal_savings_arc_coefficient());
2980 if (from._internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
2981 _internal_set_relocate_expensive_chain_num_arcs_to_consider(from._internal_relocate_expensive_chain_num_arcs_to_consider());
2983 if (from._internal_use_unfiltered_first_solution_strategy() != 0) {
2984 _internal_set_use_unfiltered_first_solution_strategy(from._internal_use_unfiltered_first_solution_strategy());
2986 if (from._internal_savings_add_reverse_arcs() != 0) {
2987 _internal_set_savings_add_reverse_arcs(from._internal_savings_add_reverse_arcs());
2989 if (from._internal_savings_parallel_routes() != 0) {
2990 _internal_set_savings_parallel_routes(from._internal_savings_parallel_routes());
2992 if (from._internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() != 0) {
2993 _internal_set_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(from._internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization());
2995 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
2996 double tmp_cheapest_insertion_first_solution_neighbors_ratio = from._internal_cheapest_insertion_first_solution_neighbors_ratio();
2997 uint64_t raw_cheapest_insertion_first_solution_neighbors_ratio;
2998 memcpy(&raw_cheapest_insertion_first_solution_neighbors_ratio, &tmp_cheapest_insertion_first_solution_neighbors_ratio,
sizeof(tmp_cheapest_insertion_first_solution_neighbors_ratio));
2999 if (raw_cheapest_insertion_first_solution_neighbors_ratio != 0) {
3000 _internal_set_cheapest_insertion_first_solution_neighbors_ratio(from._internal_cheapest_insertion_first_solution_neighbors_ratio());
3002 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
3003 double tmp_log_cost_scaling_factor = from._internal_log_cost_scaling_factor();
3004 uint64_t raw_log_cost_scaling_factor;
3005 memcpy(&raw_log_cost_scaling_factor, &tmp_log_cost_scaling_factor,
sizeof(tmp_log_cost_scaling_factor));
3006 if (raw_log_cost_scaling_factor != 0) {
3007 _internal_set_log_cost_scaling_factor(from._internal_log_cost_scaling_factor());
3009 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
3010 double tmp_savings_max_memory_usage_bytes = from._internal_savings_max_memory_usage_bytes();
3011 uint64_t raw_savings_max_memory_usage_bytes;
3012 memcpy(&raw_savings_max_memory_usage_bytes, &tmp_savings_max_memory_usage_bytes,
sizeof(tmp_savings_max_memory_usage_bytes));
3013 if (raw_savings_max_memory_usage_bytes != 0) {
3014 _internal_set_savings_max_memory_usage_bytes(from._internal_savings_max_memory_usage_bytes());
3016 if (from._internal_use_cp_sat() != 0) {
3017 _internal_set_use_cp_sat(from._internal_use_cp_sat());
3019 if (from._internal_use_cp() != 0) {
3020 _internal_set_use_cp(from._internal_use_cp());
3022 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
3023 double tmp_log_cost_offset = from._internal_log_cost_offset();
3024 uint64_t raw_log_cost_offset;
3025 memcpy(&raw_log_cost_offset, &tmp_log_cost_offset,
sizeof(tmp_log_cost_offset));
3026 if (raw_log_cost_offset != 0) {
3027 _internal_set_log_cost_offset(from._internal_log_cost_offset());
3029 if (from._internal_cheapest_insertion_add_unperformed_entries() != 0) {
3030 _internal_set_cheapest_insertion_add_unperformed_entries(from._internal_cheapest_insertion_add_unperformed_entries());
3032 if (from._internal_christofides_use_minimum_matching() != 0) {
3033 _internal_set_christofides_use_minimum_matching(from._internal_christofides_use_minimum_matching());
3035 if (from._internal_use_multi_armed_bandit_concatenate_operators() != 0) {
3036 _internal_set_use_multi_armed_bandit_concatenate_operators(from._internal_use_multi_armed_bandit_concatenate_operators());
3038 if (from._internal_use_depth_first_search() != 0) {
3039 _internal_set_use_depth_first_search(from._internal_use_depth_first_search());
3041 if (from._internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
3042 _internal_set_heuristic_expensive_chain_lns_num_arcs_to_consider(from._internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
3044 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
3045 double tmp_cheapest_insertion_ls_operator_neighbors_ratio = from._internal_cheapest_insertion_ls_operator_neighbors_ratio();
3046 uint64_t raw_cheapest_insertion_ls_operator_neighbors_ratio;
3047 memcpy(&raw_cheapest_insertion_ls_operator_neighbors_ratio, &tmp_cheapest_insertion_ls_operator_neighbors_ratio,
sizeof(tmp_cheapest_insertion_ls_operator_neighbors_ratio));
3048 if (raw_cheapest_insertion_ls_operator_neighbors_ratio != 0) {
3049 _internal_set_cheapest_insertion_ls_operator_neighbors_ratio(from._internal_cheapest_insertion_ls_operator_neighbors_ratio());
3051 if (from._internal_continuous_scheduling_solver() != 0) {
3052 _internal_set_continuous_scheduling_solver(from._internal_continuous_scheduling_solver());
3054 if (from._internal_mixed_integer_scheduling_solver() != 0) {
3055 _internal_set_mixed_integer_scheduling_solver(from._internal_mixed_integer_scheduling_solver());
3057 if (from._internal_heuristic_close_nodes_lns_num_nodes() != 0) {
3058 _internal_set_heuristic_close_nodes_lns_num_nodes(from._internal_heuristic_close_nodes_lns_num_nodes());
3060 if (from._internal_cheapest_insertion_first_solution_min_neighbors() != 0) {
3061 _internal_set_cheapest_insertion_first_solution_min_neighbors(from._internal_cheapest_insertion_first_solution_min_neighbors());
3063 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
3064 double tmp_multi_armed_bandit_compound_operator_memory_coefficient = from._internal_multi_armed_bandit_compound_operator_memory_coefficient();
3065 uint64_t raw_multi_armed_bandit_compound_operator_memory_coefficient;
3066 memcpy(&raw_multi_armed_bandit_compound_operator_memory_coefficient, &tmp_multi_armed_bandit_compound_operator_memory_coefficient,
sizeof(tmp_multi_armed_bandit_compound_operator_memory_coefficient));
3067 if (raw_multi_armed_bandit_compound_operator_memory_coefficient != 0) {
3068 _internal_set_multi_armed_bandit_compound_operator_memory_coefficient(from._internal_multi_armed_bandit_compound_operator_memory_coefficient());
3070 static_assert(
sizeof(uint64_t) ==
sizeof(
double),
"Code assumes uint64_t and double are the same size.");
3071 double tmp_multi_armed_bandit_compound_operator_exploration_coefficient = from._internal_multi_armed_bandit_compound_operator_exploration_coefficient();
3072 uint64_t raw_multi_armed_bandit_compound_operator_exploration_coefficient;
3073 memcpy(&raw_multi_armed_bandit_compound_operator_exploration_coefficient, &tmp_multi_armed_bandit_compound_operator_exploration_coefficient,
sizeof(tmp_multi_armed_bandit_compound_operator_exploration_coefficient));
3074 if (raw_multi_armed_bandit_compound_operator_exploration_coefficient != 0) {
3075 _internal_set_multi_armed_bandit_compound_operator_exploration_coefficient(from._internal_multi_armed_bandit_compound_operator_exploration_coefficient());
3077 if (from._internal_cheapest_insertion_ls_operator_min_neighbors() != 0) {
3078 _internal_set_cheapest_insertion_ls_operator_min_neighbors(from._internal_cheapest_insertion_ls_operator_min_neighbors());
3080 if (from._internal_use_generalized_cp_sat() != 0) {
3081 _internal_set_use_generalized_cp_sat(from._internal_use_generalized_cp_sat());
3083 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3088 if (&from ==
this)
return;
3099 auto* lhs_arena = GetArenaForAllocation();
3100 auto* rhs_arena = other->GetArenaForAllocation();
3101 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3102 ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
3103 &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
3104 &log_tag_, lhs_arena,
3105 &other->log_tag_, rhs_arena
3107 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3109 +
sizeof(RoutingSearchParameters::use_generalized_cp_sat_)
3111 reinterpret_cast<char*
>(&local_search_operators_),
3112 reinterpret_cast<char*
>(&other->local_search_operators_));
3116 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
3128const ::operations_research::ConstraintSolverParameters&
3130 return *msg->solver_parameters_;
3133 if (GetArenaForAllocation() ==
nullptr && solver_parameters_ !=
nullptr) {
3134 delete solver_parameters_;
3136 solver_parameters_ =
nullptr;
3139 bool is_message_owned)
3140 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
3142 if (!is_message_owned) {
3143 RegisterArenaDtor(arena);
3148 : ::PROTOBUF_NAMESPACE_ID::Message() {
3149 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3150 if (from._internal_has_solver_parameters()) {
3151 solver_parameters_ = new ::operations_research::ConstraintSolverParameters(*from.solver_parameters_);
3153 solver_parameters_ =
nullptr;
3155 ::memcpy(&reduce_vehicle_cost_model_, &from.reduce_vehicle_cost_model_,
3156 static_cast<size_t>(
reinterpret_cast<char*
>(&max_callback_cache_size_) -
3157 reinterpret_cast<char*
>(&reduce_vehicle_cost_model_)) +
sizeof(max_callback_cache_size_));
3161inline void RoutingModelParameters::SharedCtor() {
3162::memset(
reinterpret_cast<char*
>(
this) +
static_cast<size_t>(
3163 reinterpret_cast<char*
>(&solver_parameters_) -
reinterpret_cast<char*
>(
this)),
3164 0,
static_cast<size_t>(
reinterpret_cast<char*
>(&max_callback_cache_size_) -
3165 reinterpret_cast<char*
>(&solver_parameters_)) +
sizeof(max_callback_cache_size_));
3170 if (GetArenaForAllocation() !=
nullptr)
return;
3172 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3175inline void RoutingModelParameters::SharedDtor() {
3176 GOOGLE_DCHECK(GetArenaForAllocation() ==
nullptr);
3180void RoutingModelParameters::ArenaDtor(
void*
object) {
3184void RoutingModelParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3186void RoutingModelParameters::SetCachedSize(
int size)
const {
3187 _cached_size_.Set(size);
3192 uint32_t cached_has_bits = 0;
3194 (void) cached_has_bits;
3196 if (GetArenaForAllocation() ==
nullptr && solver_parameters_ !=
nullptr) {
3197 delete solver_parameters_;
3199 solver_parameters_ =
nullptr;
3200 ::memset(&reduce_vehicle_cost_model_, 0,
static_cast<size_t>(
3201 reinterpret_cast<char*
>(&max_callback_cache_size_) -
3202 reinterpret_cast<char*
>(&reduce_vehicle_cost_model_)) +
sizeof(max_callback_cache_size_));
3203 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3207#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3208 while (!ctx->Done(&ptr)) {
3210 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3214 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 10)) {
3215 ptr = ctx->ParseMessage(_internal_mutable_solver_parameters(), ptr);
3218 goto handle_unusual;
3222 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 16)) {
3223 reduce_vehicle_cost_model_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3226 goto handle_unusual;
3230 if (PROTOBUF_PREDICT_TRUE(
static_cast<uint8_t
>(tag) == 24)) {
3231 max_callback_cache_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
3234 goto handle_unusual;
3237 goto handle_unusual;
3240 if ((tag == 0) || ((tag & 7) == 4)) {
3242 ctx->SetLastTag(tag);
3245 ptr = UnknownFieldParse(
3247 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3249 CHK_(ptr !=
nullptr);
3260 uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream)
const {
3262 uint32_t cached_has_bits = 0;
3263 (void) cached_has_bits;
3266 if (this->_internal_has_solver_parameters()) {
3267 target = stream->EnsureSpace(target);
3268 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3269 InternalWriteMessage(
3274 if (this->_internal_reduce_vehicle_cost_model() != 0) {
3275 target = stream->EnsureSpace(target);
3276 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_reduce_vehicle_cost_model(), target);
3280 if (this->_internal_max_callback_cache_size() != 0) {
3281 target = stream->EnsureSpace(target);
3282 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_max_callback_cache_size(), target);
3285 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3286 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3287 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3295 size_t total_size = 0;
3297 uint32_t cached_has_bits = 0;
3299 (void) cached_has_bits;
3302 if (this->_internal_has_solver_parameters()) {
3304 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3305 *solver_parameters_);
3309 if (this->_internal_reduce_vehicle_cost_model() != 0) {
3310 total_size += 1 + 1;
3314 if (this->_internal_max_callback_cache_size() != 0) {
3315 total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_max_callback_cache_size());
3318 return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
3322 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
3323 RoutingModelParameters::MergeImpl
3327void RoutingModelParameters::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
3328 const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3336 GOOGLE_DCHECK_NE(&from,
this);
3337 uint32_t cached_has_bits = 0;
3338 (void) cached_has_bits;
3340 if (from._internal_has_solver_parameters()) {
3341 _internal_mutable_solver_parameters()->::operations_research::ConstraintSolverParameters::MergeFrom(from._internal_solver_parameters());
3343 if (from._internal_reduce_vehicle_cost_model() != 0) {
3344 _internal_set_reduce_vehicle_cost_model(from._internal_reduce_vehicle_cost_model());
3346 if (from._internal_max_callback_cache_size() != 0) {
3347 _internal_set_max_callback_cache_size(from._internal_max_callback_cache_size());
3349 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3354 if (&from ==
this)
return;
3365 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3366 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3368 +
sizeof(RoutingModelParameters::max_callback_cache_size_)
3370 reinterpret_cast<char*
>(&solver_parameters_),
3371 reinterpret_cast<char*
>(&other->solver_parameters_));
3375 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
3382PROTOBUF_NAMESPACE_OPEN
3384 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators >(arena);
3387 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters >(arena);
3390 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters >(arena);
3393 return Arena::CreateMessageInternal< ::operations_research::RoutingModelParameters >(arena);
3395PROTOBUF_NAMESPACE_CLOSE
3398#include <google/protobuf/port_undef.inc>
static const ::operations_research::ConstraintSolverParameters & solver_parameters(const RoutingModelParameters *msg)
void clear_solver_parameters()
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static const ClassData _class_data_
static const RoutingModelParameters * internal_default_instance()
void CopyFrom(const RoutingModelParameters &from)
~RoutingModelParameters() override
bool IsInitialized() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void MergeFrom(const RoutingModelParameters &from)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
size_t ByteSizeLong() const final
static const ::operations_research::sat::SatParameters & sat_parameters(const RoutingSearchParameters *msg)
static const ::PROTOBUF_NAMESPACE_ID::Duration & lns_time_limit(const RoutingSearchParameters *msg)
static const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators & local_search_operators(const RoutingSearchParameters *msg)
static const ::PROTOBUF_NAMESPACE_ID::Duration & time_limit(const RoutingSearchParameters *msg)
static const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters & improvement_limit_parameters(const RoutingSearchParameters *msg)
~RoutingSearchParameters_ImprovementSearchLimitParameters() override
RoutingSearchParameters_ImprovementSearchLimitParameters()
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const RoutingSearchParameters_ImprovementSearchLimitParameters &from)
static const ClassData _class_data_
bool IsInitialized() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
size_t ByteSizeLong() const final
void MergeFrom(const RoutingSearchParameters_ImprovementSearchLimitParameters &from)
~RoutingSearchParameters_LocalSearchNeighborhoodOperators() override
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static const ClassData _class_data_
RoutingSearchParameters_LocalSearchNeighborhoodOperators()
bool IsInitialized() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void CopyFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void MergeFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
size_t ByteSizeLong() const final
void clear_sat_parameters()
static constexpr SchedulingSolver SchedulingSolver_MIN
static const RoutingSearchParameters * internal_default_instance()
RoutingSearchParameters()
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static constexpr int SchedulingSolver_ARRAYSIZE
static const ClassData _class_data_
~RoutingSearchParameters() override
static constexpr SchedulingSolver GLOP
static constexpr SchedulingSolver UNSET
bool IsInitialized() const final
static constexpr SchedulingSolver SchedulingSolver_MAX
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static constexpr SchedulingSolver CP_SAT
void MergeFrom(const RoutingSearchParameters &from)
void clear_lns_time_limit()
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
size_t ByteSizeLong() const final
void CopyFrom(const RoutingSearchParameters &from)
void swap(IdMap< K, V > &a, IdMap< K, V > &b)
Collection of objects used to extend the Constraint Solver library.
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * RoutingSearchParameters_SchedulingSolver_descriptor()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal _RoutingSearchParameters_ImprovementSearchLimitParameters_default_instance_
FirstSolutionStrategy_Value
bool RoutingSearchParameters_SchedulingSolver_IsValid(int value)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingSearchParametersDefaultTypeInternal _RoutingSearchParameters_default_instance_
RoutingSearchParameters_SchedulingSolver
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingModelParametersDefaultTypeInternal _RoutingModelParameters_default_instance_
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal _RoutingSearchParameters_LocalSearchNeighborhoodOperators_default_instance_
LocalSearchMetaheuristic_Value
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2futil_2foptional_5fboolean_2eproto
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fenums_2eproto
PROTOBUF_NOINLINE::operations_research::RoutingSearchParameters * Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters >(Arena *arena)
PROTOBUF_NOINLINE::operations_research::RoutingModelParameters * Arena::CreateMaybeMessage< ::operations_research::RoutingModelParameters >(Arena *arena)
PROTOBUF_ATTRIBUTE_WEAKconst ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable * descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_getter()
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable *const descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_deps[5]
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
const uint32_t TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[1]
PROTOBUF_NOINLINE::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters * Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[4]
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators * Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_once
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2fsolver_5fparameters_2eproto
constexpr RoutingModelParametersDefaultTypeInternal()
~RoutingModelParametersDefaultTypeInternal()
RoutingModelParameters _instance
constexpr RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal()
RoutingSearchParameters_ImprovementSearchLimitParameters _instance
~RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal()
RoutingSearchParameters_LocalSearchNeighborhoodOperators _instance
~RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal()
constexpr RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal()
RoutingSearchParameters _instance
~RoutingSearchParametersDefaultTypeInternal()
constexpr RoutingSearchParametersDefaultTypeInternal()