8 #include <google/protobuf/io/coded_stream.h>
9 #include <google/protobuf/extension_set.h>
10 #include <google/protobuf/wire_format_lite.h>
11 #include <google/protobuf/descriptor.h>
12 #include <google/protobuf/generated_message_reflection.h>
13 #include <google/protobuf/reflection_ops.h>
14 #include <google/protobuf/wire_format.h>
16 #include <google/protobuf/port_def.inc>
23 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RoutingSearchParameters_LocalSearchNeighborhoodOperators>
_instance;
27 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RoutingSearchParameters>
_instance;
31 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RoutingModelParameters>
_instance;
35 GOOGLE_PROTOBUF_VERIFY_VERSION;
40 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
42 ::operations_research::RoutingModelParameters::InitAsDefaultInstance();
50 GOOGLE_PROTOBUF_VERIFY_VERSION;
55 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
57 ::operations_research::RoutingSearchParameters::InitAsDefaultInstance();
66 GOOGLE_PROTOBUF_VERIFY_VERSION;
71 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
73 ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators::InitAsDefaultInstance();
168 { 0, -1,
sizeof(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators)},
169 { 37, -1,
sizeof(::operations_research::RoutingSearchParameters)},
170 { 74, -1,
sizeof(::operations_research::RoutingModelParameters)},
179 const char descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[]
PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
180 "\n2ortools/constraint_solver/routing_para"
181 "meters.proto\022\023operations_research\032\036googl"
182 "e/protobuf/duration.proto\032-ortools/const"
183 "raint_solver/routing_enums.proto\0321ortool"
184 "s/constraint_solver/solver_parameters.pr"
185 "oto\032#ortools/util/optional_boolean.proto"
186 "\"\350\036\n\027RoutingSearchParameters\022Q\n\027first_so"
187 "lution_strategy\030\001 \001(\01620.operations_resea"
188 "rch.FirstSolutionStrategy.Value\022.\n&use_u"
189 "nfiltered_first_solution_strategy\030\002 \001(\010\022"
190 "\037\n\027savings_neighbors_ratio\030\016 \001(\001\022&\n\036savi"
191 "ngs_max_memory_usage_bytes\030\027 \001(\001\022 \n\030savi"
192 "ngs_add_reverse_arcs\030\017 \001(\010\022\037\n\027savings_ar"
193 "c_coefficient\030\022 \001(\001\022\037\n\027savings_parallel_"
194 "routes\030\023 \001(\010\022/\n\'cheapest_insertion_farth"
195 "est_seeds_ratio\030\020 \001(\001\0229\n1cheapest_insert"
196 "ion_first_solution_neighbors_ratio\030\025 \001(\001"
197 "\0226\n.cheapest_insertion_ls_operator_neigh"
198 "bors_ratio\030\037 \001(\001\022)\n!christofides_use_min"
199 "imum_matching\030\036 \001(\010\022m\n\026local_search_oper"
200 "ators\030\003 \001(\0132M.operations_research.Routin"
201 "gSearchParameters.LocalSearchNeighborhoo"
202 "dOperators\0225\n-relocate_expensive_chain_n"
203 "um_arcs_to_consider\030\024 \001(\005\022:\n2heuristic_e"
204 "xpensive_chain_lns_num_arcs_to_consider\030"
205 " \001(\005\022+\n#heuristic_close_nodes_lns_num_n"
206 "odes\030# \001(\005\022W\n\032local_search_metaheuristic"
207 "\030\004 \001(\01623.operations_research.LocalSearch"
208 "Metaheuristic.Value\022.\n&guided_local_sear"
209 "ch_lambda_coefficient\030\005 \001(\001\022\036\n\026use_depth"
210 "_first_search\030\006 \001(\010\0224\n\006use_cp\030\034 \001(\0162$.op"
211 "erations_research.OptionalBoolean\0228\n\nuse"
212 "_cp_sat\030\033 \001(\0162$.operations_research.Opti"
213 "onalBoolean\022c\n\034continuous_scheduling_sol"
214 "ver\030! \001(\0162=.operations_research.RoutingS"
215 "earchParameters.SchedulingSolver\022f\n\037mixe"
216 "d_integer_scheduling_solver\030\" \001(\0162=.oper"
217 "ations_research.RoutingSearchParameters."
218 "SchedulingSolver\022\031\n\021optimization_step\030\007 "
219 "\001(\001\022&\n\036number_of_solutions_to_collect\030\021 "
220 "\001(\005\022\026\n\016solution_limit\030\010 \001(\003\022-\n\ntime_limi"
221 "t\030\t \001(\0132\031.google.protobuf.Duration\0221\n\016ln"
222 "s_time_limit\030\n \001(\0132\031.google.protobuf.Dur"
223 "ation\022\034\n\024use_full_propagation\030\013 \001(\010\022\022\n\nl"
224 "og_search\030\r \001(\010\022\037\n\027log_cost_scaling_fact"
225 "or\030\026 \001(\001\022\027\n\017log_cost_offset\030\035 \001(\001\022\017\n\007log"
226 "_tag\030$ \001(\t\032\351\021\n LocalSearchNeighborhoodOp"
227 "erators\022:\n\014use_relocate\030\001 \001(\0162$.operatio"
228 "ns_research.OptionalBoolean\022\?\n\021use_reloc"
229 "ate_pair\030\002 \001(\0162$.operations_research.Opt"
230 "ionalBoolean\022E\n\027use_light_relocate_pair\030"
231 "\030 \001(\0162$.operations_research.OptionalBool"
232 "ean\022D\n\026use_relocate_neighbors\030\003 \001(\0162$.op"
233 "erations_research.OptionalBoolean\022B\n\024use"
234 "_relocate_subtrip\030\031 \001(\0162$.operations_res"
235 "earch.OptionalBoolean\022:\n\014use_exchange\030\004 "
236 "\001(\0162$.operations_research.OptionalBoolea"
237 "n\022\?\n\021use_exchange_pair\030\026 \001(\0162$.operation"
238 "s_research.OptionalBoolean\022B\n\024use_exchan"
239 "ge_subtrip\030\032 \001(\0162$.operations_research.O"
240 "ptionalBoolean\0227\n\tuse_cross\030\005 \001(\0162$.oper"
241 "ations_research.OptionalBoolean\022@\n\022use_c"
242 "ross_exchange\030\006 \001(\0162$.operations_researc"
243 "h.OptionalBoolean\022J\n\034use_relocate_expens"
244 "ive_chain\030\027 \001(\0162$.operations_research.Op"
245 "tionalBoolean\0229\n\013use_two_opt\030\007 \001(\0162$.ope"
246 "rations_research.OptionalBoolean\0228\n\nuse_"
247 "or_opt\030\010 \001(\0162$.operations_research.Optio"
248 "nalBoolean\022\?\n\021use_lin_kernighan\030\t \001(\0162$."
249 "operations_research.OptionalBoolean\0229\n\013u"
250 "se_tsp_opt\030\n \001(\0162$.operations_research.O"
251 "ptionalBoolean\022=\n\017use_make_active\030\013 \001(\0162"
252 "$.operations_research.OptionalBoolean\022J\n"
253 "\034use_relocate_and_make_active\030\025 \001(\0162$.op"
254 "erations_research.OptionalBoolean\022\?\n\021use"
255 "_make_inactive\030\014 \001(\0162$.operations_resear"
256 "ch.OptionalBoolean\022E\n\027use_make_chain_ina"
257 "ctive\030\r \001(\0162$.operations_research.Option"
258 "alBoolean\022=\n\017use_swap_active\030\016 \001(\0162$.ope"
259 "rations_research.OptionalBoolean\022F\n\030use_"
260 "extended_swap_active\030\017 \001(\0162$.operations_"
261 "research.OptionalBoolean\022G\n\031use_node_pai"
262 "r_swap_active\030\024 \001(\0162$.operations_researc"
263 "h.OptionalBoolean\022:\n\014use_path_lns\030\020 \001(\0162"
264 "$.operations_research.OptionalBoolean\022\?\n"
265 "\021use_full_path_lns\030\021 \001(\0162$.operations_re"
266 "search.OptionalBoolean\0229\n\013use_tsp_lns\030\022 "
267 "\001(\0162$.operations_research.OptionalBoolea"
268 "n\022>\n\020use_inactive_lns\030\023 \001(\0162$.operations"
269 "_research.OptionalBoolean\022T\n&use_global_"
270 "cheapest_insertion_path_lns\030\033 \001(\0162$.oper"
271 "ations_research.OptionalBoolean\022S\n%use_l"
272 "ocal_cheapest_insertion_path_lns\030\034 \001(\0162$"
273 ".operations_research.OptionalBoolean\022_\n1"
274 "use_global_cheapest_insertion_expensive_"
275 "chain_lns\030\035 \001(\0162$.operations_research.Op"
276 "tionalBoolean\022^\n0use_local_cheapest_inse"
277 "rtion_expensive_chain_lns\030\036 \001(\0162$.operat"
278 "ions_research.OptionalBoolean\022[\n-use_glo"
279 "bal_cheapest_insertion_close_nodes_lns\030\037"
280 " \001(\0162$.operations_research.OptionalBoole"
281 "an\022Z\n,use_local_cheapest_insertion_close"
282 "_nodes_lns\030 \001(\0162$.operations_research.O"
283 "ptionalBoolean\"3\n\020SchedulingSolver\022\t\n\005UN"
284 "SET\020\000\022\010\n\004GLOP\020\001\022\n\n\006CP_SAT\020\002\"\250\001\n\026RoutingM"
285 "odelParameters\022J\n\021solver_parameters\030\001 \001("
286 "\0132/.operations_research.ConstraintSolver"
287 "Parameters\022!\n\031reduce_vehicle_cost_model\030"
288 "\002 \001(\010\022\037\n\027max_callback_cache_size\030\003 \001(\005BI"
289 "\n#com.google.ortools.constraintsolverP\001\252"
290 "\002\037Google.OrTools.ConstraintSolverb\006proto"
294 &::descriptor_table_google_2fprotobuf_2fduration_2eproto,
306 false,
false, descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto,
"ortools/constraint_solver/routing_parameters.proto", 4441,
330 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
336 constexpr
int RoutingSearchParameters::SchedulingSolver_ARRAYSIZE;
337 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
341 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::InitAsDefaultInstance() {
347 RoutingSearchParameters_LocalSearchNeighborhoodOperators::RoutingSearchParameters_LocalSearchNeighborhoodOperators(::PROTOBUF_NAMESPACE_ID::Arena* arena)
348 : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
350 RegisterArenaDtor(arena);
353 RoutingSearchParameters_LocalSearchNeighborhoodOperators::RoutingSearchParameters_LocalSearchNeighborhoodOperators(
const RoutingSearchParameters_LocalSearchNeighborhoodOperators& from)
354 : ::PROTOBUF_NAMESPACE_ID::Message() {
355 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
356 ::memcpy(&use_relocate_, &from.use_relocate_,
357 static_cast<size_t>(
reinterpret_cast<char*
>(&use_local_cheapest_insertion_close_nodes_lns_) -
358 reinterpret_cast<char*
>(&use_relocate_)) +
sizeof(use_local_cheapest_insertion_close_nodes_lns_));
362 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedCtor() {
363 ::memset(&use_relocate_, 0,
static_cast<size_t>(
364 reinterpret_cast<char*
>(&use_local_cheapest_insertion_close_nodes_lns_) -
365 reinterpret_cast<char*
>(&use_relocate_)) +
sizeof(use_local_cheapest_insertion_close_nodes_lns_));
368 RoutingSearchParameters_LocalSearchNeighborhoodOperators::~RoutingSearchParameters_LocalSearchNeighborhoodOperators() {
371 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
374 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedDtor() {
375 GOOGLE_DCHECK(GetArena() ==
nullptr);
378 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::ArenaDtor(
void*
object) {
379 RoutingSearchParameters_LocalSearchNeighborhoodOperators* _this =
reinterpret_cast< RoutingSearchParameters_LocalSearchNeighborhoodOperators*
>(object);
382 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
384 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SetCachedSize(
int size)
const {
385 _cached_size_.Set(size);
387 const RoutingSearchParameters_LocalSearchNeighborhoodOperators& RoutingSearchParameters_LocalSearchNeighborhoodOperators::default_instance() {
389 return *internal_default_instance();
393 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::Clear() {
397 (void) cached_has_bits;
399 ::memset(&use_relocate_, 0,
static_cast<size_t>(
400 reinterpret_cast<char*
>(&use_local_cheapest_insertion_close_nodes_lns_) -
401 reinterpret_cast<char*
>(&use_relocate_)) +
sizeof(use_local_cheapest_insertion_close_nodes_lns_));
402 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
405 const char* RoutingSearchParameters_LocalSearchNeighborhoodOperators::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
406 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
407 ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
408 while (!ctx->Done(&ptr)) {
410 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
419 }
else goto handle_unusual;
427 }
else goto handle_unusual;
435 }
else goto handle_unusual;
443 }
else goto handle_unusual;
451 }
else goto handle_unusual;
459 }
else goto handle_unusual;
467 }
else goto handle_unusual;
475 }
else goto handle_unusual;
483 }
else goto handle_unusual;
491 }
else goto handle_unusual;
499 }
else goto handle_unusual;
507 }
else goto handle_unusual;
515 }
else goto handle_unusual;
523 }
else goto handle_unusual;
531 }
else goto handle_unusual;
539 }
else goto handle_unusual;
547 }
else goto handle_unusual;
555 }
else goto handle_unusual;
563 }
else goto handle_unusual;
571 }
else goto handle_unusual;
579 }
else goto handle_unusual;
587 }
else goto handle_unusual;
595 }
else goto handle_unusual;
603 }
else goto handle_unusual;
611 }
else goto handle_unusual;
619 }
else goto handle_unusual;
627 }
else goto handle_unusual;
635 }
else goto handle_unusual;
643 }
else goto handle_unusual;
651 }
else goto handle_unusual;
659 }
else goto handle_unusual;
667 }
else goto handle_unusual;
671 if ((tag & 7) == 4 || tag == 0) {
672 ctx->SetLastTag(tag);
675 ptr = UnknownFieldParse(tag,
676 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
678 CHK_(ptr !=
nullptr);
695 (void) cached_has_bits;
698 if (this->use_relocate() != 0) {
699 target = stream->EnsureSpace(target);
700 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
701 1, this->_internal_use_relocate(), target);
705 if (this->use_relocate_pair() != 0) {
706 target = stream->EnsureSpace(target);
707 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
708 2, this->_internal_use_relocate_pair(), target);
712 if (this->use_relocate_neighbors() != 0) {
713 target = stream->EnsureSpace(target);
714 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
715 3, this->_internal_use_relocate_neighbors(), target);
719 if (this->use_exchange() != 0) {
720 target = stream->EnsureSpace(target);
721 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
722 4, this->_internal_use_exchange(), target);
726 if (this->use_cross() != 0) {
727 target = stream->EnsureSpace(target);
728 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
729 5, this->_internal_use_cross(), target);
733 if (this->use_cross_exchange() != 0) {
734 target = stream->EnsureSpace(target);
735 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
736 6, this->_internal_use_cross_exchange(), target);
740 if (this->use_two_opt() != 0) {
741 target = stream->EnsureSpace(target);
742 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
743 7, this->_internal_use_two_opt(), target);
747 if (this->use_or_opt() != 0) {
748 target = stream->EnsureSpace(target);
749 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
750 8, this->_internal_use_or_opt(), target);
754 if (this->use_lin_kernighan() != 0) {
755 target = stream->EnsureSpace(target);
756 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
757 9, this->_internal_use_lin_kernighan(), target);
761 if (this->use_tsp_opt() != 0) {
762 target = stream->EnsureSpace(target);
763 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
764 10, this->_internal_use_tsp_opt(), target);
768 if (this->use_make_active() != 0) {
769 target = stream->EnsureSpace(target);
770 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
771 11, this->_internal_use_make_active(), target);
775 if (this->use_make_inactive() != 0) {
776 target = stream->EnsureSpace(target);
777 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
778 12, this->_internal_use_make_inactive(), target);
782 if (this->use_make_chain_inactive() != 0) {
783 target = stream->EnsureSpace(target);
784 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
785 13, this->_internal_use_make_chain_inactive(), target);
789 if (this->use_swap_active() != 0) {
790 target = stream->EnsureSpace(target);
791 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
792 14, this->_internal_use_swap_active(), target);
796 if (this->use_extended_swap_active() != 0) {
797 target = stream->EnsureSpace(target);
798 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
799 15, this->_internal_use_extended_swap_active(), target);
803 if (this->use_path_lns() != 0) {
804 target = stream->EnsureSpace(target);
805 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
806 16, this->_internal_use_path_lns(), target);
810 if (this->use_full_path_lns() != 0) {
811 target = stream->EnsureSpace(target);
812 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
813 17, this->_internal_use_full_path_lns(), target);
817 if (this->use_tsp_lns() != 0) {
818 target = stream->EnsureSpace(target);
819 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
820 18, this->_internal_use_tsp_lns(), target);
824 if (this->use_inactive_lns() != 0) {
825 target = stream->EnsureSpace(target);
826 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
827 19, this->_internal_use_inactive_lns(), target);
831 if (this->use_node_pair_swap_active() != 0) {
832 target = stream->EnsureSpace(target);
833 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
834 20, this->_internal_use_node_pair_swap_active(), target);
838 if (this->use_relocate_and_make_active() != 0) {
839 target = stream->EnsureSpace(target);
840 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
841 21, this->_internal_use_relocate_and_make_active(), target);
845 if (this->use_exchange_pair() != 0) {
846 target = stream->EnsureSpace(target);
847 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
848 22, this->_internal_use_exchange_pair(), target);
852 if (this->use_relocate_expensive_chain() != 0) {
853 target = stream->EnsureSpace(target);
854 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
855 23, this->_internal_use_relocate_expensive_chain(), target);
859 if (this->use_light_relocate_pair() != 0) {
860 target = stream->EnsureSpace(target);
861 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
862 24, this->_internal_use_light_relocate_pair(), target);
866 if (this->use_relocate_subtrip() != 0) {
867 target = stream->EnsureSpace(target);
868 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
869 25, this->_internal_use_relocate_subtrip(), target);
873 if (this->use_exchange_subtrip() != 0) {
874 target = stream->EnsureSpace(target);
875 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
876 26, this->_internal_use_exchange_subtrip(), target);
880 if (this->use_global_cheapest_insertion_path_lns() != 0) {
881 target = stream->EnsureSpace(target);
882 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
883 27, this->_internal_use_global_cheapest_insertion_path_lns(), target);
887 if (this->use_local_cheapest_insertion_path_lns() != 0) {
888 target = stream->EnsureSpace(target);
889 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
890 28, this->_internal_use_local_cheapest_insertion_path_lns(), target);
894 if (this->use_global_cheapest_insertion_expensive_chain_lns() != 0) {
895 target = stream->EnsureSpace(target);
896 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
897 29, this->_internal_use_global_cheapest_insertion_expensive_chain_lns(), target);
901 if (this->use_local_cheapest_insertion_expensive_chain_lns() != 0) {
902 target = stream->EnsureSpace(target);
903 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
904 30, this->_internal_use_local_cheapest_insertion_expensive_chain_lns(), target);
908 if (this->use_global_cheapest_insertion_close_nodes_lns() != 0) {
909 target = stream->EnsureSpace(target);
910 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
911 31, this->_internal_use_global_cheapest_insertion_close_nodes_lns(), target);
915 if (this->use_local_cheapest_insertion_close_nodes_lns() != 0) {
916 target = stream->EnsureSpace(target);
917 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
918 32, this->_internal_use_local_cheapest_insertion_close_nodes_lns(), target);
921 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
922 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
923 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
929 size_t RoutingSearchParameters_LocalSearchNeighborhoodOperators::ByteSizeLong()
const {
931 size_t total_size = 0;
935 (void) cached_has_bits;
938 if (this->use_relocate() != 0) {
940 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate());
944 if (this->use_relocate_pair() != 0) {
946 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_pair());
950 if (this->use_relocate_neighbors() != 0) {
952 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_neighbors());
956 if (this->use_exchange() != 0) {
958 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange());
962 if (this->use_cross() != 0) {
964 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cross());
968 if (this->use_cross_exchange() != 0) {
970 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cross_exchange());
974 if (this->use_two_opt() != 0) {
976 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_two_opt());
980 if (this->use_or_opt() != 0) {
982 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_or_opt());
986 if (this->use_lin_kernighan() != 0) {
988 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_lin_kernighan());
992 if (this->use_tsp_opt() != 0) {
994 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_tsp_opt());
998 if (this->use_make_active() != 0) {
1000 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_active());
1004 if (this->use_make_inactive() != 0) {
1006 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_inactive());
1010 if (this->use_make_chain_inactive() != 0) {
1012 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_chain_inactive());
1016 if (this->use_swap_active() != 0) {
1018 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_swap_active());
1022 if (this->use_extended_swap_active() != 0) {
1024 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_extended_swap_active());
1028 if (this->use_path_lns() != 0) {
1030 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_path_lns());
1034 if (this->use_full_path_lns() != 0) {
1036 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_full_path_lns());
1040 if (this->use_tsp_lns() != 0) {
1042 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_tsp_lns());
1046 if (this->use_inactive_lns() != 0) {
1048 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_inactive_lns());
1052 if (this->use_node_pair_swap_active() != 0) {
1054 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_node_pair_swap_active());
1058 if (this->use_relocate_and_make_active() != 0) {
1060 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_and_make_active());
1064 if (this->use_exchange_pair() != 0) {
1066 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange_pair());
1070 if (this->use_relocate_expensive_chain() != 0) {
1072 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_expensive_chain());
1076 if (this->use_light_relocate_pair() != 0) {
1078 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_light_relocate_pair());
1082 if (this->use_relocate_subtrip() != 0) {
1084 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_subtrip());
1088 if (this->use_exchange_subtrip() != 0) {
1090 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange_subtrip());
1094 if (this->use_global_cheapest_insertion_path_lns() != 0) {
1096 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_path_lns());
1100 if (this->use_local_cheapest_insertion_path_lns() != 0) {
1102 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_path_lns());
1106 if (this->use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1108 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_expensive_chain_lns());
1112 if (this->use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1114 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_expensive_chain_lns());
1118 if (this->use_global_cheapest_insertion_close_nodes_lns() != 0) {
1120 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_close_nodes_lns());
1124 if (this->use_local_cheapest_insertion_close_nodes_lns() != 0) {
1126 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_close_nodes_lns());
1129 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1130 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1131 _internal_metadata_, total_size, &_cached_size_);
1133 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1134 SetCachedSize(cached_size);
1138 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1140 GOOGLE_DCHECK_NE(&from,
this);
1141 const RoutingSearchParameters_LocalSearchNeighborhoodOperators* source =
1142 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutingSearchParameters_LocalSearchNeighborhoodOperators>(
1144 if (source ==
nullptr) {
1146 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
1153 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeFrom(
const RoutingSearchParameters_LocalSearchNeighborhoodOperators& from) {
1155 GOOGLE_DCHECK_NE(&from,
this);
1156 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1158 (void) cached_has_bits;
1160 if (from.use_relocate() != 0) {
1161 _internal_set_use_relocate(from._internal_use_relocate());
1163 if (from.use_relocate_pair() != 0) {
1164 _internal_set_use_relocate_pair(from._internal_use_relocate_pair());
1166 if (from.use_relocate_neighbors() != 0) {
1167 _internal_set_use_relocate_neighbors(from._internal_use_relocate_neighbors());
1169 if (from.use_exchange() != 0) {
1170 _internal_set_use_exchange(from._internal_use_exchange());
1172 if (from.use_cross() != 0) {
1173 _internal_set_use_cross(from._internal_use_cross());
1175 if (from.use_cross_exchange() != 0) {
1176 _internal_set_use_cross_exchange(from._internal_use_cross_exchange());
1178 if (from.use_two_opt() != 0) {
1179 _internal_set_use_two_opt(from._internal_use_two_opt());
1181 if (from.use_or_opt() != 0) {
1182 _internal_set_use_or_opt(from._internal_use_or_opt());
1184 if (from.use_lin_kernighan() != 0) {
1185 _internal_set_use_lin_kernighan(from._internal_use_lin_kernighan());
1187 if (from.use_tsp_opt() != 0) {
1188 _internal_set_use_tsp_opt(from._internal_use_tsp_opt());
1190 if (from.use_make_active() != 0) {
1191 _internal_set_use_make_active(from._internal_use_make_active());
1193 if (from.use_make_inactive() != 0) {
1194 _internal_set_use_make_inactive(from._internal_use_make_inactive());
1196 if (from.use_make_chain_inactive() != 0) {
1197 _internal_set_use_make_chain_inactive(from._internal_use_make_chain_inactive());
1199 if (from.use_swap_active() != 0) {
1200 _internal_set_use_swap_active(from._internal_use_swap_active());
1202 if (from.use_extended_swap_active() != 0) {
1203 _internal_set_use_extended_swap_active(from._internal_use_extended_swap_active());
1205 if (from.use_path_lns() != 0) {
1206 _internal_set_use_path_lns(from._internal_use_path_lns());
1208 if (from.use_full_path_lns() != 0) {
1209 _internal_set_use_full_path_lns(from._internal_use_full_path_lns());
1211 if (from.use_tsp_lns() != 0) {
1212 _internal_set_use_tsp_lns(from._internal_use_tsp_lns());
1214 if (from.use_inactive_lns() != 0) {
1215 _internal_set_use_inactive_lns(from._internal_use_inactive_lns());
1217 if (from.use_node_pair_swap_active() != 0) {
1218 _internal_set_use_node_pair_swap_active(from._internal_use_node_pair_swap_active());
1220 if (from.use_relocate_and_make_active() != 0) {
1221 _internal_set_use_relocate_and_make_active(from._internal_use_relocate_and_make_active());
1223 if (from.use_exchange_pair() != 0) {
1224 _internal_set_use_exchange_pair(from._internal_use_exchange_pair());
1226 if (from.use_relocate_expensive_chain() != 0) {
1227 _internal_set_use_relocate_expensive_chain(from._internal_use_relocate_expensive_chain());
1229 if (from.use_light_relocate_pair() != 0) {
1230 _internal_set_use_light_relocate_pair(from._internal_use_light_relocate_pair());
1232 if (from.use_relocate_subtrip() != 0) {
1233 _internal_set_use_relocate_subtrip(from._internal_use_relocate_subtrip());
1235 if (from.use_exchange_subtrip() != 0) {
1236 _internal_set_use_exchange_subtrip(from._internal_use_exchange_subtrip());
1238 if (from.use_global_cheapest_insertion_path_lns() != 0) {
1239 _internal_set_use_global_cheapest_insertion_path_lns(from._internal_use_global_cheapest_insertion_path_lns());
1241 if (from.use_local_cheapest_insertion_path_lns() != 0) {
1242 _internal_set_use_local_cheapest_insertion_path_lns(from._internal_use_local_cheapest_insertion_path_lns());
1244 if (from.use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1245 _internal_set_use_global_cheapest_insertion_expensive_chain_lns(from._internal_use_global_cheapest_insertion_expensive_chain_lns());
1247 if (from.use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1248 _internal_set_use_local_cheapest_insertion_expensive_chain_lns(from._internal_use_local_cheapest_insertion_expensive_chain_lns());
1250 if (from.use_global_cheapest_insertion_close_nodes_lns() != 0) {
1251 _internal_set_use_global_cheapest_insertion_close_nodes_lns(from._internal_use_global_cheapest_insertion_close_nodes_lns());
1253 if (from.use_local_cheapest_insertion_close_nodes_lns() != 0) {
1254 _internal_set_use_local_cheapest_insertion_close_nodes_lns(from._internal_use_local_cheapest_insertion_close_nodes_lns());
1258 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1260 if (&from ==
this)
return;
1265 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::CopyFrom(
const RoutingSearchParameters_LocalSearchNeighborhoodOperators& from) {
1267 if (&from ==
this)
return;
1272 bool RoutingSearchParameters_LocalSearchNeighborhoodOperators::IsInitialized()
const {
1276 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::InternalSwap(RoutingSearchParameters_LocalSearchNeighborhoodOperators* other) {
1278 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1279 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1280 PROTOBUF_FIELD_OFFSET(RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_local_cheapest_insertion_close_nodes_lns_)
1281 +
sizeof(RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_local_cheapest_insertion_close_nodes_lns_)
1282 - PROTOBUF_FIELD_OFFSET(RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_)>(
1283 reinterpret_cast<char*
>(&use_relocate_),
1284 reinterpret_cast<char*
>(&other->use_relocate_));
1287 ::PROTOBUF_NAMESPACE_ID::Metadata RoutingSearchParameters_LocalSearchNeighborhoodOperators::GetMetadata()
const {
1288 return GetMetadataStatic();
1294 void RoutingSearchParameters::InitAsDefaultInstance() {
1296 ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators::internal_default_instance());
1298 PROTOBUF_NAMESPACE_ID::Duration::internal_default_instance());
1300 PROTOBUF_NAMESPACE_ID::Duration::internal_default_instance());
1304 static const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators& local_search_operators(
const RoutingSearchParameters* msg);
1305 static const PROTOBUF_NAMESPACE_ID::Duration&
time_limit(
const RoutingSearchParameters* msg);
1306 static const PROTOBUF_NAMESPACE_ID::Duration& lns_time_limit(
const RoutingSearchParameters* msg);
1309 const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators&
1311 return *msg->local_search_operators_;
1313 const PROTOBUF_NAMESPACE_ID::Duration&
1315 return *msg->time_limit_;
1317 const PROTOBUF_NAMESPACE_ID::Duration&
1319 return *msg->lns_time_limit_;
1321 void RoutingSearchParameters::clear_time_limit() {
1322 if (GetArena() ==
nullptr && time_limit_ !=
nullptr) {
1325 time_limit_ =
nullptr;
1327 void RoutingSearchParameters::clear_lns_time_limit() {
1328 if (GetArena() ==
nullptr && lns_time_limit_ !=
nullptr) {
1329 delete lns_time_limit_;
1331 lns_time_limit_ =
nullptr;
1333 RoutingSearchParameters::RoutingSearchParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1334 : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
1336 RegisterArenaDtor(arena);
1339 RoutingSearchParameters::RoutingSearchParameters(
const RoutingSearchParameters& from)
1340 : ::PROTOBUF_NAMESPACE_ID::Message() {
1341 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1342 log_tag_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1343 if (!from._internal_log_tag().empty()) {
1344 log_tag_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_log_tag(),
1347 if (from._internal_has_local_search_operators()) {
1348 local_search_operators_ = new ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators(*from.local_search_operators_);
1350 local_search_operators_ =
nullptr;
1352 if (from._internal_has_time_limit()) {
1353 time_limit_ =
new PROTOBUF_NAMESPACE_ID::Duration(*from.time_limit_);
1355 time_limit_ =
nullptr;
1357 if (from._internal_has_lns_time_limit()) {
1358 lns_time_limit_ =
new PROTOBUF_NAMESPACE_ID::Duration(*from.lns_time_limit_);
1360 lns_time_limit_ =
nullptr;
1362 ::memcpy(&first_solution_strategy_, &from.first_solution_strategy_,
1363 static_cast<size_t>(
reinterpret_cast<char*
>(&heuristic_close_nodes_lns_num_nodes_) -
1364 reinterpret_cast<char*
>(&first_solution_strategy_)) +
sizeof(heuristic_close_nodes_lns_num_nodes_));
1368 void RoutingSearchParameters::SharedCtor() {
1370 log_tag_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1371 ::memset(&local_search_operators_, 0,
static_cast<size_t>(
1372 reinterpret_cast<char*
>(&heuristic_close_nodes_lns_num_nodes_) -
1373 reinterpret_cast<char*
>(&local_search_operators_)) +
sizeof(heuristic_close_nodes_lns_num_nodes_));
1376 RoutingSearchParameters::~RoutingSearchParameters() {
1379 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1382 void RoutingSearchParameters::SharedDtor() {
1383 GOOGLE_DCHECK(GetArena() ==
nullptr);
1384 log_tag_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1385 if (
this != internal_default_instance())
delete local_search_operators_;
1386 if (
this != internal_default_instance())
delete time_limit_;
1387 if (
this != internal_default_instance())
delete lns_time_limit_;
1390 void RoutingSearchParameters::ArenaDtor(
void*
object) {
1391 RoutingSearchParameters* _this =
reinterpret_cast< RoutingSearchParameters*
>(object);
1394 void RoutingSearchParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1396 void RoutingSearchParameters::SetCachedSize(
int size)
const {
1397 _cached_size_.Set(size);
1399 const RoutingSearchParameters& RoutingSearchParameters::default_instance() {
1401 return *internal_default_instance();
1405 void RoutingSearchParameters::Clear() {
1409 (void) cached_has_bits;
1411 log_tag_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
1412 if (GetArena() ==
nullptr && local_search_operators_ !=
nullptr) {
1413 delete local_search_operators_;
1415 local_search_operators_ =
nullptr;
1416 if (GetArena() ==
nullptr && time_limit_ !=
nullptr) {
1419 time_limit_ =
nullptr;
1420 if (GetArena() ==
nullptr && lns_time_limit_ !=
nullptr) {
1421 delete lns_time_limit_;
1423 lns_time_limit_ =
nullptr;
1424 ::memset(&first_solution_strategy_, 0,
static_cast<size_t>(
1425 reinterpret_cast<char*
>(&heuristic_close_nodes_lns_num_nodes_) -
1426 reinterpret_cast<char*
>(&first_solution_strategy_)) +
sizeof(heuristic_close_nodes_lns_num_nodes_));
1427 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1430 const char* RoutingSearchParameters::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1431 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1432 ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
1433 while (!ctx->Done(&ptr)) {
1435 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1444 }
else goto handle_unusual;
1449 use_unfiltered_first_solution_strategy_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1451 }
else goto handle_unusual;
1456 ptr = ctx->ParseMessage(_internal_mutable_local_search_operators(), ptr);
1458 }
else goto handle_unusual;
1466 }
else goto handle_unusual;
1471 guided_local_search_lambda_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1472 ptr +=
sizeof(double);
1473 }
else goto handle_unusual;
1478 use_depth_first_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1480 }
else goto handle_unusual;
1485 optimization_step_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1486 ptr +=
sizeof(double);
1487 }
else goto handle_unusual;
1492 solution_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1494 }
else goto handle_unusual;
1499 ptr = ctx->ParseMessage(_internal_mutable_time_limit(), ptr);
1501 }
else goto handle_unusual;
1506 ptr = ctx->ParseMessage(_internal_mutable_lns_time_limit(), ptr);
1508 }
else goto handle_unusual;
1513 use_full_propagation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1515 }
else goto handle_unusual;
1520 log_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1522 }
else goto handle_unusual;
1527 savings_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1528 ptr +=
sizeof(double);
1529 }
else goto handle_unusual;
1534 savings_add_reverse_arcs_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1536 }
else goto handle_unusual;
1541 cheapest_insertion_farthest_seeds_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1542 ptr +=
sizeof(double);
1543 }
else goto handle_unusual;
1548 number_of_solutions_to_collect_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1550 }
else goto handle_unusual;
1555 savings_arc_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1556 ptr +=
sizeof(double);
1557 }
else goto handle_unusual;
1562 savings_parallel_routes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1564 }
else goto handle_unusual;
1569 relocate_expensive_chain_num_arcs_to_consider_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1571 }
else goto handle_unusual;
1576 cheapest_insertion_first_solution_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1577 ptr +=
sizeof(double);
1578 }
else goto handle_unusual;
1583 log_cost_scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1584 ptr +=
sizeof(double);
1585 }
else goto handle_unusual;
1590 savings_max_memory_usage_bytes_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1591 ptr +=
sizeof(double);
1592 }
else goto handle_unusual;
1600 }
else goto handle_unusual;
1608 }
else goto handle_unusual;
1613 log_cost_offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1614 ptr +=
sizeof(double);
1615 }
else goto handle_unusual;
1620 christofides_use_minimum_matching_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1622 }
else goto handle_unusual;
1627 cheapest_insertion_ls_operator_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1628 ptr +=
sizeof(double);
1629 }
else goto handle_unusual;
1634 heuristic_expensive_chain_lns_num_arcs_to_consider_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1636 }
else goto handle_unusual;
1644 }
else goto handle_unusual;
1652 }
else goto handle_unusual;
1657 heuristic_close_nodes_lns_num_nodes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1659 }
else goto handle_unusual;
1664 auto str = _internal_mutable_log_tag();
1665 ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1666 CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str,
"operations_research.RoutingSearchParameters.log_tag"));
1668 }
else goto handle_unusual;
1672 if ((tag & 7) == 4 || tag == 0) {
1673 ctx->SetLastTag(tag);
1676 ptr = UnknownFieldParse(tag,
1677 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1679 CHK_(ptr !=
nullptr);
1696 (void) cached_has_bits;
1699 if (this->first_solution_strategy() != 0) {
1700 target = stream->EnsureSpace(target);
1701 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1702 1, this->_internal_first_solution_strategy(), target);
1706 if (this->use_unfiltered_first_solution_strategy() != 0) {
1707 target = stream->EnsureSpace(target);
1708 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_use_unfiltered_first_solution_strategy(), target);
1712 if (this->has_local_search_operators()) {
1713 target = stream->EnsureSpace(target);
1714 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1715 InternalWriteMessage(
1720 if (this->local_search_metaheuristic() != 0) {
1721 target = stream->EnsureSpace(target);
1722 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1723 4, this->_internal_local_search_metaheuristic(), target);
1727 if (!(this->guided_local_search_lambda_coefficient() <= 0 && this->guided_local_search_lambda_coefficient() >= 0)) {
1728 target = stream->EnsureSpace(target);
1729 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(5, this->_internal_guided_local_search_lambda_coefficient(), target);
1733 if (this->use_depth_first_search() != 0) {
1734 target = stream->EnsureSpace(target);
1735 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_use_depth_first_search(), target);
1739 if (!(this->optimization_step() <= 0 && this->optimization_step() >= 0)) {
1740 target = stream->EnsureSpace(target);
1741 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(7, this->_internal_optimization_step(), target);
1745 if (this->solution_limit() != 0) {
1746 target = stream->EnsureSpace(target);
1747 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(8, this->_internal_solution_limit(), target);
1751 if (this->has_time_limit()) {
1752 target = stream->EnsureSpace(target);
1753 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1754 InternalWriteMessage(
1759 if (this->has_lns_time_limit()) {
1760 target = stream->EnsureSpace(target);
1761 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1762 InternalWriteMessage(
1767 if (this->use_full_propagation() != 0) {
1768 target = stream->EnsureSpace(target);
1769 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(11, this->_internal_use_full_propagation(), target);
1773 if (this->log_search() != 0) {
1774 target = stream->EnsureSpace(target);
1775 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(13, this->_internal_log_search(), target);
1779 if (!(this->savings_neighbors_ratio() <= 0 && this->savings_neighbors_ratio() >= 0)) {
1780 target = stream->EnsureSpace(target);
1781 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(14, this->_internal_savings_neighbors_ratio(), target);
1785 if (this->savings_add_reverse_arcs() != 0) {
1786 target = stream->EnsureSpace(target);
1787 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_savings_add_reverse_arcs(), target);
1791 if (!(this->cheapest_insertion_farthest_seeds_ratio() <= 0 && this->cheapest_insertion_farthest_seeds_ratio() >= 0)) {
1792 target = stream->EnsureSpace(target);
1793 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_cheapest_insertion_farthest_seeds_ratio(), target);
1797 if (this->number_of_solutions_to_collect() != 0) {
1798 target = stream->EnsureSpace(target);
1799 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(17, this->_internal_number_of_solutions_to_collect(), target);
1803 if (!(this->savings_arc_coefficient() <= 0 && this->savings_arc_coefficient() >= 0)) {
1804 target = stream->EnsureSpace(target);
1805 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(18, this->_internal_savings_arc_coefficient(), target);
1809 if (this->savings_parallel_routes() != 0) {
1810 target = stream->EnsureSpace(target);
1811 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(19, this->_internal_savings_parallel_routes(), target);
1815 if (this->relocate_expensive_chain_num_arcs_to_consider() != 0) {
1816 target = stream->EnsureSpace(target);
1817 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(20, this->_internal_relocate_expensive_chain_num_arcs_to_consider(), target);
1821 if (!(this->cheapest_insertion_first_solution_neighbors_ratio() <= 0 && this->cheapest_insertion_first_solution_neighbors_ratio() >= 0)) {
1822 target = stream->EnsureSpace(target);
1823 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(21, this->_internal_cheapest_insertion_first_solution_neighbors_ratio(), target);
1827 if (!(this->log_cost_scaling_factor() <= 0 && this->log_cost_scaling_factor() >= 0)) {
1828 target = stream->EnsureSpace(target);
1829 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_log_cost_scaling_factor(), target);
1833 if (!(this->savings_max_memory_usage_bytes() <= 0 && this->savings_max_memory_usage_bytes() >= 0)) {
1834 target = stream->EnsureSpace(target);
1835 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(23, this->_internal_savings_max_memory_usage_bytes(), target);
1839 if (this->use_cp_sat() != 0) {
1840 target = stream->EnsureSpace(target);
1841 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1842 27, this->_internal_use_cp_sat(), target);
1846 if (this->use_cp() != 0) {
1847 target = stream->EnsureSpace(target);
1848 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1849 28, this->_internal_use_cp(), target);
1853 if (!(this->log_cost_offset() <= 0 && this->log_cost_offset() >= 0)) {
1854 target = stream->EnsureSpace(target);
1855 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(29, this->_internal_log_cost_offset(), target);
1859 if (this->christofides_use_minimum_matching() != 0) {
1860 target = stream->EnsureSpace(target);
1861 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(30, this->_internal_christofides_use_minimum_matching(), target);
1865 if (!(this->cheapest_insertion_ls_operator_neighbors_ratio() <= 0 && this->cheapest_insertion_ls_operator_neighbors_ratio() >= 0)) {
1866 target = stream->EnsureSpace(target);
1867 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(31, this->_internal_cheapest_insertion_ls_operator_neighbors_ratio(), target);
1871 if (this->heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
1872 target = stream->EnsureSpace(target);
1873 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(32, this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider(), target);
1877 if (this->continuous_scheduling_solver() != 0) {
1878 target = stream->EnsureSpace(target);
1879 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1880 33, this->_internal_continuous_scheduling_solver(), target);
1884 if (this->mixed_integer_scheduling_solver() != 0) {
1885 target = stream->EnsureSpace(target);
1886 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1887 34, this->_internal_mixed_integer_scheduling_solver(), target);
1891 if (this->heuristic_close_nodes_lns_num_nodes() != 0) {
1892 target = stream->EnsureSpace(target);
1893 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(35, this->_internal_heuristic_close_nodes_lns_num_nodes(), target);
1897 if (this->log_tag().size() > 0) {
1898 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
1899 this->_internal_log_tag().data(),
static_cast<int>(this->_internal_log_tag().length()),
1900 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
1901 "operations_research.RoutingSearchParameters.log_tag");
1902 target = stream->WriteStringMaybeAliased(
1903 36, this->_internal_log_tag(), target);
1906 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1907 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1908 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1914 size_t RoutingSearchParameters::ByteSizeLong()
const {
1916 size_t total_size = 0;
1920 (void) cached_has_bits;
1923 if (this->log_tag().size() > 0) {
1925 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1926 this->_internal_log_tag());
1930 if (this->has_local_search_operators()) {
1932 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1933 *local_search_operators_);
1937 if (this->has_time_limit()) {
1939 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1944 if (this->has_lns_time_limit()) {
1946 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1951 if (this->first_solution_strategy() != 0) {
1953 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_first_solution_strategy());
1957 if (this->local_search_metaheuristic() != 0) {
1959 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_local_search_metaheuristic());
1963 if (!(this->guided_local_search_lambda_coefficient() <= 0 && this->guided_local_search_lambda_coefficient() >= 0)) {
1964 total_size += 1 + 8;
1968 if (!(this->optimization_step() <= 0 && this->optimization_step() >= 0)) {
1969 total_size += 1 + 8;
1973 if (this->solution_limit() != 0) {
1975 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1976 this->_internal_solution_limit());
1980 if (this->use_depth_first_search() != 0) {
1981 total_size += 1 + 1;
1985 if (this->use_full_propagation() != 0) {
1986 total_size += 1 + 1;
1990 if (this->log_search() != 0) {
1991 total_size += 1 + 1;
1995 if (this->use_unfiltered_first_solution_strategy() != 0) {
1996 total_size += 1 + 1;
2000 if (this->savings_add_reverse_arcs() != 0) {
2001 total_size += 1 + 1;
2005 if (this->savings_parallel_routes() != 0) {
2006 total_size += 2 + 1;
2010 if (this->christofides_use_minimum_matching() != 0) {
2011 total_size += 2 + 1;
2015 if (!(this->savings_neighbors_ratio() <= 0 && this->savings_neighbors_ratio() >= 0)) {
2016 total_size += 1 + 8;
2020 if (!(this->cheapest_insertion_farthest_seeds_ratio() <= 0 && this->cheapest_insertion_farthest_seeds_ratio() >= 0)) {
2021 total_size += 2 + 8;
2025 if (!(this->savings_arc_coefficient() <= 0 && this->savings_arc_coefficient() >= 0)) {
2026 total_size += 2 + 8;
2030 if (this->number_of_solutions_to_collect() != 0) {
2032 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2033 this->_internal_number_of_solutions_to_collect());
2037 if (this->relocate_expensive_chain_num_arcs_to_consider() != 0) {
2039 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2040 this->_internal_relocate_expensive_chain_num_arcs_to_consider());
2044 if (!(this->cheapest_insertion_first_solution_neighbors_ratio() <= 0 && this->cheapest_insertion_first_solution_neighbors_ratio() >= 0)) {
2045 total_size += 2 + 8;
2049 if (!(this->log_cost_scaling_factor() <= 0 && this->log_cost_scaling_factor() >= 0)) {
2050 total_size += 2 + 8;
2054 if (!(this->savings_max_memory_usage_bytes() <= 0 && this->savings_max_memory_usage_bytes() >= 0)) {
2055 total_size += 2 + 8;
2059 if (this->use_cp_sat() != 0) {
2061 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cp_sat());
2065 if (this->use_cp() != 0) {
2067 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cp());
2071 if (!(this->log_cost_offset() <= 0 && this->log_cost_offset() >= 0)) {
2072 total_size += 2 + 8;
2076 if (!(this->cheapest_insertion_ls_operator_neighbors_ratio() <= 0 && this->cheapest_insertion_ls_operator_neighbors_ratio() >= 0)) {
2077 total_size += 2 + 8;
2081 if (this->heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2083 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2084 this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
2088 if (this->continuous_scheduling_solver() != 0) {
2090 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_continuous_scheduling_solver());
2094 if (this->mixed_integer_scheduling_solver() != 0) {
2096 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_mixed_integer_scheduling_solver());
2100 if (this->heuristic_close_nodes_lns_num_nodes() != 0) {
2102 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2103 this->_internal_heuristic_close_nodes_lns_num_nodes());
2106 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2107 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2108 _internal_metadata_, total_size, &_cached_size_);
2110 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2111 SetCachedSize(cached_size);
2115 void RoutingSearchParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2117 GOOGLE_DCHECK_NE(&from,
this);
2118 const RoutingSearchParameters* source =
2119 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutingSearchParameters>(
2121 if (source ==
nullptr) {
2123 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
2130 void RoutingSearchParameters::MergeFrom(
const RoutingSearchParameters& from) {
2132 GOOGLE_DCHECK_NE(&from,
this);
2133 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2135 (void) cached_has_bits;
2137 if (from.log_tag().size() > 0) {
2138 _internal_set_log_tag(from._internal_log_tag());
2140 if (from.has_local_search_operators()) {
2141 _internal_mutable_local_search_operators()->::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeFrom(from._internal_local_search_operators());
2143 if (from.has_time_limit()) {
2144 _internal_mutable_time_limit()->PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_time_limit());
2146 if (from.has_lns_time_limit()) {
2147 _internal_mutable_lns_time_limit()->PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_lns_time_limit());
2149 if (from.first_solution_strategy() != 0) {
2150 _internal_set_first_solution_strategy(from._internal_first_solution_strategy());
2152 if (from.local_search_metaheuristic() != 0) {
2153 _internal_set_local_search_metaheuristic(from._internal_local_search_metaheuristic());
2155 if (!(from.guided_local_search_lambda_coefficient() <= 0 && from.guided_local_search_lambda_coefficient() >= 0)) {
2156 _internal_set_guided_local_search_lambda_coefficient(from._internal_guided_local_search_lambda_coefficient());
2158 if (!(from.optimization_step() <= 0 && from.optimization_step() >= 0)) {
2159 _internal_set_optimization_step(from._internal_optimization_step());
2161 if (from.solution_limit() != 0) {
2162 _internal_set_solution_limit(from._internal_solution_limit());
2164 if (from.use_depth_first_search() != 0) {
2165 _internal_set_use_depth_first_search(from._internal_use_depth_first_search());
2167 if (from.use_full_propagation() != 0) {
2168 _internal_set_use_full_propagation(from._internal_use_full_propagation());
2170 if (from.log_search() != 0) {
2171 _internal_set_log_search(from._internal_log_search());
2173 if (from.use_unfiltered_first_solution_strategy() != 0) {
2174 _internal_set_use_unfiltered_first_solution_strategy(from._internal_use_unfiltered_first_solution_strategy());
2176 if (from.savings_add_reverse_arcs() != 0) {
2177 _internal_set_savings_add_reverse_arcs(from._internal_savings_add_reverse_arcs());
2179 if (from.savings_parallel_routes() != 0) {
2180 _internal_set_savings_parallel_routes(from._internal_savings_parallel_routes());
2182 if (from.christofides_use_minimum_matching() != 0) {
2183 _internal_set_christofides_use_minimum_matching(from._internal_christofides_use_minimum_matching());
2185 if (!(from.savings_neighbors_ratio() <= 0 && from.savings_neighbors_ratio() >= 0)) {
2186 _internal_set_savings_neighbors_ratio(from._internal_savings_neighbors_ratio());
2188 if (!(from.cheapest_insertion_farthest_seeds_ratio() <= 0 && from.cheapest_insertion_farthest_seeds_ratio() >= 0)) {
2189 _internal_set_cheapest_insertion_farthest_seeds_ratio(from._internal_cheapest_insertion_farthest_seeds_ratio());
2191 if (!(from.savings_arc_coefficient() <= 0 && from.savings_arc_coefficient() >= 0)) {
2192 _internal_set_savings_arc_coefficient(from._internal_savings_arc_coefficient());
2194 if (from.number_of_solutions_to_collect() != 0) {
2195 _internal_set_number_of_solutions_to_collect(from._internal_number_of_solutions_to_collect());
2197 if (from.relocate_expensive_chain_num_arcs_to_consider() != 0) {
2198 _internal_set_relocate_expensive_chain_num_arcs_to_consider(from._internal_relocate_expensive_chain_num_arcs_to_consider());
2200 if (!(from.cheapest_insertion_first_solution_neighbors_ratio() <= 0 && from.cheapest_insertion_first_solution_neighbors_ratio() >= 0)) {
2201 _internal_set_cheapest_insertion_first_solution_neighbors_ratio(from._internal_cheapest_insertion_first_solution_neighbors_ratio());
2203 if (!(from.log_cost_scaling_factor() <= 0 && from.log_cost_scaling_factor() >= 0)) {
2204 _internal_set_log_cost_scaling_factor(from._internal_log_cost_scaling_factor());
2206 if (!(from.savings_max_memory_usage_bytes() <= 0 && from.savings_max_memory_usage_bytes() >= 0)) {
2207 _internal_set_savings_max_memory_usage_bytes(from._internal_savings_max_memory_usage_bytes());
2209 if (from.use_cp_sat() != 0) {
2210 _internal_set_use_cp_sat(from._internal_use_cp_sat());
2212 if (from.use_cp() != 0) {
2213 _internal_set_use_cp(from._internal_use_cp());
2215 if (!(from.log_cost_offset() <= 0 && from.log_cost_offset() >= 0)) {
2216 _internal_set_log_cost_offset(from._internal_log_cost_offset());
2218 if (!(from.cheapest_insertion_ls_operator_neighbors_ratio() <= 0 && from.cheapest_insertion_ls_operator_neighbors_ratio() >= 0)) {
2219 _internal_set_cheapest_insertion_ls_operator_neighbors_ratio(from._internal_cheapest_insertion_ls_operator_neighbors_ratio());
2221 if (from.heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2222 _internal_set_heuristic_expensive_chain_lns_num_arcs_to_consider(from._internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
2224 if (from.continuous_scheduling_solver() != 0) {
2225 _internal_set_continuous_scheduling_solver(from._internal_continuous_scheduling_solver());
2227 if (from.mixed_integer_scheduling_solver() != 0) {
2228 _internal_set_mixed_integer_scheduling_solver(from._internal_mixed_integer_scheduling_solver());
2230 if (from.heuristic_close_nodes_lns_num_nodes() != 0) {
2231 _internal_set_heuristic_close_nodes_lns_num_nodes(from._internal_heuristic_close_nodes_lns_num_nodes());
2235 void RoutingSearchParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2237 if (&from ==
this)
return;
2242 void RoutingSearchParameters::CopyFrom(
const RoutingSearchParameters& from) {
2244 if (&from ==
this)
return;
2249 bool RoutingSearchParameters::IsInitialized()
const {
2253 void RoutingSearchParameters::InternalSwap(RoutingSearchParameters* other) {
2255 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2256 log_tag_.Swap(&other->log_tag_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2257 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2258 PROTOBUF_FIELD_OFFSET(RoutingSearchParameters, heuristic_close_nodes_lns_num_nodes_)
2259 +
sizeof(RoutingSearchParameters::heuristic_close_nodes_lns_num_nodes_)
2260 - PROTOBUF_FIELD_OFFSET(RoutingSearchParameters, local_search_operators_)>(
2261 reinterpret_cast<char*
>(&local_search_operators_),
2262 reinterpret_cast<char*
>(&other->local_search_operators_));
2265 ::PROTOBUF_NAMESPACE_ID::Metadata RoutingSearchParameters::GetMetadata()
const {
2266 return GetMetadataStatic();
2272 void RoutingModelParameters::InitAsDefaultInstance() {
2274 ::operations_research::ConstraintSolverParameters::internal_default_instance());
2278 static const ::operations_research::ConstraintSolverParameters& solver_parameters(
const RoutingModelParameters* msg);
2281 const ::operations_research::ConstraintSolverParameters&
2283 return *msg->solver_parameters_;
2285 void RoutingModelParameters::clear_solver_parameters() {
2286 if (GetArena() ==
nullptr && solver_parameters_ !=
nullptr) {
2287 delete solver_parameters_;
2289 solver_parameters_ =
nullptr;
2291 RoutingModelParameters::RoutingModelParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2292 : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
2294 RegisterArenaDtor(arena);
2297 RoutingModelParameters::RoutingModelParameters(
const RoutingModelParameters& from)
2298 : ::PROTOBUF_NAMESPACE_ID::Message() {
2299 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2300 if (from._internal_has_solver_parameters()) {
2301 solver_parameters_ = new ::operations_research::ConstraintSolverParameters(*from.solver_parameters_);
2303 solver_parameters_ =
nullptr;
2305 ::memcpy(&reduce_vehicle_cost_model_, &from.reduce_vehicle_cost_model_,
2306 static_cast<size_t>(
reinterpret_cast<char*
>(&max_callback_cache_size_) -
2307 reinterpret_cast<char*
>(&reduce_vehicle_cost_model_)) +
sizeof(max_callback_cache_size_));
2311 void RoutingModelParameters::SharedCtor() {
2313 ::memset(&solver_parameters_, 0,
static_cast<size_t>(
2314 reinterpret_cast<char*
>(&max_callback_cache_size_) -
2315 reinterpret_cast<char*
>(&solver_parameters_)) +
sizeof(max_callback_cache_size_));
2318 RoutingModelParameters::~RoutingModelParameters() {
2321 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2324 void RoutingModelParameters::SharedDtor() {
2325 GOOGLE_DCHECK(GetArena() ==
nullptr);
2326 if (
this != internal_default_instance())
delete solver_parameters_;
2329 void RoutingModelParameters::ArenaDtor(
void*
object) {
2330 RoutingModelParameters* _this =
reinterpret_cast< RoutingModelParameters*
>(object);
2333 void RoutingModelParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2335 void RoutingModelParameters::SetCachedSize(
int size)
const {
2336 _cached_size_.Set(size);
2338 const RoutingModelParameters& RoutingModelParameters::default_instance() {
2340 return *internal_default_instance();
2344 void RoutingModelParameters::Clear() {
2348 (void) cached_has_bits;
2350 if (GetArena() ==
nullptr && solver_parameters_ !=
nullptr) {
2351 delete solver_parameters_;
2353 solver_parameters_ =
nullptr;
2354 ::memset(&reduce_vehicle_cost_model_, 0,
static_cast<size_t>(
2355 reinterpret_cast<char*
>(&max_callback_cache_size_) -
2356 reinterpret_cast<char*
>(&reduce_vehicle_cost_model_)) +
sizeof(max_callback_cache_size_));
2357 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2360 const char* RoutingModelParameters::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2361 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2362 ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
2363 while (!ctx->Done(&ptr)) {
2365 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2371 ptr = ctx->ParseMessage(_internal_mutable_solver_parameters(), ptr);
2373 }
else goto handle_unusual;
2378 reduce_vehicle_cost_model_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2380 }
else goto handle_unusual;
2385 max_callback_cache_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2387 }
else goto handle_unusual;
2391 if ((tag & 7) == 4 || tag == 0) {
2392 ctx->SetLastTag(tag);
2395 ptr = UnknownFieldParse(tag,
2396 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2398 CHK_(ptr !=
nullptr);
2415 (void) cached_has_bits;
2418 if (this->has_solver_parameters()) {
2419 target = stream->EnsureSpace(target);
2420 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2421 InternalWriteMessage(
2426 if (this->reduce_vehicle_cost_model() != 0) {
2427 target = stream->EnsureSpace(target);
2428 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_reduce_vehicle_cost_model(), target);
2432 if (this->max_callback_cache_size() != 0) {
2433 target = stream->EnsureSpace(target);
2434 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_max_callback_cache_size(), target);
2437 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2438 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2439 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2445 size_t RoutingModelParameters::ByteSizeLong()
const {
2447 size_t total_size = 0;
2451 (void) cached_has_bits;
2454 if (this->has_solver_parameters()) {
2456 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2457 *solver_parameters_);
2461 if (this->reduce_vehicle_cost_model() != 0) {
2462 total_size += 1 + 1;
2466 if (this->max_callback_cache_size() != 0) {
2468 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2469 this->_internal_max_callback_cache_size());
2472 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2473 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2474 _internal_metadata_, total_size, &_cached_size_);
2476 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2477 SetCachedSize(cached_size);
2481 void RoutingModelParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2483 GOOGLE_DCHECK_NE(&from,
this);
2484 const RoutingModelParameters* source =
2485 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutingModelParameters>(
2487 if (source ==
nullptr) {
2489 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
2496 void RoutingModelParameters::MergeFrom(
const RoutingModelParameters& from) {
2498 GOOGLE_DCHECK_NE(&from,
this);
2499 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2501 (void) cached_has_bits;
2503 if (from.has_solver_parameters()) {
2504 _internal_mutable_solver_parameters()->::operations_research::ConstraintSolverParameters::MergeFrom(from._internal_solver_parameters());
2506 if (from.reduce_vehicle_cost_model() != 0) {
2507 _internal_set_reduce_vehicle_cost_model(from._internal_reduce_vehicle_cost_model());
2509 if (from.max_callback_cache_size() != 0) {
2510 _internal_set_max_callback_cache_size(from._internal_max_callback_cache_size());
2514 void RoutingModelParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2516 if (&from ==
this)
return;
2521 void RoutingModelParameters::CopyFrom(
const RoutingModelParameters& from) {
2523 if (&from ==
this)
return;
2528 bool RoutingModelParameters::IsInitialized()
const {
2532 void RoutingModelParameters::InternalSwap(RoutingModelParameters* other) {
2534 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2535 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2536 PROTOBUF_FIELD_OFFSET(RoutingModelParameters, max_callback_cache_size_)
2537 +
sizeof(RoutingModelParameters::max_callback_cache_size_)
2538 - PROTOBUF_FIELD_OFFSET(RoutingModelParameters, solver_parameters_)>(
2539 reinterpret_cast<char*
>(&solver_parameters_),
2540 reinterpret_cast<char*
>(&other->solver_parameters_));
2543 ::PROTOBUF_NAMESPACE_ID::Metadata RoutingModelParameters::GetMetadata()
const {
2544 return GetMetadataStatic();
2550 PROTOBUF_NAMESPACE_OPEN
2552 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators >(arena);
2555 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters >(arena);
2558 return Arena::CreateMessageInternal< ::operations_research::RoutingModelParameters >(arena);
2560 PROTOBUF_NAMESPACE_CLOSE
2563 #include <google/protobuf/port_undef.inc>