DotNet Reference

.Net 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
8using pb = global::Google.Protobuf;
9using pbc = global::Google.Protobuf.Collections;
10using pbr = global::Google.Protobuf.Reflection;
11using scg = global::System.Collections.Generic;
13
15 public static partial class RoutingParametersReflection {
16
17 #region Descriptor
19 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 "c29sdmVyX3BhcmFtZXRlcnMucHJvdG8aIG9ydG9vbHMvc2F0L3NhdF9wYXJh",
32 "bWV0ZXJzLnByb3RvGiNvcnRvb2xzL3V0aWwvb3B0aW9uYWxfYm9vbGVhbi5w",
33 "cm90byL6JQoXUm91dGluZ1NlYXJjaFBhcmFtZXRlcnMSUQoXZmlyc3Rfc29s",
34 "dXRpb25fc3RyYXRlZ3kYASABKA4yMC5vcGVyYXRpb25zX3Jlc2VhcmNoLkZp",
35 "cnN0U29sdXRpb25TdHJhdGVneS5WYWx1ZRIuCiZ1c2VfdW5maWx0ZXJlZF9m",
36 "aXJzdF9zb2x1dGlvbl9zdHJhdGVneRgCIAEoCBIfChdzYXZpbmdzX25laWdo",
37 "Ym9yc19yYXRpbxgOIAEoARImCh5zYXZpbmdzX21heF9tZW1vcnlfdXNhZ2Vf",
38 "Ynl0ZXMYFyABKAESIAoYc2F2aW5nc19hZGRfcmV2ZXJzZV9hcmNzGA8gASgI",
39 "Eh8KF3NhdmluZ3NfYXJjX2NvZWZmaWNpZW50GBIgASgBEh8KF3NhdmluZ3Nf",
40 "cGFyYWxsZWxfcm91dGVzGBMgASgIEi8KJ2NoZWFwZXN0X2luc2VydGlvbl9m",
41 "YXJ0aGVzdF9zZWVkc19yYXRpbxgQIAEoARI5CjFjaGVhcGVzdF9pbnNlcnRp",
42 "b25fZmlyc3Rfc29sdXRpb25fbmVpZ2hib3JzX3JhdGlvGBUgASgBEjcKL2No",
43 "ZWFwZXN0X2luc2VydGlvbl9maXJzdF9zb2x1dGlvbl9taW5fbmVpZ2hib3Jz",
44 "GCwgASgFEjYKLmNoZWFwZXN0X2luc2VydGlvbl9sc19vcGVyYXRvcl9uZWln",
45 "aGJvcnNfcmF0aW8YHyABKAESNAosY2hlYXBlc3RfaW5zZXJ0aW9uX2xzX29w",
46 "ZXJhdG9yX21pbl9uZWlnaGJvcnMYLSABKAUSUApIY2hlYXBlc3RfaW5zZXJ0",
47 "aW9uX2ZpcnN0X3NvbHV0aW9uX3VzZV9uZWlnaGJvcnNfcmF0aW9fZm9yX2lu",
48 "aXRpYWxpemF0aW9uGC4gASgIEjIKKmNoZWFwZXN0X2luc2VydGlvbl9hZGRf",
49 "dW5wZXJmb3JtZWRfZW50cmllcxgoIAEoCBIpCiFjaHJpc3RvZmlkZXNfdXNl",
50 "X21pbmltdW1fbWF0Y2hpbmcYHiABKAgSbQoWbG9jYWxfc2VhcmNoX29wZXJh",
51 "dG9ycxgDIAEoCzJNLm9wZXJhdGlvbnNfcmVzZWFyY2guUm91dGluZ1NlYXJj",
52 "aFBhcmFtZXRlcnMuTG9jYWxTZWFyY2hOZWlnaGJvcmhvb2RPcGVyYXRvcnMS",
53 "NAosdXNlX211bHRpX2FybWVkX2JhbmRpdF9jb25jYXRlbmF0ZV9vcGVyYXRv",
54 "cnMYKSABKAgSPwo3bXVsdGlfYXJtZWRfYmFuZGl0X2NvbXBvdW5kX29wZXJh",
55 "dG9yX21lbW9yeV9jb2VmZmljaWVudBgqIAEoARJECjxtdWx0aV9hcm1lZF9i",
56 "YW5kaXRfY29tcG91bmRfb3BlcmF0b3JfZXhwbG9yYXRpb25fY29lZmZpY2ll",
57 "bnQYKyABKAESNQotcmVsb2NhdGVfZXhwZW5zaXZlX2NoYWluX251bV9hcmNz",
58 "X3RvX2NvbnNpZGVyGBQgASgFEjoKMmhldXJpc3RpY19leHBlbnNpdmVfY2hh",
59 "aW5fbG5zX251bV9hcmNzX3RvX2NvbnNpZGVyGCAgASgFEisKI2hldXJpc3Rp",
60 "Y19jbG9zZV9ub2Rlc19sbnNfbnVtX25vZGVzGCMgASgFElcKGmxvY2FsX3Nl",
61 "YXJjaF9tZXRhaGV1cmlzdGljGAQgASgOMjMub3BlcmF0aW9uc19yZXNlYXJj",
62 "aC5Mb2NhbFNlYXJjaE1ldGFoZXVyaXN0aWMuVmFsdWUSLgomZ3VpZGVkX2xv",
63 "Y2FsX3NlYXJjaF9sYW1iZGFfY29lZmZpY2llbnQYBSABKAESHgoWdXNlX2Rl",
64 "cHRoX2ZpcnN0X3NlYXJjaBgGIAEoCBI0CgZ1c2VfY3AYHCABKA4yJC5vcGVy",
65 "YXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI4Cgp1c2VfY3Bfc2F0",
66 "GBsgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4S",
67 "RAoWdXNlX2dlbmVyYWxpemVkX2NwX3NhdBgvIAEoDjIkLm9wZXJhdGlvbnNf",
68 "cmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEj4KDnNhdF9wYXJhbWV0ZXJzGDAg",
69 "ASgLMiYub3BlcmF0aW9uc19yZXNlYXJjaC5zYXQuU2F0UGFyYW1ldGVycxJj",
70 "Chxjb250aW51b3VzX3NjaGVkdWxpbmdfc29sdmVyGCEgASgOMj0ub3BlcmF0",
71 "aW9uc19yZXNlYXJjaC5Sb3V0aW5nU2VhcmNoUGFyYW1ldGVycy5TY2hlZHVs",
72 "aW5nU29sdmVyEmYKH21peGVkX2ludGVnZXJfc2NoZWR1bGluZ19zb2x2ZXIY",
73 "IiABKA4yPS5vcGVyYXRpb25zX3Jlc2VhcmNoLlJvdXRpbmdTZWFyY2hQYXJh",
74 "bWV0ZXJzLlNjaGVkdWxpbmdTb2x2ZXISGQoRb3B0aW1pemF0aW9uX3N0ZXAY",
75 "ByABKAESJgoebnVtYmVyX29mX3NvbHV0aW9uc190b19jb2xsZWN0GBEgASgF",
76 "EhYKDnNvbHV0aW9uX2xpbWl0GAggASgDEi0KCnRpbWVfbGltaXQYCSABKAsy",
77 "GS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SMQoObG5zX3RpbWVfbGltaXQY",
78 "CiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24ScwocaW1wcm92ZW1l",
79 "bnRfbGltaXRfcGFyYW1ldGVycxglIAEoCzJNLm9wZXJhdGlvbnNfcmVzZWFy",
80 "Y2guUm91dGluZ1NlYXJjaFBhcmFtZXRlcnMuSW1wcm92ZW1lbnRTZWFyY2hM",
81 "aW1pdFBhcmFtZXRlcnMSHAoUdXNlX2Z1bGxfcHJvcGFnYXRpb24YCyABKAgS",
82 "EgoKbG9nX3NlYXJjaBgNIAEoCBIfChdsb2dfY29zdF9zY2FsaW5nX2ZhY3Rv",
83 "chgWIAEoARIXCg9sb2dfY29zdF9vZmZzZXQYHSABKAESDwoHbG9nX3RhZxgk",
84 "IAEoCRrXEgogTG9jYWxTZWFyY2hOZWlnaGJvcmhvb2RPcGVyYXRvcnMSOgoM",
85 "dXNlX3JlbG9jYXRlGAEgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRp",
86 "b25hbEJvb2xlYW4SPwoRdXNlX3JlbG9jYXRlX3BhaXIYAiABKA4yJC5vcGVy",
87 "YXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJFChd1c2VfbGlnaHRf",
88 "cmVsb2NhdGVfcGFpchgYIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0",
89 "aW9uYWxCb29sZWFuEkQKFnVzZV9yZWxvY2F0ZV9uZWlnaGJvcnMYAyABKA4y",
90 "JC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJCChR1c2Vf",
91 "cmVsb2NhdGVfc3VidHJpcBgZIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2gu",
92 "T3B0aW9uYWxCb29sZWFuEjoKDHVzZV9leGNoYW5nZRgEIAEoDjIkLm9wZXJh",
93 "dGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEj8KEXVzZV9leGNoYW5n",
94 "ZV9wYWlyGBYgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJv",
95 "b2xlYW4SQgoUdXNlX2V4Y2hhbmdlX3N1YnRyaXAYGiABKA4yJC5vcGVyYXRp",
96 "b25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI3Cgl1c2VfY3Jvc3MYBSAB",
97 "KA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJAChJ1",
98 "c2VfY3Jvc3NfZXhjaGFuZ2UYBiABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNo",
99 "Lk9wdGlvbmFsQm9vbGVhbhJKChx1c2VfcmVsb2NhdGVfZXhwZW5zaXZlX2No",
100 "YWluGBcgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xl",
101 "YW4SOQoLdXNlX3R3b19vcHQYByABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNo",
102 "Lk9wdGlvbmFsQm9vbGVhbhI4Cgp1c2Vfb3Jfb3B0GAggASgOMiQub3BlcmF0",
103 "aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SPwoRdXNlX2xpbl9rZXJu",
104 "aWdoYW4YCSABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9v",
105 "bGVhbhI5Cgt1c2VfdHNwX29wdBgKIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFy",
106 "Y2guT3B0aW9uYWxCb29sZWFuEj0KD3VzZV9tYWtlX2FjdGl2ZRgLIAEoDjIk",
107 "Lm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEkoKHHVzZV9y",
108 "ZWxvY2F0ZV9hbmRfbWFrZV9hY3RpdmUYFSABKA4yJC5vcGVyYXRpb25zX3Jl",
109 "c2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI/ChF1c2VfbWFrZV9pbmFjdGl2ZRgM",
110 "IAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEkUK",
111 "F3VzZV9tYWtlX2NoYWluX2luYWN0aXZlGA0gASgOMiQub3BlcmF0aW9uc19y",
112 "ZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SPQoPdXNlX3N3YXBfYWN0aXZlGA4g",
113 "ASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SRgoY",
114 "dXNlX2V4dGVuZGVkX3N3YXBfYWN0aXZlGA8gASgOMiQub3BlcmF0aW9uc19y",
115 "ZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SRwoZdXNlX25vZGVfcGFpcl9zd2Fw",
116 "X2FjdGl2ZRgUIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxC",
117 "b29sZWFuEjoKDHVzZV9wYXRoX2xucxgQIAEoDjIkLm9wZXJhdGlvbnNfcmVz",
118 "ZWFyY2guT3B0aW9uYWxCb29sZWFuEj8KEXVzZV9mdWxsX3BhdGhfbG5zGBEg",
119 "ASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SOQoL",
120 "dXNlX3RzcF9sbnMYEiABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlv",
121 "bmFsQm9vbGVhbhI+ChB1c2VfaW5hY3RpdmVfbG5zGBMgASgOMiQub3BlcmF0",
122 "aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SVAomdXNlX2dsb2JhbF9j",
123 "aGVhcGVzdF9pbnNlcnRpb25fcGF0aF9sbnMYGyABKA4yJC5vcGVyYXRpb25z",
124 "X3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJTCiV1c2VfbG9jYWxfY2hlYXBl",
125 "c3RfaW5zZXJ0aW9uX3BhdGhfbG5zGBwgASgOMiQub3BlcmF0aW9uc19yZXNl",
126 "YXJjaC5PcHRpb25hbEJvb2xlYW4SbAo+dXNlX3JlbG9jYXRlX3BhdGhfZ2xv",
127 "YmFsX2NoZWFwZXN0X2luc2VydGlvbl9pbnNlcnRfdW5wZXJmb3JtZWQYISAB",
128 "KA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJfCjF1",
129 "c2VfZ2xvYmFsX2NoZWFwZXN0X2luc2VydGlvbl9leHBlbnNpdmVfY2hhaW5f",
130 "bG5zGB0gASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xl",
131 "YW4SXgowdXNlX2xvY2FsX2NoZWFwZXN0X2luc2VydGlvbl9leHBlbnNpdmVf",
132 "Y2hhaW5fbG5zGB4gASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25h",
133 "bEJvb2xlYW4SWwotdXNlX2dsb2JhbF9jaGVhcGVzdF9pbnNlcnRpb25fY2xv",
134 "c2Vfbm9kZXNfbG5zGB8gASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRp",
135 "b25hbEJvb2xlYW4SWgosdXNlX2xvY2FsX2NoZWFwZXN0X2luc2VydGlvbl9j",
136 "bG9zZV9ub2Rlc19sbnMYICABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9w",
137 "dGlvbmFsQm9vbGVhbhp1CiBJbXByb3ZlbWVudFNlYXJjaExpbWl0UGFyYW1l",
138 "dGVycxIkChxpbXByb3ZlbWVudF9yYXRlX2NvZWZmaWNpZW50GCYgASgBEisK",
139 "I2ltcHJvdmVtZW50X3JhdGVfc29sdXRpb25zX2Rpc3RhbmNlGCcgASgFIjMK",
140 "EFNjaGVkdWxpbmdTb2x2ZXISCQoFVU5TRVQQABIICgRHTE9QEAESCgoGQ1Bf",
141 "U0FUEAIiqAEKFlJvdXRpbmdNb2RlbFBhcmFtZXRlcnMSSgoRc29sdmVyX3Bh",
142 "cmFtZXRlcnMYASABKAsyLy5vcGVyYXRpb25zX3Jlc2VhcmNoLkNvbnN0cmFp",
143 "bnRTb2x2ZXJQYXJhbWV0ZXJzEiEKGXJlZHVjZV92ZWhpY2xlX2Nvc3RfbW9k",
144 "ZWwYAiABKAgSHwoXbWF4X2NhbGxiYWNrX2NhY2hlX3NpemUYAyABKAVCSQoj",
145 "Y29tLmdvb2dsZS5vcnRvb2xzLmNvbnN0cmFpbnRzb2x2ZXJQAaoCH0dvb2ds",
146 "ZS5PclRvb2xzLkNvbnN0cmFpbnRTb2x2ZXJiBnByb3RvMw=="));
147 descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
148 new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.OrTools.ConstraintSolver.RoutingEnumsReflection.Descriptor, global::Google.OrTools.ConstraintSolver.SolverParametersReflection.Descriptor, global::Google.OrTools.Sat.SatParametersReflection.Descriptor, global::Google.OrTools.Util.OptionalBooleanReflection.Descriptor, },
149 new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
150 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", "CheapestInsertionFirstSolutionMinNeighbors", "CheapestInsertionLsOperatorNeighborsRatio", "CheapestInsertionLsOperatorMinNeighbors", "CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization", "CheapestInsertionAddUnperformedEntries", "ChristofidesUseMinimumMatching", "LocalSearchOperators", "UseMultiArmedBanditConcatenateOperators", "MultiArmedBanditCompoundOperatorMemoryCoefficient", "MultiArmedBanditCompoundOperatorExplorationCoefficient", "RelocateExpensiveChainNumArcsToConsider", "HeuristicExpensiveChainLnsNumArcsToConsider", "HeuristicCloseNodesLnsNumNodes", "LocalSearchMetaheuristic", "GuidedLocalSearchLambdaCoefficient", "UseDepthFirstSearch", "UseCp", "UseCpSat", "UseGeneralizedCpSat", "SatParameters", "ContinuousSchedulingSolver", "MixedIntegerSchedulingSolver", "OptimizationStep", "NumberOfSolutionsToCollect", "SolutionLimit", "TimeLimit", "LnsTimeLimit", "ImprovementLimitParameters", "UseFullPropagation", "LogSearch", "LogCostScalingFactor", "LogCostOffset", "LogTag" }, 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", "UseRelocatePathGlobalCheapestInsertionInsertUnperformed", "UseGlobalCheapestInsertionExpensiveChainLns", "UseLocalCheapestInsertionExpensiveChainLns", "UseGlobalCheapestInsertionCloseNodesLns", "UseLocalCheapestInsertionCloseNodesLns" }, null, null, null, null),
151 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters), global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters.Parser, new[]{ "ImprovementRateCoefficient", "ImprovementRateSolutionsDistance" }, null, null, null, null)}),
152 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.ConstraintSolver.RoutingModelParameters), global::Google.OrTools.ConstraintSolver.RoutingModelParameters.Parser, new[]{ "SolverParameters", "ReduceVehicleCostModel", "MaxCallbackCacheSize" }, null, null, null, null)
153 }));
154 }
155 #endregion
156
157 }
158 #region Messages
168 public sealed partial class RoutingSearchParameters : pb::IMessage<RoutingSearchParameters>
169 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
170 , pb::IBufferMessage
171 #endif
172 {
173 private static readonly pb::MessageParser<RoutingSearchParameters> _parser = new pb::MessageParser<RoutingSearchParameters>(() => new RoutingSearchParameters());
174 private pb::UnknownFieldSet _unknownFields;
175 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
176 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
177 public static pb::MessageParser<RoutingSearchParameters> Parser { get { return _parser; } }
178
179 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
180 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
181 public static pbr::MessageDescriptor Descriptor {
182 get { return global::Google.OrTools.ConstraintSolver.RoutingParametersReflection.Descriptor.MessageTypes[0]; }
183 }
184
185 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
186 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
187 pbr::MessageDescriptor pb::IMessage.Descriptor {
188 get { return Descriptor; }
189 }
190
191 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
192 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
194 OnConstruction();
195 }
196
197 partial void OnConstruction();
198
199 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
200 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
202 firstSolutionStrategy_ = other.firstSolutionStrategy_;
203 useUnfilteredFirstSolutionStrategy_ = other.useUnfilteredFirstSolutionStrategy_;
204 savingsNeighborsRatio_ = other.savingsNeighborsRatio_;
205 savingsMaxMemoryUsageBytes_ = other.savingsMaxMemoryUsageBytes_;
206 savingsAddReverseArcs_ = other.savingsAddReverseArcs_;
207 savingsArcCoefficient_ = other.savingsArcCoefficient_;
208 savingsParallelRoutes_ = other.savingsParallelRoutes_;
209 cheapestInsertionFarthestSeedsRatio_ = other.cheapestInsertionFarthestSeedsRatio_;
210 cheapestInsertionFirstSolutionNeighborsRatio_ = other.cheapestInsertionFirstSolutionNeighborsRatio_;
211 cheapestInsertionFirstSolutionMinNeighbors_ = other.cheapestInsertionFirstSolutionMinNeighbors_;
212 cheapestInsertionLsOperatorNeighborsRatio_ = other.cheapestInsertionLsOperatorNeighborsRatio_;
213 cheapestInsertionLsOperatorMinNeighbors_ = other.cheapestInsertionLsOperatorMinNeighbors_;
214 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = other.cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
215 cheapestInsertionAddUnperformedEntries_ = other.cheapestInsertionAddUnperformedEntries_;
216 christofidesUseMinimumMatching_ = other.christofidesUseMinimumMatching_;
217 localSearchOperators_ = other.localSearchOperators_ != null ? other.localSearchOperators_.Clone() : null;
218 useMultiArmedBanditConcatenateOperators_ = other.useMultiArmedBanditConcatenateOperators_;
219 multiArmedBanditCompoundOperatorMemoryCoefficient_ = other.multiArmedBanditCompoundOperatorMemoryCoefficient_;
220 multiArmedBanditCompoundOperatorExplorationCoefficient_ = other.multiArmedBanditCompoundOperatorExplorationCoefficient_;
221 relocateExpensiveChainNumArcsToConsider_ = other.relocateExpensiveChainNumArcsToConsider_;
222 heuristicExpensiveChainLnsNumArcsToConsider_ = other.heuristicExpensiveChainLnsNumArcsToConsider_;
223 heuristicCloseNodesLnsNumNodes_ = other.heuristicCloseNodesLnsNumNodes_;
224 localSearchMetaheuristic_ = other.localSearchMetaheuristic_;
225 guidedLocalSearchLambdaCoefficient_ = other.guidedLocalSearchLambdaCoefficient_;
226 useDepthFirstSearch_ = other.useDepthFirstSearch_;
227 useCp_ = other.useCp_;
228 useCpSat_ = other.useCpSat_;
229 useGeneralizedCpSat_ = other.useGeneralizedCpSat_;
230 satParameters_ = other.satParameters_ != null ? other.satParameters_.Clone() : null;
231 continuousSchedulingSolver_ = other.continuousSchedulingSolver_;
232 mixedIntegerSchedulingSolver_ = other.mixedIntegerSchedulingSolver_;
233 optimizationStep_ = other.optimizationStep_;
234 numberOfSolutionsToCollect_ = other.numberOfSolutionsToCollect_;
235 solutionLimit_ = other.solutionLimit_;
236 timeLimit_ = other.timeLimit_ != null ? other.timeLimit_.Clone() : null;
237 lnsTimeLimit_ = other.lnsTimeLimit_ != null ? other.lnsTimeLimit_.Clone() : null;
238 improvementLimitParameters_ = other.improvementLimitParameters_ != null ? other.improvementLimitParameters_.Clone() : null;
239 useFullPropagation_ = other.useFullPropagation_;
240 logSearch_ = other.logSearch_;
241 logCostScalingFactor_ = other.logCostScalingFactor_;
242 logCostOffset_ = other.logCostOffset_;
243 logTag_ = other.logTag_;
244 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
245 }
246
247 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
248 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
250 return new RoutingSearchParameters(this);
251 }
252
254 public const int FirstSolutionStrategyFieldNumber = 1;
255 private global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value firstSolutionStrategy_ = global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset;
259 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
260 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
261 public global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value FirstSolutionStrategy {
262 get { return firstSolutionStrategy_; }
263 set {
264 firstSolutionStrategy_ = value;
265 }
266 }
267
269 public const int UseUnfilteredFirstSolutionStrategyFieldNumber = 2;
270 private bool useUnfilteredFirstSolutionStrategy_;
277 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
278 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
279 public bool UseUnfilteredFirstSolutionStrategy {
280 get { return useUnfilteredFirstSolutionStrategy_; }
281 set {
282 useUnfilteredFirstSolutionStrategy_ = value;
283 }
284 }
285
287 public const int SavingsNeighborsRatioFieldNumber = 14;
288 private double savingsNeighborsRatio_;
294 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
295 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
296 public double SavingsNeighborsRatio {
297 get { return savingsNeighborsRatio_; }
298 set {
299 savingsNeighborsRatio_ = value;
300 }
301 }
302
304 public const int SavingsMaxMemoryUsageBytesFieldNumber = 23;
305 private double savingsMaxMemoryUsageBytes_;
314 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
315 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
316 public double SavingsMaxMemoryUsageBytes {
317 get { return savingsMaxMemoryUsageBytes_; }
318 set {
319 savingsMaxMemoryUsageBytes_ = value;
320 }
321 }
322
324 public const int SavingsAddReverseArcsFieldNumber = 15;
325 private bool savingsAddReverseArcs_;
330 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
331 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
332 public bool SavingsAddReverseArcs {
333 get { return savingsAddReverseArcs_; }
334 set {
335 savingsAddReverseArcs_ = value;
336 }
337 }
338
340 public const int SavingsArcCoefficientFieldNumber = 18;
341 private double savingsArcCoefficient_;
349 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
350 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
351 public double SavingsArcCoefficient {
352 get { return savingsArcCoefficient_; }
353 set {
354 savingsArcCoefficient_ = value;
355 }
356 }
357
359 public const int SavingsParallelRoutesFieldNumber = 19;
360 private bool savingsParallelRoutes_;
364 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
365 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
366 public bool SavingsParallelRoutes {
367 get { return savingsParallelRoutes_; }
368 set {
369 savingsParallelRoutes_ = value;
370 }
371 }
372
374 public const int CheapestInsertionFarthestSeedsRatioFieldNumber = 16;
375 private double cheapestInsertionFarthestSeedsRatio_;
381 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
382 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
383 public double CheapestInsertionFarthestSeedsRatio {
384 get { return cheapestInsertionFarthestSeedsRatio_; }
385 set {
386 cheapestInsertionFarthestSeedsRatio_ = value;
387 }
388 }
389
391 public const int CheapestInsertionFirstSolutionNeighborsRatioFieldNumber = 21;
392 private double cheapestInsertionFirstSolutionNeighborsRatio_;
410 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
411 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
412 public double CheapestInsertionFirstSolutionNeighborsRatio {
413 get { return cheapestInsertionFirstSolutionNeighborsRatio_; }
414 set {
415 cheapestInsertionFirstSolutionNeighborsRatio_ = value;
416 }
417 }
418
420 public const int CheapestInsertionFirstSolutionMinNeighborsFieldNumber = 44;
421 private int cheapestInsertionFirstSolutionMinNeighbors_;
422 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
423 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
424 public int CheapestInsertionFirstSolutionMinNeighbors {
425 get { return cheapestInsertionFirstSolutionMinNeighbors_; }
426 set {
427 cheapestInsertionFirstSolutionMinNeighbors_ = value;
428 }
429 }
430
432 public const int CheapestInsertionLsOperatorNeighborsRatioFieldNumber = 31;
433 private double cheapestInsertionLsOperatorNeighborsRatio_;
440 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
441 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
442 public double CheapestInsertionLsOperatorNeighborsRatio {
443 get { return cheapestInsertionLsOperatorNeighborsRatio_; }
444 set {
445 cheapestInsertionLsOperatorNeighborsRatio_ = value;
446 }
447 }
448
450 public const int CheapestInsertionLsOperatorMinNeighborsFieldNumber = 45;
451 private int cheapestInsertionLsOperatorMinNeighbors_;
452 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
453 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
454 public int CheapestInsertionLsOperatorMinNeighbors {
455 get { return cheapestInsertionLsOperatorMinNeighbors_; }
456 set {
457 cheapestInsertionLsOperatorMinNeighbors_ = value;
458 }
459 }
460
462 public const int CheapestInsertionFirstSolutionUseNeighborsRatioForInitializationFieldNumber = 46;
463 private bool cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
468 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
469 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
470 public bool CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization {
471 get { return cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_; }
472 set {
473 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = value;
474 }
475 }
476
478 public const int CheapestInsertionAddUnperformedEntriesFieldNumber = 40;
479 private bool cheapestInsertionAddUnperformedEntries_;
484 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
485 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
486 public bool CheapestInsertionAddUnperformedEntries {
487 get { return cheapestInsertionAddUnperformedEntries_; }
488 set {
489 cheapestInsertionAddUnperformedEntries_ = value;
490 }
491 }
492
494 public const int ChristofidesUseMinimumMatchingFieldNumber = 30;
495 private bool christofidesUseMinimumMatching_;
500 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
501 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
502 public bool ChristofidesUseMinimumMatching {
503 get { return christofidesUseMinimumMatching_; }
504 set {
505 christofidesUseMinimumMatching_ = value;
506 }
507 }
508
510 public const int LocalSearchOperatorsFieldNumber = 3;
511 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators localSearchOperators_;
512 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
513 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
514 public global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators LocalSearchOperators {
515 get { return localSearchOperators_; }
516 set {
517 localSearchOperators_ = value;
518 }
519 }
520
522 public const int UseMultiArmedBanditConcatenateOperatorsFieldNumber = 41;
523 private bool useMultiArmedBanditConcatenateOperators_;
529 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
530 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
531 public bool UseMultiArmedBanditConcatenateOperators {
532 get { return useMultiArmedBanditConcatenateOperators_; }
533 set {
534 useMultiArmedBanditConcatenateOperators_ = value;
535 }
536 }
537
539 public const int MultiArmedBanditCompoundOperatorMemoryCoefficientFieldNumber = 42;
540 private double multiArmedBanditCompoundOperatorMemoryCoefficient_;
547 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
548 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
549 public double MultiArmedBanditCompoundOperatorMemoryCoefficient {
550 get { return multiArmedBanditCompoundOperatorMemoryCoefficient_; }
551 set {
552 multiArmedBanditCompoundOperatorMemoryCoefficient_ = value;
553 }
554 }
555
557 public const int MultiArmedBanditCompoundOperatorExplorationCoefficientFieldNumber = 43;
558 private double multiArmedBanditCompoundOperatorExplorationCoefficient_;
564 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
565 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
566 public double MultiArmedBanditCompoundOperatorExplorationCoefficient {
567 get { return multiArmedBanditCompoundOperatorExplorationCoefficient_; }
568 set {
569 multiArmedBanditCompoundOperatorExplorationCoefficient_ = value;
570 }
571 }
572
574 public const int RelocateExpensiveChainNumArcsToConsiderFieldNumber = 20;
575 private int relocateExpensiveChainNumArcsToConsider_;
585 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
586 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
587 public int RelocateExpensiveChainNumArcsToConsider {
588 get { return relocateExpensiveChainNumArcsToConsider_; }
589 set {
590 relocateExpensiveChainNumArcsToConsider_ = value;
591 }
592 }
593
595 public const int HeuristicExpensiveChainLnsNumArcsToConsiderFieldNumber = 32;
596 private int heuristicExpensiveChainLnsNumArcsToConsider_;
601 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
602 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
603 public int HeuristicExpensiveChainLnsNumArcsToConsider {
604 get { return heuristicExpensiveChainLnsNumArcsToConsider_; }
605 set {
606 heuristicExpensiveChainLnsNumArcsToConsider_ = value;
607 }
608 }
609
611 public const int HeuristicCloseNodesLnsNumNodesFieldNumber = 35;
612 private int heuristicCloseNodesLnsNumNodes_;
617 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
618 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
619 public int HeuristicCloseNodesLnsNumNodes {
620 get { return heuristicCloseNodesLnsNumNodes_; }
621 set {
622 heuristicCloseNodesLnsNumNodes_ = value;
623 }
624 }
625
627 public const int LocalSearchMetaheuristicFieldNumber = 4;
628 private global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value localSearchMetaheuristic_ = global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset;
632 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
633 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
634 public global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value LocalSearchMetaheuristic {
635 get { return localSearchMetaheuristic_; }
636 set {
637 localSearchMetaheuristic_ = value;
638 }
639 }
640
642 public const int GuidedLocalSearchLambdaCoefficientFieldNumber = 5;
643 private double guidedLocalSearchLambdaCoefficient_;
650 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
651 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
652 public double GuidedLocalSearchLambdaCoefficient {
653 get { return guidedLocalSearchLambdaCoefficient_; }
654 set {
655 guidedLocalSearchLambdaCoefficient_ = value;
656 }
657 }
658
660 public const int UseDepthFirstSearchFieldNumber = 6;
661 private bool useDepthFirstSearch_;
668 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
669 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
670 public bool UseDepthFirstSearch {
671 get { return useDepthFirstSearch_; }
672 set {
673 useDepthFirstSearch_ = value;
674 }
675 }
676
678 public const int UseCpFieldNumber = 28;
679 private global::Google.OrTools.Util.OptionalBoolean useCp_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
685 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
686 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
687 public global::Google.OrTools.Util.OptionalBoolean UseCp {
688 get { return useCp_; }
689 set {
690 useCp_ = value;
691 }
692 }
693
695 public const int UseCpSatFieldNumber = 27;
696 private global::Google.OrTools.Util.OptionalBoolean useCpSat_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
703 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
704 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
705 public global::Google.OrTools.Util.OptionalBoolean UseCpSat {
706 get { return useCpSat_; }
707 set {
708 useCpSat_ = value;
709 }
710 }
711
713 public const int UseGeneralizedCpSatFieldNumber = 47;
714 private global::Google.OrTools.Util.OptionalBoolean useGeneralizedCpSat_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
721 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
722 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
723 public global::Google.OrTools.Util.OptionalBoolean UseGeneralizedCpSat {
724 get { return useGeneralizedCpSat_; }
725 set {
726 useGeneralizedCpSat_ = value;
727 }
728 }
729
731 public const int SatParametersFieldNumber = 48;
732 private global::Google.OrTools.Sat.SatParameters satParameters_;
737 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
738 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
739 public global::Google.OrTools.Sat.SatParameters SatParameters {
740 get { return satParameters_; }
741 set {
742 satParameters_ = value;
743 }
744 }
745
747 public const int ContinuousSchedulingSolverFieldNumber = 33;
748 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver continuousSchedulingSolver_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset;
749 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
750 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
751 public global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver ContinuousSchedulingSolver {
752 get { return continuousSchedulingSolver_; }
753 set {
754 continuousSchedulingSolver_ = value;
755 }
756 }
757
759 public const int MixedIntegerSchedulingSolverFieldNumber = 34;
760 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver mixedIntegerSchedulingSolver_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset;
761 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
762 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
763 public global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver MixedIntegerSchedulingSolver {
764 get { return mixedIntegerSchedulingSolver_; }
765 set {
766 mixedIntegerSchedulingSolver_ = value;
767 }
768 }
769
771 public const int OptimizationStepFieldNumber = 7;
772 private double optimizationStep_;
778 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
779 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
780 public double OptimizationStep {
781 get { return optimizationStep_; }
782 set {
783 optimizationStep_ = value;
784 }
785 }
786
788 public const int NumberOfSolutionsToCollectFieldNumber = 17;
789 private int numberOfSolutionsToCollect_;
794 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
795 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
796 public int NumberOfSolutionsToCollect {
797 get { return numberOfSolutionsToCollect_; }
798 set {
799 numberOfSolutionsToCollect_ = value;
800 }
801 }
802
804 public const int SolutionLimitFieldNumber = 8;
805 private long solutionLimit_;
811 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
812 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
813 public long SolutionLimit {
814 get { return solutionLimit_; }
815 set {
816 solutionLimit_ = value;
817 }
818 }
819
821 public const int TimeLimitFieldNumber = 9;
822 private global::Google.Protobuf.WellKnownTypes.Duration timeLimit_;
826 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
827 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
828 public global::Google.Protobuf.WellKnownTypes.Duration TimeLimit {
829 get { return timeLimit_; }
830 set {
831 timeLimit_ = value;
832 }
833 }
834
836 public const int LnsTimeLimitFieldNumber = 10;
837 private global::Google.Protobuf.WellKnownTypes.Duration lnsTimeLimit_;
842 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
843 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
844 public global::Google.Protobuf.WellKnownTypes.Duration LnsTimeLimit {
845 get { return lnsTimeLimit_; }
846 set {
847 lnsTimeLimit_ = value;
848 }
849 }
850
852 public const int ImprovementLimitParametersFieldNumber = 37;
853 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters improvementLimitParameters_;
858 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
859 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
860 public global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters ImprovementLimitParameters {
861 get { return improvementLimitParameters_; }
862 set {
863 improvementLimitParameters_ = value;
864 }
865 }
866
868 public const int UseFullPropagationFieldNumber = 11;
869 private bool useFullPropagation_;
882 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
883 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
884 public bool UseFullPropagation {
885 get { return useFullPropagation_; }
886 set {
887 useFullPropagation_ = value;
888 }
889 }
890
892 public const int LogSearchFieldNumber = 13;
893 private bool logSearch_;
909 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
910 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
911 public bool LogSearch {
912 get { return logSearch_; }
913 set {
914 logSearch_ = value;
915 }
916 }
917
919 public const int LogCostScalingFactorFieldNumber = 22;
920 private double logCostScalingFactor_;
925 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
926 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
927 public double LogCostScalingFactor {
928 get { return logCostScalingFactor_; }
929 set {
930 logCostScalingFactor_ = value;
931 }
932 }
933
935 public const int LogCostOffsetFieldNumber = 29;
936 private double logCostOffset_;
937 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
938 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
939 public double LogCostOffset {
940 get { return logCostOffset_; }
941 set {
942 logCostOffset_ = value;
943 }
944 }
945
947 public const int LogTagFieldNumber = 36;
948 private string logTag_ = "";
953 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
954 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
955 public string LogTag {
956 get { return logTag_; }
957 set {
958 logTag_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
959 }
960 }
961
962 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
963 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
964 public override bool Equals(object other) {
965 return Equals(other as RoutingSearchParameters);
966 }
967
968 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
969 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
970 public bool Equals(RoutingSearchParameters other) {
971 if (ReferenceEquals(other, null)) {
972 return false;
973 }
974 if (ReferenceEquals(other, this)) {
975 return true;
976 }
977 if (FirstSolutionStrategy != other.FirstSolutionStrategy) return false;
978 if (UseUnfilteredFirstSolutionStrategy != other.UseUnfilteredFirstSolutionStrategy) return false;
979 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsNeighborsRatio, other.SavingsNeighborsRatio)) return false;
980 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsMaxMemoryUsageBytes, other.SavingsMaxMemoryUsageBytes)) return false;
981 if (SavingsAddReverseArcs != other.SavingsAddReverseArcs) return false;
982 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsArcCoefficient, other.SavingsArcCoefficient)) return false;
983 if (SavingsParallelRoutes != other.SavingsParallelRoutes) return false;
984 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionFarthestSeedsRatio, other.CheapestInsertionFarthestSeedsRatio)) return false;
985 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionFirstSolutionNeighborsRatio, other.CheapestInsertionFirstSolutionNeighborsRatio)) return false;
986 if (CheapestInsertionFirstSolutionMinNeighbors != other.CheapestInsertionFirstSolutionMinNeighbors) return false;
987 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionLsOperatorNeighborsRatio, other.CheapestInsertionLsOperatorNeighborsRatio)) return false;
988 if (CheapestInsertionLsOperatorMinNeighbors != other.CheapestInsertionLsOperatorMinNeighbors) return false;
989 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != other.CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization) return false;
990 if (CheapestInsertionAddUnperformedEntries != other.CheapestInsertionAddUnperformedEntries) return false;
991 if (ChristofidesUseMinimumMatching != other.ChristofidesUseMinimumMatching) return false;
992 if (!object.Equals(LocalSearchOperators, other.LocalSearchOperators)) return false;
993 if (UseMultiArmedBanditConcatenateOperators != other.UseMultiArmedBanditConcatenateOperators) return false;
994 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MultiArmedBanditCompoundOperatorMemoryCoefficient, other.MultiArmedBanditCompoundOperatorMemoryCoefficient)) return false;
995 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MultiArmedBanditCompoundOperatorExplorationCoefficient, other.MultiArmedBanditCompoundOperatorExplorationCoefficient)) return false;
996 if (RelocateExpensiveChainNumArcsToConsider != other.RelocateExpensiveChainNumArcsToConsider) return false;
997 if (HeuristicExpensiveChainLnsNumArcsToConsider != other.HeuristicExpensiveChainLnsNumArcsToConsider) return false;
998 if (HeuristicCloseNodesLnsNumNodes != other.HeuristicCloseNodesLnsNumNodes) return false;
999 if (LocalSearchMetaheuristic != other.LocalSearchMetaheuristic) return false;
1000 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(GuidedLocalSearchLambdaCoefficient, other.GuidedLocalSearchLambdaCoefficient)) return false;
1001 if (UseDepthFirstSearch != other.UseDepthFirstSearch) return false;
1002 if (UseCp != other.UseCp) return false;
1003 if (UseCpSat != other.UseCpSat) return false;
1004 if (UseGeneralizedCpSat != other.UseGeneralizedCpSat) return false;
1005 if (!object.Equals(SatParameters, other.SatParameters)) return false;
1006 if (ContinuousSchedulingSolver != other.ContinuousSchedulingSolver) return false;
1007 if (MixedIntegerSchedulingSolver != other.MixedIntegerSchedulingSolver) return false;
1008 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(OptimizationStep, other.OptimizationStep)) return false;
1009 if (NumberOfSolutionsToCollect != other.NumberOfSolutionsToCollect) return false;
1010 if (SolutionLimit != other.SolutionLimit) return false;
1011 if (!object.Equals(TimeLimit, other.TimeLimit)) return false;
1012 if (!object.Equals(LnsTimeLimit, other.LnsTimeLimit)) return false;
1013 if (!object.Equals(ImprovementLimitParameters, other.ImprovementLimitParameters)) return false;
1014 if (UseFullPropagation != other.UseFullPropagation) return false;
1015 if (LogSearch != other.LogSearch) return false;
1016 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LogCostScalingFactor, other.LogCostScalingFactor)) return false;
1017 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LogCostOffset, other.LogCostOffset)) return false;
1018 if (LogTag != other.LogTag) return false;
1019 return Equals(_unknownFields, other._unknownFields);
1020 }
1021
1022 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1023 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1024 public override int GetHashCode() {
1025 int hash = 1;
1026 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) hash ^= FirstSolutionStrategy.GetHashCode();
1027 if (UseUnfilteredFirstSolutionStrategy != false) hash ^= UseUnfilteredFirstSolutionStrategy.GetHashCode();
1028 if (SavingsNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsNeighborsRatio);
1029 if (SavingsMaxMemoryUsageBytes != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsMaxMemoryUsageBytes);
1030 if (SavingsAddReverseArcs != false) hash ^= SavingsAddReverseArcs.GetHashCode();
1031 if (SavingsArcCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsArcCoefficient);
1032 if (SavingsParallelRoutes != false) hash ^= SavingsParallelRoutes.GetHashCode();
1033 if (CheapestInsertionFarthestSeedsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionFarthestSeedsRatio);
1034 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionFirstSolutionNeighborsRatio);
1035 if (CheapestInsertionFirstSolutionMinNeighbors != 0) hash ^= CheapestInsertionFirstSolutionMinNeighbors.GetHashCode();
1036 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionLsOperatorNeighborsRatio);
1037 if (CheapestInsertionLsOperatorMinNeighbors != 0) hash ^= CheapestInsertionLsOperatorMinNeighbors.GetHashCode();
1038 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) hash ^= CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization.GetHashCode();
1039 if (CheapestInsertionAddUnperformedEntries != false) hash ^= CheapestInsertionAddUnperformedEntries.GetHashCode();
1040 if (ChristofidesUseMinimumMatching != false) hash ^= ChristofidesUseMinimumMatching.GetHashCode();
1041 if (localSearchOperators_ != null) hash ^= LocalSearchOperators.GetHashCode();
1042 if (UseMultiArmedBanditConcatenateOperators != false) hash ^= UseMultiArmedBanditConcatenateOperators.GetHashCode();
1043 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1044 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1045 if (RelocateExpensiveChainNumArcsToConsider != 0) hash ^= RelocateExpensiveChainNumArcsToConsider.GetHashCode();
1046 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) hash ^= HeuristicExpensiveChainLnsNumArcsToConsider.GetHashCode();
1047 if (HeuristicCloseNodesLnsNumNodes != 0) hash ^= HeuristicCloseNodesLnsNumNodes.GetHashCode();
1048 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) hash ^= LocalSearchMetaheuristic.GetHashCode();
1049 if (GuidedLocalSearchLambdaCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(GuidedLocalSearchLambdaCoefficient);
1050 if (UseDepthFirstSearch != false) hash ^= UseDepthFirstSearch.GetHashCode();
1051 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCp.GetHashCode();
1052 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCpSat.GetHashCode();
1053 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGeneralizedCpSat.GetHashCode();
1054 if (satParameters_ != null) hash ^= SatParameters.GetHashCode();
1055 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) hash ^= ContinuousSchedulingSolver.GetHashCode();
1056 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) hash ^= MixedIntegerSchedulingSolver.GetHashCode();
1057 if (OptimizationStep != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(OptimizationStep);
1058 if (NumberOfSolutionsToCollect != 0) hash ^= NumberOfSolutionsToCollect.GetHashCode();
1059 if (SolutionLimit != 0L) hash ^= SolutionLimit.GetHashCode();
1060 if (timeLimit_ != null) hash ^= TimeLimit.GetHashCode();
1061 if (lnsTimeLimit_ != null) hash ^= LnsTimeLimit.GetHashCode();
1062 if (improvementLimitParameters_ != null) hash ^= ImprovementLimitParameters.GetHashCode();
1063 if (UseFullPropagation != false) hash ^= UseFullPropagation.GetHashCode();
1064 if (LogSearch != false) hash ^= LogSearch.GetHashCode();
1065 if (LogCostScalingFactor != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LogCostScalingFactor);
1066 if (LogCostOffset != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LogCostOffset);
1067 if (LogTag.Length != 0) hash ^= LogTag.GetHashCode();
1068 if (_unknownFields != null) {
1069 hash ^= _unknownFields.GetHashCode();
1070 }
1071 return hash;
1072 }
1073
1074 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1075 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1076 public override string ToString() {
1077 return pb::JsonFormatter.ToDiagnosticString(this);
1078 }
1079
1080 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1081 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1082 public void WriteTo(pb::CodedOutputStream output) {
1083 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1084 output.WriteRawMessage(this);
1085 #else
1086 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1087 output.WriteRawTag(8);
1088 output.WriteEnum((int) FirstSolutionStrategy);
1089 }
1090 if (UseUnfilteredFirstSolutionStrategy != false) {
1091 output.WriteRawTag(16);
1092 output.WriteBool(UseUnfilteredFirstSolutionStrategy);
1093 }
1094 if (localSearchOperators_ != null) {
1095 output.WriteRawTag(26);
1096 output.WriteMessage(LocalSearchOperators);
1097 }
1098 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1099 output.WriteRawTag(32);
1100 output.WriteEnum((int) LocalSearchMetaheuristic);
1101 }
1102 if (GuidedLocalSearchLambdaCoefficient != 0D) {
1103 output.WriteRawTag(41);
1104 output.WriteDouble(GuidedLocalSearchLambdaCoefficient);
1105 }
1106 if (UseDepthFirstSearch != false) {
1107 output.WriteRawTag(48);
1108 output.WriteBool(UseDepthFirstSearch);
1109 }
1110 if (OptimizationStep != 0D) {
1111 output.WriteRawTag(57);
1112 output.WriteDouble(OptimizationStep);
1113 }
1114 if (SolutionLimit != 0L) {
1115 output.WriteRawTag(64);
1116 output.WriteInt64(SolutionLimit);
1117 }
1118 if (timeLimit_ != null) {
1119 output.WriteRawTag(74);
1120 output.WriteMessage(TimeLimit);
1121 }
1122 if (lnsTimeLimit_ != null) {
1123 output.WriteRawTag(82);
1124 output.WriteMessage(LnsTimeLimit);
1125 }
1126 if (UseFullPropagation != false) {
1127 output.WriteRawTag(88);
1128 output.WriteBool(UseFullPropagation);
1129 }
1130 if (LogSearch != false) {
1131 output.WriteRawTag(104);
1132 output.WriteBool(LogSearch);
1133 }
1134 if (SavingsNeighborsRatio != 0D) {
1135 output.WriteRawTag(113);
1136 output.WriteDouble(SavingsNeighborsRatio);
1137 }
1138 if (SavingsAddReverseArcs != false) {
1139 output.WriteRawTag(120);
1140 output.WriteBool(SavingsAddReverseArcs);
1141 }
1142 if (CheapestInsertionFarthestSeedsRatio != 0D) {
1143 output.WriteRawTag(129, 1);
1144 output.WriteDouble(CheapestInsertionFarthestSeedsRatio);
1145 }
1146 if (NumberOfSolutionsToCollect != 0) {
1147 output.WriteRawTag(136, 1);
1148 output.WriteInt32(NumberOfSolutionsToCollect);
1149 }
1150 if (SavingsArcCoefficient != 0D) {
1151 output.WriteRawTag(145, 1);
1152 output.WriteDouble(SavingsArcCoefficient);
1153 }
1154 if (SavingsParallelRoutes != false) {
1155 output.WriteRawTag(152, 1);
1156 output.WriteBool(SavingsParallelRoutes);
1157 }
1158 if (RelocateExpensiveChainNumArcsToConsider != 0) {
1159 output.WriteRawTag(160, 1);
1160 output.WriteInt32(RelocateExpensiveChainNumArcsToConsider);
1161 }
1162 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
1163 output.WriteRawTag(169, 1);
1164 output.WriteDouble(CheapestInsertionFirstSolutionNeighborsRatio);
1165 }
1166 if (LogCostScalingFactor != 0D) {
1167 output.WriteRawTag(177, 1);
1168 output.WriteDouble(LogCostScalingFactor);
1169 }
1170 if (SavingsMaxMemoryUsageBytes != 0D) {
1171 output.WriteRawTag(185, 1);
1172 output.WriteDouble(SavingsMaxMemoryUsageBytes);
1173 }
1174 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1175 output.WriteRawTag(216, 1);
1176 output.WriteEnum((int) UseCpSat);
1177 }
1178 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1179 output.WriteRawTag(224, 1);
1180 output.WriteEnum((int) UseCp);
1181 }
1182 if (LogCostOffset != 0D) {
1183 output.WriteRawTag(233, 1);
1184 output.WriteDouble(LogCostOffset);
1185 }
1186 if (ChristofidesUseMinimumMatching != false) {
1187 output.WriteRawTag(240, 1);
1188 output.WriteBool(ChristofidesUseMinimumMatching);
1189 }
1190 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
1191 output.WriteRawTag(249, 1);
1192 output.WriteDouble(CheapestInsertionLsOperatorNeighborsRatio);
1193 }
1194 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1195 output.WriteRawTag(128, 2);
1196 output.WriteInt32(HeuristicExpensiveChainLnsNumArcsToConsider);
1197 }
1198 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
1199 output.WriteRawTag(136, 2);
1200 output.WriteEnum((int) ContinuousSchedulingSolver);
1201 }
1202 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
1203 output.WriteRawTag(144, 2);
1204 output.WriteEnum((int) MixedIntegerSchedulingSolver);
1205 }
1206 if (HeuristicCloseNodesLnsNumNodes != 0) {
1207 output.WriteRawTag(152, 2);
1208 output.WriteInt32(HeuristicCloseNodesLnsNumNodes);
1209 }
1210 if (LogTag.Length != 0) {
1211 output.WriteRawTag(162, 2);
1212 output.WriteString(LogTag);
1213 }
1214 if (improvementLimitParameters_ != null) {
1215 output.WriteRawTag(170, 2);
1216 output.WriteMessage(ImprovementLimitParameters);
1217 }
1218 if (CheapestInsertionAddUnperformedEntries != false) {
1219 output.WriteRawTag(192, 2);
1220 output.WriteBool(CheapestInsertionAddUnperformedEntries);
1221 }
1222 if (UseMultiArmedBanditConcatenateOperators != false) {
1223 output.WriteRawTag(200, 2);
1224 output.WriteBool(UseMultiArmedBanditConcatenateOperators);
1225 }
1226 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1227 output.WriteRawTag(209, 2);
1228 output.WriteDouble(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1229 }
1230 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1231 output.WriteRawTag(217, 2);
1232 output.WriteDouble(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1233 }
1234 if (CheapestInsertionFirstSolutionMinNeighbors != 0) {
1235 output.WriteRawTag(224, 2);
1236 output.WriteInt32(CheapestInsertionFirstSolutionMinNeighbors);
1237 }
1238 if (CheapestInsertionLsOperatorMinNeighbors != 0) {
1239 output.WriteRawTag(232, 2);
1240 output.WriteInt32(CheapestInsertionLsOperatorMinNeighbors);
1241 }
1242 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
1243 output.WriteRawTag(240, 2);
1244 output.WriteBool(CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization);
1245 }
1246 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1247 output.WriteRawTag(248, 2);
1248 output.WriteEnum((int) UseGeneralizedCpSat);
1249 }
1250 if (satParameters_ != null) {
1251 output.WriteRawTag(130, 3);
1252 output.WriteMessage(SatParameters);
1253 }
1254 if (_unknownFields != null) {
1255 _unknownFields.WriteTo(output);
1256 }
1257 #endif
1258 }
1259
1260 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1261 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1262 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1263 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
1264 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1265 output.WriteRawTag(8);
1266 output.WriteEnum((int) FirstSolutionStrategy);
1267 }
1268 if (UseUnfilteredFirstSolutionStrategy != false) {
1269 output.WriteRawTag(16);
1270 output.WriteBool(UseUnfilteredFirstSolutionStrategy);
1271 }
1272 if (localSearchOperators_ != null) {
1273 output.WriteRawTag(26);
1274 output.WriteMessage(LocalSearchOperators);
1275 }
1276 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1277 output.WriteRawTag(32);
1278 output.WriteEnum((int) LocalSearchMetaheuristic);
1279 }
1280 if (GuidedLocalSearchLambdaCoefficient != 0D) {
1281 output.WriteRawTag(41);
1282 output.WriteDouble(GuidedLocalSearchLambdaCoefficient);
1283 }
1284 if (UseDepthFirstSearch != false) {
1285 output.WriteRawTag(48);
1286 output.WriteBool(UseDepthFirstSearch);
1287 }
1288 if (OptimizationStep != 0D) {
1289 output.WriteRawTag(57);
1290 output.WriteDouble(OptimizationStep);
1291 }
1292 if (SolutionLimit != 0L) {
1293 output.WriteRawTag(64);
1294 output.WriteInt64(SolutionLimit);
1295 }
1296 if (timeLimit_ != null) {
1297 output.WriteRawTag(74);
1298 output.WriteMessage(TimeLimit);
1299 }
1300 if (lnsTimeLimit_ != null) {
1301 output.WriteRawTag(82);
1302 output.WriteMessage(LnsTimeLimit);
1303 }
1304 if (UseFullPropagation != false) {
1305 output.WriteRawTag(88);
1306 output.WriteBool(UseFullPropagation);
1307 }
1308 if (LogSearch != false) {
1309 output.WriteRawTag(104);
1310 output.WriteBool(LogSearch);
1311 }
1312 if (SavingsNeighborsRatio != 0D) {
1313 output.WriteRawTag(113);
1314 output.WriteDouble(SavingsNeighborsRatio);
1315 }
1316 if (SavingsAddReverseArcs != false) {
1317 output.WriteRawTag(120);
1318 output.WriteBool(SavingsAddReverseArcs);
1319 }
1320 if (CheapestInsertionFarthestSeedsRatio != 0D) {
1321 output.WriteRawTag(129, 1);
1322 output.WriteDouble(CheapestInsertionFarthestSeedsRatio);
1323 }
1324 if (NumberOfSolutionsToCollect != 0) {
1325 output.WriteRawTag(136, 1);
1326 output.WriteInt32(NumberOfSolutionsToCollect);
1327 }
1328 if (SavingsArcCoefficient != 0D) {
1329 output.WriteRawTag(145, 1);
1330 output.WriteDouble(SavingsArcCoefficient);
1331 }
1332 if (SavingsParallelRoutes != false) {
1333 output.WriteRawTag(152, 1);
1334 output.WriteBool(SavingsParallelRoutes);
1335 }
1336 if (RelocateExpensiveChainNumArcsToConsider != 0) {
1337 output.WriteRawTag(160, 1);
1338 output.WriteInt32(RelocateExpensiveChainNumArcsToConsider);
1339 }
1340 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
1341 output.WriteRawTag(169, 1);
1342 output.WriteDouble(CheapestInsertionFirstSolutionNeighborsRatio);
1343 }
1344 if (LogCostScalingFactor != 0D) {
1345 output.WriteRawTag(177, 1);
1346 output.WriteDouble(LogCostScalingFactor);
1347 }
1348 if (SavingsMaxMemoryUsageBytes != 0D) {
1349 output.WriteRawTag(185, 1);
1350 output.WriteDouble(SavingsMaxMemoryUsageBytes);
1351 }
1352 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1353 output.WriteRawTag(216, 1);
1354 output.WriteEnum((int) UseCpSat);
1355 }
1356 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1357 output.WriteRawTag(224, 1);
1358 output.WriteEnum((int) UseCp);
1359 }
1360 if (LogCostOffset != 0D) {
1361 output.WriteRawTag(233, 1);
1362 output.WriteDouble(LogCostOffset);
1363 }
1364 if (ChristofidesUseMinimumMatching != false) {
1365 output.WriteRawTag(240, 1);
1366 output.WriteBool(ChristofidesUseMinimumMatching);
1367 }
1368 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
1369 output.WriteRawTag(249, 1);
1370 output.WriteDouble(CheapestInsertionLsOperatorNeighborsRatio);
1371 }
1372 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1373 output.WriteRawTag(128, 2);
1374 output.WriteInt32(HeuristicExpensiveChainLnsNumArcsToConsider);
1375 }
1376 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
1377 output.WriteRawTag(136, 2);
1378 output.WriteEnum((int) ContinuousSchedulingSolver);
1379 }
1380 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
1381 output.WriteRawTag(144, 2);
1382 output.WriteEnum((int) MixedIntegerSchedulingSolver);
1383 }
1384 if (HeuristicCloseNodesLnsNumNodes != 0) {
1385 output.WriteRawTag(152, 2);
1386 output.WriteInt32(HeuristicCloseNodesLnsNumNodes);
1387 }
1388 if (LogTag.Length != 0) {
1389 output.WriteRawTag(162, 2);
1390 output.WriteString(LogTag);
1391 }
1392 if (improvementLimitParameters_ != null) {
1393 output.WriteRawTag(170, 2);
1394 output.WriteMessage(ImprovementLimitParameters);
1395 }
1396 if (CheapestInsertionAddUnperformedEntries != false) {
1397 output.WriteRawTag(192, 2);
1398 output.WriteBool(CheapestInsertionAddUnperformedEntries);
1399 }
1400 if (UseMultiArmedBanditConcatenateOperators != false) {
1401 output.WriteRawTag(200, 2);
1402 output.WriteBool(UseMultiArmedBanditConcatenateOperators);
1403 }
1404 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1405 output.WriteRawTag(209, 2);
1406 output.WriteDouble(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1407 }
1408 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1409 output.WriteRawTag(217, 2);
1410 output.WriteDouble(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1411 }
1412 if (CheapestInsertionFirstSolutionMinNeighbors != 0) {
1413 output.WriteRawTag(224, 2);
1414 output.WriteInt32(CheapestInsertionFirstSolutionMinNeighbors);
1415 }
1416 if (CheapestInsertionLsOperatorMinNeighbors != 0) {
1417 output.WriteRawTag(232, 2);
1418 output.WriteInt32(CheapestInsertionLsOperatorMinNeighbors);
1419 }
1420 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
1421 output.WriteRawTag(240, 2);
1422 output.WriteBool(CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization);
1423 }
1424 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1425 output.WriteRawTag(248, 2);
1426 output.WriteEnum((int) UseGeneralizedCpSat);
1427 }
1428 if (satParameters_ != null) {
1429 output.WriteRawTag(130, 3);
1430 output.WriteMessage(SatParameters);
1431 }
1432 if (_unknownFields != null) {
1433 _unknownFields.WriteTo(ref output);
1434 }
1435 }
1436 #endif
1437
1438 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1439 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1440 public int CalculateSize() {
1441 int size = 0;
1442 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1443 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) FirstSolutionStrategy);
1444 }
1445 if (UseUnfilteredFirstSolutionStrategy != false) {
1446 size += 1 + 1;
1447 }
1448 if (SavingsNeighborsRatio != 0D) {
1449 size += 1 + 8;
1450 }
1451 if (SavingsMaxMemoryUsageBytes != 0D) {
1452 size += 2 + 8;
1453 }
1454 if (SavingsAddReverseArcs != false) {
1455 size += 1 + 1;
1456 }
1457 if (SavingsArcCoefficient != 0D) {
1458 size += 2 + 8;
1459 }
1460 if (SavingsParallelRoutes != false) {
1461 size += 2 + 1;
1462 }
1463 if (CheapestInsertionFarthestSeedsRatio != 0D) {
1464 size += 2 + 8;
1465 }
1466 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
1467 size += 2 + 8;
1468 }
1469 if (CheapestInsertionFirstSolutionMinNeighbors != 0) {
1470 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CheapestInsertionFirstSolutionMinNeighbors);
1471 }
1472 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
1473 size += 2 + 8;
1474 }
1475 if (CheapestInsertionLsOperatorMinNeighbors != 0) {
1476 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CheapestInsertionLsOperatorMinNeighbors);
1477 }
1478 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
1479 size += 2 + 1;
1480 }
1481 if (CheapestInsertionAddUnperformedEntries != false) {
1482 size += 2 + 1;
1483 }
1484 if (ChristofidesUseMinimumMatching != false) {
1485 size += 2 + 1;
1486 }
1487 if (localSearchOperators_ != null) {
1488 size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocalSearchOperators);
1489 }
1490 if (UseMultiArmedBanditConcatenateOperators != false) {
1491 size += 2 + 1;
1492 }
1493 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1494 size += 2 + 8;
1495 }
1496 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1497 size += 2 + 8;
1498 }
1499 if (RelocateExpensiveChainNumArcsToConsider != 0) {
1500 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RelocateExpensiveChainNumArcsToConsider);
1501 }
1502 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1503 size += 2 + pb::CodedOutputStream.ComputeInt32Size(HeuristicExpensiveChainLnsNumArcsToConsider);
1504 }
1505 if (HeuristicCloseNodesLnsNumNodes != 0) {
1506 size += 2 + pb::CodedOutputStream.ComputeInt32Size(HeuristicCloseNodesLnsNumNodes);
1507 }
1508 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1509 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LocalSearchMetaheuristic);
1510 }
1511 if (GuidedLocalSearchLambdaCoefficient != 0D) {
1512 size += 1 + 8;
1513 }
1514 if (UseDepthFirstSearch != false) {
1515 size += 1 + 1;
1516 }
1517 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1518 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseCp);
1519 }
1520 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1521 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseCpSat);
1522 }
1523 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1524 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGeneralizedCpSat);
1525 }
1526 if (satParameters_ != null) {
1527 size += 2 + pb::CodedOutputStream.ComputeMessageSize(SatParameters);
1528 }
1529 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
1530 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ContinuousSchedulingSolver);
1531 }
1532 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
1533 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) MixedIntegerSchedulingSolver);
1534 }
1535 if (OptimizationStep != 0D) {
1536 size += 1 + 8;
1537 }
1538 if (NumberOfSolutionsToCollect != 0) {
1539 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumberOfSolutionsToCollect);
1540 }
1541 if (SolutionLimit != 0L) {
1542 size += 1 + pb::CodedOutputStream.ComputeInt64Size(SolutionLimit);
1543 }
1544 if (timeLimit_ != null) {
1545 size += 1 + pb::CodedOutputStream.ComputeMessageSize(TimeLimit);
1546 }
1547 if (lnsTimeLimit_ != null) {
1548 size += 1 + pb::CodedOutputStream.ComputeMessageSize(LnsTimeLimit);
1549 }
1550 if (improvementLimitParameters_ != null) {
1551 size += 2 + pb::CodedOutputStream.ComputeMessageSize(ImprovementLimitParameters);
1552 }
1553 if (UseFullPropagation != false) {
1554 size += 1 + 1;
1555 }
1556 if (LogSearch != false) {
1557 size += 1 + 1;
1558 }
1559 if (LogCostScalingFactor != 0D) {
1560 size += 2 + 8;
1561 }
1562 if (LogCostOffset != 0D) {
1563 size += 2 + 8;
1564 }
1565 if (LogTag.Length != 0) {
1566 size += 2 + pb::CodedOutputStream.ComputeStringSize(LogTag);
1567 }
1568 if (_unknownFields != null) {
1569 size += _unknownFields.CalculateSize();
1570 }
1571 return size;
1572 }
1573
1574 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1575 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1577 if (other == null) {
1578 return;
1579 }
1580 if (other.FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1582 }
1583 if (other.UseUnfilteredFirstSolutionStrategy != false) {
1584 UseUnfilteredFirstSolutionStrategy = other.UseUnfilteredFirstSolutionStrategy;
1585 }
1586 if (other.SavingsNeighborsRatio != 0D) {
1587 SavingsNeighborsRatio = other.SavingsNeighborsRatio;
1588 }
1589 if (other.SavingsMaxMemoryUsageBytes != 0D) {
1590 SavingsMaxMemoryUsageBytes = other.SavingsMaxMemoryUsageBytes;
1591 }
1592 if (other.SavingsAddReverseArcs != false) {
1593 SavingsAddReverseArcs = other.SavingsAddReverseArcs;
1594 }
1595 if (other.SavingsArcCoefficient != 0D) {
1596 SavingsArcCoefficient = other.SavingsArcCoefficient;
1597 }
1598 if (other.SavingsParallelRoutes != false) {
1599 SavingsParallelRoutes = other.SavingsParallelRoutes;
1600 }
1601 if (other.CheapestInsertionFarthestSeedsRatio != 0D) {
1602 CheapestInsertionFarthestSeedsRatio = other.CheapestInsertionFarthestSeedsRatio;
1603 }
1605 CheapestInsertionFirstSolutionNeighborsRatio = other.CheapestInsertionFirstSolutionNeighborsRatio;
1606 }
1608 CheapestInsertionFirstSolutionMinNeighbors = other.CheapestInsertionFirstSolutionMinNeighbors;
1609 }
1611 CheapestInsertionLsOperatorNeighborsRatio = other.CheapestInsertionLsOperatorNeighborsRatio;
1612 }
1614 CheapestInsertionLsOperatorMinNeighbors = other.CheapestInsertionLsOperatorMinNeighbors;
1615 }
1617 CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization = other.CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization;
1618 }
1619 if (other.CheapestInsertionAddUnperformedEntries != false) {
1620 CheapestInsertionAddUnperformedEntries = other.CheapestInsertionAddUnperformedEntries;
1621 }
1622 if (other.ChristofidesUseMinimumMatching != false) {
1623 ChristofidesUseMinimumMatching = other.ChristofidesUseMinimumMatching;
1624 }
1625 if (other.localSearchOperators_ != null) {
1626 if (localSearchOperators_ == null) {
1627 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
1628 }
1629 LocalSearchOperators.MergeFrom(other.LocalSearchOperators);
1630 }
1631 if (other.UseMultiArmedBanditConcatenateOperators != false) {
1632 UseMultiArmedBanditConcatenateOperators = other.UseMultiArmedBanditConcatenateOperators;
1633 }
1635 MultiArmedBanditCompoundOperatorMemoryCoefficient = other.MultiArmedBanditCompoundOperatorMemoryCoefficient;
1636 }
1638 MultiArmedBanditCompoundOperatorExplorationCoefficient = other.MultiArmedBanditCompoundOperatorExplorationCoefficient;
1639 }
1641 RelocateExpensiveChainNumArcsToConsider = other.RelocateExpensiveChainNumArcsToConsider;
1642 }
1644 HeuristicExpensiveChainLnsNumArcsToConsider = other.HeuristicExpensiveChainLnsNumArcsToConsider;
1645 }
1646 if (other.HeuristicCloseNodesLnsNumNodes != 0) {
1647 HeuristicCloseNodesLnsNumNodes = other.HeuristicCloseNodesLnsNumNodes;
1648 }
1649 if (other.LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1651 }
1652 if (other.GuidedLocalSearchLambdaCoefficient != 0D) {
1653 GuidedLocalSearchLambdaCoefficient = other.GuidedLocalSearchLambdaCoefficient;
1654 }
1655 if (other.UseDepthFirstSearch != false) {
1656 UseDepthFirstSearch = other.UseDepthFirstSearch;
1657 }
1658 if (other.UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1659 UseCp = other.UseCp;
1660 }
1661 if (other.UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1662 UseCpSat = other.UseCpSat;
1663 }
1664 if (other.UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1665 UseGeneralizedCpSat = other.UseGeneralizedCpSat;
1666 }
1667 if (other.satParameters_ != null) {
1668 if (satParameters_ == null) {
1669 SatParameters = new global::Google.OrTools.Sat.SatParameters();
1670 }
1671 SatParameters.MergeFrom(other.SatParameters);
1672 }
1673 if (other.ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
1674 ContinuousSchedulingSolver = other.ContinuousSchedulingSolver;
1675 }
1676 if (other.MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.Unset) {
1677 MixedIntegerSchedulingSolver = other.MixedIntegerSchedulingSolver;
1678 }
1679 if (other.OptimizationStep != 0D) {
1680 OptimizationStep = other.OptimizationStep;
1681 }
1682 if (other.NumberOfSolutionsToCollect != 0) {
1683 NumberOfSolutionsToCollect = other.NumberOfSolutionsToCollect;
1684 }
1685 if (other.SolutionLimit != 0L) {
1686 SolutionLimit = other.SolutionLimit;
1687 }
1688 if (other.timeLimit_ != null) {
1689 if (timeLimit_ == null) {
1690 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
1691 }
1692 TimeLimit.MergeFrom(other.TimeLimit);
1693 }
1694 if (other.lnsTimeLimit_ != null) {
1695 if (lnsTimeLimit_ == null) {
1696 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
1697 }
1698 LnsTimeLimit.MergeFrom(other.LnsTimeLimit);
1699 }
1700 if (other.improvementLimitParameters_ != null) {
1701 if (improvementLimitParameters_ == null) {
1702 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
1703 }
1704 ImprovementLimitParameters.MergeFrom(other.ImprovementLimitParameters);
1705 }
1706 if (other.UseFullPropagation != false) {
1707 UseFullPropagation = other.UseFullPropagation;
1708 }
1709 if (other.LogSearch != false) {
1710 LogSearch = other.LogSearch;
1711 }
1712 if (other.LogCostScalingFactor != 0D) {
1713 LogCostScalingFactor = other.LogCostScalingFactor;
1714 }
1715 if (other.LogCostOffset != 0D) {
1716 LogCostOffset = other.LogCostOffset;
1717 }
1718 if (other.LogTag.Length != 0) {
1719 LogTag = other.LogTag;
1720 }
1721 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1722 }
1723
1724 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1725 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1726 public void MergeFrom(pb::CodedInputStream input) {
1727 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1728 input.ReadRawMessage(this);
1729 #else
1730 uint tag;
1731 while ((tag = input.ReadTag()) != 0) {
1732 switch(tag) {
1733 default:
1734 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1735 break;
1736 case 8: {
1737 FirstSolutionStrategy = (global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value) input.ReadEnum();
1738 break;
1739 }
1740 case 16: {
1741 UseUnfilteredFirstSolutionStrategy = input.ReadBool();
1742 break;
1743 }
1744 case 26: {
1745 if (localSearchOperators_ == null) {
1746 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
1747 }
1748 input.ReadMessage(LocalSearchOperators);
1749 break;
1750 }
1751 case 32: {
1752 LocalSearchMetaheuristic = (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) input.ReadEnum();
1753 break;
1754 }
1755 case 41: {
1756 GuidedLocalSearchLambdaCoefficient = input.ReadDouble();
1757 break;
1758 }
1759 case 48: {
1760 UseDepthFirstSearch = input.ReadBool();
1761 break;
1762 }
1763 case 57: {
1764 OptimizationStep = input.ReadDouble();
1765 break;
1766 }
1767 case 64: {
1768 SolutionLimit = input.ReadInt64();
1769 break;
1770 }
1771 case 74: {
1772 if (timeLimit_ == null) {
1773 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
1774 }
1775 input.ReadMessage(TimeLimit);
1776 break;
1777 }
1778 case 82: {
1779 if (lnsTimeLimit_ == null) {
1780 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
1781 }
1782 input.ReadMessage(LnsTimeLimit);
1783 break;
1784 }
1785 case 88: {
1786 UseFullPropagation = input.ReadBool();
1787 break;
1788 }
1789 case 104: {
1790 LogSearch = input.ReadBool();
1791 break;
1792 }
1793 case 113: {
1794 SavingsNeighborsRatio = input.ReadDouble();
1795 break;
1796 }
1797 case 120: {
1798 SavingsAddReverseArcs = input.ReadBool();
1799 break;
1800 }
1801 case 129: {
1802 CheapestInsertionFarthestSeedsRatio = input.ReadDouble();
1803 break;
1804 }
1805 case 136: {
1806 NumberOfSolutionsToCollect = input.ReadInt32();
1807 break;
1808 }
1809 case 145: {
1810 SavingsArcCoefficient = input.ReadDouble();
1811 break;
1812 }
1813 case 152: {
1814 SavingsParallelRoutes = input.ReadBool();
1815 break;
1816 }
1817 case 160: {
1818 RelocateExpensiveChainNumArcsToConsider = input.ReadInt32();
1819 break;
1820 }
1821 case 169: {
1822 CheapestInsertionFirstSolutionNeighborsRatio = input.ReadDouble();
1823 break;
1824 }
1825 case 177: {
1826 LogCostScalingFactor = input.ReadDouble();
1827 break;
1828 }
1829 case 185: {
1830 SavingsMaxMemoryUsageBytes = input.ReadDouble();
1831 break;
1832 }
1833 case 216: {
1834 UseCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
1835 break;
1836 }
1837 case 224: {
1838 UseCp = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
1839 break;
1840 }
1841 case 233: {
1842 LogCostOffset = input.ReadDouble();
1843 break;
1844 }
1845 case 240: {
1846 ChristofidesUseMinimumMatching = input.ReadBool();
1847 break;
1848 }
1849 case 249: {
1850 CheapestInsertionLsOperatorNeighborsRatio = input.ReadDouble();
1851 break;
1852 }
1853 case 256: {
1854 HeuristicExpensiveChainLnsNumArcsToConsider = input.ReadInt32();
1855 break;
1856 }
1857 case 264: {
1858 ContinuousSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
1859 break;
1860 }
1861 case 272: {
1862 MixedIntegerSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
1863 break;
1864 }
1865 case 280: {
1866 HeuristicCloseNodesLnsNumNodes = input.ReadInt32();
1867 break;
1868 }
1869 case 290: {
1870 LogTag = input.ReadString();
1871 break;
1872 }
1873 case 298: {
1874 if (improvementLimitParameters_ == null) {
1875 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
1876 }
1877 input.ReadMessage(ImprovementLimitParameters);
1878 break;
1879 }
1880 case 320: {
1881 CheapestInsertionAddUnperformedEntries = input.ReadBool();
1882 break;
1883 }
1884 case 328: {
1885 UseMultiArmedBanditConcatenateOperators = input.ReadBool();
1886 break;
1887 }
1888 case 337: {
1889 MultiArmedBanditCompoundOperatorMemoryCoefficient = input.ReadDouble();
1890 break;
1891 }
1892 case 345: {
1893 MultiArmedBanditCompoundOperatorExplorationCoefficient = input.ReadDouble();
1894 break;
1895 }
1896 case 352: {
1897 CheapestInsertionFirstSolutionMinNeighbors = input.ReadInt32();
1898 break;
1899 }
1900 case 360: {
1901 CheapestInsertionLsOperatorMinNeighbors = input.ReadInt32();
1902 break;
1903 }
1904 case 368: {
1905 CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization = input.ReadBool();
1906 break;
1907 }
1908 case 376: {
1909 UseGeneralizedCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
1910 break;
1911 }
1912 case 386: {
1913 if (satParameters_ == null) {
1914 SatParameters = new global::Google.OrTools.Sat.SatParameters();
1915 }
1916 input.ReadMessage(SatParameters);
1917 break;
1918 }
1919 }
1920 }
1921 #endif
1922 }
1923
1924 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1925 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1926 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1927 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
1928 uint tag;
1929 while ((tag = input.ReadTag()) != 0) {
1930 switch(tag) {
1931 default:
1932 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
1933 break;
1934 case 8: {
1935 FirstSolutionStrategy = (global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value) input.ReadEnum();
1936 break;
1937 }
1938 case 16: {
1939 UseUnfilteredFirstSolutionStrategy = input.ReadBool();
1940 break;
1941 }
1942 case 26: {
1943 if (localSearchOperators_ == null) {
1944 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
1945 }
1946 input.ReadMessage(LocalSearchOperators);
1947 break;
1948 }
1949 case 32: {
1950 LocalSearchMetaheuristic = (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) input.ReadEnum();
1951 break;
1952 }
1953 case 41: {
1954 GuidedLocalSearchLambdaCoefficient = input.ReadDouble();
1955 break;
1956 }
1957 case 48: {
1958 UseDepthFirstSearch = input.ReadBool();
1959 break;
1960 }
1961 case 57: {
1962 OptimizationStep = input.ReadDouble();
1963 break;
1964 }
1965 case 64: {
1966 SolutionLimit = input.ReadInt64();
1967 break;
1968 }
1969 case 74: {
1970 if (timeLimit_ == null) {
1971 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
1972 }
1973 input.ReadMessage(TimeLimit);
1974 break;
1975 }
1976 case 82: {
1977 if (lnsTimeLimit_ == null) {
1978 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
1979 }
1980 input.ReadMessage(LnsTimeLimit);
1981 break;
1982 }
1983 case 88: {
1984 UseFullPropagation = input.ReadBool();
1985 break;
1986 }
1987 case 104: {
1988 LogSearch = input.ReadBool();
1989 break;
1990 }
1991 case 113: {
1992 SavingsNeighborsRatio = input.ReadDouble();
1993 break;
1994 }
1995 case 120: {
1996 SavingsAddReverseArcs = input.ReadBool();
1997 break;
1998 }
1999 case 129: {
2000 CheapestInsertionFarthestSeedsRatio = input.ReadDouble();
2001 break;
2002 }
2003 case 136: {
2004 NumberOfSolutionsToCollect = input.ReadInt32();
2005 break;
2006 }
2007 case 145: {
2008 SavingsArcCoefficient = input.ReadDouble();
2009 break;
2010 }
2011 case 152: {
2012 SavingsParallelRoutes = input.ReadBool();
2013 break;
2014 }
2015 case 160: {
2016 RelocateExpensiveChainNumArcsToConsider = input.ReadInt32();
2017 break;
2018 }
2019 case 169: {
2020 CheapestInsertionFirstSolutionNeighborsRatio = input.ReadDouble();
2021 break;
2022 }
2023 case 177: {
2024 LogCostScalingFactor = input.ReadDouble();
2025 break;
2026 }
2027 case 185: {
2028 SavingsMaxMemoryUsageBytes = input.ReadDouble();
2029 break;
2030 }
2031 case 216: {
2032 UseCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2033 break;
2034 }
2035 case 224: {
2036 UseCp = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2037 break;
2038 }
2039 case 233: {
2040 LogCostOffset = input.ReadDouble();
2041 break;
2042 }
2043 case 240: {
2044 ChristofidesUseMinimumMatching = input.ReadBool();
2045 break;
2046 }
2047 case 249: {
2048 CheapestInsertionLsOperatorNeighborsRatio = input.ReadDouble();
2049 break;
2050 }
2051 case 256: {
2052 HeuristicExpensiveChainLnsNumArcsToConsider = input.ReadInt32();
2053 break;
2054 }
2055 case 264: {
2056 ContinuousSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2057 break;
2058 }
2059 case 272: {
2060 MixedIntegerSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2061 break;
2062 }
2063 case 280: {
2064 HeuristicCloseNodesLnsNumNodes = input.ReadInt32();
2065 break;
2066 }
2067 case 290: {
2068 LogTag = input.ReadString();
2069 break;
2070 }
2071 case 298: {
2072 if (improvementLimitParameters_ == null) {
2073 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
2074 }
2075 input.ReadMessage(ImprovementLimitParameters);
2076 break;
2077 }
2078 case 320: {
2079 CheapestInsertionAddUnperformedEntries = input.ReadBool();
2080 break;
2081 }
2082 case 328: {
2083 UseMultiArmedBanditConcatenateOperators = input.ReadBool();
2084 break;
2085 }
2086 case 337: {
2087 MultiArmedBanditCompoundOperatorMemoryCoefficient = input.ReadDouble();
2088 break;
2089 }
2090 case 345: {
2091 MultiArmedBanditCompoundOperatorExplorationCoefficient = input.ReadDouble();
2092 break;
2093 }
2094 case 352: {
2095 CheapestInsertionFirstSolutionMinNeighbors = input.ReadInt32();
2096 break;
2097 }
2098 case 360: {
2099 CheapestInsertionLsOperatorMinNeighbors = input.ReadInt32();
2100 break;
2101 }
2102 case 368: {
2103 CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization = input.ReadBool();
2104 break;
2105 }
2106 case 376: {
2107 UseGeneralizedCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2108 break;
2109 }
2110 case 386: {
2111 if (satParameters_ == null) {
2112 SatParameters = new global::Google.OrTools.Sat.SatParameters();
2113 }
2114 input.ReadMessage(SatParameters);
2115 break;
2116 }
2117 }
2118 }
2119 }
2120 #endif
2121
2122 #region Nested types
2124 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2125 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2126 public static partial class Types {
2131 public enum SchedulingSolver {
2132 [pbr::OriginalName("UNSET")] Unset = 0,
2133 [pbr::OriginalName("GLOP")] Glop = 1,
2134 [pbr::OriginalName("CP_SAT")] CpSat = 2,
2135 }
2136
2141 public sealed partial class LocalSearchNeighborhoodOperators : pb::IMessage<LocalSearchNeighborhoodOperators>
2142 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2143 , pb::IBufferMessage
2144 #endif
2145 {
2146 private static readonly pb::MessageParser<LocalSearchNeighborhoodOperators> _parser = new pb::MessageParser<LocalSearchNeighborhoodOperators>(() => new LocalSearchNeighborhoodOperators());
2147 private pb::UnknownFieldSet _unknownFields;
2148 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2149 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2150 public static pb::MessageParser<LocalSearchNeighborhoodOperators> Parser { get { return _parser; } }
2151
2152 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2153 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2154 public static pbr::MessageDescriptor Descriptor {
2155 get { return global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Descriptor.NestedTypes[0]; }
2156 }
2157
2158 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2159 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2160 pbr::MessageDescriptor pb::IMessage.Descriptor {
2161 get { return Descriptor; }
2162 }
2163
2164 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2165 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2167 OnConstruction();
2168 }
2169
2170 partial void OnConstruction();
2171
2172 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2173 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2175 useRelocate_ = other.useRelocate_;
2176 useRelocatePair_ = other.useRelocatePair_;
2177 useLightRelocatePair_ = other.useLightRelocatePair_;
2178 useRelocateNeighbors_ = other.useRelocateNeighbors_;
2179 useRelocateSubtrip_ = other.useRelocateSubtrip_;
2180 useExchange_ = other.useExchange_;
2181 useExchangePair_ = other.useExchangePair_;
2182 useExchangeSubtrip_ = other.useExchangeSubtrip_;
2183 useCross_ = other.useCross_;
2184 useCrossExchange_ = other.useCrossExchange_;
2185 useRelocateExpensiveChain_ = other.useRelocateExpensiveChain_;
2186 useTwoOpt_ = other.useTwoOpt_;
2187 useOrOpt_ = other.useOrOpt_;
2188 useLinKernighan_ = other.useLinKernighan_;
2189 useTspOpt_ = other.useTspOpt_;
2190 useMakeActive_ = other.useMakeActive_;
2191 useRelocateAndMakeActive_ = other.useRelocateAndMakeActive_;
2192 useMakeInactive_ = other.useMakeInactive_;
2193 useMakeChainInactive_ = other.useMakeChainInactive_;
2194 useSwapActive_ = other.useSwapActive_;
2195 useExtendedSwapActive_ = other.useExtendedSwapActive_;
2196 useNodePairSwapActive_ = other.useNodePairSwapActive_;
2197 usePathLns_ = other.usePathLns_;
2198 useFullPathLns_ = other.useFullPathLns_;
2199 useTspLns_ = other.useTspLns_;
2200 useInactiveLns_ = other.useInactiveLns_;
2201 useGlobalCheapestInsertionPathLns_ = other.useGlobalCheapestInsertionPathLns_;
2202 useLocalCheapestInsertionPathLns_ = other.useLocalCheapestInsertionPathLns_;
2203 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
2204 useGlobalCheapestInsertionExpensiveChainLns_ = other.useGlobalCheapestInsertionExpensiveChainLns_;
2205 useLocalCheapestInsertionExpensiveChainLns_ = other.useLocalCheapestInsertionExpensiveChainLns_;
2206 useGlobalCheapestInsertionCloseNodesLns_ = other.useGlobalCheapestInsertionCloseNodesLns_;
2207 useLocalCheapestInsertionCloseNodesLns_ = other.useLocalCheapestInsertionCloseNodesLns_;
2208 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2209 }
2210
2211 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2212 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2214 return new LocalSearchNeighborhoodOperators(this);
2215 }
2216
2218 public const int UseRelocateFieldNumber = 1;
2219 private global::Google.OrTools.Util.OptionalBoolean useRelocate_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2231 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2232 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2233 public global::Google.OrTools.Util.OptionalBoolean UseRelocate {
2234 get { return useRelocate_; }
2235 set {
2236 useRelocate_ = value;
2237 }
2238 }
2239
2241 public const int UseRelocatePairFieldNumber = 2;
2242 private global::Google.OrTools.Util.OptionalBoolean useRelocatePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2254 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2255 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2256 public global::Google.OrTools.Util.OptionalBoolean UseRelocatePair {
2257 get { return useRelocatePair_; }
2258 set {
2259 useRelocatePair_ = value;
2260 }
2261 }
2262
2264 public const int UseLightRelocatePairFieldNumber = 24;
2265 private global::Google.OrTools.Util.OptionalBoolean useLightRelocatePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2275 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2276 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2277 public global::Google.OrTools.Util.OptionalBoolean UseLightRelocatePair {
2278 get { return useLightRelocatePair_; }
2279 set {
2280 useLightRelocatePair_ = value;
2281 }
2282 }
2283
2285 public const int UseRelocateNeighborsFieldNumber = 3;
2286 private global::Google.OrTools.Util.OptionalBoolean useRelocateNeighbors_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2311 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2312 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2313 public global::Google.OrTools.Util.OptionalBoolean UseRelocateNeighbors {
2314 get { return useRelocateNeighbors_; }
2315 set {
2316 useRelocateNeighbors_ = value;
2317 }
2318 }
2319
2321 public const int UseRelocateSubtripFieldNumber = 25;
2322 private global::Google.OrTools.Util.OptionalBoolean useRelocateSubtrip_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2339 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2340 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2341 public global::Google.OrTools.Util.OptionalBoolean UseRelocateSubtrip {
2342 get { return useRelocateSubtrip_; }
2343 set {
2344 useRelocateSubtrip_ = value;
2345 }
2346 }
2347
2349 public const int UseExchangeFieldNumber = 4;
2350 private global::Google.OrTools.Util.OptionalBoolean useExchange_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2360 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2361 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2362 public global::Google.OrTools.Util.OptionalBoolean UseExchange {
2363 get { return useExchange_; }
2364 set {
2365 useExchange_ = value;
2366 }
2367 }
2368
2370 public const int UseExchangePairFieldNumber = 22;
2371 private global::Google.OrTools.Util.OptionalBoolean useExchangePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2381 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2382 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2383 public global::Google.OrTools.Util.OptionalBoolean UseExchangePair {
2384 get { return useExchangePair_; }
2385 set {
2386 useExchangePair_ = value;
2387 }
2388 }
2389
2391 public const int UseExchangeSubtripFieldNumber = 26;
2392 private global::Google.OrTools.Util.OptionalBoolean useExchangeSubtrip_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2397 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2398 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2399 public global::Google.OrTools.Util.OptionalBoolean UseExchangeSubtrip {
2400 get { return useExchangeSubtrip_; }
2401 set {
2402 useExchangeSubtrip_ = value;
2403 }
2404 }
2405
2407 public const int UseCrossFieldNumber = 5;
2408 private global::Google.OrTools.Util.OptionalBoolean useCross_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2420 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2421 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2422 public global::Google.OrTools.Util.OptionalBoolean UseCross {
2423 get { return useCross_; }
2424 set {
2425 useCross_ = value;
2426 }
2427 }
2428
2430 public const int UseCrossExchangeFieldNumber = 6;
2431 private global::Google.OrTools.Util.OptionalBoolean useCrossExchange_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2435 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2436 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2437 public global::Google.OrTools.Util.OptionalBoolean UseCrossExchange {
2438 get { return useCrossExchange_; }
2439 set {
2440 useCrossExchange_ = value;
2441 }
2442 }
2443
2445 public const int UseRelocateExpensiveChainFieldNumber = 23;
2446 private global::Google.OrTools.Util.OptionalBoolean useRelocateExpensiveChain_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2459 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2460 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2461 public global::Google.OrTools.Util.OptionalBoolean UseRelocateExpensiveChain {
2462 get { return useRelocateExpensiveChain_; }
2463 set {
2464 useRelocateExpensiveChain_ = value;
2465 }
2466 }
2467
2469 public const int UseTwoOptFieldNumber = 7;
2470 private global::Google.OrTools.Util.OptionalBoolean useTwoOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2483 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2484 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2485 public global::Google.OrTools.Util.OptionalBoolean UseTwoOpt {
2486 get { return useTwoOpt_; }
2487 set {
2488 useTwoOpt_ = value;
2489 }
2490 }
2491
2493 public const int UseOrOptFieldNumber = 8;
2494 private global::Google.OrTools.Util.OptionalBoolean useOrOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2508 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2509 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2510 public global::Google.OrTools.Util.OptionalBoolean UseOrOpt {
2511 get { return useOrOpt_; }
2512 set {
2513 useOrOpt_ = value;
2514 }
2515 }
2516
2518 public const int UseLinKernighanFieldNumber = 9;
2519 private global::Google.OrTools.Util.OptionalBoolean useLinKernighan_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2526 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2527 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2528 public global::Google.OrTools.Util.OptionalBoolean UseLinKernighan {
2529 get { return useLinKernighan_; }
2530 set {
2531 useLinKernighan_ = value;
2532 }
2533 }
2534
2536 public const int UseTspOptFieldNumber = 10;
2537 private global::Google.OrTools.Util.OptionalBoolean useTspOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2546 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2547 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2548 public global::Google.OrTools.Util.OptionalBoolean UseTspOpt {
2549 get { return useTspOpt_; }
2550 set {
2551 useTspOpt_ = value;
2552 }
2553 }
2554
2556 public const int UseMakeActiveFieldNumber = 11;
2557 private global::Google.OrTools.Util.OptionalBoolean useMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2567 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2568 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2569 public global::Google.OrTools.Util.OptionalBoolean UseMakeActive {
2570 get { return useMakeActive_; }
2571 set {
2572 useMakeActive_ = value;
2573 }
2574 }
2575
2577 public const int UseRelocateAndMakeActiveFieldNumber = 21;
2578 private global::Google.OrTools.Util.OptionalBoolean useRelocateAndMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2591 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2592 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2593 public global::Google.OrTools.Util.OptionalBoolean UseRelocateAndMakeActive {
2594 get { return useRelocateAndMakeActive_; }
2595 set {
2596 useRelocateAndMakeActive_ = value;
2597 }
2598 }
2599
2601 public const int UseMakeInactiveFieldNumber = 12;
2602 private global::Google.OrTools.Util.OptionalBoolean useMakeInactive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2610 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2611 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2612 public global::Google.OrTools.Util.OptionalBoolean UseMakeInactive {
2613 get { return useMakeInactive_; }
2614 set {
2615 useMakeInactive_ = value;
2616 }
2617 }
2618
2620 public const int UseMakeChainInactiveFieldNumber = 13;
2621 private global::Google.OrTools.Util.OptionalBoolean useMakeChainInactive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2630 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2631 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2632 public global::Google.OrTools.Util.OptionalBoolean UseMakeChainInactive {
2633 get { return useMakeChainInactive_; }
2634 set {
2635 useMakeChainInactive_ = value;
2636 }
2637 }
2638
2640 public const int UseSwapActiveFieldNumber = 14;
2641 private global::Google.OrTools.Util.OptionalBoolean useSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2649 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2650 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2651 public global::Google.OrTools.Util.OptionalBoolean UseSwapActive {
2652 get { return useSwapActive_; }
2653 set {
2654 useSwapActive_ = value;
2655 }
2656 }
2657
2659 public const int UseExtendedSwapActiveFieldNumber = 15;
2660 private global::Google.OrTools.Util.OptionalBoolean useExtendedSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2673 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2674 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2675 public global::Google.OrTools.Util.OptionalBoolean UseExtendedSwapActive {
2676 get { return useExtendedSwapActive_; }
2677 set {
2678 useExtendedSwapActive_ = value;
2679 }
2680 }
2681
2683 public const int UseNodePairSwapActiveFieldNumber = 20;
2684 private global::Google.OrTools.Util.OptionalBoolean useNodePairSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2698 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2699 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2700 public global::Google.OrTools.Util.OptionalBoolean UseNodePairSwapActive {
2701 get { return useNodePairSwapActive_; }
2702 set {
2703 useNodePairSwapActive_ = value;
2704 }
2705 }
2706
2708 public const int UsePathLnsFieldNumber = 16;
2709 private global::Google.OrTools.Util.OptionalBoolean usePathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2720 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2721 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2722 public global::Google.OrTools.Util.OptionalBoolean UsePathLns {
2723 get { return usePathLns_; }
2724 set {
2725 usePathLns_ = value;
2726 }
2727 }
2728
2730 public const int UseFullPathLnsFieldNumber = 17;
2731 private global::Google.OrTools.Util.OptionalBoolean useFullPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2735 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2736 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2737 public global::Google.OrTools.Util.OptionalBoolean UseFullPathLns {
2738 get { return useFullPathLns_; }
2739 set {
2740 useFullPathLns_ = value;
2741 }
2742 }
2743
2745 public const int UseTspLnsFieldNumber = 18;
2746 private global::Google.OrTools.Util.OptionalBoolean useTspLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2755 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2756 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2757 public global::Google.OrTools.Util.OptionalBoolean UseTspLns {
2758 get { return useTspLns_; }
2759 set {
2760 useTspLns_ = value;
2761 }
2762 }
2763
2765 public const int UseInactiveLnsFieldNumber = 19;
2766 private global::Google.OrTools.Util.OptionalBoolean useInactiveLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2772 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2773 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2774 public global::Google.OrTools.Util.OptionalBoolean UseInactiveLns {
2775 get { return useInactiveLns_; }
2776 set {
2777 useInactiveLns_ = value;
2778 }
2779 }
2780
2782 public const int UseGlobalCheapestInsertionPathLnsFieldNumber = 27;
2783 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2789 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2790 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2791 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionPathLns {
2792 get { return useGlobalCheapestInsertionPathLns_; }
2793 set {
2794 useGlobalCheapestInsertionPathLns_ = value;
2795 }
2796 }
2797
2799 public const int UseLocalCheapestInsertionPathLnsFieldNumber = 28;
2800 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2804 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2805 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2806 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionPathLns {
2807 get { return useLocalCheapestInsertionPathLns_; }
2808 set {
2809 useLocalCheapestInsertionPathLns_ = value;
2810 }
2811 }
2812
2814 public const int UseRelocatePathGlobalCheapestInsertionInsertUnperformedFieldNumber = 33;
2815 private global::Google.OrTools.Util.OptionalBoolean useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2821 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2822 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2823 public global::Google.OrTools.Util.OptionalBoolean UseRelocatePathGlobalCheapestInsertionInsertUnperformed {
2824 get { return useRelocatePathGlobalCheapestInsertionInsertUnperformed_; }
2825 set {
2826 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value;
2827 }
2828 }
2829
2831 public const int UseGlobalCheapestInsertionExpensiveChainLnsFieldNumber = 29;
2832 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionExpensiveChainLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2839 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2840 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2841 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionExpensiveChainLns {
2842 get { return useGlobalCheapestInsertionExpensiveChainLns_; }
2843 set {
2844 useGlobalCheapestInsertionExpensiveChainLns_ = value;
2845 }
2846 }
2847
2849 public const int UseLocalCheapestInsertionExpensiveChainLnsFieldNumber = 30;
2850 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionExpensiveChainLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2855 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2856 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2857 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionExpensiveChainLns {
2858 get { return useLocalCheapestInsertionExpensiveChainLns_; }
2859 set {
2860 useLocalCheapestInsertionExpensiveChainLns_ = value;
2861 }
2862 }
2863
2865 public const int UseGlobalCheapestInsertionCloseNodesLnsFieldNumber = 31;
2866 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionCloseNodesLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2873 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2874 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2875 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionCloseNodesLns {
2876 get { return useGlobalCheapestInsertionCloseNodesLns_; }
2877 set {
2878 useGlobalCheapestInsertionCloseNodesLns_ = value;
2879 }
2880 }
2881
2883 public const int UseLocalCheapestInsertionCloseNodesLnsFieldNumber = 32;
2884 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionCloseNodesLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2889 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2890 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2891 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionCloseNodesLns {
2892 get { return useLocalCheapestInsertionCloseNodesLns_; }
2893 set {
2894 useLocalCheapestInsertionCloseNodesLns_ = value;
2895 }
2896 }
2897
2898 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2899 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2900 public override bool Equals(object other) {
2901 return Equals(other as LocalSearchNeighborhoodOperators);
2902 }
2903
2904 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2905 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2907 if (ReferenceEquals(other, null)) {
2908 return false;
2909 }
2910 if (ReferenceEquals(other, this)) {
2911 return true;
2912 }
2913 if (UseRelocate != other.UseRelocate) return false;
2914 if (UseRelocatePair != other.UseRelocatePair) return false;
2915 if (UseLightRelocatePair != other.UseLightRelocatePair) return false;
2916 if (UseRelocateNeighbors != other.UseRelocateNeighbors) return false;
2917 if (UseRelocateSubtrip != other.UseRelocateSubtrip) return false;
2918 if (UseExchange != other.UseExchange) return false;
2919 if (UseExchangePair != other.UseExchangePair) return false;
2920 if (UseExchangeSubtrip != other.UseExchangeSubtrip) return false;
2921 if (UseCross != other.UseCross) return false;
2922 if (UseCrossExchange != other.UseCrossExchange) return false;
2923 if (UseRelocateExpensiveChain != other.UseRelocateExpensiveChain) return false;
2924 if (UseTwoOpt != other.UseTwoOpt) return false;
2925 if (UseOrOpt != other.UseOrOpt) return false;
2926 if (UseLinKernighan != other.UseLinKernighan) return false;
2927 if (UseTspOpt != other.UseTspOpt) return false;
2928 if (UseMakeActive != other.UseMakeActive) return false;
2929 if (UseRelocateAndMakeActive != other.UseRelocateAndMakeActive) return false;
2930 if (UseMakeInactive != other.UseMakeInactive) return false;
2931 if (UseMakeChainInactive != other.UseMakeChainInactive) return false;
2932 if (UseSwapActive != other.UseSwapActive) return false;
2933 if (UseExtendedSwapActive != other.UseExtendedSwapActive) return false;
2934 if (UseNodePairSwapActive != other.UseNodePairSwapActive) return false;
2935 if (UsePathLns != other.UsePathLns) return false;
2936 if (UseFullPathLns != other.UseFullPathLns) return false;
2937 if (UseTspLns != other.UseTspLns) return false;
2938 if (UseInactiveLns != other.UseInactiveLns) return false;
2939 if (UseGlobalCheapestInsertionPathLns != other.UseGlobalCheapestInsertionPathLns) return false;
2940 if (UseLocalCheapestInsertionPathLns != other.UseLocalCheapestInsertionPathLns) return false;
2941 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != other.UseRelocatePathGlobalCheapestInsertionInsertUnperformed) return false;
2942 if (UseGlobalCheapestInsertionExpensiveChainLns != other.UseGlobalCheapestInsertionExpensiveChainLns) return false;
2943 if (UseLocalCheapestInsertionExpensiveChainLns != other.UseLocalCheapestInsertionExpensiveChainLns) return false;
2944 if (UseGlobalCheapestInsertionCloseNodesLns != other.UseGlobalCheapestInsertionCloseNodesLns) return false;
2945 if (UseLocalCheapestInsertionCloseNodesLns != other.UseLocalCheapestInsertionCloseNodesLns) return false;
2946 return Equals(_unknownFields, other._unknownFields);
2947 }
2948
2949 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2950 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2951 public override int GetHashCode() {
2952 int hash = 1;
2953 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocate.GetHashCode();
2954 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocatePair.GetHashCode();
2955 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLightRelocatePair.GetHashCode();
2956 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateNeighbors.GetHashCode();
2957 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateSubtrip.GetHashCode();
2958 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchange.GetHashCode();
2959 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangePair.GetHashCode();
2960 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangeSubtrip.GetHashCode();
2961 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCross.GetHashCode();
2962 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCrossExchange.GetHashCode();
2963 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateExpensiveChain.GetHashCode();
2964 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTwoOpt.GetHashCode();
2965 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseOrOpt.GetHashCode();
2966 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLinKernighan.GetHashCode();
2967 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTspOpt.GetHashCode();
2968 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeActive.GetHashCode();
2969 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateAndMakeActive.GetHashCode();
2970 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeInactive.GetHashCode();
2971 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeChainInactive.GetHashCode();
2972 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseSwapActive.GetHashCode();
2973 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExtendedSwapActive.GetHashCode();
2974 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseNodePairSwapActive.GetHashCode();
2975 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UsePathLns.GetHashCode();
2976 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseFullPathLns.GetHashCode();
2977 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTspLns.GetHashCode();
2978 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseInactiveLns.GetHashCode();
2979 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionPathLns.GetHashCode();
2980 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionPathLns.GetHashCode();
2981 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocatePathGlobalCheapestInsertionInsertUnperformed.GetHashCode();
2982 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionExpensiveChainLns.GetHashCode();
2983 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionExpensiveChainLns.GetHashCode();
2984 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionCloseNodesLns.GetHashCode();
2985 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionCloseNodesLns.GetHashCode();
2986 if (_unknownFields != null) {
2987 hash ^= _unknownFields.GetHashCode();
2988 }
2989 return hash;
2990 }
2991
2992 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2993 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2994 public override string ToString() {
2995 return pb::JsonFormatter.ToDiagnosticString(this);
2996 }
2997
2998 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2999 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3000 public void WriteTo(pb::CodedOutputStream output) {
3001 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3002 output.WriteRawMessage(this);
3003 #else
3004 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3005 output.WriteRawTag(8);
3006 output.WriteEnum((int) UseRelocate);
3007 }
3008 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3009 output.WriteRawTag(16);
3010 output.WriteEnum((int) UseRelocatePair);
3011 }
3012 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3013 output.WriteRawTag(24);
3014 output.WriteEnum((int) UseRelocateNeighbors);
3015 }
3016 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3017 output.WriteRawTag(32);
3018 output.WriteEnum((int) UseExchange);
3019 }
3020 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3021 output.WriteRawTag(40);
3022 output.WriteEnum((int) UseCross);
3023 }
3024 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3025 output.WriteRawTag(48);
3026 output.WriteEnum((int) UseCrossExchange);
3027 }
3028 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3029 output.WriteRawTag(56);
3030 output.WriteEnum((int) UseTwoOpt);
3031 }
3032 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3033 output.WriteRawTag(64);
3034 output.WriteEnum((int) UseOrOpt);
3035 }
3036 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3037 output.WriteRawTag(72);
3038 output.WriteEnum((int) UseLinKernighan);
3039 }
3040 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3041 output.WriteRawTag(80);
3042 output.WriteEnum((int) UseTspOpt);
3043 }
3044 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3045 output.WriteRawTag(88);
3046 output.WriteEnum((int) UseMakeActive);
3047 }
3048 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3049 output.WriteRawTag(96);
3050 output.WriteEnum((int) UseMakeInactive);
3051 }
3052 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3053 output.WriteRawTag(104);
3054 output.WriteEnum((int) UseMakeChainInactive);
3055 }
3056 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3057 output.WriteRawTag(112);
3058 output.WriteEnum((int) UseSwapActive);
3059 }
3060 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3061 output.WriteRawTag(120);
3062 output.WriteEnum((int) UseExtendedSwapActive);
3063 }
3064 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3065 output.WriteRawTag(128, 1);
3066 output.WriteEnum((int) UsePathLns);
3067 }
3068 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3069 output.WriteRawTag(136, 1);
3070 output.WriteEnum((int) UseFullPathLns);
3071 }
3072 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3073 output.WriteRawTag(144, 1);
3074 output.WriteEnum((int) UseTspLns);
3075 }
3076 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3077 output.WriteRawTag(152, 1);
3078 output.WriteEnum((int) UseInactiveLns);
3079 }
3080 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3081 output.WriteRawTag(160, 1);
3082 output.WriteEnum((int) UseNodePairSwapActive);
3083 }
3084 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3085 output.WriteRawTag(168, 1);
3086 output.WriteEnum((int) UseRelocateAndMakeActive);
3087 }
3088 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3089 output.WriteRawTag(176, 1);
3090 output.WriteEnum((int) UseExchangePair);
3091 }
3092 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3093 output.WriteRawTag(184, 1);
3094 output.WriteEnum((int) UseRelocateExpensiveChain);
3095 }
3096 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3097 output.WriteRawTag(192, 1);
3098 output.WriteEnum((int) UseLightRelocatePair);
3099 }
3100 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3101 output.WriteRawTag(200, 1);
3102 output.WriteEnum((int) UseRelocateSubtrip);
3103 }
3104 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3105 output.WriteRawTag(208, 1);
3106 output.WriteEnum((int) UseExchangeSubtrip);
3107 }
3108 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3109 output.WriteRawTag(216, 1);
3110 output.WriteEnum((int) UseGlobalCheapestInsertionPathLns);
3111 }
3112 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3113 output.WriteRawTag(224, 1);
3114 output.WriteEnum((int) UseLocalCheapestInsertionPathLns);
3115 }
3116 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3117 output.WriteRawTag(232, 1);
3118 output.WriteEnum((int) UseGlobalCheapestInsertionExpensiveChainLns);
3119 }
3120 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3121 output.WriteRawTag(240, 1);
3122 output.WriteEnum((int) UseLocalCheapestInsertionExpensiveChainLns);
3123 }
3124 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3125 output.WriteRawTag(248, 1);
3126 output.WriteEnum((int) UseGlobalCheapestInsertionCloseNodesLns);
3127 }
3128 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3129 output.WriteRawTag(128, 2);
3130 output.WriteEnum((int) UseLocalCheapestInsertionCloseNodesLns);
3131 }
3132 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3133 output.WriteRawTag(136, 2);
3134 output.WriteEnum((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
3135 }
3136 if (_unknownFields != null) {
3137 _unknownFields.WriteTo(output);
3138 }
3139 #endif
3140 }
3141
3142 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3143 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3144 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3145 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
3146 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3147 output.WriteRawTag(8);
3148 output.WriteEnum((int) UseRelocate);
3149 }
3150 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3151 output.WriteRawTag(16);
3152 output.WriteEnum((int) UseRelocatePair);
3153 }
3154 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3155 output.WriteRawTag(24);
3156 output.WriteEnum((int) UseRelocateNeighbors);
3157 }
3158 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3159 output.WriteRawTag(32);
3160 output.WriteEnum((int) UseExchange);
3161 }
3162 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3163 output.WriteRawTag(40);
3164 output.WriteEnum((int) UseCross);
3165 }
3166 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3167 output.WriteRawTag(48);
3168 output.WriteEnum((int) UseCrossExchange);
3169 }
3170 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3171 output.WriteRawTag(56);
3172 output.WriteEnum((int) UseTwoOpt);
3173 }
3174 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3175 output.WriteRawTag(64);
3176 output.WriteEnum((int) UseOrOpt);
3177 }
3178 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3179 output.WriteRawTag(72);
3180 output.WriteEnum((int) UseLinKernighan);
3181 }
3182 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3183 output.WriteRawTag(80);
3184 output.WriteEnum((int) UseTspOpt);
3185 }
3186 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3187 output.WriteRawTag(88);
3188 output.WriteEnum((int) UseMakeActive);
3189 }
3190 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3191 output.WriteRawTag(96);
3192 output.WriteEnum((int) UseMakeInactive);
3193 }
3194 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3195 output.WriteRawTag(104);
3196 output.WriteEnum((int) UseMakeChainInactive);
3197 }
3198 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3199 output.WriteRawTag(112);
3200 output.WriteEnum((int) UseSwapActive);
3201 }
3202 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3203 output.WriteRawTag(120);
3204 output.WriteEnum((int) UseExtendedSwapActive);
3205 }
3206 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3207 output.WriteRawTag(128, 1);
3208 output.WriteEnum((int) UsePathLns);
3209 }
3210 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3211 output.WriteRawTag(136, 1);
3212 output.WriteEnum((int) UseFullPathLns);
3213 }
3214 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3215 output.WriteRawTag(144, 1);
3216 output.WriteEnum((int) UseTspLns);
3217 }
3218 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3219 output.WriteRawTag(152, 1);
3220 output.WriteEnum((int) UseInactiveLns);
3221 }
3222 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3223 output.WriteRawTag(160, 1);
3224 output.WriteEnum((int) UseNodePairSwapActive);
3225 }
3226 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3227 output.WriteRawTag(168, 1);
3228 output.WriteEnum((int) UseRelocateAndMakeActive);
3229 }
3230 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3231 output.WriteRawTag(176, 1);
3232 output.WriteEnum((int) UseExchangePair);
3233 }
3234 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3235 output.WriteRawTag(184, 1);
3236 output.WriteEnum((int) UseRelocateExpensiveChain);
3237 }
3238 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3239 output.WriteRawTag(192, 1);
3240 output.WriteEnum((int) UseLightRelocatePair);
3241 }
3242 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3243 output.WriteRawTag(200, 1);
3244 output.WriteEnum((int) UseRelocateSubtrip);
3245 }
3246 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3247 output.WriteRawTag(208, 1);
3248 output.WriteEnum((int) UseExchangeSubtrip);
3249 }
3250 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3251 output.WriteRawTag(216, 1);
3252 output.WriteEnum((int) UseGlobalCheapestInsertionPathLns);
3253 }
3254 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3255 output.WriteRawTag(224, 1);
3256 output.WriteEnum((int) UseLocalCheapestInsertionPathLns);
3257 }
3258 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3259 output.WriteRawTag(232, 1);
3260 output.WriteEnum((int) UseGlobalCheapestInsertionExpensiveChainLns);
3261 }
3262 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3263 output.WriteRawTag(240, 1);
3264 output.WriteEnum((int) UseLocalCheapestInsertionExpensiveChainLns);
3265 }
3266 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3267 output.WriteRawTag(248, 1);
3268 output.WriteEnum((int) UseGlobalCheapestInsertionCloseNodesLns);
3269 }
3270 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3271 output.WriteRawTag(128, 2);
3272 output.WriteEnum((int) UseLocalCheapestInsertionCloseNodesLns);
3273 }
3274 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3275 output.WriteRawTag(136, 2);
3276 output.WriteEnum((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
3277 }
3278 if (_unknownFields != null) {
3279 _unknownFields.WriteTo(ref output);
3280 }
3281 }
3282 #endif
3283
3284 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3285 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3286 public int CalculateSize() {
3287 int size = 0;
3288 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3289 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocate);
3290 }
3291 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3292 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocatePair);
3293 }
3294 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3295 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLightRelocatePair);
3296 }
3297 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3298 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateNeighbors);
3299 }
3300 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3301 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateSubtrip);
3302 }
3303 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3304 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchange);
3305 }
3306 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3307 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangePair);
3308 }
3309 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3310 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangeSubtrip);
3311 }
3312 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3313 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseCross);
3314 }
3315 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3316 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseCrossExchange);
3317 }
3318 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3319 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateExpensiveChain);
3320 }
3321 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3322 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseTwoOpt);
3323 }
3324 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3325 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseOrOpt);
3326 }
3327 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3328 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseLinKernighan);
3329 }
3330 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3331 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseTspOpt);
3332 }
3333 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3334 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeActive);
3335 }
3336 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3337 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateAndMakeActive);
3338 }
3339 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3340 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeInactive);
3341 }
3342 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3343 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeChainInactive);
3344 }
3345 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3346 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseSwapActive);
3347 }
3348 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3349 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseExtendedSwapActive);
3350 }
3351 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3352 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseNodePairSwapActive);
3353 }
3354 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3355 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UsePathLns);
3356 }
3357 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3358 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseFullPathLns);
3359 }
3360 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3361 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseTspLns);
3362 }
3363 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3364 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseInactiveLns);
3365 }
3366 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3367 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionPathLns);
3368 }
3369 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3370 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionPathLns);
3371 }
3372 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3373 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
3374 }
3375 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3376 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionExpensiveChainLns);
3377 }
3378 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3379 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionExpensiveChainLns);
3380 }
3381 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3382 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionCloseNodesLns);
3383 }
3384 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3385 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionCloseNodesLns);
3386 }
3387 if (_unknownFields != null) {
3388 size += _unknownFields.CalculateSize();
3389 }
3390 return size;
3391 }
3392
3393 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3394 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3396 if (other == null) {
3397 return;
3398 }
3399 if (other.UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3400 UseRelocate = other.UseRelocate;
3401 }
3402 if (other.UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3403 UseRelocatePair = other.UseRelocatePair;
3404 }
3405 if (other.UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3406 UseLightRelocatePair = other.UseLightRelocatePair;
3407 }
3408 if (other.UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3409 UseRelocateNeighbors = other.UseRelocateNeighbors;
3410 }
3411 if (other.UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3412 UseRelocateSubtrip = other.UseRelocateSubtrip;
3413 }
3414 if (other.UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3415 UseExchange = other.UseExchange;
3416 }
3417 if (other.UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3418 UseExchangePair = other.UseExchangePair;
3419 }
3420 if (other.UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3421 UseExchangeSubtrip = other.UseExchangeSubtrip;
3422 }
3423 if (other.UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3424 UseCross = other.UseCross;
3425 }
3426 if (other.UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3427 UseCrossExchange = other.UseCrossExchange;
3428 }
3429 if (other.UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3430 UseRelocateExpensiveChain = other.UseRelocateExpensiveChain;
3431 }
3432 if (other.UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3433 UseTwoOpt = other.UseTwoOpt;
3434 }
3435 if (other.UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3436 UseOrOpt = other.UseOrOpt;
3437 }
3438 if (other.UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3439 UseLinKernighan = other.UseLinKernighan;
3440 }
3441 if (other.UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3442 UseTspOpt = other.UseTspOpt;
3443 }
3444 if (other.UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3445 UseMakeActive = other.UseMakeActive;
3446 }
3447 if (other.UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3448 UseRelocateAndMakeActive = other.UseRelocateAndMakeActive;
3449 }
3450 if (other.UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3451 UseMakeInactive = other.UseMakeInactive;
3452 }
3453 if (other.UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3454 UseMakeChainInactive = other.UseMakeChainInactive;
3455 }
3456 if (other.UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3457 UseSwapActive = other.UseSwapActive;
3458 }
3459 if (other.UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3460 UseExtendedSwapActive = other.UseExtendedSwapActive;
3461 }
3462 if (other.UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3463 UseNodePairSwapActive = other.UseNodePairSwapActive;
3464 }
3465 if (other.UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3466 UsePathLns = other.UsePathLns;
3467 }
3468 if (other.UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3469 UseFullPathLns = other.UseFullPathLns;
3470 }
3471 if (other.UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3472 UseTspLns = other.UseTspLns;
3473 }
3474 if (other.UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3475 UseInactiveLns = other.UseInactiveLns;
3476 }
3477 if (other.UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3478 UseGlobalCheapestInsertionPathLns = other.UseGlobalCheapestInsertionPathLns;
3479 }
3480 if (other.UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3481 UseLocalCheapestInsertionPathLns = other.UseLocalCheapestInsertionPathLns;
3482 }
3483 if (other.UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3484 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = other.UseRelocatePathGlobalCheapestInsertionInsertUnperformed;
3485 }
3486 if (other.UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3487 UseGlobalCheapestInsertionExpensiveChainLns = other.UseGlobalCheapestInsertionExpensiveChainLns;
3488 }
3489 if (other.UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3490 UseLocalCheapestInsertionExpensiveChainLns = other.UseLocalCheapestInsertionExpensiveChainLns;
3491 }
3492 if (other.UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3493 UseGlobalCheapestInsertionCloseNodesLns = other.UseGlobalCheapestInsertionCloseNodesLns;
3494 }
3495 if (other.UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3496 UseLocalCheapestInsertionCloseNodesLns = other.UseLocalCheapestInsertionCloseNodesLns;
3497 }
3498 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
3499 }
3500
3501 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3502 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3503 public void MergeFrom(pb::CodedInputStream input) {
3504 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3505 input.ReadRawMessage(this);
3506 #else
3507 uint tag;
3508 while ((tag = input.ReadTag()) != 0) {
3509 switch(tag) {
3510 default:
3511 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
3512 break;
3513 case 8: {
3514 UseRelocate = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3515 break;
3516 }
3517 case 16: {
3518 UseRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3519 break;
3520 }
3521 case 24: {
3522 UseRelocateNeighbors = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3523 break;
3524 }
3525 case 32: {
3526 UseExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3527 break;
3528 }
3529 case 40: {
3530 UseCross = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3531 break;
3532 }
3533 case 48: {
3534 UseCrossExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3535 break;
3536 }
3537 case 56: {
3538 UseTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3539 break;
3540 }
3541 case 64: {
3542 UseOrOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3543 break;
3544 }
3545 case 72: {
3546 UseLinKernighan = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3547 break;
3548 }
3549 case 80: {
3550 UseTspOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3551 break;
3552 }
3553 case 88: {
3554 UseMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3555 break;
3556 }
3557 case 96: {
3558 UseMakeInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3559 break;
3560 }
3561 case 104: {
3562 UseMakeChainInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3563 break;
3564 }
3565 case 112: {
3566 UseSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3567 break;
3568 }
3569 case 120: {
3570 UseExtendedSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3571 break;
3572 }
3573 case 128: {
3574 UsePathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3575 break;
3576 }
3577 case 136: {
3578 UseFullPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3579 break;
3580 }
3581 case 144: {
3582 UseTspLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3583 break;
3584 }
3585 case 152: {
3586 UseInactiveLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3587 break;
3588 }
3589 case 160: {
3590 UseNodePairSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3591 break;
3592 }
3593 case 168: {
3594 UseRelocateAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3595 break;
3596 }
3597 case 176: {
3598 UseExchangePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3599 break;
3600 }
3601 case 184: {
3602 UseRelocateExpensiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3603 break;
3604 }
3605 case 192: {
3606 UseLightRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3607 break;
3608 }
3609 case 200: {
3610 UseRelocateSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3611 break;
3612 }
3613 case 208: {
3614 UseExchangeSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3615 break;
3616 }
3617 case 216: {
3618 UseGlobalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3619 break;
3620 }
3621 case 224: {
3622 UseLocalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3623 break;
3624 }
3625 case 232: {
3626 UseGlobalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3627 break;
3628 }
3629 case 240: {
3630 UseLocalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3631 break;
3632 }
3633 case 248: {
3634 UseGlobalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3635 break;
3636 }
3637 case 256: {
3638 UseLocalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3639 break;
3640 }
3641 case 264: {
3642 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3643 break;
3644 }
3645 }
3646 }
3647 #endif
3648 }
3649
3650 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3651 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3652 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3653 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
3654 uint tag;
3655 while ((tag = input.ReadTag()) != 0) {
3656 switch(tag) {
3657 default:
3658 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
3659 break;
3660 case 8: {
3661 UseRelocate = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3662 break;
3663 }
3664 case 16: {
3665 UseRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3666 break;
3667 }
3668 case 24: {
3669 UseRelocateNeighbors = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3670 break;
3671 }
3672 case 32: {
3673 UseExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3674 break;
3675 }
3676 case 40: {
3677 UseCross = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3678 break;
3679 }
3680 case 48: {
3681 UseCrossExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3682 break;
3683 }
3684 case 56: {
3685 UseTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3686 break;
3687 }
3688 case 64: {
3689 UseOrOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3690 break;
3691 }
3692 case 72: {
3693 UseLinKernighan = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3694 break;
3695 }
3696 case 80: {
3697 UseTspOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3698 break;
3699 }
3700 case 88: {
3701 UseMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3702 break;
3703 }
3704 case 96: {
3705 UseMakeInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3706 break;
3707 }
3708 case 104: {
3709 UseMakeChainInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3710 break;
3711 }
3712 case 112: {
3713 UseSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3714 break;
3715 }
3716 case 120: {
3717 UseExtendedSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3718 break;
3719 }
3720 case 128: {
3721 UsePathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3722 break;
3723 }
3724 case 136: {
3725 UseFullPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3726 break;
3727 }
3728 case 144: {
3729 UseTspLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3730 break;
3731 }
3732 case 152: {
3733 UseInactiveLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3734 break;
3735 }
3736 case 160: {
3737 UseNodePairSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3738 break;
3739 }
3740 case 168: {
3741 UseRelocateAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3742 break;
3743 }
3744 case 176: {
3745 UseExchangePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3746 break;
3747 }
3748 case 184: {
3749 UseRelocateExpensiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3750 break;
3751 }
3752 case 192: {
3753 UseLightRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3754 break;
3755 }
3756 case 200: {
3757 UseRelocateSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3758 break;
3759 }
3760 case 208: {
3761 UseExchangeSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3762 break;
3763 }
3764 case 216: {
3765 UseGlobalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3766 break;
3767 }
3768 case 224: {
3769 UseLocalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3770 break;
3771 }
3772 case 232: {
3773 UseGlobalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3774 break;
3775 }
3776 case 240: {
3777 UseLocalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3778 break;
3779 }
3780 case 248: {
3781 UseGlobalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3782 break;
3783 }
3784 case 256: {
3785 UseLocalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3786 break;
3787 }
3788 case 264: {
3789 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
3790 break;
3791 }
3792 }
3793 }
3794 }
3795 #endif
3796
3797 }
3798
3802 public sealed partial class ImprovementSearchLimitParameters : pb::IMessage<ImprovementSearchLimitParameters>
3803 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3804 , pb::IBufferMessage
3805 #endif
3806 {
3807 private static readonly pb::MessageParser<ImprovementSearchLimitParameters> _parser = new pb::MessageParser<ImprovementSearchLimitParameters>(() => new ImprovementSearchLimitParameters());
3808 private pb::UnknownFieldSet _unknownFields;
3809 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3810 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3811 public static pb::MessageParser<ImprovementSearchLimitParameters> Parser { get { return _parser; } }
3812
3813 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3814 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3815 public static pbr::MessageDescriptor Descriptor {
3816 get { return global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Descriptor.NestedTypes[1]; }
3817 }
3818
3819 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3820 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3821 pbr::MessageDescriptor pb::IMessage.Descriptor {
3822 get { return Descriptor; }
3823 }
3824
3825 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3826 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3828 OnConstruction();
3829 }
3830
3831 partial void OnConstruction();
3832
3833 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3834 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3836 improvementRateCoefficient_ = other.improvementRateCoefficient_;
3837 improvementRateSolutionsDistance_ = other.improvementRateSolutionsDistance_;
3838 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
3839 }
3840
3841 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3842 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3844 return new ImprovementSearchLimitParameters(this);
3845 }
3846
3848 public const int ImprovementRateCoefficientFieldNumber = 38;
3849 private double improvementRateCoefficient_;
3855 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3856 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3857 public double ImprovementRateCoefficient {
3858 get { return improvementRateCoefficient_; }
3859 set {
3860 improvementRateCoefficient_ = value;
3861 }
3862 }
3863
3865 public const int ImprovementRateSolutionsDistanceFieldNumber = 39;
3866 private int improvementRateSolutionsDistance_;
3874 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3875 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3876 public int ImprovementRateSolutionsDistance {
3877 get { return improvementRateSolutionsDistance_; }
3878 set {
3879 improvementRateSolutionsDistance_ = value;
3880 }
3881 }
3882
3883 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3884 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3885 public override bool Equals(object other) {
3886 return Equals(other as ImprovementSearchLimitParameters);
3887 }
3888
3889 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3890 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3892 if (ReferenceEquals(other, null)) {
3893 return false;
3894 }
3895 if (ReferenceEquals(other, this)) {
3896 return true;
3897 }
3898 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ImprovementRateCoefficient, other.ImprovementRateCoefficient)) return false;
3899 if (ImprovementRateSolutionsDistance != other.ImprovementRateSolutionsDistance) return false;
3900 return Equals(_unknownFields, other._unknownFields);
3901 }
3902
3903 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3904 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3905 public override int GetHashCode() {
3906 int hash = 1;
3907 if (ImprovementRateCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ImprovementRateCoefficient);
3908 if (ImprovementRateSolutionsDistance != 0) hash ^= ImprovementRateSolutionsDistance.GetHashCode();
3909 if (_unknownFields != null) {
3910 hash ^= _unknownFields.GetHashCode();
3911 }
3912 return hash;
3913 }
3914
3915 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3916 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3917 public override string ToString() {
3918 return pb::JsonFormatter.ToDiagnosticString(this);
3919 }
3920
3921 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3922 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3923 public void WriteTo(pb::CodedOutputStream output) {
3924 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3925 output.WriteRawMessage(this);
3926 #else
3927 if (ImprovementRateCoefficient != 0D) {
3928 output.WriteRawTag(177, 2);
3929 output.WriteDouble(ImprovementRateCoefficient);
3930 }
3931 if (ImprovementRateSolutionsDistance != 0) {
3932 output.WriteRawTag(184, 2);
3933 output.WriteInt32(ImprovementRateSolutionsDistance);
3934 }
3935 if (_unknownFields != null) {
3936 _unknownFields.WriteTo(output);
3937 }
3938 #endif
3939 }
3940
3941 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3942 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3943 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3944 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
3945 if (ImprovementRateCoefficient != 0D) {
3946 output.WriteRawTag(177, 2);
3947 output.WriteDouble(ImprovementRateCoefficient);
3948 }
3949 if (ImprovementRateSolutionsDistance != 0) {
3950 output.WriteRawTag(184, 2);
3951 output.WriteInt32(ImprovementRateSolutionsDistance);
3952 }
3953 if (_unknownFields != null) {
3954 _unknownFields.WriteTo(ref output);
3955 }
3956 }
3957 #endif
3958
3959 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3960 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3961 public int CalculateSize() {
3962 int size = 0;
3963 if (ImprovementRateCoefficient != 0D) {
3964 size += 2 + 8;
3965 }
3966 if (ImprovementRateSolutionsDistance != 0) {
3967 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ImprovementRateSolutionsDistance);
3968 }
3969 if (_unknownFields != null) {
3970 size += _unknownFields.CalculateSize();
3971 }
3972 return size;
3973 }
3974
3975 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3976 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3978 if (other == null) {
3979 return;
3980 }
3981 if (other.ImprovementRateCoefficient != 0D) {
3982 ImprovementRateCoefficient = other.ImprovementRateCoefficient;
3983 }
3984 if (other.ImprovementRateSolutionsDistance != 0) {
3985 ImprovementRateSolutionsDistance = other.ImprovementRateSolutionsDistance;
3986 }
3987 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
3988 }
3989
3990 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3991 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3992 public void MergeFrom(pb::CodedInputStream input) {
3993 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3994 input.ReadRawMessage(this);
3995 #else
3996 uint tag;
3997 while ((tag = input.ReadTag()) != 0) {
3998 switch(tag) {
3999 default:
4000 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4001 break;
4002 case 305: {
4003 ImprovementRateCoefficient = input.ReadDouble();
4004 break;
4005 }
4006 case 312: {
4007 ImprovementRateSolutionsDistance = input.ReadInt32();
4008 break;
4009 }
4010 }
4011 }
4012 #endif
4013 }
4014
4015 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4016 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4017 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4018 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4019 uint tag;
4020 while ((tag = input.ReadTag()) != 0) {
4021 switch(tag) {
4022 default:
4023 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4024 break;
4025 case 305: {
4026 ImprovementRateCoefficient = input.ReadDouble();
4027 break;
4028 }
4029 case 312: {
4030 ImprovementRateSolutionsDistance = input.ReadInt32();
4031 break;
4032 }
4033 }
4034 }
4035 }
4036 #endif
4037
4038 }
4039
4040 }
4041 #endregion
4042
4043 }
4044
4048 public sealed partial class RoutingModelParameters : pb::IMessage<RoutingModelParameters>
4049 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4050 , pb::IBufferMessage
4051 #endif
4052 {
4053 private static readonly pb::MessageParser<RoutingModelParameters> _parser = new pb::MessageParser<RoutingModelParameters>(() => new RoutingModelParameters());
4054 private pb::UnknownFieldSet _unknownFields;
4055 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4056 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4057 public static pb::MessageParser<RoutingModelParameters> Parser { get { return _parser; } }
4058
4059 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4060 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4061 public static pbr::MessageDescriptor Descriptor {
4062 get { return global::Google.OrTools.ConstraintSolver.RoutingParametersReflection.Descriptor.MessageTypes[1]; }
4063 }
4064
4065 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4066 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4067 pbr::MessageDescriptor pb::IMessage.Descriptor {
4068 get { return Descriptor; }
4069 }
4070
4071 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4072 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4074 OnConstruction();
4075 }
4076
4077 partial void OnConstruction();
4078
4079 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4080 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4082 solverParameters_ = other.solverParameters_ != null ? other.solverParameters_.Clone() : null;
4083 reduceVehicleCostModel_ = other.reduceVehicleCostModel_;
4084 maxCallbackCacheSize_ = other.maxCallbackCacheSize_;
4085 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4086 }
4087
4088 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4089 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4091 return new RoutingModelParameters(this);
4092 }
4093
4095 public const int SolverParametersFieldNumber = 1;
4096 private global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters solverParameters_;
4100 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4101 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4102 public global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters SolverParameters {
4103 get { return solverParameters_; }
4104 set {
4105 solverParameters_ = value;
4106 }
4107 }
4108
4110 public const int ReduceVehicleCostModelFieldNumber = 2;
4111 private bool reduceVehicleCostModel_;
4118 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4119 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4120 public bool ReduceVehicleCostModel {
4121 get { return reduceVehicleCostModel_; }
4122 set {
4123 reduceVehicleCostModel_ = value;
4124 }
4125 }
4126
4128 public const int MaxCallbackCacheSizeFieldNumber = 3;
4129 private int maxCallbackCacheSize_;
4134 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4135 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4136 public int MaxCallbackCacheSize {
4137 get { return maxCallbackCacheSize_; }
4138 set {
4139 maxCallbackCacheSize_ = value;
4140 }
4141 }
4142
4143 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4144 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4145 public override bool Equals(object other) {
4146 return Equals(other as RoutingModelParameters);
4147 }
4148
4149 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4150 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4151 public bool Equals(RoutingModelParameters other) {
4152 if (ReferenceEquals(other, null)) {
4153 return false;
4154 }
4155 if (ReferenceEquals(other, this)) {
4156 return true;
4157 }
4158 if (!object.Equals(SolverParameters, other.SolverParameters)) return false;
4159 if (ReduceVehicleCostModel != other.ReduceVehicleCostModel) return false;
4160 if (MaxCallbackCacheSize != other.MaxCallbackCacheSize) return false;
4161 return Equals(_unknownFields, other._unknownFields);
4162 }
4163
4164 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4165 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4166 public override int GetHashCode() {
4167 int hash = 1;
4168 if (solverParameters_ != null) hash ^= SolverParameters.GetHashCode();
4169 if (ReduceVehicleCostModel != false) hash ^= ReduceVehicleCostModel.GetHashCode();
4170 if (MaxCallbackCacheSize != 0) hash ^= MaxCallbackCacheSize.GetHashCode();
4171 if (_unknownFields != null) {
4172 hash ^= _unknownFields.GetHashCode();
4173 }
4174 return hash;
4175 }
4176
4177 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4178 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4179 public override string ToString() {
4180 return pb::JsonFormatter.ToDiagnosticString(this);
4181 }
4182
4183 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4184 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4185 public void WriteTo(pb::CodedOutputStream output) {
4186 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4187 output.WriteRawMessage(this);
4188 #else
4189 if (solverParameters_ != null) {
4190 output.WriteRawTag(10);
4191 output.WriteMessage(SolverParameters);
4192 }
4193 if (ReduceVehicleCostModel != false) {
4194 output.WriteRawTag(16);
4195 output.WriteBool(ReduceVehicleCostModel);
4196 }
4197 if (MaxCallbackCacheSize != 0) {
4198 output.WriteRawTag(24);
4199 output.WriteInt32(MaxCallbackCacheSize);
4200 }
4201 if (_unknownFields != null) {
4202 _unknownFields.WriteTo(output);
4203 }
4204 #endif
4205 }
4206
4207 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4208 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4209 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4210 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
4211 if (solverParameters_ != null) {
4212 output.WriteRawTag(10);
4213 output.WriteMessage(SolverParameters);
4214 }
4215 if (ReduceVehicleCostModel != false) {
4216 output.WriteRawTag(16);
4217 output.WriteBool(ReduceVehicleCostModel);
4218 }
4219 if (MaxCallbackCacheSize != 0) {
4220 output.WriteRawTag(24);
4221 output.WriteInt32(MaxCallbackCacheSize);
4222 }
4223 if (_unknownFields != null) {
4224 _unknownFields.WriteTo(ref output);
4225 }
4226 }
4227 #endif
4228
4229 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4230 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4231 public int CalculateSize() {
4232 int size = 0;
4233 if (solverParameters_ != null) {
4234 size += 1 + pb::CodedOutputStream.ComputeMessageSize(SolverParameters);
4235 }
4236 if (ReduceVehicleCostModel != false) {
4237 size += 1 + 1;
4238 }
4239 if (MaxCallbackCacheSize != 0) {
4240 size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxCallbackCacheSize);
4241 }
4242 if (_unknownFields != null) {
4243 size += _unknownFields.CalculateSize();
4244 }
4245 return size;
4246 }
4247
4248 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4249 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4251 if (other == null) {
4252 return;
4253 }
4254 if (other.solverParameters_ != null) {
4255 if (solverParameters_ == null) {
4256 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
4257 }
4258 SolverParameters.MergeFrom(other.SolverParameters);
4259 }
4260 if (other.ReduceVehicleCostModel != false) {
4261 ReduceVehicleCostModel = other.ReduceVehicleCostModel;
4262 }
4263 if (other.MaxCallbackCacheSize != 0) {
4264 MaxCallbackCacheSize = other.MaxCallbackCacheSize;
4265 }
4266 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4267 }
4268
4269 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4270 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4271 public void MergeFrom(pb::CodedInputStream input) {
4272 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4273 input.ReadRawMessage(this);
4274 #else
4275 uint tag;
4276 while ((tag = input.ReadTag()) != 0) {
4277 switch(tag) {
4278 default:
4279 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4280 break;
4281 case 10: {
4282 if (solverParameters_ == null) {
4283 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
4284 }
4285 input.ReadMessage(SolverParameters);
4286 break;
4287 }
4288 case 16: {
4289 ReduceVehicleCostModel = input.ReadBool();
4290 break;
4291 }
4292 case 24: {
4293 MaxCallbackCacheSize = input.ReadInt32();
4294 break;
4295 }
4296 }
4297 }
4298 #endif
4299 }
4300
4301 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4302 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4303 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4304 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4305 uint tag;
4306 while ((tag = input.ReadTag()) != 0) {
4307 switch(tag) {
4308 default:
4309 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4310 break;
4311 case 10: {
4312 if (solverParameters_ == null) {
4313 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
4314 }
4315 input.ReadMessage(SolverParameters);
4316 break;
4317 }
4318 case 16: {
4319 ReduceVehicleCostModel = input.ReadBool();
4320 break;
4321 }
4322 case 24: {
4323 MaxCallbackCacheSize = input.ReadInt32();
4324 break;
4325 }
4326 }
4327 }
4328 }
4329 #endif
4330
4331 }
4332
4333 #endregion
4334
4335}
4336
4337#endregion Designer generated code
global::Google.Protobuf pb
global::Google.Protobuf.Reflection pbr
global::System.Collections.Generic scg
global::Google.Protobuf.Collections pbc
Container for nested types declared in the FirstSolutionStrategy message type.
First solution strategies, used as starting point of local search.
Container for nested types declared in the LocalSearchMetaheuristic message type.
Local search metaheuristics used to guide the search.
Parameters which have to be set when creating a RoutingModel.
global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters SolverParameters
Parameters to use in the underlying constraint solver.
int MaxCallbackCacheSize
Cache callback calls if the number of nodes in the model is less or equal to this value.
Holder for reflection information generated from ortools/constraint_solver/routing_parameters....
static pbr::FileDescriptor Descriptor
File descriptor for ortools/constraint_solver/routing_parameters.proto
double ImprovementRateCoefficient
Parameter that regulates exchange rate between objective improvement and number of neighbors spent.
int ImprovementRateSolutionsDistance
Parameter that specifies the distance between improvements taken into consideration for calculating t...
Local search neighborhood operators used to build a solutions neighborhood.
global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionPathLns
— LNS-like large neighborhood search operators using heuristics — Operator which makes all nodes on a...
global::Google.OrTools.Util.OptionalBoolean UseMakeChainInactive
Operator which makes a "chain" of path nodes inactive.
global::Google.OrTools.Util.OptionalBoolean UseFullPathLns
Operator which relaxes one entire path and all unactive nodes.
global::Google.OrTools.Util.OptionalBoolean UseExchangePair
Operator which exchanges the positions of two pair of nodes.
global::Google.OrTools.Util.OptionalBoolean UseLinKernighan
Lin-Kernighan operator.
global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionPathLns
Same as above but using LocalCheapestInsertion as a heuristic.
global::Google.OrTools.Util.OptionalBoolean UseSwapActive
Operator which replaces an active node by an inactive one.
global::Google.OrTools.Util.OptionalBoolean UseCross
Operator which cross exchanges the starting chains of 2 paths, including exchanging the whole paths.
global::Google.OrTools.Util.OptionalBoolean UseTwoOpt
— Intra-route operators — Operator which reverves a sub-chain of a path.
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.OrTools.Util.OptionalBoolean UseExchange
Operator which exchanges the positions of two nodes.
global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionCloseNodesLns
Same as above, but insertion positions for nodes are determined by the LocalCheapestInsertion heurist...
global::Google.OrTools.Util.OptionalBoolean UseRelocateAndMakeActive
Operator which relocates a node while making an inactive one active.
global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionExpensiveChainLns
Same as above but using LocalCheapestInsertion as a heuristic for insertion.
global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionExpensiveChainLns
This operator finds heuristic_expensive_chain_lns_num_arcs_to_consider most expensive arcs on a route...
global::Google.OrTools.Util.OptionalBoolean UseRelocatePathGlobalCheapestInsertionInsertUnperformed
The following operator relocates an entire route to an empty path and then tries to insert the unperf...
global::Google.OrTools.Util.OptionalBoolean UseRelocateExpensiveChain
Operator which detects the relocate_expensive_chain_num_arcs_to_consider most expensive arcs on a pat...
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::Google.OrTools.Util.OptionalBoolean UsePathLns
— Large neighborhood search operators — Operator which relaxes two sub-chains of three consecutive ar...
global::Google.OrTools.Util.OptionalBoolean UseRelocate
— Inter-route operators — Operator which moves a single node to another position.
global::Google.OrTools.Util.OptionalBoolean UseMakeInactive
Operator which makes path nodes inactive.
global::Google.OrTools.Util.OptionalBoolean UseMakeActive
— Operators on inactive nodes — Operator which inserts an inactive node into a path.
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 UseNodePairSwapActive
Operator which makes an inactive node active and an active pair of nodes inactive OR makes an inactiv...
global::Google.OrTools.Util.OptionalBoolean UseExtendedSwapActive
Operator which makes an inactive node active and an active one inactive.
global::Google.OrTools.Util.OptionalBoolean UseLightRelocatePair
Operator which moves a pair of pickup and delivery nodes after another pair.
global::Google.OrTools.Util.OptionalBoolean UseInactiveLns
Operator which relaxes all inactive nodes and one sub-chain of six consecutive arcs.
global::Google.OrTools.Util.OptionalBoolean UseRelocateNeighbors
Relocate neighborhood which moves chains of neighbors.
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 UseGlobalCheapestInsertionCloseNodesLns
The following operator makes a node and its heuristic_close_nodes_lns_num_nodes closest neighbors unp...
Container for nested types declared in the RoutingSearchParameters message type.
SchedulingSolver
Underlying solver to use in dimension scheduling, respectively for continuous and mixed models.
Parameters defining the search used to solve vehicle routing problems.
long SolutionLimit
– Search limits – Limit to the number of solutions generated during the search.
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver ContinuousSchedulingSolver
global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value LocalSearchMetaheuristic
Local search metaheuristics used to guide the search.
double SavingsMaxMemoryUsageBytes
The number of neighbors considered for each node in the Savings heuristic is chosen so that the space...
bool SavingsParallelRoutes
When true, the routes are built in parallel, sequentially otherwise.
double OptimizationStep
Minimum step by which the solution must be improved in local search.
global::Google.OrTools.Util.OptionalBoolean UseCpSat
If true, use the CP-SAT solver to find a solution.
double CheapestInsertionLsOperatorNeighborsRatio
Neighbors ratio and minimum number of neighbors for the heuristic when used in a local search operato...
bool ChristofidesUseMinimumMatching
If true use minimum matching instead of minimal matching in the Christofides algorithm.
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters ImprovementLimitParameters
The improvement search limit is added to the solver if the following parameters are set.
bool LogSearch
— Miscellaneous — Some of these are advanced settings which should not be modified unless you know wh...
int HeuristicCloseNodesLnsNumNodes
Number of closest nodes to consider for each node during the destruction phase of the FilteredHeurist...
string LogTag
In logs, this tag will be appended to each line corresponding to a new solution.
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators LocalSearchOperators
double SavingsArcCoefficient
Coefficient of the cost of the arc for which the saving value is being computed: Saving(a-->b) = Cost...
double SavingsNeighborsRatio
Parameters specific to the Savings first solution heuristic.
int HeuristicExpensiveChainLnsNumArcsToConsider
Number of expensive arcs to consider cutting in the FilteredHeuristicExpensiveChainLNSOperator operat...
bool SavingsAddReverseArcs
Add savings related to reverse arcs when finding the nearest neighbors of the nodes.
double MultiArmedBanditCompoundOperatorExplorationCoefficient
Positive parameter defining the exploration coefficient of the multi-armed bandit compound operator.
global::Google.Protobuf.WellKnownTypes.Duration TimeLimit
Limit to the time spent in the search.
global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value FirstSolutionStrategy
First solution strategies, used as starting point of local search.
double CheapestInsertionFarthestSeedsRatio
Ratio (between 0 and 1) of available vehicles in the model on which farthest nodes of the model are i...
double GuidedLocalSearchLambdaCoefficient
These are advanced settings which should not be modified unless you know what you are doing.
double LogCostScalingFactor
In logs, cost values will be scaled and offset by the given values in the following way: log_cost_sca...
bool UseUnfilteredFirstSolutionStrategy
— Advanced first solutions strategy settings — Don't touch these unless you know what you are doing.
int NumberOfSolutionsToCollect
Number of solutions to collect during the search.
global::Google.OrTools.Sat.SatParameters SatParameters
If use_cp_sat or use_generalized_cp_sat is true, contains the SAT algorithm parameters which will be ...
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver MixedIntegerSchedulingSolver
bool UseFullPropagation
— Propagation control — These are advanced settings which should not be modified unless you know what...
global::Google.OrTools.Util.OptionalBoolean UseGeneralizedCpSat
If true, use the CP-SAT solver to find a solution on generalized routing model.
global::Google.Protobuf.WellKnownTypes.Duration LnsTimeLimit
Limit to the time spent in the completion search for each local search neighbor.
bool UseMultiArmedBanditConcatenateOperators
If true, the solver will use multi-armed bandit concatenate operators.
bool CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization
Whether or not to only consider closest neighbors when initializing the assignment for the first solu...
double CheapestInsertionFirstSolutionNeighborsRatio
Ratio (in ]0, 1]) of closest non start/end nodes to consider as neighbors for each node when creating...
double MultiArmedBanditCompoundOperatorMemoryCoefficient
Memory coefficient related to the multi-armed bandit compound operator.
global::Google.OrTools.Util.OptionalBoolean UseCp
If true, use the CP solver to find a solution.
bool CheapestInsertionAddUnperformedEntries
Whether or not to consider entries making the nodes/pairs unperformed in the GlobalCheapestInsertion ...
int RelocateExpensiveChainNumArcsToConsider
Number of expensive arcs to consider cutting in the RelocateExpensiveChain neighborhood operator (see...