DotNet Reference

DotNet Reference

RoutingParameters.pb.cs
Go to the documentation of this file.
1 // <auto-generated>
2 // Generated by the protocol buffer compiler. DO NOT EDIT!
3 // source: ortools/constraint_solver/routing_parameters.proto
4 // </auto-generated>
5 #pragma warning disable 1591, 0612, 3021
6 #region Designer generated code
7 
8 using pb = global::Google.Protobuf;
9 using pbc = global::Google.Protobuf.Collections;
10 using pbr = global::Google.Protobuf.Reflection;
11 using scg = global::System.Collections.Generic;
13 
15  public static partial class RoutingParametersReflection {
16 
17  #region Descriptor
18  public static pbr::FileDescriptor Descriptor {
20  get { return descriptor; }
21  }
22  private static pbr::FileDescriptor descriptor;
23 
25  byte[] descriptorData = global::System.Convert.FromBase64String(
26  string.Concat(
27  "CjJvcnRvb2xzL2NvbnN0cmFpbnRfc29sdmVyL3JvdXRpbmdfcGFyYW1ldGVy",
28  "cy5wcm90bxITb3BlcmF0aW9uc19yZXNlYXJjaBoeZ29vZ2xlL3Byb3RvYnVm",
29  "L2R1cmF0aW9uLnByb3RvGi1vcnRvb2xzL2NvbnN0cmFpbnRfc29sdmVyL3Jv",
30  "dXRpbmdfZW51bXMucHJvdG8aMW9ydG9vbHMvY29uc3RyYWludF9zb2x2ZXIv",
31  "c29sdmVyX3BhcmFtZXRlcnMucHJvdG8aI29ydG9vbHMvdXRpbC9vcHRpb25h",
32  "bF9ib29sZWFuLnByb3RvIvEcChdSb3V0aW5nU2VhcmNoUGFyYW1ldGVycxJR",
33  "ChdmaXJzdF9zb2x1dGlvbl9zdHJhdGVneRgBIAEoDjIwLm9wZXJhdGlvbnNf",
34  "cmVzZWFyY2guRmlyc3RTb2x1dGlvblN0cmF0ZWd5LlZhbHVlEi4KJnVzZV91",
35  "bmZpbHRlcmVkX2ZpcnN0X3NvbHV0aW9uX3N0cmF0ZWd5GAIgASgIEh8KF3Nh",
36  "dmluZ3NfbmVpZ2hib3JzX3JhdGlvGA4gASgBEiYKHnNhdmluZ3NfbWF4X21l",
37  "bW9yeV91c2FnZV9ieXRlcxgXIAEoARIgChhzYXZpbmdzX2FkZF9yZXZlcnNl",
38  "X2FyY3MYDyABKAgSHwoXc2F2aW5nc19hcmNfY29lZmZpY2llbnQYEiABKAES",
39  "HwoXc2F2aW5nc19wYXJhbGxlbF9yb3V0ZXMYEyABKAgSLwonY2hlYXBlc3Rf",
40  "aW5zZXJ0aW9uX2ZhcnRoZXN0X3NlZWRzX3JhdGlvGBAgASgBEjkKMWNoZWFw",
41  "ZXN0X2luc2VydGlvbl9maXJzdF9zb2x1dGlvbl9uZWlnaGJvcnNfcmF0aW8Y",
42  "FSABKAESNgouY2hlYXBlc3RfaW5zZXJ0aW9uX2xzX29wZXJhdG9yX25laWdo",
43  "Ym9yc19yYXRpbxgfIAEoARIpCiFjaHJpc3RvZmlkZXNfdXNlX21pbmltdW1f",
44  "bWF0Y2hpbmcYHiABKAgSbQoWbG9jYWxfc2VhcmNoX29wZXJhdG9ycxgDIAEo",
45  "CzJNLm9wZXJhdGlvbnNfcmVzZWFyY2guUm91dGluZ1NlYXJjaFBhcmFtZXRl",
46  "cnMuTG9jYWxTZWFyY2hOZWlnaGJvcmhvb2RPcGVyYXRvcnMSNQotcmVsb2Nh",
47  "dGVfZXhwZW5zaXZlX2NoYWluX251bV9hcmNzX3RvX2NvbnNpZGVyGBQgASgF",
48  "EjoKMmhldXJpc3RpY19leHBlbnNpdmVfY2hhaW5fbG5zX251bV9hcmNzX3Rv",
49  "X2NvbnNpZGVyGCAgASgFElcKGmxvY2FsX3NlYXJjaF9tZXRhaGV1cmlzdGlj",
50  "GAQgASgOMjMub3BlcmF0aW9uc19yZXNlYXJjaC5Mb2NhbFNlYXJjaE1ldGFo",
51  "ZXVyaXN0aWMuVmFsdWUSLgomZ3VpZGVkX2xvY2FsX3NlYXJjaF9sYW1iZGFf",
52  "Y29lZmZpY2llbnQYBSABKAESHgoWdXNlX2RlcHRoX2ZpcnN0X3NlYXJjaBgG",
53  "IAEoCBI0CgZ1c2VfY3AYHCABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9w",
54  "dGlvbmFsQm9vbGVhbhI4Cgp1c2VfY3Bfc2F0GBsgASgOMiQub3BlcmF0aW9u",
55  "c19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SYwocY29udGludW91c19zY2hl",
56  "ZHVsaW5nX3NvbHZlchghIAEoDjI9Lm9wZXJhdGlvbnNfcmVzZWFyY2guUm91",
57  "dGluZ1NlYXJjaFBhcmFtZXRlcnMuU2NoZWR1bGluZ1NvbHZlchJmCh9taXhl",
58  "ZF9pbnRlZ2VyX3NjaGVkdWxpbmdfc29sdmVyGCIgASgOMj0ub3BlcmF0aW9u",
59  "c19yZXNlYXJjaC5Sb3V0aW5nU2VhcmNoUGFyYW1ldGVycy5TY2hlZHVsaW5n",
60  "U29sdmVyEhkKEW9wdGltaXphdGlvbl9zdGVwGAcgASgBEiYKHm51bWJlcl9v",
61  "Zl9zb2x1dGlvbnNfdG9fY29sbGVjdBgRIAEoBRIWCg5zb2x1dGlvbl9saW1p",
62  "dBgIIAEoAxItCgp0aW1lX2xpbWl0GAkgASgLMhkuZ29vZ2xlLnByb3RvYnVm",
63  "LkR1cmF0aW9uEjEKDmxuc190aW1lX2xpbWl0GAogASgLMhkuZ29vZ2xlLnBy",
64  "b3RvYnVmLkR1cmF0aW9uEhwKFHVzZV9mdWxsX3Byb3BhZ2F0aW9uGAsgASgI",
65  "EhIKCmxvZ19zZWFyY2gYDSABKAgSHwoXbG9nX2Nvc3Rfc2NhbGluZ19mYWN0",
66  "b3IYFiABKAESFwoPbG9nX2Nvc3Rfb2Zmc2V0GB0gASgBGrAQCiBMb2NhbFNl",
67  "YXJjaE5laWdoYm9yaG9vZE9wZXJhdG9ycxI6Cgx1c2VfcmVsb2NhdGUYASAB",
68  "KA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI/ChF1",
69  "c2VfcmVsb2NhdGVfcGFpchgCIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2gu",
70  "T3B0aW9uYWxCb29sZWFuEkUKF3VzZV9saWdodF9yZWxvY2F0ZV9wYWlyGBgg",
71  "ASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SRAoW",
72  "dXNlX3JlbG9jYXRlX25laWdoYm9ycxgDIAEoDjIkLm9wZXJhdGlvbnNfcmVz",
73  "ZWFyY2guT3B0aW9uYWxCb29sZWFuEkIKFHVzZV9yZWxvY2F0ZV9zdWJ0cmlw",
74  "GBkgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4S",
75  "OgoMdXNlX2V4Y2hhbmdlGAQgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5P",
76  "cHRpb25hbEJvb2xlYW4SPwoRdXNlX2V4Y2hhbmdlX3BhaXIYFiABKA4yJC5v",
77  "cGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJCChR1c2VfZXhj",
78  "aGFuZ2Vfc3VidHJpcBgaIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0",
79  "aW9uYWxCb29sZWFuEjcKCXVzZV9jcm9zcxgFIAEoDjIkLm9wZXJhdGlvbnNf",
80  "cmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEkAKEnVzZV9jcm9zc19leGNoYW5n",
81  "ZRgGIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFu",
82  "EkoKHHVzZV9yZWxvY2F0ZV9leHBlbnNpdmVfY2hhaW4YFyABKA4yJC5vcGVy",
83  "YXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI5Cgt1c2VfdHdvX29w",
84  "dBgHIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFu",
85  "EjgKCnVzZV9vcl9vcHQYCCABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9w",
86  "dGlvbmFsQm9vbGVhbhI/ChF1c2VfbGluX2tlcm5pZ2hhbhgJIAEoDjIkLm9w",
87  "ZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEjkKC3VzZV90c3Bf",
88  "b3B0GAogASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xl",
89  "YW4SPQoPdXNlX21ha2VfYWN0aXZlGAsgASgOMiQub3BlcmF0aW9uc19yZXNl",
90  "YXJjaC5PcHRpb25hbEJvb2xlYW4SSgocdXNlX3JlbG9jYXRlX2FuZF9tYWtl",
91  "X2FjdGl2ZRgVIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxC",
92  "b29sZWFuEj8KEXVzZV9tYWtlX2luYWN0aXZlGAwgASgOMiQub3BlcmF0aW9u",
93  "c19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SRQoXdXNlX21ha2VfY2hhaW5f",
94  "aW5hY3RpdmUYDSABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFs",
95  "Qm9vbGVhbhI9Cg91c2Vfc3dhcF9hY3RpdmUYDiABKA4yJC5vcGVyYXRpb25z",
96  "X3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJGChh1c2VfZXh0ZW5kZWRfc3dh",
97  "cF9hY3RpdmUYDyABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFs",
98  "Qm9vbGVhbhJHChl1c2Vfbm9kZV9wYWlyX3N3YXBfYWN0aXZlGBQgASgOMiQu",
99  "b3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SOgoMdXNlX3Bh",
100  "dGhfbG5zGBAgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJv",
101  "b2xlYW4SPwoRdXNlX2Z1bGxfcGF0aF9sbnMYESABKA4yJC5vcGVyYXRpb25z",
102  "X3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI5Cgt1c2VfdHNwX2xucxgSIAEo",
103  "DjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEj4KEHVz",
104  "ZV9pbmFjdGl2ZV9sbnMYEyABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9w",
105  "dGlvbmFsQm9vbGVhbhJUCiZ1c2VfZ2xvYmFsX2NoZWFwZXN0X2luc2VydGlv",
106  "bl9wYXRoX2xucxgbIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9u",
107  "YWxCb29sZWFuElMKJXVzZV9sb2NhbF9jaGVhcGVzdF9pbnNlcnRpb25fcGF0",
108  "aF9sbnMYHCABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9v",
109  "bGVhbhJfCjF1c2VfZ2xvYmFsX2NoZWFwZXN0X2luc2VydGlvbl9leHBlbnNp",
110  "dmVfY2hhaW5fbG5zGB0gASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRp",
111  "b25hbEJvb2xlYW4SXgowdXNlX2xvY2FsX2NoZWFwZXN0X2luc2VydGlvbl9l",
112  "eHBlbnNpdmVfY2hhaW5fbG5zGB4gASgOMiQub3BlcmF0aW9uc19yZXNlYXJj",
113  "aC5PcHRpb25hbEJvb2xlYW4iMwoQU2NoZWR1bGluZ1NvbHZlchIJCgVVTlNF",
114  "VBAAEggKBEdMT1AQARIKCgZDUF9TQVQQAiKoAQoWUm91dGluZ01vZGVsUGFy",
115  "YW1ldGVycxJKChFzb2x2ZXJfcGFyYW1ldGVycxgBIAEoCzIvLm9wZXJhdGlv",
116  "bnNfcmVzZWFyY2guQ29uc3RyYWludFNvbHZlclBhcmFtZXRlcnMSIQoZcmVk",
117  "dWNlX3ZlaGljbGVfY29zdF9tb2RlbBgCIAEoCBIfChdtYXhfY2FsbGJhY2tf",
118  "Y2FjaGVfc2l6ZRgDIAEoBUJJCiNjb20uZ29vZ2xlLm9ydG9vbHMuY29uc3Ry",
119  "YWludHNvbHZlclABqgIfR29vZ2xlLk9yVG9vbHMuQ29uc3RyYWludFNvbHZl",
120  "cmIGcHJvdG8z"));
121  descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
122  new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.OrTools.ConstraintSolver.RoutingEnumsReflection.Descriptor, global::Google.OrTools.ConstraintSolver.SolverParametersReflection.Descriptor, global::Google.OrTools.Util.OptionalBooleanReflection.Descriptor, },
123  new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
124  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.ConstraintSolver.RoutingSearchParameters), global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Parser, new[]{ "FirstSolutionStrategy", "UseUnfilteredFirstSolutionStrategy", "SavingsNeighborsRatio", "SavingsMaxMemoryUsageBytes", "SavingsAddReverseArcs", "SavingsArcCoefficient", "SavingsParallelRoutes", "CheapestInsertionFarthestSeedsRatio", "CheapestInsertionFirstSolutionNeighborsRatio", "CheapestInsertionLsOperatorNeighborsRatio", "ChristofidesUseMinimumMatching", "LocalSearchOperators", "RelocateExpensiveChainNumArcsToConsider", "HeuristicExpensiveChainLnsNumArcsToConsider", "LocalSearchMetaheuristic", "GuidedLocalSearchLambdaCoefficient", "UseDepthFirstSearch", "UseCp", "UseCpSat", "ContinuousSchedulingSolver", "MixedIntegerSchedulingSolver", "OptimizationStep", "NumberOfSolutionsToCollect", "SolutionLimit", "TimeLimit", "LnsTimeLimit", "UseFullPropagation", "LogSearch", "LogCostScalingFactor", "LogCostOffset" }, null, new[]{ typeof(global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators), global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators.Parser, new[]{ "UseRelocate", "UseRelocatePair", "UseLightRelocatePair", "UseRelocateNeighbors", "UseRelocateSubtrip", "UseExchange", "UseExchangePair", "UseExchangeSubtrip", "UseCross", "UseCrossExchange", "UseRelocateExpensiveChain", "UseTwoOpt", "UseOrOpt", "UseLinKernighan", "UseTspOpt", "UseMakeActive", "UseRelocateAndMakeActive", "UseMakeInactive", "UseMakeChainInactive", "UseSwapActive", "UseExtendedSwapActive", "UseNodePairSwapActive", "UsePathLns", "UseFullPathLns", "UseTspLns", "UseInactiveLns", "UseGlobalCheapestInsertionPathLns", "UseLocalCheapestInsertionPathLns", "UseGlobalCheapestInsertionExpensiveChainLns", "UseLocalCheapestInsertionExpensiveChainLns" }, null, null, null, null)}),
125  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.ConstraintSolver.RoutingModelParameters), global::Google.OrTools.ConstraintSolver.RoutingModelParameters.Parser, new[]{ "SolverParameters", "ReduceVehicleCostModel", "MaxCallbackCacheSize" }, null, null, null, null)
126  }));
127  }
128  #endregion
129 
130  }
131  #region Messages
132  public sealed partial class RoutingSearchParameters : pb::IMessage<RoutingSearchParameters> {
142  private static readonly pb::MessageParser<RoutingSearchParameters> _parser = new pb::MessageParser<RoutingSearchParameters>(() => new RoutingSearchParameters());
143  private pb::UnknownFieldSet _unknownFields;
144  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
145  public static pb::MessageParser<RoutingSearchParameters> Parser { get { return _parser; } }
146 
147  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
148  public static pbr::MessageDescriptor Descriptor {
149  get { return global::Google.OrTools.ConstraintSolver.RoutingParametersReflection.Descriptor.MessageTypes[0]; }
150  }
151 
152  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
153  pbr::MessageDescriptor pb::IMessage.Descriptor {
154  get { return Descriptor; }
155  }
156 
157  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
159  OnConstruction();
160  }
161 
162  partial void OnConstruction();
163 
164  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
166  firstSolutionStrategy_ = other.firstSolutionStrategy_;
167  useUnfilteredFirstSolutionStrategy_ = other.useUnfilteredFirstSolutionStrategy_;
168  savingsNeighborsRatio_ = other.savingsNeighborsRatio_;
169  savingsMaxMemoryUsageBytes_ = other.savingsMaxMemoryUsageBytes_;
170  savingsAddReverseArcs_ = other.savingsAddReverseArcs_;
171  savingsArcCoefficient_ = other.savingsArcCoefficient_;
172  savingsParallelRoutes_ = other.savingsParallelRoutes_;
173  cheapestInsertionFarthestSeedsRatio_ = other.cheapestInsertionFarthestSeedsRatio_;
174  cheapestInsertionFirstSolutionNeighborsRatio_ = other.cheapestInsertionFirstSolutionNeighborsRatio_;
175  cheapestInsertionLsOperatorNeighborsRatio_ = other.cheapestInsertionLsOperatorNeighborsRatio_;
176  christofidesUseMinimumMatching_ = other.christofidesUseMinimumMatching_;
177  localSearchOperators_ = other.localSearchOperators_ != null ? other.localSearchOperators_.Clone() : null;
178  relocateExpensiveChainNumArcsToConsider_ = other.relocateExpensiveChainNumArcsToConsider_;
179  heuristicExpensiveChainLnsNumArcsToConsider_ = other.heuristicExpensiveChainLnsNumArcsToConsider_;
180  localSearchMetaheuristic_ = other.localSearchMetaheuristic_;
181  guidedLocalSearchLambdaCoefficient_ = other.guidedLocalSearchLambdaCoefficient_;
182  useDepthFirstSearch_ = other.useDepthFirstSearch_;
183  useCp_ = other.useCp_;
184  useCpSat_ = other.useCpSat_;
185  continuousSchedulingSolver_ = other.continuousSchedulingSolver_;
186  mixedIntegerSchedulingSolver_ = other.mixedIntegerSchedulingSolver_;
187  optimizationStep_ = other.optimizationStep_;
188  numberOfSolutionsToCollect_ = other.numberOfSolutionsToCollect_;
189  solutionLimit_ = other.solutionLimit_;
190  timeLimit_ = other.timeLimit_ != null ? other.timeLimit_.Clone() : null;
191  lnsTimeLimit_ = other.lnsTimeLimit_ != null ? other.lnsTimeLimit_.Clone() : null;
192  useFullPropagation_ = other.useFullPropagation_;
193  logSearch_ = other.logSearch_;
194  logCostScalingFactor_ = other.logCostScalingFactor_;
195  logCostOffset_ = other.logCostOffset_;
196  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
197  }
198 
199  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
201  return new RoutingSearchParameters(this);
202  }
203 
205  public const int FirstSolutionStrategyFieldNumber = 1;
206  private global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value firstSolutionStrategy_ = global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset;
210  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
211  public global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value FirstSolutionStrategy {
212  get { return firstSolutionStrategy_; }
213  set {
214  firstSolutionStrategy_ = value;
215  }
216  }
217 
219  public const int UseUnfilteredFirstSolutionStrategyFieldNumber = 2;
220  private bool useUnfilteredFirstSolutionStrategy_;
227  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
228  public bool UseUnfilteredFirstSolutionStrategy {
229  get { return useUnfilteredFirstSolutionStrategy_; }
230  set {
231  useUnfilteredFirstSolutionStrategy_ = value;
232  }
233  }
234 
236  public const int SavingsNeighborsRatioFieldNumber = 14;
237  private double savingsNeighborsRatio_;
243  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
244  public double SavingsNeighborsRatio {
245  get { return savingsNeighborsRatio_; }
246  set {
247  savingsNeighborsRatio_ = value;
248  }
249  }
250 
252  public const int SavingsMaxMemoryUsageBytesFieldNumber = 23;
253  private double savingsMaxMemoryUsageBytes_;
262  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
263  public double SavingsMaxMemoryUsageBytes {
264  get { return savingsMaxMemoryUsageBytes_; }
265  set {
266  savingsMaxMemoryUsageBytes_ = value;
267  }
268  }
269 
271  public const int SavingsAddReverseArcsFieldNumber = 15;
272  private bool savingsAddReverseArcs_;
277  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
278  public bool SavingsAddReverseArcs {
279  get { return savingsAddReverseArcs_; }
280  set {
281  savingsAddReverseArcs_ = value;
282  }
283  }
284 
286  public const int SavingsArcCoefficientFieldNumber = 18;
287  private double savingsArcCoefficient_;
295  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
296  public double SavingsArcCoefficient {
297  get { return savingsArcCoefficient_; }
298  set {
299  savingsArcCoefficient_ = value;
300  }
301  }
302 
304  public const int SavingsParallelRoutesFieldNumber = 19;
305  private bool savingsParallelRoutes_;
309  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
310  public bool SavingsParallelRoutes {
311  get { return savingsParallelRoutes_; }
312  set {
313  savingsParallelRoutes_ = value;
314  }
315  }
316 
318  public const int CheapestInsertionFarthestSeedsRatioFieldNumber = 16;
319  private double cheapestInsertionFarthestSeedsRatio_;
325  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
326  public double CheapestInsertionFarthestSeedsRatio {
327  get { return cheapestInsertionFarthestSeedsRatio_; }
328  set {
329  cheapestInsertionFarthestSeedsRatio_ = value;
330  }
331  }
332 
334  public const int CheapestInsertionFirstSolutionNeighborsRatioFieldNumber = 21;
335  private double cheapestInsertionFirstSolutionNeighborsRatio_;
344  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
345  public double CheapestInsertionFirstSolutionNeighborsRatio {
346  get { return cheapestInsertionFirstSolutionNeighborsRatio_; }
347  set {
348  cheapestInsertionFirstSolutionNeighborsRatio_ = value;
349  }
350  }
351 
353  public const int CheapestInsertionLsOperatorNeighborsRatioFieldNumber = 31;
354  private double cheapestInsertionLsOperatorNeighborsRatio_;
360  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
361  public double CheapestInsertionLsOperatorNeighborsRatio {
362  get { return cheapestInsertionLsOperatorNeighborsRatio_; }
363  set {
364  cheapestInsertionLsOperatorNeighborsRatio_ = value;
365  }
366  }
367 
369  public const int ChristofidesUseMinimumMatchingFieldNumber = 30;
370  private bool christofidesUseMinimumMatching_;
375  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
376  public bool ChristofidesUseMinimumMatching {
377  get { return christofidesUseMinimumMatching_; }
378  set {
379  christofidesUseMinimumMatching_ = value;
380  }
381  }
382 
384  public const int LocalSearchOperatorsFieldNumber = 3;
385  private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators localSearchOperators_;
386  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
387  public global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators LocalSearchOperators {
388  get { return localSearchOperators_; }
389  set {
390  localSearchOperators_ = value;
391  }
392  }
393 
395  public const int RelocateExpensiveChainNumArcsToConsiderFieldNumber = 20;
396  private int relocateExpensiveChainNumArcsToConsider_;
406  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
407  public int RelocateExpensiveChainNumArcsToConsider {
408  get { return relocateExpensiveChainNumArcsToConsider_; }
409  set {
410  relocateExpensiveChainNumArcsToConsider_ = value;
411  }
412  }
413 
415  public const int HeuristicExpensiveChainLnsNumArcsToConsiderFieldNumber = 32;
416  private int heuristicExpensiveChainLnsNumArcsToConsider_;
421  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
422  public int HeuristicExpensiveChainLnsNumArcsToConsider {
423  get { return heuristicExpensiveChainLnsNumArcsToConsider_; }
424  set {
425  heuristicExpensiveChainLnsNumArcsToConsider_ = value;
426  }
427  }
428 
430  public const int LocalSearchMetaheuristicFieldNumber = 4;
431  private global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value localSearchMetaheuristic_ = global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset;
435  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
436  public global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value LocalSearchMetaheuristic {
437  get { return localSearchMetaheuristic_; }
438  set {
439  localSearchMetaheuristic_ = value;
440  }
441  }
442 
444  public const int GuidedLocalSearchLambdaCoefficientFieldNumber = 5;
445  private double guidedLocalSearchLambdaCoefficient_;
452  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
453  public double GuidedLocalSearchLambdaCoefficient {
454  get { return guidedLocalSearchLambdaCoefficient_; }
455  set {
456  guidedLocalSearchLambdaCoefficient_ = value;
457  }
458  }
459 
461  public const int UseDepthFirstSearchFieldNumber = 6;
462  private bool useDepthFirstSearch_;
469  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
470  public bool UseDepthFirstSearch {
471  get { return useDepthFirstSearch_; }
472  set {
473  useDepthFirstSearch_ = value;
474  }
475  }
476 
478  public const int UseCpFieldNumber = 28;
479  private global::Google.OrTools.Util.OptionalBoolean useCp_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
485  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
486  public global::Google.OrTools.Util.OptionalBoolean UseCp {
487  get { return useCp_; }
488  set {
489  useCp_ = value;
490  }
491  }
492 
494  public const int UseCpSatFieldNumber = 27;
495  private global::Google.OrTools.Util.OptionalBoolean useCpSat_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
502  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
503  public global::Google.OrTools.Util.OptionalBoolean UseCpSat {
504  get { return useCpSat_; }
505  set {
506  useCpSat_ = value;
507  }
508  }
509 
511  public const int ContinuousSchedulingSolverFieldNumber = 33;
512  private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver continuousSchedulingSolver_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset;
513  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
514  public global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver ContinuousSchedulingSolver {
515  get { return continuousSchedulingSolver_; }
516  set {
517  continuousSchedulingSolver_ = value;
518  }
519  }
520 
522  public const int MixedIntegerSchedulingSolverFieldNumber = 34;
523  private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver mixedIntegerSchedulingSolver_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset;
524  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
525  public global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver MixedIntegerSchedulingSolver {
526  get { return mixedIntegerSchedulingSolver_; }
527  set {
528  mixedIntegerSchedulingSolver_ = value;
529  }
530  }
531 
533  public const int OptimizationStepFieldNumber = 7;
534  private double optimizationStep_;
540  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
541  public double OptimizationStep {
542  get { return optimizationStep_; }
543  set {
544  optimizationStep_ = value;
545  }
546  }
547 
549  public const int NumberOfSolutionsToCollectFieldNumber = 17;
550  private int numberOfSolutionsToCollect_;
555  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
556  public int NumberOfSolutionsToCollect {
557  get { return numberOfSolutionsToCollect_; }
558  set {
559  numberOfSolutionsToCollect_ = value;
560  }
561  }
562 
564  public const int SolutionLimitFieldNumber = 8;
565  private long solutionLimit_;
571  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
572  public long SolutionLimit {
573  get { return solutionLimit_; }
574  set {
575  solutionLimit_ = value;
576  }
577  }
578 
580  public const int TimeLimitFieldNumber = 9;
581  private global::Google.Protobuf.WellKnownTypes.Duration timeLimit_;
585  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
586  public global::Google.Protobuf.WellKnownTypes.Duration TimeLimit {
587  get { return timeLimit_; }
588  set {
589  timeLimit_ = value;
590  }
591  }
592 
594  public const int LnsTimeLimitFieldNumber = 10;
595  private global::Google.Protobuf.WellKnownTypes.Duration lnsTimeLimit_;
600  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
601  public global::Google.Protobuf.WellKnownTypes.Duration LnsTimeLimit {
602  get { return lnsTimeLimit_; }
603  set {
604  lnsTimeLimit_ = value;
605  }
606  }
607 
609  public const int UseFullPropagationFieldNumber = 11;
610  private bool useFullPropagation_;
623  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
624  public bool UseFullPropagation {
625  get { return useFullPropagation_; }
626  set {
627  useFullPropagation_ = value;
628  }
629  }
630 
632  public const int LogSearchFieldNumber = 13;
633  private bool logSearch_;
649  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
650  public bool LogSearch {
651  get { return logSearch_; }
652  set {
653  logSearch_ = value;
654  }
655  }
656 
658  public const int LogCostScalingFactorFieldNumber = 22;
659  private double logCostScalingFactor_;
664  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
665  public double LogCostScalingFactor {
666  get { return logCostScalingFactor_; }
667  set {
668  logCostScalingFactor_ = value;
669  }
670  }
671 
673  public const int LogCostOffsetFieldNumber = 29;
674  private double logCostOffset_;
675  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
676  public double LogCostOffset {
677  get { return logCostOffset_; }
678  set {
679  logCostOffset_ = value;
680  }
681  }
682 
683  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
684  public override bool Equals(object other) {
685  return Equals(other as RoutingSearchParameters);
686  }
687 
688  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
689  public bool Equals(RoutingSearchParameters other) {
690  if (ReferenceEquals(other, null)) {
691  return false;
692  }
693  if (ReferenceEquals(other, this)) {
694  return true;
695  }
696  if (FirstSolutionStrategy != other.FirstSolutionStrategy) return false;
697  if (UseUnfilteredFirstSolutionStrategy != other.UseUnfilteredFirstSolutionStrategy) return false;
698  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsNeighborsRatio, other.SavingsNeighborsRatio)) return false;
699  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsMaxMemoryUsageBytes, other.SavingsMaxMemoryUsageBytes)) return false;
700  if (SavingsAddReverseArcs != other.SavingsAddReverseArcs) return false;
701  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsArcCoefficient, other.SavingsArcCoefficient)) return false;
702  if (SavingsParallelRoutes != other.SavingsParallelRoutes) return false;
703  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionFarthestSeedsRatio, other.CheapestInsertionFarthestSeedsRatio)) return false;
704  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionFirstSolutionNeighborsRatio, other.CheapestInsertionFirstSolutionNeighborsRatio)) return false;
705  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionLsOperatorNeighborsRatio, other.CheapestInsertionLsOperatorNeighborsRatio)) return false;
706  if (ChristofidesUseMinimumMatching != other.ChristofidesUseMinimumMatching) return false;
707  if (!object.Equals(LocalSearchOperators, other.LocalSearchOperators)) return false;
708  if (RelocateExpensiveChainNumArcsToConsider != other.RelocateExpensiveChainNumArcsToConsider) return false;
709  if (HeuristicExpensiveChainLnsNumArcsToConsider != other.HeuristicExpensiveChainLnsNumArcsToConsider) return false;
710  if (LocalSearchMetaheuristic != other.LocalSearchMetaheuristic) return false;
711  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(GuidedLocalSearchLambdaCoefficient, other.GuidedLocalSearchLambdaCoefficient)) return false;
712  if (UseDepthFirstSearch != other.UseDepthFirstSearch) return false;
713  if (UseCp != other.UseCp) return false;
714  if (UseCpSat != other.UseCpSat) return false;
715  if (ContinuousSchedulingSolver != other.ContinuousSchedulingSolver) return false;
716  if (MixedIntegerSchedulingSolver != other.MixedIntegerSchedulingSolver) return false;
717  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(OptimizationStep, other.OptimizationStep)) return false;
718  if (NumberOfSolutionsToCollect != other.NumberOfSolutionsToCollect) return false;
719  if (SolutionLimit != other.SolutionLimit) return false;
720  if (!object.Equals(TimeLimit, other.TimeLimit)) return false;
721  if (!object.Equals(LnsTimeLimit, other.LnsTimeLimit)) return false;
722  if (UseFullPropagation != other.UseFullPropagation) return false;
723  if (LogSearch != other.LogSearch) return false;
724  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LogCostScalingFactor, other.LogCostScalingFactor)) return false;
725  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LogCostOffset, other.LogCostOffset)) return false;
726  return Equals(_unknownFields, other._unknownFields);
727  }
728 
729  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
730  public override int GetHashCode() {
731  int hash = 1;
732  if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) hash ^= FirstSolutionStrategy.GetHashCode();
733  if (UseUnfilteredFirstSolutionStrategy != false) hash ^= UseUnfilteredFirstSolutionStrategy.GetHashCode();
734  if (SavingsNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsNeighborsRatio);
735  if (SavingsMaxMemoryUsageBytes != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsMaxMemoryUsageBytes);
736  if (SavingsAddReverseArcs != false) hash ^= SavingsAddReverseArcs.GetHashCode();
737  if (SavingsArcCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsArcCoefficient);
738  if (SavingsParallelRoutes != false) hash ^= SavingsParallelRoutes.GetHashCode();
739  if (CheapestInsertionFarthestSeedsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionFarthestSeedsRatio);
740  if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionFirstSolutionNeighborsRatio);
741  if (CheapestInsertionLsOperatorNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionLsOperatorNeighborsRatio);
742  if (ChristofidesUseMinimumMatching != false) hash ^= ChristofidesUseMinimumMatching.GetHashCode();
743  if (localSearchOperators_ != null) hash ^= LocalSearchOperators.GetHashCode();
744  if (RelocateExpensiveChainNumArcsToConsider != 0) hash ^= RelocateExpensiveChainNumArcsToConsider.GetHashCode();
745  if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) hash ^= HeuristicExpensiveChainLnsNumArcsToConsider.GetHashCode();
746  if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) hash ^= LocalSearchMetaheuristic.GetHashCode();
747  if (GuidedLocalSearchLambdaCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(GuidedLocalSearchLambdaCoefficient);
748  if (UseDepthFirstSearch != false) hash ^= UseDepthFirstSearch.GetHashCode();
749  if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCp.GetHashCode();
750  if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCpSat.GetHashCode();
751  if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) hash ^= ContinuousSchedulingSolver.GetHashCode();
752  if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) hash ^= MixedIntegerSchedulingSolver.GetHashCode();
753  if (OptimizationStep != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(OptimizationStep);
754  if (NumberOfSolutionsToCollect != 0) hash ^= NumberOfSolutionsToCollect.GetHashCode();
755  if (SolutionLimit != 0L) hash ^= SolutionLimit.GetHashCode();
756  if (timeLimit_ != null) hash ^= TimeLimit.GetHashCode();
757  if (lnsTimeLimit_ != null) hash ^= LnsTimeLimit.GetHashCode();
758  if (UseFullPropagation != false) hash ^= UseFullPropagation.GetHashCode();
759  if (LogSearch != false) hash ^= LogSearch.GetHashCode();
760  if (LogCostScalingFactor != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LogCostScalingFactor);
761  if (LogCostOffset != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LogCostOffset);
762  if (_unknownFields != null) {
763  hash ^= _unknownFields.GetHashCode();
764  }
765  return hash;
766  }
767 
768  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
769  public override string ToString() {
770  return pb::JsonFormatter.ToDiagnosticString(this);
771  }
772 
773  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
774  public void WriteTo(pb::CodedOutputStream output) {
775  if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
776  output.WriteRawTag(8);
777  output.WriteEnum((int) FirstSolutionStrategy);
778  }
779  if (UseUnfilteredFirstSolutionStrategy != false) {
780  output.WriteRawTag(16);
781  output.WriteBool(UseUnfilteredFirstSolutionStrategy);
782  }
783  if (localSearchOperators_ != null) {
784  output.WriteRawTag(26);
785  output.WriteMessage(LocalSearchOperators);
786  }
787  if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
788  output.WriteRawTag(32);
789  output.WriteEnum((int) LocalSearchMetaheuristic);
790  }
791  if (GuidedLocalSearchLambdaCoefficient != 0D) {
792  output.WriteRawTag(41);
793  output.WriteDouble(GuidedLocalSearchLambdaCoefficient);
794  }
795  if (UseDepthFirstSearch != false) {
796  output.WriteRawTag(48);
797  output.WriteBool(UseDepthFirstSearch);
798  }
799  if (OptimizationStep != 0D) {
800  output.WriteRawTag(57);
801  output.WriteDouble(OptimizationStep);
802  }
803  if (SolutionLimit != 0L) {
804  output.WriteRawTag(64);
805  output.WriteInt64(SolutionLimit);
806  }
807  if (timeLimit_ != null) {
808  output.WriteRawTag(74);
809  output.WriteMessage(TimeLimit);
810  }
811  if (lnsTimeLimit_ != null) {
812  output.WriteRawTag(82);
813  output.WriteMessage(LnsTimeLimit);
814  }
815  if (UseFullPropagation != false) {
816  output.WriteRawTag(88);
817  output.WriteBool(UseFullPropagation);
818  }
819  if (LogSearch != false) {
820  output.WriteRawTag(104);
821  output.WriteBool(LogSearch);
822  }
823  if (SavingsNeighborsRatio != 0D) {
824  output.WriteRawTag(113);
825  output.WriteDouble(SavingsNeighborsRatio);
826  }
827  if (SavingsAddReverseArcs != false) {
828  output.WriteRawTag(120);
829  output.WriteBool(SavingsAddReverseArcs);
830  }
831  if (CheapestInsertionFarthestSeedsRatio != 0D) {
832  output.WriteRawTag(129, 1);
833  output.WriteDouble(CheapestInsertionFarthestSeedsRatio);
834  }
835  if (NumberOfSolutionsToCollect != 0) {
836  output.WriteRawTag(136, 1);
837  output.WriteInt32(NumberOfSolutionsToCollect);
838  }
839  if (SavingsArcCoefficient != 0D) {
840  output.WriteRawTag(145, 1);
841  output.WriteDouble(SavingsArcCoefficient);
842  }
843  if (SavingsParallelRoutes != false) {
844  output.WriteRawTag(152, 1);
845  output.WriteBool(SavingsParallelRoutes);
846  }
847  if (RelocateExpensiveChainNumArcsToConsider != 0) {
848  output.WriteRawTag(160, 1);
849  output.WriteInt32(RelocateExpensiveChainNumArcsToConsider);
850  }
851  if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
852  output.WriteRawTag(169, 1);
853  output.WriteDouble(CheapestInsertionFirstSolutionNeighborsRatio);
854  }
855  if (LogCostScalingFactor != 0D) {
856  output.WriteRawTag(177, 1);
857  output.WriteDouble(LogCostScalingFactor);
858  }
859  if (SavingsMaxMemoryUsageBytes != 0D) {
860  output.WriteRawTag(185, 1);
861  output.WriteDouble(SavingsMaxMemoryUsageBytes);
862  }
863  if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
864  output.WriteRawTag(216, 1);
865  output.WriteEnum((int) UseCpSat);
866  }
867  if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
868  output.WriteRawTag(224, 1);
869  output.WriteEnum((int) UseCp);
870  }
871  if (LogCostOffset != 0D) {
872  output.WriteRawTag(233, 1);
873  output.WriteDouble(LogCostOffset);
874  }
875  if (ChristofidesUseMinimumMatching != false) {
876  output.WriteRawTag(240, 1);
877  output.WriteBool(ChristofidesUseMinimumMatching);
878  }
879  if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
880  output.WriteRawTag(249, 1);
881  output.WriteDouble(CheapestInsertionLsOperatorNeighborsRatio);
882  }
883  if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
884  output.WriteRawTag(128, 2);
885  output.WriteInt32(HeuristicExpensiveChainLnsNumArcsToConsider);
886  }
887  if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
888  output.WriteRawTag(136, 2);
889  output.WriteEnum((int) ContinuousSchedulingSolver);
890  }
891  if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
892  output.WriteRawTag(144, 2);
893  output.WriteEnum((int) MixedIntegerSchedulingSolver);
894  }
895  if (_unknownFields != null) {
896  _unknownFields.WriteTo(output);
897  }
898  }
899 
900  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
901  public int CalculateSize() {
902  int size = 0;
903  if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
904  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) FirstSolutionStrategy);
905  }
906  if (UseUnfilteredFirstSolutionStrategy != false) {
907  size += 1 + 1;
908  }
909  if (SavingsNeighborsRatio != 0D) {
910  size += 1 + 8;
911  }
912  if (SavingsMaxMemoryUsageBytes != 0D) {
913  size += 2 + 8;
914  }
915  if (SavingsAddReverseArcs != false) {
916  size += 1 + 1;
917  }
918  if (SavingsArcCoefficient != 0D) {
919  size += 2 + 8;
920  }
921  if (SavingsParallelRoutes != false) {
922  size += 2 + 1;
923  }
924  if (CheapestInsertionFarthestSeedsRatio != 0D) {
925  size += 2 + 8;
926  }
927  if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
928  size += 2 + 8;
929  }
930  if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
931  size += 2 + 8;
932  }
933  if (ChristofidesUseMinimumMatching != false) {
934  size += 2 + 1;
935  }
936  if (localSearchOperators_ != null) {
937  size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocalSearchOperators);
938  }
939  if (RelocateExpensiveChainNumArcsToConsider != 0) {
940  size += 2 + pb::CodedOutputStream.ComputeInt32Size(RelocateExpensiveChainNumArcsToConsider);
941  }
942  if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
943  size += 2 + pb::CodedOutputStream.ComputeInt32Size(HeuristicExpensiveChainLnsNumArcsToConsider);
944  }
945  if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
946  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LocalSearchMetaheuristic);
947  }
948  if (GuidedLocalSearchLambdaCoefficient != 0D) {
949  size += 1 + 8;
950  }
951  if (UseDepthFirstSearch != false) {
952  size += 1 + 1;
953  }
954  if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
955  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseCp);
956  }
957  if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
958  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseCpSat);
959  }
960  if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
961  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ContinuousSchedulingSolver);
962  }
963  if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
964  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) MixedIntegerSchedulingSolver);
965  }
966  if (OptimizationStep != 0D) {
967  size += 1 + 8;
968  }
969  if (NumberOfSolutionsToCollect != 0) {
970  size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumberOfSolutionsToCollect);
971  }
972  if (SolutionLimit != 0L) {
973  size += 1 + pb::CodedOutputStream.ComputeInt64Size(SolutionLimit);
974  }
975  if (timeLimit_ != null) {
976  size += 1 + pb::CodedOutputStream.ComputeMessageSize(TimeLimit);
977  }
978  if (lnsTimeLimit_ != null) {
979  size += 1 + pb::CodedOutputStream.ComputeMessageSize(LnsTimeLimit);
980  }
981  if (UseFullPropagation != false) {
982  size += 1 + 1;
983  }
984  if (LogSearch != false) {
985  size += 1 + 1;
986  }
987  if (LogCostScalingFactor != 0D) {
988  size += 2 + 8;
989  }
990  if (LogCostOffset != 0D) {
991  size += 2 + 8;
992  }
993  if (_unknownFields != null) {
994  size += _unknownFields.CalculateSize();
995  }
996  return size;
997  }
998 
999  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1000  public void MergeFrom(RoutingSearchParameters other) {
1001  if (other == null) {
1002  return;
1003  }
1004  if (other.FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1005  FirstSolutionStrategy = other.FirstSolutionStrategy;
1006  }
1007  if (other.UseUnfilteredFirstSolutionStrategy != false) {
1008  UseUnfilteredFirstSolutionStrategy = other.UseUnfilteredFirstSolutionStrategy;
1009  }
1010  if (other.SavingsNeighborsRatio != 0D) {
1011  SavingsNeighborsRatio = other.SavingsNeighborsRatio;
1012  }
1013  if (other.SavingsMaxMemoryUsageBytes != 0D) {
1014  SavingsMaxMemoryUsageBytes = other.SavingsMaxMemoryUsageBytes;
1015  }
1016  if (other.SavingsAddReverseArcs != false) {
1017  SavingsAddReverseArcs = other.SavingsAddReverseArcs;
1018  }
1019  if (other.SavingsArcCoefficient != 0D) {
1020  SavingsArcCoefficient = other.SavingsArcCoefficient;
1021  }
1022  if (other.SavingsParallelRoutes != false) {
1023  SavingsParallelRoutes = other.SavingsParallelRoutes;
1024  }
1025  if (other.CheapestInsertionFarthestSeedsRatio != 0D) {
1026  CheapestInsertionFarthestSeedsRatio = other.CheapestInsertionFarthestSeedsRatio;
1027  }
1028  if (other.CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
1029  CheapestInsertionFirstSolutionNeighborsRatio = other.CheapestInsertionFirstSolutionNeighborsRatio;
1030  }
1031  if (other.CheapestInsertionLsOperatorNeighborsRatio != 0D) {
1032  CheapestInsertionLsOperatorNeighborsRatio = other.CheapestInsertionLsOperatorNeighborsRatio;
1033  }
1034  if (other.ChristofidesUseMinimumMatching != false) {
1035  ChristofidesUseMinimumMatching = other.ChristofidesUseMinimumMatching;
1036  }
1037  if (other.localSearchOperators_ != null) {
1038  if (localSearchOperators_ == null) {
1039  LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
1040  }
1041  LocalSearchOperators.MergeFrom(other.LocalSearchOperators);
1042  }
1043  if (other.RelocateExpensiveChainNumArcsToConsider != 0) {
1044  RelocateExpensiveChainNumArcsToConsider = other.RelocateExpensiveChainNumArcsToConsider;
1045  }
1046  if (other.HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1047  HeuristicExpensiveChainLnsNumArcsToConsider = other.HeuristicExpensiveChainLnsNumArcsToConsider;
1048  }
1049  if (other.LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1050  LocalSearchMetaheuristic = other.LocalSearchMetaheuristic;
1051  }
1052  if (other.GuidedLocalSearchLambdaCoefficient != 0D) {
1053  GuidedLocalSearchLambdaCoefficient = other.GuidedLocalSearchLambdaCoefficient;
1054  }
1055  if (other.UseDepthFirstSearch != false) {
1056  UseDepthFirstSearch = other.UseDepthFirstSearch;
1057  }
1058  if (other.UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1059  UseCp = other.UseCp;
1060  }
1061  if (other.UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1062  UseCpSat = other.UseCpSat;
1063  }
1064  if (other.ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
1065  ContinuousSchedulingSolver = other.ContinuousSchedulingSolver;
1066  }
1067  if (other.MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
1068  MixedIntegerSchedulingSolver = other.MixedIntegerSchedulingSolver;
1069  }
1070  if (other.OptimizationStep != 0D) {
1071  OptimizationStep = other.OptimizationStep;
1072  }
1073  if (other.NumberOfSolutionsToCollect != 0) {
1074  NumberOfSolutionsToCollect = other.NumberOfSolutionsToCollect;
1075  }
1076  if (other.SolutionLimit != 0L) {
1077  SolutionLimit = other.SolutionLimit;
1078  }
1079  if (other.timeLimit_ != null) {
1080  if (timeLimit_ == null) {
1081  TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
1082  }
1083  TimeLimit.MergeFrom(other.TimeLimit);
1084  }
1085  if (other.lnsTimeLimit_ != null) {
1086  if (lnsTimeLimit_ == null) {
1087  LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
1088  }
1089  LnsTimeLimit.MergeFrom(other.LnsTimeLimit);
1090  }
1091  if (other.UseFullPropagation != false) {
1092  UseFullPropagation = other.UseFullPropagation;
1093  }
1094  if (other.LogSearch != false) {
1095  LogSearch = other.LogSearch;
1096  }
1097  if (other.LogCostScalingFactor != 0D) {
1098  LogCostScalingFactor = other.LogCostScalingFactor;
1099  }
1100  if (other.LogCostOffset != 0D) {
1101  LogCostOffset = other.LogCostOffset;
1102  }
1103  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1104  }
1105 
1106  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1107  public void MergeFrom(pb::CodedInputStream input) {
1108  uint tag;
1109  while ((tag = input.ReadTag()) != 0) {
1110  switch(tag) {
1111  default:
1112  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1113  break;
1114  case 8: {
1115  FirstSolutionStrategy = (global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value) input.ReadEnum();
1116  break;
1117  }
1118  case 16: {
1119  UseUnfilteredFirstSolutionStrategy = input.ReadBool();
1120  break;
1121  }
1122  case 26: {
1123  if (localSearchOperators_ == null) {
1124  LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
1125  }
1126  input.ReadMessage(LocalSearchOperators);
1127  break;
1128  }
1129  case 32: {
1130  LocalSearchMetaheuristic = (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) input.ReadEnum();
1131  break;
1132  }
1133  case 41: {
1134  GuidedLocalSearchLambdaCoefficient = input.ReadDouble();
1135  break;
1136  }
1137  case 48: {
1138  UseDepthFirstSearch = input.ReadBool();
1139  break;
1140  }
1141  case 57: {
1142  OptimizationStep = input.ReadDouble();
1143  break;
1144  }
1145  case 64: {
1146  SolutionLimit = input.ReadInt64();
1147  break;
1148  }
1149  case 74: {
1150  if (timeLimit_ == null) {
1151  TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
1152  }
1153  input.ReadMessage(TimeLimit);
1154  break;
1155  }
1156  case 82: {
1157  if (lnsTimeLimit_ == null) {
1158  LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
1159  }
1160  input.ReadMessage(LnsTimeLimit);
1161  break;
1162  }
1163  case 88: {
1164  UseFullPropagation = input.ReadBool();
1165  break;
1166  }
1167  case 104: {
1168  LogSearch = input.ReadBool();
1169  break;
1170  }
1171  case 113: {
1172  SavingsNeighborsRatio = input.ReadDouble();
1173  break;
1174  }
1175  case 120: {
1176  SavingsAddReverseArcs = input.ReadBool();
1177  break;
1178  }
1179  case 129: {
1180  CheapestInsertionFarthestSeedsRatio = input.ReadDouble();
1181  break;
1182  }
1183  case 136: {
1184  NumberOfSolutionsToCollect = input.ReadInt32();
1185  break;
1186  }
1187  case 145: {
1188  SavingsArcCoefficient = input.ReadDouble();
1189  break;
1190  }
1191  case 152: {
1192  SavingsParallelRoutes = input.ReadBool();
1193  break;
1194  }
1195  case 160: {
1196  RelocateExpensiveChainNumArcsToConsider = input.ReadInt32();
1197  break;
1198  }
1199  case 169: {
1200  CheapestInsertionFirstSolutionNeighborsRatio = input.ReadDouble();
1201  break;
1202  }
1203  case 177: {
1204  LogCostScalingFactor = input.ReadDouble();
1205  break;
1206  }
1207  case 185: {
1208  SavingsMaxMemoryUsageBytes = input.ReadDouble();
1209  break;
1210  }
1211  case 216: {
1212  UseCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
1213  break;
1214  }
1215  case 224: {
1216  UseCp = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
1217  break;
1218  }
1219  case 233: {
1220  LogCostOffset = input.ReadDouble();
1221  break;
1222  }
1223  case 240: {
1224  ChristofidesUseMinimumMatching = input.ReadBool();
1225  break;
1226  }
1227  case 249: {
1228  CheapestInsertionLsOperatorNeighborsRatio = input.ReadDouble();
1229  break;
1230  }
1231  case 256: {
1232  HeuristicExpensiveChainLnsNumArcsToConsider = input.ReadInt32();
1233  break;
1234  }
1235  case 264: {
1236  ContinuousSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
1237  break;
1238  }
1239  case 272: {
1240  MixedIntegerSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
1241  break;
1242  }
1243  }
1244  }
1245  }
1246 
1247  #region Nested types
1248  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1250  public static partial class Types {
1255  public enum SchedulingSolver {
1256  [pbr::OriginalName("UNSET")] Unset = 0,
1257  [pbr::OriginalName("GLOP")] Glop = 1,
1258  [pbr::OriginalName("CP_SAT")] CpSat = 2,
1259  }
1260 
1265  public sealed partial class LocalSearchNeighborhoodOperators : pb::IMessage<LocalSearchNeighborhoodOperators> {
1266  private static readonly pb::MessageParser<LocalSearchNeighborhoodOperators> _parser = new pb::MessageParser<LocalSearchNeighborhoodOperators>(() => new LocalSearchNeighborhoodOperators());
1267  private pb::UnknownFieldSet _unknownFields;
1268  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1269  public static pb::MessageParser<LocalSearchNeighborhoodOperators> Parser { get { return _parser; } }
1270 
1271  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1272  public static pbr::MessageDescriptor Descriptor {
1273  get { return global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Descriptor.NestedTypes[0]; }
1274  }
1275 
1276  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1277  pbr::MessageDescriptor pb::IMessage.Descriptor {
1278  get { return Descriptor; }
1279  }
1280 
1281  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1283  OnConstruction();
1284  }
1285 
1286  partial void OnConstruction();
1287 
1288  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1290  useRelocate_ = other.useRelocate_;
1291  useRelocatePair_ = other.useRelocatePair_;
1292  useLightRelocatePair_ = other.useLightRelocatePair_;
1293  useRelocateNeighbors_ = other.useRelocateNeighbors_;
1294  useRelocateSubtrip_ = other.useRelocateSubtrip_;
1295  useExchange_ = other.useExchange_;
1296  useExchangePair_ = other.useExchangePair_;
1297  useExchangeSubtrip_ = other.useExchangeSubtrip_;
1298  useCross_ = other.useCross_;
1299  useCrossExchange_ = other.useCrossExchange_;
1300  useRelocateExpensiveChain_ = other.useRelocateExpensiveChain_;
1301  useTwoOpt_ = other.useTwoOpt_;
1302  useOrOpt_ = other.useOrOpt_;
1303  useLinKernighan_ = other.useLinKernighan_;
1304  useTspOpt_ = other.useTspOpt_;
1305  useMakeActive_ = other.useMakeActive_;
1306  useRelocateAndMakeActive_ = other.useRelocateAndMakeActive_;
1307  useMakeInactive_ = other.useMakeInactive_;
1308  useMakeChainInactive_ = other.useMakeChainInactive_;
1309  useSwapActive_ = other.useSwapActive_;
1310  useExtendedSwapActive_ = other.useExtendedSwapActive_;
1311  useNodePairSwapActive_ = other.useNodePairSwapActive_;
1312  usePathLns_ = other.usePathLns_;
1313  useFullPathLns_ = other.useFullPathLns_;
1314  useTspLns_ = other.useTspLns_;
1315  useInactiveLns_ = other.useInactiveLns_;
1316  useGlobalCheapestInsertionPathLns_ = other.useGlobalCheapestInsertionPathLns_;
1317  useLocalCheapestInsertionPathLns_ = other.useLocalCheapestInsertionPathLns_;
1318  useGlobalCheapestInsertionExpensiveChainLns_ = other.useGlobalCheapestInsertionExpensiveChainLns_;
1319  useLocalCheapestInsertionExpensiveChainLns_ = other.useLocalCheapestInsertionExpensiveChainLns_;
1320  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1321  }
1322 
1323  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1325  return new LocalSearchNeighborhoodOperators(this);
1326  }
1327 
1329  public const int UseRelocateFieldNumber = 1;
1330  private global::Google.OrTools.Util.OptionalBoolean useRelocate_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1342  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1343  public global::Google.OrTools.Util.OptionalBoolean UseRelocate {
1344  get { return useRelocate_; }
1345  set {
1346  useRelocate_ = value;
1347  }
1348  }
1349 
1351  public const int UseRelocatePairFieldNumber = 2;
1352  private global::Google.OrTools.Util.OptionalBoolean useRelocatePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1364  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1365  public global::Google.OrTools.Util.OptionalBoolean UseRelocatePair {
1366  get { return useRelocatePair_; }
1367  set {
1368  useRelocatePair_ = value;
1369  }
1370  }
1371 
1373  public const int UseLightRelocatePairFieldNumber = 24;
1374  private global::Google.OrTools.Util.OptionalBoolean useLightRelocatePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1384  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1385  public global::Google.OrTools.Util.OptionalBoolean UseLightRelocatePair {
1386  get { return useLightRelocatePair_; }
1387  set {
1388  useLightRelocatePair_ = value;
1389  }
1390  }
1391 
1393  public const int UseRelocateNeighborsFieldNumber = 3;
1394  private global::Google.OrTools.Util.OptionalBoolean useRelocateNeighbors_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1419  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1420  public global::Google.OrTools.Util.OptionalBoolean UseRelocateNeighbors {
1421  get { return useRelocateNeighbors_; }
1422  set {
1423  useRelocateNeighbors_ = value;
1424  }
1425  }
1426 
1428  public const int UseRelocateSubtripFieldNumber = 25;
1429  private global::Google.OrTools.Util.OptionalBoolean useRelocateSubtrip_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1446  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1447  public global::Google.OrTools.Util.OptionalBoolean UseRelocateSubtrip {
1448  get { return useRelocateSubtrip_; }
1449  set {
1450  useRelocateSubtrip_ = value;
1451  }
1452  }
1453 
1455  public const int UseExchangeFieldNumber = 4;
1456  private global::Google.OrTools.Util.OptionalBoolean useExchange_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1466  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1467  public global::Google.OrTools.Util.OptionalBoolean UseExchange {
1468  get { return useExchange_; }
1469  set {
1470  useExchange_ = value;
1471  }
1472  }
1473 
1475  public const int UseExchangePairFieldNumber = 22;
1476  private global::Google.OrTools.Util.OptionalBoolean useExchangePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1486  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1487  public global::Google.OrTools.Util.OptionalBoolean UseExchangePair {
1488  get { return useExchangePair_; }
1489  set {
1490  useExchangePair_ = value;
1491  }
1492  }
1493 
1495  public const int UseExchangeSubtripFieldNumber = 26;
1496  private global::Google.OrTools.Util.OptionalBoolean useExchangeSubtrip_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1501  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1502  public global::Google.OrTools.Util.OptionalBoolean UseExchangeSubtrip {
1503  get { return useExchangeSubtrip_; }
1504  set {
1505  useExchangeSubtrip_ = value;
1506  }
1507  }
1508 
1510  public const int UseCrossFieldNumber = 5;
1511  private global::Google.OrTools.Util.OptionalBoolean useCross_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1523  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1524  public global::Google.OrTools.Util.OptionalBoolean UseCross {
1525  get { return useCross_; }
1526  set {
1527  useCross_ = value;
1528  }
1529  }
1530 
1532  public const int UseCrossExchangeFieldNumber = 6;
1533  private global::Google.OrTools.Util.OptionalBoolean useCrossExchange_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1537  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1538  public global::Google.OrTools.Util.OptionalBoolean UseCrossExchange {
1539  get { return useCrossExchange_; }
1540  set {
1541  useCrossExchange_ = value;
1542  }
1543  }
1544 
1546  public const int UseRelocateExpensiveChainFieldNumber = 23;
1547  private global::Google.OrTools.Util.OptionalBoolean useRelocateExpensiveChain_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1560  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1561  public global::Google.OrTools.Util.OptionalBoolean UseRelocateExpensiveChain {
1562  get { return useRelocateExpensiveChain_; }
1563  set {
1564  useRelocateExpensiveChain_ = value;
1565  }
1566  }
1567 
1569  public const int UseTwoOptFieldNumber = 7;
1570  private global::Google.OrTools.Util.OptionalBoolean useTwoOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1583  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1584  public global::Google.OrTools.Util.OptionalBoolean UseTwoOpt {
1585  get { return useTwoOpt_; }
1586  set {
1587  useTwoOpt_ = value;
1588  }
1589  }
1590 
1592  public const int UseOrOptFieldNumber = 8;
1593  private global::Google.OrTools.Util.OptionalBoolean useOrOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1607  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1608  public global::Google.OrTools.Util.OptionalBoolean UseOrOpt {
1609  get { return useOrOpt_; }
1610  set {
1611  useOrOpt_ = value;
1612  }
1613  }
1614 
1616  public const int UseLinKernighanFieldNumber = 9;
1617  private global::Google.OrTools.Util.OptionalBoolean useLinKernighan_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1624  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1625  public global::Google.OrTools.Util.OptionalBoolean UseLinKernighan {
1626  get { return useLinKernighan_; }
1627  set {
1628  useLinKernighan_ = value;
1629  }
1630  }
1631 
1633  public const int UseTspOptFieldNumber = 10;
1634  private global::Google.OrTools.Util.OptionalBoolean useTspOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1643  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1644  public global::Google.OrTools.Util.OptionalBoolean UseTspOpt {
1645  get { return useTspOpt_; }
1646  set {
1647  useTspOpt_ = value;
1648  }
1649  }
1650 
1652  public const int UseMakeActiveFieldNumber = 11;
1653  private global::Google.OrTools.Util.OptionalBoolean useMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1663  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1664  public global::Google.OrTools.Util.OptionalBoolean UseMakeActive {
1665  get { return useMakeActive_; }
1666  set {
1667  useMakeActive_ = value;
1668  }
1669  }
1670 
1672  public const int UseRelocateAndMakeActiveFieldNumber = 21;
1673  private global::Google.OrTools.Util.OptionalBoolean useRelocateAndMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1686  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1687  public global::Google.OrTools.Util.OptionalBoolean UseRelocateAndMakeActive {
1688  get { return useRelocateAndMakeActive_; }
1689  set {
1690  useRelocateAndMakeActive_ = value;
1691  }
1692  }
1693 
1695  public const int UseMakeInactiveFieldNumber = 12;
1696  private global::Google.OrTools.Util.OptionalBoolean useMakeInactive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1704  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1705  public global::Google.OrTools.Util.OptionalBoolean UseMakeInactive {
1706  get { return useMakeInactive_; }
1707  set {
1708  useMakeInactive_ = value;
1709  }
1710  }
1711 
1713  public const int UseMakeChainInactiveFieldNumber = 13;
1714  private global::Google.OrTools.Util.OptionalBoolean useMakeChainInactive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1723  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1724  public global::Google.OrTools.Util.OptionalBoolean UseMakeChainInactive {
1725  get { return useMakeChainInactive_; }
1726  set {
1727  useMakeChainInactive_ = value;
1728  }
1729  }
1730 
1732  public const int UseSwapActiveFieldNumber = 14;
1733  private global::Google.OrTools.Util.OptionalBoolean useSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1741  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1742  public global::Google.OrTools.Util.OptionalBoolean UseSwapActive {
1743  get { return useSwapActive_; }
1744  set {
1745  useSwapActive_ = value;
1746  }
1747  }
1748 
1750  public const int UseExtendedSwapActiveFieldNumber = 15;
1751  private global::Google.OrTools.Util.OptionalBoolean useExtendedSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1764  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1765  public global::Google.OrTools.Util.OptionalBoolean UseExtendedSwapActive {
1766  get { return useExtendedSwapActive_; }
1767  set {
1768  useExtendedSwapActive_ = value;
1769  }
1770  }
1771 
1773  public const int UseNodePairSwapActiveFieldNumber = 20;
1774  private global::Google.OrTools.Util.OptionalBoolean useNodePairSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1788  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1789  public global::Google.OrTools.Util.OptionalBoolean UseNodePairSwapActive {
1790  get { return useNodePairSwapActive_; }
1791  set {
1792  useNodePairSwapActive_ = value;
1793  }
1794  }
1795 
1797  public const int UsePathLnsFieldNumber = 16;
1798  private global::Google.OrTools.Util.OptionalBoolean usePathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1809  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1810  public global::Google.OrTools.Util.OptionalBoolean UsePathLns {
1811  get { return usePathLns_; }
1812  set {
1813  usePathLns_ = value;
1814  }
1815  }
1816 
1818  public const int UseFullPathLnsFieldNumber = 17;
1819  private global::Google.OrTools.Util.OptionalBoolean useFullPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1823  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1824  public global::Google.OrTools.Util.OptionalBoolean UseFullPathLns {
1825  get { return useFullPathLns_; }
1826  set {
1827  useFullPathLns_ = value;
1828  }
1829  }
1830 
1832  public const int UseTspLnsFieldNumber = 18;
1833  private global::Google.OrTools.Util.OptionalBoolean useTspLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1842  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1843  public global::Google.OrTools.Util.OptionalBoolean UseTspLns {
1844  get { return useTspLns_; }
1845  set {
1846  useTspLns_ = value;
1847  }
1848  }
1849 
1851  public const int UseInactiveLnsFieldNumber = 19;
1852  private global::Google.OrTools.Util.OptionalBoolean useInactiveLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1858  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1859  public global::Google.OrTools.Util.OptionalBoolean UseInactiveLns {
1860  get { return useInactiveLns_; }
1861  set {
1862  useInactiveLns_ = value;
1863  }
1864  }
1865 
1867  public const int UseGlobalCheapestInsertionPathLnsFieldNumber = 27;
1868  private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1874  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1875  public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionPathLns {
1876  get { return useGlobalCheapestInsertionPathLns_; }
1877  set {
1878  useGlobalCheapestInsertionPathLns_ = value;
1879  }
1880  }
1881 
1883  public const int UseLocalCheapestInsertionPathLnsFieldNumber = 28;
1884  private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1888  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1889  public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionPathLns {
1890  get { return useLocalCheapestInsertionPathLns_; }
1891  set {
1892  useLocalCheapestInsertionPathLns_ = value;
1893  }
1894  }
1895 
1897  public const int UseGlobalCheapestInsertionExpensiveChainLnsFieldNumber = 29;
1898  private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionExpensiveChainLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1905  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1906  public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionExpensiveChainLns {
1907  get { return useGlobalCheapestInsertionExpensiveChainLns_; }
1908  set {
1909  useGlobalCheapestInsertionExpensiveChainLns_ = value;
1910  }
1911  }
1912 
1914  public const int UseLocalCheapestInsertionExpensiveChainLnsFieldNumber = 30;
1915  private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionExpensiveChainLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
1920  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1921  public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionExpensiveChainLns {
1922  get { return useLocalCheapestInsertionExpensiveChainLns_; }
1923  set {
1924  useLocalCheapestInsertionExpensiveChainLns_ = value;
1925  }
1926  }
1927 
1928  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1929  public override bool Equals(object other) {
1930  return Equals(other as LocalSearchNeighborhoodOperators);
1931  }
1932 
1933  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1935  if (ReferenceEquals(other, null)) {
1936  return false;
1937  }
1938  if (ReferenceEquals(other, this)) {
1939  return true;
1940  }
1941  if (UseRelocate != other.UseRelocate) return false;
1942  if (UseRelocatePair != other.UseRelocatePair) return false;
1943  if (UseLightRelocatePair != other.UseLightRelocatePair) return false;
1944  if (UseRelocateNeighbors != other.UseRelocateNeighbors) return false;
1945  if (UseRelocateSubtrip != other.UseRelocateSubtrip) return false;
1946  if (UseExchange != other.UseExchange) return false;
1947  if (UseExchangePair != other.UseExchangePair) return false;
1948  if (UseExchangeSubtrip != other.UseExchangeSubtrip) return false;
1949  if (UseCross != other.UseCross) return false;
1950  if (UseCrossExchange != other.UseCrossExchange) return false;
1951  if (UseRelocateExpensiveChain != other.UseRelocateExpensiveChain) return false;
1952  if (UseTwoOpt != other.UseTwoOpt) return false;
1953  if (UseOrOpt != other.UseOrOpt) return false;
1954  if (UseLinKernighan != other.UseLinKernighan) return false;
1955  if (UseTspOpt != other.UseTspOpt) return false;
1956  if (UseMakeActive != other.UseMakeActive) return false;
1957  if (UseRelocateAndMakeActive != other.UseRelocateAndMakeActive) return false;
1958  if (UseMakeInactive != other.UseMakeInactive) return false;
1959  if (UseMakeChainInactive != other.UseMakeChainInactive) return false;
1960  if (UseSwapActive != other.UseSwapActive) return false;
1961  if (UseExtendedSwapActive != other.UseExtendedSwapActive) return false;
1962  if (UseNodePairSwapActive != other.UseNodePairSwapActive) return false;
1963  if (UsePathLns != other.UsePathLns) return false;
1964  if (UseFullPathLns != other.UseFullPathLns) return false;
1965  if (UseTspLns != other.UseTspLns) return false;
1966  if (UseInactiveLns != other.UseInactiveLns) return false;
1967  if (UseGlobalCheapestInsertionPathLns != other.UseGlobalCheapestInsertionPathLns) return false;
1968  if (UseLocalCheapestInsertionPathLns != other.UseLocalCheapestInsertionPathLns) return false;
1969  if (UseGlobalCheapestInsertionExpensiveChainLns != other.UseGlobalCheapestInsertionExpensiveChainLns) return false;
1970  if (UseLocalCheapestInsertionExpensiveChainLns != other.UseLocalCheapestInsertionExpensiveChainLns) return false;
1971  return Equals(_unknownFields, other._unknownFields);
1972  }
1973 
1974  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1975  public override int GetHashCode() {
1976  int hash = 1;
1977  if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocate.GetHashCode();
1978  if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocatePair.GetHashCode();
1979  if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLightRelocatePair.GetHashCode();
1980  if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateNeighbors.GetHashCode();
1981  if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateSubtrip.GetHashCode();
1982  if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchange.GetHashCode();
1983  if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangePair.GetHashCode();
1984  if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangeSubtrip.GetHashCode();
1985  if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCross.GetHashCode();
1986  if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCrossExchange.GetHashCode();
1987  if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateExpensiveChain.GetHashCode();
1988  if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTwoOpt.GetHashCode();
1989  if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseOrOpt.GetHashCode();
1990  if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLinKernighan.GetHashCode();
1991  if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTspOpt.GetHashCode();
1992  if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeActive.GetHashCode();
1993  if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateAndMakeActive.GetHashCode();
1994  if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeInactive.GetHashCode();
1995  if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeChainInactive.GetHashCode();
1996  if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseSwapActive.GetHashCode();
1997  if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExtendedSwapActive.GetHashCode();
1998  if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseNodePairSwapActive.GetHashCode();
1999  if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UsePathLns.GetHashCode();
2000  if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseFullPathLns.GetHashCode();
2001  if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTspLns.GetHashCode();
2002  if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseInactiveLns.GetHashCode();
2003  if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionPathLns.GetHashCode();
2004  if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionPathLns.GetHashCode();
2005  if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionExpensiveChainLns.GetHashCode();
2006  if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionExpensiveChainLns.GetHashCode();
2007  if (_unknownFields != null) {
2008  hash ^= _unknownFields.GetHashCode();
2009  }
2010  return hash;
2011  }
2012 
2013  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2014  public override string ToString() {
2015  return pb::JsonFormatter.ToDiagnosticString(this);
2016  }
2017 
2018  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2019  public void WriteTo(pb::CodedOutputStream output) {
2020  if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2021  output.WriteRawTag(8);
2022  output.WriteEnum((int) UseRelocate);
2023  }
2024  if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2025  output.WriteRawTag(16);
2026  output.WriteEnum((int) UseRelocatePair);
2027  }
2028  if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2029  output.WriteRawTag(24);
2030  output.WriteEnum((int) UseRelocateNeighbors);
2031  }
2032  if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2033  output.WriteRawTag(32);
2034  output.WriteEnum((int) UseExchange);
2035  }
2036  if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2037  output.WriteRawTag(40);
2038  output.WriteEnum((int) UseCross);
2039  }
2040  if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2041  output.WriteRawTag(48);
2042  output.WriteEnum((int) UseCrossExchange);
2043  }
2044  if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2045  output.WriteRawTag(56);
2046  output.WriteEnum((int) UseTwoOpt);
2047  }
2048  if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2049  output.WriteRawTag(64);
2050  output.WriteEnum((int) UseOrOpt);
2051  }
2052  if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2053  output.WriteRawTag(72);
2054  output.WriteEnum((int) UseLinKernighan);
2055  }
2056  if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2057  output.WriteRawTag(80);
2058  output.WriteEnum((int) UseTspOpt);
2059  }
2060  if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2061  output.WriteRawTag(88);
2062  output.WriteEnum((int) UseMakeActive);
2063  }
2064  if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2065  output.WriteRawTag(96);
2066  output.WriteEnum((int) UseMakeInactive);
2067  }
2068  if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2069  output.WriteRawTag(104);
2070  output.WriteEnum((int) UseMakeChainInactive);
2071  }
2072  if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2073  output.WriteRawTag(112);
2074  output.WriteEnum((int) UseSwapActive);
2075  }
2076  if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2077  output.WriteRawTag(120);
2078  output.WriteEnum((int) UseExtendedSwapActive);
2079  }
2080  if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2081  output.WriteRawTag(128, 1);
2082  output.WriteEnum((int) UsePathLns);
2083  }
2084  if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2085  output.WriteRawTag(136, 1);
2086  output.WriteEnum((int) UseFullPathLns);
2087  }
2088  if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2089  output.WriteRawTag(144, 1);
2090  output.WriteEnum((int) UseTspLns);
2091  }
2092  if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2093  output.WriteRawTag(152, 1);
2094  output.WriteEnum((int) UseInactiveLns);
2095  }
2096  if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2097  output.WriteRawTag(160, 1);
2098  output.WriteEnum((int) UseNodePairSwapActive);
2099  }
2100  if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2101  output.WriteRawTag(168, 1);
2102  output.WriteEnum((int) UseRelocateAndMakeActive);
2103  }
2104  if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2105  output.WriteRawTag(176, 1);
2106  output.WriteEnum((int) UseExchangePair);
2107  }
2108  if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2109  output.WriteRawTag(184, 1);
2110  output.WriteEnum((int) UseRelocateExpensiveChain);
2111  }
2112  if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2113  output.WriteRawTag(192, 1);
2114  output.WriteEnum((int) UseLightRelocatePair);
2115  }
2116  if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2117  output.WriteRawTag(200, 1);
2118  output.WriteEnum((int) UseRelocateSubtrip);
2119  }
2120  if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2121  output.WriteRawTag(208, 1);
2122  output.WriteEnum((int) UseExchangeSubtrip);
2123  }
2124  if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2125  output.WriteRawTag(216, 1);
2126  output.WriteEnum((int) UseGlobalCheapestInsertionPathLns);
2127  }
2128  if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2129  output.WriteRawTag(224, 1);
2130  output.WriteEnum((int) UseLocalCheapestInsertionPathLns);
2131  }
2132  if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2133  output.WriteRawTag(232, 1);
2134  output.WriteEnum((int) UseGlobalCheapestInsertionExpensiveChainLns);
2135  }
2136  if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2137  output.WriteRawTag(240, 1);
2138  output.WriteEnum((int) UseLocalCheapestInsertionExpensiveChainLns);
2139  }
2140  if (_unknownFields != null) {
2141  _unknownFields.WriteTo(output);
2142  }
2143  }
2144 
2145  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2146  public int CalculateSize() {
2147  int size = 0;
2148  if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2149  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocate);
2150  }
2151  if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2152  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocatePair);
2153  }
2154  if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2155  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLightRelocatePair);
2156  }
2157  if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2158  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateNeighbors);
2159  }
2160  if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2161  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateSubtrip);
2162  }
2163  if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2164  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchange);
2165  }
2166  if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2167  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangePair);
2168  }
2169  if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2170  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangeSubtrip);
2171  }
2172  if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2173  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseCross);
2174  }
2175  if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2176  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseCrossExchange);
2177  }
2178  if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2179  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateExpensiveChain);
2180  }
2181  if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2182  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseTwoOpt);
2183  }
2184  if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2185  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseOrOpt);
2186  }
2187  if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2188  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseLinKernighan);
2189  }
2190  if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2191  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseTspOpt);
2192  }
2193  if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2194  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeActive);
2195  }
2196  if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2197  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateAndMakeActive);
2198  }
2199  if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2200  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeInactive);
2201  }
2202  if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2203  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeChainInactive);
2204  }
2205  if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2206  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseSwapActive);
2207  }
2208  if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2209  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseExtendedSwapActive);
2210  }
2211  if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2212  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseNodePairSwapActive);
2213  }
2214  if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2215  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UsePathLns);
2216  }
2217  if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2218  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseFullPathLns);
2219  }
2220  if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2221  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseTspLns);
2222  }
2223  if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2224  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseInactiveLns);
2225  }
2226  if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2227  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionPathLns);
2228  }
2229  if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2230  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionPathLns);
2231  }
2232  if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2233  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionExpensiveChainLns);
2234  }
2235  if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2236  size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionExpensiveChainLns);
2237  }
2238  if (_unknownFields != null) {
2239  size += _unknownFields.CalculateSize();
2240  }
2241  return size;
2242  }
2243 
2244  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2246  if (other == null) {
2247  return;
2248  }
2249  if (other.UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2250  UseRelocate = other.UseRelocate;
2251  }
2252  if (other.UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2253  UseRelocatePair = other.UseRelocatePair;
2254  }
2255  if (other.UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2256  UseLightRelocatePair = other.UseLightRelocatePair;
2257  }
2258  if (other.UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2259  UseRelocateNeighbors = other.UseRelocateNeighbors;
2260  }
2261  if (other.UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2262  UseRelocateSubtrip = other.UseRelocateSubtrip;
2263  }
2264  if (other.UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2265  UseExchange = other.UseExchange;
2266  }
2267  if (other.UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2268  UseExchangePair = other.UseExchangePair;
2269  }
2270  if (other.UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2271  UseExchangeSubtrip = other.UseExchangeSubtrip;
2272  }
2273  if (other.UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2274  UseCross = other.UseCross;
2275  }
2276  if (other.UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2277  UseCrossExchange = other.UseCrossExchange;
2278  }
2279  if (other.UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2280  UseRelocateExpensiveChain = other.UseRelocateExpensiveChain;
2281  }
2282  if (other.UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2283  UseTwoOpt = other.UseTwoOpt;
2284  }
2285  if (other.UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2286  UseOrOpt = other.UseOrOpt;
2287  }
2288  if (other.UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2289  UseLinKernighan = other.UseLinKernighan;
2290  }
2291  if (other.UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2292  UseTspOpt = other.UseTspOpt;
2293  }
2294  if (other.UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2295  UseMakeActive = other.UseMakeActive;
2296  }
2297  if (other.UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2298  UseRelocateAndMakeActive = other.UseRelocateAndMakeActive;
2299  }
2300  if (other.UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2301  UseMakeInactive = other.UseMakeInactive;
2302  }
2303  if (other.UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2304  UseMakeChainInactive = other.UseMakeChainInactive;
2305  }
2306  if (other.UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2307  UseSwapActive = other.UseSwapActive;
2308  }
2309  if (other.UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2310  UseExtendedSwapActive = other.UseExtendedSwapActive;
2311  }
2312  if (other.UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2313  UseNodePairSwapActive = other.UseNodePairSwapActive;
2314  }
2315  if (other.UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2316  UsePathLns = other.UsePathLns;
2317  }
2318  if (other.UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2319  UseFullPathLns = other.UseFullPathLns;
2320  }
2321  if (other.UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2322  UseTspLns = other.UseTspLns;
2323  }
2324  if (other.UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2325  UseInactiveLns = other.UseInactiveLns;
2326  }
2327  if (other.UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2328  UseGlobalCheapestInsertionPathLns = other.UseGlobalCheapestInsertionPathLns;
2329  }
2330  if (other.UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2331  UseLocalCheapestInsertionPathLns = other.UseLocalCheapestInsertionPathLns;
2332  }
2333  if (other.UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2334  UseGlobalCheapestInsertionExpensiveChainLns = other.UseGlobalCheapestInsertionExpensiveChainLns;
2335  }
2336  if (other.UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2337  UseLocalCheapestInsertionExpensiveChainLns = other.UseLocalCheapestInsertionExpensiveChainLns;
2338  }
2339  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2340  }
2341 
2342  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2343  public void MergeFrom(pb::CodedInputStream input) {
2344  uint tag;
2345  while ((tag = input.ReadTag()) != 0) {
2346  switch(tag) {
2347  default:
2348  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2349  break;
2350  case 8: {
2351  UseRelocate = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2352  break;
2353  }
2354  case 16: {
2355  UseRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2356  break;
2357  }
2358  case 24: {
2359  UseRelocateNeighbors = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2360  break;
2361  }
2362  case 32: {
2363  UseExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2364  break;
2365  }
2366  case 40: {
2367  UseCross = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2368  break;
2369  }
2370  case 48: {
2371  UseCrossExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2372  break;
2373  }
2374  case 56: {
2375  UseTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2376  break;
2377  }
2378  case 64: {
2379  UseOrOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2380  break;
2381  }
2382  case 72: {
2383  UseLinKernighan = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2384  break;
2385  }
2386  case 80: {
2387  UseTspOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2388  break;
2389  }
2390  case 88: {
2391  UseMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2392  break;
2393  }
2394  case 96: {
2395  UseMakeInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2396  break;
2397  }
2398  case 104: {
2399  UseMakeChainInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2400  break;
2401  }
2402  case 112: {
2403  UseSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2404  break;
2405  }
2406  case 120: {
2407  UseExtendedSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2408  break;
2409  }
2410  case 128: {
2411  UsePathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2412  break;
2413  }
2414  case 136: {
2415  UseFullPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2416  break;
2417  }
2418  case 144: {
2419  UseTspLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2420  break;
2421  }
2422  case 152: {
2423  UseInactiveLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2424  break;
2425  }
2426  case 160: {
2427  UseNodePairSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2428  break;
2429  }
2430  case 168: {
2431  UseRelocateAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2432  break;
2433  }
2434  case 176: {
2435  UseExchangePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2436  break;
2437  }
2438  case 184: {
2439  UseRelocateExpensiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2440  break;
2441  }
2442  case 192: {
2443  UseLightRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2444  break;
2445  }
2446  case 200: {
2447  UseRelocateSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2448  break;
2449  }
2450  case 208: {
2451  UseExchangeSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2452  break;
2453  }
2454  case 216: {
2455  UseGlobalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2456  break;
2457  }
2458  case 224: {
2459  UseLocalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2460  break;
2461  }
2462  case 232: {
2463  UseGlobalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2464  break;
2465  }
2466  case 240: {
2467  UseLocalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2468  break;
2469  }
2470  }
2471  }
2472  }
2473 
2474  }
2475 
2476  }
2477  #endregion
2478 
2479  }
2480 
2484  public sealed partial class RoutingModelParameters : pb::IMessage<RoutingModelParameters> {
2485  private static readonly pb::MessageParser<RoutingModelParameters> _parser = new pb::MessageParser<RoutingModelParameters>(() => new RoutingModelParameters());
2486  private pb::UnknownFieldSet _unknownFields;
2487  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2488  public static pb::MessageParser<RoutingModelParameters> Parser { get { return _parser; } }
2489 
2490  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2491  public static pbr::MessageDescriptor Descriptor {
2492  get { return global::Google.OrTools.ConstraintSolver.RoutingParametersReflection.Descriptor.MessageTypes[1]; }
2493  }
2494 
2495  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2496  pbr::MessageDescriptor pb::IMessage.Descriptor {
2497  get { return Descriptor; }
2498  }
2499 
2500  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2502  OnConstruction();
2503  }
2504 
2505  partial void OnConstruction();
2506 
2507  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2509  solverParameters_ = other.solverParameters_ != null ? other.solverParameters_.Clone() : null;
2510  reduceVehicleCostModel_ = other.reduceVehicleCostModel_;
2511  maxCallbackCacheSize_ = other.maxCallbackCacheSize_;
2512  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2513  }
2514 
2515  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2517  return new RoutingModelParameters(this);
2518  }
2519 
2521  public const int SolverParametersFieldNumber = 1;
2522  private global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters solverParameters_;
2526  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2527  public global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters SolverParameters {
2528  get { return solverParameters_; }
2529  set {
2530  solverParameters_ = value;
2531  }
2532  }
2533 
2535  public const int ReduceVehicleCostModelFieldNumber = 2;
2536  private bool reduceVehicleCostModel_;
2543  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2544  public bool ReduceVehicleCostModel {
2545  get { return reduceVehicleCostModel_; }
2546  set {
2547  reduceVehicleCostModel_ = value;
2548  }
2549  }
2550 
2552  public const int MaxCallbackCacheSizeFieldNumber = 3;
2553  private int maxCallbackCacheSize_;
2558  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2559  public int MaxCallbackCacheSize {
2560  get { return maxCallbackCacheSize_; }
2561  set {
2562  maxCallbackCacheSize_ = value;
2563  }
2564  }
2565 
2566  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2567  public override bool Equals(object other) {
2568  return Equals(other as RoutingModelParameters);
2569  }
2570 
2571  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2572  public bool Equals(RoutingModelParameters other) {
2573  if (ReferenceEquals(other, null)) {
2574  return false;
2575  }
2576  if (ReferenceEquals(other, this)) {
2577  return true;
2578  }
2579  if (!object.Equals(SolverParameters, other.SolverParameters)) return false;
2580  if (ReduceVehicleCostModel != other.ReduceVehicleCostModel) return false;
2581  if (MaxCallbackCacheSize != other.MaxCallbackCacheSize) return false;
2582  return Equals(_unknownFields, other._unknownFields);
2583  }
2584 
2585  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2586  public override int GetHashCode() {
2587  int hash = 1;
2588  if (solverParameters_ != null) hash ^= SolverParameters.GetHashCode();
2589  if (ReduceVehicleCostModel != false) hash ^= ReduceVehicleCostModel.GetHashCode();
2590  if (MaxCallbackCacheSize != 0) hash ^= MaxCallbackCacheSize.GetHashCode();
2591  if (_unknownFields != null) {
2592  hash ^= _unknownFields.GetHashCode();
2593  }
2594  return hash;
2595  }
2596 
2597  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2598  public override string ToString() {
2599  return pb::JsonFormatter.ToDiagnosticString(this);
2600  }
2601 
2602  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2603  public void WriteTo(pb::CodedOutputStream output) {
2604  if (solverParameters_ != null) {
2605  output.WriteRawTag(10);
2606  output.WriteMessage(SolverParameters);
2607  }
2608  if (ReduceVehicleCostModel != false) {
2609  output.WriteRawTag(16);
2610  output.WriteBool(ReduceVehicleCostModel);
2611  }
2612  if (MaxCallbackCacheSize != 0) {
2613  output.WriteRawTag(24);
2614  output.WriteInt32(MaxCallbackCacheSize);
2615  }
2616  if (_unknownFields != null) {
2617  _unknownFields.WriteTo(output);
2618  }
2619  }
2620 
2621  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2622  public int CalculateSize() {
2623  int size = 0;
2624  if (solverParameters_ != null) {
2625  size += 1 + pb::CodedOutputStream.ComputeMessageSize(SolverParameters);
2626  }
2627  if (ReduceVehicleCostModel != false) {
2628  size += 1 + 1;
2629  }
2630  if (MaxCallbackCacheSize != 0) {
2631  size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxCallbackCacheSize);
2632  }
2633  if (_unknownFields != null) {
2634  size += _unknownFields.CalculateSize();
2635  }
2636  return size;
2637  }
2638 
2639  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2640  public void MergeFrom(RoutingModelParameters other) {
2641  if (other == null) {
2642  return;
2643  }
2644  if (other.solverParameters_ != null) {
2645  if (solverParameters_ == null) {
2646  SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
2647  }
2648  SolverParameters.MergeFrom(other.SolverParameters);
2649  }
2650  if (other.ReduceVehicleCostModel != false) {
2651  ReduceVehicleCostModel = other.ReduceVehicleCostModel;
2652  }
2653  if (other.MaxCallbackCacheSize != 0) {
2654  MaxCallbackCacheSize = other.MaxCallbackCacheSize;
2655  }
2656  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2657  }
2658 
2659  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2660  public void MergeFrom(pb::CodedInputStream input) {
2661  uint tag;
2662  while ((tag = input.ReadTag()) != 0) {
2663  switch(tag) {
2664  default:
2665  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2666  break;
2667  case 10: {
2668  if (solverParameters_ == null) {
2669  SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
2670  }
2671  input.ReadMessage(SolverParameters);
2672  break;
2673  }
2674  case 16: {
2675  ReduceVehicleCostModel = input.ReadBool();
2676  break;
2677  }
2678  case 24: {
2679  MaxCallbackCacheSize = input.ReadInt32();
2680  break;
2681  }
2682  }
2683  }
2684  }
2685 
2686  }
2687 
2688  #endregion
2689 
2690 }
2691 
2692 #endregion Designer generated code
global::Google.OrTools.Util.OptionalBoolean UseRelocateExpensiveChain
Operator which detects the relocate_expensive_chain_num_arcs_to_consider most expensive arcs on a pat...
override int GetHashCode()
LocalSearchMetaheuristic()
int CalculateSize()
override string ToString()
RoutingSearchParameters(RoutingSearchParameters other)
global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionExpensiveChainLns
This operator finds heuristic_expensive_chain_lns_num_arcs_to_consider most expensive arcs on a route...
void MergeFrom(RoutingSearchParameters other)
SchedulingSolver
Underlying solver to use in dimension scheduling, respectively for continuous and mixed models.
global::Google.OrTools.Util.OptionalBoolean UseTspOpt
Sliding TSP operator.
global::Google.OrTools.Util.OptionalBoolean UseTspLns
TSP-base LNS.
LocalSearchNeighborhoodOperators()
global::Google.OrTools.Util.OptionalBoolean UseTwoOpt
— Intra-route operators — Operator which reverves a sub-chain of a path.
bool Equals(RoutingSearchParameters other)
global::Google.OrTools.Util.OptionalBoolean UseMakeChainInactive
Operator which makes a "chain" of path nodes inactive.
Container for nested types declared in the LocalSearchMetaheuristic message type.
Definition: Assignment.cs:11
Parameters which have to be set when creating a RoutingModel.
global::Google.OrTools.Util.OptionalBoolean UseSwapActive
Operator which replaces an active node by an inactive one.
Value
global::Google.OrTools.Util.OptionalBoolean UseRelocateAndMakeActive
Operator which relocates a node while making an inactive one active.
ConstraintSolverParameters Clone()
global::Google.OrTools.Util.OptionalBoolean UseNodePairSwapActive
Operator which makes an inactive node active and an active pair of nodes inactive OR makes an inactiv...
void WriteTo(pb::CodedOutputStream output)
global::Google.OrTools.Util.OptionalBoolean UseLightRelocatePair
Operator which moves a pair of pickup and delivery nodes after another pair.
global::Google.OrTools.Util.OptionalBoolean UseLinKernighan
Lin-Kernighan operator.
global::Google.Protobuf pb
global::Google.OrTools.Util.OptionalBoolean UseInactiveLns
Operator which relaxes all inactive nodes and one sub-chain of six consecutive arcs.
void MergeFrom(pb::CodedInputStream input)
override bool Equals(object other)
override int GetHashCode()
void MergeFrom(RoutingModelParameters other)
global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionPathLns
Same as above but using LocalCheapestInsertion as a heuristic.
global::Google.Protobuf.Reflection pbr
global::Google.OrTools.Util.OptionalBoolean UseRelocateSubtrip
Relocate neighborhood that moves subpaths all pickup and delivery pairs have both pickup and delivery...
global::Google.OrTools.Util.OptionalBoolean UseMakeActive
— Operators on inactive nodes — Operator which inserts an inactive node into a path.
void MergeFrom(pb::CodedInputStream input)
LocalSearchNeighborhoodOperators Clone()
global::Google.OrTools.Util.OptionalBoolean UseMakeInactive
Operator which makes path nodes inactive.
global::Google.OrTools.Util.OptionalBoolean UseCrossExchange
Not implemented yet.
global::Google.OrTools.Util.OptionalBoolean UseCross
Operator which cross exchanges the starting chains of 2 paths, including exchanging the whole paths.
Local search metaheuristics used to guide the search.
bool ReduceVehicleCostModel
Advanced settings.
global::Google.OrTools.Util.OptionalBoolean UseExtendedSwapActive
Operator which makes an inactive node active and an active one inactive.
RoutingModelParameters(RoutingModelParameters other)
First solution strategies, used as starting point of local search.
global::Google.OrTools.Util.OptionalBoolean UseExchangePair
Operator which exchanges the positions of two pair of nodes.
int CalculateSize()
override int GetHashCode()
bool Equals(LocalSearchNeighborhoodOperators other)
global::Google.OrTools.Util.OptionalBoolean UseExchange
Operator which exchanges the positions of two nodes.
Local search neighborhood operators used to build a solutions neighborhood.
global::Google.OrTools.Util.OptionalBoolean UseRelocatePair
Operator which moves a pair of pickup and delivery nodes to another position where the first node of ...
global::System.Collections.Generic scg
override int GetHashCode()
global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionPathLns
— LNS-like large neighborhood search operators using heuristics — Operator which makes all nodes on a...
override string ToString()
LocalSearchNeighborhoodOperators(LocalSearchNeighborhoodOperators other)
RoutingSearchParameters Clone()
RoutingModelParameters()
global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionExpensiveChainLns
Same as above but using LocalCheapestInsertion as a heuristic for insertion.
global::Google.OrTools.Util.OptionalBoolean UseExchangeSubtrip
Operator which exchanges subtrips associated to two pairs of nodes, see use_relocate_subtrip for a de...
global::Google.OrTools.Util.OptionalBoolean UsePathLns
— Large neighborhood search operators — Operator which relaxes two sub-chains of three consecutive ar...
void MergeFrom(LocalSearchNeighborhoodOperators other)
Holder for reflection information generated from ortools/constraint_solver/routing_parameters....
Container for nested types declared in the RoutingSearchParameters message type.
static pbr::FileDescriptor Descriptor
File descriptor for ortools/constraint_solver/routing_parameters.proto
int CalculateSize()
override string ToString()
RoutingSearchParameters()
override int GetHashCode()
void MergeFrom(pb::CodedInputStream input)
RoutingModelParameters Clone()
Container for nested types declared in the FirstSolutionStrategy message type.
bool Equals(RoutingModelParameters other)
int MaxCallbackCacheSize
Cache callback calls if the number of nodes in the model is less or equal to this value.
global::Google.OrTools.Util.OptionalBoolean UseFullPathLns
Operator which relaxes one entire path and all unactive nodes.
void WriteTo(pb::CodedOutputStream output)
override bool Equals(object other)
global::Google.OrTools.Util.OptionalBoolean UseRelocate
— Inter-route operators — Operator which moves a single node to another position.
FirstSolutionStrategy()
override bool Equals(object other)
void WriteTo(pb::CodedOutputStream output)
global::Google.OrTools.Util.OptionalBoolean UseRelocateNeighbors
Relocate neighborhood which moves chains of neighbors.
global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters SolverParameters
Parameters to use in the underlying constraint solver.
global::Google.OrTools.Util.OptionalBoolean UseOrOpt
Operator which moves sub-chains of a path of length 1, 2 and 3 to another position in the same path.
global::Google.Protobuf.Collections pbc
Parameters defining the search used to solve vehicle routing problems.