OR-Tools  9.2
routing_parameters.pb.cc
Go to the documentation of this file.
1// Generated by the protocol buffer compiler. DO NOT EDIT!
2// source: ortools/constraint_solver/routing_parameters.proto
3
5
6#include <algorithm>
7
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>
15// @@protoc_insertion_point(includes)
16#include <google/protobuf/port_def.inc>
17
18PROTOBUF_PRAGMA_INIT_SEG
19namespace operations_research {
21 ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
22 : use_relocate_(0)
23
24 , use_relocate_pair_(0)
25
26 , use_relocate_neighbors_(0)
27
28 , use_exchange_(0)
29
30 , use_cross_(0)
31
32 , use_cross_exchange_(0)
33
34 , use_two_opt_(0)
35
36 , use_or_opt_(0)
37
38 , use_lin_kernighan_(0)
39
40 , use_tsp_opt_(0)
41
42 , use_make_active_(0)
43
44 , use_make_inactive_(0)
45
46 , use_make_chain_inactive_(0)
47
48 , use_swap_active_(0)
49
50 , use_extended_swap_active_(0)
51
52 , use_path_lns_(0)
53
54 , use_full_path_lns_(0)
55
56 , use_tsp_lns_(0)
57
58 , use_inactive_lns_(0)
59
60 , use_node_pair_swap_active_(0)
61
62 , use_relocate_and_make_active_(0)
63
64 , use_exchange_pair_(0)
65
66 , use_relocate_expensive_chain_(0)
67
68 , use_light_relocate_pair_(0)
69
70 , use_relocate_subtrip_(0)
71
72 , use_exchange_subtrip_(0)
73
74 , use_global_cheapest_insertion_path_lns_(0)
75
76 , use_local_cheapest_insertion_path_lns_(0)
77
78 , use_global_cheapest_insertion_expensive_chain_lns_(0)
79
80 , use_local_cheapest_insertion_expensive_chain_lns_(0)
81
82 , use_global_cheapest_insertion_close_nodes_lns_(0)
83
84 , use_local_cheapest_insertion_close_nodes_lns_(0)
85
86 , use_relocate_path_global_cheapest_insertion_insert_unperformed_(0)
87{}
90 : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
92 union {
94 };
95};
98 ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
99 : improvement_rate_solutions_distance_(0)
100 , improvement_rate_coefficient_(0){}
103 : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
105 union {
107 };
108};
111 ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
112 : log_tag_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
113 , local_search_operators_(nullptr)
114 , time_limit_(nullptr)
115 , lns_time_limit_(nullptr)
116 , improvement_limit_parameters_(nullptr)
117 , sat_parameters_(nullptr)
118 , first_solution_strategy_(0)
119
120 , local_search_metaheuristic_(0)
121
122 , guided_local_search_lambda_coefficient_(0)
123 , optimization_step_(0)
124 , solution_limit_(int64_t{0})
125 , use_full_propagation_(false)
126 , log_search_(false)
127 , number_of_solutions_to_collect_(0)
128 , savings_neighbors_ratio_(0)
129 , cheapest_insertion_farthest_seeds_ratio_(0)
130 , savings_arc_coefficient_(0)
131 , relocate_expensive_chain_num_arcs_to_consider_(0)
132 , use_unfiltered_first_solution_strategy_(false)
133 , savings_add_reverse_arcs_(false)
134 , savings_parallel_routes_(false)
135 , cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_(false)
136 , cheapest_insertion_first_solution_neighbors_ratio_(0)
137 , log_cost_scaling_factor_(0)
138 , savings_max_memory_usage_bytes_(0)
139 , use_cp_sat_(0)
140
141 , use_cp_(0)
142
143 , log_cost_offset_(0)
144 , cheapest_insertion_add_unperformed_entries_(false)
145 , christofides_use_minimum_matching_(false)
146 , use_multi_armed_bandit_concatenate_operators_(false)
147 , use_depth_first_search_(false)
148 , heuristic_expensive_chain_lns_num_arcs_to_consider_(0)
149 , cheapest_insertion_ls_operator_neighbors_ratio_(0)
150 , continuous_scheduling_solver_(0)
151
152 , mixed_integer_scheduling_solver_(0)
153
154 , heuristic_close_nodes_lns_num_nodes_(0)
155 , cheapest_insertion_first_solution_min_neighbors_(0)
156 , multi_armed_bandit_compound_operator_memory_coefficient_(0)
157 , multi_armed_bandit_compound_operator_exploration_coefficient_(0)
158 , cheapest_insertion_ls_operator_min_neighbors_(0)
159 , use_generalized_cp_sat_(0)
160{}
163 : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
165 union {
167 };
168};
171 ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
172 : solver_parameters_(nullptr)
173 , reduce_vehicle_cost_model_(false)
174 , max_callback_cache_size_(0){}
177 : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
179 union {
181 };
182};
184} // namespace operations_research
187static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto = nullptr;
188
190 ~0u, // no _has_bits_
192 ~0u, // no _extensions_
193 ~0u, // no _oneof_case_
194 ~0u, // no _weak_field_map_
195 ~0u, // no _inlined_string_donated_
198 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_light_relocate_pair_),
199 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_neighbors_),
206 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_expensive_chain_),
212 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_and_make_active_),
214 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_make_chain_inactive_),
216 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_extended_swap_active_),
217 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_node_pair_swap_active_),
222 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_global_cheapest_insertion_path_lns_),
223 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_local_cheapest_insertion_path_lns_),
224 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_path_global_cheapest_insertion_insert_unperformed_),
225 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_global_cheapest_insertion_expensive_chain_lns_),
226 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_local_cheapest_insertion_expensive_chain_lns_),
227 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_global_cheapest_insertion_close_nodes_lns_),
228 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_local_cheapest_insertion_close_nodes_lns_),
229 ~0u, // no _has_bits_
231 ~0u, // no _extensions_
232 ~0u, // no _oneof_case_
233 ~0u, // no _weak_field_map_
234 ~0u, // no _inlined_string_donated_
235 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters, improvement_rate_coefficient_),
236 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters, improvement_rate_solutions_distance_),
237 ~0u, // no _has_bits_
238 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, _internal_metadata_),
239 ~0u, // no _extensions_
240 ~0u, // no _oneof_case_
241 ~0u, // no _weak_field_map_
242 ~0u, // no _inlined_string_donated_
243 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, first_solution_strategy_),
244 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, use_unfiltered_first_solution_strategy_),
245 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, savings_neighbors_ratio_),
246 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, savings_max_memory_usage_bytes_),
247 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, savings_add_reverse_arcs_),
248 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, savings_arc_coefficient_),
249 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, savings_parallel_routes_),
250 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, cheapest_insertion_farthest_seeds_ratio_),
251 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, cheapest_insertion_first_solution_neighbors_ratio_),
252 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, cheapest_insertion_first_solution_min_neighbors_),
253 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, cheapest_insertion_ls_operator_neighbors_ratio_),
254 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, cheapest_insertion_ls_operator_min_neighbors_),
255 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_),
256 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, cheapest_insertion_add_unperformed_entries_),
257 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, christofides_use_minimum_matching_),
258 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, local_search_operators_),
259 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, use_multi_armed_bandit_concatenate_operators_),
260 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, multi_armed_bandit_compound_operator_memory_coefficient_),
261 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, multi_armed_bandit_compound_operator_exploration_coefficient_),
262 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, relocate_expensive_chain_num_arcs_to_consider_),
263 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, heuristic_expensive_chain_lns_num_arcs_to_consider_),
264 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, heuristic_close_nodes_lns_num_nodes_),
265 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, local_search_metaheuristic_),
266 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, guided_local_search_lambda_coefficient_),
267 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, use_depth_first_search_),
268 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, use_cp_),
269 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, use_cp_sat_),
270 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, use_generalized_cp_sat_),
271 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, sat_parameters_),
272 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, continuous_scheduling_solver_),
273 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, mixed_integer_scheduling_solver_),
274 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, optimization_step_),
275 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, number_of_solutions_to_collect_),
276 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, solution_limit_),
277 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, time_limit_),
278 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, lns_time_limit_),
279 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, improvement_limit_parameters_),
280 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, use_full_propagation_),
281 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, log_search_),
282 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, log_cost_scaling_factor_),
283 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, log_cost_offset_),
284 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, log_tag_),
285 ~0u, // no _has_bits_
286 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingModelParameters, _internal_metadata_),
287 ~0u, // no _extensions_
288 ~0u, // no _oneof_case_
289 ~0u, // no _weak_field_map_
290 ~0u, // no _inlined_string_donated_
291 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingModelParameters, solver_parameters_),
292 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingModelParameters, reduce_vehicle_cost_model_),
293 PROTOBUF_FIELD_OFFSET(::operations_research::RoutingModelParameters, max_callback_cache_size_),
294};
295static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
300};
301
302static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
303 reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::_RoutingSearchParameters_LocalSearchNeighborhoodOperators_default_instance_),
304 reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::_RoutingSearchParameters_ImprovementSearchLimitParameters_default_instance_),
305 reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::_RoutingSearchParameters_default_instance_),
306 reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::_RoutingModelParameters_default_instance_),
307};
308
309const char descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
310 "\n2ortools/constraint_solver/routing_para"
311 "meters.proto\022\023operations_research\032\036googl"
312 "e/protobuf/duration.proto\032-ortools/const"
313 "raint_solver/routing_enums.proto\0321ortool"
314 "s/constraint_solver/solver_parameters.pr"
315 "oto\032 ortools/sat/sat_parameters.proto\032#o"
316 "rtools/util/optional_boolean.proto\"\372%\n\027R"
317 "outingSearchParameters\022Q\n\027first_solution"
318 "_strategy\030\001 \001(\01620.operations_research.Fi"
319 "rstSolutionStrategy.Value\022.\n&use_unfilte"
320 "red_first_solution_strategy\030\002 \001(\010\022\037\n\027sav"
321 "ings_neighbors_ratio\030\016 \001(\001\022&\n\036savings_ma"
322 "x_memory_usage_bytes\030\027 \001(\001\022 \n\030savings_ad"
323 "d_reverse_arcs\030\017 \001(\010\022\037\n\027savings_arc_coef"
324 "ficient\030\022 \001(\001\022\037\n\027savings_parallel_routes"
325 "\030\023 \001(\010\022/\n\'cheapest_insertion_farthest_se"
326 "eds_ratio\030\020 \001(\001\0229\n1cheapest_insertion_fi"
327 "rst_solution_neighbors_ratio\030\025 \001(\001\0227\n/ch"
328 "eapest_insertion_first_solution_min_neig"
329 "hbors\030, \001(\005\0226\n.cheapest_insertion_ls_ope"
330 "rator_neighbors_ratio\030\037 \001(\001\0224\n,cheapest_"
331 "insertion_ls_operator_min_neighbors\030- \001("
332 "\005\022P\nHcheapest_insertion_first_solution_u"
333 "se_neighbors_ratio_for_initialization\030. "
334 "\001(\010\0222\n*cheapest_insertion_add_unperforme"
335 "d_entries\030( \001(\010\022)\n!christofides_use_mini"
336 "mum_matching\030\036 \001(\010\022m\n\026local_search_opera"
337 "tors\030\003 \001(\0132M.operations_research.Routing"
338 "SearchParameters.LocalSearchNeighborhood"
339 "Operators\0224\n,use_multi_armed_bandit_conc"
340 "atenate_operators\030) \001(\010\022\?\n7multi_armed_b"
341 "andit_compound_operator_memory_coefficie"
342 "nt\030* \001(\001\022D\n<multi_armed_bandit_compound_"
343 "operator_exploration_coefficient\030+ \001(\001\0225"
344 "\n-relocate_expensive_chain_num_arcs_to_c"
345 "onsider\030\024 \001(\005\022:\n2heuristic_expensive_cha"
346 "in_lns_num_arcs_to_consider\030 \001(\005\022+\n#heu"
347 "ristic_close_nodes_lns_num_nodes\030# \001(\005\022W"
348 "\n\032local_search_metaheuristic\030\004 \001(\01623.ope"
349 "rations_research.LocalSearchMetaheuristi"
350 "c.Value\022.\n&guided_local_search_lambda_co"
351 "efficient\030\005 \001(\001\022\036\n\026use_depth_first_searc"
352 "h\030\006 \001(\010\0224\n\006use_cp\030\034 \001(\0162$.operations_res"
353 "earch.OptionalBoolean\0228\n\nuse_cp_sat\030\033 \001("
354 "\0162$.operations_research.OptionalBoolean\022"
355 "D\n\026use_generalized_cp_sat\030/ \001(\0162$.operat"
356 "ions_research.OptionalBoolean\022>\n\016sat_par"
357 "ameters\0300 \001(\0132&.operations_research.sat."
358 "SatParameters\022c\n\034continuous_scheduling_s"
359 "olver\030! \001(\0162=.operations_research.Routin"
360 "gSearchParameters.SchedulingSolver\022f\n\037mi"
361 "xed_integer_scheduling_solver\030\" \001(\0162=.op"
362 "erations_research.RoutingSearchParameter"
363 "s.SchedulingSolver\022\031\n\021optimization_step\030"
364 "\007 \001(\001\022&\n\036number_of_solutions_to_collect\030"
365 "\021 \001(\005\022\026\n\016solution_limit\030\010 \001(\003\022-\n\ntime_li"
366 "mit\030\t \001(\0132\031.google.protobuf.Duration\0221\n\016"
367 "lns_time_limit\030\n \001(\0132\031.google.protobuf.D"
368 "uration\022s\n\034improvement_limit_parameters\030"
369 "% \001(\0132M.operations_research.RoutingSearc"
370 "hParameters.ImprovementSearchLimitParame"
371 "ters\022\034\n\024use_full_propagation\030\013 \001(\010\022\022\n\nlo"
372 "g_search\030\r \001(\010\022\037\n\027log_cost_scaling_facto"
373 "r\030\026 \001(\001\022\027\n\017log_cost_offset\030\035 \001(\001\022\017\n\007log_"
374 "tag\030$ \001(\t\032\327\022\n LocalSearchNeighborhoodOpe"
375 "rators\022:\n\014use_relocate\030\001 \001(\0162$.operation"
376 "s_research.OptionalBoolean\022\?\n\021use_reloca"
377 "te_pair\030\002 \001(\0162$.operations_research.Opti"
378 "onalBoolean\022E\n\027use_light_relocate_pair\030\030"
379 " \001(\0162$.operations_research.OptionalBoole"
380 "an\022D\n\026use_relocate_neighbors\030\003 \001(\0162$.ope"
381 "rations_research.OptionalBoolean\022B\n\024use_"
382 "relocate_subtrip\030\031 \001(\0162$.operations_rese"
383 "arch.OptionalBoolean\022:\n\014use_exchange\030\004 \001"
384 "(\0162$.operations_research.OptionalBoolean"
385 "\022\?\n\021use_exchange_pair\030\026 \001(\0162$.operations"
386 "_research.OptionalBoolean\022B\n\024use_exchang"
387 "e_subtrip\030\032 \001(\0162$.operations_research.Op"
388 "tionalBoolean\0227\n\tuse_cross\030\005 \001(\0162$.opera"
389 "tions_research.OptionalBoolean\022@\n\022use_cr"
390 "oss_exchange\030\006 \001(\0162$.operations_research"
391 ".OptionalBoolean\022J\n\034use_relocate_expensi"
392 "ve_chain\030\027 \001(\0162$.operations_research.Opt"
393 "ionalBoolean\0229\n\013use_two_opt\030\007 \001(\0162$.oper"
394 "ations_research.OptionalBoolean\0228\n\nuse_o"
395 "r_opt\030\010 \001(\0162$.operations_research.Option"
396 "alBoolean\022\?\n\021use_lin_kernighan\030\t \001(\0162$.o"
397 "perations_research.OptionalBoolean\0229\n\013us"
398 "e_tsp_opt\030\n \001(\0162$.operations_research.Op"
399 "tionalBoolean\022=\n\017use_make_active\030\013 \001(\0162$"
400 ".operations_research.OptionalBoolean\022J\n\034"
401 "use_relocate_and_make_active\030\025 \001(\0162$.ope"
402 "rations_research.OptionalBoolean\022\?\n\021use_"
403 "make_inactive\030\014 \001(\0162$.operations_researc"
404 "h.OptionalBoolean\022E\n\027use_make_chain_inac"
405 "tive\030\r \001(\0162$.operations_research.Optiona"
406 "lBoolean\022=\n\017use_swap_active\030\016 \001(\0162$.oper"
407 "ations_research.OptionalBoolean\022F\n\030use_e"
408 "xtended_swap_active\030\017 \001(\0162$.operations_r"
409 "esearch.OptionalBoolean\022G\n\031use_node_pair"
410 "_swap_active\030\024 \001(\0162$.operations_research"
411 ".OptionalBoolean\022:\n\014use_path_lns\030\020 \001(\0162$"
412 ".operations_research.OptionalBoolean\022\?\n\021"
413 "use_full_path_lns\030\021 \001(\0162$.operations_res"
414 "earch.OptionalBoolean\0229\n\013use_tsp_lns\030\022 \001"
415 "(\0162$.operations_research.OptionalBoolean"
416 "\022>\n\020use_inactive_lns\030\023 \001(\0162$.operations_"
417 "research.OptionalBoolean\022T\n&use_global_c"
418 "heapest_insertion_path_lns\030\033 \001(\0162$.opera"
419 "tions_research.OptionalBoolean\022S\n%use_lo"
420 "cal_cheapest_insertion_path_lns\030\034 \001(\0162$."
421 "operations_research.OptionalBoolean\022l\n>u"
422 "se_relocate_path_global_cheapest_inserti"
423 "on_insert_unperformed\030! \001(\0162$.operations"
424 "_research.OptionalBoolean\022_\n1use_global_"
425 "cheapest_insertion_expensive_chain_lns\030\035"
426 " \001(\0162$.operations_research.OptionalBoole"
427 "an\022^\n0use_local_cheapest_insertion_expen"
428 "sive_chain_lns\030\036 \001(\0162$.operations_resear"
429 "ch.OptionalBoolean\022[\n-use_global_cheapes"
430 "t_insertion_close_nodes_lns\030\037 \001(\0162$.oper"
431 "ations_research.OptionalBoolean\022Z\n,use_l"
432 "ocal_cheapest_insertion_close_nodes_lns\030"
433 " \001(\0162$.operations_research.OptionalBool"
434 "ean\032u\n ImprovementSearchLimitParameters\022"
435 "$\n\034improvement_rate_coefficient\030& \001(\001\022+\n"
436 "#improvement_rate_solutions_distance\030\' \001"
437 "(\005\"3\n\020SchedulingSolver\022\t\n\005UNSET\020\000\022\010\n\004GLO"
438 "P\020\001\022\n\n\006CP_SAT\020\002\"\250\001\n\026RoutingModelParamete"
439 "rs\022J\n\021solver_parameters\030\001 \001(\0132/.operatio"
440 "ns_research.ConstraintSolverParameters\022!"
441 "\n\031reduce_vehicle_cost_model\030\002 \001(\010\022\037\n\027max"
442 "_callback_cache_size\030\003 \001(\005BI\n#com.google"
443 ".ortools.constraintsolverP\001\252\002\037Google.OrT"
444 "ools.ConstraintSolverb\006proto3"
445 ;
446static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_deps[5] = {
447 &::descriptor_table_google_2fprotobuf_2fduration_2eproto,
452};
454const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto = {
455 false, false, 5389, descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto, "ortools/constraint_solver/routing_parameters.proto",
459};
460PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_getter() {
462}
463
464// Force running AddDescriptors() at dynamic initialization time.
465PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto(&descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto);
466namespace operations_research {
467const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RoutingSearchParameters_SchedulingSolver_descriptor() {
468 ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto);
470}
472 switch (value) {
473 case 0:
474 case 1:
475 case 2:
476 return true;
477 default:
478 return false;
479 }
480}
481
482#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
489#endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
490
491// ===================================================================
492
494 public:
495};
496
498 bool is_message_owned)
499 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
500 SharedCtor();
501 if (!is_message_owned) {
502 RegisterArenaDtor(arena);
503 }
504 // @@protoc_insertion_point(arena_constructor:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
505}
507 : ::PROTOBUF_NAMESPACE_ID::Message() {
508 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
509 ::memcpy(&use_relocate_, &from.use_relocate_,
510 static_cast<size_t>(reinterpret_cast<char*>(&use_relocate_path_global_cheapest_insertion_insert_unperformed_) -
511 reinterpret_cast<char*>(&use_relocate_)) + sizeof(use_relocate_path_global_cheapest_insertion_insert_unperformed_));
512 // @@protoc_insertion_point(copy_constructor:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
513}
514
515inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedCtor() {
516::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
517 reinterpret_cast<char*>(&use_relocate_) - reinterpret_cast<char*>(this)),
518 0, static_cast<size_t>(reinterpret_cast<char*>(&use_relocate_path_global_cheapest_insertion_insert_unperformed_) -
519 reinterpret_cast<char*>(&use_relocate_)) + sizeof(use_relocate_path_global_cheapest_insertion_insert_unperformed_));
520}
521
523 // @@protoc_insertion_point(destructor:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
524 if (GetArenaForAllocation() != nullptr) return;
525 SharedDtor();
526 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
527}
528
529inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedDtor() {
530 GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
531}
532
533void RoutingSearchParameters_LocalSearchNeighborhoodOperators::ArenaDtor(void* object) {
535 (void)_this;
536}
537void RoutingSearchParameters_LocalSearchNeighborhoodOperators::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
538}
539void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SetCachedSize(int size) const {
540 _cached_size_.Set(size);
541}
542
544// @@protoc_insertion_point(message_clear_start:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
545 uint32_t cached_has_bits = 0;
546 // Prevent compiler warnings about cached_has_bits being unused
547 (void) cached_has_bits;
548
549 ::memset(&use_relocate_, 0, static_cast<size_t>(
550 reinterpret_cast<char*>(&use_relocate_path_global_cheapest_insertion_insert_unperformed_) -
551 reinterpret_cast<char*>(&use_relocate_)) + sizeof(use_relocate_path_global_cheapest_insertion_insert_unperformed_));
552 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
553}
554
555const char* RoutingSearchParameters_LocalSearchNeighborhoodOperators::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
556#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
557 while (!ctx->Done(&ptr)) {
558 uint32_t tag;
559 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
560 switch (tag >> 3) {
561 // .operations_research.OptionalBoolean use_relocate = 1;
562 case 1:
563 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
564 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
565 CHK_(ptr);
566 _internal_set_use_relocate(static_cast<::operations_research::OptionalBoolean>(val));
567 } else
568 goto handle_unusual;
569 continue;
570 // .operations_research.OptionalBoolean use_relocate_pair = 2;
571 case 2:
572 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
573 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
574 CHK_(ptr);
575 _internal_set_use_relocate_pair(static_cast<::operations_research::OptionalBoolean>(val));
576 } else
577 goto handle_unusual;
578 continue;
579 // .operations_research.OptionalBoolean use_relocate_neighbors = 3;
580 case 3:
581 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
582 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
583 CHK_(ptr);
584 _internal_set_use_relocate_neighbors(static_cast<::operations_research::OptionalBoolean>(val));
585 } else
586 goto handle_unusual;
587 continue;
588 // .operations_research.OptionalBoolean use_exchange = 4;
589 case 4:
590 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
591 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
592 CHK_(ptr);
593 _internal_set_use_exchange(static_cast<::operations_research::OptionalBoolean>(val));
594 } else
595 goto handle_unusual;
596 continue;
597 // .operations_research.OptionalBoolean use_cross = 5;
598 case 5:
599 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
600 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
601 CHK_(ptr);
602 _internal_set_use_cross(static_cast<::operations_research::OptionalBoolean>(val));
603 } else
604 goto handle_unusual;
605 continue;
606 // .operations_research.OptionalBoolean use_cross_exchange = 6;
607 case 6:
608 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
609 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
610 CHK_(ptr);
611 _internal_set_use_cross_exchange(static_cast<::operations_research::OptionalBoolean>(val));
612 } else
613 goto handle_unusual;
614 continue;
615 // .operations_research.OptionalBoolean use_two_opt = 7;
616 case 7:
617 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
618 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
619 CHK_(ptr);
620 _internal_set_use_two_opt(static_cast<::operations_research::OptionalBoolean>(val));
621 } else
622 goto handle_unusual;
623 continue;
624 // .operations_research.OptionalBoolean use_or_opt = 8;
625 case 8:
626 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
627 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
628 CHK_(ptr);
629 _internal_set_use_or_opt(static_cast<::operations_research::OptionalBoolean>(val));
630 } else
631 goto handle_unusual;
632 continue;
633 // .operations_research.OptionalBoolean use_lin_kernighan = 9;
634 case 9:
635 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
636 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
637 CHK_(ptr);
638 _internal_set_use_lin_kernighan(static_cast<::operations_research::OptionalBoolean>(val));
639 } else
640 goto handle_unusual;
641 continue;
642 // .operations_research.OptionalBoolean use_tsp_opt = 10;
643 case 10:
644 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
645 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
646 CHK_(ptr);
647 _internal_set_use_tsp_opt(static_cast<::operations_research::OptionalBoolean>(val));
648 } else
649 goto handle_unusual;
650 continue;
651 // .operations_research.OptionalBoolean use_make_active = 11;
652 case 11:
653 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
654 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
655 CHK_(ptr);
656 _internal_set_use_make_active(static_cast<::operations_research::OptionalBoolean>(val));
657 } else
658 goto handle_unusual;
659 continue;
660 // .operations_research.OptionalBoolean use_make_inactive = 12;
661 case 12:
662 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
663 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
664 CHK_(ptr);
665 _internal_set_use_make_inactive(static_cast<::operations_research::OptionalBoolean>(val));
666 } else
667 goto handle_unusual;
668 continue;
669 // .operations_research.OptionalBoolean use_make_chain_inactive = 13;
670 case 13:
671 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 104)) {
672 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
673 CHK_(ptr);
674 _internal_set_use_make_chain_inactive(static_cast<::operations_research::OptionalBoolean>(val));
675 } else
676 goto handle_unusual;
677 continue;
678 // .operations_research.OptionalBoolean use_swap_active = 14;
679 case 14:
680 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 112)) {
681 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
682 CHK_(ptr);
683 _internal_set_use_swap_active(static_cast<::operations_research::OptionalBoolean>(val));
684 } else
685 goto handle_unusual;
686 continue;
687 // .operations_research.OptionalBoolean use_extended_swap_active = 15;
688 case 15:
689 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 120)) {
690 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
691 CHK_(ptr);
692 _internal_set_use_extended_swap_active(static_cast<::operations_research::OptionalBoolean>(val));
693 } else
694 goto handle_unusual;
695 continue;
696 // .operations_research.OptionalBoolean use_path_lns = 16;
697 case 16:
698 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 128)) {
699 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
700 CHK_(ptr);
701 _internal_set_use_path_lns(static_cast<::operations_research::OptionalBoolean>(val));
702 } else
703 goto handle_unusual;
704 continue;
705 // .operations_research.OptionalBoolean use_full_path_lns = 17;
706 case 17:
707 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 136)) {
708 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
709 CHK_(ptr);
710 _internal_set_use_full_path_lns(static_cast<::operations_research::OptionalBoolean>(val));
711 } else
712 goto handle_unusual;
713 continue;
714 // .operations_research.OptionalBoolean use_tsp_lns = 18;
715 case 18:
716 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 144)) {
717 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
718 CHK_(ptr);
719 _internal_set_use_tsp_lns(static_cast<::operations_research::OptionalBoolean>(val));
720 } else
721 goto handle_unusual;
722 continue;
723 // .operations_research.OptionalBoolean use_inactive_lns = 19;
724 case 19:
725 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 152)) {
726 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
727 CHK_(ptr);
728 _internal_set_use_inactive_lns(static_cast<::operations_research::OptionalBoolean>(val));
729 } else
730 goto handle_unusual;
731 continue;
732 // .operations_research.OptionalBoolean use_node_pair_swap_active = 20;
733 case 20:
734 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 160)) {
735 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
736 CHK_(ptr);
737 _internal_set_use_node_pair_swap_active(static_cast<::operations_research::OptionalBoolean>(val));
738 } else
739 goto handle_unusual;
740 continue;
741 // .operations_research.OptionalBoolean use_relocate_and_make_active = 21;
742 case 21:
743 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 168)) {
744 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
745 CHK_(ptr);
746 _internal_set_use_relocate_and_make_active(static_cast<::operations_research::OptionalBoolean>(val));
747 } else
748 goto handle_unusual;
749 continue;
750 // .operations_research.OptionalBoolean use_exchange_pair = 22;
751 case 22:
752 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 176)) {
753 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
754 CHK_(ptr);
755 _internal_set_use_exchange_pair(static_cast<::operations_research::OptionalBoolean>(val));
756 } else
757 goto handle_unusual;
758 continue;
759 // .operations_research.OptionalBoolean use_relocate_expensive_chain = 23;
760 case 23:
761 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 184)) {
762 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
763 CHK_(ptr);
764 _internal_set_use_relocate_expensive_chain(static_cast<::operations_research::OptionalBoolean>(val));
765 } else
766 goto handle_unusual;
767 continue;
768 // .operations_research.OptionalBoolean use_light_relocate_pair = 24;
769 case 24:
770 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 192)) {
771 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
772 CHK_(ptr);
773 _internal_set_use_light_relocate_pair(static_cast<::operations_research::OptionalBoolean>(val));
774 } else
775 goto handle_unusual;
776 continue;
777 // .operations_research.OptionalBoolean use_relocate_subtrip = 25;
778 case 25:
779 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 200)) {
780 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
781 CHK_(ptr);
782 _internal_set_use_relocate_subtrip(static_cast<::operations_research::OptionalBoolean>(val));
783 } else
784 goto handle_unusual;
785 continue;
786 // .operations_research.OptionalBoolean use_exchange_subtrip = 26;
787 case 26:
788 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 208)) {
789 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
790 CHK_(ptr);
791 _internal_set_use_exchange_subtrip(static_cast<::operations_research::OptionalBoolean>(val));
792 } else
793 goto handle_unusual;
794 continue;
795 // .operations_research.OptionalBoolean use_global_cheapest_insertion_path_lns = 27;
796 case 27:
797 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 216)) {
798 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
799 CHK_(ptr);
800 _internal_set_use_global_cheapest_insertion_path_lns(static_cast<::operations_research::OptionalBoolean>(val));
801 } else
802 goto handle_unusual;
803 continue;
804 // .operations_research.OptionalBoolean use_local_cheapest_insertion_path_lns = 28;
805 case 28:
806 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 224)) {
807 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
808 CHK_(ptr);
809 _internal_set_use_local_cheapest_insertion_path_lns(static_cast<::operations_research::OptionalBoolean>(val));
810 } else
811 goto handle_unusual;
812 continue;
813 // .operations_research.OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns = 29;
814 case 29:
815 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 232)) {
816 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
817 CHK_(ptr);
818 _internal_set_use_global_cheapest_insertion_expensive_chain_lns(static_cast<::operations_research::OptionalBoolean>(val));
819 } else
820 goto handle_unusual;
821 continue;
822 // .operations_research.OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns = 30;
823 case 30:
824 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 240)) {
825 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
826 CHK_(ptr);
827 _internal_set_use_local_cheapest_insertion_expensive_chain_lns(static_cast<::operations_research::OptionalBoolean>(val));
828 } else
829 goto handle_unusual;
830 continue;
831 // .operations_research.OptionalBoolean use_global_cheapest_insertion_close_nodes_lns = 31;
832 case 31:
833 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 248)) {
834 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
835 CHK_(ptr);
836 _internal_set_use_global_cheapest_insertion_close_nodes_lns(static_cast<::operations_research::OptionalBoolean>(val));
837 } else
838 goto handle_unusual;
839 continue;
840 // .operations_research.OptionalBoolean use_local_cheapest_insertion_close_nodes_lns = 32;
841 case 32:
842 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 0)) {
843 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
844 CHK_(ptr);
845 _internal_set_use_local_cheapest_insertion_close_nodes_lns(static_cast<::operations_research::OptionalBoolean>(val));
846 } else
847 goto handle_unusual;
848 continue;
849 // .operations_research.OptionalBoolean use_relocate_path_global_cheapest_insertion_insert_unperformed = 33;
850 case 33:
851 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
852 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
853 CHK_(ptr);
854 _internal_set_use_relocate_path_global_cheapest_insertion_insert_unperformed(static_cast<::operations_research::OptionalBoolean>(val));
855 } else
856 goto handle_unusual;
857 continue;
858 default:
859 goto handle_unusual;
860 } // switch
861 handle_unusual:
862 if ((tag == 0) || ((tag & 7) == 4)) {
863 CHK_(ptr);
864 ctx->SetLastTag(tag);
865 goto message_done;
866 }
867 ptr = UnknownFieldParse(
868 tag,
869 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
870 ptr, ctx);
871 CHK_(ptr != nullptr);
872 } // while
873message_done:
874 return ptr;
875failure:
876 ptr = nullptr;
877 goto message_done;
878#undef CHK_
879}
880
882 uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
883 // @@protoc_insertion_point(serialize_to_array_start:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
884 uint32_t cached_has_bits = 0;
885 (void) cached_has_bits;
886
887 // .operations_research.OptionalBoolean use_relocate = 1;
888 if (this->_internal_use_relocate() != 0) {
889 target = stream->EnsureSpace(target);
890 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
891 1, this->_internal_use_relocate(), target);
892 }
893
894 // .operations_research.OptionalBoolean use_relocate_pair = 2;
895 if (this->_internal_use_relocate_pair() != 0) {
896 target = stream->EnsureSpace(target);
897 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
898 2, this->_internal_use_relocate_pair(), target);
899 }
900
901 // .operations_research.OptionalBoolean use_relocate_neighbors = 3;
902 if (this->_internal_use_relocate_neighbors() != 0) {
903 target = stream->EnsureSpace(target);
904 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
905 3, this->_internal_use_relocate_neighbors(), target);
906 }
907
908 // .operations_research.OptionalBoolean use_exchange = 4;
909 if (this->_internal_use_exchange() != 0) {
910 target = stream->EnsureSpace(target);
911 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
912 4, this->_internal_use_exchange(), target);
913 }
914
915 // .operations_research.OptionalBoolean use_cross = 5;
916 if (this->_internal_use_cross() != 0) {
917 target = stream->EnsureSpace(target);
918 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
919 5, this->_internal_use_cross(), target);
920 }
921
922 // .operations_research.OptionalBoolean use_cross_exchange = 6;
923 if (this->_internal_use_cross_exchange() != 0) {
924 target = stream->EnsureSpace(target);
925 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
926 6, this->_internal_use_cross_exchange(), target);
927 }
928
929 // .operations_research.OptionalBoolean use_two_opt = 7;
930 if (this->_internal_use_two_opt() != 0) {
931 target = stream->EnsureSpace(target);
932 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
933 7, this->_internal_use_two_opt(), target);
934 }
935
936 // .operations_research.OptionalBoolean use_or_opt = 8;
937 if (this->_internal_use_or_opt() != 0) {
938 target = stream->EnsureSpace(target);
939 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
940 8, this->_internal_use_or_opt(), target);
941 }
942
943 // .operations_research.OptionalBoolean use_lin_kernighan = 9;
944 if (this->_internal_use_lin_kernighan() != 0) {
945 target = stream->EnsureSpace(target);
946 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
947 9, this->_internal_use_lin_kernighan(), target);
948 }
949
950 // .operations_research.OptionalBoolean use_tsp_opt = 10;
951 if (this->_internal_use_tsp_opt() != 0) {
952 target = stream->EnsureSpace(target);
953 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
954 10, this->_internal_use_tsp_opt(), target);
955 }
956
957 // .operations_research.OptionalBoolean use_make_active = 11;
958 if (this->_internal_use_make_active() != 0) {
959 target = stream->EnsureSpace(target);
960 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
961 11, this->_internal_use_make_active(), target);
962 }
963
964 // .operations_research.OptionalBoolean use_make_inactive = 12;
965 if (this->_internal_use_make_inactive() != 0) {
966 target = stream->EnsureSpace(target);
967 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
968 12, this->_internal_use_make_inactive(), target);
969 }
970
971 // .operations_research.OptionalBoolean use_make_chain_inactive = 13;
972 if (this->_internal_use_make_chain_inactive() != 0) {
973 target = stream->EnsureSpace(target);
974 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
975 13, this->_internal_use_make_chain_inactive(), target);
976 }
977
978 // .operations_research.OptionalBoolean use_swap_active = 14;
979 if (this->_internal_use_swap_active() != 0) {
980 target = stream->EnsureSpace(target);
981 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
982 14, this->_internal_use_swap_active(), target);
983 }
984
985 // .operations_research.OptionalBoolean use_extended_swap_active = 15;
986 if (this->_internal_use_extended_swap_active() != 0) {
987 target = stream->EnsureSpace(target);
988 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
989 15, this->_internal_use_extended_swap_active(), target);
990 }
991
992 // .operations_research.OptionalBoolean use_path_lns = 16;
993 if (this->_internal_use_path_lns() != 0) {
994 target = stream->EnsureSpace(target);
995 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
996 16, this->_internal_use_path_lns(), target);
997 }
998
999 // .operations_research.OptionalBoolean use_full_path_lns = 17;
1000 if (this->_internal_use_full_path_lns() != 0) {
1001 target = stream->EnsureSpace(target);
1002 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1003 17, this->_internal_use_full_path_lns(), target);
1004 }
1005
1006 // .operations_research.OptionalBoolean use_tsp_lns = 18;
1007 if (this->_internal_use_tsp_lns() != 0) {
1008 target = stream->EnsureSpace(target);
1009 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1010 18, this->_internal_use_tsp_lns(), target);
1011 }
1012
1013 // .operations_research.OptionalBoolean use_inactive_lns = 19;
1014 if (this->_internal_use_inactive_lns() != 0) {
1015 target = stream->EnsureSpace(target);
1016 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1017 19, this->_internal_use_inactive_lns(), target);
1018 }
1019
1020 // .operations_research.OptionalBoolean use_node_pair_swap_active = 20;
1021 if (this->_internal_use_node_pair_swap_active() != 0) {
1022 target = stream->EnsureSpace(target);
1023 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1024 20, this->_internal_use_node_pair_swap_active(), target);
1025 }
1026
1027 // .operations_research.OptionalBoolean use_relocate_and_make_active = 21;
1028 if (this->_internal_use_relocate_and_make_active() != 0) {
1029 target = stream->EnsureSpace(target);
1030 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1031 21, this->_internal_use_relocate_and_make_active(), target);
1032 }
1033
1034 // .operations_research.OptionalBoolean use_exchange_pair = 22;
1035 if (this->_internal_use_exchange_pair() != 0) {
1036 target = stream->EnsureSpace(target);
1037 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1038 22, this->_internal_use_exchange_pair(), target);
1039 }
1040
1041 // .operations_research.OptionalBoolean use_relocate_expensive_chain = 23;
1042 if (this->_internal_use_relocate_expensive_chain() != 0) {
1043 target = stream->EnsureSpace(target);
1044 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1045 23, this->_internal_use_relocate_expensive_chain(), target);
1046 }
1047
1048 // .operations_research.OptionalBoolean use_light_relocate_pair = 24;
1049 if (this->_internal_use_light_relocate_pair() != 0) {
1050 target = stream->EnsureSpace(target);
1051 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1052 24, this->_internal_use_light_relocate_pair(), target);
1053 }
1054
1055 // .operations_research.OptionalBoolean use_relocate_subtrip = 25;
1056 if (this->_internal_use_relocate_subtrip() != 0) {
1057 target = stream->EnsureSpace(target);
1058 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1059 25, this->_internal_use_relocate_subtrip(), target);
1060 }
1061
1062 // .operations_research.OptionalBoolean use_exchange_subtrip = 26;
1063 if (this->_internal_use_exchange_subtrip() != 0) {
1064 target = stream->EnsureSpace(target);
1065 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1066 26, this->_internal_use_exchange_subtrip(), target);
1067 }
1068
1069 // .operations_research.OptionalBoolean use_global_cheapest_insertion_path_lns = 27;
1070 if (this->_internal_use_global_cheapest_insertion_path_lns() != 0) {
1071 target = stream->EnsureSpace(target);
1072 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1073 27, this->_internal_use_global_cheapest_insertion_path_lns(), target);
1074 }
1075
1076 // .operations_research.OptionalBoolean use_local_cheapest_insertion_path_lns = 28;
1077 if (this->_internal_use_local_cheapest_insertion_path_lns() != 0) {
1078 target = stream->EnsureSpace(target);
1079 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1080 28, this->_internal_use_local_cheapest_insertion_path_lns(), target);
1081 }
1082
1083 // .operations_research.OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns = 29;
1084 if (this->_internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1085 target = stream->EnsureSpace(target);
1086 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1087 29, this->_internal_use_global_cheapest_insertion_expensive_chain_lns(), target);
1088 }
1089
1090 // .operations_research.OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns = 30;
1091 if (this->_internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1092 target = stream->EnsureSpace(target);
1093 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1094 30, this->_internal_use_local_cheapest_insertion_expensive_chain_lns(), target);
1095 }
1096
1097 // .operations_research.OptionalBoolean use_global_cheapest_insertion_close_nodes_lns = 31;
1098 if (this->_internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1099 target = stream->EnsureSpace(target);
1100 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1101 31, this->_internal_use_global_cheapest_insertion_close_nodes_lns(), target);
1102 }
1103
1104 // .operations_research.OptionalBoolean use_local_cheapest_insertion_close_nodes_lns = 32;
1105 if (this->_internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1106 target = stream->EnsureSpace(target);
1107 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1108 32, this->_internal_use_local_cheapest_insertion_close_nodes_lns(), target);
1109 }
1110
1111 // .operations_research.OptionalBoolean use_relocate_path_global_cheapest_insertion_insert_unperformed = 33;
1112 if (this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1113 target = stream->EnsureSpace(target);
1114 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1115 33, this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed(), target);
1116 }
1117
1118 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1119 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1120 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1121 }
1122 // @@protoc_insertion_point(serialize_to_array_end:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1123 return target;
1124}
1125
1127// @@protoc_insertion_point(message_byte_size_start:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1128 size_t total_size = 0;
1129
1130 uint32_t cached_has_bits = 0;
1131 // Prevent compiler warnings about cached_has_bits being unused
1132 (void) cached_has_bits;
1133
1134 // .operations_research.OptionalBoolean use_relocate = 1;
1135 if (this->_internal_use_relocate() != 0) {
1136 total_size += 1 +
1137 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate());
1138 }
1139
1140 // .operations_research.OptionalBoolean use_relocate_pair = 2;
1141 if (this->_internal_use_relocate_pair() != 0) {
1142 total_size += 1 +
1143 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_pair());
1144 }
1145
1146 // .operations_research.OptionalBoolean use_relocate_neighbors = 3;
1147 if (this->_internal_use_relocate_neighbors() != 0) {
1148 total_size += 1 +
1149 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_neighbors());
1150 }
1151
1152 // .operations_research.OptionalBoolean use_exchange = 4;
1153 if (this->_internal_use_exchange() != 0) {
1154 total_size += 1 +
1155 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange());
1156 }
1157
1158 // .operations_research.OptionalBoolean use_cross = 5;
1159 if (this->_internal_use_cross() != 0) {
1160 total_size += 1 +
1161 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cross());
1162 }
1163
1164 // .operations_research.OptionalBoolean use_cross_exchange = 6;
1165 if (this->_internal_use_cross_exchange() != 0) {
1166 total_size += 1 +
1167 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cross_exchange());
1168 }
1169
1170 // .operations_research.OptionalBoolean use_two_opt = 7;
1171 if (this->_internal_use_two_opt() != 0) {
1172 total_size += 1 +
1173 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_two_opt());
1174 }
1175
1176 // .operations_research.OptionalBoolean use_or_opt = 8;
1177 if (this->_internal_use_or_opt() != 0) {
1178 total_size += 1 +
1179 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_or_opt());
1180 }
1181
1182 // .operations_research.OptionalBoolean use_lin_kernighan = 9;
1183 if (this->_internal_use_lin_kernighan() != 0) {
1184 total_size += 1 +
1185 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_lin_kernighan());
1186 }
1187
1188 // .operations_research.OptionalBoolean use_tsp_opt = 10;
1189 if (this->_internal_use_tsp_opt() != 0) {
1190 total_size += 1 +
1191 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_tsp_opt());
1192 }
1193
1194 // .operations_research.OptionalBoolean use_make_active = 11;
1195 if (this->_internal_use_make_active() != 0) {
1196 total_size += 1 +
1197 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_active());
1198 }
1199
1200 // .operations_research.OptionalBoolean use_make_inactive = 12;
1201 if (this->_internal_use_make_inactive() != 0) {
1202 total_size += 1 +
1203 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_inactive());
1204 }
1205
1206 // .operations_research.OptionalBoolean use_make_chain_inactive = 13;
1207 if (this->_internal_use_make_chain_inactive() != 0) {
1208 total_size += 1 +
1209 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_chain_inactive());
1210 }
1211
1212 // .operations_research.OptionalBoolean use_swap_active = 14;
1213 if (this->_internal_use_swap_active() != 0) {
1214 total_size += 1 +
1215 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_swap_active());
1216 }
1217
1218 // .operations_research.OptionalBoolean use_extended_swap_active = 15;
1219 if (this->_internal_use_extended_swap_active() != 0) {
1220 total_size += 1 +
1221 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_extended_swap_active());
1222 }
1223
1224 // .operations_research.OptionalBoolean use_path_lns = 16;
1225 if (this->_internal_use_path_lns() != 0) {
1226 total_size += 2 +
1227 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_path_lns());
1228 }
1229
1230 // .operations_research.OptionalBoolean use_full_path_lns = 17;
1231 if (this->_internal_use_full_path_lns() != 0) {
1232 total_size += 2 +
1233 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_full_path_lns());
1234 }
1235
1236 // .operations_research.OptionalBoolean use_tsp_lns = 18;
1237 if (this->_internal_use_tsp_lns() != 0) {
1238 total_size += 2 +
1239 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_tsp_lns());
1240 }
1241
1242 // .operations_research.OptionalBoolean use_inactive_lns = 19;
1243 if (this->_internal_use_inactive_lns() != 0) {
1244 total_size += 2 +
1245 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_inactive_lns());
1246 }
1247
1248 // .operations_research.OptionalBoolean use_node_pair_swap_active = 20;
1249 if (this->_internal_use_node_pair_swap_active() != 0) {
1250 total_size += 2 +
1251 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_node_pair_swap_active());
1252 }
1253
1254 // .operations_research.OptionalBoolean use_relocate_and_make_active = 21;
1255 if (this->_internal_use_relocate_and_make_active() != 0) {
1256 total_size += 2 +
1257 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_and_make_active());
1258 }
1259
1260 // .operations_research.OptionalBoolean use_exchange_pair = 22;
1261 if (this->_internal_use_exchange_pair() != 0) {
1262 total_size += 2 +
1263 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange_pair());
1264 }
1265
1266 // .operations_research.OptionalBoolean use_relocate_expensive_chain = 23;
1267 if (this->_internal_use_relocate_expensive_chain() != 0) {
1268 total_size += 2 +
1269 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_expensive_chain());
1270 }
1271
1272 // .operations_research.OptionalBoolean use_light_relocate_pair = 24;
1273 if (this->_internal_use_light_relocate_pair() != 0) {
1274 total_size += 2 +
1275 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_light_relocate_pair());
1276 }
1277
1278 // .operations_research.OptionalBoolean use_relocate_subtrip = 25;
1279 if (this->_internal_use_relocate_subtrip() != 0) {
1280 total_size += 2 +
1281 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_subtrip());
1282 }
1283
1284 // .operations_research.OptionalBoolean use_exchange_subtrip = 26;
1285 if (this->_internal_use_exchange_subtrip() != 0) {
1286 total_size += 2 +
1287 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange_subtrip());
1288 }
1289
1290 // .operations_research.OptionalBoolean use_global_cheapest_insertion_path_lns = 27;
1291 if (this->_internal_use_global_cheapest_insertion_path_lns() != 0) {
1292 total_size += 2 +
1293 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_path_lns());
1294 }
1295
1296 // .operations_research.OptionalBoolean use_local_cheapest_insertion_path_lns = 28;
1297 if (this->_internal_use_local_cheapest_insertion_path_lns() != 0) {
1298 total_size += 2 +
1299 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_path_lns());
1300 }
1301
1302 // .operations_research.OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns = 29;
1303 if (this->_internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1304 total_size += 2 +
1305 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_expensive_chain_lns());
1306 }
1307
1308 // .operations_research.OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns = 30;
1309 if (this->_internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1310 total_size += 2 +
1311 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_expensive_chain_lns());
1312 }
1313
1314 // .operations_research.OptionalBoolean use_global_cheapest_insertion_close_nodes_lns = 31;
1315 if (this->_internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1316 total_size += 2 +
1317 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_close_nodes_lns());
1318 }
1319
1320 // .operations_research.OptionalBoolean use_local_cheapest_insertion_close_nodes_lns = 32;
1321 if (this->_internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1322 total_size += 2 +
1323 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_close_nodes_lns());
1324 }
1325
1326 // .operations_research.OptionalBoolean use_relocate_path_global_cheapest_insertion_insert_unperformed = 33;
1327 if (this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1328 total_size += 2 +
1329 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed());
1330 }
1331
1332 return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
1333}
1334
1335const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RoutingSearchParameters_LocalSearchNeighborhoodOperators::_class_data_ = {
1336 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1337 RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeImpl
1338};
1339const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RoutingSearchParameters_LocalSearchNeighborhoodOperators::GetClassData() const { return &_class_data_; }
1340
1341void RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
1342 const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1345}
1346
1347
1349// @@protoc_insertion_point(class_specific_merge_from_start:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1350 GOOGLE_DCHECK_NE(&from, this);
1351 uint32_t cached_has_bits = 0;
1352 (void) cached_has_bits;
1353
1354 if (from._internal_use_relocate() != 0) {
1355 _internal_set_use_relocate(from._internal_use_relocate());
1356 }
1357 if (from._internal_use_relocate_pair() != 0) {
1358 _internal_set_use_relocate_pair(from._internal_use_relocate_pair());
1359 }
1360 if (from._internal_use_relocate_neighbors() != 0) {
1361 _internal_set_use_relocate_neighbors(from._internal_use_relocate_neighbors());
1362 }
1363 if (from._internal_use_exchange() != 0) {
1364 _internal_set_use_exchange(from._internal_use_exchange());
1365 }
1366 if (from._internal_use_cross() != 0) {
1367 _internal_set_use_cross(from._internal_use_cross());
1368 }
1369 if (from._internal_use_cross_exchange() != 0) {
1370 _internal_set_use_cross_exchange(from._internal_use_cross_exchange());
1371 }
1372 if (from._internal_use_two_opt() != 0) {
1373 _internal_set_use_two_opt(from._internal_use_two_opt());
1374 }
1375 if (from._internal_use_or_opt() != 0) {
1376 _internal_set_use_or_opt(from._internal_use_or_opt());
1377 }
1378 if (from._internal_use_lin_kernighan() != 0) {
1379 _internal_set_use_lin_kernighan(from._internal_use_lin_kernighan());
1380 }
1381 if (from._internal_use_tsp_opt() != 0) {
1382 _internal_set_use_tsp_opt(from._internal_use_tsp_opt());
1383 }
1384 if (from._internal_use_make_active() != 0) {
1385 _internal_set_use_make_active(from._internal_use_make_active());
1386 }
1387 if (from._internal_use_make_inactive() != 0) {
1388 _internal_set_use_make_inactive(from._internal_use_make_inactive());
1389 }
1390 if (from._internal_use_make_chain_inactive() != 0) {
1391 _internal_set_use_make_chain_inactive(from._internal_use_make_chain_inactive());
1392 }
1393 if (from._internal_use_swap_active() != 0) {
1394 _internal_set_use_swap_active(from._internal_use_swap_active());
1395 }
1396 if (from._internal_use_extended_swap_active() != 0) {
1397 _internal_set_use_extended_swap_active(from._internal_use_extended_swap_active());
1398 }
1399 if (from._internal_use_path_lns() != 0) {
1400 _internal_set_use_path_lns(from._internal_use_path_lns());
1401 }
1402 if (from._internal_use_full_path_lns() != 0) {
1403 _internal_set_use_full_path_lns(from._internal_use_full_path_lns());
1404 }
1405 if (from._internal_use_tsp_lns() != 0) {
1406 _internal_set_use_tsp_lns(from._internal_use_tsp_lns());
1407 }
1408 if (from._internal_use_inactive_lns() != 0) {
1409 _internal_set_use_inactive_lns(from._internal_use_inactive_lns());
1410 }
1411 if (from._internal_use_node_pair_swap_active() != 0) {
1412 _internal_set_use_node_pair_swap_active(from._internal_use_node_pair_swap_active());
1413 }
1414 if (from._internal_use_relocate_and_make_active() != 0) {
1415 _internal_set_use_relocate_and_make_active(from._internal_use_relocate_and_make_active());
1416 }
1417 if (from._internal_use_exchange_pair() != 0) {
1418 _internal_set_use_exchange_pair(from._internal_use_exchange_pair());
1419 }
1420 if (from._internal_use_relocate_expensive_chain() != 0) {
1421 _internal_set_use_relocate_expensive_chain(from._internal_use_relocate_expensive_chain());
1422 }
1423 if (from._internal_use_light_relocate_pair() != 0) {
1424 _internal_set_use_light_relocate_pair(from._internal_use_light_relocate_pair());
1425 }
1426 if (from._internal_use_relocate_subtrip() != 0) {
1427 _internal_set_use_relocate_subtrip(from._internal_use_relocate_subtrip());
1428 }
1429 if (from._internal_use_exchange_subtrip() != 0) {
1430 _internal_set_use_exchange_subtrip(from._internal_use_exchange_subtrip());
1431 }
1432 if (from._internal_use_global_cheapest_insertion_path_lns() != 0) {
1433 _internal_set_use_global_cheapest_insertion_path_lns(from._internal_use_global_cheapest_insertion_path_lns());
1434 }
1435 if (from._internal_use_local_cheapest_insertion_path_lns() != 0) {
1436 _internal_set_use_local_cheapest_insertion_path_lns(from._internal_use_local_cheapest_insertion_path_lns());
1437 }
1438 if (from._internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1439 _internal_set_use_global_cheapest_insertion_expensive_chain_lns(from._internal_use_global_cheapest_insertion_expensive_chain_lns());
1440 }
1441 if (from._internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1442 _internal_set_use_local_cheapest_insertion_expensive_chain_lns(from._internal_use_local_cheapest_insertion_expensive_chain_lns());
1443 }
1444 if (from._internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1445 _internal_set_use_global_cheapest_insertion_close_nodes_lns(from._internal_use_global_cheapest_insertion_close_nodes_lns());
1446 }
1447 if (from._internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1448 _internal_set_use_local_cheapest_insertion_close_nodes_lns(from._internal_use_local_cheapest_insertion_close_nodes_lns());
1449 }
1450 if (from._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1451 _internal_set_use_relocate_path_global_cheapest_insertion_insert_unperformed(from._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed());
1452 }
1453 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1454}
1455
1457// @@protoc_insertion_point(class_specific_copy_from_start:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1458 if (&from == this) return;
1459 Clear();
1460 MergeFrom(from);
1461}
1462
1464 return true;
1465}
1466
1467void RoutingSearchParameters_LocalSearchNeighborhoodOperators::InternalSwap(RoutingSearchParameters_LocalSearchNeighborhoodOperators* other) {
1468 using std::swap;
1469 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1470 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1471 PROTOBUF_FIELD_OFFSET(RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_path_global_cheapest_insertion_insert_unperformed_)
1472 + sizeof(RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_relocate_path_global_cheapest_insertion_insert_unperformed_)
1473 - PROTOBUF_FIELD_OFFSET(RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_)>(
1474 reinterpret_cast<char*>(&use_relocate_),
1475 reinterpret_cast<char*>(&other->use_relocate_));
1476}
1477
1479 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1482}
1483
1484// ===================================================================
1485
1487 public:
1488};
1489
1491 bool is_message_owned)
1492 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
1493 SharedCtor();
1494 if (!is_message_owned) {
1495 RegisterArenaDtor(arena);
1496 }
1497 // @@protoc_insertion_point(arena_constructor:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
1498}
1500 : ::PROTOBUF_NAMESPACE_ID::Message() {
1501 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1502 ::memcpy(&improvement_rate_solutions_distance_, &from.improvement_rate_solutions_distance_,
1503 static_cast<size_t>(reinterpret_cast<char*>(&improvement_rate_coefficient_) -
1504 reinterpret_cast<char*>(&improvement_rate_solutions_distance_)) + sizeof(improvement_rate_coefficient_));
1505 // @@protoc_insertion_point(copy_constructor:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
1506}
1507
1508inline void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedCtor() {
1509::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
1510 reinterpret_cast<char*>(&improvement_rate_solutions_distance_) - reinterpret_cast<char*>(this)),
1511 0, static_cast<size_t>(reinterpret_cast<char*>(&improvement_rate_coefficient_) -
1512 reinterpret_cast<char*>(&improvement_rate_solutions_distance_)) + sizeof(improvement_rate_coefficient_));
1513}
1514
1516 // @@protoc_insertion_point(destructor:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
1517 if (GetArenaForAllocation() != nullptr) return;
1518 SharedDtor();
1519 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1520}
1521
1522inline void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedDtor() {
1523 GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1524}
1525
1526void RoutingSearchParameters_ImprovementSearchLimitParameters::ArenaDtor(void* object) {
1528 (void)_this;
1529}
1530void RoutingSearchParameters_ImprovementSearchLimitParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1531}
1532void RoutingSearchParameters_ImprovementSearchLimitParameters::SetCachedSize(int size) const {
1533 _cached_size_.Set(size);
1534}
1535
1537// @@protoc_insertion_point(message_clear_start:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
1538 uint32_t cached_has_bits = 0;
1539 // Prevent compiler warnings about cached_has_bits being unused
1540 (void) cached_has_bits;
1541
1542 ::memset(&improvement_rate_solutions_distance_, 0, static_cast<size_t>(
1543 reinterpret_cast<char*>(&improvement_rate_coefficient_) -
1544 reinterpret_cast<char*>(&improvement_rate_solutions_distance_)) + sizeof(improvement_rate_coefficient_));
1545 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1546}
1547
1548const char* RoutingSearchParameters_ImprovementSearchLimitParameters::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1549#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1550 while (!ctx->Done(&ptr)) {
1551 uint32_t tag;
1552 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1553 switch (tag >> 3) {
1554 // double improvement_rate_coefficient = 38;
1555 case 38:
1556 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 49)) {
1557 improvement_rate_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1558 ptr += sizeof(double);
1559 } else
1560 goto handle_unusual;
1561 continue;
1562 // int32 improvement_rate_solutions_distance = 39;
1563 case 39:
1564 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
1565 improvement_rate_solutions_distance_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
1566 CHK_(ptr);
1567 } else
1568 goto handle_unusual;
1569 continue;
1570 default:
1571 goto handle_unusual;
1572 } // switch
1573 handle_unusual:
1574 if ((tag == 0) || ((tag & 7) == 4)) {
1575 CHK_(ptr);
1576 ctx->SetLastTag(tag);
1577 goto message_done;
1578 }
1579 ptr = UnknownFieldParse(
1580 tag,
1581 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1582 ptr, ctx);
1583 CHK_(ptr != nullptr);
1584 } // while
1585message_done:
1586 return ptr;
1587failure:
1588 ptr = nullptr;
1589 goto message_done;
1590#undef CHK_
1591}
1592
1594 uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1595 // @@protoc_insertion_point(serialize_to_array_start:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
1596 uint32_t cached_has_bits = 0;
1597 (void) cached_has_bits;
1598
1599 // double improvement_rate_coefficient = 38;
1600 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
1601 double tmp_improvement_rate_coefficient = this->_internal_improvement_rate_coefficient();
1602 uint64_t raw_improvement_rate_coefficient;
1603 memcpy(&raw_improvement_rate_coefficient, &tmp_improvement_rate_coefficient, sizeof(tmp_improvement_rate_coefficient));
1604 if (raw_improvement_rate_coefficient != 0) {
1605 target = stream->EnsureSpace(target);
1606 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(38, this->_internal_improvement_rate_coefficient(), target);
1607 }
1608
1609 // int32 improvement_rate_solutions_distance = 39;
1610 if (this->_internal_improvement_rate_solutions_distance() != 0) {
1611 target = stream->EnsureSpace(target);
1612 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(39, this->_internal_improvement_rate_solutions_distance(), target);
1613 }
1614
1615 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1616 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1617 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1618 }
1619 // @@protoc_insertion_point(serialize_to_array_end:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
1620 return target;
1621}
1622
1624// @@protoc_insertion_point(message_byte_size_start:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
1625 size_t total_size = 0;
1626
1627 uint32_t cached_has_bits = 0;
1628 // Prevent compiler warnings about cached_has_bits being unused
1629 (void) cached_has_bits;
1630
1631 // int32 improvement_rate_solutions_distance = 39;
1632 if (this->_internal_improvement_rate_solutions_distance() != 0) {
1633 total_size += 2 +
1634 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1635 this->_internal_improvement_rate_solutions_distance());
1636 }
1637
1638 // double improvement_rate_coefficient = 38;
1639 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
1640 double tmp_improvement_rate_coefficient = this->_internal_improvement_rate_coefficient();
1641 uint64_t raw_improvement_rate_coefficient;
1642 memcpy(&raw_improvement_rate_coefficient, &tmp_improvement_rate_coefficient, sizeof(tmp_improvement_rate_coefficient));
1643 if (raw_improvement_rate_coefficient != 0) {
1644 total_size += 2 + 8;
1645 }
1646
1647 return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
1648}
1649
1650const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RoutingSearchParameters_ImprovementSearchLimitParameters::_class_data_ = {
1651 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1652 RoutingSearchParameters_ImprovementSearchLimitParameters::MergeImpl
1653};
1654const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RoutingSearchParameters_ImprovementSearchLimitParameters::GetClassData() const { return &_class_data_; }
1655
1656void RoutingSearchParameters_ImprovementSearchLimitParameters::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
1657 const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1660}
1661
1662
1664// @@protoc_insertion_point(class_specific_merge_from_start:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
1665 GOOGLE_DCHECK_NE(&from, this);
1666 uint32_t cached_has_bits = 0;
1667 (void) cached_has_bits;
1668
1669 if (from._internal_improvement_rate_solutions_distance() != 0) {
1670 _internal_set_improvement_rate_solutions_distance(from._internal_improvement_rate_solutions_distance());
1671 }
1672 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
1673 double tmp_improvement_rate_coefficient = from._internal_improvement_rate_coefficient();
1674 uint64_t raw_improvement_rate_coefficient;
1675 memcpy(&raw_improvement_rate_coefficient, &tmp_improvement_rate_coefficient, sizeof(tmp_improvement_rate_coefficient));
1676 if (raw_improvement_rate_coefficient != 0) {
1677 _internal_set_improvement_rate_coefficient(from._internal_improvement_rate_coefficient());
1678 }
1679 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1680}
1681
1683// @@protoc_insertion_point(class_specific_copy_from_start:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
1684 if (&from == this) return;
1685 Clear();
1686 MergeFrom(from);
1687}
1688
1690 return true;
1691}
1692
1693void RoutingSearchParameters_ImprovementSearchLimitParameters::InternalSwap(RoutingSearchParameters_ImprovementSearchLimitParameters* other) {
1694 using std::swap;
1695 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1696 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1697 PROTOBUF_FIELD_OFFSET(RoutingSearchParameters_ImprovementSearchLimitParameters, improvement_rate_coefficient_)
1698 + sizeof(RoutingSearchParameters_ImprovementSearchLimitParameters::improvement_rate_coefficient_)
1699 - PROTOBUF_FIELD_OFFSET(RoutingSearchParameters_ImprovementSearchLimitParameters, improvement_rate_solutions_distance_)>(
1700 reinterpret_cast<char*>(&improvement_rate_solutions_distance_),
1701 reinterpret_cast<char*>(&other->improvement_rate_solutions_distance_));
1702}
1703
1705 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1708}
1709
1710// ===================================================================
1711
1713 public:
1714 static const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators& local_search_operators(const RoutingSearchParameters* msg);
1715 static const ::operations_research::sat::SatParameters& sat_parameters(const RoutingSearchParameters* msg);
1716 static const ::PROTOBUF_NAMESPACE_ID::Duration& time_limit(const RoutingSearchParameters* msg);
1717 static const ::PROTOBUF_NAMESPACE_ID::Duration& lns_time_limit(const RoutingSearchParameters* msg);
1718 static const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters& improvement_limit_parameters(const RoutingSearchParameters* msg);
1719};
1720
1721const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators&
1723 return *msg->local_search_operators_;
1724}
1725const ::operations_research::sat::SatParameters&
1727 return *msg->sat_parameters_;
1728}
1729const ::PROTOBUF_NAMESPACE_ID::Duration&
1731 return *msg->time_limit_;
1732}
1733const ::PROTOBUF_NAMESPACE_ID::Duration&
1735 return *msg->lns_time_limit_;
1736}
1737const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters&
1739 return *msg->improvement_limit_parameters_;
1740}
1742 if (GetArenaForAllocation() == nullptr && sat_parameters_ != nullptr) {
1743 delete sat_parameters_;
1744 }
1745 sat_parameters_ = nullptr;
1746}
1748 if (GetArenaForAllocation() == nullptr && time_limit_ != nullptr) {
1749 delete time_limit_;
1750 }
1751 time_limit_ = nullptr;
1752}
1754 if (GetArenaForAllocation() == nullptr && lns_time_limit_ != nullptr) {
1755 delete lns_time_limit_;
1756 }
1757 lns_time_limit_ = nullptr;
1758}
1759RoutingSearchParameters::RoutingSearchParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1760 bool is_message_owned)
1761 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
1762 SharedCtor();
1763 if (!is_message_owned) {
1764 RegisterArenaDtor(arena);
1765 }
1766 // @@protoc_insertion_point(arena_constructor:operations_research.RoutingSearchParameters)
1767}
1769 : ::PROTOBUF_NAMESPACE_ID::Message() {
1770 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1771 log_tag_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1772 #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
1773 log_tag_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
1774 #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
1775 if (!from._internal_log_tag().empty()) {
1776 log_tag_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_log_tag(),
1777 GetArenaForAllocation());
1778 }
1779 if (from._internal_has_local_search_operators()) {
1780 local_search_operators_ = new ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators(*from.local_search_operators_);
1781 } else {
1782 local_search_operators_ = nullptr;
1783 }
1784 if (from._internal_has_time_limit()) {
1785 time_limit_ = new ::PROTOBUF_NAMESPACE_ID::Duration(*from.time_limit_);
1786 } else {
1787 time_limit_ = nullptr;
1788 }
1789 if (from._internal_has_lns_time_limit()) {
1790 lns_time_limit_ = new ::PROTOBUF_NAMESPACE_ID::Duration(*from.lns_time_limit_);
1791 } else {
1792 lns_time_limit_ = nullptr;
1793 }
1794 if (from._internal_has_improvement_limit_parameters()) {
1795 improvement_limit_parameters_ = new ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters(*from.improvement_limit_parameters_);
1796 } else {
1797 improvement_limit_parameters_ = nullptr;
1798 }
1799 if (from._internal_has_sat_parameters()) {
1800 sat_parameters_ = new ::operations_research::sat::SatParameters(*from.sat_parameters_);
1801 } else {
1802 sat_parameters_ = nullptr;
1803 }
1804 ::memcpy(&first_solution_strategy_, &from.first_solution_strategy_,
1805 static_cast<size_t>(reinterpret_cast<char*>(&use_generalized_cp_sat_) -
1806 reinterpret_cast<char*>(&first_solution_strategy_)) + sizeof(use_generalized_cp_sat_));
1807 // @@protoc_insertion_point(copy_constructor:operations_research.RoutingSearchParameters)
1808}
1809
1810inline void RoutingSearchParameters::SharedCtor() {
1811log_tag_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1812#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
1813 log_tag_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
1814#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
1815::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
1816 reinterpret_cast<char*>(&local_search_operators_) - reinterpret_cast<char*>(this)),
1817 0, static_cast<size_t>(reinterpret_cast<char*>(&use_generalized_cp_sat_) -
1818 reinterpret_cast<char*>(&local_search_operators_)) + sizeof(use_generalized_cp_sat_));
1819}
1820
1822 // @@protoc_insertion_point(destructor:operations_research.RoutingSearchParameters)
1823 if (GetArenaForAllocation() != nullptr) return;
1824 SharedDtor();
1825 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1826}
1827
1828inline void RoutingSearchParameters::SharedDtor() {
1829 GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1830 log_tag_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1831 if (this != internal_default_instance()) delete local_search_operators_;
1832 if (this != internal_default_instance()) delete time_limit_;
1833 if (this != internal_default_instance()) delete lns_time_limit_;
1834 if (this != internal_default_instance()) delete improvement_limit_parameters_;
1835 if (this != internal_default_instance()) delete sat_parameters_;
1836}
1837
1838void RoutingSearchParameters::ArenaDtor(void* object) {
1839 RoutingSearchParameters* _this = reinterpret_cast< RoutingSearchParameters* >(object);
1840 (void)_this;
1841}
1842void RoutingSearchParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1843}
1844void RoutingSearchParameters::SetCachedSize(int size) const {
1845 _cached_size_.Set(size);
1846}
1847
1849// @@protoc_insertion_point(message_clear_start:operations_research.RoutingSearchParameters)
1850 uint32_t cached_has_bits = 0;
1851 // Prevent compiler warnings about cached_has_bits being unused
1852 (void) cached_has_bits;
1853
1854 log_tag_.ClearToEmpty();
1855 if (GetArenaForAllocation() == nullptr && local_search_operators_ != nullptr) {
1856 delete local_search_operators_;
1857 }
1858 local_search_operators_ = nullptr;
1859 if (GetArenaForAllocation() == nullptr && time_limit_ != nullptr) {
1860 delete time_limit_;
1861 }
1862 time_limit_ = nullptr;
1863 if (GetArenaForAllocation() == nullptr && lns_time_limit_ != nullptr) {
1864 delete lns_time_limit_;
1865 }
1866 lns_time_limit_ = nullptr;
1867 if (GetArenaForAllocation() == nullptr && improvement_limit_parameters_ != nullptr) {
1868 delete improvement_limit_parameters_;
1869 }
1870 improvement_limit_parameters_ = nullptr;
1871 if (GetArenaForAllocation() == nullptr && sat_parameters_ != nullptr) {
1872 delete sat_parameters_;
1873 }
1874 sat_parameters_ = nullptr;
1875 ::memset(&first_solution_strategy_, 0, static_cast<size_t>(
1876 reinterpret_cast<char*>(&use_generalized_cp_sat_) -
1877 reinterpret_cast<char*>(&first_solution_strategy_)) + sizeof(use_generalized_cp_sat_));
1878 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1879}
1880
1881const char* RoutingSearchParameters::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1882#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1883 while (!ctx->Done(&ptr)) {
1884 uint32_t tag;
1885 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1886 switch (tag >> 3) {
1887 // .operations_research.FirstSolutionStrategy.Value first_solution_strategy = 1;
1888 case 1:
1889 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
1890 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1891 CHK_(ptr);
1892 _internal_set_first_solution_strategy(static_cast<::operations_research::FirstSolutionStrategy_Value>(val));
1893 } else
1894 goto handle_unusual;
1895 continue;
1896 // bool use_unfiltered_first_solution_strategy = 2;
1897 case 2:
1898 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
1899 use_unfiltered_first_solution_strategy_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1900 CHK_(ptr);
1901 } else
1902 goto handle_unusual;
1903 continue;
1904 // .operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators = 3;
1905 case 3:
1906 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
1907 ptr = ctx->ParseMessage(_internal_mutable_local_search_operators(), ptr);
1908 CHK_(ptr);
1909 } else
1910 goto handle_unusual;
1911 continue;
1912 // .operations_research.LocalSearchMetaheuristic.Value local_search_metaheuristic = 4;
1913 case 4:
1914 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
1915 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1916 CHK_(ptr);
1917 _internal_set_local_search_metaheuristic(static_cast<::operations_research::LocalSearchMetaheuristic_Value>(val));
1918 } else
1919 goto handle_unusual;
1920 continue;
1921 // double guided_local_search_lambda_coefficient = 5;
1922 case 5:
1923 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 41)) {
1924 guided_local_search_lambda_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1925 ptr += sizeof(double);
1926 } else
1927 goto handle_unusual;
1928 continue;
1929 // bool use_depth_first_search = 6;
1930 case 6:
1931 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
1932 use_depth_first_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1933 CHK_(ptr);
1934 } else
1935 goto handle_unusual;
1936 continue;
1937 // double optimization_step = 7;
1938 case 7:
1939 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 57)) {
1940 optimization_step_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1941 ptr += sizeof(double);
1942 } else
1943 goto handle_unusual;
1944 continue;
1945 // int64 solution_limit = 8;
1946 case 8:
1947 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
1948 solution_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1949 CHK_(ptr);
1950 } else
1951 goto handle_unusual;
1952 continue;
1953 // .google.protobuf.Duration time_limit = 9;
1954 case 9:
1955 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
1956 ptr = ctx->ParseMessage(_internal_mutable_time_limit(), ptr);
1957 CHK_(ptr);
1958 } else
1959 goto handle_unusual;
1960 continue;
1961 // .google.protobuf.Duration lns_time_limit = 10;
1962 case 10:
1963 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
1964 ptr = ctx->ParseMessage(_internal_mutable_lns_time_limit(), ptr);
1965 CHK_(ptr);
1966 } else
1967 goto handle_unusual;
1968 continue;
1969 // bool use_full_propagation = 11;
1970 case 11:
1971 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
1972 use_full_propagation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1973 CHK_(ptr);
1974 } else
1975 goto handle_unusual;
1976 continue;
1977 // bool log_search = 13;
1978 case 13:
1979 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 104)) {
1980 log_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1981 CHK_(ptr);
1982 } else
1983 goto handle_unusual;
1984 continue;
1985 // double savings_neighbors_ratio = 14;
1986 case 14:
1987 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 113)) {
1988 savings_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1989 ptr += sizeof(double);
1990 } else
1991 goto handle_unusual;
1992 continue;
1993 // bool savings_add_reverse_arcs = 15;
1994 case 15:
1995 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 120)) {
1996 savings_add_reverse_arcs_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1997 CHK_(ptr);
1998 } else
1999 goto handle_unusual;
2000 continue;
2001 // double cheapest_insertion_farthest_seeds_ratio = 16;
2002 case 16:
2003 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 129)) {
2004 cheapest_insertion_farthest_seeds_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2005 ptr += sizeof(double);
2006 } else
2007 goto handle_unusual;
2008 continue;
2009 // int32 number_of_solutions_to_collect = 17;
2010 case 17:
2011 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 136)) {
2012 number_of_solutions_to_collect_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2013 CHK_(ptr);
2014 } else
2015 goto handle_unusual;
2016 continue;
2017 // double savings_arc_coefficient = 18;
2018 case 18:
2019 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 145)) {
2020 savings_arc_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2021 ptr += sizeof(double);
2022 } else
2023 goto handle_unusual;
2024 continue;
2025 // bool savings_parallel_routes = 19;
2026 case 19:
2027 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 152)) {
2028 savings_parallel_routes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2029 CHK_(ptr);
2030 } else
2031 goto handle_unusual;
2032 continue;
2033 // int32 relocate_expensive_chain_num_arcs_to_consider = 20;
2034 case 20:
2035 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 160)) {
2036 relocate_expensive_chain_num_arcs_to_consider_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2037 CHK_(ptr);
2038 } else
2039 goto handle_unusual;
2040 continue;
2041 // double cheapest_insertion_first_solution_neighbors_ratio = 21;
2042 case 21:
2043 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 169)) {
2044 cheapest_insertion_first_solution_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2045 ptr += sizeof(double);
2046 } else
2047 goto handle_unusual;
2048 continue;
2049 // double log_cost_scaling_factor = 22;
2050 case 22:
2051 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 177)) {
2052 log_cost_scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2053 ptr += sizeof(double);
2054 } else
2055 goto handle_unusual;
2056 continue;
2057 // double savings_max_memory_usage_bytes = 23;
2058 case 23:
2059 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 185)) {
2060 savings_max_memory_usage_bytes_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2061 ptr += sizeof(double);
2062 } else
2063 goto handle_unusual;
2064 continue;
2065 // .operations_research.OptionalBoolean use_cp_sat = 27;
2066 case 27:
2067 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 216)) {
2068 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2069 CHK_(ptr);
2070 _internal_set_use_cp_sat(static_cast<::operations_research::OptionalBoolean>(val));
2071 } else
2072 goto handle_unusual;
2073 continue;
2074 // .operations_research.OptionalBoolean use_cp = 28;
2075 case 28:
2076 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 224)) {
2077 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2078 CHK_(ptr);
2079 _internal_set_use_cp(static_cast<::operations_research::OptionalBoolean>(val));
2080 } else
2081 goto handle_unusual;
2082 continue;
2083 // double log_cost_offset = 29;
2084 case 29:
2085 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 233)) {
2086 log_cost_offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2087 ptr += sizeof(double);
2088 } else
2089 goto handle_unusual;
2090 continue;
2091 // bool christofides_use_minimum_matching = 30;
2092 case 30:
2093 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 240)) {
2094 christofides_use_minimum_matching_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2095 CHK_(ptr);
2096 } else
2097 goto handle_unusual;
2098 continue;
2099 // double cheapest_insertion_ls_operator_neighbors_ratio = 31;
2100 case 31:
2101 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 249)) {
2102 cheapest_insertion_ls_operator_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2103 ptr += sizeof(double);
2104 } else
2105 goto handle_unusual;
2106 continue;
2107 // int32 heuristic_expensive_chain_lns_num_arcs_to_consider = 32;
2108 case 32:
2109 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 0)) {
2110 heuristic_expensive_chain_lns_num_arcs_to_consider_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2111 CHK_(ptr);
2112 } else
2113 goto handle_unusual;
2114 continue;
2115 // .operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
2116 case 33:
2117 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
2118 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2119 CHK_(ptr);
2120 _internal_set_continuous_scheduling_solver(static_cast<::operations_research::RoutingSearchParameters_SchedulingSolver>(val));
2121 } else
2122 goto handle_unusual;
2123 continue;
2124 // .operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
2125 case 34:
2126 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
2127 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2128 CHK_(ptr);
2129 _internal_set_mixed_integer_scheduling_solver(static_cast<::operations_research::RoutingSearchParameters_SchedulingSolver>(val));
2130 } else
2131 goto handle_unusual;
2132 continue;
2133 // int32 heuristic_close_nodes_lns_num_nodes = 35;
2134 case 35:
2135 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
2136 heuristic_close_nodes_lns_num_nodes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2137 CHK_(ptr);
2138 } else
2139 goto handle_unusual;
2140 continue;
2141 // string log_tag = 36;
2142 case 36:
2143 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
2144 auto str = _internal_mutable_log_tag();
2145 ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
2146 CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.RoutingSearchParameters.log_tag"));
2147 CHK_(ptr);
2148 } else
2149 goto handle_unusual;
2150 continue;
2151 // .operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters improvement_limit_parameters = 37;
2152 case 37:
2153 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
2154 ptr = ctx->ParseMessage(_internal_mutable_improvement_limit_parameters(), ptr);
2155 CHK_(ptr);
2156 } else
2157 goto handle_unusual;
2158 continue;
2159 // bool cheapest_insertion_add_unperformed_entries = 40;
2160 case 40:
2161 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
2162 cheapest_insertion_add_unperformed_entries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2163 CHK_(ptr);
2164 } else
2165 goto handle_unusual;
2166 continue;
2167 // bool use_multi_armed_bandit_concatenate_operators = 41;
2168 case 41:
2169 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
2170 use_multi_armed_bandit_concatenate_operators_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2171 CHK_(ptr);
2172 } else
2173 goto handle_unusual;
2174 continue;
2175 // double multi_armed_bandit_compound_operator_memory_coefficient = 42;
2176 case 42:
2177 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 81)) {
2178 multi_armed_bandit_compound_operator_memory_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2179 ptr += sizeof(double);
2180 } else
2181 goto handle_unusual;
2182 continue;
2183 // double multi_armed_bandit_compound_operator_exploration_coefficient = 43;
2184 case 43:
2185 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 89)) {
2186 multi_armed_bandit_compound_operator_exploration_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2187 ptr += sizeof(double);
2188 } else
2189 goto handle_unusual;
2190 continue;
2191 // int32 cheapest_insertion_first_solution_min_neighbors = 44;
2192 case 44:
2193 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
2194 cheapest_insertion_first_solution_min_neighbors_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2195 CHK_(ptr);
2196 } else
2197 goto handle_unusual;
2198 continue;
2199 // int32 cheapest_insertion_ls_operator_min_neighbors = 45;
2200 case 45:
2201 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 104)) {
2202 cheapest_insertion_ls_operator_min_neighbors_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2203 CHK_(ptr);
2204 } else
2205 goto handle_unusual;
2206 continue;
2207 // bool cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization = 46;
2208 case 46:
2209 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 112)) {
2210 cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2211 CHK_(ptr);
2212 } else
2213 goto handle_unusual;
2214 continue;
2215 // .operations_research.OptionalBoolean use_generalized_cp_sat = 47;
2216 case 47:
2217 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 120)) {
2218 uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2219 CHK_(ptr);
2220 _internal_set_use_generalized_cp_sat(static_cast<::operations_research::OptionalBoolean>(val));
2221 } else
2222 goto handle_unusual;
2223 continue;
2224 // .operations_research.sat.SatParameters sat_parameters = 48;
2225 case 48:
2226 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
2227 ptr = ctx->ParseMessage(_internal_mutable_sat_parameters(), ptr);
2228 CHK_(ptr);
2229 } else
2230 goto handle_unusual;
2231 continue;
2232 default:
2233 goto handle_unusual;
2234 } // switch
2235 handle_unusual:
2236 if ((tag == 0) || ((tag & 7) == 4)) {
2237 CHK_(ptr);
2238 ctx->SetLastTag(tag);
2239 goto message_done;
2240 }
2241 ptr = UnknownFieldParse(
2242 tag,
2243 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2244 ptr, ctx);
2245 CHK_(ptr != nullptr);
2246 } // while
2247message_done:
2248 return ptr;
2249failure:
2250 ptr = nullptr;
2251 goto message_done;
2252#undef CHK_
2253}
2254
2256 uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2257 // @@protoc_insertion_point(serialize_to_array_start:operations_research.RoutingSearchParameters)
2258 uint32_t cached_has_bits = 0;
2259 (void) cached_has_bits;
2260
2261 // .operations_research.FirstSolutionStrategy.Value first_solution_strategy = 1;
2262 if (this->_internal_first_solution_strategy() != 0) {
2263 target = stream->EnsureSpace(target);
2264 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2265 1, this->_internal_first_solution_strategy(), target);
2266 }
2267
2268 // bool use_unfiltered_first_solution_strategy = 2;
2269 if (this->_internal_use_unfiltered_first_solution_strategy() != 0) {
2270 target = stream->EnsureSpace(target);
2271 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_use_unfiltered_first_solution_strategy(), target);
2272 }
2273
2274 // .operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators = 3;
2275 if (this->_internal_has_local_search_operators()) {
2276 target = stream->EnsureSpace(target);
2277 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2278 InternalWriteMessage(
2279 3, _Internal::local_search_operators(this), target, stream);
2280 }
2281
2282 // .operations_research.LocalSearchMetaheuristic.Value local_search_metaheuristic = 4;
2283 if (this->_internal_local_search_metaheuristic() != 0) {
2284 target = stream->EnsureSpace(target);
2285 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2286 4, this->_internal_local_search_metaheuristic(), target);
2287 }
2288
2289 // double guided_local_search_lambda_coefficient = 5;
2290 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2291 double tmp_guided_local_search_lambda_coefficient = this->_internal_guided_local_search_lambda_coefficient();
2292 uint64_t raw_guided_local_search_lambda_coefficient;
2293 memcpy(&raw_guided_local_search_lambda_coefficient, &tmp_guided_local_search_lambda_coefficient, sizeof(tmp_guided_local_search_lambda_coefficient));
2294 if (raw_guided_local_search_lambda_coefficient != 0) {
2295 target = stream->EnsureSpace(target);
2296 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(5, this->_internal_guided_local_search_lambda_coefficient(), target);
2297 }
2298
2299 // bool use_depth_first_search = 6;
2300 if (this->_internal_use_depth_first_search() != 0) {
2301 target = stream->EnsureSpace(target);
2302 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_use_depth_first_search(), target);
2303 }
2304
2305 // double optimization_step = 7;
2306 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2307 double tmp_optimization_step = this->_internal_optimization_step();
2308 uint64_t raw_optimization_step;
2309 memcpy(&raw_optimization_step, &tmp_optimization_step, sizeof(tmp_optimization_step));
2310 if (raw_optimization_step != 0) {
2311 target = stream->EnsureSpace(target);
2312 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(7, this->_internal_optimization_step(), target);
2313 }
2314
2315 // int64 solution_limit = 8;
2316 if (this->_internal_solution_limit() != 0) {
2317 target = stream->EnsureSpace(target);
2318 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(8, this->_internal_solution_limit(), target);
2319 }
2320
2321 // .google.protobuf.Duration time_limit = 9;
2322 if (this->_internal_has_time_limit()) {
2323 target = stream->EnsureSpace(target);
2324 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2325 InternalWriteMessage(
2326 9, _Internal::time_limit(this), target, stream);
2327 }
2328
2329 // .google.protobuf.Duration lns_time_limit = 10;
2330 if (this->_internal_has_lns_time_limit()) {
2331 target = stream->EnsureSpace(target);
2332 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2333 InternalWriteMessage(
2334 10, _Internal::lns_time_limit(this), target, stream);
2335 }
2336
2337 // bool use_full_propagation = 11;
2338 if (this->_internal_use_full_propagation() != 0) {
2339 target = stream->EnsureSpace(target);
2340 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(11, this->_internal_use_full_propagation(), target);
2341 }
2342
2343 // bool log_search = 13;
2344 if (this->_internal_log_search() != 0) {
2345 target = stream->EnsureSpace(target);
2346 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(13, this->_internal_log_search(), target);
2347 }
2348
2349 // double savings_neighbors_ratio = 14;
2350 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2351 double tmp_savings_neighbors_ratio = this->_internal_savings_neighbors_ratio();
2352 uint64_t raw_savings_neighbors_ratio;
2353 memcpy(&raw_savings_neighbors_ratio, &tmp_savings_neighbors_ratio, sizeof(tmp_savings_neighbors_ratio));
2354 if (raw_savings_neighbors_ratio != 0) {
2355 target = stream->EnsureSpace(target);
2356 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(14, this->_internal_savings_neighbors_ratio(), target);
2357 }
2358
2359 // bool savings_add_reverse_arcs = 15;
2360 if (this->_internal_savings_add_reverse_arcs() != 0) {
2361 target = stream->EnsureSpace(target);
2362 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_savings_add_reverse_arcs(), target);
2363 }
2364
2365 // double cheapest_insertion_farthest_seeds_ratio = 16;
2366 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2367 double tmp_cheapest_insertion_farthest_seeds_ratio = this->_internal_cheapest_insertion_farthest_seeds_ratio();
2368 uint64_t raw_cheapest_insertion_farthest_seeds_ratio;
2369 memcpy(&raw_cheapest_insertion_farthest_seeds_ratio, &tmp_cheapest_insertion_farthest_seeds_ratio, sizeof(tmp_cheapest_insertion_farthest_seeds_ratio));
2370 if (raw_cheapest_insertion_farthest_seeds_ratio != 0) {
2371 target = stream->EnsureSpace(target);
2372 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_cheapest_insertion_farthest_seeds_ratio(), target);
2373 }
2374
2375 // int32 number_of_solutions_to_collect = 17;
2376 if (this->_internal_number_of_solutions_to_collect() != 0) {
2377 target = stream->EnsureSpace(target);
2378 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(17, this->_internal_number_of_solutions_to_collect(), target);
2379 }
2380
2381 // double savings_arc_coefficient = 18;
2382 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2383 double tmp_savings_arc_coefficient = this->_internal_savings_arc_coefficient();
2384 uint64_t raw_savings_arc_coefficient;
2385 memcpy(&raw_savings_arc_coefficient, &tmp_savings_arc_coefficient, sizeof(tmp_savings_arc_coefficient));
2386 if (raw_savings_arc_coefficient != 0) {
2387 target = stream->EnsureSpace(target);
2388 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(18, this->_internal_savings_arc_coefficient(), target);
2389 }
2390
2391 // bool savings_parallel_routes = 19;
2392 if (this->_internal_savings_parallel_routes() != 0) {
2393 target = stream->EnsureSpace(target);
2394 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(19, this->_internal_savings_parallel_routes(), target);
2395 }
2396
2397 // int32 relocate_expensive_chain_num_arcs_to_consider = 20;
2398 if (this->_internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
2399 target = stream->EnsureSpace(target);
2400 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(20, this->_internal_relocate_expensive_chain_num_arcs_to_consider(), target);
2401 }
2402
2403 // double cheapest_insertion_first_solution_neighbors_ratio = 21;
2404 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2405 double tmp_cheapest_insertion_first_solution_neighbors_ratio = this->_internal_cheapest_insertion_first_solution_neighbors_ratio();
2406 uint64_t raw_cheapest_insertion_first_solution_neighbors_ratio;
2407 memcpy(&raw_cheapest_insertion_first_solution_neighbors_ratio, &tmp_cheapest_insertion_first_solution_neighbors_ratio, sizeof(tmp_cheapest_insertion_first_solution_neighbors_ratio));
2408 if (raw_cheapest_insertion_first_solution_neighbors_ratio != 0) {
2409 target = stream->EnsureSpace(target);
2410 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(21, this->_internal_cheapest_insertion_first_solution_neighbors_ratio(), target);
2411 }
2412
2413 // double log_cost_scaling_factor = 22;
2414 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2415 double tmp_log_cost_scaling_factor = this->_internal_log_cost_scaling_factor();
2416 uint64_t raw_log_cost_scaling_factor;
2417 memcpy(&raw_log_cost_scaling_factor, &tmp_log_cost_scaling_factor, sizeof(tmp_log_cost_scaling_factor));
2418 if (raw_log_cost_scaling_factor != 0) {
2419 target = stream->EnsureSpace(target);
2420 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_log_cost_scaling_factor(), target);
2421 }
2422
2423 // double savings_max_memory_usage_bytes = 23;
2424 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2425 double tmp_savings_max_memory_usage_bytes = this->_internal_savings_max_memory_usage_bytes();
2426 uint64_t raw_savings_max_memory_usage_bytes;
2427 memcpy(&raw_savings_max_memory_usage_bytes, &tmp_savings_max_memory_usage_bytes, sizeof(tmp_savings_max_memory_usage_bytes));
2428 if (raw_savings_max_memory_usage_bytes != 0) {
2429 target = stream->EnsureSpace(target);
2430 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(23, this->_internal_savings_max_memory_usage_bytes(), target);
2431 }
2432
2433 // .operations_research.OptionalBoolean use_cp_sat = 27;
2434 if (this->_internal_use_cp_sat() != 0) {
2435 target = stream->EnsureSpace(target);
2436 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2437 27, this->_internal_use_cp_sat(), target);
2438 }
2439
2440 // .operations_research.OptionalBoolean use_cp = 28;
2441 if (this->_internal_use_cp() != 0) {
2442 target = stream->EnsureSpace(target);
2443 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2444 28, this->_internal_use_cp(), target);
2445 }
2446
2447 // double log_cost_offset = 29;
2448 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2449 double tmp_log_cost_offset = this->_internal_log_cost_offset();
2450 uint64_t raw_log_cost_offset;
2451 memcpy(&raw_log_cost_offset, &tmp_log_cost_offset, sizeof(tmp_log_cost_offset));
2452 if (raw_log_cost_offset != 0) {
2453 target = stream->EnsureSpace(target);
2454 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(29, this->_internal_log_cost_offset(), target);
2455 }
2456
2457 // bool christofides_use_minimum_matching = 30;
2458 if (this->_internal_christofides_use_minimum_matching() != 0) {
2459 target = stream->EnsureSpace(target);
2460 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(30, this->_internal_christofides_use_minimum_matching(), target);
2461 }
2462
2463 // double cheapest_insertion_ls_operator_neighbors_ratio = 31;
2464 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2465 double tmp_cheapest_insertion_ls_operator_neighbors_ratio = this->_internal_cheapest_insertion_ls_operator_neighbors_ratio();
2466 uint64_t raw_cheapest_insertion_ls_operator_neighbors_ratio;
2467 memcpy(&raw_cheapest_insertion_ls_operator_neighbors_ratio, &tmp_cheapest_insertion_ls_operator_neighbors_ratio, sizeof(tmp_cheapest_insertion_ls_operator_neighbors_ratio));
2468 if (raw_cheapest_insertion_ls_operator_neighbors_ratio != 0) {
2469 target = stream->EnsureSpace(target);
2470 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(31, this->_internal_cheapest_insertion_ls_operator_neighbors_ratio(), target);
2471 }
2472
2473 // int32 heuristic_expensive_chain_lns_num_arcs_to_consider = 32;
2474 if (this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2475 target = stream->EnsureSpace(target);
2476 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(32, this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider(), target);
2477 }
2478
2479 // .operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
2480 if (this->_internal_continuous_scheduling_solver() != 0) {
2481 target = stream->EnsureSpace(target);
2482 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2483 33, this->_internal_continuous_scheduling_solver(), target);
2484 }
2485
2486 // .operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
2487 if (this->_internal_mixed_integer_scheduling_solver() != 0) {
2488 target = stream->EnsureSpace(target);
2489 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2490 34, this->_internal_mixed_integer_scheduling_solver(), target);
2491 }
2492
2493 // int32 heuristic_close_nodes_lns_num_nodes = 35;
2494 if (this->_internal_heuristic_close_nodes_lns_num_nodes() != 0) {
2495 target = stream->EnsureSpace(target);
2496 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(35, this->_internal_heuristic_close_nodes_lns_num_nodes(), target);
2497 }
2498
2499 // string log_tag = 36;
2500 if (!this->_internal_log_tag().empty()) {
2501 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
2502 this->_internal_log_tag().data(), static_cast<int>(this->_internal_log_tag().length()),
2503 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
2504 "operations_research.RoutingSearchParameters.log_tag");
2505 target = stream->WriteStringMaybeAliased(
2506 36, this->_internal_log_tag(), target);
2507 }
2508
2509 // .operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters improvement_limit_parameters = 37;
2510 if (this->_internal_has_improvement_limit_parameters()) {
2511 target = stream->EnsureSpace(target);
2512 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2513 InternalWriteMessage(
2514 37, _Internal::improvement_limit_parameters(this), target, stream);
2515 }
2516
2517 // bool cheapest_insertion_add_unperformed_entries = 40;
2518 if (this->_internal_cheapest_insertion_add_unperformed_entries() != 0) {
2519 target = stream->EnsureSpace(target);
2520 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(40, this->_internal_cheapest_insertion_add_unperformed_entries(), target);
2521 }
2522
2523 // bool use_multi_armed_bandit_concatenate_operators = 41;
2524 if (this->_internal_use_multi_armed_bandit_concatenate_operators() != 0) {
2525 target = stream->EnsureSpace(target);
2526 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(41, this->_internal_use_multi_armed_bandit_concatenate_operators(), target);
2527 }
2528
2529 // double multi_armed_bandit_compound_operator_memory_coefficient = 42;
2530 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2531 double tmp_multi_armed_bandit_compound_operator_memory_coefficient = this->_internal_multi_armed_bandit_compound_operator_memory_coefficient();
2532 uint64_t raw_multi_armed_bandit_compound_operator_memory_coefficient;
2533 memcpy(&raw_multi_armed_bandit_compound_operator_memory_coefficient, &tmp_multi_armed_bandit_compound_operator_memory_coefficient, sizeof(tmp_multi_armed_bandit_compound_operator_memory_coefficient));
2534 if (raw_multi_armed_bandit_compound_operator_memory_coefficient != 0) {
2535 target = stream->EnsureSpace(target);
2536 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(42, this->_internal_multi_armed_bandit_compound_operator_memory_coefficient(), target);
2537 }
2538
2539 // double multi_armed_bandit_compound_operator_exploration_coefficient = 43;
2540 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2541 double tmp_multi_armed_bandit_compound_operator_exploration_coefficient = this->_internal_multi_armed_bandit_compound_operator_exploration_coefficient();
2542 uint64_t raw_multi_armed_bandit_compound_operator_exploration_coefficient;
2543 memcpy(&raw_multi_armed_bandit_compound_operator_exploration_coefficient, &tmp_multi_armed_bandit_compound_operator_exploration_coefficient, sizeof(tmp_multi_armed_bandit_compound_operator_exploration_coefficient));
2544 if (raw_multi_armed_bandit_compound_operator_exploration_coefficient != 0) {
2545 target = stream->EnsureSpace(target);
2546 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(43, this->_internal_multi_armed_bandit_compound_operator_exploration_coefficient(), target);
2547 }
2548
2549 // int32 cheapest_insertion_first_solution_min_neighbors = 44;
2550 if (this->_internal_cheapest_insertion_first_solution_min_neighbors() != 0) {
2551 target = stream->EnsureSpace(target);
2552 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(44, this->_internal_cheapest_insertion_first_solution_min_neighbors(), target);
2553 }
2554
2555 // int32 cheapest_insertion_ls_operator_min_neighbors = 45;
2556 if (this->_internal_cheapest_insertion_ls_operator_min_neighbors() != 0) {
2557 target = stream->EnsureSpace(target);
2558 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(45, this->_internal_cheapest_insertion_ls_operator_min_neighbors(), target);
2559 }
2560
2561 // bool cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization = 46;
2562 if (this->_internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() != 0) {
2563 target = stream->EnsureSpace(target);
2564 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(46, this->_internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(), target);
2565 }
2566
2567 // .operations_research.OptionalBoolean use_generalized_cp_sat = 47;
2568 if (this->_internal_use_generalized_cp_sat() != 0) {
2569 target = stream->EnsureSpace(target);
2570 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2571 47, this->_internal_use_generalized_cp_sat(), target);
2572 }
2573
2574 // .operations_research.sat.SatParameters sat_parameters = 48;
2575 if (this->_internal_has_sat_parameters()) {
2576 target = stream->EnsureSpace(target);
2577 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2578 InternalWriteMessage(
2579 48, _Internal::sat_parameters(this), target, stream);
2580 }
2581
2582 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2583 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2584 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2585 }
2586 // @@protoc_insertion_point(serialize_to_array_end:operations_research.RoutingSearchParameters)
2587 return target;
2588}
2589
2591// @@protoc_insertion_point(message_byte_size_start:operations_research.RoutingSearchParameters)
2592 size_t total_size = 0;
2593
2594 uint32_t cached_has_bits = 0;
2595 // Prevent compiler warnings about cached_has_bits being unused
2596 (void) cached_has_bits;
2597
2598 // string log_tag = 36;
2599 if (!this->_internal_log_tag().empty()) {
2600 total_size += 2 +
2601 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
2602 this->_internal_log_tag());
2603 }
2604
2605 // .operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators = 3;
2606 if (this->_internal_has_local_search_operators()) {
2607 total_size += 1 +
2608 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2609 *local_search_operators_);
2610 }
2611
2612 // .google.protobuf.Duration time_limit = 9;
2613 if (this->_internal_has_time_limit()) {
2614 total_size += 1 +
2615 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2616 *time_limit_);
2617 }
2618
2619 // .google.protobuf.Duration lns_time_limit = 10;
2620 if (this->_internal_has_lns_time_limit()) {
2621 total_size += 1 +
2622 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2623 *lns_time_limit_);
2624 }
2625
2626 // .operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters improvement_limit_parameters = 37;
2627 if (this->_internal_has_improvement_limit_parameters()) {
2628 total_size += 2 +
2629 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2630 *improvement_limit_parameters_);
2631 }
2632
2633 // .operations_research.sat.SatParameters sat_parameters = 48;
2634 if (this->_internal_has_sat_parameters()) {
2635 total_size += 2 +
2636 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2637 *sat_parameters_);
2638 }
2639
2640 // .operations_research.FirstSolutionStrategy.Value first_solution_strategy = 1;
2641 if (this->_internal_first_solution_strategy() != 0) {
2642 total_size += 1 +
2643 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_first_solution_strategy());
2644 }
2645
2646 // .operations_research.LocalSearchMetaheuristic.Value local_search_metaheuristic = 4;
2647 if (this->_internal_local_search_metaheuristic() != 0) {
2648 total_size += 1 +
2649 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_local_search_metaheuristic());
2650 }
2651
2652 // double guided_local_search_lambda_coefficient = 5;
2653 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2654 double tmp_guided_local_search_lambda_coefficient = this->_internal_guided_local_search_lambda_coefficient();
2655 uint64_t raw_guided_local_search_lambda_coefficient;
2656 memcpy(&raw_guided_local_search_lambda_coefficient, &tmp_guided_local_search_lambda_coefficient, sizeof(tmp_guided_local_search_lambda_coefficient));
2657 if (raw_guided_local_search_lambda_coefficient != 0) {
2658 total_size += 1 + 8;
2659 }
2660
2661 // double optimization_step = 7;
2662 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2663 double tmp_optimization_step = this->_internal_optimization_step();
2664 uint64_t raw_optimization_step;
2665 memcpy(&raw_optimization_step, &tmp_optimization_step, sizeof(tmp_optimization_step));
2666 if (raw_optimization_step != 0) {
2667 total_size += 1 + 8;
2668 }
2669
2670 // int64 solution_limit = 8;
2671 if (this->_internal_solution_limit() != 0) {
2672 total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_solution_limit());
2673 }
2674
2675 // bool use_full_propagation = 11;
2676 if (this->_internal_use_full_propagation() != 0) {
2677 total_size += 1 + 1;
2678 }
2679
2680 // bool log_search = 13;
2681 if (this->_internal_log_search() != 0) {
2682 total_size += 1 + 1;
2683 }
2684
2685 // int32 number_of_solutions_to_collect = 17;
2686 if (this->_internal_number_of_solutions_to_collect() != 0) {
2687 total_size += 2 +
2688 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2689 this->_internal_number_of_solutions_to_collect());
2690 }
2691
2692 // double savings_neighbors_ratio = 14;
2693 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2694 double tmp_savings_neighbors_ratio = this->_internal_savings_neighbors_ratio();
2695 uint64_t raw_savings_neighbors_ratio;
2696 memcpy(&raw_savings_neighbors_ratio, &tmp_savings_neighbors_ratio, sizeof(tmp_savings_neighbors_ratio));
2697 if (raw_savings_neighbors_ratio != 0) {
2698 total_size += 1 + 8;
2699 }
2700
2701 // double cheapest_insertion_farthest_seeds_ratio = 16;
2702 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2703 double tmp_cheapest_insertion_farthest_seeds_ratio = this->_internal_cheapest_insertion_farthest_seeds_ratio();
2704 uint64_t raw_cheapest_insertion_farthest_seeds_ratio;
2705 memcpy(&raw_cheapest_insertion_farthest_seeds_ratio, &tmp_cheapest_insertion_farthest_seeds_ratio, sizeof(tmp_cheapest_insertion_farthest_seeds_ratio));
2706 if (raw_cheapest_insertion_farthest_seeds_ratio != 0) {
2707 total_size += 2 + 8;
2708 }
2709
2710 // double savings_arc_coefficient = 18;
2711 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2712 double tmp_savings_arc_coefficient = this->_internal_savings_arc_coefficient();
2713 uint64_t raw_savings_arc_coefficient;
2714 memcpy(&raw_savings_arc_coefficient, &tmp_savings_arc_coefficient, sizeof(tmp_savings_arc_coefficient));
2715 if (raw_savings_arc_coefficient != 0) {
2716 total_size += 2 + 8;
2717 }
2718
2719 // int32 relocate_expensive_chain_num_arcs_to_consider = 20;
2720 if (this->_internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
2721 total_size += 2 +
2722 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2723 this->_internal_relocate_expensive_chain_num_arcs_to_consider());
2724 }
2725
2726 // bool use_unfiltered_first_solution_strategy = 2;
2727 if (this->_internal_use_unfiltered_first_solution_strategy() != 0) {
2728 total_size += 1 + 1;
2729 }
2730
2731 // bool savings_add_reverse_arcs = 15;
2732 if (this->_internal_savings_add_reverse_arcs() != 0) {
2733 total_size += 1 + 1;
2734 }
2735
2736 // bool savings_parallel_routes = 19;
2737 if (this->_internal_savings_parallel_routes() != 0) {
2738 total_size += 2 + 1;
2739 }
2740
2741 // bool cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization = 46;
2742 if (this->_internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() != 0) {
2743 total_size += 2 + 1;
2744 }
2745
2746 // double cheapest_insertion_first_solution_neighbors_ratio = 21;
2747 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2748 double tmp_cheapest_insertion_first_solution_neighbors_ratio = this->_internal_cheapest_insertion_first_solution_neighbors_ratio();
2749 uint64_t raw_cheapest_insertion_first_solution_neighbors_ratio;
2750 memcpy(&raw_cheapest_insertion_first_solution_neighbors_ratio, &tmp_cheapest_insertion_first_solution_neighbors_ratio, sizeof(tmp_cheapest_insertion_first_solution_neighbors_ratio));
2751 if (raw_cheapest_insertion_first_solution_neighbors_ratio != 0) {
2752 total_size += 2 + 8;
2753 }
2754
2755 // double log_cost_scaling_factor = 22;
2756 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2757 double tmp_log_cost_scaling_factor = this->_internal_log_cost_scaling_factor();
2758 uint64_t raw_log_cost_scaling_factor;
2759 memcpy(&raw_log_cost_scaling_factor, &tmp_log_cost_scaling_factor, sizeof(tmp_log_cost_scaling_factor));
2760 if (raw_log_cost_scaling_factor != 0) {
2761 total_size += 2 + 8;
2762 }
2763
2764 // double savings_max_memory_usage_bytes = 23;
2765 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2766 double tmp_savings_max_memory_usage_bytes = this->_internal_savings_max_memory_usage_bytes();
2767 uint64_t raw_savings_max_memory_usage_bytes;
2768 memcpy(&raw_savings_max_memory_usage_bytes, &tmp_savings_max_memory_usage_bytes, sizeof(tmp_savings_max_memory_usage_bytes));
2769 if (raw_savings_max_memory_usage_bytes != 0) {
2770 total_size += 2 + 8;
2771 }
2772
2773 // .operations_research.OptionalBoolean use_cp_sat = 27;
2774 if (this->_internal_use_cp_sat() != 0) {
2775 total_size += 2 +
2776 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cp_sat());
2777 }
2778
2779 // .operations_research.OptionalBoolean use_cp = 28;
2780 if (this->_internal_use_cp() != 0) {
2781 total_size += 2 +
2782 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cp());
2783 }
2784
2785 // double log_cost_offset = 29;
2786 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2787 double tmp_log_cost_offset = this->_internal_log_cost_offset();
2788 uint64_t raw_log_cost_offset;
2789 memcpy(&raw_log_cost_offset, &tmp_log_cost_offset, sizeof(tmp_log_cost_offset));
2790 if (raw_log_cost_offset != 0) {
2791 total_size += 2 + 8;
2792 }
2793
2794 // bool cheapest_insertion_add_unperformed_entries = 40;
2795 if (this->_internal_cheapest_insertion_add_unperformed_entries() != 0) {
2796 total_size += 2 + 1;
2797 }
2798
2799 // bool christofides_use_minimum_matching = 30;
2800 if (this->_internal_christofides_use_minimum_matching() != 0) {
2801 total_size += 2 + 1;
2802 }
2803
2804 // bool use_multi_armed_bandit_concatenate_operators = 41;
2805 if (this->_internal_use_multi_armed_bandit_concatenate_operators() != 0) {
2806 total_size += 2 + 1;
2807 }
2808
2809 // bool use_depth_first_search = 6;
2810 if (this->_internal_use_depth_first_search() != 0) {
2811 total_size += 1 + 1;
2812 }
2813
2814 // int32 heuristic_expensive_chain_lns_num_arcs_to_consider = 32;
2815 if (this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2816 total_size += 2 +
2817 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2818 this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
2819 }
2820
2821 // double cheapest_insertion_ls_operator_neighbors_ratio = 31;
2822 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2823 double tmp_cheapest_insertion_ls_operator_neighbors_ratio = this->_internal_cheapest_insertion_ls_operator_neighbors_ratio();
2824 uint64_t raw_cheapest_insertion_ls_operator_neighbors_ratio;
2825 memcpy(&raw_cheapest_insertion_ls_operator_neighbors_ratio, &tmp_cheapest_insertion_ls_operator_neighbors_ratio, sizeof(tmp_cheapest_insertion_ls_operator_neighbors_ratio));
2826 if (raw_cheapest_insertion_ls_operator_neighbors_ratio != 0) {
2827 total_size += 2 + 8;
2828 }
2829
2830 // .operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
2831 if (this->_internal_continuous_scheduling_solver() != 0) {
2832 total_size += 2 +
2833 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_continuous_scheduling_solver());
2834 }
2835
2836 // .operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
2837 if (this->_internal_mixed_integer_scheduling_solver() != 0) {
2838 total_size += 2 +
2839 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_mixed_integer_scheduling_solver());
2840 }
2841
2842 // int32 heuristic_close_nodes_lns_num_nodes = 35;
2843 if (this->_internal_heuristic_close_nodes_lns_num_nodes() != 0) {
2844 total_size += 2 +
2845 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2846 this->_internal_heuristic_close_nodes_lns_num_nodes());
2847 }
2848
2849 // int32 cheapest_insertion_first_solution_min_neighbors = 44;
2850 if (this->_internal_cheapest_insertion_first_solution_min_neighbors() != 0) {
2851 total_size += 2 +
2852 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2853 this->_internal_cheapest_insertion_first_solution_min_neighbors());
2854 }
2855
2856 // double multi_armed_bandit_compound_operator_memory_coefficient = 42;
2857 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2858 double tmp_multi_armed_bandit_compound_operator_memory_coefficient = this->_internal_multi_armed_bandit_compound_operator_memory_coefficient();
2859 uint64_t raw_multi_armed_bandit_compound_operator_memory_coefficient;
2860 memcpy(&raw_multi_armed_bandit_compound_operator_memory_coefficient, &tmp_multi_armed_bandit_compound_operator_memory_coefficient, sizeof(tmp_multi_armed_bandit_compound_operator_memory_coefficient));
2861 if (raw_multi_armed_bandit_compound_operator_memory_coefficient != 0) {
2862 total_size += 2 + 8;
2863 }
2864
2865 // double multi_armed_bandit_compound_operator_exploration_coefficient = 43;
2866 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2867 double tmp_multi_armed_bandit_compound_operator_exploration_coefficient = this->_internal_multi_armed_bandit_compound_operator_exploration_coefficient();
2868 uint64_t raw_multi_armed_bandit_compound_operator_exploration_coefficient;
2869 memcpy(&raw_multi_armed_bandit_compound_operator_exploration_coefficient, &tmp_multi_armed_bandit_compound_operator_exploration_coefficient, sizeof(tmp_multi_armed_bandit_compound_operator_exploration_coefficient));
2870 if (raw_multi_armed_bandit_compound_operator_exploration_coefficient != 0) {
2871 total_size += 2 + 8;
2872 }
2873
2874 // int32 cheapest_insertion_ls_operator_min_neighbors = 45;
2875 if (this->_internal_cheapest_insertion_ls_operator_min_neighbors() != 0) {
2876 total_size += 2 +
2877 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2878 this->_internal_cheapest_insertion_ls_operator_min_neighbors());
2879 }
2880
2881 // .operations_research.OptionalBoolean use_generalized_cp_sat = 47;
2882 if (this->_internal_use_generalized_cp_sat() != 0) {
2883 total_size += 2 +
2884 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_generalized_cp_sat());
2885 }
2886
2887 return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
2888}
2889
2890const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RoutingSearchParameters::_class_data_ = {
2891 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
2892 RoutingSearchParameters::MergeImpl
2893};
2894const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RoutingSearchParameters::GetClassData() const { return &_class_data_; }
2895
2896void RoutingSearchParameters::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
2897 const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2898 static_cast<RoutingSearchParameters *>(to)->MergeFrom(
2899 static_cast<const RoutingSearchParameters &>(from));
2900}
2901
2902
2904// @@protoc_insertion_point(class_specific_merge_from_start:operations_research.RoutingSearchParameters)
2905 GOOGLE_DCHECK_NE(&from, this);
2906 uint32_t cached_has_bits = 0;
2907 (void) cached_has_bits;
2908
2909 if (!from._internal_log_tag().empty()) {
2910 _internal_set_log_tag(from._internal_log_tag());
2911 }
2912 if (from._internal_has_local_search_operators()) {
2913 _internal_mutable_local_search_operators()->::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeFrom(from._internal_local_search_operators());
2914 }
2915 if (from._internal_has_time_limit()) {
2916 _internal_mutable_time_limit()->::PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_time_limit());
2917 }
2918 if (from._internal_has_lns_time_limit()) {
2919 _internal_mutable_lns_time_limit()->::PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_lns_time_limit());
2920 }
2921 if (from._internal_has_improvement_limit_parameters()) {
2922 _internal_mutable_improvement_limit_parameters()->::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters::MergeFrom(from._internal_improvement_limit_parameters());
2923 }
2924 if (from._internal_has_sat_parameters()) {
2925 _internal_mutable_sat_parameters()->::operations_research::sat::SatParameters::MergeFrom(from._internal_sat_parameters());
2926 }
2927 if (from._internal_first_solution_strategy() != 0) {
2928 _internal_set_first_solution_strategy(from._internal_first_solution_strategy());
2929 }
2930 if (from._internal_local_search_metaheuristic() != 0) {
2931 _internal_set_local_search_metaheuristic(from._internal_local_search_metaheuristic());
2932 }
2933 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2934 double tmp_guided_local_search_lambda_coefficient = from._internal_guided_local_search_lambda_coefficient();
2935 uint64_t raw_guided_local_search_lambda_coefficient;
2936 memcpy(&raw_guided_local_search_lambda_coefficient, &tmp_guided_local_search_lambda_coefficient, sizeof(tmp_guided_local_search_lambda_coefficient));
2937 if (raw_guided_local_search_lambda_coefficient != 0) {
2938 _internal_set_guided_local_search_lambda_coefficient(from._internal_guided_local_search_lambda_coefficient());
2939 }
2940 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2941 double tmp_optimization_step = from._internal_optimization_step();
2942 uint64_t raw_optimization_step;
2943 memcpy(&raw_optimization_step, &tmp_optimization_step, sizeof(tmp_optimization_step));
2944 if (raw_optimization_step != 0) {
2945 _internal_set_optimization_step(from._internal_optimization_step());
2946 }
2947 if (from._internal_solution_limit() != 0) {
2948 _internal_set_solution_limit(from._internal_solution_limit());
2949 }
2950 if (from._internal_use_full_propagation() != 0) {
2951 _internal_set_use_full_propagation(from._internal_use_full_propagation());
2952 }
2953 if (from._internal_log_search() != 0) {
2954 _internal_set_log_search(from._internal_log_search());
2955 }
2956 if (from._internal_number_of_solutions_to_collect() != 0) {
2957 _internal_set_number_of_solutions_to_collect(from._internal_number_of_solutions_to_collect());
2958 }
2959 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2960 double tmp_savings_neighbors_ratio = from._internal_savings_neighbors_ratio();
2961 uint64_t raw_savings_neighbors_ratio;
2962 memcpy(&raw_savings_neighbors_ratio, &tmp_savings_neighbors_ratio, sizeof(tmp_savings_neighbors_ratio));
2963 if (raw_savings_neighbors_ratio != 0) {
2964 _internal_set_savings_neighbors_ratio(from._internal_savings_neighbors_ratio());
2965 }
2966 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2967 double tmp_cheapest_insertion_farthest_seeds_ratio = from._internal_cheapest_insertion_farthest_seeds_ratio();
2968 uint64_t raw_cheapest_insertion_farthest_seeds_ratio;
2969 memcpy(&raw_cheapest_insertion_farthest_seeds_ratio, &tmp_cheapest_insertion_farthest_seeds_ratio, sizeof(tmp_cheapest_insertion_farthest_seeds_ratio));
2970 if (raw_cheapest_insertion_farthest_seeds_ratio != 0) {
2971 _internal_set_cheapest_insertion_farthest_seeds_ratio(from._internal_cheapest_insertion_farthest_seeds_ratio());
2972 }
2973 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2974 double tmp_savings_arc_coefficient = from._internal_savings_arc_coefficient();
2975 uint64_t raw_savings_arc_coefficient;
2976 memcpy(&raw_savings_arc_coefficient, &tmp_savings_arc_coefficient, sizeof(tmp_savings_arc_coefficient));
2977 if (raw_savings_arc_coefficient != 0) {
2978 _internal_set_savings_arc_coefficient(from._internal_savings_arc_coefficient());
2979 }
2980 if (from._internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
2981 _internal_set_relocate_expensive_chain_num_arcs_to_consider(from._internal_relocate_expensive_chain_num_arcs_to_consider());
2982 }
2983 if (from._internal_use_unfiltered_first_solution_strategy() != 0) {
2984 _internal_set_use_unfiltered_first_solution_strategy(from._internal_use_unfiltered_first_solution_strategy());
2985 }
2986 if (from._internal_savings_add_reverse_arcs() != 0) {
2987 _internal_set_savings_add_reverse_arcs(from._internal_savings_add_reverse_arcs());
2988 }
2989 if (from._internal_savings_parallel_routes() != 0) {
2990 _internal_set_savings_parallel_routes(from._internal_savings_parallel_routes());
2991 }
2992 if (from._internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() != 0) {
2993 _internal_set_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(from._internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization());
2994 }
2995 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
2996 double tmp_cheapest_insertion_first_solution_neighbors_ratio = from._internal_cheapest_insertion_first_solution_neighbors_ratio();
2997 uint64_t raw_cheapest_insertion_first_solution_neighbors_ratio;
2998 memcpy(&raw_cheapest_insertion_first_solution_neighbors_ratio, &tmp_cheapest_insertion_first_solution_neighbors_ratio, sizeof(tmp_cheapest_insertion_first_solution_neighbors_ratio));
2999 if (raw_cheapest_insertion_first_solution_neighbors_ratio != 0) {
3000 _internal_set_cheapest_insertion_first_solution_neighbors_ratio(from._internal_cheapest_insertion_first_solution_neighbors_ratio());
3001 }
3002 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
3003 double tmp_log_cost_scaling_factor = from._internal_log_cost_scaling_factor();
3004 uint64_t raw_log_cost_scaling_factor;
3005 memcpy(&raw_log_cost_scaling_factor, &tmp_log_cost_scaling_factor, sizeof(tmp_log_cost_scaling_factor));
3006 if (raw_log_cost_scaling_factor != 0) {
3007 _internal_set_log_cost_scaling_factor(from._internal_log_cost_scaling_factor());
3008 }
3009 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
3010 double tmp_savings_max_memory_usage_bytes = from._internal_savings_max_memory_usage_bytes();
3011 uint64_t raw_savings_max_memory_usage_bytes;
3012 memcpy(&raw_savings_max_memory_usage_bytes, &tmp_savings_max_memory_usage_bytes, sizeof(tmp_savings_max_memory_usage_bytes));
3013 if (raw_savings_max_memory_usage_bytes != 0) {
3014 _internal_set_savings_max_memory_usage_bytes(from._internal_savings_max_memory_usage_bytes());
3015 }
3016 if (from._internal_use_cp_sat() != 0) {
3017 _internal_set_use_cp_sat(from._internal_use_cp_sat());
3018 }
3019 if (from._internal_use_cp() != 0) {
3020 _internal_set_use_cp(from._internal_use_cp());
3021 }
3022 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
3023 double tmp_log_cost_offset = from._internal_log_cost_offset();
3024 uint64_t raw_log_cost_offset;
3025 memcpy(&raw_log_cost_offset, &tmp_log_cost_offset, sizeof(tmp_log_cost_offset));
3026 if (raw_log_cost_offset != 0) {
3027 _internal_set_log_cost_offset(from._internal_log_cost_offset());
3028 }
3029 if (from._internal_cheapest_insertion_add_unperformed_entries() != 0) {
3030 _internal_set_cheapest_insertion_add_unperformed_entries(from._internal_cheapest_insertion_add_unperformed_entries());
3031 }
3032 if (from._internal_christofides_use_minimum_matching() != 0) {
3033 _internal_set_christofides_use_minimum_matching(from._internal_christofides_use_minimum_matching());
3034 }
3035 if (from._internal_use_multi_armed_bandit_concatenate_operators() != 0) {
3036 _internal_set_use_multi_armed_bandit_concatenate_operators(from._internal_use_multi_armed_bandit_concatenate_operators());
3037 }
3038 if (from._internal_use_depth_first_search() != 0) {
3039 _internal_set_use_depth_first_search(from._internal_use_depth_first_search());
3040 }
3041 if (from._internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
3042 _internal_set_heuristic_expensive_chain_lns_num_arcs_to_consider(from._internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
3043 }
3044 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
3045 double tmp_cheapest_insertion_ls_operator_neighbors_ratio = from._internal_cheapest_insertion_ls_operator_neighbors_ratio();
3046 uint64_t raw_cheapest_insertion_ls_operator_neighbors_ratio;
3047 memcpy(&raw_cheapest_insertion_ls_operator_neighbors_ratio, &tmp_cheapest_insertion_ls_operator_neighbors_ratio, sizeof(tmp_cheapest_insertion_ls_operator_neighbors_ratio));
3048 if (raw_cheapest_insertion_ls_operator_neighbors_ratio != 0) {
3049 _internal_set_cheapest_insertion_ls_operator_neighbors_ratio(from._internal_cheapest_insertion_ls_operator_neighbors_ratio());
3050 }
3051 if (from._internal_continuous_scheduling_solver() != 0) {
3052 _internal_set_continuous_scheduling_solver(from._internal_continuous_scheduling_solver());
3053 }
3054 if (from._internal_mixed_integer_scheduling_solver() != 0) {
3055 _internal_set_mixed_integer_scheduling_solver(from._internal_mixed_integer_scheduling_solver());
3056 }
3057 if (from._internal_heuristic_close_nodes_lns_num_nodes() != 0) {
3058 _internal_set_heuristic_close_nodes_lns_num_nodes(from._internal_heuristic_close_nodes_lns_num_nodes());
3059 }
3060 if (from._internal_cheapest_insertion_first_solution_min_neighbors() != 0) {
3061 _internal_set_cheapest_insertion_first_solution_min_neighbors(from._internal_cheapest_insertion_first_solution_min_neighbors());
3062 }
3063 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
3064 double tmp_multi_armed_bandit_compound_operator_memory_coefficient = from._internal_multi_armed_bandit_compound_operator_memory_coefficient();
3065 uint64_t raw_multi_armed_bandit_compound_operator_memory_coefficient;
3066 memcpy(&raw_multi_armed_bandit_compound_operator_memory_coefficient, &tmp_multi_armed_bandit_compound_operator_memory_coefficient, sizeof(tmp_multi_armed_bandit_compound_operator_memory_coefficient));
3067 if (raw_multi_armed_bandit_compound_operator_memory_coefficient != 0) {
3068 _internal_set_multi_armed_bandit_compound_operator_memory_coefficient(from._internal_multi_armed_bandit_compound_operator_memory_coefficient());
3069 }
3070 static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
3071 double tmp_multi_armed_bandit_compound_operator_exploration_coefficient = from._internal_multi_armed_bandit_compound_operator_exploration_coefficient();
3072 uint64_t raw_multi_armed_bandit_compound_operator_exploration_coefficient;
3073 memcpy(&raw_multi_armed_bandit_compound_operator_exploration_coefficient, &tmp_multi_armed_bandit_compound_operator_exploration_coefficient, sizeof(tmp_multi_armed_bandit_compound_operator_exploration_coefficient));
3074 if (raw_multi_armed_bandit_compound_operator_exploration_coefficient != 0) {
3075 _internal_set_multi_armed_bandit_compound_operator_exploration_coefficient(from._internal_multi_armed_bandit_compound_operator_exploration_coefficient());
3076 }
3077 if (from._internal_cheapest_insertion_ls_operator_min_neighbors() != 0) {
3078 _internal_set_cheapest_insertion_ls_operator_min_neighbors(from._internal_cheapest_insertion_ls_operator_min_neighbors());
3079 }
3080 if (from._internal_use_generalized_cp_sat() != 0) {
3081 _internal_set_use_generalized_cp_sat(from._internal_use_generalized_cp_sat());
3082 }
3083 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3084}
3085
3087// @@protoc_insertion_point(class_specific_copy_from_start:operations_research.RoutingSearchParameters)
3088 if (&from == this) return;
3089 Clear();
3090 MergeFrom(from);
3091}
3092
3094 return true;
3095}
3096
3097void RoutingSearchParameters::InternalSwap(RoutingSearchParameters* other) {
3098 using std::swap;
3099 auto* lhs_arena = GetArenaForAllocation();
3100 auto* rhs_arena = other->GetArenaForAllocation();
3101 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3102 ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
3103 &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
3104 &log_tag_, lhs_arena,
3105 &other->log_tag_, rhs_arena
3106 );
3107 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3108 PROTOBUF_FIELD_OFFSET(RoutingSearchParameters, use_generalized_cp_sat_)
3109 + sizeof(RoutingSearchParameters::use_generalized_cp_sat_)
3110 - PROTOBUF_FIELD_OFFSET(RoutingSearchParameters, local_search_operators_)>(
3111 reinterpret_cast<char*>(&local_search_operators_),
3112 reinterpret_cast<char*>(&other->local_search_operators_));
3113}
3114
3115::PROTOBUF_NAMESPACE_ID::Metadata RoutingSearchParameters::GetMetadata() const {
3116 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
3119}
3120
3121// ===================================================================
3122
3124 public:
3125 static const ::operations_research::ConstraintSolverParameters& solver_parameters(const RoutingModelParameters* msg);
3126};
3127
3128const ::operations_research::ConstraintSolverParameters&
3130 return *msg->solver_parameters_;
3131}
3133 if (GetArenaForAllocation() == nullptr && solver_parameters_ != nullptr) {
3134 delete solver_parameters_;
3135 }
3136 solver_parameters_ = nullptr;
3137}
3138RoutingModelParameters::RoutingModelParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena,
3139 bool is_message_owned)
3140 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
3141 SharedCtor();
3142 if (!is_message_owned) {
3143 RegisterArenaDtor(arena);
3144 }
3145 // @@protoc_insertion_point(arena_constructor:operations_research.RoutingModelParameters)
3146}
3148 : ::PROTOBUF_NAMESPACE_ID::Message() {
3149 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3150 if (from._internal_has_solver_parameters()) {
3151 solver_parameters_ = new ::operations_research::ConstraintSolverParameters(*from.solver_parameters_);
3152 } else {
3153 solver_parameters_ = nullptr;
3154 }
3155 ::memcpy(&reduce_vehicle_cost_model_, &from.reduce_vehicle_cost_model_,
3156 static_cast<size_t>(reinterpret_cast<char*>(&max_callback_cache_size_) -
3157 reinterpret_cast<char*>(&reduce_vehicle_cost_model_)) + sizeof(max_callback_cache_size_));
3158 // @@protoc_insertion_point(copy_constructor:operations_research.RoutingModelParameters)
3159}
3160
3161inline void RoutingModelParameters::SharedCtor() {
3162::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
3163 reinterpret_cast<char*>(&solver_parameters_) - reinterpret_cast<char*>(this)),
3164 0, static_cast<size_t>(reinterpret_cast<char*>(&max_callback_cache_size_) -
3165 reinterpret_cast<char*>(&solver_parameters_)) + sizeof(max_callback_cache_size_));
3166}
3167
3169 // @@protoc_insertion_point(destructor:operations_research.RoutingModelParameters)
3170 if (GetArenaForAllocation() != nullptr) return;
3171 SharedDtor();
3172 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3173}
3174
3175inline void RoutingModelParameters::SharedDtor() {
3176 GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
3177 if (this != internal_default_instance()) delete solver_parameters_;
3178}
3179
3180void RoutingModelParameters::ArenaDtor(void* object) {
3181 RoutingModelParameters* _this = reinterpret_cast< RoutingModelParameters* >(object);
3182 (void)_this;
3183}
3184void RoutingModelParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3185}
3186void RoutingModelParameters::SetCachedSize(int size) const {
3187 _cached_size_.Set(size);
3188}
3189
3191// @@protoc_insertion_point(message_clear_start:operations_research.RoutingModelParameters)
3192 uint32_t cached_has_bits = 0;
3193 // Prevent compiler warnings about cached_has_bits being unused
3194 (void) cached_has_bits;
3195
3196 if (GetArenaForAllocation() == nullptr && solver_parameters_ != nullptr) {
3197 delete solver_parameters_;
3198 }
3199 solver_parameters_ = nullptr;
3200 ::memset(&reduce_vehicle_cost_model_, 0, static_cast<size_t>(
3201 reinterpret_cast<char*>(&max_callback_cache_size_) -
3202 reinterpret_cast<char*>(&reduce_vehicle_cost_model_)) + sizeof(max_callback_cache_size_));
3203 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3204}
3205
3206const char* RoutingModelParameters::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3207#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3208 while (!ctx->Done(&ptr)) {
3209 uint32_t tag;
3210 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3211 switch (tag >> 3) {
3212 // .operations_research.ConstraintSolverParameters solver_parameters = 1;
3213 case 1:
3214 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
3215 ptr = ctx->ParseMessage(_internal_mutable_solver_parameters(), ptr);
3216 CHK_(ptr);
3217 } else
3218 goto handle_unusual;
3219 continue;
3220 // bool reduce_vehicle_cost_model = 2;
3221 case 2:
3222 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
3223 reduce_vehicle_cost_model_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3224 CHK_(ptr);
3225 } else
3226 goto handle_unusual;
3227 continue;
3228 // int32 max_callback_cache_size = 3;
3229 case 3:
3230 if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
3231 max_callback_cache_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
3232 CHK_(ptr);
3233 } else
3234 goto handle_unusual;
3235 continue;
3236 default:
3237 goto handle_unusual;
3238 } // switch
3239 handle_unusual:
3240 if ((tag == 0) || ((tag & 7) == 4)) {
3241 CHK_(ptr);
3242 ctx->SetLastTag(tag);
3243 goto message_done;
3244 }
3245 ptr = UnknownFieldParse(
3246 tag,
3247 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3248 ptr, ctx);
3249 CHK_(ptr != nullptr);
3250 } // while
3251message_done:
3252 return ptr;
3253failure:
3254 ptr = nullptr;
3255 goto message_done;
3256#undef CHK_
3257}
3258
3260 uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3261 // @@protoc_insertion_point(serialize_to_array_start:operations_research.RoutingModelParameters)
3262 uint32_t cached_has_bits = 0;
3263 (void) cached_has_bits;
3264
3265 // .operations_research.ConstraintSolverParameters solver_parameters = 1;
3266 if (this->_internal_has_solver_parameters()) {
3267 target = stream->EnsureSpace(target);
3268 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3269 InternalWriteMessage(
3270 1, _Internal::solver_parameters(this), target, stream);
3271 }
3272
3273 // bool reduce_vehicle_cost_model = 2;
3274 if (this->_internal_reduce_vehicle_cost_model() != 0) {
3275 target = stream->EnsureSpace(target);
3276 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_reduce_vehicle_cost_model(), target);
3277 }
3278
3279 // int32 max_callback_cache_size = 3;
3280 if (this->_internal_max_callback_cache_size() != 0) {
3281 target = stream->EnsureSpace(target);
3282 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_max_callback_cache_size(), target);
3283 }
3284
3285 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3286 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3287 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3288 }
3289 // @@protoc_insertion_point(serialize_to_array_end:operations_research.RoutingModelParameters)
3290 return target;
3291}
3292
3294// @@protoc_insertion_point(message_byte_size_start:operations_research.RoutingModelParameters)
3295 size_t total_size = 0;
3296
3297 uint32_t cached_has_bits = 0;
3298 // Prevent compiler warnings about cached_has_bits being unused
3299 (void) cached_has_bits;
3300
3301 // .operations_research.ConstraintSolverParameters solver_parameters = 1;
3302 if (this->_internal_has_solver_parameters()) {
3303 total_size += 1 +
3304 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3305 *solver_parameters_);
3306 }
3307
3308 // bool reduce_vehicle_cost_model = 2;
3309 if (this->_internal_reduce_vehicle_cost_model() != 0) {
3310 total_size += 1 + 1;
3311 }
3312
3313 // int32 max_callback_cache_size = 3;
3314 if (this->_internal_max_callback_cache_size() != 0) {
3315 total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_max_callback_cache_size());
3316 }
3317
3318 return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
3319}
3320
3321const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RoutingModelParameters::_class_data_ = {
3322 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
3323 RoutingModelParameters::MergeImpl
3324};
3325const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RoutingModelParameters::GetClassData() const { return &_class_data_; }
3326
3327void RoutingModelParameters::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
3328 const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3329 static_cast<RoutingModelParameters *>(to)->MergeFrom(
3330 static_cast<const RoutingModelParameters &>(from));
3331}
3332
3333
3335// @@protoc_insertion_point(class_specific_merge_from_start:operations_research.RoutingModelParameters)
3336 GOOGLE_DCHECK_NE(&from, this);
3337 uint32_t cached_has_bits = 0;
3338 (void) cached_has_bits;
3339
3340 if (from._internal_has_solver_parameters()) {
3341 _internal_mutable_solver_parameters()->::operations_research::ConstraintSolverParameters::MergeFrom(from._internal_solver_parameters());
3342 }
3343 if (from._internal_reduce_vehicle_cost_model() != 0) {
3344 _internal_set_reduce_vehicle_cost_model(from._internal_reduce_vehicle_cost_model());
3345 }
3346 if (from._internal_max_callback_cache_size() != 0) {
3347 _internal_set_max_callback_cache_size(from._internal_max_callback_cache_size());
3348 }
3349 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3350}
3351
3353// @@protoc_insertion_point(class_specific_copy_from_start:operations_research.RoutingModelParameters)
3354 if (&from == this) return;
3355 Clear();
3356 MergeFrom(from);
3357}
3358
3360 return true;
3361}
3362
3363void RoutingModelParameters::InternalSwap(RoutingModelParameters* other) {
3364 using std::swap;
3365 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3366 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3367 PROTOBUF_FIELD_OFFSET(RoutingModelParameters, max_callback_cache_size_)
3368 + sizeof(RoutingModelParameters::max_callback_cache_size_)
3369 - PROTOBUF_FIELD_OFFSET(RoutingModelParameters, solver_parameters_)>(
3370 reinterpret_cast<char*>(&solver_parameters_),
3371 reinterpret_cast<char*>(&other->solver_parameters_));
3372}
3373
3374::PROTOBUF_NAMESPACE_ID::Metadata RoutingModelParameters::GetMetadata() const {
3375 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
3378}
3379
3380// @@protoc_insertion_point(namespace_scope)
3381} // namespace operations_research
3382PROTOBUF_NAMESPACE_OPEN
3383template<> PROTOBUF_NOINLINE ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators >(Arena* arena) {
3384 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators >(arena);
3385}
3386template<> PROTOBUF_NOINLINE ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters >(Arena* arena) {
3387 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters >(arena);
3388}
3389template<> PROTOBUF_NOINLINE ::operations_research::RoutingSearchParameters* Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters >(Arena* arena) {
3390 return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters >(arena);
3391}
3392template<> PROTOBUF_NOINLINE ::operations_research::RoutingModelParameters* Arena::CreateMaybeMessage< ::operations_research::RoutingModelParameters >(Arena* arena) {
3393 return Arena::CreateMessageInternal< ::operations_research::RoutingModelParameters >(arena);
3394}
3395PROTOBUF_NAMESPACE_CLOSE
3396
3397// @@protoc_insertion_point(global_scope)
3398#include <google/protobuf/port_undef.inc>
static const ::operations_research::ConstraintSolverParameters & solver_parameters(const RoutingModelParameters *msg)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static const RoutingModelParameters * internal_default_instance()
void CopyFrom(const RoutingModelParameters &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void MergeFrom(const RoutingModelParameters &from)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
static const ::operations_research::sat::SatParameters & sat_parameters(const RoutingSearchParameters *msg)
static const ::PROTOBUF_NAMESPACE_ID::Duration & lns_time_limit(const RoutingSearchParameters *msg)
static const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators & local_search_operators(const RoutingSearchParameters *msg)
static const ::PROTOBUF_NAMESPACE_ID::Duration & time_limit(const RoutingSearchParameters *msg)
static const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters & improvement_limit_parameters(const RoutingSearchParameters *msg)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const RoutingSearchParameters_ImprovementSearchLimitParameters &from)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void MergeFrom(const RoutingSearchParameters_ImprovementSearchLimitParameters &from)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void CopyFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)
void MergeFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
static constexpr SchedulingSolver SchedulingSolver_MIN
static const RoutingSearchParameters * internal_default_instance()
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static constexpr SchedulingSolver SchedulingSolver_MAX
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void MergeFrom(const RoutingSearchParameters &from)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void CopyFrom(const RoutingSearchParameters &from)
int64_t value
void swap(IdMap< K, V > &a, IdMap< K, V > &b)
Definition: id_map.h:262
Collection of objects used to extend the Constraint Solver library.
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * RoutingSearchParameters_SchedulingSolver_descriptor()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal _RoutingSearchParameters_ImprovementSearchLimitParameters_default_instance_
bool RoutingSearchParameters_SchedulingSolver_IsValid(int value)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingSearchParametersDefaultTypeInternal _RoutingSearchParameters_default_instance_
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingModelParametersDefaultTypeInternal _RoutingModelParameters_default_instance_
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal _RoutingSearchParameters_LocalSearchNeighborhoodOperators_default_instance_
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2futil_2foptional_5fboolean_2eproto
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fenums_2eproto
PROTOBUF_NOINLINE::operations_research::RoutingSearchParameters * Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters >(Arena *arena)
PROTOBUF_NOINLINE::operations_research::RoutingModelParameters * Arena::CreateMaybeMessage< ::operations_research::RoutingModelParameters >(Arena *arena)
#define CHK_(x)
PROTOBUF_ATTRIBUTE_WEAKconst ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable * descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_getter()
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable *const descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_deps[5]
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
const uint32_t TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[1]
PROTOBUF_NOINLINE::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters * Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[4]
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators * Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_once
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2fsolver_5fparameters_2eproto