C++ Reference

C++ Reference: Routing

routing_parameters.pb.h
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 
4 #ifndef GOOGLE_PROTOBUF_INCLUDED_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
5 #define GOOGLE_PROTOBUF_INCLUDED_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
6 
7 #include <limits>
8 #include <string>
9 
10 #include <google/protobuf/port_def.inc>
11 #if PROTOBUF_VERSION < 3019000
12 #error This file was generated by a newer version of protoc which is
13 #error incompatible with your Protocol Buffer headers. Please update
14 #error your headers.
15 #endif
16 #if 3019001 < PROTOBUF_MIN_PROTOC_VERSION
17 #error This file was generated by an older version of protoc which is
18 #error incompatible with your Protocol Buffer headers. Please
19 #error regenerate this file with a newer version of protoc.
20 #endif
21 
22 #include <google/protobuf/port_undef.inc>
23 #include <google/protobuf/io/coded_stream.h>
24 #include <google/protobuf/arena.h>
25 #include <google/protobuf/arenastring.h>
26 #include <google/protobuf/generated_message_table_driven.h>
27 #include <google/protobuf/generated_message_util.h>
28 #include <google/protobuf/metadata_lite.h>
29 #include <google/protobuf/generated_message_reflection.h>
30 #include <google/protobuf/message.h>
31 #include <google/protobuf/repeated_field.h> // IWYU pragma: export
32 #include <google/protobuf/extension_set.h> // IWYU pragma: export
33 #include <google/protobuf/generated_enum_reflection.h>
34 #include <google/protobuf/unknown_field_set.h>
35 #include <google/protobuf/duration.pb.h>
38 #include "ortools/sat/sat_parameters.pb.h"
39 #include "ortools/util/optional_boolean.pb.h"
40 // @@protoc_insertion_point(includes)
41 #include <google/protobuf/port_def.inc>
42 #define PROTOBUF_INTERNAL_EXPORT_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
43 PROTOBUF_NAMESPACE_OPEN
44 namespace internal {
45 class AnyMetadata;
46 } // namespace internal
47 PROTOBUF_NAMESPACE_CLOSE
48 
49 // Internal implementation detail -- do not use these members.
51  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
52  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
53  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
54  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
55  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[4]
56  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
57  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
58  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
59  static const uint32_t offsets[];
60 };
61 extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto;
62 namespace operations_research {
63 class RoutingModelParameters;
64 struct RoutingModelParametersDefaultTypeInternal;
65 extern RoutingModelParametersDefaultTypeInternal _RoutingModelParameters_default_instance_;
66 class RoutingSearchParameters;
67 struct RoutingSearchParametersDefaultTypeInternal;
68 extern RoutingSearchParametersDefaultTypeInternal _RoutingSearchParameters_default_instance_;
69 class RoutingSearchParameters_ImprovementSearchLimitParameters;
70 struct RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal;
71 extern RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal _RoutingSearchParameters_ImprovementSearchLimitParameters_default_instance_;
72 class RoutingSearchParameters_LocalSearchNeighborhoodOperators;
73 struct RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal;
74 extern RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal _RoutingSearchParameters_LocalSearchNeighborhoodOperators_default_instance_;
75 } // namespace operations_research
76 PROTOBUF_NAMESPACE_OPEN
77 template<> ::operations_research::RoutingModelParameters* Arena::CreateMaybeMessage<::operations_research::RoutingModelParameters>(Arena*);
78 template<> ::operations_research::RoutingSearchParameters* Arena::CreateMaybeMessage<::operations_research::RoutingSearchParameters>(Arena*);
79 template<> ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* Arena::CreateMaybeMessage<::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters>(Arena*);
80 template<> ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* Arena::CreateMaybeMessage<::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators>(Arena*);
81 PROTOBUF_NAMESPACE_CLOSE
82 namespace operations_research {
83 
90 };
95 
96 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RoutingSearchParameters_SchedulingSolver_descriptor();
97 template<typename T>
98 inline const std::string& RoutingSearchParameters_SchedulingSolver_Name(T enum_t_value) {
99  static_assert(::std::is_same<T, RoutingSearchParameters_SchedulingSolver>::value ||
100  ::std::is_integral<T>::value,
101  "Incorrect type passed to function RoutingSearchParameters_SchedulingSolver_Name.");
102  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
104 }
106  ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, RoutingSearchParameters_SchedulingSolver* value) {
107  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<RoutingSearchParameters_SchedulingSolver>(
109 }
110 // ===================================================================
111 
113  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators) */ {
114  public:
117  explicit constexpr RoutingSearchParameters_LocalSearchNeighborhoodOperators(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
118 
122  *this = ::std::move(from);
123  }
124 
126  CopyFrom(from);
127  return *this;
128  }
130  if (this == &from) return *this;
131  if (GetOwningArena() == from.GetOwningArena()
132  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
133  && GetOwningArena() != nullptr
134  #endif // !PROTOBUF_FORCE_COPY_IN_MOVE
135  ) {
136  InternalSwap(&from);
137  } else {
138  CopyFrom(from);
139  }
140  return *this;
141  }
142 
143  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
144  return GetDescriptor();
145  }
146  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
147  return default_instance().GetMetadata().descriptor;
148  }
149  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
150  return default_instance().GetMetadata().reflection;
151  }
153  return *internal_default_instance();
154  }
156  return reinterpret_cast<const RoutingSearchParameters_LocalSearchNeighborhoodOperators*>(
158  }
159  static constexpr int kIndexInFileMessages =
160  0;
161 
163  a.Swap(&b);
164  }
166  if (other == this) return;
167  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
168  if (GetOwningArena() != nullptr &&
169  GetOwningArena() == other->GetOwningArena()) {
170  #else // PROTOBUF_FORCE_COPY_IN_SWAP
171  if (GetOwningArena() == other->GetOwningArena()) {
172  #endif // !PROTOBUF_FORCE_COPY_IN_SWAP
173  InternalSwap(other);
174  } else {
175  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
176  }
177  }
179  if (other == this) return;
180  GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
181  InternalSwap(other);
182  }
183 
184  // implements Message ----------------------------------------------
185 
186  RoutingSearchParameters_LocalSearchNeighborhoodOperators* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
187  return CreateMaybeMessage<RoutingSearchParameters_LocalSearchNeighborhoodOperators>(arena);
188  }
189  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
191  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
193  private:
194  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
195  public:
196  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
197  bool IsInitialized() const final;
198 
199  size_t ByteSizeLong() const final;
200  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
201  uint8_t* _InternalSerialize(
202  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
203  int GetCachedSize() const final { return _cached_size_.Get(); }
204 
205  private:
206  void SharedCtor();
207  void SharedDtor();
208  void SetCachedSize(int size) const final;
210 
211  private:
212  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
213  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
214  return "operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators";
215  }
216  protected:
217  explicit RoutingSearchParameters_LocalSearchNeighborhoodOperators(::PROTOBUF_NAMESPACE_ID::Arena* arena,
218  bool is_message_owned = false);
219  private:
220  static void ArenaDtor(void* object);
221  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
222  public:
223 
224  static const ClassData _class_data_;
225  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
226 
227  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
228 
229  // nested types ----------------------------------------------------
230 
231  // accessors -------------------------------------------------------
232 
233  enum : int {
267  };
268  // .operations_research.OptionalBoolean use_relocate = 1;
269  void clear_use_relocate();
270  ::operations_research::OptionalBoolean use_relocate() const;
271  void set_use_relocate(::operations_research::OptionalBoolean value);
272  private:
273  ::operations_research::OptionalBoolean _internal_use_relocate() const;
274  void _internal_set_use_relocate(::operations_research::OptionalBoolean value);
275  public:
276 
277  // .operations_research.OptionalBoolean use_relocate_pair = 2;
279  ::operations_research::OptionalBoolean use_relocate_pair() const;
280  void set_use_relocate_pair(::operations_research::OptionalBoolean value);
281  private:
282  ::operations_research::OptionalBoolean _internal_use_relocate_pair() const;
283  void _internal_set_use_relocate_pair(::operations_research::OptionalBoolean value);
284  public:
285 
286  // .operations_research.OptionalBoolean use_relocate_neighbors = 3;
288  ::operations_research::OptionalBoolean use_relocate_neighbors() const;
289  void set_use_relocate_neighbors(::operations_research::OptionalBoolean value);
290  private:
291  ::operations_research::OptionalBoolean _internal_use_relocate_neighbors() const;
292  void _internal_set_use_relocate_neighbors(::operations_research::OptionalBoolean value);
293  public:
294 
295  // .operations_research.OptionalBoolean use_exchange = 4;
296  void clear_use_exchange();
297  ::operations_research::OptionalBoolean use_exchange() const;
298  void set_use_exchange(::operations_research::OptionalBoolean value);
299  private:
300  ::operations_research::OptionalBoolean _internal_use_exchange() const;
301  void _internal_set_use_exchange(::operations_research::OptionalBoolean value);
302  public:
303 
304  // .operations_research.OptionalBoolean use_cross = 5;
305  void clear_use_cross();
306  ::operations_research::OptionalBoolean use_cross() const;
307  void set_use_cross(::operations_research::OptionalBoolean value);
308  private:
309  ::operations_research::OptionalBoolean _internal_use_cross() const;
310  void _internal_set_use_cross(::operations_research::OptionalBoolean value);
311  public:
312 
313  // .operations_research.OptionalBoolean use_cross_exchange = 6;
315  ::operations_research::OptionalBoolean use_cross_exchange() const;
316  void set_use_cross_exchange(::operations_research::OptionalBoolean value);
317  private:
318  ::operations_research::OptionalBoolean _internal_use_cross_exchange() const;
319  void _internal_set_use_cross_exchange(::operations_research::OptionalBoolean value);
320  public:
321 
322  // .operations_research.OptionalBoolean use_two_opt = 7;
323  void clear_use_two_opt();
324  ::operations_research::OptionalBoolean use_two_opt() const;
325  void set_use_two_opt(::operations_research::OptionalBoolean value);
326  private:
327  ::operations_research::OptionalBoolean _internal_use_two_opt() const;
328  void _internal_set_use_two_opt(::operations_research::OptionalBoolean value);
329  public:
330 
331  // .operations_research.OptionalBoolean use_or_opt = 8;
332  void clear_use_or_opt();
333  ::operations_research::OptionalBoolean use_or_opt() const;
334  void set_use_or_opt(::operations_research::OptionalBoolean value);
335  private:
336  ::operations_research::OptionalBoolean _internal_use_or_opt() const;
337  void _internal_set_use_or_opt(::operations_research::OptionalBoolean value);
338  public:
339 
340  // .operations_research.OptionalBoolean use_lin_kernighan = 9;
342  ::operations_research::OptionalBoolean use_lin_kernighan() const;
343  void set_use_lin_kernighan(::operations_research::OptionalBoolean value);
344  private:
345  ::operations_research::OptionalBoolean _internal_use_lin_kernighan() const;
346  void _internal_set_use_lin_kernighan(::operations_research::OptionalBoolean value);
347  public:
348 
349  // .operations_research.OptionalBoolean use_tsp_opt = 10;
350  void clear_use_tsp_opt();
351  ::operations_research::OptionalBoolean use_tsp_opt() const;
352  void set_use_tsp_opt(::operations_research::OptionalBoolean value);
353  private:
354  ::operations_research::OptionalBoolean _internal_use_tsp_opt() const;
355  void _internal_set_use_tsp_opt(::operations_research::OptionalBoolean value);
356  public:
357 
358  // .operations_research.OptionalBoolean use_make_active = 11;
359  void clear_use_make_active();
360  ::operations_research::OptionalBoolean use_make_active() const;
361  void set_use_make_active(::operations_research::OptionalBoolean value);
362  private:
363  ::operations_research::OptionalBoolean _internal_use_make_active() const;
364  void _internal_set_use_make_active(::operations_research::OptionalBoolean value);
365  public:
366 
367  // .operations_research.OptionalBoolean use_make_inactive = 12;
369  ::operations_research::OptionalBoolean use_make_inactive() const;
370  void set_use_make_inactive(::operations_research::OptionalBoolean value);
371  private:
372  ::operations_research::OptionalBoolean _internal_use_make_inactive() const;
373  void _internal_set_use_make_inactive(::operations_research::OptionalBoolean value);
374  public:
375 
376  // .operations_research.OptionalBoolean use_make_chain_inactive = 13;
378  ::operations_research::OptionalBoolean use_make_chain_inactive() const;
379  void set_use_make_chain_inactive(::operations_research::OptionalBoolean value);
380  private:
381  ::operations_research::OptionalBoolean _internal_use_make_chain_inactive() const;
382  void _internal_set_use_make_chain_inactive(::operations_research::OptionalBoolean value);
383  public:
384 
385  // .operations_research.OptionalBoolean use_swap_active = 14;
386  void clear_use_swap_active();
387  ::operations_research::OptionalBoolean use_swap_active() const;
388  void set_use_swap_active(::operations_research::OptionalBoolean value);
389  private:
390  ::operations_research::OptionalBoolean _internal_use_swap_active() const;
391  void _internal_set_use_swap_active(::operations_research::OptionalBoolean value);
392  public:
393 
394  // .operations_research.OptionalBoolean use_extended_swap_active = 15;
396  ::operations_research::OptionalBoolean use_extended_swap_active() const;
397  void set_use_extended_swap_active(::operations_research::OptionalBoolean value);
398  private:
399  ::operations_research::OptionalBoolean _internal_use_extended_swap_active() const;
400  void _internal_set_use_extended_swap_active(::operations_research::OptionalBoolean value);
401  public:
402 
403  // .operations_research.OptionalBoolean use_path_lns = 16;
404  void clear_use_path_lns();
405  ::operations_research::OptionalBoolean use_path_lns() const;
406  void set_use_path_lns(::operations_research::OptionalBoolean value);
407  private:
408  ::operations_research::OptionalBoolean _internal_use_path_lns() const;
409  void _internal_set_use_path_lns(::operations_research::OptionalBoolean value);
410  public:
411 
412  // .operations_research.OptionalBoolean use_full_path_lns = 17;
414  ::operations_research::OptionalBoolean use_full_path_lns() const;
415  void set_use_full_path_lns(::operations_research::OptionalBoolean value);
416  private:
417  ::operations_research::OptionalBoolean _internal_use_full_path_lns() const;
418  void _internal_set_use_full_path_lns(::operations_research::OptionalBoolean value);
419  public:
420 
421  // .operations_research.OptionalBoolean use_tsp_lns = 18;
422  void clear_use_tsp_lns();
423  ::operations_research::OptionalBoolean use_tsp_lns() const;
424  void set_use_tsp_lns(::operations_research::OptionalBoolean value);
425  private:
426  ::operations_research::OptionalBoolean _internal_use_tsp_lns() const;
427  void _internal_set_use_tsp_lns(::operations_research::OptionalBoolean value);
428  public:
429 
430  // .operations_research.OptionalBoolean use_inactive_lns = 19;
431  void clear_use_inactive_lns();
432  ::operations_research::OptionalBoolean use_inactive_lns() const;
433  void set_use_inactive_lns(::operations_research::OptionalBoolean value);
434  private:
435  ::operations_research::OptionalBoolean _internal_use_inactive_lns() const;
436  void _internal_set_use_inactive_lns(::operations_research::OptionalBoolean value);
437  public:
438 
439  // .operations_research.OptionalBoolean use_node_pair_swap_active = 20;
441  ::operations_research::OptionalBoolean use_node_pair_swap_active() const;
442  void set_use_node_pair_swap_active(::operations_research::OptionalBoolean value);
443  private:
444  ::operations_research::OptionalBoolean _internal_use_node_pair_swap_active() const;
445  void _internal_set_use_node_pair_swap_active(::operations_research::OptionalBoolean value);
446  public:
447 
448  // .operations_research.OptionalBoolean use_relocate_and_make_active = 21;
450  ::operations_research::OptionalBoolean use_relocate_and_make_active() const;
451  void set_use_relocate_and_make_active(::operations_research::OptionalBoolean value);
452  private:
453  ::operations_research::OptionalBoolean _internal_use_relocate_and_make_active() const;
454  void _internal_set_use_relocate_and_make_active(::operations_research::OptionalBoolean value);
455  public:
456 
457  // .operations_research.OptionalBoolean use_exchange_pair = 22;
459  ::operations_research::OptionalBoolean use_exchange_pair() const;
460  void set_use_exchange_pair(::operations_research::OptionalBoolean value);
461  private:
462  ::operations_research::OptionalBoolean _internal_use_exchange_pair() const;
463  void _internal_set_use_exchange_pair(::operations_research::OptionalBoolean value);
464  public:
465 
466  // .operations_research.OptionalBoolean use_relocate_expensive_chain = 23;
468  ::operations_research::OptionalBoolean use_relocate_expensive_chain() const;
469  void set_use_relocate_expensive_chain(::operations_research::OptionalBoolean value);
470  private:
471  ::operations_research::OptionalBoolean _internal_use_relocate_expensive_chain() const;
472  void _internal_set_use_relocate_expensive_chain(::operations_research::OptionalBoolean value);
473  public:
474 
475  // .operations_research.OptionalBoolean use_light_relocate_pair = 24;
477  ::operations_research::OptionalBoolean use_light_relocate_pair() const;
478  void set_use_light_relocate_pair(::operations_research::OptionalBoolean value);
479  private:
480  ::operations_research::OptionalBoolean _internal_use_light_relocate_pair() const;
481  void _internal_set_use_light_relocate_pair(::operations_research::OptionalBoolean value);
482  public:
483 
484  // .operations_research.OptionalBoolean use_relocate_subtrip = 25;
486  ::operations_research::OptionalBoolean use_relocate_subtrip() const;
487  void set_use_relocate_subtrip(::operations_research::OptionalBoolean value);
488  private:
489  ::operations_research::OptionalBoolean _internal_use_relocate_subtrip() const;
490  void _internal_set_use_relocate_subtrip(::operations_research::OptionalBoolean value);
491  public:
492 
493  // .operations_research.OptionalBoolean use_exchange_subtrip = 26;
495  ::operations_research::OptionalBoolean use_exchange_subtrip() const;
496  void set_use_exchange_subtrip(::operations_research::OptionalBoolean value);
497  private:
498  ::operations_research::OptionalBoolean _internal_use_exchange_subtrip() const;
499  void _internal_set_use_exchange_subtrip(::operations_research::OptionalBoolean value);
500  public:
501 
502  // .operations_research.OptionalBoolean use_global_cheapest_insertion_path_lns = 27;
504  ::operations_research::OptionalBoolean use_global_cheapest_insertion_path_lns() const;
505  void set_use_global_cheapest_insertion_path_lns(::operations_research::OptionalBoolean value);
506  private:
507  ::operations_research::OptionalBoolean _internal_use_global_cheapest_insertion_path_lns() const;
508  void _internal_set_use_global_cheapest_insertion_path_lns(::operations_research::OptionalBoolean value);
509  public:
510 
511  // .operations_research.OptionalBoolean use_local_cheapest_insertion_path_lns = 28;
513  ::operations_research::OptionalBoolean use_local_cheapest_insertion_path_lns() const;
514  void set_use_local_cheapest_insertion_path_lns(::operations_research::OptionalBoolean value);
515  private:
516  ::operations_research::OptionalBoolean _internal_use_local_cheapest_insertion_path_lns() const;
517  void _internal_set_use_local_cheapest_insertion_path_lns(::operations_research::OptionalBoolean value);
518  public:
519 
520  // .operations_research.OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns = 29;
522  ::operations_research::OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns() const;
523  void set_use_global_cheapest_insertion_expensive_chain_lns(::operations_research::OptionalBoolean value);
524  private:
525  ::operations_research::OptionalBoolean _internal_use_global_cheapest_insertion_expensive_chain_lns() const;
526  void _internal_set_use_global_cheapest_insertion_expensive_chain_lns(::operations_research::OptionalBoolean value);
527  public:
528 
529  // .operations_research.OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns = 30;
531  ::operations_research::OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns() const;
532  void set_use_local_cheapest_insertion_expensive_chain_lns(::operations_research::OptionalBoolean value);
533  private:
534  ::operations_research::OptionalBoolean _internal_use_local_cheapest_insertion_expensive_chain_lns() const;
535  void _internal_set_use_local_cheapest_insertion_expensive_chain_lns(::operations_research::OptionalBoolean value);
536  public:
537 
538  // .operations_research.OptionalBoolean use_global_cheapest_insertion_close_nodes_lns = 31;
540  ::operations_research::OptionalBoolean use_global_cheapest_insertion_close_nodes_lns() const;
541  void set_use_global_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value);
542  private:
543  ::operations_research::OptionalBoolean _internal_use_global_cheapest_insertion_close_nodes_lns() const;
544  void _internal_set_use_global_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value);
545  public:
546 
547  // .operations_research.OptionalBoolean use_local_cheapest_insertion_close_nodes_lns = 32;
549  ::operations_research::OptionalBoolean use_local_cheapest_insertion_close_nodes_lns() const;
550  void set_use_local_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value);
551  private:
552  ::operations_research::OptionalBoolean _internal_use_local_cheapest_insertion_close_nodes_lns() const;
553  void _internal_set_use_local_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value);
554  public:
555 
556  // .operations_research.OptionalBoolean use_relocate_path_global_cheapest_insertion_insert_unperformed = 33;
558  ::operations_research::OptionalBoolean use_relocate_path_global_cheapest_insertion_insert_unperformed() const;
559  void set_use_relocate_path_global_cheapest_insertion_insert_unperformed(::operations_research::OptionalBoolean value);
560  private:
561  ::operations_research::OptionalBoolean _internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() const;
562  void _internal_set_use_relocate_path_global_cheapest_insertion_insert_unperformed(::operations_research::OptionalBoolean value);
563  public:
564 
565  // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
566  private:
567  class _Internal;
568 
569  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
570  typedef void InternalArenaConstructable_;
571  typedef void DestructorSkippable_;
572  int use_relocate_;
573  int use_relocate_pair_;
574  int use_relocate_neighbors_;
575  int use_exchange_;
576  int use_cross_;
577  int use_cross_exchange_;
578  int use_two_opt_;
579  int use_or_opt_;
580  int use_lin_kernighan_;
581  int use_tsp_opt_;
582  int use_make_active_;
583  int use_make_inactive_;
584  int use_make_chain_inactive_;
585  int use_swap_active_;
586  int use_extended_swap_active_;
587  int use_path_lns_;
588  int use_full_path_lns_;
589  int use_tsp_lns_;
590  int use_inactive_lns_;
591  int use_node_pair_swap_active_;
592  int use_relocate_and_make_active_;
593  int use_exchange_pair_;
594  int use_relocate_expensive_chain_;
595  int use_light_relocate_pair_;
596  int use_relocate_subtrip_;
597  int use_exchange_subtrip_;
598  int use_global_cheapest_insertion_path_lns_;
599  int use_local_cheapest_insertion_path_lns_;
600  int use_global_cheapest_insertion_expensive_chain_lns_;
601  int use_local_cheapest_insertion_expensive_chain_lns_;
602  int use_global_cheapest_insertion_close_nodes_lns_;
603  int use_local_cheapest_insertion_close_nodes_lns_;
604  int use_relocate_path_global_cheapest_insertion_insert_unperformed_;
605  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
606  friend struct ::TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto;
607 };
608 // -------------------------------------------------------------------
609 
611  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters) */ {
612  public:
615  explicit constexpr RoutingSearchParameters_ImprovementSearchLimitParameters(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
616 
620  *this = ::std::move(from);
621  }
622 
624  CopyFrom(from);
625  return *this;
626  }
628  if (this == &from) return *this;
629  if (GetOwningArena() == from.GetOwningArena()
630  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
631  && GetOwningArena() != nullptr
632  #endif // !PROTOBUF_FORCE_COPY_IN_MOVE
633  ) {
634  InternalSwap(&from);
635  } else {
636  CopyFrom(from);
637  }
638  return *this;
639  }
640 
641  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
642  return GetDescriptor();
643  }
644  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
645  return default_instance().GetMetadata().descriptor;
646  }
647  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
648  return default_instance().GetMetadata().reflection;
649  }
651  return *internal_default_instance();
652  }
654  return reinterpret_cast<const RoutingSearchParameters_ImprovementSearchLimitParameters*>(
656  }
657  static constexpr int kIndexInFileMessages =
658  1;
659 
661  a.Swap(&b);
662  }
664  if (other == this) return;
665  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
666  if (GetOwningArena() != nullptr &&
667  GetOwningArena() == other->GetOwningArena()) {
668  #else // PROTOBUF_FORCE_COPY_IN_SWAP
669  if (GetOwningArena() == other->GetOwningArena()) {
670  #endif // !PROTOBUF_FORCE_COPY_IN_SWAP
671  InternalSwap(other);
672  } else {
673  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
674  }
675  }
677  if (other == this) return;
678  GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
679  InternalSwap(other);
680  }
681 
682  // implements Message ----------------------------------------------
683 
684  RoutingSearchParameters_ImprovementSearchLimitParameters* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
685  return CreateMaybeMessage<RoutingSearchParameters_ImprovementSearchLimitParameters>(arena);
686  }
687  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
689  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
691  private:
692  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
693  public:
694  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
695  bool IsInitialized() const final;
696 
697  size_t ByteSizeLong() const final;
698  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
699  uint8_t* _InternalSerialize(
700  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
701  int GetCachedSize() const final { return _cached_size_.Get(); }
702 
703  private:
704  void SharedCtor();
705  void SharedDtor();
706  void SetCachedSize(int size) const final;
708 
709  private:
710  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
711  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
712  return "operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters";
713  }
714  protected:
715  explicit RoutingSearchParameters_ImprovementSearchLimitParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena,
716  bool is_message_owned = false);
717  private:
718  static void ArenaDtor(void* object);
719  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
720  public:
721 
722  static const ClassData _class_data_;
723  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
724 
725  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
726 
727  // nested types ----------------------------------------------------
728 
729  // accessors -------------------------------------------------------
730 
731  enum : int {
732  kImprovementRateSolutionsDistanceFieldNumber = 39,
733  kImprovementRateCoefficientFieldNumber = 38,
734  };
735  // int32 improvement_rate_solutions_distance = 39;
736  void clear_improvement_rate_solutions_distance();
737  int32_t improvement_rate_solutions_distance() const;
738  void set_improvement_rate_solutions_distance(int32_t value);
739  private:
740  int32_t _internal_improvement_rate_solutions_distance() const;
741  void _internal_set_improvement_rate_solutions_distance(int32_t value);
742  public:
743 
744  // double improvement_rate_coefficient = 38;
745  void clear_improvement_rate_coefficient();
746  double improvement_rate_coefficient() const;
747  void set_improvement_rate_coefficient(double value);
748  private:
749  double _internal_improvement_rate_coefficient() const;
750  void _internal_set_improvement_rate_coefficient(double value);
751  public:
752 
753  // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
754  private:
755  class _Internal;
756 
757  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
758  typedef void InternalArenaConstructable_;
759  typedef void DestructorSkippable_;
760  int32_t improvement_rate_solutions_distance_;
761  double improvement_rate_coefficient_;
762  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
763  friend struct ::TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto;
764 };
765 // -------------------------------------------------------------------
766 
768  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.RoutingSearchParameters) */ {
769  public:
771  ~RoutingSearchParameters() override;
772  explicit constexpr RoutingSearchParameters(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
773 
777  *this = ::std::move(from);
778  }
779 
781  CopyFrom(from);
782  return *this;
783  }
785  if (this == &from) return *this;
786  if (GetOwningArena() == from.GetOwningArena()
787  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
788  && GetOwningArena() != nullptr
789  #endif // !PROTOBUF_FORCE_COPY_IN_MOVE
790  ) {
791  InternalSwap(&from);
792  } else {
793  CopyFrom(from);
794  }
795  return *this;
796  }
797 
798  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
799  return GetDescriptor();
800  }
801  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
802  return default_instance().GetMetadata().descriptor;
803  }
804  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
805  return default_instance().GetMetadata().reflection;
806  }
808  return *internal_default_instance();
809  }
811  return reinterpret_cast<const RoutingSearchParameters*>(
813  }
814  static constexpr int kIndexInFileMessages =
815  2;
816 
818  a.Swap(&b);
819  }
820  inline void Swap(RoutingSearchParameters* other) {
821  if (other == this) return;
822  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
823  if (GetOwningArena() != nullptr &&
824  GetOwningArena() == other->GetOwningArena()) {
825  #else // PROTOBUF_FORCE_COPY_IN_SWAP
826  if (GetOwningArena() == other->GetOwningArena()) {
827  #endif // !PROTOBUF_FORCE_COPY_IN_SWAP
828  InternalSwap(other);
829  } else {
830  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
831  }
832  }
834  if (other == this) return;
835  GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
836  InternalSwap(other);
837  }
838 
839  // implements Message ----------------------------------------------
840 
841  RoutingSearchParameters* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
842  return CreateMaybeMessage<RoutingSearchParameters>(arena);
843  }
844  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
845  void CopyFrom(const RoutingSearchParameters& from);
846  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
847  void MergeFrom(const RoutingSearchParameters& from);
848  private:
849  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
850  public:
851  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
852  bool IsInitialized() const final;
853 
854  size_t ByteSizeLong() const final;
855  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
856  uint8_t* _InternalSerialize(
857  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
858  int GetCachedSize() const final { return _cached_size_.Get(); }
859 
860  private:
861  void SharedCtor();
862  void SharedDtor();
863  void SetCachedSize(int size) const final;
864  void InternalSwap(RoutingSearchParameters* other);
865 
866  private:
867  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
868  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
869  return "operations_research.RoutingSearchParameters";
870  }
871  protected:
872  explicit RoutingSearchParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena,
873  bool is_message_owned = false);
874  private:
875  static void ArenaDtor(void* object);
876  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
877  public:
878 
879  static const ClassData _class_data_;
880  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
881 
882  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
883 
884  // nested types ----------------------------------------------------
885 
888 
890  static constexpr SchedulingSolver UNSET =
892  static constexpr SchedulingSolver GLOP =
894  static constexpr SchedulingSolver CP_SAT =
896  static inline bool SchedulingSolver_IsValid(int value) {
898  }
899  static constexpr SchedulingSolver SchedulingSolver_MIN =
901  static constexpr SchedulingSolver SchedulingSolver_MAX =
903  static constexpr int SchedulingSolver_ARRAYSIZE =
905  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
908  }
909  template<typename T>
910  static inline const std::string& SchedulingSolver_Name(T enum_t_value) {
911  static_assert(::std::is_same<T, SchedulingSolver>::value ||
912  ::std::is_integral<T>::value,
913  "Incorrect type passed to function SchedulingSolver_Name.");
915  }
916  static inline bool SchedulingSolver_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
917  SchedulingSolver* value) {
919  }
920 
921  // accessors -------------------------------------------------------
922 
923  enum : int {
924  kLogTagFieldNumber = 36,
925  kLocalSearchOperatorsFieldNumber = 3,
926  kTimeLimitFieldNumber = 9,
927  kLnsTimeLimitFieldNumber = 10,
928  kImprovementLimitParametersFieldNumber = 37,
929  kSatParametersFieldNumber = 48,
930  kFirstSolutionStrategyFieldNumber = 1,
931  kLocalSearchMetaheuristicFieldNumber = 4,
932  kGuidedLocalSearchLambdaCoefficientFieldNumber = 5,
933  kOptimizationStepFieldNumber = 7,
934  kSolutionLimitFieldNumber = 8,
935  kUseFullPropagationFieldNumber = 11,
936  kLogSearchFieldNumber = 13,
937  kNumberOfSolutionsToCollectFieldNumber = 17,
938  kSavingsNeighborsRatioFieldNumber = 14,
939  kCheapestInsertionFarthestSeedsRatioFieldNumber = 16,
940  kSavingsArcCoefficientFieldNumber = 18,
941  kRelocateExpensiveChainNumArcsToConsiderFieldNumber = 20,
942  kUseUnfilteredFirstSolutionStrategyFieldNumber = 2,
943  kSavingsAddReverseArcsFieldNumber = 15,
944  kSavingsParallelRoutesFieldNumber = 19,
945  kCheapestInsertionFirstSolutionUseNeighborsRatioForInitializationFieldNumber = 46,
946  kCheapestInsertionFirstSolutionNeighborsRatioFieldNumber = 21,
947  kLogCostScalingFactorFieldNumber = 22,
948  kSavingsMaxMemoryUsageBytesFieldNumber = 23,
949  kUseCpSatFieldNumber = 27,
950  kUseCpFieldNumber = 28,
951  kLogCostOffsetFieldNumber = 29,
952  kCheapestInsertionAddUnperformedEntriesFieldNumber = 40,
953  kChristofidesUseMinimumMatchingFieldNumber = 30,
954  kUseMultiArmedBanditConcatenateOperatorsFieldNumber = 41,
955  kUseDepthFirstSearchFieldNumber = 6,
956  kHeuristicExpensiveChainLnsNumArcsToConsiderFieldNumber = 32,
957  kCheapestInsertionLsOperatorNeighborsRatioFieldNumber = 31,
958  kContinuousSchedulingSolverFieldNumber = 33,
959  kMixedIntegerSchedulingSolverFieldNumber = 34,
960  kHeuristicCloseNodesLnsNumNodesFieldNumber = 35,
961  kCheapestInsertionFirstSolutionMinNeighborsFieldNumber = 44,
962  kMultiArmedBanditCompoundOperatorMemoryCoefficientFieldNumber = 42,
963  kMultiArmedBanditCompoundOperatorExplorationCoefficientFieldNumber = 43,
964  kCheapestInsertionLsOperatorMinNeighborsFieldNumber = 45,
965  kUseGeneralizedCpSatFieldNumber = 47,
966  };
967  // string log_tag = 36;
968  void clear_log_tag();
969  const std::string& log_tag() const;
970  template <typename ArgT0 = const std::string&, typename... ArgT>
971  void set_log_tag(ArgT0&& arg0, ArgT... args);
972  std::string* mutable_log_tag();
973  PROTOBUF_NODISCARD std::string* release_log_tag();
974  void set_allocated_log_tag(std::string* log_tag);
975  private:
976  const std::string& _internal_log_tag() const;
977  inline PROTOBUF_ALWAYS_INLINE void _internal_set_log_tag(const std::string& value);
978  std::string* _internal_mutable_log_tag();
979  public:
980 
981  // .operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators = 3;
982  bool has_local_search_operators() const;
983  private:
984  bool _internal_has_local_search_operators() const;
985  public:
986  void clear_local_search_operators();
987  const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators& local_search_operators() const;
988  PROTOBUF_NODISCARD ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* release_local_search_operators();
990  void set_allocated_local_search_operators(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* local_search_operators);
991  private:
992  const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators& _internal_local_search_operators() const;
994  public:
995  void unsafe_arena_set_allocated_local_search_operators(
997  ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* unsafe_arena_release_local_search_operators();
998 
999  // .google.protobuf.Duration time_limit = 9;
1000  bool has_time_limit() const;
1001  private:
1002  bool _internal_has_time_limit() const;
1003  public:
1004  void clear_time_limit();
1005  const ::PROTOBUF_NAMESPACE_ID::Duration& time_limit() const;
1006  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Duration* release_time_limit();
1007  ::PROTOBUF_NAMESPACE_ID::Duration* mutable_time_limit();
1008  void set_allocated_time_limit(::PROTOBUF_NAMESPACE_ID::Duration* time_limit);
1009  private:
1010  const ::PROTOBUF_NAMESPACE_ID::Duration& _internal_time_limit() const;
1011  ::PROTOBUF_NAMESPACE_ID::Duration* _internal_mutable_time_limit();
1012  public:
1013  void unsafe_arena_set_allocated_time_limit(
1014  ::PROTOBUF_NAMESPACE_ID::Duration* time_limit);
1015  ::PROTOBUF_NAMESPACE_ID::Duration* unsafe_arena_release_time_limit();
1016 
1017  // .google.protobuf.Duration lns_time_limit = 10;
1018  bool has_lns_time_limit() const;
1019  private:
1020  bool _internal_has_lns_time_limit() const;
1021  public:
1022  void clear_lns_time_limit();
1023  const ::PROTOBUF_NAMESPACE_ID::Duration& lns_time_limit() const;
1024  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Duration* release_lns_time_limit();
1025  ::PROTOBUF_NAMESPACE_ID::Duration* mutable_lns_time_limit();
1026  void set_allocated_lns_time_limit(::PROTOBUF_NAMESPACE_ID::Duration* lns_time_limit);
1027  private:
1028  const ::PROTOBUF_NAMESPACE_ID::Duration& _internal_lns_time_limit() const;
1029  ::PROTOBUF_NAMESPACE_ID::Duration* _internal_mutable_lns_time_limit();
1030  public:
1031  void unsafe_arena_set_allocated_lns_time_limit(
1032  ::PROTOBUF_NAMESPACE_ID::Duration* lns_time_limit);
1033  ::PROTOBUF_NAMESPACE_ID::Duration* unsafe_arena_release_lns_time_limit();
1034 
1035  // .operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters improvement_limit_parameters = 37;
1036  bool has_improvement_limit_parameters() const;
1037  private:
1038  bool _internal_has_improvement_limit_parameters() const;
1039  public:
1040  void clear_improvement_limit_parameters();
1041  const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters& improvement_limit_parameters() const;
1042  PROTOBUF_NODISCARD ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* release_improvement_limit_parameters();
1044  void set_allocated_improvement_limit_parameters(::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* improvement_limit_parameters);
1045  private:
1046  const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters& _internal_improvement_limit_parameters() const;
1047  ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* _internal_mutable_improvement_limit_parameters();
1048  public:
1049  void unsafe_arena_set_allocated_improvement_limit_parameters(
1051  ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* unsafe_arena_release_improvement_limit_parameters();
1052 
1053  // .operations_research.sat.SatParameters sat_parameters = 48;
1054  bool has_sat_parameters() const;
1055  private:
1056  bool _internal_has_sat_parameters() const;
1057  public:
1058  void clear_sat_parameters();
1059  const ::operations_research::sat::SatParameters& sat_parameters() const;
1060  PROTOBUF_NODISCARD ::operations_research::sat::SatParameters* release_sat_parameters();
1061  ::operations_research::sat::SatParameters* mutable_sat_parameters();
1062  void set_allocated_sat_parameters(::operations_research::sat::SatParameters* sat_parameters);
1063  private:
1064  const ::operations_research::sat::SatParameters& _internal_sat_parameters() const;
1065  ::operations_research::sat::SatParameters* _internal_mutable_sat_parameters();
1066  public:
1067  void unsafe_arena_set_allocated_sat_parameters(
1068  ::operations_research::sat::SatParameters* sat_parameters);
1069  ::operations_research::sat::SatParameters* unsafe_arena_release_sat_parameters();
1070 
1071  // .operations_research.FirstSolutionStrategy.Value first_solution_strategy = 1;
1072  void clear_first_solution_strategy();
1073  ::operations_research::FirstSolutionStrategy_Value first_solution_strategy() const;
1074  void set_first_solution_strategy(::operations_research::FirstSolutionStrategy_Value value);
1075  private:
1076  ::operations_research::FirstSolutionStrategy_Value _internal_first_solution_strategy() const;
1077  void _internal_set_first_solution_strategy(::operations_research::FirstSolutionStrategy_Value value);
1078  public:
1079 
1080  // .operations_research.LocalSearchMetaheuristic.Value local_search_metaheuristic = 4;
1081  void clear_local_search_metaheuristic();
1082  ::operations_research::LocalSearchMetaheuristic_Value local_search_metaheuristic() const;
1083  void set_local_search_metaheuristic(::operations_research::LocalSearchMetaheuristic_Value value);
1084  private:
1085  ::operations_research::LocalSearchMetaheuristic_Value _internal_local_search_metaheuristic() const;
1086  void _internal_set_local_search_metaheuristic(::operations_research::LocalSearchMetaheuristic_Value value);
1087  public:
1088 
1089  // double guided_local_search_lambda_coefficient = 5;
1090  void clear_guided_local_search_lambda_coefficient();
1091  double guided_local_search_lambda_coefficient() const;
1092  void set_guided_local_search_lambda_coefficient(double value);
1093  private:
1094  double _internal_guided_local_search_lambda_coefficient() const;
1095  void _internal_set_guided_local_search_lambda_coefficient(double value);
1096  public:
1097 
1098  // double optimization_step = 7;
1099  void clear_optimization_step();
1100  double optimization_step() const;
1101  void set_optimization_step(double value);
1102  private:
1103  double _internal_optimization_step() const;
1104  void _internal_set_optimization_step(double value);
1105  public:
1106 
1107  // int64 solution_limit = 8;
1108  void clear_solution_limit();
1109  int64_t solution_limit() const;
1110  void set_solution_limit(int64_t value);
1111  private:
1112  int64_t _internal_solution_limit() const;
1113  void _internal_set_solution_limit(int64_t value);
1114  public:
1115 
1116  // bool use_full_propagation = 11;
1117  void clear_use_full_propagation();
1118  bool use_full_propagation() const;
1119  void set_use_full_propagation(bool value);
1120  private:
1121  bool _internal_use_full_propagation() const;
1122  void _internal_set_use_full_propagation(bool value);
1123  public:
1124 
1125  // bool log_search = 13;
1126  void clear_log_search();
1127  bool log_search() const;
1128  void set_log_search(bool value);
1129  private:
1130  bool _internal_log_search() const;
1131  void _internal_set_log_search(bool value);
1132  public:
1133 
1134  // int32 number_of_solutions_to_collect = 17;
1135  void clear_number_of_solutions_to_collect();
1136  int32_t number_of_solutions_to_collect() const;
1137  void set_number_of_solutions_to_collect(int32_t value);
1138  private:
1139  int32_t _internal_number_of_solutions_to_collect() const;
1140  void _internal_set_number_of_solutions_to_collect(int32_t value);
1141  public:
1142 
1143  // double savings_neighbors_ratio = 14;
1144  void clear_savings_neighbors_ratio();
1145  double savings_neighbors_ratio() const;
1146  void set_savings_neighbors_ratio(double value);
1147  private:
1148  double _internal_savings_neighbors_ratio() const;
1149  void _internal_set_savings_neighbors_ratio(double value);
1150  public:
1151 
1152  // double cheapest_insertion_farthest_seeds_ratio = 16;
1153  void clear_cheapest_insertion_farthest_seeds_ratio();
1154  double cheapest_insertion_farthest_seeds_ratio() const;
1155  void set_cheapest_insertion_farthest_seeds_ratio(double value);
1156  private:
1157  double _internal_cheapest_insertion_farthest_seeds_ratio() const;
1158  void _internal_set_cheapest_insertion_farthest_seeds_ratio(double value);
1159  public:
1160 
1161  // double savings_arc_coefficient = 18;
1162  void clear_savings_arc_coefficient();
1163  double savings_arc_coefficient() const;
1164  void set_savings_arc_coefficient(double value);
1165  private:
1166  double _internal_savings_arc_coefficient() const;
1167  void _internal_set_savings_arc_coefficient(double value);
1168  public:
1169 
1170  // int32 relocate_expensive_chain_num_arcs_to_consider = 20;
1171  void clear_relocate_expensive_chain_num_arcs_to_consider();
1172  int32_t relocate_expensive_chain_num_arcs_to_consider() const;
1173  void set_relocate_expensive_chain_num_arcs_to_consider(int32_t value);
1174  private:
1175  int32_t _internal_relocate_expensive_chain_num_arcs_to_consider() const;
1176  void _internal_set_relocate_expensive_chain_num_arcs_to_consider(int32_t value);
1177  public:
1178 
1179  // bool use_unfiltered_first_solution_strategy = 2;
1180  void clear_use_unfiltered_first_solution_strategy();
1181  bool use_unfiltered_first_solution_strategy() const;
1182  void set_use_unfiltered_first_solution_strategy(bool value);
1183  private:
1184  bool _internal_use_unfiltered_first_solution_strategy() const;
1185  void _internal_set_use_unfiltered_first_solution_strategy(bool value);
1186  public:
1187 
1188  // bool savings_add_reverse_arcs = 15;
1189  void clear_savings_add_reverse_arcs();
1190  bool savings_add_reverse_arcs() const;
1191  void set_savings_add_reverse_arcs(bool value);
1192  private:
1193  bool _internal_savings_add_reverse_arcs() const;
1194  void _internal_set_savings_add_reverse_arcs(bool value);
1195  public:
1196 
1197  // bool savings_parallel_routes = 19;
1198  void clear_savings_parallel_routes();
1199  bool savings_parallel_routes() const;
1200  void set_savings_parallel_routes(bool value);
1201  private:
1202  bool _internal_savings_parallel_routes() const;
1203  void _internal_set_savings_parallel_routes(bool value);
1204  public:
1205 
1206  // bool cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization = 46;
1207  void clear_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization();
1208  bool cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() const;
1209  void set_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(bool value);
1210  private:
1211  bool _internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() const;
1212  void _internal_set_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(bool value);
1213  public:
1214 
1215  // double cheapest_insertion_first_solution_neighbors_ratio = 21;
1216  void clear_cheapest_insertion_first_solution_neighbors_ratio();
1217  double cheapest_insertion_first_solution_neighbors_ratio() const;
1218  void set_cheapest_insertion_first_solution_neighbors_ratio(double value);
1219  private:
1220  double _internal_cheapest_insertion_first_solution_neighbors_ratio() const;
1221  void _internal_set_cheapest_insertion_first_solution_neighbors_ratio(double value);
1222  public:
1223 
1224  // double log_cost_scaling_factor = 22;
1225  void clear_log_cost_scaling_factor();
1226  double log_cost_scaling_factor() const;
1227  void set_log_cost_scaling_factor(double value);
1228  private:
1229  double _internal_log_cost_scaling_factor() const;
1230  void _internal_set_log_cost_scaling_factor(double value);
1231  public:
1232 
1233  // double savings_max_memory_usage_bytes = 23;
1234  void clear_savings_max_memory_usage_bytes();
1235  double savings_max_memory_usage_bytes() const;
1236  void set_savings_max_memory_usage_bytes(double value);
1237  private:
1238  double _internal_savings_max_memory_usage_bytes() const;
1239  void _internal_set_savings_max_memory_usage_bytes(double value);
1240  public:
1241 
1242  // .operations_research.OptionalBoolean use_cp_sat = 27;
1243  void clear_use_cp_sat();
1244  ::operations_research::OptionalBoolean use_cp_sat() const;
1245  void set_use_cp_sat(::operations_research::OptionalBoolean value);
1246  private:
1247  ::operations_research::OptionalBoolean _internal_use_cp_sat() const;
1248  void _internal_set_use_cp_sat(::operations_research::OptionalBoolean value);
1249  public:
1250 
1251  // .operations_research.OptionalBoolean use_cp = 28;
1252  void clear_use_cp();
1253  ::operations_research::OptionalBoolean use_cp() const;
1254  void set_use_cp(::operations_research::OptionalBoolean value);
1255  private:
1256  ::operations_research::OptionalBoolean _internal_use_cp() const;
1257  void _internal_set_use_cp(::operations_research::OptionalBoolean value);
1258  public:
1259 
1260  // double log_cost_offset = 29;
1261  void clear_log_cost_offset();
1262  double log_cost_offset() const;
1263  void set_log_cost_offset(double value);
1264  private:
1265  double _internal_log_cost_offset() const;
1266  void _internal_set_log_cost_offset(double value);
1267  public:
1268 
1269  // bool cheapest_insertion_add_unperformed_entries = 40;
1270  void clear_cheapest_insertion_add_unperformed_entries();
1271  bool cheapest_insertion_add_unperformed_entries() const;
1272  void set_cheapest_insertion_add_unperformed_entries(bool value);
1273  private:
1274  bool _internal_cheapest_insertion_add_unperformed_entries() const;
1275  void _internal_set_cheapest_insertion_add_unperformed_entries(bool value);
1276  public:
1277 
1278  // bool christofides_use_minimum_matching = 30;
1279  void clear_christofides_use_minimum_matching();
1280  bool christofides_use_minimum_matching() const;
1281  void set_christofides_use_minimum_matching(bool value);
1282  private:
1283  bool _internal_christofides_use_minimum_matching() const;
1284  void _internal_set_christofides_use_minimum_matching(bool value);
1285  public:
1286 
1287  // bool use_multi_armed_bandit_concatenate_operators = 41;
1288  void clear_use_multi_armed_bandit_concatenate_operators();
1289  bool use_multi_armed_bandit_concatenate_operators() const;
1290  void set_use_multi_armed_bandit_concatenate_operators(bool value);
1291  private:
1292  bool _internal_use_multi_armed_bandit_concatenate_operators() const;
1293  void _internal_set_use_multi_armed_bandit_concatenate_operators(bool value);
1294  public:
1295 
1296  // bool use_depth_first_search = 6;
1297  void clear_use_depth_first_search();
1298  bool use_depth_first_search() const;
1299  void set_use_depth_first_search(bool value);
1300  private:
1301  bool _internal_use_depth_first_search() const;
1302  void _internal_set_use_depth_first_search(bool value);
1303  public:
1304 
1305  // int32 heuristic_expensive_chain_lns_num_arcs_to_consider = 32;
1306  void clear_heuristic_expensive_chain_lns_num_arcs_to_consider();
1307  int32_t heuristic_expensive_chain_lns_num_arcs_to_consider() const;
1308  void set_heuristic_expensive_chain_lns_num_arcs_to_consider(int32_t value);
1309  private:
1310  int32_t _internal_heuristic_expensive_chain_lns_num_arcs_to_consider() const;
1311  void _internal_set_heuristic_expensive_chain_lns_num_arcs_to_consider(int32_t value);
1312  public:
1313 
1314  // double cheapest_insertion_ls_operator_neighbors_ratio = 31;
1315  void clear_cheapest_insertion_ls_operator_neighbors_ratio();
1316  double cheapest_insertion_ls_operator_neighbors_ratio() const;
1317  void set_cheapest_insertion_ls_operator_neighbors_ratio(double value);
1318  private:
1319  double _internal_cheapest_insertion_ls_operator_neighbors_ratio() const;
1320  void _internal_set_cheapest_insertion_ls_operator_neighbors_ratio(double value);
1321  public:
1322 
1323  // .operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
1324  void clear_continuous_scheduling_solver();
1325  ::operations_research::RoutingSearchParameters_SchedulingSolver continuous_scheduling_solver() const;
1326  void set_continuous_scheduling_solver(::operations_research::RoutingSearchParameters_SchedulingSolver value);
1327  private:
1328  ::operations_research::RoutingSearchParameters_SchedulingSolver _internal_continuous_scheduling_solver() const;
1329  void _internal_set_continuous_scheduling_solver(::operations_research::RoutingSearchParameters_SchedulingSolver value);
1330  public:
1331 
1332  // .operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
1333  void clear_mixed_integer_scheduling_solver();
1334  ::operations_research::RoutingSearchParameters_SchedulingSolver mixed_integer_scheduling_solver() const;
1335  void set_mixed_integer_scheduling_solver(::operations_research::RoutingSearchParameters_SchedulingSolver value);
1336  private:
1337  ::operations_research::RoutingSearchParameters_SchedulingSolver _internal_mixed_integer_scheduling_solver() const;
1338  void _internal_set_mixed_integer_scheduling_solver(::operations_research::RoutingSearchParameters_SchedulingSolver value);
1339  public:
1340 
1341  // int32 heuristic_close_nodes_lns_num_nodes = 35;
1342  void clear_heuristic_close_nodes_lns_num_nodes();
1343  int32_t heuristic_close_nodes_lns_num_nodes() const;
1344  void set_heuristic_close_nodes_lns_num_nodes(int32_t value);
1345  private:
1346  int32_t _internal_heuristic_close_nodes_lns_num_nodes() const;
1347  void _internal_set_heuristic_close_nodes_lns_num_nodes(int32_t value);
1348  public:
1349 
1350  // int32 cheapest_insertion_first_solution_min_neighbors = 44;
1351  void clear_cheapest_insertion_first_solution_min_neighbors();
1352  int32_t cheapest_insertion_first_solution_min_neighbors() const;
1353  void set_cheapest_insertion_first_solution_min_neighbors(int32_t value);
1354  private:
1355  int32_t _internal_cheapest_insertion_first_solution_min_neighbors() const;
1356  void _internal_set_cheapest_insertion_first_solution_min_neighbors(int32_t value);
1357  public:
1358 
1359  // double multi_armed_bandit_compound_operator_memory_coefficient = 42;
1360  void clear_multi_armed_bandit_compound_operator_memory_coefficient();
1361  double multi_armed_bandit_compound_operator_memory_coefficient() const;
1362  void set_multi_armed_bandit_compound_operator_memory_coefficient(double value);
1363  private:
1364  double _internal_multi_armed_bandit_compound_operator_memory_coefficient() const;
1365  void _internal_set_multi_armed_bandit_compound_operator_memory_coefficient(double value);
1366  public:
1367 
1368  // double multi_armed_bandit_compound_operator_exploration_coefficient = 43;
1369  void clear_multi_armed_bandit_compound_operator_exploration_coefficient();
1370  double multi_armed_bandit_compound_operator_exploration_coefficient() const;
1371  void set_multi_armed_bandit_compound_operator_exploration_coefficient(double value);
1372  private:
1373  double _internal_multi_armed_bandit_compound_operator_exploration_coefficient() const;
1374  void _internal_set_multi_armed_bandit_compound_operator_exploration_coefficient(double value);
1375  public:
1376 
1377  // int32 cheapest_insertion_ls_operator_min_neighbors = 45;
1378  void clear_cheapest_insertion_ls_operator_min_neighbors();
1379  int32_t cheapest_insertion_ls_operator_min_neighbors() const;
1380  void set_cheapest_insertion_ls_operator_min_neighbors(int32_t value);
1381  private:
1382  int32_t _internal_cheapest_insertion_ls_operator_min_neighbors() const;
1383  void _internal_set_cheapest_insertion_ls_operator_min_neighbors(int32_t value);
1384  public:
1385 
1386  // .operations_research.OptionalBoolean use_generalized_cp_sat = 47;
1387  void clear_use_generalized_cp_sat();
1388  ::operations_research::OptionalBoolean use_generalized_cp_sat() const;
1389  void set_use_generalized_cp_sat(::operations_research::OptionalBoolean value);
1390  private:
1391  ::operations_research::OptionalBoolean _internal_use_generalized_cp_sat() const;
1392  void _internal_set_use_generalized_cp_sat(::operations_research::OptionalBoolean value);
1393  public:
1394 
1395  // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters)
1396  private:
1397  class _Internal;
1398 
1399  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1400  typedef void InternalArenaConstructable_;
1401  typedef void DestructorSkippable_;
1402  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr log_tag_;
1404  ::PROTOBUF_NAMESPACE_ID::Duration* time_limit_;
1405  ::PROTOBUF_NAMESPACE_ID::Duration* lns_time_limit_;
1407  ::operations_research::sat::SatParameters* sat_parameters_;
1408  int first_solution_strategy_;
1409  int local_search_metaheuristic_;
1410  double guided_local_search_lambda_coefficient_;
1411  double optimization_step_;
1412  int64_t solution_limit_;
1413  bool use_full_propagation_;
1414  bool log_search_;
1415  int32_t number_of_solutions_to_collect_;
1416  double savings_neighbors_ratio_;
1417  double cheapest_insertion_farthest_seeds_ratio_;
1418  double savings_arc_coefficient_;
1419  int32_t relocate_expensive_chain_num_arcs_to_consider_;
1420  bool use_unfiltered_first_solution_strategy_;
1421  bool savings_add_reverse_arcs_;
1422  bool savings_parallel_routes_;
1423  bool cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_;
1424  double cheapest_insertion_first_solution_neighbors_ratio_;
1425  double log_cost_scaling_factor_;
1426  double savings_max_memory_usage_bytes_;
1427  int use_cp_sat_;
1428  int use_cp_;
1429  double log_cost_offset_;
1430  bool cheapest_insertion_add_unperformed_entries_;
1431  bool christofides_use_minimum_matching_;
1432  bool use_multi_armed_bandit_concatenate_operators_;
1433  bool use_depth_first_search_;
1434  int32_t heuristic_expensive_chain_lns_num_arcs_to_consider_;
1435  double cheapest_insertion_ls_operator_neighbors_ratio_;
1436  int continuous_scheduling_solver_;
1437  int mixed_integer_scheduling_solver_;
1438  int32_t heuristic_close_nodes_lns_num_nodes_;
1439  int32_t cheapest_insertion_first_solution_min_neighbors_;
1440  double multi_armed_bandit_compound_operator_memory_coefficient_;
1441  double multi_armed_bandit_compound_operator_exploration_coefficient_;
1442  int32_t cheapest_insertion_ls_operator_min_neighbors_;
1443  int use_generalized_cp_sat_;
1444  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1445  friend struct ::TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto;
1446 };
1447 // -------------------------------------------------------------------
1448 
1450  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.RoutingModelParameters) */ {
1451  public:
1453  ~RoutingModelParameters() override;
1454  explicit constexpr RoutingModelParameters(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
1455 
1459  *this = ::std::move(from);
1460  }
1461 
1463  CopyFrom(from);
1464  return *this;
1465  }
1467  if (this == &from) return *this;
1468  if (GetOwningArena() == from.GetOwningArena()
1469  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
1470  && GetOwningArena() != nullptr
1471  #endif // !PROTOBUF_FORCE_COPY_IN_MOVE
1472  ) {
1473  InternalSwap(&from);
1474  } else {
1475  CopyFrom(from);
1476  }
1477  return *this;
1478  }
1479 
1480  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
1481  return GetDescriptor();
1482  }
1483  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
1484  return default_instance().GetMetadata().descriptor;
1485  }
1486  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
1487  return default_instance().GetMetadata().reflection;
1488  }
1490  return *internal_default_instance();
1491  }
1493  return reinterpret_cast<const RoutingModelParameters*>(
1495  }
1496  static constexpr int kIndexInFileMessages =
1497  3;
1498 
1500  a.Swap(&b);
1501  }
1502  inline void Swap(RoutingModelParameters* other) {
1503  if (other == this) return;
1504  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
1505  if (GetOwningArena() != nullptr &&
1506  GetOwningArena() == other->GetOwningArena()) {
1507  #else // PROTOBUF_FORCE_COPY_IN_SWAP
1508  if (GetOwningArena() == other->GetOwningArena()) {
1509  #endif // !PROTOBUF_FORCE_COPY_IN_SWAP
1510  InternalSwap(other);
1511  } else {
1512  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1513  }
1514  }
1516  if (other == this) return;
1517  GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
1518  InternalSwap(other);
1519  }
1520 
1521  // implements Message ----------------------------------------------
1522 
1523  RoutingModelParameters* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
1524  return CreateMaybeMessage<RoutingModelParameters>(arena);
1525  }
1526  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
1527  void CopyFrom(const RoutingModelParameters& from);
1528  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
1529  void MergeFrom(const RoutingModelParameters& from);
1530  private:
1531  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
1532  public:
1533  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1534  bool IsInitialized() const final;
1535 
1536  size_t ByteSizeLong() const final;
1537  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1538  uint8_t* _InternalSerialize(
1539  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1540  int GetCachedSize() const final { return _cached_size_.Get(); }
1541 
1542  private:
1543  void SharedCtor();
1544  void SharedDtor();
1545  void SetCachedSize(int size) const final;
1546  void InternalSwap(RoutingModelParameters* other);
1547 
1548  private:
1549  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1550  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1551  return "operations_research.RoutingModelParameters";
1552  }
1553  protected:
1554  explicit RoutingModelParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1555  bool is_message_owned = false);
1556  private:
1557  static void ArenaDtor(void* object);
1558  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1559  public:
1560 
1561  static const ClassData _class_data_;
1562  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
1563 
1564  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1565 
1566  // nested types ----------------------------------------------------
1567 
1568  // accessors -------------------------------------------------------
1569 
1570  enum : int {
1571  kSolverParametersFieldNumber = 1,
1572  kReduceVehicleCostModelFieldNumber = 2,
1573  kMaxCallbackCacheSizeFieldNumber = 3,
1574  };
1575  // .operations_research.ConstraintSolverParameters solver_parameters = 1;
1576  bool has_solver_parameters() const;
1577  private:
1578  bool _internal_has_solver_parameters() const;
1579  public:
1580  void clear_solver_parameters();
1581  const ::operations_research::ConstraintSolverParameters& solver_parameters() const;
1582  PROTOBUF_NODISCARD ::operations_research::ConstraintSolverParameters* release_solver_parameters();
1583  ::operations_research::ConstraintSolverParameters* mutable_solver_parameters();
1584  void set_allocated_solver_parameters(::operations_research::ConstraintSolverParameters* solver_parameters);
1585  private:
1586  const ::operations_research::ConstraintSolverParameters& _internal_solver_parameters() const;
1587  ::operations_research::ConstraintSolverParameters* _internal_mutable_solver_parameters();
1588  public:
1589  void unsafe_arena_set_allocated_solver_parameters(
1591  ::operations_research::ConstraintSolverParameters* unsafe_arena_release_solver_parameters();
1592 
1593  // bool reduce_vehicle_cost_model = 2;
1594  void clear_reduce_vehicle_cost_model();
1595  bool reduce_vehicle_cost_model() const;
1596  void set_reduce_vehicle_cost_model(bool value);
1597  private:
1598  bool _internal_reduce_vehicle_cost_model() const;
1599  void _internal_set_reduce_vehicle_cost_model(bool value);
1600  public:
1601 
1602  // int32 max_callback_cache_size = 3;
1603  void clear_max_callback_cache_size();
1604  int32_t max_callback_cache_size() const;
1605  void set_max_callback_cache_size(int32_t value);
1606  private:
1607  int32_t _internal_max_callback_cache_size() const;
1608  void _internal_set_max_callback_cache_size(int32_t value);
1609  public:
1610 
1611  // @@protoc_insertion_point(class_scope:operations_research.RoutingModelParameters)
1612  private:
1613  class _Internal;
1614 
1615  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1616  typedef void InternalArenaConstructable_;
1617  typedef void DestructorSkippable_;
1619  bool reduce_vehicle_cost_model_;
1620  int32_t max_callback_cache_size_;
1621  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1622  friend struct ::TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto;
1623 };
1624 // ===================================================================
1625 
1626 
1627 // ===================================================================
1628 
1629 #ifdef __GNUC__
1630  #pragma GCC diagnostic push
1631  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
1632 #endif // __GNUC__
1633 // RoutingSearchParameters_LocalSearchNeighborhoodOperators
1634 
1635 // .operations_research.OptionalBoolean use_relocate = 1;
1637  use_relocate_ = 0;
1638 }
1639 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate() const {
1640  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_);
1641 }
1642 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_relocate() const {
1643  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate)
1644  return _internal_use_relocate();
1645 }
1646 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate(::operations_research::OptionalBoolean value) {
1647 
1648  use_relocate_ = value;
1649 }
1650 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_relocate(::operations_research::OptionalBoolean value) {
1651  _internal_set_use_relocate(value);
1652  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate)
1653 }
1654 
1655 // .operations_research.OptionalBoolean use_relocate_pair = 2;
1657  use_relocate_pair_ = 0;
1658 }
1659 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate_pair() const {
1660  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_pair_);
1661 }
1662 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_relocate_pair() const {
1663  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_pair)
1664  return _internal_use_relocate_pair();
1665 }
1666 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate_pair(::operations_research::OptionalBoolean value) {
1667 
1668  use_relocate_pair_ = value;
1669 }
1670 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_relocate_pair(::operations_research::OptionalBoolean value) {
1671  _internal_set_use_relocate_pair(value);
1672  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_pair)
1673 }
1674 
1675 // .operations_research.OptionalBoolean use_light_relocate_pair = 24;
1677  use_light_relocate_pair_ = 0;
1678 }
1679 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_light_relocate_pair() const {
1680  return static_cast< ::operations_research::OptionalBoolean >(use_light_relocate_pair_);
1681 }
1682 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_light_relocate_pair() const {
1683  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_light_relocate_pair)
1684  return _internal_use_light_relocate_pair();
1685 }
1686 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_light_relocate_pair(::operations_research::OptionalBoolean value) {
1687 
1688  use_light_relocate_pair_ = value;
1689 }
1690 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_light_relocate_pair(::operations_research::OptionalBoolean value) {
1691  _internal_set_use_light_relocate_pair(value);
1692  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_light_relocate_pair)
1693 }
1694 
1695 // .operations_research.OptionalBoolean use_relocate_neighbors = 3;
1697  use_relocate_neighbors_ = 0;
1698 }
1699 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate_neighbors() const {
1700  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_neighbors_);
1701 }
1702 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_relocate_neighbors() const {
1703  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_neighbors)
1704  return _internal_use_relocate_neighbors();
1705 }
1706 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate_neighbors(::operations_research::OptionalBoolean value) {
1707 
1708  use_relocate_neighbors_ = value;
1709 }
1710 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_relocate_neighbors(::operations_research::OptionalBoolean value) {
1711  _internal_set_use_relocate_neighbors(value);
1712  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_neighbors)
1713 }
1714 
1715 // .operations_research.OptionalBoolean use_relocate_subtrip = 25;
1717  use_relocate_subtrip_ = 0;
1718 }
1719 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate_subtrip() const {
1720  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_subtrip_);
1721 }
1722 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_relocate_subtrip() const {
1723  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_subtrip)
1724  return _internal_use_relocate_subtrip();
1725 }
1726 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate_subtrip(::operations_research::OptionalBoolean value) {
1727 
1728  use_relocate_subtrip_ = value;
1729 }
1730 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_relocate_subtrip(::operations_research::OptionalBoolean value) {
1731  _internal_set_use_relocate_subtrip(value);
1732  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_subtrip)
1733 }
1734 
1735 // .operations_research.OptionalBoolean use_exchange = 4;
1737  use_exchange_ = 0;
1738 }
1739 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_exchange() const {
1740  return static_cast< ::operations_research::OptionalBoolean >(use_exchange_);
1741 }
1742 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_exchange() const {
1743  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_exchange)
1744  return _internal_use_exchange();
1745 }
1746 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_exchange(::operations_research::OptionalBoolean value) {
1747 
1748  use_exchange_ = value;
1749 }
1750 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_exchange(::operations_research::OptionalBoolean value) {
1751  _internal_set_use_exchange(value);
1752  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_exchange)
1753 }
1754 
1755 // .operations_research.OptionalBoolean use_exchange_pair = 22;
1757  use_exchange_pair_ = 0;
1758 }
1759 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_exchange_pair() const {
1760  return static_cast< ::operations_research::OptionalBoolean >(use_exchange_pair_);
1761 }
1762 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_exchange_pair() const {
1763  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_exchange_pair)
1764  return _internal_use_exchange_pair();
1765 }
1766 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_exchange_pair(::operations_research::OptionalBoolean value) {
1767 
1768  use_exchange_pair_ = value;
1769 }
1770 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_exchange_pair(::operations_research::OptionalBoolean value) {
1771  _internal_set_use_exchange_pair(value);
1772  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_exchange_pair)
1773 }
1774 
1775 // .operations_research.OptionalBoolean use_exchange_subtrip = 26;
1777  use_exchange_subtrip_ = 0;
1778 }
1779 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_exchange_subtrip() const {
1780  return static_cast< ::operations_research::OptionalBoolean >(use_exchange_subtrip_);
1781 }
1782 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_exchange_subtrip() const {
1783  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_exchange_subtrip)
1784  return _internal_use_exchange_subtrip();
1785 }
1786 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_exchange_subtrip(::operations_research::OptionalBoolean value) {
1787 
1788  use_exchange_subtrip_ = value;
1789 }
1790 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_exchange_subtrip(::operations_research::OptionalBoolean value) {
1791  _internal_set_use_exchange_subtrip(value);
1792  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_exchange_subtrip)
1793 }
1794 
1795 // .operations_research.OptionalBoolean use_cross = 5;
1797  use_cross_ = 0;
1798 }
1799 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_cross() const {
1800  return static_cast< ::operations_research::OptionalBoolean >(use_cross_);
1801 }
1802 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_cross() const {
1803  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_cross)
1804  return _internal_use_cross();
1805 }
1806 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_cross(::operations_research::OptionalBoolean value) {
1807 
1808  use_cross_ = value;
1809 }
1810 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_cross(::operations_research::OptionalBoolean value) {
1811  _internal_set_use_cross(value);
1812  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_cross)
1813 }
1814 
1815 // .operations_research.OptionalBoolean use_cross_exchange = 6;
1817  use_cross_exchange_ = 0;
1818 }
1819 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_cross_exchange() const {
1820  return static_cast< ::operations_research::OptionalBoolean >(use_cross_exchange_);
1821 }
1822 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_cross_exchange() const {
1823  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_cross_exchange)
1824  return _internal_use_cross_exchange();
1825 }
1826 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_cross_exchange(::operations_research::OptionalBoolean value) {
1827 
1828  use_cross_exchange_ = value;
1829 }
1830 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_cross_exchange(::operations_research::OptionalBoolean value) {
1831  _internal_set_use_cross_exchange(value);
1832  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_cross_exchange)
1833 }
1834 
1835 // .operations_research.OptionalBoolean use_relocate_expensive_chain = 23;
1837  use_relocate_expensive_chain_ = 0;
1838 }
1839 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate_expensive_chain() const {
1840  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_expensive_chain_);
1841 }
1843  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_expensive_chain)
1844  return _internal_use_relocate_expensive_chain();
1845 }
1846 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate_expensive_chain(::operations_research::OptionalBoolean value) {
1847 
1848  use_relocate_expensive_chain_ = value;
1849 }
1851  _internal_set_use_relocate_expensive_chain(value);
1852  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_expensive_chain)
1853 }
1854 
1855 // .operations_research.OptionalBoolean use_two_opt = 7;
1857  use_two_opt_ = 0;
1858 }
1859 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_two_opt() const {
1860  return static_cast< ::operations_research::OptionalBoolean >(use_two_opt_);
1861 }
1862 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_two_opt() const {
1863  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_two_opt)
1864  return _internal_use_two_opt();
1865 }
1866 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_two_opt(::operations_research::OptionalBoolean value) {
1867 
1868  use_two_opt_ = value;
1869 }
1870 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_two_opt(::operations_research::OptionalBoolean value) {
1871  _internal_set_use_two_opt(value);
1872  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_two_opt)
1873 }
1874 
1875 // .operations_research.OptionalBoolean use_or_opt = 8;
1877  use_or_opt_ = 0;
1878 }
1879 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_or_opt() const {
1880  return static_cast< ::operations_research::OptionalBoolean >(use_or_opt_);
1881 }
1882 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_or_opt() const {
1883  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_or_opt)
1884  return _internal_use_or_opt();
1885 }
1886 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_or_opt(::operations_research::OptionalBoolean value) {
1887 
1888  use_or_opt_ = value;
1889 }
1890 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_or_opt(::operations_research::OptionalBoolean value) {
1891  _internal_set_use_or_opt(value);
1892  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_or_opt)
1893 }
1894 
1895 // .operations_research.OptionalBoolean use_lin_kernighan = 9;
1897  use_lin_kernighan_ = 0;
1898 }
1899 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_lin_kernighan() const {
1900  return static_cast< ::operations_research::OptionalBoolean >(use_lin_kernighan_);
1901 }
1902 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_lin_kernighan() const {
1903  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_lin_kernighan)
1904  return _internal_use_lin_kernighan();
1905 }
1906 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_lin_kernighan(::operations_research::OptionalBoolean value) {
1907 
1908  use_lin_kernighan_ = value;
1909 }
1910 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_lin_kernighan(::operations_research::OptionalBoolean value) {
1911  _internal_set_use_lin_kernighan(value);
1912  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_lin_kernighan)
1913 }
1914 
1915 // .operations_research.OptionalBoolean use_tsp_opt = 10;
1917  use_tsp_opt_ = 0;
1918 }
1919 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_tsp_opt() const {
1920  return static_cast< ::operations_research::OptionalBoolean >(use_tsp_opt_);
1921 }
1922 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_tsp_opt() const {
1923  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_tsp_opt)
1924  return _internal_use_tsp_opt();
1925 }
1926 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_tsp_opt(::operations_research::OptionalBoolean value) {
1927 
1928  use_tsp_opt_ = value;
1929 }
1930 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_tsp_opt(::operations_research::OptionalBoolean value) {
1931  _internal_set_use_tsp_opt(value);
1932  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_tsp_opt)
1933 }
1934 
1935 // .operations_research.OptionalBoolean use_make_active = 11;
1937  use_make_active_ = 0;
1938 }
1939 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_make_active() const {
1940  return static_cast< ::operations_research::OptionalBoolean >(use_make_active_);
1941 }
1942 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_make_active() const {
1943  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_make_active)
1944  return _internal_use_make_active();
1945 }
1946 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_make_active(::operations_research::OptionalBoolean value) {
1947 
1948  use_make_active_ = value;
1949 }
1950 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_make_active(::operations_research::OptionalBoolean value) {
1951  _internal_set_use_make_active(value);
1952  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_make_active)
1953 }
1954 
1955 // .operations_research.OptionalBoolean use_relocate_and_make_active = 21;
1957  use_relocate_and_make_active_ = 0;
1958 }
1959 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate_and_make_active() const {
1960  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_and_make_active_);
1961 }
1963  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_and_make_active)
1964  return _internal_use_relocate_and_make_active();
1965 }
1966 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate_and_make_active(::operations_research::OptionalBoolean value) {
1967 
1968  use_relocate_and_make_active_ = value;
1969 }
1971  _internal_set_use_relocate_and_make_active(value);
1972  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_and_make_active)
1973 }
1974 
1975 // .operations_research.OptionalBoolean use_make_inactive = 12;
1977  use_make_inactive_ = 0;
1978 }
1979 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_make_inactive() const {
1980  return static_cast< ::operations_research::OptionalBoolean >(use_make_inactive_);
1981 }
1982 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_make_inactive() const {
1983  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_make_inactive)
1984  return _internal_use_make_inactive();
1985 }
1986 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_make_inactive(::operations_research::OptionalBoolean value) {
1987 
1988  use_make_inactive_ = value;
1989 }
1990 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_make_inactive(::operations_research::OptionalBoolean value) {
1991  _internal_set_use_make_inactive(value);
1992  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_make_inactive)
1993 }
1994 
1995 // .operations_research.OptionalBoolean use_make_chain_inactive = 13;
1997  use_make_chain_inactive_ = 0;
1998 }
1999 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_make_chain_inactive() const {
2000  return static_cast< ::operations_research::OptionalBoolean >(use_make_chain_inactive_);
2001 }
2002 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_make_chain_inactive() const {
2003  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_make_chain_inactive)
2004  return _internal_use_make_chain_inactive();
2005 }
2006 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_make_chain_inactive(::operations_research::OptionalBoolean value) {
2007 
2008  use_make_chain_inactive_ = value;
2009 }
2010 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_make_chain_inactive(::operations_research::OptionalBoolean value) {
2011  _internal_set_use_make_chain_inactive(value);
2012  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_make_chain_inactive)
2013 }
2014 
2015 // .operations_research.OptionalBoolean use_swap_active = 14;
2017  use_swap_active_ = 0;
2018 }
2019 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_swap_active() const {
2020  return static_cast< ::operations_research::OptionalBoolean >(use_swap_active_);
2021 }
2022 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_swap_active() const {
2023  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_swap_active)
2024  return _internal_use_swap_active();
2025 }
2026 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_swap_active(::operations_research::OptionalBoolean value) {
2027 
2028  use_swap_active_ = value;
2029 }
2030 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_swap_active(::operations_research::OptionalBoolean value) {
2031  _internal_set_use_swap_active(value);
2032  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_swap_active)
2033 }
2034 
2035 // .operations_research.OptionalBoolean use_extended_swap_active = 15;
2037  use_extended_swap_active_ = 0;
2038 }
2039 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_extended_swap_active() const {
2040  return static_cast< ::operations_research::OptionalBoolean >(use_extended_swap_active_);
2041 }
2042 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_extended_swap_active() const {
2043  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_extended_swap_active)
2044  return _internal_use_extended_swap_active();
2045 }
2046 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_extended_swap_active(::operations_research::OptionalBoolean value) {
2047 
2048  use_extended_swap_active_ = value;
2049 }
2050 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_extended_swap_active(::operations_research::OptionalBoolean value) {
2051  _internal_set_use_extended_swap_active(value);
2052  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_extended_swap_active)
2053 }
2054 
2055 // .operations_research.OptionalBoolean use_node_pair_swap_active = 20;
2057  use_node_pair_swap_active_ = 0;
2058 }
2059 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_node_pair_swap_active() const {
2060  return static_cast< ::operations_research::OptionalBoolean >(use_node_pair_swap_active_);
2061 }
2063  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_node_pair_swap_active)
2064  return _internal_use_node_pair_swap_active();
2065 }
2066 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_node_pair_swap_active(::operations_research::OptionalBoolean value) {
2067 
2068  use_node_pair_swap_active_ = value;
2069 }
2070 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_node_pair_swap_active(::operations_research::OptionalBoolean value) {
2071  _internal_set_use_node_pair_swap_active(value);
2072  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_node_pair_swap_active)
2073 }
2074 
2075 // .operations_research.OptionalBoolean use_path_lns = 16;
2077  use_path_lns_ = 0;
2078 }
2079 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_path_lns() const {
2080  return static_cast< ::operations_research::OptionalBoolean >(use_path_lns_);
2081 }
2082 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_path_lns() const {
2083  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_path_lns)
2084  return _internal_use_path_lns();
2085 }
2086 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_path_lns(::operations_research::OptionalBoolean value) {
2087 
2088  use_path_lns_ = value;
2089 }
2090 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_path_lns(::operations_research::OptionalBoolean value) {
2091  _internal_set_use_path_lns(value);
2092  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_path_lns)
2093 }
2094 
2095 // .operations_research.OptionalBoolean use_full_path_lns = 17;
2097  use_full_path_lns_ = 0;
2098 }
2099 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_full_path_lns() const {
2100  return static_cast< ::operations_research::OptionalBoolean >(use_full_path_lns_);
2101 }
2102 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_full_path_lns() const {
2103  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_full_path_lns)
2104  return _internal_use_full_path_lns();
2105 }
2106 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_full_path_lns(::operations_research::OptionalBoolean value) {
2107 
2108  use_full_path_lns_ = value;
2109 }
2110 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_full_path_lns(::operations_research::OptionalBoolean value) {
2111  _internal_set_use_full_path_lns(value);
2112  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_full_path_lns)
2113 }
2114 
2115 // .operations_research.OptionalBoolean use_tsp_lns = 18;
2117  use_tsp_lns_ = 0;
2118 }
2119 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_tsp_lns() const {
2120  return static_cast< ::operations_research::OptionalBoolean >(use_tsp_lns_);
2121 }
2122 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_tsp_lns() const {
2123  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_tsp_lns)
2124  return _internal_use_tsp_lns();
2125 }
2126 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_tsp_lns(::operations_research::OptionalBoolean value) {
2127 
2128  use_tsp_lns_ = value;
2129 }
2130 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_tsp_lns(::operations_research::OptionalBoolean value) {
2131  _internal_set_use_tsp_lns(value);
2132  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_tsp_lns)
2133 }
2134 
2135 // .operations_research.OptionalBoolean use_inactive_lns = 19;
2137  use_inactive_lns_ = 0;
2138 }
2139 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_inactive_lns() const {
2140  return static_cast< ::operations_research::OptionalBoolean >(use_inactive_lns_);
2141 }
2142 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_inactive_lns() const {
2143  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_inactive_lns)
2144  return _internal_use_inactive_lns();
2145 }
2146 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_inactive_lns(::operations_research::OptionalBoolean value) {
2147 
2148  use_inactive_lns_ = value;
2149 }
2150 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::set_use_inactive_lns(::operations_research::OptionalBoolean value) {
2151  _internal_set_use_inactive_lns(value);
2152  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_inactive_lns)
2153 }
2154 
2155 // .operations_research.OptionalBoolean use_global_cheapest_insertion_path_lns = 27;
2157  use_global_cheapest_insertion_path_lns_ = 0;
2158 }
2159 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_global_cheapest_insertion_path_lns() const {
2160  return static_cast< ::operations_research::OptionalBoolean >(use_global_cheapest_insertion_path_lns_);
2161 }
2163  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_global_cheapest_insertion_path_lns)
2164  return _internal_use_global_cheapest_insertion_path_lns();
2165 }
2166 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_global_cheapest_insertion_path_lns(::operations_research::OptionalBoolean value) {
2167 
2168  use_global_cheapest_insertion_path_lns_ = value;
2169 }
2171  _internal_set_use_global_cheapest_insertion_path_lns(value);
2172  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_global_cheapest_insertion_path_lns)
2173 }
2174 
2175 // .operations_research.OptionalBoolean use_local_cheapest_insertion_path_lns = 28;
2177  use_local_cheapest_insertion_path_lns_ = 0;
2178 }
2179 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_local_cheapest_insertion_path_lns() const {
2180  return static_cast< ::operations_research::OptionalBoolean >(use_local_cheapest_insertion_path_lns_);
2181 }
2183  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_local_cheapest_insertion_path_lns)
2184  return _internal_use_local_cheapest_insertion_path_lns();
2185 }
2186 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_local_cheapest_insertion_path_lns(::operations_research::OptionalBoolean value) {
2187 
2188  use_local_cheapest_insertion_path_lns_ = value;
2189 }
2191  _internal_set_use_local_cheapest_insertion_path_lns(value);
2192  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_local_cheapest_insertion_path_lns)
2193 }
2194 
2195 // .operations_research.OptionalBoolean use_relocate_path_global_cheapest_insertion_insert_unperformed = 33;
2197  use_relocate_path_global_cheapest_insertion_insert_unperformed_ = 0;
2198 }
2199 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() const {
2200  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_path_global_cheapest_insertion_insert_unperformed_);
2201 }
2203  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_path_global_cheapest_insertion_insert_unperformed)
2204  return _internal_use_relocate_path_global_cheapest_insertion_insert_unperformed();
2205 }
2206 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate_path_global_cheapest_insertion_insert_unperformed(::operations_research::OptionalBoolean value) {
2207 
2208  use_relocate_path_global_cheapest_insertion_insert_unperformed_ = value;
2209 }
2211  _internal_set_use_relocate_path_global_cheapest_insertion_insert_unperformed(value);
2212  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_path_global_cheapest_insertion_insert_unperformed)
2213 }
2214 
2215 // .operations_research.OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns = 29;
2217  use_global_cheapest_insertion_expensive_chain_lns_ = 0;
2218 }
2219 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_global_cheapest_insertion_expensive_chain_lns() const {
2220  return static_cast< ::operations_research::OptionalBoolean >(use_global_cheapest_insertion_expensive_chain_lns_);
2221 }
2223  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_global_cheapest_insertion_expensive_chain_lns)
2224  return _internal_use_global_cheapest_insertion_expensive_chain_lns();
2225 }
2226 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_global_cheapest_insertion_expensive_chain_lns(::operations_research::OptionalBoolean value) {
2227 
2228  use_global_cheapest_insertion_expensive_chain_lns_ = value;
2229 }
2231  _internal_set_use_global_cheapest_insertion_expensive_chain_lns(value);
2232  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_global_cheapest_insertion_expensive_chain_lns)
2233 }
2234 
2235 // .operations_research.OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns = 30;
2237  use_local_cheapest_insertion_expensive_chain_lns_ = 0;
2238 }
2239 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_local_cheapest_insertion_expensive_chain_lns() const {
2240  return static_cast< ::operations_research::OptionalBoolean >(use_local_cheapest_insertion_expensive_chain_lns_);
2241 }
2243  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_local_cheapest_insertion_expensive_chain_lns)
2244  return _internal_use_local_cheapest_insertion_expensive_chain_lns();
2245 }
2246 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_local_cheapest_insertion_expensive_chain_lns(::operations_research::OptionalBoolean value) {
2247 
2248  use_local_cheapest_insertion_expensive_chain_lns_ = value;
2249 }
2251  _internal_set_use_local_cheapest_insertion_expensive_chain_lns(value);
2252  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_local_cheapest_insertion_expensive_chain_lns)
2253 }
2254 
2255 // .operations_research.OptionalBoolean use_global_cheapest_insertion_close_nodes_lns = 31;
2257  use_global_cheapest_insertion_close_nodes_lns_ = 0;
2258 }
2259 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_global_cheapest_insertion_close_nodes_lns() const {
2260  return static_cast< ::operations_research::OptionalBoolean >(use_global_cheapest_insertion_close_nodes_lns_);
2261 }
2263  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_global_cheapest_insertion_close_nodes_lns)
2264  return _internal_use_global_cheapest_insertion_close_nodes_lns();
2265 }
2266 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_global_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value) {
2267 
2268  use_global_cheapest_insertion_close_nodes_lns_ = value;
2269 }
2271  _internal_set_use_global_cheapest_insertion_close_nodes_lns(value);
2272  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_global_cheapest_insertion_close_nodes_lns)
2273 }
2274 
2275 // .operations_research.OptionalBoolean use_local_cheapest_insertion_close_nodes_lns = 32;
2277  use_local_cheapest_insertion_close_nodes_lns_ = 0;
2278 }
2279 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_local_cheapest_insertion_close_nodes_lns() const {
2280  return static_cast< ::operations_research::OptionalBoolean >(use_local_cheapest_insertion_close_nodes_lns_);
2281 }
2283  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_local_cheapest_insertion_close_nodes_lns)
2284  return _internal_use_local_cheapest_insertion_close_nodes_lns();
2285 }
2286 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_local_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value) {
2287 
2288  use_local_cheapest_insertion_close_nodes_lns_ = value;
2289 }
2291  _internal_set_use_local_cheapest_insertion_close_nodes_lns(value);
2292  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_local_cheapest_insertion_close_nodes_lns)
2293 }
2294 
2295 // -------------------------------------------------------------------
2296 
2297 // RoutingSearchParameters_ImprovementSearchLimitParameters
2298 
2299 // double improvement_rate_coefficient = 38;
2301  improvement_rate_coefficient_ = 0;
2302 }
2303 inline double RoutingSearchParameters_ImprovementSearchLimitParameters::_internal_improvement_rate_coefficient() const {
2304  return improvement_rate_coefficient_;
2305 }
2307  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters.improvement_rate_coefficient)
2308  return _internal_improvement_rate_coefficient();
2309 }
2310 inline void RoutingSearchParameters_ImprovementSearchLimitParameters::_internal_set_improvement_rate_coefficient(double value) {
2311 
2312  improvement_rate_coefficient_ = value;
2313 }
2315  _internal_set_improvement_rate_coefficient(value);
2316  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters.improvement_rate_coefficient)
2317 }
2318 
2319 // int32 improvement_rate_solutions_distance = 39;
2321  improvement_rate_solutions_distance_ = 0;
2322 }
2323 inline int32_t RoutingSearchParameters_ImprovementSearchLimitParameters::_internal_improvement_rate_solutions_distance() const {
2324  return improvement_rate_solutions_distance_;
2325 }
2327  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters.improvement_rate_solutions_distance)
2328  return _internal_improvement_rate_solutions_distance();
2329 }
2330 inline void RoutingSearchParameters_ImprovementSearchLimitParameters::_internal_set_improvement_rate_solutions_distance(int32_t value) {
2331 
2332  improvement_rate_solutions_distance_ = value;
2333 }
2335  _internal_set_improvement_rate_solutions_distance(value);
2336  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters.improvement_rate_solutions_distance)
2337 }
2338 
2339 // -------------------------------------------------------------------
2340 
2341 // RoutingSearchParameters
2342 
2343 // .operations_research.FirstSolutionStrategy.Value first_solution_strategy = 1;
2345  first_solution_strategy_ = 0;
2346 }
2347 inline ::operations_research::FirstSolutionStrategy_Value RoutingSearchParameters::_internal_first_solution_strategy() const {
2348  return static_cast< ::operations_research::FirstSolutionStrategy_Value >(first_solution_strategy_);
2349 }
2351  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.first_solution_strategy)
2352  return _internal_first_solution_strategy();
2353 }
2354 inline void RoutingSearchParameters::_internal_set_first_solution_strategy(::operations_research::FirstSolutionStrategy_Value value) {
2355 
2356  first_solution_strategy_ = value;
2357 }
2359  _internal_set_first_solution_strategy(value);
2360  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.first_solution_strategy)
2361 }
2362 
2363 // bool use_unfiltered_first_solution_strategy = 2;
2365  use_unfiltered_first_solution_strategy_ = false;
2366 }
2367 inline bool RoutingSearchParameters::_internal_use_unfiltered_first_solution_strategy() const {
2368  return use_unfiltered_first_solution_strategy_;
2369 }
2371  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_unfiltered_first_solution_strategy)
2372  return _internal_use_unfiltered_first_solution_strategy();
2373 }
2374 inline void RoutingSearchParameters::_internal_set_use_unfiltered_first_solution_strategy(bool value) {
2375 
2376  use_unfiltered_first_solution_strategy_ = value;
2377 }
2379  _internal_set_use_unfiltered_first_solution_strategy(value);
2380  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_unfiltered_first_solution_strategy)
2381 }
2382 
2383 // double savings_neighbors_ratio = 14;
2385  savings_neighbors_ratio_ = 0;
2386 }
2387 inline double RoutingSearchParameters::_internal_savings_neighbors_ratio() const {
2388  return savings_neighbors_ratio_;
2389 }
2391  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.savings_neighbors_ratio)
2392  return _internal_savings_neighbors_ratio();
2393 }
2394 inline void RoutingSearchParameters::_internal_set_savings_neighbors_ratio(double value) {
2395 
2396  savings_neighbors_ratio_ = value;
2397 }
2399  _internal_set_savings_neighbors_ratio(value);
2400  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.savings_neighbors_ratio)
2401 }
2402 
2403 // double savings_max_memory_usage_bytes = 23;
2405  savings_max_memory_usage_bytes_ = 0;
2406 }
2407 inline double RoutingSearchParameters::_internal_savings_max_memory_usage_bytes() const {
2408  return savings_max_memory_usage_bytes_;
2409 }
2411  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.savings_max_memory_usage_bytes)
2412  return _internal_savings_max_memory_usage_bytes();
2413 }
2414 inline void RoutingSearchParameters::_internal_set_savings_max_memory_usage_bytes(double value) {
2415 
2416  savings_max_memory_usage_bytes_ = value;
2417 }
2419  _internal_set_savings_max_memory_usage_bytes(value);
2420  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.savings_max_memory_usage_bytes)
2421 }
2422 
2423 // bool savings_add_reverse_arcs = 15;
2425  savings_add_reverse_arcs_ = false;
2426 }
2427 inline bool RoutingSearchParameters::_internal_savings_add_reverse_arcs() const {
2428  return savings_add_reverse_arcs_;
2429 }
2431  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.savings_add_reverse_arcs)
2432  return _internal_savings_add_reverse_arcs();
2433 }
2434 inline void RoutingSearchParameters::_internal_set_savings_add_reverse_arcs(bool value) {
2435 
2436  savings_add_reverse_arcs_ = value;
2437 }
2439  _internal_set_savings_add_reverse_arcs(value);
2440  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.savings_add_reverse_arcs)
2441 }
2442 
2443 // double savings_arc_coefficient = 18;
2445  savings_arc_coefficient_ = 0;
2446 }
2447 inline double RoutingSearchParameters::_internal_savings_arc_coefficient() const {
2448  return savings_arc_coefficient_;
2449 }
2451  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.savings_arc_coefficient)
2452  return _internal_savings_arc_coefficient();
2453 }
2454 inline void RoutingSearchParameters::_internal_set_savings_arc_coefficient(double value) {
2455 
2456  savings_arc_coefficient_ = value;
2457 }
2459  _internal_set_savings_arc_coefficient(value);
2460  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.savings_arc_coefficient)
2461 }
2462 
2463 // bool savings_parallel_routes = 19;
2465  savings_parallel_routes_ = false;
2466 }
2467 inline bool RoutingSearchParameters::_internal_savings_parallel_routes() const {
2468  return savings_parallel_routes_;
2469 }
2471  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.savings_parallel_routes)
2472  return _internal_savings_parallel_routes();
2473 }
2474 inline void RoutingSearchParameters::_internal_set_savings_parallel_routes(bool value) {
2475 
2476  savings_parallel_routes_ = value;
2477 }
2479  _internal_set_savings_parallel_routes(value);
2480  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.savings_parallel_routes)
2481 }
2482 
2483 // double cheapest_insertion_farthest_seeds_ratio = 16;
2485  cheapest_insertion_farthest_seeds_ratio_ = 0;
2486 }
2487 inline double RoutingSearchParameters::_internal_cheapest_insertion_farthest_seeds_ratio() const {
2488  return cheapest_insertion_farthest_seeds_ratio_;
2489 }
2491  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_farthest_seeds_ratio)
2492  return _internal_cheapest_insertion_farthest_seeds_ratio();
2493 }
2494 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_farthest_seeds_ratio(double value) {
2495 
2496  cheapest_insertion_farthest_seeds_ratio_ = value;
2497 }
2499  _internal_set_cheapest_insertion_farthest_seeds_ratio(value);
2500  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_farthest_seeds_ratio)
2501 }
2502 
2503 // double cheapest_insertion_first_solution_neighbors_ratio = 21;
2505  cheapest_insertion_first_solution_neighbors_ratio_ = 0;
2506 }
2507 inline double RoutingSearchParameters::_internal_cheapest_insertion_first_solution_neighbors_ratio() const {
2508  return cheapest_insertion_first_solution_neighbors_ratio_;
2509 }
2511  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_first_solution_neighbors_ratio)
2512  return _internal_cheapest_insertion_first_solution_neighbors_ratio();
2513 }
2514 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_first_solution_neighbors_ratio(double value) {
2515 
2516  cheapest_insertion_first_solution_neighbors_ratio_ = value;
2517 }
2519  _internal_set_cheapest_insertion_first_solution_neighbors_ratio(value);
2520  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_first_solution_neighbors_ratio)
2521 }
2522 
2523 // int32 cheapest_insertion_first_solution_min_neighbors = 44;
2525  cheapest_insertion_first_solution_min_neighbors_ = 0;
2526 }
2527 inline int32_t RoutingSearchParameters::_internal_cheapest_insertion_first_solution_min_neighbors() const {
2528  return cheapest_insertion_first_solution_min_neighbors_;
2529 }
2531  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_first_solution_min_neighbors)
2532  return _internal_cheapest_insertion_first_solution_min_neighbors();
2533 }
2534 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_first_solution_min_neighbors(int32_t value) {
2535 
2536  cheapest_insertion_first_solution_min_neighbors_ = value;
2537 }
2539  _internal_set_cheapest_insertion_first_solution_min_neighbors(value);
2540  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_first_solution_min_neighbors)
2541 }
2542 
2543 // double cheapest_insertion_ls_operator_neighbors_ratio = 31;
2545  cheapest_insertion_ls_operator_neighbors_ratio_ = 0;
2546 }
2547 inline double RoutingSearchParameters::_internal_cheapest_insertion_ls_operator_neighbors_ratio() const {
2548  return cheapest_insertion_ls_operator_neighbors_ratio_;
2549 }
2551  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_ls_operator_neighbors_ratio)
2552  return _internal_cheapest_insertion_ls_operator_neighbors_ratio();
2553 }
2554 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_ls_operator_neighbors_ratio(double value) {
2555 
2556  cheapest_insertion_ls_operator_neighbors_ratio_ = value;
2557 }
2559  _internal_set_cheapest_insertion_ls_operator_neighbors_ratio(value);
2560  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_ls_operator_neighbors_ratio)
2561 }
2562 
2563 // int32 cheapest_insertion_ls_operator_min_neighbors = 45;
2565  cheapest_insertion_ls_operator_min_neighbors_ = 0;
2566 }
2567 inline int32_t RoutingSearchParameters::_internal_cheapest_insertion_ls_operator_min_neighbors() const {
2568  return cheapest_insertion_ls_operator_min_neighbors_;
2569 }
2571  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_ls_operator_min_neighbors)
2572  return _internal_cheapest_insertion_ls_operator_min_neighbors();
2573 }
2574 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_ls_operator_min_neighbors(int32_t value) {
2575 
2576  cheapest_insertion_ls_operator_min_neighbors_ = value;
2577 }
2579  _internal_set_cheapest_insertion_ls_operator_min_neighbors(value);
2580  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_ls_operator_min_neighbors)
2581 }
2582 
2583 // bool cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization = 46;
2585  cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_ = false;
2586 }
2587 inline bool RoutingSearchParameters::_internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() const {
2588  return cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_;
2589 }
2591  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization)
2592  return _internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization();
2593 }
2594 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(bool value) {
2595 
2596  cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_ = value;
2597 }
2599  _internal_set_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(value);
2600  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization)
2601 }
2602 
2603 // bool cheapest_insertion_add_unperformed_entries = 40;
2605  cheapest_insertion_add_unperformed_entries_ = false;
2606 }
2607 inline bool RoutingSearchParameters::_internal_cheapest_insertion_add_unperformed_entries() const {
2608  return cheapest_insertion_add_unperformed_entries_;
2609 }
2611  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_add_unperformed_entries)
2612  return _internal_cheapest_insertion_add_unperformed_entries();
2613 }
2614 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_add_unperformed_entries(bool value) {
2615 
2616  cheapest_insertion_add_unperformed_entries_ = value;
2617 }
2619  _internal_set_cheapest_insertion_add_unperformed_entries(value);
2620  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_add_unperformed_entries)
2621 }
2622 
2623 // bool christofides_use_minimum_matching = 30;
2625  christofides_use_minimum_matching_ = false;
2626 }
2627 inline bool RoutingSearchParameters::_internal_christofides_use_minimum_matching() const {
2628  return christofides_use_minimum_matching_;
2629 }
2631  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.christofides_use_minimum_matching)
2632  return _internal_christofides_use_minimum_matching();
2633 }
2634 inline void RoutingSearchParameters::_internal_set_christofides_use_minimum_matching(bool value) {
2635 
2636  christofides_use_minimum_matching_ = value;
2637 }
2639  _internal_set_christofides_use_minimum_matching(value);
2640  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.christofides_use_minimum_matching)
2641 }
2642 
2643 // .operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators = 3;
2644 inline bool RoutingSearchParameters::_internal_has_local_search_operators() const {
2645  return this != internal_default_instance() && local_search_operators_ != nullptr;
2646 }
2648  return _internal_has_local_search_operators();
2649 }
2651  if (GetArenaForAllocation() == nullptr && local_search_operators_ != nullptr) {
2652  delete local_search_operators_;
2653  }
2654  local_search_operators_ = nullptr;
2655 }
2656 inline const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators& RoutingSearchParameters::_internal_local_search_operators() const {
2657  const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* p = local_search_operators_;
2658  return p != nullptr ? *p : reinterpret_cast<const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators&>(
2660 }
2661 inline const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators& RoutingSearchParameters::local_search_operators() const {
2662  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.local_search_operators)
2663  return _internal_local_search_operators();
2664 }
2667  if (GetArenaForAllocation() == nullptr) {
2668  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(local_search_operators_);
2669  }
2670  local_search_operators_ = local_search_operators;
2671  if (local_search_operators) {
2672 
2673  } else {
2674 
2675  }
2676  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.RoutingSearchParameters.local_search_operators)
2677 }
2678 inline ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* RoutingSearchParameters::release_local_search_operators() {
2679 
2681  local_search_operators_ = nullptr;
2682 #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
2683  auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
2684  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2685  if (GetArenaForAllocation() == nullptr) { delete old; }
2686 #else // PROTOBUF_FORCE_COPY_IN_RELEASE
2687  if (GetArenaForAllocation() != nullptr) {
2688  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2689  }
2690 #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
2691  return temp;
2692 }
2693 inline ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* RoutingSearchParameters::unsafe_arena_release_local_search_operators() {
2694  // @@protoc_insertion_point(field_release:operations_research.RoutingSearchParameters.local_search_operators)
2695 
2697  local_search_operators_ = nullptr;
2698  return temp;
2699 }
2700 inline ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* RoutingSearchParameters::_internal_mutable_local_search_operators() {
2701 
2702  if (local_search_operators_ == nullptr) {
2703  auto* p = CreateMaybeMessage<::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators>(GetArenaForAllocation());
2704  local_search_operators_ = p;
2705  }
2706  return local_search_operators_;
2707 }
2708 inline ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* RoutingSearchParameters::mutable_local_search_operators() {
2709  ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* _msg = _internal_mutable_local_search_operators();
2710  // @@protoc_insertion_point(field_mutable:operations_research.RoutingSearchParameters.local_search_operators)
2711  return _msg;
2712 }
2714  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
2715  if (message_arena == nullptr) {
2716  delete local_search_operators_;
2717  }
2718  if (local_search_operators) {
2719  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
2720  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators>::GetOwningArena(local_search_operators);
2721  if (message_arena != submessage_arena) {
2722  local_search_operators = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
2723  message_arena, local_search_operators, submessage_arena);
2724  }
2725 
2726  } else {
2727 
2728  }
2729  local_search_operators_ = local_search_operators;
2730  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingSearchParameters.local_search_operators)
2731 }
2732 
2733 // bool use_multi_armed_bandit_concatenate_operators = 41;
2735  use_multi_armed_bandit_concatenate_operators_ = false;
2736 }
2737 inline bool RoutingSearchParameters::_internal_use_multi_armed_bandit_concatenate_operators() const {
2738  return use_multi_armed_bandit_concatenate_operators_;
2739 }
2741  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_multi_armed_bandit_concatenate_operators)
2742  return _internal_use_multi_armed_bandit_concatenate_operators();
2743 }
2744 inline void RoutingSearchParameters::_internal_set_use_multi_armed_bandit_concatenate_operators(bool value) {
2745 
2746  use_multi_armed_bandit_concatenate_operators_ = value;
2747 }
2749  _internal_set_use_multi_armed_bandit_concatenate_operators(value);
2750  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_multi_armed_bandit_concatenate_operators)
2751 }
2752 
2753 // double multi_armed_bandit_compound_operator_memory_coefficient = 42;
2755  multi_armed_bandit_compound_operator_memory_coefficient_ = 0;
2756 }
2757 inline double RoutingSearchParameters::_internal_multi_armed_bandit_compound_operator_memory_coefficient() const {
2758  return multi_armed_bandit_compound_operator_memory_coefficient_;
2759 }
2761  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.multi_armed_bandit_compound_operator_memory_coefficient)
2762  return _internal_multi_armed_bandit_compound_operator_memory_coefficient();
2763 }
2764 inline void RoutingSearchParameters::_internal_set_multi_armed_bandit_compound_operator_memory_coefficient(double value) {
2765 
2766  multi_armed_bandit_compound_operator_memory_coefficient_ = value;
2767 }
2769  _internal_set_multi_armed_bandit_compound_operator_memory_coefficient(value);
2770  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.multi_armed_bandit_compound_operator_memory_coefficient)
2771 }
2772 
2773 // double multi_armed_bandit_compound_operator_exploration_coefficient = 43;
2775  multi_armed_bandit_compound_operator_exploration_coefficient_ = 0;
2776 }
2777 inline double RoutingSearchParameters::_internal_multi_armed_bandit_compound_operator_exploration_coefficient() const {
2778  return multi_armed_bandit_compound_operator_exploration_coefficient_;
2779 }
2781  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.multi_armed_bandit_compound_operator_exploration_coefficient)
2782  return _internal_multi_armed_bandit_compound_operator_exploration_coefficient();
2783 }
2784 inline void RoutingSearchParameters::_internal_set_multi_armed_bandit_compound_operator_exploration_coefficient(double value) {
2785 
2786  multi_armed_bandit_compound_operator_exploration_coefficient_ = value;
2787 }
2789  _internal_set_multi_armed_bandit_compound_operator_exploration_coefficient(value);
2790  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.multi_armed_bandit_compound_operator_exploration_coefficient)
2791 }
2792 
2793 // int32 relocate_expensive_chain_num_arcs_to_consider = 20;
2795  relocate_expensive_chain_num_arcs_to_consider_ = 0;
2796 }
2797 inline int32_t RoutingSearchParameters::_internal_relocate_expensive_chain_num_arcs_to_consider() const {
2798  return relocate_expensive_chain_num_arcs_to_consider_;
2799 }
2801  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.relocate_expensive_chain_num_arcs_to_consider)
2802  return _internal_relocate_expensive_chain_num_arcs_to_consider();
2803 }
2804 inline void RoutingSearchParameters::_internal_set_relocate_expensive_chain_num_arcs_to_consider(int32_t value) {
2805 
2806  relocate_expensive_chain_num_arcs_to_consider_ = value;
2807 }
2809  _internal_set_relocate_expensive_chain_num_arcs_to_consider(value);
2810  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.relocate_expensive_chain_num_arcs_to_consider)
2811 }
2812 
2813 // int32 heuristic_expensive_chain_lns_num_arcs_to_consider = 32;
2815  heuristic_expensive_chain_lns_num_arcs_to_consider_ = 0;
2816 }
2817 inline int32_t RoutingSearchParameters::_internal_heuristic_expensive_chain_lns_num_arcs_to_consider() const {
2818  return heuristic_expensive_chain_lns_num_arcs_to_consider_;
2819 }
2821  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.heuristic_expensive_chain_lns_num_arcs_to_consider)
2822  return _internal_heuristic_expensive_chain_lns_num_arcs_to_consider();
2823 }
2824 inline void RoutingSearchParameters::_internal_set_heuristic_expensive_chain_lns_num_arcs_to_consider(int32_t value) {
2825 
2826  heuristic_expensive_chain_lns_num_arcs_to_consider_ = value;
2827 }
2829  _internal_set_heuristic_expensive_chain_lns_num_arcs_to_consider(value);
2830  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.heuristic_expensive_chain_lns_num_arcs_to_consider)
2831 }
2832 
2833 // int32 heuristic_close_nodes_lns_num_nodes = 35;
2835  heuristic_close_nodes_lns_num_nodes_ = 0;
2836 }
2837 inline int32_t RoutingSearchParameters::_internal_heuristic_close_nodes_lns_num_nodes() const {
2838  return heuristic_close_nodes_lns_num_nodes_;
2839 }
2841  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.heuristic_close_nodes_lns_num_nodes)
2842  return _internal_heuristic_close_nodes_lns_num_nodes();
2843 }
2844 inline void RoutingSearchParameters::_internal_set_heuristic_close_nodes_lns_num_nodes(int32_t value) {
2845 
2846  heuristic_close_nodes_lns_num_nodes_ = value;
2847 }
2849  _internal_set_heuristic_close_nodes_lns_num_nodes(value);
2850  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.heuristic_close_nodes_lns_num_nodes)
2851 }
2852 
2853 // .operations_research.LocalSearchMetaheuristic.Value local_search_metaheuristic = 4;
2855  local_search_metaheuristic_ = 0;
2856 }
2857 inline ::operations_research::LocalSearchMetaheuristic_Value RoutingSearchParameters::_internal_local_search_metaheuristic() const {
2858  return static_cast< ::operations_research::LocalSearchMetaheuristic_Value >(local_search_metaheuristic_);
2859 }
2861  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.local_search_metaheuristic)
2862  return _internal_local_search_metaheuristic();
2863 }
2864 inline void RoutingSearchParameters::_internal_set_local_search_metaheuristic(::operations_research::LocalSearchMetaheuristic_Value value) {
2865 
2866  local_search_metaheuristic_ = value;
2867 }
2869  _internal_set_local_search_metaheuristic(value);
2870  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.local_search_metaheuristic)
2871 }
2872 
2873 // double guided_local_search_lambda_coefficient = 5;
2875  guided_local_search_lambda_coefficient_ = 0;
2876 }
2877 inline double RoutingSearchParameters::_internal_guided_local_search_lambda_coefficient() const {
2878  return guided_local_search_lambda_coefficient_;
2879 }
2881  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.guided_local_search_lambda_coefficient)
2882  return _internal_guided_local_search_lambda_coefficient();
2883 }
2884 inline void RoutingSearchParameters::_internal_set_guided_local_search_lambda_coefficient(double value) {
2885 
2886  guided_local_search_lambda_coefficient_ = value;
2887 }
2889  _internal_set_guided_local_search_lambda_coefficient(value);
2890  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.guided_local_search_lambda_coefficient)
2891 }
2892 
2893 // bool use_depth_first_search = 6;
2895  use_depth_first_search_ = false;
2896 }
2897 inline bool RoutingSearchParameters::_internal_use_depth_first_search() const {
2898  return use_depth_first_search_;
2899 }
2901  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_depth_first_search)
2902  return _internal_use_depth_first_search();
2903 }
2904 inline void RoutingSearchParameters::_internal_set_use_depth_first_search(bool value) {
2905 
2906  use_depth_first_search_ = value;
2907 }
2909  _internal_set_use_depth_first_search(value);
2910  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_depth_first_search)
2911 }
2912 
2913 // .operations_research.OptionalBoolean use_cp = 28;
2915  use_cp_ = 0;
2916 }
2917 inline ::operations_research::OptionalBoolean RoutingSearchParameters::_internal_use_cp() const {
2918  return static_cast< ::operations_research::OptionalBoolean >(use_cp_);
2919 }
2920 inline ::operations_research::OptionalBoolean RoutingSearchParameters::use_cp() const {
2921  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_cp)
2922  return _internal_use_cp();
2923 }
2924 inline void RoutingSearchParameters::_internal_set_use_cp(::operations_research::OptionalBoolean value) {
2925 
2926  use_cp_ = value;
2927 }
2928 inline void RoutingSearchParameters::set_use_cp(::operations_research::OptionalBoolean value) {
2929  _internal_set_use_cp(value);
2930  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_cp)
2931 }
2932 
2933 // .operations_research.OptionalBoolean use_cp_sat = 27;
2935  use_cp_sat_ = 0;
2936 }
2937 inline ::operations_research::OptionalBoolean RoutingSearchParameters::_internal_use_cp_sat() const {
2938  return static_cast< ::operations_research::OptionalBoolean >(use_cp_sat_);
2939 }
2940 inline ::operations_research::OptionalBoolean RoutingSearchParameters::use_cp_sat() const {
2941  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_cp_sat)
2942  return _internal_use_cp_sat();
2943 }
2944 inline void RoutingSearchParameters::_internal_set_use_cp_sat(::operations_research::OptionalBoolean value) {
2945 
2946  use_cp_sat_ = value;
2947 }
2948 inline void RoutingSearchParameters::set_use_cp_sat(::operations_research::OptionalBoolean value) {
2949  _internal_set_use_cp_sat(value);
2950  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_cp_sat)
2951 }
2952 
2953 // .operations_research.OptionalBoolean use_generalized_cp_sat = 47;
2955  use_generalized_cp_sat_ = 0;
2956 }
2957 inline ::operations_research::OptionalBoolean RoutingSearchParameters::_internal_use_generalized_cp_sat() const {
2958  return static_cast< ::operations_research::OptionalBoolean >(use_generalized_cp_sat_);
2959 }
2960 inline ::operations_research::OptionalBoolean RoutingSearchParameters::use_generalized_cp_sat() const {
2961  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_generalized_cp_sat)
2962  return _internal_use_generalized_cp_sat();
2963 }
2964 inline void RoutingSearchParameters::_internal_set_use_generalized_cp_sat(::operations_research::OptionalBoolean value) {
2965 
2966  use_generalized_cp_sat_ = value;
2967 }
2968 inline void RoutingSearchParameters::set_use_generalized_cp_sat(::operations_research::OptionalBoolean value) {
2969  _internal_set_use_generalized_cp_sat(value);
2970  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_generalized_cp_sat)
2971 }
2972 
2973 // .operations_research.sat.SatParameters sat_parameters = 48;
2974 inline bool RoutingSearchParameters::_internal_has_sat_parameters() const {
2975  return this != internal_default_instance() && sat_parameters_ != nullptr;
2976 }
2978  return _internal_has_sat_parameters();
2979 }
2980 inline const ::operations_research::sat::SatParameters& RoutingSearchParameters::_internal_sat_parameters() const {
2981  const ::operations_research::sat::SatParameters* p = sat_parameters_;
2982  return p != nullptr ? *p : reinterpret_cast<const ::operations_research::sat::SatParameters&>(
2983  ::operations_research::sat::_SatParameters_default_instance_);
2984 }
2985 inline const ::operations_research::sat::SatParameters& RoutingSearchParameters::sat_parameters() const {
2986  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.sat_parameters)
2987  return _internal_sat_parameters();
2988 }
2990  ::operations_research::sat::SatParameters* sat_parameters) {
2991  if (GetArenaForAllocation() == nullptr) {
2992  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sat_parameters_);
2993  }
2994  sat_parameters_ = sat_parameters;
2995  if (sat_parameters) {
2996 
2997  } else {
2998 
2999  }
3000  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.RoutingSearchParameters.sat_parameters)
3001 }
3002 inline ::operations_research::sat::SatParameters* RoutingSearchParameters::release_sat_parameters() {
3003 
3004  ::operations_research::sat::SatParameters* temp = sat_parameters_;
3005  sat_parameters_ = nullptr;
3006 #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
3007  auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
3008  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3009  if (GetArenaForAllocation() == nullptr) { delete old; }
3010 #else // PROTOBUF_FORCE_COPY_IN_RELEASE
3011  if (GetArenaForAllocation() != nullptr) {
3012  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3013  }
3014 #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
3015  return temp;
3016 }
3017 inline ::operations_research::sat::SatParameters* RoutingSearchParameters::unsafe_arena_release_sat_parameters() {
3018  // @@protoc_insertion_point(field_release:operations_research.RoutingSearchParameters.sat_parameters)
3019 
3020  ::operations_research::sat::SatParameters* temp = sat_parameters_;
3021  sat_parameters_ = nullptr;
3022  return temp;
3023 }
3024 inline ::operations_research::sat::SatParameters* RoutingSearchParameters::_internal_mutable_sat_parameters() {
3025 
3026  if (sat_parameters_ == nullptr) {
3027  auto* p = CreateMaybeMessage<::operations_research::sat::SatParameters>(GetArenaForAllocation());
3028  sat_parameters_ = p;
3029  }
3030  return sat_parameters_;
3031 }
3032 inline ::operations_research::sat::SatParameters* RoutingSearchParameters::mutable_sat_parameters() {
3033  ::operations_research::sat::SatParameters* _msg = _internal_mutable_sat_parameters();
3034  // @@protoc_insertion_point(field_mutable:operations_research.RoutingSearchParameters.sat_parameters)
3035  return _msg;
3036 }
3037 inline void RoutingSearchParameters::set_allocated_sat_parameters(::operations_research::sat::SatParameters* sat_parameters) {
3038  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
3039  if (message_arena == nullptr) {
3040  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(sat_parameters_);
3041  }
3042  if (sat_parameters) {
3043  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3044  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<
3045  ::PROTOBUF_NAMESPACE_ID::MessageLite>::GetOwningArena(
3046  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sat_parameters));
3047  if (message_arena != submessage_arena) {
3048  sat_parameters = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3049  message_arena, sat_parameters, submessage_arena);
3050  }
3051 
3052  } else {
3053 
3054  }
3055  sat_parameters_ = sat_parameters;
3056  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingSearchParameters.sat_parameters)
3057 }
3058 
3059 // .operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
3061  continuous_scheduling_solver_ = 0;
3062 }
3063 inline ::operations_research::RoutingSearchParameters_SchedulingSolver RoutingSearchParameters::_internal_continuous_scheduling_solver() const {
3064  return static_cast< ::operations_research::RoutingSearchParameters_SchedulingSolver >(continuous_scheduling_solver_);
3065 }
3067  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.continuous_scheduling_solver)
3068  return _internal_continuous_scheduling_solver();
3069 }
3070 inline void RoutingSearchParameters::_internal_set_continuous_scheduling_solver(::operations_research::RoutingSearchParameters_SchedulingSolver value) {
3071 
3072  continuous_scheduling_solver_ = value;
3073 }
3075  _internal_set_continuous_scheduling_solver(value);
3076  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.continuous_scheduling_solver)
3077 }
3078 
3079 // .operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
3081  mixed_integer_scheduling_solver_ = 0;
3082 }
3083 inline ::operations_research::RoutingSearchParameters_SchedulingSolver RoutingSearchParameters::_internal_mixed_integer_scheduling_solver() const {
3084  return static_cast< ::operations_research::RoutingSearchParameters_SchedulingSolver >(mixed_integer_scheduling_solver_);
3085 }
3087  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.mixed_integer_scheduling_solver)
3088  return _internal_mixed_integer_scheduling_solver();
3089 }
3090 inline void RoutingSearchParameters::_internal_set_mixed_integer_scheduling_solver(::operations_research::RoutingSearchParameters_SchedulingSolver value) {
3091 
3092  mixed_integer_scheduling_solver_ = value;
3093 }
3095  _internal_set_mixed_integer_scheduling_solver(value);
3096  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.mixed_integer_scheduling_solver)
3097 }
3098 
3099 // double optimization_step = 7;
3101  optimization_step_ = 0;
3102 }
3103 inline double RoutingSearchParameters::_internal_optimization_step() const {
3104  return optimization_step_;
3105 }
3107  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.optimization_step)
3108  return _internal_optimization_step();
3109 }
3110 inline void RoutingSearchParameters::_internal_set_optimization_step(double value) {
3111 
3112  optimization_step_ = value;
3113 }
3115  _internal_set_optimization_step(value);
3116  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.optimization_step)
3117 }
3118 
3119 // int32 number_of_solutions_to_collect = 17;
3121  number_of_solutions_to_collect_ = 0;
3122 }
3123 inline int32_t RoutingSearchParameters::_internal_number_of_solutions_to_collect() const {
3124  return number_of_solutions_to_collect_;
3125 }
3127  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.number_of_solutions_to_collect)
3128  return _internal_number_of_solutions_to_collect();
3129 }
3130 inline void RoutingSearchParameters::_internal_set_number_of_solutions_to_collect(int32_t value) {
3131 
3132  number_of_solutions_to_collect_ = value;
3133 }
3135  _internal_set_number_of_solutions_to_collect(value);
3136  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.number_of_solutions_to_collect)
3137 }
3138 
3139 // int64 solution_limit = 8;
3141  solution_limit_ = int64_t{0};
3142 }
3143 inline int64_t RoutingSearchParameters::_internal_solution_limit() const {
3144  return solution_limit_;
3145 }
3147  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.solution_limit)
3148  return _internal_solution_limit();
3149 }
3150 inline void RoutingSearchParameters::_internal_set_solution_limit(int64_t value) {
3151 
3152  solution_limit_ = value;
3153 }
3155  _internal_set_solution_limit(value);
3156  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.solution_limit)
3157 }
3158 
3159 // .google.protobuf.Duration time_limit = 9;
3160 inline bool RoutingSearchParameters::_internal_has_time_limit() const {
3161  return this != internal_default_instance() && time_limit_ != nullptr;
3162 }
3164  return _internal_has_time_limit();
3165 }
3166 inline const ::PROTOBUF_NAMESPACE_ID::Duration& RoutingSearchParameters::_internal_time_limit() const {
3167  const ::PROTOBUF_NAMESPACE_ID::Duration* p = time_limit_;
3168  return p != nullptr ? *p : reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Duration&>(
3169  ::PROTOBUF_NAMESPACE_ID::_Duration_default_instance_);
3170 }
3171 inline const ::PROTOBUF_NAMESPACE_ID::Duration& RoutingSearchParameters::time_limit() const {
3172  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.time_limit)
3173  return _internal_time_limit();
3174 }
3176  ::PROTOBUF_NAMESPACE_ID::Duration* time_limit) {
3177  if (GetArenaForAllocation() == nullptr) {
3178  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(time_limit_);
3179  }
3180  time_limit_ = time_limit;
3181  if (time_limit) {
3182 
3183  } else {
3184 
3185  }
3186  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.RoutingSearchParameters.time_limit)
3187 }
3188 inline ::PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::release_time_limit() {
3189 
3190  ::PROTOBUF_NAMESPACE_ID::Duration* temp = time_limit_;
3191  time_limit_ = nullptr;
3192 #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
3193  auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
3194  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3195  if (GetArenaForAllocation() == nullptr) { delete old; }
3196 #else // PROTOBUF_FORCE_COPY_IN_RELEASE
3197  if (GetArenaForAllocation() != nullptr) {
3198  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3199  }
3200 #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
3201  return temp;
3202 }
3203 inline ::PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::unsafe_arena_release_time_limit() {
3204  // @@protoc_insertion_point(field_release:operations_research.RoutingSearchParameters.time_limit)
3205 
3206  ::PROTOBUF_NAMESPACE_ID::Duration* temp = time_limit_;
3207  time_limit_ = nullptr;
3208  return temp;
3209 }
3210 inline ::PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::_internal_mutable_time_limit() {
3211 
3212  if (time_limit_ == nullptr) {
3213  auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Duration>(GetArenaForAllocation());
3214  time_limit_ = p;
3215  }
3216  return time_limit_;
3217 }
3218 inline ::PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::mutable_time_limit() {
3219  ::PROTOBUF_NAMESPACE_ID::Duration* _msg = _internal_mutable_time_limit();
3220  // @@protoc_insertion_point(field_mutable:operations_research.RoutingSearchParameters.time_limit)
3221  return _msg;
3222 }
3223 inline void RoutingSearchParameters::set_allocated_time_limit(::PROTOBUF_NAMESPACE_ID::Duration* time_limit) {
3224  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
3225  if (message_arena == nullptr) {
3226  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(time_limit_);
3227  }
3228  if (time_limit) {
3229  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3230  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<
3231  ::PROTOBUF_NAMESPACE_ID::MessageLite>::GetOwningArena(
3232  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(time_limit));
3233  if (message_arena != submessage_arena) {
3234  time_limit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3235  message_arena, time_limit, submessage_arena);
3236  }
3237 
3238  } else {
3239 
3240  }
3241  time_limit_ = time_limit;
3242  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingSearchParameters.time_limit)
3243 }
3244 
3245 // .google.protobuf.Duration lns_time_limit = 10;
3246 inline bool RoutingSearchParameters::_internal_has_lns_time_limit() const {
3247  return this != internal_default_instance() && lns_time_limit_ != nullptr;
3248 }
3250  return _internal_has_lns_time_limit();
3251 }
3252 inline const ::PROTOBUF_NAMESPACE_ID::Duration& RoutingSearchParameters::_internal_lns_time_limit() const {
3253  const ::PROTOBUF_NAMESPACE_ID::Duration* p = lns_time_limit_;
3254  return p != nullptr ? *p : reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Duration&>(
3255  ::PROTOBUF_NAMESPACE_ID::_Duration_default_instance_);
3256 }
3257 inline const ::PROTOBUF_NAMESPACE_ID::Duration& RoutingSearchParameters::lns_time_limit() const {
3258  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.lns_time_limit)
3259  return _internal_lns_time_limit();
3260 }
3262  ::PROTOBUF_NAMESPACE_ID::Duration* lns_time_limit) {
3263  if (GetArenaForAllocation() == nullptr) {
3264  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(lns_time_limit_);
3265  }
3266  lns_time_limit_ = lns_time_limit;
3267  if (lns_time_limit) {
3268 
3269  } else {
3270 
3271  }
3272  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.RoutingSearchParameters.lns_time_limit)
3273 }
3274 inline ::PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::release_lns_time_limit() {
3275 
3276  ::PROTOBUF_NAMESPACE_ID::Duration* temp = lns_time_limit_;
3277  lns_time_limit_ = nullptr;
3278 #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
3279  auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
3280  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3281  if (GetArenaForAllocation() == nullptr) { delete old; }
3282 #else // PROTOBUF_FORCE_COPY_IN_RELEASE
3283  if (GetArenaForAllocation() != nullptr) {
3284  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3285  }
3286 #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
3287  return temp;
3288 }
3289 inline ::PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::unsafe_arena_release_lns_time_limit() {
3290  // @@protoc_insertion_point(field_release:operations_research.RoutingSearchParameters.lns_time_limit)
3291 
3292  ::PROTOBUF_NAMESPACE_ID::Duration* temp = lns_time_limit_;
3293  lns_time_limit_ = nullptr;
3294  return temp;
3295 }
3296 inline ::PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::_internal_mutable_lns_time_limit() {
3297 
3298  if (lns_time_limit_ == nullptr) {
3299  auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Duration>(GetArenaForAllocation());
3300  lns_time_limit_ = p;
3301  }
3302  return lns_time_limit_;
3303 }
3304 inline ::PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::mutable_lns_time_limit() {
3305  ::PROTOBUF_NAMESPACE_ID::Duration* _msg = _internal_mutable_lns_time_limit();
3306  // @@protoc_insertion_point(field_mutable:operations_research.RoutingSearchParameters.lns_time_limit)
3307  return _msg;
3308 }
3309 inline void RoutingSearchParameters::set_allocated_lns_time_limit(::PROTOBUF_NAMESPACE_ID::Duration* lns_time_limit) {
3310  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
3311  if (message_arena == nullptr) {
3312  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(lns_time_limit_);
3313  }
3314  if (lns_time_limit) {
3315  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3316  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<
3317  ::PROTOBUF_NAMESPACE_ID::MessageLite>::GetOwningArena(
3318  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(lns_time_limit));
3319  if (message_arena != submessage_arena) {
3320  lns_time_limit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3321  message_arena, lns_time_limit, submessage_arena);
3322  }
3323 
3324  } else {
3325 
3326  }
3327  lns_time_limit_ = lns_time_limit;
3328  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingSearchParameters.lns_time_limit)
3329 }
3330 
3331 // .operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters improvement_limit_parameters = 37;
3332 inline bool RoutingSearchParameters::_internal_has_improvement_limit_parameters() const {
3333  return this != internal_default_instance() && improvement_limit_parameters_ != nullptr;
3334 }
3336  return _internal_has_improvement_limit_parameters();
3337 }
3339  if (GetArenaForAllocation() == nullptr && improvement_limit_parameters_ != nullptr) {
3340  delete improvement_limit_parameters_;
3341  }
3342  improvement_limit_parameters_ = nullptr;
3343 }
3344 inline const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters& RoutingSearchParameters::_internal_improvement_limit_parameters() const {
3345  const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* p = improvement_limit_parameters_;
3346  return p != nullptr ? *p : reinterpret_cast<const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters&>(
3348 }
3349 inline const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters& RoutingSearchParameters::improvement_limit_parameters() const {
3350  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.improvement_limit_parameters)
3351  return _internal_improvement_limit_parameters();
3352 }
3355  if (GetArenaForAllocation() == nullptr) {
3356  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(improvement_limit_parameters_);
3357  }
3358  improvement_limit_parameters_ = improvement_limit_parameters;
3359  if (improvement_limit_parameters) {
3360 
3361  } else {
3362 
3363  }
3364  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.RoutingSearchParameters.improvement_limit_parameters)
3365 }
3366 inline ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* RoutingSearchParameters::release_improvement_limit_parameters() {
3367 
3369  improvement_limit_parameters_ = nullptr;
3370 #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
3371  auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
3372  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3373  if (GetArenaForAllocation() == nullptr) { delete old; }
3374 #else // PROTOBUF_FORCE_COPY_IN_RELEASE
3375  if (GetArenaForAllocation() != nullptr) {
3376  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3377  }
3378 #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
3379  return temp;
3380 }
3381 inline ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* RoutingSearchParameters::unsafe_arena_release_improvement_limit_parameters() {
3382  // @@protoc_insertion_point(field_release:operations_research.RoutingSearchParameters.improvement_limit_parameters)
3383 
3385  improvement_limit_parameters_ = nullptr;
3386  return temp;
3387 }
3388 inline ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* RoutingSearchParameters::_internal_mutable_improvement_limit_parameters() {
3389 
3390  if (improvement_limit_parameters_ == nullptr) {
3391  auto* p = CreateMaybeMessage<::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters>(GetArenaForAllocation());
3392  improvement_limit_parameters_ = p;
3393  }
3394  return improvement_limit_parameters_;
3395 }
3396 inline ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* RoutingSearchParameters::mutable_improvement_limit_parameters() {
3397  ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* _msg = _internal_mutable_improvement_limit_parameters();
3398  // @@protoc_insertion_point(field_mutable:operations_research.RoutingSearchParameters.improvement_limit_parameters)
3399  return _msg;
3400 }
3402  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
3403  if (message_arena == nullptr) {
3404  delete improvement_limit_parameters_;
3405  }
3406  if (improvement_limit_parameters) {
3407  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3408  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters>::GetOwningArena(improvement_limit_parameters);
3409  if (message_arena != submessage_arena) {
3410  improvement_limit_parameters = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3411  message_arena, improvement_limit_parameters, submessage_arena);
3412  }
3413 
3414  } else {
3415 
3416  }
3417  improvement_limit_parameters_ = improvement_limit_parameters;
3418  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingSearchParameters.improvement_limit_parameters)
3419 }
3420 
3421 // bool use_full_propagation = 11;
3423  use_full_propagation_ = false;
3424 }
3425 inline bool RoutingSearchParameters::_internal_use_full_propagation() const {
3426  return use_full_propagation_;
3427 }
3429  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_full_propagation)
3430  return _internal_use_full_propagation();
3431 }
3432 inline void RoutingSearchParameters::_internal_set_use_full_propagation(bool value) {
3433 
3434  use_full_propagation_ = value;
3435 }
3437  _internal_set_use_full_propagation(value);
3438  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_full_propagation)
3439 }
3440 
3441 // bool log_search = 13;
3443  log_search_ = false;
3444 }
3445 inline bool RoutingSearchParameters::_internal_log_search() const {
3446  return log_search_;
3447 }
3449  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.log_search)
3450  return _internal_log_search();
3451 }
3452 inline void RoutingSearchParameters::_internal_set_log_search(bool value) {
3453 
3454  log_search_ = value;
3455 }
3457  _internal_set_log_search(value);
3458  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.log_search)
3459 }
3460 
3461 // double log_cost_scaling_factor = 22;
3463  log_cost_scaling_factor_ = 0;
3464 }
3465 inline double RoutingSearchParameters::_internal_log_cost_scaling_factor() const {
3466  return log_cost_scaling_factor_;
3467 }
3469  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.log_cost_scaling_factor)
3470  return _internal_log_cost_scaling_factor();
3471 }
3472 inline void RoutingSearchParameters::_internal_set_log_cost_scaling_factor(double value) {
3473 
3474  log_cost_scaling_factor_ = value;
3475 }
3477  _internal_set_log_cost_scaling_factor(value);
3478  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.log_cost_scaling_factor)
3479 }
3480 
3481 // double log_cost_offset = 29;
3483  log_cost_offset_ = 0;
3484 }
3485 inline double RoutingSearchParameters::_internal_log_cost_offset() const {
3486  return log_cost_offset_;
3487 }
3489  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.log_cost_offset)
3490  return _internal_log_cost_offset();
3491 }
3492 inline void RoutingSearchParameters::_internal_set_log_cost_offset(double value) {
3493 
3494  log_cost_offset_ = value;
3495 }
3497  _internal_set_log_cost_offset(value);
3498  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.log_cost_offset)
3499 }
3500 
3501 // string log_tag = 36;
3503  log_tag_.ClearToEmpty();
3504 }
3505 inline const std::string& RoutingSearchParameters::log_tag() const {
3506  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.log_tag)
3507  return _internal_log_tag();
3508 }
3509 template <typename ArgT0, typename... ArgT>
3510 inline PROTOBUF_ALWAYS_INLINE
3511 void RoutingSearchParameters::set_log_tag(ArgT0&& arg0, ArgT... args) {
3512 
3513  log_tag_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
3514  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.log_tag)
3515 }
3517  std::string* _s = _internal_mutable_log_tag();
3518  // @@protoc_insertion_point(field_mutable:operations_research.RoutingSearchParameters.log_tag)
3519  return _s;
3520 }
3521 inline const std::string& RoutingSearchParameters::_internal_log_tag() const {
3522  return log_tag_.Get();
3523 }
3524 inline void RoutingSearchParameters::_internal_set_log_tag(const std::string& value) {
3525 
3526  log_tag_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
3527 }
3528 inline std::string* RoutingSearchParameters::_internal_mutable_log_tag() {
3529 
3530  return log_tag_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
3531 }
3533  // @@protoc_insertion_point(field_release:operations_research.RoutingSearchParameters.log_tag)
3534  return log_tag_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
3535 }
3536 inline void RoutingSearchParameters::set_allocated_log_tag(std::string* log_tag) {
3537  if (log_tag != nullptr) {
3538 
3539  } else {
3540 
3541  }
3542  log_tag_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), log_tag,
3543  GetArenaForAllocation());
3544 #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
3545  if (log_tag_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
3546  log_tag_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
3547  }
3548 #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
3549  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingSearchParameters.log_tag)
3550 }
3551 
3552 // -------------------------------------------------------------------
3553 
3554 // RoutingModelParameters
3555 
3556 // .operations_research.ConstraintSolverParameters solver_parameters = 1;
3557 inline bool RoutingModelParameters::_internal_has_solver_parameters() const {
3558  return this != internal_default_instance() && solver_parameters_ != nullptr;
3559 }
3561  return _internal_has_solver_parameters();
3562 }
3563 inline const ::operations_research::ConstraintSolverParameters& RoutingModelParameters::_internal_solver_parameters() const {
3564  const ::operations_research::ConstraintSolverParameters* p = solver_parameters_;
3565  return p != nullptr ? *p : reinterpret_cast<const ::operations_research::ConstraintSolverParameters&>(
3567 }
3568 inline const ::operations_research::ConstraintSolverParameters& RoutingModelParameters::solver_parameters() const {
3569  // @@protoc_insertion_point(field_get:operations_research.RoutingModelParameters.solver_parameters)
3570  return _internal_solver_parameters();
3571 }
3573  ::operations_research::ConstraintSolverParameters* solver_parameters) {
3574  if (GetArenaForAllocation() == nullptr) {
3575  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(solver_parameters_);
3576  }
3577  solver_parameters_ = solver_parameters;
3578  if (solver_parameters) {
3579 
3580  } else {
3581 
3582  }
3583  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.RoutingModelParameters.solver_parameters)
3584 }
3585 inline ::operations_research::ConstraintSolverParameters* RoutingModelParameters::release_solver_parameters() {
3586 
3587  ::operations_research::ConstraintSolverParameters* temp = solver_parameters_;
3588  solver_parameters_ = nullptr;
3589 #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
3590  auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
3591  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3592  if (GetArenaForAllocation() == nullptr) { delete old; }
3593 #else // PROTOBUF_FORCE_COPY_IN_RELEASE
3594  if (GetArenaForAllocation() != nullptr) {
3595  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3596  }
3597 #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
3598  return temp;
3599 }
3600 inline ::operations_research::ConstraintSolverParameters* RoutingModelParameters::unsafe_arena_release_solver_parameters() {
3601  // @@protoc_insertion_point(field_release:operations_research.RoutingModelParameters.solver_parameters)
3602 
3603  ::operations_research::ConstraintSolverParameters* temp = solver_parameters_;
3604  solver_parameters_ = nullptr;
3605  return temp;
3606 }
3607 inline ::operations_research::ConstraintSolverParameters* RoutingModelParameters::_internal_mutable_solver_parameters() {
3608 
3609  if (solver_parameters_ == nullptr) {
3610  auto* p = CreateMaybeMessage<::operations_research::ConstraintSolverParameters>(GetArenaForAllocation());
3611  solver_parameters_ = p;
3612  }
3613  return solver_parameters_;
3614 }
3615 inline ::operations_research::ConstraintSolverParameters* RoutingModelParameters::mutable_solver_parameters() {
3616  ::operations_research::ConstraintSolverParameters* _msg = _internal_mutable_solver_parameters();
3617  // @@protoc_insertion_point(field_mutable:operations_research.RoutingModelParameters.solver_parameters)
3618  return _msg;
3619 }
3621  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
3622  if (message_arena == nullptr) {
3623  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(solver_parameters_);
3624  }
3625  if (solver_parameters) {
3626  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3627  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<
3628  ::PROTOBUF_NAMESPACE_ID::MessageLite>::GetOwningArena(
3629  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(solver_parameters));
3630  if (message_arena != submessage_arena) {
3631  solver_parameters = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3632  message_arena, solver_parameters, submessage_arena);
3633  }
3634 
3635  } else {
3636 
3637  }
3638  solver_parameters_ = solver_parameters;
3639  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingModelParameters.solver_parameters)
3640 }
3641 
3642 // bool reduce_vehicle_cost_model = 2;
3644  reduce_vehicle_cost_model_ = false;
3645 }
3646 inline bool RoutingModelParameters::_internal_reduce_vehicle_cost_model() const {
3647  return reduce_vehicle_cost_model_;
3648 }
3650  // @@protoc_insertion_point(field_get:operations_research.RoutingModelParameters.reduce_vehicle_cost_model)
3651  return _internal_reduce_vehicle_cost_model();
3652 }
3653 inline void RoutingModelParameters::_internal_set_reduce_vehicle_cost_model(bool value) {
3654 
3655  reduce_vehicle_cost_model_ = value;
3656 }
3658  _internal_set_reduce_vehicle_cost_model(value);
3659  // @@protoc_insertion_point(field_set:operations_research.RoutingModelParameters.reduce_vehicle_cost_model)
3660 }
3661 
3662 // int32 max_callback_cache_size = 3;
3664  max_callback_cache_size_ = 0;
3665 }
3666 inline int32_t RoutingModelParameters::_internal_max_callback_cache_size() const {
3667  return max_callback_cache_size_;
3668 }
3670  // @@protoc_insertion_point(field_get:operations_research.RoutingModelParameters.max_callback_cache_size)
3671  return _internal_max_callback_cache_size();
3672 }
3673 inline void RoutingModelParameters::_internal_set_max_callback_cache_size(int32_t value) {
3674 
3675  max_callback_cache_size_ = value;
3676 }
3678  _internal_set_max_callback_cache_size(value);
3679  // @@protoc_insertion_point(field_set:operations_research.RoutingModelParameters.max_callback_cache_size)
3680 }
3681 
3682 #ifdef __GNUC__
3683  #pragma GCC diagnostic pop
3684 #endif // __GNUC__
3685 // -------------------------------------------------------------------
3686 
3687 // -------------------------------------------------------------------
3688 
3689 // -------------------------------------------------------------------
3690 
3691 
3692 // @@protoc_insertion_point(namespace_scope)
3693 
3694 } // namespace operations_research
3695 
3696 PROTOBUF_NAMESPACE_OPEN
3697 
3698 template <> struct is_proto_enum< ::operations_research::RoutingSearchParameters_SchedulingSolver> : ::std::true_type {};
3699 template <>
3700 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::RoutingSearchParameters_SchedulingSolver>() {
3702 }
3703 
3704 PROTOBUF_NAMESPACE_CLOSE
3705 
3706 // @@protoc_insertion_point(global_scope)
3707 
3708 #include <google/protobuf/port_undef.inc>
3709 #endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
friend void swap(RoutingSearchParameters &a, RoutingSearchParameters &b)
void CopyFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)
RoutingSearchParameters_ImprovementSearchLimitParameters * New(::PROTOBUF_NAMESPACE_ID::Arena *arena=nullptr) const final
::operations_research::OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns() const
void set_use_relocate_and_make_active(::operations_research::OptionalBoolean value)
const ::PROTOBUF_NAMESPACE_ID::Duration & time_limit() const
RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal _RoutingSearchParameters_ImprovementSearchLimitParameters_default_instance_
void set_use_relocate_path_global_cheapest_insertion_insert_unperformed(::operations_research::OptionalBoolean value)
RoutingSearchParameters(RoutingSearchParameters &&from) noexcept
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
void set_multi_armed_bandit_compound_operator_exploration_coefficient(double value)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * RoutingSearchParameters_SchedulingSolver_descriptor()
RoutingModelParameters & operator=(RoutingModelParameters &&from) noexcept
::operations_research::ConstraintSolverParameters * unsafe_arena_release_solver_parameters()
static const RoutingSearchParameters_ImprovementSearchLimitParameters & default_instance()
PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Duration * release_time_limit()
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SchedulingSolver_descriptor()
void set_use_generalized_cp_sat(::operations_research::OptionalBoolean value)
RoutingModelParametersDefaultTypeInternal _RoutingModelParameters_default_instance_
::operations_research::RoutingSearchParameters_SchedulingSolver mixed_integer_scheduling_solver() const
PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Duration * release_lns_time_limit()
::operations_research::sat::SatParameters * unsafe_arena_release_sat_parameters()
RoutingSearchParameters * New(::PROTOBUF_NAMESPACE_ID::Arena *arena=nullptr) const final
RoutingSearchParameters_ImprovementSearchLimitParameters & operator=(const RoutingSearchParameters_ImprovementSearchLimitParameters &from)
::PROTOBUF_NAMESPACE_ID::Duration * mutable_time_limit()
void set_allocated_solver_parameters(::operations_research::ConstraintSolverParameters *solver_parameters)
void Swap(RoutingSearchParameters_ImprovementSearchLimitParameters *other)
RoutingSearchParameters_LocalSearchNeighborhoodOperators * New(::PROTOBUF_NAMESPACE_ID::Arena *arena=nullptr) const final
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
void unsafe_arena_set_allocated_solver_parameters(::operations_research::ConstraintSolverParameters *solver_parameters)
constexpr RoutingSearchParameters_SchedulingSolver RoutingSearchParameters_SchedulingSolver_SchedulingSolver_MIN
void MergeFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)
static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]
::operations_research::sat::SatParameters * mutable_sat_parameters()
::operations_research::RoutingSearchParameters_SchedulingSolver continuous_scheduling_solver() const
RoutingModelParameters * New(::PROTOBUF_NAMESPACE_ID::Arena *arena=nullptr) const final
::operations_research::FirstSolutionStrategy_Value first_solution_strategy() const
void unsafe_arena_set_allocated_sat_parameters(::operations_research::sat::SatParameters *sat_parameters)
void set_use_extended_swap_active(::operations_research::OptionalBoolean value)
void set_use_local_cheapest_insertion_path_lns(::operations_research::OptionalBoolean value)
static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]
::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters * mutable_improvement_limit_parameters()
void set_use_global_cheapest_insertion_path_lns(::operations_research::OptionalBoolean value)
void set_allocated_lns_time_limit(::PROTOBUF_NAMESPACE_ID::Duration *lns_time_limit)
void UnsafeArenaSwap(RoutingModelParameters *other)
constexpr RoutingSearchParameters_SchedulingSolver RoutingSearchParameters_SchedulingSolver_SchedulingSolver_MAX
::operations_research::OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns() const
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
RoutingSearchParametersDefaultTypeInternal _RoutingSearchParameters_default_instance_
::operations_research::OptionalBoolean use_local_cheapest_insertion_path_lns() const
void set_use_relocate_neighbors(::operations_research::OptionalBoolean value)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
RoutingModelParameters & operator=(const RoutingModelParameters &from)
void set_local_search_metaheuristic(::operations_research::LocalSearchMetaheuristic_Value value)
void Swap(RoutingModelParameters *other)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
bool RoutingSearchParameters_SchedulingSolver_IsValid(int value)
void set_use_cp_sat(::operations_research::OptionalBoolean value)
void set_use_relocate_expensive_chain(::operations_research::OptionalBoolean value)
void UnsafeArenaSwap(RoutingSearchParameters_ImprovementSearchLimitParameters *other)
void set_allocated_sat_parameters(::operations_research::sat::SatParameters *sat_parameters)
const ::operations_research::sat::SatParameters & sat_parameters() const
static const RoutingSearchParameters & default_instance()
void unsafe_arena_set_allocated_time_limit(::PROTOBUF_NAMESPACE_ID::Duration *time_limit)
void set_use_global_cheapest_insertion_expensive_chain_lns(::operations_research::OptionalBoolean value)
static const RoutingSearchParameters_LocalSearchNeighborhoodOperators * internal_default_instance()
static const RoutingSearchParameters * internal_default_instance()
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void set_first_solution_strategy(::operations_research::FirstSolutionStrategy_Value value)
RoutingSearchParameters_LocalSearchNeighborhoodOperators(RoutingSearchParameters_LocalSearchNeighborhoodOperators &&from) noexcept
void set_use_light_relocate_pair(::operations_research::OptionalBoolean value)
void set_mixed_integer_scheduling_solver(::operations_research::RoutingSearchParameters_SchedulingSolver value)
void unsafe_arena_set_allocated_lns_time_limit(::PROTOBUF_NAMESPACE_ID::Duration *lns_time_limit)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
::operations_research::LocalSearchMetaheuristic_Value local_search_metaheuristic() const
const ::operations_research::ConstraintSolverParameters & solver_parameters() const
ConstraintSolverParametersDefaultTypeInternal _ConstraintSolverParameters_default_instance_
::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators * mutable_local_search_operators()
static const RoutingModelParameters & default_instance()
void unsafe_arena_set_allocated_improvement_limit_parameters(::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters *improvement_limit_parameters)
bool RoutingSearchParameters_SchedulingSolver_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, RoutingSearchParameters_SchedulingSolver *value)
::operations_research::OptionalBoolean use_local_cheapest_insertion_close_nodes_lns() const
void set_heuristic_expensive_chain_lns_num_arcs_to_consider(int32_t value)
friend void swap(RoutingModelParameters &a, RoutingModelParameters &b)
const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters & improvement_limit_parameters() const
const ::PROTOBUF_NAMESPACE_ID::Duration & lns_time_limit() const
void set_allocated_improvement_limit_parameters(::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters *improvement_limit_parameters)
PROTOBUF_NODISCARD ::operations_research::ConstraintSolverParameters * release_solver_parameters()
void Swap(RoutingSearchParameters_LocalSearchNeighborhoodOperators *other)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
::operations_research::OptionalBoolean use_global_cheapest_insertion_close_nodes_lns() const
static const RoutingModelParameters * internal_default_instance()
::operations_research::ConstraintSolverParameters * mutable_solver_parameters()
::PROTOBUF_NAMESPACE_ID::Duration * mutable_lns_time_limit()
void unsafe_arena_set_allocated_local_search_operators(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators *local_search_operators)
RoutingSearchParameters_LocalSearchNeighborhoodOperators & operator=(RoutingSearchParameters_LocalSearchNeighborhoodOperators &&from) noexcept
void set_continuous_scheduling_solver(::operations_research::RoutingSearchParameters_SchedulingSolver value)
static bool SchedulingSolver_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, SchedulingSolver *value)
::PROTOBUF_NAMESPACE_ID::Duration * unsafe_arena_release_time_limit()
::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators * unsafe_arena_release_local_search_operators()
::operations_research::OptionalBoolean use_generalized_cp_sat() const
::operations_research::OptionalBoolean use_cp_sat() const
::operations_research::OptionalBoolean use_relocate_path_global_cheapest_insertion_insert_unperformed() const
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries [] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
::PROTOBUF_NAMESPACE_ID::Duration * unsafe_arena_release_lns_time_limit()
void set_use_make_chain_inactive(::operations_research::OptionalBoolean value)
void set_allocated_time_limit(::PROTOBUF_NAMESPACE_ID::Duration *time_limit)
const std::string & RoutingSearchParameters_SchedulingSolver_Name(T enum_t_value)
::operations_research::OptionalBoolean use_cp() const
static const RoutingSearchParameters_LocalSearchNeighborhoodOperators & default_instance()
void set_allocated_local_search_operators(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators *local_search_operators)
void set_log_tag(ArgT0 &&arg0, ArgT... args)
Collection of objects used to extend the Constraint Solver library.
void set_multi_armed_bandit_compound_operator_memory_coefficient(double value)
PROTOBUF_NODISCARD ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters * release_improvement_limit_parameters()
constexpr int RoutingSearchParameters_SchedulingSolver_SchedulingSolver_ARRAYSIZE
void set_use_global_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value)
RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal _RoutingSearchParameters_LocalSearchNeighborhoodOperators_default_instance_
void UnsafeArenaSwap(RoutingSearchParameters_LocalSearchNeighborhoodOperators *other)
::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters * unsafe_arena_release_improvement_limit_parameters()
const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators & local_search_operators() const
::operations_research::OptionalBoolean use_global_cheapest_insertion_path_lns() const
void set_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(bool value)
RoutingSearchParameters & operator=(const RoutingSearchParameters &from)
RoutingModelParameters(RoutingModelParameters &&from) noexcept
static const RoutingSearchParameters_ImprovementSearchLimitParameters * internal_default_instance()
friend void swap(RoutingSearchParameters_ImprovementSearchLimitParameters &a, RoutingSearchParameters_ImprovementSearchLimitParameters &b)
void set_use_local_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value)
RoutingSearchParameters_ImprovementSearchLimitParameters & operator=(RoutingSearchParameters_ImprovementSearchLimitParameters &&from) noexcept
RoutingSearchParameters_ImprovementSearchLimitParameters(RoutingSearchParameters_ImprovementSearchLimitParameters &&from) noexcept
static const std::string & SchedulingSolver_Name(T enum_t_value)
PROTOBUF_NODISCARD ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators * release_local_search_operators()
void set_use_cp(::operations_research::OptionalBoolean value)
PROTOBUF_NODISCARD std::string * release_log_tag()
void set_use_local_cheapest_insertion_expensive_chain_lns(::operations_research::OptionalBoolean value)
RoutingSearchParameters & operator=(RoutingSearchParameters &&from) noexcept
friend void swap(RoutingSearchParameters_LocalSearchNeighborhoodOperators &a, RoutingSearchParameters_LocalSearchNeighborhoodOperators &b)
void set_use_node_pair_swap_active(::operations_research::OptionalBoolean value)
PROTOBUF_NODISCARD ::operations_research::sat::SatParameters * release_sat_parameters()
void UnsafeArenaSwap(RoutingSearchParameters *other)
void Swap(RoutingSearchParameters *other)
RoutingSearchParameters_LocalSearchNeighborhoodOperators & operator=(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)