OR-Tools  9.1
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 < 3017000
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 3017003 < 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>
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 ::PROTOBUF_NAMESPACE_ID::uint32 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) {
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  InternalSwap(&from);
133  } else {
134  CopyFrom(from);
135  }
136  return *this;
137  }
138 
139  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
140  return GetDescriptor();
141  }
142  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
143  return default_instance().GetMetadata().descriptor;
144  }
145  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
146  return default_instance().GetMetadata().reflection;
147  }
149  return *internal_default_instance();
150  }
152  return reinterpret_cast<const RoutingSearchParameters_LocalSearchNeighborhoodOperators*>(
154  }
155  static constexpr int kIndexInFileMessages =
156  0;
157 
159  a.Swap(&b);
160  }
162  if (other == this) return;
163  if (GetOwningArena() == other->GetOwningArena()) {
164  InternalSwap(other);
165  } else {
166  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
167  }
168  }
170  if (other == this) return;
171  GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
172  InternalSwap(other);
173  }
174 
175  // implements Message ----------------------------------------------
176 
179  }
180 
181  RoutingSearchParameters_LocalSearchNeighborhoodOperators* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
182  return CreateMaybeMessage<RoutingSearchParameters_LocalSearchNeighborhoodOperators>(arena);
183  }
184  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
186  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
188  private:
189  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
190  public:
191  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
192  bool IsInitialized() const final;
193 
194  size_t ByteSizeLong() const final;
195  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
196  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
197  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
198  int GetCachedSize() const final { return _cached_size_.Get(); }
199 
200  private:
201  void SharedCtor();
202  void SharedDtor();
203  void SetCachedSize(int size) const final;
205  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
206  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
207  return "operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators";
208  }
209  protected:
210  explicit RoutingSearchParameters_LocalSearchNeighborhoodOperators(::PROTOBUF_NAMESPACE_ID::Arena* arena,
211  bool is_message_owned = false);
212  private:
213  static void ArenaDtor(void* object);
214  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
215  public:
216 
217  static const ClassData _class_data_;
218  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
219 
220  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
221 
222  // nested types ----------------------------------------------------
223 
224  // accessors -------------------------------------------------------
225 
226  enum : int {
260  };
261  // .operations_research.OptionalBoolean use_relocate = 1;
262  void clear_use_relocate();
265  private:
266  ::operations_research::OptionalBoolean _internal_use_relocate() const;
267  void _internal_set_use_relocate(::operations_research::OptionalBoolean value);
268  public:
269 
270  // .operations_research.OptionalBoolean use_relocate_pair = 2;
274  private:
275  ::operations_research::OptionalBoolean _internal_use_relocate_pair() const;
276  void _internal_set_use_relocate_pair(::operations_research::OptionalBoolean value);
277  public:
278 
279  // .operations_research.OptionalBoolean use_relocate_neighbors = 3;
283  private:
284  ::operations_research::OptionalBoolean _internal_use_relocate_neighbors() const;
285  void _internal_set_use_relocate_neighbors(::operations_research::OptionalBoolean value);
286  public:
287 
288  // .operations_research.OptionalBoolean use_exchange = 4;
289  void clear_use_exchange();
292  private:
293  ::operations_research::OptionalBoolean _internal_use_exchange() const;
294  void _internal_set_use_exchange(::operations_research::OptionalBoolean value);
295  public:
296 
297  // .operations_research.OptionalBoolean use_cross = 5;
298  void clear_use_cross();
301  private:
302  ::operations_research::OptionalBoolean _internal_use_cross() const;
303  void _internal_set_use_cross(::operations_research::OptionalBoolean value);
304  public:
305 
306  // .operations_research.OptionalBoolean use_cross_exchange = 6;
310  private:
311  ::operations_research::OptionalBoolean _internal_use_cross_exchange() const;
312  void _internal_set_use_cross_exchange(::operations_research::OptionalBoolean value);
313  public:
314 
315  // .operations_research.OptionalBoolean use_two_opt = 7;
316  void clear_use_two_opt();
319  private:
320  ::operations_research::OptionalBoolean _internal_use_two_opt() const;
321  void _internal_set_use_two_opt(::operations_research::OptionalBoolean value);
322  public:
323 
324  // .operations_research.OptionalBoolean use_or_opt = 8;
325  void clear_use_or_opt();
328  private:
329  ::operations_research::OptionalBoolean _internal_use_or_opt() const;
330  void _internal_set_use_or_opt(::operations_research::OptionalBoolean value);
331  public:
332 
333  // .operations_research.OptionalBoolean use_lin_kernighan = 9;
337  private:
338  ::operations_research::OptionalBoolean _internal_use_lin_kernighan() const;
339  void _internal_set_use_lin_kernighan(::operations_research::OptionalBoolean value);
340  public:
341 
342  // .operations_research.OptionalBoolean use_tsp_opt = 10;
343  void clear_use_tsp_opt();
346  private:
347  ::operations_research::OptionalBoolean _internal_use_tsp_opt() const;
348  void _internal_set_use_tsp_opt(::operations_research::OptionalBoolean value);
349  public:
350 
351  // .operations_research.OptionalBoolean use_make_active = 11;
352  void clear_use_make_active();
355  private:
356  ::operations_research::OptionalBoolean _internal_use_make_active() const;
357  void _internal_set_use_make_active(::operations_research::OptionalBoolean value);
358  public:
359 
360  // .operations_research.OptionalBoolean use_make_inactive = 12;
364  private:
365  ::operations_research::OptionalBoolean _internal_use_make_inactive() const;
366  void _internal_set_use_make_inactive(::operations_research::OptionalBoolean value);
367  public:
368 
369  // .operations_research.OptionalBoolean use_make_chain_inactive = 13;
373  private:
374  ::operations_research::OptionalBoolean _internal_use_make_chain_inactive() const;
375  void _internal_set_use_make_chain_inactive(::operations_research::OptionalBoolean value);
376  public:
377 
378  // .operations_research.OptionalBoolean use_swap_active = 14;
379  void clear_use_swap_active();
382  private:
383  ::operations_research::OptionalBoolean _internal_use_swap_active() const;
384  void _internal_set_use_swap_active(::operations_research::OptionalBoolean value);
385  public:
386 
387  // .operations_research.OptionalBoolean use_extended_swap_active = 15;
391  private:
392  ::operations_research::OptionalBoolean _internal_use_extended_swap_active() const;
393  void _internal_set_use_extended_swap_active(::operations_research::OptionalBoolean value);
394  public:
395 
396  // .operations_research.OptionalBoolean use_path_lns = 16;
397  void clear_use_path_lns();
400  private:
401  ::operations_research::OptionalBoolean _internal_use_path_lns() const;
402  void _internal_set_use_path_lns(::operations_research::OptionalBoolean value);
403  public:
404 
405  // .operations_research.OptionalBoolean use_full_path_lns = 17;
409  private:
410  ::operations_research::OptionalBoolean _internal_use_full_path_lns() const;
411  void _internal_set_use_full_path_lns(::operations_research::OptionalBoolean value);
412  public:
413 
414  // .operations_research.OptionalBoolean use_tsp_lns = 18;
415  void clear_use_tsp_lns();
418  private:
419  ::operations_research::OptionalBoolean _internal_use_tsp_lns() const;
420  void _internal_set_use_tsp_lns(::operations_research::OptionalBoolean value);
421  public:
422 
423  // .operations_research.OptionalBoolean use_inactive_lns = 19;
424  void clear_use_inactive_lns();
427  private:
428  ::operations_research::OptionalBoolean _internal_use_inactive_lns() const;
429  void _internal_set_use_inactive_lns(::operations_research::OptionalBoolean value);
430  public:
431 
432  // .operations_research.OptionalBoolean use_node_pair_swap_active = 20;
436  private:
437  ::operations_research::OptionalBoolean _internal_use_node_pair_swap_active() const;
438  void _internal_set_use_node_pair_swap_active(::operations_research::OptionalBoolean value);
439  public:
440 
441  // .operations_research.OptionalBoolean use_relocate_and_make_active = 21;
445  private:
446  ::operations_research::OptionalBoolean _internal_use_relocate_and_make_active() const;
447  void _internal_set_use_relocate_and_make_active(::operations_research::OptionalBoolean value);
448  public:
449 
450  // .operations_research.OptionalBoolean use_exchange_pair = 22;
454  private:
455  ::operations_research::OptionalBoolean _internal_use_exchange_pair() const;
456  void _internal_set_use_exchange_pair(::operations_research::OptionalBoolean value);
457  public:
458 
459  // .operations_research.OptionalBoolean use_relocate_expensive_chain = 23;
463  private:
464  ::operations_research::OptionalBoolean _internal_use_relocate_expensive_chain() const;
465  void _internal_set_use_relocate_expensive_chain(::operations_research::OptionalBoolean value);
466  public:
467 
468  // .operations_research.OptionalBoolean use_light_relocate_pair = 24;
472  private:
473  ::operations_research::OptionalBoolean _internal_use_light_relocate_pair() const;
474  void _internal_set_use_light_relocate_pair(::operations_research::OptionalBoolean value);
475  public:
476 
477  // .operations_research.OptionalBoolean use_relocate_subtrip = 25;
481  private:
482  ::operations_research::OptionalBoolean _internal_use_relocate_subtrip() const;
483  void _internal_set_use_relocate_subtrip(::operations_research::OptionalBoolean value);
484  public:
485 
486  // .operations_research.OptionalBoolean use_exchange_subtrip = 26;
490  private:
491  ::operations_research::OptionalBoolean _internal_use_exchange_subtrip() const;
492  void _internal_set_use_exchange_subtrip(::operations_research::OptionalBoolean value);
493  public:
494 
495  // .operations_research.OptionalBoolean use_global_cheapest_insertion_path_lns = 27;
499  private:
500  ::operations_research::OptionalBoolean _internal_use_global_cheapest_insertion_path_lns() const;
501  void _internal_set_use_global_cheapest_insertion_path_lns(::operations_research::OptionalBoolean value);
502  public:
503 
504  // .operations_research.OptionalBoolean use_local_cheapest_insertion_path_lns = 28;
508  private:
509  ::operations_research::OptionalBoolean _internal_use_local_cheapest_insertion_path_lns() const;
510  void _internal_set_use_local_cheapest_insertion_path_lns(::operations_research::OptionalBoolean value);
511  public:
512 
513  // .operations_research.OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns = 29;
517  private:
518  ::operations_research::OptionalBoolean _internal_use_global_cheapest_insertion_expensive_chain_lns() const;
519  void _internal_set_use_global_cheapest_insertion_expensive_chain_lns(::operations_research::OptionalBoolean value);
520  public:
521 
522  // .operations_research.OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns = 30;
526  private:
527  ::operations_research::OptionalBoolean _internal_use_local_cheapest_insertion_expensive_chain_lns() const;
528  void _internal_set_use_local_cheapest_insertion_expensive_chain_lns(::operations_research::OptionalBoolean value);
529  public:
530 
531  // .operations_research.OptionalBoolean use_global_cheapest_insertion_close_nodes_lns = 31;
535  private:
536  ::operations_research::OptionalBoolean _internal_use_global_cheapest_insertion_close_nodes_lns() const;
537  void _internal_set_use_global_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value);
538  public:
539 
540  // .operations_research.OptionalBoolean use_local_cheapest_insertion_close_nodes_lns = 32;
544  private:
545  ::operations_research::OptionalBoolean _internal_use_local_cheapest_insertion_close_nodes_lns() const;
546  void _internal_set_use_local_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value);
547  public:
548 
549  // .operations_research.OptionalBoolean use_relocate_path_global_cheapest_insertion_insert_unperformed = 33;
553  private:
554  ::operations_research::OptionalBoolean _internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() const;
555  void _internal_set_use_relocate_path_global_cheapest_insertion_insert_unperformed(::operations_research::OptionalBoolean value);
556  public:
557 
558  // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
559  private:
560  class _Internal;
561 
562  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
563  typedef void InternalArenaConstructable_;
564  typedef void DestructorSkippable_;
565  int use_relocate_;
566  int use_relocate_pair_;
567  int use_relocate_neighbors_;
568  int use_exchange_;
569  int use_cross_;
570  int use_cross_exchange_;
571  int use_two_opt_;
572  int use_or_opt_;
573  int use_lin_kernighan_;
574  int use_tsp_opt_;
575  int use_make_active_;
576  int use_make_inactive_;
577  int use_make_chain_inactive_;
578  int use_swap_active_;
579  int use_extended_swap_active_;
580  int use_path_lns_;
581  int use_full_path_lns_;
582  int use_tsp_lns_;
583  int use_inactive_lns_;
584  int use_node_pair_swap_active_;
585  int use_relocate_and_make_active_;
586  int use_exchange_pair_;
587  int use_relocate_expensive_chain_;
588  int use_light_relocate_pair_;
589  int use_relocate_subtrip_;
590  int use_exchange_subtrip_;
591  int use_global_cheapest_insertion_path_lns_;
592  int use_local_cheapest_insertion_path_lns_;
593  int use_global_cheapest_insertion_expensive_chain_lns_;
594  int use_local_cheapest_insertion_expensive_chain_lns_;
595  int use_global_cheapest_insertion_close_nodes_lns_;
596  int use_local_cheapest_insertion_close_nodes_lns_;
597  int use_relocate_path_global_cheapest_insertion_insert_unperformed_;
598  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
599  friend struct ::TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto;
600 };
601 // -------------------------------------------------------------------
602 
604  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters) */ {
605  public:
608  explicit constexpr RoutingSearchParameters_ImprovementSearchLimitParameters(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
609 
613  *this = ::std::move(from);
614  }
615 
617  CopyFrom(from);
618  return *this;
619  }
621  if (this == &from) return *this;
622  if (GetOwningArena() == from.GetOwningArena()) {
623  InternalSwap(&from);
624  } else {
625  CopyFrom(from);
626  }
627  return *this;
628  }
629 
630  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
631  return GetDescriptor();
632  }
633  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
634  return default_instance().GetMetadata().descriptor;
635  }
636  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
637  return default_instance().GetMetadata().reflection;
638  }
640  return *internal_default_instance();
641  }
643  return reinterpret_cast<const RoutingSearchParameters_ImprovementSearchLimitParameters*>(
645  }
646  static constexpr int kIndexInFileMessages =
647  1;
648 
650  a.Swap(&b);
651  }
653  if (other == this) return;
654  if (GetOwningArena() == other->GetOwningArena()) {
655  InternalSwap(other);
656  } else {
657  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
658  }
659  }
661  if (other == this) return;
662  GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
663  InternalSwap(other);
664  }
665 
666  // implements Message ----------------------------------------------
667 
670  }
671 
672  RoutingSearchParameters_ImprovementSearchLimitParameters* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
673  return CreateMaybeMessage<RoutingSearchParameters_ImprovementSearchLimitParameters>(arena);
674  }
675  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
677  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
679  private:
680  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
681  public:
682  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
683  bool IsInitialized() const final;
684 
685  size_t ByteSizeLong() const final;
686  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
687  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
688  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
689  int GetCachedSize() const final { return _cached_size_.Get(); }
690 
691  private:
692  void SharedCtor();
693  void SharedDtor();
694  void SetCachedSize(int size) const final;
696  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
697  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
698  return "operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters";
699  }
700  protected:
701  explicit RoutingSearchParameters_ImprovementSearchLimitParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena,
702  bool is_message_owned = false);
703  private:
704  static void ArenaDtor(void* object);
705  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
706  public:
707 
708  static const ClassData _class_data_;
709  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
710 
711  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
712 
713  // nested types ----------------------------------------------------
714 
715  // accessors -------------------------------------------------------
716 
717  enum : int {
720  };
721  // int32 improvement_rate_solutions_distance = 39;
723  ::PROTOBUF_NAMESPACE_ID::int32 improvement_rate_solutions_distance() const;
724  void set_improvement_rate_solutions_distance(::PROTOBUF_NAMESPACE_ID::int32 value);
725  private:
726  ::PROTOBUF_NAMESPACE_ID::int32 _internal_improvement_rate_solutions_distance() const;
727  void _internal_set_improvement_rate_solutions_distance(::PROTOBUF_NAMESPACE_ID::int32 value);
728  public:
729 
730  // double improvement_rate_coefficient = 38;
732  double improvement_rate_coefficient() const;
734  private:
735  double _internal_improvement_rate_coefficient() const;
736  void _internal_set_improvement_rate_coefficient(double value);
737  public:
738 
739  // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
740  private:
741  class _Internal;
742 
743  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
744  typedef void InternalArenaConstructable_;
745  typedef void DestructorSkippable_;
746  ::PROTOBUF_NAMESPACE_ID::int32 improvement_rate_solutions_distance_;
747  double improvement_rate_coefficient_;
748  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
749  friend struct ::TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto;
750 };
751 // -------------------------------------------------------------------
752 
754  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.RoutingSearchParameters) */ {
755  public:
757  ~RoutingSearchParameters() override;
758  explicit constexpr RoutingSearchParameters(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
759 
763  *this = ::std::move(from);
764  }
765 
767  CopyFrom(from);
768  return *this;
769  }
771  if (this == &from) return *this;
772  if (GetOwningArena() == from.GetOwningArena()) {
773  InternalSwap(&from);
774  } else {
775  CopyFrom(from);
776  }
777  return *this;
778  }
779 
780  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
781  return GetDescriptor();
782  }
783  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
784  return default_instance().GetMetadata().descriptor;
785  }
786  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
787  return default_instance().GetMetadata().reflection;
788  }
790  return *internal_default_instance();
791  }
793  return reinterpret_cast<const RoutingSearchParameters*>(
795  }
796  static constexpr int kIndexInFileMessages =
797  2;
798 
800  a.Swap(&b);
801  }
802  inline void Swap(RoutingSearchParameters* other) {
803  if (other == this) return;
804  if (GetOwningArena() == other->GetOwningArena()) {
805  InternalSwap(other);
806  } else {
807  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
808  }
809  }
811  if (other == this) return;
812  GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
813  InternalSwap(other);
814  }
815 
816  // implements Message ----------------------------------------------
817 
818  inline RoutingSearchParameters* New() const final {
819  return new RoutingSearchParameters();
820  }
821 
822  RoutingSearchParameters* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
823  return CreateMaybeMessage<RoutingSearchParameters>(arena);
824  }
825  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
826  void CopyFrom(const RoutingSearchParameters& from);
827  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
828  void MergeFrom(const RoutingSearchParameters& from);
829  private:
830  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
831  public:
832  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
833  bool IsInitialized() const final;
834 
835  size_t ByteSizeLong() const final;
836  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
837  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
838  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
839  int GetCachedSize() const final { return _cached_size_.Get(); }
840 
841  private:
842  void SharedCtor();
843  void SharedDtor();
844  void SetCachedSize(int size) const final;
845  void InternalSwap(RoutingSearchParameters* other);
846  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
847  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
848  return "operations_research.RoutingSearchParameters";
849  }
850  protected:
851  explicit RoutingSearchParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena,
852  bool is_message_owned = false);
853  private:
854  static void ArenaDtor(void* object);
855  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
856  public:
857 
858  static const ClassData _class_data_;
859  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
860 
861  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
862 
863  // nested types ----------------------------------------------------
864 
867 
869  static constexpr SchedulingSolver UNSET =
871  static constexpr SchedulingSolver GLOP =
873  static constexpr SchedulingSolver CP_SAT =
875  static inline bool SchedulingSolver_IsValid(int value) {
877  }
882  static constexpr int SchedulingSolver_ARRAYSIZE =
884  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
887  }
888  template<typename T>
889  static inline const std::string& SchedulingSolver_Name(T enum_t_value) {
892  "Incorrect type passed to function SchedulingSolver_Name.");
894  }
895  static inline bool SchedulingSolver_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
898  }
899 
900  // accessors -------------------------------------------------------
901 
902  enum : int {
945  };
946  // string log_tag = 36;
947  void clear_log_tag();
948  const std::string& log_tag() const;
949  template <typename ArgT0 = const std::string&, typename... ArgT>
950  void set_log_tag(ArgT0&& arg0, ArgT... args);
951  std::string* mutable_log_tag();
952  PROTOBUF_MUST_USE_RESULT std::string* release_log_tag();
953  void set_allocated_log_tag(std::string* log_tag);
954  private:
955  const std::string& _internal_log_tag() const;
956  inline PROTOBUF_ALWAYS_INLINE void _internal_set_log_tag(const std::string& value);
957  std::string* _internal_mutable_log_tag();
958  public:
959 
960  // .operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators = 3;
961  bool has_local_search_operators() const;
962  private:
963  bool _internal_has_local_search_operators() const;
964  public:
966  const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators& local_search_operators() const;
967  PROTOBUF_MUST_USE_RESULT ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* release_local_search_operators();
970  private:
971  const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators& _internal_local_search_operators() const;
973  public:
977 
978  // .google.protobuf.Duration time_limit = 9;
979  bool has_time_limit() const;
980  private:
981  bool _internal_has_time_limit() const;
982  public:
983  void clear_time_limit();
984  const PROTOBUF_NAMESPACE_ID::Duration& time_limit() const;
985  PROTOBUF_MUST_USE_RESULT PROTOBUF_NAMESPACE_ID::Duration* release_time_limit();
986  PROTOBUF_NAMESPACE_ID::Duration* mutable_time_limit();
987  void set_allocated_time_limit(PROTOBUF_NAMESPACE_ID::Duration* time_limit);
988  private:
989  const PROTOBUF_NAMESPACE_ID::Duration& _internal_time_limit() const;
990  PROTOBUF_NAMESPACE_ID::Duration* _internal_mutable_time_limit();
991  public:
993  PROTOBUF_NAMESPACE_ID::Duration* time_limit);
994  PROTOBUF_NAMESPACE_ID::Duration* unsafe_arena_release_time_limit();
995 
996  // .google.protobuf.Duration lns_time_limit = 10;
997  bool has_lns_time_limit() const;
998  private:
999  bool _internal_has_lns_time_limit() const;
1000  public:
1001  void clear_lns_time_limit();
1002  const PROTOBUF_NAMESPACE_ID::Duration& lns_time_limit() const;
1003  PROTOBUF_MUST_USE_RESULT PROTOBUF_NAMESPACE_ID::Duration* release_lns_time_limit();
1004  PROTOBUF_NAMESPACE_ID::Duration* mutable_lns_time_limit();
1005  void set_allocated_lns_time_limit(PROTOBUF_NAMESPACE_ID::Duration* lns_time_limit);
1006  private:
1007  const PROTOBUF_NAMESPACE_ID::Duration& _internal_lns_time_limit() const;
1008  PROTOBUF_NAMESPACE_ID::Duration* _internal_mutable_lns_time_limit();
1009  public:
1011  PROTOBUF_NAMESPACE_ID::Duration* lns_time_limit);
1012  PROTOBUF_NAMESPACE_ID::Duration* unsafe_arena_release_lns_time_limit();
1013 
1014  // .operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters improvement_limit_parameters = 37;
1015  bool has_improvement_limit_parameters() const;
1016  private:
1017  bool _internal_has_improvement_limit_parameters() const;
1018  public:
1020  const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters& improvement_limit_parameters() const;
1021  PROTOBUF_MUST_USE_RESULT ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* release_improvement_limit_parameters();
1024  private:
1025  const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters& _internal_improvement_limit_parameters() const;
1026  ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* _internal_mutable_improvement_limit_parameters();
1027  public:
1031 
1032  // .operations_research.sat.SatParameters sat_parameters = 48;
1033  bool has_sat_parameters() const;
1034  private:
1035  bool _internal_has_sat_parameters() const;
1036  public:
1037  void clear_sat_parameters();
1038  const ::operations_research::sat::SatParameters& sat_parameters() const;
1039  PROTOBUF_MUST_USE_RESULT ::operations_research::sat::SatParameters* release_sat_parameters();
1042  private:
1043  const ::operations_research::sat::SatParameters& _internal_sat_parameters() const;
1044  ::operations_research::sat::SatParameters* _internal_mutable_sat_parameters();
1045  public:
1049 
1050  // .operations_research.FirstSolutionStrategy.Value first_solution_strategy = 1;
1054  private:
1055  ::operations_research::FirstSolutionStrategy_Value _internal_first_solution_strategy() const;
1056  void _internal_set_first_solution_strategy(::operations_research::FirstSolutionStrategy_Value value);
1057  public:
1058 
1059  // .operations_research.LocalSearchMetaheuristic.Value local_search_metaheuristic = 4;
1063  private:
1064  ::operations_research::LocalSearchMetaheuristic_Value _internal_local_search_metaheuristic() const;
1065  void _internal_set_local_search_metaheuristic(::operations_research::LocalSearchMetaheuristic_Value value);
1066  public:
1067 
1068  // double guided_local_search_lambda_coefficient = 5;
1072  private:
1073  double _internal_guided_local_search_lambda_coefficient() const;
1074  void _internal_set_guided_local_search_lambda_coefficient(double value);
1075  public:
1076 
1077  // double optimization_step = 7;
1078  void clear_optimization_step();
1079  double optimization_step() const;
1080  void set_optimization_step(double value);
1081  private:
1082  double _internal_optimization_step() const;
1083  void _internal_set_optimization_step(double value);
1084  public:
1085 
1086  // int64 solution_limit = 8;
1087  void clear_solution_limit();
1088  ::PROTOBUF_NAMESPACE_ID::int64 solution_limit() const;
1089  void set_solution_limit(::PROTOBUF_NAMESPACE_ID::int64 value);
1090  private:
1091  ::PROTOBUF_NAMESPACE_ID::int64 _internal_solution_limit() const;
1092  void _internal_set_solution_limit(::PROTOBUF_NAMESPACE_ID::int64 value);
1093  public:
1094 
1095  // bool use_full_propagation = 11;
1097  bool use_full_propagation() const;
1098  void set_use_full_propagation(bool value);
1099  private:
1100  bool _internal_use_full_propagation() const;
1101  void _internal_set_use_full_propagation(bool value);
1102  public:
1103 
1104  // bool log_search = 13;
1105  void clear_log_search();
1106  bool log_search() const;
1107  void set_log_search(bool value);
1108  private:
1109  bool _internal_log_search() const;
1110  void _internal_set_log_search(bool value);
1111  public:
1112 
1113  // int32 number_of_solutions_to_collect = 17;
1115  ::PROTOBUF_NAMESPACE_ID::int32 number_of_solutions_to_collect() const;
1116  void set_number_of_solutions_to_collect(::PROTOBUF_NAMESPACE_ID::int32 value);
1117  private:
1118  ::PROTOBUF_NAMESPACE_ID::int32 _internal_number_of_solutions_to_collect() const;
1119  void _internal_set_number_of_solutions_to_collect(::PROTOBUF_NAMESPACE_ID::int32 value);
1120  public:
1121 
1122  // double savings_neighbors_ratio = 14;
1124  double savings_neighbors_ratio() const;
1125  void set_savings_neighbors_ratio(double value);
1126  private:
1127  double _internal_savings_neighbors_ratio() const;
1128  void _internal_set_savings_neighbors_ratio(double value);
1129  public:
1130 
1131  // double cheapest_insertion_farthest_seeds_ratio = 16;
1135  private:
1136  double _internal_cheapest_insertion_farthest_seeds_ratio() const;
1137  void _internal_set_cheapest_insertion_farthest_seeds_ratio(double value);
1138  public:
1139 
1140  // double savings_arc_coefficient = 18;
1142  double savings_arc_coefficient() const;
1143  void set_savings_arc_coefficient(double value);
1144  private:
1145  double _internal_savings_arc_coefficient() const;
1146  void _internal_set_savings_arc_coefficient(double value);
1147  public:
1148 
1149  // int32 relocate_expensive_chain_num_arcs_to_consider = 20;
1151  ::PROTOBUF_NAMESPACE_ID::int32 relocate_expensive_chain_num_arcs_to_consider() const;
1152  void set_relocate_expensive_chain_num_arcs_to_consider(::PROTOBUF_NAMESPACE_ID::int32 value);
1153  private:
1154  ::PROTOBUF_NAMESPACE_ID::int32 _internal_relocate_expensive_chain_num_arcs_to_consider() const;
1155  void _internal_set_relocate_expensive_chain_num_arcs_to_consider(::PROTOBUF_NAMESPACE_ID::int32 value);
1156  public:
1157 
1158  // bool use_unfiltered_first_solution_strategy = 2;
1162  private:
1163  bool _internal_use_unfiltered_first_solution_strategy() const;
1164  void _internal_set_use_unfiltered_first_solution_strategy(bool value);
1165  public:
1166 
1167  // bool savings_add_reverse_arcs = 15;
1169  bool savings_add_reverse_arcs() const;
1171  private:
1172  bool _internal_savings_add_reverse_arcs() const;
1173  void _internal_set_savings_add_reverse_arcs(bool value);
1174  public:
1175 
1176  // bool savings_parallel_routes = 19;
1178  bool savings_parallel_routes() const;
1180  private:
1181  bool _internal_savings_parallel_routes() const;
1182  void _internal_set_savings_parallel_routes(bool value);
1183  public:
1184 
1185  // bool cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization = 46;
1189  private:
1190  bool _internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() const;
1191  void _internal_set_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(bool value);
1192  public:
1193 
1194  // double cheapest_insertion_first_solution_neighbors_ratio = 21;
1198  private:
1199  double _internal_cheapest_insertion_first_solution_neighbors_ratio() const;
1200  void _internal_set_cheapest_insertion_first_solution_neighbors_ratio(double value);
1201  public:
1202 
1203  // double log_cost_scaling_factor = 22;
1205  double log_cost_scaling_factor() const;
1206  void set_log_cost_scaling_factor(double value);
1207  private:
1208  double _internal_log_cost_scaling_factor() const;
1209  void _internal_set_log_cost_scaling_factor(double value);
1210  public:
1211 
1212  // double savings_max_memory_usage_bytes = 23;
1214  double savings_max_memory_usage_bytes() const;
1216  private:
1217  double _internal_savings_max_memory_usage_bytes() const;
1218  void _internal_set_savings_max_memory_usage_bytes(double value);
1219  public:
1220 
1221  // .operations_research.OptionalBoolean use_cp_sat = 27;
1222  void clear_use_cp_sat();
1225  private:
1226  ::operations_research::OptionalBoolean _internal_use_cp_sat() const;
1227  void _internal_set_use_cp_sat(::operations_research::OptionalBoolean value);
1228  public:
1229 
1230  // .operations_research.OptionalBoolean use_cp = 28;
1231  void clear_use_cp();
1234  private:
1235  ::operations_research::OptionalBoolean _internal_use_cp() const;
1236  void _internal_set_use_cp(::operations_research::OptionalBoolean value);
1237  public:
1238 
1239  // double log_cost_offset = 29;
1240  void clear_log_cost_offset();
1241  double log_cost_offset() const;
1242  void set_log_cost_offset(double value);
1243  private:
1244  double _internal_log_cost_offset() const;
1245  void _internal_set_log_cost_offset(double value);
1246  public:
1247 
1248  // bool cheapest_insertion_add_unperformed_entries = 40;
1252  private:
1253  bool _internal_cheapest_insertion_add_unperformed_entries() const;
1254  void _internal_set_cheapest_insertion_add_unperformed_entries(bool value);
1255  public:
1256 
1257  // bool christofides_use_minimum_matching = 30;
1259  bool christofides_use_minimum_matching() const;
1261  private:
1262  bool _internal_christofides_use_minimum_matching() const;
1263  void _internal_set_christofides_use_minimum_matching(bool value);
1264  public:
1265 
1266  // bool use_multi_armed_bandit_concatenate_operators = 41;
1270  private:
1271  bool _internal_use_multi_armed_bandit_concatenate_operators() const;
1272  void _internal_set_use_multi_armed_bandit_concatenate_operators(bool value);
1273  public:
1274 
1275  // bool use_depth_first_search = 6;
1277  bool use_depth_first_search() const;
1278  void set_use_depth_first_search(bool value);
1279  private:
1280  bool _internal_use_depth_first_search() const;
1281  void _internal_set_use_depth_first_search(bool value);
1282  public:
1283 
1284  // int32 heuristic_expensive_chain_lns_num_arcs_to_consider = 32;
1286  ::PROTOBUF_NAMESPACE_ID::int32 heuristic_expensive_chain_lns_num_arcs_to_consider() const;
1287  void set_heuristic_expensive_chain_lns_num_arcs_to_consider(::PROTOBUF_NAMESPACE_ID::int32 value);
1288  private:
1289  ::PROTOBUF_NAMESPACE_ID::int32 _internal_heuristic_expensive_chain_lns_num_arcs_to_consider() const;
1290  void _internal_set_heuristic_expensive_chain_lns_num_arcs_to_consider(::PROTOBUF_NAMESPACE_ID::int32 value);
1291  public:
1292 
1293  // double cheapest_insertion_ls_operator_neighbors_ratio = 31;
1297  private:
1298  double _internal_cheapest_insertion_ls_operator_neighbors_ratio() const;
1299  void _internal_set_cheapest_insertion_ls_operator_neighbors_ratio(double value);
1300  public:
1301 
1302  // .operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
1306  private:
1307  ::operations_research::RoutingSearchParameters_SchedulingSolver _internal_continuous_scheduling_solver() const;
1308  void _internal_set_continuous_scheduling_solver(::operations_research::RoutingSearchParameters_SchedulingSolver value);
1309  public:
1310 
1311  // .operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
1315  private:
1316  ::operations_research::RoutingSearchParameters_SchedulingSolver _internal_mixed_integer_scheduling_solver() const;
1317  void _internal_set_mixed_integer_scheduling_solver(::operations_research::RoutingSearchParameters_SchedulingSolver value);
1318  public:
1319 
1320  // int32 heuristic_close_nodes_lns_num_nodes = 35;
1322  ::PROTOBUF_NAMESPACE_ID::int32 heuristic_close_nodes_lns_num_nodes() const;
1323  void set_heuristic_close_nodes_lns_num_nodes(::PROTOBUF_NAMESPACE_ID::int32 value);
1324  private:
1325  ::PROTOBUF_NAMESPACE_ID::int32 _internal_heuristic_close_nodes_lns_num_nodes() const;
1326  void _internal_set_heuristic_close_nodes_lns_num_nodes(::PROTOBUF_NAMESPACE_ID::int32 value);
1327  public:
1328 
1329  // int32 cheapest_insertion_first_solution_min_neighbors = 44;
1331  ::PROTOBUF_NAMESPACE_ID::int32 cheapest_insertion_first_solution_min_neighbors() const;
1332  void set_cheapest_insertion_first_solution_min_neighbors(::PROTOBUF_NAMESPACE_ID::int32 value);
1333  private:
1334  ::PROTOBUF_NAMESPACE_ID::int32 _internal_cheapest_insertion_first_solution_min_neighbors() const;
1335  void _internal_set_cheapest_insertion_first_solution_min_neighbors(::PROTOBUF_NAMESPACE_ID::int32 value);
1336  public:
1337 
1338  // double multi_armed_bandit_compound_operator_memory_coefficient = 42;
1342  private:
1343  double _internal_multi_armed_bandit_compound_operator_memory_coefficient() const;
1344  void _internal_set_multi_armed_bandit_compound_operator_memory_coefficient(double value);
1345  public:
1346 
1347  // double multi_armed_bandit_compound_operator_exploration_coefficient = 43;
1351  private:
1352  double _internal_multi_armed_bandit_compound_operator_exploration_coefficient() const;
1353  void _internal_set_multi_armed_bandit_compound_operator_exploration_coefficient(double value);
1354  public:
1355 
1356  // int32 cheapest_insertion_ls_operator_min_neighbors = 45;
1358  ::PROTOBUF_NAMESPACE_ID::int32 cheapest_insertion_ls_operator_min_neighbors() const;
1359  void set_cheapest_insertion_ls_operator_min_neighbors(::PROTOBUF_NAMESPACE_ID::int32 value);
1360  private:
1361  ::PROTOBUF_NAMESPACE_ID::int32 _internal_cheapest_insertion_ls_operator_min_neighbors() const;
1362  void _internal_set_cheapest_insertion_ls_operator_min_neighbors(::PROTOBUF_NAMESPACE_ID::int32 value);
1363  public:
1364 
1365  // .operations_research.OptionalBoolean use_generalized_cp_sat = 47;
1369  private:
1370  ::operations_research::OptionalBoolean _internal_use_generalized_cp_sat() const;
1371  void _internal_set_use_generalized_cp_sat(::operations_research::OptionalBoolean value);
1372  public:
1373 
1374  // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters)
1375  private:
1376  class _Internal;
1377 
1378  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1379  typedef void InternalArenaConstructable_;
1380  typedef void DestructorSkippable_;
1381  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr log_tag_;
1383  PROTOBUF_NAMESPACE_ID::Duration* time_limit_;
1384  PROTOBUF_NAMESPACE_ID::Duration* lns_time_limit_;
1387  int first_solution_strategy_;
1388  int local_search_metaheuristic_;
1389  double guided_local_search_lambda_coefficient_;
1390  double optimization_step_;
1391  ::PROTOBUF_NAMESPACE_ID::int64 solution_limit_;
1392  bool use_full_propagation_;
1393  bool log_search_;
1394  ::PROTOBUF_NAMESPACE_ID::int32 number_of_solutions_to_collect_;
1395  double savings_neighbors_ratio_;
1396  double cheapest_insertion_farthest_seeds_ratio_;
1397  double savings_arc_coefficient_;
1398  ::PROTOBUF_NAMESPACE_ID::int32 relocate_expensive_chain_num_arcs_to_consider_;
1399  bool use_unfiltered_first_solution_strategy_;
1400  bool savings_add_reverse_arcs_;
1401  bool savings_parallel_routes_;
1402  bool cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_;
1403  double cheapest_insertion_first_solution_neighbors_ratio_;
1404  double log_cost_scaling_factor_;
1405  double savings_max_memory_usage_bytes_;
1406  int use_cp_sat_;
1407  int use_cp_;
1408  double log_cost_offset_;
1409  bool cheapest_insertion_add_unperformed_entries_;
1410  bool christofides_use_minimum_matching_;
1411  bool use_multi_armed_bandit_concatenate_operators_;
1412  bool use_depth_first_search_;
1413  ::PROTOBUF_NAMESPACE_ID::int32 heuristic_expensive_chain_lns_num_arcs_to_consider_;
1414  double cheapest_insertion_ls_operator_neighbors_ratio_;
1415  int continuous_scheduling_solver_;
1416  int mixed_integer_scheduling_solver_;
1417  ::PROTOBUF_NAMESPACE_ID::int32 heuristic_close_nodes_lns_num_nodes_;
1418  ::PROTOBUF_NAMESPACE_ID::int32 cheapest_insertion_first_solution_min_neighbors_;
1419  double multi_armed_bandit_compound_operator_memory_coefficient_;
1420  double multi_armed_bandit_compound_operator_exploration_coefficient_;
1421  ::PROTOBUF_NAMESPACE_ID::int32 cheapest_insertion_ls_operator_min_neighbors_;
1422  int use_generalized_cp_sat_;
1423  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1424  friend struct ::TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto;
1425 };
1426 // -------------------------------------------------------------------
1427 
1429  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.RoutingModelParameters) */ {
1430  public:
1432  ~RoutingModelParameters() override;
1433  explicit constexpr RoutingModelParameters(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
1434 
1438  *this = ::std::move(from);
1439  }
1440 
1442  CopyFrom(from);
1443  return *this;
1444  }
1446  if (this == &from) return *this;
1447  if (GetOwningArena() == from.GetOwningArena()) {
1448  InternalSwap(&from);
1449  } else {
1450  CopyFrom(from);
1451  }
1452  return *this;
1453  }
1454 
1455  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
1456  return GetDescriptor();
1457  }
1458  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
1459  return default_instance().GetMetadata().descriptor;
1460  }
1461  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
1462  return default_instance().GetMetadata().reflection;
1463  }
1465  return *internal_default_instance();
1466  }
1468  return reinterpret_cast<const RoutingModelParameters*>(
1470  }
1471  static constexpr int kIndexInFileMessages =
1472  3;
1473 
1475  a.Swap(&b);
1476  }
1477  inline void Swap(RoutingModelParameters* other) {
1478  if (other == this) return;
1479  if (GetOwningArena() == other->GetOwningArena()) {
1480  InternalSwap(other);
1481  } else {
1482  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1483  }
1484  }
1486  if (other == this) return;
1487  GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
1488  InternalSwap(other);
1489  }
1490 
1491  // implements Message ----------------------------------------------
1492 
1493  inline RoutingModelParameters* New() const final {
1494  return new RoutingModelParameters();
1495  }
1496 
1497  RoutingModelParameters* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
1498  return CreateMaybeMessage<RoutingModelParameters>(arena);
1499  }
1500  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
1501  void CopyFrom(const RoutingModelParameters& from);
1502  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
1503  void MergeFrom(const RoutingModelParameters& from);
1504  private:
1505  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
1506  public:
1507  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1508  bool IsInitialized() const final;
1509 
1510  size_t ByteSizeLong() const final;
1511  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1512  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
1513  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1514  int GetCachedSize() const final { return _cached_size_.Get(); }
1515 
1516  private:
1517  void SharedCtor();
1518  void SharedDtor();
1519  void SetCachedSize(int size) const final;
1520  void InternalSwap(RoutingModelParameters* other);
1521  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1522  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1523  return "operations_research.RoutingModelParameters";
1524  }
1525  protected:
1526  explicit RoutingModelParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1527  bool is_message_owned = false);
1528  private:
1529  static void ArenaDtor(void* object);
1530  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1531  public:
1532 
1533  static const ClassData _class_data_;
1534  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
1535 
1536  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1537 
1538  // nested types ----------------------------------------------------
1539 
1540  // accessors -------------------------------------------------------
1541 
1542  enum : int {
1546  };
1547  // .operations_research.ConstraintSolverParameters solver_parameters = 1;
1548  bool has_solver_parameters() const;
1549  private:
1550  bool _internal_has_solver_parameters() const;
1551  public:
1552  void clear_solver_parameters();
1553  const ::operations_research::ConstraintSolverParameters& solver_parameters() const;
1554  PROTOBUF_MUST_USE_RESULT ::operations_research::ConstraintSolverParameters* release_solver_parameters();
1557  private:
1558  const ::operations_research::ConstraintSolverParameters& _internal_solver_parameters() const;
1559  ::operations_research::ConstraintSolverParameters* _internal_mutable_solver_parameters();
1560  public:
1564 
1565  // bool reduce_vehicle_cost_model = 2;
1567  bool reduce_vehicle_cost_model() const;
1569  private:
1570  bool _internal_reduce_vehicle_cost_model() const;
1571  void _internal_set_reduce_vehicle_cost_model(bool value);
1572  public:
1573 
1574  // int32 max_callback_cache_size = 3;
1576  ::PROTOBUF_NAMESPACE_ID::int32 max_callback_cache_size() const;
1577  void set_max_callback_cache_size(::PROTOBUF_NAMESPACE_ID::int32 value);
1578  private:
1579  ::PROTOBUF_NAMESPACE_ID::int32 _internal_max_callback_cache_size() const;
1580  void _internal_set_max_callback_cache_size(::PROTOBUF_NAMESPACE_ID::int32 value);
1581  public:
1582 
1583  // @@protoc_insertion_point(class_scope:operations_research.RoutingModelParameters)
1584  private:
1585  class _Internal;
1586 
1587  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1588  typedef void InternalArenaConstructable_;
1589  typedef void DestructorSkippable_;
1591  bool reduce_vehicle_cost_model_;
1592  ::PROTOBUF_NAMESPACE_ID::int32 max_callback_cache_size_;
1593  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1594  friend struct ::TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto;
1595 };
1596 // ===================================================================
1597 
1598 
1599 // ===================================================================
1600 
1601 #ifdef __GNUC__
1602  #pragma GCC diagnostic push
1603  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
1604 #endif // __GNUC__
1605 // RoutingSearchParameters_LocalSearchNeighborhoodOperators
1606 
1607 // .operations_research.OptionalBoolean use_relocate = 1;
1609  use_relocate_ = 0;
1610 }
1611 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate() const {
1612  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_);
1613 }
1615  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate)
1616  return _internal_use_relocate();
1617 }
1618 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate(::operations_research::OptionalBoolean value) {
1619 
1620  use_relocate_ = value;
1621 }
1623  _internal_set_use_relocate(value);
1624  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate)
1625 }
1626 
1627 // .operations_research.OptionalBoolean use_relocate_pair = 2;
1629  use_relocate_pair_ = 0;
1630 }
1631 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate_pair() const {
1632  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_pair_);
1633 }
1635  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_pair)
1636  return _internal_use_relocate_pair();
1637 }
1638 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate_pair(::operations_research::OptionalBoolean value) {
1639 
1640  use_relocate_pair_ = value;
1641 }
1643  _internal_set_use_relocate_pair(value);
1644  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_pair)
1645 }
1646 
1647 // .operations_research.OptionalBoolean use_light_relocate_pair = 24;
1649  use_light_relocate_pair_ = 0;
1650 }
1651 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_light_relocate_pair() const {
1652  return static_cast< ::operations_research::OptionalBoolean >(use_light_relocate_pair_);
1653 }
1655  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_light_relocate_pair)
1656  return _internal_use_light_relocate_pair();
1657 }
1658 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_light_relocate_pair(::operations_research::OptionalBoolean value) {
1659 
1660  use_light_relocate_pair_ = value;
1661 }
1663  _internal_set_use_light_relocate_pair(value);
1664  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_light_relocate_pair)
1665 }
1666 
1667 // .operations_research.OptionalBoolean use_relocate_neighbors = 3;
1669  use_relocate_neighbors_ = 0;
1670 }
1671 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate_neighbors() const {
1672  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_neighbors_);
1673 }
1675  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_neighbors)
1676  return _internal_use_relocate_neighbors();
1677 }
1678 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate_neighbors(::operations_research::OptionalBoolean value) {
1679 
1680  use_relocate_neighbors_ = value;
1681 }
1683  _internal_set_use_relocate_neighbors(value);
1684  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_neighbors)
1685 }
1686 
1687 // .operations_research.OptionalBoolean use_relocate_subtrip = 25;
1689  use_relocate_subtrip_ = 0;
1690 }
1691 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate_subtrip() const {
1692  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_subtrip_);
1693 }
1695  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_subtrip)
1696  return _internal_use_relocate_subtrip();
1697 }
1698 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate_subtrip(::operations_research::OptionalBoolean value) {
1699 
1700  use_relocate_subtrip_ = value;
1701 }
1703  _internal_set_use_relocate_subtrip(value);
1704  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_subtrip)
1705 }
1706 
1707 // .operations_research.OptionalBoolean use_exchange = 4;
1709  use_exchange_ = 0;
1710 }
1711 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_exchange() const {
1712  return static_cast< ::operations_research::OptionalBoolean >(use_exchange_);
1713 }
1715  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_exchange)
1716  return _internal_use_exchange();
1717 }
1718 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_exchange(::operations_research::OptionalBoolean value) {
1719 
1720  use_exchange_ = value;
1721 }
1723  _internal_set_use_exchange(value);
1724  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_exchange)
1725 }
1726 
1727 // .operations_research.OptionalBoolean use_exchange_pair = 22;
1729  use_exchange_pair_ = 0;
1730 }
1731 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_exchange_pair() const {
1732  return static_cast< ::operations_research::OptionalBoolean >(use_exchange_pair_);
1733 }
1735  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_exchange_pair)
1736  return _internal_use_exchange_pair();
1737 }
1738 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_exchange_pair(::operations_research::OptionalBoolean value) {
1739 
1740  use_exchange_pair_ = value;
1741 }
1743  _internal_set_use_exchange_pair(value);
1744  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_exchange_pair)
1745 }
1746 
1747 // .operations_research.OptionalBoolean use_exchange_subtrip = 26;
1749  use_exchange_subtrip_ = 0;
1750 }
1751 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_exchange_subtrip() const {
1752  return static_cast< ::operations_research::OptionalBoolean >(use_exchange_subtrip_);
1753 }
1755  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_exchange_subtrip)
1756  return _internal_use_exchange_subtrip();
1757 }
1758 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_exchange_subtrip(::operations_research::OptionalBoolean value) {
1759 
1760  use_exchange_subtrip_ = value;
1761 }
1763  _internal_set_use_exchange_subtrip(value);
1764  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_exchange_subtrip)
1765 }
1766 
1767 // .operations_research.OptionalBoolean use_cross = 5;
1769  use_cross_ = 0;
1770 }
1771 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_cross() const {
1772  return static_cast< ::operations_research::OptionalBoolean >(use_cross_);
1773 }
1775  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_cross)
1776  return _internal_use_cross();
1777 }
1778 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_cross(::operations_research::OptionalBoolean value) {
1779 
1780  use_cross_ = value;
1781 }
1783  _internal_set_use_cross(value);
1784  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_cross)
1785 }
1786 
1787 // .operations_research.OptionalBoolean use_cross_exchange = 6;
1789  use_cross_exchange_ = 0;
1790 }
1791 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_cross_exchange() const {
1792  return static_cast< ::operations_research::OptionalBoolean >(use_cross_exchange_);
1793 }
1795  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_cross_exchange)
1796  return _internal_use_cross_exchange();
1797 }
1798 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_cross_exchange(::operations_research::OptionalBoolean value) {
1799 
1800  use_cross_exchange_ = value;
1801 }
1803  _internal_set_use_cross_exchange(value);
1804  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_cross_exchange)
1805 }
1806 
1807 // .operations_research.OptionalBoolean use_relocate_expensive_chain = 23;
1809  use_relocate_expensive_chain_ = 0;
1810 }
1811 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate_expensive_chain() const {
1812  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_expensive_chain_);
1813 }
1815  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_expensive_chain)
1816  return _internal_use_relocate_expensive_chain();
1817 }
1818 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate_expensive_chain(::operations_research::OptionalBoolean value) {
1819 
1820  use_relocate_expensive_chain_ = value;
1821 }
1823  _internal_set_use_relocate_expensive_chain(value);
1824  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_expensive_chain)
1825 }
1826 
1827 // .operations_research.OptionalBoolean use_two_opt = 7;
1829  use_two_opt_ = 0;
1830 }
1831 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_two_opt() const {
1832  return static_cast< ::operations_research::OptionalBoolean >(use_two_opt_);
1833 }
1835  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_two_opt)
1836  return _internal_use_two_opt();
1837 }
1838 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_two_opt(::operations_research::OptionalBoolean value) {
1839 
1840  use_two_opt_ = value;
1841 }
1843  _internal_set_use_two_opt(value);
1844  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_two_opt)
1845 }
1846 
1847 // .operations_research.OptionalBoolean use_or_opt = 8;
1849  use_or_opt_ = 0;
1850 }
1851 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_or_opt() const {
1852  return static_cast< ::operations_research::OptionalBoolean >(use_or_opt_);
1853 }
1855  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_or_opt)
1856  return _internal_use_or_opt();
1857 }
1858 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_or_opt(::operations_research::OptionalBoolean value) {
1859 
1860  use_or_opt_ = value;
1861 }
1863  _internal_set_use_or_opt(value);
1864  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_or_opt)
1865 }
1866 
1867 // .operations_research.OptionalBoolean use_lin_kernighan = 9;
1869  use_lin_kernighan_ = 0;
1870 }
1871 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_lin_kernighan() const {
1872  return static_cast< ::operations_research::OptionalBoolean >(use_lin_kernighan_);
1873 }
1875  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_lin_kernighan)
1876  return _internal_use_lin_kernighan();
1877 }
1878 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_lin_kernighan(::operations_research::OptionalBoolean value) {
1879 
1880  use_lin_kernighan_ = value;
1881 }
1883  _internal_set_use_lin_kernighan(value);
1884  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_lin_kernighan)
1885 }
1886 
1887 // .operations_research.OptionalBoolean use_tsp_opt = 10;
1889  use_tsp_opt_ = 0;
1890 }
1891 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_tsp_opt() const {
1892  return static_cast< ::operations_research::OptionalBoolean >(use_tsp_opt_);
1893 }
1895  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_tsp_opt)
1896  return _internal_use_tsp_opt();
1897 }
1898 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_tsp_opt(::operations_research::OptionalBoolean value) {
1899 
1900  use_tsp_opt_ = value;
1901 }
1903  _internal_set_use_tsp_opt(value);
1904  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_tsp_opt)
1905 }
1906 
1907 // .operations_research.OptionalBoolean use_make_active = 11;
1909  use_make_active_ = 0;
1910 }
1911 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_make_active() const {
1912  return static_cast< ::operations_research::OptionalBoolean >(use_make_active_);
1913 }
1915  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_make_active)
1916  return _internal_use_make_active();
1917 }
1918 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_make_active(::operations_research::OptionalBoolean value) {
1919 
1920  use_make_active_ = value;
1921 }
1923  _internal_set_use_make_active(value);
1924  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_make_active)
1925 }
1926 
1927 // .operations_research.OptionalBoolean use_relocate_and_make_active = 21;
1929  use_relocate_and_make_active_ = 0;
1930 }
1931 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate_and_make_active() const {
1932  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_and_make_active_);
1933 }
1935  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_and_make_active)
1936  return _internal_use_relocate_and_make_active();
1937 }
1938 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate_and_make_active(::operations_research::OptionalBoolean value) {
1939 
1940  use_relocate_and_make_active_ = value;
1941 }
1943  _internal_set_use_relocate_and_make_active(value);
1944  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_and_make_active)
1945 }
1946 
1947 // .operations_research.OptionalBoolean use_make_inactive = 12;
1949  use_make_inactive_ = 0;
1950 }
1951 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_make_inactive() const {
1952  return static_cast< ::operations_research::OptionalBoolean >(use_make_inactive_);
1953 }
1955  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_make_inactive)
1956  return _internal_use_make_inactive();
1957 }
1958 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_make_inactive(::operations_research::OptionalBoolean value) {
1959 
1960  use_make_inactive_ = value;
1961 }
1963  _internal_set_use_make_inactive(value);
1964  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_make_inactive)
1965 }
1966 
1967 // .operations_research.OptionalBoolean use_make_chain_inactive = 13;
1969  use_make_chain_inactive_ = 0;
1970 }
1971 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_make_chain_inactive() const {
1972  return static_cast< ::operations_research::OptionalBoolean >(use_make_chain_inactive_);
1973 }
1975  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_make_chain_inactive)
1976  return _internal_use_make_chain_inactive();
1977 }
1978 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_make_chain_inactive(::operations_research::OptionalBoolean value) {
1979 
1980  use_make_chain_inactive_ = value;
1981 }
1983  _internal_set_use_make_chain_inactive(value);
1984  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_make_chain_inactive)
1985 }
1986 
1987 // .operations_research.OptionalBoolean use_swap_active = 14;
1989  use_swap_active_ = 0;
1990 }
1991 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_swap_active() const {
1992  return static_cast< ::operations_research::OptionalBoolean >(use_swap_active_);
1993 }
1995  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_swap_active)
1996  return _internal_use_swap_active();
1997 }
1998 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_swap_active(::operations_research::OptionalBoolean value) {
1999 
2000  use_swap_active_ = value;
2001 }
2003  _internal_set_use_swap_active(value);
2004  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_swap_active)
2005 }
2006 
2007 // .operations_research.OptionalBoolean use_extended_swap_active = 15;
2009  use_extended_swap_active_ = 0;
2010 }
2011 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_extended_swap_active() const {
2012  return static_cast< ::operations_research::OptionalBoolean >(use_extended_swap_active_);
2013 }
2015  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_extended_swap_active)
2016  return _internal_use_extended_swap_active();
2017 }
2018 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_extended_swap_active(::operations_research::OptionalBoolean value) {
2019 
2020  use_extended_swap_active_ = value;
2021 }
2023  _internal_set_use_extended_swap_active(value);
2024  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_extended_swap_active)
2025 }
2026 
2027 // .operations_research.OptionalBoolean use_node_pair_swap_active = 20;
2029  use_node_pair_swap_active_ = 0;
2030 }
2031 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_node_pair_swap_active() const {
2032  return static_cast< ::operations_research::OptionalBoolean >(use_node_pair_swap_active_);
2033 }
2035  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_node_pair_swap_active)
2036  return _internal_use_node_pair_swap_active();
2037 }
2038 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_node_pair_swap_active(::operations_research::OptionalBoolean value) {
2039 
2040  use_node_pair_swap_active_ = value;
2041 }
2043  _internal_set_use_node_pair_swap_active(value);
2044  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_node_pair_swap_active)
2045 }
2046 
2047 // .operations_research.OptionalBoolean use_path_lns = 16;
2049  use_path_lns_ = 0;
2050 }
2051 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_path_lns() const {
2052  return static_cast< ::operations_research::OptionalBoolean >(use_path_lns_);
2053 }
2055  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_path_lns)
2056  return _internal_use_path_lns();
2057 }
2058 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_path_lns(::operations_research::OptionalBoolean value) {
2059 
2060  use_path_lns_ = value;
2061 }
2063  _internal_set_use_path_lns(value);
2064  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_path_lns)
2065 }
2066 
2067 // .operations_research.OptionalBoolean use_full_path_lns = 17;
2069  use_full_path_lns_ = 0;
2070 }
2071 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_full_path_lns() const {
2072  return static_cast< ::operations_research::OptionalBoolean >(use_full_path_lns_);
2073 }
2075  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_full_path_lns)
2076  return _internal_use_full_path_lns();
2077 }
2078 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_full_path_lns(::operations_research::OptionalBoolean value) {
2079 
2080  use_full_path_lns_ = value;
2081 }
2083  _internal_set_use_full_path_lns(value);
2084  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_full_path_lns)
2085 }
2086 
2087 // .operations_research.OptionalBoolean use_tsp_lns = 18;
2089  use_tsp_lns_ = 0;
2090 }
2091 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_tsp_lns() const {
2092  return static_cast< ::operations_research::OptionalBoolean >(use_tsp_lns_);
2093 }
2095  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_tsp_lns)
2096  return _internal_use_tsp_lns();
2097 }
2098 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_tsp_lns(::operations_research::OptionalBoolean value) {
2099 
2100  use_tsp_lns_ = value;
2101 }
2103  _internal_set_use_tsp_lns(value);
2104  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_tsp_lns)
2105 }
2106 
2107 // .operations_research.OptionalBoolean use_inactive_lns = 19;
2109  use_inactive_lns_ = 0;
2110 }
2111 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_inactive_lns() const {
2112  return static_cast< ::operations_research::OptionalBoolean >(use_inactive_lns_);
2113 }
2115  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_inactive_lns)
2116  return _internal_use_inactive_lns();
2117 }
2118 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_inactive_lns(::operations_research::OptionalBoolean value) {
2119 
2120  use_inactive_lns_ = value;
2121 }
2123  _internal_set_use_inactive_lns(value);
2124  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_inactive_lns)
2125 }
2126 
2127 // .operations_research.OptionalBoolean use_global_cheapest_insertion_path_lns = 27;
2129  use_global_cheapest_insertion_path_lns_ = 0;
2130 }
2131 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_global_cheapest_insertion_path_lns() const {
2132  return static_cast< ::operations_research::OptionalBoolean >(use_global_cheapest_insertion_path_lns_);
2133 }
2135  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_global_cheapest_insertion_path_lns)
2136  return _internal_use_global_cheapest_insertion_path_lns();
2137 }
2138 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_global_cheapest_insertion_path_lns(::operations_research::OptionalBoolean value) {
2139 
2140  use_global_cheapest_insertion_path_lns_ = value;
2141 }
2143  _internal_set_use_global_cheapest_insertion_path_lns(value);
2144  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_global_cheapest_insertion_path_lns)
2145 }
2146 
2147 // .operations_research.OptionalBoolean use_local_cheapest_insertion_path_lns = 28;
2149  use_local_cheapest_insertion_path_lns_ = 0;
2150 }
2151 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_local_cheapest_insertion_path_lns() const {
2152  return static_cast< ::operations_research::OptionalBoolean >(use_local_cheapest_insertion_path_lns_);
2153 }
2155  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_local_cheapest_insertion_path_lns)
2156  return _internal_use_local_cheapest_insertion_path_lns();
2157 }
2158 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_local_cheapest_insertion_path_lns(::operations_research::OptionalBoolean value) {
2159 
2160  use_local_cheapest_insertion_path_lns_ = value;
2161 }
2163  _internal_set_use_local_cheapest_insertion_path_lns(value);
2164  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_local_cheapest_insertion_path_lns)
2165 }
2166 
2167 // .operations_research.OptionalBoolean use_relocate_path_global_cheapest_insertion_insert_unperformed = 33;
2169  use_relocate_path_global_cheapest_insertion_insert_unperformed_ = 0;
2170 }
2171 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() const {
2172  return static_cast< ::operations_research::OptionalBoolean >(use_relocate_path_global_cheapest_insertion_insert_unperformed_);
2173 }
2175  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_path_global_cheapest_insertion_insert_unperformed)
2176  return _internal_use_relocate_path_global_cheapest_insertion_insert_unperformed();
2177 }
2178 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_relocate_path_global_cheapest_insertion_insert_unperformed(::operations_research::OptionalBoolean value) {
2179 
2180  use_relocate_path_global_cheapest_insertion_insert_unperformed_ = value;
2181 }
2183  _internal_set_use_relocate_path_global_cheapest_insertion_insert_unperformed(value);
2184  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_relocate_path_global_cheapest_insertion_insert_unperformed)
2185 }
2186 
2187 // .operations_research.OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns = 29;
2189  use_global_cheapest_insertion_expensive_chain_lns_ = 0;
2190 }
2191 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_global_cheapest_insertion_expensive_chain_lns() const {
2192  return static_cast< ::operations_research::OptionalBoolean >(use_global_cheapest_insertion_expensive_chain_lns_);
2193 }
2195  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_global_cheapest_insertion_expensive_chain_lns)
2196  return _internal_use_global_cheapest_insertion_expensive_chain_lns();
2197 }
2198 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_global_cheapest_insertion_expensive_chain_lns(::operations_research::OptionalBoolean value) {
2199 
2200  use_global_cheapest_insertion_expensive_chain_lns_ = value;
2201 }
2203  _internal_set_use_global_cheapest_insertion_expensive_chain_lns(value);
2204  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_global_cheapest_insertion_expensive_chain_lns)
2205 }
2206 
2207 // .operations_research.OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns = 30;
2209  use_local_cheapest_insertion_expensive_chain_lns_ = 0;
2210 }
2211 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_local_cheapest_insertion_expensive_chain_lns() const {
2212  return static_cast< ::operations_research::OptionalBoolean >(use_local_cheapest_insertion_expensive_chain_lns_);
2213 }
2215  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_local_cheapest_insertion_expensive_chain_lns)
2216  return _internal_use_local_cheapest_insertion_expensive_chain_lns();
2217 }
2218 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_local_cheapest_insertion_expensive_chain_lns(::operations_research::OptionalBoolean value) {
2219 
2220  use_local_cheapest_insertion_expensive_chain_lns_ = value;
2221 }
2223  _internal_set_use_local_cheapest_insertion_expensive_chain_lns(value);
2224  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_local_cheapest_insertion_expensive_chain_lns)
2225 }
2226 
2227 // .operations_research.OptionalBoolean use_global_cheapest_insertion_close_nodes_lns = 31;
2229  use_global_cheapest_insertion_close_nodes_lns_ = 0;
2230 }
2231 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_global_cheapest_insertion_close_nodes_lns() const {
2232  return static_cast< ::operations_research::OptionalBoolean >(use_global_cheapest_insertion_close_nodes_lns_);
2233 }
2235  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_global_cheapest_insertion_close_nodes_lns)
2236  return _internal_use_global_cheapest_insertion_close_nodes_lns();
2237 }
2238 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_global_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value) {
2239 
2240  use_global_cheapest_insertion_close_nodes_lns_ = value;
2241 }
2243  _internal_set_use_global_cheapest_insertion_close_nodes_lns(value);
2244  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_global_cheapest_insertion_close_nodes_lns)
2245 }
2246 
2247 // .operations_research.OptionalBoolean use_local_cheapest_insertion_close_nodes_lns = 32;
2249  use_local_cheapest_insertion_close_nodes_lns_ = 0;
2250 }
2251 inline ::operations_research::OptionalBoolean RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_use_local_cheapest_insertion_close_nodes_lns() const {
2252  return static_cast< ::operations_research::OptionalBoolean >(use_local_cheapest_insertion_close_nodes_lns_);
2253 }
2255  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_local_cheapest_insertion_close_nodes_lns)
2256  return _internal_use_local_cheapest_insertion_close_nodes_lns();
2257 }
2258 inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::_internal_set_use_local_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value) {
2259 
2260  use_local_cheapest_insertion_close_nodes_lns_ = value;
2261 }
2263  _internal_set_use_local_cheapest_insertion_close_nodes_lns(value);
2264  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators.use_local_cheapest_insertion_close_nodes_lns)
2265 }
2266 
2267 // -------------------------------------------------------------------
2268 
2269 // RoutingSearchParameters_ImprovementSearchLimitParameters
2270 
2271 // double improvement_rate_coefficient = 38;
2273  improvement_rate_coefficient_ = 0;
2274 }
2275 inline double RoutingSearchParameters_ImprovementSearchLimitParameters::_internal_improvement_rate_coefficient() const {
2276  return improvement_rate_coefficient_;
2277 }
2279  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters.improvement_rate_coefficient)
2280  return _internal_improvement_rate_coefficient();
2281 }
2282 inline void RoutingSearchParameters_ImprovementSearchLimitParameters::_internal_set_improvement_rate_coefficient(double value) {
2283 
2284  improvement_rate_coefficient_ = value;
2285 }
2287  _internal_set_improvement_rate_coefficient(value);
2288  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters.improvement_rate_coefficient)
2289 }
2290 
2291 // int32 improvement_rate_solutions_distance = 39;
2293  improvement_rate_solutions_distance_ = 0;
2294 }
2295 inline ::PROTOBUF_NAMESPACE_ID::int32 RoutingSearchParameters_ImprovementSearchLimitParameters::_internal_improvement_rate_solutions_distance() const {
2296  return improvement_rate_solutions_distance_;
2297 }
2299  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters.improvement_rate_solutions_distance)
2300  return _internal_improvement_rate_solutions_distance();
2301 }
2302 inline void RoutingSearchParameters_ImprovementSearchLimitParameters::_internal_set_improvement_rate_solutions_distance(::PROTOBUF_NAMESPACE_ID::int32 value) {
2303 
2304  improvement_rate_solutions_distance_ = value;
2305 }
2307  _internal_set_improvement_rate_solutions_distance(value);
2308  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters.improvement_rate_solutions_distance)
2309 }
2310 
2311 // -------------------------------------------------------------------
2312 
2313 // RoutingSearchParameters
2314 
2315 // .operations_research.FirstSolutionStrategy.Value first_solution_strategy = 1;
2317  first_solution_strategy_ = 0;
2318 }
2319 inline ::operations_research::FirstSolutionStrategy_Value RoutingSearchParameters::_internal_first_solution_strategy() const {
2320  return static_cast< ::operations_research::FirstSolutionStrategy_Value >(first_solution_strategy_);
2321 }
2323  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.first_solution_strategy)
2324  return _internal_first_solution_strategy();
2325 }
2326 inline void RoutingSearchParameters::_internal_set_first_solution_strategy(::operations_research::FirstSolutionStrategy_Value value) {
2327 
2328  first_solution_strategy_ = value;
2329 }
2331  _internal_set_first_solution_strategy(value);
2332  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.first_solution_strategy)
2333 }
2334 
2335 // bool use_unfiltered_first_solution_strategy = 2;
2337  use_unfiltered_first_solution_strategy_ = false;
2338 }
2339 inline bool RoutingSearchParameters::_internal_use_unfiltered_first_solution_strategy() const {
2340  return use_unfiltered_first_solution_strategy_;
2341 }
2343  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_unfiltered_first_solution_strategy)
2344  return _internal_use_unfiltered_first_solution_strategy();
2345 }
2346 inline void RoutingSearchParameters::_internal_set_use_unfiltered_first_solution_strategy(bool value) {
2347 
2348  use_unfiltered_first_solution_strategy_ = value;
2349 }
2351  _internal_set_use_unfiltered_first_solution_strategy(value);
2352  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_unfiltered_first_solution_strategy)
2353 }
2354 
2355 // double savings_neighbors_ratio = 14;
2357  savings_neighbors_ratio_ = 0;
2358 }
2359 inline double RoutingSearchParameters::_internal_savings_neighbors_ratio() const {
2360  return savings_neighbors_ratio_;
2361 }
2363  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.savings_neighbors_ratio)
2364  return _internal_savings_neighbors_ratio();
2365 }
2366 inline void RoutingSearchParameters::_internal_set_savings_neighbors_ratio(double value) {
2367 
2368  savings_neighbors_ratio_ = value;
2369 }
2371  _internal_set_savings_neighbors_ratio(value);
2372  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.savings_neighbors_ratio)
2373 }
2374 
2375 // double savings_max_memory_usage_bytes = 23;
2377  savings_max_memory_usage_bytes_ = 0;
2378 }
2379 inline double RoutingSearchParameters::_internal_savings_max_memory_usage_bytes() const {
2380  return savings_max_memory_usage_bytes_;
2381 }
2383  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.savings_max_memory_usage_bytes)
2384  return _internal_savings_max_memory_usage_bytes();
2385 }
2386 inline void RoutingSearchParameters::_internal_set_savings_max_memory_usage_bytes(double value) {
2387 
2388  savings_max_memory_usage_bytes_ = value;
2389 }
2391  _internal_set_savings_max_memory_usage_bytes(value);
2392  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.savings_max_memory_usage_bytes)
2393 }
2394 
2395 // bool savings_add_reverse_arcs = 15;
2397  savings_add_reverse_arcs_ = false;
2398 }
2399 inline bool RoutingSearchParameters::_internal_savings_add_reverse_arcs() const {
2400  return savings_add_reverse_arcs_;
2401 }
2403  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.savings_add_reverse_arcs)
2404  return _internal_savings_add_reverse_arcs();
2405 }
2406 inline void RoutingSearchParameters::_internal_set_savings_add_reverse_arcs(bool value) {
2407 
2408  savings_add_reverse_arcs_ = value;
2409 }
2411  _internal_set_savings_add_reverse_arcs(value);
2412  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.savings_add_reverse_arcs)
2413 }
2414 
2415 // double savings_arc_coefficient = 18;
2417  savings_arc_coefficient_ = 0;
2418 }
2419 inline double RoutingSearchParameters::_internal_savings_arc_coefficient() const {
2420  return savings_arc_coefficient_;
2421 }
2423  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.savings_arc_coefficient)
2424  return _internal_savings_arc_coefficient();
2425 }
2426 inline void RoutingSearchParameters::_internal_set_savings_arc_coefficient(double value) {
2427 
2428  savings_arc_coefficient_ = value;
2429 }
2431  _internal_set_savings_arc_coefficient(value);
2432  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.savings_arc_coefficient)
2433 }
2434 
2435 // bool savings_parallel_routes = 19;
2437  savings_parallel_routes_ = false;
2438 }
2439 inline bool RoutingSearchParameters::_internal_savings_parallel_routes() const {
2440  return savings_parallel_routes_;
2441 }
2443  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.savings_parallel_routes)
2444  return _internal_savings_parallel_routes();
2445 }
2446 inline void RoutingSearchParameters::_internal_set_savings_parallel_routes(bool value) {
2447 
2448  savings_parallel_routes_ = value;
2449 }
2451  _internal_set_savings_parallel_routes(value);
2452  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.savings_parallel_routes)
2453 }
2454 
2455 // double cheapest_insertion_farthest_seeds_ratio = 16;
2457  cheapest_insertion_farthest_seeds_ratio_ = 0;
2458 }
2459 inline double RoutingSearchParameters::_internal_cheapest_insertion_farthest_seeds_ratio() const {
2460  return cheapest_insertion_farthest_seeds_ratio_;
2461 }
2463  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_farthest_seeds_ratio)
2464  return _internal_cheapest_insertion_farthest_seeds_ratio();
2465 }
2466 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_farthest_seeds_ratio(double value) {
2467 
2468  cheapest_insertion_farthest_seeds_ratio_ = value;
2469 }
2471  _internal_set_cheapest_insertion_farthest_seeds_ratio(value);
2472  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_farthest_seeds_ratio)
2473 }
2474 
2475 // double cheapest_insertion_first_solution_neighbors_ratio = 21;
2477  cheapest_insertion_first_solution_neighbors_ratio_ = 0;
2478 }
2479 inline double RoutingSearchParameters::_internal_cheapest_insertion_first_solution_neighbors_ratio() const {
2480  return cheapest_insertion_first_solution_neighbors_ratio_;
2481 }
2483  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_first_solution_neighbors_ratio)
2484  return _internal_cheapest_insertion_first_solution_neighbors_ratio();
2485 }
2486 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_first_solution_neighbors_ratio(double value) {
2487 
2488  cheapest_insertion_first_solution_neighbors_ratio_ = value;
2489 }
2491  _internal_set_cheapest_insertion_first_solution_neighbors_ratio(value);
2492  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_first_solution_neighbors_ratio)
2493 }
2494 
2495 // int32 cheapest_insertion_first_solution_min_neighbors = 44;
2497  cheapest_insertion_first_solution_min_neighbors_ = 0;
2498 }
2499 inline ::PROTOBUF_NAMESPACE_ID::int32 RoutingSearchParameters::_internal_cheapest_insertion_first_solution_min_neighbors() const {
2500  return cheapest_insertion_first_solution_min_neighbors_;
2501 }
2503  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_first_solution_min_neighbors)
2504  return _internal_cheapest_insertion_first_solution_min_neighbors();
2505 }
2506 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_first_solution_min_neighbors(::PROTOBUF_NAMESPACE_ID::int32 value) {
2507 
2508  cheapest_insertion_first_solution_min_neighbors_ = value;
2509 }
2511  _internal_set_cheapest_insertion_first_solution_min_neighbors(value);
2512  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_first_solution_min_neighbors)
2513 }
2514 
2515 // double cheapest_insertion_ls_operator_neighbors_ratio = 31;
2517  cheapest_insertion_ls_operator_neighbors_ratio_ = 0;
2518 }
2519 inline double RoutingSearchParameters::_internal_cheapest_insertion_ls_operator_neighbors_ratio() const {
2520  return cheapest_insertion_ls_operator_neighbors_ratio_;
2521 }
2523  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_ls_operator_neighbors_ratio)
2524  return _internal_cheapest_insertion_ls_operator_neighbors_ratio();
2525 }
2526 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_ls_operator_neighbors_ratio(double value) {
2527 
2528  cheapest_insertion_ls_operator_neighbors_ratio_ = value;
2529 }
2531  _internal_set_cheapest_insertion_ls_operator_neighbors_ratio(value);
2532  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_ls_operator_neighbors_ratio)
2533 }
2534 
2535 // int32 cheapest_insertion_ls_operator_min_neighbors = 45;
2537  cheapest_insertion_ls_operator_min_neighbors_ = 0;
2538 }
2539 inline ::PROTOBUF_NAMESPACE_ID::int32 RoutingSearchParameters::_internal_cheapest_insertion_ls_operator_min_neighbors() const {
2540  return cheapest_insertion_ls_operator_min_neighbors_;
2541 }
2542 inline ::PROTOBUF_NAMESPACE_ID::int32 RoutingSearchParameters::cheapest_insertion_ls_operator_min_neighbors() const {
2543  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_ls_operator_min_neighbors)
2544  return _internal_cheapest_insertion_ls_operator_min_neighbors();
2545 }
2546 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_ls_operator_min_neighbors(::PROTOBUF_NAMESPACE_ID::int32 value) {
2547 
2548  cheapest_insertion_ls_operator_min_neighbors_ = value;
2549 }
2551  _internal_set_cheapest_insertion_ls_operator_min_neighbors(value);
2552  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_ls_operator_min_neighbors)
2553 }
2554 
2555 // bool cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization = 46;
2557  cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_ = false;
2558 }
2559 inline bool RoutingSearchParameters::_internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() const {
2560  return cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_;
2561 }
2563  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization)
2564  return _internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization();
2565 }
2566 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(bool value) {
2567 
2568  cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_ = value;
2569 }
2571  _internal_set_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(value);
2572  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization)
2573 }
2574 
2575 // bool cheapest_insertion_add_unperformed_entries = 40;
2577  cheapest_insertion_add_unperformed_entries_ = false;
2578 }
2579 inline bool RoutingSearchParameters::_internal_cheapest_insertion_add_unperformed_entries() const {
2580  return cheapest_insertion_add_unperformed_entries_;
2581 }
2583  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.cheapest_insertion_add_unperformed_entries)
2584  return _internal_cheapest_insertion_add_unperformed_entries();
2585 }
2586 inline void RoutingSearchParameters::_internal_set_cheapest_insertion_add_unperformed_entries(bool value) {
2587 
2588  cheapest_insertion_add_unperformed_entries_ = value;
2589 }
2591  _internal_set_cheapest_insertion_add_unperformed_entries(value);
2592  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.cheapest_insertion_add_unperformed_entries)
2593 }
2594 
2595 // bool christofides_use_minimum_matching = 30;
2597  christofides_use_minimum_matching_ = false;
2598 }
2599 inline bool RoutingSearchParameters::_internal_christofides_use_minimum_matching() const {
2600  return christofides_use_minimum_matching_;
2601 }
2603  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.christofides_use_minimum_matching)
2604  return _internal_christofides_use_minimum_matching();
2605 }
2606 inline void RoutingSearchParameters::_internal_set_christofides_use_minimum_matching(bool value) {
2607 
2608  christofides_use_minimum_matching_ = value;
2609 }
2611  _internal_set_christofides_use_minimum_matching(value);
2612  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.christofides_use_minimum_matching)
2613 }
2614 
2615 // .operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators = 3;
2616 inline bool RoutingSearchParameters::_internal_has_local_search_operators() const {
2617  return this != internal_default_instance() && local_search_operators_ != nullptr;
2618 }
2620  return _internal_has_local_search_operators();
2621 }
2623  if (GetArenaForAllocation() == nullptr && local_search_operators_ != nullptr) {
2624  delete local_search_operators_;
2625  }
2626  local_search_operators_ = nullptr;
2627 }
2628 inline const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators& RoutingSearchParameters::_internal_local_search_operators() const {
2629  const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* p = local_search_operators_;
2630  return p != nullptr ? *p : reinterpret_cast<const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators&>(
2632 }
2633 inline const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators& RoutingSearchParameters::local_search_operators() const {
2634  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.local_search_operators)
2635  return _internal_local_search_operators();
2636 }
2639  if (GetArenaForAllocation() == nullptr) {
2640  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(local_search_operators_);
2641  }
2642  local_search_operators_ = local_search_operators;
2643  if (local_search_operators) {
2644 
2645  } else {
2646 
2647  }
2648  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.RoutingSearchParameters.local_search_operators)
2649 }
2650 inline ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* RoutingSearchParameters::release_local_search_operators() {
2651 
2653  local_search_operators_ = nullptr;
2654 #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
2655  auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
2656  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2657  if (GetArenaForAllocation() == nullptr) { delete old; }
2658 #else // PROTOBUF_FORCE_COPY_IN_RELEASE
2659  if (GetArenaForAllocation() != nullptr) {
2660  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2661  }
2662 #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
2663  return temp;
2664 }
2665 inline ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* RoutingSearchParameters::unsafe_arena_release_local_search_operators() {
2666  // @@protoc_insertion_point(field_release:operations_research.RoutingSearchParameters.local_search_operators)
2667 
2669  local_search_operators_ = nullptr;
2670  return temp;
2671 }
2672 inline ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* RoutingSearchParameters::_internal_mutable_local_search_operators() {
2673 
2674  if (local_search_operators_ == nullptr) {
2675  auto* p = CreateMaybeMessage<::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators>(GetArenaForAllocation());
2676  local_search_operators_ = p;
2677  }
2678  return local_search_operators_;
2679 }
2680 inline ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* RoutingSearchParameters::mutable_local_search_operators() {
2681  ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* _msg = _internal_mutable_local_search_operators();
2682  // @@protoc_insertion_point(field_mutable:operations_research.RoutingSearchParameters.local_search_operators)
2683  return _msg;
2684 }
2686  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
2687  if (message_arena == nullptr) {
2688  delete local_search_operators_;
2689  }
2690  if (local_search_operators) {
2691  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
2692  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators>::GetOwningArena(local_search_operators);
2693  if (message_arena != submessage_arena) {
2694  local_search_operators = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
2695  message_arena, local_search_operators, submessage_arena);
2696  }
2697 
2698  } else {
2699 
2700  }
2701  local_search_operators_ = local_search_operators;
2702  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingSearchParameters.local_search_operators)
2703 }
2704 
2705 // bool use_multi_armed_bandit_concatenate_operators = 41;
2707  use_multi_armed_bandit_concatenate_operators_ = false;
2708 }
2709 inline bool RoutingSearchParameters::_internal_use_multi_armed_bandit_concatenate_operators() const {
2710  return use_multi_armed_bandit_concatenate_operators_;
2711 }
2713  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_multi_armed_bandit_concatenate_operators)
2714  return _internal_use_multi_armed_bandit_concatenate_operators();
2715 }
2716 inline void RoutingSearchParameters::_internal_set_use_multi_armed_bandit_concatenate_operators(bool value) {
2717 
2718  use_multi_armed_bandit_concatenate_operators_ = value;
2719 }
2721  _internal_set_use_multi_armed_bandit_concatenate_operators(value);
2722  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_multi_armed_bandit_concatenate_operators)
2723 }
2724 
2725 // double multi_armed_bandit_compound_operator_memory_coefficient = 42;
2727  multi_armed_bandit_compound_operator_memory_coefficient_ = 0;
2728 }
2729 inline double RoutingSearchParameters::_internal_multi_armed_bandit_compound_operator_memory_coefficient() const {
2730  return multi_armed_bandit_compound_operator_memory_coefficient_;
2731 }
2733  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.multi_armed_bandit_compound_operator_memory_coefficient)
2734  return _internal_multi_armed_bandit_compound_operator_memory_coefficient();
2735 }
2736 inline void RoutingSearchParameters::_internal_set_multi_armed_bandit_compound_operator_memory_coefficient(double value) {
2737 
2738  multi_armed_bandit_compound_operator_memory_coefficient_ = value;
2739 }
2741  _internal_set_multi_armed_bandit_compound_operator_memory_coefficient(value);
2742  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.multi_armed_bandit_compound_operator_memory_coefficient)
2743 }
2744 
2745 // double multi_armed_bandit_compound_operator_exploration_coefficient = 43;
2747  multi_armed_bandit_compound_operator_exploration_coefficient_ = 0;
2748 }
2749 inline double RoutingSearchParameters::_internal_multi_armed_bandit_compound_operator_exploration_coefficient() const {
2750  return multi_armed_bandit_compound_operator_exploration_coefficient_;
2751 }
2753  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.multi_armed_bandit_compound_operator_exploration_coefficient)
2754  return _internal_multi_armed_bandit_compound_operator_exploration_coefficient();
2755 }
2756 inline void RoutingSearchParameters::_internal_set_multi_armed_bandit_compound_operator_exploration_coefficient(double value) {
2757 
2758  multi_armed_bandit_compound_operator_exploration_coefficient_ = value;
2759 }
2761  _internal_set_multi_armed_bandit_compound_operator_exploration_coefficient(value);
2762  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.multi_armed_bandit_compound_operator_exploration_coefficient)
2763 }
2764 
2765 // int32 relocate_expensive_chain_num_arcs_to_consider = 20;
2767  relocate_expensive_chain_num_arcs_to_consider_ = 0;
2768 }
2769 inline ::PROTOBUF_NAMESPACE_ID::int32 RoutingSearchParameters::_internal_relocate_expensive_chain_num_arcs_to_consider() const {
2770  return relocate_expensive_chain_num_arcs_to_consider_;
2771 }
2772 inline ::PROTOBUF_NAMESPACE_ID::int32 RoutingSearchParameters::relocate_expensive_chain_num_arcs_to_consider() const {
2773  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.relocate_expensive_chain_num_arcs_to_consider)
2774  return _internal_relocate_expensive_chain_num_arcs_to_consider();
2775 }
2776 inline void RoutingSearchParameters::_internal_set_relocate_expensive_chain_num_arcs_to_consider(::PROTOBUF_NAMESPACE_ID::int32 value) {
2777 
2778  relocate_expensive_chain_num_arcs_to_consider_ = value;
2779 }
2781  _internal_set_relocate_expensive_chain_num_arcs_to_consider(value);
2782  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.relocate_expensive_chain_num_arcs_to_consider)
2783 }
2784 
2785 // int32 heuristic_expensive_chain_lns_num_arcs_to_consider = 32;
2787  heuristic_expensive_chain_lns_num_arcs_to_consider_ = 0;
2788 }
2789 inline ::PROTOBUF_NAMESPACE_ID::int32 RoutingSearchParameters::_internal_heuristic_expensive_chain_lns_num_arcs_to_consider() const {
2790  return heuristic_expensive_chain_lns_num_arcs_to_consider_;
2791 }
2793  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.heuristic_expensive_chain_lns_num_arcs_to_consider)
2794  return _internal_heuristic_expensive_chain_lns_num_arcs_to_consider();
2795 }
2796 inline void RoutingSearchParameters::_internal_set_heuristic_expensive_chain_lns_num_arcs_to_consider(::PROTOBUF_NAMESPACE_ID::int32 value) {
2797 
2798  heuristic_expensive_chain_lns_num_arcs_to_consider_ = value;
2799 }
2801  _internal_set_heuristic_expensive_chain_lns_num_arcs_to_consider(value);
2802  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.heuristic_expensive_chain_lns_num_arcs_to_consider)
2803 }
2804 
2805 // int32 heuristic_close_nodes_lns_num_nodes = 35;
2807  heuristic_close_nodes_lns_num_nodes_ = 0;
2808 }
2809 inline ::PROTOBUF_NAMESPACE_ID::int32 RoutingSearchParameters::_internal_heuristic_close_nodes_lns_num_nodes() const {
2810  return heuristic_close_nodes_lns_num_nodes_;
2811 }
2812 inline ::PROTOBUF_NAMESPACE_ID::int32 RoutingSearchParameters::heuristic_close_nodes_lns_num_nodes() const {
2813  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.heuristic_close_nodes_lns_num_nodes)
2814  return _internal_heuristic_close_nodes_lns_num_nodes();
2815 }
2816 inline void RoutingSearchParameters::_internal_set_heuristic_close_nodes_lns_num_nodes(::PROTOBUF_NAMESPACE_ID::int32 value) {
2817 
2818  heuristic_close_nodes_lns_num_nodes_ = value;
2819 }
2821  _internal_set_heuristic_close_nodes_lns_num_nodes(value);
2822  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.heuristic_close_nodes_lns_num_nodes)
2823 }
2824 
2825 // .operations_research.LocalSearchMetaheuristic.Value local_search_metaheuristic = 4;
2827  local_search_metaheuristic_ = 0;
2828 }
2829 inline ::operations_research::LocalSearchMetaheuristic_Value RoutingSearchParameters::_internal_local_search_metaheuristic() const {
2830  return static_cast< ::operations_research::LocalSearchMetaheuristic_Value >(local_search_metaheuristic_);
2831 }
2833  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.local_search_metaheuristic)
2834  return _internal_local_search_metaheuristic();
2835 }
2836 inline void RoutingSearchParameters::_internal_set_local_search_metaheuristic(::operations_research::LocalSearchMetaheuristic_Value value) {
2837 
2838  local_search_metaheuristic_ = value;
2839 }
2841  _internal_set_local_search_metaheuristic(value);
2842  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.local_search_metaheuristic)
2843 }
2844 
2845 // double guided_local_search_lambda_coefficient = 5;
2847  guided_local_search_lambda_coefficient_ = 0;
2848 }
2849 inline double RoutingSearchParameters::_internal_guided_local_search_lambda_coefficient() const {
2850  return guided_local_search_lambda_coefficient_;
2851 }
2853  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.guided_local_search_lambda_coefficient)
2854  return _internal_guided_local_search_lambda_coefficient();
2855 }
2856 inline void RoutingSearchParameters::_internal_set_guided_local_search_lambda_coefficient(double value) {
2857 
2858  guided_local_search_lambda_coefficient_ = value;
2859 }
2861  _internal_set_guided_local_search_lambda_coefficient(value);
2862  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.guided_local_search_lambda_coefficient)
2863 }
2864 
2865 // bool use_depth_first_search = 6;
2867  use_depth_first_search_ = false;
2868 }
2869 inline bool RoutingSearchParameters::_internal_use_depth_first_search() const {
2870  return use_depth_first_search_;
2871 }
2873  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_depth_first_search)
2874  return _internal_use_depth_first_search();
2875 }
2876 inline void RoutingSearchParameters::_internal_set_use_depth_first_search(bool value) {
2877 
2878  use_depth_first_search_ = value;
2879 }
2881  _internal_set_use_depth_first_search(value);
2882  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_depth_first_search)
2883 }
2884 
2885 // .operations_research.OptionalBoolean use_cp = 28;
2887  use_cp_ = 0;
2888 }
2889 inline ::operations_research::OptionalBoolean RoutingSearchParameters::_internal_use_cp() const {
2890  return static_cast< ::operations_research::OptionalBoolean >(use_cp_);
2891 }
2893  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_cp)
2894  return _internal_use_cp();
2895 }
2896 inline void RoutingSearchParameters::_internal_set_use_cp(::operations_research::OptionalBoolean value) {
2897 
2898  use_cp_ = value;
2899 }
2901  _internal_set_use_cp(value);
2902  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_cp)
2903 }
2904 
2905 // .operations_research.OptionalBoolean use_cp_sat = 27;
2907  use_cp_sat_ = 0;
2908 }
2909 inline ::operations_research::OptionalBoolean RoutingSearchParameters::_internal_use_cp_sat() const {
2910  return static_cast< ::operations_research::OptionalBoolean >(use_cp_sat_);
2911 }
2913  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_cp_sat)
2914  return _internal_use_cp_sat();
2915 }
2916 inline void RoutingSearchParameters::_internal_set_use_cp_sat(::operations_research::OptionalBoolean value) {
2917 
2918  use_cp_sat_ = value;
2919 }
2921  _internal_set_use_cp_sat(value);
2922  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_cp_sat)
2923 }
2924 
2925 // .operations_research.OptionalBoolean use_generalized_cp_sat = 47;
2927  use_generalized_cp_sat_ = 0;
2928 }
2929 inline ::operations_research::OptionalBoolean RoutingSearchParameters::_internal_use_generalized_cp_sat() const {
2930  return static_cast< ::operations_research::OptionalBoolean >(use_generalized_cp_sat_);
2931 }
2933  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_generalized_cp_sat)
2934  return _internal_use_generalized_cp_sat();
2935 }
2936 inline void RoutingSearchParameters::_internal_set_use_generalized_cp_sat(::operations_research::OptionalBoolean value) {
2937 
2938  use_generalized_cp_sat_ = value;
2939 }
2941  _internal_set_use_generalized_cp_sat(value);
2942  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_generalized_cp_sat)
2943 }
2944 
2945 // .operations_research.sat.SatParameters sat_parameters = 48;
2946 inline bool RoutingSearchParameters::_internal_has_sat_parameters() const {
2947  return this != internal_default_instance() && sat_parameters_ != nullptr;
2948 }
2950  return _internal_has_sat_parameters();
2951 }
2952 inline const ::operations_research::sat::SatParameters& RoutingSearchParameters::_internal_sat_parameters() const {
2953  const ::operations_research::sat::SatParameters* p = sat_parameters_;
2954  return p != nullptr ? *p : reinterpret_cast<const ::operations_research::sat::SatParameters&>(
2956 }
2957 inline const ::operations_research::sat::SatParameters& RoutingSearchParameters::sat_parameters() const {
2958  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.sat_parameters)
2959  return _internal_sat_parameters();
2960 }
2962  ::operations_research::sat::SatParameters* sat_parameters) {
2963  if (GetArenaForAllocation() == nullptr) {
2964  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sat_parameters_);
2965  }
2966  sat_parameters_ = sat_parameters;
2967  if (sat_parameters) {
2968 
2969  } else {
2970 
2971  }
2972  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.RoutingSearchParameters.sat_parameters)
2973 }
2974 inline ::operations_research::sat::SatParameters* RoutingSearchParameters::release_sat_parameters() {
2975 
2976  ::operations_research::sat::SatParameters* temp = sat_parameters_;
2977  sat_parameters_ = nullptr;
2978 #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
2979  auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
2980  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2981  if (GetArenaForAllocation() == nullptr) { delete old; }
2982 #else // PROTOBUF_FORCE_COPY_IN_RELEASE
2983  if (GetArenaForAllocation() != nullptr) {
2984  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2985  }
2986 #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
2987  return temp;
2988 }
2989 inline ::operations_research::sat::SatParameters* RoutingSearchParameters::unsafe_arena_release_sat_parameters() {
2990  // @@protoc_insertion_point(field_release:operations_research.RoutingSearchParameters.sat_parameters)
2991 
2992  ::operations_research::sat::SatParameters* temp = sat_parameters_;
2993  sat_parameters_ = nullptr;
2994  return temp;
2995 }
2996 inline ::operations_research::sat::SatParameters* RoutingSearchParameters::_internal_mutable_sat_parameters() {
2997 
2998  if (sat_parameters_ == nullptr) {
2999  auto* p = CreateMaybeMessage<::operations_research::sat::SatParameters>(GetArenaForAllocation());
3000  sat_parameters_ = p;
3001  }
3002  return sat_parameters_;
3003 }
3004 inline ::operations_research::sat::SatParameters* RoutingSearchParameters::mutable_sat_parameters() {
3005  ::operations_research::sat::SatParameters* _msg = _internal_mutable_sat_parameters();
3006  // @@protoc_insertion_point(field_mutable:operations_research.RoutingSearchParameters.sat_parameters)
3007  return _msg;
3008 }
3010  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
3011  if (message_arena == nullptr) {
3012  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(sat_parameters_);
3013  }
3014  if (sat_parameters) {
3015  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3017  ::PROTOBUF_NAMESPACE_ID::MessageLite>::GetOwningArena(
3018  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sat_parameters));
3019  if (message_arena != submessage_arena) {
3020  sat_parameters = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3021  message_arena, sat_parameters, submessage_arena);
3022  }
3023 
3024  } else {
3025 
3026  }
3027  sat_parameters_ = sat_parameters;
3028  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingSearchParameters.sat_parameters)
3029 }
3030 
3031 // .operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
3033  continuous_scheduling_solver_ = 0;
3034 }
3035 inline ::operations_research::RoutingSearchParameters_SchedulingSolver RoutingSearchParameters::_internal_continuous_scheduling_solver() const {
3036  return static_cast< ::operations_research::RoutingSearchParameters_SchedulingSolver >(continuous_scheduling_solver_);
3037 }
3039  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.continuous_scheduling_solver)
3040  return _internal_continuous_scheduling_solver();
3041 }
3042 inline void RoutingSearchParameters::_internal_set_continuous_scheduling_solver(::operations_research::RoutingSearchParameters_SchedulingSolver value) {
3043 
3044  continuous_scheduling_solver_ = value;
3045 }
3047  _internal_set_continuous_scheduling_solver(value);
3048  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.continuous_scheduling_solver)
3049 }
3050 
3051 // .operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
3053  mixed_integer_scheduling_solver_ = 0;
3054 }
3055 inline ::operations_research::RoutingSearchParameters_SchedulingSolver RoutingSearchParameters::_internal_mixed_integer_scheduling_solver() const {
3056  return static_cast< ::operations_research::RoutingSearchParameters_SchedulingSolver >(mixed_integer_scheduling_solver_);
3057 }
3059  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.mixed_integer_scheduling_solver)
3060  return _internal_mixed_integer_scheduling_solver();
3061 }
3062 inline void RoutingSearchParameters::_internal_set_mixed_integer_scheduling_solver(::operations_research::RoutingSearchParameters_SchedulingSolver value) {
3063 
3064  mixed_integer_scheduling_solver_ = value;
3065 }
3067  _internal_set_mixed_integer_scheduling_solver(value);
3068  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.mixed_integer_scheduling_solver)
3069 }
3070 
3071 // double optimization_step = 7;
3073  optimization_step_ = 0;
3074 }
3075 inline double RoutingSearchParameters::_internal_optimization_step() const {
3076  return optimization_step_;
3077 }
3079  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.optimization_step)
3080  return _internal_optimization_step();
3081 }
3082 inline void RoutingSearchParameters::_internal_set_optimization_step(double value) {
3083 
3084  optimization_step_ = value;
3085 }
3087  _internal_set_optimization_step(value);
3088  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.optimization_step)
3089 }
3090 
3091 // int32 number_of_solutions_to_collect = 17;
3093  number_of_solutions_to_collect_ = 0;
3094 }
3095 inline ::PROTOBUF_NAMESPACE_ID::int32 RoutingSearchParameters::_internal_number_of_solutions_to_collect() const {
3096  return number_of_solutions_to_collect_;
3097 }
3098 inline ::PROTOBUF_NAMESPACE_ID::int32 RoutingSearchParameters::number_of_solutions_to_collect() const {
3099  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.number_of_solutions_to_collect)
3100  return _internal_number_of_solutions_to_collect();
3101 }
3102 inline void RoutingSearchParameters::_internal_set_number_of_solutions_to_collect(::PROTOBUF_NAMESPACE_ID::int32 value) {
3103 
3104  number_of_solutions_to_collect_ = value;
3105 }
3106 inline void RoutingSearchParameters::set_number_of_solutions_to_collect(::PROTOBUF_NAMESPACE_ID::int32 value) {
3107  _internal_set_number_of_solutions_to_collect(value);
3108  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.number_of_solutions_to_collect)
3109 }
3110 
3111 // int64 solution_limit = 8;
3113  solution_limit_ = int64_t{0};
3114 }
3115 inline ::PROTOBUF_NAMESPACE_ID::int64 RoutingSearchParameters::_internal_solution_limit() const {
3116  return solution_limit_;
3117 }
3118 inline ::PROTOBUF_NAMESPACE_ID::int64 RoutingSearchParameters::solution_limit() const {
3119  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.solution_limit)
3120  return _internal_solution_limit();
3121 }
3122 inline void RoutingSearchParameters::_internal_set_solution_limit(::PROTOBUF_NAMESPACE_ID::int64 value) {
3123 
3124  solution_limit_ = value;
3125 }
3126 inline void RoutingSearchParameters::set_solution_limit(::PROTOBUF_NAMESPACE_ID::int64 value) {
3127  _internal_set_solution_limit(value);
3128  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.solution_limit)
3129 }
3130 
3131 // .google.protobuf.Duration time_limit = 9;
3132 inline bool RoutingSearchParameters::_internal_has_time_limit() const {
3133  return this != internal_default_instance() && time_limit_ != nullptr;
3134 }
3136  return _internal_has_time_limit();
3137 }
3138 inline const PROTOBUF_NAMESPACE_ID::Duration& RoutingSearchParameters::_internal_time_limit() const {
3139  const PROTOBUF_NAMESPACE_ID::Duration* p = time_limit_;
3140  return p != nullptr ? *p : reinterpret_cast<const PROTOBUF_NAMESPACE_ID::Duration&>(
3141  PROTOBUF_NAMESPACE_ID::_Duration_default_instance_);
3142 }
3143 inline const PROTOBUF_NAMESPACE_ID::Duration& RoutingSearchParameters::time_limit() const {
3144  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.time_limit)
3145  return _internal_time_limit();
3146 }
3148  PROTOBUF_NAMESPACE_ID::Duration* time_limit) {
3149  if (GetArenaForAllocation() == nullptr) {
3150  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(time_limit_);
3151  }
3152  time_limit_ = time_limit;
3153  if (time_limit) {
3154 
3155  } else {
3156 
3157  }
3158  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.RoutingSearchParameters.time_limit)
3159 }
3160 inline PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::release_time_limit() {
3161 
3162  PROTOBUF_NAMESPACE_ID::Duration* temp = time_limit_;
3163  time_limit_ = nullptr;
3164 #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
3165  auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
3166  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3167  if (GetArenaForAllocation() == nullptr) { delete old; }
3168 #else // PROTOBUF_FORCE_COPY_IN_RELEASE
3169  if (GetArenaForAllocation() != nullptr) {
3170  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3171  }
3172 #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
3173  return temp;
3174 }
3175 inline PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::unsafe_arena_release_time_limit() {
3176  // @@protoc_insertion_point(field_release:operations_research.RoutingSearchParameters.time_limit)
3177 
3178  PROTOBUF_NAMESPACE_ID::Duration* temp = time_limit_;
3179  time_limit_ = nullptr;
3180  return temp;
3181 }
3182 inline PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::_internal_mutable_time_limit() {
3183 
3184  if (time_limit_ == nullptr) {
3185  auto* p = CreateMaybeMessage<PROTOBUF_NAMESPACE_ID::Duration>(GetArenaForAllocation());
3186  time_limit_ = p;
3187  }
3188  return time_limit_;
3189 }
3190 inline PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::mutable_time_limit() {
3191  PROTOBUF_NAMESPACE_ID::Duration* _msg = _internal_mutable_time_limit();
3192  // @@protoc_insertion_point(field_mutable:operations_research.RoutingSearchParameters.time_limit)
3193  return _msg;
3194 }
3195 inline void RoutingSearchParameters::set_allocated_time_limit(PROTOBUF_NAMESPACE_ID::Duration* time_limit) {
3196  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
3197  if (message_arena == nullptr) {
3198  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(time_limit_);
3199  }
3200  if (time_limit) {
3201  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3203  ::PROTOBUF_NAMESPACE_ID::MessageLite>::GetOwningArena(
3204  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(time_limit));
3205  if (message_arena != submessage_arena) {
3206  time_limit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3207  message_arena, time_limit, submessage_arena);
3208  }
3209 
3210  } else {
3211 
3212  }
3213  time_limit_ = time_limit;
3214  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingSearchParameters.time_limit)
3215 }
3216 
3217 // .google.protobuf.Duration lns_time_limit = 10;
3218 inline bool RoutingSearchParameters::_internal_has_lns_time_limit() const {
3219  return this != internal_default_instance() && lns_time_limit_ != nullptr;
3220 }
3222  return _internal_has_lns_time_limit();
3223 }
3224 inline const PROTOBUF_NAMESPACE_ID::Duration& RoutingSearchParameters::_internal_lns_time_limit() const {
3225  const PROTOBUF_NAMESPACE_ID::Duration* p = lns_time_limit_;
3226  return p != nullptr ? *p : reinterpret_cast<const PROTOBUF_NAMESPACE_ID::Duration&>(
3227  PROTOBUF_NAMESPACE_ID::_Duration_default_instance_);
3228 }
3229 inline const PROTOBUF_NAMESPACE_ID::Duration& RoutingSearchParameters::lns_time_limit() const {
3230  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.lns_time_limit)
3231  return _internal_lns_time_limit();
3232 }
3234  PROTOBUF_NAMESPACE_ID::Duration* lns_time_limit) {
3235  if (GetArenaForAllocation() == nullptr) {
3236  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(lns_time_limit_);
3237  }
3238  lns_time_limit_ = lns_time_limit;
3239  if (lns_time_limit) {
3240 
3241  } else {
3242 
3243  }
3244  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.RoutingSearchParameters.lns_time_limit)
3245 }
3246 inline PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::release_lns_time_limit() {
3247 
3248  PROTOBUF_NAMESPACE_ID::Duration* temp = lns_time_limit_;
3249  lns_time_limit_ = nullptr;
3250 #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
3251  auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
3252  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3253  if (GetArenaForAllocation() == nullptr) { delete old; }
3254 #else // PROTOBUF_FORCE_COPY_IN_RELEASE
3255  if (GetArenaForAllocation() != nullptr) {
3256  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3257  }
3258 #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
3259  return temp;
3260 }
3261 inline PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::unsafe_arena_release_lns_time_limit() {
3262  // @@protoc_insertion_point(field_release:operations_research.RoutingSearchParameters.lns_time_limit)
3263 
3264  PROTOBUF_NAMESPACE_ID::Duration* temp = lns_time_limit_;
3265  lns_time_limit_ = nullptr;
3266  return temp;
3267 }
3268 inline PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::_internal_mutable_lns_time_limit() {
3269 
3270  if (lns_time_limit_ == nullptr) {
3271  auto* p = CreateMaybeMessage<PROTOBUF_NAMESPACE_ID::Duration>(GetArenaForAllocation());
3272  lns_time_limit_ = p;
3273  }
3274  return lns_time_limit_;
3275 }
3276 inline PROTOBUF_NAMESPACE_ID::Duration* RoutingSearchParameters::mutable_lns_time_limit() {
3277  PROTOBUF_NAMESPACE_ID::Duration* _msg = _internal_mutable_lns_time_limit();
3278  // @@protoc_insertion_point(field_mutable:operations_research.RoutingSearchParameters.lns_time_limit)
3279  return _msg;
3280 }
3281 inline void RoutingSearchParameters::set_allocated_lns_time_limit(PROTOBUF_NAMESPACE_ID::Duration* lns_time_limit) {
3282  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
3283  if (message_arena == nullptr) {
3284  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(lns_time_limit_);
3285  }
3286  if (lns_time_limit) {
3287  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3289  ::PROTOBUF_NAMESPACE_ID::MessageLite>::GetOwningArena(
3290  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(lns_time_limit));
3291  if (message_arena != submessage_arena) {
3292  lns_time_limit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3293  message_arena, lns_time_limit, submessage_arena);
3294  }
3295 
3296  } else {
3297 
3298  }
3299  lns_time_limit_ = lns_time_limit;
3300  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingSearchParameters.lns_time_limit)
3301 }
3302 
3303 // .operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters improvement_limit_parameters = 37;
3304 inline bool RoutingSearchParameters::_internal_has_improvement_limit_parameters() const {
3305  return this != internal_default_instance() && improvement_limit_parameters_ != nullptr;
3306 }
3308  return _internal_has_improvement_limit_parameters();
3309 }
3311  if (GetArenaForAllocation() == nullptr && improvement_limit_parameters_ != nullptr) {
3312  delete improvement_limit_parameters_;
3313  }
3314  improvement_limit_parameters_ = nullptr;
3315 }
3316 inline const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters& RoutingSearchParameters::_internal_improvement_limit_parameters() const {
3317  const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* p = improvement_limit_parameters_;
3318  return p != nullptr ? *p : reinterpret_cast<const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters&>(
3320 }
3321 inline const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters& RoutingSearchParameters::improvement_limit_parameters() const {
3322  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.improvement_limit_parameters)
3323  return _internal_improvement_limit_parameters();
3324 }
3327  if (GetArenaForAllocation() == nullptr) {
3328  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(improvement_limit_parameters_);
3329  }
3330  improvement_limit_parameters_ = improvement_limit_parameters;
3332 
3333  } else {
3334 
3335  }
3336  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.RoutingSearchParameters.improvement_limit_parameters)
3337 }
3338 inline ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* RoutingSearchParameters::release_improvement_limit_parameters() {
3339 
3341  improvement_limit_parameters_ = nullptr;
3342 #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
3343  auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
3344  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3345  if (GetArenaForAllocation() == nullptr) { delete old; }
3346 #else // PROTOBUF_FORCE_COPY_IN_RELEASE
3347  if (GetArenaForAllocation() != nullptr) {
3348  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3349  }
3350 #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
3351  return temp;
3352 }
3353 inline ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* RoutingSearchParameters::unsafe_arena_release_improvement_limit_parameters() {
3354  // @@protoc_insertion_point(field_release:operations_research.RoutingSearchParameters.improvement_limit_parameters)
3355 
3357  improvement_limit_parameters_ = nullptr;
3358  return temp;
3359 }
3360 inline ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* RoutingSearchParameters::_internal_mutable_improvement_limit_parameters() {
3361 
3362  if (improvement_limit_parameters_ == nullptr) {
3363  auto* p = CreateMaybeMessage<::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters>(GetArenaForAllocation());
3364  improvement_limit_parameters_ = p;
3365  }
3366  return improvement_limit_parameters_;
3367 }
3368 inline ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* RoutingSearchParameters::mutable_improvement_limit_parameters() {
3369  ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters* _msg = _internal_mutable_improvement_limit_parameters();
3370  // @@protoc_insertion_point(field_mutable:operations_research.RoutingSearchParameters.improvement_limit_parameters)
3371  return _msg;
3372 }
3374  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
3375  if (message_arena == nullptr) {
3376  delete improvement_limit_parameters_;
3377  }
3379  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3380  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters>::GetOwningArena(improvement_limit_parameters);
3381  if (message_arena != submessage_arena) {
3382  improvement_limit_parameters = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3383  message_arena, improvement_limit_parameters, submessage_arena);
3384  }
3385 
3386  } else {
3387 
3388  }
3389  improvement_limit_parameters_ = improvement_limit_parameters;
3390  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingSearchParameters.improvement_limit_parameters)
3391 }
3392 
3393 // bool use_full_propagation = 11;
3395  use_full_propagation_ = false;
3396 }
3397 inline bool RoutingSearchParameters::_internal_use_full_propagation() const {
3398  return use_full_propagation_;
3399 }
3401  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.use_full_propagation)
3402  return _internal_use_full_propagation();
3403 }
3404 inline void RoutingSearchParameters::_internal_set_use_full_propagation(bool value) {
3405 
3406  use_full_propagation_ = value;
3407 }
3409  _internal_set_use_full_propagation(value);
3410  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.use_full_propagation)
3411 }
3412 
3413 // bool log_search = 13;
3415  log_search_ = false;
3416 }
3417 inline bool RoutingSearchParameters::_internal_log_search() const {
3418  return log_search_;
3419 }
3421  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.log_search)
3422  return _internal_log_search();
3423 }
3424 inline void RoutingSearchParameters::_internal_set_log_search(bool value) {
3425 
3426  log_search_ = value;
3427 }
3429  _internal_set_log_search(value);
3430  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.log_search)
3431 }
3432 
3433 // double log_cost_scaling_factor = 22;
3435  log_cost_scaling_factor_ = 0;
3436 }
3437 inline double RoutingSearchParameters::_internal_log_cost_scaling_factor() const {
3438  return log_cost_scaling_factor_;
3439 }
3441  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.log_cost_scaling_factor)
3442  return _internal_log_cost_scaling_factor();
3443 }
3444 inline void RoutingSearchParameters::_internal_set_log_cost_scaling_factor(double value) {
3445 
3446  log_cost_scaling_factor_ = value;
3447 }
3449  _internal_set_log_cost_scaling_factor(value);
3450  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.log_cost_scaling_factor)
3451 }
3452 
3453 // double log_cost_offset = 29;
3455  log_cost_offset_ = 0;
3456 }
3457 inline double RoutingSearchParameters::_internal_log_cost_offset() const {
3458  return log_cost_offset_;
3459 }
3461  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.log_cost_offset)
3462  return _internal_log_cost_offset();
3463 }
3464 inline void RoutingSearchParameters::_internal_set_log_cost_offset(double value) {
3465 
3466  log_cost_offset_ = value;
3467 }
3469  _internal_set_log_cost_offset(value);
3470  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.log_cost_offset)
3471 }
3472 
3473 // string log_tag = 36;
3475  log_tag_.ClearToEmpty();
3476 }
3477 inline const std::string& RoutingSearchParameters::log_tag() const {
3478  // @@protoc_insertion_point(field_get:operations_research.RoutingSearchParameters.log_tag)
3479  return _internal_log_tag();
3480 }
3481 template <typename ArgT0, typename... ArgT>
3482 inline PROTOBUF_ALWAYS_INLINE
3483 void RoutingSearchParameters::set_log_tag(ArgT0&& arg0, ArgT... args) {
3484 
3485  log_tag_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
3486  // @@protoc_insertion_point(field_set:operations_research.RoutingSearchParameters.log_tag)
3487 }
3489  std::string* _s = _internal_mutable_log_tag();
3490  // @@protoc_insertion_point(field_mutable:operations_research.RoutingSearchParameters.log_tag)
3491  return _s;
3492 }
3493 inline const std::string& RoutingSearchParameters::_internal_log_tag() const {
3494  return log_tag_.Get();
3495 }
3496 inline void RoutingSearchParameters::_internal_set_log_tag(const std::string& value) {
3497 
3498  log_tag_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
3499 }
3500 inline std::string* RoutingSearchParameters::_internal_mutable_log_tag() {
3501 
3502  return log_tag_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
3503 }
3505  // @@protoc_insertion_point(field_release:operations_research.RoutingSearchParameters.log_tag)
3506  return log_tag_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
3507 }
3508 inline void RoutingSearchParameters::set_allocated_log_tag(std::string* log_tag) {
3509  if (log_tag != nullptr) {
3510 
3511  } else {
3512 
3513  }
3514  log_tag_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), log_tag,
3515  GetArenaForAllocation());
3516  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingSearchParameters.log_tag)
3517 }
3518 
3519 // -------------------------------------------------------------------
3520 
3521 // RoutingModelParameters
3522 
3523 // .operations_research.ConstraintSolverParameters solver_parameters = 1;
3524 inline bool RoutingModelParameters::_internal_has_solver_parameters() const {
3525  return this != internal_default_instance() && solver_parameters_ != nullptr;
3526 }
3528  return _internal_has_solver_parameters();
3529 }
3530 inline const ::operations_research::ConstraintSolverParameters& RoutingModelParameters::_internal_solver_parameters() const {
3531  const ::operations_research::ConstraintSolverParameters* p = solver_parameters_;
3532  return p != nullptr ? *p : reinterpret_cast<const ::operations_research::ConstraintSolverParameters&>(
3534 }
3535 inline const ::operations_research::ConstraintSolverParameters& RoutingModelParameters::solver_parameters() const {
3536  // @@protoc_insertion_point(field_get:operations_research.RoutingModelParameters.solver_parameters)
3537  return _internal_solver_parameters();
3538 }
3540  ::operations_research::ConstraintSolverParameters* solver_parameters) {
3541  if (GetArenaForAllocation() == nullptr) {
3542  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(solver_parameters_);
3543  }
3544  solver_parameters_ = solver_parameters;
3545  if (solver_parameters) {
3546 
3547  } else {
3548 
3549  }
3550  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.RoutingModelParameters.solver_parameters)
3551 }
3552 inline ::operations_research::ConstraintSolverParameters* RoutingModelParameters::release_solver_parameters() {
3553 
3554  ::operations_research::ConstraintSolverParameters* temp = solver_parameters_;
3555  solver_parameters_ = nullptr;
3556 #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
3557  auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
3558  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3559  if (GetArenaForAllocation() == nullptr) { delete old; }
3560 #else // PROTOBUF_FORCE_COPY_IN_RELEASE
3561  if (GetArenaForAllocation() != nullptr) {
3562  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3563  }
3564 #endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
3565  return temp;
3566 }
3567 inline ::operations_research::ConstraintSolverParameters* RoutingModelParameters::unsafe_arena_release_solver_parameters() {
3568  // @@protoc_insertion_point(field_release:operations_research.RoutingModelParameters.solver_parameters)
3569 
3570  ::operations_research::ConstraintSolverParameters* temp = solver_parameters_;
3571  solver_parameters_ = nullptr;
3572  return temp;
3573 }
3574 inline ::operations_research::ConstraintSolverParameters* RoutingModelParameters::_internal_mutable_solver_parameters() {
3575 
3576  if (solver_parameters_ == nullptr) {
3577  auto* p = CreateMaybeMessage<::operations_research::ConstraintSolverParameters>(GetArenaForAllocation());
3578  solver_parameters_ = p;
3579  }
3580  return solver_parameters_;
3581 }
3582 inline ::operations_research::ConstraintSolverParameters* RoutingModelParameters::mutable_solver_parameters() {
3583  ::operations_research::ConstraintSolverParameters* _msg = _internal_mutable_solver_parameters();
3584  // @@protoc_insertion_point(field_mutable:operations_research.RoutingModelParameters.solver_parameters)
3585  return _msg;
3586 }
3588  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
3589  if (message_arena == nullptr) {
3590  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(solver_parameters_);
3591  }
3592  if (solver_parameters) {
3593  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3595  ::PROTOBUF_NAMESPACE_ID::MessageLite>::GetOwningArena(
3596  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(solver_parameters));
3597  if (message_arena != submessage_arena) {
3598  solver_parameters = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3599  message_arena, solver_parameters, submessage_arena);
3600  }
3601 
3602  } else {
3603 
3604  }
3605  solver_parameters_ = solver_parameters;
3606  // @@protoc_insertion_point(field_set_allocated:operations_research.RoutingModelParameters.solver_parameters)
3607 }
3608 
3609 // bool reduce_vehicle_cost_model = 2;
3611  reduce_vehicle_cost_model_ = false;
3612 }
3613 inline bool RoutingModelParameters::_internal_reduce_vehicle_cost_model() const {
3614  return reduce_vehicle_cost_model_;
3615 }
3617  // @@protoc_insertion_point(field_get:operations_research.RoutingModelParameters.reduce_vehicle_cost_model)
3618  return _internal_reduce_vehicle_cost_model();
3619 }
3620 inline void RoutingModelParameters::_internal_set_reduce_vehicle_cost_model(bool value) {
3621 
3622  reduce_vehicle_cost_model_ = value;
3623 }
3625  _internal_set_reduce_vehicle_cost_model(value);
3626  // @@protoc_insertion_point(field_set:operations_research.RoutingModelParameters.reduce_vehicle_cost_model)
3627 }
3628 
3629 // int32 max_callback_cache_size = 3;
3631  max_callback_cache_size_ = 0;
3632 }
3633 inline ::PROTOBUF_NAMESPACE_ID::int32 RoutingModelParameters::_internal_max_callback_cache_size() const {
3634  return max_callback_cache_size_;
3635 }
3636 inline ::PROTOBUF_NAMESPACE_ID::int32 RoutingModelParameters::max_callback_cache_size() const {
3637  // @@protoc_insertion_point(field_get:operations_research.RoutingModelParameters.max_callback_cache_size)
3638  return _internal_max_callback_cache_size();
3639 }
3640 inline void RoutingModelParameters::_internal_set_max_callback_cache_size(::PROTOBUF_NAMESPACE_ID::int32 value) {
3641 
3642  max_callback_cache_size_ = value;
3643 }
3644 inline void RoutingModelParameters::set_max_callback_cache_size(::PROTOBUF_NAMESPACE_ID::int32 value) {
3645  _internal_set_max_callback_cache_size(value);
3646  // @@protoc_insertion_point(field_set:operations_research.RoutingModelParameters.max_callback_cache_size)
3647 }
3648 
3649 #ifdef __GNUC__
3650  #pragma GCC diagnostic pop
3651 #endif // __GNUC__
3652 // -------------------------------------------------------------------
3653 
3654 // -------------------------------------------------------------------
3655 
3656 // -------------------------------------------------------------------
3657 
3658 
3659 // @@protoc_insertion_point(namespace_scope)
3660 
3661 } // namespace operations_research
3662 
3663 PROTOBUF_NAMESPACE_OPEN
3664 
3665 template <> struct is_proto_enum< ::operations_research::RoutingSearchParameters_SchedulingSolver> : ::std::true_type {};
3666 template <>
3667 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::RoutingSearchParameters_SchedulingSolver>() {
3669 }
3670 
3671 PROTOBUF_NAMESPACE_CLOSE
3672 
3673 // @@protoc_insertion_point(global_scope)
3674 
3675 #include <google/protobuf/port_undef.inc>
3676 #endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
friend void swap(RoutingSearchParameters &a, RoutingSearchParameters &b)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void CopyFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::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 & lns_time_limit() const
int64_t min
Definition: alldiff_cst.cc:139
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal _RoutingSearchParameters_ImprovementSearchLimitParameters_default_instance_
void set_use_relocate_path_global_cheapest_insertion_insert_unperformed(::operations_research::OptionalBoolean value)
RoutingSearchParameters(RoutingSearchParameters &&from) noexcept
RoutingSearchParameters * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
void unsafe_arena_set_allocated_time_limit(PROTOBUF_NAMESPACE_ID::Duration *time_limit)
void unsafe_arena_set_allocated_lns_time_limit(PROTOBUF_NAMESPACE_ID::Duration *lns_time_limit)
ModelSharedTimeLimit * time_limit
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
void set_multi_armed_bandit_compound_operator_exploration_coefficient(double value)
RoutingSearchParameters_LocalSearchNeighborhoodOperators * New() const final
RoutingModelParameters & operator=(RoutingModelParameters &&from) noexcept
::operations_research::ConstraintSolverParameters * unsafe_arena_release_solver_parameters()
static const RoutingSearchParameters_ImprovementSearchLimitParameters & default_instance()
PROTOBUF_MUST_USE_RESULT 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)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingModelParametersDefaultTypeInternal _RoutingModelParameters_default_instance_
::operations_research::RoutingSearchParameters_SchedulingSolver mixed_integer_scheduling_solver() const
PROTOBUF_MUST_USE_RESULT PROTOBUF_NAMESPACE_ID::Duration * release_lns_time_limit()
void set_allocated_lns_time_limit(PROTOBUF_NAMESPACE_ID::Duration *lns_time_limit)
const std::string name
::operations_research::sat::SatParameters * unsafe_arena_release_sat_parameters()
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)
void set_relocate_expensive_chain_num_arcs_to_consider(::PROTOBUF_NAMESPACE_ID::int32 value)
void CopyFrom(const RoutingSearchParameters_ImprovementSearchLimitParameters &from)
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
RoutingSearchParameters_LocalSearchNeighborhoodOperators * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
void unsafe_arena_set_allocated_solver_parameters(::operations_research::ConstraintSolverParameters *solver_parameters)
constexpr RoutingSearchParameters_SchedulingSolver RoutingSearchParameters_SchedulingSolver_SchedulingSolver_MIN
void set_heuristic_close_nodes_lns_num_nodes(::PROTOBUF_NAMESPACE_ID::int32 value)
friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper
void MergeFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)
static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
::operations_research::sat::SatParameters * mutable_sat_parameters()
RoutingModelParameters * New() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
::operations_research::RoutingSearchParameters_SchedulingSolver continuous_scheduling_solver() const
::operations_research::FirstSolutionStrategy_Value first_solution_strategy() const
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void set_solution_limit(::PROTOBUF_NAMESPACE_ID::int64 value)
void MergeFrom(const RoutingModelParameters &from)
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)
int64_t b
void UnsafeArenaSwap(RoutingModelParameters *other)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
constexpr RoutingSearchParameters_SchedulingSolver RoutingSearchParameters_SchedulingSolver_SchedulingSolver_MAX
::operations_research::OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns() const
friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT 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()
void MergeFrom(const RoutingSearchParameters &from)
void set_allocated_time_limit(PROTOBUF_NAMESPACE_ID::Duration *time_limit)
RoutingModelParameters & operator=(const RoutingModelParameters &from)
void set_local_search_metaheuristic(::operations_research::LocalSearchMetaheuristic_Value value)
int64_t max
Definition: alldiff_cst.cc:140
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void Swap(RoutingModelParameters *other)
bool RoutingSearchParameters_SchedulingSolver_IsValid(int value)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
void set_use_cp_sat(::operations_research::OptionalBoolean value)
void CopyFrom(const RoutingModelParameters &from)
void set_cheapest_insertion_first_solution_min_neighbors(::PROTOBUF_NAMESPACE_ID::int32 value)
void MergeFrom(const RoutingSearchParameters_ImprovementSearchLimitParameters &from)
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
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
static const RoutingSearchParameters & default_instance()
::PROTOBUF_NAMESPACE_ID::int32 cheapest_insertion_ls_operator_min_neighbors() const
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void set_use_global_cheapest_insertion_expensive_chain_lns(::operations_research::OptionalBoolean value)
static const RoutingSearchParameters_LocalSearchNeighborhoodOperators * internal_default_instance()
static constexpr SchedulingSolver SchedulingSolver_MIN
static const RoutingSearchParameters * internal_default_instance()
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)
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
::operations_research::LocalSearchMetaheuristic_Value local_search_metaheuristic() const
const ::operations_research::ConstraintSolverParameters & solver_parameters() const
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ConstraintSolverParametersDefaultTypeInternal _ConstraintSolverParameters_default_instance_
::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators * mutable_local_search_operators()
static const RoutingModelParameters & default_instance()
::PROTOBUF_NAMESPACE_ID::int32 max_callback_cache_size() const
void unsafe_arena_set_allocated_improvement_limit_parameters(::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters *improvement_limit_parameters)
void set_cheapest_insertion_ls_operator_min_neighbors(::PROTOBUF_NAMESPACE_ID::int32 value)
bool RoutingSearchParameters_SchedulingSolver_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, RoutingSearchParameters_SchedulingSolver *value)
void CopyFrom(const RoutingSearchParameters &from)
::operations_research::OptionalBoolean use_local_cheapest_insertion_close_nodes_lns() const
RoutingSearchParameters_ImprovementSearchLimitParameters * New() const final
friend void swap(RoutingModelParameters &a, RoutingModelParameters &b)
const ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters & improvement_limit_parameters() const
void set_allocated_improvement_limit_parameters(::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters *improvement_limit_parameters)
::PROTOBUF_NAMESPACE_ID::int64 solution_limit() const
PROTOBUF_MUST_USE_RESULT ::operations_research::ConstraintSolverParameters * release_solver_parameters()
::PROTOBUF_NAMESPACE_ID::int32 heuristic_close_nodes_lns_num_nodes() const
void Swap(RoutingSearchParameters_LocalSearchNeighborhoodOperators *other)
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
void set_number_of_solutions_to_collect(::PROTOBUF_NAMESPACE_ID::int32 value)
void set_heuristic_expensive_chain_lns_num_arcs_to_consider(::PROTOBUF_NAMESPACE_ID::int32 value)
::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()
RoutingSearchParameters_ImprovementSearchLimitParameters * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
::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
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
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)
::PROTOBUF_NAMESPACE_ID::int32 relocate_expensive_chain_num_arcs_to_consider() const
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)
::PROTOBUF_NAMESPACE_ID::int32 number_of_solutions_to_collect() const
void set_log_tag(ArgT0 &&arg0, ArgT... args)
Collection of objects used to extend the Constraint Solver library.
RoutingModelParameters * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
void set_multi_armed_bandit_compound_operator_memory_coefficient(double value)
PROTOBUF_MUST_USE_RESULT ::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters * release_improvement_limit_parameters()
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * RoutingSearchParameters_SchedulingSolver_descriptor()
constexpr int RoutingSearchParameters_SchedulingSolver_SchedulingSolver_ARRAYSIZE
void set_use_global_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal _RoutingSearchParameters_LocalSearchNeighborhoodOperators_default_instance_
static constexpr SchedulingSolver SchedulingSolver_MAX
::PROTOBUF_NAMESPACE_ID::int32 heuristic_expensive_chain_lns_num_arcs_to_consider() const
void UnsafeArenaSwap(RoutingSearchParameters_LocalSearchNeighborhoodOperators *other)
::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters * unsafe_arena_release_improvement_limit_parameters()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SatParametersDefaultTypeInternal _SatParameters_default_instance_
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)
const PROTOBUF_NAMESPACE_ID::Duration & time_limit() const
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void set_use_local_cheapest_insertion_close_nodes_lns(::operations_research::OptionalBoolean value)
RoutingSearchParameters_ImprovementSearchLimitParameters & operator=(RoutingSearchParameters_ImprovementSearchLimitParameters &&from) noexcept
::PROTOBUF_NAMESPACE_ID::int32 cheapest_insertion_first_solution_min_neighbors() const
RoutingSearchParameters_ImprovementSearchLimitParameters(RoutingSearchParameters_ImprovementSearchLimitParameters &&from) noexcept
static const std::string & SchedulingSolver_Name(T enum_t_value)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
int64_t value
PROTOBUF_MUST_USE_RESULT ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators * release_local_search_operators()
void set_use_cp(::operations_research::OptionalBoolean value)
void set_max_callback_cache_size(::PROTOBUF_NAMESPACE_ID::int32 value)
RoutingSearchParameters * New() const final
PROTOBUF_MUST_USE_RESULT 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)
int64_t a
PROTOBUF_MUST_USE_RESULT ::operations_research::sat::SatParameters * release_sat_parameters()
void UnsafeArenaSwap(RoutingSearchParameters *other)
void Swap(RoutingSearchParameters *other)
RoutingSearchParameters_LocalSearchNeighborhoodOperators & operator=(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)