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>
24 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RoutingSearchParameters_LocalSearchNeighborhoodOperators>
_instance;
28 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RoutingSearchParameters_ImprovementSearchLimitParameters>
_instance;
32 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RoutingSearchParameters>
_instance;
36 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RoutingModelParameters>
_instance;
40 GOOGLE_PROTOBUF_VERIFY_VERSION;
45 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
54 GOOGLE_PROTOBUF_VERIFY_VERSION;
59 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
70 GOOGLE_PROTOBUF_VERIFY_VERSION;
75 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
83 GOOGLE_PROTOBUF_VERIFY_VERSION;
88 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
197 { 0, -1,
sizeof(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators)},
198 { 38, -1,
sizeof(::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters)},
199 { 45, -1,
sizeof(::operations_research::RoutingSearchParameters)},
200 { 87, -1,
sizeof(::operations_research::RoutingModelParameters)},
210 const char descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[]
PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
211 "\n2ortools/constraint_solver/routing_para"
212 "meters.proto\022\023operations_research\032\036googl"
213 "e/protobuf/duration.proto\032-ortools/const"
214 "raint_solver/routing_enums.proto\0321ortool"
215 "s/constraint_solver/solver_parameters.pr"
216 "oto\032#ortools/util/optional_boolean.proto"
217 "\"\263#\n\027RoutingSearchParameters\022Q\n\027first_so"
218 "lution_strategy\030\001 \001(\01620.operations_resea"
219 "rch.FirstSolutionStrategy.Value\022.\n&use_u"
220 "nfiltered_first_solution_strategy\030\002 \001(\010\022"
221 "\037\n\027savings_neighbors_ratio\030\016 \001(\001\022&\n\036savi"
222 "ngs_max_memory_usage_bytes\030\027 \001(\001\022 \n\030savi"
223 "ngs_add_reverse_arcs\030\017 \001(\010\022\037\n\027savings_ar"
224 "c_coefficient\030\022 \001(\001\022\037\n\027savings_parallel_"
225 "routes\030\023 \001(\010\022/\n\'cheapest_insertion_farth"
226 "est_seeds_ratio\030\020 \001(\001\0229\n1cheapest_insert"
227 "ion_first_solution_neighbors_ratio\030\025 \001(\001"
228 "\0226\n.cheapest_insertion_ls_operator_neigh"
229 "bors_ratio\030\037 \001(\001\0222\n*cheapest_insertion_a"
230 "dd_unperformed_entries\030( \001(\010\022)\n!christof"
231 "ides_use_minimum_matching\030\036 \001(\010\022m\n\026local"
232 "_search_operators\030\003 \001(\0132M.operations_res"
233 "earch.RoutingSearchParameters.LocalSearc"
234 "hNeighborhoodOperators\0224\n,use_multi_arme"
235 "d_bandit_concatenate_operators\030) \001(\010\022\?\n7"
236 "multi_armed_bandit_compound_operator_mem"
237 "ory_coefficient\030* \001(\001\022D\n<multi_armed_ban"
238 "dit_compound_operator_exploration_coeffi"
239 "cient\030+ \001(\001\0225\n-relocate_expensive_chain_"
240 "num_arcs_to_consider\030\024 \001(\005\022:\n2heuristic_"
241 "expensive_chain_lns_num_arcs_to_consider"
242 "\030 \001(\005\022+\n#heuristic_close_nodes_lns_num_"
243 "nodes\030# \001(\005\022W\n\032local_search_metaheuristi"
244 "c\030\004 \001(\01623.operations_research.LocalSearc"
245 "hMetaheuristic.Value\022.\n&guided_local_sea"
246 "rch_lambda_coefficient\030\005 \001(\001\022\036\n\026use_dept"
247 "h_first_search\030\006 \001(\010\0224\n\006use_cp\030\034 \001(\0162$.o"
248 "perations_research.OptionalBoolean\0228\n\nus"
249 "e_cp_sat\030\033 \001(\0162$.operations_research.Opt"
250 "ionalBoolean\022c\n\034continuous_scheduling_so"
251 "lver\030! \001(\0162=.operations_research.Routing"
252 "SearchParameters.SchedulingSolver\022f\n\037mix"
253 "ed_integer_scheduling_solver\030\" \001(\0162=.ope"
254 "rations_research.RoutingSearchParameters"
255 ".SchedulingSolver\022\031\n\021optimization_step\030\007"
256 " \001(\001\022&\n\036number_of_solutions_to_collect\030\021"
257 " \001(\005\022\026\n\016solution_limit\030\010 \001(\003\022-\n\ntime_lim"
258 "it\030\t \001(\0132\031.google.protobuf.Duration\0221\n\016l"
259 "ns_time_limit\030\n \001(\0132\031.google.protobuf.Du"
260 "ration\022s\n\034improvement_limit_parameters\030%"
261 " \001(\0132M.operations_research.RoutingSearch"
262 "Parameters.ImprovementSearchLimitParamet"
263 "ers\022\034\n\024use_full_propagation\030\013 \001(\010\022\022\n\nlog"
264 "_search\030\r \001(\010\022\037\n\027log_cost_scaling_factor"
265 "\030\026 \001(\001\022\027\n\017log_cost_offset\030\035 \001(\001\022\017\n\007log_t"
266 "ag\030$ \001(\t\032\327\022\n LocalSearchNeighborhoodOper"
267 "ators\022:\n\014use_relocate\030\001 \001(\0162$.operations"
268 "_research.OptionalBoolean\022\?\n\021use_relocat"
269 "e_pair\030\002 \001(\0162$.operations_research.Optio"
270 "nalBoolean\022E\n\027use_light_relocate_pair\030\030 "
271 "\001(\0162$.operations_research.OptionalBoolea"
272 "n\022D\n\026use_relocate_neighbors\030\003 \001(\0162$.oper"
273 "ations_research.OptionalBoolean\022B\n\024use_r"
274 "elocate_subtrip\030\031 \001(\0162$.operations_resea"
275 "rch.OptionalBoolean\022:\n\014use_exchange\030\004 \001("
276 "\0162$.operations_research.OptionalBoolean\022"
277 "\?\n\021use_exchange_pair\030\026 \001(\0162$.operations_"
278 "research.OptionalBoolean\022B\n\024use_exchange"
279 "_subtrip\030\032 \001(\0162$.operations_research.Opt"
280 "ionalBoolean\0227\n\tuse_cross\030\005 \001(\0162$.operat"
281 "ions_research.OptionalBoolean\022@\n\022use_cro"
282 "ss_exchange\030\006 \001(\0162$.operations_research."
283 "OptionalBoolean\022J\n\034use_relocate_expensiv"
284 "e_chain\030\027 \001(\0162$.operations_research.Opti"
285 "onalBoolean\0229\n\013use_two_opt\030\007 \001(\0162$.opera"
286 "tions_research.OptionalBoolean\0228\n\nuse_or"
287 "_opt\030\010 \001(\0162$.operations_research.Optiona"
288 "lBoolean\022\?\n\021use_lin_kernighan\030\t \001(\0162$.op"
289 "erations_research.OptionalBoolean\0229\n\013use"
290 "_tsp_opt\030\n \001(\0162$.operations_research.Opt"
291 "ionalBoolean\022=\n\017use_make_active\030\013 \001(\0162$."
292 "operations_research.OptionalBoolean\022J\n\034u"
293 "se_relocate_and_make_active\030\025 \001(\0162$.oper"
294 "ations_research.OptionalBoolean\022\?\n\021use_m"
295 "ake_inactive\030\014 \001(\0162$.operations_research"
296 ".OptionalBoolean\022E\n\027use_make_chain_inact"
297 "ive\030\r \001(\0162$.operations_research.Optional"
298 "Boolean\022=\n\017use_swap_active\030\016 \001(\0162$.opera"
299 "tions_research.OptionalBoolean\022F\n\030use_ex"
300 "tended_swap_active\030\017 \001(\0162$.operations_re"
301 "search.OptionalBoolean\022G\n\031use_node_pair_"
302 "swap_active\030\024 \001(\0162$.operations_research."
303 "OptionalBoolean\022:\n\014use_path_lns\030\020 \001(\0162$."
304 "operations_research.OptionalBoolean\022\?\n\021u"
305 "se_full_path_lns\030\021 \001(\0162$.operations_rese"
306 "arch.OptionalBoolean\0229\n\013use_tsp_lns\030\022 \001("
307 "\0162$.operations_research.OptionalBoolean\022"
308 ">\n\020use_inactive_lns\030\023 \001(\0162$.operations_r"
309 "esearch.OptionalBoolean\022T\n&use_global_ch"
310 "eapest_insertion_path_lns\030\033 \001(\0162$.operat"
311 "ions_research.OptionalBoolean\022S\n%use_loc"
312 "al_cheapest_insertion_path_lns\030\034 \001(\0162$.o"
313 "perations_research.OptionalBoolean\022l\n>us"
314 "e_relocate_path_global_cheapest_insertio"
315 "n_insert_unperformed\030! \001(\0162$.operations_"
316 "research.OptionalBoolean\022_\n1use_global_c"
317 "heapest_insertion_expensive_chain_lns\030\035 "
318 "\001(\0162$.operations_research.OptionalBoolea"
319 "n\022^\n0use_local_cheapest_insertion_expens"
320 "ive_chain_lns\030\036 \001(\0162$.operations_researc"
321 "h.OptionalBoolean\022[\n-use_global_cheapest"
322 "_insertion_close_nodes_lns\030\037 \001(\0162$.opera"
323 "tions_research.OptionalBoolean\022Z\n,use_lo"
324 "cal_cheapest_insertion_close_nodes_lns\030 "
325 " \001(\0162$.operations_research.OptionalBoole"
326 "an\032u\n ImprovementSearchLimitParameters\022$"
327 "\n\034improvement_rate_coefficient\030& \001(\001\022+\n#"
328 "improvement_rate_solutions_distance\030\' \001("
329 "\005\"3\n\020SchedulingSolver\022\t\n\005UNSET\020\000\022\010\n\004GLOP"
330 "\020\001\022\n\n\006CP_SAT\020\002\"\250\001\n\026RoutingModelParameter"
331 "s\022J\n\021solver_parameters\030\001 \001(\0132/.operation"
332 "s_research.ConstraintSolverParameters\022!\n"
333 "\031reduce_vehicle_cost_model\030\002 \001(\010\022\037\n\027max_"
334 "callback_cache_size\030\003 \001(\005BI\n#com.google."
335 "ortools.constraintsolverP\001\252\002\037Google.OrTo"
336 "ols.ConstraintSolverb\006proto3"
339 &::descriptor_table_google_2fprotobuf_2fduration_2eproto,
352 false,
false, descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto,
"ortools/constraint_solver/routing_parameters.proto", 5028,
376 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
382 constexpr
int RoutingSearchParameters::SchedulingSolver_ARRAYSIZE;
383 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
391 RoutingSearchParameters_LocalSearchNeighborhoodOperators::RoutingSearchParameters_LocalSearchNeighborhoodOperators(::PROTOBUF_NAMESPACE_ID::Arena* arena)
392 : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
394 RegisterArenaDtor(arena);
397 RoutingSearchParameters_LocalSearchNeighborhoodOperators::RoutingSearchParameters_LocalSearchNeighborhoodOperators(
const RoutingSearchParameters_LocalSearchNeighborhoodOperators& from)
398 : ::PROTOBUF_NAMESPACE_ID::Message() {
399 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
400 ::memcpy(&use_relocate_, &from.use_relocate_,
401 static_cast<size_t>(
reinterpret_cast<char*
>(&use_relocate_path_global_cheapest_insertion_insert_unperformed_) -
402 reinterpret_cast<char*
>(&use_relocate_)) +
sizeof(use_relocate_path_global_cheapest_insertion_insert_unperformed_));
406 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedCtor() {
407 ::memset(
reinterpret_cast<char*
>(
this) +
static_cast<size_t>(
408 reinterpret_cast<char*
>(&use_relocate_) -
reinterpret_cast<char*
>(
this)),
409 0,
static_cast<size_t>(
reinterpret_cast<char*
>(&use_relocate_path_global_cheapest_insertion_insert_unperformed_) -
410 reinterpret_cast<char*
>(&use_relocate_)) +
sizeof(use_relocate_path_global_cheapest_insertion_insert_unperformed_));
413 RoutingSearchParameters_LocalSearchNeighborhoodOperators::~RoutingSearchParameters_LocalSearchNeighborhoodOperators() {
416 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
419 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedDtor() {
420 GOOGLE_DCHECK(GetArena() ==
nullptr);
423 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::ArenaDtor(
void*
object) {
424 RoutingSearchParameters_LocalSearchNeighborhoodOperators* _this =
reinterpret_cast< RoutingSearchParameters_LocalSearchNeighborhoodOperators*
>(object);
427 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
429 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SetCachedSize(
int size)
const {
430 _cached_size_.Set(size);
432 const RoutingSearchParameters_LocalSearchNeighborhoodOperators& RoutingSearchParameters_LocalSearchNeighborhoodOperators::default_instance() {
434 return *internal_default_instance();
438 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::Clear() {
442 (void) cached_has_bits;
444 ::memset(&use_relocate_, 0,
static_cast<size_t>(
445 reinterpret_cast<char*
>(&use_relocate_path_global_cheapest_insertion_insert_unperformed_) -
446 reinterpret_cast<char*
>(&use_relocate_)) +
sizeof(use_relocate_path_global_cheapest_insertion_insert_unperformed_));
447 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
450 const char* RoutingSearchParameters_LocalSearchNeighborhoodOperators::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
451 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
452 while (!ctx->Done(&ptr)) {
454 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
463 }
else goto handle_unusual;
471 }
else goto handle_unusual;
479 }
else goto handle_unusual;
487 }
else goto handle_unusual;
495 }
else goto handle_unusual;
503 }
else goto handle_unusual;
511 }
else goto handle_unusual;
519 }
else goto handle_unusual;
527 }
else goto handle_unusual;
535 }
else goto handle_unusual;
543 }
else goto handle_unusual;
551 }
else goto handle_unusual;
559 }
else goto handle_unusual;
567 }
else goto handle_unusual;
575 }
else goto handle_unusual;
583 }
else goto handle_unusual;
591 }
else goto handle_unusual;
599 }
else goto handle_unusual;
607 }
else goto handle_unusual;
615 }
else goto handle_unusual;
623 }
else goto handle_unusual;
631 }
else goto handle_unusual;
639 }
else goto handle_unusual;
647 }
else goto handle_unusual;
655 }
else goto handle_unusual;
663 }
else goto handle_unusual;
671 }
else goto handle_unusual;
679 }
else goto handle_unusual;
687 }
else goto handle_unusual;
695 }
else goto handle_unusual;
703 }
else goto handle_unusual;
711 }
else goto handle_unusual;
719 }
else goto handle_unusual;
723 if ((tag & 7) == 4 || tag == 0) {
724 ctx->SetLastTag(tag);
727 ptr = UnknownFieldParse(tag,
728 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
730 CHK_(ptr !=
nullptr);
747 (void) cached_has_bits;
750 if (this->use_relocate() != 0) {
751 target = stream->EnsureSpace(target);
752 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
753 1, this->_internal_use_relocate(), target);
757 if (this->use_relocate_pair() != 0) {
758 target = stream->EnsureSpace(target);
759 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
760 2, this->_internal_use_relocate_pair(), target);
764 if (this->use_relocate_neighbors() != 0) {
765 target = stream->EnsureSpace(target);
766 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
767 3, this->_internal_use_relocate_neighbors(), target);
771 if (this->use_exchange() != 0) {
772 target = stream->EnsureSpace(target);
773 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
774 4, this->_internal_use_exchange(), target);
778 if (this->use_cross() != 0) {
779 target = stream->EnsureSpace(target);
780 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
781 5, this->_internal_use_cross(), target);
785 if (this->use_cross_exchange() != 0) {
786 target = stream->EnsureSpace(target);
787 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
788 6, this->_internal_use_cross_exchange(), target);
792 if (this->use_two_opt() != 0) {
793 target = stream->EnsureSpace(target);
794 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
795 7, this->_internal_use_two_opt(), target);
799 if (this->use_or_opt() != 0) {
800 target = stream->EnsureSpace(target);
801 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
802 8, this->_internal_use_or_opt(), target);
806 if (this->use_lin_kernighan() != 0) {
807 target = stream->EnsureSpace(target);
808 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
809 9, this->_internal_use_lin_kernighan(), target);
813 if (this->use_tsp_opt() != 0) {
814 target = stream->EnsureSpace(target);
815 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
816 10, this->_internal_use_tsp_opt(), target);
820 if (this->use_make_active() != 0) {
821 target = stream->EnsureSpace(target);
822 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
823 11, this->_internal_use_make_active(), target);
827 if (this->use_make_inactive() != 0) {
828 target = stream->EnsureSpace(target);
829 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
830 12, this->_internal_use_make_inactive(), target);
834 if (this->use_make_chain_inactive() != 0) {
835 target = stream->EnsureSpace(target);
836 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
837 13, this->_internal_use_make_chain_inactive(), target);
841 if (this->use_swap_active() != 0) {
842 target = stream->EnsureSpace(target);
843 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
844 14, this->_internal_use_swap_active(), target);
848 if (this->use_extended_swap_active() != 0) {
849 target = stream->EnsureSpace(target);
850 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
851 15, this->_internal_use_extended_swap_active(), target);
855 if (this->use_path_lns() != 0) {
856 target = stream->EnsureSpace(target);
857 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
858 16, this->_internal_use_path_lns(), target);
862 if (this->use_full_path_lns() != 0) {
863 target = stream->EnsureSpace(target);
864 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
865 17, this->_internal_use_full_path_lns(), target);
869 if (this->use_tsp_lns() != 0) {
870 target = stream->EnsureSpace(target);
871 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
872 18, this->_internal_use_tsp_lns(), target);
876 if (this->use_inactive_lns() != 0) {
877 target = stream->EnsureSpace(target);
878 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
879 19, this->_internal_use_inactive_lns(), target);
883 if (this->use_node_pair_swap_active() != 0) {
884 target = stream->EnsureSpace(target);
885 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
886 20, this->_internal_use_node_pair_swap_active(), target);
890 if (this->use_relocate_and_make_active() != 0) {
891 target = stream->EnsureSpace(target);
892 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
893 21, this->_internal_use_relocate_and_make_active(), target);
897 if (this->use_exchange_pair() != 0) {
898 target = stream->EnsureSpace(target);
899 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
900 22, this->_internal_use_exchange_pair(), target);
904 if (this->use_relocate_expensive_chain() != 0) {
905 target = stream->EnsureSpace(target);
906 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
907 23, this->_internal_use_relocate_expensive_chain(), target);
911 if (this->use_light_relocate_pair() != 0) {
912 target = stream->EnsureSpace(target);
913 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
914 24, this->_internal_use_light_relocate_pair(), target);
918 if (this->use_relocate_subtrip() != 0) {
919 target = stream->EnsureSpace(target);
920 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
921 25, this->_internal_use_relocate_subtrip(), target);
925 if (this->use_exchange_subtrip() != 0) {
926 target = stream->EnsureSpace(target);
927 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
928 26, this->_internal_use_exchange_subtrip(), target);
932 if (this->use_global_cheapest_insertion_path_lns() != 0) {
933 target = stream->EnsureSpace(target);
934 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
935 27, this->_internal_use_global_cheapest_insertion_path_lns(), target);
939 if (this->use_local_cheapest_insertion_path_lns() != 0) {
940 target = stream->EnsureSpace(target);
941 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
942 28, this->_internal_use_local_cheapest_insertion_path_lns(), target);
946 if (this->use_global_cheapest_insertion_expensive_chain_lns() != 0) {
947 target = stream->EnsureSpace(target);
948 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
949 29, this->_internal_use_global_cheapest_insertion_expensive_chain_lns(), target);
953 if (this->use_local_cheapest_insertion_expensive_chain_lns() != 0) {
954 target = stream->EnsureSpace(target);
955 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
956 30, this->_internal_use_local_cheapest_insertion_expensive_chain_lns(), target);
960 if (this->use_global_cheapest_insertion_close_nodes_lns() != 0) {
961 target = stream->EnsureSpace(target);
962 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
963 31, this->_internal_use_global_cheapest_insertion_close_nodes_lns(), target);
967 if (this->use_local_cheapest_insertion_close_nodes_lns() != 0) {
968 target = stream->EnsureSpace(target);
969 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
970 32, this->_internal_use_local_cheapest_insertion_close_nodes_lns(), target);
974 if (this->use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
975 target = stream->EnsureSpace(target);
976 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
977 33, this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed(), target);
980 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
981 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
982 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
988 size_t RoutingSearchParameters_LocalSearchNeighborhoodOperators::ByteSizeLong()
const {
990 size_t total_size = 0;
994 (void) cached_has_bits;
997 if (this->use_relocate() != 0) {
999 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate());
1003 if (this->use_relocate_pair() != 0) {
1005 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_pair());
1009 if (this->use_relocate_neighbors() != 0) {
1011 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_neighbors());
1015 if (this->use_exchange() != 0) {
1017 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange());
1021 if (this->use_cross() != 0) {
1023 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cross());
1027 if (this->use_cross_exchange() != 0) {
1029 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cross_exchange());
1033 if (this->use_two_opt() != 0) {
1035 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_two_opt());
1039 if (this->use_or_opt() != 0) {
1041 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_or_opt());
1045 if (this->use_lin_kernighan() != 0) {
1047 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_lin_kernighan());
1051 if (this->use_tsp_opt() != 0) {
1053 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_tsp_opt());
1057 if (this->use_make_active() != 0) {
1059 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_active());
1063 if (this->use_make_inactive() != 0) {
1065 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_inactive());
1069 if (this->use_make_chain_inactive() != 0) {
1071 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_chain_inactive());
1075 if (this->use_swap_active() != 0) {
1077 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_swap_active());
1081 if (this->use_extended_swap_active() != 0) {
1083 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_extended_swap_active());
1087 if (this->use_path_lns() != 0) {
1089 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_path_lns());
1093 if (this->use_full_path_lns() != 0) {
1095 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_full_path_lns());
1099 if (this->use_tsp_lns() != 0) {
1101 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_tsp_lns());
1105 if (this->use_inactive_lns() != 0) {
1107 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_inactive_lns());
1111 if (this->use_node_pair_swap_active() != 0) {
1113 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_node_pair_swap_active());
1117 if (this->use_relocate_and_make_active() != 0) {
1119 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_and_make_active());
1123 if (this->use_exchange_pair() != 0) {
1125 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange_pair());
1129 if (this->use_relocate_expensive_chain() != 0) {
1131 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_expensive_chain());
1135 if (this->use_light_relocate_pair() != 0) {
1137 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_light_relocate_pair());
1141 if (this->use_relocate_subtrip() != 0) {
1143 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_subtrip());
1147 if (this->use_exchange_subtrip() != 0) {
1149 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange_subtrip());
1153 if (this->use_global_cheapest_insertion_path_lns() != 0) {
1155 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_path_lns());
1159 if (this->use_local_cheapest_insertion_path_lns() != 0) {
1161 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_path_lns());
1165 if (this->use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1167 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_expensive_chain_lns());
1171 if (this->use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1173 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_expensive_chain_lns());
1177 if (this->use_global_cheapest_insertion_close_nodes_lns() != 0) {
1179 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_close_nodes_lns());
1183 if (this->use_local_cheapest_insertion_close_nodes_lns() != 0) {
1185 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_close_nodes_lns());
1189 if (this->use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1191 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed());
1194 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1195 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1196 _internal_metadata_, total_size, &_cached_size_);
1198 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1199 SetCachedSize(cached_size);
1203 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1205 GOOGLE_DCHECK_NE(&from,
this);
1206 const RoutingSearchParameters_LocalSearchNeighborhoodOperators* source =
1207 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutingSearchParameters_LocalSearchNeighborhoodOperators>(
1209 if (source ==
nullptr) {
1211 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
1218 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeFrom(
const RoutingSearchParameters_LocalSearchNeighborhoodOperators& from) {
1220 GOOGLE_DCHECK_NE(&from,
this);
1221 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1223 (void) cached_has_bits;
1225 if (from.use_relocate() != 0) {
1226 _internal_set_use_relocate(from._internal_use_relocate());
1228 if (from.use_relocate_pair() != 0) {
1229 _internal_set_use_relocate_pair(from._internal_use_relocate_pair());
1231 if (from.use_relocate_neighbors() != 0) {
1232 _internal_set_use_relocate_neighbors(from._internal_use_relocate_neighbors());
1234 if (from.use_exchange() != 0) {
1235 _internal_set_use_exchange(from._internal_use_exchange());
1237 if (from.use_cross() != 0) {
1238 _internal_set_use_cross(from._internal_use_cross());
1240 if (from.use_cross_exchange() != 0) {
1241 _internal_set_use_cross_exchange(from._internal_use_cross_exchange());
1243 if (from.use_two_opt() != 0) {
1244 _internal_set_use_two_opt(from._internal_use_two_opt());
1246 if (from.use_or_opt() != 0) {
1247 _internal_set_use_or_opt(from._internal_use_or_opt());
1249 if (from.use_lin_kernighan() != 0) {
1250 _internal_set_use_lin_kernighan(from._internal_use_lin_kernighan());
1252 if (from.use_tsp_opt() != 0) {
1253 _internal_set_use_tsp_opt(from._internal_use_tsp_opt());
1255 if (from.use_make_active() != 0) {
1256 _internal_set_use_make_active(from._internal_use_make_active());
1258 if (from.use_make_inactive() != 0) {
1259 _internal_set_use_make_inactive(from._internal_use_make_inactive());
1261 if (from.use_make_chain_inactive() != 0) {
1262 _internal_set_use_make_chain_inactive(from._internal_use_make_chain_inactive());
1264 if (from.use_swap_active() != 0) {
1265 _internal_set_use_swap_active(from._internal_use_swap_active());
1267 if (from.use_extended_swap_active() != 0) {
1268 _internal_set_use_extended_swap_active(from._internal_use_extended_swap_active());
1270 if (from.use_path_lns() != 0) {
1271 _internal_set_use_path_lns(from._internal_use_path_lns());
1273 if (from.use_full_path_lns() != 0) {
1274 _internal_set_use_full_path_lns(from._internal_use_full_path_lns());
1276 if (from.use_tsp_lns() != 0) {
1277 _internal_set_use_tsp_lns(from._internal_use_tsp_lns());
1279 if (from.use_inactive_lns() != 0) {
1280 _internal_set_use_inactive_lns(from._internal_use_inactive_lns());
1282 if (from.use_node_pair_swap_active() != 0) {
1283 _internal_set_use_node_pair_swap_active(from._internal_use_node_pair_swap_active());
1285 if (from.use_relocate_and_make_active() != 0) {
1286 _internal_set_use_relocate_and_make_active(from._internal_use_relocate_and_make_active());
1288 if (from.use_exchange_pair() != 0) {
1289 _internal_set_use_exchange_pair(from._internal_use_exchange_pair());
1291 if (from.use_relocate_expensive_chain() != 0) {
1292 _internal_set_use_relocate_expensive_chain(from._internal_use_relocate_expensive_chain());
1294 if (from.use_light_relocate_pair() != 0) {
1295 _internal_set_use_light_relocate_pair(from._internal_use_light_relocate_pair());
1297 if (from.use_relocate_subtrip() != 0) {
1298 _internal_set_use_relocate_subtrip(from._internal_use_relocate_subtrip());
1300 if (from.use_exchange_subtrip() != 0) {
1301 _internal_set_use_exchange_subtrip(from._internal_use_exchange_subtrip());
1303 if (from.use_global_cheapest_insertion_path_lns() != 0) {
1304 _internal_set_use_global_cheapest_insertion_path_lns(from._internal_use_global_cheapest_insertion_path_lns());
1306 if (from.use_local_cheapest_insertion_path_lns() != 0) {
1307 _internal_set_use_local_cheapest_insertion_path_lns(from._internal_use_local_cheapest_insertion_path_lns());
1309 if (from.use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1310 _internal_set_use_global_cheapest_insertion_expensive_chain_lns(from._internal_use_global_cheapest_insertion_expensive_chain_lns());
1312 if (from.use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1313 _internal_set_use_local_cheapest_insertion_expensive_chain_lns(from._internal_use_local_cheapest_insertion_expensive_chain_lns());
1315 if (from.use_global_cheapest_insertion_close_nodes_lns() != 0) {
1316 _internal_set_use_global_cheapest_insertion_close_nodes_lns(from._internal_use_global_cheapest_insertion_close_nodes_lns());
1318 if (from.use_local_cheapest_insertion_close_nodes_lns() != 0) {
1319 _internal_set_use_local_cheapest_insertion_close_nodes_lns(from._internal_use_local_cheapest_insertion_close_nodes_lns());
1321 if (from.use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1322 _internal_set_use_relocate_path_global_cheapest_insertion_insert_unperformed(from._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed());
1326 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1328 if (&from ==
this)
return;
1333 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::CopyFrom(
const RoutingSearchParameters_LocalSearchNeighborhoodOperators& from) {
1335 if (&from ==
this)
return;
1340 bool RoutingSearchParameters_LocalSearchNeighborhoodOperators::IsInitialized()
const {
1344 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::InternalSwap(RoutingSearchParameters_LocalSearchNeighborhoodOperators* other) {
1346 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1347 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1348 PROTOBUF_FIELD_OFFSET(RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_path_global_cheapest_insertion_insert_unperformed_)
1349 +
sizeof(RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_relocate_path_global_cheapest_insertion_insert_unperformed_)
1350 - PROTOBUF_FIELD_OFFSET(RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_)>(
1351 reinterpret_cast<char*
>(&use_relocate_),
1352 reinterpret_cast<char*
>(&other->use_relocate_));
1355 ::PROTOBUF_NAMESPACE_ID::Metadata RoutingSearchParameters_LocalSearchNeighborhoodOperators::GetMetadata()
const {
1356 return GetMetadataStatic();
1366 RoutingSearchParameters_ImprovementSearchLimitParameters::RoutingSearchParameters_ImprovementSearchLimitParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1367 : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
1369 RegisterArenaDtor(arena);
1372 RoutingSearchParameters_ImprovementSearchLimitParameters::RoutingSearchParameters_ImprovementSearchLimitParameters(
const RoutingSearchParameters_ImprovementSearchLimitParameters& from)
1373 : ::PROTOBUF_NAMESPACE_ID::Message() {
1374 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1375 ::memcpy(&improvement_rate_solutions_distance_, &from.improvement_rate_solutions_distance_,
1376 static_cast<size_t>(
reinterpret_cast<char*
>(&improvement_rate_coefficient_) -
1377 reinterpret_cast<char*
>(&improvement_rate_solutions_distance_)) +
sizeof(improvement_rate_coefficient_));
1381 void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedCtor() {
1382 ::memset(
reinterpret_cast<char*
>(
this) +
static_cast<size_t>(
1383 reinterpret_cast<char*
>(&improvement_rate_solutions_distance_) -
reinterpret_cast<char*
>(
this)),
1384 0,
static_cast<size_t>(
reinterpret_cast<char*
>(&improvement_rate_coefficient_) -
1385 reinterpret_cast<char*
>(&improvement_rate_solutions_distance_)) +
sizeof(improvement_rate_coefficient_));
1388 RoutingSearchParameters_ImprovementSearchLimitParameters::~RoutingSearchParameters_ImprovementSearchLimitParameters() {
1391 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1394 void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedDtor() {
1395 GOOGLE_DCHECK(GetArena() ==
nullptr);
1398 void RoutingSearchParameters_ImprovementSearchLimitParameters::ArenaDtor(
void*
object) {
1399 RoutingSearchParameters_ImprovementSearchLimitParameters* _this =
reinterpret_cast< RoutingSearchParameters_ImprovementSearchLimitParameters*
>(object);
1402 void RoutingSearchParameters_ImprovementSearchLimitParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1404 void RoutingSearchParameters_ImprovementSearchLimitParameters::SetCachedSize(
int size)
const {
1405 _cached_size_.Set(size);
1407 const RoutingSearchParameters_ImprovementSearchLimitParameters& RoutingSearchParameters_ImprovementSearchLimitParameters::default_instance() {
1409 return *internal_default_instance();
1413 void RoutingSearchParameters_ImprovementSearchLimitParameters::Clear() {
1417 (void) cached_has_bits;
1419 ::memset(&improvement_rate_solutions_distance_, 0,
static_cast<size_t>(
1420 reinterpret_cast<char*
>(&improvement_rate_coefficient_) -
1421 reinterpret_cast<char*
>(&improvement_rate_solutions_distance_)) +
sizeof(improvement_rate_coefficient_));
1422 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1425 const char* RoutingSearchParameters_ImprovementSearchLimitParameters::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1426 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1427 while (!ctx->Done(&ptr)) {
1429 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1435 improvement_rate_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1436 ptr +=
sizeof(double);
1437 }
else goto handle_unusual;
1442 improvement_rate_solutions_distance_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1444 }
else goto handle_unusual;
1448 if ((tag & 7) == 4 || tag == 0) {
1449 ctx->SetLastTag(tag);
1452 ptr = UnknownFieldParse(tag,
1453 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1455 CHK_(ptr !=
nullptr);
1472 (void) cached_has_bits;
1475 if (!(this->improvement_rate_coefficient() <= 0 && this->improvement_rate_coefficient() >= 0)) {
1476 target = stream->EnsureSpace(target);
1477 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(38, this->_internal_improvement_rate_coefficient(), target);
1481 if (this->improvement_rate_solutions_distance() != 0) {
1482 target = stream->EnsureSpace(target);
1483 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(39, this->_internal_improvement_rate_solutions_distance(), target);
1486 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1487 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1488 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1494 size_t RoutingSearchParameters_ImprovementSearchLimitParameters::ByteSizeLong()
const {
1496 size_t total_size = 0;
1500 (void) cached_has_bits;
1503 if (this->improvement_rate_solutions_distance() != 0) {
1505 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1506 this->_internal_improvement_rate_solutions_distance());
1510 if (!(this->improvement_rate_coefficient() <= 0 && this->improvement_rate_coefficient() >= 0)) {
1511 total_size += 2 + 8;
1514 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1515 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1516 _internal_metadata_, total_size, &_cached_size_);
1518 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1519 SetCachedSize(cached_size);
1523 void RoutingSearchParameters_ImprovementSearchLimitParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1525 GOOGLE_DCHECK_NE(&from,
this);
1526 const RoutingSearchParameters_ImprovementSearchLimitParameters* source =
1527 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutingSearchParameters_ImprovementSearchLimitParameters>(
1529 if (source ==
nullptr) {
1531 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
1538 void RoutingSearchParameters_ImprovementSearchLimitParameters::MergeFrom(
const RoutingSearchParameters_ImprovementSearchLimitParameters& from) {
1540 GOOGLE_DCHECK_NE(&from,
this);
1541 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1543 (void) cached_has_bits;
1545 if (from.improvement_rate_solutions_distance() != 0) {
1546 _internal_set_improvement_rate_solutions_distance(from._internal_improvement_rate_solutions_distance());
1548 if (!(from.improvement_rate_coefficient() <= 0 && from.improvement_rate_coefficient() >= 0)) {
1549 _internal_set_improvement_rate_coefficient(from._internal_improvement_rate_coefficient());
1553 void RoutingSearchParameters_ImprovementSearchLimitParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1555 if (&from ==
this)
return;
1560 void RoutingSearchParameters_ImprovementSearchLimitParameters::CopyFrom(
const RoutingSearchParameters_ImprovementSearchLimitParameters& from) {
1562 if (&from ==
this)
return;
1567 bool RoutingSearchParameters_ImprovementSearchLimitParameters::IsInitialized()
const {
1571 void RoutingSearchParameters_ImprovementSearchLimitParameters::InternalSwap(RoutingSearchParameters_ImprovementSearchLimitParameters* other) {
1573 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1574 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1575 PROTOBUF_FIELD_OFFSET(RoutingSearchParameters_ImprovementSearchLimitParameters, improvement_rate_coefficient_)
1576 +
sizeof(RoutingSearchParameters_ImprovementSearchLimitParameters::improvement_rate_coefficient_)
1577 - PROTOBUF_FIELD_OFFSET(RoutingSearchParameters_ImprovementSearchLimitParameters, improvement_rate_solutions_distance_)>(
1578 reinterpret_cast<char*
>(&improvement_rate_solutions_distance_),
1579 reinterpret_cast<char*
>(&other->improvement_rate_solutions_distance_));
1582 ::PROTOBUF_NAMESPACE_ID::Metadata RoutingSearchParameters_ImprovementSearchLimitParameters::GetMetadata()
const {
1583 return GetMetadataStatic();
1591 static const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators& local_search_operators(
const RoutingSearchParameters* msg);
1592 static const PROTOBUF_NAMESPACE_ID::Duration&
time_limit(
const RoutingSearchParameters* msg);
1593 static const PROTOBUF_NAMESPACE_ID::Duration& lns_time_limit(
const RoutingSearchParameters* msg);
1594 static const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters& improvement_limit_parameters(
const RoutingSearchParameters* msg);
1597 const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators&
1599 return *msg->local_search_operators_;
1601 const PROTOBUF_NAMESPACE_ID::Duration&
1603 return *msg->time_limit_;
1605 const PROTOBUF_NAMESPACE_ID::Duration&
1607 return *msg->lns_time_limit_;
1609 const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters&
1611 return *msg->improvement_limit_parameters_;
1613 void RoutingSearchParameters::clear_time_limit() {
1614 if (GetArena() ==
nullptr && time_limit_ !=
nullptr) {
1617 time_limit_ =
nullptr;
1619 void RoutingSearchParameters::clear_lns_time_limit() {
1620 if (GetArena() ==
nullptr && lns_time_limit_ !=
nullptr) {
1621 delete lns_time_limit_;
1623 lns_time_limit_ =
nullptr;
1625 RoutingSearchParameters::RoutingSearchParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1626 : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
1628 RegisterArenaDtor(arena);
1631 RoutingSearchParameters::RoutingSearchParameters(
const RoutingSearchParameters& from)
1632 : ::PROTOBUF_NAMESPACE_ID::Message() {
1633 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1634 log_tag_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1635 if (!from._internal_log_tag().empty()) {
1636 log_tag_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_log_tag(),
1639 if (from._internal_has_local_search_operators()) {
1640 local_search_operators_ = new ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators(*from.local_search_operators_);
1642 local_search_operators_ =
nullptr;
1644 if (from._internal_has_time_limit()) {
1645 time_limit_ =
new PROTOBUF_NAMESPACE_ID::Duration(*from.time_limit_);
1647 time_limit_ =
nullptr;
1649 if (from._internal_has_lns_time_limit()) {
1650 lns_time_limit_ =
new PROTOBUF_NAMESPACE_ID::Duration(*from.lns_time_limit_);
1652 lns_time_limit_ =
nullptr;
1654 if (from._internal_has_improvement_limit_parameters()) {
1655 improvement_limit_parameters_ = new ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters(*from.improvement_limit_parameters_);
1657 improvement_limit_parameters_ =
nullptr;
1659 ::memcpy(&first_solution_strategy_, &from.first_solution_strategy_,
1660 static_cast<size_t>(
reinterpret_cast<char*
>(&multi_armed_bandit_compound_operator_exploration_coefficient_) -
1661 reinterpret_cast<char*
>(&first_solution_strategy_)) +
sizeof(multi_armed_bandit_compound_operator_exploration_coefficient_));
1665 void RoutingSearchParameters::SharedCtor() {
1667 log_tag_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1668 ::memset(
reinterpret_cast<char*
>(
this) +
static_cast<size_t>(
1669 reinterpret_cast<char*
>(&local_search_operators_) -
reinterpret_cast<char*
>(
this)),
1670 0,
static_cast<size_t>(
reinterpret_cast<char*
>(&multi_armed_bandit_compound_operator_exploration_coefficient_) -
1671 reinterpret_cast<char*
>(&local_search_operators_)) +
sizeof(multi_armed_bandit_compound_operator_exploration_coefficient_));
1674 RoutingSearchParameters::~RoutingSearchParameters() {
1677 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1680 void RoutingSearchParameters::SharedDtor() {
1681 GOOGLE_DCHECK(GetArena() ==
nullptr);
1682 log_tag_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1683 if (
this != internal_default_instance())
delete local_search_operators_;
1684 if (
this != internal_default_instance())
delete time_limit_;
1685 if (
this != internal_default_instance())
delete lns_time_limit_;
1686 if (
this != internal_default_instance())
delete improvement_limit_parameters_;
1689 void RoutingSearchParameters::ArenaDtor(
void*
object) {
1690 RoutingSearchParameters* _this =
reinterpret_cast< RoutingSearchParameters*
>(object);
1693 void RoutingSearchParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1695 void RoutingSearchParameters::SetCachedSize(
int size)
const {
1696 _cached_size_.Set(size);
1698 const RoutingSearchParameters& RoutingSearchParameters::default_instance() {
1700 return *internal_default_instance();
1704 void RoutingSearchParameters::Clear() {
1708 (void) cached_has_bits;
1710 log_tag_.ClearToEmpty();
1711 if (GetArena() ==
nullptr && local_search_operators_ !=
nullptr) {
1712 delete local_search_operators_;
1714 local_search_operators_ =
nullptr;
1715 if (GetArena() ==
nullptr && time_limit_ !=
nullptr) {
1718 time_limit_ =
nullptr;
1719 if (GetArena() ==
nullptr && lns_time_limit_ !=
nullptr) {
1720 delete lns_time_limit_;
1722 lns_time_limit_ =
nullptr;
1723 if (GetArena() ==
nullptr && improvement_limit_parameters_ !=
nullptr) {
1724 delete improvement_limit_parameters_;
1726 improvement_limit_parameters_ =
nullptr;
1727 ::memset(&first_solution_strategy_, 0,
static_cast<size_t>(
1728 reinterpret_cast<char*
>(&multi_armed_bandit_compound_operator_exploration_coefficient_) -
1729 reinterpret_cast<char*
>(&first_solution_strategy_)) +
sizeof(multi_armed_bandit_compound_operator_exploration_coefficient_));
1730 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1733 const char* RoutingSearchParameters::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1734 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1735 while (!ctx->Done(&ptr)) {
1737 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1746 }
else goto handle_unusual;
1751 use_unfiltered_first_solution_strategy_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1753 }
else goto handle_unusual;
1758 ptr = ctx->ParseMessage(_internal_mutable_local_search_operators(), ptr);
1760 }
else goto handle_unusual;
1768 }
else goto handle_unusual;
1773 guided_local_search_lambda_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1774 ptr +=
sizeof(double);
1775 }
else goto handle_unusual;
1780 use_depth_first_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1782 }
else goto handle_unusual;
1787 optimization_step_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1788 ptr +=
sizeof(double);
1789 }
else goto handle_unusual;
1794 solution_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1796 }
else goto handle_unusual;
1801 ptr = ctx->ParseMessage(_internal_mutable_time_limit(), ptr);
1803 }
else goto handle_unusual;
1808 ptr = ctx->ParseMessage(_internal_mutable_lns_time_limit(), ptr);
1810 }
else goto handle_unusual;
1815 use_full_propagation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1817 }
else goto handle_unusual;
1822 log_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1824 }
else goto handle_unusual;
1829 savings_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1830 ptr +=
sizeof(double);
1831 }
else goto handle_unusual;
1836 savings_add_reverse_arcs_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1838 }
else goto handle_unusual;
1843 cheapest_insertion_farthest_seeds_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1844 ptr +=
sizeof(double);
1845 }
else goto handle_unusual;
1850 number_of_solutions_to_collect_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1852 }
else goto handle_unusual;
1857 savings_arc_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1858 ptr +=
sizeof(double);
1859 }
else goto handle_unusual;
1864 savings_parallel_routes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1866 }
else goto handle_unusual;
1871 relocate_expensive_chain_num_arcs_to_consider_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1873 }
else goto handle_unusual;
1878 cheapest_insertion_first_solution_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1879 ptr +=
sizeof(double);
1880 }
else goto handle_unusual;
1885 log_cost_scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1886 ptr +=
sizeof(double);
1887 }
else goto handle_unusual;
1892 savings_max_memory_usage_bytes_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1893 ptr +=
sizeof(double);
1894 }
else goto handle_unusual;
1902 }
else goto handle_unusual;
1910 }
else goto handle_unusual;
1915 log_cost_offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1916 ptr +=
sizeof(double);
1917 }
else goto handle_unusual;
1922 christofides_use_minimum_matching_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1924 }
else goto handle_unusual;
1929 cheapest_insertion_ls_operator_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1930 ptr +=
sizeof(double);
1931 }
else goto handle_unusual;
1936 heuristic_expensive_chain_lns_num_arcs_to_consider_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1938 }
else goto handle_unusual;
1946 }
else goto handle_unusual;
1954 }
else goto handle_unusual;
1959 heuristic_close_nodes_lns_num_nodes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1961 }
else goto handle_unusual;
1966 auto str = _internal_mutable_log_tag();
1967 ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1968 CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str,
"operations_research.RoutingSearchParameters.log_tag"));
1970 }
else goto handle_unusual;
1975 ptr = ctx->ParseMessage(_internal_mutable_improvement_limit_parameters(), ptr);
1977 }
else goto handle_unusual;
1982 cheapest_insertion_add_unperformed_entries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1984 }
else goto handle_unusual;
1989 use_multi_armed_bandit_concatenate_operators_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1991 }
else goto handle_unusual;
1996 multi_armed_bandit_compound_operator_memory_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1997 ptr +=
sizeof(double);
1998 }
else goto handle_unusual;
2003 multi_armed_bandit_compound_operator_exploration_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2004 ptr +=
sizeof(double);
2005 }
else goto handle_unusual;
2009 if ((tag & 7) == 4 || tag == 0) {
2010 ctx->SetLastTag(tag);
2013 ptr = UnknownFieldParse(tag,
2014 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2016 CHK_(ptr !=
nullptr);
2033 (void) cached_has_bits;
2036 if (this->first_solution_strategy() != 0) {
2037 target = stream->EnsureSpace(target);
2038 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2039 1, this->_internal_first_solution_strategy(), target);
2043 if (this->use_unfiltered_first_solution_strategy() != 0) {
2044 target = stream->EnsureSpace(target);
2045 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_use_unfiltered_first_solution_strategy(), target);
2049 if (this->has_local_search_operators()) {
2050 target = stream->EnsureSpace(target);
2051 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2052 InternalWriteMessage(
2057 if (this->local_search_metaheuristic() != 0) {
2058 target = stream->EnsureSpace(target);
2059 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2060 4, this->_internal_local_search_metaheuristic(), target);
2064 if (!(this->guided_local_search_lambda_coefficient() <= 0 && this->guided_local_search_lambda_coefficient() >= 0)) {
2065 target = stream->EnsureSpace(target);
2066 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(5, this->_internal_guided_local_search_lambda_coefficient(), target);
2070 if (this->use_depth_first_search() != 0) {
2071 target = stream->EnsureSpace(target);
2072 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_use_depth_first_search(), target);
2076 if (!(this->optimization_step() <= 0 && this->optimization_step() >= 0)) {
2077 target = stream->EnsureSpace(target);
2078 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(7, this->_internal_optimization_step(), target);
2082 if (this->solution_limit() != 0) {
2083 target = stream->EnsureSpace(target);
2084 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(8, this->_internal_solution_limit(), target);
2088 if (this->has_time_limit()) {
2089 target = stream->EnsureSpace(target);
2090 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2091 InternalWriteMessage(
2096 if (this->has_lns_time_limit()) {
2097 target = stream->EnsureSpace(target);
2098 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2099 InternalWriteMessage(
2104 if (this->use_full_propagation() != 0) {
2105 target = stream->EnsureSpace(target);
2106 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(11, this->_internal_use_full_propagation(), target);
2110 if (this->log_search() != 0) {
2111 target = stream->EnsureSpace(target);
2112 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(13, this->_internal_log_search(), target);
2116 if (!(this->savings_neighbors_ratio() <= 0 && this->savings_neighbors_ratio() >= 0)) {
2117 target = stream->EnsureSpace(target);
2118 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(14, this->_internal_savings_neighbors_ratio(), target);
2122 if (this->savings_add_reverse_arcs() != 0) {
2123 target = stream->EnsureSpace(target);
2124 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_savings_add_reverse_arcs(), target);
2128 if (!(this->cheapest_insertion_farthest_seeds_ratio() <= 0 && this->cheapest_insertion_farthest_seeds_ratio() >= 0)) {
2129 target = stream->EnsureSpace(target);
2130 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_cheapest_insertion_farthest_seeds_ratio(), target);
2134 if (this->number_of_solutions_to_collect() != 0) {
2135 target = stream->EnsureSpace(target);
2136 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(17, this->_internal_number_of_solutions_to_collect(), target);
2140 if (!(this->savings_arc_coefficient() <= 0 && this->savings_arc_coefficient() >= 0)) {
2141 target = stream->EnsureSpace(target);
2142 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(18, this->_internal_savings_arc_coefficient(), target);
2146 if (this->savings_parallel_routes() != 0) {
2147 target = stream->EnsureSpace(target);
2148 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(19, this->_internal_savings_parallel_routes(), target);
2152 if (this->relocate_expensive_chain_num_arcs_to_consider() != 0) {
2153 target = stream->EnsureSpace(target);
2154 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(20, this->_internal_relocate_expensive_chain_num_arcs_to_consider(), target);
2158 if (!(this->cheapest_insertion_first_solution_neighbors_ratio() <= 0 && this->cheapest_insertion_first_solution_neighbors_ratio() >= 0)) {
2159 target = stream->EnsureSpace(target);
2160 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(21, this->_internal_cheapest_insertion_first_solution_neighbors_ratio(), target);
2164 if (!(this->log_cost_scaling_factor() <= 0 && this->log_cost_scaling_factor() >= 0)) {
2165 target = stream->EnsureSpace(target);
2166 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_log_cost_scaling_factor(), target);
2170 if (!(this->savings_max_memory_usage_bytes() <= 0 && this->savings_max_memory_usage_bytes() >= 0)) {
2171 target = stream->EnsureSpace(target);
2172 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(23, this->_internal_savings_max_memory_usage_bytes(), target);
2176 if (this->use_cp_sat() != 0) {
2177 target = stream->EnsureSpace(target);
2178 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2179 27, this->_internal_use_cp_sat(), target);
2183 if (this->use_cp() != 0) {
2184 target = stream->EnsureSpace(target);
2185 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2186 28, this->_internal_use_cp(), target);
2190 if (!(this->log_cost_offset() <= 0 && this->log_cost_offset() >= 0)) {
2191 target = stream->EnsureSpace(target);
2192 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(29, this->_internal_log_cost_offset(), target);
2196 if (this->christofides_use_minimum_matching() != 0) {
2197 target = stream->EnsureSpace(target);
2198 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(30, this->_internal_christofides_use_minimum_matching(), target);
2202 if (!(this->cheapest_insertion_ls_operator_neighbors_ratio() <= 0 && this->cheapest_insertion_ls_operator_neighbors_ratio() >= 0)) {
2203 target = stream->EnsureSpace(target);
2204 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(31, this->_internal_cheapest_insertion_ls_operator_neighbors_ratio(), target);
2208 if (this->heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2209 target = stream->EnsureSpace(target);
2210 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(32, this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider(), target);
2214 if (this->continuous_scheduling_solver() != 0) {
2215 target = stream->EnsureSpace(target);
2216 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2217 33, this->_internal_continuous_scheduling_solver(), target);
2221 if (this->mixed_integer_scheduling_solver() != 0) {
2222 target = stream->EnsureSpace(target);
2223 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2224 34, this->_internal_mixed_integer_scheduling_solver(), target);
2228 if (this->heuristic_close_nodes_lns_num_nodes() != 0) {
2229 target = stream->EnsureSpace(target);
2230 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(35, this->_internal_heuristic_close_nodes_lns_num_nodes(), target);
2234 if (this->log_tag().size() > 0) {
2235 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
2236 this->_internal_log_tag().data(),
static_cast<int>(this->_internal_log_tag().length()),
2237 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
2238 "operations_research.RoutingSearchParameters.log_tag");
2239 target = stream->WriteStringMaybeAliased(
2240 36, this->_internal_log_tag(), target);
2244 if (this->has_improvement_limit_parameters()) {
2245 target = stream->EnsureSpace(target);
2246 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2247 InternalWriteMessage(
2252 if (this->cheapest_insertion_add_unperformed_entries() != 0) {
2253 target = stream->EnsureSpace(target);
2254 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(40, this->_internal_cheapest_insertion_add_unperformed_entries(), target);
2258 if (this->use_multi_armed_bandit_concatenate_operators() != 0) {
2259 target = stream->EnsureSpace(target);
2260 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(41, this->_internal_use_multi_armed_bandit_concatenate_operators(), target);
2264 if (!(this->multi_armed_bandit_compound_operator_memory_coefficient() <= 0 && this->multi_armed_bandit_compound_operator_memory_coefficient() >= 0)) {
2265 target = stream->EnsureSpace(target);
2266 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(42, this->_internal_multi_armed_bandit_compound_operator_memory_coefficient(), target);
2270 if (!(this->multi_armed_bandit_compound_operator_exploration_coefficient() <= 0 && this->multi_armed_bandit_compound_operator_exploration_coefficient() >= 0)) {
2271 target = stream->EnsureSpace(target);
2272 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(43, this->_internal_multi_armed_bandit_compound_operator_exploration_coefficient(), target);
2275 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2276 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2277 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2283 size_t RoutingSearchParameters::ByteSizeLong()
const {
2285 size_t total_size = 0;
2289 (void) cached_has_bits;
2292 if (this->log_tag().size() > 0) {
2294 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
2295 this->_internal_log_tag());
2299 if (this->has_local_search_operators()) {
2301 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2302 *local_search_operators_);
2306 if (this->has_time_limit()) {
2308 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2313 if (this->has_lns_time_limit()) {
2315 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2320 if (this->has_improvement_limit_parameters()) {
2322 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2323 *improvement_limit_parameters_);
2327 if (this->first_solution_strategy() != 0) {
2329 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_first_solution_strategy());
2333 if (this->local_search_metaheuristic() != 0) {
2335 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_local_search_metaheuristic());
2339 if (!(this->guided_local_search_lambda_coefficient() <= 0 && this->guided_local_search_lambda_coefficient() >= 0)) {
2340 total_size += 1 + 8;
2344 if (!(this->optimization_step() <= 0 && this->optimization_step() >= 0)) {
2345 total_size += 1 + 8;
2349 if (this->solution_limit() != 0) {
2351 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
2352 this->_internal_solution_limit());
2356 if (!(this->savings_neighbors_ratio() <= 0 && this->savings_neighbors_ratio() >= 0)) {
2357 total_size += 1 + 8;
2361 if (this->log_search() != 0) {
2362 total_size += 1 + 1;
2366 if (this->number_of_solutions_to_collect() != 0) {
2368 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2369 this->_internal_number_of_solutions_to_collect());
2373 if (!(this->cheapest_insertion_farthest_seeds_ratio() <= 0 && this->cheapest_insertion_farthest_seeds_ratio() >= 0)) {
2374 total_size += 2 + 8;
2378 if (!(this->savings_arc_coefficient() <= 0 && this->savings_arc_coefficient() >= 0)) {
2379 total_size += 2 + 8;
2383 if (this->use_unfiltered_first_solution_strategy() != 0) {
2384 total_size += 1 + 1;
2388 if (this->savings_add_reverse_arcs() != 0) {
2389 total_size += 1 + 1;
2393 if (this->savings_parallel_routes() != 0) {
2394 total_size += 2 + 1;
2398 if (this->cheapest_insertion_add_unperformed_entries() != 0) {
2399 total_size += 2 + 1;
2403 if (this->relocate_expensive_chain_num_arcs_to_consider() != 0) {
2405 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2406 this->_internal_relocate_expensive_chain_num_arcs_to_consider());
2410 if (!(this->cheapest_insertion_first_solution_neighbors_ratio() <= 0 && this->cheapest_insertion_first_solution_neighbors_ratio() >= 0)) {
2411 total_size += 2 + 8;
2415 if (!(this->log_cost_scaling_factor() <= 0 && this->log_cost_scaling_factor() >= 0)) {
2416 total_size += 2 + 8;
2420 if (!(this->savings_max_memory_usage_bytes() <= 0 && this->savings_max_memory_usage_bytes() >= 0)) {
2421 total_size += 2 + 8;
2425 if (this->christofides_use_minimum_matching() != 0) {
2426 total_size += 2 + 1;
2430 if (this->use_multi_armed_bandit_concatenate_operators() != 0) {
2431 total_size += 2 + 1;
2435 if (this->use_depth_first_search() != 0) {
2436 total_size += 1 + 1;
2440 if (this->use_full_propagation() != 0) {
2441 total_size += 1 + 1;
2445 if (this->use_cp_sat() != 0) {
2447 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cp_sat());
2451 if (!(this->log_cost_offset() <= 0 && this->log_cost_offset() >= 0)) {
2452 total_size += 2 + 8;
2456 if (this->use_cp() != 0) {
2458 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cp());
2462 if (this->heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2464 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2465 this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
2469 if (!(this->cheapest_insertion_ls_operator_neighbors_ratio() <= 0 && this->cheapest_insertion_ls_operator_neighbors_ratio() >= 0)) {
2470 total_size += 2 + 8;
2474 if (this->continuous_scheduling_solver() != 0) {
2476 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_continuous_scheduling_solver());
2480 if (this->mixed_integer_scheduling_solver() != 0) {
2482 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_mixed_integer_scheduling_solver());
2486 if (this->heuristic_close_nodes_lns_num_nodes() != 0) {
2488 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2489 this->_internal_heuristic_close_nodes_lns_num_nodes());
2493 if (!(this->multi_armed_bandit_compound_operator_memory_coefficient() <= 0 && this->multi_armed_bandit_compound_operator_memory_coefficient() >= 0)) {
2494 total_size += 2 + 8;
2498 if (!(this->multi_armed_bandit_compound_operator_exploration_coefficient() <= 0 && this->multi_armed_bandit_compound_operator_exploration_coefficient() >= 0)) {
2499 total_size += 2 + 8;
2502 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2503 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2504 _internal_metadata_, total_size, &_cached_size_);
2506 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2507 SetCachedSize(cached_size);
2511 void RoutingSearchParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2513 GOOGLE_DCHECK_NE(&from,
this);
2514 const RoutingSearchParameters* source =
2515 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutingSearchParameters>(
2517 if (source ==
nullptr) {
2519 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
2526 void RoutingSearchParameters::MergeFrom(
const RoutingSearchParameters& from) {
2528 GOOGLE_DCHECK_NE(&from,
this);
2529 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2531 (void) cached_has_bits;
2533 if (from.log_tag().size() > 0) {
2534 _internal_set_log_tag(from._internal_log_tag());
2536 if (from.has_local_search_operators()) {
2537 _internal_mutable_local_search_operators()->::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeFrom(from._internal_local_search_operators());
2539 if (from.has_time_limit()) {
2540 _internal_mutable_time_limit()->PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_time_limit());
2542 if (from.has_lns_time_limit()) {
2543 _internal_mutable_lns_time_limit()->PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_lns_time_limit());
2545 if (from.has_improvement_limit_parameters()) {
2546 _internal_mutable_improvement_limit_parameters()->::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters::MergeFrom(from._internal_improvement_limit_parameters());
2548 if (from.first_solution_strategy() != 0) {
2549 _internal_set_first_solution_strategy(from._internal_first_solution_strategy());
2551 if (from.local_search_metaheuristic() != 0) {
2552 _internal_set_local_search_metaheuristic(from._internal_local_search_metaheuristic());
2554 if (!(from.guided_local_search_lambda_coefficient() <= 0 && from.guided_local_search_lambda_coefficient() >= 0)) {
2555 _internal_set_guided_local_search_lambda_coefficient(from._internal_guided_local_search_lambda_coefficient());
2557 if (!(from.optimization_step() <= 0 && from.optimization_step() >= 0)) {
2558 _internal_set_optimization_step(from._internal_optimization_step());
2560 if (from.solution_limit() != 0) {
2561 _internal_set_solution_limit(from._internal_solution_limit());
2563 if (!(from.savings_neighbors_ratio() <= 0 && from.savings_neighbors_ratio() >= 0)) {
2564 _internal_set_savings_neighbors_ratio(from._internal_savings_neighbors_ratio());
2566 if (from.log_search() != 0) {
2567 _internal_set_log_search(from._internal_log_search());
2569 if (from.number_of_solutions_to_collect() != 0) {
2570 _internal_set_number_of_solutions_to_collect(from._internal_number_of_solutions_to_collect());
2572 if (!(from.cheapest_insertion_farthest_seeds_ratio() <= 0 && from.cheapest_insertion_farthest_seeds_ratio() >= 0)) {
2573 _internal_set_cheapest_insertion_farthest_seeds_ratio(from._internal_cheapest_insertion_farthest_seeds_ratio());
2575 if (!(from.savings_arc_coefficient() <= 0 && from.savings_arc_coefficient() >= 0)) {
2576 _internal_set_savings_arc_coefficient(from._internal_savings_arc_coefficient());
2578 if (from.use_unfiltered_first_solution_strategy() != 0) {
2579 _internal_set_use_unfiltered_first_solution_strategy(from._internal_use_unfiltered_first_solution_strategy());
2581 if (from.savings_add_reverse_arcs() != 0) {
2582 _internal_set_savings_add_reverse_arcs(from._internal_savings_add_reverse_arcs());
2584 if (from.savings_parallel_routes() != 0) {
2585 _internal_set_savings_parallel_routes(from._internal_savings_parallel_routes());
2587 if (from.cheapest_insertion_add_unperformed_entries() != 0) {
2588 _internal_set_cheapest_insertion_add_unperformed_entries(from._internal_cheapest_insertion_add_unperformed_entries());
2590 if (from.relocate_expensive_chain_num_arcs_to_consider() != 0) {
2591 _internal_set_relocate_expensive_chain_num_arcs_to_consider(from._internal_relocate_expensive_chain_num_arcs_to_consider());
2593 if (!(from.cheapest_insertion_first_solution_neighbors_ratio() <= 0 && from.cheapest_insertion_first_solution_neighbors_ratio() >= 0)) {
2594 _internal_set_cheapest_insertion_first_solution_neighbors_ratio(from._internal_cheapest_insertion_first_solution_neighbors_ratio());
2596 if (!(from.log_cost_scaling_factor() <= 0 && from.log_cost_scaling_factor() >= 0)) {
2597 _internal_set_log_cost_scaling_factor(from._internal_log_cost_scaling_factor());
2599 if (!(from.savings_max_memory_usage_bytes() <= 0 && from.savings_max_memory_usage_bytes() >= 0)) {
2600 _internal_set_savings_max_memory_usage_bytes(from._internal_savings_max_memory_usage_bytes());
2602 if (from.christofides_use_minimum_matching() != 0) {
2603 _internal_set_christofides_use_minimum_matching(from._internal_christofides_use_minimum_matching());
2605 if (from.use_multi_armed_bandit_concatenate_operators() != 0) {
2606 _internal_set_use_multi_armed_bandit_concatenate_operators(from._internal_use_multi_armed_bandit_concatenate_operators());
2608 if (from.use_depth_first_search() != 0) {
2609 _internal_set_use_depth_first_search(from._internal_use_depth_first_search());
2611 if (from.use_full_propagation() != 0) {
2612 _internal_set_use_full_propagation(from._internal_use_full_propagation());
2614 if (from.use_cp_sat() != 0) {
2615 _internal_set_use_cp_sat(from._internal_use_cp_sat());
2617 if (!(from.log_cost_offset() <= 0 && from.log_cost_offset() >= 0)) {
2618 _internal_set_log_cost_offset(from._internal_log_cost_offset());
2620 if (from.use_cp() != 0) {
2621 _internal_set_use_cp(from._internal_use_cp());
2623 if (from.heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2624 _internal_set_heuristic_expensive_chain_lns_num_arcs_to_consider(from._internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
2626 if (!(from.cheapest_insertion_ls_operator_neighbors_ratio() <= 0 && from.cheapest_insertion_ls_operator_neighbors_ratio() >= 0)) {
2627 _internal_set_cheapest_insertion_ls_operator_neighbors_ratio(from._internal_cheapest_insertion_ls_operator_neighbors_ratio());
2629 if (from.continuous_scheduling_solver() != 0) {
2630 _internal_set_continuous_scheduling_solver(from._internal_continuous_scheduling_solver());
2632 if (from.mixed_integer_scheduling_solver() != 0) {
2633 _internal_set_mixed_integer_scheduling_solver(from._internal_mixed_integer_scheduling_solver());
2635 if (from.heuristic_close_nodes_lns_num_nodes() != 0) {
2636 _internal_set_heuristic_close_nodes_lns_num_nodes(from._internal_heuristic_close_nodes_lns_num_nodes());
2638 if (!(from.multi_armed_bandit_compound_operator_memory_coefficient() <= 0 && from.multi_armed_bandit_compound_operator_memory_coefficient() >= 0)) {
2639 _internal_set_multi_armed_bandit_compound_operator_memory_coefficient(from._internal_multi_armed_bandit_compound_operator_memory_coefficient());
2641 if (!(from.multi_armed_bandit_compound_operator_exploration_coefficient() <= 0 && from.multi_armed_bandit_compound_operator_exploration_coefficient() >= 0)) {
2642 _internal_set_multi_armed_bandit_compound_operator_exploration_coefficient(from._internal_multi_armed_bandit_compound_operator_exploration_coefficient());
2646 void RoutingSearchParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2648 if (&from ==
this)
return;
2653 void RoutingSearchParameters::CopyFrom(
const RoutingSearchParameters& from) {
2655 if (&from ==
this)
return;
2660 bool RoutingSearchParameters::IsInitialized()
const {
2664 void RoutingSearchParameters::InternalSwap(RoutingSearchParameters* other) {
2666 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2667 log_tag_.Swap(&other->log_tag_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2668 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2669 PROTOBUF_FIELD_OFFSET(RoutingSearchParameters, multi_armed_bandit_compound_operator_exploration_coefficient_)
2670 +
sizeof(RoutingSearchParameters::multi_armed_bandit_compound_operator_exploration_coefficient_)
2671 - PROTOBUF_FIELD_OFFSET(RoutingSearchParameters, local_search_operators_)>(
2672 reinterpret_cast<char*
>(&local_search_operators_),
2673 reinterpret_cast<char*
>(&other->local_search_operators_));
2676 ::PROTOBUF_NAMESPACE_ID::Metadata RoutingSearchParameters::GetMetadata()
const {
2677 return GetMetadataStatic();
2685 static const ::operations_research::ConstraintSolverParameters& solver_parameters(
const RoutingModelParameters* msg);
2688 const ::operations_research::ConstraintSolverParameters&
2690 return *msg->solver_parameters_;
2692 void RoutingModelParameters::clear_solver_parameters() {
2693 if (GetArena() ==
nullptr && solver_parameters_ !=
nullptr) {
2694 delete solver_parameters_;
2696 solver_parameters_ =
nullptr;
2698 RoutingModelParameters::RoutingModelParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2699 : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
2701 RegisterArenaDtor(arena);
2704 RoutingModelParameters::RoutingModelParameters(
const RoutingModelParameters& from)
2705 : ::PROTOBUF_NAMESPACE_ID::Message() {
2706 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2707 if (from._internal_has_solver_parameters()) {
2708 solver_parameters_ = new ::operations_research::ConstraintSolverParameters(*from.solver_parameters_);
2710 solver_parameters_ =
nullptr;
2712 ::memcpy(&reduce_vehicle_cost_model_, &from.reduce_vehicle_cost_model_,
2713 static_cast<size_t>(
reinterpret_cast<char*
>(&max_callback_cache_size_) -
2714 reinterpret_cast<char*
>(&reduce_vehicle_cost_model_)) +
sizeof(max_callback_cache_size_));
2718 void RoutingModelParameters::SharedCtor() {
2720 ::memset(
reinterpret_cast<char*
>(
this) +
static_cast<size_t>(
2721 reinterpret_cast<char*
>(&solver_parameters_) -
reinterpret_cast<char*
>(
this)),
2722 0,
static_cast<size_t>(
reinterpret_cast<char*
>(&max_callback_cache_size_) -
2723 reinterpret_cast<char*
>(&solver_parameters_)) +
sizeof(max_callback_cache_size_));
2726 RoutingModelParameters::~RoutingModelParameters() {
2729 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2732 void RoutingModelParameters::SharedDtor() {
2733 GOOGLE_DCHECK(GetArena() ==
nullptr);
2734 if (
this != internal_default_instance())
delete solver_parameters_;
2737 void RoutingModelParameters::ArenaDtor(
void*
object) {
2738 RoutingModelParameters* _this =
reinterpret_cast< RoutingModelParameters*
>(object);
2741 void RoutingModelParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2743 void RoutingModelParameters::SetCachedSize(
int size)
const {
2744 _cached_size_.Set(size);
2746 const RoutingModelParameters& RoutingModelParameters::default_instance() {
2748 return *internal_default_instance();
2752 void RoutingModelParameters::Clear() {
2756 (void) cached_has_bits;
2758 if (GetArena() ==
nullptr && solver_parameters_ !=
nullptr) {
2759 delete solver_parameters_;
2761 solver_parameters_ =
nullptr;
2762 ::memset(&reduce_vehicle_cost_model_, 0,
static_cast<size_t>(
2763 reinterpret_cast<char*
>(&max_callback_cache_size_) -
2764 reinterpret_cast<char*
>(&reduce_vehicle_cost_model_)) +
sizeof(max_callback_cache_size_));
2765 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2768 const char* RoutingModelParameters::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2769 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2770 while (!ctx->Done(&ptr)) {
2772 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2778 ptr = ctx->ParseMessage(_internal_mutable_solver_parameters(), ptr);
2780 }
else goto handle_unusual;
2785 reduce_vehicle_cost_model_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2787 }
else goto handle_unusual;
2792 max_callback_cache_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2794 }
else goto handle_unusual;
2798 if ((tag & 7) == 4 || tag == 0) {
2799 ctx->SetLastTag(tag);
2802 ptr = UnknownFieldParse(tag,
2803 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2805 CHK_(ptr !=
nullptr);
2822 (void) cached_has_bits;
2825 if (this->has_solver_parameters()) {
2826 target = stream->EnsureSpace(target);
2827 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2828 InternalWriteMessage(
2833 if (this->reduce_vehicle_cost_model() != 0) {
2834 target = stream->EnsureSpace(target);
2835 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_reduce_vehicle_cost_model(), target);
2839 if (this->max_callback_cache_size() != 0) {
2840 target = stream->EnsureSpace(target);
2841 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_max_callback_cache_size(), target);
2844 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2845 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2846 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2852 size_t RoutingModelParameters::ByteSizeLong()
const {
2854 size_t total_size = 0;
2858 (void) cached_has_bits;
2861 if (this->has_solver_parameters()) {
2863 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2864 *solver_parameters_);
2868 if (this->reduce_vehicle_cost_model() != 0) {
2869 total_size += 1 + 1;
2873 if (this->max_callback_cache_size() != 0) {
2875 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2876 this->_internal_max_callback_cache_size());
2879 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2880 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2881 _internal_metadata_, total_size, &_cached_size_);
2883 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2884 SetCachedSize(cached_size);
2888 void RoutingModelParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2890 GOOGLE_DCHECK_NE(&from,
this);
2891 const RoutingModelParameters* source =
2892 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutingModelParameters>(
2894 if (source ==
nullptr) {
2896 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
2903 void RoutingModelParameters::MergeFrom(
const RoutingModelParameters& from) {
2905 GOOGLE_DCHECK_NE(&from,
this);
2906 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2908 (void) cached_has_bits;
2910 if (from.has_solver_parameters()) {
2911 _internal_mutable_solver_parameters()->::operations_research::ConstraintSolverParameters::MergeFrom(from._internal_solver_parameters());
2913 if (from.reduce_vehicle_cost_model() != 0) {
2914 _internal_set_reduce_vehicle_cost_model(from._internal_reduce_vehicle_cost_model());
2916 if (from.max_callback_cache_size() != 0) {
2917 _internal_set_max_callback_cache_size(from._internal_max_callback_cache_size());
2921 void RoutingModelParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2923 if (&from ==
this)
return;
2928 void RoutingModelParameters::CopyFrom(
const RoutingModelParameters& from) {
2930 if (&from ==
this)
return;
2935 bool RoutingModelParameters::IsInitialized()
const {
2939 void RoutingModelParameters::InternalSwap(RoutingModelParameters* other) {
2941 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2942 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2943 PROTOBUF_FIELD_OFFSET(RoutingModelParameters, max_callback_cache_size_)
2944 +
sizeof(RoutingModelParameters::max_callback_cache_size_)
2945 - PROTOBUF_FIELD_OFFSET(RoutingModelParameters, solver_parameters_)>(
2946 reinterpret_cast<char*
>(&solver_parameters_),
2947 reinterpret_cast<char*
>(&other->solver_parameters_));
2950 ::PROTOBUF_NAMESPACE_ID::Metadata RoutingModelParameters::GetMetadata()
const {
2951 return GetMetadataStatic();
2957 PROTOBUF_NAMESPACE_OPEN
2959 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators >(arena);
2962 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters >(arena);
2965 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters >(arena);
2968 return Arena::CreateMessageInternal< ::operations_research::RoutingModelParameters >(arena);
2970 PROTOBUF_NAMESPACE_CLOSE
2973 #include <google/protobuf/port_undef.inc>