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