Google OR-Tools v9.14
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 "cm90byLXNwoXUm91dGluZ1NlYXJjaFBhcmFtZXRlcnMSUQoXZmlyc3Rfc29s",
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 "CiNCRVNUX1BJQ0tVUF9ERUxJVkVSWV9QQUlSX01VTFRJVE9VUhADIscDChhJ",
179 "bnNlcnRpb25Tb3J0aW5nUHJvcGVydHkSIAocU09SVElOR19QUk9QRVJUWV9V",
180 "TlNQRUNJRklFRBAAEiUKIVNPUlRJTkdfUFJPUEVSVFlfQUxMT1dFRF9WRUhJ",
181 "Q0xFUxABEhwKGFNPUlRJTkdfUFJPUEVSVFlfUEVOQUxUWRACEjgKNFNPUlRJ",
182 "TkdfUFJPUEVSVFlfUEVOQUxUWV9PVkVSX0FMTE9XRURfVkVISUNMRVNfUkFU",
183 "SU8QAxI/CjtTT1JUSU5HX1BST1BFUlRZX0hJR0hFU1RfQVZHX0FSQ19DT1NU",
184 "X1RPX1ZFSElDTEVfU1RBUlRfRU5EUxAEEj4KOlNPUlRJTkdfUFJPUEVSVFlf",
185 "TE9XRVNUX0FWR19BUkNfQ09TVF9UT19WRUhJQ0xFX1NUQVJUX0VORFMQBRI+",
186 "CjpTT1JUSU5HX1BST1BFUlRZX0xPV0VTVF9NSU5fQVJDX0NPU1RfVE9fVkVI",
187 "SUNMRV9TVEFSVF9FTkRTEAYSLAooU09SVElOR19QUk9QRVJUWV9ISUdIRVNU",
188 "X0RJTUVOU0lPTl9VU0FHRRAHEhsKF1NPUlRJTkdfUFJPUEVSVFlfUkFORE9N",
189 "EAgiVAoQU2NoZWR1bGluZ1NvbHZlchIUChBTQ0hFRFVMSU5HX1VOU0VUEAAS",
190 "EwoPU0NIRURVTElOR19HTE9QEAESFQoRU0NIRURVTElOR19DUF9TQVQQAkI5",
191 "CjdfZGlzYWJsZV9zY2hlZHVsaW5nX2Jld2FyZV90aGlzX21heV9kZWdyYWRl",
192 "X3BlcmZvcm1hbmNlSgQIExAUSgQIQRBCIqgBChZSb3V0aW5nTW9kZWxQYXJh",
193 "bWV0ZXJzEkoKEXNvbHZlcl9wYXJhbWV0ZXJzGAEgASgLMi8ub3BlcmF0aW9u",
194 "c19yZXNlYXJjaC5Db25zdHJhaW50U29sdmVyUGFyYW1ldGVycxIhChlyZWR1",
195 "Y2VfdmVoaWNsZV9jb3N0X21vZGVsGAIgASgIEh8KF21heF9jYWxsYmFja19j",
196 "YWNoZV9zaXplGAMgASgFQkkKI2NvbS5nb29nbGUub3J0b29scy5jb25zdHJh",
197 "aW50c29sdmVyUAGqAh9Hb29nbGUuT3JUb29scy5Db25zdHJhaW50U29sdmVy",
198 "YgZwcm90bzM="));
199 descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
200 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, },
201 new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
202 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),
203 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)}),
204 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.ConstraintSolver.RoutingModelParameters), global::Google.OrTools.ConstraintSolver.RoutingModelParameters.Parser, new[]{ "SolverParameters", "ReduceVehicleCostModel", "MaxCallbackCacheSize" }, null, null, null, null)
205 }));
206 }
207 #endregion
208
209 }
210 #region Messages
220 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
221 public sealed partial class RoutingSearchParameters : pb::IMessage<RoutingSearchParameters>
222 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
223 , pb::IBufferMessage
224 #endif
225 {
226 private static readonly pb::MessageParser<RoutingSearchParameters> _parser = new pb::MessageParser<RoutingSearchParameters>(() => new RoutingSearchParameters());
227 private pb::UnknownFieldSet _unknownFields;
228 private int _hasBits0;
229 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
230 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
231 public static pb::MessageParser<RoutingSearchParameters> Parser { get { return _parser; } }
233 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
234 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
235 public static pbr::MessageDescriptor Descriptor {
236 get { return global::Google.OrTools.ConstraintSolver.RoutingParametersReflection.Descriptor.MessageTypes[0]; }
237 }
238
239 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
240 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
241 pbr::MessageDescriptor pb::IMessage.Descriptor {
242 get { return Descriptor; }
243 }
244
245 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
246 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
247 public RoutingSearchParameters() {
248 OnConstruction();
249 }
250
251 partial void OnConstruction();
252
253 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
254 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
255 public RoutingSearchParameters(RoutingSearchParameters other) : this() {
256 _hasBits0 = other._hasBits0;
257 firstSolutionStrategy_ = other.firstSolutionStrategy_;
258 useUnfilteredFirstSolutionStrategy_ = other.useUnfilteredFirstSolutionStrategy_;
259 savingsNeighborsRatio_ = other.savingsNeighborsRatio_;
260 savingsMaxMemoryUsageBytes_ = other.savingsMaxMemoryUsageBytes_;
261 savingsAddReverseArcs_ = other.savingsAddReverseArcs_;
262 savingsArcCoefficient_ = other.savingsArcCoefficient_;
263 cheapestInsertionFarthestSeedsRatio_ = other.cheapestInsertionFarthestSeedsRatio_;
264 cheapestInsertionFirstSolutionNeighborsRatio_ = other.cheapestInsertionFirstSolutionNeighborsRatio_;
265 cheapestInsertionFirstSolutionMinNeighbors_ = other.cheapestInsertionFirstSolutionMinNeighbors_;
266 cheapestInsertionLsOperatorNeighborsRatio_ = other.cheapestInsertionLsOperatorNeighborsRatio_;
267 cheapestInsertionLsOperatorMinNeighbors_ = other.cheapestInsertionLsOperatorMinNeighbors_;
268 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = other.cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
269 cheapestInsertionAddUnperformedEntries_ = other.cheapestInsertionAddUnperformedEntries_;
270 localCheapestInsertionPickupDeliveryStrategy_ = other.localCheapestInsertionPickupDeliveryStrategy_;
271 localCheapestCostInsertionPickupDeliveryStrategy_ = other.localCheapestCostInsertionPickupDeliveryStrategy_;
272 localCheapestInsertionSortingProperties_ = other.localCheapestInsertionSortingProperties_.Clone();
273 christofidesUseMinimumMatching_ = other.christofidesUseMinimumMatching_;
274 firstSolutionOptimizationPeriod_ = other.firstSolutionOptimizationPeriod_;
275 localSearchOperators_ = other.localSearchOperators_ != null ? other.localSearchOperators_.Clone() : null;
276 lsOperatorNeighborsRatio_ = other.lsOperatorNeighborsRatio_;
277 lsOperatorMinNeighbors_ = other.lsOperatorMinNeighbors_;
278 useMultiArmedBanditConcatenateOperators_ = other.useMultiArmedBanditConcatenateOperators_;
279 multiArmedBanditCompoundOperatorMemoryCoefficient_ = other.multiArmedBanditCompoundOperatorMemoryCoefficient_;
280 multiArmedBanditCompoundOperatorExplorationCoefficient_ = other.multiArmedBanditCompoundOperatorExplorationCoefficient_;
281 maxSwapActiveChainSize_ = other.maxSwapActiveChainSize_;
282 relocateExpensiveChainNumArcsToConsider_ = other.relocateExpensiveChainNumArcsToConsider_;
283 heuristicExpensiveChainLnsNumArcsToConsider_ = other.heuristicExpensiveChainLnsNumArcsToConsider_;
284 heuristicCloseNodesLnsNumNodes_ = other.heuristicCloseNodesLnsNumNodes_;
285 localSearchMetaheuristic_ = other.localSearchMetaheuristic_;
286 localSearchMetaheuristics_ = other.localSearchMetaheuristics_.Clone();
287 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = other.numMaxLocalOptimaBeforeMetaheuristicSwitch_;
288 guidedLocalSearchLambdaCoefficient_ = other.guidedLocalSearchLambdaCoefficient_;
289 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = other.guidedLocalSearchResetPenaltiesOnNewBestSolution_;
290 guidedLocalSearchPenalizeWithVehicleClasses_ = other.guidedLocalSearchPenalizeWithVehicleClasses_;
291 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = other.useGuidedLocalSearchPenaltiesInLocalSearchOperators_;
292 useDepthFirstSearch_ = other.useDepthFirstSearch_;
293 useCp_ = other.useCp_;
294 useCpSat_ = other.useCpSat_;
295 useGeneralizedCpSat_ = other.useGeneralizedCpSat_;
296 satParameters_ = other.satParameters_ != null ? other.satParameters_.Clone() : null;
297 reportIntermediateCpSatSolutions_ = other.reportIntermediateCpSatSolutions_;
298 fallbackToCpSatSizeThreshold_ = other.fallbackToCpSatSizeThreshold_;
299 continuousSchedulingSolver_ = other.continuousSchedulingSolver_;
300 mixedIntegerSchedulingSolver_ = other.mixedIntegerSchedulingSolver_;
301 disableSchedulingBewareThisMayDegradePerformance_ = other.disableSchedulingBewareThisMayDegradePerformance_;
302 optimizationStep_ = other.optimizationStep_;
303 numberOfSolutionsToCollect_ = other.numberOfSolutionsToCollect_;
304 solutionLimit_ = other.solutionLimit_;
305 timeLimit_ = other.timeLimit_ != null ? other.timeLimit_.Clone() : null;
306 lnsTimeLimit_ = other.lnsTimeLimit_ != null ? other.lnsTimeLimit_.Clone() : null;
307 secondaryLsTimeLimitRatio_ = other.secondaryLsTimeLimitRatio_;
308 improvementLimitParameters_ = other.improvementLimitParameters_ != null ? other.improvementLimitParameters_.Clone() : null;
309 useFullPropagation_ = other.useFullPropagation_;
310 logSearch_ = other.logSearch_;
311 logCostScalingFactor_ = other.logCostScalingFactor_;
312 logCostOffset_ = other.logCostOffset_;
313 logTag_ = other.logTag_;
314 useIteratedLocalSearch_ = other.useIteratedLocalSearch_;
315 iteratedLocalSearchParameters_ = other.iteratedLocalSearchParameters_ != null ? other.iteratedLocalSearchParameters_.Clone() : null;
316 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
317 }
318
319 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
320 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
321 public RoutingSearchParameters Clone() {
322 return new RoutingSearchParameters(this);
323 }
324
325
326 public const int FirstSolutionStrategyFieldNumber = 1;
327 private global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value firstSolutionStrategy_ = global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset;
331 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
332 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
334 get { return firstSolutionStrategy_; }
335 set {
336 firstSolutionStrategy_ = value;
337 }
338 }
339
340
341 public const int UseUnfilteredFirstSolutionStrategyFieldNumber = 2;
342 private bool useUnfilteredFirstSolutionStrategy_;
349 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
350 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
352 get { return useUnfilteredFirstSolutionStrategy_; }
353 set {
354 useUnfilteredFirstSolutionStrategy_ = value;
355 }
356 }
357
359 public const int SavingsNeighborsRatioFieldNumber = 14;
360 private double savingsNeighborsRatio_;
366 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
367 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
368 public double SavingsNeighborsRatio {
369 get { return savingsNeighborsRatio_; }
370 set {
371 savingsNeighborsRatio_ = value;
372 }
373 }
374
376 public const int SavingsMaxMemoryUsageBytesFieldNumber = 23;
377 private double savingsMaxMemoryUsageBytes_;
386 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
387 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
388 public double SavingsMaxMemoryUsageBytes {
389 get { return savingsMaxMemoryUsageBytes_; }
390 set {
391 savingsMaxMemoryUsageBytes_ = value;
392 }
393 }
394
396 public const int SavingsAddReverseArcsFieldNumber = 15;
397 private bool savingsAddReverseArcs_;
402 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
403 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
404 public bool SavingsAddReverseArcs {
405 get { return savingsAddReverseArcs_; }
406 set {
407 savingsAddReverseArcs_ = value;
408 }
409 }
410
412 public const int SavingsArcCoefficientFieldNumber = 18;
413 private double savingsArcCoefficient_;
421 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
422 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
423 public double SavingsArcCoefficient {
424 get { return savingsArcCoefficient_; }
425 set {
426 savingsArcCoefficient_ = value;
427 }
428 }
429
431 public const int CheapestInsertionFarthestSeedsRatioFieldNumber = 16;
432 private double cheapestInsertionFarthestSeedsRatio_;
438 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
439 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
441 get { return cheapestInsertionFarthestSeedsRatio_; }
442 set {
443 cheapestInsertionFarthestSeedsRatio_ = value;
444 }
445 }
446
448 public const int CheapestInsertionFirstSolutionNeighborsRatioFieldNumber = 21;
449 private double cheapestInsertionFirstSolutionNeighborsRatio_;
467 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
468 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
470 get { return cheapestInsertionFirstSolutionNeighborsRatio_; }
471 set {
472 cheapestInsertionFirstSolutionNeighborsRatio_ = value;
473 }
474 }
475
477 public const int CheapestInsertionFirstSolutionMinNeighborsFieldNumber = 44;
478 private int cheapestInsertionFirstSolutionMinNeighbors_;
479 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
480 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
482 get { return cheapestInsertionFirstSolutionMinNeighbors_; }
483 set {
484 cheapestInsertionFirstSolutionMinNeighbors_ = value;
485 }
486 }
487
489 public const int CheapestInsertionLsOperatorNeighborsRatioFieldNumber = 31;
490 private double cheapestInsertionLsOperatorNeighborsRatio_;
497 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
498 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
500 get { return cheapestInsertionLsOperatorNeighborsRatio_; }
501 set {
502 cheapestInsertionLsOperatorNeighborsRatio_ = value;
503 }
504 }
505
507 public const int CheapestInsertionLsOperatorMinNeighborsFieldNumber = 45;
508 private int cheapestInsertionLsOperatorMinNeighbors_;
509 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
510 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
512 get { return cheapestInsertionLsOperatorMinNeighbors_; }
513 set {
514 cheapestInsertionLsOperatorMinNeighbors_ = value;
515 }
516 }
517
519 public const int CheapestInsertionFirstSolutionUseNeighborsRatioForInitializationFieldNumber = 46;
520 private bool cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
525 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
526 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
528 get { return cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_; }
529 set {
530 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = value;
531 }
532 }
533
535 public const int CheapestInsertionAddUnperformedEntriesFieldNumber = 40;
536 private bool cheapestInsertionAddUnperformedEntries_;
541 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
542 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
544 get { return cheapestInsertionAddUnperformedEntries_; }
545 set {
546 cheapestInsertionAddUnperformedEntries_ = value;
547 }
548 }
549
551 public const int LocalCheapestInsertionPickupDeliveryStrategyFieldNumber = 49;
552 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy localCheapestInsertionPickupDeliveryStrategy_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic;
557 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
558 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
560 get { return localCheapestInsertionPickupDeliveryStrategy_; }
561 set {
562 localCheapestInsertionPickupDeliveryStrategy_ = value;
563 }
564 }
565
567 public const int LocalCheapestCostInsertionPickupDeliveryStrategyFieldNumber = 55;
568 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy localCheapestCostInsertionPickupDeliveryStrategy_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic;
573 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
574 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
576 get { return localCheapestCostInsertionPickupDeliveryStrategy_; }
577 set {
578 localCheapestCostInsertionPickupDeliveryStrategy_ = value;
579 }
580 }
581
583 public const int LocalCheapestInsertionSortingPropertiesFieldNumber = 67;
584 private static readonly pb::FieldCodec<global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.InsertionSortingProperty> _repeated_localCheapestInsertionSortingProperties_codec
585 = pb::FieldCodec.ForEnum(538, x => (int) x, x => (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.InsertionSortingProperty) x);
586 private readonly pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.InsertionSortingProperty> localCheapestInsertionSortingProperties_ = new pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.InsertionSortingProperty>();
595 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
596 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
597 public pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.InsertionSortingProperty> LocalCheapestInsertionSortingProperties {
598 get { return localCheapestInsertionSortingProperties_; }
599 }
603 private bool christofidesUseMinimumMatching_;
608 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
609 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
611 get { return christofidesUseMinimumMatching_; }
612 set {
613 christofidesUseMinimumMatching_ = value;
614 }
615 }
616
618 public const int FirstSolutionOptimizationPeriodFieldNumber = 59;
619 private int firstSolutionOptimizationPeriod_;
629 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
630 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
632 get { return firstSolutionOptimizationPeriod_; }
633 set {
634 firstSolutionOptimizationPeriod_ = value;
635 }
636 }
637
639 public const int LocalSearchOperatorsFieldNumber = 3;
640 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators localSearchOperators_;
641 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
642 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
644 get { return localSearchOperators_; }
645 set {
646 localSearchOperators_ = value;
647 }
648 }
649
651 public const int LsOperatorNeighborsRatioFieldNumber = 53;
652 private double lsOperatorNeighborsRatio_;
658 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
659 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
660 public double LsOperatorNeighborsRatio {
661 get { return lsOperatorNeighborsRatio_; }
662 set {
663 lsOperatorNeighborsRatio_ = value;
664 }
665 }
666
668 public const int LsOperatorMinNeighborsFieldNumber = 54;
669 private int lsOperatorMinNeighbors_;
670 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
671 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
672 public int LsOperatorMinNeighbors {
673 get { return lsOperatorMinNeighbors_; }
674 set {
675 lsOperatorMinNeighbors_ = value;
676 }
677 }
678
680 public const int UseMultiArmedBanditConcatenateOperatorsFieldNumber = 41;
681 private bool useMultiArmedBanditConcatenateOperators_;
687 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
688 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
690 get { return useMultiArmedBanditConcatenateOperators_; }
691 set {
692 useMultiArmedBanditConcatenateOperators_ = value;
693 }
694 }
695
697 public const int MultiArmedBanditCompoundOperatorMemoryCoefficientFieldNumber = 42;
698 private double multiArmedBanditCompoundOperatorMemoryCoefficient_;
705 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
706 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
708 get { return multiArmedBanditCompoundOperatorMemoryCoefficient_; }
709 set {
710 multiArmedBanditCompoundOperatorMemoryCoefficient_ = value;
711 }
712 }
713
715 public const int MultiArmedBanditCompoundOperatorExplorationCoefficientFieldNumber = 43;
716 private double multiArmedBanditCompoundOperatorExplorationCoefficient_;
722 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
723 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
725 get { return multiArmedBanditCompoundOperatorExplorationCoefficient_; }
726 set {
727 multiArmedBanditCompoundOperatorExplorationCoefficient_ = value;
728 }
729 }
730
732 public const int MaxSwapActiveChainSizeFieldNumber = 66;
733 private int maxSwapActiveChainSize_;
737 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
738 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
739 public int MaxSwapActiveChainSize {
740 get { return maxSwapActiveChainSize_; }
741 set {
742 maxSwapActiveChainSize_ = value;
743 }
744 }
745
747 public const int RelocateExpensiveChainNumArcsToConsiderFieldNumber = 20;
748 private int relocateExpensiveChainNumArcsToConsider_;
758 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
759 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
761 get { return relocateExpensiveChainNumArcsToConsider_; }
762 set {
763 relocateExpensiveChainNumArcsToConsider_ = value;
764 }
765 }
766
768 public const int HeuristicExpensiveChainLnsNumArcsToConsiderFieldNumber = 32;
769 private int heuristicExpensiveChainLnsNumArcsToConsider_;
774 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
775 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
777 get { return heuristicExpensiveChainLnsNumArcsToConsider_; }
778 set {
779 heuristicExpensiveChainLnsNumArcsToConsider_ = value;
780 }
781 }
782
784 public const int HeuristicCloseNodesLnsNumNodesFieldNumber = 35;
785 private int heuristicCloseNodesLnsNumNodes_;
790 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
791 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
793 get { return heuristicCloseNodesLnsNumNodes_; }
794 set {
795 heuristicCloseNodesLnsNumNodes_ = value;
796 }
797 }
798
800 public const int LocalSearchMetaheuristicFieldNumber = 4;
801 private global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value localSearchMetaheuristic_ = global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset;
805 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
806 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
808 get { return localSearchMetaheuristic_; }
809 set {
810 localSearchMetaheuristic_ = value;
811 }
812 }
813
815 public const int LocalSearchMetaheuristicsFieldNumber = 63;
816 private static readonly pb::FieldCodec<global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value> _repeated_localSearchMetaheuristics_codec
817 = pb::FieldCodec.ForEnum(506, x => (int) x, x => (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) x);
818 private readonly pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value> localSearchMetaheuristics_ = new pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value>();
825 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
826 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
827 public pbc::RepeatedField<global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value> LocalSearchMetaheuristics {
828 get { return localSearchMetaheuristics_; }
829 }
833 private int numMaxLocalOptimaBeforeMetaheuristicSwitch_;
834 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
835 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
837 get { return numMaxLocalOptimaBeforeMetaheuristicSwitch_; }
838 set {
839 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = value;
840 }
841 }
842
844 public const int GuidedLocalSearchLambdaCoefficientFieldNumber = 5;
845 private double guidedLocalSearchLambdaCoefficient_;
852 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
853 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
855 get { return guidedLocalSearchLambdaCoefficient_; }
856 set {
857 guidedLocalSearchLambdaCoefficient_ = value;
858 }
859 }
860
862 public const int GuidedLocalSearchResetPenaltiesOnNewBestSolutionFieldNumber = 51;
863 private bool guidedLocalSearchResetPenaltiesOnNewBestSolution_;
868 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
869 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
871 get { return guidedLocalSearchResetPenaltiesOnNewBestSolution_; }
872 set {
873 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = value;
874 }
875 }
876
878 public const int GuidedLocalSearchPenalizeWithVehicleClassesFieldNumber = 61;
879 private bool guidedLocalSearchPenalizeWithVehicleClasses_;
885 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
886 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
888 get { return guidedLocalSearchPenalizeWithVehicleClasses_; }
889 set {
890 guidedLocalSearchPenalizeWithVehicleClasses_ = value;
891 }
892 }
893
895 public const int UseGuidedLocalSearchPenaltiesInLocalSearchOperatorsFieldNumber = 62;
896 private bool useGuidedLocalSearchPenaltiesInLocalSearchOperators_;
901 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
902 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
904 get { return useGuidedLocalSearchPenaltiesInLocalSearchOperators_; }
905 set {
906 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = value;
907 }
908 }
909
911 public const int UseDepthFirstSearchFieldNumber = 6;
912 private bool useDepthFirstSearch_;
919 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
920 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
921 public bool UseDepthFirstSearch {
922 get { return useDepthFirstSearch_; }
923 set {
924 useDepthFirstSearch_ = value;
926 }
927
929 public const int UseCpFieldNumber = 28;
930 private global::Google.OrTools.Util.OptionalBoolean useCp_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
931
936 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
937 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
938 public global::Google.OrTools.Util.OptionalBoolean UseCp {
939 get { return useCp_; }
940 set {
941 useCp_ = value;
943 }
944
946 public const int UseCpSatFieldNumber = 27;
947 private global::Google.OrTools.Util.OptionalBoolean useCpSat_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
948
954 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
955 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
956 public global::Google.OrTools.Util.OptionalBoolean UseCpSat {
957 get { return useCpSat_; }
958 set {
959 useCpSat_ = value;
961 }
962
964 public const int UseGeneralizedCpSatFieldNumber = 47;
965 private global::Google.OrTools.Util.OptionalBoolean useGeneralizedCpSat_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
966
972 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
973 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
974 public global::Google.OrTools.Util.OptionalBoolean UseGeneralizedCpSat {
975 get { return useGeneralizedCpSat_; }
976 set {
977 useGeneralizedCpSat_ = value;
979 }
980
982 public const int SatParametersFieldNumber = 48;
983 private global::Google.OrTools.Sat.SatParameters satParameters_;
984
988 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
989 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
990 public global::Google.OrTools.Sat.SatParameters SatParameters {
991 get { return satParameters_; }
992 set {
993 satParameters_ = value;
995 }
996
998 public const int ReportIntermediateCpSatSolutionsFieldNumber = 56;
999 private bool reportIntermediateCpSatSolutions_;
1000
1004 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1005 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1007 get { return reportIntermediateCpSatSolutions_; }
1008 set {
1009 reportIntermediateCpSatSolutions_ = value;
1011 }
1012
1014 public const int FallbackToCpSatSizeThresholdFieldNumber = 52;
1015 private int fallbackToCpSatSizeThreshold_;
1016
1020 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1021 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1022 public int FallbackToCpSatSizeThreshold {
1023 get { return fallbackToCpSatSizeThreshold_; }
1024 set {
1025 fallbackToCpSatSizeThreshold_ = value;
1027 }
1028
1030 public const int ContinuousSchedulingSolverFieldNumber = 33;
1031 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver continuousSchedulingSolver_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset;
1032 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1033 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1035 get { return continuousSchedulingSolver_; }
1036 set {
1037 continuousSchedulingSolver_ = value;
1039 }
1040
1042 public const int MixedIntegerSchedulingSolverFieldNumber = 34;
1043 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver mixedIntegerSchedulingSolver_ = global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset;
1044 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1045 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1047 get { return mixedIntegerSchedulingSolver_; }
1048 set {
1049 mixedIntegerSchedulingSolver_ = value;
1051 }
1052
1054 public const int DisableSchedulingBewareThisMayDegradePerformanceFieldNumber = 50;
1055 private readonly static bool DisableSchedulingBewareThisMayDegradePerformanceDefaultValue = false;
1056
1057 private bool disableSchedulingBewareThisMayDegradePerformance_;
1062 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1063 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1065 get { if ((_hasBits0 & 1) != 0) { return disableSchedulingBewareThisMayDegradePerformance_; } else { return DisableSchedulingBewareThisMayDegradePerformanceDefaultValue; } }
1066 set {
1067 _hasBits0 |= 1;
1068 disableSchedulingBewareThisMayDegradePerformance_ = value;
1069 }
1070 }
1072 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1073 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1074 public bool HasDisableSchedulingBewareThisMayDegradePerformance {
1075 get { return (_hasBits0 & 1) != 0; }
1076 }
1078 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1079 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1081 _hasBits0 &= ~1;
1082 }
1083
1084 /// <summary>Field number for the "optimization_step" field.</summary>
1085 public const int OptimizationStepFieldNumber = 7;
1086 private double optimizationStep_;
1087
1092 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1093 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1094 public double OptimizationStep {
1095 get { return optimizationStep_; }
1096 set {
1097 optimizationStep_ = value;
1099 }
1100
1102 public const int NumberOfSolutionsToCollectFieldNumber = 17;
1103 private int numberOfSolutionsToCollect_;
1104
1108 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1109 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1110 public int NumberOfSolutionsToCollect {
1111 get { return numberOfSolutionsToCollect_; }
1112 set {
1113 numberOfSolutionsToCollect_ = value;
1115 }
1116
1118 public const int SolutionLimitFieldNumber = 8;
1119 private long solutionLimit_;
1120
1125 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1126 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1127 public long SolutionLimit {
1128 get { return solutionLimit_; }
1129 set {
1130 solutionLimit_ = value;
1132 }
1133
1135 public const int TimeLimitFieldNumber = 9;
1136 private global::Google.Protobuf.WellKnownTypes.Duration timeLimit_;
1137
1140 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1141 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1142 public global::Google.Protobuf.WellKnownTypes.Duration TimeLimit {
1143 get { return timeLimit_; }
1144 set {
1145 timeLimit_ = value;
1147 }
1148
1150 public const int LnsTimeLimitFieldNumber = 10;
1151 private global::Google.Protobuf.WellKnownTypes.Duration lnsTimeLimit_;
1152
1156 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1157 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1158 public global::Google.Protobuf.WellKnownTypes.Duration LnsTimeLimit {
1159 get { return lnsTimeLimit_; }
1160 set {
1161 lnsTimeLimit_ = value;
1163 }
1164
1166 public const int SecondaryLsTimeLimitRatioFieldNumber = 57;
1167 private double secondaryLsTimeLimitRatio_;
1168
1176 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1177 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1178 public double SecondaryLsTimeLimitRatio {
1179 get { return secondaryLsTimeLimitRatio_; }
1180 set {
1181 secondaryLsTimeLimitRatio_ = value;
1183 }
1184
1186 public const int ImprovementLimitParametersFieldNumber = 37;
1187 private global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters improvementLimitParameters_;
1188
1192 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1193 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1195 get { return improvementLimitParameters_; }
1196 set {
1197 improvementLimitParameters_ = value;
1199 }
1200
1202 public const int UseFullPropagationFieldNumber = 11;
1203 private bool useFullPropagation_;
1204
1216 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1217 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1218 public bool UseFullPropagation {
1219 get { return useFullPropagation_; }
1220 set {
1221 useFullPropagation_ = value;
1222 }
1224
1226 public const int LogSearchFieldNumber = 13;
1227 private bool logSearch_;
1229
1243 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1244 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1245 public bool LogSearch {
1246 get { return logSearch_; }
1247 set {
1248 logSearch_ = value;
1249 }
1250 }
1253 public const int LogCostScalingFactorFieldNumber = 22;
1254 private double logCostScalingFactor_;
1257
1259 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1260 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1261 public double LogCostScalingFactor {
1262 get { return logCostScalingFactor_; }
1263 set {
1264 logCostScalingFactor_ = value;
1265 }
1266 }
1269 public const int LogCostOffsetFieldNumber = 29;
1270 private double logCostOffset_;
1271 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1272 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1273 public double LogCostOffset {
1274 get { return logCostOffset_; }
1275 set {
1276 logCostOffset_ = value;
1277 }
1278 }
1281 public const int LogTagFieldNumber = 36;
1282 private string logTag_ = "";
1285
1287 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1288 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1289 public string LogTag {
1290 get { return logTag_; }
1291 set {
1292 logTag_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1293 }
1294 }
1297 public const int UseIteratedLocalSearchFieldNumber = 58;
1298 private bool useIteratedLocalSearch_;
1301
1303 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1304 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1305 public bool UseIteratedLocalSearch {
1306 get { return useIteratedLocalSearch_; }
1307 set {
1308 useIteratedLocalSearch_ = value;
1309 }
1310 }
1313 public const int IteratedLocalSearchParametersFieldNumber = 60;
1314 private global::Google.OrTools.ConstraintSolver.IteratedLocalSearchParameters iteratedLocalSearchParameters_;
1317
1318 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1319 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1321 get { return iteratedLocalSearchParameters_; }
1322 set {
1323 iteratedLocalSearchParameters_ = value;
1324 }
1325 }
1327 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1328 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1329 public override bool Equals(object other) {
1330 return Equals(other as RoutingSearchParameters);
1331 }
1332
1333 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1334 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1335 public bool Equals(RoutingSearchParameters other) {
1336 if (ReferenceEquals(other, null)) {
1337 return false;
1338 }
1339 if (ReferenceEquals(other, this)) {
1340 return true;
1342 if (FirstSolutionStrategy != other.FirstSolutionStrategy) return false;
1343 if (UseUnfilteredFirstSolutionStrategy != other.UseUnfilteredFirstSolutionStrategy) return false;
1344 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsNeighborsRatio, other.SavingsNeighborsRatio)) return false;
1345 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsMaxMemoryUsageBytes, other.SavingsMaxMemoryUsageBytes)) return false;
1346 if (SavingsAddReverseArcs != other.SavingsAddReverseArcs) return false;
1347 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SavingsArcCoefficient, other.SavingsArcCoefficient)) return false;
1348 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionFarthestSeedsRatio, other.CheapestInsertionFarthestSeedsRatio)) return false;
1349 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionFirstSolutionNeighborsRatio, other.CheapestInsertionFirstSolutionNeighborsRatio)) return false;
1350 if (CheapestInsertionFirstSolutionMinNeighbors != other.CheapestInsertionFirstSolutionMinNeighbors) return false;
1351 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CheapestInsertionLsOperatorNeighborsRatio, other.CheapestInsertionLsOperatorNeighborsRatio)) return false;
1352 if (CheapestInsertionLsOperatorMinNeighbors != other.CheapestInsertionLsOperatorMinNeighbors) return false;
1353 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != other.CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization) return false;
1354 if (CheapestInsertionAddUnperformedEntries != other.CheapestInsertionAddUnperformedEntries) return false;
1355 if (LocalCheapestInsertionPickupDeliveryStrategy != other.LocalCheapestInsertionPickupDeliveryStrategy) return false;
1356 if (LocalCheapestCostInsertionPickupDeliveryStrategy != other.LocalCheapestCostInsertionPickupDeliveryStrategy) return false;
1357 if(!localCheapestInsertionSortingProperties_.Equals(other.localCheapestInsertionSortingProperties_)) return false;
1358 if (ChristofidesUseMinimumMatching != other.ChristofidesUseMinimumMatching) return false;
1359 if (FirstSolutionOptimizationPeriod != other.FirstSolutionOptimizationPeriod) return false;
1360 if (!object.Equals(LocalSearchOperators, other.LocalSearchOperators)) return false;
1361 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LsOperatorNeighborsRatio, other.LsOperatorNeighborsRatio)) return false;
1362 if (LsOperatorMinNeighbors != other.LsOperatorMinNeighbors) return false;
1363 if (UseMultiArmedBanditConcatenateOperators != other.UseMultiArmedBanditConcatenateOperators) return false;
1364 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MultiArmedBanditCompoundOperatorMemoryCoefficient, other.MultiArmedBanditCompoundOperatorMemoryCoefficient)) return false;
1365 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MultiArmedBanditCompoundOperatorExplorationCoefficient, other.MultiArmedBanditCompoundOperatorExplorationCoefficient)) return false;
1366 if (MaxSwapActiveChainSize != other.MaxSwapActiveChainSize) return false;
1367 if (RelocateExpensiveChainNumArcsToConsider != other.RelocateExpensiveChainNumArcsToConsider) return false;
1368 if (HeuristicExpensiveChainLnsNumArcsToConsider != other.HeuristicExpensiveChainLnsNumArcsToConsider) return false;
1369 if (HeuristicCloseNodesLnsNumNodes != other.HeuristicCloseNodesLnsNumNodes) return false;
1370 if (LocalSearchMetaheuristic != other.LocalSearchMetaheuristic) return false;
1371 if(!localSearchMetaheuristics_.Equals(other.localSearchMetaheuristics_)) return false;
1372 if (NumMaxLocalOptimaBeforeMetaheuristicSwitch != other.NumMaxLocalOptimaBeforeMetaheuristicSwitch) return false;
1373 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(GuidedLocalSearchLambdaCoefficient, other.GuidedLocalSearchLambdaCoefficient)) return false;
1374 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != other.GuidedLocalSearchResetPenaltiesOnNewBestSolution) return false;
1375 if (GuidedLocalSearchPenalizeWithVehicleClasses != other.GuidedLocalSearchPenalizeWithVehicleClasses) return false;
1376 if (UseGuidedLocalSearchPenaltiesInLocalSearchOperators != other.UseGuidedLocalSearchPenaltiesInLocalSearchOperators) return false;
1377 if (UseDepthFirstSearch != other.UseDepthFirstSearch) return false;
1378 if (UseCp != other.UseCp) return false;
1379 if (UseCpSat != other.UseCpSat) return false;
1380 if (UseGeneralizedCpSat != other.UseGeneralizedCpSat) return false;
1381 if (!object.Equals(SatParameters, other.SatParameters)) return false;
1382 if (ReportIntermediateCpSatSolutions != other.ReportIntermediateCpSatSolutions) return false;
1383 if (FallbackToCpSatSizeThreshold != other.FallbackToCpSatSizeThreshold) return false;
1384 if (ContinuousSchedulingSolver != other.ContinuousSchedulingSolver) return false;
1385 if (MixedIntegerSchedulingSolver != other.MixedIntegerSchedulingSolver) return false;
1386 if (DisableSchedulingBewareThisMayDegradePerformance != other.DisableSchedulingBewareThisMayDegradePerformance) return false;
1387 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(OptimizationStep, other.OptimizationStep)) return false;
1388 if (NumberOfSolutionsToCollect != other.NumberOfSolutionsToCollect) return false;
1389 if (SolutionLimit != other.SolutionLimit) return false;
1390 if (!object.Equals(TimeLimit, other.TimeLimit)) return false;
1391 if (!object.Equals(LnsTimeLimit, other.LnsTimeLimit)) return false;
1392 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SecondaryLsTimeLimitRatio, other.SecondaryLsTimeLimitRatio)) return false;
1393 if (!object.Equals(ImprovementLimitParameters, other.ImprovementLimitParameters)) return false;
1394 if (UseFullPropagation != other.UseFullPropagation) return false;
1395 if (LogSearch != other.LogSearch) return false;
1396 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LogCostScalingFactor, other.LogCostScalingFactor)) return false;
1397 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LogCostOffset, other.LogCostOffset)) return false;
1398 if (LogTag != other.LogTag) return false;
1399 if (UseIteratedLocalSearch != other.UseIteratedLocalSearch) return false;
1400 if (!object.Equals(IteratedLocalSearchParameters, other.IteratedLocalSearchParameters)) return false;
1401 return Equals(_unknownFields, other._unknownFields);
1402 }
1403
1404 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1405 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1406 public override int GetHashCode() {
1407 int hash = 1;
1408 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) hash ^= FirstSolutionStrategy.GetHashCode();
1409 if (UseUnfilteredFirstSolutionStrategy != false) hash ^= UseUnfilteredFirstSolutionStrategy.GetHashCode();
1410 if (SavingsNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsNeighborsRatio);
1411 if (SavingsMaxMemoryUsageBytes != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsMaxMemoryUsageBytes);
1412 if (SavingsAddReverseArcs != false) hash ^= SavingsAddReverseArcs.GetHashCode();
1413 if (SavingsArcCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SavingsArcCoefficient);
1414 if (CheapestInsertionFarthestSeedsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionFarthestSeedsRatio);
1415 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionFirstSolutionNeighborsRatio);
1417 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CheapestInsertionLsOperatorNeighborsRatio);
1423 hash ^= localCheapestInsertionSortingProperties_.GetHashCode();
1424 if (ChristofidesUseMinimumMatching != false) hash ^= ChristofidesUseMinimumMatching.GetHashCode();
1426 if (localSearchOperators_ != null) hash ^= LocalSearchOperators.GetHashCode();
1427 if (LsOperatorNeighborsRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LsOperatorNeighborsRatio);
1428 if (LsOperatorMinNeighbors != 0) hash ^= LsOperatorMinNeighbors.GetHashCode();
1430 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1431 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1432 if (MaxSwapActiveChainSize != 0) hash ^= MaxSwapActiveChainSize.GetHashCode();
1435 if (HeuristicCloseNodesLnsNumNodes != 0) hash ^= HeuristicCloseNodesLnsNumNodes.GetHashCode();
1437 hash ^= localSearchMetaheuristics_.GetHashCode();
1439 if (GuidedLocalSearchLambdaCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(GuidedLocalSearchLambdaCoefficient);
1443 if (UseDepthFirstSearch != false) hash ^= UseDepthFirstSearch.GetHashCode();
1444 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCp.GetHashCode();
1445 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCpSat.GetHashCode();
1446 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGeneralizedCpSat.GetHashCode();
1447 if (satParameters_ != null) hash ^= SatParameters.GetHashCode();
1448 if (ReportIntermediateCpSatSolutions != false) hash ^= ReportIntermediateCpSatSolutions.GetHashCode();
1449 if (FallbackToCpSatSizeThreshold != 0) hash ^= FallbackToCpSatSizeThreshold.GetHashCode();
1453 if (OptimizationStep != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(OptimizationStep);
1454 if (NumberOfSolutionsToCollect != 0) hash ^= NumberOfSolutionsToCollect.GetHashCode();
1455 if (SolutionLimit != 0L) hash ^= SolutionLimit.GetHashCode();
1456 if (timeLimit_ != null) hash ^= TimeLimit.GetHashCode();
1457 if (lnsTimeLimit_ != null) hash ^= LnsTimeLimit.GetHashCode();
1458 if (SecondaryLsTimeLimitRatio != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SecondaryLsTimeLimitRatio);
1459 if (improvementLimitParameters_ != null) hash ^= ImprovementLimitParameters.GetHashCode();
1460 if (UseFullPropagation != false) hash ^= UseFullPropagation.GetHashCode();
1461 if (LogSearch != false) hash ^= LogSearch.GetHashCode();
1462 if (LogCostScalingFactor != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LogCostScalingFactor);
1463 if (LogCostOffset != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LogCostOffset);
1464 if (LogTag.Length != 0) hash ^= LogTag.GetHashCode();
1465 if (UseIteratedLocalSearch != false) hash ^= UseIteratedLocalSearch.GetHashCode();
1466 if (iteratedLocalSearchParameters_ != null) hash ^= IteratedLocalSearchParameters.GetHashCode();
1467 if (_unknownFields != null) {
1468 hash ^= _unknownFields.GetHashCode();
1469 }
1470 return hash;
1471 }
1472
1473 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1474 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1475 public override string ToString() {
1476 return pb::JsonFormatter.ToDiagnosticString(this);
1477 }
1478
1479 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1480 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1481 public void WriteTo(pb::CodedOutputStream output) {
1482 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1483 output.WriteRawMessage(this);
1484 #else
1486 output.WriteRawTag(8);
1487 output.WriteEnum((int) FirstSolutionStrategy);
1488 }
1489 if (UseUnfilteredFirstSolutionStrategy != false) {
1490 output.WriteRawTag(16);
1491 output.WriteBool(UseUnfilteredFirstSolutionStrategy);
1492 }
1493 if (localSearchOperators_ != null) {
1494 output.WriteRawTag(26);
1495 output.WriteMessage(LocalSearchOperators);
1496 }
1497 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1498 output.WriteRawTag(32);
1499 output.WriteEnum((int) LocalSearchMetaheuristic);
1500 }
1501 if (GuidedLocalSearchLambdaCoefficient != 0D) {
1502 output.WriteRawTag(41);
1503 output.WriteDouble(GuidedLocalSearchLambdaCoefficient);
1504 }
1505 if (UseDepthFirstSearch != false) {
1506 output.WriteRawTag(48);
1507 output.WriteBool(UseDepthFirstSearch);
1508 }
1509 if (OptimizationStep != 0D) {
1510 output.WriteRawTag(57);
1511 output.WriteDouble(OptimizationStep);
1512 }
1513 if (SolutionLimit != 0L) {
1514 output.WriteRawTag(64);
1515 output.WriteInt64(SolutionLimit);
1516 }
1517 if (timeLimit_ != null) {
1518 output.WriteRawTag(74);
1519 output.WriteMessage(TimeLimit);
1520 }
1521 if (lnsTimeLimit_ != null) {
1522 output.WriteRawTag(82);
1523 output.WriteMessage(LnsTimeLimit);
1524 }
1525 if (UseFullPropagation != false) {
1526 output.WriteRawTag(88);
1527 output.WriteBool(UseFullPropagation);
1528 }
1529 if (LogSearch != false) {
1530 output.WriteRawTag(104);
1531 output.WriteBool(LogSearch);
1532 }
1533 if (SavingsNeighborsRatio != 0D) {
1534 output.WriteRawTag(113);
1535 output.WriteDouble(SavingsNeighborsRatio);
1536 }
1537 if (SavingsAddReverseArcs != false) {
1538 output.WriteRawTag(120);
1539 output.WriteBool(SavingsAddReverseArcs);
1540 }
1541 if (CheapestInsertionFarthestSeedsRatio != 0D) {
1542 output.WriteRawTag(129, 1);
1543 output.WriteDouble(CheapestInsertionFarthestSeedsRatio);
1544 }
1545 if (NumberOfSolutionsToCollect != 0) {
1546 output.WriteRawTag(136, 1);
1547 output.WriteInt32(NumberOfSolutionsToCollect);
1548 }
1549 if (SavingsArcCoefficient != 0D) {
1550 output.WriteRawTag(145, 1);
1551 output.WriteDouble(SavingsArcCoefficient);
1552 }
1553 if (RelocateExpensiveChainNumArcsToConsider != 0) {
1554 output.WriteRawTag(160, 1);
1555 output.WriteInt32(RelocateExpensiveChainNumArcsToConsider);
1556 }
1557 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
1558 output.WriteRawTag(169, 1);
1559 output.WriteDouble(CheapestInsertionFirstSolutionNeighborsRatio);
1560 }
1561 if (LogCostScalingFactor != 0D) {
1562 output.WriteRawTag(177, 1);
1563 output.WriteDouble(LogCostScalingFactor);
1564 }
1565 if (SavingsMaxMemoryUsageBytes != 0D) {
1566 output.WriteRawTag(185, 1);
1567 output.WriteDouble(SavingsMaxMemoryUsageBytes);
1568 }
1569 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1570 output.WriteRawTag(216, 1);
1571 output.WriteEnum((int) UseCpSat);
1572 }
1573 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1574 output.WriteRawTag(224, 1);
1575 output.WriteEnum((int) UseCp);
1576 }
1577 if (LogCostOffset != 0D) {
1578 output.WriteRawTag(233, 1);
1579 output.WriteDouble(LogCostOffset);
1580 }
1581 if (ChristofidesUseMinimumMatching != false) {
1582 output.WriteRawTag(240, 1);
1583 output.WriteBool(ChristofidesUseMinimumMatching);
1584 }
1585 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
1586 output.WriteRawTag(249, 1);
1587 output.WriteDouble(CheapestInsertionLsOperatorNeighborsRatio);
1588 }
1589 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1590 output.WriteRawTag(128, 2);
1591 output.WriteInt32(HeuristicExpensiveChainLnsNumArcsToConsider);
1592 }
1593 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1594 output.WriteRawTag(136, 2);
1595 output.WriteEnum((int) ContinuousSchedulingSolver);
1596 }
1597 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1598 output.WriteRawTag(144, 2);
1599 output.WriteEnum((int) MixedIntegerSchedulingSolver);
1600 }
1601 if (HeuristicCloseNodesLnsNumNodes != 0) {
1602 output.WriteRawTag(152, 2);
1603 output.WriteInt32(HeuristicCloseNodesLnsNumNodes);
1604 }
1605 if (LogTag.Length != 0) {
1606 output.WriteRawTag(162, 2);
1607 output.WriteString(LogTag);
1608 }
1609 if (improvementLimitParameters_ != null) {
1610 output.WriteRawTag(170, 2);
1611 output.WriteMessage(ImprovementLimitParameters);
1612 }
1613 if (CheapestInsertionAddUnperformedEntries != false) {
1614 output.WriteRawTag(192, 2);
1615 output.WriteBool(CheapestInsertionAddUnperformedEntries);
1616 }
1617 if (UseMultiArmedBanditConcatenateOperators != false) {
1618 output.WriteRawTag(200, 2);
1619 output.WriteBool(UseMultiArmedBanditConcatenateOperators);
1620 }
1621 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1622 output.WriteRawTag(209, 2);
1623 output.WriteDouble(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1624 }
1625 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1626 output.WriteRawTag(217, 2);
1627 output.WriteDouble(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1628 }
1629 if (CheapestInsertionFirstSolutionMinNeighbors != 0) {
1630 output.WriteRawTag(224, 2);
1631 output.WriteInt32(CheapestInsertionFirstSolutionMinNeighbors);
1632 }
1633 if (CheapestInsertionLsOperatorMinNeighbors != 0) {
1634 output.WriteRawTag(232, 2);
1635 output.WriteInt32(CheapestInsertionLsOperatorMinNeighbors);
1636 }
1637 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
1638 output.WriteRawTag(240, 2);
1639 output.WriteBool(CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization);
1640 }
1641 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1642 output.WriteRawTag(248, 2);
1643 output.WriteEnum((int) UseGeneralizedCpSat);
1644 }
1645 if (satParameters_ != null) {
1646 output.WriteRawTag(130, 3);
1647 output.WriteMessage(SatParameters);
1648 }
1649 if (LocalCheapestInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1650 output.WriteRawTag(136, 3);
1651 output.WriteEnum((int) LocalCheapestInsertionPickupDeliveryStrategy);
1652 }
1653 if (HasDisableSchedulingBewareThisMayDegradePerformance) {
1654 output.WriteRawTag(144, 3);
1655 output.WriteBool(DisableSchedulingBewareThisMayDegradePerformance);
1656 }
1657 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
1658 output.WriteRawTag(152, 3);
1659 output.WriteBool(GuidedLocalSearchResetPenaltiesOnNewBestSolution);
1660 }
1661 if (FallbackToCpSatSizeThreshold != 0) {
1662 output.WriteRawTag(160, 3);
1663 output.WriteInt32(FallbackToCpSatSizeThreshold);
1664 }
1665 if (LsOperatorNeighborsRatio != 0D) {
1666 output.WriteRawTag(169, 3);
1667 output.WriteDouble(LsOperatorNeighborsRatio);
1668 }
1669 if (LsOperatorMinNeighbors != 0) {
1670 output.WriteRawTag(176, 3);
1671 output.WriteInt32(LsOperatorMinNeighbors);
1672 }
1673 if (LocalCheapestCostInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1674 output.WriteRawTag(184, 3);
1675 output.WriteEnum((int) LocalCheapestCostInsertionPickupDeliveryStrategy);
1676 }
1677 if (ReportIntermediateCpSatSolutions != false) {
1678 output.WriteRawTag(192, 3);
1679 output.WriteBool(ReportIntermediateCpSatSolutions);
1680 }
1681 if (SecondaryLsTimeLimitRatio != 0D) {
1682 output.WriteRawTag(201, 3);
1683 output.WriteDouble(SecondaryLsTimeLimitRatio);
1684 }
1685 if (UseIteratedLocalSearch != false) {
1686 output.WriteRawTag(208, 3);
1687 output.WriteBool(UseIteratedLocalSearch);
1688 }
1689 if (FirstSolutionOptimizationPeriod != 0) {
1690 output.WriteRawTag(216, 3);
1691 output.WriteInt32(FirstSolutionOptimizationPeriod);
1692 }
1693 if (iteratedLocalSearchParameters_ != null) {
1694 output.WriteRawTag(226, 3);
1695 output.WriteMessage(IteratedLocalSearchParameters);
1696 }
1697 if (GuidedLocalSearchPenalizeWithVehicleClasses != false) {
1698 output.WriteRawTag(232, 3);
1699 output.WriteBool(GuidedLocalSearchPenalizeWithVehicleClasses);
1700 }
1701 if (UseGuidedLocalSearchPenaltiesInLocalSearchOperators != false) {
1702 output.WriteRawTag(240, 3);
1703 output.WriteBool(UseGuidedLocalSearchPenaltiesInLocalSearchOperators);
1704 }
1705 localSearchMetaheuristics_.WriteTo(output, _repeated_localSearchMetaheuristics_codec);
1706 if (NumMaxLocalOptimaBeforeMetaheuristicSwitch != 0) {
1707 output.WriteRawTag(128, 4);
1708 output.WriteInt32(NumMaxLocalOptimaBeforeMetaheuristicSwitch);
1709 }
1710 if (MaxSwapActiveChainSize != 0) {
1711 output.WriteRawTag(144, 4);
1712 output.WriteInt32(MaxSwapActiveChainSize);
1713 }
1714 localCheapestInsertionSortingProperties_.WriteTo(output, _repeated_localCheapestInsertionSortingProperties_codec);
1715 if (_unknownFields != null) {
1716 _unknownFields.WriteTo(output);
1717 }
1718 #endif
1719 }
1720
1721 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1722 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1723 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1724 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
1725 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1726 output.WriteRawTag(8);
1727 output.WriteEnum((int) FirstSolutionStrategy);
1728 }
1729 if (UseUnfilteredFirstSolutionStrategy != false) {
1730 output.WriteRawTag(16);
1731 output.WriteBool(UseUnfilteredFirstSolutionStrategy);
1732 }
1733 if (localSearchOperators_ != null) {
1734 output.WriteRawTag(26);
1735 output.WriteMessage(LocalSearchOperators);
1736 }
1737 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
1738 output.WriteRawTag(32);
1739 output.WriteEnum((int) LocalSearchMetaheuristic);
1740 }
1741 if (GuidedLocalSearchLambdaCoefficient != 0D) {
1742 output.WriteRawTag(41);
1743 output.WriteDouble(GuidedLocalSearchLambdaCoefficient);
1744 }
1745 if (UseDepthFirstSearch != false) {
1746 output.WriteRawTag(48);
1747 output.WriteBool(UseDepthFirstSearch);
1748 }
1749 if (OptimizationStep != 0D) {
1750 output.WriteRawTag(57);
1751 output.WriteDouble(OptimizationStep);
1752 }
1753 if (SolutionLimit != 0L) {
1754 output.WriteRawTag(64);
1755 output.WriteInt64(SolutionLimit);
1756 }
1757 if (timeLimit_ != null) {
1758 output.WriteRawTag(74);
1759 output.WriteMessage(TimeLimit);
1760 }
1761 if (lnsTimeLimit_ != null) {
1762 output.WriteRawTag(82);
1763 output.WriteMessage(LnsTimeLimit);
1764 }
1765 if (UseFullPropagation != false) {
1766 output.WriteRawTag(88);
1767 output.WriteBool(UseFullPropagation);
1768 }
1769 if (LogSearch != false) {
1770 output.WriteRawTag(104);
1771 output.WriteBool(LogSearch);
1772 }
1773 if (SavingsNeighborsRatio != 0D) {
1774 output.WriteRawTag(113);
1775 output.WriteDouble(SavingsNeighborsRatio);
1776 }
1777 if (SavingsAddReverseArcs != false) {
1778 output.WriteRawTag(120);
1779 output.WriteBool(SavingsAddReverseArcs);
1780 }
1781 if (CheapestInsertionFarthestSeedsRatio != 0D) {
1782 output.WriteRawTag(129, 1);
1783 output.WriteDouble(CheapestInsertionFarthestSeedsRatio);
1784 }
1785 if (NumberOfSolutionsToCollect != 0) {
1786 output.WriteRawTag(136, 1);
1787 output.WriteInt32(NumberOfSolutionsToCollect);
1788 }
1789 if (SavingsArcCoefficient != 0D) {
1790 output.WriteRawTag(145, 1);
1791 output.WriteDouble(SavingsArcCoefficient);
1792 }
1793 if (RelocateExpensiveChainNumArcsToConsider != 0) {
1794 output.WriteRawTag(160, 1);
1795 output.WriteInt32(RelocateExpensiveChainNumArcsToConsider);
1796 }
1797 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
1798 output.WriteRawTag(169, 1);
1799 output.WriteDouble(CheapestInsertionFirstSolutionNeighborsRatio);
1800 }
1801 if (LogCostScalingFactor != 0D) {
1802 output.WriteRawTag(177, 1);
1803 output.WriteDouble(LogCostScalingFactor);
1804 }
1805 if (SavingsMaxMemoryUsageBytes != 0D) {
1806 output.WriteRawTag(185, 1);
1807 output.WriteDouble(SavingsMaxMemoryUsageBytes);
1808 }
1809 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1810 output.WriteRawTag(216, 1);
1811 output.WriteEnum((int) UseCpSat);
1812 }
1813 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1814 output.WriteRawTag(224, 1);
1815 output.WriteEnum((int) UseCp);
1816 }
1817 if (LogCostOffset != 0D) {
1818 output.WriteRawTag(233, 1);
1819 output.WriteDouble(LogCostOffset);
1820 }
1821 if (ChristofidesUseMinimumMatching != false) {
1822 output.WriteRawTag(240, 1);
1823 output.WriteBool(ChristofidesUseMinimumMatching);
1824 }
1825 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
1826 output.WriteRawTag(249, 1);
1827 output.WriteDouble(CheapestInsertionLsOperatorNeighborsRatio);
1828 }
1829 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
1830 output.WriteRawTag(128, 2);
1831 output.WriteInt32(HeuristicExpensiveChainLnsNumArcsToConsider);
1832 }
1833 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1834 output.WriteRawTag(136, 2);
1835 output.WriteEnum((int) ContinuousSchedulingSolver);
1836 }
1837 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
1838 output.WriteRawTag(144, 2);
1839 output.WriteEnum((int) MixedIntegerSchedulingSolver);
1840 }
1841 if (HeuristicCloseNodesLnsNumNodes != 0) {
1842 output.WriteRawTag(152, 2);
1843 output.WriteInt32(HeuristicCloseNodesLnsNumNodes);
1844 }
1845 if (LogTag.Length != 0) {
1846 output.WriteRawTag(162, 2);
1847 output.WriteString(LogTag);
1848 }
1849 if (improvementLimitParameters_ != null) {
1850 output.WriteRawTag(170, 2);
1851 output.WriteMessage(ImprovementLimitParameters);
1852 }
1853 if (CheapestInsertionAddUnperformedEntries != false) {
1854 output.WriteRawTag(192, 2);
1855 output.WriteBool(CheapestInsertionAddUnperformedEntries);
1856 }
1857 if (UseMultiArmedBanditConcatenateOperators != false) {
1858 output.WriteRawTag(200, 2);
1859 output.WriteBool(UseMultiArmedBanditConcatenateOperators);
1860 }
1861 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
1862 output.WriteRawTag(209, 2);
1863 output.WriteDouble(MultiArmedBanditCompoundOperatorMemoryCoefficient);
1864 }
1865 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
1866 output.WriteRawTag(217, 2);
1867 output.WriteDouble(MultiArmedBanditCompoundOperatorExplorationCoefficient);
1868 }
1869 if (CheapestInsertionFirstSolutionMinNeighbors != 0) {
1870 output.WriteRawTag(224, 2);
1871 output.WriteInt32(CheapestInsertionFirstSolutionMinNeighbors);
1872 }
1873 if (CheapestInsertionLsOperatorMinNeighbors != 0) {
1874 output.WriteRawTag(232, 2);
1875 output.WriteInt32(CheapestInsertionLsOperatorMinNeighbors);
1876 }
1877 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
1878 output.WriteRawTag(240, 2);
1879 output.WriteBool(CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization);
1880 }
1881 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
1882 output.WriteRawTag(248, 2);
1883 output.WriteEnum((int) UseGeneralizedCpSat);
1884 }
1885 if (satParameters_ != null) {
1886 output.WriteRawTag(130, 3);
1887 output.WriteMessage(SatParameters);
1888 }
1889 if (LocalCheapestInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1890 output.WriteRawTag(136, 3);
1891 output.WriteEnum((int) LocalCheapestInsertionPickupDeliveryStrategy);
1892 }
1893 if (HasDisableSchedulingBewareThisMayDegradePerformance) {
1894 output.WriteRawTag(144, 3);
1895 output.WriteBool(DisableSchedulingBewareThisMayDegradePerformance);
1896 }
1897 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
1898 output.WriteRawTag(152, 3);
1899 output.WriteBool(GuidedLocalSearchResetPenaltiesOnNewBestSolution);
1900 }
1901 if (FallbackToCpSatSizeThreshold != 0) {
1902 output.WriteRawTag(160, 3);
1903 output.WriteInt32(FallbackToCpSatSizeThreshold);
1904 }
1905 if (LsOperatorNeighborsRatio != 0D) {
1906 output.WriteRawTag(169, 3);
1907 output.WriteDouble(LsOperatorNeighborsRatio);
1908 }
1909 if (LsOperatorMinNeighbors != 0) {
1910 output.WriteRawTag(176, 3);
1911 output.WriteInt32(LsOperatorMinNeighbors);
1912 }
1913 if (LocalCheapestCostInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
1914 output.WriteRawTag(184, 3);
1915 output.WriteEnum((int) LocalCheapestCostInsertionPickupDeliveryStrategy);
1916 }
1917 if (ReportIntermediateCpSatSolutions != false) {
1918 output.WriteRawTag(192, 3);
1919 output.WriteBool(ReportIntermediateCpSatSolutions);
1920 }
1921 if (SecondaryLsTimeLimitRatio != 0D) {
1922 output.WriteRawTag(201, 3);
1923 output.WriteDouble(SecondaryLsTimeLimitRatio);
1924 }
1925 if (UseIteratedLocalSearch != false) {
1926 output.WriteRawTag(208, 3);
1927 output.WriteBool(UseIteratedLocalSearch);
1928 }
1929 if (FirstSolutionOptimizationPeriod != 0) {
1930 output.WriteRawTag(216, 3);
1931 output.WriteInt32(FirstSolutionOptimizationPeriod);
1932 }
1933 if (iteratedLocalSearchParameters_ != null) {
1934 output.WriteRawTag(226, 3);
1935 output.WriteMessage(IteratedLocalSearchParameters);
1936 }
1937 if (GuidedLocalSearchPenalizeWithVehicleClasses != false) {
1938 output.WriteRawTag(232, 3);
1939 output.WriteBool(GuidedLocalSearchPenalizeWithVehicleClasses);
1940 }
1941 if (UseGuidedLocalSearchPenaltiesInLocalSearchOperators != false) {
1942 output.WriteRawTag(240, 3);
1943 output.WriteBool(UseGuidedLocalSearchPenaltiesInLocalSearchOperators);
1944 }
1945 localSearchMetaheuristics_.WriteTo(ref output, _repeated_localSearchMetaheuristics_codec);
1946 if (NumMaxLocalOptimaBeforeMetaheuristicSwitch != 0) {
1947 output.WriteRawTag(128, 4);
1948 output.WriteInt32(NumMaxLocalOptimaBeforeMetaheuristicSwitch);
1949 }
1950 if (MaxSwapActiveChainSize != 0) {
1951 output.WriteRawTag(144, 4);
1952 output.WriteInt32(MaxSwapActiveChainSize);
1953 }
1954 localCheapestInsertionSortingProperties_.WriteTo(ref output, _repeated_localCheapestInsertionSortingProperties_codec);
1955 if (_unknownFields != null) {
1956 _unknownFields.WriteTo(ref output);
1957 }
1958 }
1959 #endif
1960
1961 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1962 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1963 public int CalculateSize() {
1964 int size = 0;
1965 if (FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
1966 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) FirstSolutionStrategy);
1967 }
1968 if (UseUnfilteredFirstSolutionStrategy != false) {
1969 size += 1 + 1;
1970 }
1971 if (SavingsNeighborsRatio != 0D) {
1972 size += 1 + 8;
1973 }
1974 if (SavingsMaxMemoryUsageBytes != 0D) {
1975 size += 2 + 8;
1976 }
1977 if (SavingsAddReverseArcs != false) {
1978 size += 1 + 1;
1979 }
1980 if (SavingsArcCoefficient != 0D) {
1981 size += 2 + 8;
1982 }
1983 if (CheapestInsertionFarthestSeedsRatio != 0D) {
1984 size += 2 + 8;
1985 }
1986 if (CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
1987 size += 2 + 8;
1988 }
1989 if (CheapestInsertionFirstSolutionMinNeighbors != 0) {
1990 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CheapestInsertionFirstSolutionMinNeighbors);
1991 }
1992 if (CheapestInsertionLsOperatorNeighborsRatio != 0D) {
1993 size += 2 + 8;
1994 }
1995 if (CheapestInsertionLsOperatorMinNeighbors != 0) {
1996 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CheapestInsertionLsOperatorMinNeighbors);
1997 }
1998 if (CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
1999 size += 2 + 1;
2000 }
2001 if (CheapestInsertionAddUnperformedEntries != false) {
2002 size += 2 + 1;
2003 }
2004 if (LocalCheapestInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
2005 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) LocalCheapestInsertionPickupDeliveryStrategy);
2006 }
2007 if (LocalCheapestCostInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
2008 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) LocalCheapestCostInsertionPickupDeliveryStrategy);
2009 }
2010 size += localCheapestInsertionSortingProperties_.CalculateSize(_repeated_localCheapestInsertionSortingProperties_codec);
2011 if (ChristofidesUseMinimumMatching != false) {
2012 size += 2 + 1;
2013 }
2014 if (FirstSolutionOptimizationPeriod != 0) {
2015 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FirstSolutionOptimizationPeriod);
2016 }
2017 if (localSearchOperators_ != null) {
2018 size += 1 + pb::CodedOutputStream.ComputeMessageSize(LocalSearchOperators);
2019 }
2020 if (LsOperatorNeighborsRatio != 0D) {
2021 size += 2 + 8;
2022 }
2023 if (LsOperatorMinNeighbors != 0) {
2024 size += 2 + pb::CodedOutputStream.ComputeInt32Size(LsOperatorMinNeighbors);
2025 }
2026 if (UseMultiArmedBanditConcatenateOperators != false) {
2027 size += 2 + 1;
2028 }
2029 if (MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
2030 size += 2 + 8;
2031 }
2032 if (MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
2033 size += 2 + 8;
2034 }
2035 if (MaxSwapActiveChainSize != 0) {
2036 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxSwapActiveChainSize);
2037 }
2038 if (RelocateExpensiveChainNumArcsToConsider != 0) {
2039 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RelocateExpensiveChainNumArcsToConsider);
2040 }
2041 if (HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
2042 size += 2 + pb::CodedOutputStream.ComputeInt32Size(HeuristicExpensiveChainLnsNumArcsToConsider);
2043 }
2044 if (HeuristicCloseNodesLnsNumNodes != 0) {
2045 size += 2 + pb::CodedOutputStream.ComputeInt32Size(HeuristicCloseNodesLnsNumNodes);
2046 }
2047 if (LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
2048 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LocalSearchMetaheuristic);
2049 }
2050 size += localSearchMetaheuristics_.CalculateSize(_repeated_localSearchMetaheuristics_codec);
2051 if (NumMaxLocalOptimaBeforeMetaheuristicSwitch != 0) {
2052 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumMaxLocalOptimaBeforeMetaheuristicSwitch);
2053 }
2054 if (GuidedLocalSearchLambdaCoefficient != 0D) {
2055 size += 1 + 8;
2056 }
2057 if (GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
2058 size += 2 + 1;
2059 }
2060 if (GuidedLocalSearchPenalizeWithVehicleClasses != false) {
2061 size += 2 + 1;
2062 }
2063 if (UseGuidedLocalSearchPenaltiesInLocalSearchOperators != false) {
2064 size += 2 + 1;
2065 }
2066 if (UseDepthFirstSearch != false) {
2067 size += 1 + 1;
2068 }
2069 if (UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2070 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseCp);
2071 }
2072 if (UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2073 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseCpSat);
2074 }
2075 if (UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2076 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGeneralizedCpSat);
2077 }
2078 if (satParameters_ != null) {
2079 size += 2 + pb::CodedOutputStream.ComputeMessageSize(SatParameters);
2080 }
2081 if (ReportIntermediateCpSatSolutions != false) {
2082 size += 2 + 1;
2083 }
2084 if (FallbackToCpSatSizeThreshold != 0) {
2085 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FallbackToCpSatSizeThreshold);
2086 }
2087 if (ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
2088 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ContinuousSchedulingSolver);
2089 }
2090 if (MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
2091 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) MixedIntegerSchedulingSolver);
2092 }
2093 if (HasDisableSchedulingBewareThisMayDegradePerformance) {
2094 size += 2 + 1;
2095 }
2096 if (OptimizationStep != 0D) {
2097 size += 1 + 8;
2098 }
2099 if (NumberOfSolutionsToCollect != 0) {
2100 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumberOfSolutionsToCollect);
2101 }
2102 if (SolutionLimit != 0L) {
2103 size += 1 + pb::CodedOutputStream.ComputeInt64Size(SolutionLimit);
2104 }
2105 if (timeLimit_ != null) {
2106 size += 1 + pb::CodedOutputStream.ComputeMessageSize(TimeLimit);
2107 }
2108 if (lnsTimeLimit_ != null) {
2109 size += 1 + pb::CodedOutputStream.ComputeMessageSize(LnsTimeLimit);
2110 }
2111 if (SecondaryLsTimeLimitRatio != 0D) {
2112 size += 2 + 8;
2113 }
2114 if (improvementLimitParameters_ != null) {
2115 size += 2 + pb::CodedOutputStream.ComputeMessageSize(ImprovementLimitParameters);
2116 }
2117 if (UseFullPropagation != false) {
2118 size += 1 + 1;
2119 }
2120 if (LogSearch != false) {
2121 size += 1 + 1;
2122 }
2123 if (LogCostScalingFactor != 0D) {
2124 size += 2 + 8;
2125 }
2126 if (LogCostOffset != 0D) {
2127 size += 2 + 8;
2128 }
2129 if (LogTag.Length != 0) {
2130 size += 2 + pb::CodedOutputStream.ComputeStringSize(LogTag);
2131 }
2132 if (UseIteratedLocalSearch != false) {
2133 size += 2 + 1;
2134 }
2135 if (iteratedLocalSearchParameters_ != null) {
2136 size += 2 + pb::CodedOutputStream.ComputeMessageSize(IteratedLocalSearchParameters);
2137 }
2138 if (_unknownFields != null) {
2139 size += _unknownFields.CalculateSize();
2140 }
2141 return size;
2142 }
2143
2144 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2145 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2146 public void MergeFrom(RoutingSearchParameters other) {
2147 if (other == null) {
2148 return;
2149 }
2150 if (other.FirstSolutionStrategy != global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value.Unset) {
2151 FirstSolutionStrategy = other.FirstSolutionStrategy;
2153 if (other.UseUnfilteredFirstSolutionStrategy != false) {
2154 UseUnfilteredFirstSolutionStrategy = other.UseUnfilteredFirstSolutionStrategy;
2155 }
2156 if (other.SavingsNeighborsRatio != 0D) {
2157 SavingsNeighborsRatio = other.SavingsNeighborsRatio;
2158 }
2159 if (other.SavingsMaxMemoryUsageBytes != 0D) {
2160 SavingsMaxMemoryUsageBytes = other.SavingsMaxMemoryUsageBytes;
2161 }
2162 if (other.SavingsAddReverseArcs != false) {
2163 SavingsAddReverseArcs = other.SavingsAddReverseArcs;
2164 }
2165 if (other.SavingsArcCoefficient != 0D) {
2166 SavingsArcCoefficient = other.SavingsArcCoefficient;
2167 }
2168 if (other.CheapestInsertionFarthestSeedsRatio != 0D) {
2169 CheapestInsertionFarthestSeedsRatio = other.CheapestInsertionFarthestSeedsRatio;
2170 }
2171 if (other.CheapestInsertionFirstSolutionNeighborsRatio != 0D) {
2172 CheapestInsertionFirstSolutionNeighborsRatio = other.CheapestInsertionFirstSolutionNeighborsRatio;
2173 }
2174 if (other.CheapestInsertionFirstSolutionMinNeighbors != 0) {
2175 CheapestInsertionFirstSolutionMinNeighbors = other.CheapestInsertionFirstSolutionMinNeighbors;
2176 }
2177 if (other.CheapestInsertionLsOperatorNeighborsRatio != 0D) {
2178 CheapestInsertionLsOperatorNeighborsRatio = other.CheapestInsertionLsOperatorNeighborsRatio;
2179 }
2180 if (other.CheapestInsertionLsOperatorMinNeighbors != 0) {
2181 CheapestInsertionLsOperatorMinNeighbors = other.CheapestInsertionLsOperatorMinNeighbors;
2182 }
2183 if (other.CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization != false) {
2184 CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization = other.CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization;
2185 }
2186 if (other.CheapestInsertionAddUnperformedEntries != false) {
2187 CheapestInsertionAddUnperformedEntries = other.CheapestInsertionAddUnperformedEntries;
2188 }
2189 if (other.LocalCheapestInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
2190 LocalCheapestInsertionPickupDeliveryStrategy = other.LocalCheapestInsertionPickupDeliveryStrategy;
2191 }
2192 if (other.LocalCheapestCostInsertionPickupDeliveryStrategy != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy.Automatic) {
2193 LocalCheapestCostInsertionPickupDeliveryStrategy = other.LocalCheapestCostInsertionPickupDeliveryStrategy;
2194 }
2195 localCheapestInsertionSortingProperties_.Add(other.localCheapestInsertionSortingProperties_);
2196 if (other.ChristofidesUseMinimumMatching != false) {
2197 ChristofidesUseMinimumMatching = other.ChristofidesUseMinimumMatching;
2198 }
2199 if (other.FirstSolutionOptimizationPeriod != 0) {
2200 FirstSolutionOptimizationPeriod = other.FirstSolutionOptimizationPeriod;
2201 }
2202 if (other.localSearchOperators_ != null) {
2203 if (localSearchOperators_ == null) {
2204 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
2205 }
2206 LocalSearchOperators.MergeFrom(other.LocalSearchOperators);
2207 }
2208 if (other.LsOperatorNeighborsRatio != 0D) {
2209 LsOperatorNeighborsRatio = other.LsOperatorNeighborsRatio;
2210 }
2211 if (other.LsOperatorMinNeighbors != 0) {
2212 LsOperatorMinNeighbors = other.LsOperatorMinNeighbors;
2213 }
2214 if (other.UseMultiArmedBanditConcatenateOperators != false) {
2215 UseMultiArmedBanditConcatenateOperators = other.UseMultiArmedBanditConcatenateOperators;
2216 }
2217 if (other.MultiArmedBanditCompoundOperatorMemoryCoefficient != 0D) {
2218 MultiArmedBanditCompoundOperatorMemoryCoefficient = other.MultiArmedBanditCompoundOperatorMemoryCoefficient;
2219 }
2220 if (other.MultiArmedBanditCompoundOperatorExplorationCoefficient != 0D) {
2221 MultiArmedBanditCompoundOperatorExplorationCoefficient = other.MultiArmedBanditCompoundOperatorExplorationCoefficient;
2222 }
2223 if (other.MaxSwapActiveChainSize != 0) {
2224 MaxSwapActiveChainSize = other.MaxSwapActiveChainSize;
2225 }
2226 if (other.RelocateExpensiveChainNumArcsToConsider != 0) {
2227 RelocateExpensiveChainNumArcsToConsider = other.RelocateExpensiveChainNumArcsToConsider;
2228 }
2229 if (other.HeuristicExpensiveChainLnsNumArcsToConsider != 0) {
2230 HeuristicExpensiveChainLnsNumArcsToConsider = other.HeuristicExpensiveChainLnsNumArcsToConsider;
2231 }
2232 if (other.HeuristicCloseNodesLnsNumNodes != 0) {
2233 HeuristicCloseNodesLnsNumNodes = other.HeuristicCloseNodesLnsNumNodes;
2234 }
2235 if (other.LocalSearchMetaheuristic != global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value.Unset) {
2236 LocalSearchMetaheuristic = other.LocalSearchMetaheuristic;
2237 }
2238 localSearchMetaheuristics_.Add(other.localSearchMetaheuristics_);
2239 if (other.NumMaxLocalOptimaBeforeMetaheuristicSwitch != 0) {
2240 NumMaxLocalOptimaBeforeMetaheuristicSwitch = other.NumMaxLocalOptimaBeforeMetaheuristicSwitch;
2241 }
2242 if (other.GuidedLocalSearchLambdaCoefficient != 0D) {
2243 GuidedLocalSearchLambdaCoefficient = other.GuidedLocalSearchLambdaCoefficient;
2244 }
2245 if (other.GuidedLocalSearchResetPenaltiesOnNewBestSolution != false) {
2246 GuidedLocalSearchResetPenaltiesOnNewBestSolution = other.GuidedLocalSearchResetPenaltiesOnNewBestSolution;
2247 }
2248 if (other.GuidedLocalSearchPenalizeWithVehicleClasses != false) {
2249 GuidedLocalSearchPenalizeWithVehicleClasses = other.GuidedLocalSearchPenalizeWithVehicleClasses;
2250 }
2251 if (other.UseGuidedLocalSearchPenaltiesInLocalSearchOperators != false) {
2252 UseGuidedLocalSearchPenaltiesInLocalSearchOperators = other.UseGuidedLocalSearchPenaltiesInLocalSearchOperators;
2253 }
2254 if (other.UseDepthFirstSearch != false) {
2255 UseDepthFirstSearch = other.UseDepthFirstSearch;
2256 }
2257 if (other.UseCp != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2258 UseCp = other.UseCp;
2259 }
2260 if (other.UseCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2261 UseCpSat = other.UseCpSat;
2262 }
2263 if (other.UseGeneralizedCpSat != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
2264 UseGeneralizedCpSat = other.UseGeneralizedCpSat;
2265 }
2266 if (other.satParameters_ != null) {
2267 if (satParameters_ == null) {
2268 SatParameters = new global::Google.OrTools.Sat.SatParameters();
2269 }
2270 SatParameters.MergeFrom(other.SatParameters);
2271 }
2272 if (other.ReportIntermediateCpSatSolutions != false) {
2273 ReportIntermediateCpSatSolutions = other.ReportIntermediateCpSatSolutions;
2274 }
2275 if (other.FallbackToCpSatSizeThreshold != 0) {
2276 FallbackToCpSatSizeThreshold = other.FallbackToCpSatSizeThreshold;
2277 }
2278 if (other.ContinuousSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
2279 ContinuousSchedulingSolver = other.ContinuousSchedulingSolver;
2280 }
2281 if (other.MixedIntegerSchedulingSolver != global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver.SchedulingUnset) {
2282 MixedIntegerSchedulingSolver = other.MixedIntegerSchedulingSolver;
2283 }
2284 if (other.HasDisableSchedulingBewareThisMayDegradePerformance) {
2285 DisableSchedulingBewareThisMayDegradePerformance = other.DisableSchedulingBewareThisMayDegradePerformance;
2286 }
2287 if (other.OptimizationStep != 0D) {
2288 OptimizationStep = other.OptimizationStep;
2289 }
2290 if (other.NumberOfSolutionsToCollect != 0) {
2291 NumberOfSolutionsToCollect = other.NumberOfSolutionsToCollect;
2292 }
2293 if (other.SolutionLimit != 0L) {
2294 SolutionLimit = other.SolutionLimit;
2295 }
2296 if (other.timeLimit_ != null) {
2297 if (timeLimit_ == null) {
2298 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2299 }
2300 TimeLimit.MergeFrom(other.TimeLimit);
2301 }
2302 if (other.lnsTimeLimit_ != null) {
2303 if (lnsTimeLimit_ == null) {
2304 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2305 }
2306 LnsTimeLimit.MergeFrom(other.LnsTimeLimit);
2307 }
2308 if (other.SecondaryLsTimeLimitRatio != 0D) {
2309 SecondaryLsTimeLimitRatio = other.SecondaryLsTimeLimitRatio;
2310 }
2311 if (other.improvementLimitParameters_ != null) {
2312 if (improvementLimitParameters_ == null) {
2313 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
2314 }
2315 ImprovementLimitParameters.MergeFrom(other.ImprovementLimitParameters);
2316 }
2317 if (other.UseFullPropagation != false) {
2318 UseFullPropagation = other.UseFullPropagation;
2319 }
2320 if (other.LogSearch != false) {
2321 LogSearch = other.LogSearch;
2322 }
2323 if (other.LogCostScalingFactor != 0D) {
2324 LogCostScalingFactor = other.LogCostScalingFactor;
2325 }
2326 if (other.LogCostOffset != 0D) {
2327 LogCostOffset = other.LogCostOffset;
2328 }
2329 if (other.LogTag.Length != 0) {
2330 LogTag = other.LogTag;
2331 }
2332 if (other.UseIteratedLocalSearch != false) {
2333 UseIteratedLocalSearch = other.UseIteratedLocalSearch;
2334 }
2335 if (other.iteratedLocalSearchParameters_ != null) {
2336 if (iteratedLocalSearchParameters_ == null) {
2337 IteratedLocalSearchParameters = new global::Google.OrTools.ConstraintSolver.IteratedLocalSearchParameters();
2338 }
2339 IteratedLocalSearchParameters.MergeFrom(other.IteratedLocalSearchParameters);
2340 }
2341 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2342 }
2343
2344 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2345 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2346 public void MergeFrom(pb::CodedInputStream input) {
2347 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2348 input.ReadRawMessage(this);
2349 #else
2350 uint tag;
2351 while ((tag = input.ReadTag()) != 0) {
2352 if ((tag & 7) == 4) {
2353 // Abort on any end group tag.
2354 return;
2355 }
2356 switch(tag) {
2357 default:
2358 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2359 break;
2360 case 8: {
2361 FirstSolutionStrategy = (global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value) input.ReadEnum();
2362 break;
2363 }
2364 case 16: {
2365 UseUnfilteredFirstSolutionStrategy = input.ReadBool();
2366 break;
2367 }
2368 case 26: {
2369 if (localSearchOperators_ == null) {
2370 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
2371 }
2372 input.ReadMessage(LocalSearchOperators);
2373 break;
2374 }
2375 case 32: {
2376 LocalSearchMetaheuristic = (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) input.ReadEnum();
2377 break;
2378 }
2379 case 41: {
2380 GuidedLocalSearchLambdaCoefficient = input.ReadDouble();
2381 break;
2382 }
2383 case 48: {
2384 UseDepthFirstSearch = input.ReadBool();
2385 break;
2386 }
2387 case 57: {
2388 OptimizationStep = input.ReadDouble();
2389 break;
2390 }
2391 case 64: {
2392 SolutionLimit = input.ReadInt64();
2393 break;
2394 }
2395 case 74: {
2396 if (timeLimit_ == null) {
2397 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2398 }
2399 input.ReadMessage(TimeLimit);
2400 break;
2401 }
2402 case 82: {
2403 if (lnsTimeLimit_ == null) {
2404 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2405 }
2406 input.ReadMessage(LnsTimeLimit);
2407 break;
2408 }
2409 case 88: {
2410 UseFullPropagation = input.ReadBool();
2411 break;
2412 }
2413 case 104: {
2414 LogSearch = input.ReadBool();
2415 break;
2416 }
2417 case 113: {
2418 SavingsNeighborsRatio = input.ReadDouble();
2419 break;
2420 }
2421 case 120: {
2422 SavingsAddReverseArcs = input.ReadBool();
2423 break;
2424 }
2425 case 129: {
2426 CheapestInsertionFarthestSeedsRatio = input.ReadDouble();
2427 break;
2428 }
2429 case 136: {
2430 NumberOfSolutionsToCollect = input.ReadInt32();
2431 break;
2432 }
2433 case 145: {
2434 SavingsArcCoefficient = input.ReadDouble();
2435 break;
2436 }
2437 case 160: {
2438 RelocateExpensiveChainNumArcsToConsider = input.ReadInt32();
2439 break;
2440 }
2441 case 169: {
2442 CheapestInsertionFirstSolutionNeighborsRatio = input.ReadDouble();
2443 break;
2444 }
2445 case 177: {
2446 LogCostScalingFactor = input.ReadDouble();
2447 break;
2448 }
2449 case 185: {
2450 SavingsMaxMemoryUsageBytes = input.ReadDouble();
2451 break;
2452 }
2453 case 216: {
2454 UseCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2455 break;
2456 }
2457 case 224: {
2458 UseCp = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2459 break;
2460 }
2461 case 233: {
2462 LogCostOffset = input.ReadDouble();
2463 break;
2464 }
2465 case 240: {
2466 ChristofidesUseMinimumMatching = input.ReadBool();
2467 break;
2468 }
2469 case 249: {
2470 CheapestInsertionLsOperatorNeighborsRatio = input.ReadDouble();
2471 break;
2472 }
2473 case 256: {
2474 HeuristicExpensiveChainLnsNumArcsToConsider = input.ReadInt32();
2475 break;
2476 }
2477 case 264: {
2478 ContinuousSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2479 break;
2480 }
2481 case 272: {
2482 MixedIntegerSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2483 break;
2484 }
2485 case 280: {
2486 HeuristicCloseNodesLnsNumNodes = input.ReadInt32();
2487 break;
2488 }
2489 case 290: {
2490 LogTag = input.ReadString();
2491 break;
2492 }
2493 case 298: {
2494 if (improvementLimitParameters_ == null) {
2495 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
2496 }
2497 input.ReadMessage(ImprovementLimitParameters);
2498 break;
2499 }
2500 case 320: {
2501 CheapestInsertionAddUnperformedEntries = input.ReadBool();
2502 break;
2503 }
2504 case 328: {
2505 UseMultiArmedBanditConcatenateOperators = input.ReadBool();
2506 break;
2507 }
2508 case 337: {
2509 MultiArmedBanditCompoundOperatorMemoryCoefficient = input.ReadDouble();
2510 break;
2511 }
2512 case 345: {
2513 MultiArmedBanditCompoundOperatorExplorationCoefficient = input.ReadDouble();
2514 break;
2515 }
2516 case 352: {
2517 CheapestInsertionFirstSolutionMinNeighbors = input.ReadInt32();
2518 break;
2519 }
2520 case 360: {
2521 CheapestInsertionLsOperatorMinNeighbors = input.ReadInt32();
2522 break;
2523 }
2524 case 368: {
2525 CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization = input.ReadBool();
2526 break;
2527 }
2528 case 376: {
2529 UseGeneralizedCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2530 break;
2531 }
2532 case 386: {
2533 if (satParameters_ == null) {
2534 SatParameters = new global::Google.OrTools.Sat.SatParameters();
2535 }
2536 input.ReadMessage(SatParameters);
2537 break;
2538 }
2539 case 392: {
2540 LocalCheapestInsertionPickupDeliveryStrategy = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy) input.ReadEnum();
2541 break;
2542 }
2543 case 400: {
2544 DisableSchedulingBewareThisMayDegradePerformance = input.ReadBool();
2545 break;
2546 }
2547 case 408: {
2548 GuidedLocalSearchResetPenaltiesOnNewBestSolution = input.ReadBool();
2549 break;
2550 }
2551 case 416: {
2552 FallbackToCpSatSizeThreshold = input.ReadInt32();
2553 break;
2554 }
2555 case 425: {
2556 LsOperatorNeighborsRatio = input.ReadDouble();
2557 break;
2558 }
2559 case 432: {
2560 LsOperatorMinNeighbors = input.ReadInt32();
2561 break;
2562 }
2563 case 440: {
2564 LocalCheapestCostInsertionPickupDeliveryStrategy = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy) input.ReadEnum();
2565 break;
2566 }
2567 case 448: {
2568 ReportIntermediateCpSatSolutions = input.ReadBool();
2569 break;
2570 }
2571 case 457: {
2572 SecondaryLsTimeLimitRatio = input.ReadDouble();
2573 break;
2574 }
2575 case 464: {
2576 UseIteratedLocalSearch = input.ReadBool();
2577 break;
2578 }
2579 case 472: {
2580 FirstSolutionOptimizationPeriod = input.ReadInt32();
2581 break;
2582 }
2583 case 482: {
2584 if (iteratedLocalSearchParameters_ == null) {
2585 IteratedLocalSearchParameters = new global::Google.OrTools.ConstraintSolver.IteratedLocalSearchParameters();
2586 }
2587 input.ReadMessage(IteratedLocalSearchParameters);
2588 break;
2589 }
2590 case 488: {
2591 GuidedLocalSearchPenalizeWithVehicleClasses = input.ReadBool();
2592 break;
2593 }
2594 case 496: {
2595 UseGuidedLocalSearchPenaltiesInLocalSearchOperators = input.ReadBool();
2596 break;
2597 }
2598 case 506:
2599 case 504: {
2600 localSearchMetaheuristics_.AddEntriesFrom(input, _repeated_localSearchMetaheuristics_codec);
2601 break;
2602 }
2603 case 512: {
2604 NumMaxLocalOptimaBeforeMetaheuristicSwitch = input.ReadInt32();
2605 break;
2606 }
2607 case 528: {
2608 MaxSwapActiveChainSize = input.ReadInt32();
2609 break;
2610 }
2611 case 538:
2612 case 536: {
2613 localCheapestInsertionSortingProperties_.AddEntriesFrom(input, _repeated_localCheapestInsertionSortingProperties_codec);
2614 break;
2615 }
2616 }
2617 }
2618 #endif
2619 }
2620
2621 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2622 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2623 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2624 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
2625 uint tag;
2626 while ((tag = input.ReadTag()) != 0) {
2627 if ((tag & 7) == 4) {
2628 // Abort on any end group tag.
2629 return;
2630 }
2631 switch(tag) {
2632 default:
2633 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
2634 break;
2635 case 8: {
2636 FirstSolutionStrategy = (global::Google.OrTools.ConstraintSolver.FirstSolutionStrategy.Types.Value) input.ReadEnum();
2637 break;
2638 }
2639 case 16: {
2640 UseUnfilteredFirstSolutionStrategy = input.ReadBool();
2641 break;
2642 }
2643 case 26: {
2644 if (localSearchOperators_ == null) {
2645 LocalSearchOperators = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.LocalSearchNeighborhoodOperators();
2646 }
2647 input.ReadMessage(LocalSearchOperators);
2648 break;
2649 }
2650 case 32: {
2651 LocalSearchMetaheuristic = (global::Google.OrTools.ConstraintSolver.LocalSearchMetaheuristic.Types.Value) input.ReadEnum();
2652 break;
2653 }
2654 case 41: {
2655 GuidedLocalSearchLambdaCoefficient = input.ReadDouble();
2656 break;
2657 }
2658 case 48: {
2659 UseDepthFirstSearch = input.ReadBool();
2660 break;
2661 }
2662 case 57: {
2663 OptimizationStep = input.ReadDouble();
2664 break;
2665 }
2666 case 64: {
2667 SolutionLimit = input.ReadInt64();
2668 break;
2669 }
2670 case 74: {
2671 if (timeLimit_ == null) {
2672 TimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2673 }
2674 input.ReadMessage(TimeLimit);
2675 break;
2676 }
2677 case 82: {
2678 if (lnsTimeLimit_ == null) {
2679 LnsTimeLimit = new global::Google.Protobuf.WellKnownTypes.Duration();
2680 }
2681 input.ReadMessage(LnsTimeLimit);
2682 break;
2683 }
2684 case 88: {
2685 UseFullPropagation = input.ReadBool();
2686 break;
2687 }
2688 case 104: {
2689 LogSearch = input.ReadBool();
2690 break;
2691 }
2692 case 113: {
2693 SavingsNeighborsRatio = input.ReadDouble();
2694 break;
2695 }
2696 case 120: {
2697 SavingsAddReverseArcs = input.ReadBool();
2698 break;
2699 }
2700 case 129: {
2701 CheapestInsertionFarthestSeedsRatio = input.ReadDouble();
2702 break;
2703 }
2704 case 136: {
2705 NumberOfSolutionsToCollect = input.ReadInt32();
2706 break;
2707 }
2708 case 145: {
2709 SavingsArcCoefficient = input.ReadDouble();
2710 break;
2711 }
2712 case 160: {
2713 RelocateExpensiveChainNumArcsToConsider = input.ReadInt32();
2714 break;
2715 }
2716 case 169: {
2717 CheapestInsertionFirstSolutionNeighborsRatio = input.ReadDouble();
2718 break;
2719 }
2720 case 177: {
2721 LogCostScalingFactor = input.ReadDouble();
2722 break;
2723 }
2724 case 185: {
2725 SavingsMaxMemoryUsageBytes = input.ReadDouble();
2726 break;
2727 }
2728 case 216: {
2729 UseCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2730 break;
2731 }
2732 case 224: {
2733 UseCp = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2734 break;
2735 }
2736 case 233: {
2737 LogCostOffset = input.ReadDouble();
2738 break;
2739 }
2740 case 240: {
2741 ChristofidesUseMinimumMatching = input.ReadBool();
2742 break;
2743 }
2744 case 249: {
2745 CheapestInsertionLsOperatorNeighborsRatio = input.ReadDouble();
2746 break;
2747 }
2748 case 256: {
2749 HeuristicExpensiveChainLnsNumArcsToConsider = input.ReadInt32();
2750 break;
2751 }
2752 case 264: {
2753 ContinuousSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2754 break;
2755 }
2756 case 272: {
2757 MixedIntegerSchedulingSolver = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.SchedulingSolver) input.ReadEnum();
2758 break;
2759 }
2760 case 280: {
2761 HeuristicCloseNodesLnsNumNodes = input.ReadInt32();
2762 break;
2763 }
2764 case 290: {
2765 LogTag = input.ReadString();
2766 break;
2767 }
2768 case 298: {
2769 if (improvementLimitParameters_ == null) {
2770 ImprovementLimitParameters = new global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.ImprovementSearchLimitParameters();
2771 }
2772 input.ReadMessage(ImprovementLimitParameters);
2773 break;
2774 }
2775 case 320: {
2776 CheapestInsertionAddUnperformedEntries = input.ReadBool();
2777 break;
2778 }
2779 case 328: {
2780 UseMultiArmedBanditConcatenateOperators = input.ReadBool();
2781 break;
2782 }
2783 case 337: {
2784 MultiArmedBanditCompoundOperatorMemoryCoefficient = input.ReadDouble();
2785 break;
2786 }
2787 case 345: {
2788 MultiArmedBanditCompoundOperatorExplorationCoefficient = input.ReadDouble();
2789 break;
2790 }
2791 case 352: {
2792 CheapestInsertionFirstSolutionMinNeighbors = input.ReadInt32();
2793 break;
2794 }
2795 case 360: {
2796 CheapestInsertionLsOperatorMinNeighbors = input.ReadInt32();
2797 break;
2798 }
2799 case 368: {
2800 CheapestInsertionFirstSolutionUseNeighborsRatioForInitialization = input.ReadBool();
2801 break;
2802 }
2803 case 376: {
2804 UseGeneralizedCpSat = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
2805 break;
2806 }
2807 case 386: {
2808 if (satParameters_ == null) {
2809 SatParameters = new global::Google.OrTools.Sat.SatParameters();
2810 }
2811 input.ReadMessage(SatParameters);
2812 break;
2813 }
2814 case 392: {
2815 LocalCheapestInsertionPickupDeliveryStrategy = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy) input.ReadEnum();
2816 break;
2817 }
2818 case 400: {
2819 DisableSchedulingBewareThisMayDegradePerformance = input.ReadBool();
2820 break;
2821 }
2822 case 408: {
2823 GuidedLocalSearchResetPenaltiesOnNewBestSolution = input.ReadBool();
2824 break;
2825 }
2826 case 416: {
2827 FallbackToCpSatSizeThreshold = input.ReadInt32();
2828 break;
2829 }
2830 case 425: {
2831 LsOperatorNeighborsRatio = input.ReadDouble();
2832 break;
2833 }
2834 case 432: {
2835 LsOperatorMinNeighbors = input.ReadInt32();
2836 break;
2837 }
2838 case 440: {
2839 LocalCheapestCostInsertionPickupDeliveryStrategy = (global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Types.PairInsertionStrategy) input.ReadEnum();
2840 break;
2841 }
2842 case 448: {
2843 ReportIntermediateCpSatSolutions = input.ReadBool();
2844 break;
2845 }
2846 case 457: {
2847 SecondaryLsTimeLimitRatio = input.ReadDouble();
2848 break;
2849 }
2850 case 464: {
2851 UseIteratedLocalSearch = input.ReadBool();
2852 break;
2853 }
2854 case 472: {
2855 FirstSolutionOptimizationPeriod = input.ReadInt32();
2856 break;
2857 }
2858 case 482: {
2859 if (iteratedLocalSearchParameters_ == null) {
2860 IteratedLocalSearchParameters = new global::Google.OrTools.ConstraintSolver.IteratedLocalSearchParameters();
2861 }
2862 input.ReadMessage(IteratedLocalSearchParameters);
2863 break;
2864 }
2865 case 488: {
2866 GuidedLocalSearchPenalizeWithVehicleClasses = input.ReadBool();
2867 break;
2868 }
2869 case 496: {
2870 UseGuidedLocalSearchPenaltiesInLocalSearchOperators = input.ReadBool();
2871 break;
2872 }
2873 case 506:
2874 case 504: {
2875 localSearchMetaheuristics_.AddEntriesFrom(ref input, _repeated_localSearchMetaheuristics_codec);
2876 break;
2877 }
2878 case 512: {
2879 NumMaxLocalOptimaBeforeMetaheuristicSwitch = input.ReadInt32();
2880 break;
2881 }
2882 case 528: {
2883 MaxSwapActiveChainSize = input.ReadInt32();
2884 break;
2885 }
2886 case 538:
2887 case 536: {
2888 localCheapestInsertionSortingProperties_.AddEntriesFrom(ref input, _repeated_localCheapestInsertionSortingProperties_codec);
2889 break;
2890 }
2891 }
2892 }
2893 }
2894 #endif
2895
2896 #region Nested types
2898 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2899 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2900 public static partial class Types {
2910 [pbr::OriginalName("AUTOMATIC")] Automatic = 0,
2912 /// Consider all positions, by increasing (cost(pickup), cost(delivery)).
2913 /// </summary>
2914 [pbr::OriginalName("BEST_PICKUP_THEN_BEST_DELIVERY")] BestPickupThenBestDelivery = 1,
2918 [pbr::OriginalName("BEST_PICKUP_DELIVERY_PAIR")] BestPickupDeliveryPair = 2,
2926 [pbr::OriginalName("BEST_PICKUP_DELIVERY_PAIR_MULTITOUR")] BestPickupDeliveryPairMultitour = 3,
2927 }
2928
2933 public enum InsertionSortingProperty {
2934
2937 [pbr::OriginalName("SORTING_PROPERTY_UNSPECIFIED")] SortingPropertyUnspecified = 0,
2939 /// Selects nodes with the least number of allowed vehicles.
2940 /// </summary>
2941 [pbr::OriginalName("SORTING_PROPERTY_ALLOWED_VEHICLES")] SortingPropertyAllowedVehicles = 1,
2945 [pbr::OriginalName("SORTING_PROPERTY_PENALTY")] SortingPropertyPenalty = 2,
2950 [pbr::OriginalName("SORTING_PROPERTY_PENALTY_OVER_ALLOWED_VEHICLES_RATIO")] SortingPropertyPenaltyOverAllowedVehiclesRatio = 3,
2954 [pbr::OriginalName("SORTING_PROPERTY_HIGHEST_AVG_ARC_COST_TO_VEHICLE_START_ENDS")] SortingPropertyHighestAvgArcCostToVehicleStartEnds = 4,
2958 [pbr::OriginalName("SORTING_PROPERTY_LOWEST_AVG_ARC_COST_TO_VEHICLE_START_ENDS")] SortingPropertyLowestAvgArcCostToVehicleStartEnds = 5,
2962 [pbr::OriginalName("SORTING_PROPERTY_LOWEST_MIN_ARC_COST_TO_VEHICLE_START_ENDS")] SortingPropertyLowestMinArcCostToVehicleStartEnds = 6,
2968 [pbr::OriginalName("SORTING_PROPERTY_HIGHEST_DIMENSION_USAGE")] SortingPropertyHighestDimensionUsage = 7,
2973 [pbr::OriginalName("SORTING_PROPERTY_RANDOM")] SortingPropertyRandom = 8,
2975
2980 public enum SchedulingSolver {
2981 [pbr::OriginalName("SCHEDULING_UNSET")] SchedulingUnset = 0,
2982 [pbr::OriginalName("SCHEDULING_GLOP")] SchedulingGlop = 1,
2983 [pbr::OriginalName("SCHEDULING_CP_SAT")] SchedulingCpSat = 2,
2984 }
2985
2986 /// <summary>
2987 /// Local search neighborhood operators used to build a solutions neighborhood.
2988 /// Next ID: 39
2989 /// </summary>
2990 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
2991 public sealed partial class LocalSearchNeighborhoodOperators : pb::IMessage<LocalSearchNeighborhoodOperators>
2992 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2993 , pb::IBufferMessage
2994 #endif
2995 {
2996 private static readonly pb::MessageParser<LocalSearchNeighborhoodOperators> _parser = new pb::MessageParser<LocalSearchNeighborhoodOperators>(() => new LocalSearchNeighborhoodOperators());
2997 private pb::UnknownFieldSet _unknownFields;
2998 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2999 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3000 public static pb::MessageParser<LocalSearchNeighborhoodOperators> Parser { get { return _parser; } }
3001
3002 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3003 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3004 public static pbr::MessageDescriptor Descriptor {
3005 get { return global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Descriptor.NestedTypes[0]; }
3007
3008 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3009 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3010 pbr::MessageDescriptor pb::IMessage.Descriptor {
3011 get { return Descriptor; }
3012 }
3013
3014 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3015 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3017 OnConstruction();
3018 }
3019
3020 partial void OnConstruction();
3021
3022 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3023 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3025 useRelocate_ = other.useRelocate_;
3026 useRelocatePair_ = other.useRelocatePair_;
3027 useLightRelocatePair_ = other.useLightRelocatePair_;
3028 useRelocateNeighbors_ = other.useRelocateNeighbors_;
3029 useRelocateSubtrip_ = other.useRelocateSubtrip_;
3030 useExchange_ = other.useExchange_;
3031 useExchangePair_ = other.useExchangePair_;
3032 useExchangeSubtrip_ = other.useExchangeSubtrip_;
3033 useCross_ = other.useCross_;
3034 useCrossExchange_ = other.useCrossExchange_;
3035 useRelocateExpensiveChain_ = other.useRelocateExpensiveChain_;
3036 useTwoOpt_ = other.useTwoOpt_;
3037 useOrOpt_ = other.useOrOpt_;
3038 useLinKernighan_ = other.useLinKernighan_;
3039 useTspOpt_ = other.useTspOpt_;
3040 useMakeActive_ = other.useMakeActive_;
3041 useRelocateAndMakeActive_ = other.useRelocateAndMakeActive_;
3042 useExchangeAndMakeActive_ = other.useExchangeAndMakeActive_;
3043 useExchangePathStartEndsAndMakeActive_ = other.useExchangePathStartEndsAndMakeActive_;
3044 useMakeInactive_ = other.useMakeInactive_;
3045 useMakeChainInactive_ = other.useMakeChainInactive_;
3046 useSwapActive_ = other.useSwapActive_;
3047 useSwapActiveChain_ = other.useSwapActiveChain_;
3048 useExtendedSwapActive_ = other.useExtendedSwapActive_;
3049 useShortestPathSwapActive_ = other.useShortestPathSwapActive_;
3050 useShortestPathTwoOpt_ = other.useShortestPathTwoOpt_;
3051 useNodePairSwapActive_ = other.useNodePairSwapActive_;
3052 usePathLns_ = other.usePathLns_;
3053 useFullPathLns_ = other.useFullPathLns_;
3054 useTspLns_ = other.useTspLns_;
3055 useInactiveLns_ = other.useInactiveLns_;
3056 useGlobalCheapestInsertionPathLns_ = other.useGlobalCheapestInsertionPathLns_;
3057 useLocalCheapestInsertionPathLns_ = other.useLocalCheapestInsertionPathLns_;
3058 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
3059 useGlobalCheapestInsertionExpensiveChainLns_ = other.useGlobalCheapestInsertionExpensiveChainLns_;
3060 useLocalCheapestInsertionExpensiveChainLns_ = other.useLocalCheapestInsertionExpensiveChainLns_;
3061 useGlobalCheapestInsertionCloseNodesLns_ = other.useGlobalCheapestInsertionCloseNodesLns_;
3062 useLocalCheapestInsertionCloseNodesLns_ = other.useLocalCheapestInsertionCloseNodesLns_;
3063 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
3064 }
3065
3066 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3067 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3069 return new LocalSearchNeighborhoodOperators(this);
3070 }
3071
3073 public const int UseRelocateFieldNumber = 1;
3074 private global::Google.OrTools.Util.OptionalBoolean useRelocate_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3077
3086 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3087 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3088 public global::Google.OrTools.Util.OptionalBoolean UseRelocate {
3089 get { return useRelocate_; }
3090 set {
3091 useRelocate_ = value;
3092 }
3093 }
3096 public const int UseRelocatePairFieldNumber = 2;
3097 private global::Google.OrTools.Util.OptionalBoolean useRelocatePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3100
3109 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3110 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3111 public global::Google.OrTools.Util.OptionalBoolean UseRelocatePair {
3112 get { return useRelocatePair_; }
3113 set {
3114 useRelocatePair_ = value;
3115 }
3116 }
3119 public const int UseLightRelocatePairFieldNumber = 24;
3120 private global::Google.OrTools.Util.OptionalBoolean useLightRelocatePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3123
3130 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3131 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3132 public global::Google.OrTools.Util.OptionalBoolean UseLightRelocatePair {
3133 get { return useLightRelocatePair_; }
3134 set {
3135 useLightRelocatePair_ = value;
3136 }
3137 }
3140 public const int UseRelocateNeighborsFieldNumber = 3;
3141 private global::Google.OrTools.Util.OptionalBoolean useRelocateNeighbors_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3144
3166 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3167 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3168 public global::Google.OrTools.Util.OptionalBoolean UseRelocateNeighbors {
3169 get { return useRelocateNeighbors_; }
3170 set {
3171 useRelocateNeighbors_ = value;
3172 }
3173 }
3176 public const int UseRelocateSubtripFieldNumber = 25;
3177 private global::Google.OrTools.Util.OptionalBoolean useRelocateSubtrip_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3180
3194 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3195 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3196 public global::Google.OrTools.Util.OptionalBoolean UseRelocateSubtrip {
3197 get { return useRelocateSubtrip_; }
3198 set {
3199 useRelocateSubtrip_ = value;
3200 }
3201 }
3202
3204 public const int UseExchangeFieldNumber = 4;
3205 private global::Google.OrTools.Util.OptionalBoolean useExchange_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3210
3215 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3216 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3217 public global::Google.OrTools.Util.OptionalBoolean UseExchange {
3218 get { return useExchange_; }
3219 set {
3220 useExchange_ = value;
3221 }
3222 }
3223
3225 public const int UseExchangePairFieldNumber = 22;
3226 private global::Google.OrTools.Util.OptionalBoolean useExchangePair_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3231
3236 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3237 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3238 public global::Google.OrTools.Util.OptionalBoolean UseExchangePair {
3239 get { return useExchangePair_; }
3240 set {
3241 useExchangePair_ = value;
3242 }
3243 }
3244
3246 public const int UseExchangeSubtripFieldNumber = 26;
3247 private global::Google.OrTools.Util.OptionalBoolean useExchangeSubtrip_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3252 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3253 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3254 public global::Google.OrTools.Util.OptionalBoolean UseExchangeSubtrip {
3255 get { return useExchangeSubtrip_; }
3256 set {
3257 useExchangeSubtrip_ = value;
3258 }
3259 }
3260
3262 public const int UseCrossFieldNumber = 5;
3263 private global::Google.OrTools.Util.OptionalBoolean useCross_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3268
3275 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3276 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3277 public global::Google.OrTools.Util.OptionalBoolean UseCross {
3278 get { return useCross_; }
3279 set {
3280 useCross_ = value;
3281 }
3282 }
3283
3285 public const int UseCrossExchangeFieldNumber = 6;
3286 private global::Google.OrTools.Util.OptionalBoolean useCrossExchange_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3290 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3291 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3292 public global::Google.OrTools.Util.OptionalBoolean UseCrossExchange {
3293 get { return useCrossExchange_; }
3294 set {
3295 useCrossExchange_ = value;
3296 }
3297 }
3298
3301 private global::Google.OrTools.Util.OptionalBoolean useRelocateExpensiveChain_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3306
3314 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3315 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3316 public global::Google.OrTools.Util.OptionalBoolean UseRelocateExpensiveChain {
3317 get { return useRelocateExpensiveChain_; }
3318 set {
3319 useRelocateExpensiveChain_ = value;
3320 }
3321 }
3322
3324 public const int UseTwoOptFieldNumber = 7;
3325 private global::Google.OrTools.Util.OptionalBoolean useTwoOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3330
3338 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3339 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3340 public global::Google.OrTools.Util.OptionalBoolean UseTwoOpt {
3341 get { return useTwoOpt_; }
3342 set {
3343 useTwoOpt_ = value;
3344 }
3345 }
3346
3348 public const int UseOrOptFieldNumber = 8;
3349 private global::Google.OrTools.Util.OptionalBoolean useOrOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3354
3363 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3364 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3365 public global::Google.OrTools.Util.OptionalBoolean UseOrOpt {
3366 get { return useOrOpt_; }
3367 set {
3368 useOrOpt_ = value;
3369 }
3370 }
3371
3373 public const int UseLinKernighanFieldNumber = 9;
3374 private global::Google.OrTools.Util.OptionalBoolean useLinKernighan_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3379
3381 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3382 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3383 public global::Google.OrTools.Util.OptionalBoolean UseLinKernighan {
3384 get { return useLinKernighan_; }
3385 set {
3386 useLinKernighan_ = value;
3387 }
3388 }
3389
3391 public const int UseTspOptFieldNumber = 10;
3392 private global::Google.OrTools.Util.OptionalBoolean useTspOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3397
3401 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3402 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3403 public global::Google.OrTools.Util.OptionalBoolean UseTspOpt {
3404 get { return useTspOpt_; }
3405 set {
3406 useTspOpt_ = value;
3407 }
3408 }
3409
3411 public const int UseMakeActiveFieldNumber = 11;
3412 private global::Google.OrTools.Util.OptionalBoolean useMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3417
3422 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3423 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3424 public global::Google.OrTools.Util.OptionalBoolean UseMakeActive {
3425 get { return useMakeActive_; }
3426 set {
3427 useMakeActive_ = value;
3428 }
3429 }
3430
3433 private global::Google.OrTools.Util.OptionalBoolean useRelocateAndMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3438
3446 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3447 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3448 public global::Google.OrTools.Util.OptionalBoolean UseRelocateAndMakeActive {
3449 get { return useRelocateAndMakeActive_; }
3450 set {
3451 useRelocateAndMakeActive_ = value;
3452 }
3453 }
3454
3457 private global::Google.OrTools.Util.OptionalBoolean useExchangeAndMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3462
3466 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3467 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3468 public global::Google.OrTools.Util.OptionalBoolean UseExchangeAndMakeActive {
3469 get { return useExchangeAndMakeActive_; }
3470 set {
3471 useExchangeAndMakeActive_ = value;
3472 }
3473 }
3474
3477 private global::Google.OrTools.Util.OptionalBoolean useExchangePathStartEndsAndMakeActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3482
3489 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3490 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3491 public global::Google.OrTools.Util.OptionalBoolean UseExchangePathStartEndsAndMakeActive {
3492 get { return useExchangePathStartEndsAndMakeActive_; }
3493 set {
3494 useExchangePathStartEndsAndMakeActive_ = value;
3495 }
3496 }
3497
3499 public const int UseMakeInactiveFieldNumber = 12;
3500 private global::Google.OrTools.Util.OptionalBoolean useMakeInactive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3505
3508 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3509 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3510 public global::Google.OrTools.Util.OptionalBoolean UseMakeInactive {
3511 get { return useMakeInactive_; }
3512 set {
3513 useMakeInactive_ = value;
3514 }
3515 }
3516
3518 public const int UseMakeChainInactiveFieldNumber = 13;
3519 private global::Google.OrTools.Util.OptionalBoolean useMakeChainInactive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3524
3528 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3529 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3530 public global::Google.OrTools.Util.OptionalBoolean UseMakeChainInactive {
3531 get { return useMakeChainInactive_; }
3532 set {
3533 useMakeChainInactive_ = value;
3534 }
3535 }
3536
3538 public const int UseSwapActiveFieldNumber = 14;
3539 private global::Google.OrTools.Util.OptionalBoolean useSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3544
3547 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3548 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3549 public global::Google.OrTools.Util.OptionalBoolean UseSwapActive {
3550 get { return useSwapActive_; }
3551 set {
3552 useSwapActive_ = value;
3553 }
3554 }
3555
3557 public const int UseSwapActiveChainFieldNumber = 35;
3558 private global::Google.OrTools.Util.OptionalBoolean useSwapActiveChain_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3563
3567 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3568 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3569 public global::Google.OrTools.Util.OptionalBoolean UseSwapActiveChain {
3570 get { return useSwapActiveChain_; }
3571 set {
3572 useSwapActiveChain_ = value;
3573 }
3574 }
3575
3578 private global::Google.OrTools.Util.OptionalBoolean useExtendedSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3583
3591 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3592 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3593 public global::Google.OrTools.Util.OptionalBoolean UseExtendedSwapActive {
3594 get { return useExtendedSwapActive_; }
3595 set {
3596 useExtendedSwapActive_ = value;
3597 }
3598 }
3599
3602 private global::Google.OrTools.Util.OptionalBoolean useShortestPathSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3607
3611 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3612 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3613 public global::Google.OrTools.Util.OptionalBoolean UseShortestPathSwapActive {
3614 get { return useShortestPathSwapActive_; }
3615 set {
3616 useShortestPathSwapActive_ = value;
3617 }
3618 }
3619
3622 private global::Google.OrTools.Util.OptionalBoolean useShortestPathTwoOpt_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3627 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3628 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3629 public global::Google.OrTools.Util.OptionalBoolean UseShortestPathTwoOpt {
3630 get { return useShortestPathTwoOpt_; }
3631 set {
3632 useShortestPathTwoOpt_ = value;
3633 }
3634 }
3635
3638 private global::Google.OrTools.Util.OptionalBoolean useNodePairSwapActive_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3643
3652 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3653 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3654 public global::Google.OrTools.Util.OptionalBoolean UseNodePairSwapActive {
3655 get { return useNodePairSwapActive_; }
3656 set {
3657 useNodePairSwapActive_ = value;
3658 }
3659 }
3660
3662 public const int UsePathLnsFieldNumber = 16;
3663 private global::Google.OrTools.Util.OptionalBoolean usePathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3668
3674 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3675 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3676 public global::Google.OrTools.Util.OptionalBoolean UsePathLns {
3677 get { return usePathLns_; }
3678 set {
3679 usePathLns_ = value;
3680 }
3681 }
3682
3684 public const int UseFullPathLnsFieldNumber = 17;
3685 private global::Google.OrTools.Util.OptionalBoolean useFullPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3689 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3690 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3691 public global::Google.OrTools.Util.OptionalBoolean UseFullPathLns {
3692 get { return useFullPathLns_; }
3693 set {
3694 useFullPathLns_ = value;
3695 }
3696 }
3697
3699 public const int UseTspLnsFieldNumber = 18;
3700 private global::Google.OrTools.Util.OptionalBoolean useTspLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3705
3709 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3710 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3711 public global::Google.OrTools.Util.OptionalBoolean UseTspLns {
3712 get { return useTspLns_; }
3713 set {
3714 useTspLns_ = value;
3715 }
3716 }
3717
3719 public const int UseInactiveLnsFieldNumber = 19;
3720 private global::Google.OrTools.Util.OptionalBoolean useInactiveLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3725
3726 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3727 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3728 public global::Google.OrTools.Util.OptionalBoolean UseInactiveLns {
3729 get { return useInactiveLns_; }
3730 set {
3731 useInactiveLns_ = value;
3732 }
3733 }
3734
3737 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3742
3743 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3744 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3745 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionPathLns {
3746 get { return useGlobalCheapestInsertionPathLns_; }
3747 set {
3748 useGlobalCheapestInsertionPathLns_ = value;
3749 }
3750 }
3751
3754 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionPathLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3758 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3759 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3760 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionPathLns {
3761 get { return useLocalCheapestInsertionPathLns_; }
3762 set {
3763 useLocalCheapestInsertionPathLns_ = value;
3764 }
3765 }
3766
3769 private global::Google.OrTools.Util.OptionalBoolean useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3774
3775 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3776 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3777 public global::Google.OrTools.Util.OptionalBoolean UseRelocatePathGlobalCheapestInsertionInsertUnperformed {
3778 get { return useRelocatePathGlobalCheapestInsertionInsertUnperformed_; }
3779 set {
3780 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value;
3781 }
3782 }
3783
3786 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionExpensiveChainLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3791
3793 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3794 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3795 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionExpensiveChainLns {
3796 get { return useGlobalCheapestInsertionExpensiveChainLns_; }
3797 set {
3798 useGlobalCheapestInsertionExpensiveChainLns_ = value;
3799 }
3800 }
3801
3804 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionExpensiveChainLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3809 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3810 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3811 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionExpensiveChainLns {
3812 get { return useLocalCheapestInsertionExpensiveChainLns_; }
3813 set {
3814 useLocalCheapestInsertionExpensiveChainLns_ = value;
3815 }
3816 }
3817
3820 private global::Google.OrTools.Util.OptionalBoolean useGlobalCheapestInsertionCloseNodesLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3825
3827 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3828 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3829 public global::Google.OrTools.Util.OptionalBoolean UseGlobalCheapestInsertionCloseNodesLns {
3830 get { return useGlobalCheapestInsertionCloseNodesLns_; }
3831 set {
3832 useGlobalCheapestInsertionCloseNodesLns_ = value;
3833 }
3834 }
3835
3838 private global::Google.OrTools.Util.OptionalBoolean useLocalCheapestInsertionCloseNodesLns_ = global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified;
3843 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3844 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3845 public global::Google.OrTools.Util.OptionalBoolean UseLocalCheapestInsertionCloseNodesLns {
3846 get { return useLocalCheapestInsertionCloseNodesLns_; }
3847 set {
3848 useLocalCheapestInsertionCloseNodesLns_ = value;
3849 }
3850 }
3851
3852 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3853 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3854 public override bool Equals(object other) {
3856 }
3857
3858 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3859 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3860 public bool Equals(LocalSearchNeighborhoodOperators other) {
3861 if (ReferenceEquals(other, null)) {
3862 return false;
3863 }
3864 if (ReferenceEquals(other, this)) {
3865 return true;
3866 }
3867 if (UseRelocate != other.UseRelocate) return false;
3868 if (UseRelocatePair != other.UseRelocatePair) return false;
3869 if (UseLightRelocatePair != other.UseLightRelocatePair) return false;
3870 if (UseRelocateNeighbors != other.UseRelocateNeighbors) return false;
3871 if (UseRelocateSubtrip != other.UseRelocateSubtrip) return false;
3872 if (UseExchange != other.UseExchange) return false;
3873 if (UseExchangePair != other.UseExchangePair) return false;
3874 if (UseExchangeSubtrip != other.UseExchangeSubtrip) return false;
3875 if (UseCross != other.UseCross) return false;
3876 if (UseCrossExchange != other.UseCrossExchange) return false;
3877 if (UseRelocateExpensiveChain != other.UseRelocateExpensiveChain) return false;
3878 if (UseTwoOpt != other.UseTwoOpt) return false;
3879 if (UseOrOpt != other.UseOrOpt) return false;
3880 if (UseLinKernighan != other.UseLinKernighan) return false;
3881 if (UseTspOpt != other.UseTspOpt) return false;
3882 if (UseMakeActive != other.UseMakeActive) return false;
3883 if (UseRelocateAndMakeActive != other.UseRelocateAndMakeActive) return false;
3884 if (UseExchangeAndMakeActive != other.UseExchangeAndMakeActive) return false;
3886 if (UseMakeInactive != other.UseMakeInactive) return false;
3887 if (UseMakeChainInactive != other.UseMakeChainInactive) return false;
3888 if (UseSwapActive != other.UseSwapActive) return false;
3889 if (UseSwapActiveChain != other.UseSwapActiveChain) return false;
3890 if (UseExtendedSwapActive != other.UseExtendedSwapActive) return false;
3891 if (UseShortestPathSwapActive != other.UseShortestPathSwapActive) return false;
3892 if (UseShortestPathTwoOpt != other.UseShortestPathTwoOpt) return false;
3893 if (UseNodePairSwapActive != other.UseNodePairSwapActive) return false;
3894 if (UsePathLns != other.UsePathLns) return false;
3895 if (UseFullPathLns != other.UseFullPathLns) return false;
3896 if (UseTspLns != other.UseTspLns) return false;
3897 if (UseInactiveLns != other.UseInactiveLns) return false;
3905 return Equals(_unknownFields, other._unknownFields);
3906 }
3907
3908 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3909 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3910 public override int GetHashCode() {
3911 int hash = 1;
3912 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocate.GetHashCode();
3913 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocatePair.GetHashCode();
3914 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLightRelocatePair.GetHashCode();
3915 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateNeighbors.GetHashCode();
3916 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateSubtrip.GetHashCode();
3917 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchange.GetHashCode();
3918 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangePair.GetHashCode();
3919 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangeSubtrip.GetHashCode();
3920 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCross.GetHashCode();
3921 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseCrossExchange.GetHashCode();
3922 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateExpensiveChain.GetHashCode();
3923 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTwoOpt.GetHashCode();
3924 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseOrOpt.GetHashCode();
3925 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLinKernighan.GetHashCode();
3926 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTspOpt.GetHashCode();
3927 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeActive.GetHashCode();
3928 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocateAndMakeActive.GetHashCode();
3929 if (UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangeAndMakeActive.GetHashCode();
3930 if (UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExchangePathStartEndsAndMakeActive.GetHashCode();
3931 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeInactive.GetHashCode();
3932 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseMakeChainInactive.GetHashCode();
3933 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseSwapActive.GetHashCode();
3934 if (UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseSwapActiveChain.GetHashCode();
3935 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseExtendedSwapActive.GetHashCode();
3936 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseShortestPathSwapActive.GetHashCode();
3937 if (UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseShortestPathTwoOpt.GetHashCode();
3938 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseNodePairSwapActive.GetHashCode();
3939 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UsePathLns.GetHashCode();
3940 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseFullPathLns.GetHashCode();
3941 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseTspLns.GetHashCode();
3942 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseInactiveLns.GetHashCode();
3943 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionPathLns.GetHashCode();
3944 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionPathLns.GetHashCode();
3945 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseRelocatePathGlobalCheapestInsertionInsertUnperformed.GetHashCode();
3946 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionExpensiveChainLns.GetHashCode();
3947 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionExpensiveChainLns.GetHashCode();
3948 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseGlobalCheapestInsertionCloseNodesLns.GetHashCode();
3949 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) hash ^= UseLocalCheapestInsertionCloseNodesLns.GetHashCode();
3950 if (_unknownFields != null) {
3951 hash ^= _unknownFields.GetHashCode();
3952 }
3953 return hash;
3954 }
3955
3956 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3957 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3958 public override string ToString() {
3959 return pb::JsonFormatter.ToDiagnosticString(this);
3960 }
3961
3962 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3963 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3964 public void WriteTo(pb::CodedOutputStream output) {
3965 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3966 output.WriteRawMessage(this);
3967 #else
3968 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3969 output.WriteRawTag(8);
3970 output.WriteEnum((int) UseRelocate);
3971 }
3972 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3973 output.WriteRawTag(16);
3974 output.WriteEnum((int) UseRelocatePair);
3975 }
3976 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3977 output.WriteRawTag(24);
3978 output.WriteEnum((int) UseRelocateNeighbors);
3979 }
3980 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3981 output.WriteRawTag(32);
3982 output.WriteEnum((int) UseExchange);
3983 }
3984 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3985 output.WriteRawTag(40);
3986 output.WriteEnum((int) UseCross);
3987 }
3988 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3989 output.WriteRawTag(48);
3990 output.WriteEnum((int) UseCrossExchange);
3991 }
3992 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3993 output.WriteRawTag(56);
3994 output.WriteEnum((int) UseTwoOpt);
3995 }
3996 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
3997 output.WriteRawTag(64);
3998 output.WriteEnum((int) UseOrOpt);
3999 }
4000 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4001 output.WriteRawTag(72);
4002 output.WriteEnum((int) UseLinKernighan);
4003 }
4004 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4005 output.WriteRawTag(80);
4006 output.WriteEnum((int) UseTspOpt);
4007 }
4008 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4009 output.WriteRawTag(88);
4010 output.WriteEnum((int) UseMakeActive);
4011 }
4012 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4013 output.WriteRawTag(96);
4014 output.WriteEnum((int) UseMakeInactive);
4015 }
4016 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4017 output.WriteRawTag(104);
4018 output.WriteEnum((int) UseMakeChainInactive);
4019 }
4020 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4021 output.WriteRawTag(112);
4022 output.WriteEnum((int) UseSwapActive);
4023 }
4024 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4025 output.WriteRawTag(120);
4026 output.WriteEnum((int) UseExtendedSwapActive);
4027 }
4028 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4029 output.WriteRawTag(128, 1);
4030 output.WriteEnum((int) UsePathLns);
4031 }
4032 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4033 output.WriteRawTag(136, 1);
4034 output.WriteEnum((int) UseFullPathLns);
4035 }
4036 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4037 output.WriteRawTag(144, 1);
4038 output.WriteEnum((int) UseTspLns);
4039 }
4040 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4041 output.WriteRawTag(152, 1);
4042 output.WriteEnum((int) UseInactiveLns);
4043 }
4044 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4045 output.WriteRawTag(160, 1);
4046 output.WriteEnum((int) UseNodePairSwapActive);
4047 }
4048 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4049 output.WriteRawTag(168, 1);
4050 output.WriteEnum((int) UseRelocateAndMakeActive);
4051 }
4052 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4053 output.WriteRawTag(176, 1);
4054 output.WriteEnum((int) UseExchangePair);
4055 }
4056 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4057 output.WriteRawTag(184, 1);
4058 output.WriteEnum((int) UseRelocateExpensiveChain);
4059 }
4060 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4061 output.WriteRawTag(192, 1);
4062 output.WriteEnum((int) UseLightRelocatePair);
4063 }
4064 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4065 output.WriteRawTag(200, 1);
4066 output.WriteEnum((int) UseRelocateSubtrip);
4067 }
4068 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4069 output.WriteRawTag(208, 1);
4070 output.WriteEnum((int) UseExchangeSubtrip);
4071 }
4072 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4073 output.WriteRawTag(216, 1);
4074 output.WriteEnum((int) UseGlobalCheapestInsertionPathLns);
4075 }
4076 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4077 output.WriteRawTag(224, 1);
4078 output.WriteEnum((int) UseLocalCheapestInsertionPathLns);
4079 }
4080 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4081 output.WriteRawTag(232, 1);
4082 output.WriteEnum((int) UseGlobalCheapestInsertionExpensiveChainLns);
4083 }
4084 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4085 output.WriteRawTag(240, 1);
4086 output.WriteEnum((int) UseLocalCheapestInsertionExpensiveChainLns);
4087 }
4088 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4089 output.WriteRawTag(248, 1);
4090 output.WriteEnum((int) UseGlobalCheapestInsertionCloseNodesLns);
4091 }
4092 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4093 output.WriteRawTag(128, 2);
4094 output.WriteEnum((int) UseLocalCheapestInsertionCloseNodesLns);
4095 }
4096 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4097 output.WriteRawTag(136, 2);
4098 output.WriteEnum((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
4099 }
4100 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4101 output.WriteRawTag(144, 2);
4102 output.WriteEnum((int) UseShortestPathSwapActive);
4103 }
4104 if (UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4105 output.WriteRawTag(152, 2);
4106 output.WriteEnum((int) UseSwapActiveChain);
4107 }
4108 if (UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4109 output.WriteRawTag(160, 2);
4110 output.WriteEnum((int) UseShortestPathTwoOpt);
4111 }
4112 if (UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4113 output.WriteRawTag(168, 2);
4114 output.WriteEnum((int) UseExchangeAndMakeActive);
4115 }
4116 if (UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4117 output.WriteRawTag(176, 2);
4118 output.WriteEnum((int) UseExchangePathStartEndsAndMakeActive);
4119 }
4120 if (_unknownFields != null) {
4121 _unknownFields.WriteTo(output);
4122 }
4123 #endif
4124 }
4125
4126 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4127 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4128 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4129 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
4130 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4131 output.WriteRawTag(8);
4132 output.WriteEnum((int) UseRelocate);
4133 }
4134 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4135 output.WriteRawTag(16);
4136 output.WriteEnum((int) UseRelocatePair);
4137 }
4138 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4139 output.WriteRawTag(24);
4140 output.WriteEnum((int) UseRelocateNeighbors);
4141 }
4142 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4143 output.WriteRawTag(32);
4144 output.WriteEnum((int) UseExchange);
4145 }
4146 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4147 output.WriteRawTag(40);
4148 output.WriteEnum((int) UseCross);
4149 }
4150 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4151 output.WriteRawTag(48);
4152 output.WriteEnum((int) UseCrossExchange);
4153 }
4154 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4155 output.WriteRawTag(56);
4156 output.WriteEnum((int) UseTwoOpt);
4157 }
4158 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4159 output.WriteRawTag(64);
4160 output.WriteEnum((int) UseOrOpt);
4161 }
4162 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4163 output.WriteRawTag(72);
4164 output.WriteEnum((int) UseLinKernighan);
4165 }
4166 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4167 output.WriteRawTag(80);
4168 output.WriteEnum((int) UseTspOpt);
4169 }
4170 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4171 output.WriteRawTag(88);
4172 output.WriteEnum((int) UseMakeActive);
4173 }
4174 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4175 output.WriteRawTag(96);
4176 output.WriteEnum((int) UseMakeInactive);
4177 }
4178 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4179 output.WriteRawTag(104);
4180 output.WriteEnum((int) UseMakeChainInactive);
4181 }
4182 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4183 output.WriteRawTag(112);
4184 output.WriteEnum((int) UseSwapActive);
4185 }
4186 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4187 output.WriteRawTag(120);
4188 output.WriteEnum((int) UseExtendedSwapActive);
4189 }
4190 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4191 output.WriteRawTag(128, 1);
4192 output.WriteEnum((int) UsePathLns);
4193 }
4194 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4195 output.WriteRawTag(136, 1);
4196 output.WriteEnum((int) UseFullPathLns);
4197 }
4198 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4199 output.WriteRawTag(144, 1);
4200 output.WriteEnum((int) UseTspLns);
4201 }
4202 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4203 output.WriteRawTag(152, 1);
4204 output.WriteEnum((int) UseInactiveLns);
4205 }
4206 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4207 output.WriteRawTag(160, 1);
4208 output.WriteEnum((int) UseNodePairSwapActive);
4209 }
4210 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4211 output.WriteRawTag(168, 1);
4212 output.WriteEnum((int) UseRelocateAndMakeActive);
4213 }
4214 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4215 output.WriteRawTag(176, 1);
4216 output.WriteEnum((int) UseExchangePair);
4217 }
4218 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4219 output.WriteRawTag(184, 1);
4220 output.WriteEnum((int) UseRelocateExpensiveChain);
4221 }
4222 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4223 output.WriteRawTag(192, 1);
4224 output.WriteEnum((int) UseLightRelocatePair);
4225 }
4226 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4227 output.WriteRawTag(200, 1);
4228 output.WriteEnum((int) UseRelocateSubtrip);
4229 }
4230 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4231 output.WriteRawTag(208, 1);
4232 output.WriteEnum((int) UseExchangeSubtrip);
4233 }
4234 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4235 output.WriteRawTag(216, 1);
4236 output.WriteEnum((int) UseGlobalCheapestInsertionPathLns);
4237 }
4238 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4239 output.WriteRawTag(224, 1);
4240 output.WriteEnum((int) UseLocalCheapestInsertionPathLns);
4241 }
4242 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4243 output.WriteRawTag(232, 1);
4244 output.WriteEnum((int) UseGlobalCheapestInsertionExpensiveChainLns);
4245 }
4246 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4247 output.WriteRawTag(240, 1);
4248 output.WriteEnum((int) UseLocalCheapestInsertionExpensiveChainLns);
4249 }
4250 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4251 output.WriteRawTag(248, 1);
4252 output.WriteEnum((int) UseGlobalCheapestInsertionCloseNodesLns);
4253 }
4254 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4255 output.WriteRawTag(128, 2);
4256 output.WriteEnum((int) UseLocalCheapestInsertionCloseNodesLns);
4257 }
4258 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4259 output.WriteRawTag(136, 2);
4260 output.WriteEnum((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
4261 }
4262 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4263 output.WriteRawTag(144, 2);
4264 output.WriteEnum((int) UseShortestPathSwapActive);
4265 }
4266 if (UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4267 output.WriteRawTag(152, 2);
4268 output.WriteEnum((int) UseSwapActiveChain);
4269 }
4270 if (UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4271 output.WriteRawTag(160, 2);
4272 output.WriteEnum((int) UseShortestPathTwoOpt);
4273 }
4274 if (UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4275 output.WriteRawTag(168, 2);
4276 output.WriteEnum((int) UseExchangeAndMakeActive);
4277 }
4278 if (UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4279 output.WriteRawTag(176, 2);
4280 output.WriteEnum((int) UseExchangePathStartEndsAndMakeActive);
4281 }
4282 if (_unknownFields != null) {
4283 _unknownFields.WriteTo(ref output);
4284 }
4285 }
4286 #endif
4287
4288 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4289 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4290 public int CalculateSize() {
4291 int size = 0;
4292 if (UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4293 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocate);
4294 }
4295 if (UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4296 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocatePair);
4297 }
4298 if (UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4299 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLightRelocatePair);
4300 }
4301 if (UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4302 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateNeighbors);
4303 }
4304 if (UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4305 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateSubtrip);
4306 }
4307 if (UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4308 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchange);
4309 }
4310 if (UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4311 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangePair);
4312 }
4313 if (UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4314 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangeSubtrip);
4315 }
4316 if (UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4317 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseCross);
4318 }
4319 if (UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4320 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseCrossExchange);
4321 }
4322 if (UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4323 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateExpensiveChain);
4324 }
4325 if (UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4326 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseTwoOpt);
4327 }
4328 if (UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4329 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseOrOpt);
4330 }
4331 if (UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4332 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseLinKernighan);
4333 }
4334 if (UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4335 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseTspOpt);
4336 }
4337 if (UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4338 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeActive);
4339 }
4340 if (UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4341 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocateAndMakeActive);
4342 }
4343 if (UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4344 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangeAndMakeActive);
4345 }
4346 if (UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4347 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseExchangePathStartEndsAndMakeActive);
4348 }
4349 if (UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4350 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeInactive);
4351 }
4352 if (UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4353 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseMakeChainInactive);
4354 }
4355 if (UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4356 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseSwapActive);
4357 }
4358 if (UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4359 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseSwapActiveChain);
4360 }
4361 if (UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4362 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UseExtendedSwapActive);
4363 }
4364 if (UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4365 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseShortestPathSwapActive);
4366 }
4367 if (UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4368 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseShortestPathTwoOpt);
4369 }
4370 if (UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4371 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseNodePairSwapActive);
4372 }
4373 if (UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4374 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UsePathLns);
4375 }
4376 if (UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4377 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseFullPathLns);
4378 }
4379 if (UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4380 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseTspLns);
4381 }
4382 if (UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4383 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseInactiveLns);
4384 }
4385 if (UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4386 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionPathLns);
4387 }
4388 if (UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4389 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionPathLns);
4390 }
4391 if (UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4392 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseRelocatePathGlobalCheapestInsertionInsertUnperformed);
4393 }
4394 if (UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4395 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionExpensiveChainLns);
4396 }
4397 if (UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4398 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionExpensiveChainLns);
4399 }
4400 if (UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4401 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseGlobalCheapestInsertionCloseNodesLns);
4402 }
4403 if (UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4404 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UseLocalCheapestInsertionCloseNodesLns);
4405 }
4406 if (_unknownFields != null) {
4407 size += _unknownFields.CalculateSize();
4408 }
4409 return size;
4410 }
4411
4412 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4413 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4414 public void MergeFrom(LocalSearchNeighborhoodOperators other) {
4415 if (other == null) {
4416 return;
4417 }
4418 if (other.UseRelocate != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4419 UseRelocate = other.UseRelocate;
4420 }
4421 if (other.UseRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4422 UseRelocatePair = other.UseRelocatePair;
4423 }
4424 if (other.UseLightRelocatePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4425 UseLightRelocatePair = other.UseLightRelocatePair;
4426 }
4427 if (other.UseRelocateNeighbors != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4428 UseRelocateNeighbors = other.UseRelocateNeighbors;
4429 }
4430 if (other.UseRelocateSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4431 UseRelocateSubtrip = other.UseRelocateSubtrip;
4432 }
4433 if (other.UseExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4434 UseExchange = other.UseExchange;
4435 }
4436 if (other.UseExchangePair != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4437 UseExchangePair = other.UseExchangePair;
4438 }
4439 if (other.UseExchangeSubtrip != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4440 UseExchangeSubtrip = other.UseExchangeSubtrip;
4441 }
4442 if (other.UseCross != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4443 UseCross = other.UseCross;
4444 }
4445 if (other.UseCrossExchange != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4446 UseCrossExchange = other.UseCrossExchange;
4447 }
4448 if (other.UseRelocateExpensiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4449 UseRelocateExpensiveChain = other.UseRelocateExpensiveChain;
4450 }
4451 if (other.UseTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4452 UseTwoOpt = other.UseTwoOpt;
4453 }
4454 if (other.UseOrOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4455 UseOrOpt = other.UseOrOpt;
4456 }
4457 if (other.UseLinKernighan != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4458 UseLinKernighan = other.UseLinKernighan;
4459 }
4460 if (other.UseTspOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4461 UseTspOpt = other.UseTspOpt;
4462 }
4463 if (other.UseMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4464 UseMakeActive = other.UseMakeActive;
4465 }
4466 if (other.UseRelocateAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4467 UseRelocateAndMakeActive = other.UseRelocateAndMakeActive;
4468 }
4469 if (other.UseExchangeAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4470 UseExchangeAndMakeActive = other.UseExchangeAndMakeActive;
4471 }
4472 if (other.UseExchangePathStartEndsAndMakeActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4473 UseExchangePathStartEndsAndMakeActive = other.UseExchangePathStartEndsAndMakeActive;
4474 }
4475 if (other.UseMakeInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4476 UseMakeInactive = other.UseMakeInactive;
4477 }
4478 if (other.UseMakeChainInactive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4479 UseMakeChainInactive = other.UseMakeChainInactive;
4480 }
4481 if (other.UseSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4482 UseSwapActive = other.UseSwapActive;
4483 }
4484 if (other.UseSwapActiveChain != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4485 UseSwapActiveChain = other.UseSwapActiveChain;
4486 }
4487 if (other.UseExtendedSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4488 UseExtendedSwapActive = other.UseExtendedSwapActive;
4489 }
4490 if (other.UseShortestPathSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4491 UseShortestPathSwapActive = other.UseShortestPathSwapActive;
4492 }
4493 if (other.UseShortestPathTwoOpt != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4494 UseShortestPathTwoOpt = other.UseShortestPathTwoOpt;
4495 }
4496 if (other.UseNodePairSwapActive != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4497 UseNodePairSwapActive = other.UseNodePairSwapActive;
4498 }
4499 if (other.UsePathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4500 UsePathLns = other.UsePathLns;
4501 }
4502 if (other.UseFullPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4503 UseFullPathLns = other.UseFullPathLns;
4504 }
4505 if (other.UseTspLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4506 UseTspLns = other.UseTspLns;
4507 }
4508 if (other.UseInactiveLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4509 UseInactiveLns = other.UseInactiveLns;
4510 }
4511 if (other.UseGlobalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4512 UseGlobalCheapestInsertionPathLns = other.UseGlobalCheapestInsertionPathLns;
4513 }
4514 if (other.UseLocalCheapestInsertionPathLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4515 UseLocalCheapestInsertionPathLns = other.UseLocalCheapestInsertionPathLns;
4516 }
4517 if (other.UseRelocatePathGlobalCheapestInsertionInsertUnperformed != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4518 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = other.UseRelocatePathGlobalCheapestInsertionInsertUnperformed;
4519 }
4520 if (other.UseGlobalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4521 UseGlobalCheapestInsertionExpensiveChainLns = other.UseGlobalCheapestInsertionExpensiveChainLns;
4522 }
4523 if (other.UseLocalCheapestInsertionExpensiveChainLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4524 UseLocalCheapestInsertionExpensiveChainLns = other.UseLocalCheapestInsertionExpensiveChainLns;
4525 }
4526 if (other.UseGlobalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4527 UseGlobalCheapestInsertionCloseNodesLns = other.UseGlobalCheapestInsertionCloseNodesLns;
4528 }
4529 if (other.UseLocalCheapestInsertionCloseNodesLns != global::Google.OrTools.Util.OptionalBoolean.BoolUnspecified) {
4530 UseLocalCheapestInsertionCloseNodesLns = other.UseLocalCheapestInsertionCloseNodesLns;
4531 }
4532 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4533 }
4534
4535 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4536 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4537 public void MergeFrom(pb::CodedInputStream input) {
4538 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4539 input.ReadRawMessage(this);
4540 #else
4541 uint tag;
4542 while ((tag = input.ReadTag()) != 0) {
4543 if ((tag & 7) == 4) {
4544 // Abort on any end group tag.
4545 return;
4546 }
4547 switch(tag) {
4548 default:
4549 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4550 break;
4551 case 8: {
4552 UseRelocate = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4553 break;
4554 }
4555 case 16: {
4556 UseRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4557 break;
4558 }
4559 case 24: {
4560 UseRelocateNeighbors = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4561 break;
4562 }
4563 case 32: {
4564 UseExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4565 break;
4566 }
4567 case 40: {
4568 UseCross = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4569 break;
4570 }
4571 case 48: {
4572 UseCrossExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4573 break;
4574 }
4575 case 56: {
4576 UseTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4577 break;
4578 }
4579 case 64: {
4580 UseOrOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4581 break;
4582 }
4583 case 72: {
4584 UseLinKernighan = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4585 break;
4586 }
4587 case 80: {
4588 UseTspOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4589 break;
4590 }
4591 case 88: {
4592 UseMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4593 break;
4594 }
4595 case 96: {
4596 UseMakeInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4597 break;
4598 }
4599 case 104: {
4600 UseMakeChainInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4601 break;
4602 }
4603 case 112: {
4604 UseSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4605 break;
4606 }
4607 case 120: {
4608 UseExtendedSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4609 break;
4610 }
4611 case 128: {
4612 UsePathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4613 break;
4614 }
4615 case 136: {
4616 UseFullPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4617 break;
4618 }
4619 case 144: {
4620 UseTspLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4621 break;
4622 }
4623 case 152: {
4624 UseInactiveLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4625 break;
4626 }
4627 case 160: {
4628 UseNodePairSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4629 break;
4630 }
4631 case 168: {
4632 UseRelocateAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4633 break;
4634 }
4635 case 176: {
4636 UseExchangePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4637 break;
4638 }
4639 case 184: {
4640 UseRelocateExpensiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4641 break;
4642 }
4643 case 192: {
4644 UseLightRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4645 break;
4646 }
4647 case 200: {
4648 UseRelocateSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4649 break;
4650 }
4651 case 208: {
4652 UseExchangeSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4653 break;
4654 }
4655 case 216: {
4656 UseGlobalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4657 break;
4658 }
4659 case 224: {
4660 UseLocalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4661 break;
4662 }
4663 case 232: {
4664 UseGlobalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4665 break;
4666 }
4667 case 240: {
4668 UseLocalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4669 break;
4670 }
4671 case 248: {
4672 UseGlobalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4673 break;
4674 }
4675 case 256: {
4676 UseLocalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4677 break;
4678 }
4679 case 264: {
4680 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4681 break;
4682 }
4683 case 272: {
4684 UseShortestPathSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4685 break;
4686 }
4687 case 280: {
4688 UseSwapActiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4689 break;
4690 }
4691 case 288: {
4692 UseShortestPathTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4693 break;
4694 }
4695 case 296: {
4696 UseExchangeAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4697 break;
4698 }
4699 case 304: {
4700 UseExchangePathStartEndsAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4701 break;
4702 }
4703 }
4704 }
4705 #endif
4706 }
4707
4708 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4709 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4710 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4711 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4712 uint tag;
4713 while ((tag = input.ReadTag()) != 0) {
4714 if ((tag & 7) == 4) {
4715 // Abort on any end group tag.
4716 return;
4717 }
4718 switch(tag) {
4719 default:
4720 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4721 break;
4722 case 8: {
4723 UseRelocate = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4724 break;
4725 }
4726 case 16: {
4727 UseRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4728 break;
4729 }
4730 case 24: {
4731 UseRelocateNeighbors = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4732 break;
4733 }
4734 case 32: {
4735 UseExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4736 break;
4737 }
4738 case 40: {
4739 UseCross = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4740 break;
4741 }
4742 case 48: {
4743 UseCrossExchange = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4744 break;
4745 }
4746 case 56: {
4747 UseTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4748 break;
4749 }
4750 case 64: {
4751 UseOrOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4752 break;
4753 }
4754 case 72: {
4755 UseLinKernighan = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4756 break;
4757 }
4758 case 80: {
4759 UseTspOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4760 break;
4761 }
4762 case 88: {
4763 UseMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4764 break;
4765 }
4766 case 96: {
4767 UseMakeInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4768 break;
4769 }
4770 case 104: {
4771 UseMakeChainInactive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4772 break;
4773 }
4774 case 112: {
4775 UseSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4776 break;
4777 }
4778 case 120: {
4779 UseExtendedSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4780 break;
4781 }
4782 case 128: {
4783 UsePathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4784 break;
4785 }
4786 case 136: {
4787 UseFullPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4788 break;
4789 }
4790 case 144: {
4791 UseTspLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4792 break;
4793 }
4794 case 152: {
4795 UseInactiveLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4796 break;
4797 }
4798 case 160: {
4799 UseNodePairSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4800 break;
4801 }
4802 case 168: {
4803 UseRelocateAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4804 break;
4805 }
4806 case 176: {
4807 UseExchangePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4808 break;
4809 }
4810 case 184: {
4811 UseRelocateExpensiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4812 break;
4813 }
4814 case 192: {
4815 UseLightRelocatePair = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4816 break;
4817 }
4818 case 200: {
4819 UseRelocateSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4820 break;
4821 }
4822 case 208: {
4823 UseExchangeSubtrip = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4824 break;
4825 }
4826 case 216: {
4827 UseGlobalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4828 break;
4829 }
4830 case 224: {
4831 UseLocalCheapestInsertionPathLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4832 break;
4833 }
4834 case 232: {
4835 UseGlobalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4836 break;
4837 }
4838 case 240: {
4839 UseLocalCheapestInsertionExpensiveChainLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4840 break;
4841 }
4842 case 248: {
4843 UseGlobalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4844 break;
4845 }
4846 case 256: {
4847 UseLocalCheapestInsertionCloseNodesLns = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4848 break;
4849 }
4850 case 264: {
4851 UseRelocatePathGlobalCheapestInsertionInsertUnperformed = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4852 break;
4853 }
4854 case 272: {
4855 UseShortestPathSwapActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4856 break;
4857 }
4858 case 280: {
4859 UseSwapActiveChain = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4860 break;
4861 }
4862 case 288: {
4863 UseShortestPathTwoOpt = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4864 break;
4865 }
4866 case 296: {
4867 UseExchangeAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4868 break;
4869 }
4870 case 304: {
4871 UseExchangePathStartEndsAndMakeActive = (global::Google.OrTools.Util.OptionalBoolean) input.ReadEnum();
4872 break;
4873 }
4874 }
4875 }
4876 }
4877 #endif
4878
4879 }
4880
4884 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
4885 public sealed partial class ImprovementSearchLimitParameters : pb::IMessage<ImprovementSearchLimitParameters>
4886 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4887 , pb::IBufferMessage
4888 #endif
4889 {
4890 private static readonly pb::MessageParser<ImprovementSearchLimitParameters> _parser = new pb::MessageParser<ImprovementSearchLimitParameters>(() => new ImprovementSearchLimitParameters());
4891 private pb::UnknownFieldSet _unknownFields;
4892 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4893 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4894 public static pb::MessageParser<ImprovementSearchLimitParameters> Parser { get { return _parser; } }
4895
4896 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4897 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4898 public static pbr::MessageDescriptor Descriptor {
4899 get { return global::Google.OrTools.ConstraintSolver.RoutingSearchParameters.Descriptor.NestedTypes[1]; }
4900 }
4901
4902 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4903 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4904 pbr::MessageDescriptor pb::IMessage.Descriptor {
4905 get { return Descriptor; }
4907
4908 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4909 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4911 OnConstruction();
4912 }
4913
4914 partial void OnConstruction();
4915
4916 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4917 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4919 improvementRateCoefficient_ = other.improvementRateCoefficient_;
4920 improvementRateSolutionsDistance_ = other.improvementRateSolutionsDistance_;
4921 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4922 }
4923
4924 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4925 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4927 return new ImprovementSearchLimitParameters(this);
4928 }
4929
4931 public const int ImprovementRateCoefficientFieldNumber = 38;
4932 private double improvementRateCoefficient_;
4934 /// Parameter that regulates exchange rate between objective improvement and
4935 /// number of neighbors spent. The smaller the value, the sooner the limit
4936 /// stops the search. Must be positive.
4937 /// </summary>
4938 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4939 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4940 public double ImprovementRateCoefficient {
4941 get { return improvementRateCoefficient_; }
4942 set {
4943 improvementRateCoefficient_ = value;
4944 }
4945 }
4946
4949 private int improvementRateSolutionsDistance_;
4954
4957 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4958 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4960 get { return improvementRateSolutionsDistance_; }
4961 set {
4962 improvementRateSolutionsDistance_ = value;
4963 }
4964 }
4965
4966 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4967 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4968 public override bool Equals(object other) {
4970 }
4971
4972 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4973 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4974 public bool Equals(ImprovementSearchLimitParameters other) {
4975 if (ReferenceEquals(other, null)) {
4976 return false;
4977 }
4978 if (ReferenceEquals(other, this)) {
4979 return true;
4980 }
4981 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ImprovementRateCoefficient, other.ImprovementRateCoefficient)) return false;
4983 return Equals(_unknownFields, other._unknownFields);
4984 }
4985
4986 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4987 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4988 public override int GetHashCode() {
4989 int hash = 1;
4990 if (ImprovementRateCoefficient != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ImprovementRateCoefficient);
4991 if (ImprovementRateSolutionsDistance != 0) hash ^= ImprovementRateSolutionsDistance.GetHashCode();
4992 if (_unknownFields != null) {
4993 hash ^= _unknownFields.GetHashCode();
4994 }
4995 return hash;
4997
4998 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4999 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5000 public override string ToString() {
5001 return pb::JsonFormatter.ToDiagnosticString(this);
5002 }
5003
5004 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5005 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5006 public void WriteTo(pb::CodedOutputStream output) {
5007 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5008 output.WriteRawMessage(this);
5009 #else
5010 if (ImprovementRateCoefficient != 0D) {
5011 output.WriteRawTag(177, 2);
5012 output.WriteDouble(ImprovementRateCoefficient);
5013 }
5015 output.WriteRawTag(184, 2);
5016 output.WriteInt32(ImprovementRateSolutionsDistance);
5017 }
5018 if (_unknownFields != null) {
5019 _unknownFields.WriteTo(output);
5020 }
5021 #endif
5022 }
5023
5024 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5025 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5026 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5027 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
5028 if (ImprovementRateCoefficient != 0D) {
5029 output.WriteRawTag(177, 2);
5030 output.WriteDouble(ImprovementRateCoefficient);
5031 }
5032 if (ImprovementRateSolutionsDistance != 0) {
5033 output.WriteRawTag(184, 2);
5034 output.WriteInt32(ImprovementRateSolutionsDistance);
5035 }
5036 if (_unknownFields != null) {
5037 _unknownFields.WriteTo(ref output);
5038 }
5039 }
5040 #endif
5041
5042 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5043 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5044 public int CalculateSize() {
5045 int size = 0;
5046 if (ImprovementRateCoefficient != 0D) {
5047 size += 2 + 8;
5048 }
5049 if (ImprovementRateSolutionsDistance != 0) {
5050 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ImprovementRateSolutionsDistance);
5051 }
5052 if (_unknownFields != null) {
5053 size += _unknownFields.CalculateSize();
5054 }
5055 return size;
5056 }
5057
5058 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5059 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5060 public void MergeFrom(ImprovementSearchLimitParameters other) {
5061 if (other == null) {
5062 return;
5063 }
5064 if (other.ImprovementRateCoefficient != 0D) {
5065 ImprovementRateCoefficient = other.ImprovementRateCoefficient;
5066 }
5067 if (other.ImprovementRateSolutionsDistance != 0) {
5068 ImprovementRateSolutionsDistance = other.ImprovementRateSolutionsDistance;
5069 }
5070 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5071 }
5072
5073 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5074 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5075 public void MergeFrom(pb::CodedInputStream input) {
5076 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5077 input.ReadRawMessage(this);
5078 #else
5079 uint tag;
5080 while ((tag = input.ReadTag()) != 0) {
5081 if ((tag & 7) == 4) {
5082 // Abort on any end group tag.
5083 return;
5084 }
5085 switch(tag) {
5086 default:
5087 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5088 break;
5089 case 305: {
5090 ImprovementRateCoefficient = input.ReadDouble();
5091 break;
5092 }
5093 case 312: {
5094 ImprovementRateSolutionsDistance = input.ReadInt32();
5095 break;
5096 }
5097 }
5098 }
5099 #endif
5100 }
5101
5102 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5103 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5104 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5105 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
5106 uint tag;
5107 while ((tag = input.ReadTag()) != 0) {
5108 if ((tag & 7) == 4) {
5109 // Abort on any end group tag.
5110 return;
5111 }
5112 switch(tag) {
5113 default:
5114 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
5115 break;
5116 case 305: {
5117 ImprovementRateCoefficient = input.ReadDouble();
5118 break;
5119 }
5120 case 312: {
5121 ImprovementRateSolutionsDistance = input.ReadInt32();
5122 break;
5123 }
5124 }
5125 }
5126 }
5127 #endif
5128
5129 }
5130
5131 }
5132 #endregion
5133
5134 }
5135
5138
5139 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
5140 public sealed partial class RoutingModelParameters : pb::IMessage<RoutingModelParameters>
5141 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5142 , pb::IBufferMessage
5143 #endif
5144 {
5145 private static readonly pb::MessageParser<RoutingModelParameters> _parser = new pb::MessageParser<RoutingModelParameters>(() => new RoutingModelParameters());
5146 private pb::UnknownFieldSet _unknownFields;
5147 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5148 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5149 public static pb::MessageParser<RoutingModelParameters> Parser { get { return _parser; } }
5150
5151 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5152 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5153 public static pbr::MessageDescriptor Descriptor {
5154 get { return global::Google.OrTools.ConstraintSolver.RoutingParametersReflection.Descriptor.MessageTypes[1]; }
5155 }
5156
5157 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5158 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5159 pbr::MessageDescriptor pb::IMessage.Descriptor {
5160 get { return Descriptor; }
5162
5163 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5164 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5165 public RoutingModelParameters() {
5166 OnConstruction();
5167 }
5168
5169 partial void OnConstruction();
5170
5171 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5172 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5174 solverParameters_ = other.solverParameters_ != null ? other.solverParameters_.Clone() : null;
5175 reduceVehicleCostModel_ = other.reduceVehicleCostModel_;
5176 maxCallbackCacheSize_ = other.maxCallbackCacheSize_;
5177 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5178 }
5179
5180 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5181 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5182 public RoutingModelParameters Clone() {
5183 return new RoutingModelParameters(this);
5184 }
5185
5187 public const int SolverParametersFieldNumber = 1;
5188 private global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters solverParameters_;
5190 /// Parameters to use in the underlying constraint solver.
5191 /// </summary>
5192 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5193 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5195 get { return solverParameters_; }
5196 set {
5197 solverParameters_ = value;
5198 }
5199 }
5200
5203 private bool reduceVehicleCostModel_;
5208
5210 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5211 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5212 public bool ReduceVehicleCostModel {
5213 get { return reduceVehicleCostModel_; }
5214 set {
5215 reduceVehicleCostModel_ = value;
5216 }
5217 }
5218
5221 private int maxCallbackCacheSize_;
5226 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5227 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5229 get { return maxCallbackCacheSize_; }
5230 set {
5231 maxCallbackCacheSize_ = value;
5232 }
5233 }
5234
5235 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5236 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5237 public override bool Equals(object other) {
5238 return Equals(other as RoutingModelParameters);
5239 }
5240
5241 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5242 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5243 public bool Equals(RoutingModelParameters other) {
5244 if (ReferenceEquals(other, null)) {
5245 return false;
5246 }
5247 if (ReferenceEquals(other, this)) {
5248 return true;
5249 }
5250 if (!object.Equals(SolverParameters, other.SolverParameters)) return false;
5252 if (MaxCallbackCacheSize != other.MaxCallbackCacheSize) return false;
5253 return Equals(_unknownFields, other._unknownFields);
5254 }
5255
5256 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5257 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5258 public override int GetHashCode() {
5259 int hash = 1;
5260 if (solverParameters_ != null) hash ^= SolverParameters.GetHashCode();
5261 if (ReduceVehicleCostModel != false) hash ^= ReduceVehicleCostModel.GetHashCode();
5262 if (MaxCallbackCacheSize != 0) hash ^= MaxCallbackCacheSize.GetHashCode();
5263 if (_unknownFields != null) {
5264 hash ^= _unknownFields.GetHashCode();
5265 }
5266 return hash;
5267 }
5268
5269 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5270 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5271 public override string ToString() {
5272 return pb::JsonFormatter.ToDiagnosticString(this);
5273 }
5274
5275 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5276 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5277 public void WriteTo(pb::CodedOutputStream output) {
5278 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5279 output.WriteRawMessage(this);
5280 #else
5281 if (solverParameters_ != null) {
5282 output.WriteRawTag(10);
5283 output.WriteMessage(SolverParameters);
5284 }
5286 output.WriteRawTag(16);
5287 output.WriteBool(ReduceVehicleCostModel);
5288 }
5289 if (MaxCallbackCacheSize != 0) {
5290 output.WriteRawTag(24);
5291 output.WriteInt32(MaxCallbackCacheSize);
5292 }
5293 if (_unknownFields != null) {
5294 _unknownFields.WriteTo(output);
5295 }
5296 #endif
5297 }
5298
5299 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5300 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5301 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5302 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
5303 if (solverParameters_ != null) {
5304 output.WriteRawTag(10);
5305 output.WriteMessage(SolverParameters);
5306 }
5307 if (ReduceVehicleCostModel != false) {
5308 output.WriteRawTag(16);
5309 output.WriteBool(ReduceVehicleCostModel);
5310 }
5311 if (MaxCallbackCacheSize != 0) {
5312 output.WriteRawTag(24);
5313 output.WriteInt32(MaxCallbackCacheSize);
5314 }
5315 if (_unknownFields != null) {
5316 _unknownFields.WriteTo(ref output);
5317 }
5318 }
5319 #endif
5320
5321 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5322 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5323 public int CalculateSize() {
5324 int size = 0;
5325 if (solverParameters_ != null) {
5326 size += 1 + pb::CodedOutputStream.ComputeMessageSize(SolverParameters);
5327 }
5328 if (ReduceVehicleCostModel != false) {
5329 size += 1 + 1;
5330 }
5332 size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxCallbackCacheSize);
5333 }
5334 if (_unknownFields != null) {
5335 size += _unknownFields.CalculateSize();
5336 }
5337 return size;
5338 }
5339
5340 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5341 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5342 public void MergeFrom(RoutingModelParameters other) {
5343 if (other == null) {
5344 return;
5345 }
5346 if (other.solverParameters_ != null) {
5347 if (solverParameters_ == null) {
5348 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
5349 }
5350 SolverParameters.MergeFrom(other.SolverParameters);
5351 }
5352 if (other.ReduceVehicleCostModel != false) {
5353 ReduceVehicleCostModel = other.ReduceVehicleCostModel;
5354 }
5355 if (other.MaxCallbackCacheSize != 0) {
5356 MaxCallbackCacheSize = other.MaxCallbackCacheSize;
5357 }
5358 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5359 }
5360
5361 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5362 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5363 public void MergeFrom(pb::CodedInputStream input) {
5364 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5365 input.ReadRawMessage(this);
5366 #else
5367 uint tag;
5368 while ((tag = input.ReadTag()) != 0) {
5369 if ((tag & 7) == 4) {
5370 // Abort on any end group tag.
5371 return;
5372 }
5373 switch(tag) {
5374 default:
5375 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5376 break;
5377 case 10: {
5378 if (solverParameters_ == null) {
5379 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
5380 }
5381 input.ReadMessage(SolverParameters);
5382 break;
5383 }
5384 case 16: {
5385 ReduceVehicleCostModel = input.ReadBool();
5386 break;
5387 }
5388 case 24: {
5389 MaxCallbackCacheSize = input.ReadInt32();
5390 break;
5391 }
5392 }
5393 }
5394 #endif
5395 }
5396
5397 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5398 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5399 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5400 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
5401 uint tag;
5402 while ((tag = input.ReadTag()) != 0) {
5403 if ((tag & 7) == 4) {
5404 // Abort on any end group tag.
5405 return;
5406 }
5407 switch(tag) {
5408 default:
5409 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
5410 break;
5411 case 10: {
5412 if (solverParameters_ == null) {
5413 SolverParameters = new global::Google.OrTools.ConstraintSolver.ConstraintSolverParameters();
5414 }
5415 input.ReadMessage(SolverParameters);
5416 break;
5417 }
5418 case 16: {
5419 ReduceVehicleCostModel = input.ReadBool();
5420 break;
5421 }
5422 case 24: {
5423 MaxCallbackCacheSize = input.ReadInt32();
5424 break;
5425 }
5426 }
5427 }
5428 }
5429 #endif
5430
5431 }
5432
5433 #endregion
5434
5435}
5436
5437#endregion Designer generated code
global::Google.Protobuf pb
global::Google.Protobuf.Reflection pbr
global::System.Collections.Generic scg
global::Google.Protobuf.Collections pbc
Container for nested types declared in the FirstSolutionStrategy message type.
First solution strategies, used as starting point of local search.
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.
@ SortingPropertyRandom
Selects nodes in random order. This property cannot be used in conjunction with other properties.
@ 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.