Google OR-Tools v9.15
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 "dXRpbmdfZW51bXMucHJvdG8aPG9ydG9vbHMvY29uc3RyYWludF9zb2x2ZXIv",
31 "cm91dGluZ19oZXVyaXN0aWNfcGFyYW1ldGVycy5wcm90bxorb3J0b29scy9j",
32 "b25zdHJhaW50X3NvbHZlci9yb3V0aW5nX2lscy5wcm90bxoxb3J0b29scy9j",
33 "b25zdHJhaW50X3NvbHZlci9zb2x2ZXJfcGFyYW1ldGVycy5wcm90bxogb3J0",
34 "b29scy9zYXQvc2F0X3BhcmFtZXRlcnMucHJvdG8aI29ydG9vbHMvdXRpbC9v",
35 "cHRpb25hbF9ib29sZWFuLnByb3RvItgxChdSb3V0aW5nU2VhcmNoUGFyYW1l",
36 "dGVycxJRChdmaXJzdF9zb2x1dGlvbl9zdHJhdGVneRgBIAEoDjIwLm9wZXJh",
37 "dGlvbnNfcmVzZWFyY2guRmlyc3RTb2x1dGlvblN0cmF0ZWd5LlZhbHVlEi4K",
38 "JnVzZV91bmZpbHRlcmVkX2ZpcnN0X3NvbHV0aW9uX3N0cmF0ZWd5GAIgASgI",
39 "EkIKEnNhdmluZ3NfcGFyYW1ldGVycxhGIAEoCzImLm9wZXJhdGlvbnNfcmVz",
40 "ZWFyY2guU2F2aW5nc1BhcmFtZXRlcnMScwozZ2xvYmFsX2NoZWFwZXN0X2lu",
41 "c2VydGlvbl9maXJzdF9zb2x1dGlvbl9wYXJhbWV0ZXJzGEcgASgLMjYub3Bl",
42 "cmF0aW9uc19yZXNlYXJjaC5HbG9iYWxDaGVhcGVzdEluc2VydGlvblBhcmFt",
43 "ZXRlcnMScAowZ2xvYmFsX2NoZWFwZXN0X2luc2VydGlvbl9sc19vcGVyYXRv",
44 "cl9wYXJhbWV0ZXJzGEggASgLMjYub3BlcmF0aW9uc19yZXNlYXJjaC5HbG9i",
45 "YWxDaGVhcGVzdEluc2VydGlvblBhcmFtZXRlcnMSYgojbG9jYWxfY2hlYXBl",
46 "c3RfaW5zZXJ0aW9uX3BhcmFtZXRlcnMYRCABKAsyNS5vcGVyYXRpb25zX3Jl",
47 "c2VhcmNoLkxvY2FsQ2hlYXBlc3RJbnNlcnRpb25QYXJhbWV0ZXJzEmcKKGxv",
48 "Y2FsX2NoZWFwZXN0X2Nvc3RfaW5zZXJ0aW9uX3BhcmFtZXRlcnMYRSABKAsy",
49 "NS5vcGVyYXRpb25zX3Jlc2VhcmNoLkxvY2FsQ2hlYXBlc3RJbnNlcnRpb25Q",
50 "YXJhbWV0ZXJzEikKIWNocmlzdG9maWRlc191c2VfbWluaW11bV9tYXRjaGlu",
51 "ZxgeIAEoCBIqCiJmaXJzdF9zb2x1dGlvbl9vcHRpbWl6YXRpb25fcGVyaW9k",
52 "GDsgASgFEm0KFmxvY2FsX3NlYXJjaF9vcGVyYXRvcnMYAyABKAsyTS5vcGVy",
53 "YXRpb25zX3Jlc2VhcmNoLlJvdXRpbmdTZWFyY2hQYXJhbWV0ZXJzLkxvY2Fs",
54 "U2VhcmNoTmVpZ2hib3Job29kT3BlcmF0b3JzEiMKG2xzX29wZXJhdG9yX25l",
55 "aWdoYm9yc19yYXRpbxg1IAEoARIhChlsc19vcGVyYXRvcl9taW5fbmVpZ2hi",
56 "b3JzGDYgASgFEjQKLHVzZV9tdWx0aV9hcm1lZF9iYW5kaXRfY29uY2F0ZW5h",
57 "dGVfb3BlcmF0b3JzGCkgASgIEj8KN211bHRpX2FybWVkX2JhbmRpdF9jb21w",
58 "b3VuZF9vcGVyYXRvcl9tZW1vcnlfY29lZmZpY2llbnQYKiABKAESRAo8bXVs",
59 "dGlfYXJtZWRfYmFuZGl0X2NvbXBvdW5kX29wZXJhdG9yX2V4cGxvcmF0aW9u",
60 "X2NvZWZmaWNpZW50GCsgASgBEiIKGm1heF9zd2FwX2FjdGl2ZV9jaGFpbl9z",
61 "aXplGEIgASgFEjUKLXJlbG9jYXRlX2V4cGVuc2l2ZV9jaGFpbl9udW1fYXJj",
62 "c190b19jb25zaWRlchgUIAEoBRI6CjJoZXVyaXN0aWNfZXhwZW5zaXZlX2No",
63 "YWluX2xuc19udW1fYXJjc190b19jb25zaWRlchggIAEoBRIrCiNoZXVyaXN0",
64 "aWNfY2xvc2Vfbm9kZXNfbG5zX251bV9ub2RlcxgjIAEoBRJXChpsb2NhbF9z",
65 "ZWFyY2hfbWV0YWhldXJpc3RpYxgEIAEoDjIzLm9wZXJhdGlvbnNfcmVzZWFy",
66 "Y2guTG9jYWxTZWFyY2hNZXRhaGV1cmlzdGljLlZhbHVlElgKG2xvY2FsX3Nl",
67 "YXJjaF9tZXRhaGV1cmlzdGljcxg/IAMoDjIzLm9wZXJhdGlvbnNfcmVzZWFy",
68 "Y2guTG9jYWxTZWFyY2hNZXRhaGV1cmlzdGljLlZhbHVlEjgKMG51bV9tYXhf",
69 "bG9jYWxfb3B0aW1hX2JlZm9yZV9tZXRhaGV1cmlzdGljX3N3aXRjaBhAIAEo",
70 "BRIuCiZndWlkZWRfbG9jYWxfc2VhcmNoX2xhbWJkYV9jb2VmZmljaWVudBgF",
71 "IAEoARJACjhndWlkZWRfbG9jYWxfc2VhcmNoX3Jlc2V0X3BlbmFsdGllc19v",
72 "bl9uZXdfYmVzdF9zb2x1dGlvbhgzIAEoCBI5CjFndWlkZWRfbG9jYWxfc2Vh",
73 "cmNoX3BlbmFsaXplX3dpdGhfdmVoaWNsZV9jbGFzc2VzGD0gASgIEkMKO3Vz",
74 "ZV9ndWlkZWRfbG9jYWxfc2VhcmNoX3BlbmFsdGllc19pbl9sb2NhbF9zZWFy",
75 "Y2hfb3BlcmF0b3JzGD4gASgIEh4KFnVzZV9kZXB0aF9maXJzdF9zZWFyY2gY",
76 "BiABKAgSNAoGdXNlX2NwGBwgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5P",
77 "cHRpb25hbEJvb2xlYW4SOAoKdXNlX2NwX3NhdBgbIAEoDjIkLm9wZXJhdGlv",
78 "bnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEkQKFnVzZV9nZW5lcmFsaXpl",
79 "ZF9jcF9zYXQYLyABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFs",
80 "Qm9vbGVhbhI+Cg5zYXRfcGFyYW1ldGVycxgwIAEoCzImLm9wZXJhdGlvbnNf",
81 "cmVzZWFyY2guc2F0LlNhdFBhcmFtZXRlcnMSLAokcmVwb3J0X2ludGVybWVk",
82 "aWF0ZV9jcF9zYXRfc29sdXRpb25zGDggASgIEikKIWZhbGxiYWNrX3RvX2Nw",
83 "X3NhdF9zaXplX3RocmVzaG9sZBg0IAEoBRJjChxjb250aW51b3VzX3NjaGVk",
84 "dWxpbmdfc29sdmVyGCEgASgOMj0ub3BlcmF0aW9uc19yZXNlYXJjaC5Sb3V0",
85 "aW5nU2VhcmNoUGFyYW1ldGVycy5TY2hlZHVsaW5nU29sdmVyEmYKH21peGVk",
86 "X2ludGVnZXJfc2NoZWR1bGluZ19zb2x2ZXIYIiABKA4yPS5vcGVyYXRpb25z",
87 "X3Jlc2VhcmNoLlJvdXRpbmdTZWFyY2hQYXJhbWV0ZXJzLlNjaGVkdWxpbmdT",
88 "b2x2ZXISQwo2ZGlzYWJsZV9zY2hlZHVsaW5nX2Jld2FyZV90aGlzX21heV9k",
89 "ZWdyYWRlX3BlcmZvcm1hbmNlGDIgASgISACIAQESGQoRb3B0aW1pemF0aW9u",
90 "X3N0ZXAYByABKAESJgoebnVtYmVyX29mX3NvbHV0aW9uc190b19jb2xsZWN0",
91 "GBEgASgFEhYKDnNvbHV0aW9uX2xpbWl0GAggASgDEi0KCnRpbWVfbGltaXQY",
92 "CSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SMQoObG5zX3RpbWVf",
93 "bGltaXQYCiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SJQodc2Vj",
94 "b25kYXJ5X2xzX3RpbWVfbGltaXRfcmF0aW8YOSABKAEScwocaW1wcm92ZW1l",
95 "bnRfbGltaXRfcGFyYW1ldGVycxglIAEoCzJNLm9wZXJhdGlvbnNfcmVzZWFy",
96 "Y2guUm91dGluZ1NlYXJjaFBhcmFtZXRlcnMuSW1wcm92ZW1lbnRTZWFyY2hM",
97 "aW1pdFBhcmFtZXRlcnMSHAoUdXNlX2Z1bGxfcHJvcGFnYXRpb24YCyABKAgS",
98 "EgoKbG9nX3NlYXJjaBgNIAEoCBIfChdsb2dfY29zdF9zY2FsaW5nX2ZhY3Rv",
99 "chgWIAEoARIXCg9sb2dfY29zdF9vZmZzZXQYHSABKAESDwoHbG9nX3RhZxgk",
100 "IAEoCRIhChl1c2VfaXRlcmF0ZWRfbG9jYWxfc2VhcmNoGDogASgIElwKIGl0",
101 "ZXJhdGVkX2xvY2FsX3NlYXJjaF9wYXJhbWV0ZXJzGDwgASgLMjIub3BlcmF0",
102 "aW9uc19yZXNlYXJjaC5JdGVyYXRlZExvY2FsU2VhcmNoUGFyYW1ldGVycxqT",
103 "FwogTG9jYWxTZWFyY2hOZWlnaGJvcmhvb2RPcGVyYXRvcnMSOgoMdXNlX3Jl",
104 "bG9jYXRlGAEgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJv",
105 "b2xlYW4SPwoRdXNlX3JlbG9jYXRlX3BhaXIYAiABKA4yJC5vcGVyYXRpb25z",
106 "X3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJFChd1c2VfbGlnaHRfcmVsb2Nh",
107 "dGVfcGFpchgYIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxC",
108 "b29sZWFuEkQKFnVzZV9yZWxvY2F0ZV9uZWlnaGJvcnMYAyABKA4yJC5vcGVy",
109 "YXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJCChR1c2VfcmVsb2Nh",
110 "dGVfc3VidHJpcBgZIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9u",
111 "YWxCb29sZWFuEjoKDHVzZV9leGNoYW5nZRgEIAEoDjIkLm9wZXJhdGlvbnNf",
112 "cmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEj8KEXVzZV9leGNoYW5nZV9wYWly",
113 "GBYgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4S",
114 "QgoUdXNlX2V4Y2hhbmdlX3N1YnRyaXAYGiABKA4yJC5vcGVyYXRpb25zX3Jl",
115 "c2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI3Cgl1c2VfY3Jvc3MYBSABKA4yJC5v",
116 "cGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJAChJ1c2VfY3Jv",
117 "c3NfZXhjaGFuZ2UYBiABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlv",
118 "bmFsQm9vbGVhbhJKChx1c2VfcmVsb2NhdGVfZXhwZW5zaXZlX2NoYWluGBcg",
119 "ASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SOQoL",
120 "dXNlX3R3b19vcHQYByABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlv",
121 "bmFsQm9vbGVhbhI4Cgp1c2Vfb3Jfb3B0GAggASgOMiQub3BlcmF0aW9uc19y",
122 "ZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SPwoRdXNlX2xpbl9rZXJuaWdoYW4Y",
123 "CSABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI5",
124 "Cgt1c2VfdHNwX29wdBgKIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0",
125 "aW9uYWxCb29sZWFuEj0KD3VzZV9tYWtlX2FjdGl2ZRgLIAEoDjIkLm9wZXJh",
126 "dGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEkoKHHVzZV9yZWxvY2F0",
127 "ZV9hbmRfbWFrZV9hY3RpdmUYFSABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNo",
128 "Lk9wdGlvbmFsQm9vbGVhbhJKChx1c2VfZXhjaGFuZ2VfYW5kX21ha2VfYWN0",
129 "aXZlGCUgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xl",
130 "YW4SWgosdXNlX2V4Y2hhbmdlX3BhdGhfc3RhcnRfZW5kc19hbmRfbWFrZV9h",
131 "Y3RpdmUYJiABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9v",
132 "bGVhbhI/ChF1c2VfbWFrZV9pbmFjdGl2ZRgMIAEoDjIkLm9wZXJhdGlvbnNf",
133 "cmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEkUKF3VzZV9tYWtlX2NoYWluX2lu",
134 "YWN0aXZlGA0gASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJv",
135 "b2xlYW4SPQoPdXNlX3N3YXBfYWN0aXZlGA4gASgOMiQub3BlcmF0aW9uc19y",
136 "ZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SQwoVdXNlX3N3YXBfYWN0aXZlX2No",
137 "YWluGCMgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xl",
138 "YW4SRgoYdXNlX2V4dGVuZGVkX3N3YXBfYWN0aXZlGA8gASgOMiQub3BlcmF0",
139 "aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SSwoddXNlX3Nob3J0ZXN0",
140 "X3BhdGhfc3dhcF9hY3RpdmUYIiABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNo",
141 "Lk9wdGlvbmFsQm9vbGVhbhJHChl1c2Vfc2hvcnRlc3RfcGF0aF90d29fb3B0",
142 "GCQgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4S",
143 "RwoZdXNlX25vZGVfcGFpcl9zd2FwX2FjdGl2ZRgUIAEoDjIkLm9wZXJhdGlv",
144 "bnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEjoKDHVzZV9wYXRoX2xucxgQ",
145 "IAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEj8K",
146 "EXVzZV9mdWxsX3BhdGhfbG5zGBEgASgOMiQub3BlcmF0aW9uc19yZXNlYXJj",
147 "aC5PcHRpb25hbEJvb2xlYW4SOQoLdXNlX3RzcF9sbnMYEiABKA4yJC5vcGVy",
148 "YXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI+ChB1c2VfaW5hY3Rp",
149 "dmVfbG5zGBMgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJv",
150 "b2xlYW4SVAomdXNlX2dsb2JhbF9jaGVhcGVzdF9pbnNlcnRpb25fcGF0aF9s",
151 "bnMYGyABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVh",
152 "bhJTCiV1c2VfbG9jYWxfY2hlYXBlc3RfaW5zZXJ0aW9uX3BhdGhfbG5zGBwg",
153 "ASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SbAo+",
154 "dXNlX3JlbG9jYXRlX3BhdGhfZ2xvYmFsX2NoZWFwZXN0X2luc2VydGlvbl9p",
155 "bnNlcnRfdW5wZXJmb3JtZWQYISABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNo",
156 "Lk9wdGlvbmFsQm9vbGVhbhJfCjF1c2VfZ2xvYmFsX2NoZWFwZXN0X2luc2Vy",
157 "dGlvbl9leHBlbnNpdmVfY2hhaW5fbG5zGB0gASgOMiQub3BlcmF0aW9uc19y",
158 "ZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SXgowdXNlX2xvY2FsX2NoZWFwZXN0",
159 "X2luc2VydGlvbl9leHBlbnNpdmVfY2hhaW5fbG5zGB4gASgOMiQub3BlcmF0",
160 "aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SWwotdXNlX2dsb2JhbF9j",
161 "aGVhcGVzdF9pbnNlcnRpb25fY2xvc2Vfbm9kZXNfbG5zGB8gASgOMiQub3Bl",
162 "cmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SWgosdXNlX2xvY2Fs",
163 "X2NoZWFwZXN0X2luc2VydGlvbl9jbG9zZV9ub2Rlc19sbnMYICABKA4yJC5v",
164 "cGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJbCi11c2VfZ2xv",
165 "YmFsX2NoZWFwZXN0X2luc2VydGlvbl92aXNpdF90eXBlc19sbnMYJyABKA4y",
166 "JC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJaCix1c2Vf",
167 "bG9jYWxfY2hlYXBlc3RfaW5zZXJ0aW9uX3Zpc2l0X3R5cGVzX2xucxgoIAEo",
168 "DjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuGnUKIElt",
169 "cHJvdmVtZW50U2VhcmNoTGltaXRQYXJhbWV0ZXJzEiQKHGltcHJvdmVtZW50",
170 "X3JhdGVfY29lZmZpY2llbnQYJiABKAESKwojaW1wcm92ZW1lbnRfcmF0ZV9z",
171 "b2x1dGlvbnNfZGlzdGFuY2UYJyABKAUiVAoQU2NoZWR1bGluZ1NvbHZlchIU",
172 "ChBTQ0hFRFVMSU5HX1VOU0VUEAASEwoPU0NIRURVTElOR19HTE9QEAESFQoR",
173 "U0NIRURVTElOR19DUF9TQVQQAkI5CjdfZGlzYWJsZV9zY2hlZHVsaW5nX2Jl",
174 "d2FyZV90aGlzX21heV9kZWdyYWRlX3BlcmZvcm1hbmNlSgQIDhAPSgQIDxAQ",
175 "SgQIEBARSgQIEhATSgQIExAUSgQIFRAWSgQIFxAYSgQIHxAgSgQIKBApSgQI",
176 "LBAtSgQILRAuSgQILhAvSgQIMRAySgQINxA4SgQIQRBCSgQIQxBEIqgBChZS",
177 "b3V0aW5nTW9kZWxQYXJhbWV0ZXJzEkoKEXNvbHZlcl9wYXJhbWV0ZXJzGAEg",
178 "ASgLMi8ub3BlcmF0aW9uc19yZXNlYXJjaC5Db25zdHJhaW50U29sdmVyUGFy",
179 "YW1ldGVycxIhChlyZWR1Y2VfdmVoaWNsZV9jb3N0X21vZGVsGAIgASgIEh8K",
180 "F21heF9jYWxsYmFja19jYWNoZV9zaXplGAMgASgFQkkKI2NvbS5nb29nbGUu",
181 "b3J0b29scy5jb25zdHJhaW50c29sdmVyUAGqAh9Hb29nbGUuT3JUb29scy5D",
182 "b25zdHJhaW50U29sdmVyYgZwcm90bzM="));
183 descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
184 new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.OrTools.ConstraintSolver.RoutingEnumsReflection.Descriptor, global::Google.OrTools.ConstraintSolver.RoutingHeuristicParametersReflection.Descriptor, global::Google.OrTools.ConstraintSolver.RoutingIlsReflection.Descriptor, global::Google.OrTools.ConstraintSolver.SolverParametersReflection.Descriptor, global::Google.OrTools.Sat.SatParametersReflection.Descriptor, global::Google.OrTools.Util.OptionalBooleanReflection.Descriptor, },
185 new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
186 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.ConstraintSolver.RoutingSearchParameters), global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Parser, new[]{ "FirstSolutionStrategy", "UseUnfilteredFirstSolutionStrategy", "SavingsParameters", "GlobalCheapestInsertionFirstSolutionParameters", "GlobalCheapestInsertionLsOperatorParameters", "LocalCheapestInsertionParameters", "LocalCheapestCostInsertionParameters", "ChristofidesUseMinimumMatching", "FirstSolutionOptimizationPeriod", "LocalSearchOperators", "LsOperatorNeighborsRatio", "LsOperatorMinNeighbors", "UseMultiArmedBanditConcatenateOperators", "MultiArmedBanditCompoundOperatorMemoryCoefficient", "MultiArmedBanditCompoundOperatorExplorationCoefficient", "MaxSwapActiveChainSize", "RelocateExpensiveChainNumArcsToConsider", "HeuristicExpensiveChainLnsNumArcsToConsider", "HeuristicCloseNodesLnsNumNodes", "LocalSearchMetaheuristic", "LocalSearchMetaheuristics", "NumMaxLocalOptimaBeforeMetaheuristicSwitch", "GuidedLocalSearchLambdaCoefficient", "GuidedLocalSearchResetPenaltiesOnNewBestSolution", "GuidedLocalSearchPenalizeWithVehicleClasses", "UseGuidedLocalSearchPenaltiesInLocalSearchOperators", "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.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", "UseExchangeAndMakeActive", "UseExchangePathStartEndsAndMakeActive", "UseMakeInactive", "UseMakeChainInactive", "UseSwapActive", "UseSwapActiveChain", "UseExtendedSwapActive", "UseShortestPathSwapActive", "UseShortestPathTwoOpt", "UseNodePairSwapActive", "UsePathLns", "UseFullPathLns", "UseTspLns", "UseInactiveLns", "UseGlobalCheapestInsertionPathLns", "UseLocalCheapestInsertionPathLns", "UseRelocatePathGlobalCheapestInsertionInsertUnperformed", "UseGlobalCheapestInsertionExpensiveChainLns", "UseLocalCheapestInsertionExpensiveChainLns", "UseGlobalCheapestInsertionCloseNodesLns", "UseLocalCheapestInsertionCloseNodesLns", "UseGlobalCheapestInsertionVisitTypesLns", "UseLocalCheapestInsertionVisitTypesLns" }, null, null, null, null),
187 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)}),
188 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.ConstraintSolver.RoutingModelParameters), global::Google.OrTools.ConstraintSolver.RoutingModelParameters.Parser, new[]{ "SolverParameters", "ReduceVehicleCostModel", "MaxCallbackCacheSize" }, null, null, null, null)
189 }));
190 }
191 #endregion
192
193 }
194 #region Messages
204 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
205 public sealed partial class RoutingSearchParameters : pb::IMessage<RoutingSearchParameters>
206 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
207 , pb::IBufferMessage
208 #endif
209 {
210 private static readonly pb::MessageParser<RoutingSearchParameters> _parser = new pb::MessageParser<RoutingSearchParameters>(() => new RoutingSearchParameters());
211 private pb::UnknownFieldSet _unknownFields;
212 private int _hasBits0;
213 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
214 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
215 public static pb::MessageParser<RoutingSearchParameters> Parser { get { return _parser; } }
217 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
218 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
219 public static pbr::MessageDescriptor Descriptor {
220 get { return global::Google.OrTools.ConstraintSolver.RoutingParametersReflection.Descriptor.MessageTypes[0]; }
221 }
222
223 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
224 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
225 pbr::MessageDescriptor pb::IMessage.Descriptor {
226 get { return Descriptor; }
227 }
228
229 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
230 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
231 public RoutingSearchParameters() {
232 OnConstruction();
233 }
234
235 partial void OnConstruction();
236
237 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
238 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
239 public RoutingSearchParameters(RoutingSearchParameters other) : this() {
240 _hasBits0 = other._hasBits0;
241 firstSolutionStrategy_ = other.firstSolutionStrategy_;
242 useUnfilteredFirstSolutionStrategy_ = other.useUnfilteredFirstSolutionStrategy_;
243 savingsParameters_ = other.savingsParameters_ != null ? other.savingsParameters_.Clone() : null;
244 globalCheapestInsertionFirstSolutionParameters_ = other.globalCheapestInsertionFirstSolutionParameters_ != null ? other.globalCheapestInsertionFirstSolutionParameters_.Clone() : null;
245 globalCheapestInsertionLsOperatorParameters_ = other.globalCheapestInsertionLsOperatorParameters_ != null ? other.globalCheapestInsertionLsOperatorParameters_.Clone() : null;
246 localCheapestInsertionParameters_ = other.localCheapestInsertionParameters_ != null ? other.localCheapestInsertionParameters_.Clone() : null;
247 localCheapestCostInsertionParameters_ = other.localCheapestCostInsertionParameters_ != null ? other.localCheapestCostInsertionParameters_.Clone() : null;
248 christofidesUseMinimumMatching_ = other.christofidesUseMinimumMatching_;
249 firstSolutionOptimizationPeriod_ = other.firstSolutionOptimizationPeriod_;
250 localSearchOperators_ = other.localSearchOperators_ != null ? other.localSearchOperators_.Clone() : null;
251 lsOperatorNeighborsRatio_ = other.lsOperatorNeighborsRatio_;
252 lsOperatorMinNeighbors_ = other.lsOperatorMinNeighbors_;
253 useMultiArmedBanditConcatenateOperators_ = other.useMultiArmedBanditConcatenateOperators_;
254 multiArmedBanditCompoundOperatorMemoryCoefficient_ = other.multiArmedBanditCompoundOperatorMemoryCoefficient_;
255 multiArmedBanditCompoundOperatorExplorationCoefficient_ = other.multiArmedBanditCompoundOperatorExplorationCoefficient_;
256 maxSwapActiveChainSize_ = other.maxSwapActiveChainSize_;
257 relocateExpensiveChainNumArcsToConsider_ = other.relocateExpensiveChainNumArcsToConsider_;
258 heuristicExpensiveChainLnsNumArcsToConsider_ = other.heuristicExpensiveChainLnsNumArcsToConsider_;
259 heuristicCloseNodesLnsNumNodes_ = other.heuristicCloseNodesLnsNumNodes_;
260 localSearchMetaheuristic_ = other.localSearchMetaheuristic_;
261 localSearchMetaheuristics_ = other.localSearchMetaheuristics_.Clone();
262 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = other.numMaxLocalOptimaBeforeMetaheuristicSwitch_;
263 guidedLocalSearchLambdaCoefficient_ = other.guidedLocalSearchLambdaCoefficient_;
264 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = other.guidedLocalSearchResetPenaltiesOnNewBestSolution_;
265 guidedLocalSearchPenalizeWithVehicleClasses_ = other.guidedLocalSearchPenalizeWithVehicleClasses_;
266 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = other.useGuidedLocalSearchPenaltiesInLocalSearchOperators_;
267 useDepthFirstSearch_ = other.useDepthFirstSearch_;
268 useCp_ = other.useCp_;
269 useCpSat_ = other.useCpSat_;
270 useGeneralizedCpSat_ = other.useGeneralizedCpSat_;
271 satParameters_ = other.satParameters_ != null ? other.satParameters_.Clone() : null;
272 reportIntermediateCpSatSolutions_ = other.reportIntermediateCpSatSolutions_;
273 fallbackToCpSatSizeThreshold_ = other.fallbackToCpSatSizeThreshold_;
274 continuousSchedulingSolver_ = other.continuousSchedulingSolver_;
275 mixedIntegerSchedulingSolver_ = other.mixedIntegerSchedulingSolver_;
276 disableSchedulingBewareThisMayDegradePerformance_ = other.disableSchedulingBewareThisMayDegradePerformance_;
277 optimizationStep_ = other.optimizationStep_;
278 numberOfSolutionsToCollect_ = other.numberOfSolutionsToCollect_;
279 solutionLimit_ = other.solutionLimit_;
280 timeLimit_ = other.timeLimit_ != null ? other.timeLimit_.Clone() : null;
281 lnsTimeLimit_ = other.lnsTimeLimit_ != null ? other.lnsTimeLimit_.Clone() : null;
282 secondaryLsTimeLimitRatio_ = other.secondaryLsTimeLimitRatio_;
283 improvementLimitParameters_ = other.improvementLimitParameters_ != null ? other.improvementLimitParameters_.Clone() : null;
284 useFullPropagation_ = other.useFullPropagation_;
285 logSearch_ = other.logSearch_;
286 logCostScalingFactor_ = other.logCostScalingFactor_;
287 logCostOffset_ = other.logCostOffset_;
288 logTag_ = other.logTag_;
289 useIteratedLocalSearch_ = other.useIteratedLocalSearch_;
290 iteratedLocalSearchParameters_ = other.iteratedLocalSearchParameters_ != null ? other.iteratedLocalSearchParameters_.Clone() : null;
291 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
292 }
293
294 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
295 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
296 public RoutingSearchParameters Clone() {
297 return new RoutingSearchParameters(this);
298 }
299
300
301 public const int FirstSolutionStrategyFieldNumber = 1;
302 private global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value firstSolutionStrategy_ = global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset;
306 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
307 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
309 get { return firstSolutionStrategy_; }
310 set {
311 firstSolutionStrategy_ = value;
312 }
313 }
314
315
316 public const int UseUnfilteredFirstSolutionStrategyFieldNumber = 2;
317 private bool useUnfilteredFirstSolutionStrategy_;
324 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
325 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
327 get { return useUnfilteredFirstSolutionStrategy_; }
328 set {
329 useUnfilteredFirstSolutionStrategy_ = value;
330 }
331 }
332
334 public const int SavingsParametersFieldNumber = 70;
335 private global::Google.OrTools.ConstraintSolver.SavingsParameters savingsParameters_;
339 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
340 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
342 get { return savingsParameters_; }
343 set {
344 savingsParameters_ = value;
345 }
346 }
347
349 public const int GlobalCheapestInsertionFirstSolutionParametersFieldNumber = 71;
350 private global::Google.OrTools.ConstraintSolver.GlobalCheapestInsertionParameters globalCheapestInsertionFirstSolutionParameters_;
355 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
356 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
358 get { return globalCheapestInsertionFirstSolutionParameters_; }
359 set {
360 globalCheapestInsertionFirstSolutionParameters_ = value;
361 }
362 }
363
365 public const int GlobalCheapestInsertionLsOperatorParametersFieldNumber = 72;
366 private global::Google.OrTools.ConstraintSolver.GlobalCheapestInsertionParameters globalCheapestInsertionLsOperatorParameters_;
373 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
374 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
376 get { return globalCheapestInsertionLsOperatorParameters_; }
377 set {
378 globalCheapestInsertionLsOperatorParameters_ = value;
379 }
380 }
381
383 public const int LocalCheapestInsertionParametersFieldNumber = 68;
384 private global::Google.OrTools.ConstraintSolver.LocalCheapestInsertionParameters localCheapestInsertionParameters_;
388 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
389 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
391 get { return localCheapestInsertionParameters_; }
392 set {
393 localCheapestInsertionParameters_ = value;
394 }
395 }
396
398 public const int LocalCheapestCostInsertionParametersFieldNumber = 69;
399 private global::Google.OrTools.ConstraintSolver.LocalCheapestInsertionParameters localCheapestCostInsertionParameters_;
403 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
404 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
406 get { return localCheapestCostInsertionParameters_; }
407 set {
408 localCheapestCostInsertionParameters_ = value;
409 }
410 }
411
413 public const int ChristofidesUseMinimumMatchingFieldNumber = 30;
414 private bool christofidesUseMinimumMatching_;
419 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
420 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
422 get { return christofidesUseMinimumMatching_; }
423 set {
424 christofidesUseMinimumMatching_ = value;
425 }
426 }
427
429 public const int FirstSolutionOptimizationPeriodFieldNumber = 59;
430 private int firstSolutionOptimizationPeriod_;
440 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
441 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
443 get { return firstSolutionOptimizationPeriod_; }
444 set {
445 firstSolutionOptimizationPeriod_ = value;
446 }
447 }
448
450 public const int LocalSearchOperatorsFieldNumber = 3;
451 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators localSearchOperators_;
452 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
453 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
455 get { return localSearchOperators_; }
456 set {
457 localSearchOperators_ = value;
458 }
459 }
460
462 public const int LsOperatorNeighborsRatioFieldNumber = 53;
463 private double lsOperatorNeighborsRatio_;
471 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
472 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
473 public double LsOperatorNeighborsRatio {
474 get { return lsOperatorNeighborsRatio_; }
475 set {
476 lsOperatorNeighborsRatio_ = value;
477 }
478 }
479
481 public const int LsOperatorMinNeighborsFieldNumber = 54;
482 private int lsOperatorMinNeighbors_;
483 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
484 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
485 public int LsOperatorMinNeighbors {
486 get { return lsOperatorMinNeighbors_; }
487 set {
488 lsOperatorMinNeighbors_ = value;
489 }
490 }
491
493 public const int UseMultiArmedBanditConcatenateOperatorsFieldNumber = 41;
494 private bool useMultiArmedBanditConcatenateOperators_;
500 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
501 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
503 get { return useMultiArmedBanditConcatenateOperators_; }
504 set {
505 useMultiArmedBanditConcatenateOperators_ = value;
506 }
507 }
508
510 public const int MultiArmedBanditCompoundOperatorMemoryCoefficientFieldNumber = 42;
511 private double multiArmedBanditCompoundOperatorMemoryCoefficient_;
518 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
519 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
521 get { return multiArmedBanditCompoundOperatorMemoryCoefficient_; }
522 set {
523 multiArmedBanditCompoundOperatorMemoryCoefficient_ = value;
524 }
525 }
526
528 public const int MultiArmedBanditCompoundOperatorExplorationCoefficientFieldNumber = 43;
529 private double multiArmedBanditCompoundOperatorExplorationCoefficient_;
535 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
536 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
538 get { return multiArmedBanditCompoundOperatorExplorationCoefficient_; }
539 set {
540 multiArmedBanditCompoundOperatorExplorationCoefficient_ = value;
541 }
542 }
543
545 public const int MaxSwapActiveChainSizeFieldNumber = 66;
546 private int maxSwapActiveChainSize_;
550 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
551 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
552 public int MaxSwapActiveChainSize {
553 get { return maxSwapActiveChainSize_; }
554 set {
555 maxSwapActiveChainSize_ = value;
556 }
557 }
558
560 public const int RelocateExpensiveChainNumArcsToConsiderFieldNumber = 20;
561 private int relocateExpensiveChainNumArcsToConsider_;
571 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
572 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
574 get { return relocateExpensiveChainNumArcsToConsider_; }
575 set {
576 relocateExpensiveChainNumArcsToConsider_ = value;
577 }
578 }
579
581 public const int HeuristicExpensiveChainLnsNumArcsToConsiderFieldNumber = 32;
582 private int heuristicExpensiveChainLnsNumArcsToConsider_;
587 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
588 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
590 get { return heuristicExpensiveChainLnsNumArcsToConsider_; }
591 set {
592 heuristicExpensiveChainLnsNumArcsToConsider_ = value;
593 }
594 }
595
597 public const int HeuristicCloseNodesLnsNumNodesFieldNumber = 35;
598 private int heuristicCloseNodesLnsNumNodes_;
603 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
604 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
606 get { return heuristicCloseNodesLnsNumNodes_; }
607 set {
608 heuristicCloseNodesLnsNumNodes_ = value;
609 }
610 }
611
613 public const int LocalSearchMetaheuristicFieldNumber = 4;
614 private global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value localSearchMetaheuristic_ = global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset;
618 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
619 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
621 get { return localSearchMetaheuristic_; }
622 set {
623 localSearchMetaheuristic_ = value;
624 }
625 }
626
628 public const int LocalSearchMetaheuristicsFieldNumber = 63;
629 private static readonly pb::FieldCodec<global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value> _repeated_localSearchMetaheuristics_codec
630 = pb::FieldCodec.ForEnum(506, x => (int) x, x => (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) x);
631 private readonly pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value> localSearchMetaheuristics_ = new pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value>();
638 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
639 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
640 public pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value> LocalSearchMetaheuristics {
641 get { return localSearchMetaheuristics_; }
643
645 public const int NumMaxLocalOptimaBeforeMetaheuristicSwitchFieldNumber = 64;
646 private int numMaxLocalOptimaBeforeMetaheuristicSwitch_;
647 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
648 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
650 get { return numMaxLocalOptimaBeforeMetaheuristicSwitch_; }
651 set {
652 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = value;
653 }
654 }
655
657 public const int GuidedLocalSearchLambdaCoefficientFieldNumber = 5;
658 private double guidedLocalSearchLambdaCoefficient_;
665 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
666 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
668 get { return guidedLocalSearchLambdaCoefficient_; }
669 set {
670 guidedLocalSearchLambdaCoefficient_ = value;
671 }
672 }
673
675 public const int GuidedLocalSearchResetPenaltiesOnNewBestSolutionFieldNumber = 51;
676 private bool guidedLocalSearchResetPenaltiesOnNewBestSolution_;
681 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
682 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
684 get { return guidedLocalSearchResetPenaltiesOnNewBestSolution_; }
685 set {
686 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = value;
687 }
688 }
689
691 public const int GuidedLocalSearchPenalizeWithVehicleClassesFieldNumber = 61;
692 private bool guidedLocalSearchPenalizeWithVehicleClasses_;
698 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
699 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
701 get { return guidedLocalSearchPenalizeWithVehicleClasses_; }
702 set {
703 guidedLocalSearchPenalizeWithVehicleClasses_ = value;
704 }
705 }
706
708 public const int UseGuidedLocalSearchPenaltiesInLocalSearchOperatorsFieldNumber = 62;
709 private bool useGuidedLocalSearchPenaltiesInLocalSearchOperators_;
714 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
715 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
717 get { return useGuidedLocalSearchPenaltiesInLocalSearchOperators_; }
718 set {
719 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = value;
720 }
721 }
722
724 public const int UseDepthFirstSearchFieldNumber = 6;
725 private bool useDepthFirstSearch_;
732 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
733 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
734 public bool UseDepthFirstSearch {
735 get { return useDepthFirstSearch_; }
736 set {
737 useDepthFirstSearch_ = value;
738 }
739 }
740
742 public const int UseCpFieldNumber = 28;
743 private global::Google.OrTools.Util.OptionalBoolean useCp_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
749 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
750 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
751 public global::Google.OrTools.Util.OptionalBoolean UseCp {
752 get { return useCp_; }
753 set {
754 useCp_ = value;
755 }
756 }
757
759 public const int UseCpSatFieldNumber = 27;
760 private global::Google.OrTools.Util.OptionalBoolean useCpSat_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
767 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
768 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
769 public global::Google.OrTools.Util.OptionalBoolean UseCpSat {
770 get { return useCpSat_; }
771 set {
772 useCpSat_ = value;
773 }
774 }
775
777 public const int UseGeneralizedCpSatFieldNumber = 47;
778 private global::Google.OrTools.Util.OptionalBoolean useGeneralizedCpSat_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
785 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
786 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
787 public global::Google.OrTools.Util.OptionalBoolean UseGeneralizedCpSat {
788 get { return useGeneralizedCpSat_; }
789 set {
790 useGeneralizedCpSat_ = value;
791 }
792 }
793
795 public const int SatParametersFieldNumber = 48;
796 private global::Google.OrTools.Sat.SatParameters satParameters_;
801 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
802 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
803 public global::Google.OrTools.Sat.SatParameters SatParameters {
804 get { return satParameters_; }
805 set {
806 satParameters_ = value;
807 }
808 }
809
811 public const int ReportIntermediateCpSatSolutionsFieldNumber = 56;
812 private bool reportIntermediateCpSatSolutions_;
817 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
818 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
820 get { return reportIntermediateCpSatSolutions_; }
821 set {
822 reportIntermediateCpSatSolutions_ = value;
823 }
824 }
825
827 public const int FallbackToCpSatSizeThresholdFieldNumber = 52;
828 private int fallbackToCpSatSizeThreshold_;
833 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
834 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
836 get { return fallbackToCpSatSizeThreshold_; }
837 set {
838 fallbackToCpSatSizeThreshold_ = value;
839 }
840 }
841
843 public const int ContinuousSchedulingSolverFieldNumber = 33;
844 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver continuousSchedulingSolver_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset;
845 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
846 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
848 get { return continuousSchedulingSolver_; }
849 set {
850 continuousSchedulingSolver_ = value;
851 }
852 }
853
855 public const int MixedIntegerSchedulingSolverFieldNumber = 34;
856 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver mixedIntegerSchedulingSolver_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset;
857 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
858 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
860 get { return mixedIntegerSchedulingSolver_; }
861 set {
862 mixedIntegerSchedulingSolver_ = value;
863 }
864 }
865
867 public const int DisableSchedulingBewareThisMayDegradePerformanceFieldNumber = 50;
868 private readonly static bool DisableSchedulingBewareThisMayDegradePerformanceDefaultValue = false;
869
870 private bool disableSchedulingBewareThisMayDegradePerformance_;
875 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
876 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
878 get { if ((_hasBits0 & 1) != 0) { return disableSchedulingBewareThisMayDegradePerformance_; } else { return DisableSchedulingBewareThisMayDegradePerformanceDefaultValue; } }
879 set {
880 _hasBits0 |= 1;
881 disableSchedulingBewareThisMayDegradePerformance_ = value;
882 }
883 }
885 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
886 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
887 public bool HasDisableSchedulingBewareThisMayDegradePerformance {
888 get { return (_hasBits0 & 1) != 0; }
889 }
890 /// <summary>Clears the value of the "disable_scheduling_beware_this_may_degrade_performance" field</summary>
891 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
892 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
894 _hasBits0 &= ~1;
895 }
898 public const int OptimizationStepFieldNumber = 7;
899 private double optimizationStep_;
905 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
906 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
907 public double OptimizationStep {
908 get { return optimizationStep_; }
909 set {
910 optimizationStep_ = value;
911 }
912 }
913
915 public const int NumberOfSolutionsToCollectFieldNumber = 17;
916 private int numberOfSolutionsToCollect_;
921 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
922 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
923 public int NumberOfSolutionsToCollect {
924 get { return numberOfSolutionsToCollect_; }
925 set {
926 numberOfSolutionsToCollect_ = value;
927 }
928 }
929
931 public const int SolutionLimitFieldNumber = 8;
932 private long solutionLimit_;
938 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
939 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
940 public long SolutionLimit {
941 get { return solutionLimit_; }
942 set {
943 solutionLimit_ = value;
944 }
945 }
946
948 public const int TimeLimitFieldNumber = 9;
949 private global::Google.Protobuf.WellKnownTypes.Duration timeLimit_;
953 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
954 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
955 public global::Google.Protobuf.WellKnownTypes.Duration TimeLimit {
956 get { return timeLimit_; }
957 set {
958 timeLimit_ = value;
959 }
960 }
961
963 public const int LnsTimeLimitFieldNumber = 10;
964 private global::Google.Protobuf.WellKnownTypes.Duration lnsTimeLimit_;
969 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
970 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
971 public global::Google.Protobuf.WellKnownTypes.Duration LnsTimeLimit {
972 get { return lnsTimeLimit_; }
973 set {
974 lnsTimeLimit_ = value;
975 }
976 }
977
979 public const int SecondaryLsTimeLimitRatioFieldNumber = 57;
980 private double secondaryLsTimeLimitRatio_;
989 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
990 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
991 public double SecondaryLsTimeLimitRatio {
992 get { return secondaryLsTimeLimitRatio_; }
993 set {
994 secondaryLsTimeLimitRatio_ = value;
995 }
996 }
997
999 public const int ImprovementLimitParametersFieldNumber = 37;
1000 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters improvementLimitParameters_;
1005 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1006 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1008 get { return improvementLimitParameters_; }
1009 set {
1010 improvementLimitParameters_ = value;
1011 }
1012 }
1013
1015 public const int UseFullPropagationFieldNumber = 11;
1016 private bool useFullPropagation_;
1029 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1030 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1031 public bool UseFullPropagation {
1032 get { return useFullPropagation_; }
1033 set {
1034 useFullPropagation_ = value;
1036 }
1037
1039 public const int LogSearchFieldNumber = 13;
1040 private bool logSearch_;
1041
1056 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1057 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1058 public bool LogSearch {
1059 get { return logSearch_; }
1060 set {
1061 logSearch_ = value;
1062 }
1064
1066 public const int LogCostScalingFactorFieldNumber = 22;
1067 private double logCostScalingFactor_;
1069
1072 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1073 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1074 public double LogCostScalingFactor {
1075 get { return logCostScalingFactor_; }
1076 set {
1077 logCostScalingFactor_ = value;
1078 }
1080
1082 public const int LogCostOffsetFieldNumber = 29;
1083 private double logCostOffset_;
1084 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1085 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1086 public double LogCostOffset {
1087 get { return logCostOffset_; }
1088 set {
1089 logCostOffset_ = value;
1090 }
1092
1094 public const int LogTagFieldNumber = 36;
1095 private string logTag_ = "";
1097
1100 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1101 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1102 public string LogTag {
1103 get { return logTag_; }
1104 set {
1105 logTag_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1106 }
1108
1110 public const int UseIteratedLocalSearchFieldNumber = 58;
1111 private bool useIteratedLocalSearch_;
1113
1116 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1117 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1118 public bool UseIteratedLocalSearch {
1119 get { return useIteratedLocalSearch_; }
1120 set {
1121 useIteratedLocalSearch_ = value;
1122 }
1124
1126 public const int IteratedLocalSearchParametersFieldNumber = 60;
1127 private global::Google.OrTools.ConstraintSolver.IteratedLocalSearchParameters iteratedLocalSearchParameters_;
1129
1131 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1132 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1134 get { return iteratedLocalSearchParameters_; }
1135 set {
1136 iteratedLocalSearchParameters_ = value;
1137 }
1139
1140 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1141 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1142 public override bool Equals(object other) {
1143 return Equals(other as RoutingSearchParameters);
1144 }
1145
1146 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1147 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1148 public bool Equals(RoutingSearchParameters other) {
1149 if (ReferenceEquals(other, null)) {
1150 return false;
1151 }
1152 if (ReferenceEquals(other, this)) {
1153 return true;
1154 }
1155 if (FirstSolutionStrategy != other.FirstSolutionStrategy) return false;
1156 if (UseUnfilteredFirstSolutionStrategy != other.UseUnfilteredFirstSolutionStrategy) return false;
1157 if (!object.Equals(SavingsParameters, other.SavingsParameters)) return false;
1158 if (!object.Equals(GlobalCheapestInsertionFirstSolutionParameters, other.GlobalCheapestInsertionFirstSolutionParameters)) return false;
1159 if (!object.Equals(GlobalCheapestInsertionLsOperatorParameters, other.GlobalCheapestInsertionLsOperatorParameters)) return false;
1160 if (!object.Equals(LocalCheapestInsertionParameters, other.LocalCheapestInsertionParameters)) return false;
1161 if (!object.Equals(LocalCheapestCostInsertionParameters, other.LocalCheapestCostInsertionParameters)) return false;
1162 if (ChristofidesUseMinimumMatching != other.ChristofidesUseMinimumMatching) return false;
1163 if (FirstSolutionOptimizationPeriod != other.FirstSolutionOptimizationPeriod) return false;
1164 if (!object.Equals(LocalSearchOperators, other.LocalSearchOperators)) return false;
1165 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LsOperatorNeighborsRatio, other.LsOperatorNeighborsRatio)) return false;
1166 if (LsOperatorMinNeighbors != other.LsOperatorMinNeighbors) return false;
1167 if (UseMultiArmedBanditConcatenateOperators != other.UseMultiArmedBanditConcatenateOperators) return false;
1168 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MultiArmedBanditCompoundOperatorMemoryCoefficient, other.MultiArmedBanditCompoundOperatorMemoryCoefficient)) return false;
1169 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MultiArmedBanditCompoundOperatorExplorationCoefficient, other.MultiArmedBanditCompoundOperatorExplorationCoefficient)) return false;
1170 if (MaxSwapActiveChainSize != other.MaxSwapActiveChainSize) return false;
1171 if (RelocateExpensiveChainNumArcsToConsider != other.RelocateExpensiveChainNumArcsToConsider) return false;
1172 if (HeuristicExpensiveChainLnsNumArcsToConsider != other.HeuristicExpensiveChainLnsNumArcsToConsider) return false;
1173 if (HeuristicCloseNodesLnsNumNodes != other.HeuristicCloseNodesLnsNumNodes) return false;
1174 if (LocalSearchMetaheuristic != other.LocalSearchMetaheuristic) return false;
1175 if(!localSearchMetaheuristics_.Equals(other.localSearchMetaheuristics_)) return false;
1176 if (NumMaxLocalOptimaBeforeMetaheuristicSwitch != other.NumMaxLocalOptimaBeforeMetaheuristicSwitch) return false;
1177 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(GuidedLocalSearchLambdaCoefficient, other.GuidedLocalSearchLambdaCoefficient)) return false;
1178 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != other.GuidedLocalSearchResetPenaltiesOnNewBestSolution) return false;
1179 if (GuidedLocalSearchPenalizeWithVehicleClasses != other.GuidedLocalSearchPenalizeWithVehicleClasses) return false;
1180 if (UseGuidedLocalSearchPenaltiesInLocalSearchOperators != other.UseGuidedLocalSearchPenaltiesInLocalSearchOperators) return false;
1181 if (UseDepthFirstSearch != other.UseDepthFirstSearch) return false;
1182 if (UseCp != other.UseCp) return false;
1183 if (UseCpSat != other.UseCpSat) return false;
1184 if (UseGeneralizedCpSat != other.UseGeneralizedCpSat) return false;
1185 if (!object.Equals(SatParameters, other.SatParameters)) return false;
1186 if (ReportIntermediateCpSatSolutions != other.ReportIntermediateCpSatSolutions) return false;
1187 if (FallbackToCpSatSizeThreshold != other.FallbackToCpSatSizeThreshold) return false;
1188 if (ContinuousSchedulingSolver != other.ContinuousSchedulingSolver) return false;
1189 if (MixedIntegerSchedulingSolver != other.MixedIntegerSchedulingSolver) return false;
1190 if (DisableSchedulingBewareThisMayDegradePerformance != other.DisableSchedulingBewareThisMayDegradePerformance) return false;
1191 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(OptimizationStep, other.OptimizationStep)) return false;
1192 if (NumberOfSolutionsToCollect != other.NumberOfSolutionsToCollect) return false;
1193 if (SolutionLimit != other.SolutionLimit) return false;
1194 if (!object.Equals(TimeLimit, other.TimeLimit)) return false;
1195 if (!object.Equals(LnsTimeLimit, other.LnsTimeLimit)) return false;
1196 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SecondaryLsTimeLimitRatio, other.SecondaryLsTimeLimitRatio)) return false;
1197 if (!object.Equals(ImprovementLimitParameters, other.ImprovementLimitParameters)) return false;
1198 if (UseFullPropagation != other.UseFullPropagation) return false;
1199 if (LogSearch != other.LogSearch) return false;
1200 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LogCostScalingFactor, other.LogCostScalingFactor)) return false;
1201 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LogCostOffset, other.LogCostOffset)) return false;
1202 if (LogTag != other.LogTag) return false;
1203 if (UseIteratedLocalSearch != other.UseIteratedLocalSearch) return false;
1204 if (!object.Equals(IteratedLocalSearchParameters, other.IteratedLocalSearchParameters)) return false;
1205 return Equals(_unknownFields, other._unknownFields);
1206 }
1207
1208 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1209 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1210 public override int GetHashCode() {
1211 int hash = 1;
1212 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) hash ^= FirstSolutionStrategy.GetHashCode();
1213 if (UseUnfilteredFirstSolutionStrategy != false) hash ^= UseUnfilteredFirstSolutionStrategy.GetHashCode();
1214 if (savingsParameters_ != null) hash ^= SavingsParameters.GetHashCode();
1215 if (globalCheapestInsertionFirstSolutionParameters_ != null) hash ^= GlobalCheapestInsertionFirstSolutionParameters.GetHashCode();
1216 if (globalCheapestInsertionLsOperatorParameters_ != null) hash ^= GlobalCheapestInsertionLsOperatorParameters.GetHashCode();
1217 if (localCheapestInsertionParameters_ != null) hash ^= LocalCheapestInsertionParameters.GetHashCode();
1218 if (localCheapestCostInsertionParameters_ != null) hash ^= LocalCheapestCostInsertionParameters.GetHashCode();
1219 if (ChristofidesUseMinimumMatching != false) hash ^= ChristofidesUseMinimumMatching.GetHashCode();
1221 if (localSearchOperators_ != null) hash ^= LocalSearchOperators.GetHashCode();
1222 if (LsOperatorNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LsOperatorNeighborsRatio);
1223 if (LsOperatorMinNeighbors != 0) hash ^= LsOperatorMinNeighbors.GetHashCode();
1225 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1226 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1227 if (MaxSwapActiveChainSize != 0) hash ^= MaxSwapActiveChainSize.GetHashCode();
1230 if (HeuristicCloseNodesLnsNumNodes != 0) hash ^= HeuristicCloseNodesLnsNumNodes.GetHashCode();
1232 hash ^= localSearchMetaheuristics_.GetHashCode();
1234 if (GuidedLocalSearchLambdaCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(GuidedLocalSearchLambdaCoefficient);
1238 if (UseDepthFirstSearch != false) hash ^= UseDepthFirstSearch.GetHashCode();
1239 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCp.GetHashCode();
1240 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCpSat.GetHashCode();
1241 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGeneralizedCpSat.GetHashCode();
1242 if (satParameters_ != null) hash ^= SatParameters.GetHashCode();
1243 if (ReportIntermediateCpSatSolutions != false) hash ^= ReportIntermediateCpSatSolutions.GetHashCode();
1244 if (FallbackToCpSatSizeThreshold != 0) hash ^= FallbackToCpSatSizeThreshold.GetHashCode();
1248 if (OptimizationStep != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(OptimizationStep);
1249 if (NumberOfSolutionsToCollect != 0) hash ^= NumberOfSolutionsToCollect.GetHashCode();
1250 if (SolutionLimit != 0L) hash ^= SolutionLimit.GetHashCode();
1251 if (timeLimit_ != null) hash ^= TimeLimit.GetHashCode();
1252 if (lnsTimeLimit_ != null) hash ^= LnsTimeLimit.GetHashCode();
1253 if (SecondaryLsTimeLimitRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SecondaryLsTimeLimitRatio);
1254 if (improvementLimitParameters_ != null) hash ^= ImprovementLimitParameters.GetHashCode();
1255 if (UseFullPropagation != false) hash ^= UseFullPropagation.GetHashCode();
1256 if (LogSearch != false) hash ^= LogSearch.GetHashCode();
1257 if (LogCostScalingFactor != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LogCostScalingFactor);
1258 if (LogCostOffset != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LogCostOffset);
1259 if (LogTag.Length != 0) hash ^= LogTag.GetHashCode();
1260 if (UseIteratedLocalSearch != false) hash ^= UseIteratedLocalSearch.GetHashCode();
1261 if (iteratedLocalSearchParameters_ != null) hash ^= IteratedLocalSearchParameters.GetHashCode();
1262 if (_unknownFields != null) {
1263 hash ^= _unknownFields.GetHashCode();
1264 }
1265 return hash;
1266 }
1267
1268 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1269 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1270 public override string ToString() {
1271 return pb::JsonFormatter.ToDiagnosticString(this);
1272 }
1273
1274 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1275 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1276 public void WriteTo(pb::CodedOutputStream output) {
1277 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1278 output.WriteRawMessage(this);
1279 #else
1281 output.WriteRawTag(8);
1282 output.WriteEnum((int) FirstSolutionStrategy);
1283 }
1284 if (UseUnfilteredFirstSolutionStrategy != false) {
1285 output.WriteRawTag(16);
1286 output.WriteBool(UseUnfilteredFirstSolutionStrategy);
1287 }
1288 if (localSearchOperators_ != null) {
1289 output.WriteRawTag(26);
1290 output.WriteMessage(LocalSearchOperators);
1291 }
1292 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1293 output.WriteRawTag(32);
1294 output.WriteEnum((int) LocalSearchMetaheuristic);
1295 }
1296 if (GuidedLocalSearchLambdaCoefficient != 0D) {
1297 output.WriteRawTag(41);
1298 output.WriteDouble(GuidedLocalSearchLambdaCoefficient);
1299 }
1300 if (UseDepthFirstSearch != false) {
1301 output.WriteRawTag(48);
1302 output.WriteBool(UseDepthFirstSearch);
1303 }
1304 if (OptimizationStep != 0D) {
1305 output.WriteRawTag(57);
1306 output.WriteDouble(OptimizationStep);
1307 }
1308 if (SolutionLimit != 0L) {
1309 output.WriteRawTag(64);
1310 output.WriteInt64(SolutionLimit);
1311 }
1312 if (timeLimit_ != null) {
1313 output.WriteRawTag(74);
1314 output.WriteMessage(TimeLimit);
1315 }
1316 if (lnsTimeLimit_ != null) {
1317 output.WriteRawTag(82);
1318 output.WriteMessage(LnsTimeLimit);
1319 }
1320 if (UseFullPropagation != false) {
1321 output.WriteRawTag(88);
1322 output.WriteBool(UseFullPropagation);
1323 }
1324 if (LogSearch != false) {
1325 output.WriteRawTag(104);
1326 output.WriteBool(LogSearch);
1327 }
1328 if (NumberOfSolutionsToCollect != 0) {
1329 output.WriteRawTag(136, 1);
1330 output.WriteInt32(NumberOfSolutionsToCollect);
1331 }
1332 if (RelocateExpensiveChainNumArcsToConsider != 0) {
1333 output.WriteRawTag(160, 1);
1334 output.WriteInt32(RelocateExpensiveChainNumArcsToConsider);
1335 }
1336 if (LogCostScalingFactor != 0D) {
1337 output.WriteRawTag(177, 1);
1338 output.WriteDouble(LogCostScalingFactor);
1339 }
1340 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1341 output.WriteRawTag(216, 1);
1342 output.WriteEnum((int) UseCpSat);
1343 }
1344 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1345 output.WriteRawTag(224, 1);
1346 output.WriteEnum((int) UseCp);
1347 }
1348 if (LogCostOffset != 0D) {
1349 output.WriteRawTag(233, 1);
1350 output.WriteDouble(LogCostOffset);
1351 }
1352 if (ChristofidesUseMinimumMatching != false) {
1353 output.WriteRawTag(240, 1);
1354 output.WriteBool(ChristofidesUseMinimumMatching);
1355 }
1356 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1357 output.WriteRawTag(128, 2);
1358 output.WriteInt32(HeuristicExpensiveChainLnsNumArcsToConsider);
1359 }
1360 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1361 output.WriteRawTag(136, 2);
1362 output.WriteEnum((int) ContinuousSchedulingSolver);
1363 }
1364 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1365 output.WriteRawTag(144, 2);
1366 output.WriteEnum((int) MixedIntegerSchedulingSolver);
1367 }
1368 if (HeuristicCloseNodesLnsNumNodes != 0) {
1369 output.WriteRawTag(152, 2);
1370 output.WriteInt32(HeuristicCloseNodesLnsNumNodes);
1371 }
1372 if (LogTag.Length != 0) {
1373 output.WriteRawTag(162, 2);
1374 output.WriteString(LogTag);
1375 }
1376 if (improvementLimitParameters_ != null) {
1377 output.WriteRawTag(170, 2);
1378 output.WriteMessage(ImprovementLimitParameters);
1379 }
1380 if (UseMultiArmedBanditConcatenateOperators != false) {
1381 output.WriteRawTag(200, 2);
1382 output.WriteBool(UseMultiArmedBanditConcatenateOperators);
1383 }
1384 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1385 output.WriteRawTag(209, 2);
1386 output.WriteDouble(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1387 }
1388 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1389 output.WriteRawTag(217, 2);
1390 output.WriteDouble(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1391 }
1392 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1393 output.WriteRawTag(248, 2);
1394 output.WriteEnum((int) UseGeneralizedCpSat);
1395 }
1396 if (satParameters_ != null) {
1397 output.WriteRawTag(130, 3);
1398 output.WriteMessage(SatParameters);
1399 }
1400 if (HasDisableSchedulingBewareThisMayDegradePerformance) {
1401 output.WriteRawTag(144, 3);
1402 output.WriteBool(DisableSchedulingBewareThisMayDegradePerformance);
1403 }
1404 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
1405 output.WriteRawTag(152, 3);
1406 output.WriteBool(GuidedLocalSearchResetPenaltiesOnNewBestSolution);
1407 }
1408 if (FallbackToCpSatSizeThreshold != 0) {
1409 output.WriteRawTag(160, 3);
1410 output.WriteInt32(FallbackToCpSatSizeThreshold);
1411 }
1412 if (LsOperatorNeighborsRatio != 0D) {
1413 output.WriteRawTag(169, 3);
1414 output.WriteDouble(LsOperatorNeighborsRatio);
1415 }
1416 if (LsOperatorMinNeighbors != 0) {
1417 output.WriteRawTag(176, 3);
1418 output.WriteInt32(LsOperatorMinNeighbors);
1419 }
1420 if (ReportIntermediateCpSatSolutions != false) {
1421 output.WriteRawTag(192, 3);
1422 output.WriteBool(ReportIntermediateCpSatSolutions);
1423 }
1424 if (SecondaryLsTimeLimitRatio != 0D) {
1425 output.WriteRawTag(201, 3);
1426 output.WriteDouble(SecondaryLsTimeLimitRatio);
1427 }
1428 if (UseIteratedLocalSearch != false) {
1429 output.WriteRawTag(208, 3);
1430 output.WriteBool(UseIteratedLocalSearch);
1431 }
1432 if (FirstSolutionOptimizationPeriod != 0) {
1433 output.WriteRawTag(216, 3);
1434 output.WriteInt32(FirstSolutionOptimizationPeriod);
1435 }
1436 if (iteratedLocalSearchParameters_ != null) {
1437 output.WriteRawTag(226, 3);
1438 output.WriteMessage(IteratedLocalSearchParameters);
1439 }
1440 if (GuidedLocalSearchPenalizeWithVehicleClasses != false) {
1441 output.WriteRawTag(232, 3);
1442 output.WriteBool(GuidedLocalSearchPenalizeWithVehicleClasses);
1443 }
1444 if (UseGuidedLocalSearchPenaltiesInLocalSearchOperators != false) {
1445 output.WriteRawTag(240, 3);
1446 output.WriteBool(UseGuidedLocalSearchPenaltiesInLocalSearchOperators);
1447 }
1448 localSearchMetaheuristics_.WriteTo(output, _repeated_localSearchMetaheuristics_codec);
1449 if (NumMaxLocalOptimaBeforeMetaheuristicSwitch != 0) {
1450 output.WriteRawTag(128, 4);
1451 output.WriteInt32(NumMaxLocalOptimaBeforeMetaheuristicSwitch);
1452 }
1453 if (MaxSwapActiveChainSize != 0) {
1454 output.WriteRawTag(144, 4);
1455 output.WriteInt32(MaxSwapActiveChainSize);
1456 }
1457 if (localCheapestInsertionParameters_ != null) {
1458 output.WriteRawTag(162, 4);
1459 output.WriteMessage(LocalCheapestInsertionParameters);
1460 }
1461 if (localCheapestCostInsertionParameters_ != null) {
1462 output.WriteRawTag(170, 4);
1463 output.WriteMessage(LocalCheapestCostInsertionParameters);
1464 }
1465 if (savingsParameters_ != null) {
1466 output.WriteRawTag(178, 4);
1467 output.WriteMessage(SavingsParameters);
1468 }
1469 if (globalCheapestInsertionFirstSolutionParameters_ != null) {
1470 output.WriteRawTag(186, 4);
1471 output.WriteMessage(GlobalCheapestInsertionFirstSolutionParameters);
1472 }
1473 if (globalCheapestInsertionLsOperatorParameters_ != null) {
1474 output.WriteRawTag(194, 4);
1475 output.WriteMessage(GlobalCheapestInsertionLsOperatorParameters);
1476 }
1477 if (_unknownFields != null) {
1478 _unknownFields.WriteTo(output);
1479 }
1480 #endif
1481 }
1482
1483 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1484 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1485 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1486 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
1487 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1488 output.WriteRawTag(8);
1489 output.WriteEnum((int) FirstSolutionStrategy);
1490 }
1491 if (UseUnfilteredFirstSolutionStrategy != false) {
1492 output.WriteRawTag(16);
1493 output.WriteBool(UseUnfilteredFirstSolutionStrategy);
1494 }
1495 if (localSearchOperators_ != null) {
1496 output.WriteRawTag(26);
1497 output.WriteMessage(LocalSearchOperators);
1498 }
1499 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1500 output.WriteRawTag(32);
1501 output.WriteEnum((int) LocalSearchMetaheuristic);
1502 }
1503 if (GuidedLocalSearchLambdaCoefficient != 0D) {
1504 output.WriteRawTag(41);
1505 output.WriteDouble(GuidedLocalSearchLambdaCoefficient);
1506 }
1507 if (UseDepthFirstSearch != false) {
1508 output.WriteRawTag(48);
1509 output.WriteBool(UseDepthFirstSearch);
1510 }
1511 if (OptimizationStep != 0D) {
1512 output.WriteRawTag(57);
1513 output.WriteDouble(OptimizationStep);
1514 }
1515 if (SolutionLimit != 0L) {
1516 output.WriteRawTag(64);
1517 output.WriteInt64(SolutionLimit);
1518 }
1519 if (timeLimit_ != null) {
1520 output.WriteRawTag(74);
1521 output.WriteMessage(TimeLimit);
1522 }
1523 if (lnsTimeLimit_ != null) {
1524 output.WriteRawTag(82);
1525 output.WriteMessage(LnsTimeLimit);
1526 }
1527 if (UseFullPropagation != false) {
1528 output.WriteRawTag(88);
1529 output.WriteBool(UseFullPropagation);
1530 }
1531 if (LogSearch != false) {
1532 output.WriteRawTag(104);
1533 output.WriteBool(LogSearch);
1534 }
1535 if (NumberOfSolutionsToCollect != 0) {
1536 output.WriteRawTag(136, 1);
1537 output.WriteInt32(NumberOfSolutionsToCollect);
1538 }
1539 if (RelocateExpensiveChainNumArcsToConsider != 0) {
1540 output.WriteRawTag(160, 1);
1541 output.WriteInt32(RelocateExpensiveChainNumArcsToConsider);
1542 }
1543 if (LogCostScalingFactor != 0D) {
1544 output.WriteRawTag(177, 1);
1545 output.WriteDouble(LogCostScalingFactor);
1546 }
1547 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1548 output.WriteRawTag(216, 1);
1549 output.WriteEnum((int) UseCpSat);
1550 }
1551 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1552 output.WriteRawTag(224, 1);
1553 output.WriteEnum((int) UseCp);
1554 }
1555 if (LogCostOffset != 0D) {
1556 output.WriteRawTag(233, 1);
1557 output.WriteDouble(LogCostOffset);
1558 }
1559 if (ChristofidesUseMinimumMatching != false) {
1560 output.WriteRawTag(240, 1);
1561 output.WriteBool(ChristofidesUseMinimumMatching);
1562 }
1563 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1564 output.WriteRawTag(128, 2);
1565 output.WriteInt32(HeuristicExpensiveChainLnsNumArcsToConsider);
1566 }
1567 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1568 output.WriteRawTag(136, 2);
1569 output.WriteEnum((int) ContinuousSchedulingSolver);
1570 }
1571 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1572 output.WriteRawTag(144, 2);
1573 output.WriteEnum((int) MixedIntegerSchedulingSolver);
1574 }
1575 if (HeuristicCloseNodesLnsNumNodes != 0) {
1576 output.WriteRawTag(152, 2);
1577 output.WriteInt32(HeuristicCloseNodesLnsNumNodes);
1578 }
1579 if (LogTag.Length != 0) {
1580 output.WriteRawTag(162, 2);
1581 output.WriteString(LogTag);
1582 }
1583 if (improvementLimitParameters_ != null) {
1584 output.WriteRawTag(170, 2);
1585 output.WriteMessage(ImprovementLimitParameters);
1586 }
1587 if (UseMultiArmedBanditConcatenateOperators != false) {
1588 output.WriteRawTag(200, 2);
1589 output.WriteBool(UseMultiArmedBanditConcatenateOperators);
1590 }
1591 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1592 output.WriteRawTag(209, 2);
1593 output.WriteDouble(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1594 }
1595 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1596 output.WriteRawTag(217, 2);
1597 output.WriteDouble(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1598 }
1599 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1600 output.WriteRawTag(248, 2);
1601 output.WriteEnum((int) UseGeneralizedCpSat);
1602 }
1603 if (satParameters_ != null) {
1604 output.WriteRawTag(130, 3);
1605 output.WriteMessage(SatParameters);
1606 }
1607 if (HasDisableSchedulingBewareThisMayDegradePerformance) {
1608 output.WriteRawTag(144, 3);
1609 output.WriteBool(DisableSchedulingBewareThisMayDegradePerformance);
1610 }
1611 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
1612 output.WriteRawTag(152, 3);
1613 output.WriteBool(GuidedLocalSearchResetPenaltiesOnNewBestSolution);
1614 }
1615 if (FallbackToCpSatSizeThreshold != 0) {
1616 output.WriteRawTag(160, 3);
1617 output.WriteInt32(FallbackToCpSatSizeThreshold);
1618 }
1619 if (LsOperatorNeighborsRatio != 0D) {
1620 output.WriteRawTag(169, 3);
1621 output.WriteDouble(LsOperatorNeighborsRatio);
1622 }
1623 if (LsOperatorMinNeighbors != 0) {
1624 output.WriteRawTag(176, 3);
1625 output.WriteInt32(LsOperatorMinNeighbors);
1626 }
1627 if (ReportIntermediateCpSatSolutions != false) {
1628 output.WriteRawTag(192, 3);
1629 output.WriteBool(ReportIntermediateCpSatSolutions);
1630 }
1631 if (SecondaryLsTimeLimitRatio != 0D) {
1632 output.WriteRawTag(201, 3);
1633 output.WriteDouble(SecondaryLsTimeLimitRatio);
1634 }
1635 if (UseIteratedLocalSearch != false) {
1636 output.WriteRawTag(208, 3);
1637 output.WriteBool(UseIteratedLocalSearch);
1638 }
1639 if (FirstSolutionOptimizationPeriod != 0) {
1640 output.WriteRawTag(216, 3);
1641 output.WriteInt32(FirstSolutionOptimizationPeriod);
1642 }
1643 if (iteratedLocalSearchParameters_ != null) {
1644 output.WriteRawTag(226, 3);
1645 output.WriteMessage(IteratedLocalSearchParameters);
1646 }
1647 if (GuidedLocalSearchPenalizeWithVehicleClasses != false) {
1648 output.WriteRawTag(232, 3);
1649 output.WriteBool(GuidedLocalSearchPenalizeWithVehicleClasses);
1650 }
1651 if (UseGuidedLocalSearchPenaltiesInLocalSearchOperators != false) {
1652 output.WriteRawTag(240, 3);
1653 output.WriteBool(UseGuidedLocalSearchPenaltiesInLocalSearchOperators);
1654 }
1655 localSearchMetaheuristics_.WriteTo(ref output, _repeated_localSearchMetaheuristics_codec);
1656 if (NumMaxLocalOptimaBeforeMetaheuristicSwitch != 0) {
1657 output.WriteRawTag(128, 4);
1658 output.WriteInt32(NumMaxLocalOptimaBeforeMetaheuristicSwitch);
1659 }
1660 if (MaxSwapActiveChainSize != 0) {
1661 output.WriteRawTag(144, 4);
1662 output.WriteInt32(MaxSwapActiveChainSize);
1663 }
1664 if (localCheapestInsertionParameters_ != null) {
1665 output.WriteRawTag(162, 4);
1666 output.WriteMessage(LocalCheapestInsertionParameters);
1667 }
1668 if (localCheapestCostInsertionParameters_ != null) {
1669 output.WriteRawTag(170, 4);
1670 output.WriteMessage(LocalCheapestCostInsertionParameters);
1671 }
1672 if (savingsParameters_ != null) {
1673 output.WriteRawTag(178, 4);
1674 output.WriteMessage(SavingsParameters);
1675 }
1676 if (globalCheapestInsertionFirstSolutionParameters_ != null) {
1677 output.WriteRawTag(186, 4);
1678 output.WriteMessage(GlobalCheapestInsertionFirstSolutionParameters);
1679 }
1680 if (globalCheapestInsertionLsOperatorParameters_ != null) {
1681 output.WriteRawTag(194, 4);
1682 output.WriteMessage(GlobalCheapestInsertionLsOperatorParameters);
1683 }
1684 if (_unknownFields != null) {
1685 _unknownFields.WriteTo(ref output);
1686 }
1687 }
1688 #endif
1689
1690 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1691 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1692 public int CalculateSize() {
1693 int size = 0;
1694 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1695 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) FirstSolutionStrategy);
1696 }
1698 size += 1 + 1;
1699 }
1700 if (savingsParameters_ != null) {
1701 size += 2 + pb::CodedOutputStream.ComputeMessageSize(SavingsParameters);
1702 }
1703 if (globalCheapestInsertionFirstSolutionParameters_ != null) {
1704 size += 2 + pb::CodedOutputStream.ComputeMessageSize(GlobalCheapestInsertionFirstSolutionParameters);
1705 }
1706 if (globalCheapestInsertionLsOperatorParameters_ != null) {
1707 size += 2 + pb::CodedOutputStream.ComputeMessageSize(GlobalCheapestInsertionLsOperatorParameters);
1708 }
1709 if (localCheapestInsertionParameters_ != null) {
1710 size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalCheapestInsertionParameters);
1711 }
1712 if (localCheapestCostInsertionParameters_ != null) {
1713 size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalCheapestCostInsertionParameters);
1714 }
1715 if (ChristofidesUseMinimumMatching != false) {
1716 size += 2 + 1;
1717 }
1718 if (FirstSolutionOptimizationPeriod != 0) {
1719 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FirstSolutionOptimizationPeriod);
1720 }
1721 if (localSearchOperators_ != null) {
1722 size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocalSearchOperators);
1723 }
1724 if (LsOperatorNeighborsRatio != 0D) {
1725 size += 2 + 8;
1726 }
1727 if (LsOperatorMinNeighbors != 0) {
1728 size += 2 + pb::CodedOutputStream.ComputeInt32Size(LsOperatorMinNeighbors);
1729 }
1730 if (UseMultiArmedBanditConcatenateOperators != false) {
1731 size += 2 + 1;
1732 }
1733 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1734 size += 2 + 8;
1735 }
1736 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1737 size += 2 + 8;
1738 }
1739 if (MaxSwapActiveChainSize != 0) {
1740 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxSwapActiveChainSize);
1741 }
1742 if (RelocateExpensiveChainNumArcsToConsider != 0) {
1743 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RelocateExpensiveChainNumArcsToConsider);
1744 }
1745 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1746 size += 2 + pb::CodedOutputStream.ComputeInt32Size(HeuristicExpensiveChainLnsNumArcsToConsider);
1747 }
1748 if (HeuristicCloseNodesLnsNumNodes != 0) {
1749 size += 2 + pb::CodedOutputStream.ComputeInt32Size(HeuristicCloseNodesLnsNumNodes);
1750 }
1751 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1752 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LocalSearchMetaheuristic);
1753 }
1754 size += localSearchMetaheuristics_.CalculateSize(_repeated_localSearchMetaheuristics_codec);
1755 if (NumMaxLocalOptimaBeforeMetaheuristicSwitch != 0) {
1756 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumMaxLocalOptimaBeforeMetaheuristicSwitch);
1757 }
1758 if (GuidedLocalSearchLambdaCoefficient != 0D) {
1759 size += 1 + 8;
1760 }
1761 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
1762 size += 2 + 1;
1763 }
1764 if (GuidedLocalSearchPenalizeWithVehicleClasses != false) {
1765 size += 2 + 1;
1766 }
1767 if (UseGuidedLocalSearchPenaltiesInLocalSearchOperators != false) {
1768 size += 2 + 1;
1769 }
1770 if (UseDepthFirstSearch != false) {
1771 size += 1 + 1;
1772 }
1773 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1774 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseCp);
1775 }
1776 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1777 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseCpSat);
1778 }
1779 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1780 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGeneralizedCpSat);
1781 }
1782 if (satParameters_ != null) {
1783 size += 2 + pb::CodedOutputStream.ComputeMessageSize(SatParameters);
1784 }
1785 if (ReportIntermediateCpSatSolutions != false) {
1786 size += 2 + 1;
1787 }
1788 if (FallbackToCpSatSizeThreshold != 0) {
1789 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FallbackToCpSatSizeThreshold);
1790 }
1791 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1792 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ContinuousSchedulingSolver);
1793 }
1794 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1795 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) MixedIntegerSchedulingSolver);
1796 }
1797 if (HasDisableSchedulingBewareThisMayDegradePerformance) {
1798 size += 2 + 1;
1799 }
1800 if (OptimizationStep != 0D) {
1801 size += 1 + 8;
1802 }
1803 if (NumberOfSolutionsToCollect != 0) {
1804 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumberOfSolutionsToCollect);
1805 }
1806 if (SolutionLimit != 0L) {
1807 size += 1 + pb::CodedOutputStream.ComputeInt64Size(SolutionLimit);
1808 }
1809 if (timeLimit_ != null) {
1810 size += 1 + pb::CodedOutputStream.ComputeMessageSize(TimeLimit);
1811 }
1812 if (lnsTimeLimit_ != null) {
1813 size += 1 + pb::CodedOutputStream.ComputeMessageSize(LnsTimeLimit);
1814 }
1815 if (SecondaryLsTimeLimitRatio != 0D) {
1816 size += 2 + 8;
1817 }
1818 if (improvementLimitParameters_ != null) {
1819 size += 2 + pb::CodedOutputStream.ComputeMessageSize(ImprovementLimitParameters);
1820 }
1821 if (UseFullPropagation != false) {
1822 size += 1 + 1;
1823 }
1824 if (LogSearch != false) {
1825 size += 1 + 1;
1826 }
1827 if (LogCostScalingFactor != 0D) {
1828 size += 2 + 8;
1829 }
1830 if (LogCostOffset != 0D) {
1831 size += 2 + 8;
1832 }
1833 if (LogTag.Length != 0) {
1834 size += 2 + pb::CodedOutputStream.ComputeStringSize(LogTag);
1835 }
1836 if (UseIteratedLocalSearch != false) {
1837 size += 2 + 1;
1838 }
1839 if (iteratedLocalSearchParameters_ != null) {
1840 size += 2 + pb::CodedOutputStream.ComputeMessageSize(IteratedLocalSearchParameters);
1841 }
1842 if (_unknownFields != null) {
1843 size += _unknownFields.CalculateSize();
1844 }
1845 return size;
1846 }
1847
1848 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1849 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1850 public void MergeFrom(RoutingSearchParameters other) {
1851 if (other == null) {
1852 return;
1853 }
1854 if (other.FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1855 FirstSolutionStrategy = other.FirstSolutionStrategy;
1856 }
1857 if (other.UseUnfilteredFirstSolutionStrategy != false) {
1858 UseUnfilteredFirstSolutionStrategy = other.UseUnfilteredFirstSolutionStrategy;
1859 }
1860 if (other.savingsParameters_ != null) {
1861 if (savingsParameters_ == null) {
1862 SavingsParameters = new global::Google.OrTools.ConstraintSolver.SavingsParameters();
1863 }
1864 SavingsParameters.MergeFrom(other.SavingsParameters);
1865 }
1866 if (other.globalCheapestInsertionFirstSolutionParameters_ != null) {
1867 if (globalCheapestInsertionFirstSolutionParameters_ == null) {
1868 GlobalCheapestInsertionFirstSolutionParameters = new global::Google.OrTools.ConstraintSolver.GlobalCheapestInsertionParameters();
1869 }
1870 GlobalCheapestInsertionFirstSolutionParameters.MergeFrom(other.GlobalCheapestInsertionFirstSolutionParameters);
1871 }
1872 if (other.globalCheapestInsertionLsOperatorParameters_ != null) {
1873 if (globalCheapestInsertionLsOperatorParameters_ == null) {
1874 GlobalCheapestInsertionLsOperatorParameters = new global::Google.OrTools.ConstraintSolver.GlobalCheapestInsertionParameters();
1875 }
1876 GlobalCheapestInsertionLsOperatorParameters.MergeFrom(other.GlobalCheapestInsertionLsOperatorParameters);
1877 }
1878 if (other.localCheapestInsertionParameters_ != null) {
1879 if (localCheapestInsertionParameters_ == null) {
1880 LocalCheapestInsertionParameters = new global::Google.OrTools.ConstraintSolver.LocalCheapestInsertionParameters();
1881 }
1882 LocalCheapestInsertionParameters.MergeFrom(other.LocalCheapestInsertionParameters);
1883 }
1884 if (other.localCheapestCostInsertionParameters_ != null) {
1885 if (localCheapestCostInsertionParameters_ == null) {
1886 LocalCheapestCostInsertionParameters = new global::Google.OrTools.ConstraintSolver.LocalCheapestInsertionParameters();
1887 }
1888 LocalCheapestCostInsertionParameters.MergeFrom(other.LocalCheapestCostInsertionParameters);
1889 }
1890 if (other.ChristofidesUseMinimumMatching != false) {
1891 ChristofidesUseMinimumMatching = other.ChristofidesUseMinimumMatching;
1892 }
1893 if (other.FirstSolutionOptimizationPeriod != 0) {
1894 FirstSolutionOptimizationPeriod = other.FirstSolutionOptimizationPeriod;
1895 }
1896 if (other.localSearchOperators_ != null) {
1897 if (localSearchOperators_ == null) {
1898 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
1899 }
1900 LocalSearchOperators.MergeFrom(other.LocalSearchOperators);
1901 }
1902 if (other.LsOperatorNeighborsRatio != 0D) {
1903 LsOperatorNeighborsRatio = other.LsOperatorNeighborsRatio;
1904 }
1905 if (other.LsOperatorMinNeighbors != 0) {
1906 LsOperatorMinNeighbors = other.LsOperatorMinNeighbors;
1907 }
1908 if (other.UseMultiArmedBanditConcatenateOperators != false) {
1909 UseMultiArmedBanditConcatenateOperators = other.UseMultiArmedBanditConcatenateOperators;
1910 }
1911 if (other.MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1912 MultiArmedBanditCompoundOperatorMemoryCoefficient = other.MultiArmedBanditCompoundOperatorMemoryCoefficient;
1913 }
1914 if (other.MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1915 MultiArmedBanditCompoundOperatorExplorationCoefficient = other.MultiArmedBanditCompoundOperatorExplorationCoefficient;
1916 }
1917 if (other.MaxSwapActiveChainSize != 0) {
1918 MaxSwapActiveChainSize = other.MaxSwapActiveChainSize;
1919 }
1920 if (other.RelocateExpensiveChainNumArcsToConsider != 0) {
1921 RelocateExpensiveChainNumArcsToConsider = other.RelocateExpensiveChainNumArcsToConsider;
1922 }
1923 if (other.HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1924 HeuristicExpensiveChainLnsNumArcsToConsider = other.HeuristicExpensiveChainLnsNumArcsToConsider;
1925 }
1926 if (other.HeuristicCloseNodesLnsNumNodes != 0) {
1927 HeuristicCloseNodesLnsNumNodes = other.HeuristicCloseNodesLnsNumNodes;
1928 }
1929 if (other.LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1930 LocalSearchMetaheuristic = other.LocalSearchMetaheuristic;
1931 }
1932 localSearchMetaheuristics_.Add(other.localSearchMetaheuristics_);
1933 if (other.NumMaxLocalOptimaBeforeMetaheuristicSwitch != 0) {
1934 NumMaxLocalOptimaBeforeMetaheuristicSwitch = other.NumMaxLocalOptimaBeforeMetaheuristicSwitch;
1935 }
1936 if (other.GuidedLocalSearchLambdaCoefficient != 0D) {
1937 GuidedLocalSearchLambdaCoefficient = other.GuidedLocalSearchLambdaCoefficient;
1938 }
1939 if (other.GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
1940 GuidedLocalSearchResetPenaltiesOnNewBestSolution = other.GuidedLocalSearchResetPenaltiesOnNewBestSolution;
1941 }
1942 if (other.GuidedLocalSearchPenalizeWithVehicleClasses != false) {
1943 GuidedLocalSearchPenalizeWithVehicleClasses = other.GuidedLocalSearchPenalizeWithVehicleClasses;
1944 }
1945 if (other.UseGuidedLocalSearchPenaltiesInLocalSearchOperators != false) {
1946 UseGuidedLocalSearchPenaltiesInLocalSearchOperators = other.UseGuidedLocalSearchPenaltiesInLocalSearchOperators;
1947 }
1948 if (other.UseDepthFirstSearch != false) {
1949 UseDepthFirstSearch = other.UseDepthFirstSearch;
1950 }
1951 if (other.UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1952 UseCp = other.UseCp;
1953 }
1954 if (other.UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1955 UseCpSat = other.UseCpSat;
1956 }
1957 if (other.UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1958 UseGeneralizedCpSat = other.UseGeneralizedCpSat;
1959 }
1960 if (other.satParameters_ != null) {
1961 if (satParameters_ == null) {
1962 SatParameters = new global::Google.OrTools.Sat.SatParameters();
1963 }
1964 SatParameters.MergeFrom(other.SatParameters);
1965 }
1966 if (other.ReportIntermediateCpSatSolutions != false) {
1967 ReportIntermediateCpSatSolutions = other.ReportIntermediateCpSatSolutions;
1968 }
1969 if (other.FallbackToCpSatSizeThreshold != 0) {
1970 FallbackToCpSatSizeThreshold = other.FallbackToCpSatSizeThreshold;
1971 }
1972 if (other.ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1973 ContinuousSchedulingSolver = other.ContinuousSchedulingSolver;
1974 }
1975 if (other.MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1976 MixedIntegerSchedulingSolver = other.MixedIntegerSchedulingSolver;
1977 }
1978 if (other.HasDisableSchedulingBewareThisMayDegradePerformance) {
1979 DisableSchedulingBewareThisMayDegradePerformance = other.DisableSchedulingBewareThisMayDegradePerformance;
1980 }
1981 if (other.OptimizationStep != 0D) {
1982 OptimizationStep = other.OptimizationStep;
1983 }
1984 if (other.NumberOfSolutionsToCollect != 0) {
1985 NumberOfSolutionsToCollect = other.NumberOfSolutionsToCollect;
1986 }
1987 if (other.SolutionLimit != 0L) {
1988 SolutionLimit = other.SolutionLimit;
1989 }
1990 if (other.timeLimit_ != null) {
1991 if (timeLimit_ == null) {
1992 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
1993 }
1994 TimeLimit.MergeFrom(other.TimeLimit);
1995 }
1996 if (other.lnsTimeLimit_ != null) {
1997 if (lnsTimeLimit_ == null) {
1998 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
1999 }
2000 LnsTimeLimit.MergeFrom(other.LnsTimeLimit);
2001 }
2002 if (other.SecondaryLsTimeLimitRatio != 0D) {
2003 SecondaryLsTimeLimitRatio = other.SecondaryLsTimeLimitRatio;
2004 }
2005 if (other.improvementLimitParameters_ != null) {
2006 if (improvementLimitParameters_ == null) {
2007 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
2008 }
2009 ImprovementLimitParameters.MergeFrom(other.ImprovementLimitParameters);
2010 }
2011 if (other.UseFullPropagation != false) {
2012 UseFullPropagation = other.UseFullPropagation;
2013 }
2014 if (other.LogSearch != false) {
2015 LogSearch = other.LogSearch;
2016 }
2017 if (other.LogCostScalingFactor != 0D) {
2018 LogCostScalingFactor = other.LogCostScalingFactor;
2019 }
2020 if (other.LogCostOffset != 0D) {
2021 LogCostOffset = other.LogCostOffset;
2022 }
2023 if (other.LogTag.Length != 0) {
2024 LogTag = other.LogTag;
2025 }
2026 if (other.UseIteratedLocalSearch != false) {
2027 UseIteratedLocalSearch = other.UseIteratedLocalSearch;
2028 }
2029 if (other.iteratedLocalSearchParameters_ != null) {
2030 if (iteratedLocalSearchParameters_ == null) {
2031 IteratedLocalSearchParameters = new global::Google.OrTools.ConstraintSolver.IteratedLocalSearchParameters();
2032 }
2033 IteratedLocalSearchParameters.MergeFrom(other.IteratedLocalSearchParameters);
2034 }
2035 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2036 }
2037
2038 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2039 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2040 public void MergeFrom(pb::CodedInputStream input) {
2041 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2042 input.ReadRawMessage(this);
2043 #else
2044 uint tag;
2045 while ((tag = input.ReadTag()) != 0) {
2046 if ((tag & 7) == 4) {
2047 // Abort on any end group tag.
2048 return;
2049 }
2050 switch(tag) {
2051 default:
2052 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2053 break;
2054 case 8: {
2055 FirstSolutionStrategy = (global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value) input.ReadEnum();
2056 break;
2057 }
2058 case 16: {
2059 UseUnfilteredFirstSolutionStrategy = input.ReadBool();
2060 break;
2061 }
2062 case 26: {
2063 if (localSearchOperators_ == null) {
2064 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
2065 }
2066 input.ReadMessage(LocalSearchOperators);
2067 break;
2068 }
2069 case 32: {
2070 LocalSearchMetaheuristic = (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) input.ReadEnum();
2071 break;
2072 }
2073 case 41: {
2074 GuidedLocalSearchLambdaCoefficient = input.ReadDouble();
2075 break;
2076 }
2077 case 48: {
2078 UseDepthFirstSearch = input.ReadBool();
2079 break;
2080 }
2081 case 57: {
2082 OptimizationStep = input.ReadDouble();
2083 break;
2084 }
2085 case 64: {
2086 SolutionLimit = input.ReadInt64();
2087 break;
2088 }
2089 case 74: {
2090 if (timeLimit_ == null) {
2091 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2092 }
2093 input.ReadMessage(TimeLimit);
2094 break;
2095 }
2096 case 82: {
2097 if (lnsTimeLimit_ == null) {
2098 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2099 }
2100 input.ReadMessage(LnsTimeLimit);
2101 break;
2102 }
2103 case 88: {
2104 UseFullPropagation = input.ReadBool();
2105 break;
2106 }
2107 case 104: {
2108 LogSearch = input.ReadBool();
2109 break;
2110 }
2111 case 136: {
2112 NumberOfSolutionsToCollect = input.ReadInt32();
2113 break;
2114 }
2115 case 160: {
2116 RelocateExpensiveChainNumArcsToConsider = input.ReadInt32();
2117 break;
2118 }
2119 case 177: {
2120 LogCostScalingFactor = input.ReadDouble();
2121 break;
2122 }
2123 case 216: {
2124 UseCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2125 break;
2126 }
2127 case 224: {
2128 UseCp = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2129 break;
2130 }
2131 case 233: {
2132 LogCostOffset = input.ReadDouble();
2133 break;
2134 }
2135 case 240: {
2136 ChristofidesUseMinimumMatching = input.ReadBool();
2137 break;
2138 }
2139 case 256: {
2141 break;
2142 }
2143 case 264: {
2144 ContinuousSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2145 break;
2146 }
2147 case 272: {
2148 MixedIntegerSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2149 break;
2150 }
2151 case 280: {
2152 HeuristicCloseNodesLnsNumNodes = input.ReadInt32();
2153 break;
2154 }
2155 case 290: {
2156 LogTag = input.ReadString();
2157 break;
2158 }
2159 case 298: {
2160 if (improvementLimitParameters_ == null) {
2161 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
2162 }
2163 input.ReadMessage(ImprovementLimitParameters);
2164 break;
2165 }
2166 case 328: {
2167 UseMultiArmedBanditConcatenateOperators = input.ReadBool();
2168 break;
2169 }
2170 case 337: {
2172 break;
2173 }
2174 case 345: {
2176 break;
2177 }
2178 case 376: {
2179 UseGeneralizedCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2180 break;
2181 }
2182 case 386: {
2183 if (satParameters_ == null) {
2184 SatParameters = new global::Google.OrTools.Sat.SatParameters();
2185 }
2186 input.ReadMessage(SatParameters);
2187 break;
2188 }
2189 case 400: {
2191 break;
2192 }
2193 case 408: {
2195 break;
2196 }
2197 case 416: {
2198 FallbackToCpSatSizeThreshold = input.ReadInt32();
2199 break;
2200 }
2201 case 425: {
2202 LsOperatorNeighborsRatio = input.ReadDouble();
2203 break;
2204 }
2205 case 432: {
2206 LsOperatorMinNeighbors = input.ReadInt32();
2207 break;
2208 }
2209 case 448: {
2210 ReportIntermediateCpSatSolutions = input.ReadBool();
2211 break;
2212 }
2213 case 457: {
2214 SecondaryLsTimeLimitRatio = input.ReadDouble();
2215 break;
2216 }
2217 case 464: {
2218 UseIteratedLocalSearch = input.ReadBool();
2219 break;
2220 }
2221 case 472: {
2222 FirstSolutionOptimizationPeriod = input.ReadInt32();
2223 break;
2224 }
2225 case 482: {
2226 if (iteratedLocalSearchParameters_ == null) {
2227 IteratedLocalSearchParameters = new global::Google.OrTools.ConstraintSolver.IteratedLocalSearchParameters();
2228 }
2229 input.ReadMessage(IteratedLocalSearchParameters);
2230 break;
2231 }
2232 case 488: {
2234 break;
2235 }
2236 case 496: {
2238 break;
2239 }
2240 case 506:
2241 case 504: {
2242 localSearchMetaheuristics_.AddEntriesFrom(input, _repeated_localSearchMetaheuristics_codec);
2243 break;
2244 }
2245 case 512: {
2247 break;
2248 }
2249 case 528: {
2250 MaxSwapActiveChainSize = input.ReadInt32();
2251 break;
2252 }
2253 case 546: {
2254 if (localCheapestInsertionParameters_ == null) {
2255 LocalCheapestInsertionParameters = new global::Google.OrTools.ConstraintSolver.LocalCheapestInsertionParameters();
2256 }
2257 input.ReadMessage(LocalCheapestInsertionParameters);
2258 break;
2259 }
2260 case 554: {
2261 if (localCheapestCostInsertionParameters_ == null) {
2262 LocalCheapestCostInsertionParameters = new global::Google.OrTools.ConstraintSolver.LocalCheapestInsertionParameters();
2263 }
2264 input.ReadMessage(LocalCheapestCostInsertionParameters);
2265 break;
2266 }
2267 case 562: {
2268 if (savingsParameters_ == null) {
2269 SavingsParameters = new global::Google.OrTools.ConstraintSolver.SavingsParameters();
2270 }
2271 input.ReadMessage(SavingsParameters);
2272 break;
2273 }
2274 case 570: {
2275 if (globalCheapestInsertionFirstSolutionParameters_ == null) {
2276 GlobalCheapestInsertionFirstSolutionParameters = new global::Google.OrTools.ConstraintSolver.GlobalCheapestInsertionParameters();
2277 }
2279 break;
2280 }
2281 case 578: {
2282 if (globalCheapestInsertionLsOperatorParameters_ == null) {
2283 GlobalCheapestInsertionLsOperatorParameters = new global::Google.OrTools.ConstraintSolver.GlobalCheapestInsertionParameters();
2284 }
2286 break;
2287 }
2288 }
2289 }
2290 #endif
2291 }
2292
2293 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2294 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2295 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2296 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
2297 uint tag;
2298 while ((tag = input.ReadTag()) != 0) {
2299 if ((tag & 7) == 4) {
2300 // Abort on any end group tag.
2301 return;
2302 }
2303 switch(tag) {
2304 default:
2305 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
2306 break;
2307 case 8: {
2308 FirstSolutionStrategy = (global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value) input.ReadEnum();
2309 break;
2310 }
2311 case 16: {
2312 UseUnfilteredFirstSolutionStrategy = input.ReadBool();
2313 break;
2314 }
2315 case 26: {
2316 if (localSearchOperators_ == null) {
2317 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
2318 }
2319 input.ReadMessage(LocalSearchOperators);
2320 break;
2321 }
2322 case 32: {
2323 LocalSearchMetaheuristic = (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) input.ReadEnum();
2324 break;
2325 }
2326 case 41: {
2327 GuidedLocalSearchLambdaCoefficient = input.ReadDouble();
2328 break;
2329 }
2330 case 48: {
2331 UseDepthFirstSearch = input.ReadBool();
2332 break;
2333 }
2334 case 57: {
2335 OptimizationStep = input.ReadDouble();
2336 break;
2337 }
2338 case 64: {
2339 SolutionLimit = input.ReadInt64();
2340 break;
2341 }
2342 case 74: {
2343 if (timeLimit_ == null) {
2344 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2345 }
2346 input.ReadMessage(TimeLimit);
2347 break;
2348 }
2349 case 82: {
2350 if (lnsTimeLimit_ == null) {
2351 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2352 }
2353 input.ReadMessage(LnsTimeLimit);
2354 break;
2355 }
2356 case 88: {
2357 UseFullPropagation = input.ReadBool();
2358 break;
2359 }
2360 case 104: {
2361 LogSearch = input.ReadBool();
2362 break;
2363 }
2364 case 136: {
2365 NumberOfSolutionsToCollect = input.ReadInt32();
2366 break;
2367 }
2368 case 160: {
2369 RelocateExpensiveChainNumArcsToConsider = input.ReadInt32();
2370 break;
2371 }
2372 case 177: {
2373 LogCostScalingFactor = input.ReadDouble();
2374 break;
2375 }
2376 case 216: {
2377 UseCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2378 break;
2379 }
2380 case 224: {
2381 UseCp = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2382 break;
2383 }
2384 case 233: {
2385 LogCostOffset = input.ReadDouble();
2386 break;
2387 }
2388 case 240: {
2389 ChristofidesUseMinimumMatching = input.ReadBool();
2390 break;
2391 }
2392 case 256: {
2393 HeuristicExpensiveChainLnsNumArcsToConsider = input.ReadInt32();
2394 break;
2395 }
2396 case 264: {
2397 ContinuousSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2398 break;
2399 }
2400 case 272: {
2401 MixedIntegerSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2402 break;
2403 }
2404 case 280: {
2405 HeuristicCloseNodesLnsNumNodes = input.ReadInt32();
2406 break;
2407 }
2408 case 290: {
2409 LogTag = input.ReadString();
2410 break;
2411 }
2412 case 298: {
2413 if (improvementLimitParameters_ == null) {
2414 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
2415 }
2416 input.ReadMessage(ImprovementLimitParameters);
2417 break;
2418 }
2419 case 328: {
2420 UseMultiArmedBanditConcatenateOperators = input.ReadBool();
2421 break;
2422 }
2423 case 337: {
2424 MultiArmedBanditCompoundOperatorMemoryCoefficient = input.ReadDouble();
2425 break;
2426 }
2427 case 345: {
2428 MultiArmedBanditCompoundOperatorExplorationCoefficient = input.ReadDouble();
2429 break;
2430 }
2431 case 376: {
2432 UseGeneralizedCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2433 break;
2434 }
2435 case 386: {
2436 if (satParameters_ == null) {
2437 SatParameters = new global::Google.OrTools.Sat.SatParameters();
2438 }
2439 input.ReadMessage(SatParameters);
2440 break;
2441 }
2442 case 400: {
2443 DisableSchedulingBewareThisMayDegradePerformance = input.ReadBool();
2444 break;
2445 }
2446 case 408: {
2447 GuidedLocalSearchResetPenaltiesOnNewBestSolution = input.ReadBool();
2448 break;
2449 }
2450 case 416: {
2451 FallbackToCpSatSizeThreshold = input.ReadInt32();
2452 break;
2453 }
2454 case 425: {
2455 LsOperatorNeighborsRatio = input.ReadDouble();
2456 break;
2457 }
2458 case 432: {
2459 LsOperatorMinNeighbors = input.ReadInt32();
2460 break;
2461 }
2462 case 448: {
2463 ReportIntermediateCpSatSolutions = input.ReadBool();
2464 break;
2465 }
2466 case 457: {
2467 SecondaryLsTimeLimitRatio = input.ReadDouble();
2468 break;
2469 }
2470 case 464: {
2471 UseIteratedLocalSearch = input.ReadBool();
2472 break;
2473 }
2474 case 472: {
2475 FirstSolutionOptimizationPeriod = input.ReadInt32();
2476 break;
2477 }
2478 case 482: {
2479 if (iteratedLocalSearchParameters_ == null) {
2480 IteratedLocalSearchParameters = new global::Google.OrTools.ConstraintSolver.IteratedLocalSearchParameters();
2481 }
2482 input.ReadMessage(IteratedLocalSearchParameters);
2483 break;
2484 }
2485 case 488: {
2486 GuidedLocalSearchPenalizeWithVehicleClasses = input.ReadBool();
2487 break;
2488 }
2489 case 496: {
2490 UseGuidedLocalSearchPenaltiesInLocalSearchOperators = input.ReadBool();
2491 break;
2492 }
2493 case 506:
2494 case 504: {
2495 localSearchMetaheuristics_.AddEntriesFrom(ref input, _repeated_localSearchMetaheuristics_codec);
2496 break;
2497 }
2498 case 512: {
2499 NumMaxLocalOptimaBeforeMetaheuristicSwitch = input.ReadInt32();
2500 break;
2501 }
2502 case 528: {
2503 MaxSwapActiveChainSize = input.ReadInt32();
2504 break;
2505 }
2506 case 546: {
2507 if (localCheapestInsertionParameters_ == null) {
2508 LocalCheapestInsertionParameters = new global::Google.OrTools.ConstraintSolver.LocalCheapestInsertionParameters();
2509 }
2510 input.ReadMessage(LocalCheapestInsertionParameters);
2511 break;
2512 }
2513 case 554: {
2514 if (localCheapestCostInsertionParameters_ == null) {
2515 LocalCheapestCostInsertionParameters = new global::Google.OrTools.ConstraintSolver.LocalCheapestInsertionParameters();
2516 }
2517 input.ReadMessage(LocalCheapestCostInsertionParameters);
2518 break;
2519 }
2520 case 562: {
2521 if (savingsParameters_ == null) {
2522 SavingsParameters = new global::Google.OrTools.ConstraintSolver.SavingsParameters();
2523 }
2524 input.ReadMessage(SavingsParameters);
2525 break;
2526 }
2527 case 570: {
2528 if (globalCheapestInsertionFirstSolutionParameters_ == null) {
2529 GlobalCheapestInsertionFirstSolutionParameters = new global::Google.OrTools.ConstraintSolver.GlobalCheapestInsertionParameters();
2530 }
2531 input.ReadMessage(GlobalCheapestInsertionFirstSolutionParameters);
2532 break;
2533 }
2534 case 578: {
2535 if (globalCheapestInsertionLsOperatorParameters_ == null) {
2536 GlobalCheapestInsertionLsOperatorParameters = new global::Google.OrTools.ConstraintSolver.GlobalCheapestInsertionParameters();
2537 }
2538 input.ReadMessage(GlobalCheapestInsertionLsOperatorParameters);
2539 break;
2540 }
2541 }
2542 }
2543 }
2544 #endif
2545
2546 #region Nested types
2548 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2549 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2550 public static partial class Types {
2555 public enum SchedulingSolver {
2556 [pbr::OriginalName("SCHEDULING_UNSET")] SchedulingUnset = 0,
2557 [pbr::OriginalName("SCHEDULING_GLOP")] SchedulingGlop = 1,
2558 [pbr::OriginalName("SCHEDULING_CP_SAT")] SchedulingCpSat = 2,
2559 }
2565 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
2566 public sealed partial class LocalSearchNeighborhoodOperators : pb::IMessage<LocalSearchNeighborhoodOperators>
2567 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2568 , pb::IBufferMessage
2569 #endif
2570 {
2571 private static readonly pb::MessageParser<LocalSearchNeighborhoodOperators> _parser = new pb::MessageParser<LocalSearchNeighborhoodOperators>(() => new LocalSearchNeighborhoodOperators());
2572 private pb::UnknownFieldSet _unknownFields;
2573 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2574 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2575 public static pb::MessageParser<LocalSearchNeighborhoodOperators> Parser { get { return _parser; } }
2576
2577 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2578 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2579 public static pbr::MessageDescriptor Descriptor {
2580 get { return global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Descriptor.NestedTypes[0]; }
2581 }
2582
2583 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2584 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2585 pbr::MessageDescriptor pb::IMessage.Descriptor {
2586 get { return Descriptor; }
2587 }
2588
2589 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2590 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2592 OnConstruction();
2593 }
2594
2595 partial void OnConstruction();
2597 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2598 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2600 useRelocate_ = other.useRelocate_;
2601 useRelocatePair_ = other.useRelocatePair_;
2602 useLightRelocatePair_ = other.useLightRelocatePair_;
2603 useRelocateNeighbors_ = other.useRelocateNeighbors_;
2604 useRelocateSubtrip_ = other.useRelocateSubtrip_;
2605 useExchange_ = other.useExchange_;
2606 useExchangePair_ = other.useExchangePair_;
2607 useExchangeSubtrip_ = other.useExchangeSubtrip_;
2608 useCross_ = other.useCross_;
2609 useCrossExchange_ = other.useCrossExchange_;
2610 useRelocateExpensiveChain_ = other.useRelocateExpensiveChain_;
2611 useTwoOpt_ = other.useTwoOpt_;
2612 useOrOpt_ = other.useOrOpt_;
2613 useLinKernighan_ = other.useLinKernighan_;
2614 useTspOpt_ = other.useTspOpt_;
2615 useMakeActive_ = other.useMakeActive_;
2616 useRelocateAndMakeActive_ = other.useRelocateAndMakeActive_;
2617 useExchangeAndMakeActive_ = other.useExchangeAndMakeActive_;
2618 useExchangePathStartEndsAndMakeActive_ = other.useExchangePathStartEndsAndMakeActive_;
2619 useMakeInactive_ = other.useMakeInactive_;
2620 useMakeChainInactive_ = other.useMakeChainInactive_;
2621 useSwapActive_ = other.useSwapActive_;
2622 useSwapActiveChain_ = other.useSwapActiveChain_;
2623 useExtendedSwapActive_ = other.useExtendedSwapActive_;
2624 useShortestPathSwapActive_ = other.useShortestPathSwapActive_;
2625 useShortestPathTwoOpt_ = other.useShortestPathTwoOpt_;
2626 useNodePairSwapActive_ = other.useNodePairSwapActive_;
2627 usePathLns_ = other.usePathLns_;
2628 useFullPathLns_ = other.useFullPathLns_;
2629 useTspLns_ = other.useTspLns_;
2630 useInactiveLns_ = other.useInactiveLns_;
2631 useGlobalCheapestInsertionPathLns_ = other.useGlobalCheapestInsertionPathLns_;
2632 useLocalCheapestInsertionPathLns_ = other.useLocalCheapestInsertionPathLns_;
2633 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
2634 useGlobalCheapestInsertionExpensiveChainLns_ = other.useGlobalCheapestInsertionExpensiveChainLns_;
2635 useLocalCheapestInsertionExpensiveChainLns_ = other.useLocalCheapestInsertionExpensiveChainLns_;
2636 useGlobalCheapestInsertionCloseNodesLns_ = other.useGlobalCheapestInsertionCloseNodesLns_;
2637 useLocalCheapestInsertionCloseNodesLns_ = other.useLocalCheapestInsertionCloseNodesLns_;
2638 useGlobalCheapestInsertionVisitTypesLns_ = other.useGlobalCheapestInsertionVisitTypesLns_;
2639 useLocalCheapestInsertionVisitTypesLns_ = other.useLocalCheapestInsertionVisitTypesLns_;
2640 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2641 }
2642
2643 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2644 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2646 return new LocalSearchNeighborhoodOperators(this);
2647 }
2648
2650 public const int UseRelocateFieldNumber = 1;
2651 private global::Google.OrTools.Util.OptionalBoolean useRelocate_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2653
2663 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2664 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2665 public global::Google.OrTools.Util.OptionalBoolean UseRelocate {
2666 get { return useRelocate_; }
2667 set {
2668 useRelocate_ = value;
2669 }
2671
2673 public const int UseRelocatePairFieldNumber = 2;
2674 private global::Google.OrTools.Util.OptionalBoolean useRelocatePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2676
2686 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2687 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2688 public global::Google.OrTools.Util.OptionalBoolean UseRelocatePair {
2689 get { return useRelocatePair_; }
2690 set {
2691 useRelocatePair_ = value;
2692 }
2694
2696 public const int UseLightRelocatePairFieldNumber = 24;
2697 private global::Google.OrTools.Util.OptionalBoolean useLightRelocatePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2699
2707 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2708 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2709 public global::Google.OrTools.Util.OptionalBoolean UseLightRelocatePair {
2710 get { return useLightRelocatePair_; }
2711 set {
2712 useLightRelocatePair_ = value;
2713 }
2715
2717 public const int UseRelocateNeighborsFieldNumber = 3;
2718 private global::Google.OrTools.Util.OptionalBoolean useRelocateNeighbors_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2720
2743 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2744 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2745 public global::Google.OrTools.Util.OptionalBoolean UseRelocateNeighbors {
2746 get { return useRelocateNeighbors_; }
2747 set {
2748 useRelocateNeighbors_ = value;
2749 }
2751
2753 public const int UseRelocateSubtripFieldNumber = 25;
2754 private global::Google.OrTools.Util.OptionalBoolean useRelocateSubtrip_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2756
2771 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2772 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2773 public global::Google.OrTools.Util.OptionalBoolean UseRelocateSubtrip {
2774 get { return useRelocateSubtrip_; }
2775 set {
2776 useRelocateSubtrip_ = value;
2777 }
2778 }
2779
2780 /// <summary>Field number for the "use_exchange" field.</summary>
2781 public const int UseExchangeFieldNumber = 4;
2782 private global::Google.OrTools.Util.OptionalBoolean useExchange_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2786
2792 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2793 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2794 public global::Google.OrTools.Util.OptionalBoolean UseExchange {
2795 get { return useExchange_; }
2796 set {
2797 useExchange_ = value;
2798 }
2799 }
2800
2801 /// <summary>Field number for the "use_exchange_pair" field.</summary>
2802 public const int UseExchangePairFieldNumber = 22;
2803 private global::Google.OrTools.Util.OptionalBoolean useExchangePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2807
2813 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2814 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2815 public global::Google.OrTools.Util.OptionalBoolean UseExchangePair {
2816 get { return useExchangePair_; }
2817 set {
2818 useExchangePair_ = value;
2819 }
2820 }
2821
2822 /// <summary>Field number for the "use_exchange_subtrip" field.</summary>
2823 public const int UseExchangeSubtripFieldNumber = 26;
2824 private global::Google.OrTools.Util.OptionalBoolean useExchangeSubtrip_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2828
2829 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2830 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2831 public global::Google.OrTools.Util.OptionalBoolean UseExchangeSubtrip {
2832 get { return useExchangeSubtrip_; }
2833 set {
2834 useExchangeSubtrip_ = value;
2835 }
2836 }
2837
2838 /// <summary>Field number for the "use_cross" field.</summary>
2839 public const int UseCrossFieldNumber = 5;
2840 private global::Google.OrTools.Util.OptionalBoolean useCross_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2844
2852 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2853 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2854 public global::Google.OrTools.Util.OptionalBoolean UseCross {
2855 get { return useCross_; }
2856 set {
2857 useCross_ = value;
2858 }
2859 }
2860
2861 /// <summary>Field number for the "use_cross_exchange" field.</summary>
2862 public const int UseCrossExchangeFieldNumber = 6;
2863 private global::Google.OrTools.Util.OptionalBoolean useCrossExchange_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2867 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2868 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2869 public global::Google.OrTools.Util.OptionalBoolean UseCrossExchange {
2870 get { return useCrossExchange_; }
2871 set {
2872 useCrossExchange_ = value;
2873 }
2874 }
2875
2876 /// <summary>Field number for the "use_relocate_expensive_chain" field.</summary>
2877 public const int UseRelocateExpensiveChainFieldNumber = 23;
2878 private global::Google.OrTools.Util.OptionalBoolean useRelocateExpensiveChain_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2882
2891 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2892 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2893 public global::Google.OrTools.Util.OptionalBoolean UseRelocateExpensiveChain {
2894 get { return useRelocateExpensiveChain_; }
2895 set {
2896 useRelocateExpensiveChain_ = value;
2897 }
2898 }
2899
2900 /// <summary>Field number for the "use_two_opt" field.</summary>
2901 public const int UseTwoOptFieldNumber = 7;
2902 private global::Google.OrTools.Util.OptionalBoolean useTwoOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2906
2915 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2916 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2917 public global::Google.OrTools.Util.OptionalBoolean UseTwoOpt {
2918 get { return useTwoOpt_; }
2919 set {
2920 useTwoOpt_ = value;
2921 }
2922 }
2923
2924 /// <summary>Field number for the "use_or_opt" field.</summary>
2925 public const int UseOrOptFieldNumber = 8;
2926 private global::Google.OrTools.Util.OptionalBoolean useOrOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2930
2940 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2941 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2942 public global::Google.OrTools.Util.OptionalBoolean UseOrOpt {
2943 get { return useOrOpt_; }
2944 set {
2945 useOrOpt_ = value;
2946 }
2947 }
2948
2949 /// <summary>Field number for the "use_lin_kernighan" field.</summary>
2950 public const int UseLinKernighanFieldNumber = 9;
2951 private global::Google.OrTools.Util.OptionalBoolean useLinKernighan_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2955
2958 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2959 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2960 public global::Google.OrTools.Util.OptionalBoolean UseLinKernighan {
2961 get { return useLinKernighan_; }
2962 set {
2963 useLinKernighan_ = value;
2964 }
2965 }
2966
2967 /// <summary>Field number for the "use_tsp_opt" field.</summary>
2968 public const int UseTspOptFieldNumber = 10;
2969 private global::Google.OrTools.Util.OptionalBoolean useTspOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2973
2978 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2979 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2980 public global::Google.OrTools.Util.OptionalBoolean UseTspOpt {
2981 get { return useTspOpt_; }
2982 set {
2983 useTspOpt_ = value;
2984 }
2985 }
2986
2987 /// <summary>Field number for the "use_make_active" field.</summary>
2988 public const int UseMakeActiveFieldNumber = 11;
2989 private global::Google.OrTools.Util.OptionalBoolean useMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
2993
2999 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3000 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3001 public global::Google.OrTools.Util.OptionalBoolean UseMakeActive {
3002 get { return useMakeActive_; }
3003 set {
3004 useMakeActive_ = value;
3005 }
3006 }
3007
3008 /// <summary>Field number for the "use_relocate_and_make_active" field.</summary>
3009 public const int UseRelocateAndMakeActiveFieldNumber = 21;
3010 private global::Google.OrTools.Util.OptionalBoolean useRelocateAndMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3014
3023 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3024 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3025 public global::Google.OrTools.Util.OptionalBoolean UseRelocateAndMakeActive {
3026 get { return useRelocateAndMakeActive_; }
3027 set {
3028 useRelocateAndMakeActive_ = value;
3029 }
3030 }
3031
3032 /// <summary>Field number for the "use_exchange_and_make_active" field.</summary>
3033 public const int UseExchangeAndMakeActiveFieldNumber = 37;
3034 private global::Google.OrTools.Util.OptionalBoolean useExchangeAndMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3038
3043 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3044 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3045 public global::Google.OrTools.Util.OptionalBoolean UseExchangeAndMakeActive {
3046 get { return useExchangeAndMakeActive_; }
3047 set {
3048 useExchangeAndMakeActive_ = value;
3049 }
3050 }
3051
3052 /// <summary>Field number for the "use_exchange_path_start_ends_and_make_active" field.</summary>
3054 private global::Google.OrTools.Util.OptionalBoolean useExchangePathStartEndsAndMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3058
3066 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3067 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3068 public global::Google.OrTools.Util.OptionalBoolean UseExchangePathStartEndsAndMakeActive {
3069 get { return useExchangePathStartEndsAndMakeActive_; }
3070 set {
3071 useExchangePathStartEndsAndMakeActive_ = value;
3072 }
3073 }
3074
3075 /// <summary>Field number for the "use_make_inactive" field.</summary>
3076 public const int UseMakeInactiveFieldNumber = 12;
3077 private global::Google.OrTools.Util.OptionalBoolean useMakeInactive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3081
3085 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3086 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3087 public global::Google.OrTools.Util.OptionalBoolean UseMakeInactive {
3088 get { return useMakeInactive_; }
3089 set {
3090 useMakeInactive_ = value;
3091 }
3092 }
3093
3094 /// <summary>Field number for the "use_make_chain_inactive" field.</summary>
3095 public const int UseMakeChainInactiveFieldNumber = 13;
3096 private global::Google.OrTools.Util.OptionalBoolean useMakeChainInactive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3100
3105 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3106 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3107 public global::Google.OrTools.Util.OptionalBoolean UseMakeChainInactive {
3108 get { return useMakeChainInactive_; }
3109 set {
3110 useMakeChainInactive_ = value;
3111 }
3112 }
3113
3114 /// <summary>Field number for the "use_swap_active" field.</summary>
3115 public const int UseSwapActiveFieldNumber = 14;
3116 private global::Google.OrTools.Util.OptionalBoolean useSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3120
3124 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3125 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3126 public global::Google.OrTools.Util.OptionalBoolean UseSwapActive {
3127 get { return useSwapActive_; }
3128 set {
3129 useSwapActive_ = value;
3130 }
3131 }
3132
3133 /// <summary>Field number for the "use_swap_active_chain" field.</summary>
3134 public const int UseSwapActiveChainFieldNumber = 35;
3135 private global::Google.OrTools.Util.OptionalBoolean useSwapActiveChain_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3139
3144 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3145 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3146 public global::Google.OrTools.Util.OptionalBoolean UseSwapActiveChain {
3147 get { return useSwapActiveChain_; }
3148 set {
3149 useSwapActiveChain_ = value;
3150 }
3151 }
3152
3153 /// <summary>Field number for the "use_extended_swap_active" field.</summary>
3154 public const int UseExtendedSwapActiveFieldNumber = 15;
3155 private global::Google.OrTools.Util.OptionalBoolean useExtendedSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3159
3168 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3169 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3170 public global::Google.OrTools.Util.OptionalBoolean UseExtendedSwapActive {
3171 get { return useExtendedSwapActive_; }
3172 set {
3173 useExtendedSwapActive_ = value;
3174 }
3175 }
3176
3177 /// <summary>Field number for the "use_shortest_path_swap_active" field.</summary>
3178 public const int UseShortestPathSwapActiveFieldNumber = 34;
3179 private global::Google.OrTools.Util.OptionalBoolean useShortestPathSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3183
3188 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3189 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3190 public global::Google.OrTools.Util.OptionalBoolean UseShortestPathSwapActive {
3191 get { return useShortestPathSwapActive_; }
3192 set {
3193 useShortestPathSwapActive_ = value;
3194 }
3195 }
3196
3197 /// <summary>Field number for the "use_shortest_path_two_opt" field.</summary>
3198 public const int UseShortestPathTwoOptFieldNumber = 36;
3199 private global::Google.OrTools.Util.OptionalBoolean useShortestPathTwoOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3203
3204 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3205 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3206 public global::Google.OrTools.Util.OptionalBoolean UseShortestPathTwoOpt {
3207 get { return useShortestPathTwoOpt_; }
3208 set {
3209 useShortestPathTwoOpt_ = value;
3210 }
3211 }
3212
3213 /// <summary>Field number for the "use_node_pair_swap_active" field.</summary>
3214 public const int UseNodePairSwapActiveFieldNumber = 20;
3215 private global::Google.OrTools.Util.OptionalBoolean useNodePairSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3219
3229 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3230 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3231 public global::Google.OrTools.Util.OptionalBoolean UseNodePairSwapActive {
3232 get { return useNodePairSwapActive_; }
3233 set {
3234 useNodePairSwapActive_ = value;
3235 }
3236 }
3237
3238 /// <summary>Field number for the "use_path_lns" field.</summary>
3239 public const int UsePathLnsFieldNumber = 16;
3240 private global::Google.OrTools.Util.OptionalBoolean usePathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3244
3251 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3252 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3253 public global::Google.OrTools.Util.OptionalBoolean UsePathLns {
3254 get { return usePathLns_; }
3255 set {
3256 usePathLns_ = value;
3257 }
3258 }
3259
3260 /// <summary>Field number for the "use_full_path_lns" field.</summary>
3261 public const int UseFullPathLnsFieldNumber = 17;
3262 private global::Google.OrTools.Util.OptionalBoolean useFullPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3266 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3267 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3268 public global::Google.OrTools.Util.OptionalBoolean UseFullPathLns {
3269 get { return useFullPathLns_; }
3270 set {
3271 useFullPathLns_ = value;
3272 }
3273 }
3274
3275 /// <summary>Field number for the "use_tsp_lns" field.</summary>
3276 public const int UseTspLnsFieldNumber = 18;
3277 private global::Google.OrTools.Util.OptionalBoolean useTspLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3281
3286 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3287 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3288 public global::Google.OrTools.Util.OptionalBoolean UseTspLns {
3289 get { return useTspLns_; }
3290 set {
3291 useTspLns_ = value;
3292 }
3293 }
3294
3295 /// <summary>Field number for the "use_inactive_lns" field.</summary>
3296 public const int UseInactiveLnsFieldNumber = 19;
3297 private global::Google.OrTools.Util.OptionalBoolean useInactiveLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3301
3303 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3304 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3305 public global::Google.OrTools.Util.OptionalBoolean UseInactiveLns {
3306 get { return useInactiveLns_; }
3307 set {
3308 useInactiveLns_ = value;
3309 }
3310 }
3311
3312 /// <summary>Field number for the "use_global_cheapest_insertion_path_lns" field.</summary>
3314 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3318
3320 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3321 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3322 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionPathLns {
3323 get { return useGlobalCheapestInsertionPathLns_; }
3324 set {
3325 useGlobalCheapestInsertionPathLns_ = value;
3326 }
3327 }
3328
3329 /// <summary>Field number for the "use_local_cheapest_insertion_path_lns" field.</summary>
3330 public const int UseLocalCheapestInsertionPathLnsFieldNumber = 28;
3331 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3335 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3336 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3337 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionPathLns {
3338 get { return useLocalCheapestInsertionPathLns_; }
3339 set {
3340 useLocalCheapestInsertionPathLns_ = value;
3341 }
3342 }
3343
3344 /// <summary>Field number for the "use_relocate_path_global_cheapest_insertion_insert_unperformed" field.</summary>
3346 private global::Google.OrTools.Util.OptionalBoolean useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3350
3352 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3353 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3354 public global::Google.OrTools.Util.OptionalBoolean UseRelocatePathGlobalCheapestInsertionInsertUnperformed {
3355 get { return useRelocatePathGlobalCheapestInsertionInsertUnperformed_; }
3356 set {
3357 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value;
3358 }
3359 }
3360
3361 /// <summary>Field number for the "use_global_cheapest_insertion_expensive_chain_lns" field.</summary>
3363 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionExpensiveChainLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3367
3370 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3371 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3372 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionExpensiveChainLns {
3373 get { return useGlobalCheapestInsertionExpensiveChainLns_; }
3374 set {
3375 useGlobalCheapestInsertionExpensiveChainLns_ = value;
3376 }
3377 }
3378
3379 /// <summary>Field number for the "use_local_cheapest_insertion_expensive_chain_lns" field.</summary>
3381 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionExpensiveChainLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3385
3386 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3387 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3388 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionExpensiveChainLns {
3389 get { return useLocalCheapestInsertionExpensiveChainLns_; }
3390 set {
3391 useLocalCheapestInsertionExpensiveChainLns_ = value;
3392 }
3393 }
3394
3395 /// <summary>Field number for the "use_global_cheapest_insertion_close_nodes_lns" field.</summary>
3397 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionCloseNodesLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3401
3404 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3405 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3406 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionCloseNodesLns {
3407 get { return useGlobalCheapestInsertionCloseNodesLns_; }
3408 set {
3409 useGlobalCheapestInsertionCloseNodesLns_ = value;
3410 }
3411 }
3412
3413 /// <summary>Field number for the "use_local_cheapest_insertion_close_nodes_lns" field.</summary>
3415 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionCloseNodesLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3419
3420 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3421 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3422 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionCloseNodesLns {
3423 get { return useLocalCheapestInsertionCloseNodesLns_; }
3424 set {
3425 useLocalCheapestInsertionCloseNodesLns_ = value;
3426 }
3427 }
3428
3429 /// <summary>Field number for the "use_global_cheapest_insertion_visit_types_lns" field.</summary>
3431 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionVisitTypesLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3435
3437 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3438 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3439 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionVisitTypesLns {
3440 get { return useGlobalCheapestInsertionVisitTypesLns_; }
3441 set {
3442 useGlobalCheapestInsertionVisitTypesLns_ = value;
3443 }
3444 }
3445
3446 /// <summary>Field number for the "use_local_cheapest_insertion_visit_types_lns" field.</summary>
3448 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionVisitTypesLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3452
3453 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3454 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3455 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionVisitTypesLns {
3456 get { return useLocalCheapestInsertionVisitTypesLns_; }
3457 set {
3458 useLocalCheapestInsertionVisitTypesLns_ = value;
3459 }
3460 }
3461
3462 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3463 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3464 public override bool Equals(object other) {
3466 }
3467
3468 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3469 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3470 public bool Equals(LocalSearchNeighborhoodOperators other) {
3471 if (ReferenceEquals(other, null)) {
3472 return false;
3473 }
3474 if (ReferenceEquals(other, this)) {
3475 return true;
3476 }
3477 if (UseRelocate != other.UseRelocate) return false;
3478 if (UseRelocatePair != other.UseRelocatePair) return false;
3479 if (UseLightRelocatePair != other.UseLightRelocatePair) return false;
3480 if (UseRelocateNeighbors != other.UseRelocateNeighbors) return false;
3481 if (UseRelocateSubtrip != other.UseRelocateSubtrip) return false;
3482 if (UseExchange != other.UseExchange) return false;
3483 if (UseExchangePair != other.UseExchangePair) return false;
3484 if (UseExchangeSubtrip != other.UseExchangeSubtrip) return false;
3485 if (UseCross != other.UseCross) return false;
3486 if (UseCrossExchange != other.UseCrossExchange) return false;
3487 if (UseRelocateExpensiveChain != other.UseRelocateExpensiveChain) return false;
3488 if (UseTwoOpt != other.UseTwoOpt) return false;
3489 if (UseOrOpt != other.UseOrOpt) return false;
3490 if (UseLinKernighan != other.UseLinKernighan) return false;
3491 if (UseTspOpt != other.UseTspOpt) return false;
3492 if (UseMakeActive != other.UseMakeActive) return false;
3493 if (UseRelocateAndMakeActive != other.UseRelocateAndMakeActive) return false;
3494 if (UseExchangeAndMakeActive != other.UseExchangeAndMakeActive) return false;
3496 if (UseMakeInactive != other.UseMakeInactive) return false;
3497 if (UseMakeChainInactive != other.UseMakeChainInactive) return false;
3498 if (UseSwapActive != other.UseSwapActive) return false;
3499 if (UseSwapActiveChain != other.UseSwapActiveChain) return false;
3500 if (UseExtendedSwapActive != other.UseExtendedSwapActive) return false;
3501 if (UseShortestPathSwapActive != other.UseShortestPathSwapActive) return false;
3502 if (UseShortestPathTwoOpt != other.UseShortestPathTwoOpt) return false;
3503 if (UseNodePairSwapActive != other.UseNodePairSwapActive) return false;
3504 if (UsePathLns != other.UsePathLns) return false;
3505 if (UseFullPathLns != other.UseFullPathLns) return false;
3506 if (UseTspLns != other.UseTspLns) return false;
3507 if (UseInactiveLns != other.UseInactiveLns) return false;
3517 return Equals(_unknownFields, other._unknownFields);
3518 }
3519
3520 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3521 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3522 public override int GetHashCode() {
3523 int hash = 1;
3524 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocate.GetHashCode();
3525 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocatePair.GetHashCode();
3526 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLightRelocatePair.GetHashCode();
3527 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateNeighbors.GetHashCode();
3528 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateSubtrip.GetHashCode();
3529 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchange.GetHashCode();
3530 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangePair.GetHashCode();
3531 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangeSubtrip.GetHashCode();
3532 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCross.GetHashCode();
3533 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCrossExchange.GetHashCode();
3534 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateExpensiveChain.GetHashCode();
3535 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTwoOpt.GetHashCode();
3536 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseOrOpt.GetHashCode();
3537 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLinKernighan.GetHashCode();
3538 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTspOpt.GetHashCode();
3539 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeActive.GetHashCode();
3540 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateAndMakeActive.GetHashCode();
3541 if (UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangeAndMakeActive.GetHashCode();
3542 if (UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangePathStartEndsAndMakeActive.GetHashCode();
3543 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeInactive.GetHashCode();
3544 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeChainInactive.GetHashCode();
3545 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseSwapActive.GetHashCode();
3546 if (UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseSwapActiveChain.GetHashCode();
3547 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExtendedSwapActive.GetHashCode();
3548 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseShortestPathSwapActive.GetHashCode();
3549 if (UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseShortestPathTwoOpt.GetHashCode();
3550 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseNodePairSwapActive.GetHashCode();
3551 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UsePathLns.GetHashCode();
3552 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseFullPathLns.GetHashCode();
3553 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTspLns.GetHashCode();
3554 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseInactiveLns.GetHashCode();
3555 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionPathLns.GetHashCode();
3556 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionPathLns.GetHashCode();
3557 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocatePathGlobalCheapestInsertionInsertUnperformed.GetHashCode();
3558 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionExpensiveChainLns.GetHashCode();
3559 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionExpensiveChainLns.GetHashCode();
3560 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionCloseNodesLns.GetHashCode();
3561 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionCloseNodesLns.GetHashCode();
3562 if (UseGlobalCheapestInsertionVisitTypesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionVisitTypesLns.GetHashCode();
3563 if (UseLocalCheapestInsertionVisitTypesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionVisitTypesLns.GetHashCode();
3564 if (_unknownFields != null) {
3565 hash ^= _unknownFields.GetHashCode();
3566 }
3567 return hash;
3568 }
3569
3570 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3571 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3572 public override string ToString() {
3573 return pb::JsonFormatter.ToDiagnosticString(this);
3574 }
3575
3576 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3577 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3578 public void WriteTo(pb::CodedOutputStream output) {
3579 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3580 output.WriteRawMessage(this);
3581 #else
3582 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3583 output.WriteRawTag(8);
3584 output.WriteEnum((int) UseRelocate);
3586 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3587 output.WriteRawTag(16);
3588 output.WriteEnum((int) UseRelocatePair);
3589 }
3590 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3591 output.WriteRawTag(24);
3592 output.WriteEnum((int) UseRelocateNeighbors);
3593 }
3594 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3595 output.WriteRawTag(32);
3596 output.WriteEnum((int) UseExchange);
3597 }
3598 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3599 output.WriteRawTag(40);
3600 output.WriteEnum((int) UseCross);
3601 }
3602 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3603 output.WriteRawTag(48);
3604 output.WriteEnum((int) UseCrossExchange);
3605 }
3606 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3607 output.WriteRawTag(56);
3608 output.WriteEnum((int) UseTwoOpt);
3609 }
3610 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3611 output.WriteRawTag(64);
3612 output.WriteEnum((int) UseOrOpt);
3613 }
3614 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3615 output.WriteRawTag(72);
3616 output.WriteEnum((int) UseLinKernighan);
3617 }
3618 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3619 output.WriteRawTag(80);
3620 output.WriteEnum((int) UseTspOpt);
3621 }
3622 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3623 output.WriteRawTag(88);
3624 output.WriteEnum((int) UseMakeActive);
3625 }
3626 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3627 output.WriteRawTag(96);
3628 output.WriteEnum((int) UseMakeInactive);
3629 }
3630 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3631 output.WriteRawTag(104);
3632 output.WriteEnum((int) UseMakeChainInactive);
3633 }
3634 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3635 output.WriteRawTag(112);
3636 output.WriteEnum((int) UseSwapActive);
3637 }
3638 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3639 output.WriteRawTag(120);
3640 output.WriteEnum((int) UseExtendedSwapActive);
3641 }
3642 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3643 output.WriteRawTag(128, 1);
3644 output.WriteEnum((int) UsePathLns);
3645 }
3646 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3647 output.WriteRawTag(136, 1);
3648 output.WriteEnum((int) UseFullPathLns);
3649 }
3650 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3651 output.WriteRawTag(144, 1);
3652 output.WriteEnum((int) UseTspLns);
3653 }
3654 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3655 output.WriteRawTag(152, 1);
3656 output.WriteEnum((int) UseInactiveLns);
3657 }
3658 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3659 output.WriteRawTag(160, 1);
3660 output.WriteEnum((int) UseNodePairSwapActive);
3661 }
3662 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3663 output.WriteRawTag(168, 1);
3664 output.WriteEnum((int) UseRelocateAndMakeActive);
3665 }
3666 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3667 output.WriteRawTag(176, 1);
3668 output.WriteEnum((int) UseExchangePair);
3669 }
3670 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3671 output.WriteRawTag(184, 1);
3672 output.WriteEnum((int) UseRelocateExpensiveChain);
3673 }
3674 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3675 output.WriteRawTag(192, 1);
3676 output.WriteEnum((int) UseLightRelocatePair);
3677 }
3678 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3679 output.WriteRawTag(200, 1);
3680 output.WriteEnum((int) UseRelocateSubtrip);
3681 }
3682 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3683 output.WriteRawTag(208, 1);
3684 output.WriteEnum((int) UseExchangeSubtrip);
3685 }
3686 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3687 output.WriteRawTag(216, 1);
3688 output.WriteEnum((int) UseGlobalCheapestInsertionPathLns);
3689 }
3690 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3691 output.WriteRawTag(224, 1);
3692 output.WriteEnum((int) UseLocalCheapestInsertionPathLns);
3693 }
3694 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3695 output.WriteRawTag(232, 1);
3696 output.WriteEnum((int) UseGlobalCheapestInsertionExpensiveChainLns);
3697 }
3698 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3699 output.WriteRawTag(240, 1);
3700 output.WriteEnum((int) UseLocalCheapestInsertionExpensiveChainLns);
3701 }
3702 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3703 output.WriteRawTag(248, 1);
3704 output.WriteEnum((int) UseGlobalCheapestInsertionCloseNodesLns);
3705 }
3706 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3707 output.WriteRawTag(128, 2);
3708 output.WriteEnum((int) UseLocalCheapestInsertionCloseNodesLns);
3709 }
3710 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3711 output.WriteRawTag(136, 2);
3712 output.WriteEnum((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
3713 }
3714 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3715 output.WriteRawTag(144, 2);
3716 output.WriteEnum((int) UseShortestPathSwapActive);
3717 }
3718 if (UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3719 output.WriteRawTag(152, 2);
3720 output.WriteEnum((int) UseSwapActiveChain);
3721 }
3722 if (UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3723 output.WriteRawTag(160, 2);
3724 output.WriteEnum((int) UseShortestPathTwoOpt);
3725 }
3726 if (UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3727 output.WriteRawTag(168, 2);
3728 output.WriteEnum((int) UseExchangeAndMakeActive);
3729 }
3730 if (UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3731 output.WriteRawTag(176, 2);
3732 output.WriteEnum((int) UseExchangePathStartEndsAndMakeActive);
3733 }
3734 if (UseGlobalCheapestInsertionVisitTypesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3735 output.WriteRawTag(184, 2);
3736 output.WriteEnum((int) UseGlobalCheapestInsertionVisitTypesLns);
3737 }
3738 if (UseLocalCheapestInsertionVisitTypesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3739 output.WriteRawTag(192, 2);
3740 output.WriteEnum((int) UseLocalCheapestInsertionVisitTypesLns);
3741 }
3742 if (_unknownFields != null) {
3743 _unknownFields.WriteTo(output);
3744 }
3745 #endif
3746 }
3747
3748 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3749 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3750 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3751 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
3752 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3753 output.WriteRawTag(8);
3754 output.WriteEnum((int) UseRelocate);
3755 }
3756 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3757 output.WriteRawTag(16);
3758 output.WriteEnum((int) UseRelocatePair);
3759 }
3760 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3761 output.WriteRawTag(24);
3762 output.WriteEnum((int) UseRelocateNeighbors);
3763 }
3764 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3765 output.WriteRawTag(32);
3766 output.WriteEnum((int) UseExchange);
3767 }
3768 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3769 output.WriteRawTag(40);
3770 output.WriteEnum((int) UseCross);
3771 }
3772 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3773 output.WriteRawTag(48);
3774 output.WriteEnum((int) UseCrossExchange);
3775 }
3776 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3777 output.WriteRawTag(56);
3778 output.WriteEnum((int) UseTwoOpt);
3779 }
3780 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3781 output.WriteRawTag(64);
3782 output.WriteEnum((int) UseOrOpt);
3783 }
3784 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3785 output.WriteRawTag(72);
3786 output.WriteEnum((int) UseLinKernighan);
3787 }
3788 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3789 output.WriteRawTag(80);
3790 output.WriteEnum((int) UseTspOpt);
3791 }
3792 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3793 output.WriteRawTag(88);
3794 output.WriteEnum((int) UseMakeActive);
3795 }
3796 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3797 output.WriteRawTag(96);
3798 output.WriteEnum((int) UseMakeInactive);
3799 }
3800 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3801 output.WriteRawTag(104);
3802 output.WriteEnum((int) UseMakeChainInactive);
3803 }
3804 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3805 output.WriteRawTag(112);
3806 output.WriteEnum((int) UseSwapActive);
3807 }
3808 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3809 output.WriteRawTag(120);
3810 output.WriteEnum((int) UseExtendedSwapActive);
3811 }
3812 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3813 output.WriteRawTag(128, 1);
3814 output.WriteEnum((int) UsePathLns);
3815 }
3816 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3817 output.WriteRawTag(136, 1);
3818 output.WriteEnum((int) UseFullPathLns);
3819 }
3820 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3821 output.WriteRawTag(144, 1);
3822 output.WriteEnum((int) UseTspLns);
3823 }
3824 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3825 output.WriteRawTag(152, 1);
3826 output.WriteEnum((int) UseInactiveLns);
3827 }
3828 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3829 output.WriteRawTag(160, 1);
3830 output.WriteEnum((int) UseNodePairSwapActive);
3831 }
3832 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3833 output.WriteRawTag(168, 1);
3834 output.WriteEnum((int) UseRelocateAndMakeActive);
3835 }
3836 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3837 output.WriteRawTag(176, 1);
3838 output.WriteEnum((int) UseExchangePair);
3839 }
3840 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3841 output.WriteRawTag(184, 1);
3842 output.WriteEnum((int) UseRelocateExpensiveChain);
3843 }
3844 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3845 output.WriteRawTag(192, 1);
3846 output.WriteEnum((int) UseLightRelocatePair);
3847 }
3848 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3849 output.WriteRawTag(200, 1);
3850 output.WriteEnum((int) UseRelocateSubtrip);
3851 }
3852 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3853 output.WriteRawTag(208, 1);
3854 output.WriteEnum((int) UseExchangeSubtrip);
3855 }
3856 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3857 output.WriteRawTag(216, 1);
3858 output.WriteEnum((int) UseGlobalCheapestInsertionPathLns);
3859 }
3860 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3861 output.WriteRawTag(224, 1);
3862 output.WriteEnum((int) UseLocalCheapestInsertionPathLns);
3863 }
3864 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3865 output.WriteRawTag(232, 1);
3866 output.WriteEnum((int) UseGlobalCheapestInsertionExpensiveChainLns);
3867 }
3868 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3869 output.WriteRawTag(240, 1);
3870 output.WriteEnum((int) UseLocalCheapestInsertionExpensiveChainLns);
3871 }
3872 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3873 output.WriteRawTag(248, 1);
3874 output.WriteEnum((int) UseGlobalCheapestInsertionCloseNodesLns);
3875 }
3876 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3877 output.WriteRawTag(128, 2);
3878 output.WriteEnum((int) UseLocalCheapestInsertionCloseNodesLns);
3879 }
3880 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3881 output.WriteRawTag(136, 2);
3882 output.WriteEnum((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
3883 }
3884 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3885 output.WriteRawTag(144, 2);
3886 output.WriteEnum((int) UseShortestPathSwapActive);
3887 }
3888 if (UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3889 output.WriteRawTag(152, 2);
3890 output.WriteEnum((int) UseSwapActiveChain);
3891 }
3892 if (UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3893 output.WriteRawTag(160, 2);
3894 output.WriteEnum((int) UseShortestPathTwoOpt);
3895 }
3896 if (UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3897 output.WriteRawTag(168, 2);
3898 output.WriteEnum((int) UseExchangeAndMakeActive);
3899 }
3900 if (UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3901 output.WriteRawTag(176, 2);
3902 output.WriteEnum((int) UseExchangePathStartEndsAndMakeActive);
3903 }
3904 if (UseGlobalCheapestInsertionVisitTypesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3905 output.WriteRawTag(184, 2);
3906 output.WriteEnum((int) UseGlobalCheapestInsertionVisitTypesLns);
3907 }
3908 if (UseLocalCheapestInsertionVisitTypesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3909 output.WriteRawTag(192, 2);
3910 output.WriteEnum((int) UseLocalCheapestInsertionVisitTypesLns);
3911 }
3912 if (_unknownFields != null) {
3913 _unknownFields.WriteTo(ref output);
3914 }
3915 }
3916 #endif
3917
3918 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3919 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3920 public int CalculateSize() {
3921 int size = 0;
3922 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3923 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocate);
3924 }
3925 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3926 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocatePair);
3928 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3929 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLightRelocatePair);
3930 }
3931 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3932 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateNeighbors);
3933 }
3934 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3935 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateSubtrip);
3936 }
3937 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3938 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchange);
3939 }
3940 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3941 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangePair);
3942 }
3943 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3944 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangeSubtrip);
3945 }
3946 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3947 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseCross);
3948 }
3949 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3950 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseCrossExchange);
3951 }
3952 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3953 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateExpensiveChain);
3954 }
3955 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3956 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseTwoOpt);
3957 }
3958 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3959 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseOrOpt);
3960 }
3961 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3962 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseLinKernighan);
3963 }
3964 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3965 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseTspOpt);
3966 }
3967 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3968 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeActive);
3969 }
3970 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3971 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateAndMakeActive);
3972 }
3973 if (UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3974 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangeAndMakeActive);
3975 }
3976 if (UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3977 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangePathStartEndsAndMakeActive);
3978 }
3979 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3980 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeInactive);
3981 }
3982 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3983 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeChainInactive);
3984 }
3985 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3986 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseSwapActive);
3987 }
3988 if (UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3989 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseSwapActiveChain);
3990 }
3991 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3992 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseExtendedSwapActive);
3993 }
3994 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3995 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseShortestPathSwapActive);
3996 }
3997 if (UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3998 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseShortestPathTwoOpt);
3999 }
4000 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4001 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseNodePairSwapActive);
4002 }
4003 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4004 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UsePathLns);
4005 }
4006 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4007 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseFullPathLns);
4008 }
4009 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4010 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseTspLns);
4011 }
4012 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4013 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseInactiveLns);
4014 }
4015 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4016 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionPathLns);
4017 }
4018 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4019 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionPathLns);
4020 }
4021 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4022 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
4023 }
4024 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4025 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionExpensiveChainLns);
4026 }
4027 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4028 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionExpensiveChainLns);
4029 }
4030 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4031 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionCloseNodesLns);
4032 }
4033 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4034 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionCloseNodesLns);
4035 }
4036 if (UseGlobalCheapestInsertionVisitTypesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4037 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionVisitTypesLns);
4038 }
4039 if (UseLocalCheapestInsertionVisitTypesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4040 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionVisitTypesLns);
4041 }
4042 if (_unknownFields != null) {
4043 size += _unknownFields.CalculateSize();
4044 }
4045 return size;
4046 }
4047
4048 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4049 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4050 public void MergeFrom(LocalSearchNeighborhoodOperators other) {
4051 if (other == null) {
4052 return;
4053 }
4054 if (other.UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4055 UseRelocate = other.UseRelocate;
4056 }
4057 if (other.UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4058 UseRelocatePair = other.UseRelocatePair;
4059 }
4060 if (other.UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4061 UseLightRelocatePair = other.UseLightRelocatePair;
4062 }
4063 if (other.UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4064 UseRelocateNeighbors = other.UseRelocateNeighbors;
4065 }
4066 if (other.UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4067 UseRelocateSubtrip = other.UseRelocateSubtrip;
4068 }
4069 if (other.UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4070 UseExchange = other.UseExchange;
4071 }
4072 if (other.UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4073 UseExchangePair = other.UseExchangePair;
4074 }
4075 if (other.UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4076 UseExchangeSubtrip = other.UseExchangeSubtrip;
4077 }
4078 if (other.UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4079 UseCross = other.UseCross;
4080 }
4081 if (other.UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4082 UseCrossExchange = other.UseCrossExchange;
4083 }
4084 if (other.UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4085 UseRelocateExpensiveChain = other.UseRelocateExpensiveChain;
4086 }
4087 if (other.UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4088 UseTwoOpt = other.UseTwoOpt;
4089 }
4090 if (other.UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4091 UseOrOpt = other.UseOrOpt;
4092 }
4093 if (other.UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4094 UseLinKernighan = other.UseLinKernighan;
4095 }
4096 if (other.UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4097 UseTspOpt = other.UseTspOpt;
4098 }
4099 if (other.UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4100 UseMakeActive = other.UseMakeActive;
4101 }
4102 if (other.UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4103 UseRelocateAndMakeActive = other.UseRelocateAndMakeActive;
4104 }
4105 if (other.UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4106 UseExchangeAndMakeActive = other.UseExchangeAndMakeActive;
4107 }
4108 if (other.UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4109 UseExchangePathStartEndsAndMakeActive = other.UseExchangePathStartEndsAndMakeActive;
4110 }
4111 if (other.UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4112 UseMakeInactive = other.UseMakeInactive;
4113 }
4114 if (other.UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4115 UseMakeChainInactive = other.UseMakeChainInactive;
4116 }
4117 if (other.UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4118 UseSwapActive = other.UseSwapActive;
4119 }
4120 if (other.UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4121 UseSwapActiveChain = other.UseSwapActiveChain;
4122 }
4123 if (other.UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4124 UseExtendedSwapActive = other.UseExtendedSwapActive;
4125 }
4126 if (other.UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4127 UseShortestPathSwapActive = other.UseShortestPathSwapActive;
4128 }
4129 if (other.UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4130 UseShortestPathTwoOpt = other.UseShortestPathTwoOpt;
4131 }
4132 if (other.UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4133 UseNodePairSwapActive = other.UseNodePairSwapActive;
4134 }
4135 if (other.UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4136 UsePathLns = other.UsePathLns;
4137 }
4138 if (other.UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4139 UseFullPathLns = other.UseFullPathLns;
4140 }
4141 if (other.UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4142 UseTspLns = other.UseTspLns;
4143 }
4144 if (other.UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4145 UseInactiveLns = other.UseInactiveLns;
4146 }
4147 if (other.UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4148 UseGlobalCheapestInsertionPathLns = other.UseGlobalCheapestInsertionPathLns;
4149 }
4150 if (other.UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4151 UseLocalCheapestInsertionPathLns = other.UseLocalCheapestInsertionPathLns;
4152 }
4153 if (other.UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4154 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = other.UseRelocatePathGlobalCheapestInsertionInsertUnperformed;
4155 }
4156 if (other.UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4157 UseGlobalCheapestInsertionExpensiveChainLns = other.UseGlobalCheapestInsertionExpensiveChainLns;
4158 }
4159 if (other.UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4160 UseLocalCheapestInsertionExpensiveChainLns = other.UseLocalCheapestInsertionExpensiveChainLns;
4161 }
4162 if (other.UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4163 UseGlobalCheapestInsertionCloseNodesLns = other.UseGlobalCheapestInsertionCloseNodesLns;
4164 }
4165 if (other.UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4166 UseLocalCheapestInsertionCloseNodesLns = other.UseLocalCheapestInsertionCloseNodesLns;
4167 }
4168 if (other.UseGlobalCheapestInsertionVisitTypesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4169 UseGlobalCheapestInsertionVisitTypesLns = other.UseGlobalCheapestInsertionVisitTypesLns;
4170 }
4171 if (other.UseLocalCheapestInsertionVisitTypesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4172 UseLocalCheapestInsertionVisitTypesLns = other.UseLocalCheapestInsertionVisitTypesLns;
4173 }
4174 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4175 }
4176
4177 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4178 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4179 public void MergeFrom(pb::CodedInputStream input) {
4180 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4181 input.ReadRawMessage(this);
4182 #else
4183 uint tag;
4184 while ((tag = input.ReadTag()) != 0) {
4185 if ((tag & 7) == 4) {
4186 // Abort on any end group tag.
4187 return;
4188 }
4189 switch(tag) {
4190 default:
4191 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4192 break;
4193 case 8: {
4194 UseRelocate = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4195 break;
4196 }
4197 case 16: {
4198 UseRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4199 break;
4200 }
4201 case 24: {
4202 UseRelocateNeighbors = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4203 break;
4204 }
4205 case 32: {
4206 UseExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4207 break;
4208 }
4209 case 40: {
4210 UseCross = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4211 break;
4212 }
4213 case 48: {
4214 UseCrossExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4215 break;
4216 }
4217 case 56: {
4218 UseTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4219 break;
4220 }
4221 case 64: {
4222 UseOrOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4223 break;
4224 }
4225 case 72: {
4226 UseLinKernighan = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4227 break;
4228 }
4229 case 80: {
4230 UseTspOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4231 break;
4232 }
4233 case 88: {
4234 UseMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4235 break;
4236 }
4237 case 96: {
4238 UseMakeInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4239 break;
4240 }
4241 case 104: {
4242 UseMakeChainInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4243 break;
4244 }
4245 case 112: {
4246 UseSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4247 break;
4248 }
4249 case 120: {
4250 UseExtendedSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4251 break;
4252 }
4253 case 128: {
4254 UsePathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4255 break;
4256 }
4257 case 136: {
4258 UseFullPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4259 break;
4260 }
4261 case 144: {
4262 UseTspLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4263 break;
4264 }
4265 case 152: {
4266 UseInactiveLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4267 break;
4268 }
4269 case 160: {
4270 UseNodePairSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4271 break;
4272 }
4273 case 168: {
4274 UseRelocateAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4275 break;
4276 }
4277 case 176: {
4278 UseExchangePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4279 break;
4280 }
4281 case 184: {
4282 UseRelocateExpensiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4283 break;
4284 }
4285 case 192: {
4286 UseLightRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4287 break;
4288 }
4289 case 200: {
4290 UseRelocateSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4291 break;
4292 }
4293 case 208: {
4294 UseExchangeSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4295 break;
4296 }
4297 case 216: {
4298 UseGlobalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4299 break;
4300 }
4301 case 224: {
4302 UseLocalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4303 break;
4304 }
4305 case 232: {
4306 UseGlobalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4307 break;
4308 }
4309 case 240: {
4310 UseLocalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4311 break;
4312 }
4313 case 248: {
4314 UseGlobalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4315 break;
4316 }
4317 case 256: {
4318 UseLocalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4319 break;
4320 }
4321 case 264: {
4322 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4323 break;
4324 }
4325 case 272: {
4326 UseShortestPathSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4327 break;
4328 }
4329 case 280: {
4330 UseSwapActiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4331 break;
4332 }
4333 case 288: {
4334 UseShortestPathTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4335 break;
4336 }
4337 case 296: {
4338 UseExchangeAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4339 break;
4340 }
4341 case 304: {
4342 UseExchangePathStartEndsAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4343 break;
4344 }
4345 case 312: {
4346 UseGlobalCheapestInsertionVisitTypesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4347 break;
4348 }
4349 case 320: {
4350 UseLocalCheapestInsertionVisitTypesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4351 break;
4352 }
4353 }
4354 }
4355 #endif
4356 }
4357
4358 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4359 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4360 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4361 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4362 uint tag;
4363 while ((tag = input.ReadTag()) != 0) {
4364 if ((tag & 7) == 4) {
4365 // Abort on any end group tag.
4366 return;
4367 }
4368 switch(tag) {
4369 default:
4370 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4371 break;
4372 case 8: {
4373 UseRelocate = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4374 break;
4375 }
4376 case 16: {
4377 UseRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4378 break;
4379 }
4380 case 24: {
4381 UseRelocateNeighbors = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4382 break;
4383 }
4384 case 32: {
4385 UseExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4386 break;
4387 }
4388 case 40: {
4389 UseCross = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4390 break;
4391 }
4392 case 48: {
4393 UseCrossExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4394 break;
4395 }
4396 case 56: {
4397 UseTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4398 break;
4399 }
4400 case 64: {
4401 UseOrOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4402 break;
4403 }
4404 case 72: {
4405 UseLinKernighan = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4406 break;
4407 }
4408 case 80: {
4409 UseTspOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4410 break;
4411 }
4412 case 88: {
4413 UseMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4414 break;
4415 }
4416 case 96: {
4417 UseMakeInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4418 break;
4419 }
4420 case 104: {
4421 UseMakeChainInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4422 break;
4423 }
4424 case 112: {
4425 UseSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4426 break;
4427 }
4428 case 120: {
4429 UseExtendedSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4430 break;
4431 }
4432 case 128: {
4433 UsePathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4434 break;
4435 }
4436 case 136: {
4437 UseFullPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4438 break;
4439 }
4440 case 144: {
4441 UseTspLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4442 break;
4443 }
4444 case 152: {
4445 UseInactiveLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4446 break;
4447 }
4448 case 160: {
4449 UseNodePairSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4450 break;
4451 }
4452 case 168: {
4453 UseRelocateAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4454 break;
4455 }
4456 case 176: {
4457 UseExchangePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4458 break;
4459 }
4460 case 184: {
4461 UseRelocateExpensiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4462 break;
4463 }
4464 case 192: {
4465 UseLightRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4466 break;
4467 }
4468 case 200: {
4469 UseRelocateSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4470 break;
4471 }
4472 case 208: {
4473 UseExchangeSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4474 break;
4475 }
4476 case 216: {
4477 UseGlobalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4478 break;
4479 }
4480 case 224: {
4481 UseLocalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4482 break;
4483 }
4484 case 232: {
4485 UseGlobalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4486 break;
4487 }
4488 case 240: {
4489 UseLocalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4490 break;
4491 }
4492 case 248: {
4493 UseGlobalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4494 break;
4495 }
4496 case 256: {
4497 UseLocalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4498 break;
4499 }
4500 case 264: {
4501 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4502 break;
4503 }
4504 case 272: {
4505 UseShortestPathSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4506 break;
4507 }
4508 case 280: {
4509 UseSwapActiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4510 break;
4511 }
4512 case 288: {
4513 UseShortestPathTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4514 break;
4515 }
4516 case 296: {
4517 UseExchangeAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4518 break;
4519 }
4520 case 304: {
4521 UseExchangePathStartEndsAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4522 break;
4523 }
4524 case 312: {
4525 UseGlobalCheapestInsertionVisitTypesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4526 break;
4527 }
4528 case 320: {
4529 UseLocalCheapestInsertionVisitTypesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4530 break;
4531 }
4532 }
4533 }
4534 }
4535 #endif
4536
4537 }
4538
4542 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
4543 public sealed partial class ImprovementSearchLimitParameters : pb::IMessage<ImprovementSearchLimitParameters>
4544 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4545 , pb::IBufferMessage
4546 #endif
4547 {
4548 private static readonly pb::MessageParser<ImprovementSearchLimitParameters> _parser = new pb::MessageParser<ImprovementSearchLimitParameters>(() => new ImprovementSearchLimitParameters());
4549 private pb::UnknownFieldSet _unknownFields;
4550 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4551 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4552 public static pb::MessageParser<ImprovementSearchLimitParameters> Parser { get { return _parser; } }
4553
4554 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4555 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4556 public static pbr::MessageDescriptor Descriptor {
4557 get { return global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Descriptor.NestedTypes[1]; }
4558 }
4560 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4561 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4562 pbr::MessageDescriptor pb::IMessage.Descriptor {
4563 get { return Descriptor; }
4564 }
4565
4566 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4567 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4568 public ImprovementSearchLimitParameters() {
4569 OnConstruction();
4570 }
4571
4572 partial void OnConstruction();
4573
4574 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4575 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4577 improvementRateCoefficient_ = other.improvementRateCoefficient_;
4578 improvementRateSolutionsDistance_ = other.improvementRateSolutionsDistance_;
4579 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4580 }
4581
4582 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4583 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4585 return new ImprovementSearchLimitParameters(this);
4586 }
4587
4588
4589 public const int ImprovementRateCoefficientFieldNumber = 38;
4590 private double improvementRateCoefficient_;
4591 /// <summary>
4592 /// Parameter that regulates exchange rate between objective improvement and
4593 /// number of neighbors spent. The smaller the value, the sooner the limit
4594 /// stops the search. Must be positive.
4595 /// </summary>
4596 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4597 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4598 public double ImprovementRateCoefficient {
4599 get { return improvementRateCoefficient_; }
4600 set {
4601 improvementRateCoefficient_ = value;
4602 }
4603 }
4604
4605 /// <summary>Field number for the "improvement_rate_solutions_distance" field.</summary>
4606 public const int ImprovementRateSolutionsDistanceFieldNumber = 39;
4607 private int improvementRateSolutionsDistance_;
4611
4615 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4616 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4618 get { return improvementRateSolutionsDistance_; }
4619 set {
4620 improvementRateSolutionsDistance_ = value;
4621 }
4622 }
4623
4624 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4625 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4626 public override bool Equals(object other) {
4628 }
4629
4630 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4631 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4632 public bool Equals(ImprovementSearchLimitParameters other) {
4633 if (ReferenceEquals(other, null)) {
4634 return false;
4635 }
4636 if (ReferenceEquals(other, this)) {
4637 return true;
4638 }
4639 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ImprovementRateCoefficient, other.ImprovementRateCoefficient)) return false;
4641 return Equals(_unknownFields, other._unknownFields);
4642 }
4643
4644 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4645 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4646 public override int GetHashCode() {
4647 int hash = 1;
4648 if (ImprovementRateCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ImprovementRateCoefficient);
4649 if (ImprovementRateSolutionsDistance != 0) hash ^= ImprovementRateSolutionsDistance.GetHashCode();
4650 if (_unknownFields != null) {
4651 hash ^= _unknownFields.GetHashCode();
4652 }
4653 return hash;
4654 }
4655
4656 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4657 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4658 public override string ToString() {
4659 return pb::JsonFormatter.ToDiagnosticString(this);
4660 }
4661
4662 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4663 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4664 public void WriteTo(pb::CodedOutputStream output) {
4665 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4666 output.WriteRawMessage(this);
4667 #else
4668 if (ImprovementRateCoefficient != 0D) {
4669 output.WriteRawTag(177, 2);
4670 output.WriteDouble(ImprovementRateCoefficient);
4672 if (ImprovementRateSolutionsDistance != 0) {
4673 output.WriteRawTag(184, 2);
4674 output.WriteInt32(ImprovementRateSolutionsDistance);
4675 }
4676 if (_unknownFields != null) {
4677 _unknownFields.WriteTo(output);
4678 }
4679 #endif
4680 }
4681
4682 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4683 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4684 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4685 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
4686 if (ImprovementRateCoefficient != 0D) {
4687 output.WriteRawTag(177, 2);
4688 output.WriteDouble(ImprovementRateCoefficient);
4689 }
4690 if (ImprovementRateSolutionsDistance != 0) {
4691 output.WriteRawTag(184, 2);
4692 output.WriteInt32(ImprovementRateSolutionsDistance);
4693 }
4694 if (_unknownFields != null) {
4695 _unknownFields.WriteTo(ref output);
4696 }
4697 }
4698 #endif
4699
4700 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4701 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4702 public int CalculateSize() {
4703 int size = 0;
4704 if (ImprovementRateCoefficient != 0D) {
4705 size += 2 + 8;
4706 }
4707 if (ImprovementRateSolutionsDistance != 0) {
4708 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ImprovementRateSolutionsDistance);
4710 if (_unknownFields != null) {
4711 size += _unknownFields.CalculateSize();
4712 }
4713 return size;
4714 }
4715
4716 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4717 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4718 public void MergeFrom(ImprovementSearchLimitParameters other) {
4719 if (other == null) {
4720 return;
4721 }
4722 if (other.ImprovementRateCoefficient != 0D) {
4723 ImprovementRateCoefficient = other.ImprovementRateCoefficient;
4724 }
4725 if (other.ImprovementRateSolutionsDistance != 0) {
4726 ImprovementRateSolutionsDistance = other.ImprovementRateSolutionsDistance;
4727 }
4728 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4729 }
4730
4731 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4732 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4733 public void MergeFrom(pb::CodedInputStream input) {
4734 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4735 input.ReadRawMessage(this);
4736 #else
4737 uint tag;
4738 while ((tag = input.ReadTag()) != 0) {
4739 if ((tag & 7) == 4) {
4740 // Abort on any end group tag.
4741 return;
4742 }
4743 switch(tag) {
4744 default:
4745 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4746 break;
4747 case 305: {
4748 ImprovementRateCoefficient = input.ReadDouble();
4749 break;
4750 }
4751 case 312: {
4752 ImprovementRateSolutionsDistance = input.ReadInt32();
4753 break;
4754 }
4755 }
4756 }
4757 #endif
4758 }
4759
4760 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4761 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4762 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4763 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4764 uint tag;
4765 while ((tag = input.ReadTag()) != 0) {
4766 if ((tag & 7) == 4) {
4767 // Abort on any end group tag.
4768 return;
4769 }
4770 switch(tag) {
4771 default:
4772 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4773 break;
4774 case 305: {
4775 ImprovementRateCoefficient = input.ReadDouble();
4776 break;
4777 }
4778 case 312: {
4779 ImprovementRateSolutionsDistance = input.ReadInt32();
4780 break;
4781 }
4782 }
4783 }
4784 }
4785 #endif
4786
4787 }
4788
4789 }
4790 #endregion
4791
4792 }
4793
4795
4797 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
4798 public sealed partial class RoutingModelParameters : pb::IMessage<RoutingModelParameters>
4799 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4800 , pb::IBufferMessage
4801 #endif
4802 {
4803 private static readonly pb::MessageParser<RoutingModelParameters> _parser = new pb::MessageParser<RoutingModelParameters>(() => new RoutingModelParameters());
4804 private pb::UnknownFieldSet _unknownFields;
4805 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4806 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4807 public static pb::MessageParser<RoutingModelParameters> Parser { get { return _parser; } }
4808
4809 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4810 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4811 public static pbr::MessageDescriptor Descriptor {
4812 get { return global::Google.OrTools.ConstraintSolver.RoutingParametersReflection.Descriptor.MessageTypes[1]; }
4813 }
4815 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4816 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4817 pbr::MessageDescriptor pb::IMessage.Descriptor {
4818 get { return Descriptor; }
4819 }
4820
4821 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4822 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4823 public RoutingModelParameters() {
4824 OnConstruction();
4825 }
4826
4827 partial void OnConstruction();
4828
4829 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4830 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4831 public RoutingModelParameters(RoutingModelParameters other) : this() {
4832 solverParameters_ = other.solverParameters_ != null ? other.solverParameters_.Clone() : null;
4833 reduceVehicleCostModel_ = other.reduceVehicleCostModel_;
4834 maxCallbackCacheSize_ = other.maxCallbackCacheSize_;
4835 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4836 }
4837
4838 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4839 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4840 public RoutingModelParameters Clone() {
4841 return new RoutingModelParameters(this);
4842 }
4843
4844
4845 public const int SolverParametersFieldNumber = 1;
4846 private global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters solverParameters_;
4847 /// <summary>
4848 /// Parameters to use in the underlying constraint solver.
4849 /// </summary>
4850 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4851 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4853 get { return solverParameters_; }
4854 set {
4855 solverParameters_ = value;
4856 }
4857 }
4858
4859 /// <summary>Field number for the "reduce_vehicle_cost_model" field.</summary>
4860 public const int ReduceVehicleCostModelFieldNumber = 2;
4861 private bool reduceVehicleCostModel_;
4865
4868 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4869 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4870 public bool ReduceVehicleCostModel {
4871 get { return reduceVehicleCostModel_; }
4872 set {
4873 reduceVehicleCostModel_ = value;
4874 }
4875 }
4876
4877 /// <summary>Field number for the "max_callback_cache_size" field.</summary>
4878 public const int MaxCallbackCacheSizeFieldNumber = 3;
4879 private int maxCallbackCacheSize_;
4883
4884 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4885 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4886 public int MaxCallbackCacheSize {
4887 get { return maxCallbackCacheSize_; }
4888 set {
4889 maxCallbackCacheSize_ = value;
4890 }
4891 }
4892
4893 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4894 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4895 public override bool Equals(object other) {
4896 return Equals(other as RoutingModelParameters);
4897 }
4898
4899 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4900 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4901 public bool Equals(RoutingModelParameters other) {
4902 if (ReferenceEquals(other, null)) {
4903 return false;
4904 }
4905 if (ReferenceEquals(other, this)) {
4906 return true;
4907 }
4908 if (!object.Equals(SolverParameters, other.SolverParameters)) return false;
4909 if (ReduceVehicleCostModel != other.ReduceVehicleCostModel) return false;
4910 if (MaxCallbackCacheSize != other.MaxCallbackCacheSize) return false;
4911 return Equals(_unknownFields, other._unknownFields);
4912 }
4913
4914 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4915 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4916 public override int GetHashCode() {
4917 int hash = 1;
4918 if (solverParameters_ != null) hash ^= SolverParameters.GetHashCode();
4919 if (ReduceVehicleCostModel != false) hash ^= ReduceVehicleCostModel.GetHashCode();
4920 if (MaxCallbackCacheSize != 0) hash ^= MaxCallbackCacheSize.GetHashCode();
4921 if (_unknownFields != null) {
4922 hash ^= _unknownFields.GetHashCode();
4924 return hash;
4925 }
4926
4927 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4928 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4929 public override string ToString() {
4930 return pb::JsonFormatter.ToDiagnosticString(this);
4931 }
4932
4933 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4934 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4935 public void WriteTo(pb::CodedOutputStream output) {
4936 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4937 output.WriteRawMessage(this);
4938 #else
4939 if (solverParameters_ != null) {
4940 output.WriteRawTag(10);
4941 output.WriteMessage(SolverParameters);
4943 if (ReduceVehicleCostModel != false) {
4944 output.WriteRawTag(16);
4945 output.WriteBool(ReduceVehicleCostModel);
4946 }
4947 if (MaxCallbackCacheSize != 0) {
4948 output.WriteRawTag(24);
4949 output.WriteInt32(MaxCallbackCacheSize);
4950 }
4951 if (_unknownFields != null) {
4952 _unknownFields.WriteTo(output);
4953 }
4954 #endif
4955 }
4956
4957 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4958 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4959 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4960 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
4961 if (solverParameters_ != null) {
4962 output.WriteRawTag(10);
4963 output.WriteMessage(SolverParameters);
4964 }
4965 if (ReduceVehicleCostModel != false) {
4966 output.WriteRawTag(16);
4967 output.WriteBool(ReduceVehicleCostModel);
4968 }
4969 if (MaxCallbackCacheSize != 0) {
4970 output.WriteRawTag(24);
4971 output.WriteInt32(MaxCallbackCacheSize);
4972 }
4973 if (_unknownFields != null) {
4974 _unknownFields.WriteTo(ref output);
4975 }
4976 }
4977 #endif
4978
4979 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4980 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4981 public int CalculateSize() {
4982 int size = 0;
4983 if (solverParameters_ != null) {
4984 size += 1 + pb::CodedOutputStream.ComputeMessageSize(SolverParameters);
4985 }
4986 if (ReduceVehicleCostModel != false) {
4987 size += 1 + 1;
4989 if (MaxCallbackCacheSize != 0) {
4990 size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxCallbackCacheSize);
4991 }
4992 if (_unknownFields != null) {
4993 size += _unknownFields.CalculateSize();
4994 }
4995 return size;
4996 }
4997
4998 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4999 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5000 public void MergeFrom(RoutingModelParameters other) {
5001 if (other == null) {
5002 return;
5003 }
5004 if (other.solverParameters_ != null) {
5005 if (solverParameters_ == null) {
5006 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
5008 SolverParameters.MergeFrom(other.SolverParameters);
5009 }
5010 if (other.ReduceVehicleCostModel != false) {
5011 ReduceVehicleCostModel = other.ReduceVehicleCostModel;
5012 }
5013 if (other.MaxCallbackCacheSize != 0) {
5014 MaxCallbackCacheSize = other.MaxCallbackCacheSize;
5015 }
5016 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5017 }
5018
5019 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5020 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5021 public void MergeFrom(pb::CodedInputStream input) {
5022 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5023 input.ReadRawMessage(this);
5024 #else
5025 uint tag;
5026 while ((tag = input.ReadTag()) != 0) {
5027 if ((tag & 7) == 4) {
5028 // Abort on any end group tag.
5029 return;
5030 }
5031 switch(tag) {
5032 default:
5033 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5034 break;
5035 case 10: {
5036 if (solverParameters_ == null) {
5037 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
5038 }
5039 input.ReadMessage(SolverParameters);
5040 break;
5041 }
5042 case 16: {
5043 ReduceVehicleCostModel = input.ReadBool();
5044 break;
5045 }
5046 case 24: {
5047 MaxCallbackCacheSize = input.ReadInt32();
5048 break;
5049 }
5050 }
5051 }
5052 #endif
5053 }
5054
5055 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5056 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5057 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5058 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
5059 uint tag;
5060 while ((tag = input.ReadTag()) != 0) {
5061 if ((tag & 7) == 4) {
5062 // Abort on any end group tag.
5063 return;
5064 }
5065 switch(tag) {
5066 default:
5067 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
5068 break;
5069 case 10: {
5070 if (solverParameters_ == null) {
5071 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
5072 }
5073 input.ReadMessage(SolverParameters);
5074 break;
5075 }
5076 case 16: {
5077 ReduceVehicleCostModel = input.ReadBool();
5078 break;
5079 }
5080 case 24: {
5081 MaxCallbackCacheSize = input.ReadInt32();
5082 break;
5083 }
5084 }
5085 }
5086 }
5087 #endif
5088
5089 }
5090
5091 #endregion
5092
5093}
5094
5095#endregion Designer generated code
global::Google.Protobuf pb
global::Google.Protobuf.Reflection pbr
global::System.Collections.Generic scg
global::Google.Protobuf.Collections pbc
Container for nested types declared in the FirstSolutionStrategy message type.
First solution strategies, used as starting point of local search.
Parameters used to configure global cheapest insertion heuristics.
Specifies the behavior of a search based on ILS.
Parameters used to configure local cheapest insertion heuristics.
Container for nested types declared in the LocalSearchMetaheuristic message type.
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.
static pb::MessageParser< RoutingModelParameters > Parser
int MaxCallbackCacheSize
Cache callback calls if the number of nodes in the model is less or equal to this value.
const int ReduceVehicleCostModelFieldNumber
Field number for the "reduce_vehicle_cost_model" field.
global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters SolverParameters
Parameters to use in the underlying constraint solver.
const int MaxCallbackCacheSizeFieldNumber
Field number for the "max_callback_cache_size" field.
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...
const int ImprovementRateSolutionsDistanceFieldNumber
Field number for the "improvement_rate_solutions_distance" field.
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: 41.
global::Google.OrTools.Util.OptionalBoolean UseRelocatePair
Operator which moves a pair of pickup and delivery nodes to another position where the first node of ...
const int UseRelocateExpensiveChainFieldNumber
Field number for the "use_relocate_expensive_chain" field.
global::Google.OrTools.Util.OptionalBoolean UseMakeInactive
Operator which makes path nodes inactive. Possible neighbors for the path 1 -> 2 -> 3 -> 4 (where 1 a...
global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionVisitTypesLns
Same as above, but insertion positions for nodes are determined by the LocalCheapestInsertion heurist...
global::Google.OrTools.Util.OptionalBoolean UseExchangeAndMakeActive
Operator which exchanges two nodes and inserts an inactive node. Possible neighbors for paths 0 -> 2 ...
global::Google.OrTools.Util.OptionalBoolean UseRelocateExpensiveChain
Operator which detects the relocate_expensive_chain_num_arcs_to_consider most expensive arcs on a pat...
const int UseGlobalCheapestInsertionVisitTypesLnsFieldNumber
Field number for the "use_global_cheapest_insertion_visit_types_lns" field.
global::Google.OrTools.Util.OptionalBoolean UseMakeChainInactive
Operator which makes a "chain" of path nodes inactive. Possible neighbors for the path 1 -> 2 -> 3 ->...
const int UseLocalCheapestInsertionPathLnsFieldNumber
Field number for the "use_local_cheapest_insertion_path_lns" field.
global::Google.OrTools.Util.OptionalBoolean UseRelocateSubtrip
Relocate neighborhood that moves subpaths all pickup and delivery pairs have both pickup and delivery...
global::Google.OrTools.Util.OptionalBoolean UseExchangePathStartEndsAndMakeActive
Operator which exchanges the first and last nodes of two paths and makes a node active....
const int UseLocalCheapestInsertionCloseNodesLnsFieldNumber
Field number for the "use_local_cheapest_insertion_close_nodes_lns" field.
const int UseGlobalCheapestInsertionPathLnsFieldNumber
Field number for the "use_global_cheapest_insertion_path_lns" field.
global::Google.OrTools.Util.OptionalBoolean UseShortestPathSwapActive
Swaps active nodes from node alternatives in sequence. Considers chains of nodes with alternatives,...
const int UseExchangeAndMakeActiveFieldNumber
Field number for the "use_exchange_and_make_active" field.
const int UseRelocatePathGlobalCheapestInsertionInsertUnperformedFieldNumber
Field number for the "use_relocate_path_global_cheapest_insertion_insert_unperformed" field.
const int UseExchangePathStartEndsAndMakeActiveFieldNumber
Field number for the "use_exchange_path_start_ends_and_make_active" field.
global::Google.OrTools.Util.OptionalBoolean UseSwapActive
Operator which replaces an active node by an inactive one. Possible neighbors for the path 1 -> 2 -> ...
global::Google.OrTools.Util.OptionalBoolean UseTspOpt
Sliding TSP operator. Uses an exact dynamic programming algorithm to solve the TSP corresponding to p...
const int UseGlobalCheapestInsertionExpensiveChainLnsFieldNumber
Field number for the "use_global_cheapest_insertion_expensive_chain_lns" field.
const int UseShortestPathTwoOptFieldNumber
Field number for the "use_shortest_path_two_opt" field.
const int UseLocalCheapestInsertionVisitTypesLnsFieldNumber
Field number for the "use_local_cheapest_insertion_visit_types_lns" field.
global::Google.OrTools.Util.OptionalBoolean UseTwoOpt
— Intra-route operators — Operator which reverses a subchain of a path. It is called TwoOpt because i...
global::Google.OrTools.Util.OptionalBoolean UseExchange
Operator which exchanges the positions of two nodes. Possible neighbors for the path 1 -> 2 -> 3 -> 4...
global::Google.OrTools.Util.OptionalBoolean UsePathLns
— Large neighborhood search operators — Operator which relaxes two sub-chains of three consecutive ar...
global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionExpensiveChainLns
Same as above but using LocalCheapestInsertion as a heuristic for insertion.
global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionCloseNodesLns
Same as above, but insertion positions for nodes are determined by the LocalCheapestInsertion heurist...
const int UseNodePairSwapActiveFieldNumber
Field number for the "use_node_pair_swap_active" field.
const int UseExtendedSwapActiveFieldNumber
Field number for the "use_extended_swap_active" field.
global::Google.OrTools.Util.OptionalBoolean UseRelocatePathGlobalCheapestInsertionInsertUnperformed
The following operator relocates an entire route to an empty path and then tries to insert the unperf...
global::Google.OrTools.Util.OptionalBoolean UseRelocateNeighbors
Relocate neighborhood which moves chains of neighbors. The operator starts by relocating a node n aft...
global::Google.OrTools.Util.OptionalBoolean UseShortestPathTwoOpt
Similar to use_two_opt but returns the shortest path on the DAG of node alternatives of the reversed ...
global::Google.OrTools.Util.OptionalBoolean UseExchangePair
Operator which exchanges the positions of two pair of nodes. Pairs correspond to the pickup and deliv...
global::Google.OrTools.Util.OptionalBoolean UseFullPathLns
Operator which relaxes one entire path and all inactive nodes.
global::Google.OrTools.Util.OptionalBoolean UseLightRelocatePair
Operator which moves a pair of pickup and delivery nodes after another pair. Possible neighbors for p...
global::Google.OrTools.Util.OptionalBoolean UseInactiveLns
Operator which relaxes all inactive nodes and one sub-chain of six consecutive arcs....
global::Google.OrTools.Util.OptionalBoolean UseTspLns
TSP-base LNS. Randomly merges consecutive nodes until n "meta"-nodes remain and solves the correspond...
global::Google.OrTools.Util.OptionalBoolean UseMakeActive
— Operators on inactive nodes — Operator which inserts an inactive node into a path....
global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionCloseNodesLns
The following operator makes a node and its heuristic_close_nodes_lns_num_nodes closest neighbors unp...
global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionExpensiveChainLns
This operator finds heuristic_expensive_chain_lns_num_arcs_to_consider most expensive arcs on a route...
global::Google.OrTools.Util.OptionalBoolean UseExchangeSubtrip
Operator which exchanges subtrips associated to two pairs of nodes, see use_relocate_subtrip for a de...
const int UseGlobalCheapestInsertionCloseNodesLnsFieldNumber
Field number for the "use_global_cheapest_insertion_close_nodes_lns" field.
const int UseRelocateAndMakeActiveFieldNumber
Field number for the "use_relocate_and_make_active" field.
const int UseShortestPathSwapActiveFieldNumber
Field number for the "use_shortest_path_swap_active" field.
global::Google.OrTools.Util.OptionalBoolean UseLinKernighan
Lin-Kernighan operator. While the accumulated local gain is positive, performs a 2-OPT or a 3-OPT mov...
const int UseMakeChainInactiveFieldNumber
Field number for the "use_make_chain_inactive" field.
global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionVisitTypesLns
The following operator removes all nodes of a visit type connected component from their current route...
global::Google.OrTools.Util.OptionalBoolean UseRelocate
— Inter-route operators — Operator which moves a single node to another position. Possible neighbors ...
const int UseLocalCheapestInsertionExpensiveChainLnsFieldNumber
Field number for the "use_local_cheapest_insertion_expensive_chain_lns" field.
global::Google.OrTools.Util.OptionalBoolean UseCross
Operator which cross exchanges the starting chains of 2 paths, including exchanging the whole paths....
global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionPathLns
Same as above but using LocalCheapestInsertion as a heuristic.
global::Google.OrTools.Util.OptionalBoolean UseSwapActiveChain
Operator which replaces a chain of active nodes by an inactive one. Possible neighbors for the path 1...
global::Google.OrTools.Util.OptionalBoolean UseNodePairSwapActive
Operator which makes an inactive node active and an active pair of nodes inactive OR makes an inactiv...
global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionPathLns
— LNS-like large neighborhood search operators using heuristics — Operator which makes all nodes on a...
global::Google.OrTools.Util.OptionalBoolean UseRelocateAndMakeActive
Operator which relocates a node while making an inactive one active. As of 3/2017,...
global::Google.OrTools.Util.OptionalBoolean UseOrOpt
Operator which moves sub-chains of a path of length 1, 2 and 3 to another position in the same path....
global::Google.OrTools.Util.OptionalBoolean UseExtendedSwapActive
Operator which makes an inactive node active and an active one inactive. It is similar to SwapActiveO...
Container for nested types declared in the RoutingSearchParameters message type.
SchedulingSolver
Underlying solver to use in dimension scheduling, respectively for continuous and mixed models.
Parameters defining the search used to solve vehicle routing problems.
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.IteratedLocalSearchParameters IteratedLocalSearchParameters
Iterated Local Search parameters.
pbc::RepeatedField< global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value > LocalSearchMetaheuristics
Local search metaheuristics alternatively used to guide the search. Every num_max_local_optima_before...
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....
global::Google.OrTools.ConstraintSolver.GlobalCheapestInsertionParameters GlobalCheapestInsertionFirstSolutionParameters
Parameters for the global cheapest insertion heuristic when used as first solution heuristic.
bool DisableSchedulingBewareThisMayDegradePerformance
Setting this to true completely disables the LP and MIP scheduling in the solver. This overrides the ...
int MaxSwapActiveChainSize
Maximum size of the chain to make inactive in SwapActiveChainOperator.
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...
bool HasDisableSchedulingBewareThisMayDegradePerformance
Gets whether the "disable_scheduling_beware_this_may_degrade_performance" field is set.
global::Google.OrTools.ConstraintSolver.SavingsParameters SavingsParameters
Parameters for the Savings heuristic.
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 GlobalCheap...
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 SecondaryLsTimeLimitRatio
Ratio of the overall time limit spent in a secondary LS phase with only intra-route and insertion ope...
bool UseGuidedLocalSearchPenaltiesInLocalSearchOperators
Whether to consider arc penalties in cost functions used in local search operators using arc costs.
global::Google.OrTools.ConstraintSolver.LocalCheapestInsertionParameters LocalCheapestInsertionParameters
Parameters for the local cheapest insertion heuristic.
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.
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
global::Google.OrTools.ConstraintSolver.GlobalCheapestInsertionParameters GlobalCheapestInsertionLsOperatorParameters
Parameters for the global cheapest insertion heuristic when used in a local search operator (see loca...
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...
static pb::MessageParser< RoutingSearchParameters > Parser
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters ImprovementLimitParameters
The improvement search limit is added to the solver if the following parameters are set.
int RelocateExpensiveChainNumArcsToConsider
Number of expensive arcs to consider cutting in the RelocateExpensiveChain neighborhood operator (see...
void ClearDisableSchedulingBewareThisMayDegradePerformance()
Clears the value of the "disable_scheduling_beware_this_may_degrade_performance" field.
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....
global::Google.OrTools.Sat.SatParameters SatParameters
If use_cp_sat or use_generalized_cp_sat is true, contains the SAT algorithm parameters which will be ...
global::Google.OrTools.ConstraintSolver.LocalCheapestInsertionParameters LocalCheapestCostInsertionParameters
Parameters for the local cheapest cost insertion heuristic.
const int OptimizationStepFieldNumber
Field number for the "optimization_step" field.
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 GuidedLocalSearchPenalizeWithVehicleClasses
When an arc leaving a vehicle start or arriving at a vehicle end is penalized, this field controls wh...
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...
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...
Parameters used to configure savings heuristics.
Contains the definitions for all the sat algorithm parameters and their default values.