Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
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, 8981
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 "dXRpbmdfZW51bXMucHJvdG8aK29ydG9vbHMvY29uc3RyYWludF9zb2x2ZXIv",
31 "cm91dGluZ19pbHMucHJvdG8aMW9ydG9vbHMvY29uc3RyYWludF9zb2x2ZXIv",
32 "c29sdmVyX3BhcmFtZXRlcnMucHJvdG8aIG9ydG9vbHMvc2F0L3NhdF9wYXJh",
33 "bWV0ZXJzLnByb3RvGiNvcnRvb2xzL3V0aWwvb3B0aW9uYWxfYm9vbGVhbi5w",
34 "cm90byK4LgoXUm91dGluZ1NlYXJjaFBhcmFtZXRlcnMSUQoXZmlyc3Rfc29s",
35 "dXRpb25fc3RyYXRlZ3kYASABKA4yMC5vcGVyYXRpb25zX3Jlc2VhcmNoLkZp",
36 "cnN0U29sdXRpb25TdHJhdGVneS5WYWx1ZRIuCiZ1c2VfdW5maWx0ZXJlZF9m",
37 "aXJzdF9zb2x1dGlvbl9zdHJhdGVneRgCIAEoCBIfChdzYXZpbmdzX25laWdo",
38 "Ym9yc19yYXRpbxgOIAEoARImCh5zYXZpbmdzX21heF9tZW1vcnlfdXNhZ2Vf",
39 "Ynl0ZXMYFyABKAESIAoYc2F2aW5nc19hZGRfcmV2ZXJzZV9hcmNzGA8gASgI",
40 "Eh8KF3NhdmluZ3NfYXJjX2NvZWZmaWNpZW50GBIgASgBEh8KF3NhdmluZ3Nf",
41 "cGFyYWxsZWxfcm91dGVzGBMgASgIEi8KJ2NoZWFwZXN0X2luc2VydGlvbl9m",
42 "YXJ0aGVzdF9zZWVkc19yYXRpbxgQIAEoARI5CjFjaGVhcGVzdF9pbnNlcnRp",
43 "b25fZmlyc3Rfc29sdXRpb25fbmVpZ2hib3JzX3JhdGlvGBUgASgBEjcKL2No",
44 "ZWFwZXN0X2luc2VydGlvbl9maXJzdF9zb2x1dGlvbl9taW5fbmVpZ2hib3Jz",
45 "GCwgASgFEjYKLmNoZWFwZXN0X2luc2VydGlvbl9sc19vcGVyYXRvcl9uZWln",
46 "aGJvcnNfcmF0aW8YHyABKAESNAosY2hlYXBlc3RfaW5zZXJ0aW9uX2xzX29w",
47 "ZXJhdG9yX21pbl9uZWlnaGJvcnMYLSABKAUSUApIY2hlYXBlc3RfaW5zZXJ0",
48 "aW9uX2ZpcnN0X3NvbHV0aW9uX3VzZV9uZWlnaGJvcnNfcmF0aW9fZm9yX2lu",
49 "aXRpYWxpemF0aW9uGC4gASgIEjIKKmNoZWFwZXN0X2luc2VydGlvbl9hZGRf",
50 "dW5wZXJmb3JtZWRfZW50cmllcxgoIAEoCBJ9CjFsb2NhbF9jaGVhcGVzdF9p",
51 "bnNlcnRpb25fcGlja3VwX2RlbGl2ZXJ5X3N0cmF0ZWd5GDEgASgOMkIub3Bl",
52 "cmF0aW9uc19yZXNlYXJjaC5Sb3V0aW5nU2VhcmNoUGFyYW1ldGVycy5QYWly",
53 "SW5zZXJ0aW9uU3RyYXRlZ3kSggEKNmxvY2FsX2NoZWFwZXN0X2Nvc3RfaW5z",
54 "ZXJ0aW9uX3BpY2t1cF9kZWxpdmVyeV9zdHJhdGVneRg3IAEoDjJCLm9wZXJh",
55 "dGlvbnNfcmVzZWFyY2guUm91dGluZ1NlYXJjaFBhcmFtZXRlcnMuUGFpcklu",
56 "c2VydGlvblN0cmF0ZWd5EikKIWNocmlzdG9maWRlc191c2VfbWluaW11bV9t",
57 "YXRjaGluZxgeIAEoCBIqCiJmaXJzdF9zb2x1dGlvbl9vcHRpbWl6YXRpb25f",
58 "cGVyaW9kGDsgASgFEm0KFmxvY2FsX3NlYXJjaF9vcGVyYXRvcnMYAyABKAsy",
59 "TS5vcGVyYXRpb25zX3Jlc2VhcmNoLlJvdXRpbmdTZWFyY2hQYXJhbWV0ZXJz",
60 "LkxvY2FsU2VhcmNoTmVpZ2hib3Job29kT3BlcmF0b3JzEiMKG2xzX29wZXJh",
61 "dG9yX25laWdoYm9yc19yYXRpbxg1IAEoARIhChlsc19vcGVyYXRvcl9taW5f",
62 "bmVpZ2hib3JzGDYgASgFEjQKLHVzZV9tdWx0aV9hcm1lZF9iYW5kaXRfY29u",
63 "Y2F0ZW5hdGVfb3BlcmF0b3JzGCkgASgIEj8KN211bHRpX2FybWVkX2JhbmRp",
64 "dF9jb21wb3VuZF9vcGVyYXRvcl9tZW1vcnlfY29lZmZpY2llbnQYKiABKAES",
65 "RAo8bXVsdGlfYXJtZWRfYmFuZGl0X2NvbXBvdW5kX29wZXJhdG9yX2V4cGxv",
66 "cmF0aW9uX2NvZWZmaWNpZW50GCsgASgBEjUKLXJlbG9jYXRlX2V4cGVuc2l2",
67 "ZV9jaGFpbl9udW1fYXJjc190b19jb25zaWRlchgUIAEoBRI6CjJoZXVyaXN0",
68 "aWNfZXhwZW5zaXZlX2NoYWluX2xuc19udW1fYXJjc190b19jb25zaWRlchgg",
69 "IAEoBRIrCiNoZXVyaXN0aWNfY2xvc2Vfbm9kZXNfbG5zX251bV9ub2Rlcxgj",
70 "IAEoBRJXChpsb2NhbF9zZWFyY2hfbWV0YWhldXJpc3RpYxgEIAEoDjIzLm9w",
71 "ZXJhdGlvbnNfcmVzZWFyY2guTG9jYWxTZWFyY2hNZXRhaGV1cmlzdGljLlZh",
72 "bHVlEi4KJmd1aWRlZF9sb2NhbF9zZWFyY2hfbGFtYmRhX2NvZWZmaWNpZW50",
73 "GAUgASgBEkAKOGd1aWRlZF9sb2NhbF9zZWFyY2hfcmVzZXRfcGVuYWx0aWVz",
74 "X29uX25ld19iZXN0X3NvbHV0aW9uGDMgASgIEh4KFnVzZV9kZXB0aF9maXJz",
75 "dF9zZWFyY2gYBiABKAgSNAoGdXNlX2NwGBwgASgOMiQub3BlcmF0aW9uc19y",
76 "ZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SOAoKdXNlX2NwX3NhdBgbIAEoDjIk",
77 "Lm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEkQKFnVzZV9n",
78 "ZW5lcmFsaXplZF9jcF9zYXQYLyABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNo",
79 "Lk9wdGlvbmFsQm9vbGVhbhI+Cg5zYXRfcGFyYW1ldGVycxgwIAEoCzImLm9w",
80 "ZXJhdGlvbnNfcmVzZWFyY2guc2F0LlNhdFBhcmFtZXRlcnMSLAokcmVwb3J0",
81 "X2ludGVybWVkaWF0ZV9jcF9zYXRfc29sdXRpb25zGDggASgIEikKIWZhbGxi",
82 "YWNrX3RvX2NwX3NhdF9zaXplX3RocmVzaG9sZBg0IAEoBRJjChxjb250aW51",
83 "b3VzX3NjaGVkdWxpbmdfc29sdmVyGCEgASgOMj0ub3BlcmF0aW9uc19yZXNl",
84 "YXJjaC5Sb3V0aW5nU2VhcmNoUGFyYW1ldGVycy5TY2hlZHVsaW5nU29sdmVy",
85 "EmYKH21peGVkX2ludGVnZXJfc2NoZWR1bGluZ19zb2x2ZXIYIiABKA4yPS5v",
86 "cGVyYXRpb25zX3Jlc2VhcmNoLlJvdXRpbmdTZWFyY2hQYXJhbWV0ZXJzLlNj",
87 "aGVkdWxpbmdTb2x2ZXISQwo2ZGlzYWJsZV9zY2hlZHVsaW5nX2Jld2FyZV90",
88 "aGlzX21heV9kZWdyYWRlX3BlcmZvcm1hbmNlGDIgASgISACIAQESGQoRb3B0",
89 "aW1pemF0aW9uX3N0ZXAYByABKAESJgoebnVtYmVyX29mX3NvbHV0aW9uc190",
90 "b19jb2xsZWN0GBEgASgFEhYKDnNvbHV0aW9uX2xpbWl0GAggASgDEi0KCnRp",
91 "bWVfbGltaXQYCSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SMQoO",
92 "bG5zX3RpbWVfbGltaXQYCiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRp",
93 "b24SJQodc2Vjb25kYXJ5X2xzX3RpbWVfbGltaXRfcmF0aW8YOSABKAEScwoc",
94 "aW1wcm92ZW1lbnRfbGltaXRfcGFyYW1ldGVycxglIAEoCzJNLm9wZXJhdGlv",
95 "bnNfcmVzZWFyY2guUm91dGluZ1NlYXJjaFBhcmFtZXRlcnMuSW1wcm92ZW1l",
96 "bnRTZWFyY2hMaW1pdFBhcmFtZXRlcnMSHAoUdXNlX2Z1bGxfcHJvcGFnYXRp",
97 "b24YCyABKAgSEgoKbG9nX3NlYXJjaBgNIAEoCBIfChdsb2dfY29zdF9zY2Fs",
98 "aW5nX2ZhY3RvchgWIAEoARIXCg9sb2dfY29zdF9vZmZzZXQYHSABKAESDwoH",
99 "bG9nX3RhZxgkIAEoCRIhChl1c2VfaXRlcmF0ZWRfbG9jYWxfc2VhcmNoGDog",
100 "ASgIElwKIGl0ZXJhdGVkX2xvY2FsX3NlYXJjaF9wYXJhbWV0ZXJzGDwgASgL",
101 "MjIub3BlcmF0aW9uc19yZXNlYXJjaC5JdGVyYXRlZExvY2FsU2VhcmNoUGFy",
102 "YW1ldGVycxqkEwogTG9jYWxTZWFyY2hOZWlnaGJvcmhvb2RPcGVyYXRvcnMS",
103 "OgoMdXNlX3JlbG9jYXRlGAEgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5P",
104 "cHRpb25hbEJvb2xlYW4SPwoRdXNlX3JlbG9jYXRlX3BhaXIYAiABKA4yJC5v",
105 "cGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJFChd1c2VfbGln",
106 "aHRfcmVsb2NhdGVfcGFpchgYIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2gu",
107 "T3B0aW9uYWxCb29sZWFuEkQKFnVzZV9yZWxvY2F0ZV9uZWlnaGJvcnMYAyAB",
108 "KA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJCChR1",
109 "c2VfcmVsb2NhdGVfc3VidHJpcBgZIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFy",
110 "Y2guT3B0aW9uYWxCb29sZWFuEjoKDHVzZV9leGNoYW5nZRgEIAEoDjIkLm9w",
111 "ZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEj8KEXVzZV9leGNo",
112 "YW5nZV9wYWlyGBYgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25h",
113 "bEJvb2xlYW4SQgoUdXNlX2V4Y2hhbmdlX3N1YnRyaXAYGiABKA4yJC5vcGVy",
114 "YXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI3Cgl1c2VfY3Jvc3MY",
115 "BSABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJA",
116 "ChJ1c2VfY3Jvc3NfZXhjaGFuZ2UYBiABKA4yJC5vcGVyYXRpb25zX3Jlc2Vh",
117 "cmNoLk9wdGlvbmFsQm9vbGVhbhJKChx1c2VfcmVsb2NhdGVfZXhwZW5zaXZl",
118 "X2NoYWluGBcgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJv",
119 "b2xlYW4SOQoLdXNlX3R3b19vcHQYByABKA4yJC5vcGVyYXRpb25zX3Jlc2Vh",
120 "cmNoLk9wdGlvbmFsQm9vbGVhbhI4Cgp1c2Vfb3Jfb3B0GAggASgOMiQub3Bl",
121 "cmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SPwoRdXNlX2xpbl9r",
122 "ZXJuaWdoYW4YCSABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFs",
123 "Qm9vbGVhbhI5Cgt1c2VfdHNwX29wdBgKIAEoDjIkLm9wZXJhdGlvbnNfcmVz",
124 "ZWFyY2guT3B0aW9uYWxCb29sZWFuEj0KD3VzZV9tYWtlX2FjdGl2ZRgLIAEo",
125 "DjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEkoKHHVz",
126 "ZV9yZWxvY2F0ZV9hbmRfbWFrZV9hY3RpdmUYFSABKA4yJC5vcGVyYXRpb25z",
127 "X3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI/ChF1c2VfbWFrZV9pbmFjdGl2",
128 "ZRgMIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFu",
129 "EkUKF3VzZV9tYWtlX2NoYWluX2luYWN0aXZlGA0gASgOMiQub3BlcmF0aW9u",
130 "c19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SPQoPdXNlX3N3YXBfYWN0aXZl",
131 "GA4gASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4S",
132 "RgoYdXNlX2V4dGVuZGVkX3N3YXBfYWN0aXZlGA8gASgOMiQub3BlcmF0aW9u",
133 "c19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SSwoddXNlX3Nob3J0ZXN0X3Bh",
134 "dGhfc3dhcF9hY3RpdmUYIiABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9w",
135 "dGlvbmFsQm9vbGVhbhJHChl1c2Vfbm9kZV9wYWlyX3N3YXBfYWN0aXZlGBQg",
136 "ASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SOgoM",
137 "dXNlX3BhdGhfbG5zGBAgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRp",
138 "b25hbEJvb2xlYW4SPwoRdXNlX2Z1bGxfcGF0aF9sbnMYESABKA4yJC5vcGVy",
139 "YXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI5Cgt1c2VfdHNwX2xu",
140 "cxgSIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFu",
141 "Ej4KEHVzZV9pbmFjdGl2ZV9sbnMYEyABKA4yJC5vcGVyYXRpb25zX3Jlc2Vh",
142 "cmNoLk9wdGlvbmFsQm9vbGVhbhJUCiZ1c2VfZ2xvYmFsX2NoZWFwZXN0X2lu",
143 "c2VydGlvbl9wYXRoX2xucxgbIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2gu",
144 "T3B0aW9uYWxCb29sZWFuElMKJXVzZV9sb2NhbF9jaGVhcGVzdF9pbnNlcnRp",
145 "b25fcGF0aF9sbnMYHCABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlv",
146 "bmFsQm9vbGVhbhJsCj51c2VfcmVsb2NhdGVfcGF0aF9nbG9iYWxfY2hlYXBl",
147 "c3RfaW5zZXJ0aW9uX2luc2VydF91bnBlcmZvcm1lZBghIAEoDjIkLm9wZXJh",
148 "dGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEl8KMXVzZV9nbG9iYWxf",
149 "Y2hlYXBlc3RfaW5zZXJ0aW9uX2V4cGVuc2l2ZV9jaGFpbl9sbnMYHSABKA4y",
150 "JC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJeCjB1c2Vf",
151 "bG9jYWxfY2hlYXBlc3RfaW5zZXJ0aW9uX2V4cGVuc2l2ZV9jaGFpbl9sbnMY",
152 "HiABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJb",
153 "Ci11c2VfZ2xvYmFsX2NoZWFwZXN0X2luc2VydGlvbl9jbG9zZV9ub2Rlc19s",
154 "bnMYHyABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVh",
155 "bhJaCix1c2VfbG9jYWxfY2hlYXBlc3RfaW5zZXJ0aW9uX2Nsb3NlX25vZGVz",
156 "X2xucxggIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29s",
157 "ZWFuGnUKIEltcHJvdmVtZW50U2VhcmNoTGltaXRQYXJhbWV0ZXJzEiQKHGlt",
158 "cHJvdmVtZW50X3JhdGVfY29lZmZpY2llbnQYJiABKAESKwojaW1wcm92ZW1l",
159 "bnRfcmF0ZV9zb2x1dGlvbnNfZGlzdGFuY2UYJyABKAUikgEKFVBhaXJJbnNl",
160 "cnRpb25TdHJhdGVneRINCglBVVRPTUFUSUMQABIiCh5CRVNUX1BJQ0tVUF9U",
161 "SEVOX0JFU1RfREVMSVZFUlkQARIdChlCRVNUX1BJQ0tVUF9ERUxJVkVSWV9Q",
162 "QUlSEAISJwojQkVTVF9QSUNLVVBfREVMSVZFUllfUEFJUl9NVUxUSVRPVVIQ",
163 "AyJUChBTY2hlZHVsaW5nU29sdmVyEhQKEFNDSEVEVUxJTkdfVU5TRVQQABIT",
164 "Cg9TQ0hFRFVMSU5HX0dMT1AQARIVChFTQ0hFRFVMSU5HX0NQX1NBVBACQjkK",
165 "N19kaXNhYmxlX3NjaGVkdWxpbmdfYmV3YXJlX3RoaXNfbWF5X2RlZ3JhZGVf",
166 "cGVyZm9ybWFuY2UiqAEKFlJvdXRpbmdNb2RlbFBhcmFtZXRlcnMSSgoRc29s",
167 "dmVyX3BhcmFtZXRlcnMYASABKAsyLy5vcGVyYXRpb25zX3Jlc2VhcmNoLkNv",
168 "bnN0cmFpbnRTb2x2ZXJQYXJhbWV0ZXJzEiEKGXJlZHVjZV92ZWhpY2xlX2Nv",
169 "c3RfbW9kZWwYAiABKAgSHwoXbWF4X2NhbGxiYWNrX2NhY2hlX3NpemUYAyAB",
170 "KAVCSQojY29tLmdvb2dsZS5vcnRvb2xzLmNvbnN0cmFpbnRzb2x2ZXJQAaoC",
171 "H0dvb2dsZS5PclRvb2xzLkNvbnN0cmFpbnRTb2x2ZXJiBnByb3RvMw=="));
172 descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
173 new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.OrTools.ConstraintSolver.RoutingEnumsReflection.Descriptor, global::OperationsResearch.RoutingIlsReflection.Descriptor, global::Google.OrTools.ConstraintSolver.SolverParametersReflection.Descriptor, global::Google.OrTools.Sat.SatParametersReflection.Descriptor, global::Google.OrTools.Util.OptionalBooleanReflection.Descriptor, },
174 new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
175 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", "LocalCheapestInsertionPickupDeliveryStrategy", "LocalCheapestCostInsertionPickupDeliveryStrategy", "ChristofidesUseMinimumMatching", "FirstSolutionOptimizationPeriod", "LocalSearchOperators", "LsOperatorNeighborsRatio", "LsOperatorMinNeighbors", "UseMultiArmedBanditConcatenateOperators", "MultiArmedBanditCompoundOperatorMemoryCoefficient", "MultiArmedBanditCompoundOperatorExplorationCoefficient", "RelocateExpensiveChainNumArcsToConsider", "HeuristicExpensiveChainLnsNumArcsToConsider", "HeuristicCloseNodesLnsNumNodes", "LocalSearchMetaheuristic", "GuidedLocalSearchLambdaCoefficient", "GuidedLocalSearchResetPenaltiesOnNewBestSolution", "UseDepthFirstSearch", "UseCp", "UseCpSat", "UseGeneralizedCpSat", "SatParameters", "ReportIntermediateCpSatSolutions", "FallbackToCpSatSizeThreshold", "ContinuousSchedulingSolver", "MixedIntegerSchedulingSolver", "DisableSchedulingBewareThisMayDegradePerformance", "OptimizationStep", "NumberOfSolutionsToCollect", "SolutionLimit", "TimeLimit", "LnsTimeLimit", "SecondaryLsTimeLimitRatio", "ImprovementLimitParameters", "UseFullPropagation", "LogSearch", "LogCostScalingFactor", "LogCostOffset", "LogTag", "UseIteratedLocalSearch", "IteratedLocalSearchParameters" }, new[]{ "DisableSchedulingBewareThisMayDegradePerformance" }, new[]{ typeof(global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy), 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", "UseShortestPathSwapActive", "UseNodePairSwapActive", "UsePathLns", "UseFullPathLns", "UseTspLns", "UseInactiveLns", "UseGlobalCheapestInsertionPathLns", "UseLocalCheapestInsertionPathLns", "UseRelocatePathGlobalCheapestInsertionInsertUnperformed", "UseGlobalCheapestInsertionExpensiveChainLns", "UseLocalCheapestInsertionExpensiveChainLns", "UseGlobalCheapestInsertionCloseNodesLns", "UseLocalCheapestInsertionCloseNodesLns" }, null, null, null, null),
176 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)}),
177 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.ConstraintSolver.RoutingModelParameters), global::Google.OrTools.ConstraintSolver.RoutingModelParameters.Parser, new[]{ "SolverParameters", "ReduceVehicleCostModel", "MaxCallbackCacheSize" }, null, null, null, null)
178 }));
179 }
180 #endregion
181
182 }
183 #region Messages
193 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
194 public sealed partial class RoutingSearchParameters : pb::IMessage<RoutingSearchParameters>
195 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
196 , pb::IBufferMessage
197 #endif
198 {
199 private static readonly pb::MessageParser<RoutingSearchParameters> _parser = new pb::MessageParser<RoutingSearchParameters>(() => new RoutingSearchParameters());
200 private pb::UnknownFieldSet _unknownFields;
201 private int _hasBits0;
202 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
203 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
204 public static pb::MessageParser<RoutingSearchParameters> Parser { get { return _parser; } }
206 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
207 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
208 public static pbr::MessageDescriptor Descriptor {
209 get { return global::Google.OrTools.ConstraintSolver.RoutingParametersReflection.Descriptor.MessageTypes[0]; }
210 }
211
212 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
213 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
214 pbr::MessageDescriptor pb::IMessage.Descriptor {
215 get { return Descriptor; }
216 }
217
218 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
219 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
220 public RoutingSearchParameters() {
221 OnConstruction();
222 }
223
224 partial void OnConstruction();
225
226 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
227 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
228 public RoutingSearchParameters(RoutingSearchParameters other) : this() {
229 _hasBits0 = other._hasBits0;
230 firstSolutionStrategy_ = other.firstSolutionStrategy_;
231 useUnfilteredFirstSolutionStrategy_ = other.useUnfilteredFirstSolutionStrategy_;
232 savingsNeighborsRatio_ = other.savingsNeighborsRatio_;
233 savingsMaxMemoryUsageBytes_ = other.savingsMaxMemoryUsageBytes_;
234 savingsAddReverseArcs_ = other.savingsAddReverseArcs_;
235 savingsArcCoefficient_ = other.savingsArcCoefficient_;
236 savingsParallelRoutes_ = other.savingsParallelRoutes_;
237 cheapestInsertionFarthestSeedsRatio_ = other.cheapestInsertionFarthestSeedsRatio_;
238 cheapestInsertionFirstSolutionNeighborsRatio_ = other.cheapestInsertionFirstSolutionNeighborsRatio_;
239 cheapestInsertionFirstSolutionMinNeighbors_ = other.cheapestInsertionFirstSolutionMinNeighbors_;
240 cheapestInsertionLsOperatorNeighborsRatio_ = other.cheapestInsertionLsOperatorNeighborsRatio_;
241 cheapestInsertionLsOperatorMinNeighbors_ = other.cheapestInsertionLsOperatorMinNeighbors_;
242 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = other.cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
243 cheapestInsertionAddUnperformedEntries_ = other.cheapestInsertionAddUnperformedEntries_;
244 localCheapestInsertionPickupDeliveryStrategy_ = other.localCheapestInsertionPickupDeliveryStrategy_;
245 localCheapestCostInsertionPickupDeliveryStrategy_ = other.localCheapestCostInsertionPickupDeliveryStrategy_;
246 christofidesUseMinimumMatching_ = other.christofidesUseMinimumMatching_;
247 firstSolutionOptimizationPeriod_ = other.firstSolutionOptimizationPeriod_;
248 localSearchOperators_ = other.localSearchOperators_ != null ? other.localSearchOperators_.Clone() : null;
249 lsOperatorNeighborsRatio_ = other.lsOperatorNeighborsRatio_;
250 lsOperatorMinNeighbors_ = other.lsOperatorMinNeighbors_;
251 useMultiArmedBanditConcatenateOperators_ = other.useMultiArmedBanditConcatenateOperators_;
252 multiArmedBanditCompoundOperatorMemoryCoefficient_ = other.multiArmedBanditCompoundOperatorMemoryCoefficient_;
253 multiArmedBanditCompoundOperatorExplorationCoefficient_ = other.multiArmedBanditCompoundOperatorExplorationCoefficient_;
254 relocateExpensiveChainNumArcsToConsider_ = other.relocateExpensiveChainNumArcsToConsider_;
255 heuristicExpensiveChainLnsNumArcsToConsider_ = other.heuristicExpensiveChainLnsNumArcsToConsider_;
256 heuristicCloseNodesLnsNumNodes_ = other.heuristicCloseNodesLnsNumNodes_;
257 localSearchMetaheuristic_ = other.localSearchMetaheuristic_;
258 guidedLocalSearchLambdaCoefficient_ = other.guidedLocalSearchLambdaCoefficient_;
259 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = other.guidedLocalSearchResetPenaltiesOnNewBestSolution_;
260 useDepthFirstSearch_ = other.useDepthFirstSearch_;
261 useCp_ = other.useCp_;
262 useCpSat_ = other.useCpSat_;
263 useGeneralizedCpSat_ = other.useGeneralizedCpSat_;
264 satParameters_ = other.satParameters_ != null ? other.satParameters_.Clone() : null;
265 reportIntermediateCpSatSolutions_ = other.reportIntermediateCpSatSolutions_;
266 fallbackToCpSatSizeThreshold_ = other.fallbackToCpSatSizeThreshold_;
267 continuousSchedulingSolver_ = other.continuousSchedulingSolver_;
268 mixedIntegerSchedulingSolver_ = other.mixedIntegerSchedulingSolver_;
269 disableSchedulingBewareThisMayDegradePerformance_ = other.disableSchedulingBewareThisMayDegradePerformance_;
270 optimizationStep_ = other.optimizationStep_;
271 numberOfSolutionsToCollect_ = other.numberOfSolutionsToCollect_;
272 solutionLimit_ = other.solutionLimit_;
273 timeLimit_ = other.timeLimit_ != null ? other.timeLimit_.Clone() : null;
274 lnsTimeLimit_ = other.lnsTimeLimit_ != null ? other.lnsTimeLimit_.Clone() : null;
275 secondaryLsTimeLimitRatio_ = other.secondaryLsTimeLimitRatio_;
276 improvementLimitParameters_ = other.improvementLimitParameters_ != null ? other.improvementLimitParameters_.Clone() : null;
277 useFullPropagation_ = other.useFullPropagation_;
278 logSearch_ = other.logSearch_;
279 logCostScalingFactor_ = other.logCostScalingFactor_;
280 logCostOffset_ = other.logCostOffset_;
281 logTag_ = other.logTag_;
282 useIteratedLocalSearch_ = other.useIteratedLocalSearch_;
283 iteratedLocalSearchParameters_ = other.iteratedLocalSearchParameters_ != null ? other.iteratedLocalSearchParameters_.Clone() : null;
284 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
285 }
286
287 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
288 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
289 public RoutingSearchParameters Clone() {
290 return new RoutingSearchParameters(this);
291 }
292
294 public const int FirstSolutionStrategyFieldNumber = 1;
295 private global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value firstSolutionStrategy_ = global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset;
299 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
300 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
301 public global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value FirstSolutionStrategy {
302 get { return firstSolutionStrategy_; }
303 set {
304 firstSolutionStrategy_ = value;
305 }
306 }
307
309 public const int UseUnfilteredFirstSolutionStrategyFieldNumber = 2;
310 private bool useUnfilteredFirstSolutionStrategy_;
317 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
318 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
319 public bool UseUnfilteredFirstSolutionStrategy {
320 get { return useUnfilteredFirstSolutionStrategy_; }
321 set {
322 useUnfilteredFirstSolutionStrategy_ = value;
323 }
324 }
325
327 public const int SavingsNeighborsRatioFieldNumber = 14;
328 private double savingsNeighborsRatio_;
334 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
335 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
336 public double SavingsNeighborsRatio {
337 get { return savingsNeighborsRatio_; }
338 set {
339 savingsNeighborsRatio_ = value;
340 }
341 }
342
344 public const int SavingsMaxMemoryUsageBytesFieldNumber = 23;
345 private double savingsMaxMemoryUsageBytes_;
354 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
355 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
356 public double SavingsMaxMemoryUsageBytes {
357 get { return savingsMaxMemoryUsageBytes_; }
358 set {
359 savingsMaxMemoryUsageBytes_ = value;
360 }
361 }
362
364 public const int SavingsAddReverseArcsFieldNumber = 15;
365 private bool savingsAddReverseArcs_;
370 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
371 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
372 public bool SavingsAddReverseArcs {
373 get { return savingsAddReverseArcs_; }
374 set {
375 savingsAddReverseArcs_ = value;
376 }
377 }
378
380 public const int SavingsArcCoefficientFieldNumber = 18;
381 private double savingsArcCoefficient_;
389 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
390 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
391 public double SavingsArcCoefficient {
392 get { return savingsArcCoefficient_; }
393 set {
394 savingsArcCoefficient_ = value;
395 }
396 }
397
399 public const int SavingsParallelRoutesFieldNumber = 19;
400 private bool savingsParallelRoutes_;
404 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
405 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
406 public bool SavingsParallelRoutes {
407 get { return savingsParallelRoutes_; }
408 set {
409 savingsParallelRoutes_ = value;
410 }
411 }
412
414 public const int CheapestInsertionFarthestSeedsRatioFieldNumber = 16;
415 private double cheapestInsertionFarthestSeedsRatio_;
421 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
422 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
423 public double CheapestInsertionFarthestSeedsRatio {
424 get { return cheapestInsertionFarthestSeedsRatio_; }
425 set {
426 cheapestInsertionFarthestSeedsRatio_ = value;
427 }
428 }
429
431 public const int CheapestInsertionFirstSolutionNeighborsRatioFieldNumber = 21;
432 private double cheapestInsertionFirstSolutionNeighborsRatio_;
450 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
451 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
452 public double CheapestInsertionFirstSolutionNeighborsRatio {
453 get { return cheapestInsertionFirstSolutionNeighborsRatio_; }
454 set {
455 cheapestInsertionFirstSolutionNeighborsRatio_ = value;
456 }
457 }
458
460 public const int CheapestInsertionFirstSolutionMinNeighborsFieldNumber = 44;
461 private int cheapestInsertionFirstSolutionMinNeighbors_;
462 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
463 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
464 public int CheapestInsertionFirstSolutionMinNeighbors {
465 get { return cheapestInsertionFirstSolutionMinNeighbors_; }
466 set {
467 cheapestInsertionFirstSolutionMinNeighbors_ = value;
468 }
469 }
470
472 public const int CheapestInsertionLsOperatorNeighborsRatioFieldNumber = 31;
473 private double cheapestInsertionLsOperatorNeighborsRatio_;
480 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
481 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
482 public double CheapestInsertionLsOperatorNeighborsRatio {
483 get { return cheapestInsertionLsOperatorNeighborsRatio_; }
484 set {
485 cheapestInsertionLsOperatorNeighborsRatio_ = value;
486 }
487 }
488
490 public const int CheapestInsertionLsOperatorMinNeighborsFieldNumber = 45;
491 private int cheapestInsertionLsOperatorMinNeighbors_;
492 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
493 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
494 public int CheapestInsertionLsOperatorMinNeighbors {
495 get { return cheapestInsertionLsOperatorMinNeighbors_; }
496 set {
497 cheapestInsertionLsOperatorMinNeighbors_ = value;
498 }
499 }
500
502 public const int CheapestInsertionFirstSolutionUseNeighborsRatioForInitializationFieldNumber = 46;
503 private bool cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
508 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
509 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
510 public bool CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization {
511 get { return cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_; }
512 set {
513 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = value;
514 }
515 }
516
518 public const int CheapestInsertionAddUnperformedEntriesFieldNumber = 40;
519 private bool cheapestInsertionAddUnperformedEntries_;
524 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
525 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
526 public bool CheapestInsertionAddUnperformedEntries {
527 get { return cheapestInsertionAddUnperformedEntries_; }
528 set {
529 cheapestInsertionAddUnperformedEntries_ = value;
530 }
531 }
532
534 public const int LocalCheapestInsertionPickupDeliveryStrategyFieldNumber = 49;
535 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy localCheapestInsertionPickupDeliveryStrategy_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic;
540 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
541 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
542 public global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy LocalCheapestInsertionPickupDeliveryStrategy {
543 get { return localCheapestInsertionPickupDeliveryStrategy_; }
544 set {
545 localCheapestInsertionPickupDeliveryStrategy_ = value;
546 }
547 }
548
550 public const int LocalCheapestCostInsertionPickupDeliveryStrategyFieldNumber = 55;
551 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy localCheapestCostInsertionPickupDeliveryStrategy_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic;
556 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
557 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
558 public global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy LocalCheapestCostInsertionPickupDeliveryStrategy {
559 get { return localCheapestCostInsertionPickupDeliveryStrategy_; }
560 set {
561 localCheapestCostInsertionPickupDeliveryStrategy_ = value;
562 }
563 }
564
566 public const int ChristofidesUseMinimumMatchingFieldNumber = 30;
567 private bool christofidesUseMinimumMatching_;
572 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
573 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
574 public bool ChristofidesUseMinimumMatching {
575 get { return christofidesUseMinimumMatching_; }
576 set {
577 christofidesUseMinimumMatching_ = value;
578 }
579 }
580
582 public const int FirstSolutionOptimizationPeriodFieldNumber = 59;
583 private int firstSolutionOptimizationPeriod_;
593 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
594 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
595 public int FirstSolutionOptimizationPeriod {
596 get { return firstSolutionOptimizationPeriod_; }
597 set {
598 firstSolutionOptimizationPeriod_ = value;
599 }
600 }
601
603 public const int LocalSearchOperatorsFieldNumber = 3;
604 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators localSearchOperators_;
605 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
606 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
607 public global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators LocalSearchOperators {
608 get { return localSearchOperators_; }
609 set {
610 localSearchOperators_ = value;
611 }
612 }
613
615 public const int LsOperatorNeighborsRatioFieldNumber = 53;
616 private double lsOperatorNeighborsRatio_;
622 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
623 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
624 public double LsOperatorNeighborsRatio {
625 get { return lsOperatorNeighborsRatio_; }
626 set {
627 lsOperatorNeighborsRatio_ = value;
628 }
629 }
630
632 public const int LsOperatorMinNeighborsFieldNumber = 54;
633 private int lsOperatorMinNeighbors_;
634 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
635 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
636 public int LsOperatorMinNeighbors {
637 get { return lsOperatorMinNeighbors_; }
638 set {
639 lsOperatorMinNeighbors_ = value;
640 }
641 }
642
644 public const int UseMultiArmedBanditConcatenateOperatorsFieldNumber = 41;
645 private bool useMultiArmedBanditConcatenateOperators_;
651 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
652 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
653 public bool UseMultiArmedBanditConcatenateOperators {
654 get { return useMultiArmedBanditConcatenateOperators_; }
655 set {
656 useMultiArmedBanditConcatenateOperators_ = value;
657 }
658 }
659
661 public const int MultiArmedBanditCompoundOperatorMemoryCoefficientFieldNumber = 42;
662 private double multiArmedBanditCompoundOperatorMemoryCoefficient_;
669 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
670 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
671 public double MultiArmedBanditCompoundOperatorMemoryCoefficient {
672 get { return multiArmedBanditCompoundOperatorMemoryCoefficient_; }
673 set {
674 multiArmedBanditCompoundOperatorMemoryCoefficient_ = value;
675 }
676 }
677
679 public const int MultiArmedBanditCompoundOperatorExplorationCoefficientFieldNumber = 43;
680 private double multiArmedBanditCompoundOperatorExplorationCoefficient_;
686 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
687 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
688 public double MultiArmedBanditCompoundOperatorExplorationCoefficient {
689 get { return multiArmedBanditCompoundOperatorExplorationCoefficient_; }
690 set {
691 multiArmedBanditCompoundOperatorExplorationCoefficient_ = value;
692 }
693 }
694
696 public const int RelocateExpensiveChainNumArcsToConsiderFieldNumber = 20;
697 private int relocateExpensiveChainNumArcsToConsider_;
707 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
708 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
709 public int RelocateExpensiveChainNumArcsToConsider {
710 get { return relocateExpensiveChainNumArcsToConsider_; }
711 set {
712 relocateExpensiveChainNumArcsToConsider_ = value;
713 }
714 }
715
717 public const int HeuristicExpensiveChainLnsNumArcsToConsiderFieldNumber = 32;
718 private int heuristicExpensiveChainLnsNumArcsToConsider_;
723 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
724 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
725 public int HeuristicExpensiveChainLnsNumArcsToConsider {
726 get { return heuristicExpensiveChainLnsNumArcsToConsider_; }
727 set {
728 heuristicExpensiveChainLnsNumArcsToConsider_ = value;
729 }
730 }
731
733 public const int HeuristicCloseNodesLnsNumNodesFieldNumber = 35;
734 private int heuristicCloseNodesLnsNumNodes_;
739 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
740 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
741 public int HeuristicCloseNodesLnsNumNodes {
742 get { return heuristicCloseNodesLnsNumNodes_; }
743 set {
744 heuristicCloseNodesLnsNumNodes_ = value;
745 }
746 }
747
749 public const int LocalSearchMetaheuristicFieldNumber = 4;
750 private global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value localSearchMetaheuristic_ = global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset;
754 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
755 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
756 public global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value LocalSearchMetaheuristic {
757 get { return localSearchMetaheuristic_; }
758 set {
759 localSearchMetaheuristic_ = value;
760 }
761 }
762
764 public const int GuidedLocalSearchLambdaCoefficientFieldNumber = 5;
765 private double guidedLocalSearchLambdaCoefficient_;
772 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
773 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
774 public double GuidedLocalSearchLambdaCoefficient {
775 get { return guidedLocalSearchLambdaCoefficient_; }
776 set {
777 guidedLocalSearchLambdaCoefficient_ = value;
778 }
779 }
780
782 public const int GuidedLocalSearchResetPenaltiesOnNewBestSolutionFieldNumber = 51;
783 private bool guidedLocalSearchResetPenaltiesOnNewBestSolution_;
788 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
789 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
790 public bool GuidedLocalSearchResetPenaltiesOnNewBestSolution {
791 get { return guidedLocalSearchResetPenaltiesOnNewBestSolution_; }
792 set {
793 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = value;
794 }
795 }
796
798 public const int UseDepthFirstSearchFieldNumber = 6;
799 private bool useDepthFirstSearch_;
806 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
807 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
808 public bool UseDepthFirstSearch {
809 get { return useDepthFirstSearch_; }
810 set {
811 useDepthFirstSearch_ = value;
813 }
814
816 public const int UseCpFieldNumber = 28;
817 private global::Google.OrTools.Util.OptionalBoolean useCp_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
823 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
824 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
825 public global::Google.OrTools.Util.OptionalBoolean UseCp {
826 get { return useCp_; }
827 set {
828 useCp_ = value;
830 }
831
833 public const int UseCpSatFieldNumber = 27;
834 private global::Google.OrTools.Util.OptionalBoolean useCpSat_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
841 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
842 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
843 public global::Google.OrTools.Util.OptionalBoolean UseCpSat {
844 get { return useCpSat_; }
845 set {
846 useCpSat_ = value;
848 }
849
851 public const int UseGeneralizedCpSatFieldNumber = 47;
852 private global::Google.OrTools.Util.OptionalBoolean useGeneralizedCpSat_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
859 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
860 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
861 public global::Google.OrTools.Util.OptionalBoolean UseGeneralizedCpSat {
862 get { return useGeneralizedCpSat_; }
863 set {
864 useGeneralizedCpSat_ = value;
866 }
867
869 public const int SatParametersFieldNumber = 48;
870 private global::Google.OrTools.Sat.SatParameters satParameters_;
875 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
876 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
877 public global::Google.OrTools.Sat.SatParameters SatParameters {
878 get { return satParameters_; }
879 set {
880 satParameters_ = value;
882 }
883
885 public const int ReportIntermediateCpSatSolutionsFieldNumber = 56;
886 private bool reportIntermediateCpSatSolutions_;
891 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
892 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
893 public bool ReportIntermediateCpSatSolutions {
894 get { return reportIntermediateCpSatSolutions_; }
895 set {
896 reportIntermediateCpSatSolutions_ = value;
898 }
899
901 public const int FallbackToCpSatSizeThresholdFieldNumber = 52;
902 private int fallbackToCpSatSizeThreshold_;
907 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
908 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
909 public int FallbackToCpSatSizeThreshold {
910 get { return fallbackToCpSatSizeThreshold_; }
911 set {
912 fallbackToCpSatSizeThreshold_ = value;
914 }
915
917 public const int ContinuousSchedulingSolverFieldNumber = 33;
918 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver continuousSchedulingSolver_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset;
919 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
920 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
921 public global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver ContinuousSchedulingSolver {
922 get { return continuousSchedulingSolver_; }
923 set {
924 continuousSchedulingSolver_ = value;
926 }
927
929 public const int MixedIntegerSchedulingSolverFieldNumber = 34;
930 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver mixedIntegerSchedulingSolver_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset;
931 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
932 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
933 public global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver MixedIntegerSchedulingSolver {
934 get { return mixedIntegerSchedulingSolver_; }
935 set {
936 mixedIntegerSchedulingSolver_ = value;
938 }
939
941 public const int DisableSchedulingBewareThisMayDegradePerformanceFieldNumber = 50;
942 private readonly static bool DisableSchedulingBewareThisMayDegradePerformanceDefaultValue = false;
943
944 private bool disableSchedulingBewareThisMayDegradePerformance_;
949 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
950 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
951 public bool DisableSchedulingBewareThisMayDegradePerformance {
952 get { if ((_hasBits0 & 1) != 0) { return disableSchedulingBewareThisMayDegradePerformance_; } else { return DisableSchedulingBewareThisMayDegradePerformanceDefaultValue; } }
953 set {
954 _hasBits0 |= 1;
955 disableSchedulingBewareThisMayDegradePerformance_ = value;
956 }
957 }
959 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
960 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
961 public bool HasDisableSchedulingBewareThisMayDegradePerformance {
962 get { return (_hasBits0 & 1) != 0; }
963 }
965 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
966 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
967 public void ClearDisableSchedulingBewareThisMayDegradePerformance() {
968 _hasBits0 &= ~1;
969 }
970
972 public const int OptimizationStepFieldNumber = 7;
973 private double optimizationStep_;
979 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
980 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
981 public double OptimizationStep {
982 get { return optimizationStep_; }
983 set {
984 optimizationStep_ = value;
986 }
987
989 public const int NumberOfSolutionsToCollectFieldNumber = 17;
990 private int numberOfSolutionsToCollect_;
995 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
996 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
997 public int NumberOfSolutionsToCollect {
998 get { return numberOfSolutionsToCollect_; }
999 set {
1000 numberOfSolutionsToCollect_ = value;
1002 }
1003
1005 public const int SolutionLimitFieldNumber = 8;
1006 private long solutionLimit_;
1012 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1013 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1014 public long SolutionLimit {
1015 get { return solutionLimit_; }
1016 set {
1017 solutionLimit_ = value;
1019 }
1020
1022 public const int TimeLimitFieldNumber = 9;
1023 private global::Google.Protobuf.WellKnownTypes.Duration timeLimit_;
1027 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1028 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1029 public global::Google.Protobuf.WellKnownTypes.Duration TimeLimit {
1030 get { return timeLimit_; }
1031 set {
1032 timeLimit_ = value;
1034 }
1035
1037 public const int LnsTimeLimitFieldNumber = 10;
1038 private global::Google.Protobuf.WellKnownTypes.Duration lnsTimeLimit_;
1043 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1044 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1045 public global::Google.Protobuf.WellKnownTypes.Duration LnsTimeLimit {
1046 get { return lnsTimeLimit_; }
1047 set {
1048 lnsTimeLimit_ = value;
1050 }
1051
1053 public const int SecondaryLsTimeLimitRatioFieldNumber = 57;
1054 private double secondaryLsTimeLimitRatio_;
1063 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1064 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1065 public double SecondaryLsTimeLimitRatio {
1066 get { return secondaryLsTimeLimitRatio_; }
1067 set {
1068 secondaryLsTimeLimitRatio_ = value;
1070 }
1071
1073 public const int ImprovementLimitParametersFieldNumber = 37;
1074 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters improvementLimitParameters_;
1079 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1080 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1081 public global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters ImprovementLimitParameters {
1082 get { return improvementLimitParameters_; }
1083 set {
1084 improvementLimitParameters_ = value;
1086 }
1087
1089 public const int UseFullPropagationFieldNumber = 11;
1090 private bool useFullPropagation_;
1103 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1104 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1105 public bool UseFullPropagation {
1106 get { return useFullPropagation_; }
1107 set {
1108 useFullPropagation_ = value;
1109 }
1111
1113 public const int LogSearchFieldNumber = 13;
1114 private bool logSearch_;
1130 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1131 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1132 public bool LogSearch {
1133 get { return logSearch_; }
1134 set {
1135 logSearch_ = value;
1136 }
1137 }
1140 public const int LogCostScalingFactorFieldNumber = 22;
1141 private double logCostScalingFactor_;
1146 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1147 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1148 public double LogCostScalingFactor {
1149 get { return logCostScalingFactor_; }
1150 set {
1151 logCostScalingFactor_ = value;
1152 }
1153 }
1156 public const int LogCostOffsetFieldNumber = 29;
1157 private double logCostOffset_;
1158 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1159 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1160 public double LogCostOffset {
1161 get { return logCostOffset_; }
1162 set {
1163 logCostOffset_ = value;
1164 }
1165 }
1168 public const int LogTagFieldNumber = 36;
1169 private string logTag_ = "";
1174 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1175 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1176 public string LogTag {
1177 get { return logTag_; }
1178 set {
1179 logTag_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1180 }
1181 }
1184 public const int UseIteratedLocalSearchFieldNumber = 58;
1185 private bool useIteratedLocalSearch_;
1190 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1191 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1192 public bool UseIteratedLocalSearch {
1193 get { return useIteratedLocalSearch_; }
1194 set {
1195 useIteratedLocalSearch_ = value;
1196 }
1197 }
1200 public const int IteratedLocalSearchParametersFieldNumber = 60;
1201 private global::OperationsResearch.IteratedLocalSearchParameters iteratedLocalSearchParameters_;
1205 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1206 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1207 public global::OperationsResearch.IteratedLocalSearchParameters IteratedLocalSearchParameters {
1208 get { return iteratedLocalSearchParameters_; }
1209 set {
1210 iteratedLocalSearchParameters_ = value;
1211 }
1212 }
1214 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1215 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1216 public override bool Equals(object other) {
1217 return Equals(other as RoutingSearchParameters);
1218 }
1219
1220 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1221 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1222 public bool Equals(RoutingSearchParameters other) {
1223 if (ReferenceEquals(other, null)) {
1224 return false;
1225 }
1226 if (ReferenceEquals(other, this)) {
1227 return true;
1229 if (FirstSolutionStrategy != other.FirstSolutionStrategy) return false;
1230 if (UseUnfilteredFirstSolutionStrategy != other.UseUnfilteredFirstSolutionStrategy) return false;
1231 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsNeighborsRatio, other.SavingsNeighborsRatio)) return false;
1232 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsMaxMemoryUsageBytes, other.SavingsMaxMemoryUsageBytes)) return false;
1233 if (SavingsAddReverseArcs != other.SavingsAddReverseArcs) return false;
1234 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsArcCoefficient, other.SavingsArcCoefficient)) return false;
1235 if (SavingsParallelRoutes != other.SavingsParallelRoutes) return false;
1236 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionFarthestSeedsRatio, other.CheapestInsertionFarthestSeedsRatio)) return false;
1237 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionFirstSolutionNeighborsRatio, other.CheapestInsertionFirstSolutionNeighborsRatio)) return false;
1238 if (CheapestInsertionFirstSolutionMinNeighbors != other.CheapestInsertionFirstSolutionMinNeighbors) return false;
1239 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionLsOperatorNeighborsRatio, other.CheapestInsertionLsOperatorNeighborsRatio)) return false;
1240 if (CheapestInsertionLsOperatorMinNeighbors != other.CheapestInsertionLsOperatorMinNeighbors) return false;
1241 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != other.CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization) return false;
1242 if (CheapestInsertionAddUnperformedEntries != other.CheapestInsertionAddUnperformedEntries) return false;
1243 if (LocalCheapestInsertionPickupDeliveryStrategy != other.LocalCheapestInsertionPickupDeliveryStrategy) return false;
1244 if (LocalCheapestCostInsertionPickupDeliveryStrategy != other.LocalCheapestCostInsertionPickupDeliveryStrategy) return false;
1245 if (ChristofidesUseMinimumMatching != other.ChristofidesUseMinimumMatching) return false;
1246 if (FirstSolutionOptimizationPeriod != other.FirstSolutionOptimizationPeriod) return false;
1247 if (!object.Equals(LocalSearchOperators, other.LocalSearchOperators)) return false;
1248 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LsOperatorNeighborsRatio, other.LsOperatorNeighborsRatio)) return false;
1249 if (LsOperatorMinNeighbors != other.LsOperatorMinNeighbors) return false;
1250 if (UseMultiArmedBanditConcatenateOperators != other.UseMultiArmedBanditConcatenateOperators) return false;
1251 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MultiArmedBanditCompoundOperatorMemoryCoefficient, other.MultiArmedBanditCompoundOperatorMemoryCoefficient)) return false;
1252 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MultiArmedBanditCompoundOperatorExplorationCoefficient, other.MultiArmedBanditCompoundOperatorExplorationCoefficient)) return false;
1253 if (RelocateExpensiveChainNumArcsToConsider != other.RelocateExpensiveChainNumArcsToConsider) return false;
1254 if (HeuristicExpensiveChainLnsNumArcsToConsider != other.HeuristicExpensiveChainLnsNumArcsToConsider) return false;
1255 if (HeuristicCloseNodesLnsNumNodes != other.HeuristicCloseNodesLnsNumNodes) return false;
1256 if (LocalSearchMetaheuristic != other.LocalSearchMetaheuristic) return false;
1257 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(GuidedLocalSearchLambdaCoefficient, other.GuidedLocalSearchLambdaCoefficient)) return false;
1258 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != other.GuidedLocalSearchResetPenaltiesOnNewBestSolution) return false;
1259 if (UseDepthFirstSearch != other.UseDepthFirstSearch) return false;
1260 if (UseCp != other.UseCp) return false;
1261 if (UseCpSat != other.UseCpSat) return false;
1262 if (UseGeneralizedCpSat != other.UseGeneralizedCpSat) return false;
1263 if (!object.Equals(SatParameters, other.SatParameters)) return false;
1264 if (ReportIntermediateCpSatSolutions != other.ReportIntermediateCpSatSolutions) return false;
1265 if (FallbackToCpSatSizeThreshold != other.FallbackToCpSatSizeThreshold) return false;
1266 if (ContinuousSchedulingSolver != other.ContinuousSchedulingSolver) return false;
1267 if (MixedIntegerSchedulingSolver != other.MixedIntegerSchedulingSolver) return false;
1268 if (DisableSchedulingBewareThisMayDegradePerformance != other.DisableSchedulingBewareThisMayDegradePerformance) return false;
1269 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(OptimizationStep, other.OptimizationStep)) return false;
1270 if (NumberOfSolutionsToCollect != other.NumberOfSolutionsToCollect) return false;
1271 if (SolutionLimit != other.SolutionLimit) return false;
1272 if (!object.Equals(TimeLimit, other.TimeLimit)) return false;
1273 if (!object.Equals(LnsTimeLimit, other.LnsTimeLimit)) return false;
1274 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SecondaryLsTimeLimitRatio, other.SecondaryLsTimeLimitRatio)) return false;
1275 if (!object.Equals(ImprovementLimitParameters, other.ImprovementLimitParameters)) return false;
1276 if (UseFullPropagation != other.UseFullPropagation) return false;
1277 if (LogSearch != other.LogSearch) return false;
1278 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LogCostScalingFactor, other.LogCostScalingFactor)) return false;
1279 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LogCostOffset, other.LogCostOffset)) return false;
1280 if (LogTag != other.LogTag) return false;
1281 if (UseIteratedLocalSearch != other.UseIteratedLocalSearch) return false;
1282 if (!object.Equals(IteratedLocalSearchParameters, other.IteratedLocalSearchParameters)) return false;
1283 return Equals(_unknownFields, other._unknownFields);
1284 }
1285
1286 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1287 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1288 public override int GetHashCode() {
1289 int hash = 1;
1290 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) hash ^= FirstSolutionStrategy.GetHashCode();
1291 if (UseUnfilteredFirstSolutionStrategy != false) hash ^= UseUnfilteredFirstSolutionStrategy.GetHashCode();
1292 if (SavingsNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsNeighborsRatio);
1293 if (SavingsMaxMemoryUsageBytes != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsMaxMemoryUsageBytes);
1294 if (SavingsAddReverseArcs != false) hash ^= SavingsAddReverseArcs.GetHashCode();
1295 if (SavingsArcCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsArcCoefficient);
1296 if (SavingsParallelRoutes != false) hash ^= SavingsParallelRoutes.GetHashCode();
1297 if (CheapestInsertionFarthestSeedsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionFarthestSeedsRatio);
1298 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionFirstSolutionNeighborsRatio);
1299 if (CheapestInsertionFirstSolutionMinNeighbors != 0) hash ^= CheapestInsertionFirstSolutionMinNeighbors.GetHashCode();
1300 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionLsOperatorNeighborsRatio);
1301 if (CheapestInsertionLsOperatorMinNeighbors != 0) hash ^= CheapestInsertionLsOperatorMinNeighbors.GetHashCode();
1302 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) hash ^= CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization.GetHashCode();
1303 if (CheapestInsertionAddUnperformedEntries != false) hash ^= CheapestInsertionAddUnperformedEntries.GetHashCode();
1304 if (LocalCheapestInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) hash ^= LocalCheapestInsertionPickupDeliveryStrategy.GetHashCode();
1305 if (LocalCheapestCostInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) hash ^= LocalCheapestCostInsertionPickupDeliveryStrategy.GetHashCode();
1306 if (ChristofidesUseMinimumMatching != false) hash ^= ChristofidesUseMinimumMatching.GetHashCode();
1307 if (FirstSolutionOptimizationPeriod != 0) hash ^= FirstSolutionOptimizationPeriod.GetHashCode();
1308 if (localSearchOperators_ != null) hash ^= LocalSearchOperators.GetHashCode();
1309 if (LsOperatorNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LsOperatorNeighborsRatio);
1310 if (LsOperatorMinNeighbors != 0) hash ^= LsOperatorMinNeighbors.GetHashCode();
1311 if (UseMultiArmedBanditConcatenateOperators != false) hash ^= UseMultiArmedBanditConcatenateOperators.GetHashCode();
1312 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1313 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1314 if (RelocateExpensiveChainNumArcsToConsider != 0) hash ^= RelocateExpensiveChainNumArcsToConsider.GetHashCode();
1315 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) hash ^= HeuristicExpensiveChainLnsNumArcsToConsider.GetHashCode();
1316 if (HeuristicCloseNodesLnsNumNodes != 0) hash ^= HeuristicCloseNodesLnsNumNodes.GetHashCode();
1317 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) hash ^= LocalSearchMetaheuristic.GetHashCode();
1318 if (GuidedLocalSearchLambdaCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(GuidedLocalSearchLambdaCoefficient);
1319 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) hash ^= GuidedLocalSearchResetPenaltiesOnNewBestSolution.GetHashCode();
1320 if (UseDepthFirstSearch != false) hash ^= UseDepthFirstSearch.GetHashCode();
1321 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCp.GetHashCode();
1322 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCpSat.GetHashCode();
1323 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGeneralizedCpSat.GetHashCode();
1324 if (satParameters_ != null) hash ^= SatParameters.GetHashCode();
1325 if (ReportIntermediateCpSatSolutions != false) hash ^= ReportIntermediateCpSatSolutions.GetHashCode();
1326 if (FallbackToCpSatSizeThreshold != 0) hash ^= FallbackToCpSatSizeThreshold.GetHashCode();
1327 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) hash ^= ContinuousSchedulingSolver.GetHashCode();
1328 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) hash ^= MixedIntegerSchedulingSolver.GetHashCode();
1329 if (HasDisableSchedulingBewareThisMayDegradePerformance) hash ^= DisableSchedulingBewareThisMayDegradePerformance.GetHashCode();
1330 if (OptimizationStep != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(OptimizationStep);
1331 if (NumberOfSolutionsToCollect != 0) hash ^= NumberOfSolutionsToCollect.GetHashCode();
1332 if (SolutionLimit != 0L) hash ^= SolutionLimit.GetHashCode();
1333 if (timeLimit_ != null) hash ^= TimeLimit.GetHashCode();
1334 if (lnsTimeLimit_ != null) hash ^= LnsTimeLimit.GetHashCode();
1335 if (SecondaryLsTimeLimitRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SecondaryLsTimeLimitRatio);
1336 if (improvementLimitParameters_ != null) hash ^= ImprovementLimitParameters.GetHashCode();
1337 if (UseFullPropagation != false) hash ^= UseFullPropagation.GetHashCode();
1338 if (LogSearch != false) hash ^= LogSearch.GetHashCode();
1339 if (LogCostScalingFactor != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LogCostScalingFactor);
1340 if (LogCostOffset != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LogCostOffset);
1341 if (LogTag.Length != 0) hash ^= LogTag.GetHashCode();
1342 if (UseIteratedLocalSearch != false) hash ^= UseIteratedLocalSearch.GetHashCode();
1343 if (iteratedLocalSearchParameters_ != null) hash ^= IteratedLocalSearchParameters.GetHashCode();
1344 if (_unknownFields != null) {
1345 hash ^= _unknownFields.GetHashCode();
1346 }
1347 return hash;
1348 }
1349
1350 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1351 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1352 public override string ToString() {
1353 return pb::JsonFormatter.ToDiagnosticString(this);
1354 }
1355
1356 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1357 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1358 public void WriteTo(pb::CodedOutputStream output) {
1359 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1360 output.WriteRawMessage(this);
1361 #else
1362 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1363 output.WriteRawTag(8);
1364 output.WriteEnum((int) FirstSolutionStrategy);
1365 }
1366 if (UseUnfilteredFirstSolutionStrategy != false) {
1367 output.WriteRawTag(16);
1368 output.WriteBool(UseUnfilteredFirstSolutionStrategy);
1369 }
1370 if (localSearchOperators_ != null) {
1371 output.WriteRawTag(26);
1372 output.WriteMessage(LocalSearchOperators);
1373 }
1374 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1375 output.WriteRawTag(32);
1376 output.WriteEnum((int) LocalSearchMetaheuristic);
1377 }
1378 if (GuidedLocalSearchLambdaCoefficient != 0D) {
1379 output.WriteRawTag(41);
1380 output.WriteDouble(GuidedLocalSearchLambdaCoefficient);
1381 }
1382 if (UseDepthFirstSearch != false) {
1383 output.WriteRawTag(48);
1384 output.WriteBool(UseDepthFirstSearch);
1385 }
1386 if (OptimizationStep != 0D) {
1387 output.WriteRawTag(57);
1388 output.WriteDouble(OptimizationStep);
1389 }
1390 if (SolutionLimit != 0L) {
1391 output.WriteRawTag(64);
1392 output.WriteInt64(SolutionLimit);
1393 }
1394 if (timeLimit_ != null) {
1395 output.WriteRawTag(74);
1396 output.WriteMessage(TimeLimit);
1397 }
1398 if (lnsTimeLimit_ != null) {
1399 output.WriteRawTag(82);
1400 output.WriteMessage(LnsTimeLimit);
1401 }
1402 if (UseFullPropagation != false) {
1403 output.WriteRawTag(88);
1404 output.WriteBool(UseFullPropagation);
1405 }
1406 if (LogSearch != false) {
1407 output.WriteRawTag(104);
1408 output.WriteBool(LogSearch);
1409 }
1410 if (SavingsNeighborsRatio != 0D) {
1411 output.WriteRawTag(113);
1412 output.WriteDouble(SavingsNeighborsRatio);
1413 }
1414 if (SavingsAddReverseArcs != false) {
1415 output.WriteRawTag(120);
1416 output.WriteBool(SavingsAddReverseArcs);
1417 }
1418 if (CheapestInsertionFarthestSeedsRatio != 0D) {
1419 output.WriteRawTag(129, 1);
1420 output.WriteDouble(CheapestInsertionFarthestSeedsRatio);
1421 }
1422 if (NumberOfSolutionsToCollect != 0) {
1423 output.WriteRawTag(136, 1);
1424 output.WriteInt32(NumberOfSolutionsToCollect);
1425 }
1426 if (SavingsArcCoefficient != 0D) {
1427 output.WriteRawTag(145, 1);
1428 output.WriteDouble(SavingsArcCoefficient);
1429 }
1430 if (SavingsParallelRoutes != false) {
1431 output.WriteRawTag(152, 1);
1432 output.WriteBool(SavingsParallelRoutes);
1433 }
1434 if (RelocateExpensiveChainNumArcsToConsider != 0) {
1435 output.WriteRawTag(160, 1);
1436 output.WriteInt32(RelocateExpensiveChainNumArcsToConsider);
1437 }
1438 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
1439 output.WriteRawTag(169, 1);
1440 output.WriteDouble(CheapestInsertionFirstSolutionNeighborsRatio);
1441 }
1442 if (LogCostScalingFactor != 0D) {
1443 output.WriteRawTag(177, 1);
1444 output.WriteDouble(LogCostScalingFactor);
1445 }
1446 if (SavingsMaxMemoryUsageBytes != 0D) {
1447 output.WriteRawTag(185, 1);
1448 output.WriteDouble(SavingsMaxMemoryUsageBytes);
1449 }
1450 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1451 output.WriteRawTag(216, 1);
1452 output.WriteEnum((int) UseCpSat);
1453 }
1454 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1455 output.WriteRawTag(224, 1);
1456 output.WriteEnum((int) UseCp);
1457 }
1458 if (LogCostOffset != 0D) {
1459 output.WriteRawTag(233, 1);
1460 output.WriteDouble(LogCostOffset);
1461 }
1462 if (ChristofidesUseMinimumMatching != false) {
1463 output.WriteRawTag(240, 1);
1464 output.WriteBool(ChristofidesUseMinimumMatching);
1465 }
1466 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
1467 output.WriteRawTag(249, 1);
1468 output.WriteDouble(CheapestInsertionLsOperatorNeighborsRatio);
1469 }
1470 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1471 output.WriteRawTag(128, 2);
1472 output.WriteInt32(HeuristicExpensiveChainLnsNumArcsToConsider);
1473 }
1474 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1475 output.WriteRawTag(136, 2);
1476 output.WriteEnum((int) ContinuousSchedulingSolver);
1477 }
1478 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1479 output.WriteRawTag(144, 2);
1480 output.WriteEnum((int) MixedIntegerSchedulingSolver);
1481 }
1482 if (HeuristicCloseNodesLnsNumNodes != 0) {
1483 output.WriteRawTag(152, 2);
1484 output.WriteInt32(HeuristicCloseNodesLnsNumNodes);
1485 }
1486 if (LogTag.Length != 0) {
1487 output.WriteRawTag(162, 2);
1488 output.WriteString(LogTag);
1489 }
1490 if (improvementLimitParameters_ != null) {
1491 output.WriteRawTag(170, 2);
1492 output.WriteMessage(ImprovementLimitParameters);
1493 }
1494 if (CheapestInsertionAddUnperformedEntries != false) {
1495 output.WriteRawTag(192, 2);
1496 output.WriteBool(CheapestInsertionAddUnperformedEntries);
1497 }
1498 if (UseMultiArmedBanditConcatenateOperators != false) {
1499 output.WriteRawTag(200, 2);
1500 output.WriteBool(UseMultiArmedBanditConcatenateOperators);
1501 }
1502 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1503 output.WriteRawTag(209, 2);
1504 output.WriteDouble(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1505 }
1506 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1507 output.WriteRawTag(217, 2);
1508 output.WriteDouble(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1509 }
1510 if (CheapestInsertionFirstSolutionMinNeighbors != 0) {
1511 output.WriteRawTag(224, 2);
1512 output.WriteInt32(CheapestInsertionFirstSolutionMinNeighbors);
1513 }
1514 if (CheapestInsertionLsOperatorMinNeighbors != 0) {
1515 output.WriteRawTag(232, 2);
1516 output.WriteInt32(CheapestInsertionLsOperatorMinNeighbors);
1517 }
1518 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
1519 output.WriteRawTag(240, 2);
1520 output.WriteBool(CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization);
1521 }
1522 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1523 output.WriteRawTag(248, 2);
1524 output.WriteEnum((int) UseGeneralizedCpSat);
1525 }
1526 if (satParameters_ != null) {
1527 output.WriteRawTag(130, 3);
1528 output.WriteMessage(SatParameters);
1529 }
1530 if (LocalCheapestInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1531 output.WriteRawTag(136, 3);
1532 output.WriteEnum((int) LocalCheapestInsertionPickupDeliveryStrategy);
1533 }
1534 if (HasDisableSchedulingBewareThisMayDegradePerformance) {
1535 output.WriteRawTag(144, 3);
1536 output.WriteBool(DisableSchedulingBewareThisMayDegradePerformance);
1537 }
1538 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
1539 output.WriteRawTag(152, 3);
1540 output.WriteBool(GuidedLocalSearchResetPenaltiesOnNewBestSolution);
1541 }
1542 if (FallbackToCpSatSizeThreshold != 0) {
1543 output.WriteRawTag(160, 3);
1544 output.WriteInt32(FallbackToCpSatSizeThreshold);
1545 }
1546 if (LsOperatorNeighborsRatio != 0D) {
1547 output.WriteRawTag(169, 3);
1548 output.WriteDouble(LsOperatorNeighborsRatio);
1549 }
1550 if (LsOperatorMinNeighbors != 0) {
1551 output.WriteRawTag(176, 3);
1552 output.WriteInt32(LsOperatorMinNeighbors);
1553 }
1554 if (LocalCheapestCostInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1555 output.WriteRawTag(184, 3);
1556 output.WriteEnum((int) LocalCheapestCostInsertionPickupDeliveryStrategy);
1557 }
1558 if (ReportIntermediateCpSatSolutions != false) {
1559 output.WriteRawTag(192, 3);
1560 output.WriteBool(ReportIntermediateCpSatSolutions);
1561 }
1562 if (SecondaryLsTimeLimitRatio != 0D) {
1563 output.WriteRawTag(201, 3);
1564 output.WriteDouble(SecondaryLsTimeLimitRatio);
1565 }
1566 if (UseIteratedLocalSearch != false) {
1567 output.WriteRawTag(208, 3);
1568 output.WriteBool(UseIteratedLocalSearch);
1569 }
1570 if (FirstSolutionOptimizationPeriod != 0) {
1571 output.WriteRawTag(216, 3);
1572 output.WriteInt32(FirstSolutionOptimizationPeriod);
1573 }
1574 if (iteratedLocalSearchParameters_ != null) {
1575 output.WriteRawTag(226, 3);
1576 output.WriteMessage(IteratedLocalSearchParameters);
1577 }
1578 if (_unknownFields != null) {
1579 _unknownFields.WriteTo(output);
1580 }
1581 #endif
1582 }
1583
1584 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1585 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1586 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1587 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
1588 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1589 output.WriteRawTag(8);
1590 output.WriteEnum((int) FirstSolutionStrategy);
1591 }
1592 if (UseUnfilteredFirstSolutionStrategy != false) {
1593 output.WriteRawTag(16);
1594 output.WriteBool(UseUnfilteredFirstSolutionStrategy);
1595 }
1596 if (localSearchOperators_ != null) {
1597 output.WriteRawTag(26);
1598 output.WriteMessage(LocalSearchOperators);
1599 }
1600 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1601 output.WriteRawTag(32);
1602 output.WriteEnum((int) LocalSearchMetaheuristic);
1603 }
1604 if (GuidedLocalSearchLambdaCoefficient != 0D) {
1605 output.WriteRawTag(41);
1606 output.WriteDouble(GuidedLocalSearchLambdaCoefficient);
1607 }
1608 if (UseDepthFirstSearch != false) {
1609 output.WriteRawTag(48);
1610 output.WriteBool(UseDepthFirstSearch);
1611 }
1612 if (OptimizationStep != 0D) {
1613 output.WriteRawTag(57);
1614 output.WriteDouble(OptimizationStep);
1615 }
1616 if (SolutionLimit != 0L) {
1617 output.WriteRawTag(64);
1618 output.WriteInt64(SolutionLimit);
1619 }
1620 if (timeLimit_ != null) {
1621 output.WriteRawTag(74);
1622 output.WriteMessage(TimeLimit);
1623 }
1624 if (lnsTimeLimit_ != null) {
1625 output.WriteRawTag(82);
1626 output.WriteMessage(LnsTimeLimit);
1627 }
1628 if (UseFullPropagation != false) {
1629 output.WriteRawTag(88);
1630 output.WriteBool(UseFullPropagation);
1631 }
1632 if (LogSearch != false) {
1633 output.WriteRawTag(104);
1634 output.WriteBool(LogSearch);
1635 }
1636 if (SavingsNeighborsRatio != 0D) {
1637 output.WriteRawTag(113);
1638 output.WriteDouble(SavingsNeighborsRatio);
1639 }
1640 if (SavingsAddReverseArcs != false) {
1641 output.WriteRawTag(120);
1642 output.WriteBool(SavingsAddReverseArcs);
1643 }
1644 if (CheapestInsertionFarthestSeedsRatio != 0D) {
1645 output.WriteRawTag(129, 1);
1646 output.WriteDouble(CheapestInsertionFarthestSeedsRatio);
1647 }
1648 if (NumberOfSolutionsToCollect != 0) {
1649 output.WriteRawTag(136, 1);
1650 output.WriteInt32(NumberOfSolutionsToCollect);
1651 }
1652 if (SavingsArcCoefficient != 0D) {
1653 output.WriteRawTag(145, 1);
1654 output.WriteDouble(SavingsArcCoefficient);
1655 }
1656 if (SavingsParallelRoutes != false) {
1657 output.WriteRawTag(152, 1);
1658 output.WriteBool(SavingsParallelRoutes);
1659 }
1660 if (RelocateExpensiveChainNumArcsToConsider != 0) {
1661 output.WriteRawTag(160, 1);
1662 output.WriteInt32(RelocateExpensiveChainNumArcsToConsider);
1663 }
1664 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
1665 output.WriteRawTag(169, 1);
1666 output.WriteDouble(CheapestInsertionFirstSolutionNeighborsRatio);
1667 }
1668 if (LogCostScalingFactor != 0D) {
1669 output.WriteRawTag(177, 1);
1670 output.WriteDouble(LogCostScalingFactor);
1671 }
1672 if (SavingsMaxMemoryUsageBytes != 0D) {
1673 output.WriteRawTag(185, 1);
1674 output.WriteDouble(SavingsMaxMemoryUsageBytes);
1675 }
1676 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1677 output.WriteRawTag(216, 1);
1678 output.WriteEnum((int) UseCpSat);
1679 }
1680 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1681 output.WriteRawTag(224, 1);
1682 output.WriteEnum((int) UseCp);
1683 }
1684 if (LogCostOffset != 0D) {
1685 output.WriteRawTag(233, 1);
1686 output.WriteDouble(LogCostOffset);
1687 }
1688 if (ChristofidesUseMinimumMatching != false) {
1689 output.WriteRawTag(240, 1);
1690 output.WriteBool(ChristofidesUseMinimumMatching);
1691 }
1692 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
1693 output.WriteRawTag(249, 1);
1694 output.WriteDouble(CheapestInsertionLsOperatorNeighborsRatio);
1695 }
1696 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1697 output.WriteRawTag(128, 2);
1698 output.WriteInt32(HeuristicExpensiveChainLnsNumArcsToConsider);
1699 }
1700 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1701 output.WriteRawTag(136, 2);
1702 output.WriteEnum((int) ContinuousSchedulingSolver);
1703 }
1704 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1705 output.WriteRawTag(144, 2);
1706 output.WriteEnum((int) MixedIntegerSchedulingSolver);
1707 }
1708 if (HeuristicCloseNodesLnsNumNodes != 0) {
1709 output.WriteRawTag(152, 2);
1710 output.WriteInt32(HeuristicCloseNodesLnsNumNodes);
1711 }
1712 if (LogTag.Length != 0) {
1713 output.WriteRawTag(162, 2);
1714 output.WriteString(LogTag);
1715 }
1716 if (improvementLimitParameters_ != null) {
1717 output.WriteRawTag(170, 2);
1718 output.WriteMessage(ImprovementLimitParameters);
1719 }
1720 if (CheapestInsertionAddUnperformedEntries != false) {
1721 output.WriteRawTag(192, 2);
1722 output.WriteBool(CheapestInsertionAddUnperformedEntries);
1723 }
1724 if (UseMultiArmedBanditConcatenateOperators != false) {
1725 output.WriteRawTag(200, 2);
1726 output.WriteBool(UseMultiArmedBanditConcatenateOperators);
1727 }
1728 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1729 output.WriteRawTag(209, 2);
1730 output.WriteDouble(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1731 }
1732 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1733 output.WriteRawTag(217, 2);
1734 output.WriteDouble(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1735 }
1736 if (CheapestInsertionFirstSolutionMinNeighbors != 0) {
1737 output.WriteRawTag(224, 2);
1738 output.WriteInt32(CheapestInsertionFirstSolutionMinNeighbors);
1739 }
1740 if (CheapestInsertionLsOperatorMinNeighbors != 0) {
1741 output.WriteRawTag(232, 2);
1742 output.WriteInt32(CheapestInsertionLsOperatorMinNeighbors);
1743 }
1744 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
1745 output.WriteRawTag(240, 2);
1746 output.WriteBool(CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization);
1747 }
1748 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1749 output.WriteRawTag(248, 2);
1750 output.WriteEnum((int) UseGeneralizedCpSat);
1751 }
1752 if (satParameters_ != null) {
1753 output.WriteRawTag(130, 3);
1754 output.WriteMessage(SatParameters);
1755 }
1756 if (LocalCheapestInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1757 output.WriteRawTag(136, 3);
1758 output.WriteEnum((int) LocalCheapestInsertionPickupDeliveryStrategy);
1759 }
1760 if (HasDisableSchedulingBewareThisMayDegradePerformance) {
1761 output.WriteRawTag(144, 3);
1762 output.WriteBool(DisableSchedulingBewareThisMayDegradePerformance);
1763 }
1764 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
1765 output.WriteRawTag(152, 3);
1766 output.WriteBool(GuidedLocalSearchResetPenaltiesOnNewBestSolution);
1767 }
1768 if (FallbackToCpSatSizeThreshold != 0) {
1769 output.WriteRawTag(160, 3);
1770 output.WriteInt32(FallbackToCpSatSizeThreshold);
1771 }
1772 if (LsOperatorNeighborsRatio != 0D) {
1773 output.WriteRawTag(169, 3);
1774 output.WriteDouble(LsOperatorNeighborsRatio);
1775 }
1776 if (LsOperatorMinNeighbors != 0) {
1777 output.WriteRawTag(176, 3);
1778 output.WriteInt32(LsOperatorMinNeighbors);
1779 }
1780 if (LocalCheapestCostInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1781 output.WriteRawTag(184, 3);
1782 output.WriteEnum((int) LocalCheapestCostInsertionPickupDeliveryStrategy);
1783 }
1784 if (ReportIntermediateCpSatSolutions != false) {
1785 output.WriteRawTag(192, 3);
1786 output.WriteBool(ReportIntermediateCpSatSolutions);
1787 }
1788 if (SecondaryLsTimeLimitRatio != 0D) {
1789 output.WriteRawTag(201, 3);
1790 output.WriteDouble(SecondaryLsTimeLimitRatio);
1791 }
1792 if (UseIteratedLocalSearch != false) {
1793 output.WriteRawTag(208, 3);
1794 output.WriteBool(UseIteratedLocalSearch);
1795 }
1796 if (FirstSolutionOptimizationPeriod != 0) {
1797 output.WriteRawTag(216, 3);
1798 output.WriteInt32(FirstSolutionOptimizationPeriod);
1799 }
1800 if (iteratedLocalSearchParameters_ != null) {
1801 output.WriteRawTag(226, 3);
1802 output.WriteMessage(IteratedLocalSearchParameters);
1803 }
1804 if (_unknownFields != null) {
1805 _unknownFields.WriteTo(ref output);
1806 }
1807 }
1808 #endif
1809
1810 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1811 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1812 public int CalculateSize() {
1813 int size = 0;
1814 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1815 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) FirstSolutionStrategy);
1816 }
1817 if (UseUnfilteredFirstSolutionStrategy != false) {
1818 size += 1 + 1;
1819 }
1820 if (SavingsNeighborsRatio != 0D) {
1821 size += 1 + 8;
1822 }
1823 if (SavingsMaxMemoryUsageBytes != 0D) {
1824 size += 2 + 8;
1825 }
1826 if (SavingsAddReverseArcs != false) {
1827 size += 1 + 1;
1828 }
1829 if (SavingsArcCoefficient != 0D) {
1830 size += 2 + 8;
1831 }
1832 if (SavingsParallelRoutes != false) {
1833 size += 2 + 1;
1834 }
1835 if (CheapestInsertionFarthestSeedsRatio != 0D) {
1836 size += 2 + 8;
1837 }
1838 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
1839 size += 2 + 8;
1840 }
1841 if (CheapestInsertionFirstSolutionMinNeighbors != 0) {
1842 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CheapestInsertionFirstSolutionMinNeighbors);
1843 }
1844 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
1845 size += 2 + 8;
1846 }
1847 if (CheapestInsertionLsOperatorMinNeighbors != 0) {
1848 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CheapestInsertionLsOperatorMinNeighbors);
1849 }
1850 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
1851 size += 2 + 1;
1852 }
1853 if (CheapestInsertionAddUnperformedEntries != false) {
1854 size += 2 + 1;
1855 }
1856 if (LocalCheapestInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1857 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) LocalCheapestInsertionPickupDeliveryStrategy);
1858 }
1859 if (LocalCheapestCostInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1860 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) LocalCheapestCostInsertionPickupDeliveryStrategy);
1861 }
1862 if (ChristofidesUseMinimumMatching != false) {
1863 size += 2 + 1;
1864 }
1865 if (FirstSolutionOptimizationPeriod != 0) {
1866 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FirstSolutionOptimizationPeriod);
1867 }
1868 if (localSearchOperators_ != null) {
1869 size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocalSearchOperators);
1870 }
1871 if (LsOperatorNeighborsRatio != 0D) {
1872 size += 2 + 8;
1873 }
1874 if (LsOperatorMinNeighbors != 0) {
1875 size += 2 + pb::CodedOutputStream.ComputeInt32Size(LsOperatorMinNeighbors);
1876 }
1877 if (UseMultiArmedBanditConcatenateOperators != false) {
1878 size += 2 + 1;
1879 }
1880 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1881 size += 2 + 8;
1882 }
1883 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1884 size += 2 + 8;
1885 }
1886 if (RelocateExpensiveChainNumArcsToConsider != 0) {
1887 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RelocateExpensiveChainNumArcsToConsider);
1888 }
1889 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1890 size += 2 + pb::CodedOutputStream.ComputeInt32Size(HeuristicExpensiveChainLnsNumArcsToConsider);
1891 }
1892 if (HeuristicCloseNodesLnsNumNodes != 0) {
1893 size += 2 + pb::CodedOutputStream.ComputeInt32Size(HeuristicCloseNodesLnsNumNodes);
1894 }
1895 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1896 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LocalSearchMetaheuristic);
1897 }
1898 if (GuidedLocalSearchLambdaCoefficient != 0D) {
1899 size += 1 + 8;
1900 }
1901 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
1902 size += 2 + 1;
1903 }
1904 if (UseDepthFirstSearch != false) {
1905 size += 1 + 1;
1906 }
1907 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1908 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseCp);
1909 }
1910 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1911 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseCpSat);
1912 }
1913 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1914 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGeneralizedCpSat);
1915 }
1916 if (satParameters_ != null) {
1917 size += 2 + pb::CodedOutputStream.ComputeMessageSize(SatParameters);
1918 }
1919 if (ReportIntermediateCpSatSolutions != false) {
1920 size += 2 + 1;
1921 }
1922 if (FallbackToCpSatSizeThreshold != 0) {
1923 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FallbackToCpSatSizeThreshold);
1924 }
1925 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1926 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ContinuousSchedulingSolver);
1927 }
1928 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1929 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) MixedIntegerSchedulingSolver);
1930 }
1931 if (HasDisableSchedulingBewareThisMayDegradePerformance) {
1932 size += 2 + 1;
1933 }
1934 if (OptimizationStep != 0D) {
1935 size += 1 + 8;
1936 }
1937 if (NumberOfSolutionsToCollect != 0) {
1938 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumberOfSolutionsToCollect);
1939 }
1940 if (SolutionLimit != 0L) {
1941 size += 1 + pb::CodedOutputStream.ComputeInt64Size(SolutionLimit);
1942 }
1943 if (timeLimit_ != null) {
1944 size += 1 + pb::CodedOutputStream.ComputeMessageSize(TimeLimit);
1945 }
1946 if (lnsTimeLimit_ != null) {
1947 size += 1 + pb::CodedOutputStream.ComputeMessageSize(LnsTimeLimit);
1948 }
1949 if (SecondaryLsTimeLimitRatio != 0D) {
1950 size += 2 + 8;
1951 }
1952 if (improvementLimitParameters_ != null) {
1953 size += 2 + pb::CodedOutputStream.ComputeMessageSize(ImprovementLimitParameters);
1954 }
1955 if (UseFullPropagation != false) {
1956 size += 1 + 1;
1957 }
1958 if (LogSearch != false) {
1959 size += 1 + 1;
1960 }
1961 if (LogCostScalingFactor != 0D) {
1962 size += 2 + 8;
1963 }
1964 if (LogCostOffset != 0D) {
1965 size += 2 + 8;
1966 }
1967 if (LogTag.Length != 0) {
1968 size += 2 + pb::CodedOutputStream.ComputeStringSize(LogTag);
1969 }
1970 if (UseIteratedLocalSearch != false) {
1971 size += 2 + 1;
1972 }
1973 if (iteratedLocalSearchParameters_ != null) {
1974 size += 2 + pb::CodedOutputStream.ComputeMessageSize(IteratedLocalSearchParameters);
1975 }
1976 if (_unknownFields != null) {
1977 size += _unknownFields.CalculateSize();
1978 }
1979 return size;
1980 }
1981
1982 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1983 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1984 public void MergeFrom(RoutingSearchParameters other) {
1985 if (other == null) {
1986 return;
1987 }
1988 if (other.FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1989 FirstSolutionStrategy = other.FirstSolutionStrategy;
1991 if (other.UseUnfilteredFirstSolutionStrategy != false) {
1992 UseUnfilteredFirstSolutionStrategy = other.UseUnfilteredFirstSolutionStrategy;
1993 }
1994 if (other.SavingsNeighborsRatio != 0D) {
1995 SavingsNeighborsRatio = other.SavingsNeighborsRatio;
1996 }
1997 if (other.SavingsMaxMemoryUsageBytes != 0D) {
1998 SavingsMaxMemoryUsageBytes = other.SavingsMaxMemoryUsageBytes;
1999 }
2000 if (other.SavingsAddReverseArcs != false) {
2001 SavingsAddReverseArcs = other.SavingsAddReverseArcs;
2002 }
2003 if (other.SavingsArcCoefficient != 0D) {
2004 SavingsArcCoefficient = other.SavingsArcCoefficient;
2005 }
2006 if (other.SavingsParallelRoutes != false) {
2007 SavingsParallelRoutes = other.SavingsParallelRoutes;
2008 }
2009 if (other.CheapestInsertionFarthestSeedsRatio != 0D) {
2010 CheapestInsertionFarthestSeedsRatio = other.CheapestInsertionFarthestSeedsRatio;
2011 }
2012 if (other.CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
2013 CheapestInsertionFirstSolutionNeighborsRatio = other.CheapestInsertionFirstSolutionNeighborsRatio;
2014 }
2015 if (other.CheapestInsertionFirstSolutionMinNeighbors != 0) {
2016 CheapestInsertionFirstSolutionMinNeighbors = other.CheapestInsertionFirstSolutionMinNeighbors;
2017 }
2018 if (other.CheapestInsertionLsOperatorNeighborsRatio != 0D) {
2019 CheapestInsertionLsOperatorNeighborsRatio = other.CheapestInsertionLsOperatorNeighborsRatio;
2020 }
2021 if (other.CheapestInsertionLsOperatorMinNeighbors != 0) {
2022 CheapestInsertionLsOperatorMinNeighbors = other.CheapestInsertionLsOperatorMinNeighbors;
2023 }
2024 if (other.CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
2025 CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization = other.CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization;
2026 }
2027 if (other.CheapestInsertionAddUnperformedEntries != false) {
2028 CheapestInsertionAddUnperformedEntries = other.CheapestInsertionAddUnperformedEntries;
2029 }
2030 if (other.LocalCheapestInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
2031 LocalCheapestInsertionPickupDeliveryStrategy = other.LocalCheapestInsertionPickupDeliveryStrategy;
2032 }
2033 if (other.LocalCheapestCostInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
2034 LocalCheapestCostInsertionPickupDeliveryStrategy = other.LocalCheapestCostInsertionPickupDeliveryStrategy;
2035 }
2036 if (other.ChristofidesUseMinimumMatching != false) {
2037 ChristofidesUseMinimumMatching = other.ChristofidesUseMinimumMatching;
2038 }
2039 if (other.FirstSolutionOptimizationPeriod != 0) {
2040 FirstSolutionOptimizationPeriod = other.FirstSolutionOptimizationPeriod;
2041 }
2042 if (other.localSearchOperators_ != null) {
2043 if (localSearchOperators_ == null) {
2044 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
2045 }
2046 LocalSearchOperators.MergeFrom(other.LocalSearchOperators);
2047 }
2048 if (other.LsOperatorNeighborsRatio != 0D) {
2049 LsOperatorNeighborsRatio = other.LsOperatorNeighborsRatio;
2050 }
2051 if (other.LsOperatorMinNeighbors != 0) {
2052 LsOperatorMinNeighbors = other.LsOperatorMinNeighbors;
2053 }
2054 if (other.UseMultiArmedBanditConcatenateOperators != false) {
2055 UseMultiArmedBanditConcatenateOperators = other.UseMultiArmedBanditConcatenateOperators;
2056 }
2057 if (other.MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
2058 MultiArmedBanditCompoundOperatorMemoryCoefficient = other.MultiArmedBanditCompoundOperatorMemoryCoefficient;
2059 }
2060 if (other.MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
2061 MultiArmedBanditCompoundOperatorExplorationCoefficient = other.MultiArmedBanditCompoundOperatorExplorationCoefficient;
2062 }
2063 if (other.RelocateExpensiveChainNumArcsToConsider != 0) {
2064 RelocateExpensiveChainNumArcsToConsider = other.RelocateExpensiveChainNumArcsToConsider;
2065 }
2066 if (other.HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
2067 HeuristicExpensiveChainLnsNumArcsToConsider = other.HeuristicExpensiveChainLnsNumArcsToConsider;
2068 }
2069 if (other.HeuristicCloseNodesLnsNumNodes != 0) {
2070 HeuristicCloseNodesLnsNumNodes = other.HeuristicCloseNodesLnsNumNodes;
2071 }
2072 if (other.LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
2073 LocalSearchMetaheuristic = other.LocalSearchMetaheuristic;
2074 }
2075 if (other.GuidedLocalSearchLambdaCoefficient != 0D) {
2076 GuidedLocalSearchLambdaCoefficient = other.GuidedLocalSearchLambdaCoefficient;
2077 }
2078 if (other.GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
2079 GuidedLocalSearchResetPenaltiesOnNewBestSolution = other.GuidedLocalSearchResetPenaltiesOnNewBestSolution;
2080 }
2081 if (other.UseDepthFirstSearch != false) {
2082 UseDepthFirstSearch = other.UseDepthFirstSearch;
2083 }
2084 if (other.UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2085 UseCp = other.UseCp;
2086 }
2087 if (other.UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2088 UseCpSat = other.UseCpSat;
2089 }
2090 if (other.UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2091 UseGeneralizedCpSat = other.UseGeneralizedCpSat;
2092 }
2093 if (other.satParameters_ != null) {
2094 if (satParameters_ == null) {
2095 SatParameters = new global::Google.OrTools.Sat.SatParameters();
2096 }
2097 SatParameters.MergeFrom(other.SatParameters);
2098 }
2099 if (other.ReportIntermediateCpSatSolutions != false) {
2100 ReportIntermediateCpSatSolutions = other.ReportIntermediateCpSatSolutions;
2101 }
2102 if (other.FallbackToCpSatSizeThreshold != 0) {
2103 FallbackToCpSatSizeThreshold = other.FallbackToCpSatSizeThreshold;
2104 }
2105 if (other.ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
2106 ContinuousSchedulingSolver = other.ContinuousSchedulingSolver;
2107 }
2108 if (other.MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
2109 MixedIntegerSchedulingSolver = other.MixedIntegerSchedulingSolver;
2110 }
2111 if (other.HasDisableSchedulingBewareThisMayDegradePerformance) {
2112 DisableSchedulingBewareThisMayDegradePerformance = other.DisableSchedulingBewareThisMayDegradePerformance;
2113 }
2114 if (other.OptimizationStep != 0D) {
2115 OptimizationStep = other.OptimizationStep;
2116 }
2117 if (other.NumberOfSolutionsToCollect != 0) {
2118 NumberOfSolutionsToCollect = other.NumberOfSolutionsToCollect;
2119 }
2120 if (other.SolutionLimit != 0L) {
2121 SolutionLimit = other.SolutionLimit;
2122 }
2123 if (other.timeLimit_ != null) {
2124 if (timeLimit_ == null) {
2125 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2126 }
2127 TimeLimit.MergeFrom(other.TimeLimit);
2128 }
2129 if (other.lnsTimeLimit_ != null) {
2130 if (lnsTimeLimit_ == null) {
2131 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2132 }
2133 LnsTimeLimit.MergeFrom(other.LnsTimeLimit);
2134 }
2135 if (other.SecondaryLsTimeLimitRatio != 0D) {
2136 SecondaryLsTimeLimitRatio = other.SecondaryLsTimeLimitRatio;
2137 }
2138 if (other.improvementLimitParameters_ != null) {
2139 if (improvementLimitParameters_ == null) {
2140 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
2141 }
2142 ImprovementLimitParameters.MergeFrom(other.ImprovementLimitParameters);
2143 }
2144 if (other.UseFullPropagation != false) {
2145 UseFullPropagation = other.UseFullPropagation;
2146 }
2147 if (other.LogSearch != false) {
2148 LogSearch = other.LogSearch;
2149 }
2150 if (other.LogCostScalingFactor != 0D) {
2151 LogCostScalingFactor = other.LogCostScalingFactor;
2152 }
2153 if (other.LogCostOffset != 0D) {
2154 LogCostOffset = other.LogCostOffset;
2155 }
2156 if (other.LogTag.Length != 0) {
2157 LogTag = other.LogTag;
2158 }
2159 if (other.UseIteratedLocalSearch != false) {
2160 UseIteratedLocalSearch = other.UseIteratedLocalSearch;
2161 }
2162 if (other.iteratedLocalSearchParameters_ != null) {
2163 if (iteratedLocalSearchParameters_ == null) {
2164 IteratedLocalSearchParameters = new global::OperationsResearch.IteratedLocalSearchParameters();
2165 }
2166 IteratedLocalSearchParameters.MergeFrom(other.IteratedLocalSearchParameters);
2167 }
2168 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2169 }
2170
2171 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2172 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2173 public void MergeFrom(pb::CodedInputStream input) {
2174 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2175 input.ReadRawMessage(this);
2176 #else
2177 uint tag;
2178 while ((tag = input.ReadTag()) != 0) {
2179 switch(tag) {
2180 default:
2181 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2182 break;
2183 case 8: {
2184 FirstSolutionStrategy = (global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value) input.ReadEnum();
2185 break;
2186 }
2187 case 16: {
2188 UseUnfilteredFirstSolutionStrategy = input.ReadBool();
2189 break;
2190 }
2191 case 26: {
2192 if (localSearchOperators_ == null) {
2193 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
2194 }
2195 input.ReadMessage(LocalSearchOperators);
2196 break;
2197 }
2198 case 32: {
2199 LocalSearchMetaheuristic = (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) input.ReadEnum();
2200 break;
2201 }
2202 case 41: {
2203 GuidedLocalSearchLambdaCoefficient = input.ReadDouble();
2204 break;
2205 }
2206 case 48: {
2207 UseDepthFirstSearch = input.ReadBool();
2208 break;
2209 }
2210 case 57: {
2211 OptimizationStep = input.ReadDouble();
2212 break;
2213 }
2214 case 64: {
2215 SolutionLimit = input.ReadInt64();
2216 break;
2217 }
2218 case 74: {
2219 if (timeLimit_ == null) {
2220 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2221 }
2222 input.ReadMessage(TimeLimit);
2223 break;
2224 }
2225 case 82: {
2226 if (lnsTimeLimit_ == null) {
2227 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2228 }
2229 input.ReadMessage(LnsTimeLimit);
2230 break;
2231 }
2232 case 88: {
2233 UseFullPropagation = input.ReadBool();
2234 break;
2235 }
2236 case 104: {
2237 LogSearch = input.ReadBool();
2238 break;
2239 }
2240 case 113: {
2241 SavingsNeighborsRatio = input.ReadDouble();
2242 break;
2243 }
2244 case 120: {
2245 SavingsAddReverseArcs = input.ReadBool();
2246 break;
2247 }
2248 case 129: {
2249 CheapestInsertionFarthestSeedsRatio = input.ReadDouble();
2250 break;
2251 }
2252 case 136: {
2253 NumberOfSolutionsToCollect = input.ReadInt32();
2254 break;
2255 }
2256 case 145: {
2257 SavingsArcCoefficient = input.ReadDouble();
2258 break;
2259 }
2260 case 152: {
2261 SavingsParallelRoutes = input.ReadBool();
2262 break;
2263 }
2264 case 160: {
2265 RelocateExpensiveChainNumArcsToConsider = input.ReadInt32();
2266 break;
2267 }
2268 case 169: {
2269 CheapestInsertionFirstSolutionNeighborsRatio = input.ReadDouble();
2270 break;
2271 }
2272 case 177: {
2273 LogCostScalingFactor = input.ReadDouble();
2274 break;
2275 }
2276 case 185: {
2277 SavingsMaxMemoryUsageBytes = input.ReadDouble();
2278 break;
2279 }
2280 case 216: {
2281 UseCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2282 break;
2283 }
2284 case 224: {
2285 UseCp = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2286 break;
2287 }
2288 case 233: {
2289 LogCostOffset = input.ReadDouble();
2290 break;
2291 }
2292 case 240: {
2293 ChristofidesUseMinimumMatching = input.ReadBool();
2294 break;
2295 }
2296 case 249: {
2297 CheapestInsertionLsOperatorNeighborsRatio = input.ReadDouble();
2298 break;
2299 }
2300 case 256: {
2301 HeuristicExpensiveChainLnsNumArcsToConsider = input.ReadInt32();
2302 break;
2303 }
2304 case 264: {
2305 ContinuousSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2306 break;
2307 }
2308 case 272: {
2309 MixedIntegerSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2310 break;
2311 }
2312 case 280: {
2313 HeuristicCloseNodesLnsNumNodes = input.ReadInt32();
2314 break;
2315 }
2316 case 290: {
2317 LogTag = input.ReadString();
2318 break;
2319 }
2320 case 298: {
2321 if (improvementLimitParameters_ == null) {
2322 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
2323 }
2324 input.ReadMessage(ImprovementLimitParameters);
2325 break;
2326 }
2327 case 320: {
2328 CheapestInsertionAddUnperformedEntries = input.ReadBool();
2329 break;
2330 }
2331 case 328: {
2332 UseMultiArmedBanditConcatenateOperators = input.ReadBool();
2333 break;
2334 }
2335 case 337: {
2336 MultiArmedBanditCompoundOperatorMemoryCoefficient = input.ReadDouble();
2337 break;
2338 }
2339 case 345: {
2340 MultiArmedBanditCompoundOperatorExplorationCoefficient = input.ReadDouble();
2341 break;
2342 }
2343 case 352: {
2344 CheapestInsertionFirstSolutionMinNeighbors = input.ReadInt32();
2345 break;
2346 }
2347 case 360: {
2348 CheapestInsertionLsOperatorMinNeighbors = input.ReadInt32();
2349 break;
2350 }
2351 case 368: {
2352 CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization = input.ReadBool();
2353 break;
2354 }
2355 case 376: {
2356 UseGeneralizedCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2357 break;
2358 }
2359 case 386: {
2360 if (satParameters_ == null) {
2361 SatParameters = new global::Google.OrTools.Sat.SatParameters();
2362 }
2363 input.ReadMessage(SatParameters);
2364 break;
2365 }
2366 case 392: {
2367 LocalCheapestInsertionPickupDeliveryStrategy = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy) input.ReadEnum();
2368 break;
2369 }
2370 case 400: {
2371 DisableSchedulingBewareThisMayDegradePerformance = input.ReadBool();
2372 break;
2373 }
2374 case 408: {
2375 GuidedLocalSearchResetPenaltiesOnNewBestSolution = input.ReadBool();
2376 break;
2377 }
2378 case 416: {
2379 FallbackToCpSatSizeThreshold = input.ReadInt32();
2380 break;
2381 }
2382 case 425: {
2383 LsOperatorNeighborsRatio = input.ReadDouble();
2384 break;
2385 }
2386 case 432: {
2387 LsOperatorMinNeighbors = input.ReadInt32();
2388 break;
2389 }
2390 case 440: {
2391 LocalCheapestCostInsertionPickupDeliveryStrategy = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy) input.ReadEnum();
2392 break;
2393 }
2394 case 448: {
2395 ReportIntermediateCpSatSolutions = input.ReadBool();
2396 break;
2397 }
2398 case 457: {
2399 SecondaryLsTimeLimitRatio = input.ReadDouble();
2400 break;
2401 }
2402 case 464: {
2403 UseIteratedLocalSearch = input.ReadBool();
2404 break;
2405 }
2406 case 472: {
2407 FirstSolutionOptimizationPeriod = input.ReadInt32();
2408 break;
2409 }
2410 case 482: {
2411 if (iteratedLocalSearchParameters_ == null) {
2412 IteratedLocalSearchParameters = new global::OperationsResearch.IteratedLocalSearchParameters();
2413 }
2414 input.ReadMessage(IteratedLocalSearchParameters);
2415 break;
2416 }
2417 }
2418 }
2419 #endif
2420 }
2421
2422 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2423 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2424 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2425 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
2426 uint tag;
2427 while ((tag = input.ReadTag()) != 0) {
2428 switch(tag) {
2429 default:
2430 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
2431 break;
2432 case 8: {
2433 FirstSolutionStrategy = (global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value) input.ReadEnum();
2434 break;
2435 }
2436 case 16: {
2437 UseUnfilteredFirstSolutionStrategy = input.ReadBool();
2438 break;
2439 }
2440 case 26: {
2441 if (localSearchOperators_ == null) {
2442 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
2443 }
2444 input.ReadMessage(LocalSearchOperators);
2445 break;
2446 }
2447 case 32: {
2448 LocalSearchMetaheuristic = (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) input.ReadEnum();
2449 break;
2450 }
2451 case 41: {
2452 GuidedLocalSearchLambdaCoefficient = input.ReadDouble();
2453 break;
2454 }
2455 case 48: {
2456 UseDepthFirstSearch = input.ReadBool();
2457 break;
2458 }
2459 case 57: {
2460 OptimizationStep = input.ReadDouble();
2461 break;
2462 }
2463 case 64: {
2464 SolutionLimit = input.ReadInt64();
2465 break;
2466 }
2467 case 74: {
2468 if (timeLimit_ == null) {
2469 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2470 }
2471 input.ReadMessage(TimeLimit);
2472 break;
2473 }
2474 case 82: {
2475 if (lnsTimeLimit_ == null) {
2476 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2477 }
2478 input.ReadMessage(LnsTimeLimit);
2479 break;
2480 }
2481 case 88: {
2482 UseFullPropagation = input.ReadBool();
2483 break;
2484 }
2485 case 104: {
2486 LogSearch = input.ReadBool();
2487 break;
2488 }
2489 case 113: {
2490 SavingsNeighborsRatio = input.ReadDouble();
2491 break;
2492 }
2493 case 120: {
2494 SavingsAddReverseArcs = input.ReadBool();
2495 break;
2496 }
2497 case 129: {
2498 CheapestInsertionFarthestSeedsRatio = input.ReadDouble();
2499 break;
2500 }
2501 case 136: {
2502 NumberOfSolutionsToCollect = input.ReadInt32();
2503 break;
2504 }
2505 case 145: {
2506 SavingsArcCoefficient = input.ReadDouble();
2507 break;
2508 }
2509 case 152: {
2510 SavingsParallelRoutes = input.ReadBool();
2511 break;
2512 }
2513 case 160: {
2514 RelocateExpensiveChainNumArcsToConsider = input.ReadInt32();
2515 break;
2516 }
2517 case 169: {
2518 CheapestInsertionFirstSolutionNeighborsRatio = input.ReadDouble();
2519 break;
2520 }
2521 case 177: {
2522 LogCostScalingFactor = input.ReadDouble();
2523 break;
2524 }
2525 case 185: {
2526 SavingsMaxMemoryUsageBytes = input.ReadDouble();
2527 break;
2528 }
2529 case 216: {
2530 UseCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2531 break;
2532 }
2533 case 224: {
2534 UseCp = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2535 break;
2536 }
2537 case 233: {
2538 LogCostOffset = input.ReadDouble();
2539 break;
2540 }
2541 case 240: {
2542 ChristofidesUseMinimumMatching = input.ReadBool();
2543 break;
2544 }
2545 case 249: {
2546 CheapestInsertionLsOperatorNeighborsRatio = input.ReadDouble();
2547 break;
2548 }
2549 case 256: {
2550 HeuristicExpensiveChainLnsNumArcsToConsider = input.ReadInt32();
2551 break;
2552 }
2553 case 264: {
2554 ContinuousSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2555 break;
2556 }
2557 case 272: {
2558 MixedIntegerSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2559 break;
2560 }
2561 case 280: {
2562 HeuristicCloseNodesLnsNumNodes = input.ReadInt32();
2563 break;
2564 }
2565 case 290: {
2566 LogTag = input.ReadString();
2567 break;
2568 }
2569 case 298: {
2570 if (improvementLimitParameters_ == null) {
2571 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
2572 }
2573 input.ReadMessage(ImprovementLimitParameters);
2574 break;
2575 }
2576 case 320: {
2577 CheapestInsertionAddUnperformedEntries = input.ReadBool();
2578 break;
2579 }
2580 case 328: {
2581 UseMultiArmedBanditConcatenateOperators = input.ReadBool();
2582 break;
2583 }
2584 case 337: {
2585 MultiArmedBanditCompoundOperatorMemoryCoefficient = input.ReadDouble();
2586 break;
2587 }
2588 case 345: {
2589 MultiArmedBanditCompoundOperatorExplorationCoefficient = input.ReadDouble();
2590 break;
2591 }
2592 case 352: {
2593 CheapestInsertionFirstSolutionMinNeighbors = input.ReadInt32();
2594 break;
2595 }
2596 case 360: {
2597 CheapestInsertionLsOperatorMinNeighbors = input.ReadInt32();
2598 break;
2599 }
2600 case 368: {
2601 CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization = input.ReadBool();
2602 break;
2603 }
2604 case 376: {
2605 UseGeneralizedCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2606 break;
2607 }
2608 case 386: {
2609 if (satParameters_ == null) {
2610 SatParameters = new global::Google.OrTools.Sat.SatParameters();
2611 }
2612 input.ReadMessage(SatParameters);
2613 break;
2614 }
2615 case 392: {
2616 LocalCheapestInsertionPickupDeliveryStrategy = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy) input.ReadEnum();
2617 break;
2618 }
2619 case 400: {
2620 DisableSchedulingBewareThisMayDegradePerformance = input.ReadBool();
2621 break;
2622 }
2623 case 408: {
2624 GuidedLocalSearchResetPenaltiesOnNewBestSolution = input.ReadBool();
2625 break;
2626 }
2627 case 416: {
2628 FallbackToCpSatSizeThreshold = input.ReadInt32();
2629 break;
2630 }
2631 case 425: {
2632 LsOperatorNeighborsRatio = input.ReadDouble();
2633 break;
2634 }
2635 case 432: {
2636 LsOperatorMinNeighbors = input.ReadInt32();
2637 break;
2638 }
2639 case 440: {
2640 LocalCheapestCostInsertionPickupDeliveryStrategy = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy) input.ReadEnum();
2641 break;
2642 }
2643 case 448: {
2644 ReportIntermediateCpSatSolutions = input.ReadBool();
2645 break;
2646 }
2647 case 457: {
2648 SecondaryLsTimeLimitRatio = input.ReadDouble();
2649 break;
2650 }
2651 case 464: {
2652 UseIteratedLocalSearch = input.ReadBool();
2653 break;
2654 }
2655 case 472: {
2656 FirstSolutionOptimizationPeriod = input.ReadInt32();
2657 break;
2658 }
2659 case 482: {
2660 if (iteratedLocalSearchParameters_ == null) {
2661 IteratedLocalSearchParameters = new global::OperationsResearch.IteratedLocalSearchParameters();
2662 }
2663 input.ReadMessage(IteratedLocalSearchParameters);
2664 break;
2665 }
2666 }
2667 }
2668 }
2669 #endif
2670
2671 #region Nested types
2673 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2674 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2675 public static partial class Types {
2685 [pbr::OriginalName("AUTOMATIC")] Automatic = 0,
2689 [pbr::OriginalName("BEST_PICKUP_THEN_BEST_DELIVERY")] BestPickupThenBestDelivery = 1,
2693 [pbr::OriginalName("BEST_PICKUP_DELIVERY_PAIR")] BestPickupDeliveryPair = 2,
2701 [pbr::OriginalName("BEST_PICKUP_DELIVERY_PAIR_MULTITOUR")] BestPickupDeliveryPairMultitour = 3,
2702 }
2703
2708 public enum SchedulingSolver {
2709 [pbr::OriginalName("SCHEDULING_UNSET")] SchedulingUnset = 0,
2710 [pbr::OriginalName("SCHEDULING_GLOP")] SchedulingGlop = 1,
2711 [pbr::OriginalName("SCHEDULING_CP_SAT")] SchedulingCpSat = 2,
2712 }
2713
2718 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
2719 public sealed partial class LocalSearchNeighborhoodOperators : pb::IMessage<LocalSearchNeighborhoodOperators>
2720 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2721 , pb::IBufferMessage
2722 #endif
2723 {
2724 private static readonly pb::MessageParser<LocalSearchNeighborhoodOperators> _parser = new pb::MessageParser<LocalSearchNeighborhoodOperators>(() => new LocalSearchNeighborhoodOperators());
2725 private pb::UnknownFieldSet _unknownFields;
2726 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2727 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2728 public static pb::MessageParser<LocalSearchNeighborhoodOperators> Parser { get { return _parser; } }
2729
2730 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2731 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2732 public static pbr::MessageDescriptor Descriptor {
2733 get { return global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Descriptor.NestedTypes[0]; }
2735
2736 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2737 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2738 pbr::MessageDescriptor pb::IMessage.Descriptor {
2739 get { return Descriptor; }
2740 }
2741
2742 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2743 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2745 OnConstruction();
2746 }
2747
2748 partial void OnConstruction();
2749
2750 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2751 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2753 useRelocate_ = other.useRelocate_;
2754 useRelocatePair_ = other.useRelocatePair_;
2755 useLightRelocatePair_ = other.useLightRelocatePair_;
2756 useRelocateNeighbors_ = other.useRelocateNeighbors_;
2757 useRelocateSubtrip_ = other.useRelocateSubtrip_;
2758 useExchange_ = other.useExchange_;
2759 useExchangePair_ = other.useExchangePair_;
2760 useExchangeSubtrip_ = other.useExchangeSubtrip_;
2761 useCross_ = other.useCross_;
2762 useCrossExchange_ = other.useCrossExchange_;
2763 useRelocateExpensiveChain_ = other.useRelocateExpensiveChain_;
2764 useTwoOpt_ = other.useTwoOpt_;
2765 useOrOpt_ = other.useOrOpt_;
2766 useLinKernighan_ = other.useLinKernighan_;
2767 useTspOpt_ = other.useTspOpt_;
2768 useMakeActive_ = other.useMakeActive_;
2769 useRelocateAndMakeActive_ = other.useRelocateAndMakeActive_;
2770 useMakeInactive_ = other.useMakeInactive_;
2771 useMakeChainInactive_ = other.useMakeChainInactive_;
2772 useSwapActive_ = other.useSwapActive_;
2773 useExtendedSwapActive_ = other.useExtendedSwapActive_;
2774 useShortestPathSwapActive_ = other.useShortestPathSwapActive_;
2775 useNodePairSwapActive_ = other.useNodePairSwapActive_;
2776 usePathLns_ = other.usePathLns_;
2777 useFullPathLns_ = other.useFullPathLns_;
2778 useTspLns_ = other.useTspLns_;
2779 useInactiveLns_ = other.useInactiveLns_;
2780 useGlobalCheapestInsertionPathLns_ = other.useGlobalCheapestInsertionPathLns_;
2781 useLocalCheapestInsertionPathLns_ = other.useLocalCheapestInsertionPathLns_;
2782 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
2783 useGlobalCheapestInsertionExpensiveChainLns_ = other.useGlobalCheapestInsertionExpensiveChainLns_;
2784 useLocalCheapestInsertionExpensiveChainLns_ = other.useLocalCheapestInsertionExpensiveChainLns_;
2785 useGlobalCheapestInsertionCloseNodesLns_ = other.useGlobalCheapestInsertionCloseNodesLns_;
2786 useLocalCheapestInsertionCloseNodesLns_ = other.useLocalCheapestInsertionCloseNodesLns_;
2787 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2788 }
2789
2790 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2791 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2792 public LocalSearchNeighborhoodOperators Clone() {
2793 return new LocalSearchNeighborhoodOperators(this);
2794 }
2795
2797 public const int UseRelocateFieldNumber = 1;
2798 private global::Google.OrTools.Util.OptionalBoolean useRelocate_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2810 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2811 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2812 public global::Google.OrTools.Util.OptionalBoolean UseRelocate {
2813 get { return useRelocate_; }
2814 set {
2815 useRelocate_ = value;
2816 }
2817 }
2820 public const int UseRelocatePairFieldNumber = 2;
2821 private global::Google.OrTools.Util.OptionalBoolean useRelocatePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2833 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2834 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2835 public global::Google.OrTools.Util.OptionalBoolean UseRelocatePair {
2836 get { return useRelocatePair_; }
2837 set {
2838 useRelocatePair_ = value;
2839 }
2840 }
2843 public const int UseLightRelocatePairFieldNumber = 24;
2844 private global::Google.OrTools.Util.OptionalBoolean useLightRelocatePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2854 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2855 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2856 public global::Google.OrTools.Util.OptionalBoolean UseLightRelocatePair {
2857 get { return useLightRelocatePair_; }
2858 set {
2859 useLightRelocatePair_ = value;
2860 }
2861 }
2864 public const int UseRelocateNeighborsFieldNumber = 3;
2865 private global::Google.OrTools.Util.OptionalBoolean useRelocateNeighbors_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2890 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2891 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2892 public global::Google.OrTools.Util.OptionalBoolean UseRelocateNeighbors {
2893 get { return useRelocateNeighbors_; }
2894 set {
2895 useRelocateNeighbors_ = value;
2896 }
2897 }
2900 public const int UseRelocateSubtripFieldNumber = 25;
2901 private global::Google.OrTools.Util.OptionalBoolean useRelocateSubtrip_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2918 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2919 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2920 public global::Google.OrTools.Util.OptionalBoolean UseRelocateSubtrip {
2921 get { return useRelocateSubtrip_; }
2922 set {
2923 useRelocateSubtrip_ = value;
2924 }
2925 }
2926
2928 public const int UseExchangeFieldNumber = 4;
2929 private global::Google.OrTools.Util.OptionalBoolean useExchange_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2939 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2940 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2941 public global::Google.OrTools.Util.OptionalBoolean UseExchange {
2942 get { return useExchange_; }
2943 set {
2944 useExchange_ = value;
2945 }
2946 }
2947
2949 public const int UseExchangePairFieldNumber = 22;
2950 private global::Google.OrTools.Util.OptionalBoolean useExchangePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2960 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2961 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2962 public global::Google.OrTools.Util.OptionalBoolean UseExchangePair {
2963 get { return useExchangePair_; }
2964 set {
2965 useExchangePair_ = value;
2966 }
2967 }
2968
2970 public const int UseExchangeSubtripFieldNumber = 26;
2971 private global::Google.OrTools.Util.OptionalBoolean useExchangeSubtrip_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2976 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2977 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2978 public global::Google.OrTools.Util.OptionalBoolean UseExchangeSubtrip {
2979 get { return useExchangeSubtrip_; }
2980 set {
2981 useExchangeSubtrip_ = value;
2982 }
2983 }
2984
2986 public const int UseCrossFieldNumber = 5;
2987 private global::Google.OrTools.Util.OptionalBoolean useCross_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2999 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3000 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3001 public global::Google.OrTools.Util.OptionalBoolean UseCross {
3002 get { return useCross_; }
3003 set {
3004 useCross_ = value;
3005 }
3006 }
3007
3009 public const int UseCrossExchangeFieldNumber = 6;
3010 private global::Google.OrTools.Util.OptionalBoolean useCrossExchange_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3014 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3015 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3016 public global::Google.OrTools.Util.OptionalBoolean UseCrossExchange {
3017 get { return useCrossExchange_; }
3018 set {
3019 useCrossExchange_ = value;
3020 }
3021 }
3022
3024 public const int UseRelocateExpensiveChainFieldNumber = 23;
3025 private global::Google.OrTools.Util.OptionalBoolean useRelocateExpensiveChain_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3038 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3039 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3040 public global::Google.OrTools.Util.OptionalBoolean UseRelocateExpensiveChain {
3041 get { return useRelocateExpensiveChain_; }
3042 set {
3043 useRelocateExpensiveChain_ = value;
3044 }
3045 }
3046
3048 public const int UseTwoOptFieldNumber = 7;
3049 private global::Google.OrTools.Util.OptionalBoolean useTwoOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3062 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3063 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3064 public global::Google.OrTools.Util.OptionalBoolean UseTwoOpt {
3065 get { return useTwoOpt_; }
3066 set {
3067 useTwoOpt_ = value;
3068 }
3069 }
3070
3072 public const int UseOrOptFieldNumber = 8;
3073 private global::Google.OrTools.Util.OptionalBoolean useOrOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3087 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3088 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3089 public global::Google.OrTools.Util.OptionalBoolean UseOrOpt {
3090 get { return useOrOpt_; }
3091 set {
3092 useOrOpt_ = value;
3093 }
3094 }
3095
3097 public const int UseLinKernighanFieldNumber = 9;
3098 private global::Google.OrTools.Util.OptionalBoolean useLinKernighan_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3105 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3106 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3107 public global::Google.OrTools.Util.OptionalBoolean UseLinKernighan {
3108 get { return useLinKernighan_; }
3109 set {
3110 useLinKernighan_ = value;
3111 }
3112 }
3113
3115 public const int UseTspOptFieldNumber = 10;
3116 private global::Google.OrTools.Util.OptionalBoolean useTspOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3125 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3126 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3127 public global::Google.OrTools.Util.OptionalBoolean UseTspOpt {
3128 get { return useTspOpt_; }
3129 set {
3130 useTspOpt_ = value;
3131 }
3132 }
3133
3135 public const int UseMakeActiveFieldNumber = 11;
3136 private global::Google.OrTools.Util.OptionalBoolean useMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3146 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3147 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3148 public global::Google.OrTools.Util.OptionalBoolean UseMakeActive {
3149 get { return useMakeActive_; }
3150 set {
3151 useMakeActive_ = value;
3152 }
3153 }
3154
3156 public const int UseRelocateAndMakeActiveFieldNumber = 21;
3157 private global::Google.OrTools.Util.OptionalBoolean useRelocateAndMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3170 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3171 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3172 public global::Google.OrTools.Util.OptionalBoolean UseRelocateAndMakeActive {
3173 get { return useRelocateAndMakeActive_; }
3174 set {
3175 useRelocateAndMakeActive_ = value;
3176 }
3177 }
3178
3180 public const int UseMakeInactiveFieldNumber = 12;
3181 private global::Google.OrTools.Util.OptionalBoolean useMakeInactive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3189 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3190 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3191 public global::Google.OrTools.Util.OptionalBoolean UseMakeInactive {
3192 get { return useMakeInactive_; }
3193 set {
3194 useMakeInactive_ = value;
3195 }
3196 }
3197
3199 public const int UseMakeChainInactiveFieldNumber = 13;
3200 private global::Google.OrTools.Util.OptionalBoolean useMakeChainInactive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3209 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3210 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3211 public global::Google.OrTools.Util.OptionalBoolean UseMakeChainInactive {
3212 get { return useMakeChainInactive_; }
3213 set {
3214 useMakeChainInactive_ = value;
3215 }
3216 }
3217
3219 public const int UseSwapActiveFieldNumber = 14;
3220 private global::Google.OrTools.Util.OptionalBoolean useSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3228 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3229 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3230 public global::Google.OrTools.Util.OptionalBoolean UseSwapActive {
3231 get { return useSwapActive_; }
3232 set {
3233 useSwapActive_ = value;
3234 }
3235 }
3236
3238 public const int UseExtendedSwapActiveFieldNumber = 15;
3239 private global::Google.OrTools.Util.OptionalBoolean useExtendedSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3252 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3253 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3254 public global::Google.OrTools.Util.OptionalBoolean UseExtendedSwapActive {
3255 get { return useExtendedSwapActive_; }
3256 set {
3257 useExtendedSwapActive_ = value;
3258 }
3259 }
3260
3262 public const int UseShortestPathSwapActiveFieldNumber = 34;
3263 private global::Google.OrTools.Util.OptionalBoolean useShortestPathSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3272 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3273 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3274 public global::Google.OrTools.Util.OptionalBoolean UseShortestPathSwapActive {
3275 get { return useShortestPathSwapActive_; }
3276 set {
3277 useShortestPathSwapActive_ = value;
3278 }
3279 }
3280
3282 public const int UseNodePairSwapActiveFieldNumber = 20;
3283 private global::Google.OrTools.Util.OptionalBoolean useNodePairSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3297 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3298 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3299 public global::Google.OrTools.Util.OptionalBoolean UseNodePairSwapActive {
3300 get { return useNodePairSwapActive_; }
3301 set {
3302 useNodePairSwapActive_ = value;
3303 }
3304 }
3305
3307 public const int UsePathLnsFieldNumber = 16;
3308 private global::Google.OrTools.Util.OptionalBoolean usePathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3319 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3320 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3321 public global::Google.OrTools.Util.OptionalBoolean UsePathLns {
3322 get { return usePathLns_; }
3323 set {
3324 usePathLns_ = value;
3325 }
3326 }
3327
3329 public const int UseFullPathLnsFieldNumber = 17;
3330 private global::Google.OrTools.Util.OptionalBoolean useFullPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3334 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3335 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3336 public global::Google.OrTools.Util.OptionalBoolean UseFullPathLns {
3337 get { return useFullPathLns_; }
3338 set {
3339 useFullPathLns_ = value;
3340 }
3341 }
3342
3344 public const int UseTspLnsFieldNumber = 18;
3345 private global::Google.OrTools.Util.OptionalBoolean useTspLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3354 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3355 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3356 public global::Google.OrTools.Util.OptionalBoolean UseTspLns {
3357 get { return useTspLns_; }
3358 set {
3359 useTspLns_ = value;
3360 }
3361 }
3362
3364 public const int UseInactiveLnsFieldNumber = 19;
3365 private global::Google.OrTools.Util.OptionalBoolean useInactiveLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3371 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3372 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3373 public global::Google.OrTools.Util.OptionalBoolean UseInactiveLns {
3374 get { return useInactiveLns_; }
3375 set {
3376 useInactiveLns_ = value;
3377 }
3378 }
3379
3381 public const int UseGlobalCheapestInsertionPathLnsFieldNumber = 27;
3382 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3388 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3389 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3390 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionPathLns {
3391 get { return useGlobalCheapestInsertionPathLns_; }
3392 set {
3393 useGlobalCheapestInsertionPathLns_ = value;
3394 }
3395 }
3396
3398 public const int UseLocalCheapestInsertionPathLnsFieldNumber = 28;
3399 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3403 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3404 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3405 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionPathLns {
3406 get { return useLocalCheapestInsertionPathLns_; }
3407 set {
3408 useLocalCheapestInsertionPathLns_ = value;
3409 }
3410 }
3411
3413 public const int UseRelocatePathGlobalCheapestInsertionInsertUnperformedFieldNumber = 33;
3414 private global::Google.OrTools.Util.OptionalBoolean useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3420 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3421 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3422 public global::Google.OrTools.Util.OptionalBoolean UseRelocatePathGlobalCheapestInsertionInsertUnperformed {
3423 get { return useRelocatePathGlobalCheapestInsertionInsertUnperformed_; }
3424 set {
3425 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value;
3426 }
3427 }
3428
3430 public const int UseGlobalCheapestInsertionExpensiveChainLnsFieldNumber = 29;
3431 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionExpensiveChainLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3438 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3439 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3440 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionExpensiveChainLns {
3441 get { return useGlobalCheapestInsertionExpensiveChainLns_; }
3442 set {
3443 useGlobalCheapestInsertionExpensiveChainLns_ = value;
3444 }
3445 }
3446
3448 public const int UseLocalCheapestInsertionExpensiveChainLnsFieldNumber = 30;
3449 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionExpensiveChainLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3454 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3455 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3456 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionExpensiveChainLns {
3457 get { return useLocalCheapestInsertionExpensiveChainLns_; }
3458 set {
3459 useLocalCheapestInsertionExpensiveChainLns_ = value;
3460 }
3461 }
3462
3464 public const int UseGlobalCheapestInsertionCloseNodesLnsFieldNumber = 31;
3465 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionCloseNodesLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3472 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3473 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3474 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionCloseNodesLns {
3475 get { return useGlobalCheapestInsertionCloseNodesLns_; }
3476 set {
3477 useGlobalCheapestInsertionCloseNodesLns_ = value;
3478 }
3479 }
3480
3482 public const int UseLocalCheapestInsertionCloseNodesLnsFieldNumber = 32;
3483 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionCloseNodesLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3488 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3489 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3490 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionCloseNodesLns {
3491 get { return useLocalCheapestInsertionCloseNodesLns_; }
3492 set {
3493 useLocalCheapestInsertionCloseNodesLns_ = value;
3494 }
3495 }
3496
3497 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3498 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3499 public override bool Equals(object other) {
3500 return Equals(other as LocalSearchNeighborhoodOperators);
3501 }
3502
3503 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3504 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3505 public bool Equals(LocalSearchNeighborhoodOperators other) {
3506 if (ReferenceEquals(other, null)) {
3507 return false;
3508 }
3509 if (ReferenceEquals(other, this)) {
3510 return true;
3511 }
3512 if (UseRelocate != other.UseRelocate) return false;
3513 if (UseRelocatePair != other.UseRelocatePair) return false;
3514 if (UseLightRelocatePair != other.UseLightRelocatePair) return false;
3515 if (UseRelocateNeighbors != other.UseRelocateNeighbors) return false;
3516 if (UseRelocateSubtrip != other.UseRelocateSubtrip) return false;
3517 if (UseExchange != other.UseExchange) return false;
3518 if (UseExchangePair != other.UseExchangePair) return false;
3519 if (UseExchangeSubtrip != other.UseExchangeSubtrip) return false;
3520 if (UseCross != other.UseCross) return false;
3521 if (UseCrossExchange != other.UseCrossExchange) return false;
3522 if (UseRelocateExpensiveChain != other.UseRelocateExpensiveChain) return false;
3523 if (UseTwoOpt != other.UseTwoOpt) return false;
3524 if (UseOrOpt != other.UseOrOpt) return false;
3525 if (UseLinKernighan != other.UseLinKernighan) return false;
3526 if (UseTspOpt != other.UseTspOpt) return false;
3527 if (UseMakeActive != other.UseMakeActive) return false;
3528 if (UseRelocateAndMakeActive != other.UseRelocateAndMakeActive) return false;
3529 if (UseMakeInactive != other.UseMakeInactive) return false;
3530 if (UseMakeChainInactive != other.UseMakeChainInactive) return false;
3531 if (UseSwapActive != other.UseSwapActive) return false;
3532 if (UseExtendedSwapActive != other.UseExtendedSwapActive) return false;
3533 if (UseShortestPathSwapActive != other.UseShortestPathSwapActive) return false;
3534 if (UseNodePairSwapActive != other.UseNodePairSwapActive) return false;
3535 if (UsePathLns != other.UsePathLns) return false;
3536 if (UseFullPathLns != other.UseFullPathLns) return false;
3537 if (UseTspLns != other.UseTspLns) return false;
3538 if (UseInactiveLns != other.UseInactiveLns) return false;
3539 if (UseGlobalCheapestInsertionPathLns != other.UseGlobalCheapestInsertionPathLns) return false;
3540 if (UseLocalCheapestInsertionPathLns != other.UseLocalCheapestInsertionPathLns) return false;
3541 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != other.UseRelocatePathGlobalCheapestInsertionInsertUnperformed) return false;
3542 if (UseGlobalCheapestInsertionExpensiveChainLns != other.UseGlobalCheapestInsertionExpensiveChainLns) return false;
3543 if (UseLocalCheapestInsertionExpensiveChainLns != other.UseLocalCheapestInsertionExpensiveChainLns) return false;
3544 if (UseGlobalCheapestInsertionCloseNodesLns != other.UseGlobalCheapestInsertionCloseNodesLns) return false;
3545 if (UseLocalCheapestInsertionCloseNodesLns != other.UseLocalCheapestInsertionCloseNodesLns) return false;
3546 return Equals(_unknownFields, other._unknownFields);
3547 }
3548
3549 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3550 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3551 public override int GetHashCode() {
3552 int hash = 1;
3553 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocate.GetHashCode();
3554 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocatePair.GetHashCode();
3555 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLightRelocatePair.GetHashCode();
3556 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateNeighbors.GetHashCode();
3557 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateSubtrip.GetHashCode();
3558 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchange.GetHashCode();
3559 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangePair.GetHashCode();
3560 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangeSubtrip.GetHashCode();
3561 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCross.GetHashCode();
3562 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCrossExchange.GetHashCode();
3563 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateExpensiveChain.GetHashCode();
3564 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTwoOpt.GetHashCode();
3565 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseOrOpt.GetHashCode();
3566 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLinKernighan.GetHashCode();
3567 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTspOpt.GetHashCode();
3568 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeActive.GetHashCode();
3569 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateAndMakeActive.GetHashCode();
3570 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeInactive.GetHashCode();
3571 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeChainInactive.GetHashCode();
3572 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseSwapActive.GetHashCode();
3573 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExtendedSwapActive.GetHashCode();
3574 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseShortestPathSwapActive.GetHashCode();
3575 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseNodePairSwapActive.GetHashCode();
3576 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UsePathLns.GetHashCode();
3577 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseFullPathLns.GetHashCode();
3578 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTspLns.GetHashCode();
3579 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseInactiveLns.GetHashCode();
3580 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionPathLns.GetHashCode();
3581 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionPathLns.GetHashCode();
3582 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocatePathGlobalCheapestInsertionInsertUnperformed.GetHashCode();
3583 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionExpensiveChainLns.GetHashCode();
3584 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionExpensiveChainLns.GetHashCode();
3585 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionCloseNodesLns.GetHashCode();
3586 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionCloseNodesLns.GetHashCode();
3587 if (_unknownFields != null) {
3588 hash ^= _unknownFields.GetHashCode();
3589 }
3590 return hash;
3591 }
3592
3593 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3594 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3595 public override string ToString() {
3596 return pb::JsonFormatter.ToDiagnosticString(this);
3597 }
3598
3599 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3600 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3601 public void WriteTo(pb::CodedOutputStream output) {
3602 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3603 output.WriteRawMessage(this);
3604 #else
3605 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3606 output.WriteRawTag(8);
3607 output.WriteEnum((int) UseRelocate);
3608 }
3609 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3610 output.WriteRawTag(16);
3611 output.WriteEnum((int) UseRelocatePair);
3612 }
3613 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3614 output.WriteRawTag(24);
3615 output.WriteEnum((int) UseRelocateNeighbors);
3616 }
3617 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3618 output.WriteRawTag(32);
3619 output.WriteEnum((int) UseExchange);
3620 }
3621 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3622 output.WriteRawTag(40);
3623 output.WriteEnum((int) UseCross);
3624 }
3625 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3626 output.WriteRawTag(48);
3627 output.WriteEnum((int) UseCrossExchange);
3628 }
3629 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3630 output.WriteRawTag(56);
3631 output.WriteEnum((int) UseTwoOpt);
3632 }
3633 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3634 output.WriteRawTag(64);
3635 output.WriteEnum((int) UseOrOpt);
3636 }
3637 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3638 output.WriteRawTag(72);
3639 output.WriteEnum((int) UseLinKernighan);
3640 }
3641 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3642 output.WriteRawTag(80);
3643 output.WriteEnum((int) UseTspOpt);
3644 }
3645 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3646 output.WriteRawTag(88);
3647 output.WriteEnum((int) UseMakeActive);
3648 }
3649 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3650 output.WriteRawTag(96);
3651 output.WriteEnum((int) UseMakeInactive);
3652 }
3653 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3654 output.WriteRawTag(104);
3655 output.WriteEnum((int) UseMakeChainInactive);
3656 }
3657 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3658 output.WriteRawTag(112);
3659 output.WriteEnum((int) UseSwapActive);
3660 }
3661 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3662 output.WriteRawTag(120);
3663 output.WriteEnum((int) UseExtendedSwapActive);
3664 }
3665 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3666 output.WriteRawTag(128, 1);
3667 output.WriteEnum((int) UsePathLns);
3668 }
3669 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3670 output.WriteRawTag(136, 1);
3671 output.WriteEnum((int) UseFullPathLns);
3672 }
3673 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3674 output.WriteRawTag(144, 1);
3675 output.WriteEnum((int) UseTspLns);
3676 }
3677 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3678 output.WriteRawTag(152, 1);
3679 output.WriteEnum((int) UseInactiveLns);
3680 }
3681 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3682 output.WriteRawTag(160, 1);
3683 output.WriteEnum((int) UseNodePairSwapActive);
3684 }
3685 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3686 output.WriteRawTag(168, 1);
3687 output.WriteEnum((int) UseRelocateAndMakeActive);
3688 }
3689 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3690 output.WriteRawTag(176, 1);
3691 output.WriteEnum((int) UseExchangePair);
3692 }
3693 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3694 output.WriteRawTag(184, 1);
3695 output.WriteEnum((int) UseRelocateExpensiveChain);
3696 }
3697 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3698 output.WriteRawTag(192, 1);
3699 output.WriteEnum((int) UseLightRelocatePair);
3700 }
3701 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3702 output.WriteRawTag(200, 1);
3703 output.WriteEnum((int) UseRelocateSubtrip);
3704 }
3705 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3706 output.WriteRawTag(208, 1);
3707 output.WriteEnum((int) UseExchangeSubtrip);
3708 }
3709 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3710 output.WriteRawTag(216, 1);
3711 output.WriteEnum((int) UseGlobalCheapestInsertionPathLns);
3712 }
3713 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3714 output.WriteRawTag(224, 1);
3715 output.WriteEnum((int) UseLocalCheapestInsertionPathLns);
3716 }
3717 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3718 output.WriteRawTag(232, 1);
3719 output.WriteEnum((int) UseGlobalCheapestInsertionExpensiveChainLns);
3720 }
3721 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3722 output.WriteRawTag(240, 1);
3723 output.WriteEnum((int) UseLocalCheapestInsertionExpensiveChainLns);
3724 }
3725 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3726 output.WriteRawTag(248, 1);
3727 output.WriteEnum((int) UseGlobalCheapestInsertionCloseNodesLns);
3728 }
3729 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3730 output.WriteRawTag(128, 2);
3731 output.WriteEnum((int) UseLocalCheapestInsertionCloseNodesLns);
3732 }
3733 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3734 output.WriteRawTag(136, 2);
3735 output.WriteEnum((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
3736 }
3737 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3738 output.WriteRawTag(144, 2);
3739 output.WriteEnum((int) UseShortestPathSwapActive);
3740 }
3741 if (_unknownFields != null) {
3742 _unknownFields.WriteTo(output);
3743 }
3744 #endif
3745 }
3746
3747 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3748 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3749 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3750 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
3751 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3752 output.WriteRawTag(8);
3753 output.WriteEnum((int) UseRelocate);
3754 }
3755 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3756 output.WriteRawTag(16);
3757 output.WriteEnum((int) UseRelocatePair);
3758 }
3759 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3760 output.WriteRawTag(24);
3761 output.WriteEnum((int) UseRelocateNeighbors);
3762 }
3763 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3764 output.WriteRawTag(32);
3765 output.WriteEnum((int) UseExchange);
3766 }
3767 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3768 output.WriteRawTag(40);
3769 output.WriteEnum((int) UseCross);
3770 }
3771 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3772 output.WriteRawTag(48);
3773 output.WriteEnum((int) UseCrossExchange);
3774 }
3775 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3776 output.WriteRawTag(56);
3777 output.WriteEnum((int) UseTwoOpt);
3778 }
3779 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3780 output.WriteRawTag(64);
3781 output.WriteEnum((int) UseOrOpt);
3782 }
3783 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3784 output.WriteRawTag(72);
3785 output.WriteEnum((int) UseLinKernighan);
3786 }
3787 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3788 output.WriteRawTag(80);
3789 output.WriteEnum((int) UseTspOpt);
3790 }
3791 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3792 output.WriteRawTag(88);
3793 output.WriteEnum((int) UseMakeActive);
3794 }
3795 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3796 output.WriteRawTag(96);
3797 output.WriteEnum((int) UseMakeInactive);
3798 }
3799 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3800 output.WriteRawTag(104);
3801 output.WriteEnum((int) UseMakeChainInactive);
3802 }
3803 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3804 output.WriteRawTag(112);
3805 output.WriteEnum((int) UseSwapActive);
3806 }
3807 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3808 output.WriteRawTag(120);
3809 output.WriteEnum((int) UseExtendedSwapActive);
3810 }
3811 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3812 output.WriteRawTag(128, 1);
3813 output.WriteEnum((int) UsePathLns);
3814 }
3815 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3816 output.WriteRawTag(136, 1);
3817 output.WriteEnum((int) UseFullPathLns);
3818 }
3819 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3820 output.WriteRawTag(144, 1);
3821 output.WriteEnum((int) UseTspLns);
3822 }
3823 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3824 output.WriteRawTag(152, 1);
3825 output.WriteEnum((int) UseInactiveLns);
3826 }
3827 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3828 output.WriteRawTag(160, 1);
3829 output.WriteEnum((int) UseNodePairSwapActive);
3830 }
3831 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3832 output.WriteRawTag(168, 1);
3833 output.WriteEnum((int) UseRelocateAndMakeActive);
3834 }
3835 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3836 output.WriteRawTag(176, 1);
3837 output.WriteEnum((int) UseExchangePair);
3838 }
3839 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3840 output.WriteRawTag(184, 1);
3841 output.WriteEnum((int) UseRelocateExpensiveChain);
3842 }
3843 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3844 output.WriteRawTag(192, 1);
3845 output.WriteEnum((int) UseLightRelocatePair);
3846 }
3847 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3848 output.WriteRawTag(200, 1);
3849 output.WriteEnum((int) UseRelocateSubtrip);
3850 }
3851 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3852 output.WriteRawTag(208, 1);
3853 output.WriteEnum((int) UseExchangeSubtrip);
3854 }
3855 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3856 output.WriteRawTag(216, 1);
3857 output.WriteEnum((int) UseGlobalCheapestInsertionPathLns);
3858 }
3859 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3860 output.WriteRawTag(224, 1);
3861 output.WriteEnum((int) UseLocalCheapestInsertionPathLns);
3862 }
3863 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3864 output.WriteRawTag(232, 1);
3865 output.WriteEnum((int) UseGlobalCheapestInsertionExpensiveChainLns);
3866 }
3867 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3868 output.WriteRawTag(240, 1);
3869 output.WriteEnum((int) UseLocalCheapestInsertionExpensiveChainLns);
3870 }
3871 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3872 output.WriteRawTag(248, 1);
3873 output.WriteEnum((int) UseGlobalCheapestInsertionCloseNodesLns);
3874 }
3875 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3876 output.WriteRawTag(128, 2);
3877 output.WriteEnum((int) UseLocalCheapestInsertionCloseNodesLns);
3878 }
3879 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3880 output.WriteRawTag(136, 2);
3881 output.WriteEnum((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
3882 }
3883 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3884 output.WriteRawTag(144, 2);
3885 output.WriteEnum((int) UseShortestPathSwapActive);
3886 }
3887 if (_unknownFields != null) {
3888 _unknownFields.WriteTo(ref output);
3889 }
3890 }
3891 #endif
3892
3893 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3894 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3895 public int CalculateSize() {
3896 int size = 0;
3897 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3898 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocate);
3899 }
3900 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3901 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocatePair);
3902 }
3903 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3904 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLightRelocatePair);
3905 }
3906 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3907 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateNeighbors);
3908 }
3909 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3910 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateSubtrip);
3911 }
3912 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3913 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchange);
3914 }
3915 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3916 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangePair);
3917 }
3918 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3919 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangeSubtrip);
3920 }
3921 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3922 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseCross);
3923 }
3924 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3925 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseCrossExchange);
3926 }
3927 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3928 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateExpensiveChain);
3929 }
3930 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3931 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseTwoOpt);
3932 }
3933 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3934 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseOrOpt);
3935 }
3936 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3937 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseLinKernighan);
3938 }
3939 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3940 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseTspOpt);
3941 }
3942 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3943 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeActive);
3944 }
3945 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3946 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateAndMakeActive);
3947 }
3948 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3949 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeInactive);
3950 }
3951 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3952 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeChainInactive);
3953 }
3954 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3955 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseSwapActive);
3956 }
3957 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3958 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseExtendedSwapActive);
3959 }
3960 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3961 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseShortestPathSwapActive);
3962 }
3963 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3964 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseNodePairSwapActive);
3965 }
3966 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3967 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UsePathLns);
3968 }
3969 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3970 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseFullPathLns);
3971 }
3972 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3973 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseTspLns);
3974 }
3975 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3976 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseInactiveLns);
3977 }
3978 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3979 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionPathLns);
3980 }
3981 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3982 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionPathLns);
3983 }
3984 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3985 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
3986 }
3987 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3988 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionExpensiveChainLns);
3989 }
3990 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3991 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionExpensiveChainLns);
3992 }
3993 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3994 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionCloseNodesLns);
3995 }
3996 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3997 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionCloseNodesLns);
3998 }
3999 if (_unknownFields != null) {
4000 size += _unknownFields.CalculateSize();
4001 }
4002 return size;
4003 }
4004
4005 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4006 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4007 public void MergeFrom(LocalSearchNeighborhoodOperators other) {
4008 if (other == null) {
4009 return;
4010 }
4011 if (other.UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4012 UseRelocate = other.UseRelocate;
4013 }
4014 if (other.UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4015 UseRelocatePair = other.UseRelocatePair;
4016 }
4017 if (other.UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4018 UseLightRelocatePair = other.UseLightRelocatePair;
4019 }
4020 if (other.UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4021 UseRelocateNeighbors = other.UseRelocateNeighbors;
4022 }
4023 if (other.UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4024 UseRelocateSubtrip = other.UseRelocateSubtrip;
4025 }
4026 if (other.UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4027 UseExchange = other.UseExchange;
4028 }
4029 if (other.UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4030 UseExchangePair = other.UseExchangePair;
4031 }
4032 if (other.UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4033 UseExchangeSubtrip = other.UseExchangeSubtrip;
4034 }
4035 if (other.UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4036 UseCross = other.UseCross;
4037 }
4038 if (other.UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4039 UseCrossExchange = other.UseCrossExchange;
4040 }
4041 if (other.UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4042 UseRelocateExpensiveChain = other.UseRelocateExpensiveChain;
4043 }
4044 if (other.UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4045 UseTwoOpt = other.UseTwoOpt;
4046 }
4047 if (other.UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4048 UseOrOpt = other.UseOrOpt;
4049 }
4050 if (other.UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4051 UseLinKernighan = other.UseLinKernighan;
4052 }
4053 if (other.UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4054 UseTspOpt = other.UseTspOpt;
4055 }
4056 if (other.UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4057 UseMakeActive = other.UseMakeActive;
4058 }
4059 if (other.UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4060 UseRelocateAndMakeActive = other.UseRelocateAndMakeActive;
4061 }
4062 if (other.UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4063 UseMakeInactive = other.UseMakeInactive;
4064 }
4065 if (other.UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4066 UseMakeChainInactive = other.UseMakeChainInactive;
4067 }
4068 if (other.UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4069 UseSwapActive = other.UseSwapActive;
4070 }
4071 if (other.UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4072 UseExtendedSwapActive = other.UseExtendedSwapActive;
4073 }
4074 if (other.UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4075 UseShortestPathSwapActive = other.UseShortestPathSwapActive;
4076 }
4077 if (other.UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4078 UseNodePairSwapActive = other.UseNodePairSwapActive;
4079 }
4080 if (other.UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4081 UsePathLns = other.UsePathLns;
4082 }
4083 if (other.UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4084 UseFullPathLns = other.UseFullPathLns;
4085 }
4086 if (other.UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4087 UseTspLns = other.UseTspLns;
4088 }
4089 if (other.UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4090 UseInactiveLns = other.UseInactiveLns;
4091 }
4092 if (other.UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4093 UseGlobalCheapestInsertionPathLns = other.UseGlobalCheapestInsertionPathLns;
4094 }
4095 if (other.UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4096 UseLocalCheapestInsertionPathLns = other.UseLocalCheapestInsertionPathLns;
4097 }
4098 if (other.UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4099 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = other.UseRelocatePathGlobalCheapestInsertionInsertUnperformed;
4100 }
4101 if (other.UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4102 UseGlobalCheapestInsertionExpensiveChainLns = other.UseGlobalCheapestInsertionExpensiveChainLns;
4103 }
4104 if (other.UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4105 UseLocalCheapestInsertionExpensiveChainLns = other.UseLocalCheapestInsertionExpensiveChainLns;
4106 }
4107 if (other.UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4108 UseGlobalCheapestInsertionCloseNodesLns = other.UseGlobalCheapestInsertionCloseNodesLns;
4109 }
4110 if (other.UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4111 UseLocalCheapestInsertionCloseNodesLns = other.UseLocalCheapestInsertionCloseNodesLns;
4112 }
4113 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4114 }
4115
4116 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4117 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4118 public void MergeFrom(pb::CodedInputStream input) {
4119 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4120 input.ReadRawMessage(this);
4121 #else
4122 uint tag;
4123 while ((tag = input.ReadTag()) != 0) {
4124 switch(tag) {
4125 default:
4126 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4127 break;
4128 case 8: {
4129 UseRelocate = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4130 break;
4131 }
4132 case 16: {
4133 UseRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4134 break;
4135 }
4136 case 24: {
4137 UseRelocateNeighbors = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4138 break;
4139 }
4140 case 32: {
4141 UseExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4142 break;
4143 }
4144 case 40: {
4145 UseCross = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4146 break;
4147 }
4148 case 48: {
4149 UseCrossExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4150 break;
4151 }
4152 case 56: {
4153 UseTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4154 break;
4155 }
4156 case 64: {
4157 UseOrOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4158 break;
4159 }
4160 case 72: {
4161 UseLinKernighan = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4162 break;
4163 }
4164 case 80: {
4165 UseTspOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4166 break;
4167 }
4168 case 88: {
4169 UseMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4170 break;
4171 }
4172 case 96: {
4173 UseMakeInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4174 break;
4175 }
4176 case 104: {
4177 UseMakeChainInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4178 break;
4179 }
4180 case 112: {
4181 UseSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4182 break;
4183 }
4184 case 120: {
4185 UseExtendedSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4186 break;
4187 }
4188 case 128: {
4189 UsePathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4190 break;
4191 }
4192 case 136: {
4193 UseFullPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4194 break;
4195 }
4196 case 144: {
4197 UseTspLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4198 break;
4199 }
4200 case 152: {
4201 UseInactiveLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4202 break;
4203 }
4204 case 160: {
4205 UseNodePairSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4206 break;
4207 }
4208 case 168: {
4209 UseRelocateAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4210 break;
4211 }
4212 case 176: {
4213 UseExchangePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4214 break;
4215 }
4216 case 184: {
4217 UseRelocateExpensiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4218 break;
4219 }
4220 case 192: {
4221 UseLightRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4222 break;
4223 }
4224 case 200: {
4225 UseRelocateSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4226 break;
4227 }
4228 case 208: {
4229 UseExchangeSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4230 break;
4231 }
4232 case 216: {
4233 UseGlobalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4234 break;
4235 }
4236 case 224: {
4237 UseLocalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4238 break;
4239 }
4240 case 232: {
4241 UseGlobalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4242 break;
4243 }
4244 case 240: {
4245 UseLocalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4246 break;
4247 }
4248 case 248: {
4249 UseGlobalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4250 break;
4251 }
4252 case 256: {
4253 UseLocalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4254 break;
4255 }
4256 case 264: {
4257 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4258 break;
4259 }
4260 case 272: {
4261 UseShortestPathSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4262 break;
4263 }
4264 }
4265 }
4266 #endif
4267 }
4268
4269 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4270 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4271 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4272 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4273 uint tag;
4274 while ((tag = input.ReadTag()) != 0) {
4275 switch(tag) {
4276 default:
4277 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4278 break;
4279 case 8: {
4280 UseRelocate = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4281 break;
4282 }
4283 case 16: {
4284 UseRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4285 break;
4286 }
4287 case 24: {
4288 UseRelocateNeighbors = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4289 break;
4290 }
4291 case 32: {
4292 UseExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4293 break;
4294 }
4295 case 40: {
4296 UseCross = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4297 break;
4298 }
4299 case 48: {
4300 UseCrossExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4301 break;
4302 }
4303 case 56: {
4304 UseTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4305 break;
4306 }
4307 case 64: {
4308 UseOrOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4309 break;
4310 }
4311 case 72: {
4312 UseLinKernighan = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4313 break;
4314 }
4315 case 80: {
4316 UseTspOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4317 break;
4318 }
4319 case 88: {
4320 UseMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4321 break;
4322 }
4323 case 96: {
4324 UseMakeInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4325 break;
4326 }
4327 case 104: {
4328 UseMakeChainInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4329 break;
4330 }
4331 case 112: {
4332 UseSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4333 break;
4334 }
4335 case 120: {
4336 UseExtendedSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4337 break;
4338 }
4339 case 128: {
4340 UsePathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4341 break;
4342 }
4343 case 136: {
4344 UseFullPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4345 break;
4346 }
4347 case 144: {
4348 UseTspLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4349 break;
4350 }
4351 case 152: {
4352 UseInactiveLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4353 break;
4354 }
4355 case 160: {
4356 UseNodePairSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4357 break;
4358 }
4359 case 168: {
4360 UseRelocateAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4361 break;
4362 }
4363 case 176: {
4364 UseExchangePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4365 break;
4366 }
4367 case 184: {
4368 UseRelocateExpensiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4369 break;
4370 }
4371 case 192: {
4372 UseLightRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4373 break;
4374 }
4375 case 200: {
4376 UseRelocateSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4377 break;
4378 }
4379 case 208: {
4380 UseExchangeSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4381 break;
4382 }
4383 case 216: {
4384 UseGlobalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4385 break;
4386 }
4387 case 224: {
4388 UseLocalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4389 break;
4390 }
4391 case 232: {
4392 UseGlobalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4393 break;
4394 }
4395 case 240: {
4396 UseLocalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4397 break;
4398 }
4399 case 248: {
4400 UseGlobalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4401 break;
4402 }
4403 case 256: {
4404 UseLocalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4405 break;
4406 }
4407 case 264: {
4408 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4409 break;
4410 }
4411 case 272: {
4412 UseShortestPathSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4413 break;
4414 }
4415 }
4416 }
4417 }
4418 #endif
4419
4420 }
4421
4425 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
4426 public sealed partial class ImprovementSearchLimitParameters : pb::IMessage<ImprovementSearchLimitParameters>
4427 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4428 , pb::IBufferMessage
4429 #endif
4430 {
4431 private static readonly pb::MessageParser<ImprovementSearchLimitParameters> _parser = new pb::MessageParser<ImprovementSearchLimitParameters>(() => new ImprovementSearchLimitParameters());
4432 private pb::UnknownFieldSet _unknownFields;
4433 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4434 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4435 public static pb::MessageParser<ImprovementSearchLimitParameters> Parser { get { return _parser; } }
4436
4437 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4438 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4439 public static pbr::MessageDescriptor Descriptor {
4440 get { return global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Descriptor.NestedTypes[1]; }
4441 }
4442
4443 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4444 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4445 pbr::MessageDescriptor pb::IMessage.Descriptor {
4446 get { return Descriptor; }
4448
4449 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4450 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4452 OnConstruction();
4453 }
4454
4455 partial void OnConstruction();
4456
4457 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4458 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4460 improvementRateCoefficient_ = other.improvementRateCoefficient_;
4461 improvementRateSolutionsDistance_ = other.improvementRateSolutionsDistance_;
4462 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4463 }
4464
4465 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4466 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4468 return new ImprovementSearchLimitParameters(this);
4469 }
4470
4472 public const int ImprovementRateCoefficientFieldNumber = 38;
4473 private double improvementRateCoefficient_;
4479 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4480 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4481 public double ImprovementRateCoefficient {
4482 get { return improvementRateCoefficient_; }
4483 set {
4484 improvementRateCoefficient_ = value;
4485 }
4486 }
4487
4489 public const int ImprovementRateSolutionsDistanceFieldNumber = 39;
4490 private int improvementRateSolutionsDistance_;
4498 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4499 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4500 public int ImprovementRateSolutionsDistance {
4501 get { return improvementRateSolutionsDistance_; }
4502 set {
4503 improvementRateSolutionsDistance_ = value;
4504 }
4505 }
4506
4507 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4508 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4509 public override bool Equals(object other) {
4510 return Equals(other as ImprovementSearchLimitParameters);
4511 }
4512
4513 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4514 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4515 public bool Equals(ImprovementSearchLimitParameters other) {
4516 if (ReferenceEquals(other, null)) {
4517 return false;
4518 }
4519 if (ReferenceEquals(other, this)) {
4520 return true;
4521 }
4522 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ImprovementRateCoefficient, other.ImprovementRateCoefficient)) return false;
4523 if (ImprovementRateSolutionsDistance != other.ImprovementRateSolutionsDistance) return false;
4524 return Equals(_unknownFields, other._unknownFields);
4525 }
4526
4527 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4528 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4529 public override int GetHashCode() {
4530 int hash = 1;
4531 if (ImprovementRateCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ImprovementRateCoefficient);
4532 if (ImprovementRateSolutionsDistance != 0) hash ^= ImprovementRateSolutionsDistance.GetHashCode();
4533 if (_unknownFields != null) {
4534 hash ^= _unknownFields.GetHashCode();
4535 }
4536 return hash;
4538
4539 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4540 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4541 public override string ToString() {
4542 return pb::JsonFormatter.ToDiagnosticString(this);
4543 }
4544
4545 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4546 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4547 public void WriteTo(pb::CodedOutputStream output) {
4548 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4549 output.WriteRawMessage(this);
4550 #else
4551 if (ImprovementRateCoefficient != 0D) {
4552 output.WriteRawTag(177, 2);
4553 output.WriteDouble(ImprovementRateCoefficient);
4554 }
4555 if (ImprovementRateSolutionsDistance != 0) {
4556 output.WriteRawTag(184, 2);
4557 output.WriteInt32(ImprovementRateSolutionsDistance);
4558 }
4559 if (_unknownFields != null) {
4560 _unknownFields.WriteTo(output);
4561 }
4562 #endif
4563 }
4564
4565 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4566 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4567 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4568 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
4569 if (ImprovementRateCoefficient != 0D) {
4570 output.WriteRawTag(177, 2);
4571 output.WriteDouble(ImprovementRateCoefficient);
4572 }
4573 if (ImprovementRateSolutionsDistance != 0) {
4574 output.WriteRawTag(184, 2);
4575 output.WriteInt32(ImprovementRateSolutionsDistance);
4576 }
4577 if (_unknownFields != null) {
4578 _unknownFields.WriteTo(ref output);
4579 }
4580 }
4581 #endif
4582
4583 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4584 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4585 public int CalculateSize() {
4586 int size = 0;
4587 if (ImprovementRateCoefficient != 0D) {
4588 size += 2 + 8;
4589 }
4590 if (ImprovementRateSolutionsDistance != 0) {
4591 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ImprovementRateSolutionsDistance);
4592 }
4593 if (_unknownFields != null) {
4594 size += _unknownFields.CalculateSize();
4595 }
4596 return size;
4597 }
4598
4599 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4600 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4601 public void MergeFrom(ImprovementSearchLimitParameters other) {
4602 if (other == null) {
4603 return;
4604 }
4605 if (other.ImprovementRateCoefficient != 0D) {
4606 ImprovementRateCoefficient = other.ImprovementRateCoefficient;
4607 }
4608 if (other.ImprovementRateSolutionsDistance != 0) {
4609 ImprovementRateSolutionsDistance = other.ImprovementRateSolutionsDistance;
4610 }
4611 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4612 }
4613
4614 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4615 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4616 public void MergeFrom(pb::CodedInputStream input) {
4617 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4618 input.ReadRawMessage(this);
4619 #else
4620 uint tag;
4621 while ((tag = input.ReadTag()) != 0) {
4622 switch(tag) {
4623 default:
4624 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4625 break;
4626 case 305: {
4627 ImprovementRateCoefficient = input.ReadDouble();
4628 break;
4629 }
4630 case 312: {
4631 ImprovementRateSolutionsDistance = input.ReadInt32();
4632 break;
4633 }
4634 }
4635 }
4636 #endif
4637 }
4638
4639 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4640 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4641 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4642 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4643 uint tag;
4644 while ((tag = input.ReadTag()) != 0) {
4645 switch(tag) {
4646 default:
4647 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4648 break;
4649 case 305: {
4650 ImprovementRateCoefficient = input.ReadDouble();
4651 break;
4652 }
4653 case 312: {
4654 ImprovementRateSolutionsDistance = input.ReadInt32();
4655 break;
4656 }
4657 }
4658 }
4659 }
4660 #endif
4661
4662 }
4663
4664 }
4665 #endregion
4666
4667 }
4668
4672 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
4673 public sealed partial class RoutingModelParameters : pb::IMessage<RoutingModelParameters>
4674 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4675 , pb::IBufferMessage
4676 #endif
4677 {
4678 private static readonly pb::MessageParser<RoutingModelParameters> _parser = new pb::MessageParser<RoutingModelParameters>(() => new RoutingModelParameters());
4679 private pb::UnknownFieldSet _unknownFields;
4680 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4681 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4682 public static pb::MessageParser<RoutingModelParameters> Parser { get { return _parser; } }
4683
4684 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4685 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4686 public static pbr::MessageDescriptor Descriptor {
4687 get { return global::Google.OrTools.ConstraintSolver.RoutingParametersReflection.Descriptor.MessageTypes[1]; }
4688 }
4689
4690 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4691 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4692 pbr::MessageDescriptor pb::IMessage.Descriptor {
4693 get { return Descriptor; }
4695
4696 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4697 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4698 public RoutingModelParameters() {
4699 OnConstruction();
4700 }
4701
4702 partial void OnConstruction();
4703
4704 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4705 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4707 solverParameters_ = other.solverParameters_ != null ? other.solverParameters_.Clone() : null;
4708 reduceVehicleCostModel_ = other.reduceVehicleCostModel_;
4709 maxCallbackCacheSize_ = other.maxCallbackCacheSize_;
4710 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4711 }
4712
4713 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4714 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4715 public RoutingModelParameters Clone() {
4716 return new RoutingModelParameters(this);
4717 }
4718
4720 public const int SolverParametersFieldNumber = 1;
4721 private global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters solverParameters_;
4725 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4726 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4727 public global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters SolverParameters {
4728 get { return solverParameters_; }
4729 set {
4730 solverParameters_ = value;
4731 }
4732 }
4733
4735 public const int ReduceVehicleCostModelFieldNumber = 2;
4736 private bool reduceVehicleCostModel_;
4743 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4744 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4745 public bool ReduceVehicleCostModel {
4746 get { return reduceVehicleCostModel_; }
4747 set {
4748 reduceVehicleCostModel_ = value;
4749 }
4750 }
4751
4753 public const int MaxCallbackCacheSizeFieldNumber = 3;
4754 private int maxCallbackCacheSize_;
4759 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4760 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4761 public int MaxCallbackCacheSize {
4762 get { return maxCallbackCacheSize_; }
4763 set {
4764 maxCallbackCacheSize_ = value;
4765 }
4766 }
4767
4768 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4769 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4770 public override bool Equals(object other) {
4771 return Equals(other as RoutingModelParameters);
4772 }
4773
4774 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4775 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4776 public bool Equals(RoutingModelParameters other) {
4777 if (ReferenceEquals(other, null)) {
4778 return false;
4779 }
4780 if (ReferenceEquals(other, this)) {
4781 return true;
4782 }
4783 if (!object.Equals(SolverParameters, other.SolverParameters)) return false;
4784 if (ReduceVehicleCostModel != other.ReduceVehicleCostModel) return false;
4785 if (MaxCallbackCacheSize != other.MaxCallbackCacheSize) return false;
4786 return Equals(_unknownFields, other._unknownFields);
4787 }
4788
4789 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4790 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4791 public override int GetHashCode() {
4792 int hash = 1;
4793 if (solverParameters_ != null) hash ^= SolverParameters.GetHashCode();
4794 if (ReduceVehicleCostModel != false) hash ^= ReduceVehicleCostModel.GetHashCode();
4795 if (MaxCallbackCacheSize != 0) hash ^= MaxCallbackCacheSize.GetHashCode();
4796 if (_unknownFields != null) {
4797 hash ^= _unknownFields.GetHashCode();
4798 }
4799 return hash;
4800 }
4801
4802 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4803 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4804 public override string ToString() {
4805 return pb::JsonFormatter.ToDiagnosticString(this);
4806 }
4807
4808 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4809 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4810 public void WriteTo(pb::CodedOutputStream output) {
4811 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4812 output.WriteRawMessage(this);
4813 #else
4814 if (solverParameters_ != null) {
4815 output.WriteRawTag(10);
4816 output.WriteMessage(SolverParameters);
4817 }
4818 if (ReduceVehicleCostModel != false) {
4819 output.WriteRawTag(16);
4820 output.WriteBool(ReduceVehicleCostModel);
4821 }
4822 if (MaxCallbackCacheSize != 0) {
4823 output.WriteRawTag(24);
4824 output.WriteInt32(MaxCallbackCacheSize);
4825 }
4826 if (_unknownFields != null) {
4827 _unknownFields.WriteTo(output);
4828 }
4829 #endif
4830 }
4831
4832 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4833 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4834 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4835 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
4836 if (solverParameters_ != null) {
4837 output.WriteRawTag(10);
4838 output.WriteMessage(SolverParameters);
4839 }
4840 if (ReduceVehicleCostModel != false) {
4841 output.WriteRawTag(16);
4842 output.WriteBool(ReduceVehicleCostModel);
4843 }
4844 if (MaxCallbackCacheSize != 0) {
4845 output.WriteRawTag(24);
4846 output.WriteInt32(MaxCallbackCacheSize);
4847 }
4848 if (_unknownFields != null) {
4849 _unknownFields.WriteTo(ref output);
4850 }
4851 }
4852 #endif
4853
4854 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4855 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4856 public int CalculateSize() {
4857 int size = 0;
4858 if (solverParameters_ != null) {
4859 size += 1 + pb::CodedOutputStream.ComputeMessageSize(SolverParameters);
4860 }
4861 if (ReduceVehicleCostModel != false) {
4862 size += 1 + 1;
4863 }
4864 if (MaxCallbackCacheSize != 0) {
4865 size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxCallbackCacheSize);
4866 }
4867 if (_unknownFields != null) {
4868 size += _unknownFields.CalculateSize();
4869 }
4870 return size;
4871 }
4872
4873 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4874 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4875 public void MergeFrom(RoutingModelParameters other) {
4876 if (other == null) {
4877 return;
4878 }
4879 if (other.solverParameters_ != null) {
4880 if (solverParameters_ == null) {
4881 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
4882 }
4883 SolverParameters.MergeFrom(other.SolverParameters);
4884 }
4885 if (other.ReduceVehicleCostModel != false) {
4886 ReduceVehicleCostModel = other.ReduceVehicleCostModel;
4887 }
4888 if (other.MaxCallbackCacheSize != 0) {
4889 MaxCallbackCacheSize = other.MaxCallbackCacheSize;
4890 }
4891 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4892 }
4893
4894 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4895 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4896 public void MergeFrom(pb::CodedInputStream input) {
4897 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4898 input.ReadRawMessage(this);
4899 #else
4900 uint tag;
4901 while ((tag = input.ReadTag()) != 0) {
4902 switch(tag) {
4903 default:
4904 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4905 break;
4906 case 10: {
4907 if (solverParameters_ == null) {
4908 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
4909 }
4910 input.ReadMessage(SolverParameters);
4911 break;
4912 }
4913 case 16: {
4914 ReduceVehicleCostModel = input.ReadBool();
4915 break;
4916 }
4917 case 24: {
4918 MaxCallbackCacheSize = input.ReadInt32();
4919 break;
4920 }
4921 }
4922 }
4923 #endif
4924 }
4925
4926 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4927 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4928 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4929 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4930 uint tag;
4931 while ((tag = input.ReadTag()) != 0) {
4932 switch(tag) {
4933 default:
4934 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4935 break;
4936 case 10: {
4937 if (solverParameters_ == null) {
4938 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
4939 }
4940 input.ReadMessage(SolverParameters);
4941 break;
4942 }
4943 case 16: {
4944 ReduceVehicleCostModel = input.ReadBool();
4945 break;
4946 }
4947 case 24: {
4948 MaxCallbackCacheSize = input.ReadInt32();
4949 break;
4950 }
4951 }
4952 }
4953 }
4954 #endif
4955
4956 }
4957
4958 #endregion
4959
4960}
4961
4962#endregion Designer generated code
global::Google.Protobuf.Reflection pbr
global::System.Collections.Generic scg
global::Google.Protobuf.Collections pbc
Definition SetCover.pb.cs:9
global::Google.Protobuf pb
Definition SetCover.pb.cs:8
Container for nested types declared in the FirstSolutionStrategy message type.
First solution strategies, used as starting point of local search.
Local search metaheuristics used to guide the search. Apart from greedy descent, they will try to esc...
Parameters which have to be set when creating a RoutingModel.
int MaxCallbackCacheSize
Cache callback calls if the number of nodes in the model is less or equal to this value.
global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters SolverParameters
Parameters to use in the underlying constraint solver.
bool ReduceVehicleCostModel
Advanced settings. If set to true reduction of the underlying constraint model will be attempted when...
Holder for reflection information generated from ortools/constraint_solver/routing_parameters....
static pbr::FileDescriptor Descriptor
File descriptor for ortools/constraint_solver/routing_parameters.proto.
int ImprovementRateSolutionsDistance
Parameter that specifies the distance between improvements taken into consideration for calculating t...
double ImprovementRateCoefficient
Parameter that regulates exchange rate between objective improvement and number of neighbors spent....
Local search neighborhood operators used to build a solutions neighborhood. Next ID: 35.
PairInsertionStrategy
In insertion-based heuristics, describes what positions must be considered when inserting a pickup/de...
Parameters defining the search used to solve vehicle routing problems.
bool CheapestInsertionAddUnperformedEntries
Whether or not to consider entries making the nodes/pairs unperformed in the GlobalCheapestInsertion ...
bool SavingsAddReverseArcs
Add savings related to reverse arcs when finding the nearest neighbors of the nodes.
int NumberOfSolutionsToCollect
Number of solutions to collect during the search. Corresponds to the best solutions found during the ...
int FallbackToCpSatSizeThreshold
If model.Size() is less than the threshold and that no solution has been found, attempt a pass with C...
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy LocalCheapestInsertionPickupDeliveryStrategy
Choice of insertion strategy for pickup/delivery pairs, used in local cheapest insertion,...
global::Google.OrTools.Util.OptionalBoolean UseGeneralizedCpSat
If true, use the CP-SAT solver to find a solution on generalized routing model. If use_cp is also tru...
double MultiArmedBanditCompoundOperatorExplorationCoefficient
Positive parameter defining the exploration coefficient of the multi-armed bandit compound operator....
double CheapestInsertionFarthestSeedsRatio
Ratio (between 0 and 1) of available vehicles in the model on which farthest nodes of the model are i...
bool DisableSchedulingBewareThisMayDegradePerformance
Setting this to true completely disables the LP and MIP scheduling in the solver. This overrides the ...
global::Google.OrTools.Util.OptionalBoolean UseCp
If true, use the CP solver to find a solution. Either local or depth-first search will be used depend...
double LogCostScalingFactor
In logs, cost values will be scaled and offset by the given values in the following way: log_cost_sca...
double MultiArmedBanditCompoundOperatorMemoryCoefficient
Memory coefficient related to the multi-armed bandit compound operator. Sets how much the objective i...
double LsOperatorNeighborsRatio
Neighbors ratio and minimum number of neighbors considered in local search operators (see cheapest_in...
global::Google.Protobuf.WellKnownTypes.Duration LnsTimeLimit
Limit to the time spent in the completion search for each local search neighbor.
int FirstSolutionOptimizationPeriod
If non zero, a period p indicates that every p node insertions or additions to a path,...
bool GuidedLocalSearchResetPenaltiesOnNewBestSolution
Whether to reset penalties when a new best solution is found. The effect is that a greedy descent is ...
double SavingsNeighborsRatio
Parameters specific to the Savings first solution heuristic. Ratio (in ]0, 1]) of neighbors to consid...
global::OperationsResearch.IteratedLocalSearchParameters IteratedLocalSearchParameters
Iterated Local Search parameters.
double SecondaryLsTimeLimitRatio
Ratio of the overall time limit spent in a secondary LS phase with only intra-route and insertion ope...
bool UseFullPropagation
— Propagation control — These are advanced settings which should not be modified unless you know what...
global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value FirstSolutionStrategy
First solution strategies, used as starting point of local search.
double CheapestInsertionLsOperatorNeighborsRatio
Neighbors ratio and minimum number of neighbors for the heuristic when used in a local search operato...
long SolutionLimit
– Search limits – Limit to the number of solutions generated during the search. 0 means "unspecified"...
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators LocalSearchOperators
bool CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization
Whether or not to only consider closest neighbors when initializing the assignment for the first solu...
bool ChristofidesUseMinimumMatching
If true use minimum matching instead of minimal matching in the Christofides algorithm.
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver MixedIntegerSchedulingSolver
bool UseMultiArmedBanditConcatenateOperators
If true, the solver will use multi-armed bandit concatenate operators. It dynamically chooses the nex...
double SavingsMaxMemoryUsageBytes
The number of neighbors considered for each node in the Savings heuristic is chosen so that the space...
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters ImprovementLimitParameters
The improvement search limit is added to the solver if the following parameters are set.
double CheapestInsertionFirstSolutionNeighborsRatio
Ratio (in ]0, 1]) of closest non start/end nodes to consider as neighbors for each node when creating...
int RelocateExpensiveChainNumArcsToConsider
Number of expensive arcs to consider cutting in the RelocateExpensiveChain neighborhood operator (see...
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. Useful to sort out l...
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver ContinuousSchedulingSolver
double GuidedLocalSearchLambdaCoefficient
These are advanced settings which should not be modified unless you know what you are doing....
double SavingsArcCoefficient
Coefficient of the cost of the arc for which the saving value is being computed: Saving(a-->b) = Cost...
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 ...
double OptimizationStep
Minimum step by which the solution must be improved in local search. 0 means "unspecified"....
global::Google.OrTools.Util.OptionalBoolean UseCpSat
If true, use the CP-SAT solver to find a solution. If use_cp is also true, the CP-SAT solver will be ...
bool UseUnfilteredFirstSolutionStrategy
— Advanced first solutions strategy settings — Don't touch these unless you know what you are doing.
bool LogSearch
— Miscellaneous — Some of these are advanced settings which should not be modified unless you know wh...
bool UseIteratedLocalSearch
Whether the solver should use an Iterated Local Search approach to solve the problem.
int HeuristicExpensiveChainLnsNumArcsToConsider
Number of expensive arcs to consider cutting in the FilteredHeuristicExpensiveChainLNSOperator operat...
bool SavingsParallelRoutes
When true, the routes are built in parallel, sequentially otherwise.
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy LocalCheapestCostInsertionPickupDeliveryStrategy
Choice of insertion strategy for pickup/delivery pairs, used in local cheapest cost insertion,...
global::Google.Protobuf.WellKnownTypes.Duration TimeLimit
Limit to the time spent in the search.
global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value LocalSearchMetaheuristic
Local search metaheuristics used to guide the search.
bool ReportIntermediateCpSatSolutions
If use_cp_sat or use_generalized_cp_sat is true, will report intermediate solutions found by CP-SAT t...