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