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