Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
SatParameters.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/sat/sat_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;
12namespace Google.OrTools.Sat {
13
15 public static partial class SatParametersReflection {
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 "CiBvcnRvb2xzL3NhdC9zYXRfcGFyYW1ldGVycy5wcm90bxIXb3BlcmF0aW9u",
28 "c19yZXNlYXJjaC5zYXQioW0KDVNhdFBhcmFtZXRlcnMSDwoEbmFtZRirASAB",
29 "KAk6ABJgChhwcmVmZXJyZWRfdmFyaWFibGVfb3JkZXIYASABKA4yNC5vcGVy",
30 "YXRpb25zX3Jlc2VhcmNoLnNhdC5TYXRQYXJhbWV0ZXJzLlZhcmlhYmxlT3Jk",
31 "ZXI6CElOX09SREVSElkKEGluaXRpYWxfcG9sYXJpdHkYAiABKA4yLy5vcGVy",
32 "YXRpb25zX3Jlc2VhcmNoLnNhdC5TYXRQYXJhbWV0ZXJzLlBvbGFyaXR5Og5Q",
33 "T0xBUklUWV9GQUxTRRIeChB1c2VfcGhhc2Vfc2F2aW5nGCwgASgIOgR0cnVl",
34 "EikKGnBvbGFyaXR5X3JlcGhhc2VfaW5jcmVtZW50GKgBIAEoBToEMTAwMBIp",
35 "Chlwb2xhcml0eV9leHBsb2l0X2xzX2hpbnRzGLUCIAEoCDoFZmFsc2USIAoV",
36 "cmFuZG9tX3BvbGFyaXR5X3JhdGlvGC0gASgBOgEwEiAKFXJhbmRvbV9icmFu",
37 "Y2hlc19yYXRpbxggIAEoAToBMBIhChJ1c2VfZXJ3YV9oZXVyaXN0aWMYSyAB",
38 "KAg6BWZhbHNlEiUKGmluaXRpYWxfdmFyaWFibGVzX2FjdGl2aXR5GEwgASgB",
39 "OgEwEjYKJ2Fsc29fYnVtcF92YXJpYWJsZXNfaW5fY29uZmxpY3RfcmVhc29u",
40 "cxhNIAEoCDoFZmFsc2USbwoWbWluaW1pemF0aW9uX2FsZ29yaXRobRgEIAEo",
41 "DjJELm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LlNhdFBhcmFtZXRlcnMuQ29u",
42 "ZmxpY3RNaW5pbWl6YXRpb25BbGdvcml0aG06CVJFQ1VSU0lWRRKCAQodYmlu",
43 "YXJ5X21pbmltaXphdGlvbl9hbGdvcml0aG0YIiABKA4yQC5vcGVyYXRpb25z",
44 "X3Jlc2VhcmNoLnNhdC5TYXRQYXJhbWV0ZXJzLkJpbmFyeU1pbml6YXRpb25B",
45 "bGdvcml0aG06GUJJTkFSWV9NSU5JTUlaQVRJT05fRklSU1QSMgokc3Vic3Vt",
46 "cHRpb25fZHVyaW5nX2NvbmZsaWN0X2FuYWx5c2lzGDggASgIOgR0cnVlEiQK",
47 "FWNsYXVzZV9jbGVhbnVwX3BlcmlvZBgLIAEoBToFMTAwMDASIAoVY2xhdXNl",
48 "X2NsZWFudXBfdGFyZ2V0GA0gASgFOgEwEiIKFGNsYXVzZV9jbGVhbnVwX3Jh",
49 "dGlvGL4BIAEoAToDMC41EmsKGWNsYXVzZV9jbGVhbnVwX3Byb3RlY3Rpb24Y",
50 "OiABKA4yNy5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5TYXRQYXJhbWV0ZXJz",
51 "LkNsYXVzZVByb3RlY3Rpb246D1BST1RFQ1RJT05fTk9ORRIjChhjbGF1c2Vf",
52 "Y2xlYW51cF9sYmRfYm91bmQYOyABKAU6ATUSZwoXY2xhdXNlX2NsZWFudXBf",
53 "b3JkZXJpbmcYPCABKA4yNS5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5TYXRQ",
54 "YXJhbWV0ZXJzLkNsYXVzZU9yZGVyaW5nOg9DTEFVU0VfQUNUSVZJVFkSIQoU",
55 "cGJfY2xlYW51cF9pbmNyZW1lbnQYLiABKAU6AzIwMBIdChBwYl9jbGVhbnVw",
56 "X3JhdGlvGC8gASgBOgMwLjUSJAoXdmFyaWFibGVfYWN0aXZpdHlfZGVjYXkY",
57 "DyABKAE6AzAuOBIrChttYXhfdmFyaWFibGVfYWN0aXZpdHlfdmFsdWUYECAB",
58 "KAE6BjFlKzEwMBIfChFnbHVjb3NlX21heF9kZWNheRgWIAEoAToEMC45NRIl",
59 "ChdnbHVjb3NlX2RlY2F5X2luY3JlbWVudBgXIAEoAToEMC4wMRIsCh5nbHVj",
60 "b3NlX2RlY2F5X2luY3JlbWVudF9wZXJpb2QYGCABKAU6BDUwMDASJAoVY2xh",
61 "dXNlX2FjdGl2aXR5X2RlY2F5GBEgASgBOgUwLjk5ORIoChltYXhfY2xhdXNl",
62 "X2FjdGl2aXR5X3ZhbHVlGBIgASgBOgUxZSsyMBJTChJyZXN0YXJ0X2FsZ29y",
63 "aXRobXMYPSADKA4yNy5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5TYXRQYXJh",
64 "bWV0ZXJzLlJlc3RhcnRBbGdvcml0aG0SZQoaZGVmYXVsdF9yZXN0YXJ0X2Fs",
65 "Z29yaXRobXMYRiABKAk6QUxVQllfUkVTVEFSVCxMQkRfTU9WSU5HX0FWRVJB",
66 "R0VfUkVTVEFSVCxETF9NT1ZJTkdfQVZFUkFHRV9SRVNUQVJUEhoKDnJlc3Rh",
67 "cnRfcGVyaW9kGB4gASgFOgI1MBInChtyZXN0YXJ0X3J1bm5pbmdfd2luZG93",
68 "X3NpemUYPiABKAU6AjUwEiMKGHJlc3RhcnRfZGxfYXZlcmFnZV9yYXRpbxg/",
69 "IAEoAToBMRIkChlyZXN0YXJ0X2xiZF9hdmVyYWdlX3JhdGlvGEcgASgBOgEx",
70 "EiMKFHVzZV9ibG9ja2luZ19yZXN0YXJ0GEAgASgIOgVmYWxzZRIqChxibG9j",
71 "a2luZ19yZXN0YXJ0X3dpbmRvd19zaXplGEEgASgFOgQ1MDAwEigKG2Jsb2Nr",
72 "aW5nX3Jlc3RhcnRfbXVsdGlwbGllchhCIAEoAToDMS40EjAKJW51bV9jb25m",
73 "bGljdHNfYmVmb3JlX3N0cmF0ZWd5X2NoYW5nZXMYRCABKAU6ATASKQoec3Ry",
74 "YXRlZ3lfY2hhbmdlX2luY3JlYXNlX3JhdGlvGEUgASgBOgEwEiAKE21heF90",
75 "aW1lX2luX3NlY29uZHMYJCABKAE6A2luZhIjChZtYXhfZGV0ZXJtaW5pc3Rp",
76 "Y190aW1lGEMgASgBOgNpbmYSKQodbWF4X251bV9kZXRlcm1pbmlzdGljX2Jh",
77 "dGNoZXMYowIgASgFOgEwEjQKF21heF9udW1iZXJfb2ZfY29uZmxpY3RzGCUg",
78 "ASgDOhM5MjIzMzcyMDM2ODU0Nzc1ODA3Eh8KEG1heF9tZW1vcnlfaW5fbWIY",
79 "KCABKAM6BTEwMDAwEiMKEmFic29sdXRlX2dhcF9saW1pdBifASABKAE6BjAu",
80 "MDAwMRIeChJyZWxhdGl2ZV9nYXBfbGltaXQYoAEgASgBOgEwEhYKC3JhbmRv",
81 "bV9zZWVkGB8gASgFOgExEikKGXBlcm11dGVfdmFyaWFibGVfcmFuZG9tbHkY",
82 "sgEgASgIOgVmYWxzZRIxCiFwZXJtdXRlX3ByZXNvbHZlX2NvbnN0cmFpbnRf",
83 "b3JkZXIYswEgASgIOgVmYWxzZRIfCg91c2VfYWJzbF9yYW5kb20YtAEgASgI",
84 "OgVmYWxzZRIiChNsb2dfc2VhcmNoX3Byb2dyZXNzGCkgASgIOgVmYWxzZRIo",
85 "Chhsb2dfc3Vic29sdmVyX3N0YXRpc3RpY3MYvQEgASgIOgVmYWxzZRIVCgps",
86 "b2dfcHJlZml4GLkBIAEoCToAEhwKDWxvZ190b19zdGRvdXQYugEgASgIOgR0",
87 "cnVlEh8KD2xvZ190b19yZXNwb25zZRi7ASABKAg6BWZhbHNlEiAKEXVzZV9w",
88 "Yl9yZXNvbHV0aW9uGCsgASgIOgVmYWxzZRI2CidtaW5pbWl6ZV9yZWR1Y3Rp",
89 "b25fZHVyaW5nX3BiX3Jlc29sdXRpb24YMCABKAg6BWZhbHNlEiwKHmNvdW50",
90 "X2Fzc3VtcHRpb25fbGV2ZWxzX2luX2xiZBgxIAEoCDoEdHJ1ZRIjChZwcmVz",
91 "b2x2ZV9idmVfdGhyZXNob2xkGDYgASgFOgM1MDASLAocZmlsdGVyX3NhdF9w",
92 "b3N0c29sdmVfY2xhdXNlcxjEAiABKAg6BWZhbHNlEiUKGnByZXNvbHZlX2J2",
93 "ZV9jbGF1c2Vfd2VpZ2h0GDcgASgFOgEzEiwKIHByb2JpbmdfZGV0ZXJtaW5p",
94 "c3RpY190aW1lX2xpbWl0GOIBIAEoAToBMRI1CilwcmVzb2x2ZV9wcm9iaW5n",
95 "X2RldGVybWluaXN0aWNfdGltZV9saW1pdBg5IAEoAToCMzASJQoXcHJlc29s",
96 "dmVfYmxvY2tlZF9jbGF1c2UYWCABKAg6BHRydWUSHgoQcHJlc29sdmVfdXNl",
97 "X2J2YRhIIAEoCDoEdHJ1ZRIhChZwcmVzb2x2ZV9idmFfdGhyZXNob2xkGEkg",
98 "ASgFOgExEiMKF21heF9wcmVzb2x2ZV9pdGVyYXRpb25zGIoBIAEoBToBMxIf",
99 "ChFjcF9tb2RlbF9wcmVzb2x2ZRhWIAEoCDoEdHJ1ZRIhChZjcF9tb2RlbF9w",
100 "cm9iaW5nX2xldmVsGG4gASgFOgEyEicKGWNwX21vZGVsX3VzZV9zYXRfcHJl",
101 "c29sdmUYXSABKAg6BHRydWUSKwoccmVtb3ZlX2ZpeGVkX3ZhcmlhYmxlc19l",
102 "YXJseRi2AiABKAg6BHRydWUSJgoWZGV0ZWN0X3RhYmxlX3dpdGhfY29zdBjY",
103 "ASABKAg6BWZhbHNlEiMKF3RhYmxlX2NvbXByZXNzaW9uX2xldmVsGNkBIAEo",
104 "BToBMhIqChpleHBhbmRfYWxsZGlmZl9jb25zdHJhaW50cxiqASABKAg6BWZh",
105 "bHNlEiUKF21heF9hbGxkaWZmX2RvbWFpbl9zaXplGMACIAEoBToDMjU2EisK",
106 "HGV4cGFuZF9yZXNlcnZvaXJfY29uc3RyYWludHMYtgEgASgIOgR0cnVlEi4K",
107 "HmV4cGFuZF9yZXNlcnZvaXJfdXNpbmdfY2lyY3VpdBigAiABKAg6BWZhbHNl",
108 "Ei4KHmVuY29kZV9jdW11bGF0aXZlX2FzX3Jlc2Vydm9pchifAiABKAg6BWZh",
109 "bHNlEioKHm1heF9saW5fbWF4X3NpemVfZm9yX2V4cGFuc2lvbhiYAiABKAU6",
110 "ATASLAocZGlzYWJsZV9jb25zdHJhaW50X2V4cGFuc2lvbhi1ASABKAg6BWZh",
111 "bHNlEj0KLWVuY29kZV9jb21wbGV4X2xpbmVhcl9jb25zdHJhaW50X3dpdGhf",
112 "aW50ZWdlchjfASABKAg6BWZhbHNlEjMKG21lcmdlX25vX292ZXJsYXBfd29y",
113 "a19saW1pdBiRASABKAE6DTEwMDAwMDAwMDAwMDASMAocbWVyZ2VfYXRfbW9z",
114 "dF9vbmVfd29ya19saW1pdBiSASABKAE6CTEwMDAwMDAwMBInChtwcmVzb2x2",
115 "ZV9zdWJzdGl0dXRpb25fbGV2ZWwYkwEgASgFOgExEjQKJHByZXNvbHZlX2V4",
116 "dHJhY3RfaW50ZWdlcl9lbmZvcmNlbWVudBiuASABKAg6BWZhbHNlEjEKHXBy",
117 "ZXNvbHZlX2luY2x1c2lvbl93b3JrX2xpbWl0GMkBIAEoAzoJMTAwMDAwMDAw",
118 "EhsKDGlnbm9yZV9uYW1lcxjKASABKAg6BHRydWUSHgoPaW5mZXJfYWxsX2Rp",
119 "ZmZzGOkBIAEoCDoEdHJ1ZRImChdmaW5kX2JpZ19saW5lYXJfb3ZlcmxhcBjq",
120 "ASABKAg6BHRydWUSIwoUdXNlX3NhdF9pbnByb2Nlc3NpbmcYowEgASgIOgR0",
121 "cnVlEiYKGGlucHJvY2Vzc2luZ19kdGltZV9yYXRpbxiRAiABKAE6AzAuMhIm",
122 "ChppbnByb2Nlc3NpbmdfcHJvYmluZ19kdGltZRiSAiABKAE6ATESKwofaW5w",
123 "cm9jZXNzaW5nX21pbmltaXphdGlvbl9kdGltZRiTAiABKAE6ATESPgovaW5w",
124 "cm9jZXNzaW5nX21pbmltaXphdGlvbl91c2VfY29uZmxpY3RfYW5hbHlzaXMY",
125 "qQIgASgIOgR0cnVlEjsKK2lucHJvY2Vzc2luZ19taW5pbWl6YXRpb25fdXNl",
126 "X2FsbF9vcmRlcmluZ3MYqgIgASgIOgVmYWxzZRIXCgtudW1fd29ya2VycxjO",
127 "ASABKAU6ATASHQoSbnVtX3NlYXJjaF93b3JrZXJzGGQgASgFOgEwEh8KE251",
128 "bV9mdWxsX3N1YnNvbHZlcnMYpgIgASgFOgEwEhMKCnN1YnNvbHZlcnMYzwEg",
129 "AygJEhkKEGV4dHJhX3N1YnNvbHZlcnMY2wEgAygJEhoKEWlnbm9yZV9zdWJz",
130 "b2x2ZXJzGNEBIAMoCRIaChFmaWx0ZXJfc3Vic29sdmVycxilAiADKAkSQQoQ",
131 "c3Vic29sdmVyX3BhcmFtcxjSASADKAsyJi5vcGVyYXRpb25zX3Jlc2VhcmNo",
132 "LnNhdC5TYXRQYXJhbWV0ZXJzEiEKEWludGVybGVhdmVfc2VhcmNoGIgBIAEo",
133 "CDoFZmFsc2USIQoVaW50ZXJsZWF2ZV9iYXRjaF9zaXplGIYBIAEoBToBMBIk",
134 "ChZzaGFyZV9vYmplY3RpdmVfYm91bmRzGHEgASgIOgR0cnVlEiUKF3NoYXJl",
135 "X2xldmVsX3plcm9fYm91bmRzGHIgASgIOgR0cnVlEiMKFHNoYXJlX2JpbmFy",
136 "eV9jbGF1c2VzGMsBIAEoCDoEdHJ1ZRIiChJzaGFyZV9nbHVlX2NsYXVzZXMY",
137 "nQIgASgIOgVmYWxzZRImChdtaW5pbWl6ZV9zaGFyZWRfY2xhdXNlcxisAiAB",
138 "KAg6BHRydWUSJAoYc2hhcmVfZ2x1ZV9jbGF1c2VzX2R0aW1lGMICIAEoAToB",
139 "MRIwCiBkZWJ1Z19wb3N0c29sdmVfd2l0aF9mdWxsX3NvbHZlchiiASABKAg6",
140 "BWZhbHNlEi0KIWRlYnVnX21heF9udW1fcHJlc29sdmVfb3BlcmF0aW9ucxiX",
141 "ASABKAU6ATASJwoXZGVidWdfY3Jhc2hfb25fYmFkX2hpbnQYwwEgASgIOgVm",
142 "YWxzZRIzCiNkZWJ1Z19jcmFzaF9pZl9wcmVzb2x2ZV9icmVha3NfaGludBiy",
143 "AiABKAg6BWZhbHNlEiQKFnVzZV9vcHRpbWl6YXRpb25faGludHMYIyABKAg6",
144 "BHRydWUSIgoXY29yZV9taW5pbWl6YXRpb25fbGV2ZWwYMiABKAU6ATISIQoT",
145 "ZmluZF9tdWx0aXBsZV9jb3JlcxhUIAEoCDoEdHJ1ZRIgChJjb3Zlcl9vcHRp",
146 "bWl6YXRpb24YWSABKAg6BHRydWUSeAoYbWF4X3NhdF9hc3N1bXB0aW9uX29y",
147 "ZGVyGDMgASgOMjwub3BlcmF0aW9uc19yZXNlYXJjaC5zYXQuU2F0UGFyYW1l",
148 "dGVycy5NYXhTYXRBc3N1bXB0aW9uT3JkZXI6GERFRkFVTFRfQVNTVU1QVElP",
149 "Tl9PUkRFUhIvCiBtYXhfc2F0X3JldmVyc2VfYXNzdW1wdGlvbl9vcmRlchg0",
150 "IAEoCDoFZmFsc2USfAoWbWF4X3NhdF9zdHJhdGlmaWNhdGlvbhg1IAEoDjJE",
151 "Lm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LlNhdFBhcmFtZXRlcnMuTWF4U2F0",
152 "U3RyYXRpZmljYXRpb25BbGdvcml0aG06FlNUUkFUSUZJQ0FUSU9OX0RFU0NF",
153 "TlQSLgohcHJvcGFnYXRpb25fbG9vcF9kZXRlY3Rpb25fZmFjdG9yGN0BIAEo",
154 "AToCMTASNwopdXNlX3ByZWNlZGVuY2VzX2luX2Rpc2p1bmN0aXZlX2NvbnN0",
155 "cmFpbnQYSiABKAg6BHRydWUSQgo1bWF4X3NpemVfdG9fY3JlYXRlX3ByZWNl",
156 "ZGVuY2VfbGl0ZXJhbHNfaW5fZGlzanVuY3RpdmUY5QEgASgFOgI2MBI1CiV1",
157 "c2Vfc3Ryb25nX3Byb3BhZ2F0aW9uX2luX2Rpc2p1bmN0aXZlGOYBIAEoCDoF",
158 "ZmFsc2USNQoldXNlX2R5bmFtaWNfcHJlY2VkZW5jZV9pbl9kaXNqdW5jdGl2",
159 "ZRiHAiABKAg6BWZhbHNlEjQKJHVzZV9keW5hbWljX3ByZWNlZGVuY2VfaW5f",
160 "Y3VtdWxhdGl2ZRiMAiABKAg6BWZhbHNlEjEKInVzZV9vdmVybG9hZF9jaGVj",
161 "a2VyX2luX2N1bXVsYXRpdmUYTiABKAg6BWZhbHNlEjcKJ3VzZV9jb25zZXJ2",
162 "YXRpdmVfc2NhbGVfb3ZlcmxvYWRfY2hlY2tlchieAiABKAg6BWZhbHNlEjcK",
163 "KHVzZV90aW1ldGFibGVfZWRnZV9maW5kaW5nX2luX2N1bXVsYXRpdmUYTyAB",
164 "KAg6BWZhbHNlEjoKLG1heF9udW1faW50ZXJ2YWxzX2Zvcl90aW1ldGFibGVf",
165 "ZWRnZV9maW5kaW5nGIQCIAEoBToDMTAwEjIKInVzZV9oYXJkX3ByZWNlZGVu",
166 "Y2VzX2luX2N1bXVsYXRpdmUY1wEgASgIOgVmYWxzZRInChdleHBsb2l0X2Fs",
167 "bF9wcmVjZWRlbmNlcxjcASABKAg6BWZhbHNlEjYKKHVzZV9kaXNqdW5jdGl2",
168 "ZV9jb25zdHJhaW50X2luX2N1bXVsYXRpdmUYUCABKAg6BHRydWUSMgolbm9f",
169 "b3ZlcmxhcF8yZF9ib29sZWFuX3JlbGF0aW9uc19saW1pdBjBAiABKAU6AjEw",
170 "EjAKIHVzZV90aW1ldGFibGluZ19pbl9ub19vdmVybGFwXzJkGMgBIAEoCDoF",
171 "ZmFsc2USOAoodXNlX2VuZXJnZXRpY19yZWFzb25pbmdfaW5fbm9fb3Zlcmxh",
172 "cF8yZBjVASABKAg6BWZhbHNlEj0KLXVzZV9hcmVhX2VuZXJnZXRpY19yZWFz",
173 "b25pbmdfaW5fbm9fb3ZlcmxhcF8yZBiPAiABKAg6BWZhbHNlEjcKJ3VzZV90",
174 "cnlfZWRnZV9yZWFzb25pbmdfaW5fbm9fb3ZlcmxhcF8yZBirAiABKAg6BWZh",
175 "bHNlEjwKLW1heF9wYWlyc19wYWlyd2lzZV9yZWFzb25pbmdfaW5fbm9fb3Zl",
176 "cmxhcF8yZBiUAiABKAU6BDEyNTASQgo2bWF4aW11bV9yZWdpb25zX3RvX3Nw",
177 "bGl0X2luX2Rpc2Nvbm5lY3RlZF9ub19vdmVybGFwXzJkGLsCIAEoBToBMBI4",
178 "Cil1c2VfbGluZWFyM19mb3Jfbm9fb3ZlcmxhcF8yZF9wcmVjZWRlbmNlcxjD",
179 "AiABKAg6BHRydWUSLQoedXNlX2R1YWxfc2NoZWR1bGluZ19oZXVyaXN0aWNz",
180 "GNYBIAEoCDoEdHJ1ZRItCh11c2VfYWxsX2RpZmZlcmVudF9mb3JfY2lyY3Vp",
181 "dBi3AiABKAg6BWZhbHNlEj0KMXJvdXRpbmdfY3V0X3N1YnNldF9zaXplX2Zv",
182 "cl9iaW5hcnlfcmVsYXRpb25fYm91bmQYuAIgASgFOgEwEkMKN3JvdXRpbmdf",
183 "Y3V0X3N1YnNldF9zaXplX2Zvcl90aWdodF9iaW5hcnlfcmVsYXRpb25fYm91",
184 "bmQYuQIgASgFOgEwEkMKN3JvdXRpbmdfY3V0X3N1YnNldF9zaXplX2Zvcl9l",
185 "eGFjdF9iaW5hcnlfcmVsYXRpb25fYm91bmQYvAIgASgFOgE4EjwKMHJvdXRp",
186 "bmdfY3V0X3N1YnNldF9zaXplX2Zvcl9zaG9ydGVzdF9wYXRoc19ib3VuZBi+",
187 "AiABKAU6ATgSKAoVcm91dGluZ19jdXRfZHBfZWZmb3J0GLoCIAEoAToIMTAw",
188 "MDAwMDASMgomcm91dGluZ19jdXRfbWF4X2luZmVhc2libGVfcGF0aF9sZW5n",
189 "dGgYvQIgASgFOgE2EmIKEHNlYXJjaF9icmFuY2hpbmcYUiABKA4yNi5vcGVy",
190 "YXRpb25zX3Jlc2VhcmNoLnNhdC5TYXRQYXJhbWV0ZXJzLlNlYXJjaEJyYW5j",
191 "aGluZzoQQVVUT01BVElDX1NFQVJDSBIgChNoaW50X2NvbmZsaWN0X2xpbWl0",
192 "GJkBIAEoBToCMTASGwoLcmVwYWlyX2hpbnQYpwEgASgIOgVmYWxzZRIzCiNm",
193 "aXhfdmFyaWFibGVzX3RvX3RoZWlyX2hpbnRlZF92YWx1ZRjAASABKAg6BWZh",
194 "bHNlEiIKEnVzZV9wcm9iaW5nX3NlYXJjaBiwASABKAg6BWZhbHNlEiMKFHVz",
195 "ZV9leHRlbmRlZF9wcm9iaW5nGI0CIAEoCDoEdHJ1ZRIuCh5wcm9iaW5nX251",
196 "bV9jb21iaW5hdGlvbnNfbGltaXQYkAIgASgFOgUyMDAwMBI8CixzaGF2aW5n",
197 "X2RldGVybWluaXN0aWNfdGltZV9pbl9wcm9iaW5nX3NlYXJjaBjMASABKAE6",
198 "BTAuMDAxEi8KIXNoYXZpbmdfc2VhcmNoX2RldGVybWluaXN0aWNfdGltZRjN",
199 "ASABKAE6AzAuMRIlChhzaGF2aW5nX3NlYXJjaF90aHJlc2hvbGQYogIgASgD",
200 "OgI2NBInChd1c2Vfb2JqZWN0aXZlX2xiX3NlYXJjaBjkASABKAg6BWZhbHNl",
201 "EiwKHHVzZV9vYmplY3RpdmVfc2hhdmluZ19zZWFyY2gY/QEgASgIOgVmYWxz",
202 "ZRIkChd2YXJpYWJsZXNfc2hhdmluZ19sZXZlbBihAiABKAU6Ai0xEi4KIXBz",
203 "ZXVkb19jb3N0X3JlbGlhYmlsaXR5X3RocmVzaG9sZBh7IAEoAzoDMTAwEiEK",
204 "Em9wdGltaXplX3dpdGhfY29yZRhTIAEoCDoFZmFsc2USLAocb3B0aW1pemVf",
205 "d2l0aF9sYl90cmVlX3NlYXJjaBi8ASABKAg6BWZhbHNlEi8KH3NhdmVfbHBf",
206 "YmFzaXNfaW5fbGJfdHJlZV9zZWFyY2gYnAIgASgIOgVmYWxzZRInChtiaW5h",
207 "cnlfc2VhcmNoX251bV9jb25mbGljdHMYYyABKAU6Ai0xEiMKFG9wdGltaXpl",
208 "X3dpdGhfbWF4X2hzGFUgASgIOgVmYWxzZRIjChR1c2VfZmVhc2liaWxpdHlf",
209 "anVtcBiJAiABKAg6BHRydWUSGwoLdXNlX2xzX29ubHkY8AEgASgIOgVmYWxz",
210 "ZRIlChZmZWFzaWJpbGl0eV9qdW1wX2RlY2F5GPIBIAEoAToEMC45NRIwCiRm",
211 "ZWFzaWJpbGl0eV9qdW1wX2xpbmVhcml6YXRpb25fbGV2ZWwYgQIgASgFOgEy",
212 "EisKH2ZlYXNpYmlsaXR5X2p1bXBfcmVzdGFydF9mYWN0b3IYggIgASgFOgEx",
213 "EioKHGZlYXNpYmlsaXR5X2p1bXBfYmF0Y2hfZHRpbWUYpAIgASgBOgMwLjES",
214 "PQouZmVhc2liaWxpdHlfanVtcF92YXJfcmFuZG9taXphdGlvbl9wcm9iYWJp",
215 "bGl0eRj3ASABKAE6BDAuMDUSOwotZmVhc2liaWxpdHlfanVtcF92YXJfcGVy",
216 "YnVyYmF0aW9uX3JhbmdlX3JhdGlvGPgBIAEoAToDMC4yEi8KIGZlYXNpYmls",
217 "aXR5X2p1bXBfZW5hYmxlX3Jlc3RhcnRzGPoBIAEoCDoEdHJ1ZRI7Ci1mZWFz",
218 "aWJpbGl0eV9qdW1wX21heF9leHBhbmRlZF9jb25zdHJhaW50X3NpemUYiAIg",
219 "ASgFOgM1MDASHAoQbnVtX3Zpb2xhdGlvbl9scxj0ASABKAU6ATASLgogdmlv",
220 "bGF0aW9uX2xzX3BlcnR1cmJhdGlvbl9wZXJpb2QY+QEgASgFOgMxMDASNAom",
221 "dmlvbGF0aW9uX2xzX2NvbXBvdW5kX21vdmVfcHJvYmFiaWxpdHkYgwIgASgB",
222 "OgMwLjUSIwoXc2hhcmVkX3RyZWVfbnVtX3dvcmtlcnMY6wEgASgFOgEwEiYK",
223 "FnVzZV9zaGFyZWRfdHJlZV9zZWFyY2gY7AEgASgIOgVmYWxzZRI3CitzaGFy",
224 "ZWRfdHJlZV93b3JrZXJfbWluX3Jlc3RhcnRzX3Blcl9zdWJ0cmVlGJoCIAEo",
225 "BToBMRI2CidzaGFyZWRfdHJlZV93b3JrZXJfZW5hYmxlX3RyYWlsX3NoYXJp",
226 "bmcYpwIgASgIOgR0cnVlEjYKJ3NoYXJlZF90cmVlX3dvcmtlcl9lbmFibGVf",
227 "cGhhc2Vfc2hhcmluZxiwAiABKAg6BHRydWUSLgoic2hhcmVkX3RyZWVfb3Bl",
228 "bl9sZWF2ZXNfcGVyX3dvcmtlchiZAiABKAE6ATISMAogc2hhcmVkX3RyZWVf",
229 "bWF4X25vZGVzX3Blcl93b3JrZXIY7gEgASgFOgUxMDAwMBJ4ChpzaGFyZWRf",
230 "dHJlZV9zcGxpdF9zdHJhdGVneRjvASABKA4yPi5vcGVyYXRpb25zX3Jlc2Vh",
231 "cmNoLnNhdC5TYXRQYXJhbWV0ZXJzLlNoYXJlZFRyZWVTcGxpdFN0cmF0ZWd5",
232 "OhNTUExJVF9TVFJBVEVHWV9BVVRPEikKHXNoYXJlZF90cmVlX2JhbGFuY2Vf",
233 "dG9sZXJhbmNlGLECIAEoBToBMRImChdlbnVtZXJhdGVfYWxsX3NvbHV0aW9u",
234 "cxhXIAEoCDoFZmFsc2USNwona2VlcF9hbGxfZmVhc2libGVfc29sdXRpb25z",
235 "X2luX3ByZXNvbHZlGK0BIAEoCDoFZmFsc2USMgoiZmlsbF90aWdodGVuZWRf",
236 "ZG9tYWluc19pbl9yZXNwb25zZRiEASABKAg6BWZhbHNlEjUKJWZpbGxfYWRk",
237 "aXRpb25hbF9zb2x1dGlvbnNfaW5fcmVzcG9uc2UYwgEgASgIOgVmYWxzZRIn",
238 "ChlpbnN0YW50aWF0ZV9hbGxfdmFyaWFibGVzGGogASgIOgR0cnVlEjYKKGF1",
239 "dG9fZGV0ZWN0X2dyZWF0ZXJfdGhhbl9hdF9sZWFzdF9vbmVfb2YYXyABKAg6",
240 "BHRydWUSKAoZc3RvcF9hZnRlcl9maXJzdF9zb2x1dGlvbhhiIAEoCDoFZmFs",
241 "c2USIwoTc3RvcF9hZnRlcl9wcmVzb2x2ZRiVASABKAg6BWZhbHNlEisKG3N0",
242 "b3BfYWZ0ZXJfcm9vdF9wcm9wYWdhdGlvbhj8ASABKAg6BWZhbHNlEiQKFmxu",
243 "c19pbml0aWFsX2RpZmZpY3VsdHkYswIgASgBOgMwLjUSLQofbG5zX2luaXRp",
244 "YWxfZGV0ZXJtaW5pc3RpY19saW1pdBi0AiABKAE6AzAuMRIWCgd1c2VfbG5z",
245 "GJsCIAEoCDoEdHJ1ZRIbCgx1c2VfbG5zX29ubHkYZSABKAg6BWZhbHNlEh4K",
246 "EnNvbHV0aW9uX3Bvb2xfc2l6ZRjBASABKAU6ATMSGwoMdXNlX3JpbnNfbG5z",
247 "GIEBIAEoCDoEdHJ1ZRIjChR1c2VfZmVhc2liaWxpdHlfcHVtcBikASABKAg6",
248 "BHRydWUSHwoQdXNlX2xiX3JlbGF4X2xucxj/ASABKAg6BHRydWUSKwoebGJf",
249 "cmVsYXhfbnVtX3dvcmtlcnNfdGhyZXNob2xkGKgCIAEoBToCMTYSYwoLZnBf",
250 "cm91bmRpbmcYpQEgASgOMjcub3BlcmF0aW9uc19yZXNlYXJjaC5zYXQuU2F0",
251 "UGFyYW1ldGVycy5GUFJvdW5kaW5nTWV0aG9kOhRQUk9QQUdBVElPTl9BU1NJ",
252 "U1RFRBIkChRkaXZlcnNpZnlfbG5zX3BhcmFtcxiJASABKAg6BWZhbHNlEh8K",
253 "EHJhbmRvbWl6ZV9zZWFyY2gYZyABKAg6BWZhbHNlEisKIHNlYXJjaF9yYW5k",
254 "b21fdmFyaWFibGVfcG9vbF9zaXplGGggASgDOgEwEisKG3B1c2hfYWxsX3Rh",
255 "c2tzX3Rvd2FyZF9zdGFydBiGAiABKAg6BWZhbHNlEiUKFnVzZV9vcHRpb25h",
256 "bF92YXJpYWJsZXMYbCABKAg6BWZhbHNlEiEKE3VzZV9leGFjdF9scF9yZWFz",
257 "b24YbSABKAg6BHRydWUSJwoXdXNlX2NvbWJpbmVkX25vX292ZXJsYXAYhQEg",
258 "ASgIOgVmYWxzZRIqCh5hdF9tb3N0X29uZV9tYXhfZXhwYW5zaW9uX3NpemUY",
259 "jgIgASgFOgEzEiIKE2NhdGNoX3NpZ2ludF9zaWduYWwYhwEgASgIOgR0cnVl",
260 "EiEKEnVzZV9pbXBsaWVkX2JvdW5kcxiQASABKAg6BHRydWUSIgoScG9saXNo",
261 "X2xwX3NvbHV0aW9uGK8BIAEoCDoFZmFsc2USIwoTbHBfcHJpbWFsX3RvbGVy",
262 "YW5jZRiKAiABKAE6BTFlLTA3EiEKEWxwX2R1YWxfdG9sZXJhbmNlGIsCIAEo",
263 "AToFMWUtMDcSIAoRY29udmVydF9pbnRlcnZhbHMYsQEgASgIOgR0cnVlEhoK",
264 "DnN5bW1ldHJ5X2xldmVsGLcBIAEoBToBMhIiChJ1c2Vfc3ltbWV0cnlfaW5f",
265 "bHAYrQIgASgIOgVmYWxzZRIpChlrZWVwX3N5bW1ldHJ5X2luX3ByZXNvbHZl",
266 "GK8CIAEoCDoFZmFsc2USNworc3ltbWV0cnlfZGV0ZWN0aW9uX2RldGVybWlu",
267 "aXN0aWNfdGltZV9saW1pdBiuAiABKAE6ATESJQoWbmV3X2xpbmVhcl9wcm9w",
268 "YWdhdGlvbhjgASABKAg6BHRydWUSHwoRbGluZWFyX3NwbGl0X3NpemUYgAIg",
269 "ASgFOgMxMDASHgoTbGluZWFyaXphdGlvbl9sZXZlbBhaIAEoBToBMRIhChZi",
270 "b29sZWFuX2VuY29kaW5nX2xldmVsGGsgASgFOgExEj0KMG1heF9kb21haW5f",
271 "c2l6ZV93aGVuX2VuY29kaW5nX2VxX25lcV9jb25zdHJhaW50cxi/ASABKAU6",
272 "AjE2EhsKDG1heF9udW1fY3V0cxhbIAEoBToFMTAwMDASFQoJY3V0X2xldmVs",
273 "GMQBIAEoBToBMRIqChtvbmx5X2FkZF9jdXRzX2F0X2xldmVsX3plcm8YXCAB",
274 "KAg6BWZhbHNlEiEKEWFkZF9vYmplY3RpdmVfY3V0GMUBIAEoCDoFZmFsc2US",
275 "GQoLYWRkX2NnX2N1dHMYdSABKAg6BHRydWUSGgoMYWRkX21pcl9jdXRzGHgg",
276 "ASgIOgR0cnVlEiEKEmFkZF96ZXJvX2hhbGZfY3V0cxipASABKAg6BHRydWUS",
277 "HgoPYWRkX2NsaXF1ZV9jdXRzGKwBIAEoCDoEdHJ1ZRIbCgxhZGRfcmx0X2N1",
278 "dHMYlwIgASgIOgR0cnVlEiIKFW1heF9hbGxfZGlmZl9jdXRfc2l6ZRiUASAB",
279 "KAU6AjY0Eh8KEGFkZF9saW5fbWF4X2N1dHMYmAEgASgIOgR0cnVlEikKHG1h",
280 "eF9pbnRlZ2VyX3JvdW5kaW5nX3NjYWxpbmcYdyABKAU6AzYwMBInChlhZGRf",
281 "bHBfY29uc3RyYWludHNfbGF6aWx5GHAgASgIOgR0cnVlEiEKEnJvb3RfbHBf",
282 "aXRlcmF0aW9ucxjjASABKAU6BDIwMDASMgokbWluX29ydGhvZ29uYWxpdHlf",
283 "Zm9yX2xwX2NvbnN0cmFpbnRzGHMgASgBOgQwLjA1EigKHG1heF9jdXRfcm91",
284 "bmRzX2F0X2xldmVsX3plcm8YmgEgASgFOgExEisKHm1heF9jb25zZWN1dGl2",
285 "ZV9pbmFjdGl2ZV9jb3VudBh5IAEoBToDMTAwEjAKGmN1dF9tYXhfYWN0aXZl",
286 "X2NvdW50X3ZhbHVlGJsBIAEoAToLMTAwMDAwMDAwMDASJAoWY3V0X2FjdGl2",
287 "ZV9jb3VudF9kZWNheRicASABKAE6AzAuOBIhChJjdXRfY2xlYW51cF90YXJn",
288 "ZXQYnQEgASgFOgQxMDAwEiYKGm5ld19jb25zdHJhaW50c19iYXRjaF9zaXpl",
289 "GHogASgFOgI1MBIpChtleHBsb2l0X2ludGVnZXJfbHBfc29sdXRpb24YXiAB",
290 "KAg6BHRydWUSJQoXZXhwbG9pdF9hbGxfbHBfc29sdXRpb24YdCABKAg6BHRy",
291 "dWUSJQoVZXhwbG9pdF9iZXN0X3NvbHV0aW9uGIIBIAEoCDoFZmFsc2USKwob",
292 "ZXhwbG9pdF9yZWxheGF0aW9uX3NvbHV0aW9uGKEBIAEoCDoFZmFsc2USIAoR",
293 "ZXhwbG9pdF9vYmplY3RpdmUYgwEgASgIOgR0cnVlEikKGWRldGVjdF9saW5l",
294 "YXJpemVkX3Byb2R1Y3QYlQIgASgIOgVmYWxzZRIfCg1taXBfbWF4X2JvdW5k",
295 "GHwgASgBOggxMDAwMDAwMBIaCg9taXBfdmFyX3NjYWxpbmcYfSABKAE6ATES",
296 "JgoWbWlwX3NjYWxlX2xhcmdlX2RvbWFpbhjhASABKAg6BWZhbHNlEjAKIW1p",
297 "cF9hdXRvbWF0aWNhbGx5X3NjYWxlX3ZhcmlhYmxlcximASABKAg6BHRydWUS",
298 "HQoNb25seV9zb2x2ZV9pcBjeASABKAg6BWZhbHNlEiMKFG1pcF93YW50ZWRf",
299 "cHJlY2lzaW9uGH4gASgBOgUxZS0wNhIlChltaXBfbWF4X2FjdGl2aXR5X2V4",
300 "cG9uZW50GH8gASgFOgI1MxIkChNtaXBfY2hlY2tfcHJlY2lzaW9uGIABIAEo",
301 "AToGMC4wMDAxEi8KIG1pcF9jb21wdXRlX3RydWVfb2JqZWN0aXZlX2JvdW5k",
302 "GMYBIAEoCDoEdHJ1ZRInChdtaXBfbWF4X3ZhbGlkX21hZ25pdHVkZRjHASAB",
303 "KAE6BTFlKzIwEjsKK21pcF90cmVhdF9oaWdoX21hZ25pdHVkZV9ib3VuZHNf",
304 "YXNfaW5maW5pdHkYlgIgASgIOgVmYWxzZRIiChJtaXBfZHJvcF90b2xlcmFu",
305 "Y2UY6AEgASgBOgUxZS0xNhIeChJtaXBfcHJlc29sdmVfbGV2ZWwYhQIgASgF",
306 "OgEyIkgKDVZhcmlhYmxlT3JkZXISDAoISU5fT1JERVIQABIUChBJTl9SRVZF",
307 "UlNFX09SREVSEAESEwoPSU5fUkFORE9NX09SREVSEAIiRgoIUG9sYXJpdHkS",
308 "EQoNUE9MQVJJVFlfVFJVRRAAEhIKDlBPTEFSSVRZX0ZBTFNFEAESEwoPUE9M",
309 "QVJJVFlfUkFORE9NEAIiVgodQ29uZmxpY3RNaW5pbWl6YXRpb25BbGdvcml0",
310 "aG0SCAoETk9ORRAAEgoKBlNJTVBMRRABEg0KCVJFQ1VSU0lWRRACEhAKDEVY",
311 "UEVSSU1FTlRBTBADIuABChlCaW5hcnlNaW5pemF0aW9uQWxnb3JpdGhtEhoK",
312 "Fk5PX0JJTkFSWV9NSU5JTUlaQVRJT04QABIdChlCSU5BUllfTUlOSU1JWkFU",
313 "SU9OX0ZJUlNUEAESNwozQklOQVJZX01JTklNSVpBVElPTl9GSVJTVF9XSVRI",
314 "X1RSQU5TSVRJVkVfUkVEVUNUSU9OEAQSKQolQklOQVJZX01JTklNSVpBVElP",
315 "Tl9XSVRIX1JFQUNIQUJJTElUWRACEiQKIEVYUEVSSU1FTlRBTF9CSU5BUllf",
316 "TUlOSU1JWkFUSU9OEAMiUgoQQ2xhdXNlUHJvdGVjdGlvbhITCg9QUk9URUNU",
317 "SU9OX05PTkUQABIVChFQUk9URUNUSU9OX0FMV0FZUxABEhIKDlBST1RFQ1RJ",
318 "T05fTEJEEAIiNQoOQ2xhdXNlT3JkZXJpbmcSEwoPQ0xBVVNFX0FDVElWSVRZ",
319 "EAASDgoKQ0xBVVNFX0xCRBABIoYBChBSZXN0YXJ0QWxnb3JpdGhtEg4KCk5P",
320 "X1JFU1RBUlQQABIQCgxMVUJZX1JFU1RBUlQQARIdChlETF9NT1ZJTkdfQVZF",
321 "UkFHRV9SRVNUQVJUEAISHgoaTEJEX01PVklOR19BVkVSQUdFX1JFU1RBUlQQ",
322 "AxIRCg1GSVhFRF9SRVNUQVJUEAQidAoVTWF4U2F0QXNzdW1wdGlvbk9yZGVy",
323 "EhwKGERFRkFVTFRfQVNTVU1QVElPTl9PUkRFUhAAEh0KGU9SREVSX0FTU1VN",
324 "UFRJT05fQllfREVQVEgQARIeChpPUkRFUl9BU1NVTVBUSU9OX0JZX1dFSUdI",
325 "VBACIm8KHU1heFNhdFN0cmF0aWZpY2F0aW9uQWxnb3JpdGhtEhcKE1NUUkFU",
326 "SUZJQ0FUSU9OX05PTkUQABIaChZTVFJBVElGSUNBVElPTl9ERVNDRU5UEAES",
327 "GQoVU1RSQVRJRklDQVRJT05fQVNDRU5UEAIi4QEKD1NlYXJjaEJyYW5jaGlu",
328 "ZxIUChBBVVRPTUFUSUNfU0VBUkNIEAASEAoMRklYRURfU0VBUkNIEAESFAoQ",
329 "UE9SVEZPTElPX1NFQVJDSBACEg0KCUxQX1NFQVJDSBADEhYKElBTRVVET19D",
330 "T1NUX1NFQVJDSBAEEicKI1BPUlRGT0xJT19XSVRIX1FVSUNLX1JFU1RBUlRf",
331 "U0VBUkNIEAUSDwoLSElOVF9TRUFSQ0gQBhIYChRQQVJUSUFMX0ZJWEVEX1NF",
332 "QVJDSBAHEhUKEVJBTkRPTUlaRURfU0VBUkNIEAgiuAEKF1NoYXJlZFRyZWVT",
333 "cGxpdFN0cmF0ZWd5EhcKE1NQTElUX1NUUkFURUdZX0FVVE8QABIeChpTUExJ",
334 "VF9TVFJBVEVHWV9ESVNDUkVQQU5DWRABEh8KG1NQTElUX1NUUkFURUdZX09C",
335 "SkVDVElWRV9MQhACEiAKHFNQTElUX1NUUkFURUdZX0JBTEFOQ0VEX1RSRUUQ",
336 "AxIhCh1TUExJVF9TVFJBVEVHWV9GSVJTVF9QUk9QT1NBTBAEImgKEEZQUm91",
337 "bmRpbmdNZXRob2QSEwoPTkVBUkVTVF9JTlRFR0VSEAASDgoKTE9DS19CQVNF",
338 "RBABEhUKEUFDVElWRV9MT0NLX0JBU0VEEAMSGAoUUFJPUEFHQVRJT05fQVNT",
339 "SVNURUQQAkJrChZjb20uZ29vZ2xlLm9ydG9vbHMuc2F0UAFaOmdpdGh1Yi5j",
340 "b20vZ29vZ2xlL29yLXRvb2xzL29ydG9vbHMvc2F0L3Byb3RvL3NhdHBhcmFt",
341 "ZXRlcnOqAhJHb29nbGUuT3JUb29scy5TYXQ="));
342 descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
343 new pbr::FileDescriptor[] { },
344 new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
345 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.SatParameters), global::Google.OrTools.Sat.SatParameters.Parser, new[]{ "Name", "PreferredVariableOrder", "InitialPolarity", "UsePhaseSaving", "PolarityRephaseIncrement", "PolarityExploitLsHints", "RandomPolarityRatio", "RandomBranchesRatio", "UseErwaHeuristic", "InitialVariablesActivity", "AlsoBumpVariablesInConflictReasons", "MinimizationAlgorithm", "BinaryMinimizationAlgorithm", "SubsumptionDuringConflictAnalysis", "ClauseCleanupPeriod", "ClauseCleanupTarget", "ClauseCleanupRatio", "ClauseCleanupProtection", "ClauseCleanupLbdBound", "ClauseCleanupOrdering", "PbCleanupIncrement", "PbCleanupRatio", "VariableActivityDecay", "MaxVariableActivityValue", "GlucoseMaxDecay", "GlucoseDecayIncrement", "GlucoseDecayIncrementPeriod", "ClauseActivityDecay", "MaxClauseActivityValue", "RestartAlgorithms", "DefaultRestartAlgorithms", "RestartPeriod", "RestartRunningWindowSize", "RestartDlAverageRatio", "RestartLbdAverageRatio", "UseBlockingRestart", "BlockingRestartWindowSize", "BlockingRestartMultiplier", "NumConflictsBeforeStrategyChanges", "StrategyChangeIncreaseRatio", "MaxTimeInSeconds", "MaxDeterministicTime", "MaxNumDeterministicBatches", "MaxNumberOfConflicts", "MaxMemoryInMb", "AbsoluteGapLimit", "RelativeGapLimit", "RandomSeed", "PermuteVariableRandomly", "PermutePresolveConstraintOrder", "UseAbslRandom", "LogSearchProgress", "LogSubsolverStatistics", "LogPrefix", "LogToStdout", "LogToResponse", "UsePbResolution", "MinimizeReductionDuringPbResolution", "CountAssumptionLevelsInLbd", "PresolveBveThreshold", "FilterSatPostsolveClauses", "PresolveBveClauseWeight", "ProbingDeterministicTimeLimit", "PresolveProbingDeterministicTimeLimit", "PresolveBlockedClause", "PresolveUseBva", "PresolveBvaThreshold", "MaxPresolveIterations", "CpModelPresolve", "CpModelProbingLevel", "CpModelUseSatPresolve", "RemoveFixedVariablesEarly", "DetectTableWithCost", "TableCompressionLevel", "ExpandAlldiffConstraints", "MaxAlldiffDomainSize", "ExpandReservoirConstraints", "ExpandReservoirUsingCircuit", "EncodeCumulativeAsReservoir", "MaxLinMaxSizeForExpansion", "DisableConstraintExpansion", "EncodeComplexLinearConstraintWithInteger", "MergeNoOverlapWorkLimit", "MergeAtMostOneWorkLimit", "PresolveSubstitutionLevel", "PresolveExtractIntegerEnforcement", "PresolveInclusionWorkLimit", "IgnoreNames", "InferAllDiffs", "FindBigLinearOverlap", "UseSatInprocessing", "InprocessingDtimeRatio", "InprocessingProbingDtime", "InprocessingMinimizationDtime", "InprocessingMinimizationUseConflictAnalysis", "InprocessingMinimizationUseAllOrderings", "NumWorkers", "NumSearchWorkers", "NumFullSubsolvers", "Subsolvers", "ExtraSubsolvers", "IgnoreSubsolvers", "FilterSubsolvers", "SubsolverParams", "InterleaveSearch", "InterleaveBatchSize", "ShareObjectiveBounds", "ShareLevelZeroBounds", "ShareBinaryClauses", "ShareGlueClauses", "MinimizeSharedClauses", "ShareGlueClausesDtime", "DebugPostsolveWithFullSolver", "DebugMaxNumPresolveOperations", "DebugCrashOnBadHint", "DebugCrashIfPresolveBreaksHint", "UseOptimizationHints", "CoreMinimizationLevel", "FindMultipleCores", "CoverOptimization", "MaxSatAssumptionOrder", "MaxSatReverseAssumptionOrder", "MaxSatStratification", "PropagationLoopDetectionFactor", "UsePrecedencesInDisjunctiveConstraint", "MaxSizeToCreatePrecedenceLiteralsInDisjunctive", "UseStrongPropagationInDisjunctive", "UseDynamicPrecedenceInDisjunctive", "UseDynamicPrecedenceInCumulative", "UseOverloadCheckerInCumulative", "UseConservativeScaleOverloadChecker", "UseTimetableEdgeFindingInCumulative", "MaxNumIntervalsForTimetableEdgeFinding", "UseHardPrecedencesInCumulative", "ExploitAllPrecedences", "UseDisjunctiveConstraintInCumulative", "NoOverlap2DBooleanRelationsLimit", "UseTimetablingInNoOverlap2D", "UseEnergeticReasoningInNoOverlap2D", "UseAreaEnergeticReasoningInNoOverlap2D", "UseTryEdgeReasoningInNoOverlap2D", "MaxPairsPairwiseReasoningInNoOverlap2D", "MaximumRegionsToSplitInDisconnectedNoOverlap2D", "UseLinear3ForNoOverlap2DPrecedences", "UseDualSchedulingHeuristics", "UseAllDifferentForCircuit", "RoutingCutSubsetSizeForBinaryRelationBound", "RoutingCutSubsetSizeForTightBinaryRelationBound", "RoutingCutSubsetSizeForExactBinaryRelationBound", "RoutingCutSubsetSizeForShortestPathsBound", "RoutingCutDpEffort", "RoutingCutMaxInfeasiblePathLength", "SearchBranching", "HintConflictLimit", "RepairHint", "FixVariablesToTheirHintedValue", "UseProbingSearch", "UseExtendedProbing", "ProbingNumCombinationsLimit", "ShavingDeterministicTimeInProbingSearch", "ShavingSearchDeterministicTime", "ShavingSearchThreshold", "UseObjectiveLbSearch", "UseObjectiveShavingSearch", "VariablesShavingLevel", "PseudoCostReliabilityThreshold", "OptimizeWithCore", "OptimizeWithLbTreeSearch", "SaveLpBasisInLbTreeSearch", "BinarySearchNumConflicts", "OptimizeWithMaxHs", "UseFeasibilityJump", "UseLsOnly", "FeasibilityJumpDecay", "FeasibilityJumpLinearizationLevel", "FeasibilityJumpRestartFactor", "FeasibilityJumpBatchDtime", "FeasibilityJumpVarRandomizationProbability", "FeasibilityJumpVarPerburbationRangeRatio", "FeasibilityJumpEnableRestarts", "FeasibilityJumpMaxExpandedConstraintSize", "NumViolationLs", "ViolationLsPerturbationPeriod", "ViolationLsCompoundMoveProbability", "SharedTreeNumWorkers", "UseSharedTreeSearch", "SharedTreeWorkerMinRestartsPerSubtree", "SharedTreeWorkerEnableTrailSharing", "SharedTreeWorkerEnablePhaseSharing", "SharedTreeOpenLeavesPerWorker", "SharedTreeMaxNodesPerWorker", "SharedTreeSplitStrategy", "SharedTreeBalanceTolerance", "EnumerateAllSolutions", "KeepAllFeasibleSolutionsInPresolve", "FillTightenedDomainsInResponse", "FillAdditionalSolutionsInResponse", "InstantiateAllVariables", "AutoDetectGreaterThanAtLeastOneOf", "StopAfterFirstSolution", "StopAfterPresolve", "StopAfterRootPropagation", "LnsInitialDifficulty", "LnsInitialDeterministicLimit", "UseLns", "UseLnsOnly", "SolutionPoolSize", "UseRinsLns", "UseFeasibilityPump", "UseLbRelaxLns", "LbRelaxNumWorkersThreshold", "FpRounding", "DiversifyLnsParams", "RandomizeSearch", "SearchRandomVariablePoolSize", "PushAllTasksTowardStart", "UseOptionalVariables", "UseExactLpReason", "UseCombinedNoOverlap", "AtMostOneMaxExpansionSize", "CatchSigintSignal", "UseImpliedBounds", "PolishLpSolution", "LpPrimalTolerance", "LpDualTolerance", "ConvertIntervals", "SymmetryLevel", "UseSymmetryInLp", "KeepSymmetryInPresolve", "SymmetryDetectionDeterministicTimeLimit", "NewLinearPropagation", "LinearSplitSize", "LinearizationLevel", "BooleanEncodingLevel", "MaxDomainSizeWhenEncodingEqNeqConstraints", "MaxNumCuts", "CutLevel", "OnlyAddCutsAtLevelZero", "AddObjectiveCut", "AddCgCuts", "AddMirCuts", "AddZeroHalfCuts", "AddCliqueCuts", "AddRltCuts", "MaxAllDiffCutSize", "AddLinMaxCuts", "MaxIntegerRoundingScaling", "AddLpConstraintsLazily", "RootLpIterations", "MinOrthogonalityForLpConstraints", "MaxCutRoundsAtLevelZero", "MaxConsecutiveInactiveCount", "CutMaxActiveCountValue", "CutActiveCountDecay", "CutCleanupTarget", "NewConstraintsBatchSize", "ExploitIntegerLpSolution", "ExploitAllLpSolution", "ExploitBestSolution", "ExploitRelaxationSolution", "ExploitObjective", "DetectLinearizedProduct", "MipMaxBound", "MipVarScaling", "MipScaleLargeDomain", "MipAutomaticallyScaleVariables", "OnlySolveIp", "MipWantedPrecision", "MipMaxActivityExponent", "MipCheckPrecision", "MipComputeTrueObjectiveBound", "MipMaxValidMagnitude", "MipTreatHighMagnitudeBoundsAsInfinity", "MipDropTolerance", "MipPresolveLevel" }, null, new[]{ typeof(global::Google.OrTools.Sat.SatParameters.Types.VariableOrder), typeof(global::Google.OrTools.Sat.SatParameters.Types.Polarity), typeof(global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm), typeof(global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm), typeof(global::Google.OrTools.Sat.SatParameters.Types.ClauseProtection), typeof(global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering), typeof(global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm), typeof(global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder), typeof(global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm), typeof(global::Google.OrTools.Sat.SatParameters.Types.SearchBranching), typeof(global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy), typeof(global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod) }, null, null)
346 }));
347 }
348 #endregion
349
350 }
351 #region Messages
358 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
359 public sealed partial class SatParameters : pb::IMessage<SatParameters>
360 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
361 , pb::IBufferMessage
362 #endif
363 {
364 private static readonly pb::MessageParser<SatParameters> _parser = new pb::MessageParser<SatParameters>(() => new SatParameters());
365 private pb::UnknownFieldSet _unknownFields;
366 private int _hasBits0;
367 private int _hasBits1;
368 private int _hasBits2;
369 private int _hasBits3;
370 private int _hasBits4;
371 private int _hasBits5;
372 private int _hasBits6;
373 private int _hasBits7;
374 private int _hasBits8;
375 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
376 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
377 public static pb::MessageParser<SatParameters> Parser { get { return _parser; } }
379 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
380 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
381 public static pbr::MessageDescriptor Descriptor {
382 get { return global::Google.OrTools.Sat.SatParametersReflection.Descriptor.MessageTypes[0]; }
383 }
384
385 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
386 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
387 pbr::MessageDescriptor pb::IMessage.Descriptor {
388 get { return Descriptor; }
389 }
390
391 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
392 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
393 public SatParameters() {
394 OnConstruction();
395 }
396
397 partial void OnConstruction();
398
399 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
400 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
401 public SatParameters(SatParameters other) : this() {
402 _hasBits0 = other._hasBits0;
403 _hasBits1 = other._hasBits1;
404 _hasBits2 = other._hasBits2;
405 _hasBits3 = other._hasBits3;
406 _hasBits4 = other._hasBits4;
407 _hasBits5 = other._hasBits5;
408 _hasBits6 = other._hasBits6;
409 _hasBits7 = other._hasBits7;
410 _hasBits8 = other._hasBits8;
411 name_ = other.name_;
412 preferredVariableOrder_ = other.preferredVariableOrder_;
413 initialPolarity_ = other.initialPolarity_;
414 usePhaseSaving_ = other.usePhaseSaving_;
415 polarityRephaseIncrement_ = other.polarityRephaseIncrement_;
416 polarityExploitLsHints_ = other.polarityExploitLsHints_;
417 randomPolarityRatio_ = other.randomPolarityRatio_;
418 randomBranchesRatio_ = other.randomBranchesRatio_;
419 useErwaHeuristic_ = other.useErwaHeuristic_;
420 initialVariablesActivity_ = other.initialVariablesActivity_;
421 alsoBumpVariablesInConflictReasons_ = other.alsoBumpVariablesInConflictReasons_;
422 minimizationAlgorithm_ = other.minimizationAlgorithm_;
423 binaryMinimizationAlgorithm_ = other.binaryMinimizationAlgorithm_;
424 subsumptionDuringConflictAnalysis_ = other.subsumptionDuringConflictAnalysis_;
425 clauseCleanupPeriod_ = other.clauseCleanupPeriod_;
426 clauseCleanupTarget_ = other.clauseCleanupTarget_;
427 clauseCleanupRatio_ = other.clauseCleanupRatio_;
428 clauseCleanupProtection_ = other.clauseCleanupProtection_;
429 clauseCleanupLbdBound_ = other.clauseCleanupLbdBound_;
430 clauseCleanupOrdering_ = other.clauseCleanupOrdering_;
431 pbCleanupIncrement_ = other.pbCleanupIncrement_;
432 pbCleanupRatio_ = other.pbCleanupRatio_;
433 variableActivityDecay_ = other.variableActivityDecay_;
434 maxVariableActivityValue_ = other.maxVariableActivityValue_;
435 glucoseMaxDecay_ = other.glucoseMaxDecay_;
436 glucoseDecayIncrement_ = other.glucoseDecayIncrement_;
437 glucoseDecayIncrementPeriod_ = other.glucoseDecayIncrementPeriod_;
438 clauseActivityDecay_ = other.clauseActivityDecay_;
439 maxClauseActivityValue_ = other.maxClauseActivityValue_;
440 restartAlgorithms_ = other.restartAlgorithms_.Clone();
441 defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
442 restartPeriod_ = other.restartPeriod_;
443 restartRunningWindowSize_ = other.restartRunningWindowSize_;
444 restartDlAverageRatio_ = other.restartDlAverageRatio_;
445 restartLbdAverageRatio_ = other.restartLbdAverageRatio_;
446 useBlockingRestart_ = other.useBlockingRestart_;
447 blockingRestartWindowSize_ = other.blockingRestartWindowSize_;
448 blockingRestartMultiplier_ = other.blockingRestartMultiplier_;
449 numConflictsBeforeStrategyChanges_ = other.numConflictsBeforeStrategyChanges_;
450 strategyChangeIncreaseRatio_ = other.strategyChangeIncreaseRatio_;
451 maxTimeInSeconds_ = other.maxTimeInSeconds_;
452 maxDeterministicTime_ = other.maxDeterministicTime_;
453 maxNumDeterministicBatches_ = other.maxNumDeterministicBatches_;
454 maxNumberOfConflicts_ = other.maxNumberOfConflicts_;
455 maxMemoryInMb_ = other.maxMemoryInMb_;
456 absoluteGapLimit_ = other.absoluteGapLimit_;
457 relativeGapLimit_ = other.relativeGapLimit_;
458 randomSeed_ = other.randomSeed_;
459 permuteVariableRandomly_ = other.permuteVariableRandomly_;
460 permutePresolveConstraintOrder_ = other.permutePresolveConstraintOrder_;
461 useAbslRandom_ = other.useAbslRandom_;
462 logSearchProgress_ = other.logSearchProgress_;
463 logSubsolverStatistics_ = other.logSubsolverStatistics_;
464 logPrefix_ = other.logPrefix_;
465 logToStdout_ = other.logToStdout_;
466 logToResponse_ = other.logToResponse_;
467 usePbResolution_ = other.usePbResolution_;
468 minimizeReductionDuringPbResolution_ = other.minimizeReductionDuringPbResolution_;
469 countAssumptionLevelsInLbd_ = other.countAssumptionLevelsInLbd_;
470 presolveBveThreshold_ = other.presolveBveThreshold_;
471 filterSatPostsolveClauses_ = other.filterSatPostsolveClauses_;
472 presolveBveClauseWeight_ = other.presolveBveClauseWeight_;
473 probingDeterministicTimeLimit_ = other.probingDeterministicTimeLimit_;
474 presolveProbingDeterministicTimeLimit_ = other.presolveProbingDeterministicTimeLimit_;
475 presolveBlockedClause_ = other.presolveBlockedClause_;
476 presolveUseBva_ = other.presolveUseBva_;
477 presolveBvaThreshold_ = other.presolveBvaThreshold_;
478 maxPresolveIterations_ = other.maxPresolveIterations_;
479 cpModelPresolve_ = other.cpModelPresolve_;
480 cpModelProbingLevel_ = other.cpModelProbingLevel_;
481 cpModelUseSatPresolve_ = other.cpModelUseSatPresolve_;
482 removeFixedVariablesEarly_ = other.removeFixedVariablesEarly_;
483 detectTableWithCost_ = other.detectTableWithCost_;
484 tableCompressionLevel_ = other.tableCompressionLevel_;
485 expandAlldiffConstraints_ = other.expandAlldiffConstraints_;
486 maxAlldiffDomainSize_ = other.maxAlldiffDomainSize_;
487 expandReservoirConstraints_ = other.expandReservoirConstraints_;
488 expandReservoirUsingCircuit_ = other.expandReservoirUsingCircuit_;
489 encodeCumulativeAsReservoir_ = other.encodeCumulativeAsReservoir_;
490 maxLinMaxSizeForExpansion_ = other.maxLinMaxSizeForExpansion_;
491 disableConstraintExpansion_ = other.disableConstraintExpansion_;
492 encodeComplexLinearConstraintWithInteger_ = other.encodeComplexLinearConstraintWithInteger_;
493 mergeNoOverlapWorkLimit_ = other.mergeNoOverlapWorkLimit_;
494 mergeAtMostOneWorkLimit_ = other.mergeAtMostOneWorkLimit_;
495 presolveSubstitutionLevel_ = other.presolveSubstitutionLevel_;
496 presolveExtractIntegerEnforcement_ = other.presolveExtractIntegerEnforcement_;
497 presolveInclusionWorkLimit_ = other.presolveInclusionWorkLimit_;
498 ignoreNames_ = other.ignoreNames_;
499 inferAllDiffs_ = other.inferAllDiffs_;
500 findBigLinearOverlap_ = other.findBigLinearOverlap_;
501 useSatInprocessing_ = other.useSatInprocessing_;
502 inprocessingDtimeRatio_ = other.inprocessingDtimeRatio_;
503 inprocessingProbingDtime_ = other.inprocessingProbingDtime_;
504 inprocessingMinimizationDtime_ = other.inprocessingMinimizationDtime_;
505 inprocessingMinimizationUseConflictAnalysis_ = other.inprocessingMinimizationUseConflictAnalysis_;
506 inprocessingMinimizationUseAllOrderings_ = other.inprocessingMinimizationUseAllOrderings_;
507 numWorkers_ = other.numWorkers_;
508 numSearchWorkers_ = other.numSearchWorkers_;
509 numFullSubsolvers_ = other.numFullSubsolvers_;
510 subsolvers_ = other.subsolvers_.Clone();
511 extraSubsolvers_ = other.extraSubsolvers_.Clone();
512 ignoreSubsolvers_ = other.ignoreSubsolvers_.Clone();
513 filterSubsolvers_ = other.filterSubsolvers_.Clone();
514 subsolverParams_ = other.subsolverParams_.Clone();
515 interleaveSearch_ = other.interleaveSearch_;
516 interleaveBatchSize_ = other.interleaveBatchSize_;
517 shareObjectiveBounds_ = other.shareObjectiveBounds_;
518 shareLevelZeroBounds_ = other.shareLevelZeroBounds_;
519 shareBinaryClauses_ = other.shareBinaryClauses_;
520 shareGlueClauses_ = other.shareGlueClauses_;
521 minimizeSharedClauses_ = other.minimizeSharedClauses_;
522 shareGlueClausesDtime_ = other.shareGlueClausesDtime_;
523 debugPostsolveWithFullSolver_ = other.debugPostsolveWithFullSolver_;
524 debugMaxNumPresolveOperations_ = other.debugMaxNumPresolveOperations_;
525 debugCrashOnBadHint_ = other.debugCrashOnBadHint_;
526 debugCrashIfPresolveBreaksHint_ = other.debugCrashIfPresolveBreaksHint_;
527 useOptimizationHints_ = other.useOptimizationHints_;
528 coreMinimizationLevel_ = other.coreMinimizationLevel_;
529 findMultipleCores_ = other.findMultipleCores_;
530 coverOptimization_ = other.coverOptimization_;
531 maxSatAssumptionOrder_ = other.maxSatAssumptionOrder_;
532 maxSatReverseAssumptionOrder_ = other.maxSatReverseAssumptionOrder_;
533 maxSatStratification_ = other.maxSatStratification_;
534 propagationLoopDetectionFactor_ = other.propagationLoopDetectionFactor_;
535 usePrecedencesInDisjunctiveConstraint_ = other.usePrecedencesInDisjunctiveConstraint_;
536 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = other.maxSizeToCreatePrecedenceLiteralsInDisjunctive_;
537 useStrongPropagationInDisjunctive_ = other.useStrongPropagationInDisjunctive_;
538 useDynamicPrecedenceInDisjunctive_ = other.useDynamicPrecedenceInDisjunctive_;
539 useDynamicPrecedenceInCumulative_ = other.useDynamicPrecedenceInCumulative_;
540 useOverloadCheckerInCumulative_ = other.useOverloadCheckerInCumulative_;
541 useConservativeScaleOverloadChecker_ = other.useConservativeScaleOverloadChecker_;
542 useTimetableEdgeFindingInCumulative_ = other.useTimetableEdgeFindingInCumulative_;
543 maxNumIntervalsForTimetableEdgeFinding_ = other.maxNumIntervalsForTimetableEdgeFinding_;
544 useHardPrecedencesInCumulative_ = other.useHardPrecedencesInCumulative_;
545 exploitAllPrecedences_ = other.exploitAllPrecedences_;
546 useDisjunctiveConstraintInCumulative_ = other.useDisjunctiveConstraintInCumulative_;
547 noOverlap2DBooleanRelationsLimit_ = other.noOverlap2DBooleanRelationsLimit_;
548 useTimetablingInNoOverlap2D_ = other.useTimetablingInNoOverlap2D_;
549 useEnergeticReasoningInNoOverlap2D_ = other.useEnergeticReasoningInNoOverlap2D_;
550 useAreaEnergeticReasoningInNoOverlap2D_ = other.useAreaEnergeticReasoningInNoOverlap2D_;
551 useTryEdgeReasoningInNoOverlap2D_ = other.useTryEdgeReasoningInNoOverlap2D_;
552 maxPairsPairwiseReasoningInNoOverlap2D_ = other.maxPairsPairwiseReasoningInNoOverlap2D_;
553 maximumRegionsToSplitInDisconnectedNoOverlap2D_ = other.maximumRegionsToSplitInDisconnectedNoOverlap2D_;
554 useLinear3ForNoOverlap2DPrecedences_ = other.useLinear3ForNoOverlap2DPrecedences_;
555 useDualSchedulingHeuristics_ = other.useDualSchedulingHeuristics_;
556 useAllDifferentForCircuit_ = other.useAllDifferentForCircuit_;
557 routingCutSubsetSizeForBinaryRelationBound_ = other.routingCutSubsetSizeForBinaryRelationBound_;
558 routingCutSubsetSizeForTightBinaryRelationBound_ = other.routingCutSubsetSizeForTightBinaryRelationBound_;
559 routingCutSubsetSizeForExactBinaryRelationBound_ = other.routingCutSubsetSizeForExactBinaryRelationBound_;
560 routingCutSubsetSizeForShortestPathsBound_ = other.routingCutSubsetSizeForShortestPathsBound_;
561 routingCutDpEffort_ = other.routingCutDpEffort_;
562 routingCutMaxInfeasiblePathLength_ = other.routingCutMaxInfeasiblePathLength_;
563 searchBranching_ = other.searchBranching_;
564 hintConflictLimit_ = other.hintConflictLimit_;
565 repairHint_ = other.repairHint_;
566 fixVariablesToTheirHintedValue_ = other.fixVariablesToTheirHintedValue_;
567 useProbingSearch_ = other.useProbingSearch_;
568 useExtendedProbing_ = other.useExtendedProbing_;
569 probingNumCombinationsLimit_ = other.probingNumCombinationsLimit_;
570 shavingDeterministicTimeInProbingSearch_ = other.shavingDeterministicTimeInProbingSearch_;
571 shavingSearchDeterministicTime_ = other.shavingSearchDeterministicTime_;
572 shavingSearchThreshold_ = other.shavingSearchThreshold_;
573 useObjectiveLbSearch_ = other.useObjectiveLbSearch_;
574 useObjectiveShavingSearch_ = other.useObjectiveShavingSearch_;
575 variablesShavingLevel_ = other.variablesShavingLevel_;
576 pseudoCostReliabilityThreshold_ = other.pseudoCostReliabilityThreshold_;
577 optimizeWithCore_ = other.optimizeWithCore_;
578 optimizeWithLbTreeSearch_ = other.optimizeWithLbTreeSearch_;
579 saveLpBasisInLbTreeSearch_ = other.saveLpBasisInLbTreeSearch_;
580 binarySearchNumConflicts_ = other.binarySearchNumConflicts_;
581 optimizeWithMaxHs_ = other.optimizeWithMaxHs_;
582 useFeasibilityJump_ = other.useFeasibilityJump_;
583 useLsOnly_ = other.useLsOnly_;
584 feasibilityJumpDecay_ = other.feasibilityJumpDecay_;
585 feasibilityJumpLinearizationLevel_ = other.feasibilityJumpLinearizationLevel_;
586 feasibilityJumpRestartFactor_ = other.feasibilityJumpRestartFactor_;
587 feasibilityJumpBatchDtime_ = other.feasibilityJumpBatchDtime_;
588 feasibilityJumpVarRandomizationProbability_ = other.feasibilityJumpVarRandomizationProbability_;
589 feasibilityJumpVarPerburbationRangeRatio_ = other.feasibilityJumpVarPerburbationRangeRatio_;
590 feasibilityJumpEnableRestarts_ = other.feasibilityJumpEnableRestarts_;
591 feasibilityJumpMaxExpandedConstraintSize_ = other.feasibilityJumpMaxExpandedConstraintSize_;
592 numViolationLs_ = other.numViolationLs_;
593 violationLsPerturbationPeriod_ = other.violationLsPerturbationPeriod_;
594 violationLsCompoundMoveProbability_ = other.violationLsCompoundMoveProbability_;
595 sharedTreeNumWorkers_ = other.sharedTreeNumWorkers_;
596 useSharedTreeSearch_ = other.useSharedTreeSearch_;
597 sharedTreeWorkerMinRestartsPerSubtree_ = other.sharedTreeWorkerMinRestartsPerSubtree_;
598 sharedTreeWorkerEnableTrailSharing_ = other.sharedTreeWorkerEnableTrailSharing_;
599 sharedTreeWorkerEnablePhaseSharing_ = other.sharedTreeWorkerEnablePhaseSharing_;
600 sharedTreeOpenLeavesPerWorker_ = other.sharedTreeOpenLeavesPerWorker_;
601 sharedTreeMaxNodesPerWorker_ = other.sharedTreeMaxNodesPerWorker_;
602 sharedTreeSplitStrategy_ = other.sharedTreeSplitStrategy_;
603 sharedTreeBalanceTolerance_ = other.sharedTreeBalanceTolerance_;
604 enumerateAllSolutions_ = other.enumerateAllSolutions_;
605 keepAllFeasibleSolutionsInPresolve_ = other.keepAllFeasibleSolutionsInPresolve_;
606 fillTightenedDomainsInResponse_ = other.fillTightenedDomainsInResponse_;
607 fillAdditionalSolutionsInResponse_ = other.fillAdditionalSolutionsInResponse_;
608 instantiateAllVariables_ = other.instantiateAllVariables_;
609 autoDetectGreaterThanAtLeastOneOf_ = other.autoDetectGreaterThanAtLeastOneOf_;
610 stopAfterFirstSolution_ = other.stopAfterFirstSolution_;
611 stopAfterPresolve_ = other.stopAfterPresolve_;
612 stopAfterRootPropagation_ = other.stopAfterRootPropagation_;
613 lnsInitialDifficulty_ = other.lnsInitialDifficulty_;
614 lnsInitialDeterministicLimit_ = other.lnsInitialDeterministicLimit_;
615 useLns_ = other.useLns_;
616 useLnsOnly_ = other.useLnsOnly_;
617 solutionPoolSize_ = other.solutionPoolSize_;
618 useRinsLns_ = other.useRinsLns_;
619 useFeasibilityPump_ = other.useFeasibilityPump_;
620 useLbRelaxLns_ = other.useLbRelaxLns_;
621 lbRelaxNumWorkersThreshold_ = other.lbRelaxNumWorkersThreshold_;
622 fpRounding_ = other.fpRounding_;
623 diversifyLnsParams_ = other.diversifyLnsParams_;
624 randomizeSearch_ = other.randomizeSearch_;
625 searchRandomVariablePoolSize_ = other.searchRandomVariablePoolSize_;
626 pushAllTasksTowardStart_ = other.pushAllTasksTowardStart_;
627 useOptionalVariables_ = other.useOptionalVariables_;
628 useExactLpReason_ = other.useExactLpReason_;
629 useCombinedNoOverlap_ = other.useCombinedNoOverlap_;
630 atMostOneMaxExpansionSize_ = other.atMostOneMaxExpansionSize_;
631 catchSigintSignal_ = other.catchSigintSignal_;
632 useImpliedBounds_ = other.useImpliedBounds_;
633 polishLpSolution_ = other.polishLpSolution_;
634 lpPrimalTolerance_ = other.lpPrimalTolerance_;
635 lpDualTolerance_ = other.lpDualTolerance_;
636 convertIntervals_ = other.convertIntervals_;
637 symmetryLevel_ = other.symmetryLevel_;
638 useSymmetryInLp_ = other.useSymmetryInLp_;
639 keepSymmetryInPresolve_ = other.keepSymmetryInPresolve_;
640 symmetryDetectionDeterministicTimeLimit_ = other.symmetryDetectionDeterministicTimeLimit_;
641 newLinearPropagation_ = other.newLinearPropagation_;
642 linearSplitSize_ = other.linearSplitSize_;
643 linearizationLevel_ = other.linearizationLevel_;
644 booleanEncodingLevel_ = other.booleanEncodingLevel_;
645 maxDomainSizeWhenEncodingEqNeqConstraints_ = other.maxDomainSizeWhenEncodingEqNeqConstraints_;
646 maxNumCuts_ = other.maxNumCuts_;
647 cutLevel_ = other.cutLevel_;
648 onlyAddCutsAtLevelZero_ = other.onlyAddCutsAtLevelZero_;
649 addObjectiveCut_ = other.addObjectiveCut_;
650 addCgCuts_ = other.addCgCuts_;
651 addMirCuts_ = other.addMirCuts_;
652 addZeroHalfCuts_ = other.addZeroHalfCuts_;
653 addCliqueCuts_ = other.addCliqueCuts_;
654 addRltCuts_ = other.addRltCuts_;
655 maxAllDiffCutSize_ = other.maxAllDiffCutSize_;
656 addLinMaxCuts_ = other.addLinMaxCuts_;
657 maxIntegerRoundingScaling_ = other.maxIntegerRoundingScaling_;
658 addLpConstraintsLazily_ = other.addLpConstraintsLazily_;
659 rootLpIterations_ = other.rootLpIterations_;
660 minOrthogonalityForLpConstraints_ = other.minOrthogonalityForLpConstraints_;
661 maxCutRoundsAtLevelZero_ = other.maxCutRoundsAtLevelZero_;
662 maxConsecutiveInactiveCount_ = other.maxConsecutiveInactiveCount_;
663 cutMaxActiveCountValue_ = other.cutMaxActiveCountValue_;
664 cutActiveCountDecay_ = other.cutActiveCountDecay_;
665 cutCleanupTarget_ = other.cutCleanupTarget_;
666 newConstraintsBatchSize_ = other.newConstraintsBatchSize_;
667 exploitIntegerLpSolution_ = other.exploitIntegerLpSolution_;
668 exploitAllLpSolution_ = other.exploitAllLpSolution_;
669 exploitBestSolution_ = other.exploitBestSolution_;
670 exploitRelaxationSolution_ = other.exploitRelaxationSolution_;
671 exploitObjective_ = other.exploitObjective_;
672 detectLinearizedProduct_ = other.detectLinearizedProduct_;
673 mipMaxBound_ = other.mipMaxBound_;
674 mipVarScaling_ = other.mipVarScaling_;
675 mipScaleLargeDomain_ = other.mipScaleLargeDomain_;
676 mipAutomaticallyScaleVariables_ = other.mipAutomaticallyScaleVariables_;
677 onlySolveIp_ = other.onlySolveIp_;
678 mipWantedPrecision_ = other.mipWantedPrecision_;
679 mipMaxActivityExponent_ = other.mipMaxActivityExponent_;
680 mipCheckPrecision_ = other.mipCheckPrecision_;
681 mipComputeTrueObjectiveBound_ = other.mipComputeTrueObjectiveBound_;
682 mipMaxValidMagnitude_ = other.mipMaxValidMagnitude_;
683 mipTreatHighMagnitudeBoundsAsInfinity_ = other.mipTreatHighMagnitudeBoundsAsInfinity_;
684 mipDropTolerance_ = other.mipDropTolerance_;
685 mipPresolveLevel_ = other.mipPresolveLevel_;
686 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
687 }
688
689 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
690 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
691 public SatParameters Clone() {
692 return new SatParameters(this);
693 }
694
695
696 public const int NameFieldNumber = 171;
697 private readonly static string NameDefaultValue = "";
698
699 private string name_;
704 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
705 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
706 public string Name {
707 get { return name_ ?? NameDefaultValue; }
708 set {
709 name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
710 }
711 }
713 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
714 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
715 public bool HasName {
716 get { return name_ != null; }
717 }
719 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
720 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
721 public void ClearName() {
722 name_ = null;
723 }
724
725
726 public const int PreferredVariableOrderFieldNumber = 1;
727 private readonly static global::Google.OrTools.Sat.SatParameters.Types.VariableOrder PreferredVariableOrderDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.VariableOrder.InOrder;
728
729 private global::Google.OrTools.Sat.SatParameters.Types.VariableOrder preferredVariableOrder_;
730 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
731 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
733 get { if ((_hasBits0 & 1) != 0) { return preferredVariableOrder_; } else { return PreferredVariableOrderDefaultValue; } }
734 set {
735 _hasBits0 |= 1;
736 preferredVariableOrder_ = value;
737 }
738 }
740 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
741 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
742 public bool HasPreferredVariableOrder {
743 get { return (_hasBits0 & 1) != 0; }
744 }
746 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
747 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
748 public void ClearPreferredVariableOrder() {
749 _hasBits0 &= ~1;
750 }
751
752
753 public const int InitialPolarityFieldNumber = 2;
754 private readonly static global::Google.OrTools.Sat.SatParameters.Types.Polarity InitialPolarityDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.Polarity.False;
755
756 private global::Google.OrTools.Sat.SatParameters.Types.Polarity initialPolarity_;
757 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
758 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
759 public global::Google.OrTools.Sat.SatParameters.Types.Polarity InitialPolarity {
760 get { if ((_hasBits0 & 2) != 0) { return initialPolarity_; } else { return InitialPolarityDefaultValue; } }
761 set {
762 _hasBits0 |= 2;
763 initialPolarity_ = value;
764 }
765 }
767 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
768 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
769 public bool HasInitialPolarity {
770 get { return (_hasBits0 & 2) != 0; }
771 }
773 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
774 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
775 public void ClearInitialPolarity() {
776 _hasBits0 &= ~2;
777 }
778
779
780 public const int UsePhaseSavingFieldNumber = 44;
781 private readonly static bool UsePhaseSavingDefaultValue = true;
782
783 private bool usePhaseSaving_;
797 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
798 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
799 public bool UsePhaseSaving {
800 get { if ((_hasBits0 & 4194304) != 0) { return usePhaseSaving_; } else { return UsePhaseSavingDefaultValue; } }
801 set {
802 _hasBits0 |= 4194304;
803 usePhaseSaving_ = value;
804 }
805 }
807 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
808 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
809 public bool HasUsePhaseSaving {
810 get { return (_hasBits0 & 4194304) != 0; }
811 }
812 /// <summary>Clears the value of the "use_phase_saving" field</summary>
813 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
814 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
815 public void ClearUsePhaseSaving() {
816 _hasBits0 &= ~4194304;
817 }
820 public const int PolarityRephaseIncrementFieldNumber = 168;
821 private readonly static int PolarityRephaseIncrementDefaultValue = 1000;
822
823 private int polarityRephaseIncrement_;
829 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
830 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
831 public int PolarityRephaseIncrement {
832 get { if ((_hasBits4 & 4) != 0) { return polarityRephaseIncrement_; } else { return PolarityRephaseIncrementDefaultValue; } }
833 set {
834 _hasBits4 |= 4;
835 polarityRephaseIncrement_ = value;
836 }
837 }
839 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
840 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
841 public bool HasPolarityRephaseIncrement {
842 get { return (_hasBits4 & 4) != 0; }
843 }
844 /// <summary>Clears the value of the "polarity_rephase_increment" field</summary>
845 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
846 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
847 public void ClearPolarityRephaseIncrement() {
848 _hasBits4 &= ~4;
849 }
852 public const int PolarityExploitLsHintsFieldNumber = 309;
853 private readonly static bool PolarityExploitLsHintsDefaultValue = false;
854
855 private bool polarityExploitLsHints_;
860 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
861 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
862 public bool PolarityExploitLsHints {
863 get { if ((_hasBits7 & 134217728) != 0) { return polarityExploitLsHints_; } else { return PolarityExploitLsHintsDefaultValue; } }
864 set {
865 _hasBits7 |= 134217728;
866 polarityExploitLsHints_ = value;
867 }
868 }
870 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
871 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
872 public bool HasPolarityExploitLsHints {
873 get { return (_hasBits7 & 134217728) != 0; }
874 }
875 /// <summary>Clears the value of the "polarity_exploit_ls_hints" field</summary>
876 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
877 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
878 public void ClearPolarityExploitLsHints() {
879 _hasBits7 &= ~134217728;
880 }
883 public const int RandomPolarityRatioFieldNumber = 45;
884 private readonly static double RandomPolarityRatioDefaultValue = 0D;
885
886 private double randomPolarityRatio_;
894 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
895 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
896 public double RandomPolarityRatio {
897 get { if ((_hasBits0 & 8388608) != 0) { return randomPolarityRatio_; } else { return RandomPolarityRatioDefaultValue; } }
898 set {
899 _hasBits0 |= 8388608;
900 randomPolarityRatio_ = value;
901 }
902 }
904 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
905 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
906 public bool HasRandomPolarityRatio {
907 get { return (_hasBits0 & 8388608) != 0; }
908 }
909 /// <summary>Clears the value of the "random_polarity_ratio" field</summary>
910 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
911 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
912 public void ClearRandomPolarityRatio() {
913 _hasBits0 &= ~8388608;
914 }
917 public const int RandomBranchesRatioFieldNumber = 32;
918 private readonly static double RandomBranchesRatioDefaultValue = 0D;
919
920 private double randomBranchesRatio_;
926 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
927 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
928 public double RandomBranchesRatio {
929 get { if ((_hasBits0 & 16384) != 0) { return randomBranchesRatio_; } else { return RandomBranchesRatioDefaultValue; } }
930 set {
931 _hasBits0 |= 16384;
932 randomBranchesRatio_ = value;
933 }
934 }
936 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
937 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
938 public bool HasRandomBranchesRatio {
939 get { return (_hasBits0 & 16384) != 0; }
940 }
941 /// <summary>Clears the value of the "random_branches_ratio" field</summary>
942 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
943 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
944 public void ClearRandomBranchesRatio() {
945 _hasBits0 &= ~16384;
946 }
949 public const int UseErwaHeuristicFieldNumber = 75;
950 private readonly static bool UseErwaHeuristicDefaultValue = false;
951
952 private bool useErwaHeuristic_;
958 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
959 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
960 public bool UseErwaHeuristic {
961 get { if ((_hasBits1 & 524288) != 0) { return useErwaHeuristic_; } else { return UseErwaHeuristicDefaultValue; } }
962 set {
963 _hasBits1 |= 524288;
964 useErwaHeuristic_ = value;
965 }
966 }
968 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
969 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
970 public bool HasUseErwaHeuristic {
971 get { return (_hasBits1 & 524288) != 0; }
972 }
973 /// <summary>Clears the value of the "use_erwa_heuristic" field</summary>
974 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
975 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
976 public void ClearUseErwaHeuristic() {
977 _hasBits1 &= ~524288;
978 }
981 public const int InitialVariablesActivityFieldNumber = 76;
982 private readonly static double InitialVariablesActivityDefaultValue = 0D;
983
984 private double initialVariablesActivity_;
993 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
994 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
995 public double InitialVariablesActivity {
996 get { if ((_hasBits1 & 1048576) != 0) { return initialVariablesActivity_; } else { return InitialVariablesActivityDefaultValue; } }
997 set {
998 _hasBits1 |= 1048576;
999 initialVariablesActivity_ = value;
1000 }
1001 }
1003 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1004 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1005 public bool HasInitialVariablesActivity {
1006 get { return (_hasBits1 & 1048576) != 0; }
1007 }
1008 /// <summary>Clears the value of the "initial_variables_activity" field</summary>
1009 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1010 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1011 public void ClearInitialVariablesActivity() {
1012 _hasBits1 &= ~1048576;
1013 }
1017 private readonly static bool AlsoBumpVariablesInConflictReasonsDefaultValue = false;
1018
1019 private bool alsoBumpVariablesInConflictReasons_;
1026 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1027 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1029 get { if ((_hasBits1 & 2097152) != 0) { return alsoBumpVariablesInConflictReasons_; } else { return AlsoBumpVariablesInConflictReasonsDefaultValue; } }
1030 set {
1031 _hasBits1 |= 2097152;
1032 alsoBumpVariablesInConflictReasons_ = value;
1033 }
1034 }
1036 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1037 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1038 public bool HasAlsoBumpVariablesInConflictReasons {
1039 get { return (_hasBits1 & 2097152) != 0; }
1040 }
1041 /// <summary>Clears the value of the "also_bump_variables_in_conflict_reasons" field</summary>
1042 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1043 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1045 _hasBits1 &= ~2097152;
1046 }
1049 public const int MinimizationAlgorithmFieldNumber = 4;
1050 private readonly static global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm MinimizationAlgorithmDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm.Recursive;
1051
1052 private global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm minimizationAlgorithm_;
1053 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1054 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1056 get { if ((_hasBits0 & 4) != 0) { return minimizationAlgorithm_; } else { return MinimizationAlgorithmDefaultValue; } }
1057 set {
1058 _hasBits0 |= 4;
1059 minimizationAlgorithm_ = value;
1060 }
1061 }
1063 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1064 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1065 public bool HasMinimizationAlgorithm {
1066 get { return (_hasBits0 & 4) != 0; }
1067 }
1068 /// <summary>Clears the value of the "minimization_algorithm" field</summary>
1069 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1070 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1071 public void ClearMinimizationAlgorithm() {
1072 _hasBits0 &= ~4;
1073 }
1076 public const int BinaryMinimizationAlgorithmFieldNumber = 34;
1077 private readonly static global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm BinaryMinimizationAlgorithmDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm.BinaryMinimizationFirst;
1078
1079 private global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm binaryMinimizationAlgorithm_;
1080 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1081 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1083 get { if ((_hasBits0 & 32768) != 0) { return binaryMinimizationAlgorithm_; } else { return BinaryMinimizationAlgorithmDefaultValue; } }
1084 set {
1085 _hasBits0 |= 32768;
1086 binaryMinimizationAlgorithm_ = value;
1087 }
1088 }
1090 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1091 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1092 public bool HasBinaryMinimizationAlgorithm {
1093 get { return (_hasBits0 & 32768) != 0; }
1094 }
1095 /// <summary>Clears the value of the "binary_minimization_algorithm" field</summary>
1096 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1097 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1098 public void ClearBinaryMinimizationAlgorithm() {
1099 _hasBits0 &= ~32768;
1100 }
1104 private readonly static bool SubsumptionDuringConflictAnalysisDefaultValue = true;
1105
1106 private bool subsumptionDuringConflictAnalysis_;
1113 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1114 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1116 get { if ((_hasBits1 & 4) != 0) { return subsumptionDuringConflictAnalysis_; } else { return SubsumptionDuringConflictAnalysisDefaultValue; } }
1117 set {
1118 _hasBits1 |= 4;
1119 subsumptionDuringConflictAnalysis_ = value;
1120 }
1121 }
1123 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1124 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1125 public bool HasSubsumptionDuringConflictAnalysis {
1126 get { return (_hasBits1 & 4) != 0; }
1127 }
1128 /// <summary>Clears the value of the "subsumption_during_conflict_analysis" field</summary>
1129 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1130 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1132 _hasBits1 &= ~4;
1133 }
1136 public const int ClauseCleanupPeriodFieldNumber = 11;
1137 private readonly static int ClauseCleanupPeriodDefaultValue = 10000;
1138
1139 private int clauseCleanupPeriod_;
1143 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1144 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1145 public int ClauseCleanupPeriod {
1146 get { if ((_hasBits0 & 8) != 0) { return clauseCleanupPeriod_; } else { return ClauseCleanupPeriodDefaultValue; } }
1147 set {
1148 _hasBits0 |= 8;
1149 clauseCleanupPeriod_ = value;
1150 }
1151 }
1153 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1154 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1155 public bool HasClauseCleanupPeriod {
1156 get { return (_hasBits0 & 8) != 0; }
1157 }
1158 /// <summary>Clears the value of the "clause_cleanup_period" field</summary>
1159 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1160 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1161 public void ClearClauseCleanupPeriod() {
1162 _hasBits0 &= ~8;
1163 }
1166 public const int ClauseCleanupTargetFieldNumber = 13;
1167 private readonly static int ClauseCleanupTargetDefaultValue = 0;
1168
1169 private int clauseCleanupTarget_;
1174 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1175 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1176 public int ClauseCleanupTarget {
1177 get { if ((_hasBits0 & 16) != 0) { return clauseCleanupTarget_; } else { return ClauseCleanupTargetDefaultValue; } }
1178 set {
1179 _hasBits0 |= 16;
1180 clauseCleanupTarget_ = value;
1181 }
1182 }
1184 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1185 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1186 public bool HasClauseCleanupTarget {
1187 get { return (_hasBits0 & 16) != 0; }
1188 }
1189 /// <summary>Clears the value of the "clause_cleanup_target" field</summary>
1190 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1191 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1192 public void ClearClauseCleanupTarget() {
1193 _hasBits0 &= ~16;
1194 }
1197 public const int ClauseCleanupRatioFieldNumber = 190;
1198 private readonly static double ClauseCleanupRatioDefaultValue = 0.5D;
1199
1200 private double clauseCleanupRatio_;
1206 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1207 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1208 public double ClauseCleanupRatio {
1209 get { if ((_hasBits4 & 2097152) != 0) { return clauseCleanupRatio_; } else { return ClauseCleanupRatioDefaultValue; } }
1210 set {
1211 _hasBits4 |= 2097152;
1212 clauseCleanupRatio_ = value;
1213 }
1214 }
1216 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1217 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1218 public bool HasClauseCleanupRatio {
1219 get { return (_hasBits4 & 2097152) != 0; }
1220 }
1221 /// <summary>Clears the value of the "clause_cleanup_ratio" field</summary>
1222 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1223 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1224 public void ClearClauseCleanupRatio() {
1225 _hasBits4 &= ~2097152;
1226 }
1229 public const int ClauseCleanupProtectionFieldNumber = 58;
1230 private readonly static global::Google.OrTools.Sat.SatParameters.Types.ClauseProtection ClauseCleanupProtectionDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.ClauseProtection.ProtectionNone;
1231
1232 private global::Google.OrTools.Sat.SatParameters.Types.ClauseProtection clauseCleanupProtection_;
1233 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1234 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1236 get { if ((_hasBits1 & 16) != 0) { return clauseCleanupProtection_; } else { return ClauseCleanupProtectionDefaultValue; } }
1237 set {
1238 _hasBits1 |= 16;
1239 clauseCleanupProtection_ = value;
1240 }
1241 }
1243 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1244 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1245 public bool HasClauseCleanupProtection {
1246 get { return (_hasBits1 & 16) != 0; }
1247 }
1248 /// <summary>Clears the value of the "clause_cleanup_protection" field</summary>
1249 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1250 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1251 public void ClearClauseCleanupProtection() {
1252 _hasBits1 &= ~16;
1253 }
1256 public const int ClauseCleanupLbdBoundFieldNumber = 59;
1257 private readonly static int ClauseCleanupLbdBoundDefaultValue = 5;
1258
1259 private int clauseCleanupLbdBound_;
1264 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1265 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1266 public int ClauseCleanupLbdBound {
1267 get { if ((_hasBits1 & 32) != 0) { return clauseCleanupLbdBound_; } else { return ClauseCleanupLbdBoundDefaultValue; } }
1268 set {
1269 _hasBits1 |= 32;
1270 clauseCleanupLbdBound_ = value;
1271 }
1272 }
1274 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1275 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1276 public bool HasClauseCleanupLbdBound {
1277 get { return (_hasBits1 & 32) != 0; }
1278 }
1279 /// <summary>Clears the value of the "clause_cleanup_lbd_bound" field</summary>
1280 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1281 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1282 public void ClearClauseCleanupLbdBound() {
1283 _hasBits1 &= ~32;
1284 }
1287 public const int ClauseCleanupOrderingFieldNumber = 60;
1288 private readonly static global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering ClauseCleanupOrderingDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering.ClauseActivity;
1289
1290 private global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering clauseCleanupOrdering_;
1291 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1292 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1294 get { if ((_hasBits1 & 64) != 0) { return clauseCleanupOrdering_; } else { return ClauseCleanupOrderingDefaultValue; } }
1295 set {
1296 _hasBits1 |= 64;
1297 clauseCleanupOrdering_ = value;
1298 }
1299 }
1301 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1302 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1303 public bool HasClauseCleanupOrdering {
1304 get { return (_hasBits1 & 64) != 0; }
1305 }
1306 /// <summary>Clears the value of the "clause_cleanup_ordering" field</summary>
1307 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1308 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1309 public void ClearClauseCleanupOrdering() {
1310 _hasBits1 &= ~64;
1311 }
1314 public const int PbCleanupIncrementFieldNumber = 46;
1315 private readonly static int PbCleanupIncrementDefaultValue = 200;
1316
1317 private int pbCleanupIncrement_;
1321 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1322 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1323 public int PbCleanupIncrement {
1324 get { if ((_hasBits0 & 16777216) != 0) { return pbCleanupIncrement_; } else { return PbCleanupIncrementDefaultValue; } }
1325 set {
1326 _hasBits0 |= 16777216;
1327 pbCleanupIncrement_ = value;
1328 }
1329 }
1331 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1332 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1333 public bool HasPbCleanupIncrement {
1334 get { return (_hasBits0 & 16777216) != 0; }
1335 }
1336 /// <summary>Clears the value of the "pb_cleanup_increment" field</summary>
1337 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1338 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1339 public void ClearPbCleanupIncrement() {
1340 _hasBits0 &= ~16777216;
1341 }
1344 public const int PbCleanupRatioFieldNumber = 47;
1345 private readonly static double PbCleanupRatioDefaultValue = 0.5D;
1346
1347 private double pbCleanupRatio_;
1348 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1349 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1350 public double PbCleanupRatio {
1351 get { if ((_hasBits0 & 33554432) != 0) { return pbCleanupRatio_; } else { return PbCleanupRatioDefaultValue; } }
1352 set {
1353 _hasBits0 |= 33554432;
1354 pbCleanupRatio_ = value;
1355 }
1356 }
1358 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1359 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1360 public bool HasPbCleanupRatio {
1361 get { return (_hasBits0 & 33554432) != 0; }
1362 }
1363 /// <summary>Clears the value of the "pb_cleanup_ratio" field</summary>
1364 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1365 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1366 public void ClearPbCleanupRatio() {
1367 _hasBits0 &= ~33554432;
1368 }
1371 public const int VariableActivityDecayFieldNumber = 15;
1372 private readonly static double VariableActivityDecayDefaultValue = 0.8D;
1373
1374 private double variableActivityDecay_;
1385 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1386 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1387 public double VariableActivityDecay {
1388 get { if ((_hasBits0 & 32) != 0) { return variableActivityDecay_; } else { return VariableActivityDecayDefaultValue; } }
1389 set {
1390 _hasBits0 |= 32;
1391 variableActivityDecay_ = value;
1392 }
1393 }
1395 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1396 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1397 public bool HasVariableActivityDecay {
1398 get { return (_hasBits0 & 32) != 0; }
1399 }
1401 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1402 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1403 public void ClearVariableActivityDecay() {
1404 _hasBits0 &= ~32;
1405 }
1406
1407 /// <summary>Field number for the "max_variable_activity_value" field.</summary>
1408 public const int MaxVariableActivityValueFieldNumber = 16;
1409 private readonly static double MaxVariableActivityValueDefaultValue = 1e+100D;
1410
1411 private double maxVariableActivityValue_;
1412 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1413 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1414 public double MaxVariableActivityValue {
1415 get { if ((_hasBits0 & 64) != 0) { return maxVariableActivityValue_; } else { return MaxVariableActivityValueDefaultValue; } }
1416 set {
1417 _hasBits0 |= 64;
1418 maxVariableActivityValue_ = value;
1419 }
1420 }
1422 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1423 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1424 public bool HasMaxVariableActivityValue {
1425 get { return (_hasBits0 & 64) != 0; }
1426 }
1428 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1429 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1430 public void ClearMaxVariableActivityValue() {
1431 _hasBits0 &= ~64;
1432 }
1433
1434 /// <summary>Field number for the "glucose_max_decay" field.</summary>
1435 public const int GlucoseMaxDecayFieldNumber = 22;
1436 private readonly static double GlucoseMaxDecayDefaultValue = 0.95D;
1437
1438 private double glucoseMaxDecay_;
1446 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1447 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1448 public double GlucoseMaxDecay {
1449 get { if ((_hasBits0 & 512) != 0) { return glucoseMaxDecay_; } else { return GlucoseMaxDecayDefaultValue; } }
1450 set {
1451 _hasBits0 |= 512;
1452 glucoseMaxDecay_ = value;
1454 }
1456 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1457 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1458 public bool HasGlucoseMaxDecay {
1459 get { return (_hasBits0 & 512) != 0; }
1460 }
1462 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1463 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1464 public void ClearGlucoseMaxDecay() {
1465 _hasBits0 &= ~512;
1466 }
1467
1470 private readonly static double GlucoseDecayIncrementDefaultValue = 0.01D;
1471
1472 private double glucoseDecayIncrement_;
1473 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1474 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1475 public double GlucoseDecayIncrement {
1476 get { if ((_hasBits0 & 1024) != 0) { return glucoseDecayIncrement_; } else { return GlucoseDecayIncrementDefaultValue; } }
1477 set {
1478 _hasBits0 |= 1024;
1479 glucoseDecayIncrement_ = value;
1481 }
1483 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1484 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1485 public bool HasGlucoseDecayIncrement {
1486 get { return (_hasBits0 & 1024) != 0; }
1487 }
1489 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1490 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1491 public void ClearGlucoseDecayIncrement() {
1492 _hasBits0 &= ~1024;
1493 }
1494
1497 private readonly static int GlucoseDecayIncrementPeriodDefaultValue = 5000;
1498
1499 private int glucoseDecayIncrementPeriod_;
1500 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1501 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1502 public int GlucoseDecayIncrementPeriod {
1503 get { if ((_hasBits0 & 2048) != 0) { return glucoseDecayIncrementPeriod_; } else { return GlucoseDecayIncrementPeriodDefaultValue; } }
1504 set {
1505 _hasBits0 |= 2048;
1506 glucoseDecayIncrementPeriod_ = value;
1508 }
1510 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1511 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1512 public bool HasGlucoseDecayIncrementPeriod {
1513 get { return (_hasBits0 & 2048) != 0; }
1514 }
1516 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1517 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1518 public void ClearGlucoseDecayIncrementPeriod() {
1519 _hasBits0 &= ~2048;
1520 }
1521
1523 public const int ClauseActivityDecayFieldNumber = 17;
1524 private readonly static double ClauseActivityDecayDefaultValue = 0.999D;
1525
1526 private double clauseActivityDecay_;
1530 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1531 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1532 public double ClauseActivityDecay {
1533 get { if ((_hasBits0 & 128) != 0) { return clauseActivityDecay_; } else { return ClauseActivityDecayDefaultValue; } }
1534 set {
1535 _hasBits0 |= 128;
1536 clauseActivityDecay_ = value;
1538 }
1540 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1541 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1542 public bool HasClauseActivityDecay {
1543 get { return (_hasBits0 & 128) != 0; }
1544 }
1546 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1547 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1548 public void ClearClauseActivityDecay() {
1549 _hasBits0 &= ~128;
1550 }
1551
1554 private readonly static double MaxClauseActivityValueDefaultValue = 1e+20D;
1555
1556 private double maxClauseActivityValue_;
1557 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1558 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1559 public double MaxClauseActivityValue {
1560 get { if ((_hasBits0 & 256) != 0) { return maxClauseActivityValue_; } else { return MaxClauseActivityValueDefaultValue; } }
1561 set {
1562 _hasBits0 |= 256;
1563 maxClauseActivityValue_ = value;
1565 }
1567 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1568 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1569 public bool HasMaxClauseActivityValue {
1570 get { return (_hasBits0 & 256) != 0; }
1571 }
1573 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1574 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1575 public void ClearMaxClauseActivityValue() {
1576 _hasBits0 &= ~256;
1577 }
1578
1580 public const int RestartAlgorithmsFieldNumber = 61;
1581 private static readonly pb::FieldCodec<global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm> _repeated_restartAlgorithms_codec
1582 = pb::FieldCodec.ForEnum(488, x => (int) x, x => (global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm) x);
1583 private readonly pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm> restartAlgorithms_ = new pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm>();
1595 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1596 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1597 public pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm> RestartAlgorithms {
1598 get { return restartAlgorithms_; }
1599 }
1600
1602 public const int DefaultRestartAlgorithmsFieldNumber = 70;
1603 private readonly static string DefaultRestartAlgorithmsDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("TFVCWV9SRVNUQVJULExCRF9NT1ZJTkdfQVZFUkFHRV9SRVNUQVJULERMX01PVklOR19BVkVSQUdFX1JFU1RBUlQ="), 0, 65);
1604
1605 private string defaultRestartAlgorithms_;
1606 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1607 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1609 get { return defaultRestartAlgorithms_ ?? DefaultRestartAlgorithmsDefaultValue; }
1610 set {
1611 defaultRestartAlgorithms_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1612 }
1613 }
1614 /// <summary>Gets whether the "default_restart_algorithms" field is set</summary>
1615 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1616 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1617 public bool HasDefaultRestartAlgorithms {
1618 get { return defaultRestartAlgorithms_ != null; }
1619 }
1620
1621 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1622 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1624 defaultRestartAlgorithms_ = null;
1625 }
1626
1628 public const int RestartPeriodFieldNumber = 30;
1629 private readonly static int RestartPeriodDefaultValue = 50;
1630
1631 private int restartPeriod_;
1632
1636 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1637 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1638 public int RestartPeriod {
1639 get { if ((_hasBits0 & 4096) != 0) { return restartPeriod_; } else { return RestartPeriodDefaultValue; } }
1640 set {
1641 _hasBits0 |= 4096;
1642 restartPeriod_ = value;
1643 }
1646 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1647 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1648 public bool HasRestartPeriod {
1649 get { return (_hasBits0 & 4096) != 0; }
1650 }
1651
1652 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1653 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1654 public void ClearRestartPeriod() {
1655 _hasBits0 &= ~4096;
1656 }
1657
1659 public const int RestartRunningWindowSizeFieldNumber = 62;
1660 private readonly static int RestartRunningWindowSizeDefaultValue = 50;
1661
1662 private int restartRunningWindowSize_;
1663
1666 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1667 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1668 public int RestartRunningWindowSize {
1669 get { if ((_hasBits1 & 128) != 0) { return restartRunningWindowSize_; } else { return RestartRunningWindowSizeDefaultValue; } }
1670 set {
1671 _hasBits1 |= 128;
1672 restartRunningWindowSize_ = value;
1673 }
1676 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1677 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1678 public bool HasRestartRunningWindowSize {
1679 get { return (_hasBits1 & 128) != 0; }
1680 }
1681
1682 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1683 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1685 _hasBits1 &= ~128;
1686 }
1687
1689 public const int RestartDlAverageRatioFieldNumber = 63;
1690 private readonly static double RestartDlAverageRatioDefaultValue = 1D;
1691
1692 private double restartDlAverageRatio_;
1693
1697 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1698 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1699 public double RestartDlAverageRatio {
1700 get { if ((_hasBits1 & 256) != 0) { return restartDlAverageRatio_; } else { return RestartDlAverageRatioDefaultValue; } }
1701 set {
1702 _hasBits1 |= 256;
1703 restartDlAverageRatio_ = value;
1704 }
1707 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1708 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1709 public bool HasRestartDlAverageRatio {
1710 get { return (_hasBits1 & 256) != 0; }
1711 }
1712
1713 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1714 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1716 _hasBits1 &= ~256;
1717 }
1718
1720 public const int RestartLbdAverageRatioFieldNumber = 71;
1721 private readonly static double RestartLbdAverageRatioDefaultValue = 1D;
1722
1723 private double restartLbdAverageRatio_;
1724 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1725 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1727 get { if ((_hasBits1 & 32768) != 0) { return restartLbdAverageRatio_; } else { return RestartLbdAverageRatioDefaultValue; } }
1728 set {
1729 _hasBits1 |= 32768;
1730 restartLbdAverageRatio_ = value;
1731 }
1734 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1735 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1736 public bool HasRestartLbdAverageRatio {
1737 get { return (_hasBits1 & 32768) != 0; }
1738 }
1739
1740 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1741 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1743 _hasBits1 &= ~32768;
1744 }
1745
1747 public const int UseBlockingRestartFieldNumber = 64;
1748 private readonly static bool UseBlockingRestartDefaultValue = false;
1749
1750 private bool useBlockingRestart_;
1751
1756 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1757 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1758 public bool UseBlockingRestart {
1759 get { if ((_hasBits1 & 512) != 0) { return useBlockingRestart_; } else { return UseBlockingRestartDefaultValue; } }
1760 set {
1761 _hasBits1 |= 512;
1762 useBlockingRestart_ = value;
1763 }
1766 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1767 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1768 public bool HasUseBlockingRestart {
1769 get { return (_hasBits1 & 512) != 0; }
1770 }
1771
1772 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1773 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1775 _hasBits1 &= ~512;
1776 }
1777
1779 public const int BlockingRestartWindowSizeFieldNumber = 65;
1780 private readonly static int BlockingRestartWindowSizeDefaultValue = 5000;
1781
1782 private int blockingRestartWindowSize_;
1783 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1784 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1786 get { if ((_hasBits1 & 1024) != 0) { return blockingRestartWindowSize_; } else { return BlockingRestartWindowSizeDefaultValue; } }
1787 set {
1788 _hasBits1 |= 1024;
1789 blockingRestartWindowSize_ = value;
1790 }
1793 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1794 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1795 public bool HasBlockingRestartWindowSize {
1796 get { return (_hasBits1 & 1024) != 0; }
1797 }
1798
1799 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1800 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1802 _hasBits1 &= ~1024;
1803 }
1804
1806 public const int BlockingRestartMultiplierFieldNumber = 66;
1807 private readonly static double BlockingRestartMultiplierDefaultValue = 1.4D;
1808
1809 private double blockingRestartMultiplier_;
1810 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1811 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1813 get { if ((_hasBits1 & 2048) != 0) { return blockingRestartMultiplier_; } else { return BlockingRestartMultiplierDefaultValue; } }
1814 set {
1815 _hasBits1 |= 2048;
1816 blockingRestartMultiplier_ = value;
1817 }
1820 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1821 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1822 public bool HasBlockingRestartMultiplier {
1823 get { return (_hasBits1 & 2048) != 0; }
1824 }
1825
1826 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1827 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1829 _hasBits1 &= ~2048;
1830 }
1831
1833 public const int NumConflictsBeforeStrategyChangesFieldNumber = 68;
1834 private readonly static int NumConflictsBeforeStrategyChangesDefaultValue = 0;
1835
1836 private int numConflictsBeforeStrategyChanges_;
1837
1842 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1843 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1845 get { if ((_hasBits1 & 8192) != 0) { return numConflictsBeforeStrategyChanges_; } else { return NumConflictsBeforeStrategyChangesDefaultValue; } }
1846 set {
1847 _hasBits1 |= 8192;
1848 numConflictsBeforeStrategyChanges_ = value;
1849 }
1852 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1853 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1854 public bool HasNumConflictsBeforeStrategyChanges {
1855 get { return (_hasBits1 & 8192) != 0; }
1856 }
1857
1858 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1859 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1861 _hasBits1 &= ~8192;
1862 }
1863
1865 public const int StrategyChangeIncreaseRatioFieldNumber = 69;
1866 private readonly static double StrategyChangeIncreaseRatioDefaultValue = 0D;
1867
1868 private double strategyChangeIncreaseRatio_;
1869
1873 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1874 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1875 public double StrategyChangeIncreaseRatio {
1876 get { if ((_hasBits1 & 16384) != 0) { return strategyChangeIncreaseRatio_; } else { return StrategyChangeIncreaseRatioDefaultValue; } }
1877 set {
1878 _hasBits1 |= 16384;
1879 strategyChangeIncreaseRatio_ = value;
1880 }
1883 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1884 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1885 public bool HasStrategyChangeIncreaseRatio {
1886 get { return (_hasBits1 & 16384) != 0; }
1887 }
1888
1889 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1890 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1892 _hasBits1 &= ~16384;
1893 }
1894
1896 public const int MaxTimeInSecondsFieldNumber = 36;
1897 private readonly static double MaxTimeInSecondsDefaultValue = double.PositiveInfinity;
1898
1899 private double maxTimeInSeconds_;
1900
1904 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1905 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1906 public double MaxTimeInSeconds {
1907 get { if ((_hasBits0 & 131072) != 0) { return maxTimeInSeconds_; } else { return MaxTimeInSecondsDefaultValue; } }
1908 set {
1909 _hasBits0 |= 131072;
1910 maxTimeInSeconds_ = value;
1911 }
1914 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1915 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1916 public bool HasMaxTimeInSeconds {
1917 get { return (_hasBits0 & 131072) != 0; }
1918 }
1919
1920 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1921 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1923 _hasBits0 &= ~131072;
1924 }
1925
1927 public const int MaxDeterministicTimeFieldNumber = 67;
1928 private readonly static double MaxDeterministicTimeDefaultValue = double.PositiveInfinity;
1929
1930 private double maxDeterministicTime_;
1931
1936 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1937 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1938 public double MaxDeterministicTime {
1939 get { if ((_hasBits1 & 4096) != 0) { return maxDeterministicTime_; } else { return MaxDeterministicTimeDefaultValue; } }
1940 set {
1941 _hasBits1 |= 4096;
1942 maxDeterministicTime_ = value;
1943 }
1946 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1947 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1948 public bool HasMaxDeterministicTime {
1949 get { return (_hasBits1 & 4096) != 0; }
1950 }
1951
1952 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1953 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1955 _hasBits1 &= ~4096;
1956 }
1957
1959 public const int MaxNumDeterministicBatchesFieldNumber = 291;
1960 private readonly static int MaxNumDeterministicBatchesDefaultValue = 0;
1961
1962 private int maxNumDeterministicBatches_;
1963
1967 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1968 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1969 public int MaxNumDeterministicBatches {
1970 get { if ((_hasBits7 & 1024) != 0) { return maxNumDeterministicBatches_; } else { return MaxNumDeterministicBatchesDefaultValue; } }
1971 set {
1972 _hasBits7 |= 1024;
1973 maxNumDeterministicBatches_ = value;
1974 }
1977 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1978 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1979 public bool HasMaxNumDeterministicBatches {
1980 get { return (_hasBits7 & 1024) != 0; }
1981 }
1982
1983 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1984 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1986 _hasBits7 &= ~1024;
1987 }
1988
1990 public const int MaxNumberOfConflictsFieldNumber = 37;
1991 private readonly static long MaxNumberOfConflictsDefaultValue = 9223372036854775807L;
1992
1993 private long maxNumberOfConflicts_;
1994
2003 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2004 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2005 public long MaxNumberOfConflicts {
2006 get { if ((_hasBits0 & 262144) != 0) { return maxNumberOfConflicts_; } else { return MaxNumberOfConflictsDefaultValue; } }
2007 set {
2008 _hasBits0 |= 262144;
2009 maxNumberOfConflicts_ = value;
2010 }
2011 }
2012 /// <summary>Gets whether the "max_number_of_conflicts" field is set</summary>
2013 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2014 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2015 public bool HasMaxNumberOfConflicts {
2016 get { return (_hasBits0 & 262144) != 0; }
2017 }
2019 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2020 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2021 public void ClearMaxNumberOfConflicts() {
2022 _hasBits0 &= ~262144;
2023 }
2024
2025
2026 public const int MaxMemoryInMbFieldNumber = 40;
2027 private readonly static long MaxMemoryInMbDefaultValue = 10000L;
2029 private long maxMemoryInMb_;
2031
2038 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2039 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2040 public long MaxMemoryInMb {
2041 get { if ((_hasBits0 & 524288) != 0) { return maxMemoryInMb_; } else { return MaxMemoryInMbDefaultValue; } }
2042 set {
2043 _hasBits0 |= 524288;
2044 maxMemoryInMb_ = value;
2045 }
2046 }
2048 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2049 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2050 public bool HasMaxMemoryInMb {
2051 get { return (_hasBits0 & 524288) != 0; }
2052 }
2054 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2055 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2056 public void ClearMaxMemoryInMb() {
2057 _hasBits0 &= ~524288;
2059
2061 public const int AbsoluteGapLimitFieldNumber = 159;
2062 private readonly static double AbsoluteGapLimitDefaultValue = 0.0001D;
2063
2064 private double absoluteGapLimit_;
2067
2085 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2086 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2087 public double AbsoluteGapLimit {
2088 get { if ((_hasBits3 & 33554432) != 0) { return absoluteGapLimit_; } else { return AbsoluteGapLimitDefaultValue; } }
2089 set {
2090 _hasBits3 |= 33554432;
2091 absoluteGapLimit_ = value;
2092 }
2093 }
2095 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2096 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2097 public bool HasAbsoluteGapLimit {
2098 get { return (_hasBits3 & 33554432) != 0; }
2099 }
2101 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2102 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2103 public void ClearAbsoluteGapLimit() {
2104 _hasBits3 &= ~33554432;
2105 }
2106
2108 public const int RelativeGapLimitFieldNumber = 160;
2109 private readonly static double RelativeGapLimitDefaultValue = 0D;
2110
2111 private double relativeGapLimit_;
2112 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2113 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2114 public double RelativeGapLimit {
2115 get { if ((_hasBits3 & 67108864) != 0) { return relativeGapLimit_; } else { return RelativeGapLimitDefaultValue; } }
2116 set {
2117 _hasBits3 |= 67108864;
2118 relativeGapLimit_ = value;
2120 }
2122 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2123 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2124 public bool HasRelativeGapLimit {
2125 get { return (_hasBits3 & 67108864) != 0; }
2126 }
2128 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2129 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2130 public void ClearRelativeGapLimit() {
2131 _hasBits3 &= ~67108864;
2132 }
2133
2135 public const int RandomSeedFieldNumber = 31;
2136 private readonly static int RandomSeedDefaultValue = 1;
2137
2138 private int randomSeed_;
2141 /// part of the solver is reinitialized to this seed. If you change the random
2142 /// seed, the solver may make different choices during the solving process.
2143 ///
2144 /// For some problems, the running time may vary a lot depending on small
2145 /// change in the solving algorithm. Running the solver with different seeds
2146 /// enables to have more robust benchmarks when evaluating new features.
2147 /// </summary>
2148 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2149 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2150 public int RandomSeed {
2151 get { if ((_hasBits0 & 8192) != 0) { return randomSeed_; } else { return RandomSeedDefaultValue; } }
2152 set {
2153 _hasBits0 |= 8192;
2154 randomSeed_ = value;
2155 }
2156 }
2158 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2159 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2160 public bool HasRandomSeed {
2161 get { return (_hasBits0 & 8192) != 0; }
2164 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2165 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2166 public void ClearRandomSeed() {
2167 _hasBits0 &= ~8192;
2168 }
2169
2171 public const int PermuteVariableRandomlyFieldNumber = 178;
2172 private readonly static bool PermuteVariableRandomlyDefaultValue = false;
2173
2174 private bool permuteVariableRandomly_;
2175
2178 /// clients do not rely on the solver returning a specific solution if they are
2179 /// many equivalent optimal solutions.
2180 /// </summary>
2181 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2182 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2184 get { if ((_hasBits4 & 2048) != 0) { return permuteVariableRandomly_; } else { return PermuteVariableRandomlyDefaultValue; } }
2185 set {
2186 _hasBits4 |= 2048;
2187 permuteVariableRandomly_ = value;
2188 }
2189 }
2191 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2192 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2193 public bool HasPermuteVariableRandomly {
2194 get { return (_hasBits4 & 2048) != 0; }
2197 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2198 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2199 public void ClearPermuteVariableRandomly() {
2200 _hasBits4 &= ~2048;
2201 }
2202
2204 public const int PermutePresolveConstraintOrderFieldNumber = 179;
2205 private readonly static bool PermutePresolveConstraintOrderDefaultValue = false;
2206
2207 private bool permutePresolveConstraintOrder_;
2208 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2209 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2210 public bool PermutePresolveConstraintOrder {
2211 get { if ((_hasBits4 & 4096) != 0) { return permutePresolveConstraintOrder_; } else { return PermutePresolveConstraintOrderDefaultValue; } }
2212 set {
2213 _hasBits4 |= 4096;
2214 permutePresolveConstraintOrder_ = value;
2215 }
2218 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2219 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2220 public bool HasPermutePresolveConstraintOrder {
2221 get { return (_hasBits4 & 4096) != 0; }
2224 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2225 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2226 public void ClearPermutePresolveConstraintOrder() {
2227 _hasBits4 &= ~4096;
2228 }
2229
2231 public const int UseAbslRandomFieldNumber = 180;
2232 private readonly static bool UseAbslRandomDefaultValue = false;
2233
2234 private bool useAbslRandom_;
2235 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2236 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2237 public bool UseAbslRandom {
2238 get { if ((_hasBits4 & 8192) != 0) { return useAbslRandom_; } else { return UseAbslRandomDefaultValue; } }
2239 set {
2240 _hasBits4 |= 8192;
2241 useAbslRandom_ = value;
2242 }
2245 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2246 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2247 public bool HasUseAbslRandom {
2248 get { return (_hasBits4 & 8192) != 0; }
2251 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2252 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2253 public void ClearUseAbslRandom() {
2254 _hasBits4 &= ~8192;
2255 }
2256
2258 public const int LogSearchProgressFieldNumber = 41;
2259 private readonly static bool LogSearchProgressDefaultValue = false;
2260
2261 private bool logSearchProgress_;
2262
2265 /// log_to_stdout, log_to_response, ...) will do anything.
2266 /// </summary>
2267 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2268 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2269 public bool LogSearchProgress {
2270 get { if ((_hasBits0 & 1048576) != 0) { return logSearchProgress_; } else { return LogSearchProgressDefaultValue; } }
2271 set {
2272 _hasBits0 |= 1048576;
2273 logSearchProgress_ = value;
2274 }
2275 }
2277 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2278 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2279 public bool HasLogSearchProgress {
2280 get { return (_hasBits0 & 1048576) != 0; }
2283 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2284 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2285 public void ClearLogSearchProgress() {
2286 _hasBits0 &= ~1048576;
2287 }
2288
2290 public const int LogSubsolverStatisticsFieldNumber = 189;
2291 private readonly static bool LogSubsolverStatisticsDefaultValue = false;
2292
2293 private bool logSubsolverStatistics_;
2294
2297 /// number of search workers is > 1. Note that in all case we display a bit
2298 /// of stats with one line per subsolver.
2299 /// </summary>
2300 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2301 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2303 get { if ((_hasBits4 & 1048576) != 0) { return logSubsolverStatistics_; } else { return LogSubsolverStatisticsDefaultValue; } }
2304 set {
2305 _hasBits4 |= 1048576;
2306 logSubsolverStatistics_ = value;
2307 }
2308 }
2310 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2311 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2312 public bool HasLogSubsolverStatistics {
2313 get { return (_hasBits4 & 1048576) != 0; }
2316 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2317 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2318 public void ClearLogSubsolverStatistics() {
2319 _hasBits4 &= ~1048576;
2320 }
2321
2323 public const int LogPrefixFieldNumber = 185;
2324 private readonly static string LogPrefixDefaultValue = "";
2325
2326 private string logPrefix_;
2327
2330 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2331 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2332 public string LogPrefix {
2333 get { return logPrefix_ ?? LogPrefixDefaultValue; }
2334 set {
2335 logPrefix_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2336 }
2337 }
2339 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2340 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2341 public bool HasLogPrefix {
2342 get { return logPrefix_ != null; }
2343 }
2344 /// <summary>Clears the value of the "log_prefix" field</summary>
2345 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2346 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2347 public void ClearLogPrefix() {
2348 logPrefix_ = null;
2349 }
2350
2352 public const int LogToStdoutFieldNumber = 186;
2353 private readonly static bool LogToStdoutDefaultValue = true;
2354
2355 private bool logToStdout_;
2356
2359 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2360 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2361 public bool LogToStdout {
2362 get { if ((_hasBits4 & 131072) != 0) { return logToStdout_; } else { return LogToStdoutDefaultValue; } }
2363 set {
2364 _hasBits4 |= 131072;
2365 logToStdout_ = value;
2366 }
2367 }
2369 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2370 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2371 public bool HasLogToStdout {
2372 get { return (_hasBits4 & 131072) != 0; }
2375 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2376 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2377 public void ClearLogToStdout() {
2378 _hasBits4 &= ~131072;
2379 }
2380
2382 public const int LogToResponseFieldNumber = 187;
2383 private readonly static bool LogToResponseDefaultValue = false;
2384
2385 private bool logToResponse_;
2386
2389 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2390 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2391 public bool LogToResponse {
2392 get { if ((_hasBits4 & 262144) != 0) { return logToResponse_; } else { return LogToResponseDefaultValue; } }
2393 set {
2394 _hasBits4 |= 262144;
2395 logToResponse_ = value;
2396 }
2397 }
2399 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2400 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2401 public bool HasLogToResponse {
2402 get { return (_hasBits4 & 262144) != 0; }
2405 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2406 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2407 public void ClearLogToResponse() {
2408 _hasBits4 &= ~262144;
2409 }
2410
2412 public const int UsePbResolutionFieldNumber = 43;
2413 private readonly static bool UsePbResolutionDefaultValue = false;
2414
2415 private bool usePbResolution_;
2416
2419 /// pseudo-Boolean constraints. If you only have clauses, this shouldn't change
2420 /// anything (except slow the solver down).
2421 /// </summary>
2422 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2423 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2424 public bool UsePbResolution {
2425 get { if ((_hasBits0 & 2097152) != 0) { return usePbResolution_; } else { return UsePbResolutionDefaultValue; } }
2426 set {
2427 _hasBits0 |= 2097152;
2428 usePbResolution_ = value;
2429 }
2430 }
2432 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2433 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2434 public bool HasUsePbResolution {
2435 get { return (_hasBits0 & 2097152) != 0; }
2438 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2439 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2440 public void ClearUsePbResolution() {
2441 _hasBits0 &= ~2097152;
2442 }
2443
2445 public const int MinimizeReductionDuringPbResolutionFieldNumber = 48;
2446 private readonly static bool MinimizeReductionDuringPbResolutionDefaultValue = false;
2447
2448 private bool minimizeReductionDuringPbResolution_;
2449
2452 /// search space will be different and if the coefficients are large, this may
2453 /// lead to integer overflows that could otherwise be prevented.
2454 /// </summary>
2455 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2456 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2458 get { if ((_hasBits0 & 67108864) != 0) { return minimizeReductionDuringPbResolution_; } else { return MinimizeReductionDuringPbResolutionDefaultValue; } }
2459 set {
2460 _hasBits0 |= 67108864;
2461 minimizeReductionDuringPbResolution_ = value;
2462 }
2463 }
2465 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2466 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2467 public bool HasMinimizeReductionDuringPbResolution {
2468 get { return (_hasBits0 & 67108864) != 0; }
2471 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2472 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2473 public void ClearMinimizeReductionDuringPbResolution() {
2474 _hasBits0 &= ~67108864;
2475 }
2476
2478 public const int CountAssumptionLevelsInLbdFieldNumber = 49;
2479 private readonly static bool CountAssumptionLevelsInLbdDefaultValue = true;
2480
2481 private bool countAssumptionLevelsInLbd_;
2482
2485 /// the solver in some situation. Note that this only impact solves under
2486 /// assumptions.
2487 ///
2488 /// Gilles Audemard, Jean-Marie Lagniez, Laurent Simon, "Improving Glucose for
2489 /// Incremental SAT Solving with Assumptions: Application to MUS Extraction"
2490 /// Theory and Applications of Satisfiability Testing - SAT 2013, Lecture Notes
2491 /// in Computer Science Volume 7962, 2013, pp 309-317.
2492 /// </summary>
2493 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2494 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2495 public bool CountAssumptionLevelsInLbd {
2496 get { if ((_hasBits0 & 134217728) != 0) { return countAssumptionLevelsInLbd_; } else { return CountAssumptionLevelsInLbdDefaultValue; } }
2497 set {
2498 _hasBits0 |= 134217728;
2499 countAssumptionLevelsInLbd_ = value;
2500 }
2501 }
2503 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2504 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2505 public bool HasCountAssumptionLevelsInLbd {
2506 get { return (_hasBits0 & 134217728) != 0; }
2507 }
2508 /// <summary>Clears the value of the "count_assumption_levels_in_lbd" field</summary>
2509 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2510 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2511 public void ClearCountAssumptionLevelsInLbd() {
2512 _hasBits0 &= ~134217728;
2513 }
2514
2515
2516 public const int PresolveBveThresholdFieldNumber = 54;
2517 private readonly static int PresolveBveThresholdDefaultValue = 500;
2519 private int presolveBveThreshold_;
2521
2524 /// </summary>
2525 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2526 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2527 public int PresolveBveThreshold {
2528 get { if ((_hasBits1 & 1) != 0) { return presolveBveThreshold_; } else { return PresolveBveThresholdDefaultValue; } }
2529 set {
2530 _hasBits1 |= 1;
2531 presolveBveThreshold_ = value;
2532 }
2533 }
2535 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2536 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2537 public bool HasPresolveBveThreshold {
2538 get { return (_hasBits1 & 1) != 0; }
2539 }
2540 /// <summary>Clears the value of the "presolve_bve_threshold" field</summary>
2541 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2542 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2543 public void ClearPresolveBveThreshold() {
2544 _hasBits1 &= ~1;
2545 }
2546
2547
2548 public const int FilterSatPostsolveClausesFieldNumber = 324;
2549 private readonly static bool FilterSatPostsolveClausesDefaultValue = false;
2551 private bool filterSatPostsolveClauses_;
2553
2556 /// one such set is needed. The idea is that, if we push the set containing a
2557 /// literal l, is to set l to false except if it is needed to satisfy one of
2558 /// the clause in the set. This is always beneficial, but for historical
2559 /// reason, not all our postsolve algorithm support this.
2560 /// </summary>
2561 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2562 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2563 public bool FilterSatPostsolveClauses {
2564 get { if ((_hasBits8 & 512) != 0) { return filterSatPostsolveClauses_; } else { return FilterSatPostsolveClausesDefaultValue; } }
2565 set {
2566 _hasBits8 |= 512;
2567 filterSatPostsolveClauses_ = value;
2568 }
2569 }
2571 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2572 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2573 public bool HasFilterSatPostsolveClauses {
2574 get { return (_hasBits8 & 512) != 0; }
2575 }
2576 /// <summary>Clears the value of the "filter_sat_postsolve_clauses" field</summary>
2577 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2578 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2579 public void ClearFilterSatPostsolveClauses() {
2580 _hasBits8 &= ~512;
2581 }
2582
2583
2584 public const int PresolveBveClauseWeightFieldNumber = 55;
2585 private readonly static int PresolveBveClauseWeightDefaultValue = 3;
2587 private int presolveBveClauseWeight_;
2589
2592 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2593 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2594 public int PresolveBveClauseWeight {
2595 get { if ((_hasBits1 & 2) != 0) { return presolveBveClauseWeight_; } else { return PresolveBveClauseWeightDefaultValue; } }
2596 set {
2597 _hasBits1 |= 2;
2598 presolveBveClauseWeight_ = value;
2599 }
2600 }
2602 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2603 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2604 public bool HasPresolveBveClauseWeight {
2605 get { return (_hasBits1 & 2) != 0; }
2606 }
2607 /// <summary>Clears the value of the "presolve_bve_clause_weight" field</summary>
2608 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2609 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2610 public void ClearPresolveBveClauseWeight() {
2611 _hasBits1 &= ~2;
2612 }
2613
2614
2615 public const int ProbingDeterministicTimeLimitFieldNumber = 226;
2616 private readonly static double ProbingDeterministicTimeLimitDefaultValue = 1D;
2618 private double probingDeterministicTimeLimit_;
2620
2623 /// TODO(user): Clean up. The first one is used in CP-SAT, the other in pure
2624 /// SAT presolve.
2625 /// </summary>
2626 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2627 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2629 get { if ((_hasBits5 & 131072) != 0) { return probingDeterministicTimeLimit_; } else { return ProbingDeterministicTimeLimitDefaultValue; } }
2630 set {
2631 _hasBits5 |= 131072;
2632 probingDeterministicTimeLimit_ = value;
2633 }
2634 }
2636 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2637 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2638 public bool HasProbingDeterministicTimeLimit {
2639 get { return (_hasBits5 & 131072) != 0; }
2640 }
2642 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2643 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2645 _hasBits5 &= ~131072;
2646 }
2647
2649 public const int PresolveProbingDeterministicTimeLimitFieldNumber = 57;
2650 private readonly static double PresolveProbingDeterministicTimeLimitDefaultValue = 30D;
2651
2652 private double presolveProbingDeterministicTimeLimit_;
2653 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2654 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2656 get { if ((_hasBits1 & 8) != 0) { return presolveProbingDeterministicTimeLimit_; } else { return PresolveProbingDeterministicTimeLimitDefaultValue; } }
2657 set {
2658 _hasBits1 |= 8;
2659 presolveProbingDeterministicTimeLimit_ = value;
2660 }
2661 }
2663 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2664 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2666 get { return (_hasBits1 & 8) != 0; }
2667 }
2669 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2670 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2672 _hasBits1 &= ~8;
2673 }
2674
2676 public const int PresolveBlockedClauseFieldNumber = 88;
2677 private readonly static bool PresolveBlockedClauseDefaultValue = true;
2678
2679 private bool presolveBlockedClause_;
2682
2684 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2685 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2686 public bool PresolveBlockedClause {
2687 get { if ((_hasBits1 & -2147483648) != 0) { return presolveBlockedClause_; } else { return PresolveBlockedClauseDefaultValue; } }
2688 set {
2689 _hasBits1 |= -2147483648;
2690 presolveBlockedClause_ = value;
2691 }
2692 }
2694 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2695 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2696 public bool HasPresolveBlockedClause {
2697 get { return (_hasBits1 & -2147483648) != 0; }
2698 }
2700 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2701 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2702 public void ClearPresolveBlockedClause() {
2703 _hasBits1 &= ~-2147483648;
2704 }
2705
2707 public const int PresolveUseBvaFieldNumber = 72;
2708 private readonly static bool PresolveUseBvaDefaultValue = true;
2709
2710 private bool presolveUseBva_;
2713
2714 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2715 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2716 public bool PresolveUseBva {
2717 get { if ((_hasBits1 & 65536) != 0) { return presolveUseBva_; } else { return PresolveUseBvaDefaultValue; } }
2718 set {
2719 _hasBits1 |= 65536;
2720 presolveUseBva_ = value;
2722 }
2724 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2725 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2726 public bool HasPresolveUseBva {
2727 get { return (_hasBits1 & 65536) != 0; }
2728 }
2730 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2731 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2732 public void ClearPresolveUseBva() {
2733 _hasBits1 &= ~65536;
2734 }
2735
2737 public const int PresolveBvaThresholdFieldNumber = 73;
2738 private readonly static int PresolveBvaThresholdDefaultValue = 1;
2739
2740 private int presolveBvaThreshold_;
2743
2746 /// </summary>
2747 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2748 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2749 public int PresolveBvaThreshold {
2750 get { if ((_hasBits1 & 131072) != 0) { return presolveBvaThreshold_; } else { return PresolveBvaThresholdDefaultValue; } }
2751 set {
2752 _hasBits1 |= 131072;
2753 presolveBvaThreshold_ = value;
2754 }
2755 }
2757 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2758 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2759 public bool HasPresolveBvaThreshold {
2760 get { return (_hasBits1 & 131072) != 0; }
2761 }
2763 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2764 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2765 public void ClearPresolveBvaThreshold() {
2766 _hasBits1 &= ~131072;
2767 }
2768
2770 public const int MaxPresolveIterationsFieldNumber = 138;
2771 private readonly static int MaxPresolveIterationsDefaultValue = 3;
2772
2773 private int maxPresolveIterations_;
2776
2779 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2780 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2781 public int MaxPresolveIterations {
2782 get { if ((_hasBits3 & 2048) != 0) { return maxPresolveIterations_; } else { return MaxPresolveIterationsDefaultValue; } }
2783 set {
2784 _hasBits3 |= 2048;
2785 maxPresolveIterations_ = value;
2786 }
2787 }
2789 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2790 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2791 public bool HasMaxPresolveIterations {
2792 get { return (_hasBits3 & 2048) != 0; }
2793 }
2795 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2796 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2797 public void ClearMaxPresolveIterations() {
2798 _hasBits3 &= ~2048;
2799 }
2800
2802 public const int CpModelPresolveFieldNumber = 86;
2803 private readonly static bool CpModelPresolveDefaultValue = true;
2804
2805 private bool cpModelPresolve_;
2808
2809 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2810 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2811 public bool CpModelPresolve {
2812 get { if ((_hasBits1 & 536870912) != 0) { return cpModelPresolve_; } else { return CpModelPresolveDefaultValue; } }
2813 set {
2814 _hasBits1 |= 536870912;
2815 cpModelPresolve_ = value;
2817 }
2819 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2820 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2821 public bool HasCpModelPresolve {
2822 get { return (_hasBits1 & 536870912) != 0; }
2823 }
2825 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2826 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2827 public void ClearCpModelPresolve() {
2828 _hasBits1 &= ~536870912;
2829 }
2830
2832 public const int CpModelProbingLevelFieldNumber = 110;
2833 private readonly static int CpModelProbingLevelDefaultValue = 2;
2834
2835 private int cpModelProbingLevel_;
2838
2839 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2840 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2842 get { if ((_hasBits2 & 131072) != 0) { return cpModelProbingLevel_; } else { return CpModelProbingLevelDefaultValue; } }
2843 set {
2844 _hasBits2 |= 131072;
2845 cpModelProbingLevel_ = value;
2847 }
2849 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2850 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2851 public bool HasCpModelProbingLevel {
2852 get { return (_hasBits2 & 131072) != 0; }
2853 }
2855 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2856 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2857 public void ClearCpModelProbingLevel() {
2858 _hasBits2 &= ~131072;
2859 }
2860
2862 public const int CpModelUseSatPresolveFieldNumber = 93;
2863 private readonly static bool CpModelUseSatPresolveDefaultValue = true;
2864
2865 private bool cpModelUseSatPresolve_;
2868
2869 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2870 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2872 get { if ((_hasBits2 & 16) != 0) { return cpModelUseSatPresolve_; } else { return CpModelUseSatPresolveDefaultValue; } }
2873 set {
2874 _hasBits2 |= 16;
2875 cpModelUseSatPresolve_ = value;
2877 }
2879 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2880 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2881 public bool HasCpModelUseSatPresolve {
2882 get { return (_hasBits2 & 16) != 0; }
2883 }
2885 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2886 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2887 public void ClearCpModelUseSatPresolve() {
2888 _hasBits2 &= ~16;
2889 }
2890
2892 public const int RemoveFixedVariablesEarlyFieldNumber = 310;
2893 private readonly static bool RemoveFixedVariablesEarlyDefaultValue = true;
2894
2895 private bool removeFixedVariablesEarly_;
2898
2901 /// </summary>
2902 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2903 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2904 public bool RemoveFixedVariablesEarly {
2905 get { if ((_hasBits7 & 268435456) != 0) { return removeFixedVariablesEarly_; } else { return RemoveFixedVariablesEarlyDefaultValue; } }
2906 set {
2907 _hasBits7 |= 268435456;
2908 removeFixedVariablesEarly_ = value;
2909 }
2910 }
2912 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2913 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2914 public bool HasRemoveFixedVariablesEarly {
2915 get { return (_hasBits7 & 268435456) != 0; }
2916 }
2918 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2919 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2920 public void ClearRemoveFixedVariablesEarly() {
2921 _hasBits7 &= ~268435456;
2922 }
2923
2925 public const int DetectTableWithCostFieldNumber = 216;
2926 private readonly static bool DetectTableWithCostDefaultValue = false;
2927
2928 private bool detectTableWithCost_;
2931
2934 /// This can lead to a dramatic speed-up for such problems but is still
2935 /// experimental at this point.
2936 /// </summary>
2937 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2938 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2940 get { if ((_hasBits5 & 512) != 0) { return detectTableWithCost_; } else { return DetectTableWithCostDefaultValue; } }
2941 set {
2942 _hasBits5 |= 512;
2943 detectTableWithCost_ = value;
2944 }
2945 }
2947 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2948 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2949 public bool HasDetectTableWithCost {
2950 get { return (_hasBits5 & 512) != 0; }
2951 }
2953 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2954 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2955 public void ClearDetectTableWithCost() {
2956 _hasBits5 &= ~512;
2957 }
2958
2960 public const int TableCompressionLevelFieldNumber = 217;
2961 private readonly static int TableCompressionLevelDefaultValue = 2;
2962
2963 private int tableCompressionLevel_;
2964 /// <summary>
2965 /// How much we try to "compress" a table constraint. Compressing more leads to
2966 /// less Booleans and faster propagation but can reduced the quality of the lp
2967 /// relaxation. Values goes from 0 to 3 where we always try to fully compress a
2968 /// table. At 2, we try to automatically decide if it is worth it.
2969 /// </summary>
2970 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2971 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2972 public int TableCompressionLevel {
2973 get { if ((_hasBits5 & 1024) != 0) { return tableCompressionLevel_; } else { return TableCompressionLevelDefaultValue; } }
2974 set {
2975 _hasBits5 |= 1024;
2976 tableCompressionLevel_ = value;
2977 }
2978 }
2980 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2981 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2982 public bool HasTableCompressionLevel {
2983 get { return (_hasBits5 & 1024) != 0; }
2984 }
2986 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2987 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2988 public void ClearTableCompressionLevel() {
2989 _hasBits5 &= ~1024;
2990 }
2991
2993 public const int ExpandAlldiffConstraintsFieldNumber = 170;
2994 private readonly static bool ExpandAlldiffConstraintsDefaultValue = false;
2995
2996 private bool expandAlldiffConstraints_;
2997 /// <summary>
2998 /// If true, expand all_different constraints that are not permutations.
2999 /// Permutations (#Variables = #Values) are always expanded.
3000 /// </summary>
3001 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3002 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3004 get { if ((_hasBits4 & 16) != 0) { return expandAlldiffConstraints_; } else { return ExpandAlldiffConstraintsDefaultValue; } }
3005 set {
3006 _hasBits4 |= 16;
3007 expandAlldiffConstraints_ = value;
3009 }
3011 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3012 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3013 public bool HasExpandAlldiffConstraints {
3014 get { return (_hasBits4 & 16) != 0; }
3015 }
3017 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3018 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3019 public void ClearExpandAlldiffConstraints() {
3020 _hasBits4 &= ~16;
3021 }
3022
3024 public const int MaxAlldiffDomainSizeFieldNumber = 320;
3025 private readonly static int MaxAlldiffDomainSizeDefaultValue = 256;
3026
3027 private int maxAlldiffDomainSize_;
3028 /// <summary>
3029 /// Max domain size for all_different constraints to be expanded.
3030 /// </summary>
3031 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3032 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3033 public int MaxAlldiffDomainSize {
3034 get { if ((_hasBits8 & 32) != 0) { return maxAlldiffDomainSize_; } else { return MaxAlldiffDomainSizeDefaultValue; } }
3035 set {
3036 _hasBits8 |= 32;
3037 maxAlldiffDomainSize_ = value;
3038 }
3041 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3042 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3043 public bool HasMaxAlldiffDomainSize {
3044 get { return (_hasBits8 & 32) != 0; }
3045 }
3047 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3048 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3049 public void ClearMaxAlldiffDomainSize() {
3050 _hasBits8 &= ~32;
3051 }
3052
3054 public const int ExpandReservoirConstraintsFieldNumber = 182;
3055 private readonly static bool ExpandReservoirConstraintsDefaultValue = true;
3056
3057 private bool expandReservoirConstraints_;
3058 /// <summary>
3059 /// If true, expand the reservoir constraints by creating booleans for all
3060 /// possible precedences between event and encoding the constraint.
3061 /// </summary>
3062 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3063 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3065 get { if ((_hasBits4 & 32768) != 0) { return expandReservoirConstraints_; } else { return ExpandReservoirConstraintsDefaultValue; } }
3066 set {
3067 _hasBits4 |= 32768;
3068 expandReservoirConstraints_ = value;
3070 }
3072 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3073 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3074 public bool HasExpandReservoirConstraints {
3075 get { return (_hasBits4 & 32768) != 0; }
3076 }
3078 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3079 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3080 public void ClearExpandReservoirConstraints() {
3081 _hasBits4 &= ~32768;
3082 }
3083
3085 public const int ExpandReservoirUsingCircuitFieldNumber = 288;
3086 private readonly static bool ExpandReservoirUsingCircuitDefaultValue = false;
3087
3088 private bool expandReservoirUsingCircuit_;
3089 /// <summary>
3090 /// Mainly useful for testing.
3091 ///
3092 /// If this and expand_reservoir_constraints is true, we use a different
3093 /// encoding of the reservoir constraint using circuit instead of precedences.
3094 /// Note that this is usually slower, but can exercise different part of the
3095 /// solver. Note that contrary to the precedence encoding, this easily support
3096 /// variable demands.
3097 ///
3098 /// WARNING: with this encoding, the constraint takes a slightly different
3099 /// meaning. There must exist a permutation of the events occurring at the same
3100 /// time such that the level is within the reservoir after each of these events
3101 /// (in this permuted order). So we cannot have +100 and -100 at the same time
3102 /// if the level must be between 0 and 10 (as authorized by the reservoir
3103 /// constraint).
3104 /// </summary>
3105 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3106 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3107 public bool ExpandReservoirUsingCircuit {
3108 get { if ((_hasBits7 & 128) != 0) { return expandReservoirUsingCircuit_; } else { return ExpandReservoirUsingCircuitDefaultValue; } }
3109 set {
3110 _hasBits7 |= 128;
3111 expandReservoirUsingCircuit_ = value;
3112 }
3113 }
3115 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3116 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3117 public bool HasExpandReservoirUsingCircuit {
3118 get { return (_hasBits7 & 128) != 0; }
3119 }
3121 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3122 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3123 public void ClearExpandReservoirUsingCircuit() {
3124 _hasBits7 &= ~128;
3125 }
3126
3128 public const int EncodeCumulativeAsReservoirFieldNumber = 287;
3129 private readonly static bool EncodeCumulativeAsReservoirDefaultValue = false;
3130
3131 private bool encodeCumulativeAsReservoir_;
3134 /// constraint. The only reason you might want to do that is to test the
3135 /// reservoir propagation code!
3136 /// </summary>
3137 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3138 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3139 public bool EncodeCumulativeAsReservoir {
3140 get { if ((_hasBits7 & 64) != 0) { return encodeCumulativeAsReservoir_; } else { return EncodeCumulativeAsReservoirDefaultValue; } }
3141 set {
3142 _hasBits7 |= 64;
3143 encodeCumulativeAsReservoir_ = value;
3144 }
3147 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3148 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3149 public bool HasEncodeCumulativeAsReservoir {
3150 get { return (_hasBits7 & 64) != 0; }
3151 }
3153 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3154 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3155 public void ClearEncodeCumulativeAsReservoir() {
3156 _hasBits7 &= ~64;
3157 }
3158
3160 public const int MaxLinMaxSizeForExpansionFieldNumber = 280;
3161 private readonly static int MaxLinMaxSizeForExpansionDefaultValue = 0;
3162
3163 private int maxLinMaxSizeForExpansion_;
3166 /// parameter, model expansion replaces target = max(xi) by linear constraint
3167 /// with the introduction of new booleans bi such that bi => target == xi.
3168 ///
3169 /// This is mainly for experimenting compared to a custom lin_max propagator.
3170 /// </summary>
3171 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3172 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3173 public int MaxLinMaxSizeForExpansion {
3174 get { if ((_hasBits6 & -2147483648) != 0) { return maxLinMaxSizeForExpansion_; } else { return MaxLinMaxSizeForExpansionDefaultValue; } }
3175 set {
3176 _hasBits6 |= -2147483648;
3177 maxLinMaxSizeForExpansion_ = value;
3178 }
3179 }
3181 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3182 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3183 public bool HasMaxLinMaxSizeForExpansion {
3184 get { return (_hasBits6 & -2147483648) != 0; }
3185 }
3187 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3188 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3189 public void ClearMaxLinMaxSizeForExpansion() {
3190 _hasBits6 &= ~-2147483648;
3192
3194 public const int DisableConstraintExpansionFieldNumber = 181;
3195 private readonly static bool DisableConstraintExpansionDefaultValue = false;
3196
3197 private bool disableConstraintExpansion_;
3198
3201 /// </summary>
3202 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3203 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3204 public bool DisableConstraintExpansion {
3205 get { if ((_hasBits4 & 16384) != 0) { return disableConstraintExpansion_; } else { return DisableConstraintExpansionDefaultValue; } }
3206 set {
3207 _hasBits4 |= 16384;
3208 disableConstraintExpansion_ = value;
3209 }
3210 }
3212 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3213 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3214 public bool HasDisableConstraintExpansion {
3215 get { return (_hasBits4 & 16384) != 0; }
3216 }
3218 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3219 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3220 public void ClearDisableConstraintExpansion() {
3221 _hasBits4 &= ~16384;
3223
3225 public const int EncodeComplexLinearConstraintWithIntegerFieldNumber = 223;
3226 private readonly static bool EncodeComplexLinearConstraintWithIntegerDefaultValue = false;
3227
3228 private bool encodeComplexLinearConstraintWithInteger_;
3229
3232 /// </summary>
3233 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3234 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3236 get { if ((_hasBits5 & 16384) != 0) { return encodeComplexLinearConstraintWithInteger_; } else { return EncodeComplexLinearConstraintWithIntegerDefaultValue; } }
3237 set {
3238 _hasBits5 |= 16384;
3239 encodeComplexLinearConstraintWithInteger_ = value;
3240 }
3241 }
3243 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3244 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3246 get { return (_hasBits5 & 16384) != 0; }
3247 }
3249 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3250 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3251 public void ClearEncodeComplexLinearConstraintWithInteger() {
3252 _hasBits5 &= ~16384;
3254
3256 public const int MergeNoOverlapWorkLimitFieldNumber = 145;
3257 private readonly static double MergeNoOverlapWorkLimitDefaultValue = 1e+12D;
3258
3259 private double mergeNoOverlapWorkLimit_;
3260
3263 /// so we have a limit in place on the number of explored nodes in the
3264 /// underlying graph. The internal limit is an int64, but we use double here to
3265 /// simplify manual input.
3266 /// </summary>
3267 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3268 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3270 get { if ((_hasBits3 & 8192) != 0) { return mergeNoOverlapWorkLimit_; } else { return MergeNoOverlapWorkLimitDefaultValue; } }
3271 set {
3272 _hasBits3 |= 8192;
3273 mergeNoOverlapWorkLimit_ = value;
3275 }
3277 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3278 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3279 public bool HasMergeNoOverlapWorkLimit {
3280 get { return (_hasBits3 & 8192) != 0; }
3281 }
3283 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3284 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3285 public void ClearMergeNoOverlapWorkLimit() {
3286 _hasBits3 &= ~8192;
3288
3290 public const int MergeAtMostOneWorkLimitFieldNumber = 146;
3291 private readonly static double MergeAtMostOneWorkLimitDefaultValue = 1e+08D;
3292
3293 private double mergeAtMostOneWorkLimit_;
3294 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3295 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3296 public double MergeAtMostOneWorkLimit {
3297 get { if ((_hasBits3 & 16384) != 0) { return mergeAtMostOneWorkLimit_; } else { return MergeAtMostOneWorkLimitDefaultValue; } }
3298 set {
3299 _hasBits3 |= 16384;
3300 mergeAtMostOneWorkLimit_ = value;
3301 }
3302 }
3303 /// <summary>Gets whether the "merge_at_most_one_work_limit" field is set</summary>
3304 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3305 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3306 public bool HasMergeAtMostOneWorkLimit {
3307 get { return (_hasBits3 & 16384) != 0; }
3310 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3311 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3312 public void ClearMergeAtMostOneWorkLimit() {
3313 _hasBits3 &= ~16384;
3315
3317 public const int PresolveSubstitutionLevelFieldNumber = 147;
3318 private readonly static int PresolveSubstitutionLevelDefaultValue = 1;
3319
3320 private int presolveSubstitutionLevel_;
3321
3324 /// variable appearing only in linear constraints. For now the value 0 turns it
3325 /// off and any positive value performs substitution.
3326 /// </summary>
3327 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3328 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3329 public int PresolveSubstitutionLevel {
3330 get { if ((_hasBits3 & 32768) != 0) { return presolveSubstitutionLevel_; } else { return PresolveSubstitutionLevelDefaultValue; } }
3331 set {
3332 _hasBits3 |= 32768;
3333 presolveSubstitutionLevel_ = value;
3334 }
3337 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3338 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3339 public bool HasPresolveSubstitutionLevel {
3340 get { return (_hasBits3 & 32768) != 0; }
3341 }
3343 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3344 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3345 public void ClearPresolveSubstitutionLevel() {
3346 _hasBits3 &= ~32768;
3348
3350 public const int PresolveExtractIntegerEnforcementFieldNumber = 174;
3351 private readonly static bool PresolveExtractIntegerEnforcementDefaultValue = false;
3352
3353 private bool presolveExtractIntegerEnforcement_;
3354
3357 /// always be beneficial except that we don't always handle them as efficiently
3358 /// as we could for now. This causes problem on manna81.mps (LP relaxation not
3359 /// as tight it seems) and on neos-3354841-apure.mps.gz (too many literals
3360 /// created this way).
3361 /// </summary>
3362 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3363 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3365 get { if ((_hasBits4 & 128) != 0) { return presolveExtractIntegerEnforcement_; } else { return PresolveExtractIntegerEnforcementDefaultValue; } }
3366 set {
3367 _hasBits4 |= 128;
3368 presolveExtractIntegerEnforcement_ = value;
3369 }
3370 }
3372 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3373 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3374 public bool HasPresolveExtractIntegerEnforcement {
3375 get { return (_hasBits4 & 128) != 0; }
3376 }
3378 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3379 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3380 public void ClearPresolveExtractIntegerEnforcement() {
3381 _hasBits4 &= ~128;
3383
3385 public const int PresolveInclusionWorkLimitFieldNumber = 201;
3386 private readonly static long PresolveInclusionWorkLimitDefaultValue = 100000000L;
3387
3388 private long presolveInclusionWorkLimit_;
3389
3392 /// processing them usually involve scanning them, the complexity of these
3393 /// operations can be big. This enforce a local deterministic limit on the
3394 /// number of entries scanned. Default is 1e8.
3395 ///
3396 /// A value of zero will disable these presolve rules completely.
3397 /// </summary>
3398 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3399 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3400 public long PresolveInclusionWorkLimit {
3401 get { if ((_hasBits5 & 1) != 0) { return presolveInclusionWorkLimit_; } else { return PresolveInclusionWorkLimitDefaultValue; } }
3402 set {
3403 _hasBits5 |= 1;
3404 presolveInclusionWorkLimit_ = value;
3405 }
3406 }
3408 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3409 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3410 public bool HasPresolveInclusionWorkLimit {
3411 get { return (_hasBits5 & 1) != 0; }
3412 }
3414 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3415 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3416 public void ClearPresolveInclusionWorkLimit() {
3417 _hasBits5 &= ~1;
3418 }
3421 public const int IgnoreNamesFieldNumber = 202;
3422 private readonly static bool IgnoreNamesDefaultValue = true;
3423
3424 private bool ignoreNames_;
3426
3428 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3429 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3430 public bool IgnoreNames {
3431 get { if ((_hasBits5 & 2) != 0) { return ignoreNames_; } else { return IgnoreNamesDefaultValue; } }
3432 set {
3433 _hasBits5 |= 2;
3434 ignoreNames_ = value;
3436 }
3438 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3439 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3440 public bool HasIgnoreNames {
3441 get { return (_hasBits5 & 2) != 0; }
3442 }
3444 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3445 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3446 public void ClearIgnoreNames() {
3447 _hasBits5 &= ~2;
3448 }
3451 public const int InferAllDiffsFieldNumber = 233;
3452 private readonly static bool InferAllDiffsDefaultValue = true;
3453
3454 private bool inferAllDiffs_;
3456
3459 /// already in the model so that if a user want to add some all_diff, we assume
3460 /// it is well done and do not try to add more.
3461 ///
3462 /// This will also detect and add no_overlap constraints, if all the relations
3463 /// x != y have "offsets" between them. I.e. x > y + offset.
3464 /// </summary>
3465 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3466 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3467 public bool InferAllDiffs {
3468 get { if ((_hasBits5 & 8388608) != 0) { return inferAllDiffs_; } else { return InferAllDiffsDefaultValue; } }
3469 set {
3470 _hasBits5 |= 8388608;
3471 inferAllDiffs_ = value;
3472 }
3473 }
3475 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3476 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3477 public bool HasInferAllDiffs {
3478 get { return (_hasBits5 & 8388608) != 0; }
3479 }
3481 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3482 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3483 public void ClearInferAllDiffs() {
3484 _hasBits5 &= ~8388608;
3485 }
3486
3487 /// <summary>Field number for the "find_big_linear_overlap" field.</summary>
3488 public const int FindBigLinearOverlapFieldNumber = 234;
3489 private readonly static bool FindBigLinearOverlapDefaultValue = true;
3490
3491 private bool findBigLinearOverlap_;
3494
3497 /// </summary>
3498 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3499 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3500 public bool FindBigLinearOverlap {
3501 get { if ((_hasBits5 & 16777216) != 0) { return findBigLinearOverlap_; } else { return FindBigLinearOverlapDefaultValue; } }
3502 set {
3503 _hasBits5 |= 16777216;
3504 findBigLinearOverlap_ = value;
3505 }
3506 }
3508 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3509 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3510 public bool HasFindBigLinearOverlap {
3511 get { return (_hasBits5 & 16777216) != 0; }
3512 }
3514 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3515 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3516 public void ClearFindBigLinearOverlap() {
3517 _hasBits5 &= ~16777216;
3518 }
3519
3520 /// <summary>Field number for the "use_sat_inprocessing" field.</summary>
3521 public const int UseSatInprocessingFieldNumber = 163;
3522 private readonly static bool UseSatInprocessingDefaultValue = true;
3523
3524 private bool useSatInprocessing_;
3527
3529 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3530 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3531 public bool UseSatInprocessing {
3532 get { if ((_hasBits3 & 536870912) != 0) { return useSatInprocessing_; } else { return UseSatInprocessingDefaultValue; } }
3533 set {
3534 _hasBits3 |= 536870912;
3535 useSatInprocessing_ = value;
3537 }
3539 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3540 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3542 get { return (_hasBits3 & 536870912) != 0; }
3543 }
3545 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3546 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3547 public void ClearUseSatInprocessing() {
3548 _hasBits3 &= ~536870912;
3549 }
3550
3551 /// <summary>Field number for the "inprocessing_dtime_ratio" field.</summary>
3552 public const int InprocessingDtimeRatioFieldNumber = 273;
3553 private readonly static double InprocessingDtimeRatioDefaultValue = 0.2D;
3554
3555 private double inprocessingDtimeRatio_;
3558
3561 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3562 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3563 public double InprocessingDtimeRatio {
3564 get { if ((_hasBits6 & 16777216) != 0) { return inprocessingDtimeRatio_; } else { return InprocessingDtimeRatioDefaultValue; } }
3565 set {
3566 _hasBits6 |= 16777216;
3567 inprocessingDtimeRatio_ = value;
3568 }
3569 }
3570
3571 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3572 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3573 public bool HasInprocessingDtimeRatio {
3574 get { return (_hasBits6 & 16777216) != 0; }
3575 }
3577 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3578 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3579 public void ClearInprocessingDtimeRatio() {
3580 _hasBits6 &= ~16777216;
3581 }
3582
3583 /// <summary>Field number for the "inprocessing_probing_dtime" field.</summary>
3584 public const int InprocessingProbingDtimeFieldNumber = 274;
3585 private readonly static double InprocessingProbingDtimeDefaultValue = 1D;
3586
3587 private double inprocessingProbingDtime_;
3590
3591 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3592 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3594 get { if ((_hasBits6 & 33554432) != 0) { return inprocessingProbingDtime_; } else { return InprocessingProbingDtimeDefaultValue; } }
3595 set {
3596 _hasBits6 |= 33554432;
3597 inprocessingProbingDtime_ = value;
3598 }
3601 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3602 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3603 public bool HasInprocessingProbingDtime {
3604 get { return (_hasBits6 & 33554432) != 0; }
3605 }
3607 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3608 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3609 public void ClearInprocessingProbingDtime() {
3610 _hasBits6 &= ~33554432;
3611 }
3612
3613 /// <summary>Field number for the "inprocessing_minimization_dtime" field.</summary>
3614 public const int InprocessingMinimizationDtimeFieldNumber = 275;
3615 private readonly static double InprocessingMinimizationDtimeDefaultValue = 1D;
3616
3617 private double inprocessingMinimizationDtime_;
3620
3623 /// This is the amount of dtime we should spend on this technique during each
3624 /// inprocessing phase.
3625 ///
3626 /// The minimization technique is the same as the one used to minimize core in
3627 /// max-sat. We also minimize problem clauses and not just the learned clause
3628 /// that we keep forever like in the paper.
3629 /// </summary>
3630 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3631 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3632 public double InprocessingMinimizationDtime {
3633 get { if ((_hasBits6 & 67108864) != 0) { return inprocessingMinimizationDtime_; } else { return InprocessingMinimizationDtimeDefaultValue; } }
3634 set {
3635 _hasBits6 |= 67108864;
3636 inprocessingMinimizationDtime_ = value;
3637 }
3638 }
3640 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3641 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3642 public bool HasInprocessingMinimizationDtime {
3643 get { return (_hasBits6 & 67108864) != 0; }
3644 }
3646 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3647 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3648 public void ClearInprocessingMinimizationDtime() {
3649 _hasBits6 &= ~67108864;
3650 }
3651
3653 public const int InprocessingMinimizationUseConflictAnalysisFieldNumber = 297;
3654 private readonly static bool InprocessingMinimizationUseConflictAnalysisDefaultValue = true;
3655
3656 private bool inprocessingMinimizationUseConflictAnalysis_;
3657 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3658 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3660 get { if ((_hasBits7 & 32768) != 0) { return inprocessingMinimizationUseConflictAnalysis_; } else { return InprocessingMinimizationUseConflictAnalysisDefaultValue; } }
3661 set {
3662 _hasBits7 |= 32768;
3663 inprocessingMinimizationUseConflictAnalysis_ = value;
3665 }
3667 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3668 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3669 public bool HasInprocessingMinimizationUseConflictAnalysis {
3670 get { return (_hasBits7 & 32768) != 0; }
3671 }
3673 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3674 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3676 _hasBits7 &= ~32768;
3677 }
3678
3680 public const int InprocessingMinimizationUseAllOrderingsFieldNumber = 298;
3681 private readonly static bool InprocessingMinimizationUseAllOrderingsDefaultValue = false;
3682
3683 private bool inprocessingMinimizationUseAllOrderings_;
3684 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3685 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3687 get { if ((_hasBits7 & 65536) != 0) { return inprocessingMinimizationUseAllOrderings_; } else { return InprocessingMinimizationUseAllOrderingsDefaultValue; } }
3688 set {
3689 _hasBits7 |= 65536;
3690 inprocessingMinimizationUseAllOrderings_ = value;
3692 }
3694 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3695 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3696 public bool HasInprocessingMinimizationUseAllOrderings {
3697 get { return (_hasBits7 & 65536) != 0; }
3698 }
3700 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3701 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3703 _hasBits7 &= ~65536;
3704 }
3705
3707 public const int NumWorkersFieldNumber = 206;
3708 private readonly static int NumWorkersDefaultValue = 0;
3709
3710 private int numWorkers_;
3715
3718 ///
3719 /// Note that 'num_workers' is the preferred name, but if it is set to zero,
3720 /// we will still read the deprecated 'num_search_workers'.
3721 ///
3722 /// As of 2020-04-10, if you're using SAT via MPSolver (to solve integer
3723 /// programs) this field is overridden with a value of 8, if the field is not
3724 /// set *explicitly*. Thus, always set this field explicitly or via
3725 /// MPSolver::SetNumThreads().
3726 /// </summary>
3727 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3728 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3729 public int NumWorkers {
3730 get { if ((_hasBits5 & 32) != 0) { return numWorkers_; } else { return NumWorkersDefaultValue; } }
3731 set {
3732 _hasBits5 |= 32;
3733 numWorkers_ = value;
3734 }
3735 }
3737 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3738 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3739 public bool HasNumWorkers {
3740 get { return (_hasBits5 & 32) != 0; }
3741 }
3743 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3744 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3745 public void ClearNumWorkers() {
3746 _hasBits5 &= ~32;
3747 }
3748
3750 public const int NumSearchWorkersFieldNumber = 100;
3751 private readonly static int NumSearchWorkersDefaultValue = 0;
3752
3753 private int numSearchWorkers_;
3754 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3755 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3756 public int NumSearchWorkers {
3757 get { if ((_hasBits2 & 512) != 0) { return numSearchWorkers_; } else { return NumSearchWorkersDefaultValue; } }
3758 set {
3759 _hasBits2 |= 512;
3760 numSearchWorkers_ = value;
3761 }
3762 }
3764 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3765 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3766 public bool HasNumSearchWorkers {
3767 get { return (_hasBits2 & 512) != 0; }
3768 }
3770 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3771 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3772 public void ClearNumSearchWorkers() {
3773 _hasBits2 &= ~512;
3774 }
3777 public const int NumFullSubsolversFieldNumber = 294;
3778 private readonly static int NumFullSubsolversDefaultValue = 0;
3779
3780 private int numFullSubsolvers_;
3781 /// <summary>
3782 /// We distinguish subsolvers that consume a full thread, and the ones that are
3783 /// always interleaved. If left at zero, we will fix this with a default
3784 /// formula that depends on num_workers. But if you start modifying what runs,
3785 /// you might want to fix that to a given value depending on the num_workers
3786 /// you use.
3787 /// </summary>
3788 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3789 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3790 public int NumFullSubsolvers {
3791 get { if ((_hasBits7 & 4096) != 0) { return numFullSubsolvers_; } else { return NumFullSubsolversDefaultValue; } }
3792 set {
3793 _hasBits7 |= 4096;
3794 numFullSubsolvers_ = value;
3795 }
3796 }
3797 /// <summary>Gets whether the "num_full_subsolvers" field is set</summary>
3798 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3799 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3800 public bool HasNumFullSubsolvers {
3801 get { return (_hasBits7 & 4096) != 0; }
3804 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3805 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3806 public void ClearNumFullSubsolvers() {
3807 _hasBits7 &= ~4096;
3808 }
3809
3811 public const int SubsolversFieldNumber = 207;
3812 private static readonly pb::FieldCodec<string> _repeated_subsolvers_codec
3813 = pb::FieldCodec.ForString(1658);
3814 private readonly pbc::RepeatedField<string> subsolvers_ = new pbc::RepeatedField<string>();
3815 /// <summary>
3816 /// In multi-thread, the solver can be mainly seen as a portfolio of solvers
3817 /// with different parameters. This field indicates the names of the parameters
3818 /// that are used in multithread. This only applies to "full" subsolvers.
3819 ///
3820 /// See cp_model_search.cc to see a list of the names and the default value (if
3821 /// left empty) that looks like:
3822 /// - default_lp (linearization_level:1)
3823 /// - fixed (only if fixed search specified or scheduling)
3824 /// - no_lp (linearization_level:0)
3825 /// - max_lp (linearization_level:2)
3826 /// - pseudo_costs (only if objective, change search heuristic)
3827 /// - reduced_costs (only if objective, change search heuristic)
3828 /// - quick_restart (kind of probing)
3829 /// - quick_restart_no_lp (kind of probing with linearization_level:0)
3830 /// - lb_tree_search (to improve lower bound, MIP like tree search)
3831 /// - probing (continuous probing and shaving)
3832 ///
3833 /// Also, note that some set of parameters will be ignored if they do not make
3834 /// sense. For instance if there is no objective, pseudo_cost or reduced_cost
3835 /// search will be ignored. Core based search will only work if the objective
3836 /// has many terms. If there is no fixed strategy fixed will be ignored. And so
3837 /// on.
3838 ///
3839 /// The order is important, as only the first num_full_subsolvers will be
3840 /// scheduled. You can see in the log which one are selected for a given run.
3841 /// </summary>
3842 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3843 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3844 public pbc::RepeatedField<string> Subsolvers {
3845 get { return subsolvers_; }
3846 }
3847
3849 public const int ExtraSubsolversFieldNumber = 219;
3850 private static readonly pb::FieldCodec<string> _repeated_extraSubsolvers_codec
3851 = pb::FieldCodec.ForString(1754);
3852 private readonly pbc::RepeatedField<string> extraSubsolvers_ = new pbc::RepeatedField<string>();
3857 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3858 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3859 public pbc::RepeatedField<string> ExtraSubsolvers {
3860 get { return extraSubsolvers_; }
3861 }
3862
3864 public const int IgnoreSubsolversFieldNumber = 209;
3865 private static readonly pb::FieldCodec<string> _repeated_ignoreSubsolvers_codec
3866 = pb::FieldCodec.ForString(1674);
3867 private readonly pbc::RepeatedField<string> ignoreSubsolvers_ = new pbc::RepeatedField<string>();
3872 /// support '*' and '?'.
3873 ///
3874 /// The way this work is that we will only accept a name that match a filter
3875 /// pattern (if non-empty) and do not match an ignore pattern. Note also that
3876 /// these fields work on LNS or LS names even if these are currently not
3877 /// specified via the subsolvers field.
3878 /// </summary>
3879 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3880 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3881 public pbc::RepeatedField<string> IgnoreSubsolvers {
3882 get { return ignoreSubsolvers_; }
3883 }
3884
3886 public const int FilterSubsolversFieldNumber = 293;
3887 private static readonly pb::FieldCodec<string> _repeated_filterSubsolvers_codec
3888 = pb::FieldCodec.ForString(2346);
3889 private readonly pbc::RepeatedField<string> filterSubsolvers_ = new pbc::RepeatedField<string>();
3890 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3891 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3892 public pbc::RepeatedField<string> FilterSubsolvers {
3893 get { return filterSubsolvers_; }
3894 }
3895
3897 public const int SubsolverParamsFieldNumber = 210;
3898 private static readonly pb::FieldCodec<global::Google.OrTools.Sat.SatParameters> _repeated_subsolverParams_codec
3899 = pb::FieldCodec.ForMessage(1682, global::Google.OrTools.Sat.SatParameters.Parser);
3900 private readonly pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters> subsolverParams_ = new pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters>();
3908 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3909 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3910 public pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters> SubsolverParams {
3911 get { return subsolverParams_; }
3912 }
3913
3915 public const int InterleaveSearchFieldNumber = 136;
3916 private readonly static bool InterleaveSearchDefaultValue = false;
3917
3918 private bool interleaveSearch_;
3921 /// strategy and distribute the work amongst num_workers.
3922 ///
3923 /// The search is deterministic (independently of num_workers!), and we
3924 /// schedule and wait for interleave_batch_size task to be completed before
3925 /// synchronizing and scheduling the next batch of tasks.
3926 /// </summary>
3927 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3928 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3929 public bool InterleaveSearch {
3930 get { if ((_hasBits3 & 512) != 0) { return interleaveSearch_; } else { return InterleaveSearchDefaultValue; } }
3931 set {
3932 _hasBits3 |= 512;
3933 interleaveSearch_ = value;
3934 }
3935 }
3937 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3938 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3940 get { return (_hasBits3 & 512) != 0; }
3941 }
3942
3943 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3944 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3945 public void ClearInterleaveSearch() {
3946 _hasBits3 &= ~512;
3947 }
3948
3950 public const int InterleaveBatchSizeFieldNumber = 134;
3951 private readonly static int InterleaveBatchSizeDefaultValue = 0;
3952
3953 private int interleaveBatchSize_;
3954 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3955 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3956 public int InterleaveBatchSize {
3957 get { if ((_hasBits3 & 128) != 0) { return interleaveBatchSize_; } else { return InterleaveBatchSizeDefaultValue; } }
3958 set {
3959 _hasBits3 |= 128;
3960 interleaveBatchSize_ = value;
3961 }
3962 }
3964 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3965 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3966 public bool HasInterleaveBatchSize {
3967 get { return (_hasBits3 & 128) != 0; }
3968 }
3969 /// <summary>Clears the value of the "interleave_batch_size" field</summary>
3970 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3971 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3972 public void ClearInterleaveBatchSize() {
3973 _hasBits3 &= ~128;
3974 }
3977 public const int ShareObjectiveBoundsFieldNumber = 113;
3978 private readonly static bool ShareObjectiveBoundsDefaultValue = true;
3979
3980 private bool shareObjectiveBounds_;
3984 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3985 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3987 get { if ((_hasBits2 & 524288) != 0) { return shareObjectiveBounds_; } else { return ShareObjectiveBoundsDefaultValue; } }
3988 set {
3989 _hasBits2 |= 524288;
3990 shareObjectiveBounds_ = value;
3991 }
3992 }
3993
3994 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3995 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3997 get { return (_hasBits2 & 524288) != 0; }
3998 }
3999
4000 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4001 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4003 _hasBits2 &= ~524288;
4004 }
4005
4007 public const int ShareLevelZeroBoundsFieldNumber = 114;
4008 private readonly static bool ShareLevelZeroBoundsDefaultValue = true;
4009
4010 private bool shareLevelZeroBounds_;
4014 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4015 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4017 get { if ((_hasBits2 & 1048576) != 0) { return shareLevelZeroBounds_; } else { return ShareLevelZeroBoundsDefaultValue; } }
4018 set {
4019 _hasBits2 |= 1048576;
4020 shareLevelZeroBounds_ = value;
4021 }
4022 }
4023
4024 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4025 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4027 get { return (_hasBits2 & 1048576) != 0; }
4028 }
4029
4030 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4031 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4033 _hasBits2 &= ~1048576;
4034 }
4035
4037 public const int ShareBinaryClausesFieldNumber = 203;
4038 private readonly static bool ShareBinaryClausesDefaultValue = true;
4039
4040 private bool shareBinaryClauses_;
4044 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4045 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4047 get { if ((_hasBits5 & 4) != 0) { return shareBinaryClauses_; } else { return ShareBinaryClausesDefaultValue; } }
4048 set {
4049 _hasBits5 |= 4;
4050 shareBinaryClauses_ = value;
4051 }
4052 }
4053
4054 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4055 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4057 get { return (_hasBits5 & 4) != 0; }
4058 }
4059
4060 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4061 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4063 _hasBits5 &= ~4;
4064 }
4065
4067 public const int ShareGlueClausesFieldNumber = 285;
4068 private readonly static bool ShareGlueClausesDefaultValue = false;
4069
4070 private bool shareGlueClauses_;
4075 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4076 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4077 public bool ShareGlueClauses {
4078 get { if ((_hasBits7 & 16) != 0) { return shareGlueClauses_; } else { return ShareGlueClausesDefaultValue; } }
4079 set {
4080 _hasBits7 |= 16;
4081 shareGlueClauses_ = value;
4082 }
4083 }
4085 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4086 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4087 public bool HasShareGlueClauses {
4088 get { return (_hasBits7 & 16) != 0; }
4089 }
4091 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4092 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4093 public void ClearShareGlueClauses() {
4094 _hasBits7 &= ~16;
4095 }
4096
4098 public const int MinimizeSharedClausesFieldNumber = 300;
4099 private readonly static bool MinimizeSharedClausesDefaultValue = true;
4100
4101 private bool minimizeSharedClauses_;
4106 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4107 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4108 public bool MinimizeSharedClauses {
4109 get { if ((_hasBits7 & 262144) != 0) { return minimizeSharedClauses_; } else { return MinimizeSharedClausesDefaultValue; } }
4110 set {
4111 _hasBits7 |= 262144;
4112 minimizeSharedClauses_ = value;
4113 }
4114 }
4116 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4117 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4118 public bool HasMinimizeSharedClauses {
4119 get { return (_hasBits7 & 262144) != 0; }
4120 }
4122 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4123 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4124 public void ClearMinimizeSharedClauses() {
4125 _hasBits7 &= ~262144;
4126 }
4127
4129 public const int ShareGlueClausesDtimeFieldNumber = 322;
4130 private readonly static double ShareGlueClausesDtimeDefaultValue = 1D;
4131
4132 private double shareGlueClausesDtime_;
4136 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4137 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4139 get { if ((_hasBits8 & 128) != 0) { return shareGlueClausesDtime_; } else { return ShareGlueClausesDtimeDefaultValue; } }
4140 set {
4141 _hasBits8 |= 128;
4142 shareGlueClausesDtime_ = value;
4143 }
4144 }
4145
4146 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4147 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4149 get { return (_hasBits8 & 128) != 0; }
4150 }
4151
4152 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4153 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4155 _hasBits8 &= ~128;
4156 }
4157
4160 private readonly static bool DebugPostsolveWithFullSolverDefaultValue = false;
4161
4162 private bool debugPostsolveWithFullSolver_;
4168 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4169 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4170 public bool DebugPostsolveWithFullSolver {
4171 get { if ((_hasBits3 & 268435456) != 0) { return debugPostsolveWithFullSolver_; } else { return DebugPostsolveWithFullSolverDefaultValue; } }
4172 set {
4173 _hasBits3 |= 268435456;
4174 debugPostsolveWithFullSolver_ = value;
4175 }
4176 }
4178 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4179 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4181 get { return (_hasBits3 & 268435456) != 0; }
4182 }
4184 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4185 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4186 public void ClearDebugPostsolveWithFullSolver() {
4187 _hasBits3 &= ~268435456;
4188 }
4191 public const int DebugMaxNumPresolveOperationsFieldNumber = 151;
4192 private readonly static int DebugMaxNumPresolveOperationsDefaultValue = 0;
4193
4194 private int debugMaxNumPresolveOperations_;
4199 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4200 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4202 get { if ((_hasBits3 & 262144) != 0) { return debugMaxNumPresolveOperations_; } else { return DebugMaxNumPresolveOperationsDefaultValue; } }
4203 set {
4204 _hasBits3 |= 262144;
4205 debugMaxNumPresolveOperations_ = value;
4206 }
4207 }
4209 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4210 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4212 get { return (_hasBits3 & 262144) != 0; }
4213 }
4215 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4216 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4218 _hasBits3 &= ~262144;
4219 }
4220
4222 public const int DebugCrashOnBadHintFieldNumber = 195;
4223 private readonly static bool DebugCrashOnBadHintDefaultValue = false;
4224
4225 private bool debugCrashOnBadHint_;
4229 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4230 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4232 get { if ((_hasBits4 & 67108864) != 0) { return debugCrashOnBadHint_; } else { return DebugCrashOnBadHintDefaultValue; } }
4233 set {
4234 _hasBits4 |= 67108864;
4235 debugCrashOnBadHint_ = value;
4236 }
4237 }
4238
4239 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4240 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4242 get { return (_hasBits4 & 67108864) != 0; }
4243 }
4244
4245 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4246 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4248 _hasBits4 &= ~67108864;
4249 }
4250
4253 private readonly static bool DebugCrashIfPresolveBreaksHintDefaultValue = false;
4254
4255 private bool debugCrashIfPresolveBreaksHint_;
4259 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4260 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4262 get { if ((_hasBits7 & 16777216) != 0) { return debugCrashIfPresolveBreaksHint_; } else { return DebugCrashIfPresolveBreaksHintDefaultValue; } }
4263 set {
4264 _hasBits7 |= 16777216;
4265 debugCrashIfPresolveBreaksHint_ = value;
4266 }
4267 }
4268
4269 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4270 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4272 get { return (_hasBits7 & 16777216) != 0; }
4273 }
4274
4275 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4276 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4278 _hasBits7 &= ~16777216;
4279 }
4280
4282 public const int UseOptimizationHintsFieldNumber = 35;
4283 private readonly static bool UseOptimizationHintsDefaultValue = true;
4284
4285 private bool useOptimizationHints_;
4291 /// </summary>
4292 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4293 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4294 public bool UseOptimizationHints {
4295 get { if ((_hasBits0 & 65536) != 0) { return useOptimizationHints_; } else { return UseOptimizationHintsDefaultValue; } }
4296 set {
4297 _hasBits0 |= 65536;
4298 useOptimizationHints_ = value;
4299 }
4300 }
4301 /// <summary>Gets whether the "use_optimization_hints" field is set</summary>
4302 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4303 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4304 public bool HasUseOptimizationHints {
4305 get { return (_hasBits0 & 65536) != 0; }
4306 }
4307 /// <summary>Clears the value of the "use_optimization_hints" field</summary>
4308 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4309 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4310 public void ClearUseOptimizationHints() {
4311 _hasBits0 &= ~65536;
4313
4315 public const int CoreMinimizationLevelFieldNumber = 50;
4316 private readonly static int CoreMinimizationLevelDefaultValue = 2;
4317
4318 private int coreMinimizationLevel_;
4324 /// </summary>
4325 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4326 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4327 public int CoreMinimizationLevel {
4328 get { if ((_hasBits0 & 268435456) != 0) { return coreMinimizationLevel_; } else { return CoreMinimizationLevelDefaultValue; } }
4329 set {
4330 _hasBits0 |= 268435456;
4331 coreMinimizationLevel_ = value;
4332 }
4333 }
4334 /// <summary>Gets whether the "core_minimization_level" field is set</summary>
4335 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4336 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4337 public bool HasCoreMinimizationLevel {
4338 get { return (_hasBits0 & 268435456) != 0; }
4339 }
4340 /// <summary>Clears the value of the "core_minimization_level" field</summary>
4341 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4342 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4343 public void ClearCoreMinimizationLevel() {
4344 _hasBits0 &= ~268435456;
4346
4348 public const int FindMultipleCoresFieldNumber = 84;
4349 private readonly static bool FindMultipleCoresDefaultValue = true;
4350
4351 private bool findMultipleCores_;
4356 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4357 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4358 public bool FindMultipleCores {
4359 get { if ((_hasBits1 & 134217728) != 0) { return findMultipleCores_; } else { return FindMultipleCoresDefaultValue; } }
4360 set {
4361 _hasBits1 |= 134217728;
4362 findMultipleCores_ = value;
4363 }
4364 }
4366 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4367 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4368 public bool HasFindMultipleCores {
4369 get { return (_hasBits1 & 134217728) != 0; }
4370 }
4372 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4373 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4374 public void ClearFindMultipleCores() {
4375 _hasBits1 &= ~134217728;
4376 }
4377
4379 public const int CoverOptimizationFieldNumber = 89;
4380 private readonly static bool CoverOptimizationDefaultValue = true;
4381
4382 private bool coverOptimization_;
4388 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4389 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4390 public bool CoverOptimization {
4391 get { if ((_hasBits2 & 1) != 0) { return coverOptimization_; } else { return CoverOptimizationDefaultValue; } }
4392 set {
4393 _hasBits2 |= 1;
4394 coverOptimization_ = value;
4395 }
4396 }
4398 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4399 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4400 public bool HasCoverOptimization {
4401 get { return (_hasBits2 & 1) != 0; }
4402 }
4404 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4405 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4406 public void ClearCoverOptimization() {
4407 _hasBits2 &= ~1;
4408 }
4411 public const int MaxSatAssumptionOrderFieldNumber = 51;
4412 private readonly static global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder MaxSatAssumptionOrderDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder.DefaultAssumptionOrder;
4413
4414 private global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder maxSatAssumptionOrder_;
4415 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4416 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4417 public global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder MaxSatAssumptionOrder {
4418 get { if ((_hasBits0 & 536870912) != 0) { return maxSatAssumptionOrder_; } else { return MaxSatAssumptionOrderDefaultValue; } }
4419 set {
4420 _hasBits0 |= 536870912;
4421 maxSatAssumptionOrder_ = value;
4422 }
4423 }
4425 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4426 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4427 public bool HasMaxSatAssumptionOrder {
4428 get { return (_hasBits0 & 536870912) != 0; }
4429 }
4430 /// <summary>Clears the value of the "max_sat_assumption_order" field</summary>
4431 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4432 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4433 public void ClearMaxSatAssumptionOrder() {
4434 _hasBits0 &= ~536870912;
4435 }
4438 public const int MaxSatReverseAssumptionOrderFieldNumber = 52;
4439 private readonly static bool MaxSatReverseAssumptionOrderDefaultValue = false;
4440
4441 private bool maxSatReverseAssumptionOrder_;
4446 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4447 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4448 public bool MaxSatReverseAssumptionOrder {
4449 get { if ((_hasBits0 & 1073741824) != 0) { return maxSatReverseAssumptionOrder_; } else { return MaxSatReverseAssumptionOrderDefaultValue; } }
4450 set {
4451 _hasBits0 |= 1073741824;
4452 maxSatReverseAssumptionOrder_ = value;
4453 }
4454 }
4456 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4457 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4459 get { return (_hasBits0 & 1073741824) != 0; }
4460 }
4462 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4463 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4464 public void ClearMaxSatReverseAssumptionOrder() {
4465 _hasBits0 &= ~1073741824;
4466 }
4467
4469 public const int MaxSatStratificationFieldNumber = 53;
4470 private readonly static global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm MaxSatStratificationDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm.StratificationDescent;
4471
4472 private global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm maxSatStratification_;
4473 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4474 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4475 public global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm MaxSatStratification {
4476 get { if ((_hasBits0 & -2147483648) != 0) { return maxSatStratification_; } else { return MaxSatStratificationDefaultValue; } }
4477 set {
4478 _hasBits0 |= -2147483648;
4479 maxSatStratification_ = value;
4480 }
4481 }
4483 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4484 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4485 public bool HasMaxSatStratification {
4486 get { return (_hasBits0 & -2147483648) != 0; }
4487 }
4488 /// <summary>Clears the value of the "max_sat_stratification" field</summary>
4489 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4490 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4491 public void ClearMaxSatStratification() {
4492 _hasBits0 &= ~-2147483648;
4493 }
4496 public const int PropagationLoopDetectionFactorFieldNumber = 221;
4497 private readonly static double PropagationLoopDetectionFactorDefaultValue = 10D;
4498
4499 private double propagationLoopDetectionFactor_;
4505 /// feature.
4506 ///
4507 /// TODO(user): Setting this to something like 10 helps in most cases, but the
4508 /// code is currently buggy and can cause the solve to enter a bad state where
4509 /// no progress is made.
4510 /// </summary>
4511 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4512 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4513 public double PropagationLoopDetectionFactor {
4514 get { if ((_hasBits5 & 4096) != 0) { return propagationLoopDetectionFactor_; } else { return PropagationLoopDetectionFactorDefaultValue; } }
4515 set {
4516 _hasBits5 |= 4096;
4517 propagationLoopDetectionFactor_ = value;
4518 }
4519 }
4521 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4522 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4524 get { return (_hasBits5 & 4096) != 0; }
4525 }
4527 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4528 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4530 _hasBits5 &= ~4096;
4531 }
4532
4534 public const int UsePrecedencesInDisjunctiveConstraintFieldNumber = 74;
4535 private readonly static bool UsePrecedencesInDisjunctiveConstraintDefaultValue = true;
4536
4537 private bool usePrecedencesInDisjunctiveConstraint_;
4544 /// provided that the start time for all task was currently zero.
4545 ///
4546 /// This always result in better propagation, but it is usually slow, so
4547 /// depending on the problem, turning this off may lead to a faster solution.
4548 /// </summary>
4549 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4550 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4552 get { if ((_hasBits1 & 262144) != 0) { return usePrecedencesInDisjunctiveConstraint_; } else { return UsePrecedencesInDisjunctiveConstraintDefaultValue; } }
4553 set {
4554 _hasBits1 |= 262144;
4555 usePrecedencesInDisjunctiveConstraint_ = value;
4556 }
4557 }
4559 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4560 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4562 get { return (_hasBits1 & 262144) != 0; }
4563 }
4565 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4566 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4568 _hasBits1 &= ~262144;
4569 }
4570
4572 public const int MaxSizeToCreatePrecedenceLiteralsInDisjunctiveFieldNumber = 229;
4573 private readonly static int MaxSizeToCreatePrecedenceLiteralsInDisjunctiveDefaultValue = 60;
4574
4575 private int maxSizeToCreatePrecedenceLiteralsInDisjunctive_;
4583 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4584 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4586 get { if ((_hasBits5 & 1048576) != 0) { return maxSizeToCreatePrecedenceLiteralsInDisjunctive_; } else { return MaxSizeToCreatePrecedenceLiteralsInDisjunctiveDefaultValue; } }
4587 set {
4588 _hasBits5 |= 1048576;
4589 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = value;
4590 }
4591 }
4593 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4594 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4596 get { return (_hasBits5 & 1048576) != 0; }
4597 }
4599 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4600 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4602 _hasBits5 &= ~1048576;
4603 }
4606 public const int UseStrongPropagationInDisjunctiveFieldNumber = 230;
4607 private readonly static bool UseStrongPropagationInDisjunctiveDefaultValue = false;
4608
4609 private bool useStrongPropagationInDisjunctive_;
4613 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4614 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4616 get { if ((_hasBits5 & 2097152) != 0) { return useStrongPropagationInDisjunctive_; } else { return UseStrongPropagationInDisjunctiveDefaultValue; } }
4617 set {
4618 _hasBits5 |= 2097152;
4619 useStrongPropagationInDisjunctive_ = value;
4620 }
4621 }
4623 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4624 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4625 public bool HasUseStrongPropagationInDisjunctive {
4626 get { return (_hasBits5 & 2097152) != 0; }
4629 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4630 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4631 public void ClearUseStrongPropagationInDisjunctive() {
4632 _hasBits5 &= ~2097152;
4634
4636 public const int UseDynamicPrecedenceInDisjunctiveFieldNumber = 263;
4637 private readonly static bool UseDynamicPrecedenceInDisjunctiveDefaultValue = false;
4639 private bool useDynamicPrecedenceInDisjunctive_;
4647 /// </summary>
4648 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4649 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4651 get { if ((_hasBits6 & 16384) != 0) { return useDynamicPrecedenceInDisjunctive_; } else { return UseDynamicPrecedenceInDisjunctiveDefaultValue; } }
4652 set {
4653 _hasBits6 |= 16384;
4654 useDynamicPrecedenceInDisjunctive_ = value;
4655 }
4656 }
4657 /// <summary>Gets whether the "use_dynamic_precedence_in_disjunctive" field is set</summary>
4658 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4659 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4661 get { return (_hasBits6 & 16384) != 0; }
4662 }
4663 /// <summary>Clears the value of the "use_dynamic_precedence_in_disjunctive" field</summary>
4664 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4665 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4667 _hasBits6 &= ~16384;
4669
4671 public const int UseDynamicPrecedenceInCumulativeFieldNumber = 268;
4672 private readonly static bool UseDynamicPrecedenceInCumulativeDefaultValue = false;
4673
4674 private bool useDynamicPrecedenceInCumulative_;
4675 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4676 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4677 public bool UseDynamicPrecedenceInCumulative {
4678 get { if ((_hasBits6 & 524288) != 0) { return useDynamicPrecedenceInCumulative_; } else { return UseDynamicPrecedenceInCumulativeDefaultValue; } }
4679 set {
4680 _hasBits6 |= 524288;
4681 useDynamicPrecedenceInCumulative_ = value;
4682 }
4685 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4686 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4687 public bool HasUseDynamicPrecedenceInCumulative {
4688 get { return (_hasBits6 & 524288) != 0; }
4689 }
4690
4691 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4692 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4694 _hasBits6 &= ~524288;
4695 }
4696
4698 public const int UseOverloadCheckerInCumulativeFieldNumber = 78;
4699 private readonly static bool UseOverloadCheckerInCumulativeDefaultValue = false;
4700
4701 private bool useOverloadCheckerInCumulative_;
4702
4710 /// </summary>
4711 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4712 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4713 public bool UseOverloadCheckerInCumulative {
4714 get { if ((_hasBits1 & 4194304) != 0) { return useOverloadCheckerInCumulative_; } else { return UseOverloadCheckerInCumulativeDefaultValue; } }
4715 set {
4716 _hasBits1 |= 4194304;
4717 useOverloadCheckerInCumulative_ = value;
4718 }
4719 }
4720 /// <summary>Gets whether the "use_overload_checker_in_cumulative" field is set</summary>
4721 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4722 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4724 get { return (_hasBits1 & 4194304) != 0; }
4725 }
4726 /// <summary>Clears the value of the "use_overload_checker_in_cumulative" field</summary>
4727 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4728 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4730 _hasBits1 &= ~4194304;
4732
4734 public const int UseConservativeScaleOverloadCheckerFieldNumber = 286;
4735 private readonly static bool UseConservativeScaleOverloadCheckerDefaultValue = false;
4736
4737 private bool useConservativeScaleOverloadChecker_;
4747 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4748 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4750 get { if ((_hasBits7 & 32) != 0) { return useConservativeScaleOverloadChecker_; } else { return UseConservativeScaleOverloadCheckerDefaultValue; } }
4751 set {
4752 _hasBits7 |= 32;
4753 useConservativeScaleOverloadChecker_ = value;
4754 }
4755 }
4757 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4758 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4760 get { return (_hasBits7 & 32) != 0; }
4761 }
4763 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4764 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4766 _hasBits7 &= ~32;
4767 }
4771 private readonly static bool UseTimetableEdgeFindingInCumulativeDefaultValue = false;
4772
4773 private bool useTimetableEdgeFindingInCumulative_;
4783 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4784 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4786 get { if ((_hasBits1 & 8388608) != 0) { return useTimetableEdgeFindingInCumulative_; } else { return UseTimetableEdgeFindingInCumulativeDefaultValue; } }
4787 set {
4788 _hasBits1 |= 8388608;
4789 useTimetableEdgeFindingInCumulative_ = value;
4790 }
4791 }
4793 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4794 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4796 get { return (_hasBits1 & 8388608) != 0; }
4797 }
4799 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4800 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4802 _hasBits1 &= ~8388608;
4803 }
4804
4807 private readonly static int MaxNumIntervalsForTimetableEdgeFindingDefaultValue = 100;
4808
4809 private int maxNumIntervalsForTimetableEdgeFinding_;
4814 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4815 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4817 get { if ((_hasBits6 & 2048) != 0) { return maxNumIntervalsForTimetableEdgeFinding_; } else { return MaxNumIntervalsForTimetableEdgeFindingDefaultValue; } }
4818 set {
4819 _hasBits6 |= 2048;
4820 maxNumIntervalsForTimetableEdgeFinding_ = value;
4822 }
4824 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4825 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4826 public bool HasMaxNumIntervalsForTimetableEdgeFinding {
4827 get { return (_hasBits6 & 2048) != 0; }
4828 }
4830 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4831 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4833 _hasBits6 &= ~2048;
4834 }
4835
4838 private readonly static bool UseHardPrecedencesInCumulativeDefaultValue = false;
4839
4840 private bool useHardPrecedencesInCumulative_;
4849 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4850 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4851 public bool UseHardPrecedencesInCumulative {
4852 get { if ((_hasBits5 & 256) != 0) { return useHardPrecedencesInCumulative_; } else { return UseHardPrecedencesInCumulativeDefaultValue; } }
4853 set {
4854 _hasBits5 |= 256;
4855 useHardPrecedencesInCumulative_ = value;
4856 }
4857 }
4859 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4860 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4861 public bool HasUseHardPrecedencesInCumulative {
4862 get { return (_hasBits5 & 256) != 0; }
4863 }
4865 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4866 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4867 public void ClearUseHardPrecedencesInCumulative() {
4868 _hasBits5 &= ~256;
4869 }
4870
4871
4872 public const int ExploitAllPrecedencesFieldNumber = 220;
4873 private readonly static bool ExploitAllPrecedencesDefaultValue = false;
4874
4875 private bool exploitAllPrecedences_;
4876 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4877 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4878 public bool ExploitAllPrecedences {
4879 get { if ((_hasBits5 & 2048) != 0) { return exploitAllPrecedences_; } else { return ExploitAllPrecedencesDefaultValue; } }
4880 set {
4881 _hasBits5 |= 2048;
4882 exploitAllPrecedences_ = value;
4883 }
4884 }
4886 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4887 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4889 get { return (_hasBits5 & 2048) != 0; }
4890 }
4892 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4893 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4894 public void ClearExploitAllPrecedences() {
4895 _hasBits5 &= ~2048;
4896 }
4897
4898 /// <summary>Field number for the "use_disjunctive_constraint_in_cumulative" field.</summary>
4900 private readonly static bool UseDisjunctiveConstraintInCumulativeDefaultValue = true;
4901
4902 private bool useDisjunctiveConstraintInCumulative_;
4904 /// When this is true, the cumulative constraint is reinforced with propagators
4905 /// from the disjunctive constraint to improve the inference on a set of tasks
4906 /// that are disjunctive at the root of the problem. This additional level
4907 /// supplements the default level of reasoning.
4908 ///
4909 /// Propagators of the cumulative constraint will not be used at all if all the
4910 /// tasks are disjunctive at root node.
4911 ///
4912 /// This always result in better propagation, but it is usually slow, so
4913 /// depending on the problem, turning this off may lead to a faster solution.
4914 /// </summary>
4915 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4916 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4918 get { if ((_hasBits1 & 16777216) != 0) { return useDisjunctiveConstraintInCumulative_; } else { return UseDisjunctiveConstraintInCumulativeDefaultValue; } }
4919 set {
4920 _hasBits1 |= 16777216;
4921 useDisjunctiveConstraintInCumulative_ = value;
4922 }
4923 }
4925 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4926 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4928 get { return (_hasBits1 & 16777216) != 0; }
4929 }
4931 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4932 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4934 _hasBits1 &= ~16777216;
4935 }
4938 public const int NoOverlap2DBooleanRelationsLimitFieldNumber = 321;
4939 private readonly static int NoOverlap2DBooleanRelationsLimitDefaultValue = 10;
4940
4941 private int noOverlap2DBooleanRelationsLimit_;
4956 /// </summary>
4957 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4958 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4960 get { if ((_hasBits8 & 64) != 0) { return noOverlap2DBooleanRelationsLimit_; } else { return NoOverlap2DBooleanRelationsLimitDefaultValue; } }
4961 set {
4962 _hasBits8 |= 64;
4963 noOverlap2DBooleanRelationsLimit_ = value;
4964 }
4965 }
4966 /// <summary>Gets whether the "no_overlap_2d_boolean_relations_limit" field is set</summary>
4967 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4968 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4970 get { return (_hasBits8 & 64) != 0; }
4971 }
4972 /// <summary>Clears the value of the "no_overlap_2d_boolean_relations_limit" field</summary>
4973 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4974 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4976 _hasBits8 &= ~64;
4978
4980 public const int UseTimetablingInNoOverlap2DFieldNumber = 200;
4981 private readonly static bool UseTimetablingInNoOverlap2DDefaultValue = false;
4982
4983 private bool useTimetablingInNoOverlap2D_;
4991 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4992 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4993 public bool UseTimetablingInNoOverlap2D {
4994 get { if ((_hasBits4 & -2147483648) != 0) { return useTimetablingInNoOverlap2D_; } else { return UseTimetablingInNoOverlap2DDefaultValue; } }
4995 set {
4996 _hasBits4 |= -2147483648;
4997 useTimetablingInNoOverlap2D_ = value;
4998 }
4999 }
5000 /// <summary>Gets whether the "use_timetabling_in_no_overlap_2d" field is set</summary>
5001 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5002 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5003 public bool HasUseTimetablingInNoOverlap2D {
5004 get { return (_hasBits4 & -2147483648) != 0; }
5005 }
5007 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5008 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5009 public void ClearUseTimetablingInNoOverlap2D() {
5010 _hasBits4 &= ~-2147483648;
5011 }
5012
5013
5014 public const int UseEnergeticReasoningInNoOverlap2DFieldNumber = 213;
5015 private readonly static bool UseEnergeticReasoningInNoOverlap2DDefaultValue = false;
5017 private bool useEnergeticReasoningInNoOverlap2D_;
5019
5023 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5024 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5026 get { if ((_hasBits5 & 64) != 0) { return useEnergeticReasoningInNoOverlap2D_; } else { return UseEnergeticReasoningInNoOverlap2DDefaultValue; } }
5027 set {
5028 _hasBits5 |= 64;
5029 useEnergeticReasoningInNoOverlap2D_ = value;
5030 }
5031 }
5033 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5034 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5036 get { return (_hasBits5 & 64) != 0; }
5037 }
5039 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5040 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5041 public void ClearUseEnergeticReasoningInNoOverlap2D() {
5042 _hasBits5 &= ~64;
5043 }
5047 private readonly static bool UseAreaEnergeticReasoningInNoOverlap2DDefaultValue = false;
5048
5049 private bool useAreaEnergeticReasoningInNoOverlap2D_;
5050 /// <summary>
5051 /// When this is true, the no_overlap_2d constraint is reinforced with
5052 /// an energetic reasoning that uses an area-based energy. This can be combined
5053 /// with the two other overlap heuristics above.
5054 /// </summary>
5055 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5056 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5058 get { if ((_hasBits6 & 4194304) != 0) { return useAreaEnergeticReasoningInNoOverlap2D_; } else { return UseAreaEnergeticReasoningInNoOverlap2DDefaultValue; } }
5059 set {
5060 _hasBits6 |= 4194304;
5061 useAreaEnergeticReasoningInNoOverlap2D_ = value;
5062 }
5063 }
5065 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5066 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5068 get { return (_hasBits6 & 4194304) != 0; }
5069 }
5071 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5072 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5073 public void ClearUseAreaEnergeticReasoningInNoOverlap2D() {
5074 _hasBits6 &= ~4194304;
5075 }
5079 private readonly static bool UseTryEdgeReasoningInNoOverlap2DDefaultValue = false;
5080
5081 private bool useTryEdgeReasoningInNoOverlap2D_;
5082 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5083 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5085 get { if ((_hasBits7 & 131072) != 0) { return useTryEdgeReasoningInNoOverlap2D_; } else { return UseTryEdgeReasoningInNoOverlap2DDefaultValue; } }
5086 set {
5087 _hasBits7 |= 131072;
5088 useTryEdgeReasoningInNoOverlap2D_ = value;
5089 }
5090 }
5092 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5093 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5094 public bool HasUseTryEdgeReasoningInNoOverlap2D {
5095 get { return (_hasBits7 & 131072) != 0; }
5096 }
5098 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5099 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5101 _hasBits7 &= ~131072;
5102 }
5103
5105 public const int MaxPairsPairwiseReasoningInNoOverlap2DFieldNumber = 276;
5106 private readonly static int MaxPairsPairwiseReasoningInNoOverlap2DDefaultValue = 1250;
5107
5108 private int maxPairsPairwiseReasoningInNoOverlap2D_;
5111
5114 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5115 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5117 get { if ((_hasBits6 & 134217728) != 0) { return maxPairsPairwiseReasoningInNoOverlap2D_; } else { return MaxPairsPairwiseReasoningInNoOverlap2DDefaultValue; } }
5118 set {
5119 _hasBits6 |= 134217728;
5120 maxPairsPairwiseReasoningInNoOverlap2D_ = value;
5121 }
5122 }
5124 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5125 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5127 get { return (_hasBits6 & 134217728) != 0; }
5128 }
5130 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5131 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5132 public void ClearMaxPairsPairwiseReasoningInNoOverlap2D() {
5133 _hasBits6 &= ~134217728;
5134 }
5138 private readonly static int MaximumRegionsToSplitInDisconnectedNoOverlap2DDefaultValue = 0;
5139
5140 private int maximumRegionsToSplitInDisconnectedNoOverlap2D_;
5141 /// <summary>
5142 /// Detects when the space where items of a no_overlap_2d constraint can placed
5143 /// is disjoint (ie., fixed boxes split the domain). When it is the case, we
5144 /// can introduce a boolean for each pair &lt;item, component> encoding whether
5145 /// the item is in the component or not. Then we replace the original
5146 /// no_overlap_2d constraint by one no_overlap_2d constraint for each
5147 /// component, with the new booleans as the enforcement_literal of the
5148 /// intervals. This is equivalent to expanding the original no_overlap_2d
5149 /// constraint into a bin packing problem with each connected component being a
5150 /// bin. This heuristic is only done when the number of regions to split
5151 /// is less than this parameter and &lt;= 1 disables it.
5152 /// </summary>
5153 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5154 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5156 get { if ((_hasBits8 & 2) != 0) { return maximumRegionsToSplitInDisconnectedNoOverlap2D_; } else { return MaximumRegionsToSplitInDisconnectedNoOverlap2DDefaultValue; } }
5157 set {
5158 _hasBits8 |= 2;
5159 maximumRegionsToSplitInDisconnectedNoOverlap2D_ = value;
5160 }
5161 }
5163 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5164 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5165 public bool HasMaximumRegionsToSplitInDisconnectedNoOverlap2D {
5166 get { return (_hasBits8 & 2) != 0; }
5169 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5170 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5171 public void ClearMaximumRegionsToSplitInDisconnectedNoOverlap2D() {
5172 _hasBits8 &= ~2;
5174
5176 public const int UseLinear3ForNoOverlap2DPrecedencesFieldNumber = 323;
5177 private readonly static bool UseLinear3ForNoOverlap2DPrecedencesDefaultValue = true;
5179 private bool useLinear3ForNoOverlap2DPrecedences_;
5188 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5189 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5191 get { if ((_hasBits8 & 256) != 0) { return useLinear3ForNoOverlap2DPrecedences_; } else { return UseLinear3ForNoOverlap2DPrecedencesDefaultValue; } }
5192 set {
5193 _hasBits8 |= 256;
5194 useLinear3ForNoOverlap2DPrecedences_ = value;
5195 }
5198 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5199 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5200 public bool HasUseLinear3ForNoOverlap2DPrecedences {
5201 get { return (_hasBits8 & 256) != 0; }
5202 }
5203
5204 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5205 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5207 _hasBits8 &= ~256;
5208 }
5209
5211 public const int UseDualSchedulingHeuristicsFieldNumber = 214;
5212 private readonly static bool UseDualSchedulingHeuristicsDefaultValue = true;
5213
5214 private bool useDualSchedulingHeuristics_;
5215
5220 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5221 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5222 public bool UseDualSchedulingHeuristics {
5223 get { if ((_hasBits5 & 128) != 0) { return useDualSchedulingHeuristics_; } else { return UseDualSchedulingHeuristicsDefaultValue; } }
5224 set {
5225 _hasBits5 |= 128;
5226 useDualSchedulingHeuristics_ = value;
5227 }
5228 }
5230 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5231 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5232 public bool HasUseDualSchedulingHeuristics {
5233 get { return (_hasBits5 & 128) != 0; }
5234 }
5236 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5237 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5238 public void ClearUseDualSchedulingHeuristics() {
5239 _hasBits5 &= ~128;
5240 }
5243 public const int UseAllDifferentForCircuitFieldNumber = 311;
5244 private readonly static bool UseAllDifferentForCircuitDefaultValue = false;
5245
5246 private bool useAllDifferentForCircuit_;
5247 /// <summary>
5248 /// Turn on extra propagation for the circuit constraint.
5249 /// This can be quite slow.
5250 /// </summary>
5251 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5252 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5253 public bool UseAllDifferentForCircuit {
5254 get { if ((_hasBits7 & 536870912) != 0) { return useAllDifferentForCircuit_; } else { return UseAllDifferentForCircuitDefaultValue; } }
5255 set {
5256 _hasBits7 |= 536870912;
5257 useAllDifferentForCircuit_ = value;
5258 }
5259 }
5261 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5262 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5264 get { return (_hasBits7 & 536870912) != 0; }
5265 }
5267 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5268 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5269 public void ClearUseAllDifferentForCircuit() {
5270 _hasBits7 &= ~536870912;
5271 }
5272
5273 /// <summary>Field number for the "routing_cut_subset_size_for_binary_relation_bound" field.</summary>
5275 private readonly static int RoutingCutSubsetSizeForBinaryRelationBoundDefaultValue = 0;
5276
5277 private int routingCutSubsetSizeForBinaryRelationBound_;
5279 /// If the size of a subset of nodes of a RoutesConstraint is less than this
5280 /// value, use linear constraints of size 1 and 2 (such as capacity and time
5281 /// window constraints) enforced by the arc literals to compute cuts for this
5282 /// subset (unless the subset size is less than
5283 /// routing_cut_subset_size_for_tight_binary_relation_bound, in which case the
5284 /// corresponding algorithm is used instead). The algorithm for these cuts has
5285 /// a O(n^3) complexity, where n is the subset size. Hence the value of this
5286 /// parameter should not be too large (e.g. 10 or 20).
5287 /// </summary>
5288 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5289 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5291 get { if ((_hasBits7 & 1073741824) != 0) { return routingCutSubsetSizeForBinaryRelationBound_; } else { return RoutingCutSubsetSizeForBinaryRelationBoundDefaultValue; } }
5292 set {
5293 _hasBits7 |= 1073741824;
5294 routingCutSubsetSizeForBinaryRelationBound_ = value;
5295 }
5296 }
5298 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5299 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5300 public bool HasRoutingCutSubsetSizeForBinaryRelationBound {
5301 get { return (_hasBits7 & 1073741824) != 0; }
5302 }
5304 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5305 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5307 _hasBits7 &= ~1073741824;
5308 }
5309
5310 /// <summary>Field number for the "routing_cut_subset_size_for_tight_binary_relation_bound" field.</summary>
5312 private readonly static int RoutingCutSubsetSizeForTightBinaryRelationBoundDefaultValue = 0;
5313
5314 private int routingCutSubsetSizeForTightBinaryRelationBound_;
5320 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5321 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5323 get { if ((_hasBits7 & -2147483648) != 0) { return routingCutSubsetSizeForTightBinaryRelationBound_; } else { return RoutingCutSubsetSizeForTightBinaryRelationBoundDefaultValue; } }
5324 set {
5325 _hasBits7 |= -2147483648;
5326 routingCutSubsetSizeForTightBinaryRelationBound_ = value;
5327 }
5328 }
5330 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5331 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5333 get { return (_hasBits7 & -2147483648) != 0; }
5334 }
5336 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5337 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5338 public void ClearRoutingCutSubsetSizeForTightBinaryRelationBound() {
5339 _hasBits7 &= ~-2147483648;
5340 }
5344 private readonly static int RoutingCutSubsetSizeForExactBinaryRelationBoundDefaultValue = 8;
5345
5346 private int routingCutSubsetSizeForExactBinaryRelationBound_;
5347 /// <summary>
5348 /// Similar to above, but with an even stronger algorithm in O(n!). We try to
5349 /// be defensive and abort early or not run that often. Still the value of
5350 /// that parameter shouldn't really be much more than 10.
5351 /// </summary>
5352 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5353 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5355 get { if ((_hasBits8 & 4) != 0) { return routingCutSubsetSizeForExactBinaryRelationBound_; } else { return RoutingCutSubsetSizeForExactBinaryRelationBoundDefaultValue; } }
5356 set {
5357 _hasBits8 |= 4;
5358 routingCutSubsetSizeForExactBinaryRelationBound_ = value;
5359 }
5360 }
5362 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5363 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5365 get { return (_hasBits8 & 4) != 0; }
5366 }
5368 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5369 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5370 public void ClearRoutingCutSubsetSizeForExactBinaryRelationBound() {
5371 _hasBits8 &= ~4;
5372 }
5376 private readonly static int RoutingCutSubsetSizeForShortestPathsBoundDefaultValue = 8;
5377
5378 private int routingCutSubsetSizeForShortestPathsBound_;
5379 /// <summary>
5380 /// Similar to routing_cut_subset_size_for_exact_binary_relation_bound but
5381 /// use a bound based on shortest path distances (which respect triangular
5382 /// inequality). This allows to derive bounds that are valid for any superset
5383 /// of a given subset. This is slow, so it shouldn't really be larger than 10.
5384 /// </summary>
5385 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5386 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5388 get { if ((_hasBits8 & 16) != 0) { return routingCutSubsetSizeForShortestPathsBound_; } else { return RoutingCutSubsetSizeForShortestPathsBoundDefaultValue; } }
5389 set {
5390 _hasBits8 |= 16;
5391 routingCutSubsetSizeForShortestPathsBound_ = value;
5392 }
5393 }
5395 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5396 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5398 get { return (_hasBits8 & 16) != 0; }
5399 }
5401 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5402 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5403 public void ClearRoutingCutSubsetSizeForShortestPathsBound() {
5404 _hasBits8 &= ~16;
5406
5408 public const int RoutingCutDpEffortFieldNumber = 314;
5409 private readonly static double RoutingCutDpEffortDefaultValue = 1e+07D;
5410
5411 private double routingCutDpEffort_;
5414
5418 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5419 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5420 public double RoutingCutDpEffort {
5421 get { if ((_hasBits8 & 1) != 0) { return routingCutDpEffort_; } else { return RoutingCutDpEffortDefaultValue; } }
5422 set {
5423 _hasBits8 |= 1;
5424 routingCutDpEffort_ = value;
5425 }
5426 }
5428 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5429 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5430 public bool HasRoutingCutDpEffort {
5431 get { return (_hasBits8 & 1) != 0; }
5432 }
5434 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5435 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5436 public void ClearRoutingCutDpEffort() {
5437 _hasBits8 &= ~1;
5439
5441 public const int RoutingCutMaxInfeasiblePathLengthFieldNumber = 317;
5442 private readonly static int RoutingCutMaxInfeasiblePathLengthDefaultValue = 6;
5443
5444 private int routingCutMaxInfeasiblePathLength_;
5447
5449 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5450 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5452 get { if ((_hasBits8 & 8) != 0) { return routingCutMaxInfeasiblePathLength_; } else { return RoutingCutMaxInfeasiblePathLengthDefaultValue; } }
5453 set {
5454 _hasBits8 |= 8;
5455 routingCutMaxInfeasiblePathLength_ = value;
5456 }
5457 }
5459 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5460 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5462 get { return (_hasBits8 & 8) != 0; }
5463 }
5465 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5466 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5467 public void ClearRoutingCutMaxInfeasiblePathLength() {
5468 _hasBits8 &= ~8;
5469 }
5470
5471 /// <summary>Field number for the "search_branching" field.</summary>
5472 public const int SearchBranchingFieldNumber = 82;
5473 private readonly static global::Google.OrTools.Sat.SatParameters.Types.SearchBranching SearchBranchingDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.SearchBranching.AutomaticSearch;
5474
5475 private global::Google.OrTools.Sat.SatParameters.Types.SearchBranching searchBranching_;
5476 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5477 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5478 public global::Google.OrTools.Sat.SatParameters.Types.SearchBranching SearchBranching {
5479 get { if ((_hasBits1 & 33554432) != 0) { return searchBranching_; } else { return SearchBranchingDefaultValue; } }
5480 set {
5481 _hasBits1 |= 33554432;
5482 searchBranching_ = value;
5483 }
5484 }
5486 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5487 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5488 public bool HasSearchBranching {
5489 get { return (_hasBits1 & 33554432) != 0; }
5490 }
5492 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5493 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5494 public void ClearSearchBranching() {
5495 _hasBits1 &= ~33554432;
5496 }
5497
5499 public const int HintConflictLimitFieldNumber = 153;
5500 private readonly static int HintConflictLimitDefaultValue = 10;
5501
5502 private int hintConflictLimit_;
5505
5506 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5507 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5509 get { if ((_hasBits3 & 1048576) != 0) { return hintConflictLimit_; } else { return HintConflictLimitDefaultValue; } }
5510 set {
5511 _hasBits3 |= 1048576;
5512 hintConflictLimit_ = value;
5514 }
5516 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5517 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5518 public bool HasHintConflictLimit {
5519 get { return (_hasBits3 & 1048576) != 0; }
5520 }
5522 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5523 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5524 public void ClearHintConflictLimit() {
5525 _hasBits3 &= ~1048576;
5526 }
5527
5529 public const int RepairHintFieldNumber = 167;
5530 private readonly static bool RepairHintDefaultValue = false;
5531
5532 private bool repairHint_;
5535 /// search terminates after the 'hint_conflict_limit' is reached and the solver
5536 /// switches to regular search. If false, then we do a FIXED_SEARCH using the
5537 /// hint until the hint_conflict_limit is reached.
5538 /// </summary>
5539 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5540 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5541 public bool RepairHint {
5542 get { if ((_hasBits4 & 2) != 0) { return repairHint_; } else { return RepairHintDefaultValue; } }
5543 set {
5544 _hasBits4 |= 2;
5545 repairHint_ = value;
5546 }
5547 }
5549 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5550 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5551 public bool HasRepairHint {
5552 get { return (_hasBits4 & 2) != 0; }
5553 }
5555 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5556 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5557 public void ClearRepairHint() {
5558 _hasBits4 &= ~2;
5560
5562 public const int FixVariablesToTheirHintedValueFieldNumber = 192;
5563 private readonly static bool FixVariablesToTheirHintedValueDefaultValue = false;
5564
5565 private bool fixVariablesToTheirHintedValue_;
5568
5570 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5571 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5572 public bool FixVariablesToTheirHintedValue {
5573 get { if ((_hasBits4 & 8388608) != 0) { return fixVariablesToTheirHintedValue_; } else { return FixVariablesToTheirHintedValueDefaultValue; } }
5574 set {
5575 _hasBits4 |= 8388608;
5576 fixVariablesToTheirHintedValue_ = value;
5577 }
5578 }
5580 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5581 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5583 get { return (_hasBits4 & 8388608) != 0; }
5584 }
5586 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5587 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5588 public void ClearFixVariablesToTheirHintedValue() {
5589 _hasBits4 &= ~8388608;
5590 }
5591
5592 /// <summary>Field number for the "use_probing_search" field.</summary>
5593 public const int UseProbingSearchFieldNumber = 176;
5594 private readonly static bool UseProbingSearchDefaultValue = false;
5595
5596 private bool useProbingSearch_;
5598 /// If true, search will continuously probe Boolean variables, and integer
5599 /// variable bounds. This parameter is set to true in parallel on the probing
5600 /// worker.
5601 /// </summary>
5602 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5603 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5604 public bool UseProbingSearch {
5605 get { if ((_hasBits4 & 512) != 0) { return useProbingSearch_; } else { return UseProbingSearchDefaultValue; } }
5606 set {
5607 _hasBits4 |= 512;
5608 useProbingSearch_ = value;
5609 }
5610 }
5612 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5613 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5614 public bool HasUseProbingSearch {
5615 get { return (_hasBits4 & 512) != 0; }
5616 }
5618 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5619 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5620 public void ClearUseProbingSearch() {
5621 _hasBits4 &= ~512;
5622 }
5625 public const int UseExtendedProbingFieldNumber = 269;
5626 private readonly static bool UseExtendedProbingDefaultValue = true;
5627
5628 private bool useExtendedProbing_;
5629 /// <summary>
5630 /// Use extended probing (probe bool_or, at_most_one, exactly_one).
5631 /// </summary>
5632 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5633 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5635 get { if ((_hasBits6 & 1048576) != 0) { return useExtendedProbing_; } else { return UseExtendedProbingDefaultValue; } }
5636 set {
5637 _hasBits6 |= 1048576;
5638 useExtendedProbing_ = value;
5639 }
5640 }
5642 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5643 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5644 public bool HasUseExtendedProbing {
5645 get { return (_hasBits6 & 1048576) != 0; }
5646 }
5648 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5649 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5650 public void ClearUseExtendedProbing() {
5651 _hasBits6 &= ~1048576;
5652 }
5653
5656 private readonly static int ProbingNumCombinationsLimitDefaultValue = 20000;
5657
5658 private int probingNumCombinationsLimit_;
5661 /// </summary>
5662 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5663 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5664 public int ProbingNumCombinationsLimit {
5665 get { if ((_hasBits6 & 8388608) != 0) { return probingNumCombinationsLimit_; } else { return ProbingNumCombinationsLimitDefaultValue; } }
5666 set {
5667 _hasBits6 |= 8388608;
5668 probingNumCombinationsLimit_ = value;
5669 }
5670 }
5672 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5673 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5674 public bool HasProbingNumCombinationsLimit {
5675 get { return (_hasBits6 & 8388608) != 0; }
5676 }
5678 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5679 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5680 public void ClearProbingNumCombinationsLimit() {
5681 _hasBits6 &= ~8388608;
5682 }
5683
5686 private readonly static double ShavingDeterministicTimeInProbingSearchDefaultValue = 0.001D;
5687
5688 private double shavingDeterministicTimeInProbingSearch_;
5691 /// upper bound of a variable are infeasible) to the probing search. (&lt;= 0
5692 /// disables it).
5693 /// </summary>
5694 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5695 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5697 get { if ((_hasBits5 & 8) != 0) { return shavingDeterministicTimeInProbingSearch_; } else { return ShavingDeterministicTimeInProbingSearchDefaultValue; } }
5698 set {
5699 _hasBits5 |= 8;
5700 shavingDeterministicTimeInProbingSearch_ = value;
5701 }
5702 }
5704 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5705 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5707 get { return (_hasBits5 & 8) != 0; }
5708 }
5710 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5711 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5712 public void ClearShavingDeterministicTimeInProbingSearch() {
5713 _hasBits5 &= ~8;
5714 }
5717 public const int ShavingSearchDeterministicTimeFieldNumber = 205;
5718 private readonly static double ShavingSearchDeterministicTimeDefaultValue = 0.1D;
5719
5720 private double shavingSearchDeterministicTime_;
5721 /// <summary>
5722 /// Specifies the amount of deterministic time spent of each try at shaving a
5723 /// bound in the shaving search.
5724 /// </summary>
5725 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5726 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5727 public double ShavingSearchDeterministicTime {
5728 get { if ((_hasBits5 & 16) != 0) { return shavingSearchDeterministicTime_; } else { return ShavingSearchDeterministicTimeDefaultValue; } }
5729 set {
5730 _hasBits5 |= 16;
5731 shavingSearchDeterministicTime_ = value;
5732 }
5733 }
5735 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5736 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5738 get { return (_hasBits5 & 16) != 0; }
5739 }
5741 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5742 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5743 public void ClearShavingSearchDeterministicTime() {
5744 _hasBits5 &= ~16;
5745 }
5746
5747 /// <summary>Field number for the "shaving_search_threshold" field.</summary>
5748 public const int ShavingSearchThresholdFieldNumber = 290;
5749 private readonly static long ShavingSearchThresholdDefaultValue = 64L;
5750
5751 private long shavingSearchThreshold_;
5753 /// Specifies the threshold between two modes in the shaving procedure.
5754 /// If the range of the variable/objective is less than this threshold, then
5755 /// the shaving procedure will try to remove values one by one. Otherwise, it
5756 /// will try to remove one range at a time.
5757 /// </summary>
5758 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5759 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5760 public long ShavingSearchThreshold {
5761 get { if ((_hasBits7 & 512) != 0) { return shavingSearchThreshold_; } else { return ShavingSearchThresholdDefaultValue; } }
5762 set {
5763 _hasBits7 |= 512;
5764 shavingSearchThreshold_ = value;
5765 }
5766 }
5768 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5769 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5770 public bool HasShavingSearchThreshold {
5771 get { return (_hasBits7 & 512) != 0; }
5772 }
5774 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5775 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5776 public void ClearShavingSearchThreshold() {
5777 _hasBits7 &= ~512;
5779
5781 public const int UseObjectiveLbSearchFieldNumber = 228;
5782 private readonly static bool UseObjectiveLbSearchDefaultValue = false;
5783
5784 private bool useObjectiveLbSearch_;
5787
5789 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5790 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5791 public bool UseObjectiveLbSearch {
5792 get { if ((_hasBits5 & 524288) != 0) { return useObjectiveLbSearch_; } else { return UseObjectiveLbSearchDefaultValue; } }
5793 set {
5794 _hasBits5 |= 524288;
5795 useObjectiveLbSearch_ = value;
5796 }
5797 }
5799 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5800 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5802 get { return (_hasBits5 & 524288) != 0; }
5803 }
5805 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5806 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5807 public void ClearUseObjectiveLbSearch() {
5808 _hasBits5 &= ~524288;
5809 }
5810
5811 /// <summary>Field number for the "use_objective_shaving_search" field.</summary>
5812 public const int UseObjectiveShavingSearchFieldNumber = 253;
5813 private readonly static bool UseObjectiveShavingSearchDefaultValue = false;
5814
5815 private bool useObjectiveShavingSearch_;
5817 /// This search differs from the previous search as it will not use assumptions
5818 /// to bound the objective, and it will recreate a full model with the
5819 /// hardcoded objective value.
5820 /// </summary>
5821 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5822 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5823 public bool UseObjectiveShavingSearch {
5824 get { if ((_hasBits6 & 32) != 0) { return useObjectiveShavingSearch_; } else { return UseObjectiveShavingSearchDefaultValue; } }
5825 set {
5826 _hasBits6 |= 32;
5827 useObjectiveShavingSearch_ = value;
5828 }
5829 }
5831 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5832 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5833 public bool HasUseObjectiveShavingSearch {
5834 get { return (_hasBits6 & 32) != 0; }
5835 }
5837 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5838 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5839 public void ClearUseObjectiveShavingSearch() {
5840 _hasBits6 &= ~32;
5841 }
5844 public const int VariablesShavingLevelFieldNumber = 289;
5845 private readonly static int VariablesShavingLevelDefaultValue = -1;
5846
5847 private int variablesShavingLevel_;
5848 /// <summary>
5849 /// This search takes all Boolean or integer variables, and maximize or
5850 /// minimize them in order to reduce their domain. -1 is automatic, otherwise
5851 /// value 0 disables it, and 1, 2, or 3 changes something.
5852 /// </summary>
5853 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5854 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5855 public int VariablesShavingLevel {
5856 get { if ((_hasBits7 & 256) != 0) { return variablesShavingLevel_; } else { return VariablesShavingLevelDefaultValue; } }
5857 set {
5858 _hasBits7 |= 256;
5859 variablesShavingLevel_ = value;
5860 }
5861 }
5863 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5864 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5865 public bool HasVariablesShavingLevel {
5866 get { return (_hasBits7 & 256) != 0; }
5867 }
5869 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5870 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5871 public void ClearVariablesShavingLevel() {
5872 _hasBits7 &= ~256;
5873 }
5876 public const int PseudoCostReliabilityThresholdFieldNumber = 123;
5877 private readonly static long PseudoCostReliabilityThresholdDefaultValue = 100L;
5878
5879 private long pseudoCostReliabilityThreshold_;
5880 /// <summary>
5881 /// The solver ignores the pseudo costs of variables with number of recordings
5882 /// less than this threshold.
5883 /// </summary>
5884 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5885 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5886 public long PseudoCostReliabilityThreshold {
5887 get { if ((_hasBits2 & 268435456) != 0) { return pseudoCostReliabilityThreshold_; } else { return PseudoCostReliabilityThresholdDefaultValue; } }
5888 set {
5889 _hasBits2 |= 268435456;
5890 pseudoCostReliabilityThreshold_ = value;
5891 }
5892 }
5894 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5895 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5897 get { return (_hasBits2 & 268435456) != 0; }
5898 }
5900 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5901 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5902 public void ClearPseudoCostReliabilityThreshold() {
5903 _hasBits2 &= ~268435456;
5904 }
5905
5906 /// <summary>Field number for the "optimize_with_core" field.</summary>
5907 public const int OptimizeWithCoreFieldNumber = 83;
5908 private readonly static bool OptimizeWithCoreDefaultValue = false;
5909
5910 private bool optimizeWithCore_;
5912 /// The default optimization method is a simple "linear scan", each time trying
5913 /// to find a better solution than the previous one. If this is true, then we
5914 /// use a core-based approach (like in max-SAT) when we try to increase the
5915 /// lower bound instead.
5916 /// </summary>
5917 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5918 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5919 public bool OptimizeWithCore {
5920 get { if ((_hasBits1 & 67108864) != 0) { return optimizeWithCore_; } else { return OptimizeWithCoreDefaultValue; } }
5921 set {
5922 _hasBits1 |= 67108864;
5923 optimizeWithCore_ = value;
5924 }
5925 }
5927 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5928 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5929 public bool HasOptimizeWithCore {
5930 get { return (_hasBits1 & 67108864) != 0; }
5931 }
5933 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5934 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5935 public void ClearOptimizeWithCore() {
5936 _hasBits1 &= ~67108864;
5938
5940 public const int OptimizeWithLbTreeSearchFieldNumber = 188;
5941 private readonly static bool OptimizeWithLbTreeSearchDefaultValue = false;
5942
5943 private bool optimizeWithLbTreeSearch_;
5946
5951 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5952 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5953 public bool OptimizeWithLbTreeSearch {
5954 get { if ((_hasBits4 & 524288) != 0) { return optimizeWithLbTreeSearch_; } else { return OptimizeWithLbTreeSearchDefaultValue; } }
5955 set {
5956 _hasBits4 |= 524288;
5957 optimizeWithLbTreeSearch_ = value;
5958 }
5959 }
5960 /// <summary>Gets whether the "optimize_with_lb_tree_search" field is set</summary>
5961 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5962 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5963 public bool HasOptimizeWithLbTreeSearch {
5964 get { return (_hasBits4 & 524288) != 0; }
5965 }
5967 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5968 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5969 public void ClearOptimizeWithLbTreeSearch() {
5970 _hasBits4 &= ~524288;
5971 }
5972
5973
5974 public const int SaveLpBasisInLbTreeSearchFieldNumber = 284;
5975 private readonly static bool SaveLpBasisInLbTreeSearchDefaultValue = false;
5977 private bool saveLpBasisInLbTreeSearch_;
5979
5986 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5987 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5988 public bool SaveLpBasisInLbTreeSearch {
5989 get { if ((_hasBits7 & 8) != 0) { return saveLpBasisInLbTreeSearch_; } else { return SaveLpBasisInLbTreeSearchDefaultValue; } }
5990 set {
5991 _hasBits7 |= 8;
5992 saveLpBasisInLbTreeSearch_ = value;
5993 }
5996 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5997 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5998 public bool HasSaveLpBasisInLbTreeSearch {
5999 get { return (_hasBits7 & 8) != 0; }
6000 }
6001
6002 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6003 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6005 _hasBits7 &= ~8;
6006 }
6007
6009 public const int BinarySearchNumConflictsFieldNumber = 99;
6010 private readonly static int BinarySearchNumConflictsDefaultValue = -1;
6011
6012 private int binarySearchNumConflicts_;
6013
6019 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6020 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6021 public int BinarySearchNumConflicts {
6022 get { if ((_hasBits2 & 256) != 0) { return binarySearchNumConflicts_; } else { return BinarySearchNumConflictsDefaultValue; } }
6023 set {
6024 _hasBits2 |= 256;
6025 binarySearchNumConflicts_ = value;
6026 }
6027 }
6029 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6030 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6031 public bool HasBinarySearchNumConflicts {
6032 get { return (_hasBits2 & 256) != 0; }
6033 }
6035 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6036 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6037 public void ClearBinarySearchNumConflicts() {
6038 _hasBits2 &= ~256;
6039 }
6042 public const int OptimizeWithMaxHsFieldNumber = 85;
6043 private readonly static bool OptimizeWithMaxHsDefaultValue = false;
6044
6045 private bool optimizeWithMaxHs_;
6046 /// <summary>
6047 /// This has no effect if optimize_with_core is false. If true, use a different
6048 /// core-based algorithm similar to the max-HS algo for max-SAT. This is a
6049 /// hybrid MIP/CP approach and it uses a MIP solver in addition to the CP/SAT
6050 /// one. This is also related to the PhD work of tobyodavies@
6051 /// "Automatic Logic-Based Benders Decomposition with MiniZinc"
6052 /// http://aaai.org/ocs/index.php/AAAI/AAAI17/paper/view/14489
6053 /// </summary>
6054 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6055 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6056 public bool OptimizeWithMaxHs {
6057 get { if ((_hasBits1 & 268435456) != 0) { return optimizeWithMaxHs_; } else { return OptimizeWithMaxHsDefaultValue; } }
6058 set {
6059 _hasBits1 |= 268435456;
6060 optimizeWithMaxHs_ = value;
6061 }
6062 }
6063 /// <summary>Gets whether the "optimize_with_max_hs" field is set</summary>
6064 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6065 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6066 public bool HasOptimizeWithMaxHs {
6067 get { return (_hasBits1 & 268435456) != 0; }
6068 }
6070 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6071 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6072 public void ClearOptimizeWithMaxHs() {
6073 _hasBits1 &= ~268435456;
6074 }
6075
6076
6077 public const int UseFeasibilityJumpFieldNumber = 265;
6078 private readonly static bool UseFeasibilityJumpDefaultValue = true;
6080 private bool useFeasibilityJump_;
6082
6086 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6087 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6088 public bool UseFeasibilityJump {
6089 get { if ((_hasBits6 & 65536) != 0) { return useFeasibilityJump_; } else { return UseFeasibilityJumpDefaultValue; } }
6090 set {
6091 _hasBits6 |= 65536;
6092 useFeasibilityJump_ = value;
6093 }
6094 }
6096 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6097 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6099 get { return (_hasBits6 & 65536) != 0; }
6100 }
6102 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6103 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6104 public void ClearUseFeasibilityJump() {
6105 _hasBits6 &= ~65536;
6106 }
6107
6108 /// <summary>Field number for the "use_ls_only" field.</summary>
6109 public const int UseLsOnlyFieldNumber = 240;
6110 private readonly static bool UseLsOnlyDefaultValue = false;
6111
6112 private bool useLsOnly_;
6114 /// Disable every other type of subsolver, setting this turns CP-SAT into a
6115 /// pure local-search solver.
6116 /// </summary>
6117 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6118 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6119 public bool UseLsOnly {
6120 get { if ((_hasBits5 & 536870912) != 0) { return useLsOnly_; } else { return UseLsOnlyDefaultValue; } }
6121 set {
6122 _hasBits5 |= 536870912;
6123 useLsOnly_ = value;
6124 }
6125 }
6127 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6128 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6129 public bool HasUseLsOnly {
6130 get { return (_hasBits5 & 536870912) != 0; }
6131 }
6133 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6134 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6135 public void ClearUseLsOnly() {
6136 _hasBits5 &= ~536870912;
6137 }
6138
6140 public const int FeasibilityJumpDecayFieldNumber = 242;
6141 private readonly static double FeasibilityJumpDecayDefaultValue = 0.95D;
6142
6143 private double feasibilityJumpDecay_;
6146 /// or no decay.
6147 /// </summary>
6148 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6149 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6150 public double FeasibilityJumpDecay {
6151 get { if ((_hasBits5 & 1073741824) != 0) { return feasibilityJumpDecay_; } else { return FeasibilityJumpDecayDefaultValue; } }
6152 set {
6153 _hasBits5 |= 1073741824;
6154 feasibilityJumpDecay_ = value;
6155 }
6156 }
6158 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6159 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6160 public bool HasFeasibilityJumpDecay {
6161 get { return (_hasBits5 & 1073741824) != 0; }
6162 }
6164 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6165 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6166 public void ClearFeasibilityJumpDecay() {
6167 _hasBits5 &= ~1073741824;
6168 }
6169
6172 private readonly static int FeasibilityJumpLinearizationLevelDefaultValue = 2;
6173
6174 private int feasibilityJumpLinearizationLevel_;
6177 /// </summary>
6178 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6179 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6181 get { if ((_hasBits6 & 256) != 0) { return feasibilityJumpLinearizationLevel_; } else { return FeasibilityJumpLinearizationLevelDefaultValue; } }
6182 set {
6183 _hasBits6 |= 256;
6184 feasibilityJumpLinearizationLevel_ = value;
6185 }
6186 }
6188 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6189 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6190 public bool HasFeasibilityJumpLinearizationLevel {
6191 get { return (_hasBits6 & 256) != 0; }
6194 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6195 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6196 public void ClearFeasibilityJumpLinearizationLevel() {
6197 _hasBits6 &= ~256;
6198 }
6199
6201 public const int FeasibilityJumpRestartFactorFieldNumber = 258;
6202 private readonly static int FeasibilityJumpRestartFactorDefaultValue = 1;
6203
6204 private int feasibilityJumpRestartFactor_;
6205
6208 /// </summary>
6209 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6210 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6211 public int FeasibilityJumpRestartFactor {
6212 get { if ((_hasBits6 & 512) != 0) { return feasibilityJumpRestartFactor_; } else { return FeasibilityJumpRestartFactorDefaultValue; } }
6213 set {
6214 _hasBits6 |= 512;
6215 feasibilityJumpRestartFactor_ = value;
6216 }
6217 }
6219 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6220 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6221 public bool HasFeasibilityJumpRestartFactor {
6222 get { return (_hasBits6 & 512) != 0; }
6223 }
6225 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6226 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6227 public void ClearFeasibilityJumpRestartFactor() {
6228 _hasBits6 &= ~512;
6229 }
6230
6233 private readonly static double FeasibilityJumpBatchDtimeDefaultValue = 0.1D;
6234
6235 private double feasibilityJumpBatchDtime_;
6238 /// </summary>
6239 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6240 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6241 public double FeasibilityJumpBatchDtime {
6242 get { if ((_hasBits7 & 2048) != 0) { return feasibilityJumpBatchDtime_; } else { return FeasibilityJumpBatchDtimeDefaultValue; } }
6243 set {
6244 _hasBits7 |= 2048;
6245 feasibilityJumpBatchDtime_ = value;
6246 }
6247 }
6249 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6250 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6251 public bool HasFeasibilityJumpBatchDtime {
6252 get { return (_hasBits7 & 2048) != 0; }
6255 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6256 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6257 public void ClearFeasibilityJumpBatchDtime() {
6258 _hasBits7 &= ~2048;
6259 }
6260
6262 public const int FeasibilityJumpVarRandomizationProbabilityFieldNumber = 247;
6263 private readonly static double FeasibilityJumpVarRandomizationProbabilityDefaultValue = 0.05D;
6264
6265 private double feasibilityJumpVarRandomizationProbability_;
6266
6269 /// </summary>
6270 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6271 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6273 get { if ((_hasBits6 & 1) != 0) { return feasibilityJumpVarRandomizationProbability_; } else { return FeasibilityJumpVarRandomizationProbabilityDefaultValue; } }
6274 set {
6275 _hasBits6 |= 1;
6276 feasibilityJumpVarRandomizationProbability_ = value;
6277 }
6278 }
6280 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6281 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6282 public bool HasFeasibilityJumpVarRandomizationProbability {
6283 get { return (_hasBits6 & 1) != 0; }
6284 }
6286 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6287 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6288 public void ClearFeasibilityJumpVarRandomizationProbability() {
6289 _hasBits6 &= ~1;
6290 }
6291
6294 private readonly static double FeasibilityJumpVarPerburbationRangeRatioDefaultValue = 0.2D;
6295
6296 private double feasibilityJumpVarPerburbationRangeRatio_;
6299 /// the range of the domain of the variable.
6300 /// </summary>
6301 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6302 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6304 get { if ((_hasBits6 & 2) != 0) { return feasibilityJumpVarPerburbationRangeRatio_; } else { return FeasibilityJumpVarPerburbationRangeRatioDefaultValue; } }
6305 set {
6306 _hasBits6 |= 2;
6307 feasibilityJumpVarPerburbationRangeRatio_ = value;
6308 }
6309 }
6311 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6312 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6313 public bool HasFeasibilityJumpVarPerburbationRangeRatio {
6314 get { return (_hasBits6 & 2) != 0; }
6315 }
6317 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6318 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6319 public void ClearFeasibilityJumpVarPerburbationRangeRatio() {
6320 _hasBits6 &= ~2;
6321 }
6322
6325 private readonly static bool FeasibilityJumpEnableRestartsDefaultValue = true;
6326
6327 private bool feasibilityJumpEnableRestarts_;
6330 /// solution (with some possible randomization), or randomly pertubate the
6331 /// current solution. This parameter selects the first option.
6332 /// </summary>
6333 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6334 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6336 get { if ((_hasBits6 & 8) != 0) { return feasibilityJumpEnableRestarts_; } else { return FeasibilityJumpEnableRestartsDefaultValue; } }
6337 set {
6338 _hasBits6 |= 8;
6339 feasibilityJumpEnableRestarts_ = value;
6340 }
6341 }
6343 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6344 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6346 get { return (_hasBits6 & 8) != 0; }
6347 }
6349 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6350 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6351 public void ClearFeasibilityJumpEnableRestarts() {
6352 _hasBits6 &= ~8;
6353 }
6354
6355 /// <summary>Field number for the "feasibility_jump_max_expanded_constraint_size" field.</summary>
6357 private readonly static int FeasibilityJumpMaxExpandedConstraintSizeDefaultValue = 500;
6358
6359 private int feasibilityJumpMaxExpandedConstraintSize_;
6361 /// Maximum size of no_overlap or no_overlap_2d constraint for a quadratic
6362 /// expansion. This might look a lot, but by expanding such constraint, we get
6363 /// a linear time evaluation per single variable moves instead of a slow O(n
6364 /// log n) one.
6365 /// </summary>
6366 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6367 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6369 get { if ((_hasBits6 & 32768) != 0) { return feasibilityJumpMaxExpandedConstraintSize_; } else { return FeasibilityJumpMaxExpandedConstraintSizeDefaultValue; } }
6370 set {
6371 _hasBits6 |= 32768;
6372 feasibilityJumpMaxExpandedConstraintSize_ = value;
6373 }
6374 }
6376 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6377 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6379 get { return (_hasBits6 & 32768) != 0; }
6380 }
6382 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6383 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6384 public void ClearFeasibilityJumpMaxExpandedConstraintSize() {
6385 _hasBits6 &= ~32768;
6386 }
6389 public const int NumViolationLsFieldNumber = 244;
6390 private readonly static int NumViolationLsDefaultValue = 0;
6391
6392 private int numViolationLs_;
6393 /// <summary>
6394 /// This will create incomplete subsolvers (that are not LNS subsolvers)
6395 /// that use the feasibility jump code to find improving solution, treating
6396 /// the objective improvement as a hard constraint.
6397 /// </summary>
6398 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6399 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6400 public int NumViolationLs {
6401 get { if ((_hasBits5 & -2147483648) != 0) { return numViolationLs_; } else { return NumViolationLsDefaultValue; } }
6402 set {
6403 _hasBits5 |= -2147483648;
6404 numViolationLs_ = value;
6405 }
6406 }
6408 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6409 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6410 public bool HasNumViolationLs {
6411 get { return (_hasBits5 & -2147483648) != 0; }
6412 }
6414 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6415 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6416 public void ClearNumViolationLs() {
6417 _hasBits5 &= ~-2147483648;
6418 }
6419
6420 /// <summary>Field number for the "violation_ls_perturbation_period" field.</summary>
6421 public const int ViolationLsPerturbationPeriodFieldNumber = 249;
6422 private readonly static int ViolationLsPerturbationPeriodDefaultValue = 100;
6423
6424 private int violationLsPerturbationPeriod_;
6426 /// How long violation_ls should wait before perturbating a solution.
6427 /// </summary>
6428 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6429 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6431 get { if ((_hasBits6 & 4) != 0) { return violationLsPerturbationPeriod_; } else { return ViolationLsPerturbationPeriodDefaultValue; } }
6432 set {
6433 _hasBits6 |= 4;
6434 violationLsPerturbationPeriod_ = value;
6435 }
6436 }
6438 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6439 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6440 public bool HasViolationLsPerturbationPeriod {
6441 get { return (_hasBits6 & 4) != 0; }
6444 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6445 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6446 public void ClearViolationLsPerturbationPeriod() {
6447 _hasBits6 &= ~4;
6448 }
6449
6451 public const int ViolationLsCompoundMoveProbabilityFieldNumber = 259;
6452 private readonly static double ViolationLsCompoundMoveProbabilityDefaultValue = 0.5D;
6453
6454 private double violationLsCompoundMoveProbability_;
6455
6458 /// </summary>
6459 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6460 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6462 get { if ((_hasBits6 & 1024) != 0) { return violationLsCompoundMoveProbability_; } else { return ViolationLsCompoundMoveProbabilityDefaultValue; } }
6463 set {
6464 _hasBits6 |= 1024;
6465 violationLsCompoundMoveProbability_ = value;
6466 }
6467 }
6469 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6470 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6471 public bool HasViolationLsCompoundMoveProbability {
6472 get { return (_hasBits6 & 1024) != 0; }
6473 }
6475 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6476 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6477 public void ClearViolationLsCompoundMoveProbability() {
6478 _hasBits6 &= ~1024;
6479 }
6480
6482 public const int SharedTreeNumWorkersFieldNumber = 235;
6483 private readonly static int SharedTreeNumWorkersDefaultValue = 0;
6484
6485 private int sharedTreeNumWorkers_;
6488 /// If positive, start this many complete worker threads to explore a shared
6489 /// search tree. These workers communicate objective bounds and simple decision
6490 /// nogoods relating to the shared prefix of the tree, and will avoid exploring
6491 /// the same subtrees as one another.
6492 /// Specifying a negative number uses a heuristic to select an appropriate
6493 /// number of shared tree workeres based on the total number of workers.
6494 /// </summary>
6495 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6496 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6497 public int SharedTreeNumWorkers {
6498 get { if ((_hasBits5 & 33554432) != 0) { return sharedTreeNumWorkers_; } else { return SharedTreeNumWorkersDefaultValue; } }
6499 set {
6500 _hasBits5 |= 33554432;
6501 sharedTreeNumWorkers_ = value;
6502 }
6505 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6506 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6507 public bool HasSharedTreeNumWorkers {
6508 get { return (_hasBits5 & 33554432) != 0; }
6509 }
6510
6511 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6512 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6514 _hasBits5 &= ~33554432;
6515 }
6516
6518 public const int UseSharedTreeSearchFieldNumber = 236;
6519 private readonly static bool UseSharedTreeSearchDefaultValue = false;
6520
6521 private bool useSharedTreeSearch_;
6522
6525 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6526 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6527 public bool UseSharedTreeSearch {
6528 get { if ((_hasBits5 & 67108864) != 0) { return useSharedTreeSearch_; } else { return UseSharedTreeSearchDefaultValue; } }
6529 set {
6530 _hasBits5 |= 67108864;
6531 useSharedTreeSearch_ = value;
6532 }
6533 }
6535 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6536 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6537 public bool HasUseSharedTreeSearch {
6538 get { return (_hasBits5 & 67108864) != 0; }
6541 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6542 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6543 public void ClearUseSharedTreeSearch() {
6544 _hasBits5 &= ~67108864;
6545 }
6546
6548 public const int SharedTreeWorkerMinRestartsPerSubtreeFieldNumber = 282;
6549 private readonly static int SharedTreeWorkerMinRestartsPerSubtreeDefaultValue = 1;
6550
6551 private int sharedTreeWorkerMinRestartsPerSubtree_;
6552
6555 /// </summary>
6556 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6557 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6559 get { if ((_hasBits7 & 2) != 0) { return sharedTreeWorkerMinRestartsPerSubtree_; } else { return SharedTreeWorkerMinRestartsPerSubtreeDefaultValue; } }
6560 set {
6561 _hasBits7 |= 2;
6562 sharedTreeWorkerMinRestartsPerSubtree_ = value;
6563 }
6564 }
6566 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6567 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6568 public bool HasSharedTreeWorkerMinRestartsPerSubtree {
6569 get { return (_hasBits7 & 2) != 0; }
6570 }
6572 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6573 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6574 public void ClearSharedTreeWorkerMinRestartsPerSubtree() {
6575 _hasBits7 &= ~2;
6576 }
6577
6580 private readonly static bool SharedTreeWorkerEnableTrailSharingDefaultValue = true;
6581
6582 private bool sharedTreeWorkerEnableTrailSharing_;
6585 /// Specifically, literals implied by the shared tree decisions.
6586 /// </summary>
6587 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6588 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6590 get { if ((_hasBits7 & 8192) != 0) { return sharedTreeWorkerEnableTrailSharing_; } else { return SharedTreeWorkerEnableTrailSharingDefaultValue; } }
6591 set {
6592 _hasBits7 |= 8192;
6593 sharedTreeWorkerEnableTrailSharing_ = value;
6594 }
6595 }
6597 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6598 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6599 public bool HasSharedTreeWorkerEnableTrailSharing {
6600 get { return (_hasBits7 & 8192) != 0; }
6601 }
6603 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6604 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6605 public void ClearSharedTreeWorkerEnableTrailSharing() {
6606 _hasBits7 &= ~8192;
6607 }
6608
6611 private readonly static bool SharedTreeWorkerEnablePhaseSharingDefaultValue = true;
6612
6613 private bool sharedTreeWorkerEnablePhaseSharing_;
6616 /// assigned subtree for the next worker to use.
6617 /// </summary>
6618 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6619 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6621 get { if ((_hasBits7 & 4194304) != 0) { return sharedTreeWorkerEnablePhaseSharing_; } else { return SharedTreeWorkerEnablePhaseSharingDefaultValue; } }
6622 set {
6623 _hasBits7 |= 4194304;
6624 sharedTreeWorkerEnablePhaseSharing_ = value;
6625 }
6626 }
6628 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6629 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6630 public bool HasSharedTreeWorkerEnablePhaseSharing {
6631 get { return (_hasBits7 & 4194304) != 0; }
6632 }
6634 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6635 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6636 public void ClearSharedTreeWorkerEnablePhaseSharing() {
6637 _hasBits7 &= ~4194304;
6638 }
6639
6642 private readonly static double SharedTreeOpenLeavesPerWorkerDefaultValue = 2D;
6643
6644 private double sharedTreeOpenLeavesPerWorker_;
6647 /// </summary>
6648 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6649 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6650 public double SharedTreeOpenLeavesPerWorker {
6651 get { if ((_hasBits7 & 1) != 0) { return sharedTreeOpenLeavesPerWorker_; } else { return SharedTreeOpenLeavesPerWorkerDefaultValue; } }
6652 set {
6653 _hasBits7 |= 1;
6654 sharedTreeOpenLeavesPerWorker_ = value;
6655 }
6656 }
6658 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6659 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6660 public bool HasSharedTreeOpenLeavesPerWorker {
6661 get { return (_hasBits7 & 1) != 0; }
6664 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6665 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6666 public void ClearSharedTreeOpenLeavesPerWorker() {
6667 _hasBits7 &= ~1;
6668 }
6669
6671 public const int SharedTreeMaxNodesPerWorkerFieldNumber = 238;
6672 private readonly static int SharedTreeMaxNodesPerWorkerDefaultValue = 10000;
6673
6674 private int sharedTreeMaxNodesPerWorker_;
6675
6678 /// shared tree runs out of unassigned leaves, workers act as portfolio
6679 /// workers. Note: this limit includes interior nodes, not just leaves.
6680 /// </summary>
6681 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6682 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6684 get { if ((_hasBits5 & 134217728) != 0) { return sharedTreeMaxNodesPerWorker_; } else { return SharedTreeMaxNodesPerWorkerDefaultValue; } }
6685 set {
6686 _hasBits5 |= 134217728;
6687 sharedTreeMaxNodesPerWorker_ = value;
6688 }
6689 }
6691 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6692 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6693 public bool HasSharedTreeMaxNodesPerWorker {
6694 get { return (_hasBits5 & 134217728) != 0; }
6695 }
6697 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6698 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6699 public void ClearSharedTreeMaxNodesPerWorker() {
6700 _hasBits5 &= ~134217728;
6701 }
6704 public const int SharedTreeSplitStrategyFieldNumber = 239;
6705 private readonly static global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy SharedTreeSplitStrategyDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy.SplitStrategyAuto;
6706
6707 private global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy sharedTreeSplitStrategy_;
6708 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6709 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6710 public global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy SharedTreeSplitStrategy {
6711 get { if ((_hasBits5 & 268435456) != 0) { return sharedTreeSplitStrategy_; } else { return SharedTreeSplitStrategyDefaultValue; } }
6712 set {
6713 _hasBits5 |= 268435456;
6714 sharedTreeSplitStrategy_ = value;
6715 }
6716 }
6718 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6719 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6720 public bool HasSharedTreeSplitStrategy {
6721 get { return (_hasBits5 & 268435456) != 0; }
6722 }
6724 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6725 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6726 public void ClearSharedTreeSplitStrategy() {
6727 _hasBits5 &= ~268435456;
6728 }
6729
6731 public const int SharedTreeBalanceToleranceFieldNumber = 305;
6732 private readonly static int SharedTreeBalanceToleranceDefaultValue = 1;
6733
6734 private int sharedTreeBalanceTolerance_;
6735 /// <summary>
6736 /// How much deeper compared to the ideal max depth of the tree is considered
6737 /// "balanced" enough to still accept a split. Without such a tolerance,
6738 /// sometimes the tree can only be split by a single worker, and they may not
6739 /// generate a split for some time. In contrast, with a tolerance of 1, at
6740 /// least half of all workers should be able to split the tree as soon as a
6741 /// split becomes required. This only has an effect on
6742 /// SPLIT_STRATEGY_BALANCED_TREE and SPLIT_STRATEGY_DISCREPANCY.
6743 /// </summary>
6744 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6745 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6747 get { if ((_hasBits7 & 8388608) != 0) { return sharedTreeBalanceTolerance_; } else { return SharedTreeBalanceToleranceDefaultValue; } }
6748 set {
6749 _hasBits7 |= 8388608;
6750 sharedTreeBalanceTolerance_ = value;
6751 }
6754 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6755 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6756 public bool HasSharedTreeBalanceTolerance {
6757 get { return (_hasBits7 & 8388608) != 0; }
6758 }
6759
6760 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6761 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6763 _hasBits7 &= ~8388608;
6764 }
6765
6767 public const int EnumerateAllSolutionsFieldNumber = 87;
6768 private readonly static bool EnumerateAllSolutionsDefaultValue = false;
6769
6770 private bool enumerateAllSolutions_;
6771
6780 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6781 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6782 public bool EnumerateAllSolutions {
6783 get { if ((_hasBits1 & 1073741824) != 0) { return enumerateAllSolutions_; } else { return EnumerateAllSolutionsDefaultValue; } }
6784 set {
6785 _hasBits1 |= 1073741824;
6786 enumerateAllSolutions_ = value;
6787 }
6790 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6791 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6792 public bool HasEnumerateAllSolutions {
6793 get { return (_hasBits1 & 1073741824) != 0; }
6794 }
6795
6796 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6797 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6799 _hasBits1 &= ~1073741824;
6800 }
6801
6803 public const int KeepAllFeasibleSolutionsInPresolveFieldNumber = 173;
6804 private readonly static bool KeepAllFeasibleSolutionsInPresolveDefaultValue = false;
6805
6806 private bool keepAllFeasibleSolutionsInPresolve_;
6807
6817 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6818 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6820 get { if ((_hasBits4 & 64) != 0) { return keepAllFeasibleSolutionsInPresolve_; } else { return KeepAllFeasibleSolutionsInPresolveDefaultValue; } }
6821 set {
6822 _hasBits4 |= 64;
6823 keepAllFeasibleSolutionsInPresolve_ = value;
6824 }
6827 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6828 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6829 public bool HasKeepAllFeasibleSolutionsInPresolve {
6830 get { return (_hasBits4 & 64) != 0; }
6831 }
6832
6833 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6834 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6836 _hasBits4 &= ~64;
6837 }
6838
6840 public const int FillTightenedDomainsInResponseFieldNumber = 132;
6841 private readonly static bool FillTightenedDomainsInResponseDefaultValue = false;
6842
6843 private bool fillTightenedDomainsInResponse_;
6844
6851 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6852 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6853 public bool FillTightenedDomainsInResponse {
6854 get { if ((_hasBits3 & 32) != 0) { return fillTightenedDomainsInResponse_; } else { return FillTightenedDomainsInResponseDefaultValue; } }
6855 set {
6856 _hasBits3 |= 32;
6857 fillTightenedDomainsInResponse_ = value;
6858 }
6859 }
6861 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6862 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6864 get { return (_hasBits3 & 32) != 0; }
6865 }
6867 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6868 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6869 public void ClearFillTightenedDomainsInResponse() {
6870 _hasBits3 &= ~32;
6871 }
6872
6873 /// <summary>Field number for the "fill_additional_solutions_in_response" field.</summary>
6874 public const int FillAdditionalSolutionsInResponseFieldNumber = 194;
6875 private readonly static bool FillAdditionalSolutionsInResponseDefaultValue = false;
6876
6877 private bool fillAdditionalSolutionsInResponse_;
6879 /// If true, the final response addition_solutions field will be filled with
6880 /// all solutions from our solutions pool.
6881 ///
6882 /// Note that if both this field and enumerate_all_solutions is true, we will
6883 /// copy to the pool all of the solution found. So if solution_pool_size is big
6884 /// enough, you can get all solutions this way instead of using the solution
6885 /// callback.
6886 ///
6887 /// Note that this only affect the "final" solution, not the one passed to the
6888 /// solution callbacks.
6889 /// </summary>
6890 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6891 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6893 get { if ((_hasBits4 & 33554432) != 0) { return fillAdditionalSolutionsInResponse_; } else { return FillAdditionalSolutionsInResponseDefaultValue; } }
6894 set {
6895 _hasBits4 |= 33554432;
6896 fillAdditionalSolutionsInResponse_ = value;
6898 }
6900 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6901 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6902 public bool HasFillAdditionalSolutionsInResponse {
6903 get { return (_hasBits4 & 33554432) != 0; }
6904 }
6906 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6907 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6909 _hasBits4 &= ~33554432;
6910 }
6911
6914 private readonly static bool InstantiateAllVariablesDefaultValue = true;
6915
6916 private bool instantiateAllVariables_;
6923 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6924 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6925 public bool InstantiateAllVariables {
6926 get { if ((_hasBits2 & 8192) != 0) { return instantiateAllVariables_; } else { return InstantiateAllVariablesDefaultValue; } }
6927 set {
6928 _hasBits2 |= 8192;
6929 instantiateAllVariables_ = value;
6930 }
6931 }
6933 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6934 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6935 public bool HasInstantiateAllVariables {
6936 get { return (_hasBits2 & 8192) != 0; }
6937 }
6938 /// <summary>Clears the value of the "instantiate_all_variables" field</summary>
6939 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6940 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6941 public void ClearInstantiateAllVariables() {
6942 _hasBits2 &= ~8192;
6943 }
6944
6945
6946 public const int AutoDetectGreaterThanAtLeastOneOfFieldNumber = 95;
6947 private readonly static bool AutoDetectGreaterThanAtLeastOneOfDefaultValue = true;
6949 private bool autoDetectGreaterThanAtLeastOneOf_;
6951
6954 /// of precedence.
6955 /// </summary>
6956 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6957 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6959 get { if ((_hasBits2 & 64) != 0) { return autoDetectGreaterThanAtLeastOneOf_; } else { return AutoDetectGreaterThanAtLeastOneOfDefaultValue; } }
6960 set {
6961 _hasBits2 |= 64;
6962 autoDetectGreaterThanAtLeastOneOf_ = value;
6963 }
6964 }
6966 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6967 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6968 public bool HasAutoDetectGreaterThanAtLeastOneOf {
6969 get { return (_hasBits2 & 64) != 0; }
6970 }
6971 /// <summary>Clears the value of the "auto_detect_greater_than_at_least_one_of" field</summary>
6972 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6973 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6975 _hasBits2 &= ~64;
6976 }
6977
6978
6979 public const int StopAfterFirstSolutionFieldNumber = 98;
6980 private readonly static bool StopAfterFirstSolutionDefaultValue = false;
6982 private bool stopAfterFirstSolution_;
6984
6986 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6987 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6988 public bool StopAfterFirstSolution {
6989 get { if ((_hasBits2 & 128) != 0) { return stopAfterFirstSolution_; } else { return StopAfterFirstSolutionDefaultValue; } }
6990 set {
6991 _hasBits2 |= 128;
6992 stopAfterFirstSolution_ = value;
6993 }
6994 }
6996 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6997 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6998 public bool HasStopAfterFirstSolution {
6999 get { return (_hasBits2 & 128) != 0; }
7000 }
7002 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7003 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7005 _hasBits2 &= ~128;
7006 }
7007
7009 public const int StopAfterPresolveFieldNumber = 149;
7010 private readonly static bool StopAfterPresolveDefaultValue = false;
7011
7012 private bool stopAfterPresolve_;
7014 /// Mainly used when improving the presolver. When true, stops the solver after
7015 /// the presolve is complete (or after loading and root level propagation).
7016 /// </summary>
7017 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7018 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7019 public bool StopAfterPresolve {
7020 get { if ((_hasBits3 & 131072) != 0) { return stopAfterPresolve_; } else { return StopAfterPresolveDefaultValue; } }
7021 set {
7022 _hasBits3 |= 131072;
7023 stopAfterPresolve_ = value;
7024 }
7027 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7028 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7029 public bool HasStopAfterPresolve {
7030 get { return (_hasBits3 & 131072) != 0; }
7031 }
7033 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7034 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7035 public void ClearStopAfterPresolve() {
7036 _hasBits3 &= ~131072;
7037 }
7038
7040 public const int StopAfterRootPropagationFieldNumber = 252;
7041 private readonly static bool StopAfterRootPropagationDefaultValue = false;
7042
7043 private bool stopAfterRootPropagation_;
7044 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7045 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7046 public bool StopAfterRootPropagation {
7047 get { if ((_hasBits6 & 16) != 0) { return stopAfterRootPropagation_; } else { return StopAfterRootPropagationDefaultValue; } }
7048 set {
7049 _hasBits6 |= 16;
7050 stopAfterRootPropagation_ = value;
7051 }
7052 }
7053
7054 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7055 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7056 public bool HasStopAfterRootPropagation {
7057 get { return (_hasBits6 & 16) != 0; }
7058 }
7060 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7061 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7062 public void ClearStopAfterRootPropagation() {
7063 _hasBits6 &= ~16;
7064 }
7067 public const int LnsInitialDifficultyFieldNumber = 307;
7068 private readonly static double LnsInitialDifficultyDefaultValue = 0.5D;
7069
7070 private double lnsInitialDifficulty_;
7072
7074 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7075 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7076 public double LnsInitialDifficulty {
7077 get { if ((_hasBits7 & 33554432) != 0) { return lnsInitialDifficulty_; } else { return LnsInitialDifficultyDefaultValue; } }
7078 set {
7079 _hasBits7 |= 33554432;
7080 lnsInitialDifficulty_ = value;
7082 }
7084 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7085 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7087 get { return (_hasBits7 & 33554432) != 0; }
7088 }
7090 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7091 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7093 _hasBits7 &= ~33554432;
7094 }
7095
7097 public const int LnsInitialDeterministicLimitFieldNumber = 308;
7098 private readonly static double LnsInitialDeterministicLimitDefaultValue = 0.1D;
7099
7100 private double lnsInitialDeterministicLimit_;
7101 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7102 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7103 public double LnsInitialDeterministicLimit {
7104 get { if ((_hasBits7 & 67108864) != 0) { return lnsInitialDeterministicLimit_; } else { return LnsInitialDeterministicLimitDefaultValue; } }
7105 set {
7106 _hasBits7 |= 67108864;
7107 lnsInitialDeterministicLimit_ = value;
7109 }
7111 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7112 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7114 get { return (_hasBits7 & 67108864) != 0; }
7115 }
7117 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7118 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7119 public void ClearLnsInitialDeterministicLimit() {
7120 _hasBits7 &= ~67108864;
7121 }
7124 public const int UseLnsFieldNumber = 283;
7125 private readonly static bool UseLnsDefaultValue = true;
7126
7127 private bool useLns_;
7129
7131 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7132 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7133 public bool UseLns {
7134 get { if ((_hasBits7 & 4) != 0) { return useLns_; } else { return UseLnsDefaultValue; } }
7135 set {
7136 _hasBits7 |= 4;
7137 useLns_ = value;
7139 }
7141 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7142 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7143 public bool HasUseLns {
7144 get { return (_hasBits7 & 4) != 0; }
7145 }
7147 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7148 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7149 public void ClearUseLns() {
7150 _hasBits7 &= ~4;
7151 }
7152
7154 public const int UseLnsOnlyFieldNumber = 101;
7155 private readonly static bool UseLnsOnlyDefaultValue = false;
7156
7157 private bool useLnsOnly_;
7159 /// Experimental parameters to disable everything but lns.
7160 /// </summary>
7161 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7162 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7163 public bool UseLnsOnly {
7164 get { if ((_hasBits2 & 1024) != 0) { return useLnsOnly_; } else { return UseLnsOnlyDefaultValue; } }
7165 set {
7166 _hasBits2 |= 1024;
7167 useLnsOnly_ = value;
7168 }
7169 }
7171 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7172 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7173 public bool HasUseLnsOnly {
7174 get { return (_hasBits2 & 1024) != 0; }
7175 }
7177 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7178 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7179 public void ClearUseLnsOnly() {
7180 _hasBits2 &= ~1024;
7181 }
7182
7184 public const int SolutionPoolSizeFieldNumber = 193;
7185 private readonly static int SolutionPoolSizeDefaultValue = 3;
7186
7187 private int solutionPoolSize_;
7189 /// Size of the top-n different solutions kept by the solver.
7190 /// This parameter must be > 0.
7191 /// Currently this only impact the "base" solution chosen for a LNS fragment.
7192 /// </summary>
7193 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7194 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7195 public int SolutionPoolSize {
7196 get { if ((_hasBits4 & 16777216) != 0) { return solutionPoolSize_; } else { return SolutionPoolSizeDefaultValue; } }
7197 set {
7198 _hasBits4 |= 16777216;
7199 solutionPoolSize_ = value;
7201 }
7203 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7204 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7205 public bool HasSolutionPoolSize {
7206 get { return (_hasBits4 & 16777216) != 0; }
7207 }
7209 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7210 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7211 public void ClearSolutionPoolSize() {
7212 _hasBits4 &= ~16777216;
7213 }
7214
7216 public const int UseRinsLnsFieldNumber = 129;
7217 private readonly static bool UseRinsLnsDefaultValue = true;
7218
7219 private bool useRinsLns_;
7222
7223 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7224 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7225 public bool UseRinsLns {
7226 get { if ((_hasBits3 & 4) != 0) { return useRinsLns_; } else { return UseRinsLnsDefaultValue; } }
7227 set {
7228 _hasBits3 |= 4;
7229 useRinsLns_ = value;
7231 }
7233 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7234 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7235 public bool HasUseRinsLns {
7236 get { return (_hasBits3 & 4) != 0; }
7237 }
7239 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7240 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7241 public void ClearUseRinsLns() {
7242 _hasBits3 &= ~4;
7243 }
7244
7246 public const int UseFeasibilityPumpFieldNumber = 164;
7247 private readonly static bool UseFeasibilityPumpDefaultValue = true;
7248
7249 private bool useFeasibilityPump_;
7251 /// Adds a feasibility pump subsolver along with lns subsolvers.
7252 /// </summary>
7253 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7254 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7255 public bool UseFeasibilityPump {
7256 get { if ((_hasBits3 & 1073741824) != 0) { return useFeasibilityPump_; } else { return UseFeasibilityPumpDefaultValue; } }
7257 set {
7258 _hasBits3 |= 1073741824;
7259 useFeasibilityPump_ = value;
7260 }
7261 }
7263 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7264 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7265 public bool HasUseFeasibilityPump {
7266 get { return (_hasBits3 & 1073741824) != 0; }
7267 }
7269 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7270 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7272 _hasBits3 &= ~1073741824;
7273 }
7274
7276 public const int UseLbRelaxLnsFieldNumber = 255;
7277 private readonly static bool UseLbRelaxLnsDefaultValue = true;
7278
7279 private bool useLbRelaxLns_;
7281 /// Turns on neighborhood generator based on local branching LP. Based on Huang
7282 /// et al., "Local Branching Relaxation Heuristics for Integer Linear
7283 /// Programs", 2023.
7284 /// </summary>
7285 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7286 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7287 public bool UseLbRelaxLns {
7288 get { if ((_hasBits6 & 64) != 0) { return useLbRelaxLns_; } else { return UseLbRelaxLnsDefaultValue; } }
7289 set {
7290 _hasBits6 |= 64;
7291 useLbRelaxLns_ = value;
7293 }
7295 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7296 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7297 public bool HasUseLbRelaxLns {
7298 get { return (_hasBits6 & 64) != 0; }
7299 }
7301 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7302 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7303 public void ClearUseLbRelaxLns() {
7304 _hasBits6 &= ~64;
7305 }
7306
7308 public const int LbRelaxNumWorkersThresholdFieldNumber = 296;
7309 private readonly static int LbRelaxNumWorkersThresholdDefaultValue = 16;
7310
7311 private int lbRelaxNumWorkersThreshold_;
7314
7315 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7316 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7318 get { if ((_hasBits7 & 16384) != 0) { return lbRelaxNumWorkersThreshold_; } else { return LbRelaxNumWorkersThresholdDefaultValue; } }
7319 set {
7320 _hasBits7 |= 16384;
7321 lbRelaxNumWorkersThreshold_ = value;
7323 }
7325 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7326 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7327 public bool HasLbRelaxNumWorkersThreshold {
7328 get { return (_hasBits7 & 16384) != 0; }
7329 }
7331 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7332 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7334 _hasBits7 &= ~16384;
7335 }
7336
7338 public const int FpRoundingFieldNumber = 165;
7339 private readonly static global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod FpRoundingDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod.PropagationAssisted;
7340
7341 private global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod fpRounding_;
7342 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7343 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7344 public global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod FpRounding {
7345 get { if ((_hasBits3 & -2147483648) != 0) { return fpRounding_; } else { return FpRoundingDefaultValue; } }
7346 set {
7347 _hasBits3 |= -2147483648;
7348 fpRounding_ = value;
7350 }
7352 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7353 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7354 public bool HasFpRounding {
7355 get { return (_hasBits3 & -2147483648) != 0; }
7356 }
7358 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7359 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7360 public void ClearFpRounding() {
7361 _hasBits3 &= ~-2147483648;
7362 }
7365 public const int DiversifyLnsParamsFieldNumber = 137;
7366 private readonly static bool DiversifyLnsParamsDefaultValue = false;
7367
7368 private bool diversifyLnsParams_;
7370
7372 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7373 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7374 public bool DiversifyLnsParams {
7375 get { if ((_hasBits3 & 1024) != 0) { return diversifyLnsParams_; } else { return DiversifyLnsParamsDefaultValue; } }
7376 set {
7377 _hasBits3 |= 1024;
7378 diversifyLnsParams_ = value;
7380 }
7382 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7383 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7385 get { return (_hasBits3 & 1024) != 0; }
7386 }
7388 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7389 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7391 _hasBits3 &= ~1024;
7392 }
7393
7395 public const int RandomizeSearchFieldNumber = 103;
7396 private readonly static bool RandomizeSearchDefaultValue = false;
7397
7398 private bool randomizeSearch_;
7400 /// Randomize fixed search.
7401 /// </summary>
7402 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7403 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7404 public bool RandomizeSearch {
7405 get { if ((_hasBits2 & 2048) != 0) { return randomizeSearch_; } else { return RandomizeSearchDefaultValue; } }
7406 set {
7407 _hasBits2 |= 2048;
7408 randomizeSearch_ = value;
7409 }
7410 }
7412 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7413 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7414 public bool HasRandomizeSearch {
7415 get { return (_hasBits2 & 2048) != 0; }
7416 }
7418 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7419 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7420 public void ClearRandomizeSearch() {
7421 _hasBits2 &= ~2048;
7422 }
7423
7425 public const int SearchRandomVariablePoolSizeFieldNumber = 104;
7426 private readonly static long SearchRandomVariablePoolSizeDefaultValue = 0L;
7427
7428 private long searchRandomVariablePoolSize_;
7430 /// Search randomization will collect the top
7431 /// 'search_random_variable_pool_size' valued variables, and pick one randomly.
7432 /// The value of the variable is specific to each strategy.
7433 /// </summary>
7434 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7435 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7437 get { if ((_hasBits2 & 4096) != 0) { return searchRandomVariablePoolSize_; } else { return SearchRandomVariablePoolSizeDefaultValue; } }
7438 set {
7439 _hasBits2 |= 4096;
7440 searchRandomVariablePoolSize_ = value;
7442 }
7444 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7445 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7446 public bool HasSearchRandomVariablePoolSize {
7447 get { return (_hasBits2 & 4096) != 0; }
7448 }
7450 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7451 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7452 public void ClearSearchRandomVariablePoolSize() {
7453 _hasBits2 &= ~4096;
7454 }
7455
7457 public const int PushAllTasksTowardStartFieldNumber = 262;
7458 private readonly static bool PushAllTasksTowardStartDefaultValue = false;
7459
7460 private bool pushAllTasksTowardStart_;
7463
7465 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7466 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7467 public bool PushAllTasksTowardStart {
7468 get { if ((_hasBits6 & 8192) != 0) { return pushAllTasksTowardStart_; } else { return PushAllTasksTowardStartDefaultValue; } }
7469 set {
7470 _hasBits6 |= 8192;
7471 pushAllTasksTowardStart_ = value;
7472 }
7473 }
7475 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7476 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7477 public bool HasPushAllTasksTowardStart {
7478 get { return (_hasBits6 & 8192) != 0; }
7479 }
7481 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7482 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7483 public void ClearPushAllTasksTowardStart() {
7484 _hasBits6 &= ~8192;
7485 }
7486
7488 public const int UseOptionalVariablesFieldNumber = 108;
7489 private readonly static bool UseOptionalVariablesDefaultValue = false;
7490
7491 private bool useOptionalVariables_;
7492 /// <summary>
7493 /// If true, we automatically detect variables whose constraint are always
7494 /// enforced by the same literal and we mark them as optional. This allows
7495 /// to propagate them as if they were present in some situation.
7496 ///
7497 /// TODO(user): This is experimental and seems to lead to wrong optimal in
7498 /// some situation. It should however gives correct solutions. Fix.
7499 /// </summary>
7500 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7501 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7502 public bool UseOptionalVariables {
7503 get { if ((_hasBits2 & 32768) != 0) { return useOptionalVariables_; } else { return UseOptionalVariablesDefaultValue; } }
7504 set {
7505 _hasBits2 |= 32768;
7506 useOptionalVariables_ = value;
7507 }
7508 }
7510 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7511 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7512 public bool HasUseOptionalVariables {
7513 get { return (_hasBits2 & 32768) != 0; }
7514 }
7516 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7517 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7518 public void ClearUseOptionalVariables() {
7519 _hasBits2 &= ~32768;
7520 }
7521
7523 public const int UseExactLpReasonFieldNumber = 109;
7524 private readonly static bool UseExactLpReasonDefaultValue = true;
7525
7526 private bool useExactLpReason_;
7529 /// true, then whatever is infered by the LP will be used like an heuristic to
7530 /// compute EXACT propagation on the IP. So with this option, there is no
7531 /// numerical imprecision issues.
7532 /// </summary>
7533 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7534 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7535 public bool UseExactLpReason {
7536 get { if ((_hasBits2 & 65536) != 0) { return useExactLpReason_; } else { return UseExactLpReasonDefaultValue; } }
7537 set {
7538 _hasBits2 |= 65536;
7539 useExactLpReason_ = value;
7540 }
7541 }
7543 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7544 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7545 public bool HasUseExactLpReason {
7546 get { return (_hasBits2 & 65536) != 0; }
7547 }
7549 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7550 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7551 public void ClearUseExactLpReason() {
7552 _hasBits2 &= ~65536;
7553 }
7554
7556 public const int UseCombinedNoOverlapFieldNumber = 133;
7557 private readonly static bool UseCombinedNoOverlapDefaultValue = false;
7558
7559 private bool useCombinedNoOverlap_;
7562
7565 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7566 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7567 public bool UseCombinedNoOverlap {
7568 get { if ((_hasBits3 & 64) != 0) { return useCombinedNoOverlap_; } else { return UseCombinedNoOverlapDefaultValue; } }
7569 set {
7570 _hasBits3 |= 64;
7571 useCombinedNoOverlap_ = value;
7572 }
7573 }
7575 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7576 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7577 public bool HasUseCombinedNoOverlap {
7578 get { return (_hasBits3 & 64) != 0; }
7579 }
7581 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7582 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7583 public void ClearUseCombinedNoOverlap() {
7584 _hasBits3 &= ~64;
7585 }
7586
7588 public const int AtMostOneMaxExpansionSizeFieldNumber = 270;
7589 private readonly static int AtMostOneMaxExpansionSizeDefaultValue = 3;
7590
7591 private int atMostOneMaxExpansionSize_;
7592 /// <summary>
7593 /// All at_most_one constraints with a size &lt;= param will be replaced by a
7594 /// quadratic number of binary implications.
7595 /// </summary>
7596 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7597 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7599 get { if ((_hasBits6 & 2097152) != 0) { return atMostOneMaxExpansionSize_; } else { return AtMostOneMaxExpansionSizeDefaultValue; } }
7600 set {
7601 _hasBits6 |= 2097152;
7602 atMostOneMaxExpansionSize_ = value;
7604 }
7606 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7607 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7608 public bool HasAtMostOneMaxExpansionSize {
7609 get { return (_hasBits6 & 2097152) != 0; }
7610 }
7612 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7613 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7615 _hasBits6 &= ~2097152;
7616 }
7617
7619 public const int CatchSigintSignalFieldNumber = 135;
7620 private readonly static bool CatchSigintSignalDefaultValue = true;
7621
7622 private bool catchSigintSignal_;
7624 /// Indicates if the CP-SAT layer should catch Control-C (SIGINT) signals
7625 /// when calling solve. If set, catching the SIGINT signal will terminate the
7626 /// search gracefully, as if a time limit was reached.
7627 /// </summary>
7628 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7629 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7630 public bool CatchSigintSignal {
7631 get { if ((_hasBits3 & 256) != 0) { return catchSigintSignal_; } else { return CatchSigintSignalDefaultValue; } }
7632 set {
7633 _hasBits3 |= 256;
7634 catchSigintSignal_ = value;
7636 }
7638 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7639 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7640 public bool HasCatchSigintSignal {
7641 get { return (_hasBits3 & 256) != 0; }
7642 }
7644 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7645 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7646 public void ClearCatchSigintSignal() {
7647 _hasBits3 &= ~256;
7648 }
7649
7651 public const int UseImpliedBoundsFieldNumber = 144;
7652 private readonly static bool UseImpliedBoundsDefaultValue = true;
7653
7654 private bool useImpliedBounds_;
7655 /// <summary>
7656 /// Stores and exploits "implied-bounds" in the solver. That is, relations of
7657 /// the form literal => (var >= bound). This is currently used to derive
7658 /// stronger cuts.
7659 /// </summary>
7660 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7661 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7662 public bool UseImpliedBounds {
7663 get { if ((_hasBits3 & 4096) != 0) { return useImpliedBounds_; } else { return UseImpliedBoundsDefaultValue; } }
7664 set {
7665 _hasBits3 |= 4096;
7666 useImpliedBounds_ = value;
7667 }
7668 }
7670 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7671 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7672 public bool HasUseImpliedBounds {
7673 get { return (_hasBits3 & 4096) != 0; }
7674 }
7676 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7677 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7678 public void ClearUseImpliedBounds() {
7679 _hasBits3 &= ~4096;
7680 }
7681
7683 public const int PolishLpSolutionFieldNumber = 175;
7684 private readonly static bool PolishLpSolutionDefaultValue = false;
7685
7686 private bool polishLpSolution_;
7687 /// <summary>
7688 /// Whether we try to do a few degenerate iteration at the end of an LP solve
7689 /// to minimize the fractionality of the integer variable in the basis. This
7690 /// helps on some problems, but not so much on others. It also cost of bit of
7691 /// time to do such polish step.
7692 /// </summary>
7693 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7694 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7695 public bool PolishLpSolution {
7696 get { if ((_hasBits4 & 256) != 0) { return polishLpSolution_; } else { return PolishLpSolutionDefaultValue; } }
7697 set {
7698 _hasBits4 |= 256;
7699 polishLpSolution_ = value;
7700 }
7701 }
7703 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7704 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7705 public bool HasPolishLpSolution {
7706 get { return (_hasBits4 & 256) != 0; }
7707 }
7709 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7710 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7711 public void ClearPolishLpSolution() {
7712 _hasBits4 &= ~256;
7713 }
7714
7716 public const int LpPrimalToleranceFieldNumber = 266;
7717 private readonly static double LpPrimalToleranceDefaultValue = 1e-07D;
7718
7719 private double lpPrimalTolerance_;
7722
7725 /// solves.
7726 /// </summary>
7727 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7728 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7729 public double LpPrimalTolerance {
7730 get { if ((_hasBits6 & 131072) != 0) { return lpPrimalTolerance_; } else { return LpPrimalToleranceDefaultValue; } }
7731 set {
7732 _hasBits6 |= 131072;
7733 lpPrimalTolerance_ = value;
7734 }
7735 }
7737 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7738 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7739 public bool HasLpPrimalTolerance {
7740 get { return (_hasBits6 & 131072) != 0; }
7741 }
7742 /// <summary>Clears the value of the "lp_primal_tolerance" field</summary>
7743 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7744 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7745 public void ClearLpPrimalTolerance() {
7746 _hasBits6 &= ~131072;
7747 }
7748
7749
7750 public const int LpDualToleranceFieldNumber = 267;
7751 private readonly static double LpDualToleranceDefaultValue = 1e-07D;
7753 private double lpDualTolerance_;
7754 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7755 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7756 public double LpDualTolerance {
7757 get { if ((_hasBits6 & 262144) != 0) { return lpDualTolerance_; } else { return LpDualToleranceDefaultValue; } }
7758 set {
7759 _hasBits6 |= 262144;
7760 lpDualTolerance_ = value;
7761 }
7762 }
7764 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7765 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7766 public bool HasLpDualTolerance {
7767 get { return (_hasBits6 & 262144) != 0; }
7768 }
7770 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7771 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7772 public void ClearLpDualTolerance() {
7773 _hasBits6 &= ~262144;
7774 }
7775
7776 /// <summary>Field number for the "convert_intervals" field.</summary>
7777 public const int ConvertIntervalsFieldNumber = 177;
7778 private readonly static bool ConvertIntervalsDefaultValue = true;
7779
7780 private bool convertIntervals_;
7783
7786 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7787 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7788 public bool ConvertIntervals {
7789 get { if ((_hasBits4 & 1024) != 0) { return convertIntervals_; } else { return ConvertIntervalsDefaultValue; } }
7790 set {
7791 _hasBits4 |= 1024;
7792 convertIntervals_ = value;
7793 }
7794 }
7795
7796 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7797 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7798 public bool HasConvertIntervals {
7799 get { return (_hasBits4 & 1024) != 0; }
7800 }
7802 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7803 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7804 public void ClearConvertIntervals() {
7805 _hasBits4 &= ~1024;
7806 }
7807
7809 public const int SymmetryLevelFieldNumber = 183;
7810 private readonly static int SymmetryLevelDefaultValue = 2;
7811
7812 private int symmetryLevel_;
7813 /// <summary>
7814 /// Whether we try to automatically detect the symmetries in a model and
7815 /// exploit them. Currently, at level 1 we detect them in presolve and try
7816 /// to fix Booleans. At level 2, we also do some form of dynamic symmetry
7817 /// breaking during search. At level 3, we also detect symmetries for very
7818 /// large models, which can be slow. At level 4, we try to break as much
7819 /// symmetry as possible in presolve.
7820 /// </summary>
7821 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7822 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7823 public int SymmetryLevel {
7824 get { if ((_hasBits4 & 65536) != 0) { return symmetryLevel_; } else { return SymmetryLevelDefaultValue; } }
7825 set {
7826 _hasBits4 |= 65536;
7827 symmetryLevel_ = value;
7828 }
7829 }
7831 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7832 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7833 public bool HasSymmetryLevel {
7834 get { return (_hasBits4 & 65536) != 0; }
7837 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7838 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7839 public void ClearSymmetryLevel() {
7840 _hasBits4 &= ~65536;
7841 }
7842
7844 public const int UseSymmetryInLpFieldNumber = 301;
7845 private readonly static bool UseSymmetryInLpDefaultValue = false;
7846
7847 private bool useSymmetryInLp_;
7848
7851 /// This can help significantly on symmetric problem. However there is
7852 /// currently a bit of overhead as the rest of the solver need to do some
7853 /// translation between the folded LP and the rest of the problem.
7854 /// </summary>
7855 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7856 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7857 public bool UseSymmetryInLp {
7858 get { if ((_hasBits7 & 524288) != 0) { return useSymmetryInLp_; } else { return UseSymmetryInLpDefaultValue; } }
7859 set {
7860 _hasBits7 |= 524288;
7861 useSymmetryInLp_ = value;
7862 }
7863 }
7865 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7866 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7867 public bool HasUseSymmetryInLp {
7868 get { return (_hasBits7 & 524288) != 0; }
7869 }
7870 /// <summary>Clears the value of the "use_symmetry_in_lp" field</summary>
7871 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7872 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7873 public void ClearUseSymmetryInLp() {
7874 _hasBits7 &= ~524288;
7875 }
7876
7877
7878 public const int KeepSymmetryInPresolveFieldNumber = 303;
7879 private readonly static bool KeepSymmetryInPresolveDefaultValue = false;
7881 private bool keepSymmetryInPresolve_;
7883
7886 /// will disable a bunch of presolve operations that could be supported.
7887 /// </summary>
7888 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7889 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7890 public bool KeepSymmetryInPresolve {
7891 get { if ((_hasBits7 & 2097152) != 0) { return keepSymmetryInPresolve_; } else { return KeepSymmetryInPresolveDefaultValue; } }
7892 set {
7893 _hasBits7 |= 2097152;
7894 keepSymmetryInPresolve_ = value;
7895 }
7896 }
7898 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7899 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7900 public bool HasKeepSymmetryInPresolve {
7901 get { return (_hasBits7 & 2097152) != 0; }
7902 }
7904 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7905 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7906 public void ClearKeepSymmetryInPresolve() {
7907 _hasBits7 &= ~2097152;
7908 }
7909
7911 public const int SymmetryDetectionDeterministicTimeLimitFieldNumber = 302;
7912 private readonly static double SymmetryDetectionDeterministicTimeLimitDefaultValue = 1D;
7913
7914 private double symmetryDetectionDeterministicTimeLimit_;
7917
7918 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7919 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7921 get { if ((_hasBits7 & 1048576) != 0) { return symmetryDetectionDeterministicTimeLimit_; } else { return SymmetryDetectionDeterministicTimeLimitDefaultValue; } }
7922 set {
7923 _hasBits7 |= 1048576;
7924 symmetryDetectionDeterministicTimeLimit_ = value;
7926 }
7928 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7929 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7930 public bool HasSymmetryDetectionDeterministicTimeLimit {
7931 get { return (_hasBits7 & 1048576) != 0; }
7932 }
7934 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7935 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7936 public void ClearSymmetryDetectionDeterministicTimeLimit() {
7937 _hasBits7 &= ~1048576;
7938 }
7939
7941 public const int NewLinearPropagationFieldNumber = 224;
7942 private readonly static bool NewLinearPropagationDefaultValue = true;
7943
7944 private bool newLinearPropagation_;
7947 /// an adaptation of Bellman-Ford-Tarjan to propagate constraint in a smarter
7948 /// order and potentially detect propagation cycle earlier.
7949 /// </summary>
7950 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7951 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7952 public bool NewLinearPropagation {
7953 get { if ((_hasBits5 & 32768) != 0) { return newLinearPropagation_; } else { return NewLinearPropagationDefaultValue; } }
7954 set {
7955 _hasBits5 |= 32768;
7956 newLinearPropagation_ = value;
7957 }
7960 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7961 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7962 public bool HasNewLinearPropagation {
7963 get { return (_hasBits5 & 32768) != 0; }
7964 }
7966 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7967 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7968 public void ClearNewLinearPropagation() {
7969 _hasBits5 &= ~32768;
7970 }
7971
7973 public const int LinearSplitSizeFieldNumber = 256;
7974 private readonly static int LinearSplitSizeDefaultValue = 100;
7975
7976 private int linearSplitSize_;
7977 /// <summary>
7978 /// Linear constraints that are not pseudo-Boolean and that are longer than
7979 /// this size will be split into sqrt(size) intermediate sums in order to have
7980 /// faster propation in the CP engine.
7981 /// </summary>
7982 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7983 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7984 public int LinearSplitSize {
7985 get { if ((_hasBits6 & 128) != 0) { return linearSplitSize_; } else { return LinearSplitSizeDefaultValue; } }
7986 set {
7987 _hasBits6 |= 128;
7988 linearSplitSize_ = value;
7989 }
7990 }
7992 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7993 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7994 public bool HasLinearSplitSize {
7995 get { return (_hasBits6 & 128) != 0; }
7996 }
7998 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7999 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8000 public void ClearLinearSplitSize() {
8001 _hasBits6 &= ~128;
8002 }
8003
8005 public const int LinearizationLevelFieldNumber = 90;
8006 private readonly static int LinearizationLevelDefaultValue = 1;
8007
8008 private int linearizationLevel_;
8009 /// <summary>
8010 /// A non-negative level indicating the type of constraints we consider in the
8011 /// LP relaxation. At level zero, no LP relaxation is used. At level 1, only
8012 /// the linear constraint and full encoding are added. At level 2, we also add
8013 /// all the Boolean constraints.
8014 /// </summary>
8015 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8016 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8017 public int LinearizationLevel {
8018 get { if ((_hasBits2 & 2) != 0) { return linearizationLevel_; } else { return LinearizationLevelDefaultValue; } }
8019 set {
8020 _hasBits2 |= 2;
8021 linearizationLevel_ = value;
8022 }
8023 }
8025 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8026 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8027 public bool HasLinearizationLevel {
8028 get { return (_hasBits2 & 2) != 0; }
8029 }
8031 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8032 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8033 public void ClearLinearizationLevel() {
8034 _hasBits2 &= ~2;
8035 }
8036
8038 public const int BooleanEncodingLevelFieldNumber = 107;
8039 private readonly static int BooleanEncodingLevelDefaultValue = 1;
8040
8041 private int booleanEncodingLevel_;
8044
8046 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8047 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8048 public int BooleanEncodingLevel {
8049 get { if ((_hasBits2 & 16384) != 0) { return booleanEncodingLevel_; } else { return BooleanEncodingLevelDefaultValue; } }
8050 set {
8051 _hasBits2 |= 16384;
8052 booleanEncodingLevel_ = value;
8053 }
8054 }
8056 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8057 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8058 public bool HasBooleanEncodingLevel {
8059 get { return (_hasBits2 & 16384) != 0; }
8060 }
8062 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8063 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8065 _hasBits2 &= ~16384;
8066 }
8067
8069 public const int MaxDomainSizeWhenEncodingEqNeqConstraintsFieldNumber = 191;
8070 private readonly static int MaxDomainSizeWhenEncodingEqNeqConstraintsDefaultValue = 16;
8071
8072 private int maxDomainSizeWhenEncodingEqNeqConstraints_;
8074 /// When loading a*x + b*y ==/!= c when x and y are both fully encoded.
8075 /// The solver may decide to replace the linear equation by a set of clauses.
8076 /// This is triggered if the sizes of the domains of x and y are below the
8077 /// threshold.
8078 /// </summary>
8079 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8080 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8082 get { if ((_hasBits4 & 4194304) != 0) { return maxDomainSizeWhenEncodingEqNeqConstraints_; } else { return MaxDomainSizeWhenEncodingEqNeqConstraintsDefaultValue; } }
8083 set {
8084 _hasBits4 |= 4194304;
8085 maxDomainSizeWhenEncodingEqNeqConstraints_ = value;
8086 }
8087 }
8089 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8090 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8091 public bool HasMaxDomainSizeWhenEncodingEqNeqConstraints {
8092 get { return (_hasBits4 & 4194304) != 0; }
8093 }
8095 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8096 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8098 _hasBits4 &= ~4194304;
8099 }
8100
8102 public const int MaxNumCutsFieldNumber = 91;
8103 private readonly static int MaxNumCutsDefaultValue = 10000;
8104
8105 private int maxNumCuts_;
8108
8111 /// generate cuts but only keep the best n or something.
8112 /// </summary>
8113 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8114 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8115 public int MaxNumCuts {
8116 get { if ((_hasBits2 & 4) != 0) { return maxNumCuts_; } else { return MaxNumCutsDefaultValue; } }
8117 set {
8118 _hasBits2 |= 4;
8119 maxNumCuts_ = value;
8120 }
8121 }
8123 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8124 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8125 public bool HasMaxNumCuts {
8126 get { return (_hasBits2 & 4) != 0; }
8127 }
8128 /// <summary>Clears the value of the "max_num_cuts" field</summary>
8129 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8130 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8131 public void ClearMaxNumCuts() {
8132 _hasBits2 &= ~4;
8133 }
8134
8135
8136 public const int CutLevelFieldNumber = 196;
8137 private readonly static int CutLevelDefaultValue = 1;
8139 private int cutLevel_;
8141
8144 /// </summary>
8145 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8146 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8147 public int CutLevel {
8148 get { if ((_hasBits4 & 134217728) != 0) { return cutLevel_; } else { return CutLevelDefaultValue; } }
8149 set {
8150 _hasBits4 |= 134217728;
8151 cutLevel_ = value;
8152 }
8153 }
8155 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8156 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8157 public bool HasCutLevel {
8158 get { return (_hasBits4 & 134217728) != 0; }
8159 }
8161 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8162 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8163 public void ClearCutLevel() {
8164 _hasBits4 &= ~134217728;
8165 }
8166
8168 public const int OnlyAddCutsAtLevelZeroFieldNumber = 92;
8169 private readonly static bool OnlyAddCutsAtLevelZeroDefaultValue = false;
8170
8171 private bool onlyAddCutsAtLevelZero_;
8173 /// For the cut that can be generated at any level, this control if we only
8174 /// try to generate them at the root node.
8175 /// </summary>
8176 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8177 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8178 public bool OnlyAddCutsAtLevelZero {
8179 get { if ((_hasBits2 & 8) != 0) { return onlyAddCutsAtLevelZero_; } else { return OnlyAddCutsAtLevelZeroDefaultValue; } }
8180 set {
8181 _hasBits2 |= 8;
8182 onlyAddCutsAtLevelZero_ = value;
8183 }
8186 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8187 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8188 public bool HasOnlyAddCutsAtLevelZero {
8189 get { return (_hasBits2 & 8) != 0; }
8190 }
8192 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8193 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8194 public void ClearOnlyAddCutsAtLevelZero() {
8195 _hasBits2 &= ~8;
8196 }
8197
8199 public const int AddObjectiveCutFieldNumber = 197;
8200 private readonly static bool AddObjectiveCutDefaultValue = false;
8201
8202 private bool addObjectiveCut_;
8205 /// linear objective expression to be greater or equal to this fractional value
8206 /// rounded up? We can always do that since our objective is integer, and
8207 /// combined with MIR heuristic to reduce the coefficient of such cut, it can
8208 /// help.
8209 /// </summary>
8210 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8211 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8212 public bool AddObjectiveCut {
8213 get { if ((_hasBits4 & 268435456) != 0) { return addObjectiveCut_; } else { return AddObjectiveCutDefaultValue; } }
8214 set {
8215 _hasBits4 |= 268435456;
8216 addObjectiveCut_ = value;
8217 }
8218 }
8220 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8221 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8222 public bool HasAddObjectiveCut {
8223 get { return (_hasBits4 & 268435456) != 0; }
8224 }
8226 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8227 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8228 public void ClearAddObjectiveCut() {
8229 _hasBits4 &= ~268435456;
8230 }
8231
8233 public const int AddCgCutsFieldNumber = 117;
8234 private readonly static bool AddCgCutsDefaultValue = true;
8235
8236 private bool addCgCuts_;
8239
8241 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8242 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8243 public bool AddCgCuts {
8244 get { if ((_hasBits2 & 8388608) != 0) { return addCgCuts_; } else { return AddCgCutsDefaultValue; } }
8245 set {
8246 _hasBits2 |= 8388608;
8247 addCgCuts_ = value;
8248 }
8249 }
8251 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8252 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8253 public bool HasAddCgCuts {
8254 get { return (_hasBits2 & 8388608) != 0; }
8255 }
8257 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8258 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8259 public void ClearAddCgCuts() {
8260 _hasBits2 &= ~8388608;
8261 }
8262
8264 public const int AddMirCutsFieldNumber = 120;
8265 private readonly static bool AddMirCutsDefaultValue = true;
8266
8267 private bool addMirCuts_;
8270 /// Note that for now, this is not heavily tuned.
8271 /// </summary>
8272 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8273 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8274 public bool AddMirCuts {
8275 get { if ((_hasBits2 & 33554432) != 0) { return addMirCuts_; } else { return AddMirCutsDefaultValue; } }
8276 set {
8277 _hasBits2 |= 33554432;
8278 addMirCuts_ = value;
8279 }
8280 }
8282 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8283 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8284 public bool HasAddMirCuts {
8285 get { return (_hasBits2 & 33554432) != 0; }
8286 }
8288 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8289 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8290 public void ClearAddMirCuts() {
8291 _hasBits2 &= ~33554432;
8292 }
8293
8295 public const int AddZeroHalfCutsFieldNumber = 169;
8296 private readonly static bool AddZeroHalfCutsDefaultValue = true;
8297
8298 private bool addZeroHalfCuts_;
8301 /// Note that for now, this is not heavily tuned.
8302 /// </summary>
8303 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8304 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8305 public bool AddZeroHalfCuts {
8306 get { if ((_hasBits4 & 8) != 0) { return addZeroHalfCuts_; } else { return AddZeroHalfCutsDefaultValue; } }
8307 set {
8308 _hasBits4 |= 8;
8309 addZeroHalfCuts_ = value;
8310 }
8311 }
8313 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8314 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8315 public bool HasAddZeroHalfCuts {
8316 get { return (_hasBits4 & 8) != 0; }
8317 }
8319 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8320 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8321 public void ClearAddZeroHalfCuts() {
8322 _hasBits4 &= ~8;
8323 }
8324
8326 public const int AddCliqueCutsFieldNumber = 172;
8327 private readonly static bool AddCliqueCutsDefaultValue = true;
8328
8329 private bool addCliqueCuts_;
8332 /// that as the search goes on, this graph will contains new binary clauses
8333 /// learned by the SAT engine.
8334 /// </summary>
8335 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8336 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8337 public bool AddCliqueCuts {
8338 get { if ((_hasBits4 & 32) != 0) { return addCliqueCuts_; } else { return AddCliqueCutsDefaultValue; } }
8339 set {
8340 _hasBits4 |= 32;
8341 addCliqueCuts_ = value;
8342 }
8345 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8346 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8347 public bool HasAddCliqueCuts {
8348 get { return (_hasBits4 & 32) != 0; }
8349 }
8351 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8352 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8353 public void ClearAddCliqueCuts() {
8354 _hasBits4 &= ~32;
8355 }
8356
8358 public const int AddRltCutsFieldNumber = 279;
8359 private readonly static bool AddRltCutsDefaultValue = true;
8360
8361 private bool addRltCuts_;
8363 /// Whether we generate RLT cuts. This is still experimental but can help on
8364 /// binary problem with a lot of clauses of size 3.
8365 /// </summary>
8366 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8367 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8368 public bool AddRltCuts {
8369 get { if ((_hasBits6 & 1073741824) != 0) { return addRltCuts_; } else { return AddRltCutsDefaultValue; } }
8370 set {
8371 _hasBits6 |= 1073741824;
8372 addRltCuts_ = value;
8373 }
8376 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8377 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8378 public bool HasAddRltCuts {
8379 get { return (_hasBits6 & 1073741824) != 0; }
8380 }
8382 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8383 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8384 public void ClearAddRltCuts() {
8385 _hasBits6 &= ~1073741824;
8386 }
8387
8389 public const int MaxAllDiffCutSizeFieldNumber = 148;
8390 private readonly static int MaxAllDiffCutSizeDefaultValue = 64;
8391
8392 private int maxAllDiffCutSize_;
8395 /// constraints. This parameter restricts the large all_diff constraints to
8396 /// have a cut generator.
8397 /// </summary>
8398 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8399 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8400 public int MaxAllDiffCutSize {
8401 get { if ((_hasBits3 & 65536) != 0) { return maxAllDiffCutSize_; } else { return MaxAllDiffCutSizeDefaultValue; } }
8402 set {
8403 _hasBits3 |= 65536;
8404 maxAllDiffCutSize_ = value;
8405 }
8408 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8409 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8410 public bool HasMaxAllDiffCutSize {
8411 get { return (_hasBits3 & 65536) != 0; }
8412 }
8414 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8415 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8417 _hasBits3 &= ~65536;
8418 }
8419
8421 public const int AddLinMaxCutsFieldNumber = 152;
8422 private readonly static bool AddLinMaxCutsDefaultValue = true;
8423
8424 private bool addLinMaxCuts_;
8426 /// For the lin max constraints, generates the cuts described in "Strong
8427 /// mixed-integer programming formulations for trained neural networks" by Ross
8428 /// Anderson et. (https://arxiv.org/pdf/1811.01988.pdf)
8429 /// </summary>
8430 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8431 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8432 public bool AddLinMaxCuts {
8433 get { if ((_hasBits3 & 524288) != 0) { return addLinMaxCuts_; } else { return AddLinMaxCutsDefaultValue; } }
8434 set {
8435 _hasBits3 |= 524288;
8436 addLinMaxCuts_ = value;
8438 }
8440 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8441 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8442 public bool HasAddLinMaxCuts {
8443 get { return (_hasBits3 & 524288) != 0; }
8444 }
8446 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8447 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8448 public void ClearAddLinMaxCuts() {
8449 _hasBits3 &= ~524288;
8450 }
8451
8453 public const int MaxIntegerRoundingScalingFieldNumber = 119;
8454 private readonly static int MaxIntegerRoundingScalingDefaultValue = 600;
8455
8456 private int maxIntegerRoundingScaling_;
8458 /// In the integer rounding procedure used for MIR and Gomory cut, the maximum
8459 /// "scaling" we use (must be positive). The lower this is, the lower the
8460 /// integer coefficients of the cut will be. Note that cut generated by lower
8461 /// values are not necessarily worse than cut generated by larger value. There
8462 /// is no strict dominance relationship.
8463 ///
8464 /// Setting this to 2 result in the "strong fractional rouding" of Letchford
8465 /// and Lodi.
8466 /// </summary>
8467 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8468 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8470 get { if ((_hasBits2 & 16777216) != 0) { return maxIntegerRoundingScaling_; } else { return MaxIntegerRoundingScalingDefaultValue; } }
8471 set {
8472 _hasBits2 |= 16777216;
8473 maxIntegerRoundingScaling_ = value;
8474 }
8475 }
8477 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8478 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8479 public bool HasMaxIntegerRoundingScaling {
8480 get { return (_hasBits2 & 16777216) != 0; }
8481 }
8483 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8484 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8485 public void ClearMaxIntegerRoundingScaling() {
8486 _hasBits2 &= ~16777216;
8487 }
8488
8491 private readonly static bool AddLpConstraintsLazilyDefaultValue = true;
8492
8493 private bool addLpConstraintsLazily_;
8496 /// by the current LP solution batch by batch. A constraint that is only added
8497 /// like this is known as a "lazy" constraint in the literature, except that we
8498 /// currently consider all constraints as lazy here.
8499 /// </summary>
8500 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8501 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8502 public bool AddLpConstraintsLazily {
8503 get { if ((_hasBits2 & 262144) != 0) { return addLpConstraintsLazily_; } else { return AddLpConstraintsLazilyDefaultValue; } }
8504 set {
8505 _hasBits2 |= 262144;
8506 addLpConstraintsLazily_ = value;
8507 }
8508 }
8510 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8511 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8512 public bool HasAddLpConstraintsLazily {
8513 get { return (_hasBits2 & 262144) != 0; }
8514 }
8516 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8517 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8519 _hasBits2 &= ~262144;
8520 }
8521
8523 public const int RootLpIterationsFieldNumber = 227;
8524 private readonly static int RootLpIterationsDefaultValue = 2000;
8525
8526 private int rootLpIterations_;
8528 /// Even at the root node, we do not want to spend too much time on the LP if
8529 /// it is "difficult". So we solve it in "chunks" of that many iterations. The
8530 /// solve will be continued down in the tree or the next time we go back to the
8531 /// root node.
8532 /// </summary>
8533 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8534 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8535 public int RootLpIterations {
8536 get { if ((_hasBits5 & 262144) != 0) { return rootLpIterations_; } else { return RootLpIterationsDefaultValue; } }
8537 set {
8538 _hasBits5 |= 262144;
8539 rootLpIterations_ = value;
8540 }
8541 }
8543 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8544 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8545 public bool HasRootLpIterations {
8546 get { return (_hasBits5 & 262144) != 0; }
8547 }
8549 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8550 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8552 _hasBits5 &= ~262144;
8553 }
8554
8556 public const int MinOrthogonalityForLpConstraintsFieldNumber = 115;
8557 private readonly static double MinOrthogonalityForLpConstraintsDefaultValue = 0.05D;
8558
8559 private double minOrthogonalityForLpConstraints_;
8561 /// While adding constraints, skip the constraints which have orthogonality
8562 /// less than 'min_orthogonality_for_lp_constraints' with already added
8563 /// constraints during current call. Orthogonality is defined as 1 -
8564 /// cosine(vector angle between constraints). A value of zero disable this
8565 /// feature.
8566 /// </summary>
8567 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8568 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8569 public double MinOrthogonalityForLpConstraints {
8570 get { if ((_hasBits2 & 2097152) != 0) { return minOrthogonalityForLpConstraints_; } else { return MinOrthogonalityForLpConstraintsDefaultValue; } }
8571 set {
8572 _hasBits2 |= 2097152;
8573 minOrthogonalityForLpConstraints_ = value;
8574 }
8575 }
8577 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8578 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8579 public bool HasMinOrthogonalityForLpConstraints {
8580 get { return (_hasBits2 & 2097152) != 0; }
8581 }
8583 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8584 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8586 _hasBits2 &= ~2097152;
8587 }
8588
8590 public const int MaxCutRoundsAtLevelZeroFieldNumber = 154;
8591 private readonly static int MaxCutRoundsAtLevelZeroDefaultValue = 1;
8592
8593 private int maxCutRoundsAtLevelZero_;
8594 /// <summary>
8595 /// Max number of time we perform cut generation and resolve the LP at level 0.
8596 /// </summary>
8597 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8598 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8599 public int MaxCutRoundsAtLevelZero {
8600 get { if ((_hasBits3 & 2097152) != 0) { return maxCutRoundsAtLevelZero_; } else { return MaxCutRoundsAtLevelZeroDefaultValue; } }
8601 set {
8602 _hasBits3 |= 2097152;
8603 maxCutRoundsAtLevelZero_ = value;
8604 }
8607 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8608 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8609 public bool HasMaxCutRoundsAtLevelZero {
8610 get { return (_hasBits3 & 2097152) != 0; }
8611 }
8613 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8614 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8615 public void ClearMaxCutRoundsAtLevelZero() {
8616 _hasBits3 &= ~2097152;
8617 }
8620 public const int MaxConsecutiveInactiveCountFieldNumber = 121;
8621 private readonly static int MaxConsecutiveInactiveCountDefaultValue = 100;
8622
8623 private int maxConsecutiveInactiveCount_;
8625
8628 /// </summary>
8629 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8630 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8631 public int MaxConsecutiveInactiveCount {
8632 get { if ((_hasBits2 & 67108864) != 0) { return maxConsecutiveInactiveCount_; } else { return MaxConsecutiveInactiveCountDefaultValue; } }
8633 set {
8634 _hasBits2 |= 67108864;
8635 maxConsecutiveInactiveCount_ = value;
8636 }
8637 }
8639 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8640 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8641 public bool HasMaxConsecutiveInactiveCount {
8642 get { return (_hasBits2 & 67108864) != 0; }
8643 }
8645 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8646 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8647 public void ClearMaxConsecutiveInactiveCount() {
8648 _hasBits2 &= ~67108864;
8649 }
8650
8652 public const int CutMaxActiveCountValueFieldNumber = 155;
8653 private readonly static double CutMaxActiveCountValueDefaultValue = 1e+10D;
8654
8655 private double cutMaxActiveCountValue_;
8658 /// They are effective only if the number of generated cuts exceed the storage
8659 /// limit. Default values are based on a few experiments on miplib instances.
8660 /// </summary>
8661 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8662 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8663 public double CutMaxActiveCountValue {
8664 get { if ((_hasBits3 & 4194304) != 0) { return cutMaxActiveCountValue_; } else { return CutMaxActiveCountValueDefaultValue; } }
8665 set {
8666 _hasBits3 |= 4194304;
8667 cutMaxActiveCountValue_ = value;
8668 }
8671 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8672 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8673 public bool HasCutMaxActiveCountValue {
8674 get { return (_hasBits3 & 4194304) != 0; }
8675 }
8677 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8678 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8679 public void ClearCutMaxActiveCountValue() {
8680 _hasBits3 &= ~4194304;
8681 }
8682
8684 public const int CutActiveCountDecayFieldNumber = 156;
8685 private readonly static double CutActiveCountDecayDefaultValue = 0.8D;
8686
8687 private double cutActiveCountDecay_;
8688 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8689 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8690 public double CutActiveCountDecay {
8691 get { if ((_hasBits3 & 8388608) != 0) { return cutActiveCountDecay_; } else { return CutActiveCountDecayDefaultValue; } }
8692 set {
8693 _hasBits3 |= 8388608;
8694 cutActiveCountDecay_ = value;
8695 }
8698 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8699 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8700 public bool HasCutActiveCountDecay {
8701 get { return (_hasBits3 & 8388608) != 0; }
8702 }
8704 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8705 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8706 public void ClearCutActiveCountDecay() {
8707 _hasBits3 &= ~8388608;
8708 }
8709
8711 public const int CutCleanupTargetFieldNumber = 157;
8712 private readonly static int CutCleanupTargetDefaultValue = 1000;
8713
8714 private int cutCleanupTarget_;
8718 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8719 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8720 public int CutCleanupTarget {
8721 get { if ((_hasBits3 & 16777216) != 0) { return cutCleanupTarget_; } else { return CutCleanupTargetDefaultValue; } }
8722 set {
8723 _hasBits3 |= 16777216;
8724 cutCleanupTarget_ = value;
8725 }
8726 }
8728 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8729 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8730 public bool HasCutCleanupTarget {
8731 get { return (_hasBits3 & 16777216) != 0; }
8732 }
8734 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8735 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8736 public void ClearCutCleanupTarget() {
8737 _hasBits3 &= ~16777216;
8738 }
8741 public const int NewConstraintsBatchSizeFieldNumber = 122;
8742 private readonly static int NewConstraintsBatchSizeDefaultValue = 50;
8743
8744 private int newConstraintsBatchSize_;
8746
8749 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8750 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8751 public int NewConstraintsBatchSize {
8752 get { if ((_hasBits2 & 134217728) != 0) { return newConstraintsBatchSize_; } else { return NewConstraintsBatchSizeDefaultValue; } }
8753 set {
8754 _hasBits2 |= 134217728;
8755 newConstraintsBatchSize_ = value;
8756 }
8757 }
8758
8759 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8760 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8761 public bool HasNewConstraintsBatchSize {
8762 get { return (_hasBits2 & 134217728) != 0; }
8763 }
8765 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8766 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8767 public void ClearNewConstraintsBatchSize() {
8768 _hasBits2 &= ~134217728;
8770
8772 public const int ExploitIntegerLpSolutionFieldNumber = 94;
8773 private readonly static bool ExploitIntegerLpSolutionDefaultValue = true;
8774
8775 private bool exploitIntegerLpSolution_;
8776
8779 /// contain all the constraints, such a solution is not necessarily a solution
8780 /// of the full problem.
8781 /// </summary>
8782 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8783 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8784 public bool ExploitIntegerLpSolution {
8785 get { if ((_hasBits2 & 32) != 0) { return exploitIntegerLpSolution_; } else { return ExploitIntegerLpSolutionDefaultValue; } }
8786 set {
8787 _hasBits2 |= 32;
8788 exploitIntegerLpSolution_ = value;
8789 }
8792 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8793 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8794 public bool HasExploitIntegerLpSolution {
8795 get { return (_hasBits2 & 32) != 0; }
8796 }
8798 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8799 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8801 _hasBits2 &= ~32;
8802 }
8803
8805 public const int ExploitAllLpSolutionFieldNumber = 116;
8806 private readonly static bool ExploitAllLpSolutionDefaultValue = true;
8807
8808 private bool exploitAllLpSolution_;
8810 /// If true and the Lp relaxation of the problem has a solution, try to exploit
8811 /// it. This is same as above except in this case the lp solution might not be
8812 /// an integer solution.
8813 /// </summary>
8814 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8815 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8817 get { if ((_hasBits2 & 4194304) != 0) { return exploitAllLpSolution_; } else { return ExploitAllLpSolutionDefaultValue; } }
8818 set {
8819 _hasBits2 |= 4194304;
8820 exploitAllLpSolution_ = value;
8822 }
8824 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8825 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8826 public bool HasExploitAllLpSolution {
8827 get { return (_hasBits2 & 4194304) != 0; }
8828 }
8830 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8831 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8832 public void ClearExploitAllLpSolution() {
8833 _hasBits2 &= ~4194304;
8834 }
8835
8837 public const int ExploitBestSolutionFieldNumber = 130;
8838 private readonly static bool ExploitBestSolutionDefaultValue = false;
8839
8840 private bool exploitBestSolution_;
8843 /// </summary>
8844 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8845 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8846 public bool ExploitBestSolution {
8847 get { if ((_hasBits3 & 8) != 0) { return exploitBestSolution_; } else { return ExploitBestSolutionDefaultValue; } }
8848 set {
8849 _hasBits3 |= 8;
8850 exploitBestSolution_ = value;
8851 }
8852 }
8854 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8855 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8856 public bool HasExploitBestSolution {
8857 get { return (_hasBits3 & 8) != 0; }
8858 }
8860 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8861 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8862 public void ClearExploitBestSolution() {
8863 _hasBits3 &= ~8;
8864 }
8867 public const int ExploitRelaxationSolutionFieldNumber = 161;
8868 private readonly static bool ExploitRelaxationSolutionDefaultValue = false;
8869
8870 private bool exploitRelaxationSolution_;
8872
8875 /// </summary>
8876 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8877 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8878 public bool ExploitRelaxationSolution {
8879 get { if ((_hasBits3 & 134217728) != 0) { return exploitRelaxationSolution_; } else { return ExploitRelaxationSolutionDefaultValue; } }
8880 set {
8881 _hasBits3 |= 134217728;
8882 exploitRelaxationSolution_ = value;
8883 }
8884 }
8886 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8887 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8888 public bool HasExploitRelaxationSolution {
8889 get { return (_hasBits3 & 134217728) != 0; }
8890 }
8892 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8893 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8894 public void ClearExploitRelaxationSolution() {
8895 _hasBits3 &= ~134217728;
8896 }
8897
8899 public const int ExploitObjectiveFieldNumber = 131;
8900 private readonly static bool ExploitObjectiveDefaultValue = true;
8901
8902 private bool exploitObjective_;
8905 /// branch on the value that lead to the best objective first.
8906 /// </summary>
8907 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8908 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8909 public bool ExploitObjective {
8910 get { if ((_hasBits3 & 16) != 0) { return exploitObjective_; } else { return ExploitObjectiveDefaultValue; } }
8911 set {
8912 _hasBits3 |= 16;
8913 exploitObjective_ = value;
8914 }
8915 }
8917 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8918 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8919 public bool HasExploitObjective {
8920 get { return (_hasBits3 & 16) != 0; }
8921 }
8923 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8924 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8925 public void ClearExploitObjective() {
8926 _hasBits3 &= ~16;
8928
8930 public const int DetectLinearizedProductFieldNumber = 277;
8931 private readonly static bool DetectLinearizedProductDefaultValue = false;
8932
8933 private bool detectLinearizedProduct_;
8934
8937 /// for now we don't really exploit it.
8938 /// </summary>
8939 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8940 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8941 public bool DetectLinearizedProduct {
8942 get { if ((_hasBits6 & 268435456) != 0) { return detectLinearizedProduct_; } else { return DetectLinearizedProductDefaultValue; } }
8943 set {
8944 _hasBits6 |= 268435456;
8945 detectLinearizedProduct_ = value;
8946 }
8947 }
8949 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8950 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8951 public bool HasDetectLinearizedProduct {
8952 get { return (_hasBits6 & 268435456) != 0; }
8953 }
8955 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8956 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8957 public void ClearDetectLinearizedProduct() {
8958 _hasBits6 &= ~268435456;
8959 }
8960
8962 public const int MipMaxBoundFieldNumber = 124;
8963 private readonly static double MipMaxBoundDefaultValue = 1e+07D;
8964
8965 private double mipMaxBound_;
8968 /// that is the bound we use. If the MIP model expect larger variable value in
8969 /// the solution, then the converted model will likely not be relevant.
8970 /// </summary>
8971 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8972 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8973 public double MipMaxBound {
8974 get { if ((_hasBits2 & 536870912) != 0) { return mipMaxBound_; } else { return MipMaxBoundDefaultValue; } }
8975 set {
8976 _hasBits2 |= 536870912;
8977 mipMaxBound_ = value;
8978 }
8981 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8982 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8983 public bool HasMipMaxBound {
8984 get { return (_hasBits2 & 536870912) != 0; }
8985 }
8987 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8988 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8989 public void ClearMipMaxBound() {
8990 _hasBits2 &= ~536870912;
8991 }
8992
8994 public const int MipVarScalingFieldNumber = 125;
8995 private readonly static double MipVarScalingDefaultValue = 1D;
8996
8997 private double mipVarScaling_;
9000 /// By default, we don't do any variable scaling and rely on the MIP model to
9001 /// specify continuous variable domain with the wanted precision.
9002 /// </summary>
9003 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9004 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9005 public double MipVarScaling {
9006 get { if ((_hasBits2 & 1073741824) != 0) { return mipVarScaling_; } else { return MipVarScalingDefaultValue; } }
9007 set {
9008 _hasBits2 |= 1073741824;
9009 mipVarScaling_ = value;
9010 }
9013 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9014 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9015 public bool HasMipVarScaling {
9016 get { return (_hasBits2 & 1073741824) != 0; }
9017 }
9019 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9020 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9021 public void ClearMipVarScaling() {
9022 _hasBits2 &= ~1073741824;
9023 }
9024
9026 public const int MipScaleLargeDomainFieldNumber = 225;
9027 private readonly static bool MipScaleLargeDomainDefaultValue = false;
9028
9029 private bool mipScaleLargeDomain_;
9032 /// "small" domain. If it is true, we scale all floating point variable
9033 /// independenlty of their domain.
9034 /// </summary>
9035 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9036 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9037 public bool MipScaleLargeDomain {
9038 get { if ((_hasBits5 & 65536) != 0) { return mipScaleLargeDomain_; } else { return MipScaleLargeDomainDefaultValue; } }
9039 set {
9040 _hasBits5 |= 65536;
9041 mipScaleLargeDomain_ = value;
9042 }
9045 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9046 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9047 public bool HasMipScaleLargeDomain {
9048 get { return (_hasBits5 & 65536) != 0; }
9049 }
9051 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9052 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9053 public void ClearMipScaleLargeDomain() {
9054 _hasBits5 &= ~65536;
9055 }
9056
9058 public const int MipAutomaticallyScaleVariablesFieldNumber = 166;
9059 private readonly static bool MipAutomaticallyScaleVariablesDefaultValue = true;
9060
9061 private bool mipAutomaticallyScaleVariables_;
9064 /// this is only the case where we detect that a variable is actually an
9065 /// integer multiple of a constant. For instance, variables of the form k * 0.5
9066 /// are quite frequent, and if we detect this, we will scale such variable
9067 /// domain by 2 to make it implied integer.
9068 /// </summary>
9069 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9070 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9071 public bool MipAutomaticallyScaleVariables {
9072 get { if ((_hasBits4 & 1) != 0) { return mipAutomaticallyScaleVariables_; } else { return MipAutomaticallyScaleVariablesDefaultValue; } }
9073 set {
9074 _hasBits4 |= 1;
9075 mipAutomaticallyScaleVariables_ = value;
9076 }
9077 }
9079 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9080 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9081 public bool HasMipAutomaticallyScaleVariables {
9082 get { return (_hasBits4 & 1) != 0; }
9083 }
9085 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9086 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9088 _hasBits4 &= ~1;
9089 }
9090
9092 public const int OnlySolveIpFieldNumber = 222;
9093 private readonly static bool OnlySolveIpDefaultValue = false;
9094
9095 private bool onlySolveIp_;
9096 /// <summary>
9097 /// If one try to solve a MIP model with CP-SAT, because we assume all variable
9098 /// to be integer after scaling, we will not necessarily have the correct
9099 /// optimal. Note however that all feasible solutions are valid since we will
9100 /// just solve a more restricted version of the original problem.
9101 ///
9102 /// This parameters is here to prevent user to think the solution is optimal
9103 /// when it might not be. One will need to manually set this to false to solve
9104 /// a MIP model where the optimal might be different.
9105 ///
9106 /// Note that this is tested after some MIP presolve steps, so even if not
9107 /// all original variable are integer, we might end up with a pure IP after
9108 /// presolve and after implied integer detection.
9109 /// </summary>
9110 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9111 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9112 public bool OnlySolveIp {
9113 get { if ((_hasBits5 & 8192) != 0) { return onlySolveIp_; } else { return OnlySolveIpDefaultValue; } }
9114 set {
9115 _hasBits5 |= 8192;
9116 onlySolveIp_ = value;
9117 }
9118 }
9120 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9121 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9122 public bool HasOnlySolveIp {
9123 get { return (_hasBits5 & 8192) != 0; }
9124 }
9126 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9127 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9128 public void ClearOnlySolveIp() {
9129 _hasBits5 &= ~8192;
9131
9133 public const int MipWantedPrecisionFieldNumber = 126;
9134 private readonly static double MipWantedPrecisionDefaultValue = 1e-06D;
9135
9136 private double mipWantedPrecision_;
9139
9156 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9157 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9158 public double MipWantedPrecision {
9159 get { if ((_hasBits2 & -2147483648) != 0) { return mipWantedPrecision_; } else { return MipWantedPrecisionDefaultValue; } }
9160 set {
9161 _hasBits2 |= -2147483648;
9162 mipWantedPrecision_ = value;
9164 }
9166 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9167 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9168 public bool HasMipWantedPrecision {
9169 get { return (_hasBits2 & -2147483648) != 0; }
9170 }
9172 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9173 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9174 public void ClearMipWantedPrecision() {
9175 _hasBits2 &= ~-2147483648;
9176 }
9177
9180 private readonly static int MipMaxActivityExponentDefaultValue = 53;
9181
9182 private int mipMaxActivityExponent_;
9193 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9194 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9195 public int MipMaxActivityExponent {
9196 get { if ((_hasBits3 & 1) != 0) { return mipMaxActivityExponent_; } else { return MipMaxActivityExponentDefaultValue; } }
9197 set {
9198 _hasBits3 |= 1;
9199 mipMaxActivityExponent_ = value;
9200 }
9201 }
9203 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9204 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9205 public bool HasMipMaxActivityExponent {
9206 get { return (_hasBits3 & 1) != 0; }
9207 }
9209 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9210 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9211 public void ClearMipMaxActivityExponent() {
9212 _hasBits3 &= ~1;
9213 }
9214
9216 public const int MipCheckPrecisionFieldNumber = 128;
9217 private readonly static double MipCheckPrecisionDefaultValue = 0.0001D;
9218
9219 private double mipCheckPrecision_;
9222 /// always reach the wanted precision during scaling. We use this threshold to
9223 /// enphasize in the logs when the precision seems bad.
9224 /// </summary>
9225 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9226 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9227 public double MipCheckPrecision {
9228 get { if ((_hasBits3 & 2) != 0) { return mipCheckPrecision_; } else { return MipCheckPrecisionDefaultValue; } }
9229 set {
9230 _hasBits3 |= 2;
9231 mipCheckPrecision_ = value;
9232 }
9235 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9236 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9237 public bool HasMipCheckPrecision {
9238 get { return (_hasBits3 & 2) != 0; }
9239 }
9241 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9242 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9243 public void ClearMipCheckPrecision() {
9244 _hasBits3 &= ~2;
9245 }
9246
9248 public const int MipComputeTrueObjectiveBoundFieldNumber = 198;
9249 private readonly static bool MipComputeTrueObjectiveBoundDefaultValue = true;
9251 private bool mipComputeTrueObjectiveBound_;
9257
9259 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9260 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9261 public bool MipComputeTrueObjectiveBound {
9262 get { if ((_hasBits4 & 536870912) != 0) { return mipComputeTrueObjectiveBound_; } else { return MipComputeTrueObjectiveBoundDefaultValue; } }
9263 set {
9264 _hasBits4 |= 536870912;
9265 mipComputeTrueObjectiveBound_ = value;
9267 }
9269 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9270 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9272 get { return (_hasBits4 & 536870912) != 0; }
9273 }
9275 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9276 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9277 public void ClearMipComputeTrueObjectiveBound() {
9278 _hasBits4 &= ~536870912;
9279 }
9280
9282 public const int MipMaxValidMagnitudeFieldNumber = 199;
9283 private readonly static double MipMaxValidMagnitudeDefaultValue = 1e+20D;
9284
9285 private double mipMaxValidMagnitude_;
9289
9292 /// </summary>
9293 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9294 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9295 public double MipMaxValidMagnitude {
9296 get { if ((_hasBits4 & 1073741824) != 0) { return mipMaxValidMagnitude_; } else { return MipMaxValidMagnitudeDefaultValue; } }
9297 set {
9298 _hasBits4 |= 1073741824;
9299 mipMaxValidMagnitude_ = value;
9300 }
9301 }
9303 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9304 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9305 public bool HasMipMaxValidMagnitude {
9306 get { return (_hasBits4 & 1073741824) != 0; }
9307 }
9309 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9310 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9311 public void ClearMipMaxValidMagnitude() {
9312 _hasBits4 &= ~1073741824;
9313 }
9314
9317 private readonly static bool MipTreatHighMagnitudeBoundsAsInfinityDefaultValue = false;
9318
9319 private bool mipTreatHighMagnitudeBoundsAsInfinity_;
9323
9326 /// It is recommended to keep it at false, and create valid bounds.
9327 /// </summary>
9328 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9329 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9331 get { if ((_hasBits6 & 536870912) != 0) { return mipTreatHighMagnitudeBoundsAsInfinity_; } else { return MipTreatHighMagnitudeBoundsAsInfinityDefaultValue; } }
9332 set {
9333 _hasBits6 |= 536870912;
9334 mipTreatHighMagnitudeBoundsAsInfinity_ = value;
9335 }
9336 }
9338 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9339 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9341 get { return (_hasBits6 & 536870912) != 0; }
9342 }
9344 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9345 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9346 public void ClearMipTreatHighMagnitudeBoundsAsInfinity() {
9347 _hasBits6 &= ~536870912;
9348 }
9349
9350 /// <summary>Field number for the "mip_drop_tolerance" field.</summary>
9351 public const int MipDropToleranceFieldNumber = 232;
9352 private readonly static double MipDropToleranceDefaultValue = 1e-16D;
9353
9354 private double mipDropTolerance_;
9357
9359 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9360 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9361 public double MipDropTolerance {
9362 get { if ((_hasBits5 & 4194304) != 0) { return mipDropTolerance_; } else { return MipDropToleranceDefaultValue; } }
9363 set {
9364 _hasBits5 |= 4194304;
9365 mipDropTolerance_ = value;
9367 }
9369 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9370 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9372 get { return (_hasBits5 & 4194304) != 0; }
9373 }
9375 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9376 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9377 public void ClearMipDropTolerance() {
9378 _hasBits5 &= ~4194304;
9379 }
9380
9382 public const int MipPresolveLevelFieldNumber = 261;
9383 private readonly static int MipPresolveLevelDefaultValue = 2;
9384
9385 private int mipPresolveLevel_;
9386 /// <summary>
9387 /// When solving a MIP, we do some basic floating point presolving before
9388 /// scaling the problem to integer to be handled by CP-SAT. This control how
9389 /// much of that presolve we do. It can help to better scale floating point
9390 /// model, but it is not always behaving nicely.
9391 /// </summary>
9392 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9393 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9394 public int MipPresolveLevel {
9395 get { if ((_hasBits6 & 4096) != 0) { return mipPresolveLevel_; } else { return MipPresolveLevelDefaultValue; } }
9396 set {
9397 _hasBits6 |= 4096;
9398 mipPresolveLevel_ = value;
9399 }
9400 }
9402 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9403 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9404 public bool HasMipPresolveLevel {
9405 get { return (_hasBits6 & 4096) != 0; }
9406 }
9408 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9409 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9410 public void ClearMipPresolveLevel() {
9411 _hasBits6 &= ~4096;
9412 }
9413
9414 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9415 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9416 public override bool Equals(object other) {
9417 return Equals(other as SatParameters);
9418 }
9419
9420 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9421 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9422 public bool Equals(SatParameters other) {
9423 if (ReferenceEquals(other, null)) {
9424 return false;
9425 }
9426 if (ReferenceEquals(other, this)) {
9427 return true;
9428 }
9429 if (Name != other.Name) return false;
9430 if (PreferredVariableOrder != other.PreferredVariableOrder) return false;
9431 if (InitialPolarity != other.InitialPolarity) return false;
9432 if (UsePhaseSaving != other.UsePhaseSaving) return false;
9434 if (PolarityExploitLsHints != other.PolarityExploitLsHints) return false;
9435 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RandomPolarityRatio, other.RandomPolarityRatio)) return false;
9436 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RandomBranchesRatio, other.RandomBranchesRatio)) return false;
9437 if (UseErwaHeuristic != other.UseErwaHeuristic) return false;
9438 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InitialVariablesActivity, other.InitialVariablesActivity)) return false;
9440 if (MinimizationAlgorithm != other.MinimizationAlgorithm) return false;
9443 if (ClauseCleanupPeriod != other.ClauseCleanupPeriod) return false;
9444 if (ClauseCleanupTarget != other.ClauseCleanupTarget) return false;
9445 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ClauseCleanupRatio, other.ClauseCleanupRatio)) return false;
9446 if (ClauseCleanupProtection != other.ClauseCleanupProtection) return false;
9447 if (ClauseCleanupLbdBound != other.ClauseCleanupLbdBound) return false;
9448 if (ClauseCleanupOrdering != other.ClauseCleanupOrdering) return false;
9449 if (PbCleanupIncrement != other.PbCleanupIncrement) return false;
9450 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(PbCleanupRatio, other.PbCleanupRatio)) return false;
9451 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(VariableActivityDecay, other.VariableActivityDecay)) return false;
9452 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MaxVariableActivityValue, other.MaxVariableActivityValue)) return false;
9453 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(GlucoseMaxDecay, other.GlucoseMaxDecay)) return false;
9454 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(GlucoseDecayIncrement, other.GlucoseDecayIncrement)) return false;
9456 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ClauseActivityDecay, other.ClauseActivityDecay)) return false;
9457 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MaxClauseActivityValue, other.MaxClauseActivityValue)) return false;
9458 if(!restartAlgorithms_.Equals(other.restartAlgorithms_)) return false;
9459 if (DefaultRestartAlgorithms != other.DefaultRestartAlgorithms) return false;
9460 if (RestartPeriod != other.RestartPeriod) return false;
9461 if (RestartRunningWindowSize != other.RestartRunningWindowSize) return false;
9462 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RestartDlAverageRatio, other.RestartDlAverageRatio)) return false;
9463 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RestartLbdAverageRatio, other.RestartLbdAverageRatio)) return false;
9464 if (UseBlockingRestart != other.UseBlockingRestart) return false;
9465 if (BlockingRestartWindowSize != other.BlockingRestartWindowSize) return false;
9466 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(BlockingRestartMultiplier, other.BlockingRestartMultiplier)) return false;
9468 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(StrategyChangeIncreaseRatio, other.StrategyChangeIncreaseRatio)) return false;
9469 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MaxTimeInSeconds, other.MaxTimeInSeconds)) return false;
9470 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MaxDeterministicTime, other.MaxDeterministicTime)) return false;
9471 if (MaxNumDeterministicBatches != other.MaxNumDeterministicBatches) return false;
9472 if (MaxNumberOfConflicts != other.MaxNumberOfConflicts) return false;
9473 if (MaxMemoryInMb != other.MaxMemoryInMb) return false;
9474 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(AbsoluteGapLimit, other.AbsoluteGapLimit)) return false;
9475 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RelativeGapLimit, other.RelativeGapLimit)) return false;
9476 if (RandomSeed != other.RandomSeed) return false;
9477 if (PermuteVariableRandomly != other.PermuteVariableRandomly) return false;
9479 if (UseAbslRandom != other.UseAbslRandom) return false;
9480 if (LogSearchProgress != other.LogSearchProgress) return false;
9481 if (LogSubsolverStatistics != other.LogSubsolverStatistics) return false;
9482 if (LogPrefix != other.LogPrefix) return false;
9483 if (LogToStdout != other.LogToStdout) return false;
9484 if (LogToResponse != other.LogToResponse) return false;
9485 if (UsePbResolution != other.UsePbResolution) return false;
9487 if (CountAssumptionLevelsInLbd != other.CountAssumptionLevelsInLbd) return false;
9488 if (PresolveBveThreshold != other.PresolveBveThreshold) return false;
9489 if (FilterSatPostsolveClauses != other.FilterSatPostsolveClauses) return false;
9490 if (PresolveBveClauseWeight != other.PresolveBveClauseWeight) return false;
9491 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ProbingDeterministicTimeLimit, other.ProbingDeterministicTimeLimit)) return false;
9492 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(PresolveProbingDeterministicTimeLimit, other.PresolveProbingDeterministicTimeLimit)) return false;
9493 if (PresolveBlockedClause != other.PresolveBlockedClause) return false;
9494 if (PresolveUseBva != other.PresolveUseBva) return false;
9495 if (PresolveBvaThreshold != other.PresolveBvaThreshold) return false;
9496 if (MaxPresolveIterations != other.MaxPresolveIterations) return false;
9497 if (CpModelPresolve != other.CpModelPresolve) return false;
9498 if (CpModelProbingLevel != other.CpModelProbingLevel) return false;
9499 if (CpModelUseSatPresolve != other.CpModelUseSatPresolve) return false;
9500 if (RemoveFixedVariablesEarly != other.RemoveFixedVariablesEarly) return false;
9501 if (DetectTableWithCost != other.DetectTableWithCost) return false;
9502 if (TableCompressionLevel != other.TableCompressionLevel) return false;
9503 if (ExpandAlldiffConstraints != other.ExpandAlldiffConstraints) return false;
9504 if (MaxAlldiffDomainSize != other.MaxAlldiffDomainSize) return false;
9505 if (ExpandReservoirConstraints != other.ExpandReservoirConstraints) return false;
9508 if (MaxLinMaxSizeForExpansion != other.MaxLinMaxSizeForExpansion) return false;
9509 if (DisableConstraintExpansion != other.DisableConstraintExpansion) return false;
9511 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MergeNoOverlapWorkLimit, other.MergeNoOverlapWorkLimit)) return false;
9512 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MergeAtMostOneWorkLimit, other.MergeAtMostOneWorkLimit)) return false;
9513 if (PresolveSubstitutionLevel != other.PresolveSubstitutionLevel) return false;
9515 if (PresolveInclusionWorkLimit != other.PresolveInclusionWorkLimit) return false;
9516 if (IgnoreNames != other.IgnoreNames) return false;
9517 if (InferAllDiffs != other.InferAllDiffs) return false;
9518 if (FindBigLinearOverlap != other.FindBigLinearOverlap) return false;
9519 if (UseSatInprocessing != other.UseSatInprocessing) return false;
9520 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InprocessingDtimeRatio, other.InprocessingDtimeRatio)) return false;
9521 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InprocessingProbingDtime, other.InprocessingProbingDtime)) return false;
9522 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InprocessingMinimizationDtime, other.InprocessingMinimizationDtime)) return false;
9525 if (NumWorkers != other.NumWorkers) return false;
9526 if (NumSearchWorkers != other.NumSearchWorkers) return false;
9527 if (NumFullSubsolvers != other.NumFullSubsolvers) return false;
9528 if(!subsolvers_.Equals(other.subsolvers_)) return false;
9529 if(!extraSubsolvers_.Equals(other.extraSubsolvers_)) return false;
9530 if(!ignoreSubsolvers_.Equals(other.ignoreSubsolvers_)) return false;
9531 if(!filterSubsolvers_.Equals(other.filterSubsolvers_)) return false;
9532 if(!subsolverParams_.Equals(other.subsolverParams_)) return false;
9533 if (InterleaveSearch != other.InterleaveSearch) return false;
9534 if (InterleaveBatchSize != other.InterleaveBatchSize) return false;
9535 if (ShareObjectiveBounds != other.ShareObjectiveBounds) return false;
9536 if (ShareLevelZeroBounds != other.ShareLevelZeroBounds) return false;
9537 if (ShareBinaryClauses != other.ShareBinaryClauses) return false;
9538 if (ShareGlueClauses != other.ShareGlueClauses) return false;
9539 if (MinimizeSharedClauses != other.MinimizeSharedClauses) return false;
9540 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ShareGlueClausesDtime, other.ShareGlueClausesDtime)) return false;
9543 if (DebugCrashOnBadHint != other.DebugCrashOnBadHint) return false;
9545 if (UseOptimizationHints != other.UseOptimizationHints) return false;
9546 if (CoreMinimizationLevel != other.CoreMinimizationLevel) return false;
9547 if (FindMultipleCores != other.FindMultipleCores) return false;
9548 if (CoverOptimization != other.CoverOptimization) return false;
9549 if (MaxSatAssumptionOrder != other.MaxSatAssumptionOrder) return false;
9551 if (MaxSatStratification != other.MaxSatStratification) return false;
9552 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(PropagationLoopDetectionFactor, other.PropagationLoopDetectionFactor)) return false;
9563 if (ExploitAllPrecedences != other.ExploitAllPrecedences) return false;
9574 if (UseAllDifferentForCircuit != other.UseAllDifferentForCircuit) return false;
9579 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RoutingCutDpEffort, other.RoutingCutDpEffort)) return false;
9581 if (SearchBranching != other.SearchBranching) return false;
9582 if (HintConflictLimit != other.HintConflictLimit) return false;
9583 if (RepairHint != other.RepairHint) return false;
9585 if (UseProbingSearch != other.UseProbingSearch) return false;
9586 if (UseExtendedProbing != other.UseExtendedProbing) return false;
9588 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ShavingDeterministicTimeInProbingSearch, other.ShavingDeterministicTimeInProbingSearch)) return false;
9589 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ShavingSearchDeterministicTime, other.ShavingSearchDeterministicTime)) return false;
9590 if (ShavingSearchThreshold != other.ShavingSearchThreshold) return false;
9591 if (UseObjectiveLbSearch != other.UseObjectiveLbSearch) return false;
9592 if (UseObjectiveShavingSearch != other.UseObjectiveShavingSearch) return false;
9593 if (VariablesShavingLevel != other.VariablesShavingLevel) return false;
9595 if (OptimizeWithCore != other.OptimizeWithCore) return false;
9596 if (OptimizeWithLbTreeSearch != other.OptimizeWithLbTreeSearch) return false;
9597 if (SaveLpBasisInLbTreeSearch != other.SaveLpBasisInLbTreeSearch) return false;
9598 if (BinarySearchNumConflicts != other.BinarySearchNumConflicts) return false;
9599 if (OptimizeWithMaxHs != other.OptimizeWithMaxHs) return false;
9600 if (UseFeasibilityJump != other.UseFeasibilityJump) return false;
9601 if (UseLsOnly != other.UseLsOnly) return false;
9602 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(FeasibilityJumpDecay, other.FeasibilityJumpDecay)) return false;
9605 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(FeasibilityJumpBatchDtime, other.FeasibilityJumpBatchDtime)) return false;
9606 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(FeasibilityJumpVarRandomizationProbability, other.FeasibilityJumpVarRandomizationProbability)) return false;
9607 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(FeasibilityJumpVarPerburbationRangeRatio, other.FeasibilityJumpVarPerburbationRangeRatio)) return false;
9610 if (NumViolationLs != other.NumViolationLs) return false;
9612 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ViolationLsCompoundMoveProbability, other.ViolationLsCompoundMoveProbability)) return false;
9613 if (SharedTreeNumWorkers != other.SharedTreeNumWorkers) return false;
9614 if (UseSharedTreeSearch != other.UseSharedTreeSearch) return false;
9618 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SharedTreeOpenLeavesPerWorker, other.SharedTreeOpenLeavesPerWorker)) return false;
9620 if (SharedTreeSplitStrategy != other.SharedTreeSplitStrategy) return false;
9621 if (SharedTreeBalanceTolerance != other.SharedTreeBalanceTolerance) return false;
9622 if (EnumerateAllSolutions != other.EnumerateAllSolutions) return false;
9626 if (InstantiateAllVariables != other.InstantiateAllVariables) return false;
9628 if (StopAfterFirstSolution != other.StopAfterFirstSolution) return false;
9629 if (StopAfterPresolve != other.StopAfterPresolve) return false;
9630 if (StopAfterRootPropagation != other.StopAfterRootPropagation) return false;
9631 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LnsInitialDifficulty, other.LnsInitialDifficulty)) return false;
9632 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LnsInitialDeterministicLimit, other.LnsInitialDeterministicLimit)) return false;
9633 if (UseLns != other.UseLns) return false;
9634 if (UseLnsOnly != other.UseLnsOnly) return false;
9635 if (SolutionPoolSize != other.SolutionPoolSize) return false;
9636 if (UseRinsLns != other.UseRinsLns) return false;
9637 if (UseFeasibilityPump != other.UseFeasibilityPump) return false;
9638 if (UseLbRelaxLns != other.UseLbRelaxLns) return false;
9639 if (LbRelaxNumWorkersThreshold != other.LbRelaxNumWorkersThreshold) return false;
9640 if (FpRounding != other.FpRounding) return false;
9641 if (DiversifyLnsParams != other.DiversifyLnsParams) return false;
9642 if (RandomizeSearch != other.RandomizeSearch) return false;
9644 if (PushAllTasksTowardStart != other.PushAllTasksTowardStart) return false;
9645 if (UseOptionalVariables != other.UseOptionalVariables) return false;
9646 if (UseExactLpReason != other.UseExactLpReason) return false;
9647 if (UseCombinedNoOverlap != other.UseCombinedNoOverlap) return false;
9648 if (AtMostOneMaxExpansionSize != other.AtMostOneMaxExpansionSize) return false;
9649 if (CatchSigintSignal != other.CatchSigintSignal) return false;
9650 if (UseImpliedBounds != other.UseImpliedBounds) return false;
9651 if (PolishLpSolution != other.PolishLpSolution) return false;
9652 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LpPrimalTolerance, other.LpPrimalTolerance)) return false;
9653 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LpDualTolerance, other.LpDualTolerance)) return false;
9654 if (ConvertIntervals != other.ConvertIntervals) return false;
9655 if (SymmetryLevel != other.SymmetryLevel) return false;
9656 if (UseSymmetryInLp != other.UseSymmetryInLp) return false;
9657 if (KeepSymmetryInPresolve != other.KeepSymmetryInPresolve) return false;
9658 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SymmetryDetectionDeterministicTimeLimit, other.SymmetryDetectionDeterministicTimeLimit)) return false;
9659 if (NewLinearPropagation != other.NewLinearPropagation) return false;
9660 if (LinearSplitSize != other.LinearSplitSize) return false;
9661 if (LinearizationLevel != other.LinearizationLevel) return false;
9662 if (BooleanEncodingLevel != other.BooleanEncodingLevel) return false;
9664 if (MaxNumCuts != other.MaxNumCuts) return false;
9665 if (CutLevel != other.CutLevel) return false;
9666 if (OnlyAddCutsAtLevelZero != other.OnlyAddCutsAtLevelZero) return false;
9667 if (AddObjectiveCut != other.AddObjectiveCut) return false;
9668 if (AddCgCuts != other.AddCgCuts) return false;
9669 if (AddMirCuts != other.AddMirCuts) return false;
9670 if (AddZeroHalfCuts != other.AddZeroHalfCuts) return false;
9671 if (AddCliqueCuts != other.AddCliqueCuts) return false;
9672 if (AddRltCuts != other.AddRltCuts) return false;
9673 if (MaxAllDiffCutSize != other.MaxAllDiffCutSize) return false;
9674 if (AddLinMaxCuts != other.AddLinMaxCuts) return false;
9675 if (MaxIntegerRoundingScaling != other.MaxIntegerRoundingScaling) return false;
9676 if (AddLpConstraintsLazily != other.AddLpConstraintsLazily) return false;
9677 if (RootLpIterations != other.RootLpIterations) return false;
9678 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MinOrthogonalityForLpConstraints, other.MinOrthogonalityForLpConstraints)) return false;
9679 if (MaxCutRoundsAtLevelZero != other.MaxCutRoundsAtLevelZero) return false;
9681 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CutMaxActiveCountValue, other.CutMaxActiveCountValue)) return false;
9682 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CutActiveCountDecay, other.CutActiveCountDecay)) return false;
9683 if (CutCleanupTarget != other.CutCleanupTarget) return false;
9684 if (NewConstraintsBatchSize != other.NewConstraintsBatchSize) return false;
9685 if (ExploitIntegerLpSolution != other.ExploitIntegerLpSolution) return false;
9686 if (ExploitAllLpSolution != other.ExploitAllLpSolution) return false;
9687 if (ExploitBestSolution != other.ExploitBestSolution) return false;
9688 if (ExploitRelaxationSolution != other.ExploitRelaxationSolution) return false;
9689 if (ExploitObjective != other.ExploitObjective) return false;
9690 if (DetectLinearizedProduct != other.DetectLinearizedProduct) return false;
9691 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipMaxBound, other.MipMaxBound)) return false;
9692 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipVarScaling, other.MipVarScaling)) return false;
9693 if (MipScaleLargeDomain != other.MipScaleLargeDomain) return false;
9695 if (OnlySolveIp != other.OnlySolveIp) return false;
9696 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipWantedPrecision, other.MipWantedPrecision)) return false;
9697 if (MipMaxActivityExponent != other.MipMaxActivityExponent) return false;
9698 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipCheckPrecision, other.MipCheckPrecision)) return false;
9700 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipMaxValidMagnitude, other.MipMaxValidMagnitude)) return false;
9702 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipDropTolerance, other.MipDropTolerance)) return false;
9703 if (MipPresolveLevel != other.MipPresolveLevel) return false;
9704 return Equals(_unknownFields, other._unknownFields);
9705 }
9706
9707 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9708 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9709 public override int GetHashCode() {
9710 int hash = 1;
9711 if (HasName) hash ^= Name.GetHashCode();
9712 if (HasPreferredVariableOrder) hash ^= PreferredVariableOrder.GetHashCode();
9713 if (HasInitialPolarity) hash ^= InitialPolarity.GetHashCode();
9714 if (HasUsePhaseSaving) hash ^= UsePhaseSaving.GetHashCode();
9715 if (HasPolarityRephaseIncrement) hash ^= PolarityRephaseIncrement.GetHashCode();
9716 if (HasPolarityExploitLsHints) hash ^= PolarityExploitLsHints.GetHashCode();
9717 if (HasRandomPolarityRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RandomPolarityRatio);
9718 if (HasRandomBranchesRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RandomBranchesRatio);
9719 if (HasUseErwaHeuristic) hash ^= UseErwaHeuristic.GetHashCode();
9720 if (HasInitialVariablesActivity) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InitialVariablesActivity);
9721 if (HasAlsoBumpVariablesInConflictReasons) hash ^= AlsoBumpVariablesInConflictReasons.GetHashCode();
9722 if (HasMinimizationAlgorithm) hash ^= MinimizationAlgorithm.GetHashCode();
9723 if (HasBinaryMinimizationAlgorithm) hash ^= BinaryMinimizationAlgorithm.GetHashCode();
9724 if (HasSubsumptionDuringConflictAnalysis) hash ^= SubsumptionDuringConflictAnalysis.GetHashCode();
9725 if (HasClauseCleanupPeriod) hash ^= ClauseCleanupPeriod.GetHashCode();
9726 if (HasClauseCleanupTarget) hash ^= ClauseCleanupTarget.GetHashCode();
9727 if (HasClauseCleanupRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ClauseCleanupRatio);
9728 if (HasClauseCleanupProtection) hash ^= ClauseCleanupProtection.GetHashCode();
9729 if (HasClauseCleanupLbdBound) hash ^= ClauseCleanupLbdBound.GetHashCode();
9730 if (HasClauseCleanupOrdering) hash ^= ClauseCleanupOrdering.GetHashCode();
9731 if (HasPbCleanupIncrement) hash ^= PbCleanupIncrement.GetHashCode();
9732 if (HasPbCleanupRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(PbCleanupRatio);
9733 if (HasVariableActivityDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(VariableActivityDecay);
9734 if (HasMaxVariableActivityValue) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MaxVariableActivityValue);
9735 if (HasGlucoseMaxDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(GlucoseMaxDecay);
9736 if (HasGlucoseDecayIncrement) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(GlucoseDecayIncrement);
9737 if (HasGlucoseDecayIncrementPeriod) hash ^= GlucoseDecayIncrementPeriod.GetHashCode();
9738 if (HasClauseActivityDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ClauseActivityDecay);
9739 if (HasMaxClauseActivityValue) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MaxClauseActivityValue);
9740 hash ^= restartAlgorithms_.GetHashCode();
9741 if (HasDefaultRestartAlgorithms) hash ^= DefaultRestartAlgorithms.GetHashCode();
9742 if (HasRestartPeriod) hash ^= RestartPeriod.GetHashCode();
9743 if (HasRestartRunningWindowSize) hash ^= RestartRunningWindowSize.GetHashCode();
9744 if (HasRestartDlAverageRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RestartDlAverageRatio);
9745 if (HasRestartLbdAverageRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RestartLbdAverageRatio);
9746 if (HasUseBlockingRestart) hash ^= UseBlockingRestart.GetHashCode();
9747 if (HasBlockingRestartWindowSize) hash ^= BlockingRestartWindowSize.GetHashCode();
9748 if (HasBlockingRestartMultiplier) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(BlockingRestartMultiplier);
9749 if (HasNumConflictsBeforeStrategyChanges) hash ^= NumConflictsBeforeStrategyChanges.GetHashCode();
9750 if (HasStrategyChangeIncreaseRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(StrategyChangeIncreaseRatio);
9751 if (HasMaxTimeInSeconds) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MaxTimeInSeconds);
9752 if (HasMaxDeterministicTime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MaxDeterministicTime);
9753 if (HasMaxNumDeterministicBatches) hash ^= MaxNumDeterministicBatches.GetHashCode();
9754 if (HasMaxNumberOfConflicts) hash ^= MaxNumberOfConflicts.GetHashCode();
9755 if (HasMaxMemoryInMb) hash ^= MaxMemoryInMb.GetHashCode();
9756 if (HasAbsoluteGapLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(AbsoluteGapLimit);
9757 if (HasRelativeGapLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RelativeGapLimit);
9758 if (HasRandomSeed) hash ^= RandomSeed.GetHashCode();
9759 if (HasPermuteVariableRandomly) hash ^= PermuteVariableRandomly.GetHashCode();
9760 if (HasPermutePresolveConstraintOrder) hash ^= PermutePresolveConstraintOrder.GetHashCode();
9761 if (HasUseAbslRandom) hash ^= UseAbslRandom.GetHashCode();
9762 if (HasLogSearchProgress) hash ^= LogSearchProgress.GetHashCode();
9763 if (HasLogSubsolverStatistics) hash ^= LogSubsolverStatistics.GetHashCode();
9764 if (HasLogPrefix) hash ^= LogPrefix.GetHashCode();
9765 if (HasLogToStdout) hash ^= LogToStdout.GetHashCode();
9766 if (HasLogToResponse) hash ^= LogToResponse.GetHashCode();
9767 if (HasUsePbResolution) hash ^= UsePbResolution.GetHashCode();
9770 if (HasPresolveBveThreshold) hash ^= PresolveBveThreshold.GetHashCode();
9772 if (HasPresolveBveClauseWeight) hash ^= PresolveBveClauseWeight.GetHashCode();
9773 if (HasProbingDeterministicTimeLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ProbingDeterministicTimeLimit);
9774 if (HasPresolveProbingDeterministicTimeLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(PresolveProbingDeterministicTimeLimit);
9775 if (HasPresolveBlockedClause) hash ^= PresolveBlockedClause.GetHashCode();
9776 if (HasPresolveUseBva) hash ^= PresolveUseBva.GetHashCode();
9777 if (HasPresolveBvaThreshold) hash ^= PresolveBvaThreshold.GetHashCode();
9778 if (HasMaxPresolveIterations) hash ^= MaxPresolveIterations.GetHashCode();
9779 if (HasCpModelPresolve) hash ^= CpModelPresolve.GetHashCode();
9780 if (HasCpModelProbingLevel) hash ^= CpModelProbingLevel.GetHashCode();
9781 if (HasCpModelUseSatPresolve) hash ^= CpModelUseSatPresolve.GetHashCode();
9783 if (HasDetectTableWithCost) hash ^= DetectTableWithCost.GetHashCode();
9784 if (HasTableCompressionLevel) hash ^= TableCompressionLevel.GetHashCode();
9785 if (HasExpandAlldiffConstraints) hash ^= ExpandAlldiffConstraints.GetHashCode();
9786 if (HasMaxAlldiffDomainSize) hash ^= MaxAlldiffDomainSize.GetHashCode();
9793 if (HasMergeNoOverlapWorkLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MergeNoOverlapWorkLimit);
9794 if (HasMergeAtMostOneWorkLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MergeAtMostOneWorkLimit);
9798 if (HasIgnoreNames) hash ^= IgnoreNames.GetHashCode();
9799 if (HasInferAllDiffs) hash ^= InferAllDiffs.GetHashCode();
9800 if (HasFindBigLinearOverlap) hash ^= FindBigLinearOverlap.GetHashCode();
9801 if (HasUseSatInprocessing) hash ^= UseSatInprocessing.GetHashCode();
9802 if (HasInprocessingDtimeRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InprocessingDtimeRatio);
9803 if (HasInprocessingProbingDtime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InprocessingProbingDtime);
9804 if (HasInprocessingMinimizationDtime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InprocessingMinimizationDtime);
9807 if (HasNumWorkers) hash ^= NumWorkers.GetHashCode();
9808 if (HasNumSearchWorkers) hash ^= NumSearchWorkers.GetHashCode();
9809 if (HasNumFullSubsolvers) hash ^= NumFullSubsolvers.GetHashCode();
9810 hash ^= subsolvers_.GetHashCode();
9811 hash ^= extraSubsolvers_.GetHashCode();
9812 hash ^= ignoreSubsolvers_.GetHashCode();
9813 hash ^= filterSubsolvers_.GetHashCode();
9814 hash ^= subsolverParams_.GetHashCode();
9815 if (HasInterleaveSearch) hash ^= InterleaveSearch.GetHashCode();
9816 if (HasInterleaveBatchSize) hash ^= InterleaveBatchSize.GetHashCode();
9817 if (HasShareObjectiveBounds) hash ^= ShareObjectiveBounds.GetHashCode();
9818 if (HasShareLevelZeroBounds) hash ^= ShareLevelZeroBounds.GetHashCode();
9819 if (HasShareBinaryClauses) hash ^= ShareBinaryClauses.GetHashCode();
9820 if (HasShareGlueClauses) hash ^= ShareGlueClauses.GetHashCode();
9821 if (HasMinimizeSharedClauses) hash ^= MinimizeSharedClauses.GetHashCode();
9822 if (HasShareGlueClausesDtime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ShareGlueClausesDtime);
9825 if (HasDebugCrashOnBadHint) hash ^= DebugCrashOnBadHint.GetHashCode();
9827 if (HasUseOptimizationHints) hash ^= UseOptimizationHints.GetHashCode();
9828 if (HasCoreMinimizationLevel) hash ^= CoreMinimizationLevel.GetHashCode();
9829 if (HasFindMultipleCores) hash ^= FindMultipleCores.GetHashCode();
9830 if (HasCoverOptimization) hash ^= CoverOptimization.GetHashCode();
9831 if (HasMaxSatAssumptionOrder) hash ^= MaxSatAssumptionOrder.GetHashCode();
9833 if (HasMaxSatStratification) hash ^= MaxSatStratification.GetHashCode();
9834 if (HasPropagationLoopDetectionFactor) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(PropagationLoopDetectionFactor);
9845 if (HasExploitAllPrecedences) hash ^= ExploitAllPrecedences.GetHashCode();
9861 if (HasRoutingCutDpEffort) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RoutingCutDpEffort);
9863 if (HasSearchBranching) hash ^= SearchBranching.GetHashCode();
9864 if (HasHintConflictLimit) hash ^= HintConflictLimit.GetHashCode();
9865 if (HasRepairHint) hash ^= RepairHint.GetHashCode();
9867 if (HasUseProbingSearch) hash ^= UseProbingSearch.GetHashCode();
9868 if (HasUseExtendedProbing) hash ^= UseExtendedProbing.GetHashCode();
9870 if (HasShavingDeterministicTimeInProbingSearch) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ShavingDeterministicTimeInProbingSearch);
9871 if (HasShavingSearchDeterministicTime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ShavingSearchDeterministicTime);
9872 if (HasShavingSearchThreshold) hash ^= ShavingSearchThreshold.GetHashCode();
9873 if (HasUseObjectiveLbSearch) hash ^= UseObjectiveLbSearch.GetHashCode();
9875 if (HasVariablesShavingLevel) hash ^= VariablesShavingLevel.GetHashCode();
9877 if (HasOptimizeWithCore) hash ^= OptimizeWithCore.GetHashCode();
9878 if (HasOptimizeWithLbTreeSearch) hash ^= OptimizeWithLbTreeSearch.GetHashCode();
9880 if (HasBinarySearchNumConflicts) hash ^= BinarySearchNumConflicts.GetHashCode();
9881 if (HasOptimizeWithMaxHs) hash ^= OptimizeWithMaxHs.GetHashCode();
9882 if (HasUseFeasibilityJump) hash ^= UseFeasibilityJump.GetHashCode();
9883 if (HasUseLsOnly) hash ^= UseLsOnly.GetHashCode();
9884 if (HasFeasibilityJumpDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(FeasibilityJumpDecay);
9887 if (HasFeasibilityJumpBatchDtime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(FeasibilityJumpBatchDtime);
9888 if (HasFeasibilityJumpVarRandomizationProbability) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(FeasibilityJumpVarRandomizationProbability);
9889 if (HasFeasibilityJumpVarPerburbationRangeRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(FeasibilityJumpVarPerburbationRangeRatio);
9892 if (HasNumViolationLs) hash ^= NumViolationLs.GetHashCode();
9894 if (HasViolationLsCompoundMoveProbability) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ViolationLsCompoundMoveProbability);
9895 if (HasSharedTreeNumWorkers) hash ^= SharedTreeNumWorkers.GetHashCode();
9896 if (HasUseSharedTreeSearch) hash ^= UseSharedTreeSearch.GetHashCode();
9900 if (HasSharedTreeOpenLeavesPerWorker) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SharedTreeOpenLeavesPerWorker);
9902 if (HasSharedTreeSplitStrategy) hash ^= SharedTreeSplitStrategy.GetHashCode();
9904 if (HasEnumerateAllSolutions) hash ^= EnumerateAllSolutions.GetHashCode();
9908 if (HasInstantiateAllVariables) hash ^= InstantiateAllVariables.GetHashCode();
9910 if (HasStopAfterFirstSolution) hash ^= StopAfterFirstSolution.GetHashCode();
9911 if (HasStopAfterPresolve) hash ^= StopAfterPresolve.GetHashCode();
9912 if (HasStopAfterRootPropagation) hash ^= StopAfterRootPropagation.GetHashCode();
9913 if (HasLnsInitialDifficulty) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LnsInitialDifficulty);
9914 if (HasLnsInitialDeterministicLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LnsInitialDeterministicLimit);
9915 if (HasUseLns) hash ^= UseLns.GetHashCode();
9916 if (HasUseLnsOnly) hash ^= UseLnsOnly.GetHashCode();
9917 if (HasSolutionPoolSize) hash ^= SolutionPoolSize.GetHashCode();
9918 if (HasUseRinsLns) hash ^= UseRinsLns.GetHashCode();
9919 if (HasUseFeasibilityPump) hash ^= UseFeasibilityPump.GetHashCode();
9920 if (HasUseLbRelaxLns) hash ^= UseLbRelaxLns.GetHashCode();
9922 if (HasFpRounding) hash ^= FpRounding.GetHashCode();
9923 if (HasDiversifyLnsParams) hash ^= DiversifyLnsParams.GetHashCode();
9924 if (HasRandomizeSearch) hash ^= RandomizeSearch.GetHashCode();
9926 if (HasPushAllTasksTowardStart) hash ^= PushAllTasksTowardStart.GetHashCode();
9927 if (HasUseOptionalVariables) hash ^= UseOptionalVariables.GetHashCode();
9928 if (HasUseExactLpReason) hash ^= UseExactLpReason.GetHashCode();
9929 if (HasUseCombinedNoOverlap) hash ^= UseCombinedNoOverlap.GetHashCode();
9931 if (HasCatchSigintSignal) hash ^= CatchSigintSignal.GetHashCode();
9932 if (HasUseImpliedBounds) hash ^= UseImpliedBounds.GetHashCode();
9933 if (HasPolishLpSolution) hash ^= PolishLpSolution.GetHashCode();
9934 if (HasLpPrimalTolerance) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LpPrimalTolerance);
9935 if (HasLpDualTolerance) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LpDualTolerance);
9936 if (HasConvertIntervals) hash ^= ConvertIntervals.GetHashCode();
9937 if (HasSymmetryLevel) hash ^= SymmetryLevel.GetHashCode();
9938 if (HasUseSymmetryInLp) hash ^= UseSymmetryInLp.GetHashCode();
9939 if (HasKeepSymmetryInPresolve) hash ^= KeepSymmetryInPresolve.GetHashCode();
9940 if (HasSymmetryDetectionDeterministicTimeLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SymmetryDetectionDeterministicTimeLimit);
9941 if (HasNewLinearPropagation) hash ^= NewLinearPropagation.GetHashCode();
9942 if (HasLinearSplitSize) hash ^= LinearSplitSize.GetHashCode();
9943 if (HasLinearizationLevel) hash ^= LinearizationLevel.GetHashCode();
9944 if (HasBooleanEncodingLevel) hash ^= BooleanEncodingLevel.GetHashCode();
9946 if (HasMaxNumCuts) hash ^= MaxNumCuts.GetHashCode();
9947 if (HasCutLevel) hash ^= CutLevel.GetHashCode();
9948 if (HasOnlyAddCutsAtLevelZero) hash ^= OnlyAddCutsAtLevelZero.GetHashCode();
9949 if (HasAddObjectiveCut) hash ^= AddObjectiveCut.GetHashCode();
9950 if (HasAddCgCuts) hash ^= AddCgCuts.GetHashCode();
9951 if (HasAddMirCuts) hash ^= AddMirCuts.GetHashCode();
9952 if (HasAddZeroHalfCuts) hash ^= AddZeroHalfCuts.GetHashCode();
9953 if (HasAddCliqueCuts) hash ^= AddCliqueCuts.GetHashCode();
9954 if (HasAddRltCuts) hash ^= AddRltCuts.GetHashCode();
9955 if (HasMaxAllDiffCutSize) hash ^= MaxAllDiffCutSize.GetHashCode();
9956 if (HasAddLinMaxCuts) hash ^= AddLinMaxCuts.GetHashCode();
9958 if (HasAddLpConstraintsLazily) hash ^= AddLpConstraintsLazily.GetHashCode();
9959 if (HasRootLpIterations) hash ^= RootLpIterations.GetHashCode();
9960 if (HasMinOrthogonalityForLpConstraints) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MinOrthogonalityForLpConstraints);
9961 if (HasMaxCutRoundsAtLevelZero) hash ^= MaxCutRoundsAtLevelZero.GetHashCode();
9963 if (HasCutMaxActiveCountValue) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CutMaxActiveCountValue);
9964 if (HasCutActiveCountDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CutActiveCountDecay);
9965 if (HasCutCleanupTarget) hash ^= CutCleanupTarget.GetHashCode();
9966 if (HasNewConstraintsBatchSize) hash ^= NewConstraintsBatchSize.GetHashCode();
9967 if (HasExploitIntegerLpSolution) hash ^= ExploitIntegerLpSolution.GetHashCode();
9968 if (HasExploitAllLpSolution) hash ^= ExploitAllLpSolution.GetHashCode();
9969 if (HasExploitBestSolution) hash ^= ExploitBestSolution.GetHashCode();
9971 if (HasExploitObjective) hash ^= ExploitObjective.GetHashCode();
9972 if (HasDetectLinearizedProduct) hash ^= DetectLinearizedProduct.GetHashCode();
9973 if (HasMipMaxBound) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipMaxBound);
9974 if (HasMipVarScaling) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipVarScaling);
9975 if (HasMipScaleLargeDomain) hash ^= MipScaleLargeDomain.GetHashCode();
9977 if (HasOnlySolveIp) hash ^= OnlySolveIp.GetHashCode();
9978 if (HasMipWantedPrecision) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipWantedPrecision);
9979 if (HasMipMaxActivityExponent) hash ^= MipMaxActivityExponent.GetHashCode();
9980 if (HasMipCheckPrecision) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipCheckPrecision);
9982 if (HasMipMaxValidMagnitude) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipMaxValidMagnitude);
9984 if (HasMipDropTolerance) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipDropTolerance);
9985 if (HasMipPresolveLevel) hash ^= MipPresolveLevel.GetHashCode();
9986 if (_unknownFields != null) {
9987 hash ^= _unknownFields.GetHashCode();
9988 }
9989 return hash;
9990 }
9991
9992 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9993 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9994 public override string ToString() {
9995 return pb::JsonFormatter.ToDiagnosticString(this);
9996 }
9997
9998 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9999 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10000 public void WriteTo(pb::CodedOutputStream output) {
10001 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10002 output.WriteRawMessage(this);
10003 #else
10004 if (HasPreferredVariableOrder) {
10005 output.WriteRawTag(8);
10006 output.WriteEnum((int) PreferredVariableOrder);
10007 }
10008 if (HasInitialPolarity) {
10009 output.WriteRawTag(16);
10010 output.WriteEnum((int) InitialPolarity);
10011 }
10012 if (HasMinimizationAlgorithm) {
10013 output.WriteRawTag(32);
10014 output.WriteEnum((int) MinimizationAlgorithm);
10015 }
10016 if (HasClauseCleanupPeriod) {
10017 output.WriteRawTag(88);
10018 output.WriteInt32(ClauseCleanupPeriod);
10019 }
10020 if (HasClauseCleanupTarget) {
10021 output.WriteRawTag(104);
10022 output.WriteInt32(ClauseCleanupTarget);
10023 }
10024 if (HasVariableActivityDecay) {
10025 output.WriteRawTag(121);
10026 output.WriteDouble(VariableActivityDecay);
10027 }
10028 if (HasMaxVariableActivityValue) {
10029 output.WriteRawTag(129, 1);
10030 output.WriteDouble(MaxVariableActivityValue);
10031 }
10032 if (HasClauseActivityDecay) {
10033 output.WriteRawTag(137, 1);
10034 output.WriteDouble(ClauseActivityDecay);
10035 }
10036 if (HasMaxClauseActivityValue) {
10037 output.WriteRawTag(145, 1);
10038 output.WriteDouble(MaxClauseActivityValue);
10039 }
10040 if (HasGlucoseMaxDecay) {
10041 output.WriteRawTag(177, 1);
10042 output.WriteDouble(GlucoseMaxDecay);
10043 }
10044 if (HasGlucoseDecayIncrement) {
10045 output.WriteRawTag(185, 1);
10046 output.WriteDouble(GlucoseDecayIncrement);
10047 }
10048 if (HasGlucoseDecayIncrementPeriod) {
10049 output.WriteRawTag(192, 1);
10051 }
10052 if (HasRestartPeriod) {
10053 output.WriteRawTag(240, 1);
10054 output.WriteInt32(RestartPeriod);
10055 }
10057 output.WriteRawTag(248, 1);
10058 output.WriteInt32(RandomSeed);
10059 }
10060 if (HasRandomBranchesRatio) {
10061 output.WriteRawTag(129, 2);
10062 output.WriteDouble(RandomBranchesRatio);
10063 }
10064 if (HasBinaryMinimizationAlgorithm) {
10065 output.WriteRawTag(144, 2);
10066 output.WriteEnum((int) BinaryMinimizationAlgorithm);
10067 }
10068 if (HasUseOptimizationHints) {
10069 output.WriteRawTag(152, 2);
10070 output.WriteBool(UseOptimizationHints);
10071 }
10072 if (HasMaxTimeInSeconds) {
10073 output.WriteRawTag(161, 2);
10074 output.WriteDouble(MaxTimeInSeconds);
10075 }
10076 if (HasMaxNumberOfConflicts) {
10077 output.WriteRawTag(168, 2);
10078 output.WriteInt64(MaxNumberOfConflicts);
10079 }
10080 if (HasMaxMemoryInMb) {
10081 output.WriteRawTag(192, 2);
10082 output.WriteInt64(MaxMemoryInMb);
10083 }
10084 if (HasLogSearchProgress) {
10085 output.WriteRawTag(200, 2);
10086 output.WriteBool(LogSearchProgress);
10087 }
10088 if (HasUsePbResolution) {
10089 output.WriteRawTag(216, 2);
10090 output.WriteBool(UsePbResolution);
10091 }
10092 if (HasUsePhaseSaving) {
10093 output.WriteRawTag(224, 2);
10094 output.WriteBool(UsePhaseSaving);
10095 }
10096 if (HasRandomPolarityRatio) {
10097 output.WriteRawTag(233, 2);
10098 output.WriteDouble(RandomPolarityRatio);
10099 }
10100 if (HasPbCleanupIncrement) {
10101 output.WriteRawTag(240, 2);
10102 output.WriteInt32(PbCleanupIncrement);
10103 }
10104 if (HasPbCleanupRatio) {
10105 output.WriteRawTag(249, 2);
10106 output.WriteDouble(PbCleanupRatio);
10107 }
10108 if (HasMinimizeReductionDuringPbResolution) {
10109 output.WriteRawTag(128, 3);
10110 output.WriteBool(MinimizeReductionDuringPbResolution);
10111 }
10112 if (HasCountAssumptionLevelsInLbd) {
10113 output.WriteRawTag(136, 3);
10114 output.WriteBool(CountAssumptionLevelsInLbd);
10115 }
10116 if (HasCoreMinimizationLevel) {
10117 output.WriteRawTag(144, 3);
10118 output.WriteInt32(CoreMinimizationLevel);
10119 }
10120 if (HasMaxSatAssumptionOrder) {
10121 output.WriteRawTag(152, 3);
10122 output.WriteEnum((int) MaxSatAssumptionOrder);
10123 }
10124 if (HasMaxSatReverseAssumptionOrder) {
10125 output.WriteRawTag(160, 3);
10126 output.WriteBool(MaxSatReverseAssumptionOrder);
10127 }
10128 if (HasMaxSatStratification) {
10129 output.WriteRawTag(168, 3);
10130 output.WriteEnum((int) MaxSatStratification);
10131 }
10132 if (HasPresolveBveThreshold) {
10133 output.WriteRawTag(176, 3);
10134 output.WriteInt32(PresolveBveThreshold);
10135 }
10136 if (HasPresolveBveClauseWeight) {
10137 output.WriteRawTag(184, 3);
10138 output.WriteInt32(PresolveBveClauseWeight);
10139 }
10140 if (HasSubsumptionDuringConflictAnalysis) {
10141 output.WriteRawTag(192, 3);
10142 output.WriteBool(SubsumptionDuringConflictAnalysis);
10143 }
10144 if (HasPresolveProbingDeterministicTimeLimit) {
10145 output.WriteRawTag(201, 3);
10146 output.WriteDouble(PresolveProbingDeterministicTimeLimit);
10147 }
10148 if (HasClauseCleanupProtection) {
10149 output.WriteRawTag(208, 3);
10150 output.WriteEnum((int) ClauseCleanupProtection);
10151 }
10152 if (HasClauseCleanupLbdBound) {
10153 output.WriteRawTag(216, 3);
10154 output.WriteInt32(ClauseCleanupLbdBound);
10155 }
10156 if (HasClauseCleanupOrdering) {
10157 output.WriteRawTag(224, 3);
10158 output.WriteEnum((int) ClauseCleanupOrdering);
10159 }
10160 restartAlgorithms_.WriteTo(output, _repeated_restartAlgorithms_codec);
10161 if (HasRestartRunningWindowSize) {
10162 output.WriteRawTag(240, 3);
10163 output.WriteInt32(RestartRunningWindowSize);
10164 }
10165 if (HasRestartDlAverageRatio) {
10166 output.WriteRawTag(249, 3);
10167 output.WriteDouble(RestartDlAverageRatio);
10168 }
10169 if (HasUseBlockingRestart) {
10170 output.WriteRawTag(128, 4);
10171 output.WriteBool(UseBlockingRestart);
10172 }
10173 if (HasBlockingRestartWindowSize) {
10174 output.WriteRawTag(136, 4);
10175 output.WriteInt32(BlockingRestartWindowSize);
10176 }
10177 if (HasBlockingRestartMultiplier) {
10178 output.WriteRawTag(145, 4);
10179 output.WriteDouble(BlockingRestartMultiplier);
10180 }
10181 if (HasMaxDeterministicTime) {
10182 output.WriteRawTag(153, 4);
10183 output.WriteDouble(MaxDeterministicTime);
10184 }
10185 if (HasNumConflictsBeforeStrategyChanges) {
10186 output.WriteRawTag(160, 4);
10187 output.WriteInt32(NumConflictsBeforeStrategyChanges);
10188 }
10189 if (HasStrategyChangeIncreaseRatio) {
10190 output.WriteRawTag(169, 4);
10191 output.WriteDouble(StrategyChangeIncreaseRatio);
10192 }
10193 if (HasDefaultRestartAlgorithms) {
10194 output.WriteRawTag(178, 4);
10195 output.WriteString(DefaultRestartAlgorithms);
10196 }
10197 if (HasRestartLbdAverageRatio) {
10198 output.WriteRawTag(185, 4);
10199 output.WriteDouble(RestartLbdAverageRatio);
10200 }
10201 if (HasPresolveUseBva) {
10202 output.WriteRawTag(192, 4);
10203 output.WriteBool(PresolveUseBva);
10204 }
10205 if (HasPresolveBvaThreshold) {
10206 output.WriteRawTag(200, 4);
10207 output.WriteInt32(PresolveBvaThreshold);
10208 }
10209 if (HasUsePrecedencesInDisjunctiveConstraint) {
10210 output.WriteRawTag(208, 4);
10211 output.WriteBool(UsePrecedencesInDisjunctiveConstraint);
10212 }
10213 if (HasUseErwaHeuristic) {
10214 output.WriteRawTag(216, 4);
10215 output.WriteBool(UseErwaHeuristic);
10216 }
10217 if (HasInitialVariablesActivity) {
10218 output.WriteRawTag(225, 4);
10219 output.WriteDouble(InitialVariablesActivity);
10220 }
10221 if (HasAlsoBumpVariablesInConflictReasons) {
10222 output.WriteRawTag(232, 4);
10223 output.WriteBool(AlsoBumpVariablesInConflictReasons);
10224 }
10225 if (HasUseOverloadCheckerInCumulative) {
10226 output.WriteRawTag(240, 4);
10227 output.WriteBool(UseOverloadCheckerInCumulative);
10228 }
10229 if (HasUseTimetableEdgeFindingInCumulative) {
10230 output.WriteRawTag(248, 4);
10231 output.WriteBool(UseTimetableEdgeFindingInCumulative);
10232 }
10233 if (HasUseDisjunctiveConstraintInCumulative) {
10234 output.WriteRawTag(128, 5);
10235 output.WriteBool(UseDisjunctiveConstraintInCumulative);
10236 }
10237 if (HasSearchBranching) {
10238 output.WriteRawTag(144, 5);
10239 output.WriteEnum((int) SearchBranching);
10240 }
10241 if (HasOptimizeWithCore) {
10242 output.WriteRawTag(152, 5);
10243 output.WriteBool(OptimizeWithCore);
10244 }
10245 if (HasFindMultipleCores) {
10246 output.WriteRawTag(160, 5);
10247 output.WriteBool(FindMultipleCores);
10248 }
10249 if (HasOptimizeWithMaxHs) {
10250 output.WriteRawTag(168, 5);
10251 output.WriteBool(OptimizeWithMaxHs);
10252 }
10253 if (HasCpModelPresolve) {
10254 output.WriteRawTag(176, 5);
10255 output.WriteBool(CpModelPresolve);
10256 }
10257 if (HasEnumerateAllSolutions) {
10258 output.WriteRawTag(184, 5);
10259 output.WriteBool(EnumerateAllSolutions);
10260 }
10261 if (HasPresolveBlockedClause) {
10262 output.WriteRawTag(192, 5);
10263 output.WriteBool(PresolveBlockedClause);
10264 }
10265 if (HasCoverOptimization) {
10266 output.WriteRawTag(200, 5);
10267 output.WriteBool(CoverOptimization);
10268 }
10269 if (HasLinearizationLevel) {
10270 output.WriteRawTag(208, 5);
10271 output.WriteInt32(LinearizationLevel);
10272 }
10273 if (HasMaxNumCuts) {
10274 output.WriteRawTag(216, 5);
10275 output.WriteInt32(MaxNumCuts);
10276 }
10277 if (HasOnlyAddCutsAtLevelZero) {
10278 output.WriteRawTag(224, 5);
10279 output.WriteBool(OnlyAddCutsAtLevelZero);
10280 }
10281 if (HasCpModelUseSatPresolve) {
10282 output.WriteRawTag(232, 5);
10283 output.WriteBool(CpModelUseSatPresolve);
10284 }
10285 if (HasExploitIntegerLpSolution) {
10286 output.WriteRawTag(240, 5);
10287 output.WriteBool(ExploitIntegerLpSolution);
10288 }
10289 if (HasAutoDetectGreaterThanAtLeastOneOf) {
10290 output.WriteRawTag(248, 5);
10291 output.WriteBool(AutoDetectGreaterThanAtLeastOneOf);
10292 }
10293 if (HasStopAfterFirstSolution) {
10294 output.WriteRawTag(144, 6);
10295 output.WriteBool(StopAfterFirstSolution);
10296 }
10297 if (HasBinarySearchNumConflicts) {
10298 output.WriteRawTag(152, 6);
10299 output.WriteInt32(BinarySearchNumConflicts);
10300 }
10301 if (HasNumSearchWorkers) {
10302 output.WriteRawTag(160, 6);
10303 output.WriteInt32(NumSearchWorkers);
10304 }
10305 if (HasUseLnsOnly) {
10306 output.WriteRawTag(168, 6);
10307 output.WriteBool(UseLnsOnly);
10308 }
10309 if (HasRandomizeSearch) {
10310 output.WriteRawTag(184, 6);
10311 output.WriteBool(RandomizeSearch);
10312 }
10313 if (HasSearchRandomVariablePoolSize) {
10314 output.WriteRawTag(192, 6);
10315 output.WriteInt64(SearchRandomVariablePoolSize);
10316 }
10317 if (HasInstantiateAllVariables) {
10318 output.WriteRawTag(208, 6);
10319 output.WriteBool(InstantiateAllVariables);
10320 }
10321 if (HasBooleanEncodingLevel) {
10322 output.WriteRawTag(216, 6);
10323 output.WriteInt32(BooleanEncodingLevel);
10324 }
10325 if (HasUseOptionalVariables) {
10326 output.WriteRawTag(224, 6);
10327 output.WriteBool(UseOptionalVariables);
10328 }
10329 if (HasUseExactLpReason) {
10330 output.WriteRawTag(232, 6);
10331 output.WriteBool(UseExactLpReason);
10332 }
10333 if (HasCpModelProbingLevel) {
10334 output.WriteRawTag(240, 6);
10335 output.WriteInt32(CpModelProbingLevel);
10336 }
10337 if (HasAddLpConstraintsLazily) {
10338 output.WriteRawTag(128, 7);
10339 output.WriteBool(AddLpConstraintsLazily);
10340 }
10341 if (HasShareObjectiveBounds) {
10342 output.WriteRawTag(136, 7);
10343 output.WriteBool(ShareObjectiveBounds);
10344 }
10345 if (HasShareLevelZeroBounds) {
10346 output.WriteRawTag(144, 7);
10347 output.WriteBool(ShareLevelZeroBounds);
10348 }
10349 if (HasMinOrthogonalityForLpConstraints) {
10350 output.WriteRawTag(153, 7);
10351 output.WriteDouble(MinOrthogonalityForLpConstraints);
10352 }
10353 if (HasExploitAllLpSolution) {
10354 output.WriteRawTag(160, 7);
10355 output.WriteBool(ExploitAllLpSolution);
10356 }
10357 if (HasAddCgCuts) {
10358 output.WriteRawTag(168, 7);
10359 output.WriteBool(AddCgCuts);
10360 }
10361 if (HasMaxIntegerRoundingScaling) {
10362 output.WriteRawTag(184, 7);
10363 output.WriteInt32(MaxIntegerRoundingScaling);
10364 }
10365 if (HasAddMirCuts) {
10366 output.WriteRawTag(192, 7);
10367 output.WriteBool(AddMirCuts);
10368 }
10369 if (HasMaxConsecutiveInactiveCount) {
10370 output.WriteRawTag(200, 7);
10371 output.WriteInt32(MaxConsecutiveInactiveCount);
10372 }
10373 if (HasNewConstraintsBatchSize) {
10374 output.WriteRawTag(208, 7);
10375 output.WriteInt32(NewConstraintsBatchSize);
10376 }
10377 if (HasPseudoCostReliabilityThreshold) {
10378 output.WriteRawTag(216, 7);
10379 output.WriteInt64(PseudoCostReliabilityThreshold);
10380 }
10381 if (HasMipMaxBound) {
10382 output.WriteRawTag(225, 7);
10383 output.WriteDouble(MipMaxBound);
10384 }
10385 if (HasMipVarScaling) {
10386 output.WriteRawTag(233, 7);
10387 output.WriteDouble(MipVarScaling);
10388 }
10389 if (HasMipWantedPrecision) {
10390 output.WriteRawTag(241, 7);
10391 output.WriteDouble(MipWantedPrecision);
10392 }
10393 if (HasMipMaxActivityExponent) {
10394 output.WriteRawTag(248, 7);
10395 output.WriteInt32(MipMaxActivityExponent);
10396 }
10397 if (HasMipCheckPrecision) {
10398 output.WriteRawTag(129, 8);
10399 output.WriteDouble(MipCheckPrecision);
10400 }
10401 if (HasUseRinsLns) {
10402 output.WriteRawTag(136, 8);
10403 output.WriteBool(UseRinsLns);
10404 }
10405 if (HasExploitBestSolution) {
10406 output.WriteRawTag(144, 8);
10407 output.WriteBool(ExploitBestSolution);
10408 }
10409 if (HasExploitObjective) {
10410 output.WriteRawTag(152, 8);
10411 output.WriteBool(ExploitObjective);
10412 }
10413 if (HasFillTightenedDomainsInResponse) {
10414 output.WriteRawTag(160, 8);
10415 output.WriteBool(FillTightenedDomainsInResponse);
10416 }
10417 if (HasUseCombinedNoOverlap) {
10418 output.WriteRawTag(168, 8);
10419 output.WriteBool(UseCombinedNoOverlap);
10420 }
10421 if (HasInterleaveBatchSize) {
10422 output.WriteRawTag(176, 8);
10423 output.WriteInt32(InterleaveBatchSize);
10424 }
10425 if (HasCatchSigintSignal) {
10426 output.WriteRawTag(184, 8);
10427 output.WriteBool(CatchSigintSignal);
10428 }
10429 if (HasInterleaveSearch) {
10430 output.WriteRawTag(192, 8);
10431 output.WriteBool(InterleaveSearch);
10432 }
10433 if (HasDiversifyLnsParams) {
10434 output.WriteRawTag(200, 8);
10435 output.WriteBool(DiversifyLnsParams);
10436 }
10437 if (HasMaxPresolveIterations) {
10438 output.WriteRawTag(208, 8);
10439 output.WriteInt32(MaxPresolveIterations);
10440 }
10441 if (HasUseImpliedBounds) {
10442 output.WriteRawTag(128, 9);
10443 output.WriteBool(UseImpliedBounds);
10444 }
10445 if (HasMergeNoOverlapWorkLimit) {
10446 output.WriteRawTag(137, 9);
10447 output.WriteDouble(MergeNoOverlapWorkLimit);
10448 }
10449 if (HasMergeAtMostOneWorkLimit) {
10450 output.WriteRawTag(145, 9);
10451 output.WriteDouble(MergeAtMostOneWorkLimit);
10452 }
10453 if (HasPresolveSubstitutionLevel) {
10454 output.WriteRawTag(152, 9);
10455 output.WriteInt32(PresolveSubstitutionLevel);
10456 }
10457 if (HasMaxAllDiffCutSize) {
10458 output.WriteRawTag(160, 9);
10459 output.WriteInt32(MaxAllDiffCutSize);
10460 }
10461 if (HasStopAfterPresolve) {
10462 output.WriteRawTag(168, 9);
10463 output.WriteBool(StopAfterPresolve);
10464 }
10465 if (HasDebugMaxNumPresolveOperations) {
10466 output.WriteRawTag(184, 9);
10467 output.WriteInt32(DebugMaxNumPresolveOperations);
10468 }
10469 if (HasAddLinMaxCuts) {
10470 output.WriteRawTag(192, 9);
10471 output.WriteBool(AddLinMaxCuts);
10472 }
10473 if (HasHintConflictLimit) {
10474 output.WriteRawTag(200, 9);
10475 output.WriteInt32(HintConflictLimit);
10476 }
10477 if (HasMaxCutRoundsAtLevelZero) {
10478 output.WriteRawTag(208, 9);
10479 output.WriteInt32(MaxCutRoundsAtLevelZero);
10480 }
10481 if (HasCutMaxActiveCountValue) {
10482 output.WriteRawTag(217, 9);
10483 output.WriteDouble(CutMaxActiveCountValue);
10484 }
10485 if (HasCutActiveCountDecay) {
10486 output.WriteRawTag(225, 9);
10487 output.WriteDouble(CutActiveCountDecay);
10488 }
10489 if (HasCutCleanupTarget) {
10490 output.WriteRawTag(232, 9);
10491 output.WriteInt32(CutCleanupTarget);
10492 }
10493 if (HasAbsoluteGapLimit) {
10494 output.WriteRawTag(249, 9);
10495 output.WriteDouble(AbsoluteGapLimit);
10496 }
10497 if (HasRelativeGapLimit) {
10498 output.WriteRawTag(129, 10);
10499 output.WriteDouble(RelativeGapLimit);
10500 }
10501 if (HasExploitRelaxationSolution) {
10502 output.WriteRawTag(136, 10);
10503 output.WriteBool(ExploitRelaxationSolution);
10504 }
10505 if (HasDebugPostsolveWithFullSolver) {
10506 output.WriteRawTag(144, 10);
10507 output.WriteBool(DebugPostsolveWithFullSolver);
10508 }
10509 if (HasUseSatInprocessing) {
10510 output.WriteRawTag(152, 10);
10511 output.WriteBool(UseSatInprocessing);
10512 }
10513 if (HasUseFeasibilityPump) {
10514 output.WriteRawTag(160, 10);
10515 output.WriteBool(UseFeasibilityPump);
10516 }
10517 if (HasFpRounding) {
10518 output.WriteRawTag(168, 10);
10519 output.WriteEnum((int) FpRounding);
10520 }
10521 if (HasMipAutomaticallyScaleVariables) {
10522 output.WriteRawTag(176, 10);
10523 output.WriteBool(MipAutomaticallyScaleVariables);
10524 }
10525 if (HasRepairHint) {
10526 output.WriteRawTag(184, 10);
10527 output.WriteBool(RepairHint);
10528 }
10529 if (HasPolarityRephaseIncrement) {
10530 output.WriteRawTag(192, 10);
10531 output.WriteInt32(PolarityRephaseIncrement);
10532 }
10533 if (HasAddZeroHalfCuts) {
10534 output.WriteRawTag(200, 10);
10535 output.WriteBool(AddZeroHalfCuts);
10536 }
10537 if (HasExpandAlldiffConstraints) {
10538 output.WriteRawTag(208, 10);
10539 output.WriteBool(ExpandAlldiffConstraints);
10540 }
10541 if (HasName) {
10542 output.WriteRawTag(218, 10);
10543 output.WriteString(Name);
10544 }
10545 if (HasAddCliqueCuts) {
10546 output.WriteRawTag(224, 10);
10547 output.WriteBool(AddCliqueCuts);
10548 }
10549 if (HasKeepAllFeasibleSolutionsInPresolve) {
10550 output.WriteRawTag(232, 10);
10551 output.WriteBool(KeepAllFeasibleSolutionsInPresolve);
10552 }
10553 if (HasPresolveExtractIntegerEnforcement) {
10554 output.WriteRawTag(240, 10);
10555 output.WriteBool(PresolveExtractIntegerEnforcement);
10556 }
10557 if (HasPolishLpSolution) {
10558 output.WriteRawTag(248, 10);
10559 output.WriteBool(PolishLpSolution);
10560 }
10561 if (HasUseProbingSearch) {
10562 output.WriteRawTag(128, 11);
10563 output.WriteBool(UseProbingSearch);
10564 }
10565 if (HasConvertIntervals) {
10566 output.WriteRawTag(136, 11);
10567 output.WriteBool(ConvertIntervals);
10568 }
10569 if (HasPermuteVariableRandomly) {
10570 output.WriteRawTag(144, 11);
10571 output.WriteBool(PermuteVariableRandomly);
10572 }
10573 if (HasPermutePresolveConstraintOrder) {
10574 output.WriteRawTag(152, 11);
10575 output.WriteBool(PermutePresolveConstraintOrder);
10576 }
10577 if (HasUseAbslRandom) {
10578 output.WriteRawTag(160, 11);
10579 output.WriteBool(UseAbslRandom);
10580 }
10581 if (HasDisableConstraintExpansion) {
10582 output.WriteRawTag(168, 11);
10583 output.WriteBool(DisableConstraintExpansion);
10584 }
10585 if (HasExpandReservoirConstraints) {
10586 output.WriteRawTag(176, 11);
10587 output.WriteBool(ExpandReservoirConstraints);
10588 }
10589 if (HasSymmetryLevel) {
10590 output.WriteRawTag(184, 11);
10591 output.WriteInt32(SymmetryLevel);
10592 }
10593 if (HasLogPrefix) {
10594 output.WriteRawTag(202, 11);
10595 output.WriteString(LogPrefix);
10596 }
10597 if (HasLogToStdout) {
10598 output.WriteRawTag(208, 11);
10599 output.WriteBool(LogToStdout);
10600 }
10601 if (HasLogToResponse) {
10602 output.WriteRawTag(216, 11);
10603 output.WriteBool(LogToResponse);
10604 }
10605 if (HasOptimizeWithLbTreeSearch) {
10606 output.WriteRawTag(224, 11);
10607 output.WriteBool(OptimizeWithLbTreeSearch);
10608 }
10609 if (HasLogSubsolverStatistics) {
10610 output.WriteRawTag(232, 11);
10611 output.WriteBool(LogSubsolverStatistics);
10612 }
10613 if (HasClauseCleanupRatio) {
10614 output.WriteRawTag(241, 11);
10615 output.WriteDouble(ClauseCleanupRatio);
10616 }
10617 if (HasMaxDomainSizeWhenEncodingEqNeqConstraints) {
10618 output.WriteRawTag(248, 11);
10619 output.WriteInt32(MaxDomainSizeWhenEncodingEqNeqConstraints);
10620 }
10621 if (HasFixVariablesToTheirHintedValue) {
10622 output.WriteRawTag(128, 12);
10623 output.WriteBool(FixVariablesToTheirHintedValue);
10624 }
10625 if (HasSolutionPoolSize) {
10626 output.WriteRawTag(136, 12);
10627 output.WriteInt32(SolutionPoolSize);
10628 }
10629 if (HasFillAdditionalSolutionsInResponse) {
10630 output.WriteRawTag(144, 12);
10631 output.WriteBool(FillAdditionalSolutionsInResponse);
10632 }
10633 if (HasDebugCrashOnBadHint) {
10634 output.WriteRawTag(152, 12);
10635 output.WriteBool(DebugCrashOnBadHint);
10636 }
10637 if (HasCutLevel) {
10638 output.WriteRawTag(160, 12);
10639 output.WriteInt32(CutLevel);
10640 }
10641 if (HasAddObjectiveCut) {
10642 output.WriteRawTag(168, 12);
10643 output.WriteBool(AddObjectiveCut);
10644 }
10645 if (HasMipComputeTrueObjectiveBound) {
10646 output.WriteRawTag(176, 12);
10647 output.WriteBool(MipComputeTrueObjectiveBound);
10648 }
10649 if (HasMipMaxValidMagnitude) {
10650 output.WriteRawTag(185, 12);
10651 output.WriteDouble(MipMaxValidMagnitude);
10652 }
10653 if (HasUseTimetablingInNoOverlap2D) {
10654 output.WriteRawTag(192, 12);
10655 output.WriteBool(UseTimetablingInNoOverlap2D);
10656 }
10657 if (HasPresolveInclusionWorkLimit) {
10658 output.WriteRawTag(200, 12);
10659 output.WriteInt64(PresolveInclusionWorkLimit);
10660 }
10661 if (HasIgnoreNames) {
10662 output.WriteRawTag(208, 12);
10663 output.WriteBool(IgnoreNames);
10664 }
10665 if (HasShareBinaryClauses) {
10666 output.WriteRawTag(216, 12);
10667 output.WriteBool(ShareBinaryClauses);
10668 }
10669 if (HasShavingDeterministicTimeInProbingSearch) {
10670 output.WriteRawTag(225, 12);
10671 output.WriteDouble(ShavingDeterministicTimeInProbingSearch);
10672 }
10673 if (HasShavingSearchDeterministicTime) {
10674 output.WriteRawTag(233, 12);
10675 output.WriteDouble(ShavingSearchDeterministicTime);
10676 }
10677 if (HasNumWorkers) {
10678 output.WriteRawTag(240, 12);
10679 output.WriteInt32(NumWorkers);
10680 }
10681 subsolvers_.WriteTo(output, _repeated_subsolvers_codec);
10682 ignoreSubsolvers_.WriteTo(output, _repeated_ignoreSubsolvers_codec);
10683 subsolverParams_.WriteTo(output, _repeated_subsolverParams_codec);
10684 if (HasUseEnergeticReasoningInNoOverlap2D) {
10685 output.WriteRawTag(168, 13);
10686 output.WriteBool(UseEnergeticReasoningInNoOverlap2D);
10687 }
10688 if (HasUseDualSchedulingHeuristics) {
10689 output.WriteRawTag(176, 13);
10690 output.WriteBool(UseDualSchedulingHeuristics);
10691 }
10692 if (HasUseHardPrecedencesInCumulative) {
10693 output.WriteRawTag(184, 13);
10694 output.WriteBool(UseHardPrecedencesInCumulative);
10695 }
10696 if (HasDetectTableWithCost) {
10697 output.WriteRawTag(192, 13);
10698 output.WriteBool(DetectTableWithCost);
10699 }
10700 if (HasTableCompressionLevel) {
10701 output.WriteRawTag(200, 13);
10702 output.WriteInt32(TableCompressionLevel);
10703 }
10704 extraSubsolvers_.WriteTo(output, _repeated_extraSubsolvers_codec);
10705 if (HasExploitAllPrecedences) {
10706 output.WriteRawTag(224, 13);
10707 output.WriteBool(ExploitAllPrecedences);
10708 }
10709 if (HasPropagationLoopDetectionFactor) {
10710 output.WriteRawTag(233, 13);
10711 output.WriteDouble(PropagationLoopDetectionFactor);
10712 }
10713 if (HasOnlySolveIp) {
10714 output.WriteRawTag(240, 13);
10715 output.WriteBool(OnlySolveIp);
10716 }
10717 if (HasEncodeComplexLinearConstraintWithInteger) {
10718 output.WriteRawTag(248, 13);
10719 output.WriteBool(EncodeComplexLinearConstraintWithInteger);
10720 }
10721 if (HasNewLinearPropagation) {
10722 output.WriteRawTag(128, 14);
10723 output.WriteBool(NewLinearPropagation);
10724 }
10725 if (HasMipScaleLargeDomain) {
10726 output.WriteRawTag(136, 14);
10727 output.WriteBool(MipScaleLargeDomain);
10728 }
10729 if (HasProbingDeterministicTimeLimit) {
10730 output.WriteRawTag(145, 14);
10731 output.WriteDouble(ProbingDeterministicTimeLimit);
10732 }
10733 if (HasRootLpIterations) {
10734 output.WriteRawTag(152, 14);
10735 output.WriteInt32(RootLpIterations);
10736 }
10737 if (HasUseObjectiveLbSearch) {
10738 output.WriteRawTag(160, 14);
10739 output.WriteBool(UseObjectiveLbSearch);
10740 }
10741 if (HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive) {
10742 output.WriteRawTag(168, 14);
10743 output.WriteInt32(MaxSizeToCreatePrecedenceLiteralsInDisjunctive);
10744 }
10745 if (HasUseStrongPropagationInDisjunctive) {
10746 output.WriteRawTag(176, 14);
10747 output.WriteBool(UseStrongPropagationInDisjunctive);
10748 }
10749 if (HasMipDropTolerance) {
10750 output.WriteRawTag(193, 14);
10751 output.WriteDouble(MipDropTolerance);
10752 }
10753 if (HasInferAllDiffs) {
10754 output.WriteRawTag(200, 14);
10755 output.WriteBool(InferAllDiffs);
10756 }
10757 if (HasFindBigLinearOverlap) {
10758 output.WriteRawTag(208, 14);
10759 output.WriteBool(FindBigLinearOverlap);
10760 }
10761 if (HasSharedTreeNumWorkers) {
10762 output.WriteRawTag(216, 14);
10763 output.WriteInt32(SharedTreeNumWorkers);
10764 }
10765 if (HasUseSharedTreeSearch) {
10766 output.WriteRawTag(224, 14);
10767 output.WriteBool(UseSharedTreeSearch);
10768 }
10769 if (HasSharedTreeMaxNodesPerWorker) {
10770 output.WriteRawTag(240, 14);
10771 output.WriteInt32(SharedTreeMaxNodesPerWorker);
10772 }
10773 if (HasSharedTreeSplitStrategy) {
10774 output.WriteRawTag(248, 14);
10775 output.WriteEnum((int) SharedTreeSplitStrategy);
10776 }
10777 if (HasUseLsOnly) {
10778 output.WriteRawTag(128, 15);
10779 output.WriteBool(UseLsOnly);
10780 }
10781 if (HasFeasibilityJumpDecay) {
10782 output.WriteRawTag(145, 15);
10783 output.WriteDouble(FeasibilityJumpDecay);
10784 }
10785 if (HasNumViolationLs) {
10786 output.WriteRawTag(160, 15);
10787 output.WriteInt32(NumViolationLs);
10788 }
10789 if (HasFeasibilityJumpVarRandomizationProbability) {
10790 output.WriteRawTag(185, 15);
10791 output.WriteDouble(FeasibilityJumpVarRandomizationProbability);
10792 }
10793 if (HasFeasibilityJumpVarPerburbationRangeRatio) {
10794 output.WriteRawTag(193, 15);
10795 output.WriteDouble(FeasibilityJumpVarPerburbationRangeRatio);
10796 }
10797 if (HasViolationLsPerturbationPeriod) {
10798 output.WriteRawTag(200, 15);
10799 output.WriteInt32(ViolationLsPerturbationPeriod);
10800 }
10801 if (HasFeasibilityJumpEnableRestarts) {
10802 output.WriteRawTag(208, 15);
10803 output.WriteBool(FeasibilityJumpEnableRestarts);
10804 }
10805 if (HasStopAfterRootPropagation) {
10806 output.WriteRawTag(224, 15);
10807 output.WriteBool(StopAfterRootPropagation);
10808 }
10809 if (HasUseObjectiveShavingSearch) {
10810 output.WriteRawTag(232, 15);
10811 output.WriteBool(UseObjectiveShavingSearch);
10812 }
10813 if (HasUseLbRelaxLns) {
10814 output.WriteRawTag(248, 15);
10815 output.WriteBool(UseLbRelaxLns);
10816 }
10817 if (HasLinearSplitSize) {
10818 output.WriteRawTag(128, 16);
10819 output.WriteInt32(LinearSplitSize);
10820 }
10821 if (HasFeasibilityJumpLinearizationLevel) {
10822 output.WriteRawTag(136, 16);
10823 output.WriteInt32(FeasibilityJumpLinearizationLevel);
10824 }
10825 if (HasFeasibilityJumpRestartFactor) {
10826 output.WriteRawTag(144, 16);
10827 output.WriteInt32(FeasibilityJumpRestartFactor);
10828 }
10829 if (HasViolationLsCompoundMoveProbability) {
10830 output.WriteRawTag(153, 16);
10831 output.WriteDouble(ViolationLsCompoundMoveProbability);
10832 }
10833 if (HasMaxNumIntervalsForTimetableEdgeFinding) {
10834 output.WriteRawTag(160, 16);
10835 output.WriteInt32(MaxNumIntervalsForTimetableEdgeFinding);
10836 }
10837 if (HasMipPresolveLevel) {
10838 output.WriteRawTag(168, 16);
10839 output.WriteInt32(MipPresolveLevel);
10840 }
10841 if (HasPushAllTasksTowardStart) {
10842 output.WriteRawTag(176, 16);
10843 output.WriteBool(PushAllTasksTowardStart);
10844 }
10845 if (HasUseDynamicPrecedenceInDisjunctive) {
10846 output.WriteRawTag(184, 16);
10847 output.WriteBool(UseDynamicPrecedenceInDisjunctive);
10848 }
10849 if (HasFeasibilityJumpMaxExpandedConstraintSize) {
10850 output.WriteRawTag(192, 16);
10851 output.WriteInt32(FeasibilityJumpMaxExpandedConstraintSize);
10852 }
10853 if (HasUseFeasibilityJump) {
10854 output.WriteRawTag(200, 16);
10855 output.WriteBool(UseFeasibilityJump);
10856 }
10857 if (HasLpPrimalTolerance) {
10858 output.WriteRawTag(209, 16);
10859 output.WriteDouble(LpPrimalTolerance);
10860 }
10861 if (HasLpDualTolerance) {
10862 output.WriteRawTag(217, 16);
10863 output.WriteDouble(LpDualTolerance);
10864 }
10865 if (HasUseDynamicPrecedenceInCumulative) {
10866 output.WriteRawTag(224, 16);
10867 output.WriteBool(UseDynamicPrecedenceInCumulative);
10868 }
10869 if (HasUseExtendedProbing) {
10870 output.WriteRawTag(232, 16);
10871 output.WriteBool(UseExtendedProbing);
10872 }
10873 if (HasAtMostOneMaxExpansionSize) {
10874 output.WriteRawTag(240, 16);
10875 output.WriteInt32(AtMostOneMaxExpansionSize);
10876 }
10877 if (HasUseAreaEnergeticReasoningInNoOverlap2D) {
10878 output.WriteRawTag(248, 16);
10879 output.WriteBool(UseAreaEnergeticReasoningInNoOverlap2D);
10880 }
10881 if (HasProbingNumCombinationsLimit) {
10882 output.WriteRawTag(128, 17);
10883 output.WriteInt32(ProbingNumCombinationsLimit);
10884 }
10885 if (HasInprocessingDtimeRatio) {
10886 output.WriteRawTag(137, 17);
10887 output.WriteDouble(InprocessingDtimeRatio);
10888 }
10889 if (HasInprocessingProbingDtime) {
10890 output.WriteRawTag(145, 17);
10891 output.WriteDouble(InprocessingProbingDtime);
10892 }
10893 if (HasInprocessingMinimizationDtime) {
10894 output.WriteRawTag(153, 17);
10895 output.WriteDouble(InprocessingMinimizationDtime);
10896 }
10897 if (HasMaxPairsPairwiseReasoningInNoOverlap2D) {
10898 output.WriteRawTag(160, 17);
10899 output.WriteInt32(MaxPairsPairwiseReasoningInNoOverlap2D);
10900 }
10901 if (HasDetectLinearizedProduct) {
10902 output.WriteRawTag(168, 17);
10903 output.WriteBool(DetectLinearizedProduct);
10904 }
10905 if (HasMipTreatHighMagnitudeBoundsAsInfinity) {
10906 output.WriteRawTag(176, 17);
10907 output.WriteBool(MipTreatHighMagnitudeBoundsAsInfinity);
10908 }
10909 if (HasAddRltCuts) {
10910 output.WriteRawTag(184, 17);
10911 output.WriteBool(AddRltCuts);
10912 }
10913 if (HasMaxLinMaxSizeForExpansion) {
10914 output.WriteRawTag(192, 17);
10915 output.WriteInt32(MaxLinMaxSizeForExpansion);
10916 }
10917 if (HasSharedTreeOpenLeavesPerWorker) {
10918 output.WriteRawTag(201, 17);
10919 output.WriteDouble(SharedTreeOpenLeavesPerWorker);
10920 }
10921 if (HasSharedTreeWorkerMinRestartsPerSubtree) {
10922 output.WriteRawTag(208, 17);
10923 output.WriteInt32(SharedTreeWorkerMinRestartsPerSubtree);
10924 }
10925 if (HasUseLns) {
10926 output.WriteRawTag(216, 17);
10927 output.WriteBool(UseLns);
10928 }
10929 if (HasSaveLpBasisInLbTreeSearch) {
10930 output.WriteRawTag(224, 17);
10931 output.WriteBool(SaveLpBasisInLbTreeSearch);
10932 }
10933 if (HasShareGlueClauses) {
10934 output.WriteRawTag(232, 17);
10935 output.WriteBool(ShareGlueClauses);
10936 }
10937 if (HasUseConservativeScaleOverloadChecker) {
10938 output.WriteRawTag(240, 17);
10939 output.WriteBool(UseConservativeScaleOverloadChecker);
10940 }
10941 if (HasEncodeCumulativeAsReservoir) {
10942 output.WriteRawTag(248, 17);
10943 output.WriteBool(EncodeCumulativeAsReservoir);
10944 }
10945 if (HasExpandReservoirUsingCircuit) {
10946 output.WriteRawTag(128, 18);
10947 output.WriteBool(ExpandReservoirUsingCircuit);
10948 }
10949 if (HasVariablesShavingLevel) {
10950 output.WriteRawTag(136, 18);
10951 output.WriteInt32(VariablesShavingLevel);
10952 }
10953 if (HasShavingSearchThreshold) {
10954 output.WriteRawTag(144, 18);
10955 output.WriteInt64(ShavingSearchThreshold);
10956 }
10957 if (HasMaxNumDeterministicBatches) {
10958 output.WriteRawTag(152, 18);
10959 output.WriteInt32(MaxNumDeterministicBatches);
10960 }
10961 if (HasFeasibilityJumpBatchDtime) {
10962 output.WriteRawTag(161, 18);
10963 output.WriteDouble(FeasibilityJumpBatchDtime);
10964 }
10965 filterSubsolvers_.WriteTo(output, _repeated_filterSubsolvers_codec);
10966 if (HasNumFullSubsolvers) {
10967 output.WriteRawTag(176, 18);
10968 output.WriteInt32(NumFullSubsolvers);
10969 }
10970 if (HasSharedTreeWorkerEnableTrailSharing) {
10971 output.WriteRawTag(184, 18);
10972 output.WriteBool(SharedTreeWorkerEnableTrailSharing);
10973 }
10974 if (HasLbRelaxNumWorkersThreshold) {
10975 output.WriteRawTag(192, 18);
10976 output.WriteInt32(LbRelaxNumWorkersThreshold);
10977 }
10978 if (HasInprocessingMinimizationUseConflictAnalysis) {
10979 output.WriteRawTag(200, 18);
10980 output.WriteBool(InprocessingMinimizationUseConflictAnalysis);
10981 }
10982 if (HasInprocessingMinimizationUseAllOrderings) {
10983 output.WriteRawTag(208, 18);
10984 output.WriteBool(InprocessingMinimizationUseAllOrderings);
10985 }
10986 if (HasUseTryEdgeReasoningInNoOverlap2D) {
10987 output.WriteRawTag(216, 18);
10988 output.WriteBool(UseTryEdgeReasoningInNoOverlap2D);
10989 }
10990 if (HasMinimizeSharedClauses) {
10991 output.WriteRawTag(224, 18);
10992 output.WriteBool(MinimizeSharedClauses);
10993 }
10994 if (HasUseSymmetryInLp) {
10995 output.WriteRawTag(232, 18);
10996 output.WriteBool(UseSymmetryInLp);
10997 }
10998 if (HasSymmetryDetectionDeterministicTimeLimit) {
10999 output.WriteRawTag(241, 18);
11000 output.WriteDouble(SymmetryDetectionDeterministicTimeLimit);
11001 }
11002 if (HasKeepSymmetryInPresolve) {
11003 output.WriteRawTag(248, 18);
11004 output.WriteBool(KeepSymmetryInPresolve);
11005 }
11006 if (HasSharedTreeWorkerEnablePhaseSharing) {
11007 output.WriteRawTag(128, 19);
11008 output.WriteBool(SharedTreeWorkerEnablePhaseSharing);
11009 }
11010 if (HasSharedTreeBalanceTolerance) {
11011 output.WriteRawTag(136, 19);
11012 output.WriteInt32(SharedTreeBalanceTolerance);
11013 }
11014 if (HasDebugCrashIfPresolveBreaksHint) {
11015 output.WriteRawTag(144, 19);
11016 output.WriteBool(DebugCrashIfPresolveBreaksHint);
11017 }
11018 if (HasLnsInitialDifficulty) {
11019 output.WriteRawTag(153, 19);
11020 output.WriteDouble(LnsInitialDifficulty);
11021 }
11022 if (HasLnsInitialDeterministicLimit) {
11023 output.WriteRawTag(161, 19);
11024 output.WriteDouble(LnsInitialDeterministicLimit);
11025 }
11026 if (HasPolarityExploitLsHints) {
11027 output.WriteRawTag(168, 19);
11028 output.WriteBool(PolarityExploitLsHints);
11029 }
11030 if (HasRemoveFixedVariablesEarly) {
11031 output.WriteRawTag(176, 19);
11032 output.WriteBool(RemoveFixedVariablesEarly);
11033 }
11034 if (HasUseAllDifferentForCircuit) {
11035 output.WriteRawTag(184, 19);
11036 output.WriteBool(UseAllDifferentForCircuit);
11037 }
11038 if (HasRoutingCutSubsetSizeForBinaryRelationBound) {
11039 output.WriteRawTag(192, 19);
11040 output.WriteInt32(RoutingCutSubsetSizeForBinaryRelationBound);
11041 }
11042 if (HasRoutingCutSubsetSizeForTightBinaryRelationBound) {
11043 output.WriteRawTag(200, 19);
11044 output.WriteInt32(RoutingCutSubsetSizeForTightBinaryRelationBound);
11045 }
11046 if (HasRoutingCutDpEffort) {
11047 output.WriteRawTag(209, 19);
11048 output.WriteDouble(RoutingCutDpEffort);
11049 }
11050 if (HasMaximumRegionsToSplitInDisconnectedNoOverlap2D) {
11051 output.WriteRawTag(216, 19);
11052 output.WriteInt32(MaximumRegionsToSplitInDisconnectedNoOverlap2D);
11053 }
11054 if (HasRoutingCutSubsetSizeForExactBinaryRelationBound) {
11055 output.WriteRawTag(224, 19);
11056 output.WriteInt32(RoutingCutSubsetSizeForExactBinaryRelationBound);
11057 }
11058 if (HasRoutingCutMaxInfeasiblePathLength) {
11059 output.WriteRawTag(232, 19);
11060 output.WriteInt32(RoutingCutMaxInfeasiblePathLength);
11061 }
11062 if (HasRoutingCutSubsetSizeForShortestPathsBound) {
11063 output.WriteRawTag(240, 19);
11064 output.WriteInt32(RoutingCutSubsetSizeForShortestPathsBound);
11065 }
11066 if (HasMaxAlldiffDomainSize) {
11067 output.WriteRawTag(128, 20);
11068 output.WriteInt32(MaxAlldiffDomainSize);
11069 }
11070 if (HasNoOverlap2DBooleanRelationsLimit) {
11071 output.WriteRawTag(136, 20);
11072 output.WriteInt32(NoOverlap2DBooleanRelationsLimit);
11073 }
11074 if (HasShareGlueClausesDtime) {
11075 output.WriteRawTag(145, 20);
11076 output.WriteDouble(ShareGlueClausesDtime);
11077 }
11078 if (HasUseLinear3ForNoOverlap2DPrecedences) {
11079 output.WriteRawTag(152, 20);
11080 output.WriteBool(UseLinear3ForNoOverlap2DPrecedences);
11081 }
11082 if (HasFilterSatPostsolveClauses) {
11083 output.WriteRawTag(160, 20);
11084 output.WriteBool(FilterSatPostsolveClauses);
11085 }
11086 if (_unknownFields != null) {
11087 _unknownFields.WriteTo(output);
11088 }
11089 #endif
11090 }
11091
11092 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11093 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11094 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
11095 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
11096 if (HasPreferredVariableOrder) {
11097 output.WriteRawTag(8);
11098 output.WriteEnum((int) PreferredVariableOrder);
11099 }
11100 if (HasInitialPolarity) {
11101 output.WriteRawTag(16);
11102 output.WriteEnum((int) InitialPolarity);
11103 }
11104 if (HasMinimizationAlgorithm) {
11105 output.WriteRawTag(32);
11106 output.WriteEnum((int) MinimizationAlgorithm);
11107 }
11108 if (HasClauseCleanupPeriod) {
11109 output.WriteRawTag(88);
11110 output.WriteInt32(ClauseCleanupPeriod);
11111 }
11112 if (HasClauseCleanupTarget) {
11113 output.WriteRawTag(104);
11114 output.WriteInt32(ClauseCleanupTarget);
11115 }
11116 if (HasVariableActivityDecay) {
11117 output.WriteRawTag(121);
11118 output.WriteDouble(VariableActivityDecay);
11119 }
11120 if (HasMaxVariableActivityValue) {
11121 output.WriteRawTag(129, 1);
11122 output.WriteDouble(MaxVariableActivityValue);
11123 }
11124 if (HasClauseActivityDecay) {
11125 output.WriteRawTag(137, 1);
11126 output.WriteDouble(ClauseActivityDecay);
11127 }
11128 if (HasMaxClauseActivityValue) {
11129 output.WriteRawTag(145, 1);
11130 output.WriteDouble(MaxClauseActivityValue);
11131 }
11132 if (HasGlucoseMaxDecay) {
11133 output.WriteRawTag(177, 1);
11134 output.WriteDouble(GlucoseMaxDecay);
11135 }
11136 if (HasGlucoseDecayIncrement) {
11137 output.WriteRawTag(185, 1);
11138 output.WriteDouble(GlucoseDecayIncrement);
11139 }
11140 if (HasGlucoseDecayIncrementPeriod) {
11141 output.WriteRawTag(192, 1);
11142 output.WriteInt32(GlucoseDecayIncrementPeriod);
11143 }
11144 if (HasRestartPeriod) {
11145 output.WriteRawTag(240, 1);
11146 output.WriteInt32(RestartPeriod);
11147 }
11148 if (HasRandomSeed) {
11149 output.WriteRawTag(248, 1);
11150 output.WriteInt32(RandomSeed);
11151 }
11152 if (HasRandomBranchesRatio) {
11153 output.WriteRawTag(129, 2);
11154 output.WriteDouble(RandomBranchesRatio);
11155 }
11156 if (HasBinaryMinimizationAlgorithm) {
11157 output.WriteRawTag(144, 2);
11158 output.WriteEnum((int) BinaryMinimizationAlgorithm);
11159 }
11160 if (HasUseOptimizationHints) {
11161 output.WriteRawTag(152, 2);
11162 output.WriteBool(UseOptimizationHints);
11163 }
11164 if (HasMaxTimeInSeconds) {
11165 output.WriteRawTag(161, 2);
11166 output.WriteDouble(MaxTimeInSeconds);
11167 }
11168 if (HasMaxNumberOfConflicts) {
11169 output.WriteRawTag(168, 2);
11170 output.WriteInt64(MaxNumberOfConflicts);
11171 }
11172 if (HasMaxMemoryInMb) {
11173 output.WriteRawTag(192, 2);
11174 output.WriteInt64(MaxMemoryInMb);
11175 }
11176 if (HasLogSearchProgress) {
11177 output.WriteRawTag(200, 2);
11178 output.WriteBool(LogSearchProgress);
11179 }
11180 if (HasUsePbResolution) {
11181 output.WriteRawTag(216, 2);
11182 output.WriteBool(UsePbResolution);
11183 }
11184 if (HasUsePhaseSaving) {
11185 output.WriteRawTag(224, 2);
11186 output.WriteBool(UsePhaseSaving);
11187 }
11188 if (HasRandomPolarityRatio) {
11189 output.WriteRawTag(233, 2);
11190 output.WriteDouble(RandomPolarityRatio);
11191 }
11192 if (HasPbCleanupIncrement) {
11193 output.WriteRawTag(240, 2);
11194 output.WriteInt32(PbCleanupIncrement);
11195 }
11196 if (HasPbCleanupRatio) {
11197 output.WriteRawTag(249, 2);
11198 output.WriteDouble(PbCleanupRatio);
11199 }
11200 if (HasMinimizeReductionDuringPbResolution) {
11201 output.WriteRawTag(128, 3);
11202 output.WriteBool(MinimizeReductionDuringPbResolution);
11203 }
11204 if (HasCountAssumptionLevelsInLbd) {
11205 output.WriteRawTag(136, 3);
11206 output.WriteBool(CountAssumptionLevelsInLbd);
11207 }
11208 if (HasCoreMinimizationLevel) {
11209 output.WriteRawTag(144, 3);
11210 output.WriteInt32(CoreMinimizationLevel);
11211 }
11212 if (HasMaxSatAssumptionOrder) {
11213 output.WriteRawTag(152, 3);
11214 output.WriteEnum((int) MaxSatAssumptionOrder);
11215 }
11216 if (HasMaxSatReverseAssumptionOrder) {
11217 output.WriteRawTag(160, 3);
11218 output.WriteBool(MaxSatReverseAssumptionOrder);
11219 }
11220 if (HasMaxSatStratification) {
11221 output.WriteRawTag(168, 3);
11222 output.WriteEnum((int) MaxSatStratification);
11223 }
11224 if (HasPresolveBveThreshold) {
11225 output.WriteRawTag(176, 3);
11226 output.WriteInt32(PresolveBveThreshold);
11227 }
11228 if (HasPresolveBveClauseWeight) {
11229 output.WriteRawTag(184, 3);
11230 output.WriteInt32(PresolveBveClauseWeight);
11231 }
11232 if (HasSubsumptionDuringConflictAnalysis) {
11233 output.WriteRawTag(192, 3);
11234 output.WriteBool(SubsumptionDuringConflictAnalysis);
11235 }
11236 if (HasPresolveProbingDeterministicTimeLimit) {
11237 output.WriteRawTag(201, 3);
11238 output.WriteDouble(PresolveProbingDeterministicTimeLimit);
11239 }
11240 if (HasClauseCleanupProtection) {
11241 output.WriteRawTag(208, 3);
11242 output.WriteEnum((int) ClauseCleanupProtection);
11243 }
11244 if (HasClauseCleanupLbdBound) {
11245 output.WriteRawTag(216, 3);
11246 output.WriteInt32(ClauseCleanupLbdBound);
11247 }
11248 if (HasClauseCleanupOrdering) {
11249 output.WriteRawTag(224, 3);
11250 output.WriteEnum((int) ClauseCleanupOrdering);
11251 }
11252 restartAlgorithms_.WriteTo(ref output, _repeated_restartAlgorithms_codec);
11253 if (HasRestartRunningWindowSize) {
11254 output.WriteRawTag(240, 3);
11255 output.WriteInt32(RestartRunningWindowSize);
11256 }
11257 if (HasRestartDlAverageRatio) {
11258 output.WriteRawTag(249, 3);
11259 output.WriteDouble(RestartDlAverageRatio);
11260 }
11261 if (HasUseBlockingRestart) {
11262 output.WriteRawTag(128, 4);
11263 output.WriteBool(UseBlockingRestart);
11264 }
11265 if (HasBlockingRestartWindowSize) {
11266 output.WriteRawTag(136, 4);
11267 output.WriteInt32(BlockingRestartWindowSize);
11268 }
11269 if (HasBlockingRestartMultiplier) {
11270 output.WriteRawTag(145, 4);
11271 output.WriteDouble(BlockingRestartMultiplier);
11272 }
11273 if (HasMaxDeterministicTime) {
11274 output.WriteRawTag(153, 4);
11275 output.WriteDouble(MaxDeterministicTime);
11276 }
11277 if (HasNumConflictsBeforeStrategyChanges) {
11278 output.WriteRawTag(160, 4);
11279 output.WriteInt32(NumConflictsBeforeStrategyChanges);
11280 }
11281 if (HasStrategyChangeIncreaseRatio) {
11282 output.WriteRawTag(169, 4);
11283 output.WriteDouble(StrategyChangeIncreaseRatio);
11284 }
11285 if (HasDefaultRestartAlgorithms) {
11286 output.WriteRawTag(178, 4);
11287 output.WriteString(DefaultRestartAlgorithms);
11288 }
11289 if (HasRestartLbdAverageRatio) {
11290 output.WriteRawTag(185, 4);
11291 output.WriteDouble(RestartLbdAverageRatio);
11292 }
11293 if (HasPresolveUseBva) {
11294 output.WriteRawTag(192, 4);
11295 output.WriteBool(PresolveUseBva);
11296 }
11297 if (HasPresolveBvaThreshold) {
11298 output.WriteRawTag(200, 4);
11299 output.WriteInt32(PresolveBvaThreshold);
11300 }
11301 if (HasUsePrecedencesInDisjunctiveConstraint) {
11302 output.WriteRawTag(208, 4);
11303 output.WriteBool(UsePrecedencesInDisjunctiveConstraint);
11304 }
11305 if (HasUseErwaHeuristic) {
11306 output.WriteRawTag(216, 4);
11307 output.WriteBool(UseErwaHeuristic);
11308 }
11309 if (HasInitialVariablesActivity) {
11310 output.WriteRawTag(225, 4);
11311 output.WriteDouble(InitialVariablesActivity);
11312 }
11313 if (HasAlsoBumpVariablesInConflictReasons) {
11314 output.WriteRawTag(232, 4);
11315 output.WriteBool(AlsoBumpVariablesInConflictReasons);
11316 }
11317 if (HasUseOverloadCheckerInCumulative) {
11318 output.WriteRawTag(240, 4);
11319 output.WriteBool(UseOverloadCheckerInCumulative);
11320 }
11321 if (HasUseTimetableEdgeFindingInCumulative) {
11322 output.WriteRawTag(248, 4);
11323 output.WriteBool(UseTimetableEdgeFindingInCumulative);
11324 }
11325 if (HasUseDisjunctiveConstraintInCumulative) {
11326 output.WriteRawTag(128, 5);
11327 output.WriteBool(UseDisjunctiveConstraintInCumulative);
11328 }
11329 if (HasSearchBranching) {
11330 output.WriteRawTag(144, 5);
11331 output.WriteEnum((int) SearchBranching);
11332 }
11333 if (HasOptimizeWithCore) {
11334 output.WriteRawTag(152, 5);
11335 output.WriteBool(OptimizeWithCore);
11336 }
11337 if (HasFindMultipleCores) {
11338 output.WriteRawTag(160, 5);
11339 output.WriteBool(FindMultipleCores);
11340 }
11341 if (HasOptimizeWithMaxHs) {
11342 output.WriteRawTag(168, 5);
11343 output.WriteBool(OptimizeWithMaxHs);
11344 }
11345 if (HasCpModelPresolve) {
11346 output.WriteRawTag(176, 5);
11347 output.WriteBool(CpModelPresolve);
11348 }
11349 if (HasEnumerateAllSolutions) {
11350 output.WriteRawTag(184, 5);
11351 output.WriteBool(EnumerateAllSolutions);
11352 }
11353 if (HasPresolveBlockedClause) {
11354 output.WriteRawTag(192, 5);
11355 output.WriteBool(PresolveBlockedClause);
11356 }
11357 if (HasCoverOptimization) {
11358 output.WriteRawTag(200, 5);
11359 output.WriteBool(CoverOptimization);
11360 }
11361 if (HasLinearizationLevel) {
11362 output.WriteRawTag(208, 5);
11363 output.WriteInt32(LinearizationLevel);
11364 }
11365 if (HasMaxNumCuts) {
11366 output.WriteRawTag(216, 5);
11367 output.WriteInt32(MaxNumCuts);
11368 }
11369 if (HasOnlyAddCutsAtLevelZero) {
11370 output.WriteRawTag(224, 5);
11371 output.WriteBool(OnlyAddCutsAtLevelZero);
11372 }
11373 if (HasCpModelUseSatPresolve) {
11374 output.WriteRawTag(232, 5);
11375 output.WriteBool(CpModelUseSatPresolve);
11376 }
11377 if (HasExploitIntegerLpSolution) {
11378 output.WriteRawTag(240, 5);
11379 output.WriteBool(ExploitIntegerLpSolution);
11380 }
11381 if (HasAutoDetectGreaterThanAtLeastOneOf) {
11382 output.WriteRawTag(248, 5);
11383 output.WriteBool(AutoDetectGreaterThanAtLeastOneOf);
11384 }
11385 if (HasStopAfterFirstSolution) {
11386 output.WriteRawTag(144, 6);
11387 output.WriteBool(StopAfterFirstSolution);
11388 }
11389 if (HasBinarySearchNumConflicts) {
11390 output.WriteRawTag(152, 6);
11391 output.WriteInt32(BinarySearchNumConflicts);
11392 }
11393 if (HasNumSearchWorkers) {
11394 output.WriteRawTag(160, 6);
11395 output.WriteInt32(NumSearchWorkers);
11396 }
11397 if (HasUseLnsOnly) {
11398 output.WriteRawTag(168, 6);
11399 output.WriteBool(UseLnsOnly);
11400 }
11401 if (HasRandomizeSearch) {
11402 output.WriteRawTag(184, 6);
11403 output.WriteBool(RandomizeSearch);
11404 }
11405 if (HasSearchRandomVariablePoolSize) {
11406 output.WriteRawTag(192, 6);
11407 output.WriteInt64(SearchRandomVariablePoolSize);
11408 }
11409 if (HasInstantiateAllVariables) {
11410 output.WriteRawTag(208, 6);
11411 output.WriteBool(InstantiateAllVariables);
11412 }
11413 if (HasBooleanEncodingLevel) {
11414 output.WriteRawTag(216, 6);
11415 output.WriteInt32(BooleanEncodingLevel);
11416 }
11417 if (HasUseOptionalVariables) {
11418 output.WriteRawTag(224, 6);
11419 output.WriteBool(UseOptionalVariables);
11420 }
11421 if (HasUseExactLpReason) {
11422 output.WriteRawTag(232, 6);
11423 output.WriteBool(UseExactLpReason);
11424 }
11425 if (HasCpModelProbingLevel) {
11426 output.WriteRawTag(240, 6);
11427 output.WriteInt32(CpModelProbingLevel);
11428 }
11429 if (HasAddLpConstraintsLazily) {
11430 output.WriteRawTag(128, 7);
11431 output.WriteBool(AddLpConstraintsLazily);
11432 }
11433 if (HasShareObjectiveBounds) {
11434 output.WriteRawTag(136, 7);
11435 output.WriteBool(ShareObjectiveBounds);
11436 }
11437 if (HasShareLevelZeroBounds) {
11438 output.WriteRawTag(144, 7);
11439 output.WriteBool(ShareLevelZeroBounds);
11440 }
11441 if (HasMinOrthogonalityForLpConstraints) {
11442 output.WriteRawTag(153, 7);
11443 output.WriteDouble(MinOrthogonalityForLpConstraints);
11444 }
11445 if (HasExploitAllLpSolution) {
11446 output.WriteRawTag(160, 7);
11447 output.WriteBool(ExploitAllLpSolution);
11448 }
11449 if (HasAddCgCuts) {
11450 output.WriteRawTag(168, 7);
11451 output.WriteBool(AddCgCuts);
11452 }
11453 if (HasMaxIntegerRoundingScaling) {
11454 output.WriteRawTag(184, 7);
11455 output.WriteInt32(MaxIntegerRoundingScaling);
11456 }
11457 if (HasAddMirCuts) {
11458 output.WriteRawTag(192, 7);
11459 output.WriteBool(AddMirCuts);
11460 }
11461 if (HasMaxConsecutiveInactiveCount) {
11462 output.WriteRawTag(200, 7);
11463 output.WriteInt32(MaxConsecutiveInactiveCount);
11464 }
11465 if (HasNewConstraintsBatchSize) {
11466 output.WriteRawTag(208, 7);
11467 output.WriteInt32(NewConstraintsBatchSize);
11468 }
11469 if (HasPseudoCostReliabilityThreshold) {
11470 output.WriteRawTag(216, 7);
11471 output.WriteInt64(PseudoCostReliabilityThreshold);
11472 }
11473 if (HasMipMaxBound) {
11474 output.WriteRawTag(225, 7);
11475 output.WriteDouble(MipMaxBound);
11476 }
11477 if (HasMipVarScaling) {
11478 output.WriteRawTag(233, 7);
11479 output.WriteDouble(MipVarScaling);
11480 }
11481 if (HasMipWantedPrecision) {
11482 output.WriteRawTag(241, 7);
11483 output.WriteDouble(MipWantedPrecision);
11484 }
11485 if (HasMipMaxActivityExponent) {
11486 output.WriteRawTag(248, 7);
11487 output.WriteInt32(MipMaxActivityExponent);
11488 }
11489 if (HasMipCheckPrecision) {
11490 output.WriteRawTag(129, 8);
11491 output.WriteDouble(MipCheckPrecision);
11492 }
11493 if (HasUseRinsLns) {
11494 output.WriteRawTag(136, 8);
11495 output.WriteBool(UseRinsLns);
11496 }
11497 if (HasExploitBestSolution) {
11498 output.WriteRawTag(144, 8);
11499 output.WriteBool(ExploitBestSolution);
11500 }
11501 if (HasExploitObjective) {
11502 output.WriteRawTag(152, 8);
11503 output.WriteBool(ExploitObjective);
11504 }
11505 if (HasFillTightenedDomainsInResponse) {
11506 output.WriteRawTag(160, 8);
11507 output.WriteBool(FillTightenedDomainsInResponse);
11508 }
11509 if (HasUseCombinedNoOverlap) {
11510 output.WriteRawTag(168, 8);
11511 output.WriteBool(UseCombinedNoOverlap);
11512 }
11513 if (HasInterleaveBatchSize) {
11514 output.WriteRawTag(176, 8);
11515 output.WriteInt32(InterleaveBatchSize);
11516 }
11517 if (HasCatchSigintSignal) {
11518 output.WriteRawTag(184, 8);
11519 output.WriteBool(CatchSigintSignal);
11520 }
11521 if (HasInterleaveSearch) {
11522 output.WriteRawTag(192, 8);
11523 output.WriteBool(InterleaveSearch);
11524 }
11525 if (HasDiversifyLnsParams) {
11526 output.WriteRawTag(200, 8);
11527 output.WriteBool(DiversifyLnsParams);
11528 }
11529 if (HasMaxPresolveIterations) {
11530 output.WriteRawTag(208, 8);
11531 output.WriteInt32(MaxPresolveIterations);
11532 }
11533 if (HasUseImpliedBounds) {
11534 output.WriteRawTag(128, 9);
11535 output.WriteBool(UseImpliedBounds);
11536 }
11537 if (HasMergeNoOverlapWorkLimit) {
11538 output.WriteRawTag(137, 9);
11539 output.WriteDouble(MergeNoOverlapWorkLimit);
11540 }
11541 if (HasMergeAtMostOneWorkLimit) {
11542 output.WriteRawTag(145, 9);
11543 output.WriteDouble(MergeAtMostOneWorkLimit);
11544 }
11545 if (HasPresolveSubstitutionLevel) {
11546 output.WriteRawTag(152, 9);
11547 output.WriteInt32(PresolveSubstitutionLevel);
11548 }
11549 if (HasMaxAllDiffCutSize) {
11550 output.WriteRawTag(160, 9);
11551 output.WriteInt32(MaxAllDiffCutSize);
11552 }
11553 if (HasStopAfterPresolve) {
11554 output.WriteRawTag(168, 9);
11555 output.WriteBool(StopAfterPresolve);
11556 }
11557 if (HasDebugMaxNumPresolveOperations) {
11558 output.WriteRawTag(184, 9);
11559 output.WriteInt32(DebugMaxNumPresolveOperations);
11560 }
11561 if (HasAddLinMaxCuts) {
11562 output.WriteRawTag(192, 9);
11563 output.WriteBool(AddLinMaxCuts);
11564 }
11565 if (HasHintConflictLimit) {
11566 output.WriteRawTag(200, 9);
11567 output.WriteInt32(HintConflictLimit);
11568 }
11569 if (HasMaxCutRoundsAtLevelZero) {
11570 output.WriteRawTag(208, 9);
11571 output.WriteInt32(MaxCutRoundsAtLevelZero);
11572 }
11573 if (HasCutMaxActiveCountValue) {
11574 output.WriteRawTag(217, 9);
11575 output.WriteDouble(CutMaxActiveCountValue);
11576 }
11577 if (HasCutActiveCountDecay) {
11578 output.WriteRawTag(225, 9);
11579 output.WriteDouble(CutActiveCountDecay);
11580 }
11581 if (HasCutCleanupTarget) {
11582 output.WriteRawTag(232, 9);
11583 output.WriteInt32(CutCleanupTarget);
11584 }
11585 if (HasAbsoluteGapLimit) {
11586 output.WriteRawTag(249, 9);
11587 output.WriteDouble(AbsoluteGapLimit);
11588 }
11589 if (HasRelativeGapLimit) {
11590 output.WriteRawTag(129, 10);
11591 output.WriteDouble(RelativeGapLimit);
11592 }
11593 if (HasExploitRelaxationSolution) {
11594 output.WriteRawTag(136, 10);
11595 output.WriteBool(ExploitRelaxationSolution);
11596 }
11597 if (HasDebugPostsolveWithFullSolver) {
11598 output.WriteRawTag(144, 10);
11599 output.WriteBool(DebugPostsolveWithFullSolver);
11600 }
11601 if (HasUseSatInprocessing) {
11602 output.WriteRawTag(152, 10);
11603 output.WriteBool(UseSatInprocessing);
11604 }
11605 if (HasUseFeasibilityPump) {
11606 output.WriteRawTag(160, 10);
11607 output.WriteBool(UseFeasibilityPump);
11608 }
11609 if (HasFpRounding) {
11610 output.WriteRawTag(168, 10);
11611 output.WriteEnum((int) FpRounding);
11612 }
11613 if (HasMipAutomaticallyScaleVariables) {
11614 output.WriteRawTag(176, 10);
11615 output.WriteBool(MipAutomaticallyScaleVariables);
11616 }
11617 if (HasRepairHint) {
11618 output.WriteRawTag(184, 10);
11619 output.WriteBool(RepairHint);
11620 }
11621 if (HasPolarityRephaseIncrement) {
11622 output.WriteRawTag(192, 10);
11623 output.WriteInt32(PolarityRephaseIncrement);
11624 }
11625 if (HasAddZeroHalfCuts) {
11626 output.WriteRawTag(200, 10);
11627 output.WriteBool(AddZeroHalfCuts);
11628 }
11629 if (HasExpandAlldiffConstraints) {
11630 output.WriteRawTag(208, 10);
11631 output.WriteBool(ExpandAlldiffConstraints);
11632 }
11633 if (HasName) {
11634 output.WriteRawTag(218, 10);
11635 output.WriteString(Name);
11636 }
11637 if (HasAddCliqueCuts) {
11638 output.WriteRawTag(224, 10);
11639 output.WriteBool(AddCliqueCuts);
11640 }
11641 if (HasKeepAllFeasibleSolutionsInPresolve) {
11642 output.WriteRawTag(232, 10);
11643 output.WriteBool(KeepAllFeasibleSolutionsInPresolve);
11644 }
11645 if (HasPresolveExtractIntegerEnforcement) {
11646 output.WriteRawTag(240, 10);
11647 output.WriteBool(PresolveExtractIntegerEnforcement);
11648 }
11649 if (HasPolishLpSolution) {
11650 output.WriteRawTag(248, 10);
11651 output.WriteBool(PolishLpSolution);
11652 }
11653 if (HasUseProbingSearch) {
11654 output.WriteRawTag(128, 11);
11655 output.WriteBool(UseProbingSearch);
11656 }
11657 if (HasConvertIntervals) {
11658 output.WriteRawTag(136, 11);
11659 output.WriteBool(ConvertIntervals);
11660 }
11661 if (HasPermuteVariableRandomly) {
11662 output.WriteRawTag(144, 11);
11663 output.WriteBool(PermuteVariableRandomly);
11664 }
11665 if (HasPermutePresolveConstraintOrder) {
11666 output.WriteRawTag(152, 11);
11667 output.WriteBool(PermutePresolveConstraintOrder);
11668 }
11669 if (HasUseAbslRandom) {
11670 output.WriteRawTag(160, 11);
11671 output.WriteBool(UseAbslRandom);
11672 }
11673 if (HasDisableConstraintExpansion) {
11674 output.WriteRawTag(168, 11);
11675 output.WriteBool(DisableConstraintExpansion);
11676 }
11677 if (HasExpandReservoirConstraints) {
11678 output.WriteRawTag(176, 11);
11679 output.WriteBool(ExpandReservoirConstraints);
11680 }
11681 if (HasSymmetryLevel) {
11682 output.WriteRawTag(184, 11);
11683 output.WriteInt32(SymmetryLevel);
11684 }
11685 if (HasLogPrefix) {
11686 output.WriteRawTag(202, 11);
11687 output.WriteString(LogPrefix);
11688 }
11689 if (HasLogToStdout) {
11690 output.WriteRawTag(208, 11);
11691 output.WriteBool(LogToStdout);
11692 }
11693 if (HasLogToResponse) {
11694 output.WriteRawTag(216, 11);
11695 output.WriteBool(LogToResponse);
11696 }
11697 if (HasOptimizeWithLbTreeSearch) {
11698 output.WriteRawTag(224, 11);
11699 output.WriteBool(OptimizeWithLbTreeSearch);
11700 }
11701 if (HasLogSubsolverStatistics) {
11702 output.WriteRawTag(232, 11);
11703 output.WriteBool(LogSubsolverStatistics);
11704 }
11705 if (HasClauseCleanupRatio) {
11706 output.WriteRawTag(241, 11);
11707 output.WriteDouble(ClauseCleanupRatio);
11708 }
11709 if (HasMaxDomainSizeWhenEncodingEqNeqConstraints) {
11710 output.WriteRawTag(248, 11);
11711 output.WriteInt32(MaxDomainSizeWhenEncodingEqNeqConstraints);
11712 }
11713 if (HasFixVariablesToTheirHintedValue) {
11714 output.WriteRawTag(128, 12);
11715 output.WriteBool(FixVariablesToTheirHintedValue);
11716 }
11717 if (HasSolutionPoolSize) {
11718 output.WriteRawTag(136, 12);
11719 output.WriteInt32(SolutionPoolSize);
11720 }
11721 if (HasFillAdditionalSolutionsInResponse) {
11722 output.WriteRawTag(144, 12);
11723 output.WriteBool(FillAdditionalSolutionsInResponse);
11724 }
11725 if (HasDebugCrashOnBadHint) {
11726 output.WriteRawTag(152, 12);
11727 output.WriteBool(DebugCrashOnBadHint);
11728 }
11729 if (HasCutLevel) {
11730 output.WriteRawTag(160, 12);
11731 output.WriteInt32(CutLevel);
11732 }
11733 if (HasAddObjectiveCut) {
11734 output.WriteRawTag(168, 12);
11735 output.WriteBool(AddObjectiveCut);
11736 }
11737 if (HasMipComputeTrueObjectiveBound) {
11738 output.WriteRawTag(176, 12);
11739 output.WriteBool(MipComputeTrueObjectiveBound);
11740 }
11741 if (HasMipMaxValidMagnitude) {
11742 output.WriteRawTag(185, 12);
11743 output.WriteDouble(MipMaxValidMagnitude);
11744 }
11745 if (HasUseTimetablingInNoOverlap2D) {
11746 output.WriteRawTag(192, 12);
11747 output.WriteBool(UseTimetablingInNoOverlap2D);
11748 }
11749 if (HasPresolveInclusionWorkLimit) {
11750 output.WriteRawTag(200, 12);
11751 output.WriteInt64(PresolveInclusionWorkLimit);
11752 }
11753 if (HasIgnoreNames) {
11754 output.WriteRawTag(208, 12);
11755 output.WriteBool(IgnoreNames);
11756 }
11757 if (HasShareBinaryClauses) {
11758 output.WriteRawTag(216, 12);
11759 output.WriteBool(ShareBinaryClauses);
11760 }
11761 if (HasShavingDeterministicTimeInProbingSearch) {
11762 output.WriteRawTag(225, 12);
11763 output.WriteDouble(ShavingDeterministicTimeInProbingSearch);
11764 }
11765 if (HasShavingSearchDeterministicTime) {
11766 output.WriteRawTag(233, 12);
11767 output.WriteDouble(ShavingSearchDeterministicTime);
11768 }
11769 if (HasNumWorkers) {
11770 output.WriteRawTag(240, 12);
11771 output.WriteInt32(NumWorkers);
11772 }
11773 subsolvers_.WriteTo(ref output, _repeated_subsolvers_codec);
11774 ignoreSubsolvers_.WriteTo(ref output, _repeated_ignoreSubsolvers_codec);
11775 subsolverParams_.WriteTo(ref output, _repeated_subsolverParams_codec);
11776 if (HasUseEnergeticReasoningInNoOverlap2D) {
11777 output.WriteRawTag(168, 13);
11778 output.WriteBool(UseEnergeticReasoningInNoOverlap2D);
11779 }
11780 if (HasUseDualSchedulingHeuristics) {
11781 output.WriteRawTag(176, 13);
11782 output.WriteBool(UseDualSchedulingHeuristics);
11783 }
11784 if (HasUseHardPrecedencesInCumulative) {
11785 output.WriteRawTag(184, 13);
11786 output.WriteBool(UseHardPrecedencesInCumulative);
11787 }
11788 if (HasDetectTableWithCost) {
11789 output.WriteRawTag(192, 13);
11790 output.WriteBool(DetectTableWithCost);
11791 }
11792 if (HasTableCompressionLevel) {
11793 output.WriteRawTag(200, 13);
11794 output.WriteInt32(TableCompressionLevel);
11795 }
11796 extraSubsolvers_.WriteTo(ref output, _repeated_extraSubsolvers_codec);
11797 if (HasExploitAllPrecedences) {
11798 output.WriteRawTag(224, 13);
11799 output.WriteBool(ExploitAllPrecedences);
11800 }
11801 if (HasPropagationLoopDetectionFactor) {
11802 output.WriteRawTag(233, 13);
11803 output.WriteDouble(PropagationLoopDetectionFactor);
11804 }
11805 if (HasOnlySolveIp) {
11806 output.WriteRawTag(240, 13);
11807 output.WriteBool(OnlySolveIp);
11808 }
11809 if (HasEncodeComplexLinearConstraintWithInteger) {
11810 output.WriteRawTag(248, 13);
11811 output.WriteBool(EncodeComplexLinearConstraintWithInteger);
11812 }
11813 if (HasNewLinearPropagation) {
11814 output.WriteRawTag(128, 14);
11815 output.WriteBool(NewLinearPropagation);
11816 }
11817 if (HasMipScaleLargeDomain) {
11818 output.WriteRawTag(136, 14);
11819 output.WriteBool(MipScaleLargeDomain);
11820 }
11821 if (HasProbingDeterministicTimeLimit) {
11822 output.WriteRawTag(145, 14);
11823 output.WriteDouble(ProbingDeterministicTimeLimit);
11824 }
11825 if (HasRootLpIterations) {
11826 output.WriteRawTag(152, 14);
11827 output.WriteInt32(RootLpIterations);
11828 }
11829 if (HasUseObjectiveLbSearch) {
11830 output.WriteRawTag(160, 14);
11831 output.WriteBool(UseObjectiveLbSearch);
11832 }
11833 if (HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive) {
11834 output.WriteRawTag(168, 14);
11835 output.WriteInt32(MaxSizeToCreatePrecedenceLiteralsInDisjunctive);
11836 }
11837 if (HasUseStrongPropagationInDisjunctive) {
11838 output.WriteRawTag(176, 14);
11839 output.WriteBool(UseStrongPropagationInDisjunctive);
11840 }
11841 if (HasMipDropTolerance) {
11842 output.WriteRawTag(193, 14);
11843 output.WriteDouble(MipDropTolerance);
11844 }
11845 if (HasInferAllDiffs) {
11846 output.WriteRawTag(200, 14);
11847 output.WriteBool(InferAllDiffs);
11848 }
11849 if (HasFindBigLinearOverlap) {
11850 output.WriteRawTag(208, 14);
11851 output.WriteBool(FindBigLinearOverlap);
11852 }
11853 if (HasSharedTreeNumWorkers) {
11854 output.WriteRawTag(216, 14);
11855 output.WriteInt32(SharedTreeNumWorkers);
11856 }
11857 if (HasUseSharedTreeSearch) {
11858 output.WriteRawTag(224, 14);
11859 output.WriteBool(UseSharedTreeSearch);
11860 }
11861 if (HasSharedTreeMaxNodesPerWorker) {
11862 output.WriteRawTag(240, 14);
11863 output.WriteInt32(SharedTreeMaxNodesPerWorker);
11864 }
11865 if (HasSharedTreeSplitStrategy) {
11866 output.WriteRawTag(248, 14);
11867 output.WriteEnum((int) SharedTreeSplitStrategy);
11868 }
11869 if (HasUseLsOnly) {
11870 output.WriteRawTag(128, 15);
11871 output.WriteBool(UseLsOnly);
11872 }
11873 if (HasFeasibilityJumpDecay) {
11874 output.WriteRawTag(145, 15);
11875 output.WriteDouble(FeasibilityJumpDecay);
11876 }
11877 if (HasNumViolationLs) {
11878 output.WriteRawTag(160, 15);
11879 output.WriteInt32(NumViolationLs);
11880 }
11881 if (HasFeasibilityJumpVarRandomizationProbability) {
11882 output.WriteRawTag(185, 15);
11883 output.WriteDouble(FeasibilityJumpVarRandomizationProbability);
11884 }
11885 if (HasFeasibilityJumpVarPerburbationRangeRatio) {
11886 output.WriteRawTag(193, 15);
11887 output.WriteDouble(FeasibilityJumpVarPerburbationRangeRatio);
11888 }
11889 if (HasViolationLsPerturbationPeriod) {
11890 output.WriteRawTag(200, 15);
11891 output.WriteInt32(ViolationLsPerturbationPeriod);
11892 }
11893 if (HasFeasibilityJumpEnableRestarts) {
11894 output.WriteRawTag(208, 15);
11895 output.WriteBool(FeasibilityJumpEnableRestarts);
11896 }
11897 if (HasStopAfterRootPropagation) {
11898 output.WriteRawTag(224, 15);
11899 output.WriteBool(StopAfterRootPropagation);
11900 }
11901 if (HasUseObjectiveShavingSearch) {
11902 output.WriteRawTag(232, 15);
11903 output.WriteBool(UseObjectiveShavingSearch);
11904 }
11905 if (HasUseLbRelaxLns) {
11906 output.WriteRawTag(248, 15);
11907 output.WriteBool(UseLbRelaxLns);
11908 }
11909 if (HasLinearSplitSize) {
11910 output.WriteRawTag(128, 16);
11911 output.WriteInt32(LinearSplitSize);
11912 }
11913 if (HasFeasibilityJumpLinearizationLevel) {
11914 output.WriteRawTag(136, 16);
11915 output.WriteInt32(FeasibilityJumpLinearizationLevel);
11916 }
11917 if (HasFeasibilityJumpRestartFactor) {
11918 output.WriteRawTag(144, 16);
11919 output.WriteInt32(FeasibilityJumpRestartFactor);
11920 }
11921 if (HasViolationLsCompoundMoveProbability) {
11922 output.WriteRawTag(153, 16);
11923 output.WriteDouble(ViolationLsCompoundMoveProbability);
11924 }
11925 if (HasMaxNumIntervalsForTimetableEdgeFinding) {
11926 output.WriteRawTag(160, 16);
11927 output.WriteInt32(MaxNumIntervalsForTimetableEdgeFinding);
11928 }
11929 if (HasMipPresolveLevel) {
11930 output.WriteRawTag(168, 16);
11931 output.WriteInt32(MipPresolveLevel);
11932 }
11933 if (HasPushAllTasksTowardStart) {
11934 output.WriteRawTag(176, 16);
11935 output.WriteBool(PushAllTasksTowardStart);
11936 }
11937 if (HasUseDynamicPrecedenceInDisjunctive) {
11938 output.WriteRawTag(184, 16);
11939 output.WriteBool(UseDynamicPrecedenceInDisjunctive);
11940 }
11941 if (HasFeasibilityJumpMaxExpandedConstraintSize) {
11942 output.WriteRawTag(192, 16);
11943 output.WriteInt32(FeasibilityJumpMaxExpandedConstraintSize);
11944 }
11945 if (HasUseFeasibilityJump) {
11946 output.WriteRawTag(200, 16);
11947 output.WriteBool(UseFeasibilityJump);
11948 }
11949 if (HasLpPrimalTolerance) {
11950 output.WriteRawTag(209, 16);
11951 output.WriteDouble(LpPrimalTolerance);
11952 }
11953 if (HasLpDualTolerance) {
11954 output.WriteRawTag(217, 16);
11955 output.WriteDouble(LpDualTolerance);
11956 }
11957 if (HasUseDynamicPrecedenceInCumulative) {
11958 output.WriteRawTag(224, 16);
11959 output.WriteBool(UseDynamicPrecedenceInCumulative);
11960 }
11961 if (HasUseExtendedProbing) {
11962 output.WriteRawTag(232, 16);
11963 output.WriteBool(UseExtendedProbing);
11964 }
11965 if (HasAtMostOneMaxExpansionSize) {
11966 output.WriteRawTag(240, 16);
11967 output.WriteInt32(AtMostOneMaxExpansionSize);
11968 }
11969 if (HasUseAreaEnergeticReasoningInNoOverlap2D) {
11970 output.WriteRawTag(248, 16);
11971 output.WriteBool(UseAreaEnergeticReasoningInNoOverlap2D);
11972 }
11973 if (HasProbingNumCombinationsLimit) {
11974 output.WriteRawTag(128, 17);
11975 output.WriteInt32(ProbingNumCombinationsLimit);
11976 }
11977 if (HasInprocessingDtimeRatio) {
11978 output.WriteRawTag(137, 17);
11979 output.WriteDouble(InprocessingDtimeRatio);
11980 }
11981 if (HasInprocessingProbingDtime) {
11982 output.WriteRawTag(145, 17);
11983 output.WriteDouble(InprocessingProbingDtime);
11984 }
11985 if (HasInprocessingMinimizationDtime) {
11986 output.WriteRawTag(153, 17);
11987 output.WriteDouble(InprocessingMinimizationDtime);
11988 }
11989 if (HasMaxPairsPairwiseReasoningInNoOverlap2D) {
11990 output.WriteRawTag(160, 17);
11991 output.WriteInt32(MaxPairsPairwiseReasoningInNoOverlap2D);
11992 }
11993 if (HasDetectLinearizedProduct) {
11994 output.WriteRawTag(168, 17);
11995 output.WriteBool(DetectLinearizedProduct);
11996 }
11997 if (HasMipTreatHighMagnitudeBoundsAsInfinity) {
11998 output.WriteRawTag(176, 17);
11999 output.WriteBool(MipTreatHighMagnitudeBoundsAsInfinity);
12000 }
12001 if (HasAddRltCuts) {
12002 output.WriteRawTag(184, 17);
12003 output.WriteBool(AddRltCuts);
12004 }
12005 if (HasMaxLinMaxSizeForExpansion) {
12006 output.WriteRawTag(192, 17);
12007 output.WriteInt32(MaxLinMaxSizeForExpansion);
12008 }
12009 if (HasSharedTreeOpenLeavesPerWorker) {
12010 output.WriteRawTag(201, 17);
12011 output.WriteDouble(SharedTreeOpenLeavesPerWorker);
12012 }
12013 if (HasSharedTreeWorkerMinRestartsPerSubtree) {
12014 output.WriteRawTag(208, 17);
12015 output.WriteInt32(SharedTreeWorkerMinRestartsPerSubtree);
12016 }
12017 if (HasUseLns) {
12018 output.WriteRawTag(216, 17);
12019 output.WriteBool(UseLns);
12020 }
12021 if (HasSaveLpBasisInLbTreeSearch) {
12022 output.WriteRawTag(224, 17);
12023 output.WriteBool(SaveLpBasisInLbTreeSearch);
12024 }
12025 if (HasShareGlueClauses) {
12026 output.WriteRawTag(232, 17);
12027 output.WriteBool(ShareGlueClauses);
12028 }
12029 if (HasUseConservativeScaleOverloadChecker) {
12030 output.WriteRawTag(240, 17);
12031 output.WriteBool(UseConservativeScaleOverloadChecker);
12032 }
12033 if (HasEncodeCumulativeAsReservoir) {
12034 output.WriteRawTag(248, 17);
12035 output.WriteBool(EncodeCumulativeAsReservoir);
12036 }
12037 if (HasExpandReservoirUsingCircuit) {
12038 output.WriteRawTag(128, 18);
12039 output.WriteBool(ExpandReservoirUsingCircuit);
12040 }
12041 if (HasVariablesShavingLevel) {
12042 output.WriteRawTag(136, 18);
12043 output.WriteInt32(VariablesShavingLevel);
12044 }
12045 if (HasShavingSearchThreshold) {
12046 output.WriteRawTag(144, 18);
12047 output.WriteInt64(ShavingSearchThreshold);
12048 }
12049 if (HasMaxNumDeterministicBatches) {
12050 output.WriteRawTag(152, 18);
12051 output.WriteInt32(MaxNumDeterministicBatches);
12052 }
12053 if (HasFeasibilityJumpBatchDtime) {
12054 output.WriteRawTag(161, 18);
12055 output.WriteDouble(FeasibilityJumpBatchDtime);
12056 }
12057 filterSubsolvers_.WriteTo(ref output, _repeated_filterSubsolvers_codec);
12058 if (HasNumFullSubsolvers) {
12059 output.WriteRawTag(176, 18);
12060 output.WriteInt32(NumFullSubsolvers);
12061 }
12062 if (HasSharedTreeWorkerEnableTrailSharing) {
12063 output.WriteRawTag(184, 18);
12064 output.WriteBool(SharedTreeWorkerEnableTrailSharing);
12065 }
12066 if (HasLbRelaxNumWorkersThreshold) {
12067 output.WriteRawTag(192, 18);
12068 output.WriteInt32(LbRelaxNumWorkersThreshold);
12069 }
12070 if (HasInprocessingMinimizationUseConflictAnalysis) {
12071 output.WriteRawTag(200, 18);
12072 output.WriteBool(InprocessingMinimizationUseConflictAnalysis);
12073 }
12074 if (HasInprocessingMinimizationUseAllOrderings) {
12075 output.WriteRawTag(208, 18);
12076 output.WriteBool(InprocessingMinimizationUseAllOrderings);
12077 }
12078 if (HasUseTryEdgeReasoningInNoOverlap2D) {
12079 output.WriteRawTag(216, 18);
12080 output.WriteBool(UseTryEdgeReasoningInNoOverlap2D);
12081 }
12082 if (HasMinimizeSharedClauses) {
12083 output.WriteRawTag(224, 18);
12084 output.WriteBool(MinimizeSharedClauses);
12085 }
12086 if (HasUseSymmetryInLp) {
12087 output.WriteRawTag(232, 18);
12088 output.WriteBool(UseSymmetryInLp);
12089 }
12090 if (HasSymmetryDetectionDeterministicTimeLimit) {
12091 output.WriteRawTag(241, 18);
12092 output.WriteDouble(SymmetryDetectionDeterministicTimeLimit);
12093 }
12094 if (HasKeepSymmetryInPresolve) {
12095 output.WriteRawTag(248, 18);
12096 output.WriteBool(KeepSymmetryInPresolve);
12097 }
12098 if (HasSharedTreeWorkerEnablePhaseSharing) {
12099 output.WriteRawTag(128, 19);
12100 output.WriteBool(SharedTreeWorkerEnablePhaseSharing);
12101 }
12102 if (HasSharedTreeBalanceTolerance) {
12103 output.WriteRawTag(136, 19);
12104 output.WriteInt32(SharedTreeBalanceTolerance);
12105 }
12106 if (HasDebugCrashIfPresolveBreaksHint) {
12107 output.WriteRawTag(144, 19);
12108 output.WriteBool(DebugCrashIfPresolveBreaksHint);
12109 }
12110 if (HasLnsInitialDifficulty) {
12111 output.WriteRawTag(153, 19);
12112 output.WriteDouble(LnsInitialDifficulty);
12113 }
12114 if (HasLnsInitialDeterministicLimit) {
12115 output.WriteRawTag(161, 19);
12116 output.WriteDouble(LnsInitialDeterministicLimit);
12117 }
12118 if (HasPolarityExploitLsHints) {
12119 output.WriteRawTag(168, 19);
12120 output.WriteBool(PolarityExploitLsHints);
12121 }
12122 if (HasRemoveFixedVariablesEarly) {
12123 output.WriteRawTag(176, 19);
12124 output.WriteBool(RemoveFixedVariablesEarly);
12125 }
12126 if (HasUseAllDifferentForCircuit) {
12127 output.WriteRawTag(184, 19);
12128 output.WriteBool(UseAllDifferentForCircuit);
12129 }
12130 if (HasRoutingCutSubsetSizeForBinaryRelationBound) {
12131 output.WriteRawTag(192, 19);
12132 output.WriteInt32(RoutingCutSubsetSizeForBinaryRelationBound);
12133 }
12134 if (HasRoutingCutSubsetSizeForTightBinaryRelationBound) {
12135 output.WriteRawTag(200, 19);
12136 output.WriteInt32(RoutingCutSubsetSizeForTightBinaryRelationBound);
12137 }
12138 if (HasRoutingCutDpEffort) {
12139 output.WriteRawTag(209, 19);
12140 output.WriteDouble(RoutingCutDpEffort);
12141 }
12142 if (HasMaximumRegionsToSplitInDisconnectedNoOverlap2D) {
12143 output.WriteRawTag(216, 19);
12144 output.WriteInt32(MaximumRegionsToSplitInDisconnectedNoOverlap2D);
12145 }
12146 if (HasRoutingCutSubsetSizeForExactBinaryRelationBound) {
12147 output.WriteRawTag(224, 19);
12148 output.WriteInt32(RoutingCutSubsetSizeForExactBinaryRelationBound);
12149 }
12150 if (HasRoutingCutMaxInfeasiblePathLength) {
12151 output.WriteRawTag(232, 19);
12152 output.WriteInt32(RoutingCutMaxInfeasiblePathLength);
12153 }
12154 if (HasRoutingCutSubsetSizeForShortestPathsBound) {
12155 output.WriteRawTag(240, 19);
12156 output.WriteInt32(RoutingCutSubsetSizeForShortestPathsBound);
12157 }
12158 if (HasMaxAlldiffDomainSize) {
12159 output.WriteRawTag(128, 20);
12160 output.WriteInt32(MaxAlldiffDomainSize);
12161 }
12162 if (HasNoOverlap2DBooleanRelationsLimit) {
12163 output.WriteRawTag(136, 20);
12164 output.WriteInt32(NoOverlap2DBooleanRelationsLimit);
12165 }
12166 if (HasShareGlueClausesDtime) {
12167 output.WriteRawTag(145, 20);
12168 output.WriteDouble(ShareGlueClausesDtime);
12169 }
12170 if (HasUseLinear3ForNoOverlap2DPrecedences) {
12171 output.WriteRawTag(152, 20);
12172 output.WriteBool(UseLinear3ForNoOverlap2DPrecedences);
12173 }
12174 if (HasFilterSatPostsolveClauses) {
12175 output.WriteRawTag(160, 20);
12176 output.WriteBool(FilterSatPostsolveClauses);
12177 }
12178 if (_unknownFields != null) {
12179 _unknownFields.WriteTo(ref output);
12180 }
12181 }
12182 #endif
12183
12184 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12185 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
12186 public int CalculateSize() {
12187 int size = 0;
12188 if (HasName) {
12189 size += 2 + pb::CodedOutputStream.ComputeStringSize(Name);
12190 }
12191 if (HasPreferredVariableOrder) {
12192 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PreferredVariableOrder);
12193 }
12194 if (HasInitialPolarity) {
12195 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) InitialPolarity);
12196 }
12197 if (HasUsePhaseSaving) {
12198 size += 2 + 1;
12199 }
12200 if (HasPolarityRephaseIncrement) {
12201 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PolarityRephaseIncrement);
12202 }
12203 if (HasPolarityExploitLsHints) {
12204 size += 2 + 1;
12205 }
12206 if (HasRandomPolarityRatio) {
12207 size += 2 + 8;
12208 }
12209 if (HasRandomBranchesRatio) {
12210 size += 2 + 8;
12211 }
12212 if (HasUseErwaHeuristic) {
12213 size += 2 + 1;
12214 }
12215 if (HasInitialVariablesActivity) {
12216 size += 2 + 8;
12217 }
12218 if (HasAlsoBumpVariablesInConflictReasons) {
12219 size += 2 + 1;
12220 }
12221 if (HasMinimizationAlgorithm) {
12222 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MinimizationAlgorithm);
12223 }
12224 if (HasBinaryMinimizationAlgorithm) {
12225 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) BinaryMinimizationAlgorithm);
12226 }
12227 if (HasSubsumptionDuringConflictAnalysis) {
12228 size += 2 + 1;
12229 }
12230 if (HasClauseCleanupPeriod) {
12231 size += 1 + pb::CodedOutputStream.ComputeInt32Size(ClauseCleanupPeriod);
12232 }
12233 if (HasClauseCleanupTarget) {
12234 size += 1 + pb::CodedOutputStream.ComputeInt32Size(ClauseCleanupTarget);
12235 }
12236 if (HasClauseCleanupRatio) {
12237 size += 2 + 8;
12238 }
12239 if (HasClauseCleanupProtection) {
12240 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ClauseCleanupProtection);
12241 }
12243 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ClauseCleanupLbdBound);
12244 }
12245 if (HasClauseCleanupOrdering) {
12246 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ClauseCleanupOrdering);
12247 }
12248 if (HasPbCleanupIncrement) {
12249 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PbCleanupIncrement);
12250 }
12251 if (HasPbCleanupRatio) {
12252 size += 2 + 8;
12253 }
12254 if (HasVariableActivityDecay) {
12255 size += 1 + 8;
12256 }
12257 if (HasMaxVariableActivityValue) {
12258 size += 2 + 8;
12259 }
12260 if (HasGlucoseMaxDecay) {
12261 size += 2 + 8;
12262 }
12263 if (HasGlucoseDecayIncrement) {
12264 size += 2 + 8;
12265 }
12266 if (HasGlucoseDecayIncrementPeriod) {
12267 size += 2 + pb::CodedOutputStream.ComputeInt32Size(GlucoseDecayIncrementPeriod);
12268 }
12269 if (HasClauseActivityDecay) {
12270 size += 2 + 8;
12271 }
12272 if (HasMaxClauseActivityValue) {
12273 size += 2 + 8;
12274 }
12275 size += restartAlgorithms_.CalculateSize(_repeated_restartAlgorithms_codec);
12276 if (HasDefaultRestartAlgorithms) {
12277 size += 2 + pb::CodedOutputStream.ComputeStringSize(DefaultRestartAlgorithms);
12278 }
12279 if (HasRestartPeriod) {
12280 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RestartPeriod);
12281 }
12282 if (HasRestartRunningWindowSize) {
12283 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RestartRunningWindowSize);
12284 }
12285 if (HasRestartDlAverageRatio) {
12286 size += 2 + 8;
12287 }
12288 if (HasRestartLbdAverageRatio) {
12289 size += 2 + 8;
12290 }
12291 if (HasUseBlockingRestart) {
12292 size += 2 + 1;
12293 }
12294 if (HasBlockingRestartWindowSize) {
12295 size += 2 + pb::CodedOutputStream.ComputeInt32Size(BlockingRestartWindowSize);
12296 }
12297 if (HasBlockingRestartMultiplier) {
12298 size += 2 + 8;
12299 }
12300 if (HasNumConflictsBeforeStrategyChanges) {
12301 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumConflictsBeforeStrategyChanges);
12302 }
12303 if (HasStrategyChangeIncreaseRatio) {
12304 size += 2 + 8;
12305 }
12306 if (HasMaxTimeInSeconds) {
12307 size += 2 + 8;
12308 }
12309 if (HasMaxDeterministicTime) {
12310 size += 2 + 8;
12311 }
12312 if (HasMaxNumDeterministicBatches) {
12313 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxNumDeterministicBatches);
12314 }
12315 if (HasMaxNumberOfConflicts) {
12316 size += 2 + pb::CodedOutputStream.ComputeInt64Size(MaxNumberOfConflicts);
12317 }
12318 if (HasMaxMemoryInMb) {
12319 size += 2 + pb::CodedOutputStream.ComputeInt64Size(MaxMemoryInMb);
12320 }
12321 if (HasAbsoluteGapLimit) {
12322 size += 2 + 8;
12323 }
12324 if (HasRelativeGapLimit) {
12325 size += 2 + 8;
12326 }
12327 if (HasRandomSeed) {
12328 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RandomSeed);
12329 }
12330 if (HasPermuteVariableRandomly) {
12331 size += 2 + 1;
12332 }
12333 if (HasPermutePresolveConstraintOrder) {
12334 size += 2 + 1;
12335 }
12336 if (HasUseAbslRandom) {
12337 size += 2 + 1;
12338 }
12339 if (HasLogSearchProgress) {
12340 size += 2 + 1;
12341 }
12342 if (HasLogSubsolverStatistics) {
12343 size += 2 + 1;
12344 }
12345 if (HasLogPrefix) {
12346 size += 2 + pb::CodedOutputStream.ComputeStringSize(LogPrefix);
12347 }
12348 if (HasLogToStdout) {
12349 size += 2 + 1;
12350 }
12351 if (HasLogToResponse) {
12352 size += 2 + 1;
12353 }
12354 if (HasUsePbResolution) {
12355 size += 2 + 1;
12356 }
12357 if (HasMinimizeReductionDuringPbResolution) {
12358 size += 2 + 1;
12359 }
12360 if (HasCountAssumptionLevelsInLbd) {
12361 size += 2 + 1;
12362 }
12363 if (HasPresolveBveThreshold) {
12364 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PresolveBveThreshold);
12365 }
12366 if (HasFilterSatPostsolveClauses) {
12367 size += 2 + 1;
12368 }
12369 if (HasPresolveBveClauseWeight) {
12370 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PresolveBveClauseWeight);
12371 }
12372 if (HasProbingDeterministicTimeLimit) {
12373 size += 2 + 8;
12374 }
12375 if (HasPresolveProbingDeterministicTimeLimit) {
12376 size += 2 + 8;
12377 }
12378 if (HasPresolveBlockedClause) {
12379 size += 2 + 1;
12380 }
12381 if (HasPresolveUseBva) {
12382 size += 2 + 1;
12383 }
12384 if (HasPresolveBvaThreshold) {
12385 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PresolveBvaThreshold);
12386 }
12387 if (HasMaxPresolveIterations) {
12388 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxPresolveIterations);
12389 }
12390 if (HasCpModelPresolve) {
12391 size += 2 + 1;
12392 }
12393 if (HasCpModelProbingLevel) {
12394 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CpModelProbingLevel);
12395 }
12396 if (HasCpModelUseSatPresolve) {
12397 size += 2 + 1;
12398 }
12399 if (HasRemoveFixedVariablesEarly) {
12400 size += 2 + 1;
12401 }
12402 if (HasDetectTableWithCost) {
12403 size += 2 + 1;
12404 }
12405 if (HasTableCompressionLevel) {
12406 size += 2 + pb::CodedOutputStream.ComputeInt32Size(TableCompressionLevel);
12407 }
12408 if (HasExpandAlldiffConstraints) {
12409 size += 2 + 1;
12410 }
12411 if (HasMaxAlldiffDomainSize) {
12412 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxAlldiffDomainSize);
12413 }
12414 if (HasExpandReservoirConstraints) {
12415 size += 2 + 1;
12416 }
12417 if (HasExpandReservoirUsingCircuit) {
12418 size += 2 + 1;
12419 }
12420 if (HasEncodeCumulativeAsReservoir) {
12421 size += 2 + 1;
12422 }
12423 if (HasMaxLinMaxSizeForExpansion) {
12424 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxLinMaxSizeForExpansion);
12425 }
12426 if (HasDisableConstraintExpansion) {
12427 size += 2 + 1;
12428 }
12429 if (HasEncodeComplexLinearConstraintWithInteger) {
12430 size += 2 + 1;
12431 }
12432 if (HasMergeNoOverlapWorkLimit) {
12433 size += 2 + 8;
12434 }
12435 if (HasMergeAtMostOneWorkLimit) {
12436 size += 2 + 8;
12437 }
12438 if (HasPresolveSubstitutionLevel) {
12439 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PresolveSubstitutionLevel);
12440 }
12441 if (HasPresolveExtractIntegerEnforcement) {
12442 size += 2 + 1;
12443 }
12444 if (HasPresolveInclusionWorkLimit) {
12445 size += 2 + pb::CodedOutputStream.ComputeInt64Size(PresolveInclusionWorkLimit);
12446 }
12447 if (HasIgnoreNames) {
12448 size += 2 + 1;
12449 }
12450 if (HasInferAllDiffs) {
12451 size += 2 + 1;
12452 }
12453 if (HasFindBigLinearOverlap) {
12454 size += 2 + 1;
12455 }
12456 if (HasUseSatInprocessing) {
12457 size += 2 + 1;
12458 }
12459 if (HasInprocessingDtimeRatio) {
12460 size += 2 + 8;
12461 }
12462 if (HasInprocessingProbingDtime) {
12463 size += 2 + 8;
12464 }
12465 if (HasInprocessingMinimizationDtime) {
12466 size += 2 + 8;
12467 }
12468 if (HasInprocessingMinimizationUseConflictAnalysis) {
12469 size += 2 + 1;
12470 }
12471 if (HasInprocessingMinimizationUseAllOrderings) {
12472 size += 2 + 1;
12473 }
12474 if (HasNumWorkers) {
12475 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumWorkers);
12476 }
12477 if (HasNumSearchWorkers) {
12478 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumSearchWorkers);
12479 }
12480 if (HasNumFullSubsolvers) {
12481 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumFullSubsolvers);
12482 }
12483 size += subsolvers_.CalculateSize(_repeated_subsolvers_codec);
12484 size += extraSubsolvers_.CalculateSize(_repeated_extraSubsolvers_codec);
12485 size += ignoreSubsolvers_.CalculateSize(_repeated_ignoreSubsolvers_codec);
12486 size += filterSubsolvers_.CalculateSize(_repeated_filterSubsolvers_codec);
12487 size += subsolverParams_.CalculateSize(_repeated_subsolverParams_codec);
12488 if (HasInterleaveSearch) {
12489 size += 2 + 1;
12490 }
12491 if (HasInterleaveBatchSize) {
12492 size += 2 + pb::CodedOutputStream.ComputeInt32Size(InterleaveBatchSize);
12493 }
12494 if (HasShareObjectiveBounds) {
12495 size += 2 + 1;
12496 }
12497 if (HasShareLevelZeroBounds) {
12498 size += 2 + 1;
12499 }
12500 if (HasShareBinaryClauses) {
12501 size += 2 + 1;
12502 }
12503 if (HasShareGlueClauses) {
12504 size += 2 + 1;
12505 }
12506 if (HasMinimizeSharedClauses) {
12507 size += 2 + 1;
12508 }
12509 if (HasShareGlueClausesDtime) {
12510 size += 2 + 8;
12511 }
12512 if (HasDebugPostsolveWithFullSolver) {
12513 size += 2 + 1;
12514 }
12515 if (HasDebugMaxNumPresolveOperations) {
12516 size += 2 + pb::CodedOutputStream.ComputeInt32Size(DebugMaxNumPresolveOperations);
12517 }
12518 if (HasDebugCrashOnBadHint) {
12519 size += 2 + 1;
12520 }
12521 if (HasDebugCrashIfPresolveBreaksHint) {
12522 size += 2 + 1;
12523 }
12524 if (HasUseOptimizationHints) {
12525 size += 2 + 1;
12526 }
12527 if (HasCoreMinimizationLevel) {
12528 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CoreMinimizationLevel);
12529 }
12530 if (HasFindMultipleCores) {
12531 size += 2 + 1;
12532 }
12533 if (HasCoverOptimization) {
12534 size += 2 + 1;
12535 }
12536 if (HasMaxSatAssumptionOrder) {
12537 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) MaxSatAssumptionOrder);
12538 }
12539 if (HasMaxSatReverseAssumptionOrder) {
12540 size += 2 + 1;
12541 }
12542 if (HasMaxSatStratification) {
12543 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) MaxSatStratification);
12544 }
12545 if (HasPropagationLoopDetectionFactor) {
12546 size += 2 + 8;
12547 }
12548 if (HasUsePrecedencesInDisjunctiveConstraint) {
12549 size += 2 + 1;
12550 }
12551 if (HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive) {
12552 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxSizeToCreatePrecedenceLiteralsInDisjunctive);
12553 }
12554 if (HasUseStrongPropagationInDisjunctive) {
12555 size += 2 + 1;
12556 }
12557 if (HasUseDynamicPrecedenceInDisjunctive) {
12558 size += 2 + 1;
12559 }
12560 if (HasUseDynamicPrecedenceInCumulative) {
12561 size += 2 + 1;
12562 }
12563 if (HasUseOverloadCheckerInCumulative) {
12564 size += 2 + 1;
12565 }
12566 if (HasUseConservativeScaleOverloadChecker) {
12567 size += 2 + 1;
12568 }
12569 if (HasUseTimetableEdgeFindingInCumulative) {
12570 size += 2 + 1;
12571 }
12572 if (HasMaxNumIntervalsForTimetableEdgeFinding) {
12573 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxNumIntervalsForTimetableEdgeFinding);
12574 }
12575 if (HasUseHardPrecedencesInCumulative) {
12576 size += 2 + 1;
12577 }
12578 if (HasExploitAllPrecedences) {
12579 size += 2 + 1;
12580 }
12581 if (HasUseDisjunctiveConstraintInCumulative) {
12582 size += 2 + 1;
12583 }
12584 if (HasNoOverlap2DBooleanRelationsLimit) {
12585 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NoOverlap2DBooleanRelationsLimit);
12586 }
12587 if (HasUseTimetablingInNoOverlap2D) {
12588 size += 2 + 1;
12589 }
12590 if (HasUseEnergeticReasoningInNoOverlap2D) {
12591 size += 2 + 1;
12592 }
12593 if (HasUseAreaEnergeticReasoningInNoOverlap2D) {
12594 size += 2 + 1;
12595 }
12596 if (HasUseTryEdgeReasoningInNoOverlap2D) {
12597 size += 2 + 1;
12598 }
12599 if (HasMaxPairsPairwiseReasoningInNoOverlap2D) {
12600 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxPairsPairwiseReasoningInNoOverlap2D);
12601 }
12602 if (HasMaximumRegionsToSplitInDisconnectedNoOverlap2D) {
12603 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaximumRegionsToSplitInDisconnectedNoOverlap2D);
12604 }
12605 if (HasUseLinear3ForNoOverlap2DPrecedences) {
12606 size += 2 + 1;
12607 }
12608 if (HasUseDualSchedulingHeuristics) {
12609 size += 2 + 1;
12610 }
12611 if (HasUseAllDifferentForCircuit) {
12612 size += 2 + 1;
12613 }
12614 if (HasRoutingCutSubsetSizeForBinaryRelationBound) {
12615 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RoutingCutSubsetSizeForBinaryRelationBound);
12616 }
12617 if (HasRoutingCutSubsetSizeForTightBinaryRelationBound) {
12618 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RoutingCutSubsetSizeForTightBinaryRelationBound);
12619 }
12620 if (HasRoutingCutSubsetSizeForExactBinaryRelationBound) {
12621 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RoutingCutSubsetSizeForExactBinaryRelationBound);
12622 }
12623 if (HasRoutingCutSubsetSizeForShortestPathsBound) {
12624 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RoutingCutSubsetSizeForShortestPathsBound);
12625 }
12626 if (HasRoutingCutDpEffort) {
12627 size += 2 + 8;
12628 }
12629 if (HasRoutingCutMaxInfeasiblePathLength) {
12630 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RoutingCutMaxInfeasiblePathLength);
12631 }
12632 if (HasSearchBranching) {
12633 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SearchBranching);
12634 }
12635 if (HasHintConflictLimit) {
12636 size += 2 + pb::CodedOutputStream.ComputeInt32Size(HintConflictLimit);
12637 }
12638 if (HasRepairHint) {
12639 size += 2 + 1;
12640 }
12641 if (HasFixVariablesToTheirHintedValue) {
12642 size += 2 + 1;
12643 }
12644 if (HasUseProbingSearch) {
12645 size += 2 + 1;
12646 }
12647 if (HasUseExtendedProbing) {
12648 size += 2 + 1;
12649 }
12650 if (HasProbingNumCombinationsLimit) {
12651 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ProbingNumCombinationsLimit);
12652 }
12653 if (HasShavingDeterministicTimeInProbingSearch) {
12654 size += 2 + 8;
12655 }
12656 if (HasShavingSearchDeterministicTime) {
12657 size += 2 + 8;
12658 }
12659 if (HasShavingSearchThreshold) {
12660 size += 2 + pb::CodedOutputStream.ComputeInt64Size(ShavingSearchThreshold);
12661 }
12662 if (HasUseObjectiveLbSearch) {
12663 size += 2 + 1;
12664 }
12665 if (HasUseObjectiveShavingSearch) {
12666 size += 2 + 1;
12667 }
12668 if (HasVariablesShavingLevel) {
12669 size += 2 + pb::CodedOutputStream.ComputeInt32Size(VariablesShavingLevel);
12670 }
12671 if (HasPseudoCostReliabilityThreshold) {
12672 size += 2 + pb::CodedOutputStream.ComputeInt64Size(PseudoCostReliabilityThreshold);
12673 }
12674 if (HasOptimizeWithCore) {
12675 size += 2 + 1;
12676 }
12677 if (HasOptimizeWithLbTreeSearch) {
12678 size += 2 + 1;
12679 }
12680 if (HasSaveLpBasisInLbTreeSearch) {
12681 size += 2 + 1;
12682 }
12683 if (HasBinarySearchNumConflicts) {
12684 size += 2 + pb::CodedOutputStream.ComputeInt32Size(BinarySearchNumConflicts);
12685 }
12686 if (HasOptimizeWithMaxHs) {
12687 size += 2 + 1;
12688 }
12689 if (HasUseFeasibilityJump) {
12690 size += 2 + 1;
12691 }
12692 if (HasUseLsOnly) {
12693 size += 2 + 1;
12694 }
12695 if (HasFeasibilityJumpDecay) {
12696 size += 2 + 8;
12697 }
12698 if (HasFeasibilityJumpLinearizationLevel) {
12699 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FeasibilityJumpLinearizationLevel);
12700 }
12701 if (HasFeasibilityJumpRestartFactor) {
12702 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FeasibilityJumpRestartFactor);
12703 }
12704 if (HasFeasibilityJumpBatchDtime) {
12705 size += 2 + 8;
12706 }
12707 if (HasFeasibilityJumpVarRandomizationProbability) {
12708 size += 2 + 8;
12709 }
12710 if (HasFeasibilityJumpVarPerburbationRangeRatio) {
12711 size += 2 + 8;
12712 }
12713 if (HasFeasibilityJumpEnableRestarts) {
12714 size += 2 + 1;
12715 }
12716 if (HasFeasibilityJumpMaxExpandedConstraintSize) {
12717 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FeasibilityJumpMaxExpandedConstraintSize);
12718 }
12719 if (HasNumViolationLs) {
12720 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumViolationLs);
12721 }
12722 if (HasViolationLsPerturbationPeriod) {
12723 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ViolationLsPerturbationPeriod);
12724 }
12725 if (HasViolationLsCompoundMoveProbability) {
12726 size += 2 + 8;
12727 }
12728 if (HasSharedTreeNumWorkers) {
12729 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SharedTreeNumWorkers);
12730 }
12731 if (HasUseSharedTreeSearch) {
12732 size += 2 + 1;
12733 }
12734 if (HasSharedTreeWorkerMinRestartsPerSubtree) {
12735 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SharedTreeWorkerMinRestartsPerSubtree);
12736 }
12737 if (HasSharedTreeWorkerEnableTrailSharing) {
12738 size += 2 + 1;
12739 }
12740 if (HasSharedTreeWorkerEnablePhaseSharing) {
12741 size += 2 + 1;
12742 }
12743 if (HasSharedTreeOpenLeavesPerWorker) {
12744 size += 2 + 8;
12745 }
12746 if (HasSharedTreeMaxNodesPerWorker) {
12747 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SharedTreeMaxNodesPerWorker);
12748 }
12749 if (HasSharedTreeSplitStrategy) {
12750 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SharedTreeSplitStrategy);
12751 }
12752 if (HasSharedTreeBalanceTolerance) {
12753 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SharedTreeBalanceTolerance);
12754 }
12755 if (HasEnumerateAllSolutions) {
12756 size += 2 + 1;
12757 }
12758 if (HasKeepAllFeasibleSolutionsInPresolve) {
12759 size += 2 + 1;
12760 }
12761 if (HasFillTightenedDomainsInResponse) {
12762 size += 2 + 1;
12763 }
12764 if (HasFillAdditionalSolutionsInResponse) {
12765 size += 2 + 1;
12766 }
12767 if (HasInstantiateAllVariables) {
12768 size += 2 + 1;
12769 }
12770 if (HasAutoDetectGreaterThanAtLeastOneOf) {
12771 size += 2 + 1;
12772 }
12773 if (HasStopAfterFirstSolution) {
12774 size += 2 + 1;
12775 }
12776 if (HasStopAfterPresolve) {
12777 size += 2 + 1;
12778 }
12779 if (HasStopAfterRootPropagation) {
12780 size += 2 + 1;
12781 }
12782 if (HasLnsInitialDifficulty) {
12783 size += 2 + 8;
12784 }
12785 if (HasLnsInitialDeterministicLimit) {
12786 size += 2 + 8;
12787 }
12788 if (HasUseLns) {
12789 size += 2 + 1;
12790 }
12791 if (HasUseLnsOnly) {
12792 size += 2 + 1;
12793 }
12794 if (HasSolutionPoolSize) {
12795 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SolutionPoolSize);
12796 }
12797 if (HasUseRinsLns) {
12798 size += 2 + 1;
12799 }
12800 if (HasUseFeasibilityPump) {
12801 size += 2 + 1;
12802 }
12803 if (HasUseLbRelaxLns) {
12804 size += 2 + 1;
12805 }
12806 if (HasLbRelaxNumWorkersThreshold) {
12807 size += 2 + pb::CodedOutputStream.ComputeInt32Size(LbRelaxNumWorkersThreshold);
12808 }
12809 if (HasFpRounding) {
12810 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) FpRounding);
12811 }
12812 if (HasDiversifyLnsParams) {
12813 size += 2 + 1;
12814 }
12815 if (HasRandomizeSearch) {
12816 size += 2 + 1;
12817 }
12818 if (HasSearchRandomVariablePoolSize) {
12819 size += 2 + pb::CodedOutputStream.ComputeInt64Size(SearchRandomVariablePoolSize);
12820 }
12821 if (HasPushAllTasksTowardStart) {
12822 size += 2 + 1;
12823 }
12824 if (HasUseOptionalVariables) {
12825 size += 2 + 1;
12826 }
12827 if (HasUseExactLpReason) {
12828 size += 2 + 1;
12829 }
12830 if (HasUseCombinedNoOverlap) {
12831 size += 2 + 1;
12832 }
12833 if (HasAtMostOneMaxExpansionSize) {
12834 size += 2 + pb::CodedOutputStream.ComputeInt32Size(AtMostOneMaxExpansionSize);
12835 }
12836 if (HasCatchSigintSignal) {
12837 size += 2 + 1;
12838 }
12839 if (HasUseImpliedBounds) {
12840 size += 2 + 1;
12841 }
12842 if (HasPolishLpSolution) {
12843 size += 2 + 1;
12844 }
12845 if (HasLpPrimalTolerance) {
12846 size += 2 + 8;
12847 }
12848 if (HasLpDualTolerance) {
12849 size += 2 + 8;
12850 }
12851 if (HasConvertIntervals) {
12852 size += 2 + 1;
12853 }
12854 if (HasSymmetryLevel) {
12855 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SymmetryLevel);
12856 }
12857 if (HasUseSymmetryInLp) {
12858 size += 2 + 1;
12859 }
12860 if (HasKeepSymmetryInPresolve) {
12861 size += 2 + 1;
12862 }
12863 if (HasSymmetryDetectionDeterministicTimeLimit) {
12864 size += 2 + 8;
12865 }
12866 if (HasNewLinearPropagation) {
12867 size += 2 + 1;
12868 }
12869 if (HasLinearSplitSize) {
12870 size += 2 + pb::CodedOutputStream.ComputeInt32Size(LinearSplitSize);
12871 }
12872 if (HasLinearizationLevel) {
12873 size += 2 + pb::CodedOutputStream.ComputeInt32Size(LinearizationLevel);
12874 }
12875 if (HasBooleanEncodingLevel) {
12876 size += 2 + pb::CodedOutputStream.ComputeInt32Size(BooleanEncodingLevel);
12877 }
12878 if (HasMaxDomainSizeWhenEncodingEqNeqConstraints) {
12879 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxDomainSizeWhenEncodingEqNeqConstraints);
12880 }
12881 if (HasMaxNumCuts) {
12882 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxNumCuts);
12883 }
12884 if (HasCutLevel) {
12885 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CutLevel);
12886 }
12887 if (HasOnlyAddCutsAtLevelZero) {
12888 size += 2 + 1;
12889 }
12890 if (HasAddObjectiveCut) {
12891 size += 2 + 1;
12892 }
12893 if (HasAddCgCuts) {
12894 size += 2 + 1;
12895 }
12896 if (HasAddMirCuts) {
12897 size += 2 + 1;
12898 }
12899 if (HasAddZeroHalfCuts) {
12900 size += 2 + 1;
12901 }
12902 if (HasAddCliqueCuts) {
12903 size += 2 + 1;
12904 }
12905 if (HasAddRltCuts) {
12906 size += 2 + 1;
12907 }
12908 if (HasMaxAllDiffCutSize) {
12909 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxAllDiffCutSize);
12910 }
12911 if (HasAddLinMaxCuts) {
12912 size += 2 + 1;
12913 }
12914 if (HasMaxIntegerRoundingScaling) {
12915 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxIntegerRoundingScaling);
12916 }
12917 if (HasAddLpConstraintsLazily) {
12918 size += 2 + 1;
12919 }
12920 if (HasRootLpIterations) {
12921 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RootLpIterations);
12922 }
12923 if (HasMinOrthogonalityForLpConstraints) {
12924 size += 2 + 8;
12925 }
12926 if (HasMaxCutRoundsAtLevelZero) {
12927 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxCutRoundsAtLevelZero);
12928 }
12929 if (HasMaxConsecutiveInactiveCount) {
12930 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxConsecutiveInactiveCount);
12931 }
12932 if (HasCutMaxActiveCountValue) {
12933 size += 2 + 8;
12934 }
12935 if (HasCutActiveCountDecay) {
12936 size += 2 + 8;
12937 }
12938 if (HasCutCleanupTarget) {
12939 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CutCleanupTarget);
12940 }
12941 if (HasNewConstraintsBatchSize) {
12942 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NewConstraintsBatchSize);
12943 }
12944 if (HasExploitIntegerLpSolution) {
12945 size += 2 + 1;
12946 }
12947 if (HasExploitAllLpSolution) {
12948 size += 2 + 1;
12949 }
12950 if (HasExploitBestSolution) {
12951 size += 2 + 1;
12952 }
12953 if (HasExploitRelaxationSolution) {
12954 size += 2 + 1;
12955 }
12956 if (HasExploitObjective) {
12957 size += 2 + 1;
12958 }
12959 if (HasDetectLinearizedProduct) {
12960 size += 2 + 1;
12961 }
12962 if (HasMipMaxBound) {
12963 size += 2 + 8;
12964 }
12965 if (HasMipVarScaling) {
12966 size += 2 + 8;
12967 }
12968 if (HasMipScaleLargeDomain) {
12969 size += 2 + 1;
12970 }
12971 if (HasMipAutomaticallyScaleVariables) {
12972 size += 2 + 1;
12973 }
12974 if (HasOnlySolveIp) {
12975 size += 2 + 1;
12976 }
12977 if (HasMipWantedPrecision) {
12978 size += 2 + 8;
12979 }
12980 if (HasMipMaxActivityExponent) {
12981 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MipMaxActivityExponent);
12982 }
12983 if (HasMipCheckPrecision) {
12984 size += 2 + 8;
12985 }
12986 if (HasMipComputeTrueObjectiveBound) {
12987 size += 2 + 1;
12988 }
12989 if (HasMipMaxValidMagnitude) {
12990 size += 2 + 8;
12991 }
12992 if (HasMipTreatHighMagnitudeBoundsAsInfinity) {
12993 size += 2 + 1;
12994 }
12995 if (HasMipDropTolerance) {
12996 size += 2 + 8;
12997 }
12998 if (HasMipPresolveLevel) {
12999 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MipPresolveLevel);
13000 }
13001 if (_unknownFields != null) {
13002 size += _unknownFields.CalculateSize();
13003 }
13004 return size;
13005 }
13006
13007 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13008 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
13009 public void MergeFrom(SatParameters other) {
13010 if (other == null) {
13011 return;
13012 }
13013 if (other.HasName) {
13014 Name = other.Name;
13015 }
13016 if (other.HasPreferredVariableOrder) {
13017 PreferredVariableOrder = other.PreferredVariableOrder;
13018 }
13019 if (other.HasInitialPolarity) {
13020 InitialPolarity = other.InitialPolarity;
13021 }
13022 if (other.HasUsePhaseSaving) {
13023 UsePhaseSaving = other.UsePhaseSaving;
13024 }
13025 if (other.HasPolarityRephaseIncrement) {
13026 PolarityRephaseIncrement = other.PolarityRephaseIncrement;
13027 }
13028 if (other.HasPolarityExploitLsHints) {
13029 PolarityExploitLsHints = other.PolarityExploitLsHints;
13030 }
13031 if (other.HasRandomPolarityRatio) {
13032 RandomPolarityRatio = other.RandomPolarityRatio;
13033 }
13034 if (other.HasRandomBranchesRatio) {
13035 RandomBranchesRatio = other.RandomBranchesRatio;
13036 }
13037 if (other.HasUseErwaHeuristic) {
13038 UseErwaHeuristic = other.UseErwaHeuristic;
13039 }
13040 if (other.HasInitialVariablesActivity) {
13041 InitialVariablesActivity = other.InitialVariablesActivity;
13042 }
13043 if (other.HasAlsoBumpVariablesInConflictReasons) {
13044 AlsoBumpVariablesInConflictReasons = other.AlsoBumpVariablesInConflictReasons;
13045 }
13046 if (other.HasMinimizationAlgorithm) {
13047 MinimizationAlgorithm = other.MinimizationAlgorithm;
13048 }
13049 if (other.HasBinaryMinimizationAlgorithm) {
13050 BinaryMinimizationAlgorithm = other.BinaryMinimizationAlgorithm;
13051 }
13052 if (other.HasSubsumptionDuringConflictAnalysis) {
13053 SubsumptionDuringConflictAnalysis = other.SubsumptionDuringConflictAnalysis;
13054 }
13055 if (other.HasClauseCleanupPeriod) {
13056 ClauseCleanupPeriod = other.ClauseCleanupPeriod;
13057 }
13058 if (other.HasClauseCleanupTarget) {
13059 ClauseCleanupTarget = other.ClauseCleanupTarget;
13060 }
13061 if (other.HasClauseCleanupRatio) {
13062 ClauseCleanupRatio = other.ClauseCleanupRatio;
13063 }
13064 if (other.HasClauseCleanupProtection) {
13065 ClauseCleanupProtection = other.ClauseCleanupProtection;
13066 }
13067 if (other.HasClauseCleanupLbdBound) {
13068 ClauseCleanupLbdBound = other.ClauseCleanupLbdBound;
13069 }
13070 if (other.HasClauseCleanupOrdering) {
13071 ClauseCleanupOrdering = other.ClauseCleanupOrdering;
13072 }
13073 if (other.HasPbCleanupIncrement) {
13074 PbCleanupIncrement = other.PbCleanupIncrement;
13075 }
13076 if (other.HasPbCleanupRatio) {
13077 PbCleanupRatio = other.PbCleanupRatio;
13078 }
13079 if (other.HasVariableActivityDecay) {
13080 VariableActivityDecay = other.VariableActivityDecay;
13081 }
13082 if (other.HasMaxVariableActivityValue) {
13083 MaxVariableActivityValue = other.MaxVariableActivityValue;
13084 }
13085 if (other.HasGlucoseMaxDecay) {
13086 GlucoseMaxDecay = other.GlucoseMaxDecay;
13087 }
13088 if (other.HasGlucoseDecayIncrement) {
13089 GlucoseDecayIncrement = other.GlucoseDecayIncrement;
13090 }
13091 if (other.HasGlucoseDecayIncrementPeriod) {
13092 GlucoseDecayIncrementPeriod = other.GlucoseDecayIncrementPeriod;
13093 }
13094 if (other.HasClauseActivityDecay) {
13095 ClauseActivityDecay = other.ClauseActivityDecay;
13096 }
13097 if (other.HasMaxClauseActivityValue) {
13098 MaxClauseActivityValue = other.MaxClauseActivityValue;
13099 }
13100 restartAlgorithms_.Add(other.restartAlgorithms_);
13101 if (other.HasDefaultRestartAlgorithms) {
13102 DefaultRestartAlgorithms = other.DefaultRestartAlgorithms;
13103 }
13104 if (other.HasRestartPeriod) {
13105 RestartPeriod = other.RestartPeriod;
13106 }
13107 if (other.HasRestartRunningWindowSize) {
13108 RestartRunningWindowSize = other.RestartRunningWindowSize;
13109 }
13110 if (other.HasRestartDlAverageRatio) {
13111 RestartDlAverageRatio = other.RestartDlAverageRatio;
13112 }
13113 if (other.HasRestartLbdAverageRatio) {
13114 RestartLbdAverageRatio = other.RestartLbdAverageRatio;
13115 }
13116 if (other.HasUseBlockingRestart) {
13117 UseBlockingRestart = other.UseBlockingRestart;
13118 }
13119 if (other.HasBlockingRestartWindowSize) {
13120 BlockingRestartWindowSize = other.BlockingRestartWindowSize;
13121 }
13122 if (other.HasBlockingRestartMultiplier) {
13123 BlockingRestartMultiplier = other.BlockingRestartMultiplier;
13124 }
13125 if (other.HasNumConflictsBeforeStrategyChanges) {
13126 NumConflictsBeforeStrategyChanges = other.NumConflictsBeforeStrategyChanges;
13127 }
13128 if (other.HasStrategyChangeIncreaseRatio) {
13129 StrategyChangeIncreaseRatio = other.StrategyChangeIncreaseRatio;
13130 }
13131 if (other.HasMaxTimeInSeconds) {
13132 MaxTimeInSeconds = other.MaxTimeInSeconds;
13133 }
13134 if (other.HasMaxDeterministicTime) {
13135 MaxDeterministicTime = other.MaxDeterministicTime;
13136 }
13137 if (other.HasMaxNumDeterministicBatches) {
13138 MaxNumDeterministicBatches = other.MaxNumDeterministicBatches;
13139 }
13140 if (other.HasMaxNumberOfConflicts) {
13141 MaxNumberOfConflicts = other.MaxNumberOfConflicts;
13142 }
13143 if (other.HasMaxMemoryInMb) {
13144 MaxMemoryInMb = other.MaxMemoryInMb;
13145 }
13146 if (other.HasAbsoluteGapLimit) {
13147 AbsoluteGapLimit = other.AbsoluteGapLimit;
13148 }
13149 if (other.HasRelativeGapLimit) {
13150 RelativeGapLimit = other.RelativeGapLimit;
13151 }
13152 if (other.HasRandomSeed) {
13153 RandomSeed = other.RandomSeed;
13154 }
13155 if (other.HasPermuteVariableRandomly) {
13156 PermuteVariableRandomly = other.PermuteVariableRandomly;
13157 }
13158 if (other.HasPermutePresolveConstraintOrder) {
13159 PermutePresolveConstraintOrder = other.PermutePresolveConstraintOrder;
13160 }
13161 if (other.HasUseAbslRandom) {
13162 UseAbslRandom = other.UseAbslRandom;
13163 }
13164 if (other.HasLogSearchProgress) {
13165 LogSearchProgress = other.LogSearchProgress;
13166 }
13167 if (other.HasLogSubsolverStatistics) {
13168 LogSubsolverStatistics = other.LogSubsolverStatistics;
13169 }
13170 if (other.HasLogPrefix) {
13171 LogPrefix = other.LogPrefix;
13172 }
13173 if (other.HasLogToStdout) {
13174 LogToStdout = other.LogToStdout;
13175 }
13176 if (other.HasLogToResponse) {
13177 LogToResponse = other.LogToResponse;
13178 }
13179 if (other.HasUsePbResolution) {
13180 UsePbResolution = other.UsePbResolution;
13181 }
13182 if (other.HasMinimizeReductionDuringPbResolution) {
13183 MinimizeReductionDuringPbResolution = other.MinimizeReductionDuringPbResolution;
13184 }
13185 if (other.HasCountAssumptionLevelsInLbd) {
13186 CountAssumptionLevelsInLbd = other.CountAssumptionLevelsInLbd;
13187 }
13188 if (other.HasPresolveBveThreshold) {
13189 PresolveBveThreshold = other.PresolveBveThreshold;
13190 }
13191 if (other.HasFilterSatPostsolveClauses) {
13192 FilterSatPostsolveClauses = other.FilterSatPostsolveClauses;
13193 }
13194 if (other.HasPresolveBveClauseWeight) {
13195 PresolveBveClauseWeight = other.PresolveBveClauseWeight;
13196 }
13197 if (other.HasProbingDeterministicTimeLimit) {
13198 ProbingDeterministicTimeLimit = other.ProbingDeterministicTimeLimit;
13199 }
13200 if (other.HasPresolveProbingDeterministicTimeLimit) {
13201 PresolveProbingDeterministicTimeLimit = other.PresolveProbingDeterministicTimeLimit;
13202 }
13203 if (other.HasPresolveBlockedClause) {
13204 PresolveBlockedClause = other.PresolveBlockedClause;
13205 }
13206 if (other.HasPresolveUseBva) {
13207 PresolveUseBva = other.PresolveUseBva;
13208 }
13209 if (other.HasPresolveBvaThreshold) {
13210 PresolveBvaThreshold = other.PresolveBvaThreshold;
13211 }
13212 if (other.HasMaxPresolveIterations) {
13213 MaxPresolveIterations = other.MaxPresolveIterations;
13214 }
13215 if (other.HasCpModelPresolve) {
13216 CpModelPresolve = other.CpModelPresolve;
13217 }
13218 if (other.HasCpModelProbingLevel) {
13219 CpModelProbingLevel = other.CpModelProbingLevel;
13220 }
13221 if (other.HasCpModelUseSatPresolve) {
13222 CpModelUseSatPresolve = other.CpModelUseSatPresolve;
13223 }
13224 if (other.HasRemoveFixedVariablesEarly) {
13225 RemoveFixedVariablesEarly = other.RemoveFixedVariablesEarly;
13226 }
13227 if (other.HasDetectTableWithCost) {
13228 DetectTableWithCost = other.DetectTableWithCost;
13229 }
13230 if (other.HasTableCompressionLevel) {
13231 TableCompressionLevel = other.TableCompressionLevel;
13232 }
13233 if (other.HasExpandAlldiffConstraints) {
13234 ExpandAlldiffConstraints = other.ExpandAlldiffConstraints;
13235 }
13236 if (other.HasMaxAlldiffDomainSize) {
13237 MaxAlldiffDomainSize = other.MaxAlldiffDomainSize;
13238 }
13239 if (other.HasExpandReservoirConstraints) {
13240 ExpandReservoirConstraints = other.ExpandReservoirConstraints;
13241 }
13242 if (other.HasExpandReservoirUsingCircuit) {
13243 ExpandReservoirUsingCircuit = other.ExpandReservoirUsingCircuit;
13244 }
13245 if (other.HasEncodeCumulativeAsReservoir) {
13246 EncodeCumulativeAsReservoir = other.EncodeCumulativeAsReservoir;
13247 }
13248 if (other.HasMaxLinMaxSizeForExpansion) {
13249 MaxLinMaxSizeForExpansion = other.MaxLinMaxSizeForExpansion;
13250 }
13251 if (other.HasDisableConstraintExpansion) {
13252 DisableConstraintExpansion = other.DisableConstraintExpansion;
13253 }
13254 if (other.HasEncodeComplexLinearConstraintWithInteger) {
13255 EncodeComplexLinearConstraintWithInteger = other.EncodeComplexLinearConstraintWithInteger;
13256 }
13257 if (other.HasMergeNoOverlapWorkLimit) {
13258 MergeNoOverlapWorkLimit = other.MergeNoOverlapWorkLimit;
13259 }
13260 if (other.HasMergeAtMostOneWorkLimit) {
13261 MergeAtMostOneWorkLimit = other.MergeAtMostOneWorkLimit;
13262 }
13263 if (other.HasPresolveSubstitutionLevel) {
13264 PresolveSubstitutionLevel = other.PresolveSubstitutionLevel;
13265 }
13266 if (other.HasPresolveExtractIntegerEnforcement) {
13267 PresolveExtractIntegerEnforcement = other.PresolveExtractIntegerEnforcement;
13268 }
13269 if (other.HasPresolveInclusionWorkLimit) {
13270 PresolveInclusionWorkLimit = other.PresolveInclusionWorkLimit;
13271 }
13272 if (other.HasIgnoreNames) {
13273 IgnoreNames = other.IgnoreNames;
13274 }
13275 if (other.HasInferAllDiffs) {
13276 InferAllDiffs = other.InferAllDiffs;
13277 }
13278 if (other.HasFindBigLinearOverlap) {
13279 FindBigLinearOverlap = other.FindBigLinearOverlap;
13280 }
13281 if (other.HasUseSatInprocessing) {
13282 UseSatInprocessing = other.UseSatInprocessing;
13283 }
13284 if (other.HasInprocessingDtimeRatio) {
13285 InprocessingDtimeRatio = other.InprocessingDtimeRatio;
13286 }
13287 if (other.HasInprocessingProbingDtime) {
13288 InprocessingProbingDtime = other.InprocessingProbingDtime;
13289 }
13290 if (other.HasInprocessingMinimizationDtime) {
13291 InprocessingMinimizationDtime = other.InprocessingMinimizationDtime;
13292 }
13293 if (other.HasInprocessingMinimizationUseConflictAnalysis) {
13294 InprocessingMinimizationUseConflictAnalysis = other.InprocessingMinimizationUseConflictAnalysis;
13295 }
13296 if (other.HasInprocessingMinimizationUseAllOrderings) {
13297 InprocessingMinimizationUseAllOrderings = other.InprocessingMinimizationUseAllOrderings;
13298 }
13299 if (other.HasNumWorkers) {
13300 NumWorkers = other.NumWorkers;
13301 }
13302 if (other.HasNumSearchWorkers) {
13303 NumSearchWorkers = other.NumSearchWorkers;
13304 }
13305 if (other.HasNumFullSubsolvers) {
13306 NumFullSubsolvers = other.NumFullSubsolvers;
13307 }
13308 subsolvers_.Add(other.subsolvers_);
13309 extraSubsolvers_.Add(other.extraSubsolvers_);
13310 ignoreSubsolvers_.Add(other.ignoreSubsolvers_);
13311 filterSubsolvers_.Add(other.filterSubsolvers_);
13312 subsolverParams_.Add(other.subsolverParams_);
13313 if (other.HasInterleaveSearch) {
13314 InterleaveSearch = other.InterleaveSearch;
13315 }
13316 if (other.HasInterleaveBatchSize) {
13317 InterleaveBatchSize = other.InterleaveBatchSize;
13318 }
13319 if (other.HasShareObjectiveBounds) {
13320 ShareObjectiveBounds = other.ShareObjectiveBounds;
13321 }
13322 if (other.HasShareLevelZeroBounds) {
13323 ShareLevelZeroBounds = other.ShareLevelZeroBounds;
13324 }
13325 if (other.HasShareBinaryClauses) {
13326 ShareBinaryClauses = other.ShareBinaryClauses;
13327 }
13328 if (other.HasShareGlueClauses) {
13329 ShareGlueClauses = other.ShareGlueClauses;
13330 }
13331 if (other.HasMinimizeSharedClauses) {
13332 MinimizeSharedClauses = other.MinimizeSharedClauses;
13333 }
13334 if (other.HasShareGlueClausesDtime) {
13335 ShareGlueClausesDtime = other.ShareGlueClausesDtime;
13336 }
13337 if (other.HasDebugPostsolveWithFullSolver) {
13338 DebugPostsolveWithFullSolver = other.DebugPostsolveWithFullSolver;
13339 }
13340 if (other.HasDebugMaxNumPresolveOperations) {
13341 DebugMaxNumPresolveOperations = other.DebugMaxNumPresolveOperations;
13342 }
13343 if (other.HasDebugCrashOnBadHint) {
13344 DebugCrashOnBadHint = other.DebugCrashOnBadHint;
13345 }
13346 if (other.HasDebugCrashIfPresolveBreaksHint) {
13347 DebugCrashIfPresolveBreaksHint = other.DebugCrashIfPresolveBreaksHint;
13348 }
13349 if (other.HasUseOptimizationHints) {
13350 UseOptimizationHints = other.UseOptimizationHints;
13351 }
13352 if (other.HasCoreMinimizationLevel) {
13353 CoreMinimizationLevel = other.CoreMinimizationLevel;
13354 }
13355 if (other.HasFindMultipleCores) {
13356 FindMultipleCores = other.FindMultipleCores;
13357 }
13358 if (other.HasCoverOptimization) {
13359 CoverOptimization = other.CoverOptimization;
13360 }
13361 if (other.HasMaxSatAssumptionOrder) {
13362 MaxSatAssumptionOrder = other.MaxSatAssumptionOrder;
13363 }
13364 if (other.HasMaxSatReverseAssumptionOrder) {
13365 MaxSatReverseAssumptionOrder = other.MaxSatReverseAssumptionOrder;
13366 }
13367 if (other.HasMaxSatStratification) {
13368 MaxSatStratification = other.MaxSatStratification;
13369 }
13370 if (other.HasPropagationLoopDetectionFactor) {
13371 PropagationLoopDetectionFactor = other.PropagationLoopDetectionFactor;
13372 }
13373 if (other.HasUsePrecedencesInDisjunctiveConstraint) {
13374 UsePrecedencesInDisjunctiveConstraint = other.UsePrecedencesInDisjunctiveConstraint;
13375 }
13376 if (other.HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive) {
13377 MaxSizeToCreatePrecedenceLiteralsInDisjunctive = other.MaxSizeToCreatePrecedenceLiteralsInDisjunctive;
13378 }
13379 if (other.HasUseStrongPropagationInDisjunctive) {
13380 UseStrongPropagationInDisjunctive = other.UseStrongPropagationInDisjunctive;
13381 }
13382 if (other.HasUseDynamicPrecedenceInDisjunctive) {
13383 UseDynamicPrecedenceInDisjunctive = other.UseDynamicPrecedenceInDisjunctive;
13384 }
13385 if (other.HasUseDynamicPrecedenceInCumulative) {
13386 UseDynamicPrecedenceInCumulative = other.UseDynamicPrecedenceInCumulative;
13387 }
13388 if (other.HasUseOverloadCheckerInCumulative) {
13389 UseOverloadCheckerInCumulative = other.UseOverloadCheckerInCumulative;
13390 }
13391 if (other.HasUseConservativeScaleOverloadChecker) {
13392 UseConservativeScaleOverloadChecker = other.UseConservativeScaleOverloadChecker;
13393 }
13394 if (other.HasUseTimetableEdgeFindingInCumulative) {
13395 UseTimetableEdgeFindingInCumulative = other.UseTimetableEdgeFindingInCumulative;
13396 }
13397 if (other.HasMaxNumIntervalsForTimetableEdgeFinding) {
13398 MaxNumIntervalsForTimetableEdgeFinding = other.MaxNumIntervalsForTimetableEdgeFinding;
13399 }
13400 if (other.HasUseHardPrecedencesInCumulative) {
13401 UseHardPrecedencesInCumulative = other.UseHardPrecedencesInCumulative;
13402 }
13403 if (other.HasExploitAllPrecedences) {
13404 ExploitAllPrecedences = other.ExploitAllPrecedences;
13405 }
13406 if (other.HasUseDisjunctiveConstraintInCumulative) {
13407 UseDisjunctiveConstraintInCumulative = other.UseDisjunctiveConstraintInCumulative;
13408 }
13409 if (other.HasNoOverlap2DBooleanRelationsLimit) {
13410 NoOverlap2DBooleanRelationsLimit = other.NoOverlap2DBooleanRelationsLimit;
13411 }
13412 if (other.HasUseTimetablingInNoOverlap2D) {
13413 UseTimetablingInNoOverlap2D = other.UseTimetablingInNoOverlap2D;
13414 }
13415 if (other.HasUseEnergeticReasoningInNoOverlap2D) {
13416 UseEnergeticReasoningInNoOverlap2D = other.UseEnergeticReasoningInNoOverlap2D;
13417 }
13418 if (other.HasUseAreaEnergeticReasoningInNoOverlap2D) {
13419 UseAreaEnergeticReasoningInNoOverlap2D = other.UseAreaEnergeticReasoningInNoOverlap2D;
13420 }
13421 if (other.HasUseTryEdgeReasoningInNoOverlap2D) {
13422 UseTryEdgeReasoningInNoOverlap2D = other.UseTryEdgeReasoningInNoOverlap2D;
13423 }
13424 if (other.HasMaxPairsPairwiseReasoningInNoOverlap2D) {
13425 MaxPairsPairwiseReasoningInNoOverlap2D = other.MaxPairsPairwiseReasoningInNoOverlap2D;
13426 }
13427 if (other.HasMaximumRegionsToSplitInDisconnectedNoOverlap2D) {
13428 MaximumRegionsToSplitInDisconnectedNoOverlap2D = other.MaximumRegionsToSplitInDisconnectedNoOverlap2D;
13429 }
13430 if (other.HasUseLinear3ForNoOverlap2DPrecedences) {
13431 UseLinear3ForNoOverlap2DPrecedences = other.UseLinear3ForNoOverlap2DPrecedences;
13432 }
13433 if (other.HasUseDualSchedulingHeuristics) {
13434 UseDualSchedulingHeuristics = other.UseDualSchedulingHeuristics;
13435 }
13436 if (other.HasUseAllDifferentForCircuit) {
13437 UseAllDifferentForCircuit = other.UseAllDifferentForCircuit;
13438 }
13439 if (other.HasRoutingCutSubsetSizeForBinaryRelationBound) {
13440 RoutingCutSubsetSizeForBinaryRelationBound = other.RoutingCutSubsetSizeForBinaryRelationBound;
13441 }
13442 if (other.HasRoutingCutSubsetSizeForTightBinaryRelationBound) {
13443 RoutingCutSubsetSizeForTightBinaryRelationBound = other.RoutingCutSubsetSizeForTightBinaryRelationBound;
13444 }
13445 if (other.HasRoutingCutSubsetSizeForExactBinaryRelationBound) {
13446 RoutingCutSubsetSizeForExactBinaryRelationBound = other.RoutingCutSubsetSizeForExactBinaryRelationBound;
13447 }
13448 if (other.HasRoutingCutSubsetSizeForShortestPathsBound) {
13449 RoutingCutSubsetSizeForShortestPathsBound = other.RoutingCutSubsetSizeForShortestPathsBound;
13450 }
13451 if (other.HasRoutingCutDpEffort) {
13452 RoutingCutDpEffort = other.RoutingCutDpEffort;
13453 }
13454 if (other.HasRoutingCutMaxInfeasiblePathLength) {
13455 RoutingCutMaxInfeasiblePathLength = other.RoutingCutMaxInfeasiblePathLength;
13456 }
13457 if (other.HasSearchBranching) {
13458 SearchBranching = other.SearchBranching;
13459 }
13460 if (other.HasHintConflictLimit) {
13461 HintConflictLimit = other.HintConflictLimit;
13462 }
13463 if (other.HasRepairHint) {
13464 RepairHint = other.RepairHint;
13465 }
13466 if (other.HasFixVariablesToTheirHintedValue) {
13467 FixVariablesToTheirHintedValue = other.FixVariablesToTheirHintedValue;
13468 }
13469 if (other.HasUseProbingSearch) {
13470 UseProbingSearch = other.UseProbingSearch;
13471 }
13472 if (other.HasUseExtendedProbing) {
13473 UseExtendedProbing = other.UseExtendedProbing;
13474 }
13475 if (other.HasProbingNumCombinationsLimit) {
13476 ProbingNumCombinationsLimit = other.ProbingNumCombinationsLimit;
13477 }
13478 if (other.HasShavingDeterministicTimeInProbingSearch) {
13479 ShavingDeterministicTimeInProbingSearch = other.ShavingDeterministicTimeInProbingSearch;
13480 }
13481 if (other.HasShavingSearchDeterministicTime) {
13482 ShavingSearchDeterministicTime = other.ShavingSearchDeterministicTime;
13483 }
13484 if (other.HasShavingSearchThreshold) {
13485 ShavingSearchThreshold = other.ShavingSearchThreshold;
13486 }
13487 if (other.HasUseObjectiveLbSearch) {
13488 UseObjectiveLbSearch = other.UseObjectiveLbSearch;
13489 }
13490 if (other.HasUseObjectiveShavingSearch) {
13491 UseObjectiveShavingSearch = other.UseObjectiveShavingSearch;
13492 }
13493 if (other.HasVariablesShavingLevel) {
13494 VariablesShavingLevel = other.VariablesShavingLevel;
13495 }
13496 if (other.HasPseudoCostReliabilityThreshold) {
13497 PseudoCostReliabilityThreshold = other.PseudoCostReliabilityThreshold;
13498 }
13499 if (other.HasOptimizeWithCore) {
13500 OptimizeWithCore = other.OptimizeWithCore;
13501 }
13502 if (other.HasOptimizeWithLbTreeSearch) {
13503 OptimizeWithLbTreeSearch = other.OptimizeWithLbTreeSearch;
13504 }
13505 if (other.HasSaveLpBasisInLbTreeSearch) {
13506 SaveLpBasisInLbTreeSearch = other.SaveLpBasisInLbTreeSearch;
13507 }
13508 if (other.HasBinarySearchNumConflicts) {
13509 BinarySearchNumConflicts = other.BinarySearchNumConflicts;
13510 }
13511 if (other.HasOptimizeWithMaxHs) {
13512 OptimizeWithMaxHs = other.OptimizeWithMaxHs;
13513 }
13514 if (other.HasUseFeasibilityJump) {
13515 UseFeasibilityJump = other.UseFeasibilityJump;
13516 }
13517 if (other.HasUseLsOnly) {
13518 UseLsOnly = other.UseLsOnly;
13519 }
13520 if (other.HasFeasibilityJumpDecay) {
13521 FeasibilityJumpDecay = other.FeasibilityJumpDecay;
13522 }
13523 if (other.HasFeasibilityJumpLinearizationLevel) {
13524 FeasibilityJumpLinearizationLevel = other.FeasibilityJumpLinearizationLevel;
13525 }
13526 if (other.HasFeasibilityJumpRestartFactor) {
13527 FeasibilityJumpRestartFactor = other.FeasibilityJumpRestartFactor;
13528 }
13529 if (other.HasFeasibilityJumpBatchDtime) {
13530 FeasibilityJumpBatchDtime = other.FeasibilityJumpBatchDtime;
13531 }
13532 if (other.HasFeasibilityJumpVarRandomizationProbability) {
13533 FeasibilityJumpVarRandomizationProbability = other.FeasibilityJumpVarRandomizationProbability;
13534 }
13535 if (other.HasFeasibilityJumpVarPerburbationRangeRatio) {
13536 FeasibilityJumpVarPerburbationRangeRatio = other.FeasibilityJumpVarPerburbationRangeRatio;
13537 }
13538 if (other.HasFeasibilityJumpEnableRestarts) {
13539 FeasibilityJumpEnableRestarts = other.FeasibilityJumpEnableRestarts;
13540 }
13541 if (other.HasFeasibilityJumpMaxExpandedConstraintSize) {
13542 FeasibilityJumpMaxExpandedConstraintSize = other.FeasibilityJumpMaxExpandedConstraintSize;
13543 }
13544 if (other.HasNumViolationLs) {
13545 NumViolationLs = other.NumViolationLs;
13546 }
13547 if (other.HasViolationLsPerturbationPeriod) {
13548 ViolationLsPerturbationPeriod = other.ViolationLsPerturbationPeriod;
13549 }
13550 if (other.HasViolationLsCompoundMoveProbability) {
13551 ViolationLsCompoundMoveProbability = other.ViolationLsCompoundMoveProbability;
13552 }
13553 if (other.HasSharedTreeNumWorkers) {
13554 SharedTreeNumWorkers = other.SharedTreeNumWorkers;
13555 }
13556 if (other.HasUseSharedTreeSearch) {
13557 UseSharedTreeSearch = other.UseSharedTreeSearch;
13558 }
13559 if (other.HasSharedTreeWorkerMinRestartsPerSubtree) {
13560 SharedTreeWorkerMinRestartsPerSubtree = other.SharedTreeWorkerMinRestartsPerSubtree;
13561 }
13562 if (other.HasSharedTreeWorkerEnableTrailSharing) {
13563 SharedTreeWorkerEnableTrailSharing = other.SharedTreeWorkerEnableTrailSharing;
13564 }
13565 if (other.HasSharedTreeWorkerEnablePhaseSharing) {
13566 SharedTreeWorkerEnablePhaseSharing = other.SharedTreeWorkerEnablePhaseSharing;
13567 }
13568 if (other.HasSharedTreeOpenLeavesPerWorker) {
13569 SharedTreeOpenLeavesPerWorker = other.SharedTreeOpenLeavesPerWorker;
13570 }
13571 if (other.HasSharedTreeMaxNodesPerWorker) {
13572 SharedTreeMaxNodesPerWorker = other.SharedTreeMaxNodesPerWorker;
13573 }
13574 if (other.HasSharedTreeSplitStrategy) {
13575 SharedTreeSplitStrategy = other.SharedTreeSplitStrategy;
13576 }
13577 if (other.HasSharedTreeBalanceTolerance) {
13578 SharedTreeBalanceTolerance = other.SharedTreeBalanceTolerance;
13579 }
13580 if (other.HasEnumerateAllSolutions) {
13581 EnumerateAllSolutions = other.EnumerateAllSolutions;
13582 }
13583 if (other.HasKeepAllFeasibleSolutionsInPresolve) {
13584 KeepAllFeasibleSolutionsInPresolve = other.KeepAllFeasibleSolutionsInPresolve;
13585 }
13586 if (other.HasFillTightenedDomainsInResponse) {
13587 FillTightenedDomainsInResponse = other.FillTightenedDomainsInResponse;
13588 }
13589 if (other.HasFillAdditionalSolutionsInResponse) {
13590 FillAdditionalSolutionsInResponse = other.FillAdditionalSolutionsInResponse;
13591 }
13592 if (other.HasInstantiateAllVariables) {
13593 InstantiateAllVariables = other.InstantiateAllVariables;
13594 }
13595 if (other.HasAutoDetectGreaterThanAtLeastOneOf) {
13596 AutoDetectGreaterThanAtLeastOneOf = other.AutoDetectGreaterThanAtLeastOneOf;
13597 }
13598 if (other.HasStopAfterFirstSolution) {
13599 StopAfterFirstSolution = other.StopAfterFirstSolution;
13600 }
13601 if (other.HasStopAfterPresolve) {
13602 StopAfterPresolve = other.StopAfterPresolve;
13603 }
13604 if (other.HasStopAfterRootPropagation) {
13605 StopAfterRootPropagation = other.StopAfterRootPropagation;
13606 }
13607 if (other.HasLnsInitialDifficulty) {
13608 LnsInitialDifficulty = other.LnsInitialDifficulty;
13609 }
13610 if (other.HasLnsInitialDeterministicLimit) {
13611 LnsInitialDeterministicLimit = other.LnsInitialDeterministicLimit;
13612 }
13613 if (other.HasUseLns) {
13614 UseLns = other.UseLns;
13615 }
13616 if (other.HasUseLnsOnly) {
13617 UseLnsOnly = other.UseLnsOnly;
13618 }
13619 if (other.HasSolutionPoolSize) {
13620 SolutionPoolSize = other.SolutionPoolSize;
13621 }
13622 if (other.HasUseRinsLns) {
13623 UseRinsLns = other.UseRinsLns;
13624 }
13625 if (other.HasUseFeasibilityPump) {
13626 UseFeasibilityPump = other.UseFeasibilityPump;
13627 }
13628 if (other.HasUseLbRelaxLns) {
13629 UseLbRelaxLns = other.UseLbRelaxLns;
13630 }
13631 if (other.HasLbRelaxNumWorkersThreshold) {
13632 LbRelaxNumWorkersThreshold = other.LbRelaxNumWorkersThreshold;
13633 }
13634 if (other.HasFpRounding) {
13635 FpRounding = other.FpRounding;
13636 }
13637 if (other.HasDiversifyLnsParams) {
13638 DiversifyLnsParams = other.DiversifyLnsParams;
13639 }
13640 if (other.HasRandomizeSearch) {
13641 RandomizeSearch = other.RandomizeSearch;
13642 }
13643 if (other.HasSearchRandomVariablePoolSize) {
13644 SearchRandomVariablePoolSize = other.SearchRandomVariablePoolSize;
13645 }
13646 if (other.HasPushAllTasksTowardStart) {
13647 PushAllTasksTowardStart = other.PushAllTasksTowardStart;
13648 }
13649 if (other.HasUseOptionalVariables) {
13650 UseOptionalVariables = other.UseOptionalVariables;
13651 }
13652 if (other.HasUseExactLpReason) {
13653 UseExactLpReason = other.UseExactLpReason;
13654 }
13655 if (other.HasUseCombinedNoOverlap) {
13656 UseCombinedNoOverlap = other.UseCombinedNoOverlap;
13657 }
13658 if (other.HasAtMostOneMaxExpansionSize) {
13659 AtMostOneMaxExpansionSize = other.AtMostOneMaxExpansionSize;
13660 }
13661 if (other.HasCatchSigintSignal) {
13662 CatchSigintSignal = other.CatchSigintSignal;
13663 }
13664 if (other.HasUseImpliedBounds) {
13665 UseImpliedBounds = other.UseImpliedBounds;
13666 }
13667 if (other.HasPolishLpSolution) {
13668 PolishLpSolution = other.PolishLpSolution;
13669 }
13670 if (other.HasLpPrimalTolerance) {
13671 LpPrimalTolerance = other.LpPrimalTolerance;
13672 }
13673 if (other.HasLpDualTolerance) {
13674 LpDualTolerance = other.LpDualTolerance;
13675 }
13676 if (other.HasConvertIntervals) {
13677 ConvertIntervals = other.ConvertIntervals;
13678 }
13679 if (other.HasSymmetryLevel) {
13680 SymmetryLevel = other.SymmetryLevel;
13681 }
13682 if (other.HasUseSymmetryInLp) {
13683 UseSymmetryInLp = other.UseSymmetryInLp;
13684 }
13685 if (other.HasKeepSymmetryInPresolve) {
13686 KeepSymmetryInPresolve = other.KeepSymmetryInPresolve;
13687 }
13688 if (other.HasSymmetryDetectionDeterministicTimeLimit) {
13689 SymmetryDetectionDeterministicTimeLimit = other.SymmetryDetectionDeterministicTimeLimit;
13690 }
13691 if (other.HasNewLinearPropagation) {
13692 NewLinearPropagation = other.NewLinearPropagation;
13693 }
13694 if (other.HasLinearSplitSize) {
13695 LinearSplitSize = other.LinearSplitSize;
13696 }
13697 if (other.HasLinearizationLevel) {
13698 LinearizationLevel = other.LinearizationLevel;
13699 }
13700 if (other.HasBooleanEncodingLevel) {
13701 BooleanEncodingLevel = other.BooleanEncodingLevel;
13702 }
13703 if (other.HasMaxDomainSizeWhenEncodingEqNeqConstraints) {
13704 MaxDomainSizeWhenEncodingEqNeqConstraints = other.MaxDomainSizeWhenEncodingEqNeqConstraints;
13705 }
13706 if (other.HasMaxNumCuts) {
13707 MaxNumCuts = other.MaxNumCuts;
13708 }
13709 if (other.HasCutLevel) {
13710 CutLevel = other.CutLevel;
13711 }
13712 if (other.HasOnlyAddCutsAtLevelZero) {
13713 OnlyAddCutsAtLevelZero = other.OnlyAddCutsAtLevelZero;
13714 }
13715 if (other.HasAddObjectiveCut) {
13716 AddObjectiveCut = other.AddObjectiveCut;
13717 }
13718 if (other.HasAddCgCuts) {
13719 AddCgCuts = other.AddCgCuts;
13720 }
13721 if (other.HasAddMirCuts) {
13722 AddMirCuts = other.AddMirCuts;
13723 }
13724 if (other.HasAddZeroHalfCuts) {
13725 AddZeroHalfCuts = other.AddZeroHalfCuts;
13726 }
13727 if (other.HasAddCliqueCuts) {
13728 AddCliqueCuts = other.AddCliqueCuts;
13729 }
13730 if (other.HasAddRltCuts) {
13731 AddRltCuts = other.AddRltCuts;
13732 }
13733 if (other.HasMaxAllDiffCutSize) {
13734 MaxAllDiffCutSize = other.MaxAllDiffCutSize;
13735 }
13736 if (other.HasAddLinMaxCuts) {
13737 AddLinMaxCuts = other.AddLinMaxCuts;
13738 }
13739 if (other.HasMaxIntegerRoundingScaling) {
13740 MaxIntegerRoundingScaling = other.MaxIntegerRoundingScaling;
13741 }
13742 if (other.HasAddLpConstraintsLazily) {
13743 AddLpConstraintsLazily = other.AddLpConstraintsLazily;
13744 }
13745 if (other.HasRootLpIterations) {
13746 RootLpIterations = other.RootLpIterations;
13747 }
13748 if (other.HasMinOrthogonalityForLpConstraints) {
13749 MinOrthogonalityForLpConstraints = other.MinOrthogonalityForLpConstraints;
13750 }
13751 if (other.HasMaxCutRoundsAtLevelZero) {
13752 MaxCutRoundsAtLevelZero = other.MaxCutRoundsAtLevelZero;
13753 }
13754 if (other.HasMaxConsecutiveInactiveCount) {
13755 MaxConsecutiveInactiveCount = other.MaxConsecutiveInactiveCount;
13756 }
13757 if (other.HasCutMaxActiveCountValue) {
13758 CutMaxActiveCountValue = other.CutMaxActiveCountValue;
13759 }
13760 if (other.HasCutActiveCountDecay) {
13761 CutActiveCountDecay = other.CutActiveCountDecay;
13762 }
13763 if (other.HasCutCleanupTarget) {
13764 CutCleanupTarget = other.CutCleanupTarget;
13765 }
13766 if (other.HasNewConstraintsBatchSize) {
13767 NewConstraintsBatchSize = other.NewConstraintsBatchSize;
13768 }
13769 if (other.HasExploitIntegerLpSolution) {
13770 ExploitIntegerLpSolution = other.ExploitIntegerLpSolution;
13771 }
13772 if (other.HasExploitAllLpSolution) {
13773 ExploitAllLpSolution = other.ExploitAllLpSolution;
13774 }
13775 if (other.HasExploitBestSolution) {
13776 ExploitBestSolution = other.ExploitBestSolution;
13777 }
13778 if (other.HasExploitRelaxationSolution) {
13779 ExploitRelaxationSolution = other.ExploitRelaxationSolution;
13780 }
13781 if (other.HasExploitObjective) {
13782 ExploitObjective = other.ExploitObjective;
13783 }
13784 if (other.HasDetectLinearizedProduct) {
13785 DetectLinearizedProduct = other.DetectLinearizedProduct;
13786 }
13787 if (other.HasMipMaxBound) {
13788 MipMaxBound = other.MipMaxBound;
13789 }
13790 if (other.HasMipVarScaling) {
13791 MipVarScaling = other.MipVarScaling;
13792 }
13793 if (other.HasMipScaleLargeDomain) {
13794 MipScaleLargeDomain = other.MipScaleLargeDomain;
13795 }
13796 if (other.HasMipAutomaticallyScaleVariables) {
13797 MipAutomaticallyScaleVariables = other.MipAutomaticallyScaleVariables;
13798 }
13799 if (other.HasOnlySolveIp) {
13800 OnlySolveIp = other.OnlySolveIp;
13801 }
13802 if (other.HasMipWantedPrecision) {
13803 MipWantedPrecision = other.MipWantedPrecision;
13804 }
13805 if (other.HasMipMaxActivityExponent) {
13806 MipMaxActivityExponent = other.MipMaxActivityExponent;
13807 }
13808 if (other.HasMipCheckPrecision) {
13809 MipCheckPrecision = other.MipCheckPrecision;
13810 }
13811 if (other.HasMipComputeTrueObjectiveBound) {
13812 MipComputeTrueObjectiveBound = other.MipComputeTrueObjectiveBound;
13813 }
13814 if (other.HasMipMaxValidMagnitude) {
13815 MipMaxValidMagnitude = other.MipMaxValidMagnitude;
13816 }
13817 if (other.HasMipTreatHighMagnitudeBoundsAsInfinity) {
13818 MipTreatHighMagnitudeBoundsAsInfinity = other.MipTreatHighMagnitudeBoundsAsInfinity;
13819 }
13820 if (other.HasMipDropTolerance) {
13821 MipDropTolerance = other.MipDropTolerance;
13822 }
13823 if (other.HasMipPresolveLevel) {
13824 MipPresolveLevel = other.MipPresolveLevel;
13825 }
13826 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
13827 }
13828
13829 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13830 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
13831 public void MergeFrom(pb::CodedInputStream input) {
13832 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13833 input.ReadRawMessage(this);
13834 #else
13835 uint tag;
13836 while ((tag = input.ReadTag()) != 0) {
13837 if ((tag & 7) == 4) {
13838 // Abort on any end group tag.
13839 return;
13840 }
13841 switch(tag) {
13842 default:
13843 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
13844 break;
13845 case 8: {
13846 PreferredVariableOrder = (global::Google.OrTools.Sat.SatParameters.Types.VariableOrder) input.ReadEnum();
13847 break;
13848 }
13849 case 16: {
13850 InitialPolarity = (global::Google.OrTools.Sat.SatParameters.Types.Polarity) input.ReadEnum();
13851 break;
13852 }
13853 case 32: {
13854 MinimizationAlgorithm = (global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm) input.ReadEnum();
13855 break;
13856 }
13857 case 88: {
13858 ClauseCleanupPeriod = input.ReadInt32();
13859 break;
13860 }
13861 case 104: {
13862 ClauseCleanupTarget = input.ReadInt32();
13863 break;
13864 }
13865 case 121: {
13866 VariableActivityDecay = input.ReadDouble();
13867 break;
13868 }
13869 case 129: {
13870 MaxVariableActivityValue = input.ReadDouble();
13871 break;
13872 }
13873 case 137: {
13874 ClauseActivityDecay = input.ReadDouble();
13875 break;
13876 }
13877 case 145: {
13878 MaxClauseActivityValue = input.ReadDouble();
13879 break;
13880 }
13881 case 177: {
13882 GlucoseMaxDecay = input.ReadDouble();
13883 break;
13884 }
13885 case 185: {
13886 GlucoseDecayIncrement = input.ReadDouble();
13887 break;
13888 }
13889 case 192: {
13890 GlucoseDecayIncrementPeriod = input.ReadInt32();
13891 break;
13892 }
13893 case 240: {
13894 RestartPeriod = input.ReadInt32();
13895 break;
13896 }
13897 case 248: {
13898 RandomSeed = input.ReadInt32();
13899 break;
13900 }
13901 case 257: {
13902 RandomBranchesRatio = input.ReadDouble();
13903 break;
13904 }
13905 case 272: {
13906 BinaryMinimizationAlgorithm = (global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm) input.ReadEnum();
13907 break;
13908 }
13909 case 280: {
13910 UseOptimizationHints = input.ReadBool();
13911 break;
13912 }
13913 case 289: {
13914 MaxTimeInSeconds = input.ReadDouble();
13915 break;
13916 }
13917 case 296: {
13918 MaxNumberOfConflicts = input.ReadInt64();
13919 break;
13920 }
13921 case 320: {
13922 MaxMemoryInMb = input.ReadInt64();
13923 break;
13924 }
13925 case 328: {
13926 LogSearchProgress = input.ReadBool();
13927 break;
13928 }
13929 case 344: {
13930 UsePbResolution = input.ReadBool();
13931 break;
13932 }
13933 case 352: {
13934 UsePhaseSaving = input.ReadBool();
13935 break;
13936 }
13937 case 361: {
13938 RandomPolarityRatio = input.ReadDouble();
13939 break;
13940 }
13941 case 368: {
13942 PbCleanupIncrement = input.ReadInt32();
13943 break;
13944 }
13945 case 377: {
13946 PbCleanupRatio = input.ReadDouble();
13947 break;
13948 }
13949 case 384: {
13950 MinimizeReductionDuringPbResolution = input.ReadBool();
13951 break;
13952 }
13953 case 392: {
13954 CountAssumptionLevelsInLbd = input.ReadBool();
13955 break;
13956 }
13957 case 400: {
13958 CoreMinimizationLevel = input.ReadInt32();
13959 break;
13960 }
13961 case 408: {
13962 MaxSatAssumptionOrder = (global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder) input.ReadEnum();
13963 break;
13964 }
13965 case 416: {
13966 MaxSatReverseAssumptionOrder = input.ReadBool();
13967 break;
13968 }
13969 case 424: {
13970 MaxSatStratification = (global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm) input.ReadEnum();
13971 break;
13972 }
13973 case 432: {
13974 PresolveBveThreshold = input.ReadInt32();
13975 break;
13976 }
13977 case 440: {
13978 PresolveBveClauseWeight = input.ReadInt32();
13979 break;
13980 }
13981 case 448: {
13982 SubsumptionDuringConflictAnalysis = input.ReadBool();
13983 break;
13984 }
13985 case 457: {
13986 PresolveProbingDeterministicTimeLimit = input.ReadDouble();
13987 break;
13988 }
13989 case 464: {
13990 ClauseCleanupProtection = (global::Google.OrTools.Sat.SatParameters.Types.ClauseProtection) input.ReadEnum();
13991 break;
13992 }
13993 case 472: {
13994 ClauseCleanupLbdBound = input.ReadInt32();
13995 break;
13996 }
13997 case 480: {
13998 ClauseCleanupOrdering = (global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering) input.ReadEnum();
13999 break;
14000 }
14001 case 490:
14002 case 488: {
14003 restartAlgorithms_.AddEntriesFrom(input, _repeated_restartAlgorithms_codec);
14004 break;
14005 }
14006 case 496: {
14007 RestartRunningWindowSize = input.ReadInt32();
14008 break;
14009 }
14010 case 505: {
14011 RestartDlAverageRatio = input.ReadDouble();
14012 break;
14013 }
14014 case 512: {
14015 UseBlockingRestart = input.ReadBool();
14016 break;
14017 }
14018 case 520: {
14019 BlockingRestartWindowSize = input.ReadInt32();
14020 break;
14021 }
14022 case 529: {
14023 BlockingRestartMultiplier = input.ReadDouble();
14024 break;
14025 }
14026 case 537: {
14027 MaxDeterministicTime = input.ReadDouble();
14028 break;
14029 }
14030 case 544: {
14031 NumConflictsBeforeStrategyChanges = input.ReadInt32();
14032 break;
14033 }
14034 case 553: {
14035 StrategyChangeIncreaseRatio = input.ReadDouble();
14036 break;
14037 }
14038 case 562: {
14039 DefaultRestartAlgorithms = input.ReadString();
14040 break;
14041 }
14042 case 569: {
14043 RestartLbdAverageRatio = input.ReadDouble();
14044 break;
14045 }
14046 case 576: {
14047 PresolveUseBva = input.ReadBool();
14048 break;
14049 }
14050 case 584: {
14051 PresolveBvaThreshold = input.ReadInt32();
14052 break;
14053 }
14054 case 592: {
14055 UsePrecedencesInDisjunctiveConstraint = input.ReadBool();
14056 break;
14057 }
14058 case 600: {
14059 UseErwaHeuristic = input.ReadBool();
14060 break;
14061 }
14062 case 609: {
14063 InitialVariablesActivity = input.ReadDouble();
14064 break;
14065 }
14066 case 616: {
14067 AlsoBumpVariablesInConflictReasons = input.ReadBool();
14068 break;
14069 }
14070 case 624: {
14071 UseOverloadCheckerInCumulative = input.ReadBool();
14072 break;
14073 }
14074 case 632: {
14075 UseTimetableEdgeFindingInCumulative = input.ReadBool();
14076 break;
14077 }
14078 case 640: {
14079 UseDisjunctiveConstraintInCumulative = input.ReadBool();
14080 break;
14081 }
14082 case 656: {
14083 SearchBranching = (global::Google.OrTools.Sat.SatParameters.Types.SearchBranching) input.ReadEnum();
14084 break;
14085 }
14086 case 664: {
14087 OptimizeWithCore = input.ReadBool();
14088 break;
14089 }
14090 case 672: {
14091 FindMultipleCores = input.ReadBool();
14092 break;
14093 }
14094 case 680: {
14095 OptimizeWithMaxHs = input.ReadBool();
14096 break;
14097 }
14098 case 688: {
14099 CpModelPresolve = input.ReadBool();
14100 break;
14101 }
14102 case 696: {
14103 EnumerateAllSolutions = input.ReadBool();
14104 break;
14105 }
14106 case 704: {
14107 PresolveBlockedClause = input.ReadBool();
14108 break;
14109 }
14110 case 712: {
14111 CoverOptimization = input.ReadBool();
14112 break;
14113 }
14114 case 720: {
14115 LinearizationLevel = input.ReadInt32();
14116 break;
14117 }
14118 case 728: {
14119 MaxNumCuts = input.ReadInt32();
14120 break;
14121 }
14122 case 736: {
14123 OnlyAddCutsAtLevelZero = input.ReadBool();
14124 break;
14125 }
14126 case 744: {
14127 CpModelUseSatPresolve = input.ReadBool();
14128 break;
14129 }
14130 case 752: {
14131 ExploitIntegerLpSolution = input.ReadBool();
14132 break;
14133 }
14134 case 760: {
14135 AutoDetectGreaterThanAtLeastOneOf = input.ReadBool();
14136 break;
14137 }
14138 case 784: {
14139 StopAfterFirstSolution = input.ReadBool();
14140 break;
14141 }
14142 case 792: {
14143 BinarySearchNumConflicts = input.ReadInt32();
14144 break;
14145 }
14146 case 800: {
14147 NumSearchWorkers = input.ReadInt32();
14148 break;
14149 }
14150 case 808: {
14151 UseLnsOnly = input.ReadBool();
14152 break;
14153 }
14154 case 824: {
14155 RandomizeSearch = input.ReadBool();
14156 break;
14157 }
14158 case 832: {
14159 SearchRandomVariablePoolSize = input.ReadInt64();
14160 break;
14161 }
14162 case 848: {
14163 InstantiateAllVariables = input.ReadBool();
14164 break;
14165 }
14166 case 856: {
14167 BooleanEncodingLevel = input.ReadInt32();
14168 break;
14169 }
14170 case 864: {
14171 UseOptionalVariables = input.ReadBool();
14172 break;
14173 }
14174 case 872: {
14175 UseExactLpReason = input.ReadBool();
14176 break;
14177 }
14178 case 880: {
14179 CpModelProbingLevel = input.ReadInt32();
14180 break;
14181 }
14182 case 896: {
14183 AddLpConstraintsLazily = input.ReadBool();
14184 break;
14185 }
14186 case 904: {
14187 ShareObjectiveBounds = input.ReadBool();
14188 break;
14189 }
14190 case 912: {
14191 ShareLevelZeroBounds = input.ReadBool();
14192 break;
14193 }
14194 case 921: {
14195 MinOrthogonalityForLpConstraints = input.ReadDouble();
14196 break;
14197 }
14198 case 928: {
14199 ExploitAllLpSolution = input.ReadBool();
14200 break;
14201 }
14202 case 936: {
14203 AddCgCuts = input.ReadBool();
14204 break;
14205 }
14206 case 952: {
14207 MaxIntegerRoundingScaling = input.ReadInt32();
14208 break;
14209 }
14210 case 960: {
14211 AddMirCuts = input.ReadBool();
14212 break;
14213 }
14214 case 968: {
14215 MaxConsecutiveInactiveCount = input.ReadInt32();
14216 break;
14217 }
14218 case 976: {
14219 NewConstraintsBatchSize = input.ReadInt32();
14220 break;
14221 }
14222 case 984: {
14223 PseudoCostReliabilityThreshold = input.ReadInt64();
14224 break;
14225 }
14226 case 993: {
14227 MipMaxBound = input.ReadDouble();
14228 break;
14229 }
14230 case 1001: {
14231 MipVarScaling = input.ReadDouble();
14232 break;
14233 }
14234 case 1009: {
14235 MipWantedPrecision = input.ReadDouble();
14236 break;
14237 }
14238 case 1016: {
14239 MipMaxActivityExponent = input.ReadInt32();
14240 break;
14241 }
14242 case 1025: {
14243 MipCheckPrecision = input.ReadDouble();
14244 break;
14245 }
14246 case 1032: {
14247 UseRinsLns = input.ReadBool();
14248 break;
14249 }
14250 case 1040: {
14251 ExploitBestSolution = input.ReadBool();
14252 break;
14253 }
14254 case 1048: {
14255 ExploitObjective = input.ReadBool();
14256 break;
14257 }
14258 case 1056: {
14259 FillTightenedDomainsInResponse = input.ReadBool();
14260 break;
14261 }
14262 case 1064: {
14263 UseCombinedNoOverlap = input.ReadBool();
14264 break;
14265 }
14266 case 1072: {
14267 InterleaveBatchSize = input.ReadInt32();
14268 break;
14269 }
14270 case 1080: {
14271 CatchSigintSignal = input.ReadBool();
14272 break;
14273 }
14274 case 1088: {
14275 InterleaveSearch = input.ReadBool();
14276 break;
14277 }
14278 case 1096: {
14279 DiversifyLnsParams = input.ReadBool();
14280 break;
14281 }
14282 case 1104: {
14283 MaxPresolveIterations = input.ReadInt32();
14284 break;
14285 }
14286 case 1152: {
14287 UseImpliedBounds = input.ReadBool();
14288 break;
14289 }
14290 case 1161: {
14291 MergeNoOverlapWorkLimit = input.ReadDouble();
14292 break;
14293 }
14294 case 1169: {
14295 MergeAtMostOneWorkLimit = input.ReadDouble();
14296 break;
14297 }
14298 case 1176: {
14299 PresolveSubstitutionLevel = input.ReadInt32();
14300 break;
14301 }
14302 case 1184: {
14303 MaxAllDiffCutSize = input.ReadInt32();
14304 break;
14305 }
14306 case 1192: {
14307 StopAfterPresolve = input.ReadBool();
14308 break;
14309 }
14310 case 1208: {
14311 DebugMaxNumPresolveOperations = input.ReadInt32();
14312 break;
14313 }
14314 case 1216: {
14315 AddLinMaxCuts = input.ReadBool();
14316 break;
14317 }
14318 case 1224: {
14319 HintConflictLimit = input.ReadInt32();
14320 break;
14321 }
14322 case 1232: {
14323 MaxCutRoundsAtLevelZero = input.ReadInt32();
14324 break;
14325 }
14326 case 1241: {
14327 CutMaxActiveCountValue = input.ReadDouble();
14328 break;
14329 }
14330 case 1249: {
14331 CutActiveCountDecay = input.ReadDouble();
14332 break;
14333 }
14334 case 1256: {
14335 CutCleanupTarget = input.ReadInt32();
14336 break;
14337 }
14338 case 1273: {
14339 AbsoluteGapLimit = input.ReadDouble();
14340 break;
14341 }
14342 case 1281: {
14343 RelativeGapLimit = input.ReadDouble();
14344 break;
14345 }
14346 case 1288: {
14347 ExploitRelaxationSolution = input.ReadBool();
14348 break;
14349 }
14350 case 1296: {
14351 DebugPostsolveWithFullSolver = input.ReadBool();
14352 break;
14353 }
14354 case 1304: {
14355 UseSatInprocessing = input.ReadBool();
14356 break;
14357 }
14358 case 1312: {
14359 UseFeasibilityPump = input.ReadBool();
14360 break;
14361 }
14362 case 1320: {
14363 FpRounding = (global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod) input.ReadEnum();
14364 break;
14365 }
14366 case 1328: {
14367 MipAutomaticallyScaleVariables = input.ReadBool();
14368 break;
14369 }
14370 case 1336: {
14371 RepairHint = input.ReadBool();
14372 break;
14373 }
14374 case 1344: {
14375 PolarityRephaseIncrement = input.ReadInt32();
14376 break;
14377 }
14378 case 1352: {
14379 AddZeroHalfCuts = input.ReadBool();
14380 break;
14381 }
14382 case 1360: {
14383 ExpandAlldiffConstraints = input.ReadBool();
14384 break;
14385 }
14386 case 1370: {
14387 Name = input.ReadString();
14388 break;
14389 }
14390 case 1376: {
14391 AddCliqueCuts = input.ReadBool();
14392 break;
14393 }
14394 case 1384: {
14395 KeepAllFeasibleSolutionsInPresolve = input.ReadBool();
14396 break;
14397 }
14398 case 1392: {
14399 PresolveExtractIntegerEnforcement = input.ReadBool();
14400 break;
14401 }
14402 case 1400: {
14403 PolishLpSolution = input.ReadBool();
14404 break;
14405 }
14406 case 1408: {
14407 UseProbingSearch = input.ReadBool();
14408 break;
14409 }
14410 case 1416: {
14411 ConvertIntervals = input.ReadBool();
14412 break;
14413 }
14414 case 1424: {
14415 PermuteVariableRandomly = input.ReadBool();
14416 break;
14417 }
14418 case 1432: {
14419 PermutePresolveConstraintOrder = input.ReadBool();
14420 break;
14421 }
14422 case 1440: {
14423 UseAbslRandom = input.ReadBool();
14424 break;
14425 }
14426 case 1448: {
14427 DisableConstraintExpansion = input.ReadBool();
14428 break;
14429 }
14430 case 1456: {
14431 ExpandReservoirConstraints = input.ReadBool();
14432 break;
14433 }
14434 case 1464: {
14435 SymmetryLevel = input.ReadInt32();
14436 break;
14437 }
14438 case 1482: {
14439 LogPrefix = input.ReadString();
14440 break;
14441 }
14442 case 1488: {
14443 LogToStdout = input.ReadBool();
14444 break;
14445 }
14446 case 1496: {
14447 LogToResponse = input.ReadBool();
14448 break;
14449 }
14450 case 1504: {
14451 OptimizeWithLbTreeSearch = input.ReadBool();
14452 break;
14453 }
14454 case 1512: {
14455 LogSubsolverStatistics = input.ReadBool();
14456 break;
14457 }
14458 case 1521: {
14459 ClauseCleanupRatio = input.ReadDouble();
14460 break;
14461 }
14462 case 1528: {
14463 MaxDomainSizeWhenEncodingEqNeqConstraints = input.ReadInt32();
14464 break;
14465 }
14466 case 1536: {
14467 FixVariablesToTheirHintedValue = input.ReadBool();
14468 break;
14469 }
14470 case 1544: {
14471 SolutionPoolSize = input.ReadInt32();
14472 break;
14473 }
14474 case 1552: {
14475 FillAdditionalSolutionsInResponse = input.ReadBool();
14476 break;
14477 }
14478 case 1560: {
14479 DebugCrashOnBadHint = input.ReadBool();
14480 break;
14481 }
14482 case 1568: {
14483 CutLevel = input.ReadInt32();
14484 break;
14485 }
14486 case 1576: {
14487 AddObjectiveCut = input.ReadBool();
14488 break;
14489 }
14490 case 1584: {
14491 MipComputeTrueObjectiveBound = input.ReadBool();
14492 break;
14493 }
14494 case 1593: {
14495 MipMaxValidMagnitude = input.ReadDouble();
14496 break;
14497 }
14498 case 1600: {
14499 UseTimetablingInNoOverlap2D = input.ReadBool();
14500 break;
14501 }
14502 case 1608: {
14503 PresolveInclusionWorkLimit = input.ReadInt64();
14504 break;
14505 }
14506 case 1616: {
14507 IgnoreNames = input.ReadBool();
14508 break;
14509 }
14510 case 1624: {
14511 ShareBinaryClauses = input.ReadBool();
14512 break;
14513 }
14514 case 1633: {
14515 ShavingDeterministicTimeInProbingSearch = input.ReadDouble();
14516 break;
14517 }
14518 case 1641: {
14519 ShavingSearchDeterministicTime = input.ReadDouble();
14520 break;
14521 }
14522 case 1648: {
14523 NumWorkers = input.ReadInt32();
14524 break;
14525 }
14526 case 1658: {
14527 subsolvers_.AddEntriesFrom(input, _repeated_subsolvers_codec);
14528 break;
14529 }
14530 case 1674: {
14531 ignoreSubsolvers_.AddEntriesFrom(input, _repeated_ignoreSubsolvers_codec);
14532 break;
14533 }
14534 case 1682: {
14535 subsolverParams_.AddEntriesFrom(input, _repeated_subsolverParams_codec);
14536 break;
14537 }
14538 case 1704: {
14539 UseEnergeticReasoningInNoOverlap2D = input.ReadBool();
14540 break;
14541 }
14542 case 1712: {
14543 UseDualSchedulingHeuristics = input.ReadBool();
14544 break;
14545 }
14546 case 1720: {
14547 UseHardPrecedencesInCumulative = input.ReadBool();
14548 break;
14549 }
14550 case 1728: {
14551 DetectTableWithCost = input.ReadBool();
14552 break;
14553 }
14554 case 1736: {
14555 TableCompressionLevel = input.ReadInt32();
14556 break;
14557 }
14558 case 1754: {
14559 extraSubsolvers_.AddEntriesFrom(input, _repeated_extraSubsolvers_codec);
14560 break;
14561 }
14562 case 1760: {
14563 ExploitAllPrecedences = input.ReadBool();
14564 break;
14565 }
14566 case 1769: {
14567 PropagationLoopDetectionFactor = input.ReadDouble();
14568 break;
14569 }
14570 case 1776: {
14571 OnlySolveIp = input.ReadBool();
14572 break;
14573 }
14574 case 1784: {
14575 EncodeComplexLinearConstraintWithInteger = input.ReadBool();
14576 break;
14577 }
14578 case 1792: {
14579 NewLinearPropagation = input.ReadBool();
14580 break;
14581 }
14582 case 1800: {
14583 MipScaleLargeDomain = input.ReadBool();
14584 break;
14585 }
14586 case 1809: {
14587 ProbingDeterministicTimeLimit = input.ReadDouble();
14588 break;
14589 }
14590 case 1816: {
14591 RootLpIterations = input.ReadInt32();
14592 break;
14593 }
14594 case 1824: {
14595 UseObjectiveLbSearch = input.ReadBool();
14596 break;
14597 }
14598 case 1832: {
14599 MaxSizeToCreatePrecedenceLiteralsInDisjunctive = input.ReadInt32();
14600 break;
14601 }
14602 case 1840: {
14603 UseStrongPropagationInDisjunctive = input.ReadBool();
14604 break;
14605 }
14606 case 1857: {
14607 MipDropTolerance = input.ReadDouble();
14608 break;
14609 }
14610 case 1864: {
14611 InferAllDiffs = input.ReadBool();
14612 break;
14613 }
14614 case 1872: {
14615 FindBigLinearOverlap = input.ReadBool();
14616 break;
14617 }
14618 case 1880: {
14619 SharedTreeNumWorkers = input.ReadInt32();
14620 break;
14621 }
14622 case 1888: {
14623 UseSharedTreeSearch = input.ReadBool();
14624 break;
14625 }
14626 case 1904: {
14627 SharedTreeMaxNodesPerWorker = input.ReadInt32();
14628 break;
14629 }
14630 case 1912: {
14631 SharedTreeSplitStrategy = (global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy) input.ReadEnum();
14632 break;
14633 }
14634 case 1920: {
14635 UseLsOnly = input.ReadBool();
14636 break;
14637 }
14638 case 1937: {
14639 FeasibilityJumpDecay = input.ReadDouble();
14640 break;
14641 }
14642 case 1952: {
14643 NumViolationLs = input.ReadInt32();
14644 break;
14645 }
14646 case 1977: {
14647 FeasibilityJumpVarRandomizationProbability = input.ReadDouble();
14648 break;
14649 }
14650 case 1985: {
14651 FeasibilityJumpVarPerburbationRangeRatio = input.ReadDouble();
14652 break;
14653 }
14654 case 1992: {
14655 ViolationLsPerturbationPeriod = input.ReadInt32();
14656 break;
14657 }
14658 case 2000: {
14659 FeasibilityJumpEnableRestarts = input.ReadBool();
14660 break;
14661 }
14662 case 2016: {
14663 StopAfterRootPropagation = input.ReadBool();
14664 break;
14665 }
14666 case 2024: {
14667 UseObjectiveShavingSearch = input.ReadBool();
14668 break;
14669 }
14670 case 2040: {
14671 UseLbRelaxLns = input.ReadBool();
14672 break;
14673 }
14674 case 2048: {
14675 LinearSplitSize = input.ReadInt32();
14676 break;
14677 }
14678 case 2056: {
14679 FeasibilityJumpLinearizationLevel = input.ReadInt32();
14680 break;
14681 }
14682 case 2064: {
14683 FeasibilityJumpRestartFactor = input.ReadInt32();
14684 break;
14685 }
14686 case 2073: {
14687 ViolationLsCompoundMoveProbability = input.ReadDouble();
14688 break;
14689 }
14690 case 2080: {
14691 MaxNumIntervalsForTimetableEdgeFinding = input.ReadInt32();
14692 break;
14693 }
14694 case 2088: {
14695 MipPresolveLevel = input.ReadInt32();
14696 break;
14697 }
14698 case 2096: {
14699 PushAllTasksTowardStart = input.ReadBool();
14700 break;
14701 }
14702 case 2104: {
14703 UseDynamicPrecedenceInDisjunctive = input.ReadBool();
14704 break;
14705 }
14706 case 2112: {
14707 FeasibilityJumpMaxExpandedConstraintSize = input.ReadInt32();
14708 break;
14709 }
14710 case 2120: {
14711 UseFeasibilityJump = input.ReadBool();
14712 break;
14713 }
14714 case 2129: {
14715 LpPrimalTolerance = input.ReadDouble();
14716 break;
14717 }
14718 case 2137: {
14719 LpDualTolerance = input.ReadDouble();
14720 break;
14721 }
14722 case 2144: {
14723 UseDynamicPrecedenceInCumulative = input.ReadBool();
14724 break;
14725 }
14726 case 2152: {
14727 UseExtendedProbing = input.ReadBool();
14728 break;
14729 }
14730 case 2160: {
14731 AtMostOneMaxExpansionSize = input.ReadInt32();
14732 break;
14733 }
14734 case 2168: {
14735 UseAreaEnergeticReasoningInNoOverlap2D = input.ReadBool();
14736 break;
14737 }
14738 case 2176: {
14739 ProbingNumCombinationsLimit = input.ReadInt32();
14740 break;
14741 }
14742 case 2185: {
14743 InprocessingDtimeRatio = input.ReadDouble();
14744 break;
14745 }
14746 case 2193: {
14747 InprocessingProbingDtime = input.ReadDouble();
14748 break;
14749 }
14750 case 2201: {
14751 InprocessingMinimizationDtime = input.ReadDouble();
14752 break;
14753 }
14754 case 2208: {
14755 MaxPairsPairwiseReasoningInNoOverlap2D = input.ReadInt32();
14756 break;
14757 }
14758 case 2216: {
14759 DetectLinearizedProduct = input.ReadBool();
14760 break;
14761 }
14762 case 2224: {
14763 MipTreatHighMagnitudeBoundsAsInfinity = input.ReadBool();
14764 break;
14765 }
14766 case 2232: {
14767 AddRltCuts = input.ReadBool();
14768 break;
14769 }
14770 case 2240: {
14771 MaxLinMaxSizeForExpansion = input.ReadInt32();
14772 break;
14773 }
14774 case 2249: {
14775 SharedTreeOpenLeavesPerWorker = input.ReadDouble();
14776 break;
14777 }
14778 case 2256: {
14779 SharedTreeWorkerMinRestartsPerSubtree = input.ReadInt32();
14780 break;
14781 }
14782 case 2264: {
14783 UseLns = input.ReadBool();
14784 break;
14785 }
14786 case 2272: {
14787 SaveLpBasisInLbTreeSearch = input.ReadBool();
14788 break;
14789 }
14790 case 2280: {
14791 ShareGlueClauses = input.ReadBool();
14792 break;
14793 }
14794 case 2288: {
14795 UseConservativeScaleOverloadChecker = input.ReadBool();
14796 break;
14797 }
14798 case 2296: {
14799 EncodeCumulativeAsReservoir = input.ReadBool();
14800 break;
14801 }
14802 case 2304: {
14803 ExpandReservoirUsingCircuit = input.ReadBool();
14804 break;
14805 }
14806 case 2312: {
14807 VariablesShavingLevel = input.ReadInt32();
14808 break;
14809 }
14810 case 2320: {
14811 ShavingSearchThreshold = input.ReadInt64();
14812 break;
14813 }
14814 case 2328: {
14815 MaxNumDeterministicBatches = input.ReadInt32();
14816 break;
14817 }
14818 case 2337: {
14819 FeasibilityJumpBatchDtime = input.ReadDouble();
14820 break;
14821 }
14822 case 2346: {
14823 filterSubsolvers_.AddEntriesFrom(input, _repeated_filterSubsolvers_codec);
14824 break;
14825 }
14826 case 2352: {
14827 NumFullSubsolvers = input.ReadInt32();
14828 break;
14829 }
14830 case 2360: {
14831 SharedTreeWorkerEnableTrailSharing = input.ReadBool();
14832 break;
14833 }
14834 case 2368: {
14835 LbRelaxNumWorkersThreshold = input.ReadInt32();
14836 break;
14837 }
14838 case 2376: {
14839 InprocessingMinimizationUseConflictAnalysis = input.ReadBool();
14840 break;
14841 }
14842 case 2384: {
14843 InprocessingMinimizationUseAllOrderings = input.ReadBool();
14844 break;
14845 }
14846 case 2392: {
14847 UseTryEdgeReasoningInNoOverlap2D = input.ReadBool();
14848 break;
14849 }
14850 case 2400: {
14851 MinimizeSharedClauses = input.ReadBool();
14852 break;
14853 }
14854 case 2408: {
14855 UseSymmetryInLp = input.ReadBool();
14856 break;
14857 }
14858 case 2417: {
14859 SymmetryDetectionDeterministicTimeLimit = input.ReadDouble();
14860 break;
14861 }
14862 case 2424: {
14863 KeepSymmetryInPresolve = input.ReadBool();
14864 break;
14865 }
14866 case 2432: {
14867 SharedTreeWorkerEnablePhaseSharing = input.ReadBool();
14868 break;
14869 }
14870 case 2440: {
14871 SharedTreeBalanceTolerance = input.ReadInt32();
14872 break;
14873 }
14874 case 2448: {
14875 DebugCrashIfPresolveBreaksHint = input.ReadBool();
14876 break;
14877 }
14878 case 2457: {
14879 LnsInitialDifficulty = input.ReadDouble();
14880 break;
14881 }
14882 case 2465: {
14883 LnsInitialDeterministicLimit = input.ReadDouble();
14884 break;
14885 }
14886 case 2472: {
14887 PolarityExploitLsHints = input.ReadBool();
14888 break;
14889 }
14890 case 2480: {
14891 RemoveFixedVariablesEarly = input.ReadBool();
14892 break;
14893 }
14894 case 2488: {
14895 UseAllDifferentForCircuit = input.ReadBool();
14896 break;
14897 }
14898 case 2496: {
14899 RoutingCutSubsetSizeForBinaryRelationBound = input.ReadInt32();
14900 break;
14901 }
14902 case 2504: {
14903 RoutingCutSubsetSizeForTightBinaryRelationBound = input.ReadInt32();
14904 break;
14905 }
14906 case 2513: {
14907 RoutingCutDpEffort = input.ReadDouble();
14908 break;
14909 }
14910 case 2520: {
14911 MaximumRegionsToSplitInDisconnectedNoOverlap2D = input.ReadInt32();
14912 break;
14913 }
14914 case 2528: {
14915 RoutingCutSubsetSizeForExactBinaryRelationBound = input.ReadInt32();
14916 break;
14917 }
14918 case 2536: {
14919 RoutingCutMaxInfeasiblePathLength = input.ReadInt32();
14920 break;
14921 }
14922 case 2544: {
14923 RoutingCutSubsetSizeForShortestPathsBound = input.ReadInt32();
14924 break;
14925 }
14926 case 2560: {
14927 MaxAlldiffDomainSize = input.ReadInt32();
14928 break;
14929 }
14930 case 2568: {
14931 NoOverlap2DBooleanRelationsLimit = input.ReadInt32();
14932 break;
14933 }
14934 case 2577: {
14935 ShareGlueClausesDtime = input.ReadDouble();
14936 break;
14937 }
14938 case 2584: {
14939 UseLinear3ForNoOverlap2DPrecedences = input.ReadBool();
14940 break;
14941 }
14942 case 2592: {
14943 FilterSatPostsolveClauses = input.ReadBool();
14944 break;
14945 }
14946 }
14947 }
14948 #endif
14949 }
14950
14951 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
14952 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14953 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
14954 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
14955 uint tag;
14956 while ((tag = input.ReadTag()) != 0) {
14957 if ((tag & 7) == 4) {
14958 // Abort on any end group tag.
14959 return;
14960 }
14961 switch(tag) {
14962 default:
14963 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
14964 break;
14965 case 8: {
14966 PreferredVariableOrder = (global::Google.OrTools.Sat.SatParameters.Types.VariableOrder) input.ReadEnum();
14967 break;
14968 }
14969 case 16: {
14970 InitialPolarity = (global::Google.OrTools.Sat.SatParameters.Types.Polarity) input.ReadEnum();
14971 break;
14972 }
14973 case 32: {
14974 MinimizationAlgorithm = (global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm) input.ReadEnum();
14975 break;
14976 }
14977 case 88: {
14978 ClauseCleanupPeriod = input.ReadInt32();
14979 break;
14980 }
14981 case 104: {
14982 ClauseCleanupTarget = input.ReadInt32();
14983 break;
14984 }
14985 case 121: {
14986 VariableActivityDecay = input.ReadDouble();
14987 break;
14988 }
14989 case 129: {
14990 MaxVariableActivityValue = input.ReadDouble();
14991 break;
14992 }
14993 case 137: {
14994 ClauseActivityDecay = input.ReadDouble();
14995 break;
14996 }
14997 case 145: {
14998 MaxClauseActivityValue = input.ReadDouble();
14999 break;
15000 }
15001 case 177: {
15002 GlucoseMaxDecay = input.ReadDouble();
15003 break;
15004 }
15005 case 185: {
15006 GlucoseDecayIncrement = input.ReadDouble();
15007 break;
15008 }
15009 case 192: {
15010 GlucoseDecayIncrementPeriod = input.ReadInt32();
15011 break;
15012 }
15013 case 240: {
15014 RestartPeriod = input.ReadInt32();
15015 break;
15016 }
15017 case 248: {
15018 RandomSeed = input.ReadInt32();
15019 break;
15020 }
15021 case 257: {
15022 RandomBranchesRatio = input.ReadDouble();
15023 break;
15024 }
15025 case 272: {
15026 BinaryMinimizationAlgorithm = (global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm) input.ReadEnum();
15027 break;
15028 }
15029 case 280: {
15030 UseOptimizationHints = input.ReadBool();
15031 break;
15032 }
15033 case 289: {
15034 MaxTimeInSeconds = input.ReadDouble();
15035 break;
15036 }
15037 case 296: {
15038 MaxNumberOfConflicts = input.ReadInt64();
15039 break;
15040 }
15041 case 320: {
15042 MaxMemoryInMb = input.ReadInt64();
15043 break;
15044 }
15045 case 328: {
15046 LogSearchProgress = input.ReadBool();
15047 break;
15048 }
15049 case 344: {
15050 UsePbResolution = input.ReadBool();
15051 break;
15052 }
15053 case 352: {
15054 UsePhaseSaving = input.ReadBool();
15055 break;
15056 }
15057 case 361: {
15058 RandomPolarityRatio = input.ReadDouble();
15059 break;
15060 }
15061 case 368: {
15062 PbCleanupIncrement = input.ReadInt32();
15063 break;
15064 }
15065 case 377: {
15066 PbCleanupRatio = input.ReadDouble();
15067 break;
15068 }
15069 case 384: {
15070 MinimizeReductionDuringPbResolution = input.ReadBool();
15071 break;
15072 }
15073 case 392: {
15074 CountAssumptionLevelsInLbd = input.ReadBool();
15075 break;
15076 }
15077 case 400: {
15078 CoreMinimizationLevel = input.ReadInt32();
15079 break;
15080 }
15081 case 408: {
15082 MaxSatAssumptionOrder = (global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder) input.ReadEnum();
15083 break;
15084 }
15085 case 416: {
15086 MaxSatReverseAssumptionOrder = input.ReadBool();
15087 break;
15088 }
15089 case 424: {
15090 MaxSatStratification = (global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm) input.ReadEnum();
15091 break;
15092 }
15093 case 432: {
15094 PresolveBveThreshold = input.ReadInt32();
15095 break;
15096 }
15097 case 440: {
15098 PresolveBveClauseWeight = input.ReadInt32();
15099 break;
15100 }
15101 case 448: {
15102 SubsumptionDuringConflictAnalysis = input.ReadBool();
15103 break;
15104 }
15105 case 457: {
15106 PresolveProbingDeterministicTimeLimit = input.ReadDouble();
15107 break;
15108 }
15109 case 464: {
15110 ClauseCleanupProtection = (global::Google.OrTools.Sat.SatParameters.Types.ClauseProtection) input.ReadEnum();
15111 break;
15112 }
15113 case 472: {
15114 ClauseCleanupLbdBound = input.ReadInt32();
15115 break;
15116 }
15117 case 480: {
15118 ClauseCleanupOrdering = (global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering) input.ReadEnum();
15119 break;
15120 }
15121 case 490:
15122 case 488: {
15123 restartAlgorithms_.AddEntriesFrom(ref input, _repeated_restartAlgorithms_codec);
15124 break;
15125 }
15126 case 496: {
15127 RestartRunningWindowSize = input.ReadInt32();
15128 break;
15129 }
15130 case 505: {
15131 RestartDlAverageRatio = input.ReadDouble();
15132 break;
15133 }
15134 case 512: {
15135 UseBlockingRestart = input.ReadBool();
15136 break;
15137 }
15138 case 520: {
15139 BlockingRestartWindowSize = input.ReadInt32();
15140 break;
15141 }
15142 case 529: {
15143 BlockingRestartMultiplier = input.ReadDouble();
15144 break;
15145 }
15146 case 537: {
15147 MaxDeterministicTime = input.ReadDouble();
15148 break;
15149 }
15150 case 544: {
15151 NumConflictsBeforeStrategyChanges = input.ReadInt32();
15152 break;
15153 }
15154 case 553: {
15155 StrategyChangeIncreaseRatio = input.ReadDouble();
15156 break;
15157 }
15158 case 562: {
15159 DefaultRestartAlgorithms = input.ReadString();
15160 break;
15161 }
15162 case 569: {
15163 RestartLbdAverageRatio = input.ReadDouble();
15164 break;
15165 }
15166 case 576: {
15167 PresolveUseBva = input.ReadBool();
15168 break;
15169 }
15170 case 584: {
15171 PresolveBvaThreshold = input.ReadInt32();
15172 break;
15173 }
15174 case 592: {
15175 UsePrecedencesInDisjunctiveConstraint = input.ReadBool();
15176 break;
15177 }
15178 case 600: {
15179 UseErwaHeuristic = input.ReadBool();
15180 break;
15181 }
15182 case 609: {
15183 InitialVariablesActivity = input.ReadDouble();
15184 break;
15185 }
15186 case 616: {
15187 AlsoBumpVariablesInConflictReasons = input.ReadBool();
15188 break;
15189 }
15190 case 624: {
15191 UseOverloadCheckerInCumulative = input.ReadBool();
15192 break;
15193 }
15194 case 632: {
15195 UseTimetableEdgeFindingInCumulative = input.ReadBool();
15196 break;
15197 }
15198 case 640: {
15199 UseDisjunctiveConstraintInCumulative = input.ReadBool();
15200 break;
15201 }
15202 case 656: {
15203 SearchBranching = (global::Google.OrTools.Sat.SatParameters.Types.SearchBranching) input.ReadEnum();
15204 break;
15205 }
15206 case 664: {
15207 OptimizeWithCore = input.ReadBool();
15208 break;
15209 }
15210 case 672: {
15211 FindMultipleCores = input.ReadBool();
15212 break;
15213 }
15214 case 680: {
15215 OptimizeWithMaxHs = input.ReadBool();
15216 break;
15217 }
15218 case 688: {
15219 CpModelPresolve = input.ReadBool();
15220 break;
15221 }
15222 case 696: {
15223 EnumerateAllSolutions = input.ReadBool();
15224 break;
15225 }
15226 case 704: {
15227 PresolveBlockedClause = input.ReadBool();
15228 break;
15229 }
15230 case 712: {
15231 CoverOptimization = input.ReadBool();
15232 break;
15233 }
15234 case 720: {
15235 LinearizationLevel = input.ReadInt32();
15236 break;
15237 }
15238 case 728: {
15239 MaxNumCuts = input.ReadInt32();
15240 break;
15241 }
15242 case 736: {
15243 OnlyAddCutsAtLevelZero = input.ReadBool();
15244 break;
15245 }
15246 case 744: {
15247 CpModelUseSatPresolve = input.ReadBool();
15248 break;
15249 }
15250 case 752: {
15251 ExploitIntegerLpSolution = input.ReadBool();
15252 break;
15253 }
15254 case 760: {
15255 AutoDetectGreaterThanAtLeastOneOf = input.ReadBool();
15256 break;
15257 }
15258 case 784: {
15259 StopAfterFirstSolution = input.ReadBool();
15260 break;
15261 }
15262 case 792: {
15263 BinarySearchNumConflicts = input.ReadInt32();
15264 break;
15265 }
15266 case 800: {
15267 NumSearchWorkers = input.ReadInt32();
15268 break;
15269 }
15270 case 808: {
15271 UseLnsOnly = input.ReadBool();
15272 break;
15273 }
15274 case 824: {
15275 RandomizeSearch = input.ReadBool();
15276 break;
15277 }
15278 case 832: {
15279 SearchRandomVariablePoolSize = input.ReadInt64();
15280 break;
15281 }
15282 case 848: {
15283 InstantiateAllVariables = input.ReadBool();
15284 break;
15285 }
15286 case 856: {
15287 BooleanEncodingLevel = input.ReadInt32();
15288 break;
15289 }
15290 case 864: {
15291 UseOptionalVariables = input.ReadBool();
15292 break;
15293 }
15294 case 872: {
15295 UseExactLpReason = input.ReadBool();
15296 break;
15297 }
15298 case 880: {
15299 CpModelProbingLevel = input.ReadInt32();
15300 break;
15301 }
15302 case 896: {
15303 AddLpConstraintsLazily = input.ReadBool();
15304 break;
15305 }
15306 case 904: {
15307 ShareObjectiveBounds = input.ReadBool();
15308 break;
15309 }
15310 case 912: {
15311 ShareLevelZeroBounds = input.ReadBool();
15312 break;
15313 }
15314 case 921: {
15315 MinOrthogonalityForLpConstraints = input.ReadDouble();
15316 break;
15317 }
15318 case 928: {
15319 ExploitAllLpSolution = input.ReadBool();
15320 break;
15321 }
15322 case 936: {
15323 AddCgCuts = input.ReadBool();
15324 break;
15325 }
15326 case 952: {
15327 MaxIntegerRoundingScaling = input.ReadInt32();
15328 break;
15329 }
15330 case 960: {
15331 AddMirCuts = input.ReadBool();
15332 break;
15333 }
15334 case 968: {
15335 MaxConsecutiveInactiveCount = input.ReadInt32();
15336 break;
15337 }
15338 case 976: {
15339 NewConstraintsBatchSize = input.ReadInt32();
15340 break;
15341 }
15342 case 984: {
15343 PseudoCostReliabilityThreshold = input.ReadInt64();
15344 break;
15345 }
15346 case 993: {
15347 MipMaxBound = input.ReadDouble();
15348 break;
15349 }
15350 case 1001: {
15351 MipVarScaling = input.ReadDouble();
15352 break;
15353 }
15354 case 1009: {
15355 MipWantedPrecision = input.ReadDouble();
15356 break;
15357 }
15358 case 1016: {
15359 MipMaxActivityExponent = input.ReadInt32();
15360 break;
15361 }
15362 case 1025: {
15363 MipCheckPrecision = input.ReadDouble();
15364 break;
15365 }
15366 case 1032: {
15367 UseRinsLns = input.ReadBool();
15368 break;
15369 }
15370 case 1040: {
15371 ExploitBestSolution = input.ReadBool();
15372 break;
15373 }
15374 case 1048: {
15375 ExploitObjective = input.ReadBool();
15376 break;
15377 }
15378 case 1056: {
15379 FillTightenedDomainsInResponse = input.ReadBool();
15380 break;
15381 }
15382 case 1064: {
15383 UseCombinedNoOverlap = input.ReadBool();
15384 break;
15385 }
15386 case 1072: {
15387 InterleaveBatchSize = input.ReadInt32();
15388 break;
15389 }
15390 case 1080: {
15391 CatchSigintSignal = input.ReadBool();
15392 break;
15393 }
15394 case 1088: {
15395 InterleaveSearch = input.ReadBool();
15396 break;
15397 }
15398 case 1096: {
15399 DiversifyLnsParams = input.ReadBool();
15400 break;
15401 }
15402 case 1104: {
15403 MaxPresolveIterations = input.ReadInt32();
15404 break;
15405 }
15406 case 1152: {
15407 UseImpliedBounds = input.ReadBool();
15408 break;
15409 }
15410 case 1161: {
15411 MergeNoOverlapWorkLimit = input.ReadDouble();
15412 break;
15413 }
15414 case 1169: {
15415 MergeAtMostOneWorkLimit = input.ReadDouble();
15416 break;
15417 }
15418 case 1176: {
15419 PresolveSubstitutionLevel = input.ReadInt32();
15420 break;
15421 }
15422 case 1184: {
15423 MaxAllDiffCutSize = input.ReadInt32();
15424 break;
15425 }
15426 case 1192: {
15427 StopAfterPresolve = input.ReadBool();
15428 break;
15429 }
15430 case 1208: {
15431 DebugMaxNumPresolveOperations = input.ReadInt32();
15432 break;
15433 }
15434 case 1216: {
15435 AddLinMaxCuts = input.ReadBool();
15436 break;
15437 }
15438 case 1224: {
15439 HintConflictLimit = input.ReadInt32();
15440 break;
15441 }
15442 case 1232: {
15443 MaxCutRoundsAtLevelZero = input.ReadInt32();
15444 break;
15445 }
15446 case 1241: {
15447 CutMaxActiveCountValue = input.ReadDouble();
15448 break;
15449 }
15450 case 1249: {
15451 CutActiveCountDecay = input.ReadDouble();
15452 break;
15453 }
15454 case 1256: {
15455 CutCleanupTarget = input.ReadInt32();
15456 break;
15457 }
15458 case 1273: {
15459 AbsoluteGapLimit = input.ReadDouble();
15460 break;
15461 }
15462 case 1281: {
15463 RelativeGapLimit = input.ReadDouble();
15464 break;
15465 }
15466 case 1288: {
15467 ExploitRelaxationSolution = input.ReadBool();
15468 break;
15469 }
15470 case 1296: {
15471 DebugPostsolveWithFullSolver = input.ReadBool();
15472 break;
15473 }
15474 case 1304: {
15475 UseSatInprocessing = input.ReadBool();
15476 break;
15477 }
15478 case 1312: {
15479 UseFeasibilityPump = input.ReadBool();
15480 break;
15481 }
15482 case 1320: {
15483 FpRounding = (global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod) input.ReadEnum();
15484 break;
15485 }
15486 case 1328: {
15487 MipAutomaticallyScaleVariables = input.ReadBool();
15488 break;
15489 }
15490 case 1336: {
15491 RepairHint = input.ReadBool();
15492 break;
15493 }
15494 case 1344: {
15495 PolarityRephaseIncrement = input.ReadInt32();
15496 break;
15497 }
15498 case 1352: {
15499 AddZeroHalfCuts = input.ReadBool();
15500 break;
15501 }
15502 case 1360: {
15503 ExpandAlldiffConstraints = input.ReadBool();
15504 break;
15505 }
15506 case 1370: {
15507 Name = input.ReadString();
15508 break;
15509 }
15510 case 1376: {
15511 AddCliqueCuts = input.ReadBool();
15512 break;
15513 }
15514 case 1384: {
15515 KeepAllFeasibleSolutionsInPresolve = input.ReadBool();
15516 break;
15517 }
15518 case 1392: {
15519 PresolveExtractIntegerEnforcement = input.ReadBool();
15520 break;
15521 }
15522 case 1400: {
15523 PolishLpSolution = input.ReadBool();
15524 break;
15525 }
15526 case 1408: {
15527 UseProbingSearch = input.ReadBool();
15528 break;
15529 }
15530 case 1416: {
15531 ConvertIntervals = input.ReadBool();
15532 break;
15533 }
15534 case 1424: {
15535 PermuteVariableRandomly = input.ReadBool();
15536 break;
15537 }
15538 case 1432: {
15539 PermutePresolveConstraintOrder = input.ReadBool();
15540 break;
15541 }
15542 case 1440: {
15543 UseAbslRandom = input.ReadBool();
15544 break;
15545 }
15546 case 1448: {
15547 DisableConstraintExpansion = input.ReadBool();
15548 break;
15549 }
15550 case 1456: {
15551 ExpandReservoirConstraints = input.ReadBool();
15552 break;
15553 }
15554 case 1464: {
15555 SymmetryLevel = input.ReadInt32();
15556 break;
15557 }
15558 case 1482: {
15559 LogPrefix = input.ReadString();
15560 break;
15561 }
15562 case 1488: {
15563 LogToStdout = input.ReadBool();
15564 break;
15565 }
15566 case 1496: {
15567 LogToResponse = input.ReadBool();
15568 break;
15569 }
15570 case 1504: {
15571 OptimizeWithLbTreeSearch = input.ReadBool();
15572 break;
15573 }
15574 case 1512: {
15575 LogSubsolverStatistics = input.ReadBool();
15576 break;
15577 }
15578 case 1521: {
15579 ClauseCleanupRatio = input.ReadDouble();
15580 break;
15581 }
15582 case 1528: {
15583 MaxDomainSizeWhenEncodingEqNeqConstraints = input.ReadInt32();
15584 break;
15585 }
15586 case 1536: {
15587 FixVariablesToTheirHintedValue = input.ReadBool();
15588 break;
15589 }
15590 case 1544: {
15591 SolutionPoolSize = input.ReadInt32();
15592 break;
15593 }
15594 case 1552: {
15595 FillAdditionalSolutionsInResponse = input.ReadBool();
15596 break;
15597 }
15598 case 1560: {
15599 DebugCrashOnBadHint = input.ReadBool();
15600 break;
15601 }
15602 case 1568: {
15603 CutLevel = input.ReadInt32();
15604 break;
15605 }
15606 case 1576: {
15607 AddObjectiveCut = input.ReadBool();
15608 break;
15609 }
15610 case 1584: {
15611 MipComputeTrueObjectiveBound = input.ReadBool();
15612 break;
15613 }
15614 case 1593: {
15615 MipMaxValidMagnitude = input.ReadDouble();
15616 break;
15617 }
15618 case 1600: {
15619 UseTimetablingInNoOverlap2D = input.ReadBool();
15620 break;
15621 }
15622 case 1608: {
15623 PresolveInclusionWorkLimit = input.ReadInt64();
15624 break;
15625 }
15626 case 1616: {
15627 IgnoreNames = input.ReadBool();
15628 break;
15629 }
15630 case 1624: {
15631 ShareBinaryClauses = input.ReadBool();
15632 break;
15633 }
15634 case 1633: {
15635 ShavingDeterministicTimeInProbingSearch = input.ReadDouble();
15636 break;
15637 }
15638 case 1641: {
15639 ShavingSearchDeterministicTime = input.ReadDouble();
15640 break;
15641 }
15642 case 1648: {
15643 NumWorkers = input.ReadInt32();
15644 break;
15645 }
15646 case 1658: {
15647 subsolvers_.AddEntriesFrom(ref input, _repeated_subsolvers_codec);
15648 break;
15649 }
15650 case 1674: {
15651 ignoreSubsolvers_.AddEntriesFrom(ref input, _repeated_ignoreSubsolvers_codec);
15652 break;
15653 }
15654 case 1682: {
15655 subsolverParams_.AddEntriesFrom(ref input, _repeated_subsolverParams_codec);
15656 break;
15657 }
15658 case 1704: {
15659 UseEnergeticReasoningInNoOverlap2D = input.ReadBool();
15660 break;
15661 }
15662 case 1712: {
15663 UseDualSchedulingHeuristics = input.ReadBool();
15664 break;
15665 }
15666 case 1720: {
15667 UseHardPrecedencesInCumulative = input.ReadBool();
15668 break;
15669 }
15670 case 1728: {
15671 DetectTableWithCost = input.ReadBool();
15672 break;
15673 }
15674 case 1736: {
15675 TableCompressionLevel = input.ReadInt32();
15676 break;
15677 }
15678 case 1754: {
15679 extraSubsolvers_.AddEntriesFrom(ref input, _repeated_extraSubsolvers_codec);
15680 break;
15681 }
15682 case 1760: {
15683 ExploitAllPrecedences = input.ReadBool();
15684 break;
15685 }
15686 case 1769: {
15687 PropagationLoopDetectionFactor = input.ReadDouble();
15688 break;
15689 }
15690 case 1776: {
15691 OnlySolveIp = input.ReadBool();
15692 break;
15693 }
15694 case 1784: {
15695 EncodeComplexLinearConstraintWithInteger = input.ReadBool();
15696 break;
15697 }
15698 case 1792: {
15699 NewLinearPropagation = input.ReadBool();
15700 break;
15701 }
15702 case 1800: {
15703 MipScaleLargeDomain = input.ReadBool();
15704 break;
15705 }
15706 case 1809: {
15707 ProbingDeterministicTimeLimit = input.ReadDouble();
15708 break;
15709 }
15710 case 1816: {
15711 RootLpIterations = input.ReadInt32();
15712 break;
15713 }
15714 case 1824: {
15715 UseObjectiveLbSearch = input.ReadBool();
15716 break;
15717 }
15718 case 1832: {
15719 MaxSizeToCreatePrecedenceLiteralsInDisjunctive = input.ReadInt32();
15720 break;
15721 }
15722 case 1840: {
15723 UseStrongPropagationInDisjunctive = input.ReadBool();
15724 break;
15725 }
15726 case 1857: {
15727 MipDropTolerance = input.ReadDouble();
15728 break;
15729 }
15730 case 1864: {
15731 InferAllDiffs = input.ReadBool();
15732 break;
15733 }
15734 case 1872: {
15735 FindBigLinearOverlap = input.ReadBool();
15736 break;
15737 }
15738 case 1880: {
15739 SharedTreeNumWorkers = input.ReadInt32();
15740 break;
15741 }
15742 case 1888: {
15743 UseSharedTreeSearch = input.ReadBool();
15744 break;
15745 }
15746 case 1904: {
15747 SharedTreeMaxNodesPerWorker = input.ReadInt32();
15748 break;
15749 }
15750 case 1912: {
15751 SharedTreeSplitStrategy = (global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy) input.ReadEnum();
15752 break;
15753 }
15754 case 1920: {
15755 UseLsOnly = input.ReadBool();
15756 break;
15757 }
15758 case 1937: {
15759 FeasibilityJumpDecay = input.ReadDouble();
15760 break;
15761 }
15762 case 1952: {
15763 NumViolationLs = input.ReadInt32();
15764 break;
15765 }
15766 case 1977: {
15767 FeasibilityJumpVarRandomizationProbability = input.ReadDouble();
15768 break;
15769 }
15770 case 1985: {
15771 FeasibilityJumpVarPerburbationRangeRatio = input.ReadDouble();
15772 break;
15773 }
15774 case 1992: {
15775 ViolationLsPerturbationPeriod = input.ReadInt32();
15776 break;
15777 }
15778 case 2000: {
15779 FeasibilityJumpEnableRestarts = input.ReadBool();
15780 break;
15781 }
15782 case 2016: {
15783 StopAfterRootPropagation = input.ReadBool();
15784 break;
15785 }
15786 case 2024: {
15787 UseObjectiveShavingSearch = input.ReadBool();
15788 break;
15789 }
15790 case 2040: {
15791 UseLbRelaxLns = input.ReadBool();
15792 break;
15793 }
15794 case 2048: {
15795 LinearSplitSize = input.ReadInt32();
15796 break;
15797 }
15798 case 2056: {
15799 FeasibilityJumpLinearizationLevel = input.ReadInt32();
15800 break;
15801 }
15802 case 2064: {
15803 FeasibilityJumpRestartFactor = input.ReadInt32();
15804 break;
15805 }
15806 case 2073: {
15807 ViolationLsCompoundMoveProbability = input.ReadDouble();
15808 break;
15809 }
15810 case 2080: {
15811 MaxNumIntervalsForTimetableEdgeFinding = input.ReadInt32();
15812 break;
15813 }
15814 case 2088: {
15815 MipPresolveLevel = input.ReadInt32();
15816 break;
15817 }
15818 case 2096: {
15819 PushAllTasksTowardStart = input.ReadBool();
15820 break;
15821 }
15822 case 2104: {
15823 UseDynamicPrecedenceInDisjunctive = input.ReadBool();
15824 break;
15825 }
15826 case 2112: {
15827 FeasibilityJumpMaxExpandedConstraintSize = input.ReadInt32();
15828 break;
15829 }
15830 case 2120: {
15831 UseFeasibilityJump = input.ReadBool();
15832 break;
15833 }
15834 case 2129: {
15835 LpPrimalTolerance = input.ReadDouble();
15836 break;
15837 }
15838 case 2137: {
15839 LpDualTolerance = input.ReadDouble();
15840 break;
15841 }
15842 case 2144: {
15843 UseDynamicPrecedenceInCumulative = input.ReadBool();
15844 break;
15845 }
15846 case 2152: {
15847 UseExtendedProbing = input.ReadBool();
15848 break;
15849 }
15850 case 2160: {
15851 AtMostOneMaxExpansionSize = input.ReadInt32();
15852 break;
15853 }
15854 case 2168: {
15855 UseAreaEnergeticReasoningInNoOverlap2D = input.ReadBool();
15856 break;
15857 }
15858 case 2176: {
15859 ProbingNumCombinationsLimit = input.ReadInt32();
15860 break;
15861 }
15862 case 2185: {
15863 InprocessingDtimeRatio = input.ReadDouble();
15864 break;
15865 }
15866 case 2193: {
15867 InprocessingProbingDtime = input.ReadDouble();
15868 break;
15869 }
15870 case 2201: {
15871 InprocessingMinimizationDtime = input.ReadDouble();
15872 break;
15873 }
15874 case 2208: {
15875 MaxPairsPairwiseReasoningInNoOverlap2D = input.ReadInt32();
15876 break;
15877 }
15878 case 2216: {
15879 DetectLinearizedProduct = input.ReadBool();
15880 break;
15881 }
15882 case 2224: {
15883 MipTreatHighMagnitudeBoundsAsInfinity = input.ReadBool();
15884 break;
15885 }
15886 case 2232: {
15887 AddRltCuts = input.ReadBool();
15888 break;
15889 }
15890 case 2240: {
15891 MaxLinMaxSizeForExpansion = input.ReadInt32();
15892 break;
15893 }
15894 case 2249: {
15895 SharedTreeOpenLeavesPerWorker = input.ReadDouble();
15896 break;
15897 }
15898 case 2256: {
15899 SharedTreeWorkerMinRestartsPerSubtree = input.ReadInt32();
15900 break;
15901 }
15902 case 2264: {
15903 UseLns = input.ReadBool();
15904 break;
15905 }
15906 case 2272: {
15907 SaveLpBasisInLbTreeSearch = input.ReadBool();
15908 break;
15909 }
15910 case 2280: {
15911 ShareGlueClauses = input.ReadBool();
15912 break;
15913 }
15914 case 2288: {
15915 UseConservativeScaleOverloadChecker = input.ReadBool();
15916 break;
15917 }
15918 case 2296: {
15919 EncodeCumulativeAsReservoir = input.ReadBool();
15920 break;
15921 }
15922 case 2304: {
15923 ExpandReservoirUsingCircuit = input.ReadBool();
15924 break;
15925 }
15926 case 2312: {
15927 VariablesShavingLevel = input.ReadInt32();
15928 break;
15929 }
15930 case 2320: {
15931 ShavingSearchThreshold = input.ReadInt64();
15932 break;
15933 }
15934 case 2328: {
15935 MaxNumDeterministicBatches = input.ReadInt32();
15936 break;
15937 }
15938 case 2337: {
15939 FeasibilityJumpBatchDtime = input.ReadDouble();
15940 break;
15941 }
15942 case 2346: {
15943 filterSubsolvers_.AddEntriesFrom(ref input, _repeated_filterSubsolvers_codec);
15944 break;
15945 }
15946 case 2352: {
15947 NumFullSubsolvers = input.ReadInt32();
15948 break;
15949 }
15950 case 2360: {
15951 SharedTreeWorkerEnableTrailSharing = input.ReadBool();
15952 break;
15953 }
15954 case 2368: {
15955 LbRelaxNumWorkersThreshold = input.ReadInt32();
15956 break;
15957 }
15958 case 2376: {
15959 InprocessingMinimizationUseConflictAnalysis = input.ReadBool();
15960 break;
15961 }
15962 case 2384: {
15963 InprocessingMinimizationUseAllOrderings = input.ReadBool();
15964 break;
15965 }
15966 case 2392: {
15967 UseTryEdgeReasoningInNoOverlap2D = input.ReadBool();
15968 break;
15969 }
15970 case 2400: {
15971 MinimizeSharedClauses = input.ReadBool();
15972 break;
15973 }
15974 case 2408: {
15975 UseSymmetryInLp = input.ReadBool();
15976 break;
15977 }
15978 case 2417: {
15979 SymmetryDetectionDeterministicTimeLimit = input.ReadDouble();
15980 break;
15981 }
15982 case 2424: {
15983 KeepSymmetryInPresolve = input.ReadBool();
15984 break;
15985 }
15986 case 2432: {
15987 SharedTreeWorkerEnablePhaseSharing = input.ReadBool();
15988 break;
15989 }
15990 case 2440: {
15991 SharedTreeBalanceTolerance = input.ReadInt32();
15992 break;
15993 }
15994 case 2448: {
15995 DebugCrashIfPresolveBreaksHint = input.ReadBool();
15996 break;
15997 }
15998 case 2457: {
15999 LnsInitialDifficulty = input.ReadDouble();
16000 break;
16001 }
16002 case 2465: {
16003 LnsInitialDeterministicLimit = input.ReadDouble();
16004 break;
16005 }
16006 case 2472: {
16007 PolarityExploitLsHints = input.ReadBool();
16008 break;
16009 }
16010 case 2480: {
16011 RemoveFixedVariablesEarly = input.ReadBool();
16012 break;
16013 }
16014 case 2488: {
16015 UseAllDifferentForCircuit = input.ReadBool();
16016 break;
16017 }
16018 case 2496: {
16019 RoutingCutSubsetSizeForBinaryRelationBound = input.ReadInt32();
16020 break;
16021 }
16022 case 2504: {
16023 RoutingCutSubsetSizeForTightBinaryRelationBound = input.ReadInt32();
16024 break;
16025 }
16026 case 2513: {
16027 RoutingCutDpEffort = input.ReadDouble();
16028 break;
16029 }
16030 case 2520: {
16031 MaximumRegionsToSplitInDisconnectedNoOverlap2D = input.ReadInt32();
16032 break;
16033 }
16034 case 2528: {
16035 RoutingCutSubsetSizeForExactBinaryRelationBound = input.ReadInt32();
16036 break;
16037 }
16038 case 2536: {
16039 RoutingCutMaxInfeasiblePathLength = input.ReadInt32();
16040 break;
16041 }
16042 case 2544: {
16043 RoutingCutSubsetSizeForShortestPathsBound = input.ReadInt32();
16044 break;
16045 }
16046 case 2560: {
16047 MaxAlldiffDomainSize = input.ReadInt32();
16048 break;
16049 }
16050 case 2568: {
16051 NoOverlap2DBooleanRelationsLimit = input.ReadInt32();
16052 break;
16053 }
16054 case 2577: {
16055 ShareGlueClausesDtime = input.ReadDouble();
16056 break;
16057 }
16058 case 2584: {
16059 UseLinear3ForNoOverlap2DPrecedences = input.ReadBool();
16060 break;
16061 }
16062 case 2592: {
16063 FilterSatPostsolveClauses = input.ReadBool();
16064 break;
16065 }
16066 }
16067 }
16068 }
16069 #endif
16070
16071 #region Nested types
16073 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16074 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
16075 public static partial class Types {
16080 public enum VariableOrder {
16084 [pbr::OriginalName("IN_ORDER")] InOrder = 0,
16085 [pbr::OriginalName("IN_REVERSE_ORDER")] InReverseOrder = 1,
16086 [pbr::OriginalName("IN_RANDOM_ORDER")] InRandomOrder = 2,
16087 }
16088
16097 public enum Polarity {
16098 [pbr::OriginalName("POLARITY_TRUE")] True = 0,
16099 [pbr::OriginalName("POLARITY_FALSE")] False = 1,
16100 [pbr::OriginalName("POLARITY_RANDOM")] Random = 2,
16101 }
16102
16106 public enum ConflictMinimizationAlgorithm {
16107 [pbr::OriginalName("NONE")] None = 0,
16108 [pbr::OriginalName("SIMPLE")] Simple = 1,
16109 [pbr::OriginalName("RECURSIVE")] Recursive = 2,
16110 [pbr::OriginalName("EXPERIMENTAL")] Experimental = 3,
16111 }
16112
16116 public enum BinaryMinizationAlgorithm {
16117 [pbr::OriginalName("NO_BINARY_MINIMIZATION")] NoBinaryMinimization = 0,
16118 [pbr::OriginalName("BINARY_MINIMIZATION_FIRST")] BinaryMinimizationFirst = 1,
16119 [pbr::OriginalName("BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION")] BinaryMinimizationFirstWithTransitiveReduction = 4,
16120 [pbr::OriginalName("BINARY_MINIMIZATION_WITH_REACHABILITY")] BinaryMinimizationWithReachability = 2,
16121 [pbr::OriginalName("EXPERIMENTAL_BINARY_MINIMIZATION")] ExperimentalBinaryMinimization = 3,
16122 }
16123
16129 public enum ClauseProtection {
16131 /// No protection.
16132 /// </summary>
16133 [pbr::OriginalName("PROTECTION_NONE")] ProtectionNone = 0,
16136 /// </summary>
16137 [pbr::OriginalName("PROTECTION_ALWAYS")] ProtectionAlways = 1,
16141 [pbr::OriginalName("PROTECTION_LBD")] ProtectionLbd = 2,
16143
16144
16148 public enum ClauseOrdering {
16152 [pbr::OriginalName("CLAUSE_ACTIVITY")] ClauseActivity = 0,
16154 /// Order clause by increasing LBD, then by decreasing activity.
16155 /// </summary>
16156 [pbr::OriginalName("CLAUSE_LBD")] ClauseLbd = 1,
16158
16159
16163 /// Gilles Audemard, Laurent Simon, "Refining Restarts Strategies for SAT
16164 /// and UNSAT", Principles and Practice of Constraint Programming Lecture
16165 /// Notes in Computer Science 2012, pp 118-126
16166 /// </summary>
16167 public enum RestartAlgorithm {
16168 [pbr::OriginalName("NO_RESTART")] NoRestart = 0,
16169
16172 [pbr::OriginalName("LUBY_RESTART")] LubyRestart = 1,
16173 /// <summary>
16174 /// Moving average restart based on the decision level of conflicts.
16175 /// </summary>
16176 [pbr::OriginalName("DL_MOVING_AVERAGE_RESTART")] DlMovingAverageRestart = 2,
16180 [pbr::OriginalName("LBD_MOVING_AVERAGE_RESTART")] LbdMovingAverageRestart = 3,
16184 [pbr::OriginalName("FIXED_RESTART")] FixedRestart = 4,
16185 }
16191 [pbr::OriginalName("DEFAULT_ASSUMPTION_ORDER")] DefaultAssumptionOrder = 0,
16192 [pbr::OriginalName("ORDER_ASSUMPTION_BY_DEPTH")] OrderAssumptionByDepth = 1,
16193 [pbr::OriginalName("ORDER_ASSUMPTION_BY_WEIGHT")] OrderAssumptionByWeight = 2,
16195
16199 public enum MaxSatStratificationAlgorithm {
16200
16203 [pbr::OriginalName("STRATIFICATION_NONE")] StratificationNone = 0,
16205 /// Start with literals with the highest weight, and when SAT, add the
16206 /// literals with the next highest weight and so on.
16207 /// </summary>
16208 [pbr::OriginalName("STRATIFICATION_DESCENT")] StratificationDescent = 1,
16215 [pbr::OriginalName("STRATIFICATION_ASCENT")] StratificationAscent = 2,
16216 }
16217
16221 public enum SearchBranching {
16225 /// literals on integer variables are generated using the fixed search
16226 /// specified by the user or our default one.
16227 /// </summary>
16228 [pbr::OriginalName("AUTOMATIC_SEARCH")] AutomaticSearch = 0,
16234 [pbr::OriginalName("FIXED_SEARCH")] FixedSearch = 1,
16238 [pbr::OriginalName("PORTFOLIO_SEARCH")] PortfolioSearch = 2,
16243 [pbr::OriginalName("LP_SEARCH")] LpSearch = 3,
16244
16248 /// </summary>
16249 [pbr::OriginalName("PSEUDO_COST_SEARCH")] PseudoCostSearch = 4,
16253
16255 [pbr::OriginalName("PORTFOLIO_WITH_QUICK_RESTART_SEARCH")] PortfolioWithQuickRestartSearch = 5,
16257 /// Mainly used internally. This is like FIXED_SEARCH, except we follow the
16258 /// solution_hint field of the CpModelProto rather than using the information
16259 /// provided in the search_strategy.
16260 /// </summary>
16261 [pbr::OriginalName("HINT_SEARCH")] HintSearch = 6,
16268 [pbr::OriginalName("PARTIAL_FIXED_SEARCH")] PartialFixedSearch = 7,
16272 [pbr::OriginalName("RANDOMIZED_SEARCH")] RandomizedSearch = 8,
16274
16275 public enum SharedTreeSplitStrategy {
16279 /// </summary>
16280 [pbr::OriginalName("SPLIT_STRATEGY_AUTO")] SplitStrategyAuto = 0,
16289 [pbr::OriginalName("SPLIT_STRATEGY_DISCREPANCY")] SplitStrategyDiscrepancy = 1,
16294 [pbr::OriginalName("SPLIT_STRATEGY_OBJECTIVE_LB")] SplitStrategyObjectiveLb = 2,
16298 [pbr::OriginalName("SPLIT_STRATEGY_BALANCED_TREE")] SplitStrategyBalancedTree = 3,
16302 [pbr::OriginalName("SPLIT_STRATEGY_FIRST_PROPOSAL")] SplitStrategyFirstProposal = 4,
16303 }
16304
16308 public enum FPRoundingMethod {
16312 [pbr::OriginalName("NEAREST_INTEGER")] NearestInteger = 0,
16318 [pbr::OriginalName("LOCK_BASED")] LockBased = 1,
16323 [pbr::OriginalName("ACTIVE_LOCK_BASED")] ActiveLockBased = 3,
16332 [pbr::OriginalName("PROPAGATION_ASSISTED")] PropagationAssisted = 2,
16334
16335 }
16336 #endregion
16337
16339
16340 #endregion
16341
16342}
16343
16344#endregion Designer generated code
global::Google.Protobuf pb
global::Google.Protobuf.Reflection pbr
global::System.Collections.Generic scg
global::Google.Protobuf.Collections pbc
Holder for reflection information generated from ortools/sat/sat_parameters.proto.
static pbr::FileDescriptor Descriptor
File descriptor for ortools/sat/sat_parameters.proto.
Container for nested types declared in the SatParameters message type.
BinaryMinizationAlgorithm
Whether to expoit the binary clause to minimize learned clauses further.
Polarity
Specifies the initial polarity (true/false) when the solver branches on a variable....
@ PortfolioSearch
Simple portfolio search used by LNS workers.
@ LpSearch
If used, the solver will use heuristics from the LP relaxation. This exploit the reduced costs of the...
@ PseudoCostSearch
If used, the solver uses the pseudo costs for branching. Pseudo costs are computed using the historic...
@ FixedSearch
If used then all decisions taken by the solver are made using a fixed order as specified in the API o...
@ PortfolioWithQuickRestartSearch
Mainly exposed here for testing. This quickly tries a lot of randomized heuristics with a low conflic...
@ PartialFixedSearch
Similar to FIXED_SEARCH, but differ in how the variable not listed into the fixed search heuristics a...
@ RandomizedSearch
Randomized search. Used to increase entropy in the search.
@ AutomaticSearch
Try to fix all literals using the underlying SAT solver's heuristics, then generate and fix literals ...
@ HintSearch
Mainly used internally. This is like FIXED_SEARCH, except we follow the solution_hint field of the Cp...
@ LubyRestart
Just follow a Luby sequence times restart_period.
@ FixedRestart
Fixed period restart every restart period.
@ LbdMovingAverageRestart
Moving average restart based on the LBD of conflicts.
@ DlMovingAverageRestart
Moving average restart based on the decision level of conflicts.
VariableOrder
Variables without activity (i.e. at the beginning of the search) will be tried in this preferred orde...
MaxSatStratificationAlgorithm
What stratification algorithm we use in the presence of weight.
@ StratificationAscent
Start with all literals. Each time a core is found with a given minimum weight, do not consider liter...
@ StratificationDescent
Start with literals with the highest weight, and when SAT, add the literals with the next highest wei...
FPRoundingMethod
Rounding method to use for feasibility pump.
@ ActiveLockBased
Similar to lock based rounding except this only considers locks of active constraints from the last l...
@ LockBased
Counts the number of linear constraints restricting the variable in the increasing values (up locks) ...
@ PropagationAssisted
This is expensive rounding algorithm. We round variables one by one and propagate the bounds in betwe...
ConflictMinimizationAlgorithm
Do we try to minimize conflicts (greedily) when creating them.
@ SplitStrategyDiscrepancy
Only accept splits if the node to be split's depth+discrepancy is minimal for the desired number of l...
@ SplitStrategyBalancedTree
Attempt to keep the shared tree balanced.
@ SplitStrategyAuto
Uses the default strategy, currently equivalent to SPLIT_STRATEGY_DISCREPANCY.
@ SplitStrategyFirstProposal
Workers race to split their subtree, the winner's proposal is accepted.
@ SplitStrategyObjectiveLb
Only split nodes with an objective lb equal to the global lb. If there is no objective,...
ClauseOrdering
The clauses that will be kept during a cleanup are the ones that come first under this order....
@ ClauseLbd
Order clause by increasing LBD, then by decreasing activity.
MaxSatAssumptionOrder
In what order do we add the assumptions in a core-based max-sat algorithm.
ClauseProtection
Each time a clause activity is bumped, the clause has a chance to be protected during the next cleanu...
@ ProtectionLbd
Only protect clause with a better LBD.
@ ProtectionAlways
Protect all clauses whose activity is bumped.
Contains the definitions for all the sat algorithm parameters and their default values.
const int DebugCrashOnBadHintFieldNumber
Field number for the "debug_crash_on_bad_hint" field.
void ClearSolutionPoolSize()
Clears the value of the "solution_pool_size" field.
bool HasExploitRelaxationSolution
Gets whether the "exploit_relaxation_solution" field is set.
bool HasAddRltCuts
Gets whether the "add_rlt_cuts" field is set.
bool HasFindBigLinearOverlap
Gets whether the "find_big_linear_overlap" field is set.
int RoutingCutSubsetSizeForBinaryRelationBound
If the size of a subset of nodes of a RoutesConstraint is less than this value, use linear constraint...
bool HasInprocessingMinimizationUseConflictAnalysis
Gets whether the "inprocessing_minimization_use_conflict_analysis" field is set.
bool HasName
Gets whether the "name" field is set.
void ClearKeepSymmetryInPresolve()
Clears the value of the "keep_symmetry_in_presolve" field.
bool HasNewLinearPropagation
Gets whether the "new_linear_propagation" field is set.
bool HasCountAssumptionLevelsInLbd
Gets whether the "count_assumption_levels_in_lbd" field is set.
bool HasMinimizeSharedClauses
Gets whether the "minimize_shared_clauses" field is set.
bool HasDefaultRestartAlgorithms
Gets whether the "default_restart_algorithms" field is set.
const int ShareObjectiveBoundsFieldNumber
Field number for the "share_objective_bounds" field.
void ClearUseOptimizationHints()
Clears the value of the "use_optimization_hints" field.
const int SharedTreeNumWorkersFieldNumber
Field number for the "shared_tree_num_workers" field.
bool HasMaximumRegionsToSplitInDisconnectedNoOverlap2D
Gets whether the "maximum_regions_to_split_in_disconnected_no_overlap_2d" field is set.
bool DisableConstraintExpansion
If true, it disable all constraint expansion. This should only be used to test the presolve of expand...
int MaximumRegionsToSplitInDisconnectedNoOverlap2D
Detects when the space where items of a no_overlap_2d constraint can placed is disjoint (ie....
double ShavingDeterministicTimeInProbingSearch
Add a shaving phase (where the solver tries to prove that the lower or upper bound of a variable are ...
const int ClauseCleanupPeriodFieldNumber
Field number for the "clause_cleanup_period" field.
bool HasNumViolationLs
Gets whether the "num_violation_ls" field is set.
const int AddLpConstraintsLazilyFieldNumber
Field number for the "add_lp_constraints_lazily" field.
bool HasMaxSatReverseAssumptionOrder
Gets whether the "max_sat_reverse_assumption_order" field is set.
const int FillAdditionalSolutionsInResponseFieldNumber
Field number for the "fill_additional_solutions_in_response" field.
void ClearMaxDomainSizeWhenEncodingEqNeqConstraints()
Clears the value of the "max_domain_size_when_encoding_eq_neq_constraints" field.
bool HasAddZeroHalfCuts
Gets whether the "add_zero_half_cuts" field is set.
const int SharedTreeSplitStrategyFieldNumber
Field number for the "shared_tree_split_strategy" field.
int TableCompressionLevel
How much we try to "compress" a table constraint. Compressing more leads to less Booleans and faster ...
double ShareGlueClausesDtime
The amount of dtime between each export of shared glue clauses.
const int UseAreaEnergeticReasoningInNoOverlap2DFieldNumber
Field number for the "use_area_energetic_reasoning_in_no_overlap_2d" field.
bool FindBigLinearOverlap
Try to find large "rectangle" in the linear constraint matrix with identical lines....
bool HasUseObjectiveLbSearch
Gets whether the "use_objective_lb_search" field is set.
void ClearUseImpliedBounds()
Clears the value of the "use_implied_bounds" field.
bool HasUseLbRelaxLns
Gets whether the "use_lb_relax_lns" field is set.
const int MaxSatReverseAssumptionOrderFieldNumber
Field number for the "max_sat_reverse_assumption_order" field.
bool HasUseOptionalVariables
Gets whether the "use_optional_variables" field is set.
bool SharedTreeWorkerEnableTrailSharing
If true, workers share more of the information from their local trail. Specifically,...
bool HasMaxPairsPairwiseReasoningInNoOverlap2D
Gets whether the "max_pairs_pairwise_reasoning_in_no_overlap_2d" field is set.
const int GlucoseDecayIncrementFieldNumber
Field number for the "glucose_decay_increment" field.
bool MaxSatReverseAssumptionOrder
If true, adds the assumption in the reverse order of the one defined by max_sat_assumption_order.
bool UseFeasibilityPump
Adds a feasibility pump subsolver along with lns subsolvers.
void ClearNoOverlap2DBooleanRelationsLimit()
Clears the value of the "no_overlap_2d_boolean_relations_limit" field.
bool HasUseOptimizationHints
Gets whether the "use_optimization_hints" field is set.
void ClearClauseActivityDecay()
Clears the value of the "clause_activity_decay" field.
int BooleanEncodingLevel
A non-negative level indicating how much we should try to fully encode Integer variables as Boolean.
const int AlsoBumpVariablesInConflictReasonsFieldNumber
Field number for the "also_bump_variables_in_conflict_reasons" field.
bool HasNumWorkers
Gets whether the "num_workers" field is set.
bool CountAssumptionLevelsInLbd
Whether or not the assumption levels are taken into account during the LBD computation....
void ClearDiversifyLnsParams()
Clears the value of the "diversify_lns_params" field.
void ClearNumSearchWorkers()
Clears the value of the "num_search_workers" field.
bool HasRemoveFixedVariablesEarly
Gets whether the "remove_fixed_variables_early" field is set.
int ClauseCleanupTarget
During a cleanup, we will always keep that number of "deletable" clauses.
void ClearMinOrthogonalityForLpConstraints()
Clears the value of the "min_orthogonality_for_lp_constraints" field.
bool PolishLpSolution
Whether we try to do a few degenerate iteration at the end of an LP solve to minimize the fractionali...
bool HasUsePbResolution
Gets whether the "use_pb_resolution" field is set.
long SearchRandomVariablePoolSize
Search randomization will collect the top 'search_random_variable_pool_size' valued variables,...
void ClearFindMultipleCores()
Clears the value of the "find_multiple_cores" field.
void ClearAddLpConstraintsLazily()
Clears the value of the "add_lp_constraints_lazily" field.
bool MipTreatHighMagnitudeBoundsAsInfinity
By default, any variable/constraint bound with a finite value and a magnitude greater than the mip_ma...
bool HasUseObjectiveShavingSearch
Gets whether the "use_objective_shaving_search" field is set.
int ViolationLsPerturbationPeriod
How long violation_ls should wait before perturbating a solution.
bool FillTightenedDomainsInResponse
If true, add information about the derived variable domains to the CpSolverResponse....
bool HasLpDualTolerance
Gets whether the "lp_dual_tolerance" field is set.
bool UseStrongPropagationInDisjunctive
Enable stronger and more expensive propagation on no_overlap constraint.
int MipPresolveLevel
When solving a MIP, we do some basic floating point presolving before scaling the problem to integer ...
double RandomPolarityRatio
The proportion of polarity chosen at random. Note that this take precedence over the phase saving heu...
int RandomSeed
At the beginning of each solve, the random number generator used in some part of the solver is reinit...
double MipMaxBound
We need to bound the maximum magnitude of the variables for CP-SAT, and that is the bound we use....
void ClearMaxNumCuts()
Clears the value of the "max_num_cuts" field.
bool HasNewConstraintsBatchSize
Gets whether the "new_constraints_batch_size" field is set.
void ClearMaxAllDiffCutSize()
Clears the value of the "max_all_diff_cut_size" field.
bool HasUseExtendedProbing
Gets whether the "use_extended_probing" field is set.
bool AddRltCuts
Whether we generate RLT cuts. This is still experimental but can help on binary problem with a lot of...
global::Google.OrTools.Sat.SatParameters.Types.VariableOrder PreferredVariableOrder
global::Google.OrTools.Sat.SatParameters.Types.ClauseProtection ClauseCleanupProtection
void ClearClauseCleanupLbdBound()
Clears the value of the "clause_cleanup_lbd_bound" field.
const int MaxSatAssumptionOrderFieldNumber
Field number for the "max_sat_assumption_order" field.
bool HasEnumerateAllSolutions
Gets whether the "enumerate_all_solutions" field is set.
const int FeasibilityJumpLinearizationLevelFieldNumber
Field number for the "feasibility_jump_linearization_level" field.
bool CpModelUseSatPresolve
Whether we also use the sat presolve when cp_model_presolve is true.
void ClearSaveLpBasisInLbTreeSearch()
Clears the value of the "save_lp_basis_in_lb_tree_search" field.
bool HasExpandReservoirUsingCircuit
Gets whether the "expand_reservoir_using_circuit" field is set.
bool AutoDetectGreaterThanAtLeastOneOf
If true, then the precedences propagator try to detect for each variable if it has a set of "optional...
bool LogSearchProgress
Whether the solver should log the search progress. This is the maing logging parameter and if this is...
bool HasSharedTreeBalanceTolerance
Gets whether the "shared_tree_balance_tolerance" field is set.
bool HasUseExactLpReason
Gets whether the "use_exact_lp_reason" field is set.
bool HasIgnoreNames
Gets whether the "ignore_names" field is set.
bool HasMipWantedPrecision
Gets whether the "mip_wanted_precision" field is set.
const int UseErwaHeuristicFieldNumber
Field number for the "use_erwa_heuristic" field.
void ClearCutLevel()
Clears the value of the "cut_level" field.
const int UseHardPrecedencesInCumulativeFieldNumber
Field number for the "use_hard_precedences_in_cumulative" field.
bool HasMipComputeTrueObjectiveBound
Gets whether the "mip_compute_true_objective_bound" field is set.
bool UseEnergeticReasoningInNoOverlap2D
When this is true, the no_overlap_2d constraint is reinforced with energetic reasoning....
bool HasDebugCrashOnBadHint
Gets whether the "debug_crash_on_bad_hint" field is set.
bool PresolveExtractIntegerEnforcement
If true, we will extract from linear constraints, enforcement literals of the form "integer variable ...
global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm MaxSatStratification
bool HasDebugMaxNumPresolveOperations
Gets whether the "debug_max_num_presolve_operations" field is set.
void ClearUseFeasibilityPump()
Clears the value of the "use_feasibility_pump" field.
void ClearLinearSplitSize()
Clears the value of the "linear_split_size" field.
const int InitialVariablesActivityFieldNumber
Field number for the "initial_variables_activity" field.
void ClearNumConflictsBeforeStrategyChanges()
Clears the value of the "num_conflicts_before_strategy_changes" field.
void ClearPbCleanupRatio()
Clears the value of the "pb_cleanup_ratio" field.
void ClearMaxVariableActivityValue()
Clears the value of the "max_variable_activity_value" field.
bool HasFindMultipleCores
Gets whether the "find_multiple_cores" field is set.
bool DetectTableWithCost
If true, we detect variable that are unique to a table constraint and only there to encode a cost on ...
bool PresolveUseBva
Whether or not we use Bounded Variable Addition (BVA) in the presolve.
bool HasMipVarScaling
Gets whether the "mip_var_scaling" field is set.
int CutCleanupTarget
Target number of constraints to remove during cleanup.
bool HasDebugPostsolveWithFullSolver
Gets whether the "debug_postsolve_with_full_solver" field is set.
void ClearLogPrefix()
Clears the value of the "log_prefix" field.
void ClearGlucoseDecayIncrementPeriod()
Clears the value of the "glucose_decay_increment_period" field.
const int MaxSatStratificationFieldNumber
Field number for the "max_sat_stratification" field.
const int InferAllDiffsFieldNumber
Field number for the "infer_all_diffs" field.
void ClearName()
Clears the value of the "name" field.
bool CoverOptimization
If true, when the max-sat algo find a core, we compute the minimal number of literals in the core tha...
bool UsePbResolution
Whether to use pseudo-Boolean resolution to analyze a conflict. Note that this option only make sense...
void ClearMaxSizeToCreatePrecedenceLiteralsInDisjunctive()
Clears the value of the "max_size_to_create_precedence_literals_in_disjunctive" field.
const int FeasibilityJumpEnableRestartsFieldNumber
Field number for the "feasibility_jump_enable_restarts" field.
double SymmetryDetectionDeterministicTimeLimit
Deterministic time limit for symmetry detection.
void ClearBlockingRestartWindowSize()
Clears the value of the "blocking_restart_window_size" field.
bool HasCutMaxActiveCountValue
Gets whether the "cut_max_active_count_value" field is set.
const int PropagationLoopDetectionFactorFieldNumber
Field number for the "propagation_loop_detection_factor" field.
bool HasCutCleanupTarget
Gets whether the "cut_cleanup_target" field is set.
bool HasStopAfterPresolve
Gets whether the "stop_after_presolve" field is set.
void ClearDetectTableWithCost()
Clears the value of the "detect_table_with_cost" field.
bool UseFeasibilityJump
Parameters for an heuristic similar to the one described in the paper: "Feasibility Jump: an LP-free ...
double ShavingSearchDeterministicTime
Specifies the amount of deterministic time spent of each try at shaving a bound in the shaving search...
int RoutingCutMaxInfeasiblePathLength
If the length of an infeasible path is less than this value, a cut will be added to exclude it.
void ClearUseRinsLns()
Clears the value of the "use_rins_lns" field.
void ClearSharedTreeBalanceTolerance()
Clears the value of the "shared_tree_balance_tolerance" field.
void ClearUseDynamicPrecedenceInCumulative()
Clears the value of the "use_dynamic_precedence_in_cumulative" field.
void ClearTableCompressionLevel()
Clears the value of the "table_compression_level" field.
const int MipMaxValidMagnitudeFieldNumber
Field number for the "mip_max_valid_magnitude" field.
int AtMostOneMaxExpansionSize
All at_most_one constraints with a size <= param will be replaced by a quadratic number of binary imp...
int MaxIntegerRoundingScaling
In the integer rounding procedure used for MIR and Gomory cut, the maximum "scaling" we use (must be ...
void ClearFillAdditionalSolutionsInResponse()
Clears the value of the "fill_additional_solutions_in_response" field.
bool MinimizeSharedClauses
Minimize and detect subsumption of shared clauses immediately after they are imported.
bool HasPresolveBveThreshold
Gets whether the "presolve_bve_threshold" field is set.
bool UsePhaseSaving
If this is true, then the polarity of a variable will be the last value it was assigned to,...
bool SharedTreeWorkerEnablePhaseSharing
If true, shared tree workers share their target phase when returning an assigned subtree for the next...
bool HasAddCliqueCuts
Gets whether the "add_clique_cuts" field is set.
const int PolarityRephaseIncrementFieldNumber
Field number for the "polarity_rephase_increment" field.
void ClearPbCleanupIncrement()
Clears the value of the "pb_cleanup_increment" field.
bool UseLsOnly
Disable every other type of subsolver, setting this turns CP-SAT into a pure local-search solver.
bool ExpandReservoirUsingCircuit
Mainly useful for testing.
bool HasMinimizeReductionDuringPbResolution
Gets whether the "minimize_reduction_during_pb_resolution" field is set.
const int FindBigLinearOverlapFieldNumber
Field number for the "find_big_linear_overlap" field.
bool HasPropagationLoopDetectionFactor
Gets whether the "propagation_loop_detection_factor" field is set.
int RoutingCutSubsetSizeForShortestPathsBound
Similar to routing_cut_subset_size_for_exact_binary_relation_bound but use a bound based on shortest ...
bool KeepSymmetryInPresolve
Experimental. This will compute the symmetry of the problem once and for all. All presolve operations...
bool PushAllTasksTowardStart
Experimental code: specify if the objective pushes all tasks toward the start of the schedule.
bool HasViolationLsCompoundMoveProbability
Gets whether the "violation_ls_compound_move_probability" field is set.
double InprocessingDtimeRatio
Proportion of deterministic time we should spend on inprocessing. At each "restart",...
const int ClauseCleanupOrderingFieldNumber
Field number for the "clause_cleanup_ordering" field.
pbc::RepeatedField< string > IgnoreSubsolvers
Rather than fully specifying subsolvers, it is often convenient to just remove the ones that are not ...
const int FeasibilityJumpBatchDtimeFieldNumber
Field number for the "feasibility_jump_batch_dtime" field.
bool HasLogToResponse
Gets whether the "log_to_response" field is set.
const int NameFieldNumber
Field number for the "name" field.
bool HasNoOverlap2DBooleanRelationsLimit
Gets whether the "no_overlap_2d_boolean_relations_limit" field is set.
void ClearPolishLpSolution()
Clears the value of the "polish_lp_solution" field.
const int ClauseCleanupLbdBoundFieldNumber
Field number for the "clause_cleanup_lbd_bound" field.
void ClearUseDisjunctiveConstraintInCumulative()
Clears the value of the "use_disjunctive_constraint_in_cumulative" field.
bool HasPresolveBvaThreshold
Gets whether the "presolve_bva_threshold" field is set.
bool OnlySolveIp
If one try to solve a MIP model with CP-SAT, because we assume all variable to be integer after scali...
const int UseOptimizationHintsFieldNumber
Field number for the "use_optimization_hints" field.
void ClearSharedTreeNumWorkers()
Clears the value of the "shared_tree_num_workers" field.
void ClearUseOverloadCheckerInCumulative()
Clears the value of the "use_overload_checker_in_cumulative" field.
pbc::RepeatedField< string > Subsolvers
In multi-thread, the solver can be mainly seen as a portfolio of solvers with different parameters....
void ClearClauseCleanupPeriod()
Clears the value of the "clause_cleanup_period" field.
int MaxDomainSizeWhenEncodingEqNeqConstraints
When loading a*x + b*y ==/!= c when x and y are both fully encoded. The solver may decide to replace ...
bool HasMaxSatStratification
Gets whether the "max_sat_stratification" field is set.
void ClearRestartDlAverageRatio()
Clears the value of the "restart_dl_average_ratio" field.
bool HasMaxLinMaxSizeForExpansion
Gets whether the "max_lin_max_size_for_expansion" field is set.
bool HasSymmetryDetectionDeterministicTimeLimit
Gets whether the "symmetry_detection_deterministic_time_limit" field is set.
int MaxLinMaxSizeForExpansion
If the number of expressions in the lin_max is less that the max size parameter, model expansion repl...
const int ClauseActivityDecayFieldNumber
Field number for the "clause_activity_decay" field.
void ClearPushAllTasksTowardStart()
Clears the value of the "push_all_tasks_toward_start" field.
const int PolarityExploitLsHintsFieldNumber
Field number for the "polarity_exploit_ls_hints" field.
int BinarySearchNumConflicts
If non-negative, perform a binary search on the objective variable in order to find an [min,...
bool HasAddCgCuts
Gets whether the "add_cg_cuts" field is set.
bool ExpandReservoirConstraints
If true, expand the reservoir constraints by creating booleans for all possible precedences between e...
bool HasRoutingCutSubsetSizeForShortestPathsBound
Gets whether the "routing_cut_subset_size_for_shortest_paths_bound" field is set.
bool SubsumptionDuringConflictAnalysis
At a really low cost, during the 1-UIP conflict computation, it is easy to detect if some of the invo...
int PresolveBveThreshold
During presolve, only try to perform the bounded variable elimination (BVE) of a variable x if the nu...
double VariableActivityDecay
Each time a conflict is found, the activities of some variables are increased by one....
void ClearCoverOptimization()
Clears the value of the "cover_optimization" field.
bool HasUseTimetablingInNoOverlap2D
Gets whether the "use_timetabling_in_no_overlap_2d" field is set.
int HintConflictLimit
Conflict limit used in the phase that exploit the solution hint.
void ClearUseLnsOnly()
Clears the value of the "use_lns_only" field.
const int RoutingCutSubsetSizeForShortestPathsBoundFieldNumber
Field number for the "routing_cut_subset_size_for_shortest_paths_bound" field.
bool HasMipPresolveLevel
Gets whether the "mip_presolve_level" field is set.
bool HasRoutingCutSubsetSizeForExactBinaryRelationBound
Gets whether the "routing_cut_subset_size_for_exact_binary_relation_bound" field is set.
bool HasSearchBranching
Gets whether the "search_branching" field is set.
int MaxCutRoundsAtLevelZero
Max number of time we perform cut generation and resolve the LP at level 0.
bool AddCliqueCuts
Whether we generate clique cuts from the binary implication graph. Note that as the search goes on,...
void ClearSearchRandomVariablePoolSize()
Clears the value of the "search_random_variable_pool_size" field.
void ClearShareGlueClausesDtime()
Clears the value of the "share_glue_clauses_dtime" field.
int MaxNumDeterministicBatches
Stops after that number of batches has been scheduled. This only make sense when interleave_search is...
const int UseAllDifferentForCircuitFieldNumber
Field number for the "use_all_different_for_circuit" field.
const int ShavingSearchDeterministicTimeFieldNumber
Field number for the "shaving_search_deterministic_time" field.
bool HasUseAllDifferentForCircuit
Gets whether the "use_all_different_for_circuit" field is set.
const int UseExtendedProbingFieldNumber
Field number for the "use_extended_probing" field.
bool MipAutomaticallyScaleVariables
If true, some continuous variable might be automatically scaled. For now, this is only the case where...
bool StopAfterFirstSolution
For an optimization problem, stop the solver as soon as we have a solution.
int MipMaxActivityExponent
To avoid integer overflow, we always force the maximum possible constraint activity (and objective va...
bool HasExploitIntegerLpSolution
Gets whether the "exploit_integer_lp_solution" field is set.
void ClearLnsInitialDifficulty()
Clears the value of the "lns_initial_difficulty" field.
const int InstantiateAllVariablesFieldNumber
Field number for the "instantiate_all_variables" field.
bool HasPresolveUseBva
Gets whether the "presolve_use_bva" field is set.
bool UseImpliedBounds
Stores and exploits "implied-bounds" in the solver. That is, relations of the form literal => (var >=...
const int RestartAlgorithmsFieldNumber
Field number for the "restart_algorithms" field.
double InprocessingProbingDtime
The amount of dtime we should spend on probing for each inprocessing round.
bool HasCoreMinimizationLevel
Gets whether the "core_minimization_level" field is set.
int RootLpIterations
Even at the root node, we do not want to spend too much time on the LP if it is "difficult"....
bool HasInprocessingMinimizationUseAllOrderings
Gets whether the "inprocessing_minimization_use_all_orderings" field is set.
bool HasShavingSearchDeterministicTime
Gets whether the "shaving_search_deterministic_time" field is set.
bool HasMipScaleLargeDomain
Gets whether the "mip_scale_large_domain" field is set.
bool HasUseCombinedNoOverlap
Gets whether the "use_combined_no_overlap" field is set.
const int RandomPolarityRatioFieldNumber
Field number for the "random_polarity_ratio" field.
void ClearRestartLbdAverageRatio()
Clears the value of the "restart_lbd_average_ratio" field.
bool HasMergeNoOverlapWorkLimit
Gets whether the "merge_no_overlap_work_limit" field is set.
bool ConvertIntervals
Temporary flag util the feature is more mature. This convert intervals to the newer proto format that...
bool HasMaxNumIntervalsForTimetableEdgeFinding
Gets whether the "max_num_intervals_for_timetable_edge_finding" field is set.
bool HasShareObjectiveBounds
Gets whether the "share_objective_bounds" field is set.
const int ClauseCleanupRatioFieldNumber
Field number for the "clause_cleanup_ratio" field.
void ClearDebugCrashOnBadHint()
Clears the value of the "debug_crash_on_bad_hint" field.
const int ShareGlueClausesDtimeFieldNumber
Field number for the "share_glue_clauses_dtime" field.
bool HasKeepSymmetryInPresolve
Gets whether the "keep_symmetry_in_presolve" field is set.
bool HasExploitAllPrecedences
Gets whether the "exploit_all_precedences" field is set.
void ClearUseBlockingRestart()
Clears the value of the "use_blocking_restart" field.
void ClearExpandReservoirConstraints()
Clears the value of the "expand_reservoir_constraints" field.
bool HasFeasibilityJumpMaxExpandedConstraintSize
Gets whether the "feasibility_jump_max_expanded_constraint_size" field is set.
global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder MaxSatAssumptionOrder
bool HasUseFeasibilityPump
Gets whether the "use_feasibility_pump" field is set.
const int VariableActivityDecayFieldNumber
Field number for the "variable_activity_decay" field.
double MipWantedPrecision
When scaling constraint with double coefficients to integer coefficients, we will multiply by a power...
int NoOverlap2DBooleanRelationsLimit
If less than this number of boxes are present in a no-overlap 2d, we create 4 Booleans per pair of bo...
bool CpModelPresolve
Whether we presolve the cp_model before solving it.
bool HasSharedTreeMaxNodesPerWorker
Gets whether the "shared_tree_max_nodes_per_worker" field is set.
int MaxPresolveIterations
In case of large reduction in a presolve iteration, we perform multiple presolve iterations....
int SolutionPoolSize
Size of the top-n different solutions kept by the solver. This parameter must be > 0....
void ClearLpPrimalTolerance()
Clears the value of the "lp_primal_tolerance" field.
void ClearRootLpIterations()
Clears the value of the "root_lp_iterations" field.
int NumConflictsBeforeStrategyChanges
After each restart, if the number of conflict since the last strategy change is greater that this,...
bool HasInferAllDiffs
Gets whether the "infer_all_diffs" field is set.
bool EncodeComplexLinearConstraintWithInteger
Linear constraint with a complex right hand side (more than a single interval) need to be expanded,...
void ClearNewLinearPropagation()
Clears the value of the "new_linear_propagation" field.
const int RandomBranchesRatioFieldNumber
Field number for the "random_branches_ratio" field.
const int DebugCrashIfPresolveBreaksHintFieldNumber
Field number for the "debug_crash_if_presolve_breaks_hint" field.
const int MinimizationAlgorithmFieldNumber
Field number for the "minimization_algorithm" field.
void ClearShareGlueClauses()
Clears the value of the "share_glue_clauses" field.
bool HasMipAutomaticallyScaleVariables
Gets whether the "mip_automatically_scale_variables" field is set.
const int RelativeGapLimitFieldNumber
Field number for the "relative_gap_limit" field.
void ClearPolarityExploitLsHints()
Clears the value of the "polarity_exploit_ls_hints" field.
bool HasMaxPresolveIterations
Gets whether the "max_presolve_iterations" field is set.
pbc::RepeatedField< global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm > RestartAlgorithms
The restart strategies will change each time the strategy_counter is increased. The current strategy ...
bool FindMultipleCores
Whether we try to find more independent cores for a given set of assumptions in the core based max-SA...
void ClearShareLevelZeroBounds()
Clears the value of the "share_level_zero_bounds" field.
bool HasStopAfterFirstSolution
Gets whether the "stop_after_first_solution" field is set.
bool HasMaxNumberOfConflicts
Gets whether the "max_number_of_conflicts" field is set.
const int UseStrongPropagationInDisjunctiveFieldNumber
Field number for the "use_strong_propagation_in_disjunctive" field.
bool MipScaleLargeDomain
If this is false, then mip_var_scaling is only applied to variables with "small" domain....
bool HasRepairHint
Gets whether the "repair_hint" field is set.
bool PolarityExploitLsHints
If true and we have first solution LS workers, tries in some phase to follow a LS solutions that viol...
const int MipMaxActivityExponentFieldNumber
Field number for the "mip_max_activity_exponent" field.
bool OnlyAddCutsAtLevelZero
For the cut that can be generated at any level, this control if we only try to generate them at the r...
const int FeasibilityJumpDecayFieldNumber
Field number for the "feasibility_jump_decay" field.
bool HasMaxSatAssumptionOrder
Gets whether the "max_sat_assumption_order" field is set.
bool OptimizeWithCore
The default optimization method is a simple "linear scan", each time trying to find a better solution...
bool HasAddMirCuts
Gets whether the "add_mir_cuts" field is set.
bool HasShavingDeterministicTimeInProbingSearch
Gets whether the "shaving_deterministic_time_in_probing_search" field is set.
const int UseProbingSearchFieldNumber
Field number for the "use_probing_search" field.
int SharedTreeNumWorkers
Enables shared tree search. If positive, start this many complete worker threads to explore a shared ...
bool HasMaxCutRoundsAtLevelZero
Gets whether the "max_cut_rounds_at_level_zero" field is set.
pbc::RepeatedField< string > FilterSubsolvers
void ClearDefaultRestartAlgorithms()
Clears the value of the "default_restart_algorithms" field.
void ClearClauseCleanupOrdering()
Clears the value of the "clause_cleanup_ordering" field.
bool HasMaxNumCuts
Gets whether the "max_num_cuts" field is set.
double MergeNoOverlapWorkLimit
During presolve, we use a maximum clique heuristic to merge together no-overlap constraints or at mos...
bool HasMinOrthogonalityForLpConstraints
Gets whether the "min_orthogonality_for_lp_constraints" field is set.
void ClearSharedTreeSplitStrategy()
Clears the value of the "shared_tree_split_strategy" field.
void ClearMaxClauseActivityValue()
Clears the value of the "max_clause_activity_value" field.
const int PseudoCostReliabilityThresholdFieldNumber
Field number for the "pseudo_cost_reliability_threshold" field.
void ClearInprocessingMinimizationUseAllOrderings()
Clears the value of the "inprocessing_minimization_use_all_orderings" field.
bool HasViolationLsPerturbationPeriod
Gets whether the "violation_ls_perturbation_period" field is set.
static pbr::MessageDescriptor Descriptor
bool HasOptimizeWithMaxHs
Gets whether the "optimize_with_max_hs" field is set.
void ClearCpModelPresolve()
Clears the value of the "cp_model_presolve" field.
bool HasInprocessingProbingDtime
Gets whether the "inprocessing_probing_dtime" field is set.
bool HasUseEnergeticReasoningInNoOverlap2D
Gets whether the "use_energetic_reasoning_in_no_overlap_2d" field is set.
bool EnumerateAllSolutions
Whether we enumerate all solutions of a problem without objective. Note that setting this to true aut...
const int DiversifyLnsParamsFieldNumber
Field number for the "diversify_lns_params" field.
bool LogToResponse
Log to response proto.
double MinOrthogonalityForLpConstraints
While adding constraints, skip the constraints which have orthogonality less than 'min_orthogonality_...
bool OptimizeWithLbTreeSearch
Do a more conventional tree search (by opposition to SAT based one) where we keep all the explored no...
void ClearCoreMinimizationLevel()
Clears the value of the "core_minimization_level" field.
void ClearInprocessingMinimizationUseConflictAnalysis()
Clears the value of the "inprocessing_minimization_use_conflict_analysis" field.
bool HasUseAreaEnergeticReasoningInNoOverlap2D
Gets whether the "use_area_energetic_reasoning_in_no_overlap_2d" field is set.
void ClearInterleaveBatchSize()
Clears the value of the "interleave_batch_size" field.
long MaxNumberOfConflicts
Maximum number of conflicts allowed to solve a problem.
const int UseLsOnlyFieldNumber
Field number for the "use_ls_only" field.
int ProbingNumCombinationsLimit
How many combinations of pairs or triplets of variables we want to scan.
bool AlsoBumpVariablesInConflictReasons
When this is true, then the variables that appear in any of the reason of the variables in a conflict...
void ClearPresolveBveClauseWeight()
Clears the value of the "presolve_bve_clause_weight" field.
bool HasUseOverloadCheckerInCumulative
Gets whether the "use_overload_checker_in_cumulative" field is set.
bool HasEncodeComplexLinearConstraintWithInteger
Gets whether the "encode_complex_linear_constraint_with_integer" field is set.
bool AddCgCuts
Whether we generate and add Chvatal-Gomory cuts to the LP at root node.
int FeasibilityJumpLinearizationLevel
How much do we linearize the problem in the local search code.
void ClearStopAfterFirstSolution()
Clears the value of the "stop_after_first_solution" field.
int RestartPeriod
Restart period for the FIXED_RESTART strategy. This is also the multiplier used by the LUBY_RESTART s...
int MaxNumIntervalsForTimetableEdgeFinding
Max number of intervals for the timetable_edge_finding algorithm to propagate. A value of 0 disables ...
bool DebugCrashOnBadHint
Crash if we do not manage to complete the hint into a full solution.
bool RandomizeSearch
Randomize fixed search.
bool HasLnsInitialDifficulty
Gets whether the "lns_initial_difficulty" field is set.
long MaxMemoryInMb
Maximum memory allowed for the whole thread containing the solver. The solver will abort as soon as i...
void ClearAutoDetectGreaterThanAtLeastOneOf()
Clears the value of the "auto_detect_greater_than_at_least_one_of" field.
const int BinaryMinimizationAlgorithmFieldNumber
Field number for the "binary_minimization_algorithm" field.
bool IgnoreNames
If true, we don't keep names in our internal copy of the user given model.
bool HasUseFeasibilityJump
Gets whether the "use_feasibility_jump" field is set.
double FeasibilityJumpVarPerburbationRangeRatio
Max distance between the default value and the pertubated value relative to the range of the domain o...
bool HasExpandAlldiffConstraints
Gets whether the "expand_alldiff_constraints" field is set.
bool HasFeasibilityJumpVarRandomizationProbability
Gets whether the "feasibility_jump_var_randomization_probability" field is set.
int FeasibilityJumpMaxExpandedConstraintSize
Maximum size of no_overlap or no_overlap_2d constraint for a quadratic expansion. This might look a l...
bool HasMipMaxValidMagnitude
Gets whether the "mip_max_valid_magnitude" field is set.
void ClearRandomBranchesRatio()
Clears the value of the "random_branches_ratio" field.
bool UseErwaHeuristic
Whether we use the ERWA (Exponential Recency Weighted Average) heuristic as described in "Learning Ra...
bool HasRoutingCutSubsetSizeForTightBinaryRelationBound
Gets whether the "routing_cut_subset_size_for_tight_binary_relation_bound" field is set.
bool HasLogToStdout
Gets whether the "log_to_stdout" field is set.
int RestartRunningWindowSize
Size of the window for the moving average restarts.
const int UseSatInprocessingFieldNumber
Field number for the "use_sat_inprocessing" field.
int PbCleanupIncrement
Same as for the clauses, but for the learned pseudo-Boolean constraints.
int RoutingCutSubsetSizeForTightBinaryRelationBound
Similar to above, but with a different algorithm producing better cuts, at the price of a higher O(2^...
bool HasSearchRandomVariablePoolSize
Gets whether the "search_random_variable_pool_size" field is set.
int NumViolationLs
This will create incomplete subsolvers (that are not LNS subsolvers) that use the feasibility jump co...
double MaxTimeInSeconds
Maximum time allowed in seconds to solve a problem. The counter will starts at the beginning of the S...
bool UseTimetablingInNoOverlap2D
When this is true, the no_overlap_2d constraint is reinforced with propagators from the cumulative co...
bool HasNumSearchWorkers
Gets whether the "num_search_workers" field is set.
const int RoutingCutSubsetSizeForExactBinaryRelationBoundFieldNumber
Field number for the "routing_cut_subset_size_for_exact_binary_relation_bound" field.
bool HasFeasibilityJumpRestartFactor
Gets whether the "feasibility_jump_restart_factor" field is set.
const int MipTreatHighMagnitudeBoundsAsInfinityFieldNumber
Field number for the "mip_treat_high_magnitude_bounds_as_infinity" field.
bool NewLinearPropagation
The new linear propagation code treat all constraints at once and use an adaptation of Bellman-Ford-T...
bool HasUseDisjunctiveConstraintInCumulative
Gets whether the "use_disjunctive_constraint_in_cumulative" field is set.
bool HasBinarySearchNumConflicts
Gets whether the "binary_search_num_conflicts" field is set.
void ClearUseLbRelaxLns()
Clears the value of the "use_lb_relax_lns" field.
bool HasAtMostOneMaxExpansionSize
Gets whether the "at_most_one_max_expansion_size" field is set.
bool HasAddObjectiveCut
Gets whether the "add_objective_cut" field is set.
bool HasUseLsOnly
Gets whether the "use_ls_only" field is set.
void ClearCatchSigintSignal()
Clears the value of the "catch_sigint_signal" field.
bool UseRinsLns
Turns on relaxation induced neighborhood generator.
bool HasLnsInitialDeterministicLimit
Gets whether the "lns_initial_deterministic_limit" field is set.
bool HasSharedTreeWorkerMinRestartsPerSubtree
Gets whether the "shared_tree_worker_min_restarts_per_subtree" field is set.
bool HasDetectLinearizedProduct
Gets whether the "detect_linearized_product" field is set.
void ClearUseSymmetryInLp()
Clears the value of the "use_symmetry_in_lp" field.
void ClearRandomPolarityRatio()
Clears the value of the "random_polarity_ratio" field.
override bool Equals(object other)
bool HasNumFullSubsolvers
Gets whether the "num_full_subsolvers" field is set.
void ClearBlockingRestartMultiplier()
Clears the value of the "blocking_restart_multiplier" field.
double ProbingDeterministicTimeLimit
The maximum "deterministic" time limit to spend in probing. A value of zero will disable the probing.
bool HasMipTreatHighMagnitudeBoundsAsInfinity
Gets whether the "mip_treat_high_magnitude_bounds_as_infinity" field is set.
bool UseDisjunctiveConstraintInCumulative
When this is true, the cumulative constraint is reinforced with propagators from the disjunctive cons...
double FeasibilityJumpBatchDtime
How much dtime for each LS batch.
bool HasMipMaxBound
Gets whether the "mip_max_bound" field is set.
void ClearCutCleanupTarget()
Clears the value of the "cut_cleanup_target" field.
bool HasUseSatInprocessing
Gets whether the "use_sat_inprocessing" field is set.
global::Google.OrTools.Sat.SatParameters.Types.Polarity InitialPolarity
const int MaxVariableActivityValueFieldNumber
Field number for the "max_variable_activity_value" field.
bool HasTableCompressionLevel
Gets whether the "table_compression_level" field is set.
int VariablesShavingLevel
This search takes all Boolean or integer variables, and maximize or minimize them in order to reduce ...
void ClearUseConservativeScaleOverloadChecker()
Clears the value of the "use_conservative_scale_overload_checker" field.
bool HasExploitAllLpSolution
Gets whether the "exploit_all_lp_solution" field is set.
bool HasRoutingCutMaxInfeasiblePathLength
Gets whether the "routing_cut_max_infeasible_path_length" field is set.
void ClearCountAssumptionLevelsInLbd()
Clears the value of the "count_assumption_levels_in_lbd" field.
void ClearInitialVariablesActivity()
Clears the value of the "initial_variables_activity" field.
bool OptimizeWithMaxHs
This has no effect if optimize_with_core is false. If true, use a different core-based algorithm simi...
bool HasPresolveInclusionWorkLimit
Gets whether the "presolve_inclusion_work_limit" field is set.
const int SharedTreeWorkerEnableTrailSharingFieldNumber
Field number for the "shared_tree_worker_enable_trail_sharing" field.
void ClearGlucoseMaxDecay()
Clears the value of the "glucose_max_decay" field.
bool HasShavingSearchThreshold
Gets whether the "shaving_search_threshold" field is set.
void ClearMaxDeterministicTime()
Clears the value of the "max_deterministic_time" field.
void ClearInterleaveSearch()
Clears the value of the "interleave_search" field.
void ClearPresolveUseBva()
Clears the value of the "presolve_use_bva" field.
bool HasPresolveSubstitutionLevel
Gets whether the "presolve_substitution_level" field is set.
double StrategyChangeIncreaseRatio
The parameter num_conflicts_before_strategy_changes is increased by that much after each strategy cha...
pbc::RepeatedField< global::Google.OrTools.Sat.SatParameters > SubsolverParams
It is possible to specify additional subsolver configuration. These can be referred by their params....
const int ShareGlueClausesFieldNumber
Field number for the "share_glue_clauses" field.
bool HasSharedTreeOpenLeavesPerWorker
Gets whether the "shared_tree_open_leaves_per_worker" field is set.
static pb::MessageParser< SatParameters > Parser
double MipCheckPrecision
As explained in mip_precision and mip_max_activity_exponent, we cannot always reach the wanted precis...
bool HasSymmetryLevel
Gets whether the "symmetry_level" field is set.
bool HasInprocessingMinimizationDtime
Gets whether the "inprocessing_minimization_dtime" field is set.
bool UseTimetableEdgeFindingInCumulative
When this is true, the cumulative constraint is reinforced with timetable edge finding,...
bool HasOptimizeWithCore
Gets whether the "optimize_with_core" field is set.
const int MinimizeSharedClausesFieldNumber
Field number for the "minimize_shared_clauses" field.
bool HasPresolveProbingDeterministicTimeLimit
Gets whether the "presolve_probing_deterministic_time_limit" field is set.
bool HasClauseCleanupLbdBound
Gets whether the "clause_cleanup_lbd_bound" field is set.
bool HasHintConflictLimit
Gets whether the "hint_conflict_limit" field is set.
bool HasInterleaveBatchSize
Gets whether the "interleave_batch_size" field is set.
bool HasUseLns
Gets whether the "use_lns" field is set.
bool HasShareGlueClauses
Gets whether the "share_glue_clauses" field is set.
bool HasUseLnsOnly
Gets whether the "use_lns_only" field is set.
const int MipDropToleranceFieldNumber
Field number for the "mip_drop_tolerance" field.
bool HasFillTightenedDomainsInResponse
Gets whether the "fill_tightened_domains_in_response" field is set.
void ClearSearchBranching()
Clears the value of the "search_branching" field.
const int InprocessingProbingDtimeFieldNumber
Field number for the "inprocessing_probing_dtime" field.
bool HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive
Gets whether the "max_size_to_create_precedence_literals_in_disjunctive" field is set.
int MaxSizeToCreatePrecedenceLiteralsInDisjunctive
Create one literal for each disjunction of two pairs of tasks. This slows down the solve time,...
void ClearUseExactLpReason()
Clears the value of the "use_exact_lp_reason" field.
void ClearShareBinaryClauses()
Clears the value of the "share_binary_clauses" field.
bool HasUseSharedTreeSearch
Gets whether the "use_shared_tree_search" field is set.
bool HasVariablesShavingLevel
Gets whether the "variables_shaving_level" field is set.
const int VariablesShavingLevelFieldNumber
Field number for the "variables_shaving_level" field.
int PresolveBveClauseWeight
During presolve, we apply BVE only if this weight times the number of clauses plus the number of clau...
double MipDropTolerance
Any value in the input mip with a magnitude lower than this will be set to zero. This is to avoid som...
bool FilterSatPostsolveClauses
Internal parameter. During BVE, if we eliminate a variable x, by default we will push all clauses con...
const int ShareBinaryClausesFieldNumber
Field number for the "share_binary_clauses" field.
bool HasSaveLpBasisInLbTreeSearch
Gets whether the "save_lp_basis_in_lb_tree_search" field is set.
bool InstantiateAllVariables
If true, the solver will add a default integer branching strategy to the already defined search strat...
const int PreferredVariableOrderFieldNumber
Field number for the "preferred_variable_order" field.
global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm BinaryMinimizationAlgorithm
bool ExploitAllLpSolution
If true and the Lp relaxation of the problem has a solution, try to exploit it. This is same as above...
void ClearUseTryEdgeReasoningInNoOverlap2D()
Clears the value of the "use_try_edge_reasoning_in_no_overlap_2d" field.
void ClearPresolveBvaThreshold()
Clears the value of the "presolve_bva_threshold" field.
void ClearMaxAlldiffDomainSize()
Clears the value of the "max_alldiff_domain_size" field.
bool DebugCrashIfPresolveBreaksHint
Crash if presolve breaks a feasible hint.
string Name
In some context, like in a portfolio of search, it makes sense to name a given parameters set for log...
void ClearDebugCrashIfPresolveBreaksHint()
Clears the value of the "debug_crash_if_presolve_breaks_hint" field.
bool ShareObjectiveBounds
Allows objective sharing between workers.
bool HasAutoDetectGreaterThanAtLeastOneOf
Gets whether the "auto_detect_greater_than_at_least_one_of" field is set.
bool HasFilterSatPostsolveClauses
Gets whether the "filter_sat_postsolve_clauses" field is set.
bool RemoveFixedVariablesEarly
If cp_model_presolve is true and there is a large proportion of fixed variable after the first model ...
bool HasMipDropTolerance
Gets whether the "mip_drop_tolerance" field is set.
int MaxAllDiffCutSize
Cut generator for all diffs can add too many cuts for large all_diff constraints. This parameter rest...
bool InferAllDiffs
Run a max-clique code amongst all the x != y we can find and try to infer set of variables that are a...
bool HasPolishLpSolution
Gets whether the "polish_lp_solution" field is set.
void ClearUseDynamicPrecedenceInDisjunctive()
Clears the value of the "use_dynamic_precedence_in_disjunctive" field.
bool KeepAllFeasibleSolutionsInPresolve
If true, we disable the presolve reductions that remove feasible solutions from the search space....
long PresolveInclusionWorkLimit
A few presolve operations involve detecting constraints included in other constraint....
void ClearClauseCleanupProtection()
Clears the value of the "clause_cleanup_protection" field.
void ClearClauseCleanupRatio()
Clears the value of the "clause_cleanup_ratio" field.
int NewConstraintsBatchSize
Add that many lazy constraints (or cuts) at once in the LP. Note that at the beginning of the solve,...
void ClearAddCliqueCuts()
Clears the value of the "add_clique_cuts" field.
bool AddLinMaxCuts
For the lin max constraints, generates the cuts described in "Strongmixed-integer programming formula...
void ClearDebugMaxNumPresolveOperations()
Clears the value of the "debug_max_num_presolve_operations" field.
bool HasCutLevel
Gets whether the "cut_level" field is set.
bool ExploitBestSolution
When branching on a variable, follow the last best solution value.
bool HasInstantiateAllVariables
Gets whether the "instantiate_all_variables" field is set.
double CutMaxActiveCountValue
These parameters are similar to sat clause management activity parameters. They are effective only if...
void ClearLinearizationLevel()
Clears the value of the "linearization_level" field.
bool HasMaxIntegerRoundingScaling
Gets whether the "max_integer_rounding_scaling" field is set.
void ClearMaxSatAssumptionOrder()
Clears the value of the "max_sat_assumption_order" field.
int CutLevel
Control the global cut effort. Zero will turn off all cut. For now we just have one level....
bool UseExactLpReason
The solver usually exploit the LP relaxation of a model. If this option is true, then whatever is inf...
bool PresolveBlockedClause
Whether we use an heuristic to detect some basic case of blocked clause in the SAT presolve.
bool HasDetectTableWithCost
Gets whether the "detect_table_with_cost" field is set.
void ClearPropagationLoopDetectionFactor()
Clears the value of the "propagation_loop_detection_factor" field.
bool HasUseSymmetryInLp
Gets whether the "use_symmetry_in_lp" field is set.
bool HasRootLpIterations
Gets whether the "root_lp_iterations" field is set.
const int UseObjectiveShavingSearchFieldNumber
Field number for the "use_objective_shaving_search" field.
bool HasSharedTreeSplitStrategy
Gets whether the "shared_tree_split_strategy" field is set.
bool HasFeasibilityJumpEnableRestarts
Gets whether the "feasibility_jump_enable_restarts" field is set.
void ClearPresolveBveThreshold()
Clears the value of the "presolve_bve_threshold" field.
void ClearMipAutomaticallyScaleVariables()
Clears the value of the "mip_automatically_scale_variables" field.
long ShavingSearchThreshold
Specifies the threshold between two modes in the shaving procedure. If the range of the variable/obje...
int CoreMinimizationLevel
If positive, we spend some effort on each core:
bool HasConvertIntervals
Gets whether the "convert_intervals" field is set.
int DebugMaxNumPresolveOperations
If positive, try to stop just after that many presolve rules have been applied. This is mainly useful...
void ClearUseTimetableEdgeFindingInCumulative()
Clears the value of the "use_timetable_edge_finding_in_cumulative" field.
void ClearMipPresolveLevel()
Clears the value of the "mip_presolve_level" field.
const int LnsInitialDifficultyFieldNumber
Field number for the "lns_initial_difficulty" field.
bool HasFeasibilityJumpLinearizationLevel
Gets whether the "feasibility_jump_linearization_level" field is set.
void ClearUseLinear3ForNoOverlap2DPrecedences()
Clears the value of the "use_linear3_for_no_overlap_2d_precedences" field.
bool FixVariablesToTheirHintedValue
If true, variables appearing in the solution hints will be fixed to their hinted value.
const int SearchBranchingFieldNumber
Field number for the "search_branching" field.
global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering ClauseCleanupOrdering
bool HasAddLpConstraintsLazily
Gets whether the "add_lp_constraints_lazily" field is set.
void ClearMinimizeSharedClauses()
Clears the value of the "minimize_shared_clauses" field.
void ClearMaxSatStratification()
Clears the value of the "max_sat_stratification" field.
void ClearRandomizeSearch()
Clears the value of the "randomize_search" field.
const int FeasibilityJumpVarPerburbationRangeRatioFieldNumber
Field number for the "feasibility_jump_var_perburbation_range_ratio" field.
bool HasSharedTreeNumWorkers
Gets whether the "shared_tree_num_workers" field is set.
void ClearCpModelProbingLevel()
Clears the value of the "cp_model_probing_level" field.
bool HasFeasibilityJumpDecay
Gets whether the "feasibility_jump_decay" field is set.
const int GlucoseDecayIncrementPeriodFieldNumber
Field number for the "glucose_decay_increment_period" field.
const int ShavingDeterministicTimeInProbingSearchFieldNumber
Field number for the "shaving_deterministic_time_in_probing_search" field.
int ClauseCleanupLbdBound
All the clauses with a LBD (literal blocks distance) lower or equal to this parameters will always be...
void ClearExpandAlldiffConstraints()
Clears the value of the "expand_alldiff_constraints" field.
void ClearLbRelaxNumWorkersThreshold()
Clears the value of the "lb_relax_num_workers_threshold" field.
void ClearKeepAllFeasibleSolutionsInPresolve()
Clears the value of the "keep_all_feasible_solutions_in_presolve" field.
bool HasUseConservativeScaleOverloadChecker
Gets whether the "use_conservative_scale_overload_checker" field is set.
int ClauseCleanupPeriod
Trigger a cleanup when this number of "deletable" clauses is learned.
bool HasUseTimetableEdgeFindingInCumulative
Gets whether the "use_timetable_edge_finding_in_cumulative" field is set.
bool UseObjectiveLbSearch
If true, search will search in ascending max objective value (when minimizing) starting from the lowe...
bool HasProbingDeterministicTimeLimit
Gets whether the "probing_deterministic_time_limit" field is set.
bool ExploitIntegerLpSolution
If true and the Lp relaxation of the problem has an integer optimal solution, try to exploit it....
bool HasMipCheckPrecision
Gets whether the "mip_check_precision" field is set.
void ClearUsePhaseSaving()
Clears the value of the "use_phase_saving" field.
bool HasInterleaveSearch
Gets whether the "interleave_search" field is set.
void ClearPolarityRephaseIncrement()
Clears the value of the "polarity_rephase_increment" field.
bool HasFillAdditionalSolutionsInResponse
Gets whether the "fill_additional_solutions_in_response" field is set.
bool MinimizeReductionDuringPbResolution
A different algorithm during PB resolution. It minimizes the number of calls to ReduceCoefficients() ...
bool HasExpandReservoirConstraints
Gets whether the "expand_reservoir_constraints" field is set.
bool HasUseImpliedBounds
Gets whether the "use_implied_bounds" field is set.
bool HasUseTryEdgeReasoningInNoOverlap2D
Gets whether the "use_try_edge_reasoning_in_no_overlap_2d" field is set.
bool HasCutActiveCountDecay
Gets whether the "cut_active_count_decay" field is set.
bool ShareBinaryClauses
Allows sharing of new learned binary clause between workers.
void ClearStopAfterPresolve()
Clears the value of the "stop_after_presolve" field.
const int InprocessingDtimeRatioFieldNumber
Field number for the "inprocessing_dtime_ratio" field.
void ClearVariableActivityDecay()
Clears the value of the "variable_activity_decay" field.
bool HasFpRounding
Gets whether the "fp_rounding" field is set.
const int RandomSeedFieldNumber
Field number for the "random_seed" field.
void ClearStrategyChangeIncreaseRatio()
Clears the value of the "strategy_change_increase_ratio" field.
void ClearMaxSatReverseAssumptionOrder()
Clears the value of the "max_sat_reverse_assumption_order" field.
bool RepairHint
If true, the solver tries to repair the solution given in the hint. This search terminates after the ...
const int SubsumptionDuringConflictAnalysisFieldNumber
Field number for the "subsumption_during_conflict_analysis" field.
double FeasibilityJumpDecay
On each restart, we randomly choose if we use decay (with this parameter) or no decay.
bool UseObjectiveShavingSearch
This search differs from the previous search as it will not use assumptions to bound the objective,...
bool EncodeCumulativeAsReservoir
Encore cumulative with fixed demands and capacity as a reservoir constraint. The only reason you migh...
bool UseSharedTreeSearch
Set on shared subtree workers. Users should not set this directly.
bool UseOptimizationHints
For an optimization problem, whether we follow some hints in order to find a better first solution....
int LinearizationLevel
A non-negative level indicating the type of constraints we consider in the LP relaxation....
double MipVarScaling
All continuous variable of the problem will be multiplied by this factor. By default,...
bool HasCpModelProbingLevel
Gets whether the "cp_model_probing_level" field is set.
double GlucoseMaxDecay
The activity starts at 0.8 and increment by 0.01 every 5000 conflicts until 0.95. This "hack" seems t...
int LbRelaxNumWorkersThreshold
Only use lb-relax if we have at least that many workers.
bool UseDualSchedulingHeuristics
When set, it activates a few scheduling parameters to improve the lower bound of scheduling problems....
bool HasDisableConstraintExpansion
Gets whether the "disable_constraint_expansion" field is set.
const int MaxClauseActivityValueFieldNumber
Field number for the "max_clause_activity_value" field.
bool HasEncodeCumulativeAsReservoir
Gets whether the "encode_cumulative_as_reservoir" field is set.
bool HasUseDynamicPrecedenceInCumulative
Gets whether the "use_dynamic_precedence_in_cumulative" field is set.
bool HasPushAllTasksTowardStart
Gets whether the "push_all_tasks_toward_start" field is set.
const int InprocessingMinimizationDtimeFieldNumber
Field number for the "inprocessing_minimization_dtime" field.
bool HasUseStrongPropagationInDisjunctive
Gets whether the "use_strong_propagation_in_disjunctive" field is set.
const int ShavingSearchThresholdFieldNumber
Field number for the "shaving_search_threshold" field.
const int CoverOptimizationFieldNumber
Field number for the "cover_optimization" field.
void ClearMaxTimeInSeconds()
Clears the value of the "max_time_in_seconds" field.
bool HasStopAfterRootPropagation
Gets whether the "stop_after_root_propagation" field is set.
int PresolveSubstitutionLevel
How much substitution (also called free variable aggregation in MIP litterature) should we perform at...
void ClearMaxPresolveIterations()
Clears the value of the "max_presolve_iterations" field.
void ClearBinaryMinimizationAlgorithm()
Clears the value of the "binary_minimization_algorithm" field.
bool HasShareGlueClausesDtime
Gets whether the "share_glue_clauses_dtime" field is set.
double ViolationLsCompoundMoveProbability
Probability of using compound move search each restart.
void ClearAddObjectiveCut()
Clears the value of the "add_objective_cut" field.
bool UseProbingSearch
If true, search will continuously probe Boolean variables, and integer variable bounds....
double SharedTreeOpenLeavesPerWorker
How many open leaf nodes should the shared tree maintain per worker.
bool HasExploitObjective
Gets whether the "exploit_objective" field is set.
void ClearProbingDeterministicTimeLimit()
Clears the value of the "probing_deterministic_time_limit" field.
void ClearEnumerateAllSolutions()
Clears the value of the "enumerate_all_solutions" field.
double RestartDlAverageRatio
In the moving average restart algorithms, a restart is triggered if the window average times this rat...
int SharedTreeBalanceTolerance
How much deeper compared to the ideal max depth of the tree is considered "balanced" enough to still ...
bool HasLinearSplitSize
Gets whether the "linear_split_size" field is set.
const int ClauseCleanupProtectionFieldNumber
Field number for the "clause_cleanup_protection" field.
bool HasFeasibilityJumpBatchDtime
Gets whether the "feasibility_jump_batch_dtime" field is set.
void ClearRoutingCutSubsetSizeForBinaryRelationBound()
Clears the value of the "routing_cut_subset_size_for_binary_relation_bound" field.
void ClearRestartRunningWindowSize()
Clears the value of the "restart_running_window_size" field.
bool HasMergeAtMostOneWorkLimit
Gets whether the "merge_at_most_one_work_limit" field is set.
double LpPrimalTolerance
The internal LP tolerances used by CP-SAT. These applies to the internal and scaled problem....
bool ShareLevelZeroBounds
Allows sharing of the bounds of modified variables at level 0.
void ClearRestartPeriod()
Clears the value of the "restart_period" field.
int MaxPairsPairwiseReasoningInNoOverlap2D
If the number of pairs to look is below this threshold, do an extra step of propagation in the no_ove...
bool HasUseDynamicPrecedenceInDisjunctive
Gets whether the "use_dynamic_precedence_in_disjunctive" field is set.
bool HasOptimizeWithLbTreeSearch
Gets whether the "optimize_with_lb_tree_search" field is set.
bool InterleaveSearch
Experimental. If this is true, then we interleave all our major search strategy and distribute the wo...
const int ProbingNumCombinationsLimitFieldNumber
Field number for the "probing_num_combinations_limit" field.
void ClearConvertIntervals()
Clears the value of the "convert_intervals" field.
bool HasUseHardPrecedencesInCumulative
Gets whether the "use_hard_precedences_in_cumulative" field is set.
void ClearUsePrecedencesInDisjunctiveConstraint()
Clears the value of the "use_precedences_in_disjunctive_constraint" field.
bool UseHardPrecedencesInCumulative
If true, detect and create constraint for integer variable that are "after" a set of intervals in the...
bool AddLpConstraintsLazily
If true, we start by an empty LP, and only add constraints not satisfied by the current LP solution b...
bool HasKeepAllFeasibleSolutionsInPresolve
Gets whether the "keep_all_feasible_solutions_in_presolve" field is set.
bool HasOnlySolveIp
Gets whether the "only_solve_ip" field is set.
const int RoutingCutSubsetSizeForBinaryRelationBoundFieldNumber
Field number for the "routing_cut_subset_size_for_binary_relation_bound" field.
const int GlucoseMaxDecayFieldNumber
Field number for the "glucose_max_decay" field.
bool HasUseRinsLns
Gets whether the "use_rins_lns" field is set.
bool UseAreaEnergeticReasoningInNoOverlap2D
When this is true, the no_overlap_2d constraint is reinforced with an energetic reasoning that uses a...
const int UseDisjunctiveConstraintInCumulativeFieldNumber
Field number for the "use_disjunctive_constraint_in_cumulative" field.
bool ExpandAlldiffConstraints
If true, expand all_different constraints that are not permutations. Permutations (Variables = Values...
bool HasPresolveBlockedClause
Gets whether the "presolve_blocked_clause" field is set.
bool MipComputeTrueObjectiveBound
Even if we make big error when scaling the objective, we can always derive a correct lower bound on t...
const int NumFullSubsolversFieldNumber
Field number for the "num_full_subsolvers" field.
long PseudoCostReliabilityThreshold
The solver ignores the pseudo costs of variables with number of recordings less than this threshold.
bool HasMaxDomainSizeWhenEncodingEqNeqConstraints
Gets whether the "max_domain_size_when_encoding_eq_neq_constraints" field is set.
bool UseDynamicPrecedenceInDisjunctive
Whether we try to branch on decision "interval A before interval B" rather than on intervals bounds....
void ClearAddLinMaxCuts()
Clears the value of the "add_lin_max_cuts" field.
bool UseLinear3ForNoOverlap2DPrecedences
When set, this activates a propagator for the no_overlap_2d constraint that uses any eventual linear ...
int LinearSplitSize
Linear constraints that are not pseudo-Boolean and that are longer than this size will be split into ...
const int SharedTreeWorkerEnablePhaseSharingFieldNumber
Field number for the "shared_tree_worker_enable_phase_sharing" field.
bool HasOnlyAddCutsAtLevelZero
Gets whether the "only_add_cuts_at_level_zero" field is set.
global::Google.OrTools.Sat.SatParameters.Types.SearchBranching SearchBranching
bool HasProbingNumCombinationsLimit
Gets whether the "probing_num_combinations_limit" field is set.
bool HasCpModelUseSatPresolve
Gets whether the "cp_model_use_sat_presolve" field is set.
const int SharedTreeOpenLeavesPerWorkerFieldNumber
Field number for the "shared_tree_open_leaves_per_worker" field.
void ClearFilterSatPostsolveClauses()
Clears the value of the "filter_sat_postsolve_clauses" field.
void ClearUseLns()
Clears the value of the "use_lns" field.
bool FeasibilityJumpEnableRestarts
When stagnating, feasibility jump will either restart from a default solution (with some possible ran...
bool HasMaxMemoryInMb
Gets whether the "max_memory_in_mb" field is set.
bool HasRoutingCutSubsetSizeForBinaryRelationBound
Gets whether the "routing_cut_subset_size_for_binary_relation_bound" field is set.
const int ViolationLsPerturbationPeriodFieldNumber
Field number for the "violation_ls_perturbation_period" field.
void ClearDebugPostsolveWithFullSolver()
Clears the value of the "debug_postsolve_with_full_solver" field.
bool HasUseDualSchedulingHeuristics
Gets whether the "use_dual_scheduling_heuristics" field is set.
bool HasShareBinaryClauses
Gets whether the "share_binary_clauses" field is set.
bool HasLinearizationLevel
Gets whether the "linearization_level" field is set.
bool UseLbRelaxLns
Turns on neighborhood generator based on local branching LP. Based on Huang et al....
int MaxNumCuts
The limit on the number of cuts in our cut pool. When this is reached we do not generate cuts anymore...
bool HasDebugCrashIfPresolveBreaksHint
Gets whether the "debug_crash_if_presolve_breaks_hint" field is set.
const int RoutingCutSubsetSizeForTightBinaryRelationBoundFieldNumber
Field number for the "routing_cut_subset_size_for_tight_binary_relation_bound" field.
double RoutingCutDpEffort
The amount of "effort" to spend in dynamic programming for computing routing cuts....
bool ShareGlueClauses
Allows sharing of short glue clauses between workers. Implicitly disabled if share_binary_clauses is ...
global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy SharedTreeSplitStrategy
double AbsoluteGapLimit
Stop the search when the gap between the best feasible objective (O) and our best objective bound (B)...
int RoutingCutSubsetSizeForExactBinaryRelationBound
Similar to above, but with an even stronger algorithm in O(n!). We try to be defensive and abort earl...
int MaxAlldiffDomainSize
Max domain size for all_different constraints to be expanded.
const int IgnoreNamesFieldNumber
Field number for the "ignore_names" field.
int PresolveBvaThreshold
Apply Bounded Variable Addition (BVA) if the number of clauses is reduced by stricly more than this t...
bool UsePrecedencesInDisjunctiveConstraint
When this is true, then a disjunctive constraint will try to use the precedence relations between tim...
bool HasAddLinMaxCuts
Gets whether the "add_lin_max_cuts" field is set.
const int ClauseCleanupTargetFieldNumber
Field number for the "clause_cleanup_target" field.
bool HasRandomSeed
Gets whether the "random_seed" field is set.
int SharedTreeMaxNodesPerWorker
In order to limit total shared memory and communication overhead, limit the total number of nodes tha...
const int UseTryEdgeReasoningInNoOverlap2DFieldNumber
Field number for the "use_try_edge_reasoning_in_no_overlap_2d" field.
bool HasMipMaxActivityExponent
Gets whether the "mip_max_activity_exponent" field is set.
const int NewConstraintsBatchSizeFieldNumber
Field number for the "new_constraints_batch_size" field.
double MaxDeterministicTime
Maximum time allowed in deterministic time to solve a problem. The deterministic time should be corre...
int SymmetryLevel
Whether we try to automatically detect the symmetries in a model and exploit them....
void ClearInstantiateAllVariables()
Clears the value of the "instantiate_all_variables" field.
bool HasExploitBestSolution
Gets whether the "exploit_best_solution" field is set.
bool HasInprocessingDtimeRatio
Gets whether the "inprocessing_dtime_ratio" field is set.
void ClearSubsumptionDuringConflictAnalysis()
Clears the value of the "subsumption_during_conflict_analysis" field.
void ClearAlsoBumpVariablesInConflictReasons()
Clears the value of the "also_bump_variables_in_conflict_reasons" field.
void ClearShareObjectiveBounds()
Clears the value of the "share_objective_bounds" field.
bool AddObjectiveCut
When the LP objective is fractional, do we add the cut that forces the linear objective expression to...
void ClearPresolveProbingDeterministicTimeLimit()
Clears the value of the "presolve_probing_deterministic_time_limit" field.
int NumWorkers
Specify the number of parallel workers (i.e. threads) to use during search. This should usually be lo...
bool UseOverloadCheckerInCumulative
When this is true, the cumulative constraint is reinforced with overload checking,...
bool HasMaxAlldiffDomainSize
Gets whether the "max_alldiff_domain_size" field is set.
void ClearClauseCleanupTarget()
Clears the value of the "clause_cleanup_target" field.
void ClearGlucoseDecayIncrement()
Clears the value of the "glucose_decay_increment" field.
const int ShareLevelZeroBoundsFieldNumber
Field number for the "share_level_zero_bounds" field.
void ClearBooleanEncodingLevel()
Clears the value of the "boolean_encoding_level" field.
double InprocessingMinimizationDtime
Parameters for an heuristic similar to the one described in "An effectivelearnt clause minimization a...
bool HasPresolveExtractIntegerEnforcement
Gets whether the "presolve_extract_integer_enforcement" field is set.
bool HasLbRelaxNumWorkersThreshold
Gets whether the "lb_relax_num_workers_threshold" field is set.
const int InterleaveSearchFieldNumber
Field number for the "interleave_search" field.
const int OptimizeWithMaxHsFieldNumber
Field number for the "optimize_with_max_hs" field.
const int RepairHintFieldNumber
Field number for the "repair_hint" field.
bool HasFeasibilityJumpVarPerburbationRangeRatio
Gets whether the "feasibility_jump_var_perburbation_range_ratio" field is set.
string LogPrefix
Add a prefix to all logs.
bool HasMaxAllDiffCutSize
Gets whether the "max_all_diff_cut_size" field is set.
const int NumViolationLsFieldNumber
Field number for the "num_violation_ls" field.
int FeasibilityJumpRestartFactor
This is a factor that directly influence the work before each restart. Increasing it leads to longer ...
int NumFullSubsolvers
We distinguish subsolvers that consume a full thread, and the ones that are always interleaved....
bool HasRandomizeSearch
Gets whether the "randomize_search" field is set.
bool UseCombinedNoOverlap
This can be beneficial if there is a lot of no-overlap constraints but a relatively low number of dif...
bool UseSymmetryInLp
When we have symmetry, it is possible to "fold" all variables from the same orbit into a single varia...
const int MaxNumIntervalsForTimetableEdgeFindingFieldNumber
Field number for the "max_num_intervals_for_timetable_edge_finding" field.
bool UseAllDifferentForCircuit
Turn on extra propagation for the circuit constraint. This can be quite slow.
bool StopAfterPresolve
Mainly used when improving the presolver. When true, stops the solver after the presolve is complete ...
double ClauseCleanupRatio
During a cleanup, if clause_cleanup_target is 0, we will delete the clause_cleanup_ratio of "deletabl...
void ClearUseCombinedNoOverlap()
Clears the value of the "use_combined_no_overlap" field.
bool UseBlockingRestart
Block a moving restart algorithm if the trail size of the current conflict is greater than the multip...
bool FillAdditionalSolutionsInResponse
If true, the final response addition_solutions field will be filled with all solutions from our solut...
bool HasUseProbingSearch
Gets whether the "use_probing_search" field is set.
const int MaxConsecutiveInactiveCountFieldNumber
Field number for the "max_consecutive_inactive_count" field.
global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod FpRounding
const int PbCleanupRatioFieldNumber
Field number for the "pb_cleanup_ratio" field.
const int MaximumRegionsToSplitInDisconnectedNoOverlap2DFieldNumber
Field number for the "maximum_regions_to_split_in_disconnected_no_overlap_2d" field.
bool HasMaxConsecutiveInactiveCount
Gets whether the "max_consecutive_inactive_count" field is set.
bool AddMirCuts
Whether we generate MIR cuts at root node.
bool UseExtendedProbing
Use extended probing (probe bool_or, at_most_one, exactly_one).
bool HasCatchSigintSignal
Gets whether the "catch_sigint_signal" field is set.
bool DiversifyLnsParams
If true, registers more lns subsolvers with different parameters.
bool HasDiversifyLnsParams
Gets whether the "diversify_lns_params" field is set.
bool DebugPostsolveWithFullSolver
We have two different postsolve code. The default one should be better and it allows for a more power...
bool HasSharedTreeWorkerEnableTrailSharing
Gets whether the "shared_tree_worker_enable_trail_sharing" field is set.
double PropagationLoopDetectionFactor
Some search decisions might cause a really large number of propagations to happen when integer variab...
const int UseLnsFieldNumber
Field number for the "use_lns" field.
const int OptimizeWithCoreFieldNumber
Field number for the "optimize_with_core" field.
const int ExploitRelaxationSolutionFieldNumber
Field number for the "exploit_relaxation_solution" field.
void ClearMaxNumIntervalsForTimetableEdgeFinding()
Clears the value of the "max_num_intervals_for_timetable_edge_finding" field.
bool CatchSigintSignal
Indicates if the CP-SAT layer should catch Control-C (SIGINT) signals when calling solve....
double FeasibilityJumpVarRandomizationProbability
Probability for a variable to have a non default value upon restarts or perturbations.
int MaxConsecutiveInactiveCount
If a constraint/cut in LP is not active for that many consecutive OPTIMAL solves, remove it from the ...
double ClauseActivityDecay
Clause activity parameters (same effect as the one on the variables).
bool AddZeroHalfCuts
Whether we generate Zero-Half cuts at root node.
bool ExploitRelaxationSolution
When branching on a variable, follow the last best relaxation solution value. We use the relaxation w...
void ClearExploitIntegerLpSolution()
Clears the value of the "exploit_integer_lp_solution" field.
const int PbCleanupIncrementFieldNumber
Field number for the "pb_cleanup_increment" field.
bool HasLpPrimalTolerance
Gets whether the "lp_primal_tolerance" field is set.
bool HasRoutingCutDpEffort
Gets whether the "routing_cut_dp_effort" field is set.
void ClearRemoveFixedVariablesEarly()
Clears the value of the "remove_fixed_variables_early" field.
const int FeasibilityJumpMaxExpandedConstraintSizeFieldNumber
Field number for the "feasibility_jump_max_expanded_constraint_size" field.
bool HasUseLinear3ForNoOverlap2DPrecedences
Gets whether the "use_linear3_for_no_overlap_2d_precedences" field is set.
void ClearMinimizationAlgorithm()
Clears the value of the "minimization_algorithm" field.
bool UseOptionalVariables
If true, we automatically detect variables whose constraint are always enforced by the same literal a...
const int DebugMaxNumPresolveOperationsFieldNumber
Field number for the "debug_max_num_presolve_operations" field.
bool UseLns
Testing parameters used to disable all lns workers.
bool HasCoverOptimization
Gets whether the "cover_optimization" field is set.
const int UseExactLpReasonFieldNumber
Field number for the "use_exact_lp_reason" field.
bool HasCpModelPresolve
Gets whether the "cp_model_presolve" field is set.
bool LogSubsolverStatistics
Whether the solver should display per sub-solver search statistics. This is only useful is log_search...
bool HasSolutionPoolSize
Gets whether the "solution_pool_size" field is set.
bool DetectLinearizedProduct
Infer products of Boolean or of Boolean time IntegerVariable from the linear constrainst in the probl...
bool HasPresolveBveClauseWeight
Gets whether the "presolve_bve_clause_weight" field is set.
void ClearMipWantedPrecision()
Clears the value of the "mip_wanted_precision" field.
double InitialVariablesActivity
The initial value of the variables activity. A non-zero value only make sense when use_erwa_heuristic...
bool PermuteVariableRandomly
This is mainly here to test the solver variability. Note that in tests, if not explicitly set to fals...
bool UseSatInprocessing
Enable or disable "inprocessing" which is some SAT presolving done at each restart to the root level.
void ClearUseErwaHeuristic()
Clears the value of the "use_erwa_heuristic" field.
bool UseLnsOnly
Experimental parameters to disable everything but lns.
bool SaveLpBasisInLbTreeSearch
Experimental. Save the current LP basis at each node of the search tree so that when we jump around,...
int PolarityRephaseIncrement
If non-zero, then we change the polarity heuristic after that many number of conflicts in an arithmet...
bool HasUsePrecedencesInDisjunctiveConstraint
Gets whether the "use_precedences_in_disjunctive_constraint" field is set.
void ClearCpModelUseSatPresolve()
Clears the value of the "cp_model_use_sat_presolve" field.
int CpModelProbingLevel
How much effort do we spend on probing. 0 disables it completely.
double LnsInitialDifficulty
Initial parameters for neighborhood generation.
const int DebugPostsolveWithFullSolverFieldNumber
Field number for the "debug_postsolve_with_full_solver" field.
bool HasShareLevelZeroBounds
Gets whether the "share_level_zero_bounds" field is set.
bool UseConservativeScaleOverloadChecker
Enable a heuristic to solve cumulative constraints using a modified energy constraint....
const int UseTimetableEdgeFindingInCumulativeFieldNumber
Field number for the "use_timetable_edge_finding_in_cumulative" field.
bool HasFixVariablesToTheirHintedValue
Gets whether the "fix_variables_to_their_hinted_value" field is set.
void ClearMaxNumDeterministicBatches()
Clears the value of the "max_num_deterministic_batches" field.
void ClearAtMostOneMaxExpansionSize()
Clears the value of the "at_most_one_max_expansion_size" field.
const int ConvertIntervalsFieldNumber
Field number for the "convert_intervals" field.
bool HasPseudoCostReliabilityThreshold
Gets whether the "pseudo_cost_reliability_threshold" field is set.
void ClearPresolveBlockedClause()
Clears the value of the "presolve_blocked_clause" field.
const int NoOverlap2DBooleanRelationsLimitFieldNumber
Field number for the "no_overlap_2d_boolean_relations_limit" field.
int SharedTreeWorkerMinRestartsPerSubtree
Minimum restarts before a worker will replace a subtree that looks "bad" based on the average LBD of ...
global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm MinimizationAlgorithm
double RandomBranchesRatio
A number between 0 and 1 that indicates the proportion of branching variables that are selected rando...
double MipMaxValidMagnitude
Any finite values in the input MIP must be below this threshold, otherwise the model will be reported...
bool ExploitObjective
When branching an a variable that directly affect the objective, branch on the value that lead to the...
bool HasSharedTreeWorkerEnablePhaseSharing
Gets whether the "shared_tree_worker_enable_phase_sharing" field is set.
bool HasBooleanEncodingLevel
Gets whether the "boolean_encoding_level" field is set.
@ None
There is no corresponding point.