Google OR-Tools v9.12
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
RoutingParameters.pb.cs
Go to the documentation of this file.
1// <auto-generated>
2// Generated by the protocol buffer compiler. DO NOT EDIT!
3// source: ortools/constraint_solver/routing_parameters.proto
4// </auto-generated>
5#pragma warning disable 1591, 0612, 3021, 8981
6#region Designer generated code
7
8using pb = global::Google.Protobuf;
9using pbc = global::Google.Protobuf.Collections;
10using pbr = global::Google.Protobuf.Reflection;
11using scg = global::System.Collections.Generic;
13
15 public static partial class RoutingParametersReflection {
16
17 #region Descriptor
19 public static pbr::FileDescriptor Descriptor {
20 get { return descriptor; }
21 }
22 private static pbr::FileDescriptor descriptor;
23
25 byte[] descriptorData = global::System.Convert.FromBase64String(
26 string.Concat(
27 "CjJvcnRvb2xzL2NvbnN0cmFpbnRfc29sdmVyL3JvdXRpbmdfcGFyYW1ldGVy",
28 "cy5wcm90bxITb3BlcmF0aW9uc19yZXNlYXJjaBoeZ29vZ2xlL3Byb3RvYnVm",
29 "L2R1cmF0aW9uLnByb3RvGi1vcnRvb2xzL2NvbnN0cmFpbnRfc29sdmVyL3Jv",
30 "dXRpbmdfZW51bXMucHJvdG8aK29ydG9vbHMvY29uc3RyYWludF9zb2x2ZXIv",
31 "cm91dGluZ19pbHMucHJvdG8aMW9ydG9vbHMvY29uc3RyYWludF9zb2x2ZXIv",
32 "c29sdmVyX3BhcmFtZXRlcnMucHJvdG8aIG9ydG9vbHMvc2F0L3NhdF9wYXJh",
33 "bWV0ZXJzLnByb3RvGiNvcnRvb2xzL3V0aWwvb3B0aW9uYWxfYm9vbGVhbi5w",
34 "cm90byK6NwoXUm91dGluZ1NlYXJjaFBhcmFtZXRlcnMSUQoXZmlyc3Rfc29s",
35 "dXRpb25fc3RyYXRlZ3kYASABKA4yMC5vcGVyYXRpb25zX3Jlc2VhcmNoLkZp",
36 "cnN0U29sdXRpb25TdHJhdGVneS5WYWx1ZRIuCiZ1c2VfdW5maWx0ZXJlZF9m",
37 "aXJzdF9zb2x1dGlvbl9zdHJhdGVneRgCIAEoCBIfChdzYXZpbmdzX25laWdo",
38 "Ym9yc19yYXRpbxgOIAEoARImCh5zYXZpbmdzX21heF9tZW1vcnlfdXNhZ2Vf",
39 "Ynl0ZXMYFyABKAESIAoYc2F2aW5nc19hZGRfcmV2ZXJzZV9hcmNzGA8gASgI",
40 "Eh8KF3NhdmluZ3NfYXJjX2NvZWZmaWNpZW50GBIgASgBEi8KJ2NoZWFwZXN0",
41 "X2luc2VydGlvbl9mYXJ0aGVzdF9zZWVkc19yYXRpbxgQIAEoARI5CjFjaGVh",
42 "cGVzdF9pbnNlcnRpb25fZmlyc3Rfc29sdXRpb25fbmVpZ2hib3JzX3JhdGlv",
43 "GBUgASgBEjcKL2NoZWFwZXN0X2luc2VydGlvbl9maXJzdF9zb2x1dGlvbl9t",
44 "aW5fbmVpZ2hib3JzGCwgASgFEjYKLmNoZWFwZXN0X2luc2VydGlvbl9sc19v",
45 "cGVyYXRvcl9uZWlnaGJvcnNfcmF0aW8YHyABKAESNAosY2hlYXBlc3RfaW5z",
46 "ZXJ0aW9uX2xzX29wZXJhdG9yX21pbl9uZWlnaGJvcnMYLSABKAUSUApIY2hl",
47 "YXBlc3RfaW5zZXJ0aW9uX2ZpcnN0X3NvbHV0aW9uX3VzZV9uZWlnaGJvcnNf",
48 "cmF0aW9fZm9yX2luaXRpYWxpemF0aW9uGC4gASgIEjIKKmNoZWFwZXN0X2lu",
49 "c2VydGlvbl9hZGRfdW5wZXJmb3JtZWRfZW50cmllcxgoIAEoCBJ9CjFsb2Nh",
50 "bF9jaGVhcGVzdF9pbnNlcnRpb25fcGlja3VwX2RlbGl2ZXJ5X3N0cmF0ZWd5",
51 "GDEgASgOMkIub3BlcmF0aW9uc19yZXNlYXJjaC5Sb3V0aW5nU2VhcmNoUGFy",
52 "YW1ldGVycy5QYWlySW5zZXJ0aW9uU3RyYXRlZ3kSggEKNmxvY2FsX2NoZWFw",
53 "ZXN0X2Nvc3RfaW5zZXJ0aW9uX3BpY2t1cF9kZWxpdmVyeV9zdHJhdGVneRg3",
54 "IAEoDjJCLm9wZXJhdGlvbnNfcmVzZWFyY2guUm91dGluZ1NlYXJjaFBhcmFt",
55 "ZXRlcnMuUGFpckluc2VydGlvblN0cmF0ZWd5EnoKK2xvY2FsX2NoZWFwZXN0",
56 "X2luc2VydGlvbl9zb3J0aW5nX3Byb3BlcnRpZXMYQyADKA4yRS5vcGVyYXRp",
57 "b25zX3Jlc2VhcmNoLlJvdXRpbmdTZWFyY2hQYXJhbWV0ZXJzLkluc2VydGlv",
58 "blNvcnRpbmdQcm9wZXJ0eRIpCiFjaHJpc3RvZmlkZXNfdXNlX21pbmltdW1f",
59 "bWF0Y2hpbmcYHiABKAgSKgoiZmlyc3Rfc29sdXRpb25fb3B0aW1pemF0aW9u",
60 "X3BlcmlvZBg7IAEoBRJtChZsb2NhbF9zZWFyY2hfb3BlcmF0b3JzGAMgASgL",
61 "Mk0ub3BlcmF0aW9uc19yZXNlYXJjaC5Sb3V0aW5nU2VhcmNoUGFyYW1ldGVy",
62 "cy5Mb2NhbFNlYXJjaE5laWdoYm9yaG9vZE9wZXJhdG9ycxIjChtsc19vcGVy",
63 "YXRvcl9uZWlnaGJvcnNfcmF0aW8YNSABKAESIQoZbHNfb3BlcmF0b3JfbWlu",
64 "X25laWdoYm9ycxg2IAEoBRI0Cix1c2VfbXVsdGlfYXJtZWRfYmFuZGl0X2Nv",
65 "bmNhdGVuYXRlX29wZXJhdG9ycxgpIAEoCBI/CjdtdWx0aV9hcm1lZF9iYW5k",
66 "aXRfY29tcG91bmRfb3BlcmF0b3JfbWVtb3J5X2NvZWZmaWNpZW50GCogASgB",
67 "EkQKPG11bHRpX2FybWVkX2JhbmRpdF9jb21wb3VuZF9vcGVyYXRvcl9leHBs",
68 "b3JhdGlvbl9jb2VmZmljaWVudBgrIAEoARIiChptYXhfc3dhcF9hY3RpdmVf",
69 "Y2hhaW5fc2l6ZRhCIAEoBRI1Ci1yZWxvY2F0ZV9leHBlbnNpdmVfY2hhaW5f",
70 "bnVtX2FyY3NfdG9fY29uc2lkZXIYFCABKAUSOgoyaGV1cmlzdGljX2V4cGVu",
71 "c2l2ZV9jaGFpbl9sbnNfbnVtX2FyY3NfdG9fY29uc2lkZXIYICABKAUSKwoj",
72 "aGV1cmlzdGljX2Nsb3NlX25vZGVzX2xuc19udW1fbm9kZXMYIyABKAUSVwoa",
73 "bG9jYWxfc2VhcmNoX21ldGFoZXVyaXN0aWMYBCABKA4yMy5vcGVyYXRpb25z",
74 "X3Jlc2VhcmNoLkxvY2FsU2VhcmNoTWV0YWhldXJpc3RpYy5WYWx1ZRJYChts",
75 "b2NhbF9zZWFyY2hfbWV0YWhldXJpc3RpY3MYPyADKA4yMy5vcGVyYXRpb25z",
76 "X3Jlc2VhcmNoLkxvY2FsU2VhcmNoTWV0YWhldXJpc3RpYy5WYWx1ZRI4CjBu",
77 "dW1fbWF4X2xvY2FsX29wdGltYV9iZWZvcmVfbWV0YWhldXJpc3RpY19zd2l0",
78 "Y2gYQCABKAUSLgomZ3VpZGVkX2xvY2FsX3NlYXJjaF9sYW1iZGFfY29lZmZp",
79 "Y2llbnQYBSABKAESQAo4Z3VpZGVkX2xvY2FsX3NlYXJjaF9yZXNldF9wZW5h",
80 "bHRpZXNfb25fbmV3X2Jlc3Rfc29sdXRpb24YMyABKAgSOQoxZ3VpZGVkX2xv",
81 "Y2FsX3NlYXJjaF9wZW5hbGl6ZV93aXRoX3ZlaGljbGVfY2xhc3Nlcxg9IAEo",
82 "CBJDCjt1c2VfZ3VpZGVkX2xvY2FsX3NlYXJjaF9wZW5hbHRpZXNfaW5fbG9j",
83 "YWxfc2VhcmNoX29wZXJhdG9ycxg+IAEoCBIeChZ1c2VfZGVwdGhfZmlyc3Rf",
84 "c2VhcmNoGAYgASgIEjQKBnVzZV9jcBgcIAEoDjIkLm9wZXJhdGlvbnNfcmVz",
85 "ZWFyY2guT3B0aW9uYWxCb29sZWFuEjgKCnVzZV9jcF9zYXQYGyABKA4yJC5v",
86 "cGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJEChZ1c2VfZ2Vu",
87 "ZXJhbGl6ZWRfY3Bfc2F0GC8gASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5P",
88 "cHRpb25hbEJvb2xlYW4SPgoOc2F0X3BhcmFtZXRlcnMYMCABKAsyJi5vcGVy",
89 "YXRpb25zX3Jlc2VhcmNoLnNhdC5TYXRQYXJhbWV0ZXJzEiwKJHJlcG9ydF9p",
90 "bnRlcm1lZGlhdGVfY3Bfc2F0X3NvbHV0aW9ucxg4IAEoCBIpCiFmYWxsYmFj",
91 "a190b19jcF9zYXRfc2l6ZV90aHJlc2hvbGQYNCABKAUSYwocY29udGludW91",
92 "c19zY2hlZHVsaW5nX3NvbHZlchghIAEoDjI9Lm9wZXJhdGlvbnNfcmVzZWFy",
93 "Y2guUm91dGluZ1NlYXJjaFBhcmFtZXRlcnMuU2NoZWR1bGluZ1NvbHZlchJm",
94 "Ch9taXhlZF9pbnRlZ2VyX3NjaGVkdWxpbmdfc29sdmVyGCIgASgOMj0ub3Bl",
95 "cmF0aW9uc19yZXNlYXJjaC5Sb3V0aW5nU2VhcmNoUGFyYW1ldGVycy5TY2hl",
96 "ZHVsaW5nU29sdmVyEkMKNmRpc2FibGVfc2NoZWR1bGluZ19iZXdhcmVfdGhp",
97 "c19tYXlfZGVncmFkZV9wZXJmb3JtYW5jZRgyIAEoCEgAiAEBEhkKEW9wdGlt",
98 "aXphdGlvbl9zdGVwGAcgASgBEiYKHm51bWJlcl9vZl9zb2x1dGlvbnNfdG9f",
99 "Y29sbGVjdBgRIAEoBRIWCg5zb2x1dGlvbl9saW1pdBgIIAEoAxItCgp0aW1l",
100 "X2xpbWl0GAkgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEjEKDmxu",
101 "c190aW1lX2xpbWl0GAogASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9u",
102 "EiUKHXNlY29uZGFyeV9sc190aW1lX2xpbWl0X3JhdGlvGDkgASgBEnMKHGlt",
103 "cHJvdmVtZW50X2xpbWl0X3BhcmFtZXRlcnMYJSABKAsyTS5vcGVyYXRpb25z",
104 "X3Jlc2VhcmNoLlJvdXRpbmdTZWFyY2hQYXJhbWV0ZXJzLkltcHJvdmVtZW50",
105 "U2VhcmNoTGltaXRQYXJhbWV0ZXJzEhwKFHVzZV9mdWxsX3Byb3BhZ2F0aW9u",
106 "GAsgASgIEhIKCmxvZ19zZWFyY2gYDSABKAgSHwoXbG9nX2Nvc3Rfc2NhbGlu",
107 "Z19mYWN0b3IYFiABKAESFwoPbG9nX2Nvc3Rfb2Zmc2V0GB0gASgBEg8KB2xv",
108 "Z190YWcYJCABKAkSIQoZdXNlX2l0ZXJhdGVkX2xvY2FsX3NlYXJjaBg6IAEo",
109 "CBJcCiBpdGVyYXRlZF9sb2NhbF9zZWFyY2hfcGFyYW1ldGVycxg8IAEoCzIy",
110 "Lm9wZXJhdGlvbnNfcmVzZWFyY2guSXRlcmF0ZWRMb2NhbFNlYXJjaFBhcmFt",
111 "ZXRlcnMa2hUKIExvY2FsU2VhcmNoTmVpZ2hib3Job29kT3BlcmF0b3JzEjoK",
112 "DHVzZV9yZWxvY2F0ZRgBIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0",
113 "aW9uYWxCb29sZWFuEj8KEXVzZV9yZWxvY2F0ZV9wYWlyGAIgASgOMiQub3Bl",
114 "cmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SRQoXdXNlX2xpZ2h0",
115 "X3JlbG9jYXRlX3BhaXIYGCABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9w",
116 "dGlvbmFsQm9vbGVhbhJEChZ1c2VfcmVsb2NhdGVfbmVpZ2hib3JzGAMgASgO",
117 "MiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SQgoUdXNl",
118 "X3JlbG9jYXRlX3N1YnRyaXAYGSABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNo",
119 "Lk9wdGlvbmFsQm9vbGVhbhI6Cgx1c2VfZXhjaGFuZ2UYBCABKA4yJC5vcGVy",
120 "YXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI/ChF1c2VfZXhjaGFu",
121 "Z2VfcGFpchgWIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxC",
122 "b29sZWFuEkIKFHVzZV9leGNoYW5nZV9zdWJ0cmlwGBogASgOMiQub3BlcmF0",
123 "aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SNwoJdXNlX2Nyb3NzGAUg",
124 "ASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SQAoS",
125 "dXNlX2Nyb3NzX2V4Y2hhbmdlGAYgASgOMiQub3BlcmF0aW9uc19yZXNlYXJj",
126 "aC5PcHRpb25hbEJvb2xlYW4SSgocdXNlX3JlbG9jYXRlX2V4cGVuc2l2ZV9j",
127 "aGFpbhgXIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29s",
128 "ZWFuEjkKC3VzZV90d29fb3B0GAcgASgOMiQub3BlcmF0aW9uc19yZXNlYXJj",
129 "aC5PcHRpb25hbEJvb2xlYW4SOAoKdXNlX29yX29wdBgIIAEoDjIkLm9wZXJh",
130 "dGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEj8KEXVzZV9saW5fa2Vy",
131 "bmlnaGFuGAkgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJv",
132 "b2xlYW4SOQoLdXNlX3RzcF9vcHQYCiABKA4yJC5vcGVyYXRpb25zX3Jlc2Vh",
133 "cmNoLk9wdGlvbmFsQm9vbGVhbhI9Cg91c2VfbWFrZV9hY3RpdmUYCyABKA4y",
134 "JC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJKChx1c2Vf",
135 "cmVsb2NhdGVfYW5kX21ha2VfYWN0aXZlGBUgASgOMiQub3BlcmF0aW9uc19y",
136 "ZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SSgocdXNlX2V4Y2hhbmdlX2FuZF9t",
137 "YWtlX2FjdGl2ZRglIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9u",
138 "YWxCb29sZWFuEloKLHVzZV9leGNoYW5nZV9wYXRoX3N0YXJ0X2VuZHNfYW5k",
139 "X21ha2VfYWN0aXZlGCYgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRp",
140 "b25hbEJvb2xlYW4SPwoRdXNlX21ha2VfaW5hY3RpdmUYDCABKA4yJC5vcGVy",
141 "YXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhJFChd1c2VfbWFrZV9j",
142 "aGFpbl9pbmFjdGl2ZRgNIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0",
143 "aW9uYWxCb29sZWFuEj0KD3VzZV9zd2FwX2FjdGl2ZRgOIAEoDjIkLm9wZXJh",
144 "dGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEkMKFXVzZV9zd2FwX2Fj",
145 "dGl2ZV9jaGFpbhgjIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9u",
146 "YWxCb29sZWFuEkYKGHVzZV9leHRlbmRlZF9zd2FwX2FjdGl2ZRgPIAEoDjIk",
147 "Lm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEksKHXVzZV9z",
148 "aG9ydGVzdF9wYXRoX3N3YXBfYWN0aXZlGCIgASgOMiQub3BlcmF0aW9uc19y",
149 "ZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SRwoZdXNlX3Nob3J0ZXN0X3BhdGhf",
150 "dHdvX29wdBgkIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxC",
151 "b29sZWFuEkcKGXVzZV9ub2RlX3BhaXJfc3dhcF9hY3RpdmUYFCABKA4yJC5v",
152 "cGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9vbGVhbhI6Cgx1c2VfcGF0",
153 "aF9sbnMYECABKA4yJC5vcGVyYXRpb25zX3Jlc2VhcmNoLk9wdGlvbmFsQm9v",
154 "bGVhbhI/ChF1c2VfZnVsbF9wYXRoX2xucxgRIAEoDjIkLm9wZXJhdGlvbnNf",
155 "cmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEjkKC3VzZV90c3BfbG5zGBIgASgO",
156 "MiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SPgoQdXNl",
157 "X2luYWN0aXZlX2xucxgTIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0",
158 "aW9uYWxCb29sZWFuElQKJnVzZV9nbG9iYWxfY2hlYXBlc3RfaW5zZXJ0aW9u",
159 "X3BhdGhfbG5zGBsgASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25h",
160 "bEJvb2xlYW4SUwoldXNlX2xvY2FsX2NoZWFwZXN0X2luc2VydGlvbl9wYXRo",
161 "X2xucxgcIAEoDjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29s",
162 "ZWFuEmwKPnVzZV9yZWxvY2F0ZV9wYXRoX2dsb2JhbF9jaGVhcGVzdF9pbnNl",
163 "cnRpb25faW5zZXJ0X3VucGVyZm9ybWVkGCEgASgOMiQub3BlcmF0aW9uc19y",
164 "ZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4SXwoxdXNlX2dsb2JhbF9jaGVhcGVz",
165 "dF9pbnNlcnRpb25fZXhwZW5zaXZlX2NoYWluX2xucxgdIAEoDjIkLm9wZXJh",
166 "dGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEl4KMHVzZV9sb2NhbF9j",
167 "aGVhcGVzdF9pbnNlcnRpb25fZXhwZW5zaXZlX2NoYWluX2xucxgeIAEoDjIk",
168 "Lm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuElsKLXVzZV9n",
169 "bG9iYWxfY2hlYXBlc3RfaW5zZXJ0aW9uX2Nsb3NlX25vZGVzX2xucxgfIAEo",
170 "DjIkLm9wZXJhdGlvbnNfcmVzZWFyY2guT3B0aW9uYWxCb29sZWFuEloKLHVz",
171 "ZV9sb2NhbF9jaGVhcGVzdF9pbnNlcnRpb25fY2xvc2Vfbm9kZXNfbG5zGCAg",
172 "ASgOMiQub3BlcmF0aW9uc19yZXNlYXJjaC5PcHRpb25hbEJvb2xlYW4adQog",
173 "SW1wcm92ZW1lbnRTZWFyY2hMaW1pdFBhcmFtZXRlcnMSJAocaW1wcm92ZW1l",
174 "bnRfcmF0ZV9jb2VmZmljaWVudBgmIAEoARIrCiNpbXByb3ZlbWVudF9yYXRl",
175 "X3NvbHV0aW9uc19kaXN0YW5jZRgnIAEoBSKSAQoVUGFpckluc2VydGlvblN0",
176 "cmF0ZWd5Eg0KCUFVVE9NQVRJQxAAEiIKHkJFU1RfUElDS1VQX1RIRU5fQkVT",
177 "VF9ERUxJVkVSWRABEh0KGUJFU1RfUElDS1VQX0RFTElWRVJZX1BBSVIQAhIn",
178 "CiNCRVNUX1BJQ0tVUF9ERUxJVkVSWV9QQUlSX01VTFRJVE9VUhADIqoDChhJ",
179 "bnNlcnRpb25Tb3J0aW5nUHJvcGVydHkSIAocU09SVElOR19QUk9QRVJUWV9V",
180 "TlNQRUNJRklFRBAAEiUKIVNPUlRJTkdfUFJPUEVSVFlfQUxMT1dFRF9WRUhJ",
181 "Q0xFUxABEhwKGFNPUlRJTkdfUFJPUEVSVFlfUEVOQUxUWRACEjgKNFNPUlRJ",
182 "TkdfUFJPUEVSVFlfUEVOQUxUWV9PVkVSX0FMTE9XRURfVkVISUNMRVNfUkFU",
183 "SU8QAxI/CjtTT1JUSU5HX1BST1BFUlRZX0hJR0hFU1RfQVZHX0FSQ19DT1NU",
184 "X1RPX1ZFSElDTEVfU1RBUlRfRU5EUxAEEj4KOlNPUlRJTkdfUFJPUEVSVFlf",
185 "TE9XRVNUX0FWR19BUkNfQ09TVF9UT19WRUhJQ0xFX1NUQVJUX0VORFMQBRI+",
186 "CjpTT1JUSU5HX1BST1BFUlRZX0xPV0VTVF9NSU5fQVJDX0NPU1RfVE9fVkVI",
187 "SUNMRV9TVEFSVF9FTkRTEAYSLAooU09SVElOR19QUk9QRVJUWV9ISUdIRVNU",
188 "X0RJTUVOU0lPTl9VU0FHRRAHIlQKEFNjaGVkdWxpbmdTb2x2ZXISFAoQU0NI",
189 "RURVTElOR19VTlNFVBAAEhMKD1NDSEVEVUxJTkdfR0xPUBABEhUKEVNDSEVE",
190 "VUxJTkdfQ1BfU0FUEAJCOQo3X2Rpc2FibGVfc2NoZWR1bGluZ19iZXdhcmVf",
191 "dGhpc19tYXlfZGVncmFkZV9wZXJmb3JtYW5jZUoECBMQFEoECEEQQiKoAQoW",
192 "Um91dGluZ01vZGVsUGFyYW1ldGVycxJKChFzb2x2ZXJfcGFyYW1ldGVycxgB",
193 "IAEoCzIvLm9wZXJhdGlvbnNfcmVzZWFyY2guQ29uc3RyYWludFNvbHZlclBh",
194 "cmFtZXRlcnMSIQoZcmVkdWNlX3ZlaGljbGVfY29zdF9tb2RlbBgCIAEoCBIf",
195 "ChdtYXhfY2FsbGJhY2tfY2FjaGVfc2l6ZRgDIAEoBUJJCiNjb20uZ29vZ2xl",
196 "Lm9ydG9vbHMuY29uc3RyYWludHNvbHZlclABqgIfR29vZ2xlLk9yVG9vbHMu",
197 "Q29uc3RyYWludFNvbHZlcmIGcHJvdG8z"));
198 descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
199 new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.OrTools.ConstraintSolver.RoutingEnumsReflection.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, },
200 new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
201 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.ConstraintSolver.RoutingSearchParameters), global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Parser, new[]{ "FirstSolutionStrategy", "UseUnfilteredFirstSolutionStrategy", "SavingsNeighborsRatio", "SavingsMaxMemoryUsageBytes", "SavingsAddReverseArcs", "SavingsArcCoefficient", "CheapestInsertionFarthestSeedsRatio", "CheapestInsertionFirstSolutionNeighborsRatio", "CheapestInsertionFirstSolutionMinNeighbors", "CheapestInsertionLsOperatorNeighborsRatio", "CheapestInsertionLsOperatorMinNeighbors", "CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization", "CheapestInsertionAddUnperformedEntries", "LocalCheapestInsertionPickupDeliveryStrategy", "LocalCheapestCostInsertionPickupDeliveryStrategy", "LocalCheapestInsertionSortingProperties", "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.PairInsertionStrategy), typeof(global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.InsertionSortingProperty), 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" }, null, null, null, null),
202 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)}),
203 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.ConstraintSolver.RoutingModelParameters), global::Google.OrTools.ConstraintSolver.RoutingModelParameters.Parser, new[]{ "SolverParameters", "ReduceVehicleCostModel", "MaxCallbackCacheSize" }, null, null, null, null)
204 }));
205 }
206 #endregion
207
208 }
209 #region Messages
219 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
220 public sealed partial class RoutingSearchParameters : pb::IMessage<RoutingSearchParameters>
221 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
222 , pb::IBufferMessage
223 #endif
224 {
225 private static readonly pb::MessageParser<RoutingSearchParameters> _parser = new pb::MessageParser<RoutingSearchParameters>(() => new RoutingSearchParameters());
226 private pb::UnknownFieldSet _unknownFields;
227 private int _hasBits0;
228 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
229 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
230 public static pb::MessageParser<RoutingSearchParameters> Parser { get { return _parser; } }
232 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
233 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
234 public static pbr::MessageDescriptor Descriptor {
235 get { return global::Google.OrTools.ConstraintSolver.RoutingParametersReflection.Descriptor.MessageTypes[0]; }
236 }
237
238 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
239 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
240 pbr::MessageDescriptor pb::IMessage.Descriptor {
241 get { return Descriptor; }
242 }
243
244 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
245 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
246 public RoutingSearchParameters() {
247 OnConstruction();
248 }
249
250 partial void OnConstruction();
251
252 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
253 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
254 public RoutingSearchParameters(RoutingSearchParameters other) : this() {
255 _hasBits0 = other._hasBits0;
256 firstSolutionStrategy_ = other.firstSolutionStrategy_;
257 useUnfilteredFirstSolutionStrategy_ = other.useUnfilteredFirstSolutionStrategy_;
258 savingsNeighborsRatio_ = other.savingsNeighborsRatio_;
259 savingsMaxMemoryUsageBytes_ = other.savingsMaxMemoryUsageBytes_;
260 savingsAddReverseArcs_ = other.savingsAddReverseArcs_;
261 savingsArcCoefficient_ = other.savingsArcCoefficient_;
262 cheapestInsertionFarthestSeedsRatio_ = other.cheapestInsertionFarthestSeedsRatio_;
263 cheapestInsertionFirstSolutionNeighborsRatio_ = other.cheapestInsertionFirstSolutionNeighborsRatio_;
264 cheapestInsertionFirstSolutionMinNeighbors_ = other.cheapestInsertionFirstSolutionMinNeighbors_;
265 cheapestInsertionLsOperatorNeighborsRatio_ = other.cheapestInsertionLsOperatorNeighborsRatio_;
266 cheapestInsertionLsOperatorMinNeighbors_ = other.cheapestInsertionLsOperatorMinNeighbors_;
267 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = other.cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
268 cheapestInsertionAddUnperformedEntries_ = other.cheapestInsertionAddUnperformedEntries_;
269 localCheapestInsertionPickupDeliveryStrategy_ = other.localCheapestInsertionPickupDeliveryStrategy_;
270 localCheapestCostInsertionPickupDeliveryStrategy_ = other.localCheapestCostInsertionPickupDeliveryStrategy_;
271 localCheapestInsertionSortingProperties_ = other.localCheapestInsertionSortingProperties_.Clone();
272 christofidesUseMinimumMatching_ = other.christofidesUseMinimumMatching_;
273 firstSolutionOptimizationPeriod_ = other.firstSolutionOptimizationPeriod_;
274 localSearchOperators_ = other.localSearchOperators_ != null ? other.localSearchOperators_.Clone() : null;
275 lsOperatorNeighborsRatio_ = other.lsOperatorNeighborsRatio_;
276 lsOperatorMinNeighbors_ = other.lsOperatorMinNeighbors_;
277 useMultiArmedBanditConcatenateOperators_ = other.useMultiArmedBanditConcatenateOperators_;
278 multiArmedBanditCompoundOperatorMemoryCoefficient_ = other.multiArmedBanditCompoundOperatorMemoryCoefficient_;
279 multiArmedBanditCompoundOperatorExplorationCoefficient_ = other.multiArmedBanditCompoundOperatorExplorationCoefficient_;
280 maxSwapActiveChainSize_ = other.maxSwapActiveChainSize_;
281 relocateExpensiveChainNumArcsToConsider_ = other.relocateExpensiveChainNumArcsToConsider_;
282 heuristicExpensiveChainLnsNumArcsToConsider_ = other.heuristicExpensiveChainLnsNumArcsToConsider_;
283 heuristicCloseNodesLnsNumNodes_ = other.heuristicCloseNodesLnsNumNodes_;
284 localSearchMetaheuristic_ = other.localSearchMetaheuristic_;
285 localSearchMetaheuristics_ = other.localSearchMetaheuristics_.Clone();
286 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = other.numMaxLocalOptimaBeforeMetaheuristicSwitch_;
287 guidedLocalSearchLambdaCoefficient_ = other.guidedLocalSearchLambdaCoefficient_;
288 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = other.guidedLocalSearchResetPenaltiesOnNewBestSolution_;
289 guidedLocalSearchPenalizeWithVehicleClasses_ = other.guidedLocalSearchPenalizeWithVehicleClasses_;
290 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = other.useGuidedLocalSearchPenaltiesInLocalSearchOperators_;
291 useDepthFirstSearch_ = other.useDepthFirstSearch_;
292 useCp_ = other.useCp_;
293 useCpSat_ = other.useCpSat_;
294 useGeneralizedCpSat_ = other.useGeneralizedCpSat_;
295 satParameters_ = other.satParameters_ != null ? other.satParameters_.Clone() : null;
296 reportIntermediateCpSatSolutions_ = other.reportIntermediateCpSatSolutions_;
297 fallbackToCpSatSizeThreshold_ = other.fallbackToCpSatSizeThreshold_;
298 continuousSchedulingSolver_ = other.continuousSchedulingSolver_;
299 mixedIntegerSchedulingSolver_ = other.mixedIntegerSchedulingSolver_;
300 disableSchedulingBewareThisMayDegradePerformance_ = other.disableSchedulingBewareThisMayDegradePerformance_;
301 optimizationStep_ = other.optimizationStep_;
302 numberOfSolutionsToCollect_ = other.numberOfSolutionsToCollect_;
303 solutionLimit_ = other.solutionLimit_;
304 timeLimit_ = other.timeLimit_ != null ? other.timeLimit_.Clone() : null;
305 lnsTimeLimit_ = other.lnsTimeLimit_ != null ? other.lnsTimeLimit_.Clone() : null;
306 secondaryLsTimeLimitRatio_ = other.secondaryLsTimeLimitRatio_;
307 improvementLimitParameters_ = other.improvementLimitParameters_ != null ? other.improvementLimitParameters_.Clone() : null;
308 useFullPropagation_ = other.useFullPropagation_;
309 logSearch_ = other.logSearch_;
310 logCostScalingFactor_ = other.logCostScalingFactor_;
311 logCostOffset_ = other.logCostOffset_;
312 logTag_ = other.logTag_;
313 useIteratedLocalSearch_ = other.useIteratedLocalSearch_;
314 iteratedLocalSearchParameters_ = other.iteratedLocalSearchParameters_ != null ? other.iteratedLocalSearchParameters_.Clone() : null;
315 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
316 }
317
318 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
319 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
320 public RoutingSearchParameters Clone() {
321 return new RoutingSearchParameters(this);
322 }
323
324
325 public const int FirstSolutionStrategyFieldNumber = 1;
326 private global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value firstSolutionStrategy_ = global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset;
330 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
331 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
333 get { return firstSolutionStrategy_; }
334 set {
335 firstSolutionStrategy_ = value;
336 }
337 }
338
339
340 public const int UseUnfilteredFirstSolutionStrategyFieldNumber = 2;
341 private bool useUnfilteredFirstSolutionStrategy_;
348 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
349 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
351 get { return useUnfilteredFirstSolutionStrategy_; }
352 set {
353 useUnfilteredFirstSolutionStrategy_ = value;
354 }
355 }
356
358 public const int SavingsNeighborsRatioFieldNumber = 14;
359 private double savingsNeighborsRatio_;
365 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
366 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
367 public double SavingsNeighborsRatio {
368 get { return savingsNeighborsRatio_; }
369 set {
370 savingsNeighborsRatio_ = value;
371 }
372 }
373
375 public const int SavingsMaxMemoryUsageBytesFieldNumber = 23;
376 private double savingsMaxMemoryUsageBytes_;
385 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
386 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
387 public double SavingsMaxMemoryUsageBytes {
388 get { return savingsMaxMemoryUsageBytes_; }
389 set {
390 savingsMaxMemoryUsageBytes_ = value;
391 }
392 }
393
395 public const int SavingsAddReverseArcsFieldNumber = 15;
396 private bool savingsAddReverseArcs_;
401 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
402 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
403 public bool SavingsAddReverseArcs {
404 get { return savingsAddReverseArcs_; }
405 set {
406 savingsAddReverseArcs_ = value;
407 }
408 }
409
411 public const int SavingsArcCoefficientFieldNumber = 18;
412 private double savingsArcCoefficient_;
420 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
421 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
422 public double SavingsArcCoefficient {
423 get { return savingsArcCoefficient_; }
424 set {
425 savingsArcCoefficient_ = value;
426 }
427 }
428
430 public const int CheapestInsertionFarthestSeedsRatioFieldNumber = 16;
431 private double cheapestInsertionFarthestSeedsRatio_;
437 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
438 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
440 get { return cheapestInsertionFarthestSeedsRatio_; }
441 set {
442 cheapestInsertionFarthestSeedsRatio_ = value;
443 }
444 }
445
447 public const int CheapestInsertionFirstSolutionNeighborsRatioFieldNumber = 21;
448 private double cheapestInsertionFirstSolutionNeighborsRatio_;
466 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
467 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
469 get { return cheapestInsertionFirstSolutionNeighborsRatio_; }
470 set {
471 cheapestInsertionFirstSolutionNeighborsRatio_ = value;
472 }
473 }
474
476 public const int CheapestInsertionFirstSolutionMinNeighborsFieldNumber = 44;
477 private int cheapestInsertionFirstSolutionMinNeighbors_;
478 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
479 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
481 get { return cheapestInsertionFirstSolutionMinNeighbors_; }
482 set {
483 cheapestInsertionFirstSolutionMinNeighbors_ = value;
484 }
485 }
486
488 public const int CheapestInsertionLsOperatorNeighborsRatioFieldNumber = 31;
489 private double cheapestInsertionLsOperatorNeighborsRatio_;
496 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
497 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
499 get { return cheapestInsertionLsOperatorNeighborsRatio_; }
500 set {
501 cheapestInsertionLsOperatorNeighborsRatio_ = value;
502 }
503 }
504
506 public const int CheapestInsertionLsOperatorMinNeighborsFieldNumber = 45;
507 private int cheapestInsertionLsOperatorMinNeighbors_;
508 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
509 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
511 get { return cheapestInsertionLsOperatorMinNeighbors_; }
512 set {
513 cheapestInsertionLsOperatorMinNeighbors_ = value;
514 }
515 }
516
518 public const int CheapestInsertionFirstSolutionUseNeighborsRatioForInitializationFieldNumber = 46;
519 private bool cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
524 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
525 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
527 get { return cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_; }
528 set {
529 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = value;
530 }
531 }
532
534 public const int CheapestInsertionAddUnperformedEntriesFieldNumber = 40;
535 private bool cheapestInsertionAddUnperformedEntries_;
540 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
541 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
543 get { return cheapestInsertionAddUnperformedEntries_; }
544 set {
545 cheapestInsertionAddUnperformedEntries_ = value;
546 }
547 }
548
550 public const int LocalCheapestInsertionPickupDeliveryStrategyFieldNumber = 49;
551 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy localCheapestInsertionPickupDeliveryStrategy_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic;
556 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
557 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
559 get { return localCheapestInsertionPickupDeliveryStrategy_; }
560 set {
561 localCheapestInsertionPickupDeliveryStrategy_ = value;
562 }
563 }
564
566 public const int LocalCheapestCostInsertionPickupDeliveryStrategyFieldNumber = 55;
567 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy localCheapestCostInsertionPickupDeliveryStrategy_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic;
572 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
573 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
575 get { return localCheapestCostInsertionPickupDeliveryStrategy_; }
576 set {
577 localCheapestCostInsertionPickupDeliveryStrategy_ = value;
578 }
579 }
580
582 public const int LocalCheapestInsertionSortingPropertiesFieldNumber = 67;
583 private static readonly pb::FieldCodec<global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.InsertionSortingProperty> _repeated_localCheapestInsertionSortingProperties_codec
584 = pb::FieldCodec.ForEnum(538, x => (int) x, x => (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.InsertionSortingProperty) x);
585 private readonly pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.InsertionSortingProperty> localCheapestInsertionSortingProperties_ = new pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.InsertionSortingProperty>();
594 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
595 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
596 public pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.InsertionSortingProperty> LocalCheapestInsertionSortingProperties {
597 get { return localCheapestInsertionSortingProperties_; }
598 }
602 private bool christofidesUseMinimumMatching_;
607 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
608 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
610 get { return christofidesUseMinimumMatching_; }
611 set {
612 christofidesUseMinimumMatching_ = value;
613 }
614 }
615
617 public const int FirstSolutionOptimizationPeriodFieldNumber = 59;
618 private int firstSolutionOptimizationPeriod_;
628 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
629 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
631 get { return firstSolutionOptimizationPeriod_; }
632 set {
633 firstSolutionOptimizationPeriod_ = value;
634 }
635 }
636
638 public const int LocalSearchOperatorsFieldNumber = 3;
639 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators localSearchOperators_;
640 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
641 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
643 get { return localSearchOperators_; }
644 set {
645 localSearchOperators_ = value;
646 }
647 }
648
650 public const int LsOperatorNeighborsRatioFieldNumber = 53;
651 private double lsOperatorNeighborsRatio_;
657 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
658 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
659 public double LsOperatorNeighborsRatio {
660 get { return lsOperatorNeighborsRatio_; }
661 set {
662 lsOperatorNeighborsRatio_ = value;
663 }
664 }
665
667 public const int LsOperatorMinNeighborsFieldNumber = 54;
668 private int lsOperatorMinNeighbors_;
669 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
670 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
671 public int LsOperatorMinNeighbors {
672 get { return lsOperatorMinNeighbors_; }
673 set {
674 lsOperatorMinNeighbors_ = value;
675 }
676 }
677
679 public const int UseMultiArmedBanditConcatenateOperatorsFieldNumber = 41;
680 private bool useMultiArmedBanditConcatenateOperators_;
686 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
687 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
689 get { return useMultiArmedBanditConcatenateOperators_; }
690 set {
691 useMultiArmedBanditConcatenateOperators_ = value;
692 }
693 }
694
696 public const int MultiArmedBanditCompoundOperatorMemoryCoefficientFieldNumber = 42;
697 private double multiArmedBanditCompoundOperatorMemoryCoefficient_;
704 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
705 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
707 get { return multiArmedBanditCompoundOperatorMemoryCoefficient_; }
708 set {
709 multiArmedBanditCompoundOperatorMemoryCoefficient_ = value;
710 }
711 }
712
714 public const int MultiArmedBanditCompoundOperatorExplorationCoefficientFieldNumber = 43;
715 private double multiArmedBanditCompoundOperatorExplorationCoefficient_;
721 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
722 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
724 get { return multiArmedBanditCompoundOperatorExplorationCoefficient_; }
725 set {
726 multiArmedBanditCompoundOperatorExplorationCoefficient_ = value;
727 }
728 }
729
731 public const int MaxSwapActiveChainSizeFieldNumber = 66;
732 private int maxSwapActiveChainSize_;
736 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
737 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
738 public int MaxSwapActiveChainSize {
739 get { return maxSwapActiveChainSize_; }
740 set {
741 maxSwapActiveChainSize_ = value;
742 }
743 }
744
746 public const int RelocateExpensiveChainNumArcsToConsiderFieldNumber = 20;
747 private int relocateExpensiveChainNumArcsToConsider_;
757 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
758 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
760 get { return relocateExpensiveChainNumArcsToConsider_; }
761 set {
762 relocateExpensiveChainNumArcsToConsider_ = value;
763 }
764 }
765
767 public const int HeuristicExpensiveChainLnsNumArcsToConsiderFieldNumber = 32;
768 private int heuristicExpensiveChainLnsNumArcsToConsider_;
773 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
774 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
776 get { return heuristicExpensiveChainLnsNumArcsToConsider_; }
777 set {
778 heuristicExpensiveChainLnsNumArcsToConsider_ = value;
779 }
780 }
781
783 public const int HeuristicCloseNodesLnsNumNodesFieldNumber = 35;
784 private int heuristicCloseNodesLnsNumNodes_;
789 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
790 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
792 get { return heuristicCloseNodesLnsNumNodes_; }
793 set {
794 heuristicCloseNodesLnsNumNodes_ = value;
795 }
796 }
797
799 public const int LocalSearchMetaheuristicFieldNumber = 4;
800 private global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value localSearchMetaheuristic_ = global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset;
804 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
805 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
807 get { return localSearchMetaheuristic_; }
808 set {
809 localSearchMetaheuristic_ = value;
810 }
811 }
812
814 public const int LocalSearchMetaheuristicsFieldNumber = 63;
815 private static readonly pb::FieldCodec<global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value> _repeated_localSearchMetaheuristics_codec
816 = pb::FieldCodec.ForEnum(506, x => (int) x, x => (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) x);
817 private readonly pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value> localSearchMetaheuristics_ = new pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value>();
824 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
825 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
826 public pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value> LocalSearchMetaheuristics {
827 get { return localSearchMetaheuristics_; }
828 }
832 private int numMaxLocalOptimaBeforeMetaheuristicSwitch_;
833 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
834 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
836 get { return numMaxLocalOptimaBeforeMetaheuristicSwitch_; }
837 set {
838 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = value;
839 }
840 }
841
843 public const int GuidedLocalSearchLambdaCoefficientFieldNumber = 5;
844 private double guidedLocalSearchLambdaCoefficient_;
851 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
852 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
854 get { return guidedLocalSearchLambdaCoefficient_; }
855 set {
856 guidedLocalSearchLambdaCoefficient_ = value;
857 }
858 }
859
861 public const int GuidedLocalSearchResetPenaltiesOnNewBestSolutionFieldNumber = 51;
862 private bool guidedLocalSearchResetPenaltiesOnNewBestSolution_;
867 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
868 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
870 get { return guidedLocalSearchResetPenaltiesOnNewBestSolution_; }
871 set {
872 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = value;
873 }
874 }
875
877 public const int GuidedLocalSearchPenalizeWithVehicleClassesFieldNumber = 61;
878 private bool guidedLocalSearchPenalizeWithVehicleClasses_;
884 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
885 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
887 get { return guidedLocalSearchPenalizeWithVehicleClasses_; }
888 set {
889 guidedLocalSearchPenalizeWithVehicleClasses_ = value;
890 }
891 }
892
894 public const int UseGuidedLocalSearchPenaltiesInLocalSearchOperatorsFieldNumber = 62;
895 private bool useGuidedLocalSearchPenaltiesInLocalSearchOperators_;
900 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
901 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
903 get { return useGuidedLocalSearchPenaltiesInLocalSearchOperators_; }
904 set {
905 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = value;
906 }
907 }
908
910 public const int UseDepthFirstSearchFieldNumber = 6;
911 private bool useDepthFirstSearch_;
918 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
919 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
920 public bool UseDepthFirstSearch {
921 get { return useDepthFirstSearch_; }
922 set {
923 useDepthFirstSearch_ = value;
925 }
926
928 public const int UseCpFieldNumber = 28;
929 private global::Google.OrTools.Util.OptionalBoolean useCp_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
930
935 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
936 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
937 public global::Google.OrTools.Util.OptionalBoolean UseCp {
938 get { return useCp_; }
939 set {
940 useCp_ = value;
942 }
943
945 public const int UseCpSatFieldNumber = 27;
946 private global::Google.OrTools.Util.OptionalBoolean useCpSat_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
947
953 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
954 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
955 public global::Google.OrTools.Util.OptionalBoolean UseCpSat {
956 get { return useCpSat_; }
957 set {
958 useCpSat_ = value;
960 }
961
963 public const int UseGeneralizedCpSatFieldNumber = 47;
964 private global::Google.OrTools.Util.OptionalBoolean useGeneralizedCpSat_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
965
971 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
972 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
973 public global::Google.OrTools.Util.OptionalBoolean UseGeneralizedCpSat {
974 get { return useGeneralizedCpSat_; }
975 set {
976 useGeneralizedCpSat_ = value;
978 }
979
981 public const int SatParametersFieldNumber = 48;
982 private global::Google.OrTools.Sat.SatParameters satParameters_;
983
987 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
988 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
989 public global::Google.OrTools.Sat.SatParameters SatParameters {
990 get { return satParameters_; }
991 set {
992 satParameters_ = value;
994 }
995
997 public const int ReportIntermediateCpSatSolutionsFieldNumber = 56;
998 private bool reportIntermediateCpSatSolutions_;
999
1003 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1004 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1006 get { return reportIntermediateCpSatSolutions_; }
1007 set {
1008 reportIntermediateCpSatSolutions_ = value;
1010 }
1011
1013 public const int FallbackToCpSatSizeThresholdFieldNumber = 52;
1014 private int fallbackToCpSatSizeThreshold_;
1015
1019 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1020 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1021 public int FallbackToCpSatSizeThreshold {
1022 get { return fallbackToCpSatSizeThreshold_; }
1023 set {
1024 fallbackToCpSatSizeThreshold_ = value;
1026 }
1027
1029 public const int ContinuousSchedulingSolverFieldNumber = 33;
1030 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver continuousSchedulingSolver_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset;
1031 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1032 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1034 get { return continuousSchedulingSolver_; }
1035 set {
1036 continuousSchedulingSolver_ = value;
1038 }
1039
1041 public const int MixedIntegerSchedulingSolverFieldNumber = 34;
1042 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver mixedIntegerSchedulingSolver_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset;
1043 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1044 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1046 get { return mixedIntegerSchedulingSolver_; }
1047 set {
1048 mixedIntegerSchedulingSolver_ = value;
1050 }
1051
1053 public const int DisableSchedulingBewareThisMayDegradePerformanceFieldNumber = 50;
1054 private readonly static bool DisableSchedulingBewareThisMayDegradePerformanceDefaultValue = false;
1055
1056 private bool disableSchedulingBewareThisMayDegradePerformance_;
1061 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1062 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1064 get { if ((_hasBits0 & 1) != 0) { return disableSchedulingBewareThisMayDegradePerformance_; } else { return DisableSchedulingBewareThisMayDegradePerformanceDefaultValue; } }
1065 set {
1066 _hasBits0 |= 1;
1067 disableSchedulingBewareThisMayDegradePerformance_ = value;
1068 }
1069 }
1071 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1072 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1073 public bool HasDisableSchedulingBewareThisMayDegradePerformance {
1074 get { return (_hasBits0 & 1) != 0; }
1075 }
1077 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1078 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1080 _hasBits0 &= ~1;
1081 }
1082
1083 /// <summary>Field number for the "optimization_step" field.</summary>
1084 public const int OptimizationStepFieldNumber = 7;
1085 private double optimizationStep_;
1086
1091 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1092 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1093 public double OptimizationStep {
1094 get { return optimizationStep_; }
1095 set {
1096 optimizationStep_ = value;
1098 }
1099
1101 public const int NumberOfSolutionsToCollectFieldNumber = 17;
1102 private int numberOfSolutionsToCollect_;
1103
1107 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1108 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1109 public int NumberOfSolutionsToCollect {
1110 get { return numberOfSolutionsToCollect_; }
1111 set {
1112 numberOfSolutionsToCollect_ = value;
1114 }
1115
1117 public const int SolutionLimitFieldNumber = 8;
1118 private long solutionLimit_;
1119
1124 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1125 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1126 public long SolutionLimit {
1127 get { return solutionLimit_; }
1128 set {
1129 solutionLimit_ = value;
1131 }
1132
1134 public const int TimeLimitFieldNumber = 9;
1135 private global::Google.Protobuf.WellKnownTypes.Duration timeLimit_;
1136
1139 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1140 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1141 public global::Google.Protobuf.WellKnownTypes.Duration TimeLimit {
1142 get { return timeLimit_; }
1143 set {
1144 timeLimit_ = value;
1146 }
1147
1149 public const int LnsTimeLimitFieldNumber = 10;
1150 private global::Google.Protobuf.WellKnownTypes.Duration lnsTimeLimit_;
1151
1155 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1156 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1157 public global::Google.Protobuf.WellKnownTypes.Duration LnsTimeLimit {
1158 get { return lnsTimeLimit_; }
1159 set {
1160 lnsTimeLimit_ = value;
1162 }
1163
1165 public const int SecondaryLsTimeLimitRatioFieldNumber = 57;
1166 private double secondaryLsTimeLimitRatio_;
1167
1175 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1176 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1177 public double SecondaryLsTimeLimitRatio {
1178 get { return secondaryLsTimeLimitRatio_; }
1179 set {
1180 secondaryLsTimeLimitRatio_ = value;
1182 }
1183
1185 public const int ImprovementLimitParametersFieldNumber = 37;
1186 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters improvementLimitParameters_;
1187
1191 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1192 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1194 get { return improvementLimitParameters_; }
1195 set {
1196 improvementLimitParameters_ = value;
1198 }
1199
1201 public const int UseFullPropagationFieldNumber = 11;
1202 private bool useFullPropagation_;
1203
1215 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1216 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1217 public bool UseFullPropagation {
1218 get { return useFullPropagation_; }
1219 set {
1220 useFullPropagation_ = value;
1221 }
1223
1225 public const int LogSearchFieldNumber = 13;
1226 private bool logSearch_;
1228
1242 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1243 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1244 public bool LogSearch {
1245 get { return logSearch_; }
1246 set {
1247 logSearch_ = value;
1248 }
1249 }
1252 public const int LogCostScalingFactorFieldNumber = 22;
1253 private double logCostScalingFactor_;
1256
1258 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1259 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1260 public double LogCostScalingFactor {
1261 get { return logCostScalingFactor_; }
1262 set {
1263 logCostScalingFactor_ = value;
1264 }
1265 }
1268 public const int LogCostOffsetFieldNumber = 29;
1269 private double logCostOffset_;
1270 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1271 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1272 public double LogCostOffset {
1273 get { return logCostOffset_; }
1274 set {
1275 logCostOffset_ = value;
1276 }
1277 }
1280 public const int LogTagFieldNumber = 36;
1281 private string logTag_ = "";
1284
1286 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1287 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1288 public string LogTag {
1289 get { return logTag_; }
1290 set {
1291 logTag_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1292 }
1293 }
1296 public const int UseIteratedLocalSearchFieldNumber = 58;
1297 private bool useIteratedLocalSearch_;
1300
1302 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1303 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1304 public bool UseIteratedLocalSearch {
1305 get { return useIteratedLocalSearch_; }
1306 set {
1307 useIteratedLocalSearch_ = value;
1308 }
1309 }
1312 public const int IteratedLocalSearchParametersFieldNumber = 60;
1313 private global::Google.OrTools.ConstraintSolver.IteratedLocalSearchParameters iteratedLocalSearchParameters_;
1316
1317 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1318 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1320 get { return iteratedLocalSearchParameters_; }
1321 set {
1322 iteratedLocalSearchParameters_ = value;
1323 }
1324 }
1326 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1327 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1328 public override bool Equals(object other) {
1329 return Equals(other as RoutingSearchParameters);
1330 }
1331
1332 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1333 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1334 public bool Equals(RoutingSearchParameters other) {
1335 if (ReferenceEquals(other, null)) {
1336 return false;
1337 }
1338 if (ReferenceEquals(other, this)) {
1339 return true;
1341 if (FirstSolutionStrategy != other.FirstSolutionStrategy) return false;
1342 if (UseUnfilteredFirstSolutionStrategy != other.UseUnfilteredFirstSolutionStrategy) return false;
1343 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsNeighborsRatio, other.SavingsNeighborsRatio)) return false;
1344 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsMaxMemoryUsageBytes, other.SavingsMaxMemoryUsageBytes)) return false;
1345 if (SavingsAddReverseArcs != other.SavingsAddReverseArcs) return false;
1346 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsArcCoefficient, other.SavingsArcCoefficient)) return false;
1347 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionFarthestSeedsRatio, other.CheapestInsertionFarthestSeedsRatio)) return false;
1348 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionFirstSolutionNeighborsRatio, other.CheapestInsertionFirstSolutionNeighborsRatio)) return false;
1349 if (CheapestInsertionFirstSolutionMinNeighbors != other.CheapestInsertionFirstSolutionMinNeighbors) return false;
1350 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionLsOperatorNeighborsRatio, other.CheapestInsertionLsOperatorNeighborsRatio)) return false;
1351 if (CheapestInsertionLsOperatorMinNeighbors != other.CheapestInsertionLsOperatorMinNeighbors) return false;
1352 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != other.CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization) return false;
1353 if (CheapestInsertionAddUnperformedEntries != other.CheapestInsertionAddUnperformedEntries) return false;
1354 if (LocalCheapestInsertionPickupDeliveryStrategy != other.LocalCheapestInsertionPickupDeliveryStrategy) return false;
1355 if (LocalCheapestCostInsertionPickupDeliveryStrategy != other.LocalCheapestCostInsertionPickupDeliveryStrategy) return false;
1356 if(!localCheapestInsertionSortingProperties_.Equals(other.localCheapestInsertionSortingProperties_)) return false;
1357 if (ChristofidesUseMinimumMatching != other.ChristofidesUseMinimumMatching) return false;
1358 if (FirstSolutionOptimizationPeriod != other.FirstSolutionOptimizationPeriod) return false;
1359 if (!object.Equals(LocalSearchOperators, other.LocalSearchOperators)) return false;
1360 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LsOperatorNeighborsRatio, other.LsOperatorNeighborsRatio)) return false;
1361 if (LsOperatorMinNeighbors != other.LsOperatorMinNeighbors) return false;
1362 if (UseMultiArmedBanditConcatenateOperators != other.UseMultiArmedBanditConcatenateOperators) return false;
1363 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MultiArmedBanditCompoundOperatorMemoryCoefficient, other.MultiArmedBanditCompoundOperatorMemoryCoefficient)) return false;
1364 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MultiArmedBanditCompoundOperatorExplorationCoefficient, other.MultiArmedBanditCompoundOperatorExplorationCoefficient)) return false;
1365 if (MaxSwapActiveChainSize != other.MaxSwapActiveChainSize) return false;
1366 if (RelocateExpensiveChainNumArcsToConsider != other.RelocateExpensiveChainNumArcsToConsider) return false;
1367 if (HeuristicExpensiveChainLnsNumArcsToConsider != other.HeuristicExpensiveChainLnsNumArcsToConsider) return false;
1368 if (HeuristicCloseNodesLnsNumNodes != other.HeuristicCloseNodesLnsNumNodes) return false;
1369 if (LocalSearchMetaheuristic != other.LocalSearchMetaheuristic) return false;
1370 if(!localSearchMetaheuristics_.Equals(other.localSearchMetaheuristics_)) return false;
1371 if (NumMaxLocalOptimaBeforeMetaheuristicSwitch != other.NumMaxLocalOptimaBeforeMetaheuristicSwitch) return false;
1372 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(GuidedLocalSearchLambdaCoefficient, other.GuidedLocalSearchLambdaCoefficient)) return false;
1373 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != other.GuidedLocalSearchResetPenaltiesOnNewBestSolution) return false;
1374 if (GuidedLocalSearchPenalizeWithVehicleClasses != other.GuidedLocalSearchPenalizeWithVehicleClasses) return false;
1375 if (UseGuidedLocalSearchPenaltiesInLocalSearchOperators != other.UseGuidedLocalSearchPenaltiesInLocalSearchOperators) return false;
1376 if (UseDepthFirstSearch != other.UseDepthFirstSearch) return false;
1377 if (UseCp != other.UseCp) return false;
1378 if (UseCpSat != other.UseCpSat) return false;
1379 if (UseGeneralizedCpSat != other.UseGeneralizedCpSat) return false;
1380 if (!object.Equals(SatParameters, other.SatParameters)) return false;
1381 if (ReportIntermediateCpSatSolutions != other.ReportIntermediateCpSatSolutions) return false;
1382 if (FallbackToCpSatSizeThreshold != other.FallbackToCpSatSizeThreshold) return false;
1383 if (ContinuousSchedulingSolver != other.ContinuousSchedulingSolver) return false;
1384 if (MixedIntegerSchedulingSolver != other.MixedIntegerSchedulingSolver) return false;
1385 if (DisableSchedulingBewareThisMayDegradePerformance != other.DisableSchedulingBewareThisMayDegradePerformance) return false;
1386 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(OptimizationStep, other.OptimizationStep)) return false;
1387 if (NumberOfSolutionsToCollect != other.NumberOfSolutionsToCollect) return false;
1388 if (SolutionLimit != other.SolutionLimit) return false;
1389 if (!object.Equals(TimeLimit, other.TimeLimit)) return false;
1390 if (!object.Equals(LnsTimeLimit, other.LnsTimeLimit)) return false;
1391 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SecondaryLsTimeLimitRatio, other.SecondaryLsTimeLimitRatio)) return false;
1392 if (!object.Equals(ImprovementLimitParameters, other.ImprovementLimitParameters)) return false;
1393 if (UseFullPropagation != other.UseFullPropagation) return false;
1394 if (LogSearch != other.LogSearch) return false;
1395 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LogCostScalingFactor, other.LogCostScalingFactor)) return false;
1396 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LogCostOffset, other.LogCostOffset)) return false;
1397 if (LogTag != other.LogTag) return false;
1398 if (UseIteratedLocalSearch != other.UseIteratedLocalSearch) return false;
1399 if (!object.Equals(IteratedLocalSearchParameters, other.IteratedLocalSearchParameters)) return false;
1400 return Equals(_unknownFields, other._unknownFields);
1401 }
1402
1403 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1404 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1405 public override int GetHashCode() {
1406 int hash = 1;
1407 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) hash ^= FirstSolutionStrategy.GetHashCode();
1408 if (UseUnfilteredFirstSolutionStrategy != false) hash ^= UseUnfilteredFirstSolutionStrategy.GetHashCode();
1409 if (SavingsNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsNeighborsRatio);
1410 if (SavingsMaxMemoryUsageBytes != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsMaxMemoryUsageBytes);
1411 if (SavingsAddReverseArcs != false) hash ^= SavingsAddReverseArcs.GetHashCode();
1412 if (SavingsArcCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsArcCoefficient);
1413 if (CheapestInsertionFarthestSeedsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionFarthestSeedsRatio);
1414 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionFirstSolutionNeighborsRatio);
1416 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionLsOperatorNeighborsRatio);
1422 hash ^= localCheapestInsertionSortingProperties_.GetHashCode();
1423 if (ChristofidesUseMinimumMatching != false) hash ^= ChristofidesUseMinimumMatching.GetHashCode();
1425 if (localSearchOperators_ != null) hash ^= LocalSearchOperators.GetHashCode();
1426 if (LsOperatorNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LsOperatorNeighborsRatio);
1427 if (LsOperatorMinNeighbors != 0) hash ^= LsOperatorMinNeighbors.GetHashCode();
1429 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1430 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1431 if (MaxSwapActiveChainSize != 0) hash ^= MaxSwapActiveChainSize.GetHashCode();
1434 if (HeuristicCloseNodesLnsNumNodes != 0) hash ^= HeuristicCloseNodesLnsNumNodes.GetHashCode();
1436 hash ^= localSearchMetaheuristics_.GetHashCode();
1438 if (GuidedLocalSearchLambdaCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(GuidedLocalSearchLambdaCoefficient);
1442 if (UseDepthFirstSearch != false) hash ^= UseDepthFirstSearch.GetHashCode();
1443 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCp.GetHashCode();
1444 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCpSat.GetHashCode();
1445 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGeneralizedCpSat.GetHashCode();
1446 if (satParameters_ != null) hash ^= SatParameters.GetHashCode();
1447 if (ReportIntermediateCpSatSolutions != false) hash ^= ReportIntermediateCpSatSolutions.GetHashCode();
1448 if (FallbackToCpSatSizeThreshold != 0) hash ^= FallbackToCpSatSizeThreshold.GetHashCode();
1452 if (OptimizationStep != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(OptimizationStep);
1453 if (NumberOfSolutionsToCollect != 0) hash ^= NumberOfSolutionsToCollect.GetHashCode();
1454 if (SolutionLimit != 0L) hash ^= SolutionLimit.GetHashCode();
1455 if (timeLimit_ != null) hash ^= TimeLimit.GetHashCode();
1456 if (lnsTimeLimit_ != null) hash ^= LnsTimeLimit.GetHashCode();
1457 if (SecondaryLsTimeLimitRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SecondaryLsTimeLimitRatio);
1458 if (improvementLimitParameters_ != null) hash ^= ImprovementLimitParameters.GetHashCode();
1459 if (UseFullPropagation != false) hash ^= UseFullPropagation.GetHashCode();
1460 if (LogSearch != false) hash ^= LogSearch.GetHashCode();
1461 if (LogCostScalingFactor != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LogCostScalingFactor);
1462 if (LogCostOffset != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LogCostOffset);
1463 if (LogTag.Length != 0) hash ^= LogTag.GetHashCode();
1464 if (UseIteratedLocalSearch != false) hash ^= UseIteratedLocalSearch.GetHashCode();
1465 if (iteratedLocalSearchParameters_ != null) hash ^= IteratedLocalSearchParameters.GetHashCode();
1466 if (_unknownFields != null) {
1467 hash ^= _unknownFields.GetHashCode();
1468 }
1469 return hash;
1470 }
1471
1472 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1473 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1474 public override string ToString() {
1475 return pb::JsonFormatter.ToDiagnosticString(this);
1476 }
1477
1478 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1479 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1480 public void WriteTo(pb::CodedOutputStream output) {
1481 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1482 output.WriteRawMessage(this);
1483 #else
1485 output.WriteRawTag(8);
1486 output.WriteEnum((int) FirstSolutionStrategy);
1487 }
1488 if (UseUnfilteredFirstSolutionStrategy != false) {
1489 output.WriteRawTag(16);
1490 output.WriteBool(UseUnfilteredFirstSolutionStrategy);
1491 }
1492 if (localSearchOperators_ != null) {
1493 output.WriteRawTag(26);
1494 output.WriteMessage(LocalSearchOperators);
1495 }
1496 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1497 output.WriteRawTag(32);
1498 output.WriteEnum((int) LocalSearchMetaheuristic);
1499 }
1500 if (GuidedLocalSearchLambdaCoefficient != 0D) {
1501 output.WriteRawTag(41);
1502 output.WriteDouble(GuidedLocalSearchLambdaCoefficient);
1503 }
1504 if (UseDepthFirstSearch != false) {
1505 output.WriteRawTag(48);
1506 output.WriteBool(UseDepthFirstSearch);
1507 }
1508 if (OptimizationStep != 0D) {
1509 output.WriteRawTag(57);
1510 output.WriteDouble(OptimizationStep);
1511 }
1512 if (SolutionLimit != 0L) {
1513 output.WriteRawTag(64);
1514 output.WriteInt64(SolutionLimit);
1515 }
1516 if (timeLimit_ != null) {
1517 output.WriteRawTag(74);
1518 output.WriteMessage(TimeLimit);
1519 }
1520 if (lnsTimeLimit_ != null) {
1521 output.WriteRawTag(82);
1522 output.WriteMessage(LnsTimeLimit);
1523 }
1524 if (UseFullPropagation != false) {
1525 output.WriteRawTag(88);
1526 output.WriteBool(UseFullPropagation);
1527 }
1528 if (LogSearch != false) {
1529 output.WriteRawTag(104);
1530 output.WriteBool(LogSearch);
1531 }
1532 if (SavingsNeighborsRatio != 0D) {
1533 output.WriteRawTag(113);
1534 output.WriteDouble(SavingsNeighborsRatio);
1535 }
1536 if (SavingsAddReverseArcs != false) {
1537 output.WriteRawTag(120);
1538 output.WriteBool(SavingsAddReverseArcs);
1539 }
1540 if (CheapestInsertionFarthestSeedsRatio != 0D) {
1541 output.WriteRawTag(129, 1);
1542 output.WriteDouble(CheapestInsertionFarthestSeedsRatio);
1543 }
1544 if (NumberOfSolutionsToCollect != 0) {
1545 output.WriteRawTag(136, 1);
1546 output.WriteInt32(NumberOfSolutionsToCollect);
1547 }
1548 if (SavingsArcCoefficient != 0D) {
1549 output.WriteRawTag(145, 1);
1550 output.WriteDouble(SavingsArcCoefficient);
1551 }
1552 if (RelocateExpensiveChainNumArcsToConsider != 0) {
1553 output.WriteRawTag(160, 1);
1554 output.WriteInt32(RelocateExpensiveChainNumArcsToConsider);
1555 }
1556 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
1557 output.WriteRawTag(169, 1);
1558 output.WriteDouble(CheapestInsertionFirstSolutionNeighborsRatio);
1559 }
1560 if (LogCostScalingFactor != 0D) {
1561 output.WriteRawTag(177, 1);
1562 output.WriteDouble(LogCostScalingFactor);
1563 }
1564 if (SavingsMaxMemoryUsageBytes != 0D) {
1565 output.WriteRawTag(185, 1);
1566 output.WriteDouble(SavingsMaxMemoryUsageBytes);
1567 }
1568 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1569 output.WriteRawTag(216, 1);
1570 output.WriteEnum((int) UseCpSat);
1571 }
1572 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1573 output.WriteRawTag(224, 1);
1574 output.WriteEnum((int) UseCp);
1575 }
1576 if (LogCostOffset != 0D) {
1577 output.WriteRawTag(233, 1);
1578 output.WriteDouble(LogCostOffset);
1579 }
1580 if (ChristofidesUseMinimumMatching != false) {
1581 output.WriteRawTag(240, 1);
1582 output.WriteBool(ChristofidesUseMinimumMatching);
1583 }
1584 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
1585 output.WriteRawTag(249, 1);
1586 output.WriteDouble(CheapestInsertionLsOperatorNeighborsRatio);
1587 }
1588 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1589 output.WriteRawTag(128, 2);
1590 output.WriteInt32(HeuristicExpensiveChainLnsNumArcsToConsider);
1591 }
1592 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1593 output.WriteRawTag(136, 2);
1594 output.WriteEnum((int) ContinuousSchedulingSolver);
1595 }
1596 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1597 output.WriteRawTag(144, 2);
1598 output.WriteEnum((int) MixedIntegerSchedulingSolver);
1599 }
1600 if (HeuristicCloseNodesLnsNumNodes != 0) {
1601 output.WriteRawTag(152, 2);
1602 output.WriteInt32(HeuristicCloseNodesLnsNumNodes);
1603 }
1604 if (LogTag.Length != 0) {
1605 output.WriteRawTag(162, 2);
1606 output.WriteString(LogTag);
1607 }
1608 if (improvementLimitParameters_ != null) {
1609 output.WriteRawTag(170, 2);
1610 output.WriteMessage(ImprovementLimitParameters);
1611 }
1612 if (CheapestInsertionAddUnperformedEntries != false) {
1613 output.WriteRawTag(192, 2);
1614 output.WriteBool(CheapestInsertionAddUnperformedEntries);
1615 }
1616 if (UseMultiArmedBanditConcatenateOperators != false) {
1617 output.WriteRawTag(200, 2);
1618 output.WriteBool(UseMultiArmedBanditConcatenateOperators);
1619 }
1620 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1621 output.WriteRawTag(209, 2);
1622 output.WriteDouble(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1623 }
1624 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1625 output.WriteRawTag(217, 2);
1626 output.WriteDouble(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1627 }
1628 if (CheapestInsertionFirstSolutionMinNeighbors != 0) {
1629 output.WriteRawTag(224, 2);
1630 output.WriteInt32(CheapestInsertionFirstSolutionMinNeighbors);
1631 }
1632 if (CheapestInsertionLsOperatorMinNeighbors != 0) {
1633 output.WriteRawTag(232, 2);
1634 output.WriteInt32(CheapestInsertionLsOperatorMinNeighbors);
1635 }
1636 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
1637 output.WriteRawTag(240, 2);
1638 output.WriteBool(CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization);
1639 }
1640 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1641 output.WriteRawTag(248, 2);
1642 output.WriteEnum((int) UseGeneralizedCpSat);
1643 }
1644 if (satParameters_ != null) {
1645 output.WriteRawTag(130, 3);
1646 output.WriteMessage(SatParameters);
1647 }
1648 if (LocalCheapestInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1649 output.WriteRawTag(136, 3);
1650 output.WriteEnum((int) LocalCheapestInsertionPickupDeliveryStrategy);
1651 }
1652 if (HasDisableSchedulingBewareThisMayDegradePerformance) {
1653 output.WriteRawTag(144, 3);
1654 output.WriteBool(DisableSchedulingBewareThisMayDegradePerformance);
1655 }
1656 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
1657 output.WriteRawTag(152, 3);
1658 output.WriteBool(GuidedLocalSearchResetPenaltiesOnNewBestSolution);
1659 }
1660 if (FallbackToCpSatSizeThreshold != 0) {
1661 output.WriteRawTag(160, 3);
1662 output.WriteInt32(FallbackToCpSatSizeThreshold);
1663 }
1664 if (LsOperatorNeighborsRatio != 0D) {
1665 output.WriteRawTag(169, 3);
1666 output.WriteDouble(LsOperatorNeighborsRatio);
1667 }
1668 if (LsOperatorMinNeighbors != 0) {
1669 output.WriteRawTag(176, 3);
1670 output.WriteInt32(LsOperatorMinNeighbors);
1671 }
1672 if (LocalCheapestCostInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1673 output.WriteRawTag(184, 3);
1674 output.WriteEnum((int) LocalCheapestCostInsertionPickupDeliveryStrategy);
1675 }
1676 if (ReportIntermediateCpSatSolutions != false) {
1677 output.WriteRawTag(192, 3);
1678 output.WriteBool(ReportIntermediateCpSatSolutions);
1679 }
1680 if (SecondaryLsTimeLimitRatio != 0D) {
1681 output.WriteRawTag(201, 3);
1682 output.WriteDouble(SecondaryLsTimeLimitRatio);
1683 }
1684 if (UseIteratedLocalSearch != false) {
1685 output.WriteRawTag(208, 3);
1686 output.WriteBool(UseIteratedLocalSearch);
1687 }
1688 if (FirstSolutionOptimizationPeriod != 0) {
1689 output.WriteRawTag(216, 3);
1690 output.WriteInt32(FirstSolutionOptimizationPeriod);
1691 }
1692 if (iteratedLocalSearchParameters_ != null) {
1693 output.WriteRawTag(226, 3);
1694 output.WriteMessage(IteratedLocalSearchParameters);
1695 }
1696 if (GuidedLocalSearchPenalizeWithVehicleClasses != false) {
1697 output.WriteRawTag(232, 3);
1698 output.WriteBool(GuidedLocalSearchPenalizeWithVehicleClasses);
1699 }
1700 if (UseGuidedLocalSearchPenaltiesInLocalSearchOperators != false) {
1701 output.WriteRawTag(240, 3);
1702 output.WriteBool(UseGuidedLocalSearchPenaltiesInLocalSearchOperators);
1703 }
1704 localSearchMetaheuristics_.WriteTo(output, _repeated_localSearchMetaheuristics_codec);
1705 if (NumMaxLocalOptimaBeforeMetaheuristicSwitch != 0) {
1706 output.WriteRawTag(128, 4);
1707 output.WriteInt32(NumMaxLocalOptimaBeforeMetaheuristicSwitch);
1708 }
1709 if (MaxSwapActiveChainSize != 0) {
1710 output.WriteRawTag(144, 4);
1711 output.WriteInt32(MaxSwapActiveChainSize);
1712 }
1713 localCheapestInsertionSortingProperties_.WriteTo(output, _repeated_localCheapestInsertionSortingProperties_codec);
1714 if (_unknownFields != null) {
1715 _unknownFields.WriteTo(output);
1716 }
1717 #endif
1718 }
1719
1720 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1721 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1722 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1723 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
1724 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1725 output.WriteRawTag(8);
1726 output.WriteEnum((int) FirstSolutionStrategy);
1727 }
1728 if (UseUnfilteredFirstSolutionStrategy != false) {
1729 output.WriteRawTag(16);
1730 output.WriteBool(UseUnfilteredFirstSolutionStrategy);
1731 }
1732 if (localSearchOperators_ != null) {
1733 output.WriteRawTag(26);
1734 output.WriteMessage(LocalSearchOperators);
1735 }
1736 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1737 output.WriteRawTag(32);
1738 output.WriteEnum((int) LocalSearchMetaheuristic);
1739 }
1740 if (GuidedLocalSearchLambdaCoefficient != 0D) {
1741 output.WriteRawTag(41);
1742 output.WriteDouble(GuidedLocalSearchLambdaCoefficient);
1743 }
1744 if (UseDepthFirstSearch != false) {
1745 output.WriteRawTag(48);
1746 output.WriteBool(UseDepthFirstSearch);
1747 }
1748 if (OptimizationStep != 0D) {
1749 output.WriteRawTag(57);
1750 output.WriteDouble(OptimizationStep);
1751 }
1752 if (SolutionLimit != 0L) {
1753 output.WriteRawTag(64);
1754 output.WriteInt64(SolutionLimit);
1755 }
1756 if (timeLimit_ != null) {
1757 output.WriteRawTag(74);
1758 output.WriteMessage(TimeLimit);
1759 }
1760 if (lnsTimeLimit_ != null) {
1761 output.WriteRawTag(82);
1762 output.WriteMessage(LnsTimeLimit);
1763 }
1764 if (UseFullPropagation != false) {
1765 output.WriteRawTag(88);
1766 output.WriteBool(UseFullPropagation);
1767 }
1768 if (LogSearch != false) {
1769 output.WriteRawTag(104);
1770 output.WriteBool(LogSearch);
1771 }
1772 if (SavingsNeighborsRatio != 0D) {
1773 output.WriteRawTag(113);
1774 output.WriteDouble(SavingsNeighborsRatio);
1775 }
1776 if (SavingsAddReverseArcs != false) {
1777 output.WriteRawTag(120);
1778 output.WriteBool(SavingsAddReverseArcs);
1779 }
1780 if (CheapestInsertionFarthestSeedsRatio != 0D) {
1781 output.WriteRawTag(129, 1);
1782 output.WriteDouble(CheapestInsertionFarthestSeedsRatio);
1783 }
1784 if (NumberOfSolutionsToCollect != 0) {
1785 output.WriteRawTag(136, 1);
1786 output.WriteInt32(NumberOfSolutionsToCollect);
1787 }
1788 if (SavingsArcCoefficient != 0D) {
1789 output.WriteRawTag(145, 1);
1790 output.WriteDouble(SavingsArcCoefficient);
1791 }
1792 if (RelocateExpensiveChainNumArcsToConsider != 0) {
1793 output.WriteRawTag(160, 1);
1794 output.WriteInt32(RelocateExpensiveChainNumArcsToConsider);
1795 }
1796 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
1797 output.WriteRawTag(169, 1);
1798 output.WriteDouble(CheapestInsertionFirstSolutionNeighborsRatio);
1799 }
1800 if (LogCostScalingFactor != 0D) {
1801 output.WriteRawTag(177, 1);
1802 output.WriteDouble(LogCostScalingFactor);
1803 }
1804 if (SavingsMaxMemoryUsageBytes != 0D) {
1805 output.WriteRawTag(185, 1);
1806 output.WriteDouble(SavingsMaxMemoryUsageBytes);
1807 }
1808 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1809 output.WriteRawTag(216, 1);
1810 output.WriteEnum((int) UseCpSat);
1811 }
1812 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1813 output.WriteRawTag(224, 1);
1814 output.WriteEnum((int) UseCp);
1815 }
1816 if (LogCostOffset != 0D) {
1817 output.WriteRawTag(233, 1);
1818 output.WriteDouble(LogCostOffset);
1819 }
1820 if (ChristofidesUseMinimumMatching != false) {
1821 output.WriteRawTag(240, 1);
1822 output.WriteBool(ChristofidesUseMinimumMatching);
1823 }
1824 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
1825 output.WriteRawTag(249, 1);
1826 output.WriteDouble(CheapestInsertionLsOperatorNeighborsRatio);
1827 }
1828 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1829 output.WriteRawTag(128, 2);
1830 output.WriteInt32(HeuristicExpensiveChainLnsNumArcsToConsider);
1831 }
1832 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1833 output.WriteRawTag(136, 2);
1834 output.WriteEnum((int) ContinuousSchedulingSolver);
1835 }
1836 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1837 output.WriteRawTag(144, 2);
1838 output.WriteEnum((int) MixedIntegerSchedulingSolver);
1839 }
1840 if (HeuristicCloseNodesLnsNumNodes != 0) {
1841 output.WriteRawTag(152, 2);
1842 output.WriteInt32(HeuristicCloseNodesLnsNumNodes);
1843 }
1844 if (LogTag.Length != 0) {
1845 output.WriteRawTag(162, 2);
1846 output.WriteString(LogTag);
1847 }
1848 if (improvementLimitParameters_ != null) {
1849 output.WriteRawTag(170, 2);
1850 output.WriteMessage(ImprovementLimitParameters);
1851 }
1852 if (CheapestInsertionAddUnperformedEntries != false) {
1853 output.WriteRawTag(192, 2);
1854 output.WriteBool(CheapestInsertionAddUnperformedEntries);
1855 }
1856 if (UseMultiArmedBanditConcatenateOperators != false) {
1857 output.WriteRawTag(200, 2);
1858 output.WriteBool(UseMultiArmedBanditConcatenateOperators);
1859 }
1860 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1861 output.WriteRawTag(209, 2);
1862 output.WriteDouble(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1863 }
1864 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1865 output.WriteRawTag(217, 2);
1866 output.WriteDouble(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1867 }
1868 if (CheapestInsertionFirstSolutionMinNeighbors != 0) {
1869 output.WriteRawTag(224, 2);
1870 output.WriteInt32(CheapestInsertionFirstSolutionMinNeighbors);
1871 }
1872 if (CheapestInsertionLsOperatorMinNeighbors != 0) {
1873 output.WriteRawTag(232, 2);
1874 output.WriteInt32(CheapestInsertionLsOperatorMinNeighbors);
1875 }
1876 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
1877 output.WriteRawTag(240, 2);
1878 output.WriteBool(CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization);
1879 }
1880 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1881 output.WriteRawTag(248, 2);
1882 output.WriteEnum((int) UseGeneralizedCpSat);
1883 }
1884 if (satParameters_ != null) {
1885 output.WriteRawTag(130, 3);
1886 output.WriteMessage(SatParameters);
1887 }
1888 if (LocalCheapestInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1889 output.WriteRawTag(136, 3);
1890 output.WriteEnum((int) LocalCheapestInsertionPickupDeliveryStrategy);
1891 }
1892 if (HasDisableSchedulingBewareThisMayDegradePerformance) {
1893 output.WriteRawTag(144, 3);
1894 output.WriteBool(DisableSchedulingBewareThisMayDegradePerformance);
1895 }
1896 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
1897 output.WriteRawTag(152, 3);
1898 output.WriteBool(GuidedLocalSearchResetPenaltiesOnNewBestSolution);
1899 }
1900 if (FallbackToCpSatSizeThreshold != 0) {
1901 output.WriteRawTag(160, 3);
1902 output.WriteInt32(FallbackToCpSatSizeThreshold);
1903 }
1904 if (LsOperatorNeighborsRatio != 0D) {
1905 output.WriteRawTag(169, 3);
1906 output.WriteDouble(LsOperatorNeighborsRatio);
1907 }
1908 if (LsOperatorMinNeighbors != 0) {
1909 output.WriteRawTag(176, 3);
1910 output.WriteInt32(LsOperatorMinNeighbors);
1911 }
1912 if (LocalCheapestCostInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1913 output.WriteRawTag(184, 3);
1914 output.WriteEnum((int) LocalCheapestCostInsertionPickupDeliveryStrategy);
1915 }
1916 if (ReportIntermediateCpSatSolutions != false) {
1917 output.WriteRawTag(192, 3);
1918 output.WriteBool(ReportIntermediateCpSatSolutions);
1919 }
1920 if (SecondaryLsTimeLimitRatio != 0D) {
1921 output.WriteRawTag(201, 3);
1922 output.WriteDouble(SecondaryLsTimeLimitRatio);
1923 }
1924 if (UseIteratedLocalSearch != false) {
1925 output.WriteRawTag(208, 3);
1926 output.WriteBool(UseIteratedLocalSearch);
1927 }
1928 if (FirstSolutionOptimizationPeriod != 0) {
1929 output.WriteRawTag(216, 3);
1930 output.WriteInt32(FirstSolutionOptimizationPeriod);
1931 }
1932 if (iteratedLocalSearchParameters_ != null) {
1933 output.WriteRawTag(226, 3);
1934 output.WriteMessage(IteratedLocalSearchParameters);
1935 }
1936 if (GuidedLocalSearchPenalizeWithVehicleClasses != false) {
1937 output.WriteRawTag(232, 3);
1938 output.WriteBool(GuidedLocalSearchPenalizeWithVehicleClasses);
1939 }
1940 if (UseGuidedLocalSearchPenaltiesInLocalSearchOperators != false) {
1941 output.WriteRawTag(240, 3);
1942 output.WriteBool(UseGuidedLocalSearchPenaltiesInLocalSearchOperators);
1943 }
1944 localSearchMetaheuristics_.WriteTo(ref output, _repeated_localSearchMetaheuristics_codec);
1945 if (NumMaxLocalOptimaBeforeMetaheuristicSwitch != 0) {
1946 output.WriteRawTag(128, 4);
1947 output.WriteInt32(NumMaxLocalOptimaBeforeMetaheuristicSwitch);
1948 }
1949 if (MaxSwapActiveChainSize != 0) {
1950 output.WriteRawTag(144, 4);
1951 output.WriteInt32(MaxSwapActiveChainSize);
1952 }
1953 localCheapestInsertionSortingProperties_.WriteTo(ref output, _repeated_localCheapestInsertionSortingProperties_codec);
1954 if (_unknownFields != null) {
1955 _unknownFields.WriteTo(ref output);
1956 }
1957 }
1958 #endif
1959
1960 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1961 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1962 public int CalculateSize() {
1963 int size = 0;
1964 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1965 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) FirstSolutionStrategy);
1966 }
1967 if (UseUnfilteredFirstSolutionStrategy != false) {
1968 size += 1 + 1;
1969 }
1970 if (SavingsNeighborsRatio != 0D) {
1971 size += 1 + 8;
1972 }
1973 if (SavingsMaxMemoryUsageBytes != 0D) {
1974 size += 2 + 8;
1975 }
1976 if (SavingsAddReverseArcs != false) {
1977 size += 1 + 1;
1978 }
1979 if (SavingsArcCoefficient != 0D) {
1980 size += 2 + 8;
1981 }
1982 if (CheapestInsertionFarthestSeedsRatio != 0D) {
1983 size += 2 + 8;
1984 }
1985 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
1986 size += 2 + 8;
1987 }
1988 if (CheapestInsertionFirstSolutionMinNeighbors != 0) {
1989 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CheapestInsertionFirstSolutionMinNeighbors);
1990 }
1991 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
1992 size += 2 + 8;
1993 }
1994 if (CheapestInsertionLsOperatorMinNeighbors != 0) {
1995 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CheapestInsertionLsOperatorMinNeighbors);
1996 }
1997 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
1998 size += 2 + 1;
1999 }
2000 if (CheapestInsertionAddUnperformedEntries != false) {
2001 size += 2 + 1;
2002 }
2003 if (LocalCheapestInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
2004 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) LocalCheapestInsertionPickupDeliveryStrategy);
2005 }
2006 if (LocalCheapestCostInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
2007 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) LocalCheapestCostInsertionPickupDeliveryStrategy);
2008 }
2009 size += localCheapestInsertionSortingProperties_.CalculateSize(_repeated_localCheapestInsertionSortingProperties_codec);
2010 if (ChristofidesUseMinimumMatching != false) {
2011 size += 2 + 1;
2012 }
2013 if (FirstSolutionOptimizationPeriod != 0) {
2014 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FirstSolutionOptimizationPeriod);
2015 }
2016 if (localSearchOperators_ != null) {
2017 size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocalSearchOperators);
2018 }
2019 if (LsOperatorNeighborsRatio != 0D) {
2020 size += 2 + 8;
2021 }
2022 if (LsOperatorMinNeighbors != 0) {
2023 size += 2 + pb::CodedOutputStream.ComputeInt32Size(LsOperatorMinNeighbors);
2024 }
2025 if (UseMultiArmedBanditConcatenateOperators != false) {
2026 size += 2 + 1;
2027 }
2028 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
2029 size += 2 + 8;
2030 }
2031 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
2032 size += 2 + 8;
2033 }
2034 if (MaxSwapActiveChainSize != 0) {
2035 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxSwapActiveChainSize);
2036 }
2037 if (RelocateExpensiveChainNumArcsToConsider != 0) {
2038 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RelocateExpensiveChainNumArcsToConsider);
2039 }
2040 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
2041 size += 2 + pb::CodedOutputStream.ComputeInt32Size(HeuristicExpensiveChainLnsNumArcsToConsider);
2042 }
2043 if (HeuristicCloseNodesLnsNumNodes != 0) {
2044 size += 2 + pb::CodedOutputStream.ComputeInt32Size(HeuristicCloseNodesLnsNumNodes);
2045 }
2046 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
2047 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LocalSearchMetaheuristic);
2048 }
2049 size += localSearchMetaheuristics_.CalculateSize(_repeated_localSearchMetaheuristics_codec);
2050 if (NumMaxLocalOptimaBeforeMetaheuristicSwitch != 0) {
2051 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumMaxLocalOptimaBeforeMetaheuristicSwitch);
2052 }
2053 if (GuidedLocalSearchLambdaCoefficient != 0D) {
2054 size += 1 + 8;
2055 }
2056 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
2057 size += 2 + 1;
2058 }
2059 if (GuidedLocalSearchPenalizeWithVehicleClasses != false) {
2060 size += 2 + 1;
2061 }
2062 if (UseGuidedLocalSearchPenaltiesInLocalSearchOperators != false) {
2063 size += 2 + 1;
2064 }
2065 if (UseDepthFirstSearch != false) {
2066 size += 1 + 1;
2067 }
2068 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2069 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseCp);
2070 }
2071 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2072 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseCpSat);
2073 }
2074 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2075 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGeneralizedCpSat);
2076 }
2077 if (satParameters_ != null) {
2078 size += 2 + pb::CodedOutputStream.ComputeMessageSize(SatParameters);
2079 }
2080 if (ReportIntermediateCpSatSolutions != false) {
2081 size += 2 + 1;
2082 }
2083 if (FallbackToCpSatSizeThreshold != 0) {
2084 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FallbackToCpSatSizeThreshold);
2085 }
2086 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
2087 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ContinuousSchedulingSolver);
2088 }
2089 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
2090 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) MixedIntegerSchedulingSolver);
2091 }
2092 if (HasDisableSchedulingBewareThisMayDegradePerformance) {
2093 size += 2 + 1;
2094 }
2095 if (OptimizationStep != 0D) {
2096 size += 1 + 8;
2097 }
2098 if (NumberOfSolutionsToCollect != 0) {
2099 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumberOfSolutionsToCollect);
2100 }
2101 if (SolutionLimit != 0L) {
2102 size += 1 + pb::CodedOutputStream.ComputeInt64Size(SolutionLimit);
2103 }
2104 if (timeLimit_ != null) {
2105 size += 1 + pb::CodedOutputStream.ComputeMessageSize(TimeLimit);
2106 }
2107 if (lnsTimeLimit_ != null) {
2108 size += 1 + pb::CodedOutputStream.ComputeMessageSize(LnsTimeLimit);
2109 }
2110 if (SecondaryLsTimeLimitRatio != 0D) {
2111 size += 2 + 8;
2112 }
2113 if (improvementLimitParameters_ != null) {
2114 size += 2 + pb::CodedOutputStream.ComputeMessageSize(ImprovementLimitParameters);
2115 }
2116 if (UseFullPropagation != false) {
2117 size += 1 + 1;
2118 }
2119 if (LogSearch != false) {
2120 size += 1 + 1;
2121 }
2122 if (LogCostScalingFactor != 0D) {
2123 size += 2 + 8;
2124 }
2125 if (LogCostOffset != 0D) {
2126 size += 2 + 8;
2127 }
2128 if (LogTag.Length != 0) {
2129 size += 2 + pb::CodedOutputStream.ComputeStringSize(LogTag);
2130 }
2131 if (UseIteratedLocalSearch != false) {
2132 size += 2 + 1;
2133 }
2134 if (iteratedLocalSearchParameters_ != null) {
2135 size += 2 + pb::CodedOutputStream.ComputeMessageSize(IteratedLocalSearchParameters);
2136 }
2137 if (_unknownFields != null) {
2138 size += _unknownFields.CalculateSize();
2139 }
2140 return size;
2141 }
2142
2143 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2144 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2145 public void MergeFrom(RoutingSearchParameters other) {
2146 if (other == null) {
2147 return;
2148 }
2149 if (other.FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
2150 FirstSolutionStrategy = other.FirstSolutionStrategy;
2152 if (other.UseUnfilteredFirstSolutionStrategy != false) {
2153 UseUnfilteredFirstSolutionStrategy = other.UseUnfilteredFirstSolutionStrategy;
2154 }
2155 if (other.SavingsNeighborsRatio != 0D) {
2156 SavingsNeighborsRatio = other.SavingsNeighborsRatio;
2157 }
2158 if (other.SavingsMaxMemoryUsageBytes != 0D) {
2159 SavingsMaxMemoryUsageBytes = other.SavingsMaxMemoryUsageBytes;
2160 }
2161 if (other.SavingsAddReverseArcs != false) {
2162 SavingsAddReverseArcs = other.SavingsAddReverseArcs;
2163 }
2164 if (other.SavingsArcCoefficient != 0D) {
2165 SavingsArcCoefficient = other.SavingsArcCoefficient;
2166 }
2167 if (other.CheapestInsertionFarthestSeedsRatio != 0D) {
2168 CheapestInsertionFarthestSeedsRatio = other.CheapestInsertionFarthestSeedsRatio;
2169 }
2170 if (other.CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
2171 CheapestInsertionFirstSolutionNeighborsRatio = other.CheapestInsertionFirstSolutionNeighborsRatio;
2172 }
2173 if (other.CheapestInsertionFirstSolutionMinNeighbors != 0) {
2174 CheapestInsertionFirstSolutionMinNeighbors = other.CheapestInsertionFirstSolutionMinNeighbors;
2175 }
2176 if (other.CheapestInsertionLsOperatorNeighborsRatio != 0D) {
2177 CheapestInsertionLsOperatorNeighborsRatio = other.CheapestInsertionLsOperatorNeighborsRatio;
2178 }
2179 if (other.CheapestInsertionLsOperatorMinNeighbors != 0) {
2180 CheapestInsertionLsOperatorMinNeighbors = other.CheapestInsertionLsOperatorMinNeighbors;
2181 }
2182 if (other.CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
2183 CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization = other.CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization;
2184 }
2185 if (other.CheapestInsertionAddUnperformedEntries != false) {
2186 CheapestInsertionAddUnperformedEntries = other.CheapestInsertionAddUnperformedEntries;
2187 }
2188 if (other.LocalCheapestInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
2189 LocalCheapestInsertionPickupDeliveryStrategy = other.LocalCheapestInsertionPickupDeliveryStrategy;
2190 }
2191 if (other.LocalCheapestCostInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
2192 LocalCheapestCostInsertionPickupDeliveryStrategy = other.LocalCheapestCostInsertionPickupDeliveryStrategy;
2193 }
2194 localCheapestInsertionSortingProperties_.Add(other.localCheapestInsertionSortingProperties_);
2195 if (other.ChristofidesUseMinimumMatching != false) {
2196 ChristofidesUseMinimumMatching = other.ChristofidesUseMinimumMatching;
2197 }
2198 if (other.FirstSolutionOptimizationPeriod != 0) {
2199 FirstSolutionOptimizationPeriod = other.FirstSolutionOptimizationPeriod;
2200 }
2201 if (other.localSearchOperators_ != null) {
2202 if (localSearchOperators_ == null) {
2203 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
2204 }
2205 LocalSearchOperators.MergeFrom(other.LocalSearchOperators);
2206 }
2207 if (other.LsOperatorNeighborsRatio != 0D) {
2208 LsOperatorNeighborsRatio = other.LsOperatorNeighborsRatio;
2209 }
2210 if (other.LsOperatorMinNeighbors != 0) {
2211 LsOperatorMinNeighbors = other.LsOperatorMinNeighbors;
2212 }
2213 if (other.UseMultiArmedBanditConcatenateOperators != false) {
2214 UseMultiArmedBanditConcatenateOperators = other.UseMultiArmedBanditConcatenateOperators;
2215 }
2216 if (other.MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
2217 MultiArmedBanditCompoundOperatorMemoryCoefficient = other.MultiArmedBanditCompoundOperatorMemoryCoefficient;
2218 }
2219 if (other.MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
2220 MultiArmedBanditCompoundOperatorExplorationCoefficient = other.MultiArmedBanditCompoundOperatorExplorationCoefficient;
2221 }
2222 if (other.MaxSwapActiveChainSize != 0) {
2223 MaxSwapActiveChainSize = other.MaxSwapActiveChainSize;
2224 }
2225 if (other.RelocateExpensiveChainNumArcsToConsider != 0) {
2226 RelocateExpensiveChainNumArcsToConsider = other.RelocateExpensiveChainNumArcsToConsider;
2227 }
2228 if (other.HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
2229 HeuristicExpensiveChainLnsNumArcsToConsider = other.HeuristicExpensiveChainLnsNumArcsToConsider;
2230 }
2231 if (other.HeuristicCloseNodesLnsNumNodes != 0) {
2232 HeuristicCloseNodesLnsNumNodes = other.HeuristicCloseNodesLnsNumNodes;
2233 }
2234 if (other.LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
2235 LocalSearchMetaheuristic = other.LocalSearchMetaheuristic;
2236 }
2237 localSearchMetaheuristics_.Add(other.localSearchMetaheuristics_);
2238 if (other.NumMaxLocalOptimaBeforeMetaheuristicSwitch != 0) {
2239 NumMaxLocalOptimaBeforeMetaheuristicSwitch = other.NumMaxLocalOptimaBeforeMetaheuristicSwitch;
2240 }
2241 if (other.GuidedLocalSearchLambdaCoefficient != 0D) {
2242 GuidedLocalSearchLambdaCoefficient = other.GuidedLocalSearchLambdaCoefficient;
2243 }
2244 if (other.GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
2245 GuidedLocalSearchResetPenaltiesOnNewBestSolution = other.GuidedLocalSearchResetPenaltiesOnNewBestSolution;
2246 }
2247 if (other.GuidedLocalSearchPenalizeWithVehicleClasses != false) {
2248 GuidedLocalSearchPenalizeWithVehicleClasses = other.GuidedLocalSearchPenalizeWithVehicleClasses;
2249 }
2250 if (other.UseGuidedLocalSearchPenaltiesInLocalSearchOperators != false) {
2251 UseGuidedLocalSearchPenaltiesInLocalSearchOperators = other.UseGuidedLocalSearchPenaltiesInLocalSearchOperators;
2252 }
2253 if (other.UseDepthFirstSearch != false) {
2254 UseDepthFirstSearch = other.UseDepthFirstSearch;
2255 }
2256 if (other.UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2257 UseCp = other.UseCp;
2258 }
2259 if (other.UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2260 UseCpSat = other.UseCpSat;
2261 }
2262 if (other.UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2263 UseGeneralizedCpSat = other.UseGeneralizedCpSat;
2264 }
2265 if (other.satParameters_ != null) {
2266 if (satParameters_ == null) {
2267 SatParameters = new global::Google.OrTools.Sat.SatParameters();
2268 }
2269 SatParameters.MergeFrom(other.SatParameters);
2270 }
2271 if (other.ReportIntermediateCpSatSolutions != false) {
2272 ReportIntermediateCpSatSolutions = other.ReportIntermediateCpSatSolutions;
2273 }
2274 if (other.FallbackToCpSatSizeThreshold != 0) {
2275 FallbackToCpSatSizeThreshold = other.FallbackToCpSatSizeThreshold;
2276 }
2277 if (other.ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
2278 ContinuousSchedulingSolver = other.ContinuousSchedulingSolver;
2279 }
2280 if (other.MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
2281 MixedIntegerSchedulingSolver = other.MixedIntegerSchedulingSolver;
2282 }
2283 if (other.HasDisableSchedulingBewareThisMayDegradePerformance) {
2284 DisableSchedulingBewareThisMayDegradePerformance = other.DisableSchedulingBewareThisMayDegradePerformance;
2285 }
2286 if (other.OptimizationStep != 0D) {
2287 OptimizationStep = other.OptimizationStep;
2288 }
2289 if (other.NumberOfSolutionsToCollect != 0) {
2290 NumberOfSolutionsToCollect = other.NumberOfSolutionsToCollect;
2291 }
2292 if (other.SolutionLimit != 0L) {
2293 SolutionLimit = other.SolutionLimit;
2294 }
2295 if (other.timeLimit_ != null) {
2296 if (timeLimit_ == null) {
2297 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2298 }
2299 TimeLimit.MergeFrom(other.TimeLimit);
2300 }
2301 if (other.lnsTimeLimit_ != null) {
2302 if (lnsTimeLimit_ == null) {
2303 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2304 }
2305 LnsTimeLimit.MergeFrom(other.LnsTimeLimit);
2306 }
2307 if (other.SecondaryLsTimeLimitRatio != 0D) {
2308 SecondaryLsTimeLimitRatio = other.SecondaryLsTimeLimitRatio;
2309 }
2310 if (other.improvementLimitParameters_ != null) {
2311 if (improvementLimitParameters_ == null) {
2312 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
2313 }
2314 ImprovementLimitParameters.MergeFrom(other.ImprovementLimitParameters);
2315 }
2316 if (other.UseFullPropagation != false) {
2317 UseFullPropagation = other.UseFullPropagation;
2318 }
2319 if (other.LogSearch != false) {
2320 LogSearch = other.LogSearch;
2321 }
2322 if (other.LogCostScalingFactor != 0D) {
2323 LogCostScalingFactor = other.LogCostScalingFactor;
2324 }
2325 if (other.LogCostOffset != 0D) {
2326 LogCostOffset = other.LogCostOffset;
2327 }
2328 if (other.LogTag.Length != 0) {
2329 LogTag = other.LogTag;
2330 }
2331 if (other.UseIteratedLocalSearch != false) {
2332 UseIteratedLocalSearch = other.UseIteratedLocalSearch;
2333 }
2334 if (other.iteratedLocalSearchParameters_ != null) {
2335 if (iteratedLocalSearchParameters_ == null) {
2336 IteratedLocalSearchParameters = new global::Google.OrTools.ConstraintSolver.IteratedLocalSearchParameters();
2337 }
2338 IteratedLocalSearchParameters.MergeFrom(other.IteratedLocalSearchParameters);
2339 }
2340 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2341 }
2342
2343 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2344 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2345 public void MergeFrom(pb::CodedInputStream input) {
2346 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2347 input.ReadRawMessage(this);
2348 #else
2349 uint tag;
2350 while ((tag = input.ReadTag()) != 0) {
2351 if ((tag & 7) == 4) {
2352 // Abort on any end group tag.
2353 return;
2354 }
2355 switch(tag) {
2356 default:
2357 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2358 break;
2359 case 8: {
2360 FirstSolutionStrategy = (global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value) input.ReadEnum();
2361 break;
2362 }
2363 case 16: {
2364 UseUnfilteredFirstSolutionStrategy = input.ReadBool();
2365 break;
2366 }
2367 case 26: {
2368 if (localSearchOperators_ == null) {
2369 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
2370 }
2371 input.ReadMessage(LocalSearchOperators);
2372 break;
2373 }
2374 case 32: {
2375 LocalSearchMetaheuristic = (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) input.ReadEnum();
2376 break;
2377 }
2378 case 41: {
2379 GuidedLocalSearchLambdaCoefficient = input.ReadDouble();
2380 break;
2381 }
2382 case 48: {
2383 UseDepthFirstSearch = input.ReadBool();
2384 break;
2385 }
2386 case 57: {
2387 OptimizationStep = input.ReadDouble();
2388 break;
2389 }
2390 case 64: {
2391 SolutionLimit = input.ReadInt64();
2392 break;
2393 }
2394 case 74: {
2395 if (timeLimit_ == null) {
2396 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2397 }
2398 input.ReadMessage(TimeLimit);
2399 break;
2400 }
2401 case 82: {
2402 if (lnsTimeLimit_ == null) {
2403 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2404 }
2405 input.ReadMessage(LnsTimeLimit);
2406 break;
2407 }
2408 case 88: {
2409 UseFullPropagation = input.ReadBool();
2410 break;
2411 }
2412 case 104: {
2413 LogSearch = input.ReadBool();
2414 break;
2415 }
2416 case 113: {
2417 SavingsNeighborsRatio = input.ReadDouble();
2418 break;
2419 }
2420 case 120: {
2421 SavingsAddReverseArcs = input.ReadBool();
2422 break;
2423 }
2424 case 129: {
2425 CheapestInsertionFarthestSeedsRatio = input.ReadDouble();
2426 break;
2427 }
2428 case 136: {
2429 NumberOfSolutionsToCollect = input.ReadInt32();
2430 break;
2431 }
2432 case 145: {
2433 SavingsArcCoefficient = input.ReadDouble();
2434 break;
2435 }
2436 case 160: {
2437 RelocateExpensiveChainNumArcsToConsider = input.ReadInt32();
2438 break;
2439 }
2440 case 169: {
2441 CheapestInsertionFirstSolutionNeighborsRatio = input.ReadDouble();
2442 break;
2443 }
2444 case 177: {
2445 LogCostScalingFactor = input.ReadDouble();
2446 break;
2447 }
2448 case 185: {
2449 SavingsMaxMemoryUsageBytes = input.ReadDouble();
2450 break;
2451 }
2452 case 216: {
2453 UseCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2454 break;
2455 }
2456 case 224: {
2457 UseCp = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2458 break;
2459 }
2460 case 233: {
2461 LogCostOffset = input.ReadDouble();
2462 break;
2463 }
2464 case 240: {
2465 ChristofidesUseMinimumMatching = input.ReadBool();
2466 break;
2467 }
2468 case 249: {
2469 CheapestInsertionLsOperatorNeighborsRatio = input.ReadDouble();
2470 break;
2471 }
2472 case 256: {
2473 HeuristicExpensiveChainLnsNumArcsToConsider = input.ReadInt32();
2474 break;
2475 }
2476 case 264: {
2477 ContinuousSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2478 break;
2479 }
2480 case 272: {
2481 MixedIntegerSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2482 break;
2483 }
2484 case 280: {
2485 HeuristicCloseNodesLnsNumNodes = input.ReadInt32();
2486 break;
2487 }
2488 case 290: {
2489 LogTag = input.ReadString();
2490 break;
2491 }
2492 case 298: {
2493 if (improvementLimitParameters_ == null) {
2494 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
2495 }
2496 input.ReadMessage(ImprovementLimitParameters);
2497 break;
2498 }
2499 case 320: {
2500 CheapestInsertionAddUnperformedEntries = input.ReadBool();
2501 break;
2502 }
2503 case 328: {
2504 UseMultiArmedBanditConcatenateOperators = input.ReadBool();
2505 break;
2506 }
2507 case 337: {
2508 MultiArmedBanditCompoundOperatorMemoryCoefficient = input.ReadDouble();
2509 break;
2510 }
2511 case 345: {
2512 MultiArmedBanditCompoundOperatorExplorationCoefficient = input.ReadDouble();
2513 break;
2514 }
2515 case 352: {
2516 CheapestInsertionFirstSolutionMinNeighbors = input.ReadInt32();
2517 break;
2518 }
2519 case 360: {
2520 CheapestInsertionLsOperatorMinNeighbors = input.ReadInt32();
2521 break;
2522 }
2523 case 368: {
2524 CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization = input.ReadBool();
2525 break;
2526 }
2527 case 376: {
2528 UseGeneralizedCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2529 break;
2530 }
2531 case 386: {
2532 if (satParameters_ == null) {
2533 SatParameters = new global::Google.OrTools.Sat.SatParameters();
2534 }
2535 input.ReadMessage(SatParameters);
2536 break;
2537 }
2538 case 392: {
2539 LocalCheapestInsertionPickupDeliveryStrategy = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy) input.ReadEnum();
2540 break;
2541 }
2542 case 400: {
2543 DisableSchedulingBewareThisMayDegradePerformance = input.ReadBool();
2544 break;
2545 }
2546 case 408: {
2547 GuidedLocalSearchResetPenaltiesOnNewBestSolution = input.ReadBool();
2548 break;
2549 }
2550 case 416: {
2551 FallbackToCpSatSizeThreshold = input.ReadInt32();
2552 break;
2553 }
2554 case 425: {
2555 LsOperatorNeighborsRatio = input.ReadDouble();
2556 break;
2557 }
2558 case 432: {
2559 LsOperatorMinNeighbors = input.ReadInt32();
2560 break;
2561 }
2562 case 440: {
2563 LocalCheapestCostInsertionPickupDeliveryStrategy = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy) input.ReadEnum();
2564 break;
2565 }
2566 case 448: {
2567 ReportIntermediateCpSatSolutions = input.ReadBool();
2568 break;
2569 }
2570 case 457: {
2571 SecondaryLsTimeLimitRatio = input.ReadDouble();
2572 break;
2573 }
2574 case 464: {
2575 UseIteratedLocalSearch = input.ReadBool();
2576 break;
2577 }
2578 case 472: {
2579 FirstSolutionOptimizationPeriod = input.ReadInt32();
2580 break;
2581 }
2582 case 482: {
2583 if (iteratedLocalSearchParameters_ == null) {
2584 IteratedLocalSearchParameters = new global::Google.OrTools.ConstraintSolver.IteratedLocalSearchParameters();
2585 }
2586 input.ReadMessage(IteratedLocalSearchParameters);
2587 break;
2588 }
2589 case 488: {
2590 GuidedLocalSearchPenalizeWithVehicleClasses = input.ReadBool();
2591 break;
2592 }
2593 case 496: {
2594 UseGuidedLocalSearchPenaltiesInLocalSearchOperators = input.ReadBool();
2595 break;
2596 }
2597 case 506:
2598 case 504: {
2599 localSearchMetaheuristics_.AddEntriesFrom(input, _repeated_localSearchMetaheuristics_codec);
2600 break;
2601 }
2602 case 512: {
2603 NumMaxLocalOptimaBeforeMetaheuristicSwitch = input.ReadInt32();
2604 break;
2605 }
2606 case 528: {
2607 MaxSwapActiveChainSize = input.ReadInt32();
2608 break;
2609 }
2610 case 538:
2611 case 536: {
2612 localCheapestInsertionSortingProperties_.AddEntriesFrom(input, _repeated_localCheapestInsertionSortingProperties_codec);
2613 break;
2614 }
2615 }
2616 }
2617 #endif
2618 }
2619
2620 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2621 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2622 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2623 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
2624 uint tag;
2625 while ((tag = input.ReadTag()) != 0) {
2626 if ((tag & 7) == 4) {
2627 // Abort on any end group tag.
2628 return;
2629 }
2630 switch(tag) {
2631 default:
2632 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
2633 break;
2634 case 8: {
2635 FirstSolutionStrategy = (global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value) input.ReadEnum();
2636 break;
2637 }
2638 case 16: {
2639 UseUnfilteredFirstSolutionStrategy = input.ReadBool();
2640 break;
2641 }
2642 case 26: {
2643 if (localSearchOperators_ == null) {
2644 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
2645 }
2646 input.ReadMessage(LocalSearchOperators);
2647 break;
2648 }
2649 case 32: {
2650 LocalSearchMetaheuristic = (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) input.ReadEnum();
2651 break;
2652 }
2653 case 41: {
2654 GuidedLocalSearchLambdaCoefficient = input.ReadDouble();
2655 break;
2656 }
2657 case 48: {
2658 UseDepthFirstSearch = input.ReadBool();
2659 break;
2660 }
2661 case 57: {
2662 OptimizationStep = input.ReadDouble();
2663 break;
2664 }
2665 case 64: {
2666 SolutionLimit = input.ReadInt64();
2667 break;
2668 }
2669 case 74: {
2670 if (timeLimit_ == null) {
2671 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2672 }
2673 input.ReadMessage(TimeLimit);
2674 break;
2675 }
2676 case 82: {
2677 if (lnsTimeLimit_ == null) {
2678 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2679 }
2680 input.ReadMessage(LnsTimeLimit);
2681 break;
2682 }
2683 case 88: {
2684 UseFullPropagation = input.ReadBool();
2685 break;
2686 }
2687 case 104: {
2688 LogSearch = input.ReadBool();
2689 break;
2690 }
2691 case 113: {
2692 SavingsNeighborsRatio = input.ReadDouble();
2693 break;
2694 }
2695 case 120: {
2696 SavingsAddReverseArcs = input.ReadBool();
2697 break;
2698 }
2699 case 129: {
2700 CheapestInsertionFarthestSeedsRatio = input.ReadDouble();
2701 break;
2702 }
2703 case 136: {
2704 NumberOfSolutionsToCollect = input.ReadInt32();
2705 break;
2706 }
2707 case 145: {
2708 SavingsArcCoefficient = input.ReadDouble();
2709 break;
2710 }
2711 case 160: {
2712 RelocateExpensiveChainNumArcsToConsider = input.ReadInt32();
2713 break;
2714 }
2715 case 169: {
2716 CheapestInsertionFirstSolutionNeighborsRatio = input.ReadDouble();
2717 break;
2718 }
2719 case 177: {
2720 LogCostScalingFactor = input.ReadDouble();
2721 break;
2722 }
2723 case 185: {
2724 SavingsMaxMemoryUsageBytes = input.ReadDouble();
2725 break;
2726 }
2727 case 216: {
2728 UseCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2729 break;
2730 }
2731 case 224: {
2732 UseCp = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2733 break;
2734 }
2735 case 233: {
2736 LogCostOffset = input.ReadDouble();
2737 break;
2738 }
2739 case 240: {
2740 ChristofidesUseMinimumMatching = input.ReadBool();
2741 break;
2742 }
2743 case 249: {
2744 CheapestInsertionLsOperatorNeighborsRatio = input.ReadDouble();
2745 break;
2746 }
2747 case 256: {
2748 HeuristicExpensiveChainLnsNumArcsToConsider = input.ReadInt32();
2749 break;
2750 }
2751 case 264: {
2752 ContinuousSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2753 break;
2754 }
2755 case 272: {
2756 MixedIntegerSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2757 break;
2758 }
2759 case 280: {
2760 HeuristicCloseNodesLnsNumNodes = input.ReadInt32();
2761 break;
2762 }
2763 case 290: {
2764 LogTag = input.ReadString();
2765 break;
2766 }
2767 case 298: {
2768 if (improvementLimitParameters_ == null) {
2769 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
2770 }
2771 input.ReadMessage(ImprovementLimitParameters);
2772 break;
2773 }
2774 case 320: {
2775 CheapestInsertionAddUnperformedEntries = input.ReadBool();
2776 break;
2777 }
2778 case 328: {
2779 UseMultiArmedBanditConcatenateOperators = input.ReadBool();
2780 break;
2781 }
2782 case 337: {
2783 MultiArmedBanditCompoundOperatorMemoryCoefficient = input.ReadDouble();
2784 break;
2785 }
2786 case 345: {
2787 MultiArmedBanditCompoundOperatorExplorationCoefficient = input.ReadDouble();
2788 break;
2789 }
2790 case 352: {
2791 CheapestInsertionFirstSolutionMinNeighbors = input.ReadInt32();
2792 break;
2793 }
2794 case 360: {
2795 CheapestInsertionLsOperatorMinNeighbors = input.ReadInt32();
2796 break;
2797 }
2798 case 368: {
2799 CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization = input.ReadBool();
2800 break;
2801 }
2802 case 376: {
2803 UseGeneralizedCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2804 break;
2805 }
2806 case 386: {
2807 if (satParameters_ == null) {
2808 SatParameters = new global::Google.OrTools.Sat.SatParameters();
2809 }
2810 input.ReadMessage(SatParameters);
2811 break;
2812 }
2813 case 392: {
2814 LocalCheapestInsertionPickupDeliveryStrategy = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy) input.ReadEnum();
2815 break;
2816 }
2817 case 400: {
2818 DisableSchedulingBewareThisMayDegradePerformance = input.ReadBool();
2819 break;
2820 }
2821 case 408: {
2822 GuidedLocalSearchResetPenaltiesOnNewBestSolution = input.ReadBool();
2823 break;
2824 }
2825 case 416: {
2826 FallbackToCpSatSizeThreshold = input.ReadInt32();
2827 break;
2828 }
2829 case 425: {
2830 LsOperatorNeighborsRatio = input.ReadDouble();
2831 break;
2832 }
2833 case 432: {
2834 LsOperatorMinNeighbors = input.ReadInt32();
2835 break;
2836 }
2837 case 440: {
2838 LocalCheapestCostInsertionPickupDeliveryStrategy = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy) input.ReadEnum();
2839 break;
2840 }
2841 case 448: {
2842 ReportIntermediateCpSatSolutions = input.ReadBool();
2843 break;
2844 }
2845 case 457: {
2846 SecondaryLsTimeLimitRatio = input.ReadDouble();
2847 break;
2848 }
2849 case 464: {
2850 UseIteratedLocalSearch = input.ReadBool();
2851 break;
2852 }
2853 case 472: {
2854 FirstSolutionOptimizationPeriod = input.ReadInt32();
2855 break;
2856 }
2857 case 482: {
2858 if (iteratedLocalSearchParameters_ == null) {
2859 IteratedLocalSearchParameters = new global::Google.OrTools.ConstraintSolver.IteratedLocalSearchParameters();
2860 }
2861 input.ReadMessage(IteratedLocalSearchParameters);
2862 break;
2863 }
2864 case 488: {
2865 GuidedLocalSearchPenalizeWithVehicleClasses = input.ReadBool();
2866 break;
2867 }
2868 case 496: {
2869 UseGuidedLocalSearchPenaltiesInLocalSearchOperators = input.ReadBool();
2870 break;
2871 }
2872 case 506:
2873 case 504: {
2874 localSearchMetaheuristics_.AddEntriesFrom(ref input, _repeated_localSearchMetaheuristics_codec);
2875 break;
2876 }
2877 case 512: {
2878 NumMaxLocalOptimaBeforeMetaheuristicSwitch = input.ReadInt32();
2879 break;
2880 }
2881 case 528: {
2882 MaxSwapActiveChainSize = input.ReadInt32();
2883 break;
2884 }
2885 case 538:
2886 case 536: {
2887 localCheapestInsertionSortingProperties_.AddEntriesFrom(ref input, _repeated_localCheapestInsertionSortingProperties_codec);
2888 break;
2889 }
2890 }
2891 }
2892 }
2893 #endif
2894
2895 #region Nested types
2897 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2898 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2899 public static partial class Types {
2909 [pbr::OriginalName("AUTOMATIC")] Automatic = 0,
2911 /// Consider all positions, by increasing (cost(pickup), cost(delivery)).
2912 /// </summary>
2913 [pbr::OriginalName("BEST_PICKUP_THEN_BEST_DELIVERY")] BestPickupThenBestDelivery = 1,
2917 [pbr::OriginalName("BEST_PICKUP_DELIVERY_PAIR")] BestPickupDeliveryPair = 2,
2925 [pbr::OriginalName("BEST_PICKUP_DELIVERY_PAIR_MULTITOUR")] BestPickupDeliveryPairMultitour = 3,
2926 }
2927
2932 public enum InsertionSortingProperty {
2933
2936 [pbr::OriginalName("SORTING_PROPERTY_UNSPECIFIED")] SortingPropertyUnspecified = 0,
2938 /// Selects nodes with the least number of allowed vehicles.
2939 /// </summary>
2940 [pbr::OriginalName("SORTING_PROPERTY_ALLOWED_VEHICLES")] SortingPropertyAllowedVehicles = 1,
2944 [pbr::OriginalName("SORTING_PROPERTY_PENALTY")] SortingPropertyPenalty = 2,
2949 [pbr::OriginalName("SORTING_PROPERTY_PENALTY_OVER_ALLOWED_VEHICLES_RATIO")] SortingPropertyPenaltyOverAllowedVehiclesRatio = 3,
2953 [pbr::OriginalName("SORTING_PROPERTY_HIGHEST_AVG_ARC_COST_TO_VEHICLE_START_ENDS")] SortingPropertyHighestAvgArcCostToVehicleStartEnds = 4,
2957 [pbr::OriginalName("SORTING_PROPERTY_LOWEST_AVG_ARC_COST_TO_VEHICLE_START_ENDS")] SortingPropertyLowestAvgArcCostToVehicleStartEnds = 5,
2961 [pbr::OriginalName("SORTING_PROPERTY_LOWEST_MIN_ARC_COST_TO_VEHICLE_START_ENDS")] SortingPropertyLowestMinArcCostToVehicleStartEnds = 6,
2967 [pbr::OriginalName("SORTING_PROPERTY_HIGHEST_DIMENSION_USAGE")] SortingPropertyHighestDimensionUsage = 7,
2968 }
2969
2974 public enum SchedulingSolver {
2975 [pbr::OriginalName("SCHEDULING_UNSET")] SchedulingUnset = 0,
2976 [pbr::OriginalName("SCHEDULING_GLOP")] SchedulingGlop = 1,
2977 [pbr::OriginalName("SCHEDULING_CP_SAT")] SchedulingCpSat = 2,
2978 }
2979
2980 /// <summary>
2981 /// Local search neighborhood operators used to build a solutions neighborhood.
2982 /// Next ID: 39
2983 /// </summary>
2984 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
2985 public sealed partial class LocalSearchNeighborhoodOperators : pb::IMessage<LocalSearchNeighborhoodOperators>
2986 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2987 , pb::IBufferMessage
2988 #endif
2989 {
2990 private static readonly pb::MessageParser<LocalSearchNeighborhoodOperators> _parser = new pb::MessageParser<LocalSearchNeighborhoodOperators>(() => new LocalSearchNeighborhoodOperators());
2991 private pb::UnknownFieldSet _unknownFields;
2992 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2993 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2994 public static pb::MessageParser<LocalSearchNeighborhoodOperators> Parser { get { return _parser; } }
2995
2996 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2997 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2998 public static pbr::MessageDescriptor Descriptor {
2999 get { return global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Descriptor.NestedTypes[0]; }
3001
3002 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3003 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3004 pbr::MessageDescriptor pb::IMessage.Descriptor {
3005 get { return Descriptor; }
3006 }
3007
3008 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3009 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3011 OnConstruction();
3012 }
3013
3014 partial void OnConstruction();
3015
3016 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3017 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3019 useRelocate_ = other.useRelocate_;
3020 useRelocatePair_ = other.useRelocatePair_;
3021 useLightRelocatePair_ = other.useLightRelocatePair_;
3022 useRelocateNeighbors_ = other.useRelocateNeighbors_;
3023 useRelocateSubtrip_ = other.useRelocateSubtrip_;
3024 useExchange_ = other.useExchange_;
3025 useExchangePair_ = other.useExchangePair_;
3026 useExchangeSubtrip_ = other.useExchangeSubtrip_;
3027 useCross_ = other.useCross_;
3028 useCrossExchange_ = other.useCrossExchange_;
3029 useRelocateExpensiveChain_ = other.useRelocateExpensiveChain_;
3030 useTwoOpt_ = other.useTwoOpt_;
3031 useOrOpt_ = other.useOrOpt_;
3032 useLinKernighan_ = other.useLinKernighan_;
3033 useTspOpt_ = other.useTspOpt_;
3034 useMakeActive_ = other.useMakeActive_;
3035 useRelocateAndMakeActive_ = other.useRelocateAndMakeActive_;
3036 useExchangeAndMakeActive_ = other.useExchangeAndMakeActive_;
3037 useExchangePathStartEndsAndMakeActive_ = other.useExchangePathStartEndsAndMakeActive_;
3038 useMakeInactive_ = other.useMakeInactive_;
3039 useMakeChainInactive_ = other.useMakeChainInactive_;
3040 useSwapActive_ = other.useSwapActive_;
3041 useSwapActiveChain_ = other.useSwapActiveChain_;
3042 useExtendedSwapActive_ = other.useExtendedSwapActive_;
3043 useShortestPathSwapActive_ = other.useShortestPathSwapActive_;
3044 useShortestPathTwoOpt_ = other.useShortestPathTwoOpt_;
3045 useNodePairSwapActive_ = other.useNodePairSwapActive_;
3046 usePathLns_ = other.usePathLns_;
3047 useFullPathLns_ = other.useFullPathLns_;
3048 useTspLns_ = other.useTspLns_;
3049 useInactiveLns_ = other.useInactiveLns_;
3050 useGlobalCheapestInsertionPathLns_ = other.useGlobalCheapestInsertionPathLns_;
3051 useLocalCheapestInsertionPathLns_ = other.useLocalCheapestInsertionPathLns_;
3052 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
3053 useGlobalCheapestInsertionExpensiveChainLns_ = other.useGlobalCheapestInsertionExpensiveChainLns_;
3054 useLocalCheapestInsertionExpensiveChainLns_ = other.useLocalCheapestInsertionExpensiveChainLns_;
3055 useGlobalCheapestInsertionCloseNodesLns_ = other.useGlobalCheapestInsertionCloseNodesLns_;
3056 useLocalCheapestInsertionCloseNodesLns_ = other.useLocalCheapestInsertionCloseNodesLns_;
3057 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
3058 }
3059
3060 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3061 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3063 return new LocalSearchNeighborhoodOperators(this);
3064 }
3065
3067 public const int UseRelocateFieldNumber = 1;
3068 private global::Google.OrTools.Util.OptionalBoolean useRelocate_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3071
3080 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3081 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3082 public global::Google.OrTools.Util.OptionalBoolean UseRelocate {
3083 get { return useRelocate_; }
3084 set {
3085 useRelocate_ = value;
3086 }
3087 }
3090 public const int UseRelocatePairFieldNumber = 2;
3091 private global::Google.OrTools.Util.OptionalBoolean useRelocatePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3094
3103 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3104 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3105 public global::Google.OrTools.Util.OptionalBoolean UseRelocatePair {
3106 get { return useRelocatePair_; }
3107 set {
3108 useRelocatePair_ = value;
3109 }
3110 }
3113 public const int UseLightRelocatePairFieldNumber = 24;
3114 private global::Google.OrTools.Util.OptionalBoolean useLightRelocatePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3117
3124 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3125 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3126 public global::Google.OrTools.Util.OptionalBoolean UseLightRelocatePair {
3127 get { return useLightRelocatePair_; }
3128 set {
3129 useLightRelocatePair_ = value;
3130 }
3131 }
3134 public const int UseRelocateNeighborsFieldNumber = 3;
3135 private global::Google.OrTools.Util.OptionalBoolean useRelocateNeighbors_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3138
3160 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3161 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3162 public global::Google.OrTools.Util.OptionalBoolean UseRelocateNeighbors {
3163 get { return useRelocateNeighbors_; }
3164 set {
3165 useRelocateNeighbors_ = value;
3166 }
3167 }
3170 public const int UseRelocateSubtripFieldNumber = 25;
3171 private global::Google.OrTools.Util.OptionalBoolean useRelocateSubtrip_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3174
3188 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3189 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3190 public global::Google.OrTools.Util.OptionalBoolean UseRelocateSubtrip {
3191 get { return useRelocateSubtrip_; }
3192 set {
3193 useRelocateSubtrip_ = value;
3194 }
3195 }
3196
3198 public const int UseExchangeFieldNumber = 4;
3199 private global::Google.OrTools.Util.OptionalBoolean useExchange_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3204
3209 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3210 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3211 public global::Google.OrTools.Util.OptionalBoolean UseExchange {
3212 get { return useExchange_; }
3213 set {
3214 useExchange_ = value;
3215 }
3216 }
3217
3219 public const int UseExchangePairFieldNumber = 22;
3220 private global::Google.OrTools.Util.OptionalBoolean useExchangePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3225
3230 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3231 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3232 public global::Google.OrTools.Util.OptionalBoolean UseExchangePair {
3233 get { return useExchangePair_; }
3234 set {
3235 useExchangePair_ = value;
3236 }
3237 }
3238
3240 public const int UseExchangeSubtripFieldNumber = 26;
3241 private global::Google.OrTools.Util.OptionalBoolean useExchangeSubtrip_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3246 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3247 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3248 public global::Google.OrTools.Util.OptionalBoolean UseExchangeSubtrip {
3249 get { return useExchangeSubtrip_; }
3250 set {
3251 useExchangeSubtrip_ = value;
3252 }
3253 }
3254
3256 public const int UseCrossFieldNumber = 5;
3257 private global::Google.OrTools.Util.OptionalBoolean useCross_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3262
3269 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3270 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3271 public global::Google.OrTools.Util.OptionalBoolean UseCross {
3272 get { return useCross_; }
3273 set {
3274 useCross_ = value;
3275 }
3276 }
3277
3279 public const int UseCrossExchangeFieldNumber = 6;
3280 private global::Google.OrTools.Util.OptionalBoolean useCrossExchange_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3284 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3285 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3286 public global::Google.OrTools.Util.OptionalBoolean UseCrossExchange {
3287 get { return useCrossExchange_; }
3288 set {
3289 useCrossExchange_ = value;
3290 }
3291 }
3292
3295 private global::Google.OrTools.Util.OptionalBoolean useRelocateExpensiveChain_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3300
3308 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3309 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3310 public global::Google.OrTools.Util.OptionalBoolean UseRelocateExpensiveChain {
3311 get { return useRelocateExpensiveChain_; }
3312 set {
3313 useRelocateExpensiveChain_ = value;
3314 }
3315 }
3316
3318 public const int UseTwoOptFieldNumber = 7;
3319 private global::Google.OrTools.Util.OptionalBoolean useTwoOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3324
3332 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3333 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3334 public global::Google.OrTools.Util.OptionalBoolean UseTwoOpt {
3335 get { return useTwoOpt_; }
3336 set {
3337 useTwoOpt_ = value;
3338 }
3339 }
3340
3342 public const int UseOrOptFieldNumber = 8;
3343 private global::Google.OrTools.Util.OptionalBoolean useOrOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3348
3357 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3358 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3359 public global::Google.OrTools.Util.OptionalBoolean UseOrOpt {
3360 get { return useOrOpt_; }
3361 set {
3362 useOrOpt_ = value;
3363 }
3364 }
3365
3367 public const int UseLinKernighanFieldNumber = 9;
3368 private global::Google.OrTools.Util.OptionalBoolean useLinKernighan_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3373
3375 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3376 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3377 public global::Google.OrTools.Util.OptionalBoolean UseLinKernighan {
3378 get { return useLinKernighan_; }
3379 set {
3380 useLinKernighan_ = value;
3381 }
3382 }
3383
3385 public const int UseTspOptFieldNumber = 10;
3386 private global::Google.OrTools.Util.OptionalBoolean useTspOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3391
3395 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3396 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3397 public global::Google.OrTools.Util.OptionalBoolean UseTspOpt {
3398 get { return useTspOpt_; }
3399 set {
3400 useTspOpt_ = value;
3401 }
3402 }
3403
3405 public const int UseMakeActiveFieldNumber = 11;
3406 private global::Google.OrTools.Util.OptionalBoolean useMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3411
3416 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3417 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3418 public global::Google.OrTools.Util.OptionalBoolean UseMakeActive {
3419 get { return useMakeActive_; }
3420 set {
3421 useMakeActive_ = value;
3422 }
3423 }
3424
3427 private global::Google.OrTools.Util.OptionalBoolean useRelocateAndMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3432
3440 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3441 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3442 public global::Google.OrTools.Util.OptionalBoolean UseRelocateAndMakeActive {
3443 get { return useRelocateAndMakeActive_; }
3444 set {
3445 useRelocateAndMakeActive_ = value;
3446 }
3447 }
3448
3451 private global::Google.OrTools.Util.OptionalBoolean useExchangeAndMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3456
3460 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3461 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3462 public global::Google.OrTools.Util.OptionalBoolean UseExchangeAndMakeActive {
3463 get { return useExchangeAndMakeActive_; }
3464 set {
3465 useExchangeAndMakeActive_ = value;
3466 }
3467 }
3468
3471 private global::Google.OrTools.Util.OptionalBoolean useExchangePathStartEndsAndMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3476
3483 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3484 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3485 public global::Google.OrTools.Util.OptionalBoolean UseExchangePathStartEndsAndMakeActive {
3486 get { return useExchangePathStartEndsAndMakeActive_; }
3487 set {
3488 useExchangePathStartEndsAndMakeActive_ = value;
3489 }
3490 }
3491
3493 public const int UseMakeInactiveFieldNumber = 12;
3494 private global::Google.OrTools.Util.OptionalBoolean useMakeInactive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3499
3502 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3503 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3504 public global::Google.OrTools.Util.OptionalBoolean UseMakeInactive {
3505 get { return useMakeInactive_; }
3506 set {
3507 useMakeInactive_ = value;
3508 }
3509 }
3510
3512 public const int UseMakeChainInactiveFieldNumber = 13;
3513 private global::Google.OrTools.Util.OptionalBoolean useMakeChainInactive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3518
3522 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3523 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3524 public global::Google.OrTools.Util.OptionalBoolean UseMakeChainInactive {
3525 get { return useMakeChainInactive_; }
3526 set {
3527 useMakeChainInactive_ = value;
3528 }
3529 }
3530
3532 public const int UseSwapActiveFieldNumber = 14;
3533 private global::Google.OrTools.Util.OptionalBoolean useSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3538
3541 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3542 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3543 public global::Google.OrTools.Util.OptionalBoolean UseSwapActive {
3544 get { return useSwapActive_; }
3545 set {
3546 useSwapActive_ = value;
3547 }
3548 }
3549
3551 public const int UseSwapActiveChainFieldNumber = 35;
3552 private global::Google.OrTools.Util.OptionalBoolean useSwapActiveChain_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3557
3561 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3562 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3563 public global::Google.OrTools.Util.OptionalBoolean UseSwapActiveChain {
3564 get { return useSwapActiveChain_; }
3565 set {
3566 useSwapActiveChain_ = value;
3567 }
3568 }
3569
3572 private global::Google.OrTools.Util.OptionalBoolean useExtendedSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3577
3585 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3586 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3587 public global::Google.OrTools.Util.OptionalBoolean UseExtendedSwapActive {
3588 get { return useExtendedSwapActive_; }
3589 set {
3590 useExtendedSwapActive_ = value;
3591 }
3592 }
3593
3596 private global::Google.OrTools.Util.OptionalBoolean useShortestPathSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3601
3605 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3606 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3607 public global::Google.OrTools.Util.OptionalBoolean UseShortestPathSwapActive {
3608 get { return useShortestPathSwapActive_; }
3609 set {
3610 useShortestPathSwapActive_ = value;
3611 }
3612 }
3613
3616 private global::Google.OrTools.Util.OptionalBoolean useShortestPathTwoOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3621 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3622 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3623 public global::Google.OrTools.Util.OptionalBoolean UseShortestPathTwoOpt {
3624 get { return useShortestPathTwoOpt_; }
3625 set {
3626 useShortestPathTwoOpt_ = value;
3627 }
3628 }
3629
3632 private global::Google.OrTools.Util.OptionalBoolean useNodePairSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3637
3646 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3647 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3648 public global::Google.OrTools.Util.OptionalBoolean UseNodePairSwapActive {
3649 get { return useNodePairSwapActive_; }
3650 set {
3651 useNodePairSwapActive_ = value;
3652 }
3653 }
3654
3656 public const int UsePathLnsFieldNumber = 16;
3657 private global::Google.OrTools.Util.OptionalBoolean usePathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3662
3668 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3669 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3670 public global::Google.OrTools.Util.OptionalBoolean UsePathLns {
3671 get { return usePathLns_; }
3672 set {
3673 usePathLns_ = value;
3674 }
3675 }
3676
3678 public const int UseFullPathLnsFieldNumber = 17;
3679 private global::Google.OrTools.Util.OptionalBoolean useFullPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3683 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3684 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3685 public global::Google.OrTools.Util.OptionalBoolean UseFullPathLns {
3686 get { return useFullPathLns_; }
3687 set {
3688 useFullPathLns_ = value;
3689 }
3690 }
3691
3693 public const int UseTspLnsFieldNumber = 18;
3694 private global::Google.OrTools.Util.OptionalBoolean useTspLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3699
3703 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3704 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3705 public global::Google.OrTools.Util.OptionalBoolean UseTspLns {
3706 get { return useTspLns_; }
3707 set {
3708 useTspLns_ = value;
3709 }
3710 }
3711
3713 public const int UseInactiveLnsFieldNumber = 19;
3714 private global::Google.OrTools.Util.OptionalBoolean useInactiveLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3719
3720 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3721 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3722 public global::Google.OrTools.Util.OptionalBoolean UseInactiveLns {
3723 get { return useInactiveLns_; }
3724 set {
3725 useInactiveLns_ = value;
3726 }
3727 }
3728
3731 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3736
3737 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3738 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3739 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionPathLns {
3740 get { return useGlobalCheapestInsertionPathLns_; }
3741 set {
3742 useGlobalCheapestInsertionPathLns_ = value;
3743 }
3744 }
3745
3748 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3752 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3753 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3754 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionPathLns {
3755 get { return useLocalCheapestInsertionPathLns_; }
3756 set {
3757 useLocalCheapestInsertionPathLns_ = value;
3758 }
3759 }
3760
3763 private global::Google.OrTools.Util.OptionalBoolean useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3768
3769 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3770 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3771 public global::Google.OrTools.Util.OptionalBoolean UseRelocatePathGlobalCheapestInsertionInsertUnperformed {
3772 get { return useRelocatePathGlobalCheapestInsertionInsertUnperformed_; }
3773 set {
3774 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value;
3775 }
3776 }
3777
3780 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionExpensiveChainLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3785
3787 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3788 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3789 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionExpensiveChainLns {
3790 get { return useGlobalCheapestInsertionExpensiveChainLns_; }
3791 set {
3792 useGlobalCheapestInsertionExpensiveChainLns_ = value;
3793 }
3794 }
3795
3798 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionExpensiveChainLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3803 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3804 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3805 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionExpensiveChainLns {
3806 get { return useLocalCheapestInsertionExpensiveChainLns_; }
3807 set {
3808 useLocalCheapestInsertionExpensiveChainLns_ = value;
3809 }
3810 }
3811
3814 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionCloseNodesLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3819
3821 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3822 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3823 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionCloseNodesLns {
3824 get { return useGlobalCheapestInsertionCloseNodesLns_; }
3825 set {
3826 useGlobalCheapestInsertionCloseNodesLns_ = value;
3827 }
3828 }
3829
3832 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionCloseNodesLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3837 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3838 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3839 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionCloseNodesLns {
3840 get { return useLocalCheapestInsertionCloseNodesLns_; }
3841 set {
3842 useLocalCheapestInsertionCloseNodesLns_ = value;
3843 }
3844 }
3845
3846 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3847 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3848 public override bool Equals(object other) {
3850 }
3851
3852 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3853 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3854 public bool Equals(LocalSearchNeighborhoodOperators other) {
3855 if (ReferenceEquals(other, null)) {
3856 return false;
3857 }
3858 if (ReferenceEquals(other, this)) {
3859 return true;
3860 }
3861 if (UseRelocate != other.UseRelocate) return false;
3862 if (UseRelocatePair != other.UseRelocatePair) return false;
3863 if (UseLightRelocatePair != other.UseLightRelocatePair) return false;
3864 if (UseRelocateNeighbors != other.UseRelocateNeighbors) return false;
3865 if (UseRelocateSubtrip != other.UseRelocateSubtrip) return false;
3866 if (UseExchange != other.UseExchange) return false;
3867 if (UseExchangePair != other.UseExchangePair) return false;
3868 if (UseExchangeSubtrip != other.UseExchangeSubtrip) return false;
3869 if (UseCross != other.UseCross) return false;
3870 if (UseCrossExchange != other.UseCrossExchange) return false;
3871 if (UseRelocateExpensiveChain != other.UseRelocateExpensiveChain) return false;
3872 if (UseTwoOpt != other.UseTwoOpt) return false;
3873 if (UseOrOpt != other.UseOrOpt) return false;
3874 if (UseLinKernighan != other.UseLinKernighan) return false;
3875 if (UseTspOpt != other.UseTspOpt) return false;
3876 if (UseMakeActive != other.UseMakeActive) return false;
3877 if (UseRelocateAndMakeActive != other.UseRelocateAndMakeActive) return false;
3878 if (UseExchangeAndMakeActive != other.UseExchangeAndMakeActive) return false;
3880 if (UseMakeInactive != other.UseMakeInactive) return false;
3881 if (UseMakeChainInactive != other.UseMakeChainInactive) return false;
3882 if (UseSwapActive != other.UseSwapActive) return false;
3883 if (UseSwapActiveChain != other.UseSwapActiveChain) return false;
3884 if (UseExtendedSwapActive != other.UseExtendedSwapActive) return false;
3885 if (UseShortestPathSwapActive != other.UseShortestPathSwapActive) return false;
3886 if (UseShortestPathTwoOpt != other.UseShortestPathTwoOpt) return false;
3887 if (UseNodePairSwapActive != other.UseNodePairSwapActive) return false;
3888 if (UsePathLns != other.UsePathLns) return false;
3889 if (UseFullPathLns != other.UseFullPathLns) return false;
3890 if (UseTspLns != other.UseTspLns) return false;
3891 if (UseInactiveLns != other.UseInactiveLns) return false;
3899 return Equals(_unknownFields, other._unknownFields);
3900 }
3901
3902 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3903 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3904 public override int GetHashCode() {
3905 int hash = 1;
3906 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocate.GetHashCode();
3907 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocatePair.GetHashCode();
3908 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLightRelocatePair.GetHashCode();
3909 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateNeighbors.GetHashCode();
3910 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateSubtrip.GetHashCode();
3911 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchange.GetHashCode();
3912 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangePair.GetHashCode();
3913 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangeSubtrip.GetHashCode();
3914 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCross.GetHashCode();
3915 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCrossExchange.GetHashCode();
3916 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateExpensiveChain.GetHashCode();
3917 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTwoOpt.GetHashCode();
3918 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseOrOpt.GetHashCode();
3919 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLinKernighan.GetHashCode();
3920 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTspOpt.GetHashCode();
3921 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeActive.GetHashCode();
3922 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateAndMakeActive.GetHashCode();
3923 if (UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangeAndMakeActive.GetHashCode();
3924 if (UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangePathStartEndsAndMakeActive.GetHashCode();
3925 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeInactive.GetHashCode();
3926 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeChainInactive.GetHashCode();
3927 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseSwapActive.GetHashCode();
3928 if (UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseSwapActiveChain.GetHashCode();
3929 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExtendedSwapActive.GetHashCode();
3930 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseShortestPathSwapActive.GetHashCode();
3931 if (UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseShortestPathTwoOpt.GetHashCode();
3932 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseNodePairSwapActive.GetHashCode();
3933 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UsePathLns.GetHashCode();
3934 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseFullPathLns.GetHashCode();
3935 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTspLns.GetHashCode();
3936 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseInactiveLns.GetHashCode();
3937 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionPathLns.GetHashCode();
3938 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionPathLns.GetHashCode();
3939 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocatePathGlobalCheapestInsertionInsertUnperformed.GetHashCode();
3940 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionExpensiveChainLns.GetHashCode();
3941 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionExpensiveChainLns.GetHashCode();
3942 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionCloseNodesLns.GetHashCode();
3943 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionCloseNodesLns.GetHashCode();
3944 if (_unknownFields != null) {
3945 hash ^= _unknownFields.GetHashCode();
3946 }
3947 return hash;
3948 }
3949
3950 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3951 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3952 public override string ToString() {
3953 return pb::JsonFormatter.ToDiagnosticString(this);
3954 }
3955
3956 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3957 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3958 public void WriteTo(pb::CodedOutputStream output) {
3959 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3960 output.WriteRawMessage(this);
3961 #else
3962 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3963 output.WriteRawTag(8);
3964 output.WriteEnum((int) UseRelocate);
3965 }
3966 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3967 output.WriteRawTag(16);
3968 output.WriteEnum((int) UseRelocatePair);
3969 }
3970 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3971 output.WriteRawTag(24);
3972 output.WriteEnum((int) UseRelocateNeighbors);
3973 }
3974 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3975 output.WriteRawTag(32);
3976 output.WriteEnum((int) UseExchange);
3977 }
3978 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3979 output.WriteRawTag(40);
3980 output.WriteEnum((int) UseCross);
3981 }
3982 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3983 output.WriteRawTag(48);
3984 output.WriteEnum((int) UseCrossExchange);
3985 }
3986 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3987 output.WriteRawTag(56);
3988 output.WriteEnum((int) UseTwoOpt);
3989 }
3990 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3991 output.WriteRawTag(64);
3992 output.WriteEnum((int) UseOrOpt);
3993 }
3994 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3995 output.WriteRawTag(72);
3996 output.WriteEnum((int) UseLinKernighan);
3997 }
3998 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3999 output.WriteRawTag(80);
4000 output.WriteEnum((int) UseTspOpt);
4001 }
4002 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4003 output.WriteRawTag(88);
4004 output.WriteEnum((int) UseMakeActive);
4005 }
4006 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4007 output.WriteRawTag(96);
4008 output.WriteEnum((int) UseMakeInactive);
4009 }
4010 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4011 output.WriteRawTag(104);
4012 output.WriteEnum((int) UseMakeChainInactive);
4013 }
4014 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4015 output.WriteRawTag(112);
4016 output.WriteEnum((int) UseSwapActive);
4017 }
4018 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4019 output.WriteRawTag(120);
4020 output.WriteEnum((int) UseExtendedSwapActive);
4021 }
4022 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4023 output.WriteRawTag(128, 1);
4024 output.WriteEnum((int) UsePathLns);
4025 }
4026 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4027 output.WriteRawTag(136, 1);
4028 output.WriteEnum((int) UseFullPathLns);
4029 }
4030 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4031 output.WriteRawTag(144, 1);
4032 output.WriteEnum((int) UseTspLns);
4033 }
4034 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4035 output.WriteRawTag(152, 1);
4036 output.WriteEnum((int) UseInactiveLns);
4037 }
4038 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4039 output.WriteRawTag(160, 1);
4040 output.WriteEnum((int) UseNodePairSwapActive);
4041 }
4042 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4043 output.WriteRawTag(168, 1);
4044 output.WriteEnum((int) UseRelocateAndMakeActive);
4045 }
4046 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4047 output.WriteRawTag(176, 1);
4048 output.WriteEnum((int) UseExchangePair);
4049 }
4050 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4051 output.WriteRawTag(184, 1);
4052 output.WriteEnum((int) UseRelocateExpensiveChain);
4053 }
4054 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4055 output.WriteRawTag(192, 1);
4056 output.WriteEnum((int) UseLightRelocatePair);
4057 }
4058 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4059 output.WriteRawTag(200, 1);
4060 output.WriteEnum((int) UseRelocateSubtrip);
4061 }
4062 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4063 output.WriteRawTag(208, 1);
4064 output.WriteEnum((int) UseExchangeSubtrip);
4065 }
4066 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4067 output.WriteRawTag(216, 1);
4068 output.WriteEnum((int) UseGlobalCheapestInsertionPathLns);
4069 }
4070 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4071 output.WriteRawTag(224, 1);
4072 output.WriteEnum((int) UseLocalCheapestInsertionPathLns);
4073 }
4074 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4075 output.WriteRawTag(232, 1);
4076 output.WriteEnum((int) UseGlobalCheapestInsertionExpensiveChainLns);
4077 }
4078 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4079 output.WriteRawTag(240, 1);
4080 output.WriteEnum((int) UseLocalCheapestInsertionExpensiveChainLns);
4081 }
4082 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4083 output.WriteRawTag(248, 1);
4084 output.WriteEnum((int) UseGlobalCheapestInsertionCloseNodesLns);
4085 }
4086 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4087 output.WriteRawTag(128, 2);
4088 output.WriteEnum((int) UseLocalCheapestInsertionCloseNodesLns);
4089 }
4090 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4091 output.WriteRawTag(136, 2);
4092 output.WriteEnum((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
4093 }
4094 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4095 output.WriteRawTag(144, 2);
4096 output.WriteEnum((int) UseShortestPathSwapActive);
4097 }
4098 if (UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4099 output.WriteRawTag(152, 2);
4100 output.WriteEnum((int) UseSwapActiveChain);
4101 }
4102 if (UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4103 output.WriteRawTag(160, 2);
4104 output.WriteEnum((int) UseShortestPathTwoOpt);
4105 }
4106 if (UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4107 output.WriteRawTag(168, 2);
4108 output.WriteEnum((int) UseExchangeAndMakeActive);
4109 }
4110 if (UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4111 output.WriteRawTag(176, 2);
4112 output.WriteEnum((int) UseExchangePathStartEndsAndMakeActive);
4113 }
4114 if (_unknownFields != null) {
4115 _unknownFields.WriteTo(output);
4116 }
4117 #endif
4118 }
4119
4120 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4121 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4122 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4123 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
4124 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4125 output.WriteRawTag(8);
4126 output.WriteEnum((int) UseRelocate);
4127 }
4128 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4129 output.WriteRawTag(16);
4130 output.WriteEnum((int) UseRelocatePair);
4131 }
4132 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4133 output.WriteRawTag(24);
4134 output.WriteEnum((int) UseRelocateNeighbors);
4135 }
4136 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4137 output.WriteRawTag(32);
4138 output.WriteEnum((int) UseExchange);
4139 }
4140 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4141 output.WriteRawTag(40);
4142 output.WriteEnum((int) UseCross);
4143 }
4144 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4145 output.WriteRawTag(48);
4146 output.WriteEnum((int) UseCrossExchange);
4147 }
4148 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4149 output.WriteRawTag(56);
4150 output.WriteEnum((int) UseTwoOpt);
4151 }
4152 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4153 output.WriteRawTag(64);
4154 output.WriteEnum((int) UseOrOpt);
4155 }
4156 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4157 output.WriteRawTag(72);
4158 output.WriteEnum((int) UseLinKernighan);
4159 }
4160 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4161 output.WriteRawTag(80);
4162 output.WriteEnum((int) UseTspOpt);
4163 }
4164 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4165 output.WriteRawTag(88);
4166 output.WriteEnum((int) UseMakeActive);
4167 }
4168 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4169 output.WriteRawTag(96);
4170 output.WriteEnum((int) UseMakeInactive);
4171 }
4172 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4173 output.WriteRawTag(104);
4174 output.WriteEnum((int) UseMakeChainInactive);
4175 }
4176 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4177 output.WriteRawTag(112);
4178 output.WriteEnum((int) UseSwapActive);
4179 }
4180 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4181 output.WriteRawTag(120);
4182 output.WriteEnum((int) UseExtendedSwapActive);
4183 }
4184 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4185 output.WriteRawTag(128, 1);
4186 output.WriteEnum((int) UsePathLns);
4187 }
4188 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4189 output.WriteRawTag(136, 1);
4190 output.WriteEnum((int) UseFullPathLns);
4191 }
4192 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4193 output.WriteRawTag(144, 1);
4194 output.WriteEnum((int) UseTspLns);
4195 }
4196 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4197 output.WriteRawTag(152, 1);
4198 output.WriteEnum((int) UseInactiveLns);
4199 }
4200 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4201 output.WriteRawTag(160, 1);
4202 output.WriteEnum((int) UseNodePairSwapActive);
4203 }
4204 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4205 output.WriteRawTag(168, 1);
4206 output.WriteEnum((int) UseRelocateAndMakeActive);
4207 }
4208 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4209 output.WriteRawTag(176, 1);
4210 output.WriteEnum((int) UseExchangePair);
4211 }
4212 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4213 output.WriteRawTag(184, 1);
4214 output.WriteEnum((int) UseRelocateExpensiveChain);
4215 }
4216 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4217 output.WriteRawTag(192, 1);
4218 output.WriteEnum((int) UseLightRelocatePair);
4219 }
4220 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4221 output.WriteRawTag(200, 1);
4222 output.WriteEnum((int) UseRelocateSubtrip);
4223 }
4224 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4225 output.WriteRawTag(208, 1);
4226 output.WriteEnum((int) UseExchangeSubtrip);
4227 }
4228 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4229 output.WriteRawTag(216, 1);
4230 output.WriteEnum((int) UseGlobalCheapestInsertionPathLns);
4231 }
4232 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4233 output.WriteRawTag(224, 1);
4234 output.WriteEnum((int) UseLocalCheapestInsertionPathLns);
4235 }
4236 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4237 output.WriteRawTag(232, 1);
4238 output.WriteEnum((int) UseGlobalCheapestInsertionExpensiveChainLns);
4239 }
4240 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4241 output.WriteRawTag(240, 1);
4242 output.WriteEnum((int) UseLocalCheapestInsertionExpensiveChainLns);
4243 }
4244 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4245 output.WriteRawTag(248, 1);
4246 output.WriteEnum((int) UseGlobalCheapestInsertionCloseNodesLns);
4247 }
4248 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4249 output.WriteRawTag(128, 2);
4250 output.WriteEnum((int) UseLocalCheapestInsertionCloseNodesLns);
4251 }
4252 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4253 output.WriteRawTag(136, 2);
4254 output.WriteEnum((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
4255 }
4256 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4257 output.WriteRawTag(144, 2);
4258 output.WriteEnum((int) UseShortestPathSwapActive);
4259 }
4260 if (UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4261 output.WriteRawTag(152, 2);
4262 output.WriteEnum((int) UseSwapActiveChain);
4263 }
4264 if (UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4265 output.WriteRawTag(160, 2);
4266 output.WriteEnum((int) UseShortestPathTwoOpt);
4267 }
4268 if (UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4269 output.WriteRawTag(168, 2);
4270 output.WriteEnum((int) UseExchangeAndMakeActive);
4271 }
4272 if (UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4273 output.WriteRawTag(176, 2);
4274 output.WriteEnum((int) UseExchangePathStartEndsAndMakeActive);
4275 }
4276 if (_unknownFields != null) {
4277 _unknownFields.WriteTo(ref output);
4278 }
4279 }
4280 #endif
4281
4282 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4283 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4284 public int CalculateSize() {
4285 int size = 0;
4286 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4287 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocate);
4288 }
4289 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4290 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocatePair);
4291 }
4292 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4293 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLightRelocatePair);
4294 }
4295 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4296 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateNeighbors);
4297 }
4298 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4299 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateSubtrip);
4300 }
4301 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4302 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchange);
4303 }
4304 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4305 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangePair);
4306 }
4307 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4308 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangeSubtrip);
4309 }
4310 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4311 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseCross);
4312 }
4313 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4314 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseCrossExchange);
4315 }
4316 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4317 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateExpensiveChain);
4318 }
4319 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4320 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseTwoOpt);
4321 }
4322 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4323 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseOrOpt);
4324 }
4325 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4326 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseLinKernighan);
4327 }
4328 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4329 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseTspOpt);
4330 }
4331 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4332 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeActive);
4333 }
4334 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4335 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateAndMakeActive);
4336 }
4337 if (UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4338 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangeAndMakeActive);
4339 }
4340 if (UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4341 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangePathStartEndsAndMakeActive);
4342 }
4343 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4344 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeInactive);
4345 }
4346 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4347 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeChainInactive);
4348 }
4349 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4350 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseSwapActive);
4351 }
4352 if (UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4353 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseSwapActiveChain);
4354 }
4355 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4356 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseExtendedSwapActive);
4357 }
4358 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4359 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseShortestPathSwapActive);
4360 }
4361 if (UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4362 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseShortestPathTwoOpt);
4363 }
4364 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4365 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseNodePairSwapActive);
4366 }
4367 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4368 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UsePathLns);
4369 }
4370 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4371 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseFullPathLns);
4372 }
4373 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4374 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseTspLns);
4375 }
4376 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4377 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseInactiveLns);
4378 }
4379 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4380 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionPathLns);
4381 }
4382 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4383 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionPathLns);
4384 }
4385 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4386 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
4387 }
4388 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4389 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionExpensiveChainLns);
4390 }
4391 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4392 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionExpensiveChainLns);
4393 }
4394 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4395 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionCloseNodesLns);
4396 }
4397 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4398 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionCloseNodesLns);
4399 }
4400 if (_unknownFields != null) {
4401 size += _unknownFields.CalculateSize();
4402 }
4403 return size;
4404 }
4405
4406 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4407 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4408 public void MergeFrom(LocalSearchNeighborhoodOperators other) {
4409 if (other == null) {
4410 return;
4411 }
4412 if (other.UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4413 UseRelocate = other.UseRelocate;
4414 }
4415 if (other.UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4416 UseRelocatePair = other.UseRelocatePair;
4417 }
4418 if (other.UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4419 UseLightRelocatePair = other.UseLightRelocatePair;
4420 }
4421 if (other.UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4422 UseRelocateNeighbors = other.UseRelocateNeighbors;
4423 }
4424 if (other.UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4425 UseRelocateSubtrip = other.UseRelocateSubtrip;
4426 }
4427 if (other.UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4428 UseExchange = other.UseExchange;
4429 }
4430 if (other.UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4431 UseExchangePair = other.UseExchangePair;
4432 }
4433 if (other.UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4434 UseExchangeSubtrip = other.UseExchangeSubtrip;
4435 }
4436 if (other.UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4437 UseCross = other.UseCross;
4438 }
4439 if (other.UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4440 UseCrossExchange = other.UseCrossExchange;
4441 }
4442 if (other.UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4443 UseRelocateExpensiveChain = other.UseRelocateExpensiveChain;
4444 }
4445 if (other.UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4446 UseTwoOpt = other.UseTwoOpt;
4447 }
4448 if (other.UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4449 UseOrOpt = other.UseOrOpt;
4450 }
4451 if (other.UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4452 UseLinKernighan = other.UseLinKernighan;
4453 }
4454 if (other.UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4455 UseTspOpt = other.UseTspOpt;
4456 }
4457 if (other.UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4458 UseMakeActive = other.UseMakeActive;
4459 }
4460 if (other.UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4461 UseRelocateAndMakeActive = other.UseRelocateAndMakeActive;
4462 }
4463 if (other.UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4464 UseExchangeAndMakeActive = other.UseExchangeAndMakeActive;
4465 }
4466 if (other.UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4467 UseExchangePathStartEndsAndMakeActive = other.UseExchangePathStartEndsAndMakeActive;
4468 }
4469 if (other.UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4470 UseMakeInactive = other.UseMakeInactive;
4471 }
4472 if (other.UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4473 UseMakeChainInactive = other.UseMakeChainInactive;
4474 }
4475 if (other.UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4476 UseSwapActive = other.UseSwapActive;
4477 }
4478 if (other.UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4479 UseSwapActiveChain = other.UseSwapActiveChain;
4480 }
4481 if (other.UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4482 UseExtendedSwapActive = other.UseExtendedSwapActive;
4483 }
4484 if (other.UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4485 UseShortestPathSwapActive = other.UseShortestPathSwapActive;
4486 }
4487 if (other.UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4488 UseShortestPathTwoOpt = other.UseShortestPathTwoOpt;
4489 }
4490 if (other.UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4491 UseNodePairSwapActive = other.UseNodePairSwapActive;
4492 }
4493 if (other.UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4494 UsePathLns = other.UsePathLns;
4495 }
4496 if (other.UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4497 UseFullPathLns = other.UseFullPathLns;
4498 }
4499 if (other.UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4500 UseTspLns = other.UseTspLns;
4501 }
4502 if (other.UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4503 UseInactiveLns = other.UseInactiveLns;
4504 }
4505 if (other.UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4506 UseGlobalCheapestInsertionPathLns = other.UseGlobalCheapestInsertionPathLns;
4507 }
4508 if (other.UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4509 UseLocalCheapestInsertionPathLns = other.UseLocalCheapestInsertionPathLns;
4510 }
4511 if (other.UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4512 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = other.UseRelocatePathGlobalCheapestInsertionInsertUnperformed;
4513 }
4514 if (other.UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4515 UseGlobalCheapestInsertionExpensiveChainLns = other.UseGlobalCheapestInsertionExpensiveChainLns;
4516 }
4517 if (other.UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4518 UseLocalCheapestInsertionExpensiveChainLns = other.UseLocalCheapestInsertionExpensiveChainLns;
4519 }
4520 if (other.UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4521 UseGlobalCheapestInsertionCloseNodesLns = other.UseGlobalCheapestInsertionCloseNodesLns;
4522 }
4523 if (other.UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4524 UseLocalCheapestInsertionCloseNodesLns = other.UseLocalCheapestInsertionCloseNodesLns;
4525 }
4526 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4527 }
4528
4529 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4530 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4531 public void MergeFrom(pb::CodedInputStream input) {
4532 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4533 input.ReadRawMessage(this);
4534 #else
4535 uint tag;
4536 while ((tag = input.ReadTag()) != 0) {
4537 if ((tag & 7) == 4) {
4538 // Abort on any end group tag.
4539 return;
4540 }
4541 switch(tag) {
4542 default:
4543 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4544 break;
4545 case 8: {
4546 UseRelocate = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4547 break;
4548 }
4549 case 16: {
4550 UseRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4551 break;
4552 }
4553 case 24: {
4554 UseRelocateNeighbors = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4555 break;
4556 }
4557 case 32: {
4558 UseExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4559 break;
4560 }
4561 case 40: {
4562 UseCross = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4563 break;
4564 }
4565 case 48: {
4566 UseCrossExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4567 break;
4568 }
4569 case 56: {
4570 UseTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4571 break;
4572 }
4573 case 64: {
4574 UseOrOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4575 break;
4576 }
4577 case 72: {
4578 UseLinKernighan = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4579 break;
4580 }
4581 case 80: {
4582 UseTspOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4583 break;
4584 }
4585 case 88: {
4586 UseMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4587 break;
4588 }
4589 case 96: {
4590 UseMakeInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4591 break;
4592 }
4593 case 104: {
4594 UseMakeChainInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4595 break;
4596 }
4597 case 112: {
4598 UseSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4599 break;
4600 }
4601 case 120: {
4602 UseExtendedSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4603 break;
4604 }
4605 case 128: {
4606 UsePathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4607 break;
4608 }
4609 case 136: {
4610 UseFullPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4611 break;
4612 }
4613 case 144: {
4614 UseTspLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4615 break;
4616 }
4617 case 152: {
4618 UseInactiveLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4619 break;
4620 }
4621 case 160: {
4622 UseNodePairSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4623 break;
4624 }
4625 case 168: {
4626 UseRelocateAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4627 break;
4628 }
4629 case 176: {
4630 UseExchangePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4631 break;
4632 }
4633 case 184: {
4634 UseRelocateExpensiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4635 break;
4636 }
4637 case 192: {
4638 UseLightRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4639 break;
4640 }
4641 case 200: {
4642 UseRelocateSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4643 break;
4644 }
4645 case 208: {
4646 UseExchangeSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4647 break;
4648 }
4649 case 216: {
4650 UseGlobalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4651 break;
4652 }
4653 case 224: {
4654 UseLocalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4655 break;
4656 }
4657 case 232: {
4658 UseGlobalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4659 break;
4660 }
4661 case 240: {
4662 UseLocalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4663 break;
4664 }
4665 case 248: {
4666 UseGlobalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4667 break;
4668 }
4669 case 256: {
4670 UseLocalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4671 break;
4672 }
4673 case 264: {
4674 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4675 break;
4676 }
4677 case 272: {
4678 UseShortestPathSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4679 break;
4680 }
4681 case 280: {
4682 UseSwapActiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4683 break;
4684 }
4685 case 288: {
4686 UseShortestPathTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4687 break;
4688 }
4689 case 296: {
4690 UseExchangeAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4691 break;
4692 }
4693 case 304: {
4694 UseExchangePathStartEndsAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4695 break;
4696 }
4697 }
4698 }
4699 #endif
4700 }
4701
4702 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4703 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4704 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4705 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4706 uint tag;
4707 while ((tag = input.ReadTag()) != 0) {
4708 if ((tag & 7) == 4) {
4709 // Abort on any end group tag.
4710 return;
4711 }
4712 switch(tag) {
4713 default:
4714 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4715 break;
4716 case 8: {
4717 UseRelocate = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4718 break;
4719 }
4720 case 16: {
4721 UseRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4722 break;
4723 }
4724 case 24: {
4725 UseRelocateNeighbors = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4726 break;
4727 }
4728 case 32: {
4729 UseExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4730 break;
4731 }
4732 case 40: {
4733 UseCross = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4734 break;
4735 }
4736 case 48: {
4737 UseCrossExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4738 break;
4739 }
4740 case 56: {
4741 UseTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4742 break;
4743 }
4744 case 64: {
4745 UseOrOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4746 break;
4747 }
4748 case 72: {
4749 UseLinKernighan = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4750 break;
4751 }
4752 case 80: {
4753 UseTspOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4754 break;
4755 }
4756 case 88: {
4757 UseMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4758 break;
4759 }
4760 case 96: {
4761 UseMakeInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4762 break;
4763 }
4764 case 104: {
4765 UseMakeChainInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4766 break;
4767 }
4768 case 112: {
4769 UseSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4770 break;
4771 }
4772 case 120: {
4773 UseExtendedSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4774 break;
4775 }
4776 case 128: {
4777 UsePathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4778 break;
4779 }
4780 case 136: {
4781 UseFullPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4782 break;
4783 }
4784 case 144: {
4785 UseTspLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4786 break;
4787 }
4788 case 152: {
4789 UseInactiveLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4790 break;
4791 }
4792 case 160: {
4793 UseNodePairSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4794 break;
4795 }
4796 case 168: {
4797 UseRelocateAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4798 break;
4799 }
4800 case 176: {
4801 UseExchangePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4802 break;
4803 }
4804 case 184: {
4805 UseRelocateExpensiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4806 break;
4807 }
4808 case 192: {
4809 UseLightRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4810 break;
4811 }
4812 case 200: {
4813 UseRelocateSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4814 break;
4815 }
4816 case 208: {
4817 UseExchangeSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4818 break;
4819 }
4820 case 216: {
4821 UseGlobalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4822 break;
4823 }
4824 case 224: {
4825 UseLocalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4826 break;
4827 }
4828 case 232: {
4829 UseGlobalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4830 break;
4831 }
4832 case 240: {
4833 UseLocalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4834 break;
4835 }
4836 case 248: {
4837 UseGlobalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4838 break;
4839 }
4840 case 256: {
4841 UseLocalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4842 break;
4843 }
4844 case 264: {
4845 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4846 break;
4847 }
4848 case 272: {
4849 UseShortestPathSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4850 break;
4851 }
4852 case 280: {
4853 UseSwapActiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4854 break;
4855 }
4856 case 288: {
4857 UseShortestPathTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4858 break;
4859 }
4860 case 296: {
4861 UseExchangeAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4862 break;
4863 }
4864 case 304: {
4865 UseExchangePathStartEndsAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4866 break;
4867 }
4868 }
4869 }
4870 }
4871 #endif
4872
4873 }
4874
4878 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
4879 public sealed partial class ImprovementSearchLimitParameters : pb::IMessage<ImprovementSearchLimitParameters>
4880 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4881 , pb::IBufferMessage
4882 #endif
4883 {
4884 private static readonly pb::MessageParser<ImprovementSearchLimitParameters> _parser = new pb::MessageParser<ImprovementSearchLimitParameters>(() => new ImprovementSearchLimitParameters());
4885 private pb::UnknownFieldSet _unknownFields;
4886 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4887 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4888 public static pb::MessageParser<ImprovementSearchLimitParameters> Parser { get { return _parser; } }
4889
4890 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4891 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4892 public static pbr::MessageDescriptor Descriptor {
4893 get { return global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Descriptor.NestedTypes[1]; }
4894 }
4895
4896 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4897 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4898 pbr::MessageDescriptor pb::IMessage.Descriptor {
4899 get { return Descriptor; }
4901
4902 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4903 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4905 OnConstruction();
4906 }
4907
4908 partial void OnConstruction();
4909
4910 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4911 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4913 improvementRateCoefficient_ = other.improvementRateCoefficient_;
4914 improvementRateSolutionsDistance_ = other.improvementRateSolutionsDistance_;
4915 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4916 }
4917
4918 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4919 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4921 return new ImprovementSearchLimitParameters(this);
4922 }
4923
4925 public const int ImprovementRateCoefficientFieldNumber = 38;
4926 private double improvementRateCoefficient_;
4928 /// Parameter that regulates exchange rate between objective improvement and
4929 /// number of neighbors spent. The smaller the value, the sooner the limit
4930 /// stops the search. Must be positive.
4931 /// </summary>
4932 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4933 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4934 public double ImprovementRateCoefficient {
4935 get { return improvementRateCoefficient_; }
4936 set {
4937 improvementRateCoefficient_ = value;
4938 }
4939 }
4940
4943 private int improvementRateSolutionsDistance_;
4948
4951 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4952 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4954 get { return improvementRateSolutionsDistance_; }
4955 set {
4956 improvementRateSolutionsDistance_ = value;
4957 }
4958 }
4959
4960 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4961 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4962 public override bool Equals(object other) {
4964 }
4965
4966 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4967 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4968 public bool Equals(ImprovementSearchLimitParameters other) {
4969 if (ReferenceEquals(other, null)) {
4970 return false;
4971 }
4972 if (ReferenceEquals(other, this)) {
4973 return true;
4974 }
4975 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ImprovementRateCoefficient, other.ImprovementRateCoefficient)) return false;
4977 return Equals(_unknownFields, other._unknownFields);
4978 }
4979
4980 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4981 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4982 public override int GetHashCode() {
4983 int hash = 1;
4984 if (ImprovementRateCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ImprovementRateCoefficient);
4985 if (ImprovementRateSolutionsDistance != 0) hash ^= ImprovementRateSolutionsDistance.GetHashCode();
4986 if (_unknownFields != null) {
4987 hash ^= _unknownFields.GetHashCode();
4988 }
4989 return hash;
4991
4992 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4993 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4994 public override string ToString() {
4995 return pb::JsonFormatter.ToDiagnosticString(this);
4996 }
4997
4998 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4999 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5000 public void WriteTo(pb::CodedOutputStream output) {
5001 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5002 output.WriteRawMessage(this);
5003 #else
5004 if (ImprovementRateCoefficient != 0D) {
5005 output.WriteRawTag(177, 2);
5006 output.WriteDouble(ImprovementRateCoefficient);
5007 }
5009 output.WriteRawTag(184, 2);
5010 output.WriteInt32(ImprovementRateSolutionsDistance);
5011 }
5012 if (_unknownFields != null) {
5013 _unknownFields.WriteTo(output);
5014 }
5015 #endif
5016 }
5017
5018 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5019 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5020 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5021 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
5022 if (ImprovementRateCoefficient != 0D) {
5023 output.WriteRawTag(177, 2);
5024 output.WriteDouble(ImprovementRateCoefficient);
5025 }
5026 if (ImprovementRateSolutionsDistance != 0) {
5027 output.WriteRawTag(184, 2);
5028 output.WriteInt32(ImprovementRateSolutionsDistance);
5029 }
5030 if (_unknownFields != null) {
5031 _unknownFields.WriteTo(ref output);
5032 }
5033 }
5034 #endif
5035
5036 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5037 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5038 public int CalculateSize() {
5039 int size = 0;
5040 if (ImprovementRateCoefficient != 0D) {
5041 size += 2 + 8;
5042 }
5043 if (ImprovementRateSolutionsDistance != 0) {
5044 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ImprovementRateSolutionsDistance);
5045 }
5046 if (_unknownFields != null) {
5047 size += _unknownFields.CalculateSize();
5048 }
5049 return size;
5050 }
5051
5052 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5053 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5054 public void MergeFrom(ImprovementSearchLimitParameters other) {
5055 if (other == null) {
5056 return;
5057 }
5058 if (other.ImprovementRateCoefficient != 0D) {
5059 ImprovementRateCoefficient = other.ImprovementRateCoefficient;
5060 }
5061 if (other.ImprovementRateSolutionsDistance != 0) {
5062 ImprovementRateSolutionsDistance = other.ImprovementRateSolutionsDistance;
5063 }
5064 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5065 }
5066
5067 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5068 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5069 public void MergeFrom(pb::CodedInputStream input) {
5070 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5071 input.ReadRawMessage(this);
5072 #else
5073 uint tag;
5074 while ((tag = input.ReadTag()) != 0) {
5075 if ((tag & 7) == 4) {
5076 // Abort on any end group tag.
5077 return;
5078 }
5079 switch(tag) {
5080 default:
5081 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5082 break;
5083 case 305: {
5084 ImprovementRateCoefficient = input.ReadDouble();
5085 break;
5086 }
5087 case 312: {
5088 ImprovementRateSolutionsDistance = input.ReadInt32();
5089 break;
5090 }
5091 }
5092 }
5093 #endif
5094 }
5095
5096 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5097 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5098 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5099 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
5100 uint tag;
5101 while ((tag = input.ReadTag()) != 0) {
5102 if ((tag & 7) == 4) {
5103 // Abort on any end group tag.
5104 return;
5105 }
5106 switch(tag) {
5107 default:
5108 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
5109 break;
5110 case 305: {
5111 ImprovementRateCoefficient = input.ReadDouble();
5112 break;
5113 }
5114 case 312: {
5115 ImprovementRateSolutionsDistance = input.ReadInt32();
5116 break;
5117 }
5118 }
5119 }
5120 }
5121 #endif
5122
5123 }
5124
5125 }
5126 #endregion
5127
5128 }
5129
5132
5133 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
5134 public sealed partial class RoutingModelParameters : pb::IMessage<RoutingModelParameters>
5135 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5136 , pb::IBufferMessage
5137 #endif
5138 {
5139 private static readonly pb::MessageParser<RoutingModelParameters> _parser = new pb::MessageParser<RoutingModelParameters>(() => new RoutingModelParameters());
5140 private pb::UnknownFieldSet _unknownFields;
5141 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5142 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5143 public static pb::MessageParser<RoutingModelParameters> Parser { get { return _parser; } }
5144
5145 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5146 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5147 public static pbr::MessageDescriptor Descriptor {
5148 get { return global::Google.OrTools.ConstraintSolver.RoutingParametersReflection.Descriptor.MessageTypes[1]; }
5149 }
5150
5151 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5152 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5153 pbr::MessageDescriptor pb::IMessage.Descriptor {
5154 get { return Descriptor; }
5156
5157 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5158 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5159 public RoutingModelParameters() {
5160 OnConstruction();
5161 }
5162
5163 partial void OnConstruction();
5164
5165 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5166 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5168 solverParameters_ = other.solverParameters_ != null ? other.solverParameters_.Clone() : null;
5169 reduceVehicleCostModel_ = other.reduceVehicleCostModel_;
5170 maxCallbackCacheSize_ = other.maxCallbackCacheSize_;
5171 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5172 }
5173
5174 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5175 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5176 public RoutingModelParameters Clone() {
5177 return new RoutingModelParameters(this);
5178 }
5179
5181 public const int SolverParametersFieldNumber = 1;
5182 private global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters solverParameters_;
5184 /// Parameters to use in the underlying constraint solver.
5185 /// </summary>
5186 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5187 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5189 get { return solverParameters_; }
5190 set {
5191 solverParameters_ = value;
5192 }
5193 }
5194
5197 private bool reduceVehicleCostModel_;
5202
5204 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5205 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5206 public bool ReduceVehicleCostModel {
5207 get { return reduceVehicleCostModel_; }
5208 set {
5209 reduceVehicleCostModel_ = value;
5210 }
5211 }
5212
5215 private int maxCallbackCacheSize_;
5220 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5221 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5223 get { return maxCallbackCacheSize_; }
5224 set {
5225 maxCallbackCacheSize_ = value;
5226 }
5227 }
5228
5229 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5230 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5231 public override bool Equals(object other) {
5232 return Equals(other as RoutingModelParameters);
5233 }
5234
5235 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5236 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5237 public bool Equals(RoutingModelParameters other) {
5238 if (ReferenceEquals(other, null)) {
5239 return false;
5240 }
5241 if (ReferenceEquals(other, this)) {
5242 return true;
5243 }
5244 if (!object.Equals(SolverParameters, other.SolverParameters)) return false;
5246 if (MaxCallbackCacheSize != other.MaxCallbackCacheSize) return false;
5247 return Equals(_unknownFields, other._unknownFields);
5248 }
5249
5250 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5251 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5252 public override int GetHashCode() {
5253 int hash = 1;
5254 if (solverParameters_ != null) hash ^= SolverParameters.GetHashCode();
5255 if (ReduceVehicleCostModel != false) hash ^= ReduceVehicleCostModel.GetHashCode();
5256 if (MaxCallbackCacheSize != 0) hash ^= MaxCallbackCacheSize.GetHashCode();
5257 if (_unknownFields != null) {
5258 hash ^= _unknownFields.GetHashCode();
5259 }
5260 return hash;
5261 }
5262
5263 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5264 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5265 public override string ToString() {
5266 return pb::JsonFormatter.ToDiagnosticString(this);
5267 }
5268
5269 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5270 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5271 public void WriteTo(pb::CodedOutputStream output) {
5272 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5273 output.WriteRawMessage(this);
5274 #else
5275 if (solverParameters_ != null) {
5276 output.WriteRawTag(10);
5277 output.WriteMessage(SolverParameters);
5278 }
5280 output.WriteRawTag(16);
5281 output.WriteBool(ReduceVehicleCostModel);
5282 }
5283 if (MaxCallbackCacheSize != 0) {
5284 output.WriteRawTag(24);
5285 output.WriteInt32(MaxCallbackCacheSize);
5286 }
5287 if (_unknownFields != null) {
5288 _unknownFields.WriteTo(output);
5289 }
5290 #endif
5291 }
5292
5293 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5294 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5295 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5296 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
5297 if (solverParameters_ != null) {
5298 output.WriteRawTag(10);
5299 output.WriteMessage(SolverParameters);
5300 }
5301 if (ReduceVehicleCostModel != false) {
5302 output.WriteRawTag(16);
5303 output.WriteBool(ReduceVehicleCostModel);
5304 }
5305 if (MaxCallbackCacheSize != 0) {
5306 output.WriteRawTag(24);
5307 output.WriteInt32(MaxCallbackCacheSize);
5308 }
5309 if (_unknownFields != null) {
5310 _unknownFields.WriteTo(ref output);
5311 }
5312 }
5313 #endif
5314
5315 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5316 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5317 public int CalculateSize() {
5318 int size = 0;
5319 if (solverParameters_ != null) {
5320 size += 1 + pb::CodedOutputStream.ComputeMessageSize(SolverParameters);
5321 }
5322 if (ReduceVehicleCostModel != false) {
5323 size += 1 + 1;
5324 }
5326 size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxCallbackCacheSize);
5327 }
5328 if (_unknownFields != null) {
5329 size += _unknownFields.CalculateSize();
5330 }
5331 return size;
5332 }
5333
5334 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5335 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5336 public void MergeFrom(RoutingModelParameters other) {
5337 if (other == null) {
5338 return;
5339 }
5340 if (other.solverParameters_ != null) {
5341 if (solverParameters_ == null) {
5342 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
5343 }
5344 SolverParameters.MergeFrom(other.SolverParameters);
5345 }
5346 if (other.ReduceVehicleCostModel != false) {
5347 ReduceVehicleCostModel = other.ReduceVehicleCostModel;
5348 }
5349 if (other.MaxCallbackCacheSize != 0) {
5350 MaxCallbackCacheSize = other.MaxCallbackCacheSize;
5351 }
5352 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5353 }
5354
5355 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5356 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5357 public void MergeFrom(pb::CodedInputStream input) {
5358 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5359 input.ReadRawMessage(this);
5360 #else
5361 uint tag;
5362 while ((tag = input.ReadTag()) != 0) {
5363 if ((tag & 7) == 4) {
5364 // Abort on any end group tag.
5365 return;
5366 }
5367 switch(tag) {
5368 default:
5369 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5370 break;
5371 case 10: {
5372 if (solverParameters_ == null) {
5373 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
5374 }
5375 input.ReadMessage(SolverParameters);
5376 break;
5377 }
5378 case 16: {
5379 ReduceVehicleCostModel = input.ReadBool();
5380 break;
5381 }
5382 case 24: {
5383 MaxCallbackCacheSize = input.ReadInt32();
5384 break;
5385 }
5386 }
5387 }
5388 #endif
5389 }
5390
5391 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5392 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5393 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5394 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
5395 uint tag;
5396 while ((tag = input.ReadTag()) != 0) {
5397 if ((tag & 7) == 4) {
5398 // Abort on any end group tag.
5399 return;
5400 }
5401 switch(tag) {
5402 default:
5403 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
5404 break;
5405 case 10: {
5406 if (solverParameters_ == null) {
5407 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
5408 }
5409 input.ReadMessage(SolverParameters);
5410 break;
5411 }
5412 case 16: {
5413 ReduceVehicleCostModel = input.ReadBool();
5414 break;
5415 }
5416 case 24: {
5417 MaxCallbackCacheSize = input.ReadInt32();
5418 break;
5419 }
5420 }
5421 }
5422 }
5423 #endif
5424
5425 }
5426
5427 #endregion
5428
5429}
5430
5431#endregion Designer generated code
global::Google.Protobuf pb
Definition SetCover.pb.cs:8
global::Google.Protobuf.Reflection pbr
global::System.Collections.Generic scg
global::Google.Protobuf.Collections pbc
Definition SetCover.pb.cs:9
Container for nested types declared in the FirstSolutionStrategy message type.
First solution strategies, used as starting point of local search.
Specifies the behavior of a search based on ILS.
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: 39.
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.
const int UseLightRelocatePairFieldNumber
Field number for the "use_light_relocate_pair" field.
const int UseRelocateNeighborsFieldNumber
Field number for the "use_relocate_neighbors" 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 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...
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.
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 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.
InsertionSortingProperty
Properties used to select in which order nodes or node pairs are considered in insertion heuristics.
@ SortingPropertyAllowedVehicles
Selects nodes with the least number of allowed vehicles.
@ SortingPropertyHighestAvgArcCostToVehicleStartEnds
Selects nodes that are on average the farthest from vehicles.
@ SortingPropertyPenaltyOverAllowedVehiclesRatio
Selects nodes with the highest penalty / number of allowed vehicles ratio.
@ SortingPropertyLowestAvgArcCostToVehicleStartEnds
Selects nodes that are on average the closest to vehicles.
@ SortingPropertyLowestMinArcCostToVehicleStartEnds
Select nodes with the smallest distance to the closest vehicle.
@ SortingPropertyHighestDimensionUsage
Selects nodes that have a higher dimension usage on average, where the usage is determined as the rat...
SchedulingSolver
Underlying solver to use in dimension scheduling, respectively for continuous and mixed models.
PairInsertionStrategy
In insertion-based heuristics, describes what positions must be considered when inserting a pickup/de...
@ Automatic
Let the solver decide the set of positions and its ordering.
@ BestPickupDeliveryPair
Consider all positions, by increasing by cost(pickup) + cost(delivery).
@ BestPickupDeliveryPairMultitour
Only consider insertion positions that are compatible with the multitour property,...
@ BestPickupThenBestDelivery
Consider all positions, by increasing (cost(pickup), cost(delivery)).
Parameters defining the search used to solve vehicle routing problems.
const int NumMaxLocalOptimaBeforeMetaheuristicSwitchFieldNumber
Field number for the "num_max_local_optima_before_metaheuristic_switch" field.
bool CheapestInsertionAddUnperformedEntries
Whether or not to consider entries making the nodes/pairs unperformed in the GlobalCheapestInsertion ...
bool SavingsAddReverseArcs
Add savings related to reverse arcs when finding the nearest neighbors of the nodes.
int NumberOfSolutionsToCollect
Number of solutions to collect during the search. Corresponds to the best solutions found during the ...
int FallbackToCpSatSizeThreshold
If model.Size() is less than the threshold and that no solution has been found, attempt a pass with C...
global::Google.OrTools.ConstraintSolver.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.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy LocalCheapestInsertionPickupDeliveryStrategy
Choice of insertion strategy for pickup/delivery pairs, used in local cheapest insertion,...
global::Google.OrTools.Util.OptionalBoolean UseGeneralizedCpSat
If true, use the CP-SAT solver to find a solution on generalized routing model. If use_cp is also tru...
double MultiArmedBanditCompoundOperatorExplorationCoefficient
Positive parameter defining the exploration coefficient of the multi-armed bandit compound operator....
double CheapestInsertionFarthestSeedsRatio
Ratio (between 0 and 1) of available vehicles in the model on which farthest nodes of the model are i...
const int UseIteratedLocalSearchFieldNumber
Field number for the "use_iterated_local_search" field.
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...
const int LogCostScalingFactorFieldNumber
Field number for the "log_cost_scaling_factor" field.
bool HasDisableSchedulingBewareThisMayDegradePerformance
Gets whether the "disable_scheduling_beware_this_may_degrade_performance" field is set.
double MultiArmedBanditCompoundOperatorMemoryCoefficient
Memory coefficient related to the multi-armed bandit compound operator. Sets how much the objective i...
double LsOperatorNeighborsRatio
Neighbors ratio and minimum number of neighbors considered in local search operators (see cheapest_in...
global::Google.Protobuf.WellKnownTypes.Duration LnsTimeLimit
Limit to the time spent in the completion search for each local search neighbor.
int FirstSolutionOptimizationPeriod
If non zero, a period p indicates that every p node insertions or additions to a path,...
bool GuidedLocalSearchResetPenaltiesOnNewBestSolution
Whether to reset penalties when a new best solution is found. The effect is that a greedy descent is ...
const int LogTagFieldNumber
Field number for the "log_tag" field.
double SavingsNeighborsRatio
Parameters specific to the Savings first solution heuristic. Ratio (in ]0, 1]) of neighbors to consid...
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.
bool UseFullPropagation
— Propagation control — These are advanced settings which should not be modified unless you know what...
global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value FirstSolutionStrategy
First solution strategies, used as starting point of local search.
double CheapestInsertionLsOperatorNeighborsRatio
Neighbors ratio and minimum number of neighbors for the heuristic when used in a local search operato...
long SolutionLimit
– Search limits – Limit to the number of solutions generated during the search. 0 means "unspecified"...
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators LocalSearchOperators
const int LogCostOffsetFieldNumber
Field number for the "log_cost_offset" field.
bool CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization
Whether or not to only consider closest neighbors when initializing the assignment for the first solu...
bool ChristofidesUseMinimumMatching
If true use minimum matching instead of minimal matching in the Christofides algorithm.
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver MixedIntegerSchedulingSolver
bool UseMultiArmedBanditConcatenateOperators
If true, the solver will use multi-armed bandit concatenate operators. It dynamically chooses the nex...
static pb::MessageParser< RoutingSearchParameters > Parser
double SavingsMaxMemoryUsageBytes
The number of neighbors considered for each node in the Savings heuristic is chosen so that the space...
global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters ImprovementLimitParameters
The improvement search limit is added to the solver if the following parameters are set.
double CheapestInsertionFirstSolutionNeighborsRatio
Ratio (in ]0, 1]) of closest non start/end nodes to consider as neighbors for each node when creating...
const int ChristofidesUseMinimumMatchingFieldNumber
Field number for the "christofides_use_minimum_matching" field.
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....
double SavingsArcCoefficient
Coefficient of the cost of the arc for which the saving value is being computed: Saving(a-->b) = Cost...
global::Google.OrTools.Sat.SatParameters SatParameters
If use_cp_sat or use_generalized_cp_sat is true, contains the SAT algorithm parameters which will be ...
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 ...
pbc::RepeatedField< global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.InsertionSortingProperty > LocalCheapestInsertionSortingProperties
The properties used to sort insertion entries in the local cheapest insertion heuristic,...
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.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy LocalCheapestCostInsertionPickupDeliveryStrategy
Choice of insertion strategy for pickup/delivery pairs, used in local cheapest cost insertion,...
global::Google.Protobuf.WellKnownTypes.Duration TimeLimit
Limit to the time spent in the search.
const int IteratedLocalSearchParametersFieldNumber
Field number for the "iterated_local_search_parameters" field.
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...
Contains the definitions for all the sat algorithm parameters and their default values.