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