Google OR-Tools v9.12
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 "c19yZXNlYXJjaC5zYXQi+2kKDVNhdFBhcmFtZXRlcnMSDwoEbmFtZRirASAB",
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 "b2x2ZV9idmVfdGhyZXNob2xkGDYgASgFOgM1MDASJQoacHJlc29sdmVfYnZl",
92 "X2NsYXVzZV93ZWlnaHQYNyABKAU6ATMSLAogcHJvYmluZ19kZXRlcm1pbmlz",
93 "dGljX3RpbWVfbGltaXQY4gEgASgBOgExEjUKKXByZXNvbHZlX3Byb2Jpbmdf",
94 "ZGV0ZXJtaW5pc3RpY190aW1lX2xpbWl0GDkgASgBOgIzMBIlChdwcmVzb2x2",
95 "ZV9ibG9ja2VkX2NsYXVzZRhYIAEoCDoEdHJ1ZRIeChBwcmVzb2x2ZV91c2Vf",
96 "YnZhGEggASgIOgR0cnVlEiEKFnByZXNvbHZlX2J2YV90aHJlc2hvbGQYSSAB",
97 "KAU6ATESIwoXbWF4X3ByZXNvbHZlX2l0ZXJhdGlvbnMYigEgASgFOgEzEh8K",
98 "EWNwX21vZGVsX3ByZXNvbHZlGFYgASgIOgR0cnVlEiEKFmNwX21vZGVsX3By",
99 "b2JpbmdfbGV2ZWwYbiABKAU6ATISJwoZY3BfbW9kZWxfdXNlX3NhdF9wcmVz",
100 "b2x2ZRhdIAEoCDoEdHJ1ZRIrChxyZW1vdmVfZml4ZWRfdmFyaWFibGVzX2Vh",
101 "cmx5GLYCIAEoCDoEdHJ1ZRImChZkZXRlY3RfdGFibGVfd2l0aF9jb3N0GNgB",
102 "IAEoCDoFZmFsc2USIwoXdGFibGVfY29tcHJlc3Npb25fbGV2ZWwY2QEgASgF",
103 "OgEyEioKGmV4cGFuZF9hbGxkaWZmX2NvbnN0cmFpbnRzGKoBIAEoCDoFZmFs",
104 "c2USKwocZXhwYW5kX3Jlc2Vydm9pcl9jb25zdHJhaW50cxi2ASABKAg6BHRy",
105 "dWUSLgoeZXhwYW5kX3Jlc2Vydm9pcl91c2luZ19jaXJjdWl0GKACIAEoCDoF",
106 "ZmFsc2USLgoeZW5jb2RlX2N1bXVsYXRpdmVfYXNfcmVzZXJ2b2lyGJ8CIAEo",
107 "CDoFZmFsc2USKgoebWF4X2xpbl9tYXhfc2l6ZV9mb3JfZXhwYW5zaW9uGJgC",
108 "IAEoBToBMBIsChxkaXNhYmxlX2NvbnN0cmFpbnRfZXhwYW5zaW9uGLUBIAEo",
109 "CDoFZmFsc2USPQotZW5jb2RlX2NvbXBsZXhfbGluZWFyX2NvbnN0cmFpbnRf",
110 "d2l0aF9pbnRlZ2VyGN8BIAEoCDoFZmFsc2USMwobbWVyZ2Vfbm9fb3Zlcmxh",
111 "cF93b3JrX2xpbWl0GJEBIAEoAToNMTAwMDAwMDAwMDAwMBIwChxtZXJnZV9h",
112 "dF9tb3N0X29uZV93b3JrX2xpbWl0GJIBIAEoAToJMTAwMDAwMDAwEicKG3By",
113 "ZXNvbHZlX3N1YnN0aXR1dGlvbl9sZXZlbBiTASABKAU6ATESNAokcHJlc29s",
114 "dmVfZXh0cmFjdF9pbnRlZ2VyX2VuZm9yY2VtZW50GK4BIAEoCDoFZmFsc2US",
115 "MQodcHJlc29sdmVfaW5jbHVzaW9uX3dvcmtfbGltaXQYyQEgASgDOgkxMDAw",
116 "MDAwMDASGwoMaWdub3JlX25hbWVzGMoBIAEoCDoEdHJ1ZRIeCg9pbmZlcl9h",
117 "bGxfZGlmZnMY6QEgASgIOgR0cnVlEiYKF2ZpbmRfYmlnX2xpbmVhcl9vdmVy",
118 "bGFwGOoBIAEoCDoEdHJ1ZRIjChR1c2Vfc2F0X2lucHJvY2Vzc2luZxijASAB",
119 "KAg6BHRydWUSJgoYaW5wcm9jZXNzaW5nX2R0aW1lX3JhdGlvGJECIAEoAToD",
120 "MC4yEiYKGmlucHJvY2Vzc2luZ19wcm9iaW5nX2R0aW1lGJICIAEoAToBMRIr",
121 "Ch9pbnByb2Nlc3NpbmdfbWluaW1pemF0aW9uX2R0aW1lGJMCIAEoAToBMRI+",
122 "Ci9pbnByb2Nlc3NpbmdfbWluaW1pemF0aW9uX3VzZV9jb25mbGljdF9hbmFs",
123 "eXNpcxipAiABKAg6BHRydWUSOworaW5wcm9jZXNzaW5nX21pbmltaXphdGlv",
124 "bl91c2VfYWxsX29yZGVyaW5ncxiqAiABKAg6BWZhbHNlEhcKC251bV93b3Jr",
125 "ZXJzGM4BIAEoBToBMBIdChJudW1fc2VhcmNoX3dvcmtlcnMYZCABKAU6ATAS",
126 "HwoTbnVtX2Z1bGxfc3Vic29sdmVycximAiABKAU6ATASEwoKc3Vic29sdmVy",
127 "cxjPASADKAkSGQoQZXh0cmFfc3Vic29sdmVycxjbASADKAkSGgoRaWdub3Jl",
128 "X3N1YnNvbHZlcnMY0QEgAygJEhoKEWZpbHRlcl9zdWJzb2x2ZXJzGKUCIAMo",
129 "CRJBChBzdWJzb2x2ZXJfcGFyYW1zGNIBIAMoCzImLm9wZXJhdGlvbnNfcmVz",
130 "ZWFyY2guc2F0LlNhdFBhcmFtZXRlcnMSIQoRaW50ZXJsZWF2ZV9zZWFyY2gY",
131 "iAEgASgIOgVmYWxzZRIhChVpbnRlcmxlYXZlX2JhdGNoX3NpemUYhgEgASgF",
132 "OgEwEiQKFnNoYXJlX29iamVjdGl2ZV9ib3VuZHMYcSABKAg6BHRydWUSJQoX",
133 "c2hhcmVfbGV2ZWxfemVyb19ib3VuZHMYciABKAg6BHRydWUSIwoUc2hhcmVf",
134 "YmluYXJ5X2NsYXVzZXMYywEgASgIOgR0cnVlEiIKEnNoYXJlX2dsdWVfY2xh",
135 "dXNlcxidAiABKAg6BWZhbHNlEiYKF21pbmltaXplX3NoYXJlZF9jbGF1c2Vz",
136 "GKwCIAEoCDoEdHJ1ZRIwCiBkZWJ1Z19wb3N0c29sdmVfd2l0aF9mdWxsX3Nv",
137 "bHZlchiiASABKAg6BWZhbHNlEi0KIWRlYnVnX21heF9udW1fcHJlc29sdmVf",
138 "b3BlcmF0aW9ucxiXASABKAU6ATASJwoXZGVidWdfY3Jhc2hfb25fYmFkX2hp",
139 "bnQYwwEgASgIOgVmYWxzZRIzCiNkZWJ1Z19jcmFzaF9pZl9wcmVzb2x2ZV9i",
140 "cmVha3NfaGludBiyAiABKAg6BWZhbHNlEiQKFnVzZV9vcHRpbWl6YXRpb25f",
141 "aGludHMYIyABKAg6BHRydWUSIgoXY29yZV9taW5pbWl6YXRpb25fbGV2ZWwY",
142 "MiABKAU6ATISIQoTZmluZF9tdWx0aXBsZV9jb3JlcxhUIAEoCDoEdHJ1ZRIg",
143 "ChJjb3Zlcl9vcHRpbWl6YXRpb24YWSABKAg6BHRydWUSeAoYbWF4X3NhdF9h",
144 "c3N1bXB0aW9uX29yZGVyGDMgASgOMjwub3BlcmF0aW9uc19yZXNlYXJjaC5z",
145 "YXQuU2F0UGFyYW1ldGVycy5NYXhTYXRBc3N1bXB0aW9uT3JkZXI6GERFRkFV",
146 "TFRfQVNTVU1QVElPTl9PUkRFUhIvCiBtYXhfc2F0X3JldmVyc2VfYXNzdW1w",
147 "dGlvbl9vcmRlchg0IAEoCDoFZmFsc2USfAoWbWF4X3NhdF9zdHJhdGlmaWNh",
148 "dGlvbhg1IAEoDjJELm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LlNhdFBhcmFt",
149 "ZXRlcnMuTWF4U2F0U3RyYXRpZmljYXRpb25BbGdvcml0aG06FlNUUkFUSUZJ",
150 "Q0FUSU9OX0RFU0NFTlQSLgohcHJvcGFnYXRpb25fbG9vcF9kZXRlY3Rpb25f",
151 "ZmFjdG9yGN0BIAEoAToCMTASNwopdXNlX3ByZWNlZGVuY2VzX2luX2Rpc2p1",
152 "bmN0aXZlX2NvbnN0cmFpbnQYSiABKAg6BHRydWUSQgo1bWF4X3NpemVfdG9f",
153 "Y3JlYXRlX3ByZWNlZGVuY2VfbGl0ZXJhbHNfaW5fZGlzanVuY3RpdmUY5QEg",
154 "ASgFOgI2MBI1CiV1c2Vfc3Ryb25nX3Byb3BhZ2F0aW9uX2luX2Rpc2p1bmN0",
155 "aXZlGOYBIAEoCDoFZmFsc2USNQoldXNlX2R5bmFtaWNfcHJlY2VkZW5jZV9p",
156 "bl9kaXNqdW5jdGl2ZRiHAiABKAg6BWZhbHNlEjQKJHVzZV9keW5hbWljX3By",
157 "ZWNlZGVuY2VfaW5fY3VtdWxhdGl2ZRiMAiABKAg6BWZhbHNlEjEKInVzZV9v",
158 "dmVybG9hZF9jaGVja2VyX2luX2N1bXVsYXRpdmUYTiABKAg6BWZhbHNlEjcK",
159 "J3VzZV9jb25zZXJ2YXRpdmVfc2NhbGVfb3ZlcmxvYWRfY2hlY2tlchieAiAB",
160 "KAg6BWZhbHNlEjcKKHVzZV90aW1ldGFibGVfZWRnZV9maW5kaW5nX2luX2N1",
161 "bXVsYXRpdmUYTyABKAg6BWZhbHNlEjoKLG1heF9udW1faW50ZXJ2YWxzX2Zv",
162 "cl90aW1ldGFibGVfZWRnZV9maW5kaW5nGIQCIAEoBToDMTAwEjIKInVzZV9o",
163 "YXJkX3ByZWNlZGVuY2VzX2luX2N1bXVsYXRpdmUY1wEgASgIOgVmYWxzZRIn",
164 "ChdleHBsb2l0X2FsbF9wcmVjZWRlbmNlcxjcASABKAg6BWZhbHNlEjYKKHVz",
165 "ZV9kaXNqdW5jdGl2ZV9jb25zdHJhaW50X2luX2N1bXVsYXRpdmUYUCABKAg6",
166 "BHRydWUSMAogdXNlX3RpbWV0YWJsaW5nX2luX25vX292ZXJsYXBfMmQYyAEg",
167 "ASgIOgVmYWxzZRI4Cih1c2VfZW5lcmdldGljX3JlYXNvbmluZ19pbl9ub19v",
168 "dmVybGFwXzJkGNUBIAEoCDoFZmFsc2USPQotdXNlX2FyZWFfZW5lcmdldGlj",
169 "X3JlYXNvbmluZ19pbl9ub19vdmVybGFwXzJkGI8CIAEoCDoFZmFsc2USNwon",
170 "dXNlX3RyeV9lZGdlX3JlYXNvbmluZ19pbl9ub19vdmVybGFwXzJkGKsCIAEo",
171 "CDoFZmFsc2USPAotbWF4X3BhaXJzX3BhaXJ3aXNlX3JlYXNvbmluZ19pbl9u",
172 "b19vdmVybGFwXzJkGJQCIAEoBToEMTI1MBJCCjZtYXhpbXVtX3JlZ2lvbnNf",
173 "dG9fc3BsaXRfaW5fZGlzY29ubmVjdGVkX25vX292ZXJsYXBfMmQYuwIgASgF",
174 "OgEwEi0KHnVzZV9kdWFsX3NjaGVkdWxpbmdfaGV1cmlzdGljcxjWASABKAg6",
175 "BHRydWUSLQoddXNlX2FsbF9kaWZmZXJlbnRfZm9yX2NpcmN1aXQYtwIgASgI",
176 "OgVmYWxzZRI9CjFyb3V0aW5nX2N1dF9zdWJzZXRfc2l6ZV9mb3JfYmluYXJ5",
177 "X3JlbGF0aW9uX2JvdW5kGLgCIAEoBToBMBJDCjdyb3V0aW5nX2N1dF9zdWJz",
178 "ZXRfc2l6ZV9mb3JfdGlnaHRfYmluYXJ5X3JlbGF0aW9uX2JvdW5kGLkCIAEo",
179 "BToBMBIoChVyb3V0aW5nX2N1dF9kcF9lZmZvcnQYugIgASgBOggxMDAwMDAw",
180 "MBJiChBzZWFyY2hfYnJhbmNoaW5nGFIgASgOMjYub3BlcmF0aW9uc19yZXNl",
181 "YXJjaC5zYXQuU2F0UGFyYW1ldGVycy5TZWFyY2hCcmFuY2hpbmc6EEFVVE9N",
182 "QVRJQ19TRUFSQ0gSIAoTaGludF9jb25mbGljdF9saW1pdBiZASABKAU6AjEw",
183 "EhsKC3JlcGFpcl9oaW50GKcBIAEoCDoFZmFsc2USMwojZml4X3ZhcmlhYmxl",
184 "c190b190aGVpcl9oaW50ZWRfdmFsdWUYwAEgASgIOgVmYWxzZRIiChJ1c2Vf",
185 "cHJvYmluZ19zZWFyY2gYsAEgASgIOgVmYWxzZRIjChR1c2VfZXh0ZW5kZWRf",
186 "cHJvYmluZxiNAiABKAg6BHRydWUSLgoecHJvYmluZ19udW1fY29tYmluYXRp",
187 "b25zX2xpbWl0GJACIAEoBToFMjAwMDASLAoddXNlX3NoYXZpbmdfaW5fcHJv",
188 "YmluZ19zZWFyY2gYzAEgASgIOgR0cnVlEjEKIXNoYXZpbmdfc2VhcmNoX2Rl",
189 "dGVybWluaXN0aWNfdGltZRjNASABKAE6BTAuMDAxEiUKGHNoYXZpbmdfc2Vh",
190 "cmNoX3RocmVzaG9sZBiiAiABKAM6AjY0EicKF3VzZV9vYmplY3RpdmVfbGJf",
191 "c2VhcmNoGOQBIAEoCDoFZmFsc2USLAocdXNlX29iamVjdGl2ZV9zaGF2aW5n",
192 "X3NlYXJjaBj9ASABKAg6BWZhbHNlEiwKHHVzZV92YXJpYWJsZXNfc2hhdmlu",
193 "Z19zZWFyY2gYoQIgASgIOgVmYWxzZRIuCiFwc2V1ZG9fY29zdF9yZWxpYWJp",
194 "bGl0eV90aHJlc2hvbGQYeyABKAM6AzEwMBIhChJvcHRpbWl6ZV93aXRoX2Nv",
195 "cmUYUyABKAg6BWZhbHNlEiwKHG9wdGltaXplX3dpdGhfbGJfdHJlZV9zZWFy",
196 "Y2gYvAEgASgIOgVmYWxzZRIvCh9zYXZlX2xwX2Jhc2lzX2luX2xiX3RyZWVf",
197 "c2VhcmNoGJwCIAEoCDoFZmFsc2USJwobYmluYXJ5X3NlYXJjaF9udW1fY29u",
198 "ZmxpY3RzGGMgASgFOgItMRIjChRvcHRpbWl6ZV93aXRoX21heF9ocxhVIAEo",
199 "CDoFZmFsc2USIwoUdXNlX2ZlYXNpYmlsaXR5X2p1bXAYiQIgASgIOgR0cnVl",
200 "EhsKC3VzZV9sc19vbmx5GPABIAEoCDoFZmFsc2USJQoWZmVhc2liaWxpdHlf",
201 "anVtcF9kZWNheRjyASABKAE6BDAuOTUSMAokZmVhc2liaWxpdHlfanVtcF9s",
202 "aW5lYXJpemF0aW9uX2xldmVsGIECIAEoBToBMhIrCh9mZWFzaWJpbGl0eV9q",
203 "dW1wX3Jlc3RhcnRfZmFjdG9yGIICIAEoBToBMRIqChxmZWFzaWJpbGl0eV9q",
204 "dW1wX2JhdGNoX2R0aW1lGKQCIAEoAToDMC4xEj0KLmZlYXNpYmlsaXR5X2p1",
205 "bXBfdmFyX3JhbmRvbWl6YXRpb25fcHJvYmFiaWxpdHkY9wEgASgBOgQwLjA1",
206 "EjsKLWZlYXNpYmlsaXR5X2p1bXBfdmFyX3BlcmJ1cmJhdGlvbl9yYW5nZV9y",
207 "YXRpbxj4ASABKAE6AzAuMhIvCiBmZWFzaWJpbGl0eV9qdW1wX2VuYWJsZV9y",
208 "ZXN0YXJ0cxj6ASABKAg6BHRydWUSOwotZmVhc2liaWxpdHlfanVtcF9tYXhf",
209 "ZXhwYW5kZWRfY29uc3RyYWludF9zaXplGIgCIAEoBToDNTAwEhwKEG51bV92",
210 "aW9sYXRpb25fbHMY9AEgASgFOgEwEi4KIHZpb2xhdGlvbl9sc19wZXJ0dXJi",
211 "YXRpb25fcGVyaW9kGPkBIAEoBToDMTAwEjQKJnZpb2xhdGlvbl9sc19jb21w",
212 "b3VuZF9tb3ZlX3Byb2JhYmlsaXR5GIMCIAEoAToDMC41EiMKF3NoYXJlZF90",
213 "cmVlX251bV93b3JrZXJzGOsBIAEoBToBMBImChZ1c2Vfc2hhcmVkX3RyZWVf",
214 "c2VhcmNoGOwBIAEoCDoFZmFsc2USNworc2hhcmVkX3RyZWVfd29ya2VyX21p",
215 "bl9yZXN0YXJ0c19wZXJfc3VidHJlZRiaAiABKAU6ATESNgonc2hhcmVkX3Ry",
216 "ZWVfd29ya2VyX2VuYWJsZV90cmFpbF9zaGFyaW5nGKcCIAEoCDoEdHJ1ZRI2",
217 "CidzaGFyZWRfdHJlZV93b3JrZXJfZW5hYmxlX3BoYXNlX3NoYXJpbmcYsAIg",
218 "ASgIOgR0cnVlEi4KInNoYXJlZF90cmVlX29wZW5fbGVhdmVzX3Blcl93b3Jr",
219 "ZXIYmQIgASgBOgEyEjAKIHNoYXJlZF90cmVlX21heF9ub2Rlc19wZXJfd29y",
220 "a2VyGO4BIAEoBToFMTAwMDASeAoac2hhcmVkX3RyZWVfc3BsaXRfc3RyYXRl",
221 "Z3kY7wEgASgOMj4ub3BlcmF0aW9uc19yZXNlYXJjaC5zYXQuU2F0UGFyYW1l",
222 "dGVycy5TaGFyZWRUcmVlU3BsaXRTdHJhdGVneToTU1BMSVRfU1RSQVRFR1lf",
223 "QVVUTxIpCh1zaGFyZWRfdHJlZV9iYWxhbmNlX3RvbGVyYW5jZRixAiABKAU6",
224 "ATESJgoXZW51bWVyYXRlX2FsbF9zb2x1dGlvbnMYVyABKAg6BWZhbHNlEjcK",
225 "J2tlZXBfYWxsX2ZlYXNpYmxlX3NvbHV0aW9uc19pbl9wcmVzb2x2ZRitASAB",
226 "KAg6BWZhbHNlEjIKImZpbGxfdGlnaHRlbmVkX2RvbWFpbnNfaW5fcmVzcG9u",
227 "c2UYhAEgASgIOgVmYWxzZRI1CiVmaWxsX2FkZGl0aW9uYWxfc29sdXRpb25z",
228 "X2luX3Jlc3BvbnNlGMIBIAEoCDoFZmFsc2USJwoZaW5zdGFudGlhdGVfYWxs",
229 "X3ZhcmlhYmxlcxhqIAEoCDoEdHJ1ZRI2CihhdXRvX2RldGVjdF9ncmVhdGVy",
230 "X3RoYW5fYXRfbGVhc3Rfb25lX29mGF8gASgIOgR0cnVlEigKGXN0b3BfYWZ0",
231 "ZXJfZmlyc3Rfc29sdXRpb24YYiABKAg6BWZhbHNlEiMKE3N0b3BfYWZ0ZXJf",
232 "cHJlc29sdmUYlQEgASgIOgVmYWxzZRIrChtzdG9wX2FmdGVyX3Jvb3RfcHJv",
233 "cGFnYXRpb24Y/AEgASgIOgVmYWxzZRIkChZsbnNfaW5pdGlhbF9kaWZmaWN1",
234 "bHR5GLMCIAEoAToDMC41Ei0KH2xuc19pbml0aWFsX2RldGVybWluaXN0aWNf",
235 "bGltaXQYtAIgASgBOgMwLjESFgoHdXNlX2xucxibAiABKAg6BHRydWUSGwoM",
236 "dXNlX2xuc19vbmx5GGUgASgIOgVmYWxzZRIeChJzb2x1dGlvbl9wb29sX3Np",
237 "emUYwQEgASgFOgEzEhsKDHVzZV9yaW5zX2xucxiBASABKAg6BHRydWUSIwoU",
238 "dXNlX2ZlYXNpYmlsaXR5X3B1bXAYpAEgASgIOgR0cnVlEh8KEHVzZV9sYl9y",
239 "ZWxheF9sbnMY/wEgASgIOgR0cnVlEisKHmxiX3JlbGF4X251bV93b3JrZXJz",
240 "X3RocmVzaG9sZBioAiABKAU6AjE2EmMKC2ZwX3JvdW5kaW5nGKUBIAEoDjI3",
241 "Lm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LlNhdFBhcmFtZXRlcnMuRlBSb3Vu",
242 "ZGluZ01ldGhvZDoUUFJPUEFHQVRJT05fQVNTSVNURUQSJAoUZGl2ZXJzaWZ5",
243 "X2xuc19wYXJhbXMYiQEgASgIOgVmYWxzZRIfChByYW5kb21pemVfc2VhcmNo",
244 "GGcgASgIOgVmYWxzZRIrCiBzZWFyY2hfcmFuZG9tX3ZhcmlhYmxlX3Bvb2xf",
245 "c2l6ZRhoIAEoAzoBMBIrChtwdXNoX2FsbF90YXNrc190b3dhcmRfc3RhcnQY",
246 "hgIgASgIOgVmYWxzZRIlChZ1c2Vfb3B0aW9uYWxfdmFyaWFibGVzGGwgASgI",
247 "OgVmYWxzZRIhChN1c2VfZXhhY3RfbHBfcmVhc29uGG0gASgIOgR0cnVlEicK",
248 "F3VzZV9jb21iaW5lZF9ub19vdmVybGFwGIUBIAEoCDoFZmFsc2USKgoeYXRf",
249 "bW9zdF9vbmVfbWF4X2V4cGFuc2lvbl9zaXplGI4CIAEoBToBMxIiChNjYXRj",
250 "aF9zaWdpbnRfc2lnbmFsGIcBIAEoCDoEdHJ1ZRIhChJ1c2VfaW1wbGllZF9i",
251 "b3VuZHMYkAEgASgIOgR0cnVlEiIKEnBvbGlzaF9scF9zb2x1dGlvbhivASAB",
252 "KAg6BWZhbHNlEiMKE2xwX3ByaW1hbF90b2xlcmFuY2UYigIgASgBOgUxZS0w",
253 "NxIhChFscF9kdWFsX3RvbGVyYW5jZRiLAiABKAE6BTFlLTA3EiAKEWNvbnZl",
254 "cnRfaW50ZXJ2YWxzGLEBIAEoCDoEdHJ1ZRIaCg5zeW1tZXRyeV9sZXZlbBi3",
255 "ASABKAU6ATISIgoSdXNlX3N5bW1ldHJ5X2luX2xwGK0CIAEoCDoFZmFsc2US",
256 "KQoZa2VlcF9zeW1tZXRyeV9pbl9wcmVzb2x2ZRivAiABKAg6BWZhbHNlEjcK",
257 "K3N5bW1ldHJ5X2RldGVjdGlvbl9kZXRlcm1pbmlzdGljX3RpbWVfbGltaXQY",
258 "rgIgASgBOgExEiUKFm5ld19saW5lYXJfcHJvcGFnYXRpb24Y4AEgASgIOgR0",
259 "cnVlEh8KEWxpbmVhcl9zcGxpdF9zaXplGIACIAEoBToDMTAwEh4KE2xpbmVh",
260 "cml6YXRpb25fbGV2ZWwYWiABKAU6ATESIQoWYm9vbGVhbl9lbmNvZGluZ19s",
261 "ZXZlbBhrIAEoBToBMRI9CjBtYXhfZG9tYWluX3NpemVfd2hlbl9lbmNvZGlu",
262 "Z19lcV9uZXFfY29uc3RyYWludHMYvwEgASgFOgIxNhIbCgxtYXhfbnVtX2N1",
263 "dHMYWyABKAU6BTEwMDAwEhUKCWN1dF9sZXZlbBjEASABKAU6ATESKgobb25s",
264 "eV9hZGRfY3V0c19hdF9sZXZlbF96ZXJvGFwgASgIOgVmYWxzZRIhChFhZGRf",
265 "b2JqZWN0aXZlX2N1dBjFASABKAg6BWZhbHNlEhkKC2FkZF9jZ19jdXRzGHUg",
266 "ASgIOgR0cnVlEhoKDGFkZF9taXJfY3V0cxh4IAEoCDoEdHJ1ZRIhChJhZGRf",
267 "emVyb19oYWxmX2N1dHMYqQEgASgIOgR0cnVlEh4KD2FkZF9jbGlxdWVfY3V0",
268 "cxisASABKAg6BHRydWUSGwoMYWRkX3JsdF9jdXRzGJcCIAEoCDoEdHJ1ZRIi",
269 "ChVtYXhfYWxsX2RpZmZfY3V0X3NpemUYlAEgASgFOgI2NBIfChBhZGRfbGlu",
270 "X21heF9jdXRzGJgBIAEoCDoEdHJ1ZRIpChxtYXhfaW50ZWdlcl9yb3VuZGlu",
271 "Z19zY2FsaW5nGHcgASgFOgM2MDASJwoZYWRkX2xwX2NvbnN0cmFpbnRzX2xh",
272 "emlseRhwIAEoCDoEdHJ1ZRIhChJyb290X2xwX2l0ZXJhdGlvbnMY4wEgASgF",
273 "OgQyMDAwEjIKJG1pbl9vcnRob2dvbmFsaXR5X2Zvcl9scF9jb25zdHJhaW50",
274 "cxhzIAEoAToEMC4wNRIoChxtYXhfY3V0X3JvdW5kc19hdF9sZXZlbF96ZXJv",
275 "GJoBIAEoBToBMRIrCh5tYXhfY29uc2VjdXRpdmVfaW5hY3RpdmVfY291bnQY",
276 "eSABKAU6AzEwMBIwChpjdXRfbWF4X2FjdGl2ZV9jb3VudF92YWx1ZRibASAB",
277 "KAE6CzEwMDAwMDAwMDAwEiQKFmN1dF9hY3RpdmVfY291bnRfZGVjYXkYnAEg",
278 "ASgBOgMwLjgSIQoSY3V0X2NsZWFudXBfdGFyZ2V0GJ0BIAEoBToEMTAwMBIm",
279 "ChpuZXdfY29uc3RyYWludHNfYmF0Y2hfc2l6ZRh6IAEoBToCNTASKQobZXhw",
280 "bG9pdF9pbnRlZ2VyX2xwX3NvbHV0aW9uGF4gASgIOgR0cnVlEiUKF2V4cGxv",
281 "aXRfYWxsX2xwX3NvbHV0aW9uGHQgASgIOgR0cnVlEiUKFWV4cGxvaXRfYmVz",
282 "dF9zb2x1dGlvbhiCASABKAg6BWZhbHNlEisKG2V4cGxvaXRfcmVsYXhhdGlv",
283 "bl9zb2x1dGlvbhihASABKAg6BWZhbHNlEiAKEWV4cGxvaXRfb2JqZWN0aXZl",
284 "GIMBIAEoCDoEdHJ1ZRIpChlkZXRlY3RfbGluZWFyaXplZF9wcm9kdWN0GJUC",
285 "IAEoCDoFZmFsc2USHwoNbWlwX21heF9ib3VuZBh8IAEoAToIMTAwMDAwMDAS",
286 "GgoPbWlwX3Zhcl9zY2FsaW5nGH0gASgBOgExEiYKFm1pcF9zY2FsZV9sYXJn",
287 "ZV9kb21haW4Y4QEgASgIOgVmYWxzZRIwCiFtaXBfYXV0b21hdGljYWxseV9z",
288 "Y2FsZV92YXJpYWJsZXMYpgEgASgIOgR0cnVlEh0KDW9ubHlfc29sdmVfaXAY",
289 "3gEgASgIOgVmYWxzZRIjChRtaXBfd2FudGVkX3ByZWNpc2lvbhh+IAEoAToF",
290 "MWUtMDYSJQoZbWlwX21heF9hY3Rpdml0eV9leHBvbmVudBh/IAEoBToCNTMS",
291 "JAoTbWlwX2NoZWNrX3ByZWNpc2lvbhiAASABKAE6BjAuMDAwMRIvCiBtaXBf",
292 "Y29tcHV0ZV90cnVlX29iamVjdGl2ZV9ib3VuZBjGASABKAg6BHRydWUSJwoX",
293 "bWlwX21heF92YWxpZF9tYWduaXR1ZGUYxwEgASgBOgUxZSsyMBI7CittaXBf",
294 "dHJlYXRfaGlnaF9tYWduaXR1ZGVfYm91bmRzX2FzX2luZmluaXR5GJYCIAEo",
295 "CDoFZmFsc2USIgoSbWlwX2Ryb3BfdG9sZXJhbmNlGOgBIAEoAToFMWUtMTYS",
296 "HgoSbWlwX3ByZXNvbHZlX2xldmVsGIUCIAEoBToBMiJICg1WYXJpYWJsZU9y",
297 "ZGVyEgwKCElOX09SREVSEAASFAoQSU5fUkVWRVJTRV9PUkRFUhABEhMKD0lO",
298 "X1JBTkRPTV9PUkRFUhACIkYKCFBvbGFyaXR5EhEKDVBPTEFSSVRZX1RSVUUQ",
299 "ABISCg5QT0xBUklUWV9GQUxTRRABEhMKD1BPTEFSSVRZX1JBTkRPTRACIlYK",
300 "HUNvbmZsaWN0TWluaW1pemF0aW9uQWxnb3JpdGhtEggKBE5PTkUQABIKCgZT",
301 "SU1QTEUQARINCglSRUNVUlNJVkUQAhIQCgxFWFBFUklNRU5UQUwQAyLgAQoZ",
302 "QmluYXJ5TWluaXphdGlvbkFsZ29yaXRobRIaChZOT19CSU5BUllfTUlOSU1J",
303 "WkFUSU9OEAASHQoZQklOQVJZX01JTklNSVpBVElPTl9GSVJTVBABEjcKM0JJ",
304 "TkFSWV9NSU5JTUlaQVRJT05fRklSU1RfV0lUSF9UUkFOU0lUSVZFX1JFRFVD",
305 "VElPThAEEikKJUJJTkFSWV9NSU5JTUlaQVRJT05fV0lUSF9SRUFDSEFCSUxJ",
306 "VFkQAhIkCiBFWFBFUklNRU5UQUxfQklOQVJZX01JTklNSVpBVElPThADIlIK",
307 "EENsYXVzZVByb3RlY3Rpb24SEwoPUFJPVEVDVElPTl9OT05FEAASFQoRUFJP",
308 "VEVDVElPTl9BTFdBWVMQARISCg5QUk9URUNUSU9OX0xCRBACIjUKDkNsYXVz",
309 "ZU9yZGVyaW5nEhMKD0NMQVVTRV9BQ1RJVklUWRAAEg4KCkNMQVVTRV9MQkQQ",
310 "ASKGAQoQUmVzdGFydEFsZ29yaXRobRIOCgpOT19SRVNUQVJUEAASEAoMTFVC",
311 "WV9SRVNUQVJUEAESHQoZRExfTU9WSU5HX0FWRVJBR0VfUkVTVEFSVBACEh4K",
312 "GkxCRF9NT1ZJTkdfQVZFUkFHRV9SRVNUQVJUEAMSEQoNRklYRURfUkVTVEFS",
313 "VBAEInQKFU1heFNhdEFzc3VtcHRpb25PcmRlchIcChhERUZBVUxUX0FTU1VN",
314 "UFRJT05fT1JERVIQABIdChlPUkRFUl9BU1NVTVBUSU9OX0JZX0RFUFRIEAES",
315 "HgoaT1JERVJfQVNTVU1QVElPTl9CWV9XRUlHSFQQAiJvCh1NYXhTYXRTdHJh",
316 "dGlmaWNhdGlvbkFsZ29yaXRobRIXChNTVFJBVElGSUNBVElPTl9OT05FEAAS",
317 "GgoWU1RSQVRJRklDQVRJT05fREVTQ0VOVBABEhkKFVNUUkFUSUZJQ0FUSU9O",
318 "X0FTQ0VOVBACIuEBCg9TZWFyY2hCcmFuY2hpbmcSFAoQQVVUT01BVElDX1NF",
319 "QVJDSBAAEhAKDEZJWEVEX1NFQVJDSBABEhQKEFBPUlRGT0xJT19TRUFSQ0gQ",
320 "AhINCglMUF9TRUFSQ0gQAxIWChJQU0VVRE9fQ09TVF9TRUFSQ0gQBBInCiNQ",
321 "T1JURk9MSU9fV0lUSF9RVUlDS19SRVNUQVJUX1NFQVJDSBAFEg8KC0hJTlRf",
322 "U0VBUkNIEAYSGAoUUEFSVElBTF9GSVhFRF9TRUFSQ0gQBxIVChFSQU5ET01J",
323 "WkVEX1NFQVJDSBAIIrgBChdTaGFyZWRUcmVlU3BsaXRTdHJhdGVneRIXChNT",
324 "UExJVF9TVFJBVEVHWV9BVVRPEAASHgoaU1BMSVRfU1RSQVRFR1lfRElTQ1JF",
325 "UEFOQ1kQARIfChtTUExJVF9TVFJBVEVHWV9PQkpFQ1RJVkVfTEIQAhIgChxT",
326 "UExJVF9TVFJBVEVHWV9CQUxBTkNFRF9UUkVFEAMSIQodU1BMSVRfU1RSQVRF",
327 "R1lfRklSU1RfUFJPUE9TQUwQBCJoChBGUFJvdW5kaW5nTWV0aG9kEhMKD05F",
328 "QVJFU1RfSU5URUdFUhAAEg4KCkxPQ0tfQkFTRUQQARIVChFBQ1RJVkVfTE9D",
329 "S19CQVNFRBADEhgKFFBST1BBR0FUSU9OX0FTU0lTVEVEEAJCawoWY29tLmdv",
330 "b2dsZS5vcnRvb2xzLnNhdFABWjpnaXRodWIuY29tL2dvb2dsZS9vci10b29s",
331 "cy9vcnRvb2xzL3NhdC9wcm90by9zYXRwYXJhbWV0ZXJzqgISR29vZ2xlLk9y",
332 "VG9vbHMuU2F0"));
333 descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
334 new pbr::FileDescriptor[] { },
335 new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
336 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", "PresolveBveClauseWeight", "ProbingDeterministicTimeLimit", "PresolveProbingDeterministicTimeLimit", "PresolveBlockedClause", "PresolveUseBva", "PresolveBvaThreshold", "MaxPresolveIterations", "CpModelPresolve", "CpModelProbingLevel", "CpModelUseSatPresolve", "RemoveFixedVariablesEarly", "DetectTableWithCost", "TableCompressionLevel", "ExpandAlldiffConstraints", "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", "DebugPostsolveWithFullSolver", "DebugMaxNumPresolveOperations", "DebugCrashOnBadHint", "DebugCrashIfPresolveBreaksHint", "UseOptimizationHints", "CoreMinimizationLevel", "FindMultipleCores", "CoverOptimization", "MaxSatAssumptionOrder", "MaxSatReverseAssumptionOrder", "MaxSatStratification", "PropagationLoopDetectionFactor", "UsePrecedencesInDisjunctiveConstraint", "MaxSizeToCreatePrecedenceLiteralsInDisjunctive", "UseStrongPropagationInDisjunctive", "UseDynamicPrecedenceInDisjunctive", "UseDynamicPrecedenceInCumulative", "UseOverloadCheckerInCumulative", "UseConservativeScaleOverloadChecker", "UseTimetableEdgeFindingInCumulative", "MaxNumIntervalsForTimetableEdgeFinding", "UseHardPrecedencesInCumulative", "ExploitAllPrecedences", "UseDisjunctiveConstraintInCumulative", "UseTimetablingInNoOverlap2D", "UseEnergeticReasoningInNoOverlap2D", "UseAreaEnergeticReasoningInNoOverlap2D", "UseTryEdgeReasoningInNoOverlap2D", "MaxPairsPairwiseReasoningInNoOverlap2D", "MaximumRegionsToSplitInDisconnectedNoOverlap2D", "UseDualSchedulingHeuristics", "UseAllDifferentForCircuit", "RoutingCutSubsetSizeForBinaryRelationBound", "RoutingCutSubsetSizeForTightBinaryRelationBound", "RoutingCutDpEffort", "SearchBranching", "HintConflictLimit", "RepairHint", "FixVariablesToTheirHintedValue", "UseProbingSearch", "UseExtendedProbing", "ProbingNumCombinationsLimit", "UseShavingInProbingSearch", "ShavingSearchDeterministicTime", "ShavingSearchThreshold", "UseObjectiveLbSearch", "UseObjectiveShavingSearch", "UseVariablesShavingSearch", "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)
337 }));
338 }
339 #endregion
340
341 }
342 #region Messages
349 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
350 public sealed partial class SatParameters : pb::IMessage<SatParameters>
351 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
352 , pb::IBufferMessage
353 #endif
354 {
355 private static readonly pb::MessageParser<SatParameters> _parser = new pb::MessageParser<SatParameters>(() => new SatParameters());
356 private pb::UnknownFieldSet _unknownFields;
357 private int _hasBits0;
358 private int _hasBits1;
359 private int _hasBits2;
360 private int _hasBits3;
361 private int _hasBits4;
362 private int _hasBits5;
363 private int _hasBits6;
364 private int _hasBits7;
365 private int _hasBits8;
366 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
367 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
368 public static pb::MessageParser<SatParameters> Parser { get { return _parser; } }
370 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
371 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
372 public static pbr::MessageDescriptor Descriptor {
373 get { return global::Google.OrTools.Sat.SatParametersReflection.Descriptor.MessageTypes[0]; }
374 }
375
376 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
377 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
378 pbr::MessageDescriptor pb::IMessage.Descriptor {
379 get { return Descriptor; }
380 }
381
382 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
383 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
384 public SatParameters() {
385 OnConstruction();
386 }
387
388 partial void OnConstruction();
389
390 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
391 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
392 public SatParameters(SatParameters other) : this() {
393 _hasBits0 = other._hasBits0;
394 _hasBits1 = other._hasBits1;
395 _hasBits2 = other._hasBits2;
396 _hasBits3 = other._hasBits3;
397 _hasBits4 = other._hasBits4;
398 _hasBits5 = other._hasBits5;
399 _hasBits6 = other._hasBits6;
400 _hasBits7 = other._hasBits7;
401 _hasBits8 = other._hasBits8;
402 name_ = other.name_;
403 preferredVariableOrder_ = other.preferredVariableOrder_;
404 initialPolarity_ = other.initialPolarity_;
405 usePhaseSaving_ = other.usePhaseSaving_;
406 polarityRephaseIncrement_ = other.polarityRephaseIncrement_;
407 polarityExploitLsHints_ = other.polarityExploitLsHints_;
408 randomPolarityRatio_ = other.randomPolarityRatio_;
409 randomBranchesRatio_ = other.randomBranchesRatio_;
410 useErwaHeuristic_ = other.useErwaHeuristic_;
411 initialVariablesActivity_ = other.initialVariablesActivity_;
412 alsoBumpVariablesInConflictReasons_ = other.alsoBumpVariablesInConflictReasons_;
413 minimizationAlgorithm_ = other.minimizationAlgorithm_;
414 binaryMinimizationAlgorithm_ = other.binaryMinimizationAlgorithm_;
415 subsumptionDuringConflictAnalysis_ = other.subsumptionDuringConflictAnalysis_;
416 clauseCleanupPeriod_ = other.clauseCleanupPeriod_;
417 clauseCleanupTarget_ = other.clauseCleanupTarget_;
418 clauseCleanupRatio_ = other.clauseCleanupRatio_;
419 clauseCleanupProtection_ = other.clauseCleanupProtection_;
420 clauseCleanupLbdBound_ = other.clauseCleanupLbdBound_;
421 clauseCleanupOrdering_ = other.clauseCleanupOrdering_;
422 pbCleanupIncrement_ = other.pbCleanupIncrement_;
423 pbCleanupRatio_ = other.pbCleanupRatio_;
424 variableActivityDecay_ = other.variableActivityDecay_;
425 maxVariableActivityValue_ = other.maxVariableActivityValue_;
426 glucoseMaxDecay_ = other.glucoseMaxDecay_;
427 glucoseDecayIncrement_ = other.glucoseDecayIncrement_;
428 glucoseDecayIncrementPeriod_ = other.glucoseDecayIncrementPeriod_;
429 clauseActivityDecay_ = other.clauseActivityDecay_;
430 maxClauseActivityValue_ = other.maxClauseActivityValue_;
431 restartAlgorithms_ = other.restartAlgorithms_.Clone();
432 defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
433 restartPeriod_ = other.restartPeriod_;
434 restartRunningWindowSize_ = other.restartRunningWindowSize_;
435 restartDlAverageRatio_ = other.restartDlAverageRatio_;
436 restartLbdAverageRatio_ = other.restartLbdAverageRatio_;
437 useBlockingRestart_ = other.useBlockingRestart_;
438 blockingRestartWindowSize_ = other.blockingRestartWindowSize_;
439 blockingRestartMultiplier_ = other.blockingRestartMultiplier_;
440 numConflictsBeforeStrategyChanges_ = other.numConflictsBeforeStrategyChanges_;
441 strategyChangeIncreaseRatio_ = other.strategyChangeIncreaseRatio_;
442 maxTimeInSeconds_ = other.maxTimeInSeconds_;
443 maxDeterministicTime_ = other.maxDeterministicTime_;
444 maxNumDeterministicBatches_ = other.maxNumDeterministicBatches_;
445 maxNumberOfConflicts_ = other.maxNumberOfConflicts_;
446 maxMemoryInMb_ = other.maxMemoryInMb_;
447 absoluteGapLimit_ = other.absoluteGapLimit_;
448 relativeGapLimit_ = other.relativeGapLimit_;
449 randomSeed_ = other.randomSeed_;
450 permuteVariableRandomly_ = other.permuteVariableRandomly_;
451 permutePresolveConstraintOrder_ = other.permutePresolveConstraintOrder_;
452 useAbslRandom_ = other.useAbslRandom_;
453 logSearchProgress_ = other.logSearchProgress_;
454 logSubsolverStatistics_ = other.logSubsolverStatistics_;
455 logPrefix_ = other.logPrefix_;
456 logToStdout_ = other.logToStdout_;
457 logToResponse_ = other.logToResponse_;
458 usePbResolution_ = other.usePbResolution_;
459 minimizeReductionDuringPbResolution_ = other.minimizeReductionDuringPbResolution_;
460 countAssumptionLevelsInLbd_ = other.countAssumptionLevelsInLbd_;
461 presolveBveThreshold_ = other.presolveBveThreshold_;
462 presolveBveClauseWeight_ = other.presolveBveClauseWeight_;
463 probingDeterministicTimeLimit_ = other.probingDeterministicTimeLimit_;
464 presolveProbingDeterministicTimeLimit_ = other.presolveProbingDeterministicTimeLimit_;
465 presolveBlockedClause_ = other.presolveBlockedClause_;
466 presolveUseBva_ = other.presolveUseBva_;
467 presolveBvaThreshold_ = other.presolveBvaThreshold_;
468 maxPresolveIterations_ = other.maxPresolveIterations_;
469 cpModelPresolve_ = other.cpModelPresolve_;
470 cpModelProbingLevel_ = other.cpModelProbingLevel_;
471 cpModelUseSatPresolve_ = other.cpModelUseSatPresolve_;
472 removeFixedVariablesEarly_ = other.removeFixedVariablesEarly_;
473 detectTableWithCost_ = other.detectTableWithCost_;
474 tableCompressionLevel_ = other.tableCompressionLevel_;
475 expandAlldiffConstraints_ = other.expandAlldiffConstraints_;
476 expandReservoirConstraints_ = other.expandReservoirConstraints_;
477 expandReservoirUsingCircuit_ = other.expandReservoirUsingCircuit_;
478 encodeCumulativeAsReservoir_ = other.encodeCumulativeAsReservoir_;
479 maxLinMaxSizeForExpansion_ = other.maxLinMaxSizeForExpansion_;
480 disableConstraintExpansion_ = other.disableConstraintExpansion_;
481 encodeComplexLinearConstraintWithInteger_ = other.encodeComplexLinearConstraintWithInteger_;
482 mergeNoOverlapWorkLimit_ = other.mergeNoOverlapWorkLimit_;
483 mergeAtMostOneWorkLimit_ = other.mergeAtMostOneWorkLimit_;
484 presolveSubstitutionLevel_ = other.presolveSubstitutionLevel_;
485 presolveExtractIntegerEnforcement_ = other.presolveExtractIntegerEnforcement_;
486 presolveInclusionWorkLimit_ = other.presolveInclusionWorkLimit_;
487 ignoreNames_ = other.ignoreNames_;
488 inferAllDiffs_ = other.inferAllDiffs_;
489 findBigLinearOverlap_ = other.findBigLinearOverlap_;
490 useSatInprocessing_ = other.useSatInprocessing_;
491 inprocessingDtimeRatio_ = other.inprocessingDtimeRatio_;
492 inprocessingProbingDtime_ = other.inprocessingProbingDtime_;
493 inprocessingMinimizationDtime_ = other.inprocessingMinimizationDtime_;
494 inprocessingMinimizationUseConflictAnalysis_ = other.inprocessingMinimizationUseConflictAnalysis_;
495 inprocessingMinimizationUseAllOrderings_ = other.inprocessingMinimizationUseAllOrderings_;
496 numWorkers_ = other.numWorkers_;
497 numSearchWorkers_ = other.numSearchWorkers_;
498 numFullSubsolvers_ = other.numFullSubsolvers_;
499 subsolvers_ = other.subsolvers_.Clone();
500 extraSubsolvers_ = other.extraSubsolvers_.Clone();
501 ignoreSubsolvers_ = other.ignoreSubsolvers_.Clone();
502 filterSubsolvers_ = other.filterSubsolvers_.Clone();
503 subsolverParams_ = other.subsolverParams_.Clone();
504 interleaveSearch_ = other.interleaveSearch_;
505 interleaveBatchSize_ = other.interleaveBatchSize_;
506 shareObjectiveBounds_ = other.shareObjectiveBounds_;
507 shareLevelZeroBounds_ = other.shareLevelZeroBounds_;
508 shareBinaryClauses_ = other.shareBinaryClauses_;
509 shareGlueClauses_ = other.shareGlueClauses_;
510 minimizeSharedClauses_ = other.minimizeSharedClauses_;
511 debugPostsolveWithFullSolver_ = other.debugPostsolveWithFullSolver_;
512 debugMaxNumPresolveOperations_ = other.debugMaxNumPresolveOperations_;
513 debugCrashOnBadHint_ = other.debugCrashOnBadHint_;
514 debugCrashIfPresolveBreaksHint_ = other.debugCrashIfPresolveBreaksHint_;
515 useOptimizationHints_ = other.useOptimizationHints_;
516 coreMinimizationLevel_ = other.coreMinimizationLevel_;
517 findMultipleCores_ = other.findMultipleCores_;
518 coverOptimization_ = other.coverOptimization_;
519 maxSatAssumptionOrder_ = other.maxSatAssumptionOrder_;
520 maxSatReverseAssumptionOrder_ = other.maxSatReverseAssumptionOrder_;
521 maxSatStratification_ = other.maxSatStratification_;
522 propagationLoopDetectionFactor_ = other.propagationLoopDetectionFactor_;
523 usePrecedencesInDisjunctiveConstraint_ = other.usePrecedencesInDisjunctiveConstraint_;
524 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = other.maxSizeToCreatePrecedenceLiteralsInDisjunctive_;
525 useStrongPropagationInDisjunctive_ = other.useStrongPropagationInDisjunctive_;
526 useDynamicPrecedenceInDisjunctive_ = other.useDynamicPrecedenceInDisjunctive_;
527 useDynamicPrecedenceInCumulative_ = other.useDynamicPrecedenceInCumulative_;
528 useOverloadCheckerInCumulative_ = other.useOverloadCheckerInCumulative_;
529 useConservativeScaleOverloadChecker_ = other.useConservativeScaleOverloadChecker_;
530 useTimetableEdgeFindingInCumulative_ = other.useTimetableEdgeFindingInCumulative_;
531 maxNumIntervalsForTimetableEdgeFinding_ = other.maxNumIntervalsForTimetableEdgeFinding_;
532 useHardPrecedencesInCumulative_ = other.useHardPrecedencesInCumulative_;
533 exploitAllPrecedences_ = other.exploitAllPrecedences_;
534 useDisjunctiveConstraintInCumulative_ = other.useDisjunctiveConstraintInCumulative_;
535 useTimetablingInNoOverlap2D_ = other.useTimetablingInNoOverlap2D_;
536 useEnergeticReasoningInNoOverlap2D_ = other.useEnergeticReasoningInNoOverlap2D_;
537 useAreaEnergeticReasoningInNoOverlap2D_ = other.useAreaEnergeticReasoningInNoOverlap2D_;
538 useTryEdgeReasoningInNoOverlap2D_ = other.useTryEdgeReasoningInNoOverlap2D_;
539 maxPairsPairwiseReasoningInNoOverlap2D_ = other.maxPairsPairwiseReasoningInNoOverlap2D_;
540 maximumRegionsToSplitInDisconnectedNoOverlap2D_ = other.maximumRegionsToSplitInDisconnectedNoOverlap2D_;
541 useDualSchedulingHeuristics_ = other.useDualSchedulingHeuristics_;
542 useAllDifferentForCircuit_ = other.useAllDifferentForCircuit_;
543 routingCutSubsetSizeForBinaryRelationBound_ = other.routingCutSubsetSizeForBinaryRelationBound_;
544 routingCutSubsetSizeForTightBinaryRelationBound_ = other.routingCutSubsetSizeForTightBinaryRelationBound_;
545 routingCutDpEffort_ = other.routingCutDpEffort_;
546 searchBranching_ = other.searchBranching_;
547 hintConflictLimit_ = other.hintConflictLimit_;
548 repairHint_ = other.repairHint_;
549 fixVariablesToTheirHintedValue_ = other.fixVariablesToTheirHintedValue_;
550 useProbingSearch_ = other.useProbingSearch_;
551 useExtendedProbing_ = other.useExtendedProbing_;
552 probingNumCombinationsLimit_ = other.probingNumCombinationsLimit_;
553 useShavingInProbingSearch_ = other.useShavingInProbingSearch_;
554 shavingSearchDeterministicTime_ = other.shavingSearchDeterministicTime_;
555 shavingSearchThreshold_ = other.shavingSearchThreshold_;
556 useObjectiveLbSearch_ = other.useObjectiveLbSearch_;
557 useObjectiveShavingSearch_ = other.useObjectiveShavingSearch_;
558 useVariablesShavingSearch_ = other.useVariablesShavingSearch_;
559 pseudoCostReliabilityThreshold_ = other.pseudoCostReliabilityThreshold_;
560 optimizeWithCore_ = other.optimizeWithCore_;
561 optimizeWithLbTreeSearch_ = other.optimizeWithLbTreeSearch_;
562 saveLpBasisInLbTreeSearch_ = other.saveLpBasisInLbTreeSearch_;
563 binarySearchNumConflicts_ = other.binarySearchNumConflicts_;
564 optimizeWithMaxHs_ = other.optimizeWithMaxHs_;
565 useFeasibilityJump_ = other.useFeasibilityJump_;
566 useLsOnly_ = other.useLsOnly_;
567 feasibilityJumpDecay_ = other.feasibilityJumpDecay_;
568 feasibilityJumpLinearizationLevel_ = other.feasibilityJumpLinearizationLevel_;
569 feasibilityJumpRestartFactor_ = other.feasibilityJumpRestartFactor_;
570 feasibilityJumpBatchDtime_ = other.feasibilityJumpBatchDtime_;
571 feasibilityJumpVarRandomizationProbability_ = other.feasibilityJumpVarRandomizationProbability_;
572 feasibilityJumpVarPerburbationRangeRatio_ = other.feasibilityJumpVarPerburbationRangeRatio_;
573 feasibilityJumpEnableRestarts_ = other.feasibilityJumpEnableRestarts_;
574 feasibilityJumpMaxExpandedConstraintSize_ = other.feasibilityJumpMaxExpandedConstraintSize_;
575 numViolationLs_ = other.numViolationLs_;
576 violationLsPerturbationPeriod_ = other.violationLsPerturbationPeriod_;
577 violationLsCompoundMoveProbability_ = other.violationLsCompoundMoveProbability_;
578 sharedTreeNumWorkers_ = other.sharedTreeNumWorkers_;
579 useSharedTreeSearch_ = other.useSharedTreeSearch_;
580 sharedTreeWorkerMinRestartsPerSubtree_ = other.sharedTreeWorkerMinRestartsPerSubtree_;
581 sharedTreeWorkerEnableTrailSharing_ = other.sharedTreeWorkerEnableTrailSharing_;
582 sharedTreeWorkerEnablePhaseSharing_ = other.sharedTreeWorkerEnablePhaseSharing_;
583 sharedTreeOpenLeavesPerWorker_ = other.sharedTreeOpenLeavesPerWorker_;
584 sharedTreeMaxNodesPerWorker_ = other.sharedTreeMaxNodesPerWorker_;
585 sharedTreeSplitStrategy_ = other.sharedTreeSplitStrategy_;
586 sharedTreeBalanceTolerance_ = other.sharedTreeBalanceTolerance_;
587 enumerateAllSolutions_ = other.enumerateAllSolutions_;
588 keepAllFeasibleSolutionsInPresolve_ = other.keepAllFeasibleSolutionsInPresolve_;
589 fillTightenedDomainsInResponse_ = other.fillTightenedDomainsInResponse_;
590 fillAdditionalSolutionsInResponse_ = other.fillAdditionalSolutionsInResponse_;
591 instantiateAllVariables_ = other.instantiateAllVariables_;
592 autoDetectGreaterThanAtLeastOneOf_ = other.autoDetectGreaterThanAtLeastOneOf_;
593 stopAfterFirstSolution_ = other.stopAfterFirstSolution_;
594 stopAfterPresolve_ = other.stopAfterPresolve_;
595 stopAfterRootPropagation_ = other.stopAfterRootPropagation_;
596 lnsInitialDifficulty_ = other.lnsInitialDifficulty_;
597 lnsInitialDeterministicLimit_ = other.lnsInitialDeterministicLimit_;
598 useLns_ = other.useLns_;
599 useLnsOnly_ = other.useLnsOnly_;
600 solutionPoolSize_ = other.solutionPoolSize_;
601 useRinsLns_ = other.useRinsLns_;
602 useFeasibilityPump_ = other.useFeasibilityPump_;
603 useLbRelaxLns_ = other.useLbRelaxLns_;
604 lbRelaxNumWorkersThreshold_ = other.lbRelaxNumWorkersThreshold_;
605 fpRounding_ = other.fpRounding_;
606 diversifyLnsParams_ = other.diversifyLnsParams_;
607 randomizeSearch_ = other.randomizeSearch_;
608 searchRandomVariablePoolSize_ = other.searchRandomVariablePoolSize_;
609 pushAllTasksTowardStart_ = other.pushAllTasksTowardStart_;
610 useOptionalVariables_ = other.useOptionalVariables_;
611 useExactLpReason_ = other.useExactLpReason_;
612 useCombinedNoOverlap_ = other.useCombinedNoOverlap_;
613 atMostOneMaxExpansionSize_ = other.atMostOneMaxExpansionSize_;
614 catchSigintSignal_ = other.catchSigintSignal_;
615 useImpliedBounds_ = other.useImpliedBounds_;
616 polishLpSolution_ = other.polishLpSolution_;
617 lpPrimalTolerance_ = other.lpPrimalTolerance_;
618 lpDualTolerance_ = other.lpDualTolerance_;
619 convertIntervals_ = other.convertIntervals_;
620 symmetryLevel_ = other.symmetryLevel_;
621 useSymmetryInLp_ = other.useSymmetryInLp_;
622 keepSymmetryInPresolve_ = other.keepSymmetryInPresolve_;
623 symmetryDetectionDeterministicTimeLimit_ = other.symmetryDetectionDeterministicTimeLimit_;
624 newLinearPropagation_ = other.newLinearPropagation_;
625 linearSplitSize_ = other.linearSplitSize_;
626 linearizationLevel_ = other.linearizationLevel_;
627 booleanEncodingLevel_ = other.booleanEncodingLevel_;
628 maxDomainSizeWhenEncodingEqNeqConstraints_ = other.maxDomainSizeWhenEncodingEqNeqConstraints_;
629 maxNumCuts_ = other.maxNumCuts_;
630 cutLevel_ = other.cutLevel_;
631 onlyAddCutsAtLevelZero_ = other.onlyAddCutsAtLevelZero_;
632 addObjectiveCut_ = other.addObjectiveCut_;
633 addCgCuts_ = other.addCgCuts_;
634 addMirCuts_ = other.addMirCuts_;
635 addZeroHalfCuts_ = other.addZeroHalfCuts_;
636 addCliqueCuts_ = other.addCliqueCuts_;
637 addRltCuts_ = other.addRltCuts_;
638 maxAllDiffCutSize_ = other.maxAllDiffCutSize_;
639 addLinMaxCuts_ = other.addLinMaxCuts_;
640 maxIntegerRoundingScaling_ = other.maxIntegerRoundingScaling_;
641 addLpConstraintsLazily_ = other.addLpConstraintsLazily_;
642 rootLpIterations_ = other.rootLpIterations_;
643 minOrthogonalityForLpConstraints_ = other.minOrthogonalityForLpConstraints_;
644 maxCutRoundsAtLevelZero_ = other.maxCutRoundsAtLevelZero_;
645 maxConsecutiveInactiveCount_ = other.maxConsecutiveInactiveCount_;
646 cutMaxActiveCountValue_ = other.cutMaxActiveCountValue_;
647 cutActiveCountDecay_ = other.cutActiveCountDecay_;
648 cutCleanupTarget_ = other.cutCleanupTarget_;
649 newConstraintsBatchSize_ = other.newConstraintsBatchSize_;
650 exploitIntegerLpSolution_ = other.exploitIntegerLpSolution_;
651 exploitAllLpSolution_ = other.exploitAllLpSolution_;
652 exploitBestSolution_ = other.exploitBestSolution_;
653 exploitRelaxationSolution_ = other.exploitRelaxationSolution_;
654 exploitObjective_ = other.exploitObjective_;
655 detectLinearizedProduct_ = other.detectLinearizedProduct_;
656 mipMaxBound_ = other.mipMaxBound_;
657 mipVarScaling_ = other.mipVarScaling_;
658 mipScaleLargeDomain_ = other.mipScaleLargeDomain_;
659 mipAutomaticallyScaleVariables_ = other.mipAutomaticallyScaleVariables_;
660 onlySolveIp_ = other.onlySolveIp_;
661 mipWantedPrecision_ = other.mipWantedPrecision_;
662 mipMaxActivityExponent_ = other.mipMaxActivityExponent_;
663 mipCheckPrecision_ = other.mipCheckPrecision_;
664 mipComputeTrueObjectiveBound_ = other.mipComputeTrueObjectiveBound_;
665 mipMaxValidMagnitude_ = other.mipMaxValidMagnitude_;
666 mipTreatHighMagnitudeBoundsAsInfinity_ = other.mipTreatHighMagnitudeBoundsAsInfinity_;
667 mipDropTolerance_ = other.mipDropTolerance_;
668 mipPresolveLevel_ = other.mipPresolveLevel_;
669 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
670 }
671
672 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
673 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
674 public SatParameters Clone() {
675 return new SatParameters(this);
676 }
677
678
679 public const int NameFieldNumber = 171;
680 private readonly static string NameDefaultValue = "";
681
682 private string name_;
687 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
688 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
689 public string Name {
690 get { return name_ ?? NameDefaultValue; }
691 set {
692 name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
693 }
694 }
696 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
697 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
698 public bool HasName {
699 get { return name_ != null; }
700 }
702 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
703 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
704 public void ClearName() {
705 name_ = null;
706 }
707
708
709 public const int PreferredVariableOrderFieldNumber = 1;
710 private readonly static global::Google.OrTools.Sat.SatParameters.Types.VariableOrder PreferredVariableOrderDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.VariableOrder.InOrder;
711
712 private global::Google.OrTools.Sat.SatParameters.Types.VariableOrder preferredVariableOrder_;
713 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
714 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
716 get { if ((_hasBits0 & 1) != 0) { return preferredVariableOrder_; } else { return PreferredVariableOrderDefaultValue; } }
717 set {
718 _hasBits0 |= 1;
719 preferredVariableOrder_ = value;
720 }
721 }
723 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
724 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
725 public bool HasPreferredVariableOrder {
726 get { return (_hasBits0 & 1) != 0; }
727 }
729 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
730 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
731 public void ClearPreferredVariableOrder() {
732 _hasBits0 &= ~1;
733 }
734
735
736 public const int InitialPolarityFieldNumber = 2;
737 private readonly static global::Google.OrTools.Sat.SatParameters.Types.Polarity InitialPolarityDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.Polarity.False;
738
739 private global::Google.OrTools.Sat.SatParameters.Types.Polarity initialPolarity_;
740 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
741 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
742 public global::Google.OrTools.Sat.SatParameters.Types.Polarity InitialPolarity {
743 get { if ((_hasBits0 & 2) != 0) { return initialPolarity_; } else { return InitialPolarityDefaultValue; } }
744 set {
745 _hasBits0 |= 2;
746 initialPolarity_ = value;
747 }
748 }
750 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
751 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
752 public bool HasInitialPolarity {
753 get { return (_hasBits0 & 2) != 0; }
754 }
756 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
757 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
758 public void ClearInitialPolarity() {
759 _hasBits0 &= ~2;
760 }
761
762
763 public const int UsePhaseSavingFieldNumber = 44;
764 private readonly static bool UsePhaseSavingDefaultValue = true;
765
766 private bool usePhaseSaving_;
780 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
781 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
782 public bool UsePhaseSaving {
783 get { if ((_hasBits0 & 4194304) != 0) { return usePhaseSaving_; } else { return UsePhaseSavingDefaultValue; } }
784 set {
785 _hasBits0 |= 4194304;
786 usePhaseSaving_ = value;
787 }
788 }
790 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
791 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
792 public bool HasUsePhaseSaving {
793 get { return (_hasBits0 & 4194304) != 0; }
794 }
795 /// <summary>Clears the value of the "use_phase_saving" field</summary>
796 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
797 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
798 public void ClearUsePhaseSaving() {
799 _hasBits0 &= ~4194304;
800 }
803 public const int PolarityRephaseIncrementFieldNumber = 168;
804 private readonly static int PolarityRephaseIncrementDefaultValue = 1000;
805
806 private int polarityRephaseIncrement_;
812 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
813 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
814 public int PolarityRephaseIncrement {
815 get { if ((_hasBits4 & 4) != 0) { return polarityRephaseIncrement_; } else { return PolarityRephaseIncrementDefaultValue; } }
816 set {
817 _hasBits4 |= 4;
818 polarityRephaseIncrement_ = value;
819 }
820 }
822 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
823 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
824 public bool HasPolarityRephaseIncrement {
825 get { return (_hasBits4 & 4) != 0; }
826 }
827 /// <summary>Clears the value of the "polarity_rephase_increment" field</summary>
828 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
829 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
830 public void ClearPolarityRephaseIncrement() {
831 _hasBits4 &= ~4;
832 }
835 public const int PolarityExploitLsHintsFieldNumber = 309;
836 private readonly static bool PolarityExploitLsHintsDefaultValue = false;
837
838 private bool polarityExploitLsHints_;
843 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
844 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
845 public bool PolarityExploitLsHints {
846 get { if ((_hasBits7 & 134217728) != 0) { return polarityExploitLsHints_; } else { return PolarityExploitLsHintsDefaultValue; } }
847 set {
848 _hasBits7 |= 134217728;
849 polarityExploitLsHints_ = value;
850 }
851 }
853 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
854 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
855 public bool HasPolarityExploitLsHints {
856 get { return (_hasBits7 & 134217728) != 0; }
857 }
858 /// <summary>Clears the value of the "polarity_exploit_ls_hints" field</summary>
859 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
860 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
861 public void ClearPolarityExploitLsHints() {
862 _hasBits7 &= ~134217728;
863 }
866 public const int RandomPolarityRatioFieldNumber = 45;
867 private readonly static double RandomPolarityRatioDefaultValue = 0D;
868
869 private double randomPolarityRatio_;
877 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
878 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
879 public double RandomPolarityRatio {
880 get { if ((_hasBits0 & 8388608) != 0) { return randomPolarityRatio_; } else { return RandomPolarityRatioDefaultValue; } }
881 set {
882 _hasBits0 |= 8388608;
883 randomPolarityRatio_ = value;
884 }
885 }
887 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
888 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
889 public bool HasRandomPolarityRatio {
890 get { return (_hasBits0 & 8388608) != 0; }
891 }
892 /// <summary>Clears the value of the "random_polarity_ratio" field</summary>
893 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
894 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
895 public void ClearRandomPolarityRatio() {
896 _hasBits0 &= ~8388608;
897 }
900 public const int RandomBranchesRatioFieldNumber = 32;
901 private readonly static double RandomBranchesRatioDefaultValue = 0D;
902
903 private double randomBranchesRatio_;
909 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
910 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
911 public double RandomBranchesRatio {
912 get { if ((_hasBits0 & 16384) != 0) { return randomBranchesRatio_; } else { return RandomBranchesRatioDefaultValue; } }
913 set {
914 _hasBits0 |= 16384;
915 randomBranchesRatio_ = value;
916 }
917 }
919 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
920 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
921 public bool HasRandomBranchesRatio {
922 get { return (_hasBits0 & 16384) != 0; }
923 }
924 /// <summary>Clears the value of the "random_branches_ratio" field</summary>
925 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
926 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
927 public void ClearRandomBranchesRatio() {
928 _hasBits0 &= ~16384;
929 }
932 public const int UseErwaHeuristicFieldNumber = 75;
933 private readonly static bool UseErwaHeuristicDefaultValue = false;
934
935 private bool useErwaHeuristic_;
941 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
942 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
943 public bool UseErwaHeuristic {
944 get { if ((_hasBits1 & 524288) != 0) { return useErwaHeuristic_; } else { return UseErwaHeuristicDefaultValue; } }
945 set {
946 _hasBits1 |= 524288;
947 useErwaHeuristic_ = value;
948 }
949 }
951 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
952 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
953 public bool HasUseErwaHeuristic {
954 get { return (_hasBits1 & 524288) != 0; }
955 }
956 /// <summary>Clears the value of the "use_erwa_heuristic" field</summary>
957 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
958 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
959 public void ClearUseErwaHeuristic() {
960 _hasBits1 &= ~524288;
961 }
964 public const int InitialVariablesActivityFieldNumber = 76;
965 private readonly static double InitialVariablesActivityDefaultValue = 0D;
966
967 private double initialVariablesActivity_;
976 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
977 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
978 public double InitialVariablesActivity {
979 get { if ((_hasBits1 & 1048576) != 0) { return initialVariablesActivity_; } else { return InitialVariablesActivityDefaultValue; } }
980 set {
981 _hasBits1 |= 1048576;
982 initialVariablesActivity_ = value;
983 }
984 }
986 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
987 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
988 public bool HasInitialVariablesActivity {
989 get { return (_hasBits1 & 1048576) != 0; }
990 }
991 /// <summary>Clears the value of the "initial_variables_activity" field</summary>
992 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
993 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
994 public void ClearInitialVariablesActivity() {
995 _hasBits1 &= ~1048576;
996 }
1000 private readonly static bool AlsoBumpVariablesInConflictReasonsDefaultValue = false;
1001
1002 private bool alsoBumpVariablesInConflictReasons_;
1009 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1010 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1012 get { if ((_hasBits1 & 2097152) != 0) { return alsoBumpVariablesInConflictReasons_; } else { return AlsoBumpVariablesInConflictReasonsDefaultValue; } }
1013 set {
1014 _hasBits1 |= 2097152;
1015 alsoBumpVariablesInConflictReasons_ = value;
1016 }
1017 }
1019 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1020 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1021 public bool HasAlsoBumpVariablesInConflictReasons {
1022 get { return (_hasBits1 & 2097152) != 0; }
1023 }
1024 /// <summary>Clears the value of the "also_bump_variables_in_conflict_reasons" field</summary>
1025 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1026 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1028 _hasBits1 &= ~2097152;
1029 }
1032 public const int MinimizationAlgorithmFieldNumber = 4;
1033 private readonly static global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm MinimizationAlgorithmDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm.Recursive;
1034
1035 private global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm minimizationAlgorithm_;
1036 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1037 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1039 get { if ((_hasBits0 & 4) != 0) { return minimizationAlgorithm_; } else { return MinimizationAlgorithmDefaultValue; } }
1040 set {
1041 _hasBits0 |= 4;
1042 minimizationAlgorithm_ = value;
1043 }
1044 }
1046 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1047 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1048 public bool HasMinimizationAlgorithm {
1049 get { return (_hasBits0 & 4) != 0; }
1050 }
1051 /// <summary>Clears the value of the "minimization_algorithm" field</summary>
1052 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1053 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1054 public void ClearMinimizationAlgorithm() {
1055 _hasBits0 &= ~4;
1056 }
1059 public const int BinaryMinimizationAlgorithmFieldNumber = 34;
1060 private readonly static global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm BinaryMinimizationAlgorithmDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm.BinaryMinimizationFirst;
1061
1062 private global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm binaryMinimizationAlgorithm_;
1063 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1064 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1066 get { if ((_hasBits0 & 32768) != 0) { return binaryMinimizationAlgorithm_; } else { return BinaryMinimizationAlgorithmDefaultValue; } }
1067 set {
1068 _hasBits0 |= 32768;
1069 binaryMinimizationAlgorithm_ = value;
1070 }
1071 }
1073 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1074 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1075 public bool HasBinaryMinimizationAlgorithm {
1076 get { return (_hasBits0 & 32768) != 0; }
1077 }
1078 /// <summary>Clears the value of the "binary_minimization_algorithm" field</summary>
1079 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1080 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1081 public void ClearBinaryMinimizationAlgorithm() {
1082 _hasBits0 &= ~32768;
1083 }
1087 private readonly static bool SubsumptionDuringConflictAnalysisDefaultValue = true;
1088
1089 private bool subsumptionDuringConflictAnalysis_;
1096 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1097 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1099 get { if ((_hasBits1 & 4) != 0) { return subsumptionDuringConflictAnalysis_; } else { return SubsumptionDuringConflictAnalysisDefaultValue; } }
1100 set {
1101 _hasBits1 |= 4;
1102 subsumptionDuringConflictAnalysis_ = value;
1103 }
1104 }
1106 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1107 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1108 public bool HasSubsumptionDuringConflictAnalysis {
1109 get { return (_hasBits1 & 4) != 0; }
1110 }
1111 /// <summary>Clears the value of the "subsumption_during_conflict_analysis" field</summary>
1112 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1113 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1115 _hasBits1 &= ~4;
1116 }
1119 public const int ClauseCleanupPeriodFieldNumber = 11;
1120 private readonly static int ClauseCleanupPeriodDefaultValue = 10000;
1121
1122 private int clauseCleanupPeriod_;
1126 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1127 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1128 public int ClauseCleanupPeriod {
1129 get { if ((_hasBits0 & 8) != 0) { return clauseCleanupPeriod_; } else { return ClauseCleanupPeriodDefaultValue; } }
1130 set {
1131 _hasBits0 |= 8;
1132 clauseCleanupPeriod_ = value;
1133 }
1134 }
1136 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1137 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1138 public bool HasClauseCleanupPeriod {
1139 get { return (_hasBits0 & 8) != 0; }
1140 }
1141 /// <summary>Clears the value of the "clause_cleanup_period" field</summary>
1142 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1143 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1144 public void ClearClauseCleanupPeriod() {
1145 _hasBits0 &= ~8;
1146 }
1149 public const int ClauseCleanupTargetFieldNumber = 13;
1150 private readonly static int ClauseCleanupTargetDefaultValue = 0;
1151
1152 private int clauseCleanupTarget_;
1157 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1158 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1159 public int ClauseCleanupTarget {
1160 get { if ((_hasBits0 & 16) != 0) { return clauseCleanupTarget_; } else { return ClauseCleanupTargetDefaultValue; } }
1161 set {
1162 _hasBits0 |= 16;
1163 clauseCleanupTarget_ = value;
1164 }
1165 }
1167 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1168 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1169 public bool HasClauseCleanupTarget {
1170 get { return (_hasBits0 & 16) != 0; }
1171 }
1172 /// <summary>Clears the value of the "clause_cleanup_target" field</summary>
1173 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1174 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1175 public void ClearClauseCleanupTarget() {
1176 _hasBits0 &= ~16;
1177 }
1180 public const int ClauseCleanupRatioFieldNumber = 190;
1181 private readonly static double ClauseCleanupRatioDefaultValue = 0.5D;
1182
1183 private double clauseCleanupRatio_;
1189 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1190 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1191 public double ClauseCleanupRatio {
1192 get { if ((_hasBits4 & 2097152) != 0) { return clauseCleanupRatio_; } else { return ClauseCleanupRatioDefaultValue; } }
1193 set {
1194 _hasBits4 |= 2097152;
1195 clauseCleanupRatio_ = value;
1196 }
1197 }
1199 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1200 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1201 public bool HasClauseCleanupRatio {
1202 get { return (_hasBits4 & 2097152) != 0; }
1203 }
1204 /// <summary>Clears the value of the "clause_cleanup_ratio" field</summary>
1205 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1206 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1207 public void ClearClauseCleanupRatio() {
1208 _hasBits4 &= ~2097152;
1209 }
1212 public const int ClauseCleanupProtectionFieldNumber = 58;
1213 private readonly static global::Google.OrTools.Sat.SatParameters.Types.ClauseProtection ClauseCleanupProtectionDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.ClauseProtection.ProtectionNone;
1214
1215 private global::Google.OrTools.Sat.SatParameters.Types.ClauseProtection clauseCleanupProtection_;
1216 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1217 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1219 get { if ((_hasBits1 & 16) != 0) { return clauseCleanupProtection_; } else { return ClauseCleanupProtectionDefaultValue; } }
1220 set {
1221 _hasBits1 |= 16;
1222 clauseCleanupProtection_ = value;
1223 }
1224 }
1226 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1227 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1228 public bool HasClauseCleanupProtection {
1229 get { return (_hasBits1 & 16) != 0; }
1230 }
1231 /// <summary>Clears the value of the "clause_cleanup_protection" field</summary>
1232 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1233 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1234 public void ClearClauseCleanupProtection() {
1235 _hasBits1 &= ~16;
1236 }
1239 public const int ClauseCleanupLbdBoundFieldNumber = 59;
1240 private readonly static int ClauseCleanupLbdBoundDefaultValue = 5;
1241
1242 private int clauseCleanupLbdBound_;
1247 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1248 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1249 public int ClauseCleanupLbdBound {
1250 get { if ((_hasBits1 & 32) != 0) { return clauseCleanupLbdBound_; } else { return ClauseCleanupLbdBoundDefaultValue; } }
1251 set {
1252 _hasBits1 |= 32;
1253 clauseCleanupLbdBound_ = value;
1254 }
1255 }
1257 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1258 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1259 public bool HasClauseCleanupLbdBound {
1260 get { return (_hasBits1 & 32) != 0; }
1261 }
1262 /// <summary>Clears the value of the "clause_cleanup_lbd_bound" field</summary>
1263 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1264 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1265 public void ClearClauseCleanupLbdBound() {
1266 _hasBits1 &= ~32;
1267 }
1270 public const int ClauseCleanupOrderingFieldNumber = 60;
1271 private readonly static global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering ClauseCleanupOrderingDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering.ClauseActivity;
1272
1273 private global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering clauseCleanupOrdering_;
1274 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1275 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1277 get { if ((_hasBits1 & 64) != 0) { return clauseCleanupOrdering_; } else { return ClauseCleanupOrderingDefaultValue; } }
1278 set {
1279 _hasBits1 |= 64;
1280 clauseCleanupOrdering_ = value;
1281 }
1282 }
1284 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1285 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1286 public bool HasClauseCleanupOrdering {
1287 get { return (_hasBits1 & 64) != 0; }
1288 }
1289 /// <summary>Clears the value of the "clause_cleanup_ordering" field</summary>
1290 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1291 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1292 public void ClearClauseCleanupOrdering() {
1293 _hasBits1 &= ~64;
1294 }
1297 public const int PbCleanupIncrementFieldNumber = 46;
1298 private readonly static int PbCleanupIncrementDefaultValue = 200;
1299
1300 private int pbCleanupIncrement_;
1304 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1305 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1306 public int PbCleanupIncrement {
1307 get { if ((_hasBits0 & 16777216) != 0) { return pbCleanupIncrement_; } else { return PbCleanupIncrementDefaultValue; } }
1308 set {
1309 _hasBits0 |= 16777216;
1310 pbCleanupIncrement_ = value;
1311 }
1312 }
1314 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1315 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1316 public bool HasPbCleanupIncrement {
1317 get { return (_hasBits0 & 16777216) != 0; }
1318 }
1319 /// <summary>Clears the value of the "pb_cleanup_increment" field</summary>
1320 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1321 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1322 public void ClearPbCleanupIncrement() {
1323 _hasBits0 &= ~16777216;
1324 }
1327 public const int PbCleanupRatioFieldNumber = 47;
1328 private readonly static double PbCleanupRatioDefaultValue = 0.5D;
1329
1330 private double pbCleanupRatio_;
1331 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1332 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1333 public double PbCleanupRatio {
1334 get { if ((_hasBits0 & 33554432) != 0) { return pbCleanupRatio_; } else { return PbCleanupRatioDefaultValue; } }
1335 set {
1336 _hasBits0 |= 33554432;
1337 pbCleanupRatio_ = value;
1338 }
1339 }
1341 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1342 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1343 public bool HasPbCleanupRatio {
1344 get { return (_hasBits0 & 33554432) != 0; }
1345 }
1346 /// <summary>Clears the value of the "pb_cleanup_ratio" field</summary>
1347 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1348 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1349 public void ClearPbCleanupRatio() {
1350 _hasBits0 &= ~33554432;
1351 }
1354 public const int VariableActivityDecayFieldNumber = 15;
1355 private readonly static double VariableActivityDecayDefaultValue = 0.8D;
1356
1357 private double variableActivityDecay_;
1368 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1369 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1370 public double VariableActivityDecay {
1371 get { if ((_hasBits0 & 32) != 0) { return variableActivityDecay_; } else { return VariableActivityDecayDefaultValue; } }
1372 set {
1373 _hasBits0 |= 32;
1374 variableActivityDecay_ = value;
1375 }
1376 }
1378 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1379 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1380 public bool HasVariableActivityDecay {
1381 get { return (_hasBits0 & 32) != 0; }
1382 }
1384 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1385 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1386 public void ClearVariableActivityDecay() {
1387 _hasBits0 &= ~32;
1388 }
1389
1390 /// <summary>Field number for the "max_variable_activity_value" field.</summary>
1391 public const int MaxVariableActivityValueFieldNumber = 16;
1392 private readonly static double MaxVariableActivityValueDefaultValue = 1e+100D;
1393
1394 private double maxVariableActivityValue_;
1395 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1396 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1397 public double MaxVariableActivityValue {
1398 get { if ((_hasBits0 & 64) != 0) { return maxVariableActivityValue_; } else { return MaxVariableActivityValueDefaultValue; } }
1399 set {
1400 _hasBits0 |= 64;
1401 maxVariableActivityValue_ = value;
1402 }
1403 }
1405 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1406 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1407 public bool HasMaxVariableActivityValue {
1408 get { return (_hasBits0 & 64) != 0; }
1409 }
1411 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1412 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1413 public void ClearMaxVariableActivityValue() {
1414 _hasBits0 &= ~64;
1415 }
1416
1417 /// <summary>Field number for the "glucose_max_decay" field.</summary>
1418 public const int GlucoseMaxDecayFieldNumber = 22;
1419 private readonly static double GlucoseMaxDecayDefaultValue = 0.95D;
1420
1421 private double glucoseMaxDecay_;
1429 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1430 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1431 public double GlucoseMaxDecay {
1432 get { if ((_hasBits0 & 512) != 0) { return glucoseMaxDecay_; } else { return GlucoseMaxDecayDefaultValue; } }
1433 set {
1434 _hasBits0 |= 512;
1435 glucoseMaxDecay_ = value;
1437 }
1439 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1440 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1441 public bool HasGlucoseMaxDecay {
1442 get { return (_hasBits0 & 512) != 0; }
1443 }
1445 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1446 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1447 public void ClearGlucoseMaxDecay() {
1448 _hasBits0 &= ~512;
1449 }
1450
1453 private readonly static double GlucoseDecayIncrementDefaultValue = 0.01D;
1454
1455 private double glucoseDecayIncrement_;
1456 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1457 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1458 public double GlucoseDecayIncrement {
1459 get { if ((_hasBits0 & 1024) != 0) { return glucoseDecayIncrement_; } else { return GlucoseDecayIncrementDefaultValue; } }
1460 set {
1461 _hasBits0 |= 1024;
1462 glucoseDecayIncrement_ = value;
1464 }
1466 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1467 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1468 public bool HasGlucoseDecayIncrement {
1469 get { return (_hasBits0 & 1024) != 0; }
1470 }
1472 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1473 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1474 public void ClearGlucoseDecayIncrement() {
1475 _hasBits0 &= ~1024;
1476 }
1477
1480 private readonly static int GlucoseDecayIncrementPeriodDefaultValue = 5000;
1481
1482 private int glucoseDecayIncrementPeriod_;
1483 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1484 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1485 public int GlucoseDecayIncrementPeriod {
1486 get { if ((_hasBits0 & 2048) != 0) { return glucoseDecayIncrementPeriod_; } else { return GlucoseDecayIncrementPeriodDefaultValue; } }
1487 set {
1488 _hasBits0 |= 2048;
1489 glucoseDecayIncrementPeriod_ = value;
1491 }
1493 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1494 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1495 public bool HasGlucoseDecayIncrementPeriod {
1496 get { return (_hasBits0 & 2048) != 0; }
1497 }
1499 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1500 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1501 public void ClearGlucoseDecayIncrementPeriod() {
1502 _hasBits0 &= ~2048;
1503 }
1504
1506 public const int ClauseActivityDecayFieldNumber = 17;
1507 private readonly static double ClauseActivityDecayDefaultValue = 0.999D;
1508
1509 private double clauseActivityDecay_;
1513 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1514 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1515 public double ClauseActivityDecay {
1516 get { if ((_hasBits0 & 128) != 0) { return clauseActivityDecay_; } else { return ClauseActivityDecayDefaultValue; } }
1517 set {
1518 _hasBits0 |= 128;
1519 clauseActivityDecay_ = value;
1521 }
1523 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1524 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1525 public bool HasClauseActivityDecay {
1526 get { return (_hasBits0 & 128) != 0; }
1527 }
1529 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1530 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1531 public void ClearClauseActivityDecay() {
1532 _hasBits0 &= ~128;
1533 }
1534
1537 private readonly static double MaxClauseActivityValueDefaultValue = 1e+20D;
1538
1539 private double maxClauseActivityValue_;
1540 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1541 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1542 public double MaxClauseActivityValue {
1543 get { if ((_hasBits0 & 256) != 0) { return maxClauseActivityValue_; } else { return MaxClauseActivityValueDefaultValue; } }
1544 set {
1545 _hasBits0 |= 256;
1546 maxClauseActivityValue_ = value;
1548 }
1550 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1551 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1552 public bool HasMaxClauseActivityValue {
1553 get { return (_hasBits0 & 256) != 0; }
1554 }
1556 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1557 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1558 public void ClearMaxClauseActivityValue() {
1559 _hasBits0 &= ~256;
1560 }
1561
1563 public const int RestartAlgorithmsFieldNumber = 61;
1564 private static readonly pb::FieldCodec<global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm> _repeated_restartAlgorithms_codec
1565 = pb::FieldCodec.ForEnum(488, x => (int) x, x => (global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm) x);
1566 private readonly pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm> restartAlgorithms_ = new pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm>();
1578 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1579 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1580 public pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm> RestartAlgorithms {
1581 get { return restartAlgorithms_; }
1582 }
1583
1585 public const int DefaultRestartAlgorithmsFieldNumber = 70;
1586 private readonly static string DefaultRestartAlgorithmsDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("TFVCWV9SRVNUQVJULExCRF9NT1ZJTkdfQVZFUkFHRV9SRVNUQVJULERMX01PVklOR19BVkVSQUdFX1JFU1RBUlQ="), 0, 65);
1587
1588 private string defaultRestartAlgorithms_;
1589 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1590 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1592 get { return defaultRestartAlgorithms_ ?? DefaultRestartAlgorithmsDefaultValue; }
1593 set {
1594 defaultRestartAlgorithms_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1595 }
1596 }
1597 /// <summary>Gets whether the "default_restart_algorithms" field is set</summary>
1598 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1599 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1600 public bool HasDefaultRestartAlgorithms {
1601 get { return defaultRestartAlgorithms_ != null; }
1602 }
1603
1604 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1605 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1607 defaultRestartAlgorithms_ = null;
1608 }
1609
1611 public const int RestartPeriodFieldNumber = 30;
1612 private readonly static int RestartPeriodDefaultValue = 50;
1613
1614 private int restartPeriod_;
1615
1619 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1620 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1621 public int RestartPeriod {
1622 get { if ((_hasBits0 & 4096) != 0) { return restartPeriod_; } else { return RestartPeriodDefaultValue; } }
1623 set {
1624 _hasBits0 |= 4096;
1625 restartPeriod_ = value;
1626 }
1629 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1630 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1631 public bool HasRestartPeriod {
1632 get { return (_hasBits0 & 4096) != 0; }
1633 }
1634
1635 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1636 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1637 public void ClearRestartPeriod() {
1638 _hasBits0 &= ~4096;
1639 }
1640
1642 public const int RestartRunningWindowSizeFieldNumber = 62;
1643 private readonly static int RestartRunningWindowSizeDefaultValue = 50;
1644
1645 private int restartRunningWindowSize_;
1646
1649 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1650 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1651 public int RestartRunningWindowSize {
1652 get { if ((_hasBits1 & 128) != 0) { return restartRunningWindowSize_; } else { return RestartRunningWindowSizeDefaultValue; } }
1653 set {
1654 _hasBits1 |= 128;
1655 restartRunningWindowSize_ = value;
1656 }
1659 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1660 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1661 public bool HasRestartRunningWindowSize {
1662 get { return (_hasBits1 & 128) != 0; }
1663 }
1664
1665 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1666 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1668 _hasBits1 &= ~128;
1669 }
1670
1672 public const int RestartDlAverageRatioFieldNumber = 63;
1673 private readonly static double RestartDlAverageRatioDefaultValue = 1D;
1674
1675 private double restartDlAverageRatio_;
1676
1680 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1681 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1682 public double RestartDlAverageRatio {
1683 get { if ((_hasBits1 & 256) != 0) { return restartDlAverageRatio_; } else { return RestartDlAverageRatioDefaultValue; } }
1684 set {
1685 _hasBits1 |= 256;
1686 restartDlAverageRatio_ = value;
1687 }
1690 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1691 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1692 public bool HasRestartDlAverageRatio {
1693 get { return (_hasBits1 & 256) != 0; }
1694 }
1695
1696 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1697 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1699 _hasBits1 &= ~256;
1700 }
1701
1703 public const int RestartLbdAverageRatioFieldNumber = 71;
1704 private readonly static double RestartLbdAverageRatioDefaultValue = 1D;
1705
1706 private double restartLbdAverageRatio_;
1707 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1708 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1710 get { if ((_hasBits1 & 32768) != 0) { return restartLbdAverageRatio_; } else { return RestartLbdAverageRatioDefaultValue; } }
1711 set {
1712 _hasBits1 |= 32768;
1713 restartLbdAverageRatio_ = value;
1714 }
1717 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1718 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1719 public bool HasRestartLbdAverageRatio {
1720 get { return (_hasBits1 & 32768) != 0; }
1721 }
1722
1723 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1724 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1726 _hasBits1 &= ~32768;
1727 }
1728
1730 public const int UseBlockingRestartFieldNumber = 64;
1731 private readonly static bool UseBlockingRestartDefaultValue = false;
1732
1733 private bool useBlockingRestart_;
1734
1739 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1740 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1741 public bool UseBlockingRestart {
1742 get { if ((_hasBits1 & 512) != 0) { return useBlockingRestart_; } else { return UseBlockingRestartDefaultValue; } }
1743 set {
1744 _hasBits1 |= 512;
1745 useBlockingRestart_ = value;
1746 }
1749 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1750 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1751 public bool HasUseBlockingRestart {
1752 get { return (_hasBits1 & 512) != 0; }
1753 }
1754
1755 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1756 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1758 _hasBits1 &= ~512;
1759 }
1760
1762 public const int BlockingRestartWindowSizeFieldNumber = 65;
1763 private readonly static int BlockingRestartWindowSizeDefaultValue = 5000;
1764
1765 private int blockingRestartWindowSize_;
1766 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1767 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1769 get { if ((_hasBits1 & 1024) != 0) { return blockingRestartWindowSize_; } else { return BlockingRestartWindowSizeDefaultValue; } }
1770 set {
1771 _hasBits1 |= 1024;
1772 blockingRestartWindowSize_ = value;
1773 }
1776 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1777 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1778 public bool HasBlockingRestartWindowSize {
1779 get { return (_hasBits1 & 1024) != 0; }
1780 }
1781
1782 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1783 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1785 _hasBits1 &= ~1024;
1786 }
1787
1789 public const int BlockingRestartMultiplierFieldNumber = 66;
1790 private readonly static double BlockingRestartMultiplierDefaultValue = 1.4D;
1791
1792 private double blockingRestartMultiplier_;
1793 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1794 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1796 get { if ((_hasBits1 & 2048) != 0) { return blockingRestartMultiplier_; } else { return BlockingRestartMultiplierDefaultValue; } }
1797 set {
1798 _hasBits1 |= 2048;
1799 blockingRestartMultiplier_ = value;
1800 }
1803 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1804 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1805 public bool HasBlockingRestartMultiplier {
1806 get { return (_hasBits1 & 2048) != 0; }
1807 }
1808
1809 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1810 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1812 _hasBits1 &= ~2048;
1813 }
1814
1816 public const int NumConflictsBeforeStrategyChangesFieldNumber = 68;
1817 private readonly static int NumConflictsBeforeStrategyChangesDefaultValue = 0;
1818
1819 private int numConflictsBeforeStrategyChanges_;
1820
1825 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1826 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1828 get { if ((_hasBits1 & 8192) != 0) { return numConflictsBeforeStrategyChanges_; } else { return NumConflictsBeforeStrategyChangesDefaultValue; } }
1829 set {
1830 _hasBits1 |= 8192;
1831 numConflictsBeforeStrategyChanges_ = value;
1832 }
1835 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1836 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1837 public bool HasNumConflictsBeforeStrategyChanges {
1838 get { return (_hasBits1 & 8192) != 0; }
1839 }
1840
1841 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1842 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1844 _hasBits1 &= ~8192;
1845 }
1846
1848 public const int StrategyChangeIncreaseRatioFieldNumber = 69;
1849 private readonly static double StrategyChangeIncreaseRatioDefaultValue = 0D;
1850
1851 private double strategyChangeIncreaseRatio_;
1852
1856 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1857 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1858 public double StrategyChangeIncreaseRatio {
1859 get { if ((_hasBits1 & 16384) != 0) { return strategyChangeIncreaseRatio_; } else { return StrategyChangeIncreaseRatioDefaultValue; } }
1860 set {
1861 _hasBits1 |= 16384;
1862 strategyChangeIncreaseRatio_ = value;
1863 }
1866 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1867 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1868 public bool HasStrategyChangeIncreaseRatio {
1869 get { return (_hasBits1 & 16384) != 0; }
1870 }
1871
1872 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1873 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1875 _hasBits1 &= ~16384;
1876 }
1877
1879 public const int MaxTimeInSecondsFieldNumber = 36;
1880 private readonly static double MaxTimeInSecondsDefaultValue = double.PositiveInfinity;
1881
1882 private double maxTimeInSeconds_;
1883
1887 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1888 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1889 public double MaxTimeInSeconds {
1890 get { if ((_hasBits0 & 131072) != 0) { return maxTimeInSeconds_; } else { return MaxTimeInSecondsDefaultValue; } }
1891 set {
1892 _hasBits0 |= 131072;
1893 maxTimeInSeconds_ = value;
1894 }
1897 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1898 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1899 public bool HasMaxTimeInSeconds {
1900 get { return (_hasBits0 & 131072) != 0; }
1901 }
1902
1903 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1904 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1906 _hasBits0 &= ~131072;
1907 }
1908
1910 public const int MaxDeterministicTimeFieldNumber = 67;
1911 private readonly static double MaxDeterministicTimeDefaultValue = double.PositiveInfinity;
1912
1913 private double maxDeterministicTime_;
1914
1919 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1920 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1921 public double MaxDeterministicTime {
1922 get { if ((_hasBits1 & 4096) != 0) { return maxDeterministicTime_; } else { return MaxDeterministicTimeDefaultValue; } }
1923 set {
1924 _hasBits1 |= 4096;
1925 maxDeterministicTime_ = value;
1926 }
1929 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1930 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1931 public bool HasMaxDeterministicTime {
1932 get { return (_hasBits1 & 4096) != 0; }
1933 }
1934
1935 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1936 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1938 _hasBits1 &= ~4096;
1939 }
1940
1942 public const int MaxNumDeterministicBatchesFieldNumber = 291;
1943 private readonly static int MaxNumDeterministicBatchesDefaultValue = 0;
1944
1945 private int maxNumDeterministicBatches_;
1946
1950 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1951 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1952 public int MaxNumDeterministicBatches {
1953 get { if ((_hasBits7 & 1024) != 0) { return maxNumDeterministicBatches_; } else { return MaxNumDeterministicBatchesDefaultValue; } }
1954 set {
1955 _hasBits7 |= 1024;
1956 maxNumDeterministicBatches_ = value;
1957 }
1960 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1961 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1962 public bool HasMaxNumDeterministicBatches {
1963 get { return (_hasBits7 & 1024) != 0; }
1964 }
1965
1966 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1967 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1969 _hasBits7 &= ~1024;
1970 }
1971
1973 public const int MaxNumberOfConflictsFieldNumber = 37;
1974 private readonly static long MaxNumberOfConflictsDefaultValue = 9223372036854775807L;
1975
1976 private long maxNumberOfConflicts_;
1977
1986 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1987 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1988 public long MaxNumberOfConflicts {
1989 get { if ((_hasBits0 & 262144) != 0) { return maxNumberOfConflicts_; } else { return MaxNumberOfConflictsDefaultValue; } }
1990 set {
1991 _hasBits0 |= 262144;
1992 maxNumberOfConflicts_ = value;
1993 }
1994 }
1995 /// <summary>Gets whether the "max_number_of_conflicts" field is set</summary>
1996 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1997 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1998 public bool HasMaxNumberOfConflicts {
1999 get { return (_hasBits0 & 262144) != 0; }
2000 }
2002 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2003 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2004 public void ClearMaxNumberOfConflicts() {
2005 _hasBits0 &= ~262144;
2006 }
2007
2008
2009 public const int MaxMemoryInMbFieldNumber = 40;
2010 private readonly static long MaxMemoryInMbDefaultValue = 10000L;
2012 private long maxMemoryInMb_;
2014
2021 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2022 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2023 public long MaxMemoryInMb {
2024 get { if ((_hasBits0 & 524288) != 0) { return maxMemoryInMb_; } else { return MaxMemoryInMbDefaultValue; } }
2025 set {
2026 _hasBits0 |= 524288;
2027 maxMemoryInMb_ = value;
2028 }
2029 }
2031 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2032 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2033 public bool HasMaxMemoryInMb {
2034 get { return (_hasBits0 & 524288) != 0; }
2035 }
2037 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2038 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2039 public void ClearMaxMemoryInMb() {
2040 _hasBits0 &= ~524288;
2042
2044 public const int AbsoluteGapLimitFieldNumber = 159;
2045 private readonly static double AbsoluteGapLimitDefaultValue = 0.0001D;
2046
2047 private double absoluteGapLimit_;
2050
2068 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2069 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2070 public double AbsoluteGapLimit {
2071 get { if ((_hasBits3 & 33554432) != 0) { return absoluteGapLimit_; } else { return AbsoluteGapLimitDefaultValue; } }
2072 set {
2073 _hasBits3 |= 33554432;
2074 absoluteGapLimit_ = value;
2075 }
2076 }
2078 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2079 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2080 public bool HasAbsoluteGapLimit {
2081 get { return (_hasBits3 & 33554432) != 0; }
2082 }
2084 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2085 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2086 public void ClearAbsoluteGapLimit() {
2087 _hasBits3 &= ~33554432;
2088 }
2089
2091 public const int RelativeGapLimitFieldNumber = 160;
2092 private readonly static double RelativeGapLimitDefaultValue = 0D;
2093
2094 private double relativeGapLimit_;
2095 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2096 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2097 public double RelativeGapLimit {
2098 get { if ((_hasBits3 & 67108864) != 0) { return relativeGapLimit_; } else { return RelativeGapLimitDefaultValue; } }
2099 set {
2100 _hasBits3 |= 67108864;
2101 relativeGapLimit_ = value;
2103 }
2105 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2106 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2107 public bool HasRelativeGapLimit {
2108 get { return (_hasBits3 & 67108864) != 0; }
2109 }
2111 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2112 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2113 public void ClearRelativeGapLimit() {
2114 _hasBits3 &= ~67108864;
2115 }
2116
2118 public const int RandomSeedFieldNumber = 31;
2119 private readonly static int RandomSeedDefaultValue = 1;
2120
2121 private int randomSeed_;
2124 /// part of the solver is reinitialized to this seed. If you change the random
2125 /// seed, the solver may make different choices during the solving process.
2126 ///
2127 /// For some problems, the running time may vary a lot depending on small
2128 /// change in the solving algorithm. Running the solver with different seeds
2129 /// enables to have more robust benchmarks when evaluating new features.
2130 /// </summary>
2131 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2132 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2133 public int RandomSeed {
2134 get { if ((_hasBits0 & 8192) != 0) { return randomSeed_; } else { return RandomSeedDefaultValue; } }
2135 set {
2136 _hasBits0 |= 8192;
2137 randomSeed_ = value;
2138 }
2139 }
2141 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2142 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2143 public bool HasRandomSeed {
2144 get { return (_hasBits0 & 8192) != 0; }
2147 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2148 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2149 public void ClearRandomSeed() {
2150 _hasBits0 &= ~8192;
2151 }
2152
2154 public const int PermuteVariableRandomlyFieldNumber = 178;
2155 private readonly static bool PermuteVariableRandomlyDefaultValue = false;
2156
2157 private bool permuteVariableRandomly_;
2158
2161 /// clients do not rely on the solver returning a specific solution if they are
2162 /// many equivalent optimal solutions.
2163 /// </summary>
2164 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2165 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2167 get { if ((_hasBits4 & 2048) != 0) { return permuteVariableRandomly_; } else { return PermuteVariableRandomlyDefaultValue; } }
2168 set {
2169 _hasBits4 |= 2048;
2170 permuteVariableRandomly_ = value;
2171 }
2172 }
2174 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2175 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2176 public bool HasPermuteVariableRandomly {
2177 get { return (_hasBits4 & 2048) != 0; }
2180 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2181 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2182 public void ClearPermuteVariableRandomly() {
2183 _hasBits4 &= ~2048;
2184 }
2185
2187 public const int PermutePresolveConstraintOrderFieldNumber = 179;
2188 private readonly static bool PermutePresolveConstraintOrderDefaultValue = false;
2189
2190 private bool permutePresolveConstraintOrder_;
2191 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2192 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2193 public bool PermutePresolveConstraintOrder {
2194 get { if ((_hasBits4 & 4096) != 0) { return permutePresolveConstraintOrder_; } else { return PermutePresolveConstraintOrderDefaultValue; } }
2195 set {
2196 _hasBits4 |= 4096;
2197 permutePresolveConstraintOrder_ = value;
2198 }
2201 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2202 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2203 public bool HasPermutePresolveConstraintOrder {
2204 get { return (_hasBits4 & 4096) != 0; }
2207 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2208 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2209 public void ClearPermutePresolveConstraintOrder() {
2210 _hasBits4 &= ~4096;
2211 }
2212
2214 public const int UseAbslRandomFieldNumber = 180;
2215 private readonly static bool UseAbslRandomDefaultValue = false;
2216
2217 private bool useAbslRandom_;
2218 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2219 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2220 public bool UseAbslRandom {
2221 get { if ((_hasBits4 & 8192) != 0) { return useAbslRandom_; } else { return UseAbslRandomDefaultValue; } }
2222 set {
2223 _hasBits4 |= 8192;
2224 useAbslRandom_ = value;
2225 }
2228 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2229 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2230 public bool HasUseAbslRandom {
2231 get { return (_hasBits4 & 8192) != 0; }
2234 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2235 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2236 public void ClearUseAbslRandom() {
2237 _hasBits4 &= ~8192;
2238 }
2239
2241 public const int LogSearchProgressFieldNumber = 41;
2242 private readonly static bool LogSearchProgressDefaultValue = false;
2243
2244 private bool logSearchProgress_;
2245
2248 /// log_to_stdout, log_to_response, ...) will do anything.
2249 /// </summary>
2250 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2251 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2252 public bool LogSearchProgress {
2253 get { if ((_hasBits0 & 1048576) != 0) { return logSearchProgress_; } else { return LogSearchProgressDefaultValue; } }
2254 set {
2255 _hasBits0 |= 1048576;
2256 logSearchProgress_ = value;
2257 }
2258 }
2260 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2261 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2262 public bool HasLogSearchProgress {
2263 get { return (_hasBits0 & 1048576) != 0; }
2266 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2267 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2268 public void ClearLogSearchProgress() {
2269 _hasBits0 &= ~1048576;
2270 }
2271
2273 public const int LogSubsolverStatisticsFieldNumber = 189;
2274 private readonly static bool LogSubsolverStatisticsDefaultValue = false;
2275
2276 private bool logSubsolverStatistics_;
2277
2280 /// number of search workers is > 1. Note that in all case we display a bit
2281 /// of stats with one line per subsolver.
2282 /// </summary>
2283 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2284 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2286 get { if ((_hasBits4 & 1048576) != 0) { return logSubsolverStatistics_; } else { return LogSubsolverStatisticsDefaultValue; } }
2287 set {
2288 _hasBits4 |= 1048576;
2289 logSubsolverStatistics_ = value;
2290 }
2291 }
2293 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2294 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2295 public bool HasLogSubsolverStatistics {
2296 get { return (_hasBits4 & 1048576) != 0; }
2299 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2300 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2301 public void ClearLogSubsolverStatistics() {
2302 _hasBits4 &= ~1048576;
2303 }
2304
2306 public const int LogPrefixFieldNumber = 185;
2307 private readonly static string LogPrefixDefaultValue = "";
2308
2309 private string logPrefix_;
2310
2313 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2314 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2315 public string LogPrefix {
2316 get { return logPrefix_ ?? LogPrefixDefaultValue; }
2317 set {
2318 logPrefix_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2319 }
2320 }
2322 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2323 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2324 public bool HasLogPrefix {
2325 get { return logPrefix_ != null; }
2326 }
2327 /// <summary>Clears the value of the "log_prefix" field</summary>
2328 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2329 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2330 public void ClearLogPrefix() {
2331 logPrefix_ = null;
2332 }
2333
2335 public const int LogToStdoutFieldNumber = 186;
2336 private readonly static bool LogToStdoutDefaultValue = true;
2337
2338 private bool logToStdout_;
2339
2342 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2343 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2344 public bool LogToStdout {
2345 get { if ((_hasBits4 & 131072) != 0) { return logToStdout_; } else { return LogToStdoutDefaultValue; } }
2346 set {
2347 _hasBits4 |= 131072;
2348 logToStdout_ = value;
2349 }
2350 }
2352 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2353 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2354 public bool HasLogToStdout {
2355 get { return (_hasBits4 & 131072) != 0; }
2358 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2359 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2360 public void ClearLogToStdout() {
2361 _hasBits4 &= ~131072;
2362 }
2363
2365 public const int LogToResponseFieldNumber = 187;
2366 private readonly static bool LogToResponseDefaultValue = false;
2367
2368 private bool logToResponse_;
2369
2372 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2373 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2374 public bool LogToResponse {
2375 get { if ((_hasBits4 & 262144) != 0) { return logToResponse_; } else { return LogToResponseDefaultValue; } }
2376 set {
2377 _hasBits4 |= 262144;
2378 logToResponse_ = value;
2379 }
2380 }
2382 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2383 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2384 public bool HasLogToResponse {
2385 get { return (_hasBits4 & 262144) != 0; }
2388 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2389 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2390 public void ClearLogToResponse() {
2391 _hasBits4 &= ~262144;
2392 }
2393
2395 public const int UsePbResolutionFieldNumber = 43;
2396 private readonly static bool UsePbResolutionDefaultValue = false;
2397
2398 private bool usePbResolution_;
2399
2402 /// pseudo-Boolean constraints. If you only have clauses, this shouldn't change
2403 /// anything (except slow the solver down).
2404 /// </summary>
2405 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2406 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2407 public bool UsePbResolution {
2408 get { if ((_hasBits0 & 2097152) != 0) { return usePbResolution_; } else { return UsePbResolutionDefaultValue; } }
2409 set {
2410 _hasBits0 |= 2097152;
2411 usePbResolution_ = value;
2412 }
2413 }
2415 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2416 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2417 public bool HasUsePbResolution {
2418 get { return (_hasBits0 & 2097152) != 0; }
2421 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2422 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2423 public void ClearUsePbResolution() {
2424 _hasBits0 &= ~2097152;
2425 }
2426
2428 public const int MinimizeReductionDuringPbResolutionFieldNumber = 48;
2429 private readonly static bool MinimizeReductionDuringPbResolutionDefaultValue = false;
2430
2431 private bool minimizeReductionDuringPbResolution_;
2432
2435 /// search space will be different and if the coefficients are large, this may
2436 /// lead to integer overflows that could otherwise be prevented.
2437 /// </summary>
2438 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2439 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2441 get { if ((_hasBits0 & 67108864) != 0) { return minimizeReductionDuringPbResolution_; } else { return MinimizeReductionDuringPbResolutionDefaultValue; } }
2442 set {
2443 _hasBits0 |= 67108864;
2444 minimizeReductionDuringPbResolution_ = value;
2445 }
2446 }
2448 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2449 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2450 public bool HasMinimizeReductionDuringPbResolution {
2451 get { return (_hasBits0 & 67108864) != 0; }
2454 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2455 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2456 public void ClearMinimizeReductionDuringPbResolution() {
2457 _hasBits0 &= ~67108864;
2458 }
2459
2461 public const int CountAssumptionLevelsInLbdFieldNumber = 49;
2462 private readonly static bool CountAssumptionLevelsInLbdDefaultValue = true;
2463
2464 private bool countAssumptionLevelsInLbd_;
2465
2468 /// the solver in some situation. Note that this only impact solves under
2469 /// assumptions.
2470 ///
2471 /// Gilles Audemard, Jean-Marie Lagniez, Laurent Simon, "Improving Glucose for
2472 /// Incremental SAT Solving with Assumptions: Application to MUS Extraction"
2473 /// Theory and Applications of Satisfiability Testing - SAT 2013, Lecture Notes
2474 /// in Computer Science Volume 7962, 2013, pp 309-317.
2475 /// </summary>
2476 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2477 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2478 public bool CountAssumptionLevelsInLbd {
2479 get { if ((_hasBits0 & 134217728) != 0) { return countAssumptionLevelsInLbd_; } else { return CountAssumptionLevelsInLbdDefaultValue; } }
2480 set {
2481 _hasBits0 |= 134217728;
2482 countAssumptionLevelsInLbd_ = value;
2483 }
2484 }
2486 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2487 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2488 public bool HasCountAssumptionLevelsInLbd {
2489 get { return (_hasBits0 & 134217728) != 0; }
2490 }
2491 /// <summary>Clears the value of the "count_assumption_levels_in_lbd" field</summary>
2492 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2493 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2494 public void ClearCountAssumptionLevelsInLbd() {
2495 _hasBits0 &= ~134217728;
2496 }
2497
2498
2499 public const int PresolveBveThresholdFieldNumber = 54;
2500 private readonly static int PresolveBveThresholdDefaultValue = 500;
2502 private int presolveBveThreshold_;
2504
2507 /// </summary>
2508 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2509 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2510 public int PresolveBveThreshold {
2511 get { if ((_hasBits1 & 1) != 0) { return presolveBveThreshold_; } else { return PresolveBveThresholdDefaultValue; } }
2512 set {
2513 _hasBits1 |= 1;
2514 presolveBveThreshold_ = value;
2515 }
2516 }
2518 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2519 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2520 public bool HasPresolveBveThreshold {
2521 get { return (_hasBits1 & 1) != 0; }
2522 }
2523 /// <summary>Clears the value of the "presolve_bve_threshold" field</summary>
2524 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2525 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2526 public void ClearPresolveBveThreshold() {
2527 _hasBits1 &= ~1;
2528 }
2529
2530
2531 public const int PresolveBveClauseWeightFieldNumber = 55;
2532 private readonly static int PresolveBveClauseWeightDefaultValue = 3;
2534 private int presolveBveClauseWeight_;
2536
2539 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2540 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2541 public int PresolveBveClauseWeight {
2542 get { if ((_hasBits1 & 2) != 0) { return presolveBveClauseWeight_; } else { return PresolveBveClauseWeightDefaultValue; } }
2543 set {
2544 _hasBits1 |= 2;
2545 presolveBveClauseWeight_ = value;
2546 }
2547 }
2549 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2550 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2551 public bool HasPresolveBveClauseWeight {
2552 get { return (_hasBits1 & 2) != 0; }
2553 }
2554 /// <summary>Clears the value of the "presolve_bve_clause_weight" field</summary>
2555 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2556 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2557 public void ClearPresolveBveClauseWeight() {
2558 _hasBits1 &= ~2;
2559 }
2560
2561
2562 public const int ProbingDeterministicTimeLimitFieldNumber = 226;
2563 private readonly static double ProbingDeterministicTimeLimitDefaultValue = 1D;
2565 private double probingDeterministicTimeLimit_;
2567
2570 /// TODO(user): Clean up. The first one is used in CP-SAT, the other in pure
2571 /// SAT presolve.
2572 /// </summary>
2573 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2574 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2576 get { if ((_hasBits5 & 131072) != 0) { return probingDeterministicTimeLimit_; } else { return ProbingDeterministicTimeLimitDefaultValue; } }
2577 set {
2578 _hasBits5 |= 131072;
2579 probingDeterministicTimeLimit_ = value;
2580 }
2581 }
2583 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2584 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2585 public bool HasProbingDeterministicTimeLimit {
2586 get { return (_hasBits5 & 131072) != 0; }
2587 }
2589 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2590 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2592 _hasBits5 &= ~131072;
2593 }
2594
2596 public const int PresolveProbingDeterministicTimeLimitFieldNumber = 57;
2597 private readonly static double PresolveProbingDeterministicTimeLimitDefaultValue = 30D;
2598
2599 private double presolveProbingDeterministicTimeLimit_;
2600 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2601 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2603 get { if ((_hasBits1 & 8) != 0) { return presolveProbingDeterministicTimeLimit_; } else { return PresolveProbingDeterministicTimeLimitDefaultValue; } }
2604 set {
2605 _hasBits1 |= 8;
2606 presolveProbingDeterministicTimeLimit_ = value;
2607 }
2608 }
2610 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2611 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2613 get { return (_hasBits1 & 8) != 0; }
2614 }
2616 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2617 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2619 _hasBits1 &= ~8;
2620 }
2621
2623 public const int PresolveBlockedClauseFieldNumber = 88;
2624 private readonly static bool PresolveBlockedClauseDefaultValue = true;
2625
2626 private bool presolveBlockedClause_;
2629
2631 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2632 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2633 public bool PresolveBlockedClause {
2634 get { if ((_hasBits1 & -2147483648) != 0) { return presolveBlockedClause_; } else { return PresolveBlockedClauseDefaultValue; } }
2635 set {
2636 _hasBits1 |= -2147483648;
2637 presolveBlockedClause_ = value;
2638 }
2639 }
2641 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2642 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2643 public bool HasPresolveBlockedClause {
2644 get { return (_hasBits1 & -2147483648) != 0; }
2645 }
2647 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2648 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2649 public void ClearPresolveBlockedClause() {
2650 _hasBits1 &= ~-2147483648;
2651 }
2652
2654 public const int PresolveUseBvaFieldNumber = 72;
2655 private readonly static bool PresolveUseBvaDefaultValue = true;
2656
2657 private bool presolveUseBva_;
2660
2661 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2662 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2663 public bool PresolveUseBva {
2664 get { if ((_hasBits1 & 65536) != 0) { return presolveUseBva_; } else { return PresolveUseBvaDefaultValue; } }
2665 set {
2666 _hasBits1 |= 65536;
2667 presolveUseBva_ = value;
2669 }
2671 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2672 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2673 public bool HasPresolveUseBva {
2674 get { return (_hasBits1 & 65536) != 0; }
2675 }
2677 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2678 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2679 public void ClearPresolveUseBva() {
2680 _hasBits1 &= ~65536;
2681 }
2682
2684 public const int PresolveBvaThresholdFieldNumber = 73;
2685 private readonly static int PresolveBvaThresholdDefaultValue = 1;
2686
2687 private int presolveBvaThreshold_;
2690
2693 /// </summary>
2694 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2695 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2696 public int PresolveBvaThreshold {
2697 get { if ((_hasBits1 & 131072) != 0) { return presolveBvaThreshold_; } else { return PresolveBvaThresholdDefaultValue; } }
2698 set {
2699 _hasBits1 |= 131072;
2700 presolveBvaThreshold_ = value;
2701 }
2702 }
2704 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2705 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2706 public bool HasPresolveBvaThreshold {
2707 get { return (_hasBits1 & 131072) != 0; }
2708 }
2710 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2711 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2712 public void ClearPresolveBvaThreshold() {
2713 _hasBits1 &= ~131072;
2714 }
2715
2717 public const int MaxPresolveIterationsFieldNumber = 138;
2718 private readonly static int MaxPresolveIterationsDefaultValue = 3;
2719
2720 private int maxPresolveIterations_;
2723
2726 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2727 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2728 public int MaxPresolveIterations {
2729 get { if ((_hasBits3 & 2048) != 0) { return maxPresolveIterations_; } else { return MaxPresolveIterationsDefaultValue; } }
2730 set {
2731 _hasBits3 |= 2048;
2732 maxPresolveIterations_ = value;
2733 }
2734 }
2736 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2737 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2738 public bool HasMaxPresolveIterations {
2739 get { return (_hasBits3 & 2048) != 0; }
2740 }
2742 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2743 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2744 public void ClearMaxPresolveIterations() {
2745 _hasBits3 &= ~2048;
2746 }
2747
2749 public const int CpModelPresolveFieldNumber = 86;
2750 private readonly static bool CpModelPresolveDefaultValue = true;
2751
2752 private bool cpModelPresolve_;
2755
2756 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2757 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2758 public bool CpModelPresolve {
2759 get { if ((_hasBits1 & 536870912) != 0) { return cpModelPresolve_; } else { return CpModelPresolveDefaultValue; } }
2760 set {
2761 _hasBits1 |= 536870912;
2762 cpModelPresolve_ = value;
2764 }
2766 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2767 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2768 public bool HasCpModelPresolve {
2769 get { return (_hasBits1 & 536870912) != 0; }
2770 }
2772 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2773 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2774 public void ClearCpModelPresolve() {
2775 _hasBits1 &= ~536870912;
2776 }
2777
2779 public const int CpModelProbingLevelFieldNumber = 110;
2780 private readonly static int CpModelProbingLevelDefaultValue = 2;
2781
2782 private int cpModelProbingLevel_;
2785
2786 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2787 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2789 get { if ((_hasBits2 & 131072) != 0) { return cpModelProbingLevel_; } else { return CpModelProbingLevelDefaultValue; } }
2790 set {
2791 _hasBits2 |= 131072;
2792 cpModelProbingLevel_ = value;
2794 }
2796 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2797 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2798 public bool HasCpModelProbingLevel {
2799 get { return (_hasBits2 & 131072) != 0; }
2800 }
2802 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2803 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2804 public void ClearCpModelProbingLevel() {
2805 _hasBits2 &= ~131072;
2806 }
2807
2809 public const int CpModelUseSatPresolveFieldNumber = 93;
2810 private readonly static bool CpModelUseSatPresolveDefaultValue = true;
2811
2812 private bool cpModelUseSatPresolve_;
2815
2816 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2817 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2819 get { if ((_hasBits2 & 16) != 0) { return cpModelUseSatPresolve_; } else { return CpModelUseSatPresolveDefaultValue; } }
2820 set {
2821 _hasBits2 |= 16;
2822 cpModelUseSatPresolve_ = value;
2824 }
2826 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2827 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2828 public bool HasCpModelUseSatPresolve {
2829 get { return (_hasBits2 & 16) != 0; }
2830 }
2832 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2833 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2834 public void ClearCpModelUseSatPresolve() {
2835 _hasBits2 &= ~16;
2836 }
2837
2839 public const int RemoveFixedVariablesEarlyFieldNumber = 310;
2840 private readonly static bool RemoveFixedVariablesEarlyDefaultValue = true;
2841
2842 private bool removeFixedVariablesEarly_;
2845
2848 /// </summary>
2849 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2850 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2851 public bool RemoveFixedVariablesEarly {
2852 get { if ((_hasBits7 & 268435456) != 0) { return removeFixedVariablesEarly_; } else { return RemoveFixedVariablesEarlyDefaultValue; } }
2853 set {
2854 _hasBits7 |= 268435456;
2855 removeFixedVariablesEarly_ = value;
2856 }
2857 }
2859 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2860 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2861 public bool HasRemoveFixedVariablesEarly {
2862 get { return (_hasBits7 & 268435456) != 0; }
2863 }
2865 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2866 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2867 public void ClearRemoveFixedVariablesEarly() {
2868 _hasBits7 &= ~268435456;
2869 }
2870
2872 public const int DetectTableWithCostFieldNumber = 216;
2873 private readonly static bool DetectTableWithCostDefaultValue = false;
2874
2875 private bool detectTableWithCost_;
2878
2881 /// This can lead to a dramatic speed-up for such problems but is still
2882 /// experimental at this point.
2883 /// </summary>
2884 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2885 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2887 get { if ((_hasBits5 & 512) != 0) { return detectTableWithCost_; } else { return DetectTableWithCostDefaultValue; } }
2888 set {
2889 _hasBits5 |= 512;
2890 detectTableWithCost_ = value;
2891 }
2892 }
2894 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2895 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2896 public bool HasDetectTableWithCost {
2897 get { return (_hasBits5 & 512) != 0; }
2898 }
2900 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2901 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2902 public void ClearDetectTableWithCost() {
2903 _hasBits5 &= ~512;
2904 }
2905
2907 public const int TableCompressionLevelFieldNumber = 217;
2908 private readonly static int TableCompressionLevelDefaultValue = 2;
2909
2910 private int tableCompressionLevel_;
2911 /// <summary>
2912 /// How much we try to "compress" a table constraint. Compressing more leads to
2913 /// less Booleans and faster propagation but can reduced the quality of the lp
2914 /// relaxation. Values goes from 0 to 3 where we always try to fully compress a
2915 /// table. At 2, we try to automatically decide if it is worth it.
2916 /// </summary>
2917 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2918 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2919 public int TableCompressionLevel {
2920 get { if ((_hasBits5 & 1024) != 0) { return tableCompressionLevel_; } else { return TableCompressionLevelDefaultValue; } }
2921 set {
2922 _hasBits5 |= 1024;
2923 tableCompressionLevel_ = value;
2924 }
2925 }
2927 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2928 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2929 public bool HasTableCompressionLevel {
2930 get { return (_hasBits5 & 1024) != 0; }
2931 }
2933 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2934 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2935 public void ClearTableCompressionLevel() {
2936 _hasBits5 &= ~1024;
2937 }
2938
2940 public const int ExpandAlldiffConstraintsFieldNumber = 170;
2941 private readonly static bool ExpandAlldiffConstraintsDefaultValue = false;
2942
2943 private bool expandAlldiffConstraints_;
2944 /// <summary>
2945 /// If true, expand all_different constraints that are not permutations.
2946 /// Permutations (#Variables = #Values) are always expanded.
2947 /// </summary>
2948 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2949 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2951 get { if ((_hasBits4 & 16) != 0) { return expandAlldiffConstraints_; } else { return ExpandAlldiffConstraintsDefaultValue; } }
2952 set {
2953 _hasBits4 |= 16;
2954 expandAlldiffConstraints_ = value;
2956 }
2958 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2959 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2960 public bool HasExpandAlldiffConstraints {
2961 get { return (_hasBits4 & 16) != 0; }
2962 }
2964 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2965 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2966 public void ClearExpandAlldiffConstraints() {
2967 _hasBits4 &= ~16;
2968 }
2969
2971 public const int ExpandReservoirConstraintsFieldNumber = 182;
2972 private readonly static bool ExpandReservoirConstraintsDefaultValue = true;
2973
2974 private bool expandReservoirConstraints_;
2975 /// <summary>
2976 /// If true, expand the reservoir constraints by creating booleans for all
2977 /// possible precedences between event and encoding the constraint.
2978 /// </summary>
2979 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2980 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2982 get { if ((_hasBits4 & 32768) != 0) { return expandReservoirConstraints_; } else { return ExpandReservoirConstraintsDefaultValue; } }
2983 set {
2984 _hasBits4 |= 32768;
2985 expandReservoirConstraints_ = value;
2987 }
2989 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2990 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2991 public bool HasExpandReservoirConstraints {
2992 get { return (_hasBits4 & 32768) != 0; }
2993 }
2995 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2996 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2997 public void ClearExpandReservoirConstraints() {
2998 _hasBits4 &= ~32768;
2999 }
3000
3002 public const int ExpandReservoirUsingCircuitFieldNumber = 288;
3003 private readonly static bool ExpandReservoirUsingCircuitDefaultValue = false;
3004
3005 private bool expandReservoirUsingCircuit_;
3006 /// <summary>
3007 /// Mainly useful for testing.
3008 ///
3009 /// If this and expand_reservoir_constraints is true, we use a different
3010 /// encoding of the reservoir constraint using circuit instead of precedences.
3011 /// Note that this is usually slower, but can exercise different part of the
3012 /// solver. Note that contrary to the precedence encoding, this easily support
3013 /// variable demands.
3014 ///
3015 /// WARNING: with this encoding, the constraint takes a slightly different
3016 /// meaning. There must exist a permutation of the events occurring at the same
3017 /// time such that the level is within the reservoir after each of these events
3018 /// (in this permuted order). So we cannot have +100 and -100 at the same time
3019 /// if the level must be between 0 and 10 (as authorized by the reservoir
3020 /// constraint).
3021 /// </summary>
3022 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3023 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3024 public bool ExpandReservoirUsingCircuit {
3025 get { if ((_hasBits7 & 128) != 0) { return expandReservoirUsingCircuit_; } else { return ExpandReservoirUsingCircuitDefaultValue; } }
3026 set {
3027 _hasBits7 |= 128;
3028 expandReservoirUsingCircuit_ = value;
3029 }
3030 }
3032 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3033 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3034 public bool HasExpandReservoirUsingCircuit {
3035 get { return (_hasBits7 & 128) != 0; }
3036 }
3038 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3039 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3040 public void ClearExpandReservoirUsingCircuit() {
3041 _hasBits7 &= ~128;
3042 }
3043
3045 public const int EncodeCumulativeAsReservoirFieldNumber = 287;
3046 private readonly static bool EncodeCumulativeAsReservoirDefaultValue = false;
3047
3048 private bool encodeCumulativeAsReservoir_;
3051 /// constraint. The only reason you might want to do that is to test the
3052 /// reservoir propagation code!
3053 /// </summary>
3054 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3055 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3056 public bool EncodeCumulativeAsReservoir {
3057 get { if ((_hasBits7 & 64) != 0) { return encodeCumulativeAsReservoir_; } else { return EncodeCumulativeAsReservoirDefaultValue; } }
3058 set {
3059 _hasBits7 |= 64;
3060 encodeCumulativeAsReservoir_ = value;
3061 }
3064 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3065 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3066 public bool HasEncodeCumulativeAsReservoir {
3067 get { return (_hasBits7 & 64) != 0; }
3068 }
3070 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3071 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3072 public void ClearEncodeCumulativeAsReservoir() {
3073 _hasBits7 &= ~64;
3074 }
3075
3077 public const int MaxLinMaxSizeForExpansionFieldNumber = 280;
3078 private readonly static int MaxLinMaxSizeForExpansionDefaultValue = 0;
3079
3080 private int maxLinMaxSizeForExpansion_;
3083 /// parameter, model expansion replaces target = max(xi) by linear constraint
3084 /// with the introduction of new booleans bi such that bi => target == xi.
3085 ///
3086 /// This is mainly for experimenting compared to a custom lin_max propagator.
3087 /// </summary>
3088 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3089 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3090 public int MaxLinMaxSizeForExpansion {
3091 get { if ((_hasBits6 & -2147483648) != 0) { return maxLinMaxSizeForExpansion_; } else { return MaxLinMaxSizeForExpansionDefaultValue; } }
3092 set {
3093 _hasBits6 |= -2147483648;
3094 maxLinMaxSizeForExpansion_ = value;
3095 }
3096 }
3098 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3099 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3100 public bool HasMaxLinMaxSizeForExpansion {
3101 get { return (_hasBits6 & -2147483648) != 0; }
3102 }
3104 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3105 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3106 public void ClearMaxLinMaxSizeForExpansion() {
3107 _hasBits6 &= ~-2147483648;
3109
3111 public const int DisableConstraintExpansionFieldNumber = 181;
3112 private readonly static bool DisableConstraintExpansionDefaultValue = false;
3113
3114 private bool disableConstraintExpansion_;
3115
3118 /// </summary>
3119 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3120 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3121 public bool DisableConstraintExpansion {
3122 get { if ((_hasBits4 & 16384) != 0) { return disableConstraintExpansion_; } else { return DisableConstraintExpansionDefaultValue; } }
3123 set {
3124 _hasBits4 |= 16384;
3125 disableConstraintExpansion_ = value;
3126 }
3127 }
3129 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3130 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3131 public bool HasDisableConstraintExpansion {
3132 get { return (_hasBits4 & 16384) != 0; }
3133 }
3135 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3136 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3137 public void ClearDisableConstraintExpansion() {
3138 _hasBits4 &= ~16384;
3140
3142 public const int EncodeComplexLinearConstraintWithIntegerFieldNumber = 223;
3143 private readonly static bool EncodeComplexLinearConstraintWithIntegerDefaultValue = false;
3144
3145 private bool encodeComplexLinearConstraintWithInteger_;
3146
3149 /// </summary>
3150 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3151 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3153 get { if ((_hasBits5 & 16384) != 0) { return encodeComplexLinearConstraintWithInteger_; } else { return EncodeComplexLinearConstraintWithIntegerDefaultValue; } }
3154 set {
3155 _hasBits5 |= 16384;
3156 encodeComplexLinearConstraintWithInteger_ = value;
3157 }
3158 }
3160 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3161 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3163 get { return (_hasBits5 & 16384) != 0; }
3164 }
3166 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3167 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3168 public void ClearEncodeComplexLinearConstraintWithInteger() {
3169 _hasBits5 &= ~16384;
3171
3173 public const int MergeNoOverlapWorkLimitFieldNumber = 145;
3174 private readonly static double MergeNoOverlapWorkLimitDefaultValue = 1e+12D;
3175
3176 private double mergeNoOverlapWorkLimit_;
3177
3180 /// so we have a limit in place on the number of explored nodes in the
3181 /// underlying graph. The internal limit is an int64, but we use double here to
3182 /// simplify manual input.
3183 /// </summary>
3184 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3185 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3187 get { if ((_hasBits3 & 8192) != 0) { return mergeNoOverlapWorkLimit_; } else { return MergeNoOverlapWorkLimitDefaultValue; } }
3188 set {
3189 _hasBits3 |= 8192;
3190 mergeNoOverlapWorkLimit_ = value;
3192 }
3194 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3195 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3196 public bool HasMergeNoOverlapWorkLimit {
3197 get { return (_hasBits3 & 8192) != 0; }
3198 }
3200 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3201 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3202 public void ClearMergeNoOverlapWorkLimit() {
3203 _hasBits3 &= ~8192;
3205
3207 public const int MergeAtMostOneWorkLimitFieldNumber = 146;
3208 private readonly static double MergeAtMostOneWorkLimitDefaultValue = 1e+08D;
3209
3210 private double mergeAtMostOneWorkLimit_;
3211 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3212 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3213 public double MergeAtMostOneWorkLimit {
3214 get { if ((_hasBits3 & 16384) != 0) { return mergeAtMostOneWorkLimit_; } else { return MergeAtMostOneWorkLimitDefaultValue; } }
3215 set {
3216 _hasBits3 |= 16384;
3217 mergeAtMostOneWorkLimit_ = value;
3218 }
3219 }
3220 /// <summary>Gets whether the "merge_at_most_one_work_limit" field is set</summary>
3221 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3222 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3223 public bool HasMergeAtMostOneWorkLimit {
3224 get { return (_hasBits3 & 16384) != 0; }
3227 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3228 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3229 public void ClearMergeAtMostOneWorkLimit() {
3230 _hasBits3 &= ~16384;
3232
3234 public const int PresolveSubstitutionLevelFieldNumber = 147;
3235 private readonly static int PresolveSubstitutionLevelDefaultValue = 1;
3236
3237 private int presolveSubstitutionLevel_;
3238
3241 /// variable appearing only in linear constraints. For now the value 0 turns it
3242 /// off and any positive value performs substitution.
3243 /// </summary>
3244 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3245 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3246 public int PresolveSubstitutionLevel {
3247 get { if ((_hasBits3 & 32768) != 0) { return presolveSubstitutionLevel_; } else { return PresolveSubstitutionLevelDefaultValue; } }
3248 set {
3249 _hasBits3 |= 32768;
3250 presolveSubstitutionLevel_ = value;
3251 }
3254 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3255 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3256 public bool HasPresolveSubstitutionLevel {
3257 get { return (_hasBits3 & 32768) != 0; }
3258 }
3260 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3261 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3262 public void ClearPresolveSubstitutionLevel() {
3263 _hasBits3 &= ~32768;
3265
3267 public const int PresolveExtractIntegerEnforcementFieldNumber = 174;
3268 private readonly static bool PresolveExtractIntegerEnforcementDefaultValue = false;
3269
3270 private bool presolveExtractIntegerEnforcement_;
3271
3274 /// always be beneficial except that we don't always handle them as efficiently
3275 /// as we could for now. This causes problem on manna81.mps (LP relaxation not
3276 /// as tight it seems) and on neos-3354841-apure.mps.gz (too many literals
3277 /// created this way).
3278 /// </summary>
3279 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3280 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3282 get { if ((_hasBits4 & 128) != 0) { return presolveExtractIntegerEnforcement_; } else { return PresolveExtractIntegerEnforcementDefaultValue; } }
3283 set {
3284 _hasBits4 |= 128;
3285 presolveExtractIntegerEnforcement_ = value;
3286 }
3287 }
3289 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3290 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3291 public bool HasPresolveExtractIntegerEnforcement {
3292 get { return (_hasBits4 & 128) != 0; }
3293 }
3295 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3296 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3297 public void ClearPresolveExtractIntegerEnforcement() {
3298 _hasBits4 &= ~128;
3300
3302 public const int PresolveInclusionWorkLimitFieldNumber = 201;
3303 private readonly static long PresolveInclusionWorkLimitDefaultValue = 100000000L;
3304
3305 private long presolveInclusionWorkLimit_;
3306
3309 /// processing them usually involve scanning them, the complexity of these
3310 /// operations can be big. This enforce a local deterministic limit on the
3311 /// number of entries scanned. Default is 1e8.
3312 ///
3313 /// A value of zero will disable these presolve rules completely.
3314 /// </summary>
3315 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3316 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3317 public long PresolveInclusionWorkLimit {
3318 get { if ((_hasBits5 & 1) != 0) { return presolveInclusionWorkLimit_; } else { return PresolveInclusionWorkLimitDefaultValue; } }
3319 set {
3320 _hasBits5 |= 1;
3321 presolveInclusionWorkLimit_ = value;
3322 }
3323 }
3325 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3326 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3327 public bool HasPresolveInclusionWorkLimit {
3328 get { return (_hasBits5 & 1) != 0; }
3329 }
3331 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3332 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3333 public void ClearPresolveInclusionWorkLimit() {
3334 _hasBits5 &= ~1;
3335 }
3338 public const int IgnoreNamesFieldNumber = 202;
3339 private readonly static bool IgnoreNamesDefaultValue = true;
3340
3341 private bool ignoreNames_;
3343
3345 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3346 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3347 public bool IgnoreNames {
3348 get { if ((_hasBits5 & 2) != 0) { return ignoreNames_; } else { return IgnoreNamesDefaultValue; } }
3349 set {
3350 _hasBits5 |= 2;
3351 ignoreNames_ = value;
3353 }
3355 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3356 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3357 public bool HasIgnoreNames {
3358 get { return (_hasBits5 & 2) != 0; }
3359 }
3361 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3362 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3363 public void ClearIgnoreNames() {
3364 _hasBits5 &= ~2;
3365 }
3368 public const int InferAllDiffsFieldNumber = 233;
3369 private readonly static bool InferAllDiffsDefaultValue = true;
3370
3371 private bool inferAllDiffs_;
3373
3376 /// already in the model so that if a user want to add some all_diff, we assume
3377 /// it is well done and do not try to add more.
3378 ///
3379 /// This will also detect and add no_overlap constraints, if all the relations
3380 /// x != y have "offsets" between them. I.e. x > y + offset.
3381 /// </summary>
3382 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3383 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3384 public bool InferAllDiffs {
3385 get { if ((_hasBits5 & 8388608) != 0) { return inferAllDiffs_; } else { return InferAllDiffsDefaultValue; } }
3386 set {
3387 _hasBits5 |= 8388608;
3388 inferAllDiffs_ = value;
3389 }
3390 }
3392 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3393 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3394 public bool HasInferAllDiffs {
3395 get { return (_hasBits5 & 8388608) != 0; }
3396 }
3398 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3399 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3400 public void ClearInferAllDiffs() {
3401 _hasBits5 &= ~8388608;
3402 }
3403
3404 /// <summary>Field number for the "find_big_linear_overlap" field.</summary>
3405 public const int FindBigLinearOverlapFieldNumber = 234;
3406 private readonly static bool FindBigLinearOverlapDefaultValue = true;
3407
3408 private bool findBigLinearOverlap_;
3411
3414 /// </summary>
3415 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3416 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3417 public bool FindBigLinearOverlap {
3418 get { if ((_hasBits5 & 16777216) != 0) { return findBigLinearOverlap_; } else { return FindBigLinearOverlapDefaultValue; } }
3419 set {
3420 _hasBits5 |= 16777216;
3421 findBigLinearOverlap_ = value;
3422 }
3423 }
3425 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3426 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3427 public bool HasFindBigLinearOverlap {
3428 get { return (_hasBits5 & 16777216) != 0; }
3429 }
3431 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3432 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3433 public void ClearFindBigLinearOverlap() {
3434 _hasBits5 &= ~16777216;
3435 }
3436
3437 /// <summary>Field number for the "use_sat_inprocessing" field.</summary>
3438 public const int UseSatInprocessingFieldNumber = 163;
3439 private readonly static bool UseSatInprocessingDefaultValue = true;
3440
3441 private bool useSatInprocessing_;
3444
3446 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3447 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3448 public bool UseSatInprocessing {
3449 get { if ((_hasBits3 & 536870912) != 0) { return useSatInprocessing_; } else { return UseSatInprocessingDefaultValue; } }
3450 set {
3451 _hasBits3 |= 536870912;
3452 useSatInprocessing_ = value;
3454 }
3456 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3457 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3459 get { return (_hasBits3 & 536870912) != 0; }
3460 }
3462 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3463 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3464 public void ClearUseSatInprocessing() {
3465 _hasBits3 &= ~536870912;
3466 }
3467
3468 /// <summary>Field number for the "inprocessing_dtime_ratio" field.</summary>
3469 public const int InprocessingDtimeRatioFieldNumber = 273;
3470 private readonly static double InprocessingDtimeRatioDefaultValue = 0.2D;
3471
3472 private double inprocessingDtimeRatio_;
3475
3478 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3479 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3480 public double InprocessingDtimeRatio {
3481 get { if ((_hasBits6 & 16777216) != 0) { return inprocessingDtimeRatio_; } else { return InprocessingDtimeRatioDefaultValue; } }
3482 set {
3483 _hasBits6 |= 16777216;
3484 inprocessingDtimeRatio_ = value;
3485 }
3486 }
3487
3488 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3489 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3490 public bool HasInprocessingDtimeRatio {
3491 get { return (_hasBits6 & 16777216) != 0; }
3492 }
3494 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3495 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3496 public void ClearInprocessingDtimeRatio() {
3497 _hasBits6 &= ~16777216;
3498 }
3499
3500 /// <summary>Field number for the "inprocessing_probing_dtime" field.</summary>
3501 public const int InprocessingProbingDtimeFieldNumber = 274;
3502 private readonly static double InprocessingProbingDtimeDefaultValue = 1D;
3503
3504 private double inprocessingProbingDtime_;
3507
3508 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3509 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3511 get { if ((_hasBits6 & 33554432) != 0) { return inprocessingProbingDtime_; } else { return InprocessingProbingDtimeDefaultValue; } }
3512 set {
3513 _hasBits6 |= 33554432;
3514 inprocessingProbingDtime_ = value;
3515 }
3518 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3519 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3520 public bool HasInprocessingProbingDtime {
3521 get { return (_hasBits6 & 33554432) != 0; }
3522 }
3524 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3525 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3526 public void ClearInprocessingProbingDtime() {
3527 _hasBits6 &= ~33554432;
3528 }
3529
3530 /// <summary>Field number for the "inprocessing_minimization_dtime" field.</summary>
3531 public const int InprocessingMinimizationDtimeFieldNumber = 275;
3532 private readonly static double InprocessingMinimizationDtimeDefaultValue = 1D;
3533
3534 private double inprocessingMinimizationDtime_;
3537
3540 /// This is the amount of dtime we should spend on this technique during each
3541 /// inprocessing phase.
3542 ///
3543 /// The minimization technique is the same as the one used to minimize core in
3544 /// max-sat. We also minimize problem clauses and not just the learned clause
3545 /// that we keep forever like in the paper.
3546 /// </summary>
3547 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3548 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3549 public double InprocessingMinimizationDtime {
3550 get { if ((_hasBits6 & 67108864) != 0) { return inprocessingMinimizationDtime_; } else { return InprocessingMinimizationDtimeDefaultValue; } }
3551 set {
3552 _hasBits6 |= 67108864;
3553 inprocessingMinimizationDtime_ = value;
3554 }
3555 }
3557 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3558 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3559 public bool HasInprocessingMinimizationDtime {
3560 get { return (_hasBits6 & 67108864) != 0; }
3561 }
3563 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3564 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3565 public void ClearInprocessingMinimizationDtime() {
3566 _hasBits6 &= ~67108864;
3567 }
3568
3570 public const int InprocessingMinimizationUseConflictAnalysisFieldNumber = 297;
3571 private readonly static bool InprocessingMinimizationUseConflictAnalysisDefaultValue = true;
3572
3573 private bool inprocessingMinimizationUseConflictAnalysis_;
3574 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3575 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3577 get { if ((_hasBits7 & 32768) != 0) { return inprocessingMinimizationUseConflictAnalysis_; } else { return InprocessingMinimizationUseConflictAnalysisDefaultValue; } }
3578 set {
3579 _hasBits7 |= 32768;
3580 inprocessingMinimizationUseConflictAnalysis_ = value;
3582 }
3584 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3585 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3586 public bool HasInprocessingMinimizationUseConflictAnalysis {
3587 get { return (_hasBits7 & 32768) != 0; }
3588 }
3590 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3591 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3593 _hasBits7 &= ~32768;
3594 }
3595
3597 public const int InprocessingMinimizationUseAllOrderingsFieldNumber = 298;
3598 private readonly static bool InprocessingMinimizationUseAllOrderingsDefaultValue = false;
3599
3600 private bool inprocessingMinimizationUseAllOrderings_;
3601 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3602 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3604 get { if ((_hasBits7 & 65536) != 0) { return inprocessingMinimizationUseAllOrderings_; } else { return InprocessingMinimizationUseAllOrderingsDefaultValue; } }
3605 set {
3606 _hasBits7 |= 65536;
3607 inprocessingMinimizationUseAllOrderings_ = value;
3609 }
3611 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3612 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3613 public bool HasInprocessingMinimizationUseAllOrderings {
3614 get { return (_hasBits7 & 65536) != 0; }
3615 }
3617 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3618 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3620 _hasBits7 &= ~65536;
3621 }
3622
3624 public const int NumWorkersFieldNumber = 206;
3625 private readonly static int NumWorkersDefaultValue = 0;
3626
3627 private int numWorkers_;
3632
3635 ///
3636 /// Note that 'num_workers' is the preferred name, but if it is set to zero,
3637 /// we will still read the deprecated 'num_search_workers'.
3638 ///
3639 /// As of 2020-04-10, if you're using SAT via MPSolver (to solve integer
3640 /// programs) this field is overridden with a value of 8, if the field is not
3641 /// set *explicitly*. Thus, always set this field explicitly or via
3642 /// MPSolver::SetNumThreads().
3643 /// </summary>
3644 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3645 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3646 public int NumWorkers {
3647 get { if ((_hasBits5 & 32) != 0) { return numWorkers_; } else { return NumWorkersDefaultValue; } }
3648 set {
3649 _hasBits5 |= 32;
3650 numWorkers_ = value;
3651 }
3652 }
3654 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3655 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3656 public bool HasNumWorkers {
3657 get { return (_hasBits5 & 32) != 0; }
3658 }
3660 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3661 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3662 public void ClearNumWorkers() {
3663 _hasBits5 &= ~32;
3664 }
3665
3667 public const int NumSearchWorkersFieldNumber = 100;
3668 private readonly static int NumSearchWorkersDefaultValue = 0;
3669
3670 private int numSearchWorkers_;
3671 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3672 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3673 public int NumSearchWorkers {
3674 get { if ((_hasBits2 & 512) != 0) { return numSearchWorkers_; } else { return NumSearchWorkersDefaultValue; } }
3675 set {
3676 _hasBits2 |= 512;
3677 numSearchWorkers_ = value;
3678 }
3679 }
3681 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3682 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3683 public bool HasNumSearchWorkers {
3684 get { return (_hasBits2 & 512) != 0; }
3685 }
3687 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3688 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3689 public void ClearNumSearchWorkers() {
3690 _hasBits2 &= ~512;
3691 }
3694 public const int NumFullSubsolversFieldNumber = 294;
3695 private readonly static int NumFullSubsolversDefaultValue = 0;
3696
3697 private int numFullSubsolvers_;
3698 /// <summary>
3699 /// We distinguish subsolvers that consume a full thread, and the ones that are
3700 /// always interleaved. If left at zero, we will fix this with a default
3701 /// formula that depends on num_workers. But if you start modifying what runs,
3702 /// you might want to fix that to a given value depending on the num_workers
3703 /// you use.
3704 /// </summary>
3705 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3706 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3707 public int NumFullSubsolvers {
3708 get { if ((_hasBits7 & 4096) != 0) { return numFullSubsolvers_; } else { return NumFullSubsolversDefaultValue; } }
3709 set {
3710 _hasBits7 |= 4096;
3711 numFullSubsolvers_ = value;
3712 }
3713 }
3714 /// <summary>Gets whether the "num_full_subsolvers" field is set</summary>
3715 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3716 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3717 public bool HasNumFullSubsolvers {
3718 get { return (_hasBits7 & 4096) != 0; }
3721 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3722 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3723 public void ClearNumFullSubsolvers() {
3724 _hasBits7 &= ~4096;
3725 }
3726
3728 public const int SubsolversFieldNumber = 207;
3729 private static readonly pb::FieldCodec<string> _repeated_subsolvers_codec
3730 = pb::FieldCodec.ForString(1658);
3731 private readonly pbc::RepeatedField<string> subsolvers_ = new pbc::RepeatedField<string>();
3732 /// <summary>
3733 /// In multi-thread, the solver can be mainly seen as a portfolio of solvers
3734 /// with different parameters. This field indicates the names of the parameters
3735 /// that are used in multithread. This only applies to "full" subsolvers.
3736 ///
3737 /// See cp_model_search.cc to see a list of the names and the default value (if
3738 /// left empty) that looks like:
3739 /// - default_lp (linearization_level:1)
3740 /// - fixed (only if fixed search specified or scheduling)
3741 /// - no_lp (linearization_level:0)
3742 /// - max_lp (linearization_level:2)
3743 /// - pseudo_costs (only if objective, change search heuristic)
3744 /// - reduced_costs (only if objective, change search heuristic)
3745 /// - quick_restart (kind of probing)
3746 /// - quick_restart_no_lp (kind of probing with linearization_level:0)
3747 /// - lb_tree_search (to improve lower bound, MIP like tree search)
3748 /// - probing (continuous probing and shaving)
3749 ///
3750 /// Also, note that some set of parameters will be ignored if they do not make
3751 /// sense. For instance if there is no objective, pseudo_cost or reduced_cost
3752 /// search will be ignored. Core based search will only work if the objective
3753 /// has many terms. If there is no fixed strategy fixed will be ignored. And so
3754 /// on.
3755 ///
3756 /// The order is important, as only the first num_full_subsolvers will be
3757 /// scheduled. You can see in the log which one are selected for a given run.
3758 /// </summary>
3759 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3760 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3761 public pbc::RepeatedField<string> Subsolvers {
3762 get { return subsolvers_; }
3763 }
3764
3766 public const int ExtraSubsolversFieldNumber = 219;
3767 private static readonly pb::FieldCodec<string> _repeated_extraSubsolvers_codec
3768 = pb::FieldCodec.ForString(1754);
3769 private readonly pbc::RepeatedField<string> extraSubsolvers_ = new pbc::RepeatedField<string>();
3774 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3775 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3776 public pbc::RepeatedField<string> ExtraSubsolvers {
3777 get { return extraSubsolvers_; }
3778 }
3779
3781 public const int IgnoreSubsolversFieldNumber = 209;
3782 private static readonly pb::FieldCodec<string> _repeated_ignoreSubsolvers_codec
3783 = pb::FieldCodec.ForString(1674);
3784 private readonly pbc::RepeatedField<string> ignoreSubsolvers_ = new pbc::RepeatedField<string>();
3789 /// support '*' and '?'.
3790 ///
3791 /// The way this work is that we will only accept a name that match a filter
3792 /// pattern (if non-empty) and do not match an ignore pattern. Note also that
3793 /// these fields work on LNS or LS names even if these are currently not
3794 /// specified via the subsolvers field.
3795 /// </summary>
3796 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3797 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3798 public pbc::RepeatedField<string> IgnoreSubsolvers {
3799 get { return ignoreSubsolvers_; }
3800 }
3801
3803 public const int FilterSubsolversFieldNumber = 293;
3804 private static readonly pb::FieldCodec<string> _repeated_filterSubsolvers_codec
3805 = pb::FieldCodec.ForString(2346);
3806 private readonly pbc::RepeatedField<string> filterSubsolvers_ = new pbc::RepeatedField<string>();
3807 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3808 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3809 public pbc::RepeatedField<string> FilterSubsolvers {
3810 get { return filterSubsolvers_; }
3811 }
3812
3814 public const int SubsolverParamsFieldNumber = 210;
3815 private static readonly pb::FieldCodec<global::Google.OrTools.Sat.SatParameters> _repeated_subsolverParams_codec
3816 = pb::FieldCodec.ForMessage(1682, global::Google.OrTools.Sat.SatParameters.Parser);
3817 private readonly pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters> subsolverParams_ = new pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters>();
3825 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3826 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3827 public pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters> SubsolverParams {
3828 get { return subsolverParams_; }
3829 }
3830
3832 public const int InterleaveSearchFieldNumber = 136;
3833 private readonly static bool InterleaveSearchDefaultValue = false;
3834
3835 private bool interleaveSearch_;
3838 /// strategy and distribute the work amongst num_workers.
3839 ///
3840 /// The search is deterministic (independently of num_workers!), and we
3841 /// schedule and wait for interleave_batch_size task to be completed before
3842 /// synchronizing and scheduling the next batch of tasks.
3843 /// </summary>
3844 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3845 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3846 public bool InterleaveSearch {
3847 get { if ((_hasBits3 & 512) != 0) { return interleaveSearch_; } else { return InterleaveSearchDefaultValue; } }
3848 set {
3849 _hasBits3 |= 512;
3850 interleaveSearch_ = value;
3851 }
3852 }
3854 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3855 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3857 get { return (_hasBits3 & 512) != 0; }
3858 }
3859
3860 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3861 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3862 public void ClearInterleaveSearch() {
3863 _hasBits3 &= ~512;
3864 }
3865
3867 public const int InterleaveBatchSizeFieldNumber = 134;
3868 private readonly static int InterleaveBatchSizeDefaultValue = 0;
3869
3870 private int interleaveBatchSize_;
3871 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3872 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3873 public int InterleaveBatchSize {
3874 get { if ((_hasBits3 & 128) != 0) { return interleaveBatchSize_; } else { return InterleaveBatchSizeDefaultValue; } }
3875 set {
3876 _hasBits3 |= 128;
3877 interleaveBatchSize_ = value;
3878 }
3879 }
3881 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3882 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3883 public bool HasInterleaveBatchSize {
3884 get { return (_hasBits3 & 128) != 0; }
3885 }
3886 /// <summary>Clears the value of the "interleave_batch_size" field</summary>
3887 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3888 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3889 public void ClearInterleaveBatchSize() {
3890 _hasBits3 &= ~128;
3891 }
3894 public const int ShareObjectiveBoundsFieldNumber = 113;
3895 private readonly static bool ShareObjectiveBoundsDefaultValue = true;
3896
3897 private bool shareObjectiveBounds_;
3901 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3902 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3904 get { if ((_hasBits2 & 524288) != 0) { return shareObjectiveBounds_; } else { return ShareObjectiveBoundsDefaultValue; } }
3905 set {
3906 _hasBits2 |= 524288;
3907 shareObjectiveBounds_ = value;
3908 }
3909 }
3910
3911 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3912 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3914 get { return (_hasBits2 & 524288) != 0; }
3915 }
3916
3917 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3918 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3920 _hasBits2 &= ~524288;
3921 }
3922
3924 public const int ShareLevelZeroBoundsFieldNumber = 114;
3925 private readonly static bool ShareLevelZeroBoundsDefaultValue = true;
3926
3927 private bool shareLevelZeroBounds_;
3931 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3932 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3934 get { if ((_hasBits2 & 1048576) != 0) { return shareLevelZeroBounds_; } else { return ShareLevelZeroBoundsDefaultValue; } }
3935 set {
3936 _hasBits2 |= 1048576;
3937 shareLevelZeroBounds_ = value;
3938 }
3939 }
3940
3941 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3942 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3944 get { return (_hasBits2 & 1048576) != 0; }
3945 }
3946
3947 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3948 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3950 _hasBits2 &= ~1048576;
3951 }
3952
3954 public const int ShareBinaryClausesFieldNumber = 203;
3955 private readonly static bool ShareBinaryClausesDefaultValue = true;
3956
3957 private bool shareBinaryClauses_;
3961 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3962 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3964 get { if ((_hasBits5 & 4) != 0) { return shareBinaryClauses_; } else { return ShareBinaryClausesDefaultValue; } }
3965 set {
3966 _hasBits5 |= 4;
3967 shareBinaryClauses_ = value;
3968 }
3969 }
3970
3971 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3972 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3974 get { return (_hasBits5 & 4) != 0; }
3975 }
3976
3977 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3978 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3980 _hasBits5 &= ~4;
3981 }
3982
3984 public const int ShareGlueClausesFieldNumber = 285;
3985 private readonly static bool ShareGlueClausesDefaultValue = false;
3986
3987 private bool shareGlueClauses_;
3992 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3993 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3994 public bool ShareGlueClauses {
3995 get { if ((_hasBits7 & 16) != 0) { return shareGlueClauses_; } else { return ShareGlueClausesDefaultValue; } }
3996 set {
3997 _hasBits7 |= 16;
3998 shareGlueClauses_ = value;
3999 }
4000 }
4002 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4003 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4004 public bool HasShareGlueClauses {
4005 get { return (_hasBits7 & 16) != 0; }
4006 }
4008 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4009 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4010 public void ClearShareGlueClauses() {
4011 _hasBits7 &= ~16;
4012 }
4013
4015 public const int MinimizeSharedClausesFieldNumber = 300;
4016 private readonly static bool MinimizeSharedClausesDefaultValue = true;
4017
4018 private bool minimizeSharedClauses_;
4023 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4024 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4025 public bool MinimizeSharedClauses {
4026 get { if ((_hasBits7 & 262144) != 0) { return minimizeSharedClauses_; } else { return MinimizeSharedClausesDefaultValue; } }
4027 set {
4028 _hasBits7 |= 262144;
4029 minimizeSharedClauses_ = value;
4030 }
4031 }
4033 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4034 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4035 public bool HasMinimizeSharedClauses {
4036 get { return (_hasBits7 & 262144) != 0; }
4037 }
4039 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4040 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4041 public void ClearMinimizeSharedClauses() {
4042 _hasBits7 &= ~262144;
4043 }
4044
4046 public const int DebugPostsolveWithFullSolverFieldNumber = 162;
4047 private readonly static bool DebugPostsolveWithFullSolverDefaultValue = false;
4048
4049 private bool debugPostsolveWithFullSolver_;
4055 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4056 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4057 public bool DebugPostsolveWithFullSolver {
4058 get { if ((_hasBits3 & 268435456) != 0) { return debugPostsolveWithFullSolver_; } else { return DebugPostsolveWithFullSolverDefaultValue; } }
4059 set {
4060 _hasBits3 |= 268435456;
4061 debugPostsolveWithFullSolver_ = value;
4062 }
4063 }
4065 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4066 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4068 get { return (_hasBits3 & 268435456) != 0; }
4069 }
4071 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4072 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4073 public void ClearDebugPostsolveWithFullSolver() {
4074 _hasBits3 &= ~268435456;
4075 }
4078 public const int DebugMaxNumPresolveOperationsFieldNumber = 151;
4079 private readonly static int DebugMaxNumPresolveOperationsDefaultValue = 0;
4080
4081 private int debugMaxNumPresolveOperations_;
4086 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4087 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4089 get { if ((_hasBits3 & 262144) != 0) { return debugMaxNumPresolveOperations_; } else { return DebugMaxNumPresolveOperationsDefaultValue; } }
4090 set {
4091 _hasBits3 |= 262144;
4092 debugMaxNumPresolveOperations_ = value;
4093 }
4094 }
4096 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4097 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4099 get { return (_hasBits3 & 262144) != 0; }
4100 }
4102 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4103 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4105 _hasBits3 &= ~262144;
4106 }
4107
4109 public const int DebugCrashOnBadHintFieldNumber = 195;
4110 private readonly static bool DebugCrashOnBadHintDefaultValue = false;
4111
4112 private bool debugCrashOnBadHint_;
4116 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4117 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4119 get { if ((_hasBits4 & 67108864) != 0) { return debugCrashOnBadHint_; } else { return DebugCrashOnBadHintDefaultValue; } }
4120 set {
4121 _hasBits4 |= 67108864;
4122 debugCrashOnBadHint_ = value;
4123 }
4124 }
4125
4126 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4127 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4129 get { return (_hasBits4 & 67108864) != 0; }
4130 }
4131
4132 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4133 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4135 _hasBits4 &= ~67108864;
4136 }
4137
4140 private readonly static bool DebugCrashIfPresolveBreaksHintDefaultValue = false;
4141
4142 private bool debugCrashIfPresolveBreaksHint_;
4146 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4147 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4149 get { if ((_hasBits7 & 16777216) != 0) { return debugCrashIfPresolveBreaksHint_; } else { return DebugCrashIfPresolveBreaksHintDefaultValue; } }
4150 set {
4151 _hasBits7 |= 16777216;
4152 debugCrashIfPresolveBreaksHint_ = value;
4153 }
4154 }
4155
4156 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4157 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4159 get { return (_hasBits7 & 16777216) != 0; }
4160 }
4161
4162 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4163 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4165 _hasBits7 &= ~16777216;
4166 }
4167
4169 public const int UseOptimizationHintsFieldNumber = 35;
4170 private readonly static bool UseOptimizationHintsDefaultValue = true;
4171
4172 private bool useOptimizationHints_;
4178 /// </summary>
4179 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4180 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4181 public bool UseOptimizationHints {
4182 get { if ((_hasBits0 & 65536) != 0) { return useOptimizationHints_; } else { return UseOptimizationHintsDefaultValue; } }
4183 set {
4184 _hasBits0 |= 65536;
4185 useOptimizationHints_ = value;
4186 }
4187 }
4188 /// <summary>Gets whether the "use_optimization_hints" field is set</summary>
4189 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4190 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4191 public bool HasUseOptimizationHints {
4192 get { return (_hasBits0 & 65536) != 0; }
4193 }
4194 /// <summary>Clears the value of the "use_optimization_hints" field</summary>
4195 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4196 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4197 public void ClearUseOptimizationHints() {
4198 _hasBits0 &= ~65536;
4200
4202 public const int CoreMinimizationLevelFieldNumber = 50;
4203 private readonly static int CoreMinimizationLevelDefaultValue = 2;
4204
4205 private int coreMinimizationLevel_;
4211 /// </summary>
4212 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4213 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4214 public int CoreMinimizationLevel {
4215 get { if ((_hasBits0 & 268435456) != 0) { return coreMinimizationLevel_; } else { return CoreMinimizationLevelDefaultValue; } }
4216 set {
4217 _hasBits0 |= 268435456;
4218 coreMinimizationLevel_ = value;
4219 }
4220 }
4221 /// <summary>Gets whether the "core_minimization_level" field is set</summary>
4222 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4223 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4224 public bool HasCoreMinimizationLevel {
4225 get { return (_hasBits0 & 268435456) != 0; }
4226 }
4227 /// <summary>Clears the value of the "core_minimization_level" field</summary>
4228 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4229 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4230 public void ClearCoreMinimizationLevel() {
4231 _hasBits0 &= ~268435456;
4233
4235 public const int FindMultipleCoresFieldNumber = 84;
4236 private readonly static bool FindMultipleCoresDefaultValue = true;
4237
4238 private bool findMultipleCores_;
4243 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4244 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4245 public bool FindMultipleCores {
4246 get { if ((_hasBits1 & 134217728) != 0) { return findMultipleCores_; } else { return FindMultipleCoresDefaultValue; } }
4247 set {
4248 _hasBits1 |= 134217728;
4249 findMultipleCores_ = value;
4250 }
4251 }
4253 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4254 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4255 public bool HasFindMultipleCores {
4256 get { return (_hasBits1 & 134217728) != 0; }
4257 }
4259 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4260 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4261 public void ClearFindMultipleCores() {
4262 _hasBits1 &= ~134217728;
4263 }
4264
4266 public const int CoverOptimizationFieldNumber = 89;
4267 private readonly static bool CoverOptimizationDefaultValue = true;
4268
4269 private bool coverOptimization_;
4275 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4276 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4277 public bool CoverOptimization {
4278 get { if ((_hasBits2 & 1) != 0) { return coverOptimization_; } else { return CoverOptimizationDefaultValue; } }
4279 set {
4280 _hasBits2 |= 1;
4281 coverOptimization_ = value;
4282 }
4283 }
4285 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4286 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4287 public bool HasCoverOptimization {
4288 get { return (_hasBits2 & 1) != 0; }
4289 }
4291 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4292 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4293 public void ClearCoverOptimization() {
4294 _hasBits2 &= ~1;
4295 }
4298 public const int MaxSatAssumptionOrderFieldNumber = 51;
4299 private readonly static global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder MaxSatAssumptionOrderDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder.DefaultAssumptionOrder;
4300
4301 private global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder maxSatAssumptionOrder_;
4302 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4303 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4304 public global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder MaxSatAssumptionOrder {
4305 get { if ((_hasBits0 & 536870912) != 0) { return maxSatAssumptionOrder_; } else { return MaxSatAssumptionOrderDefaultValue; } }
4306 set {
4307 _hasBits0 |= 536870912;
4308 maxSatAssumptionOrder_ = value;
4309 }
4310 }
4312 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4313 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4314 public bool HasMaxSatAssumptionOrder {
4315 get { return (_hasBits0 & 536870912) != 0; }
4316 }
4317 /// <summary>Clears the value of the "max_sat_assumption_order" field</summary>
4318 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4319 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4320 public void ClearMaxSatAssumptionOrder() {
4321 _hasBits0 &= ~536870912;
4322 }
4325 public const int MaxSatReverseAssumptionOrderFieldNumber = 52;
4326 private readonly static bool MaxSatReverseAssumptionOrderDefaultValue = false;
4327
4328 private bool maxSatReverseAssumptionOrder_;
4333 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4334 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4335 public bool MaxSatReverseAssumptionOrder {
4336 get { if ((_hasBits0 & 1073741824) != 0) { return maxSatReverseAssumptionOrder_; } else { return MaxSatReverseAssumptionOrderDefaultValue; } }
4337 set {
4338 _hasBits0 |= 1073741824;
4339 maxSatReverseAssumptionOrder_ = value;
4340 }
4341 }
4343 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4344 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4346 get { return (_hasBits0 & 1073741824) != 0; }
4347 }
4349 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4350 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4351 public void ClearMaxSatReverseAssumptionOrder() {
4352 _hasBits0 &= ~1073741824;
4353 }
4354
4356 public const int MaxSatStratificationFieldNumber = 53;
4357 private readonly static global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm MaxSatStratificationDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm.StratificationDescent;
4358
4359 private global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm maxSatStratification_;
4360 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4361 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4362 public global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm MaxSatStratification {
4363 get { if ((_hasBits0 & -2147483648) != 0) { return maxSatStratification_; } else { return MaxSatStratificationDefaultValue; } }
4364 set {
4365 _hasBits0 |= -2147483648;
4366 maxSatStratification_ = value;
4367 }
4368 }
4370 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4371 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4372 public bool HasMaxSatStratification {
4373 get { return (_hasBits0 & -2147483648) != 0; }
4374 }
4375 /// <summary>Clears the value of the "max_sat_stratification" field</summary>
4376 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4377 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4378 public void ClearMaxSatStratification() {
4379 _hasBits0 &= ~-2147483648;
4380 }
4383 public const int PropagationLoopDetectionFactorFieldNumber = 221;
4384 private readonly static double PropagationLoopDetectionFactorDefaultValue = 10D;
4385
4386 private double propagationLoopDetectionFactor_;
4392 /// feature.
4393 ///
4394 /// TODO(user): Setting this to something like 10 helps in most cases, but the
4395 /// code is currently buggy and can cause the solve to enter a bad state where
4396 /// no progress is made.
4397 /// </summary>
4398 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4399 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4400 public double PropagationLoopDetectionFactor {
4401 get { if ((_hasBits5 & 4096) != 0) { return propagationLoopDetectionFactor_; } else { return PropagationLoopDetectionFactorDefaultValue; } }
4402 set {
4403 _hasBits5 |= 4096;
4404 propagationLoopDetectionFactor_ = value;
4405 }
4406 }
4408 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4409 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4411 get { return (_hasBits5 & 4096) != 0; }
4412 }
4414 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4415 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4417 _hasBits5 &= ~4096;
4418 }
4419
4421 public const int UsePrecedencesInDisjunctiveConstraintFieldNumber = 74;
4422 private readonly static bool UsePrecedencesInDisjunctiveConstraintDefaultValue = true;
4423
4424 private bool usePrecedencesInDisjunctiveConstraint_;
4431 /// provided that the start time for all task was currently zero.
4432 ///
4433 /// This always result in better propagation, but it is usually slow, so
4434 /// depending on the problem, turning this off may lead to a faster solution.
4435 /// </summary>
4436 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4437 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4439 get { if ((_hasBits1 & 262144) != 0) { return usePrecedencesInDisjunctiveConstraint_; } else { return UsePrecedencesInDisjunctiveConstraintDefaultValue; } }
4440 set {
4441 _hasBits1 |= 262144;
4442 usePrecedencesInDisjunctiveConstraint_ = value;
4443 }
4444 }
4446 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4447 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4449 get { return (_hasBits1 & 262144) != 0; }
4450 }
4452 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4453 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4455 _hasBits1 &= ~262144;
4456 }
4457
4459 public const int MaxSizeToCreatePrecedenceLiteralsInDisjunctiveFieldNumber = 229;
4460 private readonly static int MaxSizeToCreatePrecedenceLiteralsInDisjunctiveDefaultValue = 60;
4461
4462 private int maxSizeToCreatePrecedenceLiteralsInDisjunctive_;
4470 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4471 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4473 get { if ((_hasBits5 & 1048576) != 0) { return maxSizeToCreatePrecedenceLiteralsInDisjunctive_; } else { return MaxSizeToCreatePrecedenceLiteralsInDisjunctiveDefaultValue; } }
4474 set {
4475 _hasBits5 |= 1048576;
4476 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = value;
4477 }
4478 }
4480 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4481 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4483 get { return (_hasBits5 & 1048576) != 0; }
4484 }
4486 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4487 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4489 _hasBits5 &= ~1048576;
4490 }
4493 public const int UseStrongPropagationInDisjunctiveFieldNumber = 230;
4494 private readonly static bool UseStrongPropagationInDisjunctiveDefaultValue = false;
4495
4496 private bool useStrongPropagationInDisjunctive_;
4500 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4501 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4503 get { if ((_hasBits5 & 2097152) != 0) { return useStrongPropagationInDisjunctive_; } else { return UseStrongPropagationInDisjunctiveDefaultValue; } }
4504 set {
4505 _hasBits5 |= 2097152;
4506 useStrongPropagationInDisjunctive_ = value;
4507 }
4508 }
4510 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4511 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4512 public bool HasUseStrongPropagationInDisjunctive {
4513 get { return (_hasBits5 & 2097152) != 0; }
4516 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4517 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4518 public void ClearUseStrongPropagationInDisjunctive() {
4519 _hasBits5 &= ~2097152;
4521
4523 public const int UseDynamicPrecedenceInDisjunctiveFieldNumber = 263;
4524 private readonly static bool UseDynamicPrecedenceInDisjunctiveDefaultValue = false;
4526 private bool useDynamicPrecedenceInDisjunctive_;
4534 /// </summary>
4535 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4536 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4538 get { if ((_hasBits6 & 16384) != 0) { return useDynamicPrecedenceInDisjunctive_; } else { return UseDynamicPrecedenceInDisjunctiveDefaultValue; } }
4539 set {
4540 _hasBits6 |= 16384;
4541 useDynamicPrecedenceInDisjunctive_ = value;
4542 }
4543 }
4544 /// <summary>Gets whether the "use_dynamic_precedence_in_disjunctive" field is set</summary>
4545 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4546 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4548 get { return (_hasBits6 & 16384) != 0; }
4549 }
4550 /// <summary>Clears the value of the "use_dynamic_precedence_in_disjunctive" field</summary>
4551 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4552 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4554 _hasBits6 &= ~16384;
4556
4558 public const int UseDynamicPrecedenceInCumulativeFieldNumber = 268;
4559 private readonly static bool UseDynamicPrecedenceInCumulativeDefaultValue = false;
4560
4561 private bool useDynamicPrecedenceInCumulative_;
4562 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4563 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4564 public bool UseDynamicPrecedenceInCumulative {
4565 get { if ((_hasBits6 & 524288) != 0) { return useDynamicPrecedenceInCumulative_; } else { return UseDynamicPrecedenceInCumulativeDefaultValue; } }
4566 set {
4567 _hasBits6 |= 524288;
4568 useDynamicPrecedenceInCumulative_ = value;
4569 }
4572 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4573 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4574 public bool HasUseDynamicPrecedenceInCumulative {
4575 get { return (_hasBits6 & 524288) != 0; }
4576 }
4577
4578 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4579 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4581 _hasBits6 &= ~524288;
4582 }
4583
4585 public const int UseOverloadCheckerInCumulativeFieldNumber = 78;
4586 private readonly static bool UseOverloadCheckerInCumulativeDefaultValue = false;
4587
4588 private bool useOverloadCheckerInCumulative_;
4589
4597 /// </summary>
4598 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4599 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4600 public bool UseOverloadCheckerInCumulative {
4601 get { if ((_hasBits1 & 4194304) != 0) { return useOverloadCheckerInCumulative_; } else { return UseOverloadCheckerInCumulativeDefaultValue; } }
4602 set {
4603 _hasBits1 |= 4194304;
4604 useOverloadCheckerInCumulative_ = value;
4605 }
4606 }
4607 /// <summary>Gets whether the "use_overload_checker_in_cumulative" field is set</summary>
4608 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4609 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4611 get { return (_hasBits1 & 4194304) != 0; }
4612 }
4613 /// <summary>Clears the value of the "use_overload_checker_in_cumulative" field</summary>
4614 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4615 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4617 _hasBits1 &= ~4194304;
4619
4621 public const int UseConservativeScaleOverloadCheckerFieldNumber = 286;
4622 private readonly static bool UseConservativeScaleOverloadCheckerDefaultValue = false;
4623
4624 private bool useConservativeScaleOverloadChecker_;
4634 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4635 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4637 get { if ((_hasBits7 & 32) != 0) { return useConservativeScaleOverloadChecker_; } else { return UseConservativeScaleOverloadCheckerDefaultValue; } }
4638 set {
4639 _hasBits7 |= 32;
4640 useConservativeScaleOverloadChecker_ = value;
4641 }
4642 }
4644 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4645 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4647 get { return (_hasBits7 & 32) != 0; }
4648 }
4650 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4651 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4653 _hasBits7 &= ~32;
4654 }
4658 private readonly static bool UseTimetableEdgeFindingInCumulativeDefaultValue = false;
4659
4660 private bool useTimetableEdgeFindingInCumulative_;
4670 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4671 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4673 get { if ((_hasBits1 & 8388608) != 0) { return useTimetableEdgeFindingInCumulative_; } else { return UseTimetableEdgeFindingInCumulativeDefaultValue; } }
4674 set {
4675 _hasBits1 |= 8388608;
4676 useTimetableEdgeFindingInCumulative_ = value;
4677 }
4678 }
4680 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4681 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4683 get { return (_hasBits1 & 8388608) != 0; }
4684 }
4686 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4687 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4689 _hasBits1 &= ~8388608;
4690 }
4691
4694 private readonly static int MaxNumIntervalsForTimetableEdgeFindingDefaultValue = 100;
4695
4696 private int maxNumIntervalsForTimetableEdgeFinding_;
4701 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4702 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4704 get { if ((_hasBits6 & 2048) != 0) { return maxNumIntervalsForTimetableEdgeFinding_; } else { return MaxNumIntervalsForTimetableEdgeFindingDefaultValue; } }
4705 set {
4706 _hasBits6 |= 2048;
4707 maxNumIntervalsForTimetableEdgeFinding_ = value;
4709 }
4711 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4712 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4713 public bool HasMaxNumIntervalsForTimetableEdgeFinding {
4714 get { return (_hasBits6 & 2048) != 0; }
4715 }
4717 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4718 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4720 _hasBits6 &= ~2048;
4721 }
4722
4725 private readonly static bool UseHardPrecedencesInCumulativeDefaultValue = false;
4726
4727 private bool useHardPrecedencesInCumulative_;
4736 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4737 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4738 public bool UseHardPrecedencesInCumulative {
4739 get { if ((_hasBits5 & 256) != 0) { return useHardPrecedencesInCumulative_; } else { return UseHardPrecedencesInCumulativeDefaultValue; } }
4740 set {
4741 _hasBits5 |= 256;
4742 useHardPrecedencesInCumulative_ = value;
4743 }
4744 }
4746 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4747 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4748 public bool HasUseHardPrecedencesInCumulative {
4749 get { return (_hasBits5 & 256) != 0; }
4750 }
4752 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4753 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4754 public void ClearUseHardPrecedencesInCumulative() {
4755 _hasBits5 &= ~256;
4756 }
4757
4758
4759 public const int ExploitAllPrecedencesFieldNumber = 220;
4760 private readonly static bool ExploitAllPrecedencesDefaultValue = false;
4761
4762 private bool exploitAllPrecedences_;
4763 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4764 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4765 public bool ExploitAllPrecedences {
4766 get { if ((_hasBits5 & 2048) != 0) { return exploitAllPrecedences_; } else { return ExploitAllPrecedencesDefaultValue; } }
4767 set {
4768 _hasBits5 |= 2048;
4769 exploitAllPrecedences_ = value;
4770 }
4771 }
4773 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4774 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4776 get { return (_hasBits5 & 2048) != 0; }
4777 }
4779 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4780 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4781 public void ClearExploitAllPrecedences() {
4782 _hasBits5 &= ~2048;
4783 }
4784
4785 /// <summary>Field number for the "use_disjunctive_constraint_in_cumulative" field.</summary>
4787 private readonly static bool UseDisjunctiveConstraintInCumulativeDefaultValue = true;
4788
4789 private bool useDisjunctiveConstraintInCumulative_;
4791 /// When this is true, the cumulative constraint is reinforced with propagators
4792 /// from the disjunctive constraint to improve the inference on a set of tasks
4793 /// that are disjunctive at the root of the problem. This additional level
4794 /// supplements the default level of reasoning.
4795 ///
4796 /// Propagators of the cumulative constraint will not be used at all if all the
4797 /// tasks are disjunctive at root node.
4798 ///
4799 /// This always result in better propagation, but it is usually slow, so
4800 /// depending on the problem, turning this off may lead to a faster solution.
4801 /// </summary>
4802 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4803 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4805 get { if ((_hasBits1 & 16777216) != 0) { return useDisjunctiveConstraintInCumulative_; } else { return UseDisjunctiveConstraintInCumulativeDefaultValue; } }
4806 set {
4807 _hasBits1 |= 16777216;
4808 useDisjunctiveConstraintInCumulative_ = value;
4809 }
4810 }
4812 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4813 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4815 get { return (_hasBits1 & 16777216) != 0; }
4816 }
4818 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4819 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4821 _hasBits1 &= ~16777216;
4822 }
4825 public const int UseTimetablingInNoOverlap2DFieldNumber = 200;
4826 private readonly static bool UseTimetablingInNoOverlap2DDefaultValue = false;
4827
4828 private bool useTimetablingInNoOverlap2D_;
4836 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4837 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4838 public bool UseTimetablingInNoOverlap2D {
4839 get { if ((_hasBits4 & -2147483648) != 0) { return useTimetablingInNoOverlap2D_; } else { return UseTimetablingInNoOverlap2DDefaultValue; } }
4840 set {
4841 _hasBits4 |= -2147483648;
4842 useTimetablingInNoOverlap2D_ = value;
4844 }
4846 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4847 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4848 public bool HasUseTimetablingInNoOverlap2D {
4849 get { return (_hasBits4 & -2147483648) != 0; }
4850 }
4852 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4853 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4854 public void ClearUseTimetablingInNoOverlap2D() {
4855 _hasBits4 &= ~-2147483648;
4856 }
4857
4860 private readonly static bool UseEnergeticReasoningInNoOverlap2DDefaultValue = false;
4861
4862 private bool useEnergeticReasoningInNoOverlap2D_;
4868 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4869 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4871 get { if ((_hasBits5 & 64) != 0) { return useEnergeticReasoningInNoOverlap2D_; } else { return UseEnergeticReasoningInNoOverlap2DDefaultValue; } }
4872 set {
4873 _hasBits5 |= 64;
4874 useEnergeticReasoningInNoOverlap2D_ = value;
4875 }
4876 }
4877 /// <summary>Gets whether the "use_energetic_reasoning_in_no_overlap_2d" field is set</summary>
4878 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4879 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4881 get { return (_hasBits5 & 64) != 0; }
4882 }
4884 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4885 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4886 public void ClearUseEnergeticReasoningInNoOverlap2D() {
4887 _hasBits5 &= ~64;
4888 }
4889
4890
4891 public const int UseAreaEnergeticReasoningInNoOverlap2DFieldNumber = 271;
4892 private readonly static bool UseAreaEnergeticReasoningInNoOverlap2DDefaultValue = false;
4894 private bool useAreaEnergeticReasoningInNoOverlap2D_;
4896
4900 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4901 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4903 get { if ((_hasBits6 & 4194304) != 0) { return useAreaEnergeticReasoningInNoOverlap2D_; } else { return UseAreaEnergeticReasoningInNoOverlap2DDefaultValue; } }
4904 set {
4905 _hasBits6 |= 4194304;
4906 useAreaEnergeticReasoningInNoOverlap2D_ = value;
4907 }
4908 }
4909 /// <summary>Gets whether the "use_area_energetic_reasoning_in_no_overlap_2d" field is set</summary>
4910 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4911 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4913 get { return (_hasBits6 & 4194304) != 0; }
4914 }
4916 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4917 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4918 public void ClearUseAreaEnergeticReasoningInNoOverlap2D() {
4919 _hasBits6 &= ~4194304;
4920 }
4921
4922
4923 public const int UseTryEdgeReasoningInNoOverlap2DFieldNumber = 299;
4924 private readonly static bool UseTryEdgeReasoningInNoOverlap2DDefaultValue = false;
4926 private bool useTryEdgeReasoningInNoOverlap2D_;
4927 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4928 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4930 get { if ((_hasBits7 & 131072) != 0) { return useTryEdgeReasoningInNoOverlap2D_; } else { return UseTryEdgeReasoningInNoOverlap2DDefaultValue; } }
4931 set {
4932 _hasBits7 |= 131072;
4933 useTryEdgeReasoningInNoOverlap2D_ = value;
4934 }
4935 }
4937 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4938 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4939 public bool HasUseTryEdgeReasoningInNoOverlap2D {
4940 get { return (_hasBits7 & 131072) != 0; }
4943 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4944 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4945 public void ClearUseTryEdgeReasoningInNoOverlap2D() {
4946 _hasBits7 &= ~131072;
4947 }
4948
4950 public const int MaxPairsPairwiseReasoningInNoOverlap2DFieldNumber = 276;
4951 private readonly static int MaxPairsPairwiseReasoningInNoOverlap2DDefaultValue = 1250;
4952
4953 private int maxPairsPairwiseReasoningInNoOverlap2D_;
4954
4957 /// intervals.
4958 /// </summary>
4959 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4960 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4962 get { if ((_hasBits6 & 134217728) != 0) { return maxPairsPairwiseReasoningInNoOverlap2D_; } else { return MaxPairsPairwiseReasoningInNoOverlap2DDefaultValue; } }
4963 set {
4964 _hasBits6 |= 134217728;
4965 maxPairsPairwiseReasoningInNoOverlap2D_ = value;
4966 }
4967 }
4968 /// <summary>Gets whether the "max_pairs_pairwise_reasoning_in_no_overlap_2d" field is set</summary>
4969 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4970 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4972 get { return (_hasBits6 & 134217728) != 0; }
4973 }
4975 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4976 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4977 public void ClearMaxPairsPairwiseReasoningInNoOverlap2D() {
4978 _hasBits6 &= ~134217728;
4979 }
4980
4981
4982 public const int MaximumRegionsToSplitInDisconnectedNoOverlap2DFieldNumber = 315;
4983 private readonly static int MaximumRegionsToSplitInDisconnectedNoOverlap2DDefaultValue = 0;
4985 private int maximumRegionsToSplitInDisconnectedNoOverlap2D_;
4987
4998 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4999 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5001 get { if ((_hasBits8 & 2) != 0) { return maximumRegionsToSplitInDisconnectedNoOverlap2D_; } else { return MaximumRegionsToSplitInDisconnectedNoOverlap2DDefaultValue; } }
5002 set {
5003 _hasBits8 |= 2;
5004 maximumRegionsToSplitInDisconnectedNoOverlap2D_ = value;
5005 }
5006 }
5007
5008 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5009 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5011 get { return (_hasBits8 & 2) != 0; }
5012 }
5013
5014 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5015 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5017 _hasBits8 &= ~2;
5018 }
5019
5022 private readonly static bool UseDualSchedulingHeuristicsDefaultValue = true;
5023
5024 private bool useDualSchedulingHeuristics_;
5030 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5031 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5032 public bool UseDualSchedulingHeuristics {
5033 get { if ((_hasBits5 & 128) != 0) { return useDualSchedulingHeuristics_; } else { return UseDualSchedulingHeuristicsDefaultValue; } }
5034 set {
5035 _hasBits5 |= 128;
5036 useDualSchedulingHeuristics_ = value;
5037 }
5038 }
5039 /// <summary>Gets whether the "use_dual_scheduling_heuristics" field is set</summary>
5040 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5041 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5042 public bool HasUseDualSchedulingHeuristics {
5043 get { return (_hasBits5 & 128) != 0; }
5044 }
5046 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5047 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5048 public void ClearUseDualSchedulingHeuristics() {
5049 _hasBits5 &= ~128;
5050 }
5051
5052
5053 public const int UseAllDifferentForCircuitFieldNumber = 311;
5054 private readonly static bool UseAllDifferentForCircuitDefaultValue = false;
5056 private bool useAllDifferentForCircuit_;
5058
5061 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5062 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5063 public bool UseAllDifferentForCircuit {
5064 get { if ((_hasBits7 & 536870912) != 0) { return useAllDifferentForCircuit_; } else { return UseAllDifferentForCircuitDefaultValue; } }
5065 set {
5066 _hasBits7 |= 536870912;
5067 useAllDifferentForCircuit_ = value;
5068 }
5069 }
5071 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5072 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5073 public bool HasUseAllDifferentForCircuit {
5074 get { return (_hasBits7 & 536870912) != 0; }
5075 }
5077 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5078 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5079 public void ClearUseAllDifferentForCircuit() {
5080 _hasBits7 &= ~536870912;
5082
5084 public const int RoutingCutSubsetSizeForBinaryRelationBoundFieldNumber = 312;
5085 private readonly static int RoutingCutSubsetSizeForBinaryRelationBoundDefaultValue = 0;
5086
5087 private int routingCutSubsetSizeForBinaryRelationBound_;
5090
5098 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5099 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5101 get { if ((_hasBits7 & 1073741824) != 0) { return routingCutSubsetSizeForBinaryRelationBound_; } else { return RoutingCutSubsetSizeForBinaryRelationBoundDefaultValue; } }
5102 set {
5103 _hasBits7 |= 1073741824;
5104 routingCutSubsetSizeForBinaryRelationBound_ = value;
5105 }
5106 }
5108 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5109 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5110 public bool HasRoutingCutSubsetSizeForBinaryRelationBound {
5111 get { return (_hasBits7 & 1073741824) != 0; }
5114 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5115 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5116 public void ClearRoutingCutSubsetSizeForBinaryRelationBound() {
5117 _hasBits7 &= ~1073741824;
5119
5121 public const int RoutingCutSubsetSizeForTightBinaryRelationBoundFieldNumber = 313;
5122 private readonly static int RoutingCutSubsetSizeForTightBinaryRelationBoundDefaultValue = 0;
5124 private int routingCutSubsetSizeForTightBinaryRelationBound_;
5130 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5131 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5133 get { if ((_hasBits7 & -2147483648) != 0) { return routingCutSubsetSizeForTightBinaryRelationBound_; } else { return RoutingCutSubsetSizeForTightBinaryRelationBoundDefaultValue; } }
5134 set {
5135 _hasBits7 |= -2147483648;
5136 routingCutSubsetSizeForTightBinaryRelationBound_ = value;
5137 }
5138 }
5139 /// <summary>Gets whether the "routing_cut_subset_size_for_tight_binary_relation_bound" field is set</summary>
5140 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5141 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5143 get { return (_hasBits7 & -2147483648) != 0; }
5144 }
5146 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5147 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5148 public void ClearRoutingCutSubsetSizeForTightBinaryRelationBound() {
5149 _hasBits7 &= ~-2147483648;
5150 }
5151
5152
5153 public const int RoutingCutDpEffortFieldNumber = 314;
5154 private readonly static double RoutingCutDpEffortDefaultValue = 1e+07D;
5156 private double routingCutDpEffort_;
5158
5163 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5164 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5165 public double RoutingCutDpEffort {
5166 get { if ((_hasBits8 & 1) != 0) { return routingCutDpEffort_; } else { return RoutingCutDpEffortDefaultValue; } }
5167 set {
5168 _hasBits8 |= 1;
5169 routingCutDpEffort_ = value;
5170 }
5173 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5174 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5175 public bool HasRoutingCutDpEffort {
5176 get { return (_hasBits8 & 1) != 0; }
5177 }
5178
5179 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5180 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5182 _hasBits8 &= ~1;
5183 }
5184
5186 public const int SearchBranchingFieldNumber = 82;
5187 private readonly static global::Google.OrTools.Sat.SatParameters.Types.SearchBranching SearchBranchingDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.SearchBranching.AutomaticSearch;
5188
5189 private global::Google.OrTools.Sat.SatParameters.Types.SearchBranching searchBranching_;
5190 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5191 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5192 public global::Google.OrTools.Sat.SatParameters.Types.SearchBranching SearchBranching {
5193 get { if ((_hasBits1 & 33554432) != 0) { return searchBranching_; } else { return SearchBranchingDefaultValue; } }
5194 set {
5195 _hasBits1 |= 33554432;
5196 searchBranching_ = value;
5197 }
5198 }
5200 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5201 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5202 public bool HasSearchBranching {
5203 get { return (_hasBits1 & 33554432) != 0; }
5206 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5207 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5208 public void ClearSearchBranching() {
5209 _hasBits1 &= ~33554432;
5210 }
5211
5213 public const int HintConflictLimitFieldNumber = 153;
5214 private readonly static int HintConflictLimitDefaultValue = 10;
5215
5216 private int hintConflictLimit_;
5217
5220 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5221 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5222 public int HintConflictLimit {
5223 get { if ((_hasBits3 & 1048576) != 0) { return hintConflictLimit_; } else { return HintConflictLimitDefaultValue; } }
5224 set {
5225 _hasBits3 |= 1048576;
5226 hintConflictLimit_ = value;
5227 }
5228 }
5230 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5231 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5232 public bool HasHintConflictLimit {
5233 get { return (_hasBits3 & 1048576) != 0; }
5234 }
5236 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5237 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5238 public void ClearHintConflictLimit() {
5239 _hasBits3 &= ~1048576;
5240 }
5243 public const int RepairHintFieldNumber = 167;
5244 private readonly static bool RepairHintDefaultValue = false;
5245
5246 private bool repairHint_;
5247 /// <summary>
5248 /// If true, the solver tries to repair the solution given in the hint. This
5249 /// search terminates after the 'hint_conflict_limit' is reached and the solver
5250 /// switches to regular search. If false, then we do a FIXED_SEARCH using the
5251 /// hint until the hint_conflict_limit is reached.
5252 /// </summary>
5253 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5254 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5255 public bool RepairHint {
5256 get { if ((_hasBits4 & 2) != 0) { return repairHint_; } else { return RepairHintDefaultValue; } }
5257 set {
5258 _hasBits4 |= 2;
5259 repairHint_ = value;
5260 }
5263 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5264 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5265 public bool HasRepairHint {
5266 get { return (_hasBits4 & 2) != 0; }
5267 }
5268
5269 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5270 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5271 public void ClearRepairHint() {
5272 _hasBits4 &= ~2;
5273 }
5274
5276 public const int FixVariablesToTheirHintedValueFieldNumber = 192;
5277 private readonly static bool FixVariablesToTheirHintedValueDefaultValue = false;
5278
5279 private bool fixVariablesToTheirHintedValue_;
5280
5284 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5285 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5286 public bool FixVariablesToTheirHintedValue {
5287 get { if ((_hasBits4 & 8388608) != 0) { return fixVariablesToTheirHintedValue_; } else { return FixVariablesToTheirHintedValueDefaultValue; } }
5288 set {
5289 _hasBits4 |= 8388608;
5290 fixVariablesToTheirHintedValue_ = value;
5291 }
5292 }
5294 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5295 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5297 get { return (_hasBits4 & 8388608) != 0; }
5298 }
5300 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5301 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5302 public void ClearFixVariablesToTheirHintedValue() {
5303 _hasBits4 &= ~8388608;
5305
5307 public const int UseProbingSearchFieldNumber = 176;
5308 private readonly static bool UseProbingSearchDefaultValue = false;
5309
5310 private bool useProbingSearch_;
5313
5316 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5317 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5318 public bool UseProbingSearch {
5319 get { if ((_hasBits4 & 512) != 0) { return useProbingSearch_; } else { return UseProbingSearchDefaultValue; } }
5320 set {
5321 _hasBits4 |= 512;
5322 useProbingSearch_ = value;
5323 }
5324 }
5325 /// <summary>Gets whether the "use_probing_search" field is set</summary>
5326 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5327 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5328 public bool HasUseProbingSearch {
5329 get { return (_hasBits4 & 512) != 0; }
5330 }
5332 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5333 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5334 public void ClearUseProbingSearch() {
5335 _hasBits4 &= ~512;
5336 }
5337
5338
5339 public const int UseExtendedProbingFieldNumber = 269;
5340 private readonly static bool UseExtendedProbingDefaultValue = true;
5342 private bool useExtendedProbing_;
5344
5346 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5347 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5348 public bool UseExtendedProbing {
5349 get { if ((_hasBits6 & 1048576) != 0) { return useExtendedProbing_; } else { return UseExtendedProbingDefaultValue; } }
5350 set {
5351 _hasBits6 |= 1048576;
5352 useExtendedProbing_ = value;
5353 }
5354 }
5356 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5357 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5358 public bool HasUseExtendedProbing {
5359 get { return (_hasBits6 & 1048576) != 0; }
5360 }
5362 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5363 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5364 public void ClearUseExtendedProbing() {
5365 _hasBits6 &= ~1048576;
5366 }
5369 public const int ProbingNumCombinationsLimitFieldNumber = 272;
5370 private readonly static int ProbingNumCombinationsLimitDefaultValue = 20000;
5371
5372 private int probingNumCombinationsLimit_;
5373 /// <summary>
5374 /// How many combinations of pairs or triplets of variables we want to scan.
5375 /// </summary>
5376 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5377 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5379 get { if ((_hasBits6 & 8388608) != 0) { return probingNumCombinationsLimit_; } else { return ProbingNumCombinationsLimitDefaultValue; } }
5380 set {
5381 _hasBits6 |= 8388608;
5382 probingNumCombinationsLimit_ = value;
5383 }
5384 }
5386 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5387 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5388 public bool HasProbingNumCombinationsLimit {
5389 get { return (_hasBits6 & 8388608) != 0; }
5390 }
5392 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5393 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5394 public void ClearProbingNumCombinationsLimit() {
5395 _hasBits6 &= ~8388608;
5396 }
5399 public const int UseShavingInProbingSearchFieldNumber = 204;
5400 private readonly static bool UseShavingInProbingSearchDefaultValue = true;
5401
5402 private bool useShavingInProbingSearch_;
5403 /// <summary>
5404 /// Add a shaving phase (where the solver tries to prove that the lower or
5405 /// upper bound of a variable are infeasible) to the probing search.
5406 /// </summary>
5407 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5408 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5409 public bool UseShavingInProbingSearch {
5410 get { if ((_hasBits5 & 8) != 0) { return useShavingInProbingSearch_; } else { return UseShavingInProbingSearchDefaultValue; } }
5411 set {
5412 _hasBits5 |= 8;
5413 useShavingInProbingSearch_ = value;
5414 }
5415 }
5417 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5418 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5419 public bool HasUseShavingInProbingSearch {
5420 get { return (_hasBits5 & 8) != 0; }
5421 }
5423 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5424 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5425 public void ClearUseShavingInProbingSearch() {
5426 _hasBits5 &= ~8;
5428
5430 public const int ShavingSearchDeterministicTimeFieldNumber = 205;
5431 private readonly static double ShavingSearchDeterministicTimeDefaultValue = 0.001D;
5432
5433 private double shavingSearchDeterministicTime_;
5436
5438 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5439 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5440 public double ShavingSearchDeterministicTime {
5441 get { if ((_hasBits5 & 16) != 0) { return shavingSearchDeterministicTime_; } else { return ShavingSearchDeterministicTimeDefaultValue; } }
5442 set {
5443 _hasBits5 |= 16;
5444 shavingSearchDeterministicTime_ = value;
5445 }
5446 }
5448 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5449 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5451 get { return (_hasBits5 & 16) != 0; }
5452 }
5454 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5455 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5456 public void ClearShavingSearchDeterministicTime() {
5457 _hasBits5 &= ~16;
5459
5461 public const int ShavingSearchThresholdFieldNumber = 290;
5462 private readonly static long ShavingSearchThresholdDefaultValue = 64L;
5463
5464 private long shavingSearchThreshold_;
5467
5471 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5472 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5473 public long ShavingSearchThreshold {
5474 get { if ((_hasBits7 & 512) != 0) { return shavingSearchThreshold_; } else { return ShavingSearchThresholdDefaultValue; } }
5475 set {
5476 _hasBits7 |= 512;
5477 shavingSearchThreshold_ = value;
5478 }
5481 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5482 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5483 public bool HasShavingSearchThreshold {
5484 get { return (_hasBits7 & 512) != 0; }
5485 }
5486
5487 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5488 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5490 _hasBits7 &= ~512;
5491 }
5492
5494 public const int UseObjectiveLbSearchFieldNumber = 228;
5495 private readonly static bool UseObjectiveLbSearchDefaultValue = false;
5496
5497 private bool useObjectiveLbSearch_;
5498
5502 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5503 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5504 public bool UseObjectiveLbSearch {
5505 get { if ((_hasBits5 & 524288) != 0) { return useObjectiveLbSearch_; } else { return UseObjectiveLbSearchDefaultValue; } }
5506 set {
5507 _hasBits5 |= 524288;
5508 useObjectiveLbSearch_ = value;
5509 }
5510 }
5512 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5513 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5514 public bool HasUseObjectiveLbSearch {
5515 get { return (_hasBits5 & 524288) != 0; }
5516 }
5518 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5519 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5520 public void ClearUseObjectiveLbSearch() {
5521 _hasBits5 &= ~524288;
5523
5525 public const int UseObjectiveShavingSearchFieldNumber = 253;
5526 private readonly static bool UseObjectiveShavingSearchDefaultValue = false;
5527
5528 private bool useObjectiveShavingSearch_;
5531
5534 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5535 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5536 public bool UseObjectiveShavingSearch {
5537 get { if ((_hasBits6 & 32) != 0) { return useObjectiveShavingSearch_; } else { return UseObjectiveShavingSearchDefaultValue; } }
5538 set {
5539 _hasBits6 |= 32;
5540 useObjectiveShavingSearch_ = value;
5541 }
5542 }
5543 /// <summary>Gets whether the "use_objective_shaving_search" field is set</summary>
5544 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5545 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5546 public bool HasUseObjectiveShavingSearch {
5547 get { return (_hasBits6 & 32) != 0; }
5548 }
5550 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5551 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5552 public void ClearUseObjectiveShavingSearch() {
5553 _hasBits6 &= ~32;
5554 }
5555
5556
5557 public const int UseVariablesShavingSearchFieldNumber = 289;
5558 private readonly static bool UseVariablesShavingSearchDefaultValue = false;
5560 private bool useVariablesShavingSearch_;
5562
5565 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5566 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5567 public bool UseVariablesShavingSearch {
5568 get { if ((_hasBits7 & 256) != 0) { return useVariablesShavingSearch_; } else { return UseVariablesShavingSearchDefaultValue; } }
5569 set {
5570 _hasBits7 |= 256;
5571 useVariablesShavingSearch_ = value;
5572 }
5573 }
5575 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5576 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5577 public bool HasUseVariablesShavingSearch {
5578 get { return (_hasBits7 & 256) != 0; }
5579 }
5581 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5582 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5583 public void ClearUseVariablesShavingSearch() {
5584 _hasBits7 &= ~256;
5586
5588 public const int PseudoCostReliabilityThresholdFieldNumber = 123;
5589 private readonly static long PseudoCostReliabilityThresholdDefaultValue = 100L;
5590
5591 private long pseudoCostReliabilityThreshold_;
5594
5596 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5597 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5598 public long PseudoCostReliabilityThreshold {
5599 get { if ((_hasBits2 & 268435456) != 0) { return pseudoCostReliabilityThreshold_; } else { return PseudoCostReliabilityThresholdDefaultValue; } }
5600 set {
5601 _hasBits2 |= 268435456;
5602 pseudoCostReliabilityThreshold_ = value;
5603 }
5604 }
5606 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5607 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5609 get { return (_hasBits2 & 268435456) != 0; }
5610 }
5612 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5613 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5614 public void ClearPseudoCostReliabilityThreshold() {
5615 _hasBits2 &= ~268435456;
5617
5619 public const int OptimizeWithCoreFieldNumber = 83;
5620 private readonly static bool OptimizeWithCoreDefaultValue = false;
5621
5622 private bool optimizeWithCore_;
5625
5629 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5630 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5631 public bool OptimizeWithCore {
5632 get { if ((_hasBits1 & 67108864) != 0) { return optimizeWithCore_; } else { return OptimizeWithCoreDefaultValue; } }
5633 set {
5634 _hasBits1 |= 67108864;
5635 optimizeWithCore_ = value;
5636 }
5639 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5640 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5641 public bool HasOptimizeWithCore {
5642 get { return (_hasBits1 & 67108864) != 0; }
5643 }
5644
5645 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5646 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5648 _hasBits1 &= ~67108864;
5649 }
5650
5652 public const int OptimizeWithLbTreeSearchFieldNumber = 188;
5653 private readonly static bool OptimizeWithLbTreeSearchDefaultValue = false;
5654
5655 private bool optimizeWithLbTreeSearch_;
5656
5663 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5664 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5665 public bool OptimizeWithLbTreeSearch {
5666 get { if ((_hasBits4 & 524288) != 0) { return optimizeWithLbTreeSearch_; } else { return OptimizeWithLbTreeSearchDefaultValue; } }
5667 set {
5668 _hasBits4 |= 524288;
5669 optimizeWithLbTreeSearch_ = value;
5671 }
5673 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5674 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5675 public bool HasOptimizeWithLbTreeSearch {
5676 get { return (_hasBits4 & 524288) != 0; }
5677 }
5679 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5680 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5681 public void ClearOptimizeWithLbTreeSearch() {
5682 _hasBits4 &= ~524288;
5683 }
5684
5687 private readonly static bool SaveLpBasisInLbTreeSearchDefaultValue = false;
5688
5689 private bool saveLpBasisInLbTreeSearch_;
5698 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5699 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5700 public bool SaveLpBasisInLbTreeSearch {
5701 get { if ((_hasBits7 & 8) != 0) { return saveLpBasisInLbTreeSearch_; } else { return SaveLpBasisInLbTreeSearchDefaultValue; } }
5702 set {
5703 _hasBits7 |= 8;
5704 saveLpBasisInLbTreeSearch_ = value;
5705 }
5706 }
5708 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5709 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5710 public bool HasSaveLpBasisInLbTreeSearch {
5711 get { return (_hasBits7 & 8) != 0; }
5712 }
5714 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5715 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5716 public void ClearSaveLpBasisInLbTreeSearch() {
5717 _hasBits7 &= ~8;
5718 }
5719
5720 /// <summary>Field number for the "binary_search_num_conflicts" field.</summary>
5721 public const int BinarySearchNumConflictsFieldNumber = 99;
5722 private readonly static int BinarySearchNumConflictsDefaultValue = -1;
5723
5724 private int binarySearchNumConflicts_;
5731 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5732 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5733 public int BinarySearchNumConflicts {
5734 get { if ((_hasBits2 & 256) != 0) { return binarySearchNumConflicts_; } else { return BinarySearchNumConflictsDefaultValue; } }
5735 set {
5736 _hasBits2 |= 256;
5737 binarySearchNumConflicts_ = value;
5738 }
5739 }
5740 /// <summary>Gets whether the "binary_search_num_conflicts" field is set</summary>
5741 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5742 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5743 public bool HasBinarySearchNumConflicts {
5744 get { return (_hasBits2 & 256) != 0; }
5745 }
5747 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5748 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5749 public void ClearBinarySearchNumConflicts() {
5750 _hasBits2 &= ~256;
5751 }
5752
5753
5754 public const int OptimizeWithMaxHsFieldNumber = 85;
5755 private readonly static bool OptimizeWithMaxHsDefaultValue = false;
5757 private bool optimizeWithMaxHs_;
5759
5766 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5767 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5768 public bool OptimizeWithMaxHs {
5769 get { if ((_hasBits1 & 268435456) != 0) { return optimizeWithMaxHs_; } else { return OptimizeWithMaxHsDefaultValue; } }
5770 set {
5771 _hasBits1 |= 268435456;
5772 optimizeWithMaxHs_ = value;
5774 }
5776 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5777 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5778 public bool HasOptimizeWithMaxHs {
5779 get { return (_hasBits1 & 268435456) != 0; }
5780 }
5782 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5783 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5784 public void ClearOptimizeWithMaxHs() {
5785 _hasBits1 &= ~268435456;
5786 }
5787
5789 public const int UseFeasibilityJumpFieldNumber = 265;
5790 private readonly static bool UseFeasibilityJumpDefaultValue = true;
5791
5792 private bool useFeasibilityJump_;
5798 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5799 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5800 public bool UseFeasibilityJump {
5801 get { if ((_hasBits6 & 65536) != 0) { return useFeasibilityJump_; } else { return UseFeasibilityJumpDefaultValue; } }
5802 set {
5803 _hasBits6 |= 65536;
5804 useFeasibilityJump_ = value;
5805 }
5806 }
5808 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5809 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5810 public bool HasUseFeasibilityJump {
5811 get { return (_hasBits6 & 65536) != 0; }
5812 }
5814 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5815 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5816 public void ClearUseFeasibilityJump() {
5817 _hasBits6 &= ~65536;
5819
5821 public const int UseLsOnlyFieldNumber = 240;
5822 private readonly static bool UseLsOnlyDefaultValue = false;
5823
5824 private bool useLsOnly_;
5827
5829 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5830 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5831 public bool UseLsOnly {
5832 get { if ((_hasBits5 & 536870912) != 0) { return useLsOnly_; } else { return UseLsOnlyDefaultValue; } }
5833 set {
5834 _hasBits5 |= 536870912;
5835 useLsOnly_ = value;
5836 }
5837 }
5839 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5840 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5841 public bool HasUseLsOnly {
5842 get { return (_hasBits5 & 536870912) != 0; }
5843 }
5845 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5846 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5847 public void ClearUseLsOnly() {
5848 _hasBits5 &= ~536870912;
5849 }
5852 public const int FeasibilityJumpDecayFieldNumber = 242;
5853 private readonly static double FeasibilityJumpDecayDefaultValue = 0.95D;
5854
5855 private double feasibilityJumpDecay_;
5856 /// <summary>
5857 /// On each restart, we randomly choose if we use decay (with this parameter)
5858 /// or no decay.
5859 /// </summary>
5860 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5861 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5862 public double FeasibilityJumpDecay {
5863 get { if ((_hasBits5 & 1073741824) != 0) { return feasibilityJumpDecay_; } else { return FeasibilityJumpDecayDefaultValue; } }
5864 set {
5865 _hasBits5 |= 1073741824;
5866 feasibilityJumpDecay_ = value;
5867 }
5868 }
5870 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5871 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5872 public bool HasFeasibilityJumpDecay {
5873 get { return (_hasBits5 & 1073741824) != 0; }
5874 }
5876 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5877 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5878 public void ClearFeasibilityJumpDecay() {
5879 _hasBits5 &= ~1073741824;
5880 }
5884 private readonly static int FeasibilityJumpLinearizationLevelDefaultValue = 2;
5885
5886 private int feasibilityJumpLinearizationLevel_;
5887 /// <summary>
5888 /// How much do we linearize the problem in the local search code.
5889 /// </summary>
5890 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5891 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5893 get { if ((_hasBits6 & 256) != 0) { return feasibilityJumpLinearizationLevel_; } else { return FeasibilityJumpLinearizationLevelDefaultValue; } }
5894 set {
5895 _hasBits6 |= 256;
5896 feasibilityJumpLinearizationLevel_ = value;
5897 }
5898 }
5900 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5901 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5903 get { return (_hasBits6 & 256) != 0; }
5904 }
5906 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5907 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5908 public void ClearFeasibilityJumpLinearizationLevel() {
5909 _hasBits6 &= ~256;
5910 }
5911
5912 /// <summary>Field number for the "feasibility_jump_restart_factor" field.</summary>
5913 public const int FeasibilityJumpRestartFactorFieldNumber = 258;
5914 private readonly static int FeasibilityJumpRestartFactorDefaultValue = 1;
5915
5916 private int feasibilityJumpRestartFactor_;
5918 /// This is a factor that directly influence the work before each restart.
5919 /// Increasing it leads to longer restart.
5920 /// </summary>
5921 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5922 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5924 get { if ((_hasBits6 & 512) != 0) { return feasibilityJumpRestartFactor_; } else { return FeasibilityJumpRestartFactorDefaultValue; } }
5925 set {
5926 _hasBits6 |= 512;
5927 feasibilityJumpRestartFactor_ = value;
5928 }
5929 }
5931 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5932 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5934 get { return (_hasBits6 & 512) != 0; }
5935 }
5937 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5938 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5939 public void ClearFeasibilityJumpRestartFactor() {
5940 _hasBits6 &= ~512;
5941 }
5944 public const int FeasibilityJumpBatchDtimeFieldNumber = 292;
5945 private readonly static double FeasibilityJumpBatchDtimeDefaultValue = 0.1D;
5946
5947 private double feasibilityJumpBatchDtime_;
5948 /// <summary>
5949 /// How much dtime for each LS batch.
5950 /// </summary>
5951 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5952 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5954 get { if ((_hasBits7 & 2048) != 0) { return feasibilityJumpBatchDtime_; } else { return FeasibilityJumpBatchDtimeDefaultValue; } }
5955 set {
5956 _hasBits7 |= 2048;
5957 feasibilityJumpBatchDtime_ = value;
5958 }
5959 }
5961 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5962 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5964 get { return (_hasBits7 & 2048) != 0; }
5965 }
5967 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5968 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5969 public void ClearFeasibilityJumpBatchDtime() {
5970 _hasBits7 &= ~2048;
5971 }
5972
5973 /// <summary>Field number for the "feasibility_jump_var_randomization_probability" field.</summary>
5975 private readonly static double FeasibilityJumpVarRandomizationProbabilityDefaultValue = 0.05D;
5976
5977 private double feasibilityJumpVarRandomizationProbability_;
5979 /// Probability for a variable to have a non default value upon restarts or
5980 /// perturbations.
5981 /// </summary>
5982 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5983 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5985 get { if ((_hasBits6 & 1) != 0) { return feasibilityJumpVarRandomizationProbability_; } else { return FeasibilityJumpVarRandomizationProbabilityDefaultValue; } }
5986 set {
5987 _hasBits6 |= 1;
5988 feasibilityJumpVarRandomizationProbability_ = value;
5989 }
5990 }
5992 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5993 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5995 get { return (_hasBits6 & 1) != 0; }
5996 }
5998 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5999 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6000 public void ClearFeasibilityJumpVarRandomizationProbability() {
6001 _hasBits6 &= ~1;
6002 }
6006 private readonly static double FeasibilityJumpVarPerburbationRangeRatioDefaultValue = 0.2D;
6007
6008 private double feasibilityJumpVarPerburbationRangeRatio_;
6009 /// <summary>
6010 /// Max distance between the default value and the pertubated value relative to
6011 /// the range of the domain of the variable.
6012 /// </summary>
6013 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6014 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6016 get { if ((_hasBits6 & 2) != 0) { return feasibilityJumpVarPerburbationRangeRatio_; } else { return FeasibilityJumpVarPerburbationRangeRatioDefaultValue; } }
6017 set {
6018 _hasBits6 |= 2;
6019 feasibilityJumpVarPerburbationRangeRatio_ = value;
6020 }
6021 }
6023 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6024 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6026 get { return (_hasBits6 & 2) != 0; }
6027 }
6029 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6030 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6031 public void ClearFeasibilityJumpVarPerburbationRangeRatio() {
6032 _hasBits6 &= ~2;
6033 }
6036 public const int FeasibilityJumpEnableRestartsFieldNumber = 250;
6037 private readonly static bool FeasibilityJumpEnableRestartsDefaultValue = true;
6038
6039 private bool feasibilityJumpEnableRestarts_;
6040 /// <summary>
6041 /// When stagnating, feasibility jump will either restart from a default
6042 /// solution (with some possible randomization), or randomly pertubate the
6043 /// current solution. This parameter selects the first option.
6044 /// </summary>
6045 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6046 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6047 public bool FeasibilityJumpEnableRestarts {
6048 get { if ((_hasBits6 & 8) != 0) { return feasibilityJumpEnableRestarts_; } else { return FeasibilityJumpEnableRestartsDefaultValue; } }
6049 set {
6050 _hasBits6 |= 8;
6051 feasibilityJumpEnableRestarts_ = value;
6052 }
6053 }
6055 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6056 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6058 get { return (_hasBits6 & 8) != 0; }
6059 }
6061 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6062 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6063 public void ClearFeasibilityJumpEnableRestarts() {
6064 _hasBits6 &= ~8;
6066
6068 public const int FeasibilityJumpMaxExpandedConstraintSizeFieldNumber = 264;
6069 private readonly static int FeasibilityJumpMaxExpandedConstraintSizeDefaultValue = 500;
6070
6071 private int feasibilityJumpMaxExpandedConstraintSize_;
6074
6078 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6079 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6081 get { if ((_hasBits6 & 32768) != 0) { return feasibilityJumpMaxExpandedConstraintSize_; } else { return FeasibilityJumpMaxExpandedConstraintSizeDefaultValue; } }
6082 set {
6083 _hasBits6 |= 32768;
6084 feasibilityJumpMaxExpandedConstraintSize_ = value;
6085 }
6086 }
6087 /// <summary>Gets whether the "feasibility_jump_max_expanded_constraint_size" field is set</summary>
6088 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6089 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6091 get { return (_hasBits6 & 32768) != 0; }
6092 }
6094 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6095 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6096 public void ClearFeasibilityJumpMaxExpandedConstraintSize() {
6097 _hasBits6 &= ~32768;
6098 }
6099
6100
6101 public const int NumViolationLsFieldNumber = 244;
6102 private readonly static int NumViolationLsDefaultValue = 0;
6104 private int numViolationLs_;
6106
6110 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6111 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6112 public int NumViolationLs {
6113 get { if ((_hasBits5 & -2147483648) != 0) { return numViolationLs_; } else { return NumViolationLsDefaultValue; } }
6114 set {
6115 _hasBits5 |= -2147483648;
6116 numViolationLs_ = value;
6117 }
6118 }
6120 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6121 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6122 public bool HasNumViolationLs {
6123 get { return (_hasBits5 & -2147483648) != 0; }
6124 }
6126 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6127 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6128 public void ClearNumViolationLs() {
6129 _hasBits5 &= ~-2147483648;
6131
6133 public const int ViolationLsPerturbationPeriodFieldNumber = 249;
6134 private readonly static int ViolationLsPerturbationPeriodDefaultValue = 100;
6135
6136 private int violationLsPerturbationPeriod_;
6139
6140 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6141 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6143 get { if ((_hasBits6 & 4) != 0) { return violationLsPerturbationPeriod_; } else { return ViolationLsPerturbationPeriodDefaultValue; } }
6144 set {
6145 _hasBits6 |= 4;
6146 violationLsPerturbationPeriod_ = value;
6147 }
6148 }
6150 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6151 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6153 get { return (_hasBits6 & 4) != 0; }
6154 }
6156 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6157 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6158 public void ClearViolationLsPerturbationPeriod() {
6159 _hasBits6 &= ~4;
6160 }
6161
6162 /// <summary>Field number for the "violation_ls_compound_move_probability" field.</summary>
6163 public const int ViolationLsCompoundMoveProbabilityFieldNumber = 259;
6164 private readonly static double ViolationLsCompoundMoveProbabilityDefaultValue = 0.5D;
6165
6166 private double violationLsCompoundMoveProbability_;
6168 /// Probability of using compound move search each restart.
6169 /// TODO(user): Add reference to paper when published.
6170 /// </summary>
6171 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6172 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6174 get { if ((_hasBits6 & 1024) != 0) { return violationLsCompoundMoveProbability_; } else { return ViolationLsCompoundMoveProbabilityDefaultValue; } }
6175 set {
6176 _hasBits6 |= 1024;
6177 violationLsCompoundMoveProbability_ = value;
6178 }
6179 }
6181 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6182 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6184 get { return (_hasBits6 & 1024) != 0; }
6185 }
6187 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6188 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6189 public void ClearViolationLsCompoundMoveProbability() {
6190 _hasBits6 &= ~1024;
6191 }
6194 public const int SharedTreeNumWorkersFieldNumber = 235;
6195 private readonly static int SharedTreeNumWorkersDefaultValue = 0;
6196
6197 private int sharedTreeNumWorkers_;
6198 /// <summary>
6199 /// Enables shared tree search.
6200 /// If positive, start this many complete worker threads to explore a shared
6201 /// search tree. These workers communicate objective bounds and simple decision
6202 /// nogoods relating to the shared prefix of the tree, and will avoid exploring
6203 /// the same subtrees as one another.
6204 /// Specifying a negative number uses a heuristic to select an appropriate
6205 /// number of shared tree workeres based on the total number of workers.
6206 /// </summary>
6207 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6208 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6209 public int SharedTreeNumWorkers {
6210 get { if ((_hasBits5 & 33554432) != 0) { return sharedTreeNumWorkers_; } else { return SharedTreeNumWorkersDefaultValue; } }
6211 set {
6212 _hasBits5 |= 33554432;
6213 sharedTreeNumWorkers_ = value;
6214 }
6215 }
6217 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6218 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6219 public bool HasSharedTreeNumWorkers {
6220 get { return (_hasBits5 & 33554432) != 0; }
6221 }
6223 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6224 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6225 public void ClearSharedTreeNumWorkers() {
6226 _hasBits5 &= ~33554432;
6227 }
6228
6229 /// <summary>Field number for the "use_shared_tree_search" field.</summary>
6230 public const int UseSharedTreeSearchFieldNumber = 236;
6231 private readonly static bool UseSharedTreeSearchDefaultValue = false;
6232
6233 private bool useSharedTreeSearch_;
6237 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6238 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6239 public bool UseSharedTreeSearch {
6240 get { if ((_hasBits5 & 67108864) != 0) { return useSharedTreeSearch_; } else { return UseSharedTreeSearchDefaultValue; } }
6241 set {
6242 _hasBits5 |= 67108864;
6243 useSharedTreeSearch_ = value;
6244 }
6245 }
6247 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6248 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6250 get { return (_hasBits5 & 67108864) != 0; }
6251 }
6253 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6254 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6255 public void ClearUseSharedTreeSearch() {
6256 _hasBits5 &= ~67108864;
6257 }
6258
6259 /// <summary>Field number for the "shared_tree_worker_min_restarts_per_subtree" field.</summary>
6261 private readonly static int SharedTreeWorkerMinRestartsPerSubtreeDefaultValue = 1;
6262
6263 private int sharedTreeWorkerMinRestartsPerSubtree_;
6265 /// Minimum restarts before a worker will replace a subtree
6266 /// that looks "bad" based on the average LBD of learned clauses.
6267 /// </summary>
6268 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6269 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6271 get { if ((_hasBits7 & 2) != 0) { return sharedTreeWorkerMinRestartsPerSubtree_; } else { return SharedTreeWorkerMinRestartsPerSubtreeDefaultValue; } }
6272 set {
6273 _hasBits7 |= 2;
6274 sharedTreeWorkerMinRestartsPerSubtree_ = value;
6275 }
6276 }
6278 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6279 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6281 get { return (_hasBits7 & 2) != 0; }
6282 }
6284 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6285 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6286 public void ClearSharedTreeWorkerMinRestartsPerSubtree() {
6287 _hasBits7 &= ~2;
6288 }
6292 private readonly static bool SharedTreeWorkerEnableTrailSharingDefaultValue = true;
6293
6294 private bool sharedTreeWorkerEnableTrailSharing_;
6295 /// <summary>
6296 /// If true, workers share more of the information from their local trail.
6297 /// Specifically, literals implied by the shared tree decisions.
6298 /// </summary>
6299 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6300 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6302 get { if ((_hasBits7 & 8192) != 0) { return sharedTreeWorkerEnableTrailSharing_; } else { return SharedTreeWorkerEnableTrailSharingDefaultValue; } }
6303 set {
6304 _hasBits7 |= 8192;
6305 sharedTreeWorkerEnableTrailSharing_ = value;
6306 }
6307 }
6309 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6310 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6312 get { return (_hasBits7 & 8192) != 0; }
6313 }
6315 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6316 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6317 public void ClearSharedTreeWorkerEnableTrailSharing() {
6318 _hasBits7 &= ~8192;
6319 }
6323 private readonly static bool SharedTreeWorkerEnablePhaseSharingDefaultValue = true;
6324
6325 private bool sharedTreeWorkerEnablePhaseSharing_;
6326 /// <summary>
6327 /// If true, shared tree workers share their target phase when returning an
6328 /// assigned subtree for the next worker to use.
6329 /// </summary>
6330 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6331 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6333 get { if ((_hasBits7 & 4194304) != 0) { return sharedTreeWorkerEnablePhaseSharing_; } else { return SharedTreeWorkerEnablePhaseSharingDefaultValue; } }
6334 set {
6335 _hasBits7 |= 4194304;
6336 sharedTreeWorkerEnablePhaseSharing_ = value;
6337 }
6338 }
6340 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6341 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6343 get { return (_hasBits7 & 4194304) != 0; }
6344 }
6346 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6347 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6348 public void ClearSharedTreeWorkerEnablePhaseSharing() {
6349 _hasBits7 &= ~4194304;
6350 }
6353 public const int SharedTreeOpenLeavesPerWorkerFieldNumber = 281;
6354 private readonly static double SharedTreeOpenLeavesPerWorkerDefaultValue = 2D;
6355
6356 private double sharedTreeOpenLeavesPerWorker_;
6357 /// <summary>
6358 /// How many open leaf nodes should the shared tree maintain per worker.
6359 /// </summary>
6360 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6361 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6363 get { if ((_hasBits7 & 1) != 0) { return sharedTreeOpenLeavesPerWorker_; } else { return SharedTreeOpenLeavesPerWorkerDefaultValue; } }
6364 set {
6365 _hasBits7 |= 1;
6366 sharedTreeOpenLeavesPerWorker_ = value;
6367 }
6368 }
6370 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6371 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6373 get { return (_hasBits7 & 1) != 0; }
6374 }
6376 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6377 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6378 public void ClearSharedTreeOpenLeavesPerWorker() {
6379 _hasBits7 &= ~1;
6380 }
6381
6382 /// <summary>Field number for the "shared_tree_max_nodes_per_worker" field.</summary>
6383 public const int SharedTreeMaxNodesPerWorkerFieldNumber = 238;
6384 private readonly static int SharedTreeMaxNodesPerWorkerDefaultValue = 10000;
6385
6386 private int sharedTreeMaxNodesPerWorker_;
6388 /// In order to limit total shared memory and communication overhead, limit the
6389 /// total number of nodes that may be generated in the shared tree. If the
6390 /// shared tree runs out of unassigned leaves, workers act as portfolio
6391 /// workers. Note: this limit includes interior nodes, not just leaves.
6392 /// </summary>
6393 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6394 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6395 public int SharedTreeMaxNodesPerWorker {
6396 get { if ((_hasBits5 & 134217728) != 0) { return sharedTreeMaxNodesPerWorker_; } else { return SharedTreeMaxNodesPerWorkerDefaultValue; } }
6397 set {
6398 _hasBits5 |= 134217728;
6399 sharedTreeMaxNodesPerWorker_ = value;
6400 }
6401 }
6402 /// <summary>Gets whether the "shared_tree_max_nodes_per_worker" field is set</summary>
6403 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6404 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6405 public bool HasSharedTreeMaxNodesPerWorker {
6406 get { return (_hasBits5 & 134217728) != 0; }
6407 }
6409 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6410 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6411 public void ClearSharedTreeMaxNodesPerWorker() {
6412 _hasBits5 &= ~134217728;
6413 }
6414
6415
6416 public const int SharedTreeSplitStrategyFieldNumber = 239;
6417 private readonly static global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy SharedTreeSplitStrategyDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy.SplitStrategyAuto;
6419 private global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy sharedTreeSplitStrategy_;
6420 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6421 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6422 public global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy SharedTreeSplitStrategy {
6423 get { if ((_hasBits5 & 268435456) != 0) { return sharedTreeSplitStrategy_; } else { return SharedTreeSplitStrategyDefaultValue; } }
6424 set {
6425 _hasBits5 |= 268435456;
6426 sharedTreeSplitStrategy_ = value;
6427 }
6428 }
6430 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6431 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6432 public bool HasSharedTreeSplitStrategy {
6433 get { return (_hasBits5 & 268435456) != 0; }
6434 }
6435 /// <summary>Clears the value of the "shared_tree_split_strategy" field</summary>
6436 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6437 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6438 public void ClearSharedTreeSplitStrategy() {
6439 _hasBits5 &= ~268435456;
6440 }
6441
6442
6443 public const int SharedTreeBalanceToleranceFieldNumber = 305;
6444 private readonly static int SharedTreeBalanceToleranceDefaultValue = 1;
6446 private int sharedTreeBalanceTolerance_;
6448
6451 /// generate a split for some time. In contrast, with a tolerance of 1, at
6452 /// least half of all workers should be able to split the tree as soon as a
6453 /// split becomes required. This only has an effect on
6454 /// SPLIT_STRATEGY_BALANCED_TREE and SPLIT_STRATEGY_DISCREPANCY.
6455 /// </summary>
6456 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6457 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6458 public int SharedTreeBalanceTolerance {
6459 get { if ((_hasBits7 & 8388608) != 0) { return sharedTreeBalanceTolerance_; } else { return SharedTreeBalanceToleranceDefaultValue; } }
6460 set {
6461 _hasBits7 |= 8388608;
6462 sharedTreeBalanceTolerance_ = value;
6463 }
6464 }
6466 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6467 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6468 public bool HasSharedTreeBalanceTolerance {
6469 get { return (_hasBits7 & 8388608) != 0; }
6470 }
6472 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6473 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6474 public void ClearSharedTreeBalanceTolerance() {
6475 _hasBits7 &= ~8388608;
6476 }
6477
6478 /// <summary>Field number for the "enumerate_all_solutions" field.</summary>
6479 public const int EnumerateAllSolutionsFieldNumber = 87;
6480 private readonly static bool EnumerateAllSolutionsDefaultValue = false;
6481
6482 private bool enumerateAllSolutions_;
6492 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6493 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6494 public bool EnumerateAllSolutions {
6495 get { if ((_hasBits1 & 1073741824) != 0) { return enumerateAllSolutions_; } else { return EnumerateAllSolutionsDefaultValue; } }
6496 set {
6497 _hasBits1 |= 1073741824;
6498 enumerateAllSolutions_ = value;
6499 }
6500 }
6502 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6503 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6504 public bool HasEnumerateAllSolutions {
6505 get { return (_hasBits1 & 1073741824) != 0; }
6506 }
6508 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6509 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6510 public void ClearEnumerateAllSolutions() {
6511 _hasBits1 &= ~1073741824;
6512 }
6513
6514 /// <summary>Field number for the "keep_all_feasible_solutions_in_presolve" field.</summary>
6515 public const int KeepAllFeasibleSolutionsInPresolveFieldNumber = 173;
6516 private readonly static bool KeepAllFeasibleSolutionsInPresolveDefaultValue = false;
6517
6518 private bool keepAllFeasibleSolutionsInPresolve_;
6529 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6530 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6532 get { if ((_hasBits4 & 64) != 0) { return keepAllFeasibleSolutionsInPresolve_; } else { return KeepAllFeasibleSolutionsInPresolveDefaultValue; } }
6533 set {
6534 _hasBits4 |= 64;
6535 keepAllFeasibleSolutionsInPresolve_ = value;
6536 }
6537 }
6539 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6540 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6541 public bool HasKeepAllFeasibleSolutionsInPresolve {
6542 get { return (_hasBits4 & 64) != 0; }
6543 }
6545 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6546 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6548 _hasBits4 &= ~64;
6549 }
6550
6551 /// <summary>Field number for the "fill_tightened_domains_in_response" field.</summary>
6552 public const int FillTightenedDomainsInResponseFieldNumber = 132;
6553 private readonly static bool FillTightenedDomainsInResponseDefaultValue = false;
6554
6555 private bool fillTightenedDomainsInResponse_;
6563 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6564 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6565 public bool FillTightenedDomainsInResponse {
6566 get { if ((_hasBits3 & 32) != 0) { return fillTightenedDomainsInResponse_; } else { return FillTightenedDomainsInResponseDefaultValue; } }
6567 set {
6568 _hasBits3 |= 32;
6569 fillTightenedDomainsInResponse_ = value;
6570 }
6571 }
6573 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6574 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6576 get { return (_hasBits3 & 32) != 0; }
6577 }
6579 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6580 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6581 public void ClearFillTightenedDomainsInResponse() {
6582 _hasBits3 &= ~32;
6584
6586 public const int FillAdditionalSolutionsInResponseFieldNumber = 194;
6587 private readonly static bool FillAdditionalSolutionsInResponseDefaultValue = false;
6588
6589 private bool fillAdditionalSolutionsInResponse_;
6592
6602 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6603 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6605 get { if ((_hasBits4 & 33554432) != 0) { return fillAdditionalSolutionsInResponse_; } else { return FillAdditionalSolutionsInResponseDefaultValue; } }
6606 set {
6607 _hasBits4 |= 33554432;
6608 fillAdditionalSolutionsInResponse_ = value;
6609 }
6610 }
6612 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6613 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6614 public bool HasFillAdditionalSolutionsInResponse {
6615 get { return (_hasBits4 & 33554432) != 0; }
6616 }
6617 /// <summary>Clears the value of the "fill_additional_solutions_in_response" field</summary>
6618 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6619 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6621 _hasBits4 &= ~33554432;
6622 }
6625 public const int InstantiateAllVariablesFieldNumber = 106;
6626 private readonly static bool InstantiateAllVariablesDefaultValue = true;
6627
6628 private bool instantiateAllVariables_;
6635 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6636 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6637 public bool InstantiateAllVariables {
6638 get { if ((_hasBits2 & 8192) != 0) { return instantiateAllVariables_; } else { return InstantiateAllVariablesDefaultValue; } }
6639 set {
6640 _hasBits2 |= 8192;
6641 instantiateAllVariables_ = value;
6642 }
6643 }
6645 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6646 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6647 public bool HasInstantiateAllVariables {
6648 get { return (_hasBits2 & 8192) != 0; }
6649 }
6651 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6652 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6653 public void ClearInstantiateAllVariables() {
6654 _hasBits2 &= ~8192;
6655 }
6656
6659 private readonly static bool AutoDetectGreaterThanAtLeastOneOfDefaultValue = true;
6660
6661 private bool autoDetectGreaterThanAtLeastOneOf_;
6664 /// it has a set of "optional incoming arc" for which at least one of them is
6665 /// present. This is usually useful to have but can be slow on model with a lot
6666 /// of precedence.
6667 /// </summary>
6668 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6669 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6671 get { if ((_hasBits2 & 64) != 0) { return autoDetectGreaterThanAtLeastOneOf_; } else { return AutoDetectGreaterThanAtLeastOneOfDefaultValue; } }
6672 set {
6673 _hasBits2 |= 64;
6674 autoDetectGreaterThanAtLeastOneOf_ = value;
6675 }
6676 }
6678 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6679 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6680 public bool HasAutoDetectGreaterThanAtLeastOneOf {
6681 get { return (_hasBits2 & 64) != 0; }
6682 }
6684 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6685 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6686 public void ClearAutoDetectGreaterThanAtLeastOneOf() {
6687 _hasBits2 &= ~64;
6688 }
6689
6692 private readonly static bool StopAfterFirstSolutionDefaultValue = false;
6693
6694 private bool stopAfterFirstSolution_;
6697 /// </summary>
6698 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6699 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6700 public bool StopAfterFirstSolution {
6701 get { if ((_hasBits2 & 128) != 0) { return stopAfterFirstSolution_; } else { return StopAfterFirstSolutionDefaultValue; } }
6702 set {
6703 _hasBits2 |= 128;
6704 stopAfterFirstSolution_ = value;
6705 }
6706 }
6708 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6709 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6710 public bool HasStopAfterFirstSolution {
6711 get { return (_hasBits2 & 128) != 0; }
6712 }
6714 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6715 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6716 public void ClearStopAfterFirstSolution() {
6717 _hasBits2 &= ~128;
6718 }
6719
6721 public const int StopAfterPresolveFieldNumber = 149;
6722 private readonly static bool StopAfterPresolveDefaultValue = false;
6723
6724 private bool stopAfterPresolve_;
6727
6729 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6730 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6731 public bool StopAfterPresolve {
6732 get { if ((_hasBits3 & 131072) != 0) { return stopAfterPresolve_; } else { return StopAfterPresolveDefaultValue; } }
6733 set {
6734 _hasBits3 |= 131072;
6735 stopAfterPresolve_ = value;
6736 }
6737 }
6739 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6740 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6741 public bool HasStopAfterPresolve {
6742 get { return (_hasBits3 & 131072) != 0; }
6743 }
6744 /// <summary>Clears the value of the "stop_after_presolve" field</summary>
6745 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6746 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6747 public void ClearStopAfterPresolve() {
6748 _hasBits3 &= ~131072;
6749 }
6750
6751
6752 public const int StopAfterRootPropagationFieldNumber = 252;
6753 private readonly static bool StopAfterRootPropagationDefaultValue = false;
6755 private bool stopAfterRootPropagation_;
6756 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6757 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6758 public bool StopAfterRootPropagation {
6759 get { if ((_hasBits6 & 16) != 0) { return stopAfterRootPropagation_; } else { return StopAfterRootPropagationDefaultValue; } }
6760 set {
6761 _hasBits6 |= 16;
6762 stopAfterRootPropagation_ = value;
6763 }
6764 }
6766 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6767 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6768 public bool HasStopAfterRootPropagation {
6769 get { return (_hasBits6 & 16) != 0; }
6770 }
6772 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6773 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6774 public void ClearStopAfterRootPropagation() {
6775 _hasBits6 &= ~16;
6776 }
6777
6779 public const int LnsInitialDifficultyFieldNumber = 307;
6780 private readonly static double LnsInitialDifficultyDefaultValue = 0.5D;
6781
6782 private double lnsInitialDifficulty_;
6785 /// </summary>
6786 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6787 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6788 public double LnsInitialDifficulty {
6789 get { if ((_hasBits7 & 33554432) != 0) { return lnsInitialDifficulty_; } else { return LnsInitialDifficultyDefaultValue; } }
6790 set {
6791 _hasBits7 |= 33554432;
6792 lnsInitialDifficulty_ = value;
6793 }
6794 }
6796 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6797 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6798 public bool HasLnsInitialDifficulty {
6799 get { return (_hasBits7 & 33554432) != 0; }
6800 }
6802 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6803 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6804 public void ClearLnsInitialDifficulty() {
6805 _hasBits7 &= ~33554432;
6806 }
6807
6809 public const int LnsInitialDeterministicLimitFieldNumber = 308;
6810 private readonly static double LnsInitialDeterministicLimitDefaultValue = 0.1D;
6811
6812 private double lnsInitialDeterministicLimit_;
6813 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6814 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6815 public double LnsInitialDeterministicLimit {
6816 get { if ((_hasBits7 & 67108864) != 0) { return lnsInitialDeterministicLimit_; } else { return LnsInitialDeterministicLimitDefaultValue; } }
6817 set {
6818 _hasBits7 |= 67108864;
6819 lnsInitialDeterministicLimit_ = value;
6820 }
6821 }
6823 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6824 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6826 get { return (_hasBits7 & 67108864) != 0; }
6827 }
6829 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6830 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6831 public void ClearLnsInitialDeterministicLimit() {
6832 _hasBits7 &= ~67108864;
6833 }
6834
6836 public const int UseLnsFieldNumber = 283;
6837 private readonly static bool UseLnsDefaultValue = true;
6838
6839 private bool useLns_;
6842 /// </summary>
6843 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6844 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6845 public bool UseLns {
6846 get { if ((_hasBits7 & 4) != 0) { return useLns_; } else { return UseLnsDefaultValue; } }
6847 set {
6848 _hasBits7 |= 4;
6849 useLns_ = value;
6850 }
6851 }
6853 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6854 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6855 public bool HasUseLns {
6856 get { return (_hasBits7 & 4) != 0; }
6857 }
6859 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6860 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6861 public void ClearUseLns() {
6862 _hasBits7 &= ~4;
6863 }
6864
6866 public const int UseLnsOnlyFieldNumber = 101;
6867 private readonly static bool UseLnsOnlyDefaultValue = false;
6868
6869 private bool useLnsOnly_;
6872
6873 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6874 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6875 public bool UseLnsOnly {
6876 get { if ((_hasBits2 & 1024) != 0) { return useLnsOnly_; } else { return UseLnsOnlyDefaultValue; } }
6877 set {
6878 _hasBits2 |= 1024;
6879 useLnsOnly_ = value;
6881 }
6883 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6884 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6885 public bool HasUseLnsOnly {
6886 get { return (_hasBits2 & 1024) != 0; }
6887 }
6889 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6890 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6891 public void ClearUseLnsOnly() {
6892 _hasBits2 &= ~1024;
6893 }
6894
6896 public const int SolutionPoolSizeFieldNumber = 193;
6897 private readonly static int SolutionPoolSizeDefaultValue = 3;
6898
6899 private int solutionPoolSize_;
6902
6905 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6906 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6907 public int SolutionPoolSize {
6908 get { if ((_hasBits4 & 16777216) != 0) { return solutionPoolSize_; } else { return SolutionPoolSizeDefaultValue; } }
6909 set {
6910 _hasBits4 |= 16777216;
6911 solutionPoolSize_ = value;
6912 }
6913 }
6915 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6916 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6917 public bool HasSolutionPoolSize {
6918 get { return (_hasBits4 & 16777216) != 0; }
6921 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6922 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6923 public void ClearSolutionPoolSize() {
6924 _hasBits4 &= ~16777216;
6925 }
6926
6928 public const int UseRinsLnsFieldNumber = 129;
6929 private readonly static bool UseRinsLnsDefaultValue = true;
6930
6931 private bool useRinsLns_;
6932
6935 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6936 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6937 public bool UseRinsLns {
6938 get { if ((_hasBits3 & 4) != 0) { return useRinsLns_; } else { return UseRinsLnsDefaultValue; } }
6939 set {
6940 _hasBits3 |= 4;
6941 useRinsLns_ = value;
6942 }
6943 }
6945 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6946 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6947 public bool HasUseRinsLns {
6948 get { return (_hasBits3 & 4) != 0; }
6949 }
6951 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6952 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6953 public void ClearUseRinsLns() {
6954 _hasBits3 &= ~4;
6955 }
6956
6958 public const int UseFeasibilityPumpFieldNumber = 164;
6959 private readonly static bool UseFeasibilityPumpDefaultValue = true;
6960
6961 private bool useFeasibilityPump_;
6964
6965 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6966 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6968 get { if ((_hasBits3 & 1073741824) != 0) { return useFeasibilityPump_; } else { return UseFeasibilityPumpDefaultValue; } }
6969 set {
6970 _hasBits3 |= 1073741824;
6971 useFeasibilityPump_ = value;
6973 }
6975 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6976 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6977 public bool HasUseFeasibilityPump {
6978 get { return (_hasBits3 & 1073741824) != 0; }
6979 }
6981 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6982 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6983 public void ClearUseFeasibilityPump() {
6984 _hasBits3 &= ~1073741824;
6985 }
6986
6988 public const int UseLbRelaxLnsFieldNumber = 255;
6989 private readonly static bool UseLbRelaxLnsDefaultValue = true;
6990
6991 private bool useLbRelaxLns_;
6994
6997 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6998 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6999 public bool UseLbRelaxLns {
7000 get { if ((_hasBits6 & 64) != 0) { return useLbRelaxLns_; } else { return UseLbRelaxLnsDefaultValue; } }
7001 set {
7002 _hasBits6 |= 64;
7003 useLbRelaxLns_ = value;
7004 }
7005 }
7007 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7008 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7009 public bool HasUseLbRelaxLns {
7010 get { return (_hasBits6 & 64) != 0; }
7013 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7014 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7015 public void ClearUseLbRelaxLns() {
7016 _hasBits6 &= ~64;
7017 }
7018
7020 public const int LbRelaxNumWorkersThresholdFieldNumber = 296;
7021 private readonly static int LbRelaxNumWorkersThresholdDefaultValue = 16;
7022
7023 private int lbRelaxNumWorkersThreshold_;
7024
7027 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7028 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7029 public int LbRelaxNumWorkersThreshold {
7030 get { if ((_hasBits7 & 16384) != 0) { return lbRelaxNumWorkersThreshold_; } else { return LbRelaxNumWorkersThresholdDefaultValue; } }
7031 set {
7032 _hasBits7 |= 16384;
7033 lbRelaxNumWorkersThreshold_ = value;
7034 }
7035 }
7037 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7038 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7039 public bool HasLbRelaxNumWorkersThreshold {
7040 get { return (_hasBits7 & 16384) != 0; }
7041 }
7043 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7044 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7045 public void ClearLbRelaxNumWorkersThreshold() {
7046 _hasBits7 &= ~16384;
7047 }
7048
7050 public const int FpRoundingFieldNumber = 165;
7051 private readonly static global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod FpRoundingDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod.PropagationAssisted;
7052
7053 private global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod fpRounding_;
7054 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7055 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7056 public global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod FpRounding {
7057 get { if ((_hasBits3 & -2147483648) != 0) { return fpRounding_; } else { return FpRoundingDefaultValue; } }
7058 set {
7059 _hasBits3 |= -2147483648;
7060 fpRounding_ = value;
7061 }
7062 }
7064 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7065 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7066 public bool HasFpRounding {
7067 get { return (_hasBits3 & -2147483648) != 0; }
7068 }
7070 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7071 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7072 public void ClearFpRounding() {
7073 _hasBits3 &= ~-2147483648;
7074 }
7075
7077 public const int DiversifyLnsParamsFieldNumber = 137;
7078 private readonly static bool DiversifyLnsParamsDefaultValue = false;
7079
7080 private bool diversifyLnsParams_;
7083 /// </summary>
7084 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7085 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7086 public bool DiversifyLnsParams {
7087 get { if ((_hasBits3 & 1024) != 0) { return diversifyLnsParams_; } else { return DiversifyLnsParamsDefaultValue; } }
7088 set {
7089 _hasBits3 |= 1024;
7090 diversifyLnsParams_ = value;
7091 }
7092 }
7094 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7095 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7096 public bool HasDiversifyLnsParams {
7097 get { return (_hasBits3 & 1024) != 0; }
7098 }
7100 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7101 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7102 public void ClearDiversifyLnsParams() {
7103 _hasBits3 &= ~1024;
7104 }
7105
7107 public const int RandomizeSearchFieldNumber = 103;
7108 private readonly static bool RandomizeSearchDefaultValue = false;
7109
7110 private bool randomizeSearch_;
7113
7114 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7115 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7116 public bool RandomizeSearch {
7117 get { if ((_hasBits2 & 2048) != 0) { return randomizeSearch_; } else { return RandomizeSearchDefaultValue; } }
7118 set {
7119 _hasBits2 |= 2048;
7120 randomizeSearch_ = value;
7122 }
7124 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7125 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7126 public bool HasRandomizeSearch {
7127 get { return (_hasBits2 & 2048) != 0; }
7128 }
7130 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7131 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7132 public void ClearRandomizeSearch() {
7133 _hasBits2 &= ~2048;
7134 }
7135
7137 public const int SearchRandomVariablePoolSizeFieldNumber = 104;
7138 private readonly static long SearchRandomVariablePoolSizeDefaultValue = 0L;
7139
7140 private long searchRandomVariablePoolSize_;
7143
7146 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7147 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7148 public long SearchRandomVariablePoolSize {
7149 get { if ((_hasBits2 & 4096) != 0) { return searchRandomVariablePoolSize_; } else { return SearchRandomVariablePoolSizeDefaultValue; } }
7150 set {
7151 _hasBits2 |= 4096;
7152 searchRandomVariablePoolSize_ = value;
7153 }
7154 }
7156 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7157 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7158 public bool HasSearchRandomVariablePoolSize {
7159 get { return (_hasBits2 & 4096) != 0; }
7162 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7163 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7164 public void ClearSearchRandomVariablePoolSize() {
7165 _hasBits2 &= ~4096;
7166 }
7167
7169 public const int PushAllTasksTowardStartFieldNumber = 262;
7170 private readonly static bool PushAllTasksTowardStartDefaultValue = false;
7171
7172 private bool pushAllTasksTowardStart_;
7173
7176 /// </summary>
7177 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7178 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7179 public bool PushAllTasksTowardStart {
7180 get { if ((_hasBits6 & 8192) != 0) { return pushAllTasksTowardStart_; } else { return PushAllTasksTowardStartDefaultValue; } }
7181 set {
7182 _hasBits6 |= 8192;
7183 pushAllTasksTowardStart_ = value;
7184 }
7185 }
7187 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7188 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7189 public bool HasPushAllTasksTowardStart {
7190 get { return (_hasBits6 & 8192) != 0; }
7191 }
7192 /// <summary>Clears the value of the "push_all_tasks_toward_start" field</summary>
7193 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7194 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7195 public void ClearPushAllTasksTowardStart() {
7196 _hasBits6 &= ~8192;
7197 }
7198
7199
7200 public const int UseOptionalVariablesFieldNumber = 108;
7201 private readonly static bool UseOptionalVariablesDefaultValue = false;
7203 private bool useOptionalVariables_;
7205
7208 ///
7209 /// TODO(user): This is experimental and seems to lead to wrong optimal in
7210 /// some situation. It should however gives correct solutions. Fix.
7211 /// </summary>
7212 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7213 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7214 public bool UseOptionalVariables {
7215 get { if ((_hasBits2 & 32768) != 0) { return useOptionalVariables_; } else { return UseOptionalVariablesDefaultValue; } }
7216 set {
7217 _hasBits2 |= 32768;
7218 useOptionalVariables_ = value;
7219 }
7220 }
7222 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7223 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7224 public bool HasUseOptionalVariables {
7225 get { return (_hasBits2 & 32768) != 0; }
7226 }
7228 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7229 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7230 public void ClearUseOptionalVariables() {
7231 _hasBits2 &= ~32768;
7232 }
7235 public const int UseExactLpReasonFieldNumber = 109;
7236 private readonly static bool UseExactLpReasonDefaultValue = true;
7237
7238 private bool useExactLpReason_;
7239 /// <summary>
7240 /// The solver usually exploit the LP relaxation of a model. If this option is
7241 /// true, then whatever is infered by the LP will be used like an heuristic to
7242 /// compute EXACT propagation on the IP. So with this option, there is no
7243 /// numerical imprecision issues.
7244 /// </summary>
7245 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7246 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7247 public bool UseExactLpReason {
7248 get { if ((_hasBits2 & 65536) != 0) { return useExactLpReason_; } else { return UseExactLpReasonDefaultValue; } }
7249 set {
7250 _hasBits2 |= 65536;
7251 useExactLpReason_ = value;
7252 }
7253 }
7255 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7256 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7257 public bool HasUseExactLpReason {
7258 get { return (_hasBits2 & 65536) != 0; }
7261 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7262 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7263 public void ClearUseExactLpReason() {
7264 _hasBits2 &= ~65536;
7265 }
7266
7268 public const int UseCombinedNoOverlapFieldNumber = 133;
7269 private readonly static bool UseCombinedNoOverlapDefaultValue = false;
7270
7271 private bool useCombinedNoOverlap_;
7272
7275 /// intervals, but 1M intervals in the no-overlap constraints covering them.
7276 /// </summary>
7277 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7278 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7279 public bool UseCombinedNoOverlap {
7280 get { if ((_hasBits3 & 64) != 0) { return useCombinedNoOverlap_; } else { return UseCombinedNoOverlapDefaultValue; } }
7281 set {
7282 _hasBits3 |= 64;
7283 useCombinedNoOverlap_ = value;
7284 }
7285 }
7287 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7288 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7289 public bool HasUseCombinedNoOverlap {
7290 get { return (_hasBits3 & 64) != 0; }
7291 }
7292 /// <summary>Clears the value of the "use_combined_no_overlap" field</summary>
7293 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7294 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7295 public void ClearUseCombinedNoOverlap() {
7296 _hasBits3 &= ~64;
7297 }
7298
7299
7300 public const int AtMostOneMaxExpansionSizeFieldNumber = 270;
7301 private readonly static int AtMostOneMaxExpansionSizeDefaultValue = 3;
7303 private int atMostOneMaxExpansionSize_;
7305
7308 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7309 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7310 public int AtMostOneMaxExpansionSize {
7311 get { if ((_hasBits6 & 2097152) != 0) { return atMostOneMaxExpansionSize_; } else { return AtMostOneMaxExpansionSizeDefaultValue; } }
7312 set {
7313 _hasBits6 |= 2097152;
7314 atMostOneMaxExpansionSize_ = value;
7315 }
7316 }
7318 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7319 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7320 public bool HasAtMostOneMaxExpansionSize {
7321 get { return (_hasBits6 & 2097152) != 0; }
7322 }
7324 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7325 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7326 public void ClearAtMostOneMaxExpansionSize() {
7327 _hasBits6 &= ~2097152;
7328 }
7329
7331 public const int CatchSigintSignalFieldNumber = 135;
7332 private readonly static bool CatchSigintSignalDefaultValue = true;
7333
7334 private bool catchSigintSignal_;
7337
7340 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7341 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7342 public bool CatchSigintSignal {
7343 get { if ((_hasBits3 & 256) != 0) { return catchSigintSignal_; } else { return CatchSigintSignalDefaultValue; } }
7344 set {
7345 _hasBits3 |= 256;
7346 catchSigintSignal_ = value;
7347 }
7348 }
7350 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7351 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7352 public bool HasCatchSigintSignal {
7353 get { return (_hasBits3 & 256) != 0; }
7354 }
7355 /// <summary>Clears the value of the "catch_sigint_signal" field</summary>
7356 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7357 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7358 public void ClearCatchSigintSignal() {
7359 _hasBits3 &= ~256;
7360 }
7361
7362
7363 public const int UseImpliedBoundsFieldNumber = 144;
7364 private readonly static bool UseImpliedBoundsDefaultValue = true;
7366 private bool useImpliedBounds_;
7368
7371 /// </summary>
7372 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7373 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7374 public bool UseImpliedBounds {
7375 get { if ((_hasBits3 & 4096) != 0) { return useImpliedBounds_; } else { return UseImpliedBoundsDefaultValue; } }
7376 set {
7377 _hasBits3 |= 4096;
7378 useImpliedBounds_ = value;
7379 }
7380 }
7382 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7383 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7384 public bool HasUseImpliedBounds {
7385 get { return (_hasBits3 & 4096) != 0; }
7386 }
7387 /// <summary>Clears the value of the "use_implied_bounds" field</summary>
7388 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7389 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7390 public void ClearUseImpliedBounds() {
7391 _hasBits3 &= ~4096;
7392 }
7393
7394
7395 public const int PolishLpSolutionFieldNumber = 175;
7396 private readonly static bool PolishLpSolutionDefaultValue = false;
7398 private bool polishLpSolution_;
7400
7403 /// time to do such polish step.
7404 /// </summary>
7405 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7406 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7407 public bool PolishLpSolution {
7408 get { if ((_hasBits4 & 256) != 0) { return polishLpSolution_; } else { return PolishLpSolutionDefaultValue; } }
7409 set {
7410 _hasBits4 |= 256;
7411 polishLpSolution_ = value;
7412 }
7413 }
7415 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7416 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7417 public bool HasPolishLpSolution {
7418 get { return (_hasBits4 & 256) != 0; }
7421 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7422 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7423 public void ClearPolishLpSolution() {
7424 _hasBits4 &= ~256;
7425 }
7426
7428 public const int LpPrimalToleranceFieldNumber = 266;
7429 private readonly static double LpPrimalToleranceDefaultValue = 1e-07D;
7430
7431 private double lpPrimalTolerance_;
7432
7435 /// good to use lower tolerances. If your problem is binary with low
7436 /// coefficients, it might be good to use higher ones to speed-up the lp
7437 /// solves.
7438 /// </summary>
7439 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7440 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7441 public double LpPrimalTolerance {
7442 get { if ((_hasBits6 & 131072) != 0) { return lpPrimalTolerance_; } else { return LpPrimalToleranceDefaultValue; } }
7443 set {
7444 _hasBits6 |= 131072;
7445 lpPrimalTolerance_ = value;
7446 }
7447 }
7449 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7450 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7451 public bool HasLpPrimalTolerance {
7452 get { return (_hasBits6 & 131072) != 0; }
7453 }
7455 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7456 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7457 public void ClearLpPrimalTolerance() {
7458 _hasBits6 &= ~131072;
7459 }
7460
7462 public const int LpDualToleranceFieldNumber = 267;
7463 private readonly static double LpDualToleranceDefaultValue = 1e-07D;
7464
7465 private double lpDualTolerance_;
7466 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7467 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7468 public double LpDualTolerance {
7469 get { if ((_hasBits6 & 262144) != 0) { return lpDualTolerance_; } else { return LpDualToleranceDefaultValue; } }
7470 set {
7471 _hasBits6 |= 262144;
7472 lpDualTolerance_ = value;
7474 }
7476 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7477 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7478 public bool HasLpDualTolerance {
7479 get { return (_hasBits6 & 262144) != 0; }
7480 }
7482 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7483 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7484 public void ClearLpDualTolerance() {
7485 _hasBits6 &= ~262144;
7487
7489 public const int ConvertIntervalsFieldNumber = 177;
7490 private readonly static bool ConvertIntervalsDefaultValue = true;
7491
7492 private bool convertIntervals_;
7493
7496 /// variables.
7497 /// </summary>
7498 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7499 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7500 public bool ConvertIntervals {
7501 get { if ((_hasBits4 & 1024) != 0) { return convertIntervals_; } else { return ConvertIntervalsDefaultValue; } }
7502 set {
7503 _hasBits4 |= 1024;
7504 convertIntervals_ = value;
7505 }
7506 }
7508 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7509 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7510 public bool HasConvertIntervals {
7511 get { return (_hasBits4 & 1024) != 0; }
7512 }
7513 /// <summary>Clears the value of the "convert_intervals" field</summary>
7514 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7515 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7516 public void ClearConvertIntervals() {
7517 _hasBits4 &= ~1024;
7518 }
7519
7520
7521 public const int SymmetryLevelFieldNumber = 183;
7522 private readonly static int SymmetryLevelDefaultValue = 2;
7524 private int symmetryLevel_;
7526
7529 /// breaking during search. At level 3, we also detect symmetries for very
7530 /// large models, which can be slow. At level 4, we try to break as much
7531 /// symmetry as possible in presolve.
7532 /// </summary>
7533 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7534 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7535 public int SymmetryLevel {
7536 get { if ((_hasBits4 & 65536) != 0) { return symmetryLevel_; } else { return SymmetryLevelDefaultValue; } }
7537 set {
7538 _hasBits4 |= 65536;
7539 symmetryLevel_ = value;
7540 }
7541 }
7543 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7544 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7545 public bool HasSymmetryLevel {
7546 get { return (_hasBits4 & 65536) != 0; }
7547 }
7549 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7550 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7551 public void ClearSymmetryLevel() {
7552 _hasBits4 &= ~65536;
7553 }
7554
7555 /// <summary>Field number for the "use_symmetry_in_lp" field.</summary>
7556 public const int UseSymmetryInLpFieldNumber = 301;
7557 private readonly static bool UseSymmetryInLpDefaultValue = false;
7558
7559 private bool useSymmetryInLp_;
7561 /// When we have symmetry, it is possible to "fold" all variables from the same
7562 /// orbit into a single variable, while having the same power of LP relaxation.
7563 /// This can help significantly on symmetric problem. However there is
7564 /// currently a bit of overhead as the rest of the solver need to do some
7565 /// translation between the folded LP and the rest of the problem.
7566 /// </summary>
7567 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7568 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7569 public bool UseSymmetryInLp {
7570 get { if ((_hasBits7 & 524288) != 0) { return useSymmetryInLp_; } else { return UseSymmetryInLpDefaultValue; } }
7571 set {
7572 _hasBits7 |= 524288;
7573 useSymmetryInLp_ = value;
7574 }
7575 }
7577 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7578 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7579 public bool HasUseSymmetryInLp {
7580 get { return (_hasBits7 & 524288) != 0; }
7581 }
7583 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7584 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7585 public void ClearUseSymmetryInLp() {
7586 _hasBits7 &= ~524288;
7587 }
7588
7591 private readonly static bool KeepSymmetryInPresolveDefaultValue = false;
7592
7593 private bool keepSymmetryInPresolve_;
7596 /// all. All presolve operations we do should keep the symmetry group intact
7597 /// or modify it properly. For now we have really little support for this. We
7598 /// will disable a bunch of presolve operations that could be supported.
7599 /// </summary>
7600 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7601 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7602 public bool KeepSymmetryInPresolve {
7603 get { if ((_hasBits7 & 2097152) != 0) { return keepSymmetryInPresolve_; } else { return KeepSymmetryInPresolveDefaultValue; } }
7604 set {
7605 _hasBits7 |= 2097152;
7606 keepSymmetryInPresolve_ = value;
7607 }
7608 }
7610 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7611 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7612 public bool HasKeepSymmetryInPresolve {
7613 get { return (_hasBits7 & 2097152) != 0; }
7616 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7617 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7618 public void ClearKeepSymmetryInPresolve() {
7619 _hasBits7 &= ~2097152;
7620 }
7621
7623 public const int SymmetryDetectionDeterministicTimeLimitFieldNumber = 302;
7624 private readonly static double SymmetryDetectionDeterministicTimeLimitDefaultValue = 1D;
7625
7626 private double symmetryDetectionDeterministicTimeLimit_;
7627
7630 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7631 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7633 get { if ((_hasBits7 & 1048576) != 0) { return symmetryDetectionDeterministicTimeLimit_; } else { return SymmetryDetectionDeterministicTimeLimitDefaultValue; } }
7634 set {
7635 _hasBits7 |= 1048576;
7636 symmetryDetectionDeterministicTimeLimit_ = value;
7637 }
7638 }
7640 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7641 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7642 public bool HasSymmetryDetectionDeterministicTimeLimit {
7643 get { return (_hasBits7 & 1048576) != 0; }
7644 }
7646 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7647 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7649 _hasBits7 &= ~1048576;
7650 }
7651
7653 public const int NewLinearPropagationFieldNumber = 224;
7654 private readonly static bool NewLinearPropagationDefaultValue = true;
7655
7656 private bool newLinearPropagation_;
7657 /// <summary>
7658 /// The new linear propagation code treat all constraints at once and use
7659 /// an adaptation of Bellman-Ford-Tarjan to propagate constraint in a smarter
7660 /// order and potentially detect propagation cycle earlier.
7661 /// </summary>
7662 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7663 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7664 public bool NewLinearPropagation {
7665 get { if ((_hasBits5 & 32768) != 0) { return newLinearPropagation_; } else { return NewLinearPropagationDefaultValue; } }
7666 set {
7667 _hasBits5 |= 32768;
7668 newLinearPropagation_ = value;
7669 }
7670 }
7672 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7673 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7674 public bool HasNewLinearPropagation {
7675 get { return (_hasBits5 & 32768) != 0; }
7676 }
7677 /// <summary>Clears the value of the "new_linear_propagation" field</summary>
7678 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7679 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7680 public void ClearNewLinearPropagation() {
7681 _hasBits5 &= ~32768;
7682 }
7683
7684
7685 public const int LinearSplitSizeFieldNumber = 256;
7686 private readonly static int LinearSplitSizeDefaultValue = 100;
7688 private int linearSplitSize_;
7690
7693 /// </summary>
7694 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7695 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7696 public int LinearSplitSize {
7697 get { if ((_hasBits6 & 128) != 0) { return linearSplitSize_; } else { return LinearSplitSizeDefaultValue; } }
7698 set {
7699 _hasBits6 |= 128;
7700 linearSplitSize_ = value;
7701 }
7702 }
7704 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7705 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7706 public bool HasLinearSplitSize {
7707 get { return (_hasBits6 & 128) != 0; }
7708 }
7709 /// <summary>Clears the value of the "linear_split_size" field</summary>
7710 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7711 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7712 public void ClearLinearSplitSize() {
7713 _hasBits6 &= ~128;
7714 }
7715
7716
7717 public const int LinearizationLevelFieldNumber = 90;
7718 private readonly static int LinearizationLevelDefaultValue = 1;
7720 private int linearizationLevel_;
7722
7725 /// all the Boolean constraints.
7726 /// </summary>
7727 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7728 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7729 public int LinearizationLevel {
7730 get { if ((_hasBits2 & 2) != 0) { return linearizationLevel_; } else { return LinearizationLevelDefaultValue; } }
7731 set {
7732 _hasBits2 |= 2;
7733 linearizationLevel_ = value;
7734 }
7735 }
7737 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7738 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7739 public bool HasLinearizationLevel {
7740 get { return (_hasBits2 & 2) != 0; }
7743 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7744 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7745 public void ClearLinearizationLevel() {
7746 _hasBits2 &= ~2;
7747 }
7748
7750 public const int BooleanEncodingLevelFieldNumber = 107;
7751 private readonly static int BooleanEncodingLevelDefaultValue = 1;
7752
7753 private int booleanEncodingLevel_;
7754
7757 /// </summary>
7758 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7759 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7760 public int BooleanEncodingLevel {
7761 get { if ((_hasBits2 & 16384) != 0) { return booleanEncodingLevel_; } else { return BooleanEncodingLevelDefaultValue; } }
7762 set {
7763 _hasBits2 |= 16384;
7764 booleanEncodingLevel_ = value;
7765 }
7766 }
7768 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7769 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7770 public bool HasBooleanEncodingLevel {
7771 get { return (_hasBits2 & 16384) != 0; }
7772 }
7774 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7775 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7776 public void ClearBooleanEncodingLevel() {
7777 _hasBits2 &= ~16384;
7778 }
7779
7781 public const int MaxDomainSizeWhenEncodingEqNeqConstraintsFieldNumber = 191;
7782 private readonly static int MaxDomainSizeWhenEncodingEqNeqConstraintsDefaultValue = 16;
7783
7784 private int maxDomainSizeWhenEncodingEqNeqConstraints_;
7787
7790 /// </summary>
7791 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7792 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7794 get { if ((_hasBits4 & 4194304) != 0) { return maxDomainSizeWhenEncodingEqNeqConstraints_; } else { return MaxDomainSizeWhenEncodingEqNeqConstraintsDefaultValue; } }
7795 set {
7796 _hasBits4 |= 4194304;
7797 maxDomainSizeWhenEncodingEqNeqConstraints_ = value;
7798 }
7799 }
7801 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7802 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7803 public bool HasMaxDomainSizeWhenEncodingEqNeqConstraints {
7804 get { return (_hasBits4 & 4194304) != 0; }
7807 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7808 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7809 public void ClearMaxDomainSizeWhenEncodingEqNeqConstraints() {
7810 _hasBits4 &= ~4194304;
7811 }
7812
7814 public const int MaxNumCutsFieldNumber = 91;
7815 private readonly static int MaxNumCutsDefaultValue = 10000;
7816
7817 private int maxNumCuts_;
7818
7821 ///
7822 /// TODO(user): We should probably remove this parameters, and just always
7823 /// generate cuts but only keep the best n or something.
7824 /// </summary>
7825 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7826 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7827 public int MaxNumCuts {
7828 get { if ((_hasBits2 & 4) != 0) { return maxNumCuts_; } else { return MaxNumCutsDefaultValue; } }
7829 set {
7830 _hasBits2 |= 4;
7831 maxNumCuts_ = value;
7832 }
7833 }
7835 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7836 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7837 public bool HasMaxNumCuts {
7838 get { return (_hasBits2 & 4) != 0; }
7839 }
7841 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7842 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7843 public void ClearMaxNumCuts() {
7844 _hasBits2 &= ~4;
7845 }
7846
7848 public const int CutLevelFieldNumber = 196;
7849 private readonly static int CutLevelDefaultValue = 1;
7850
7851 private int cutLevel_;
7854 /// have one level. Note also that most cuts are only used at linearization
7855 /// level >= 2.
7856 /// </summary>
7857 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7858 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7859 public int CutLevel {
7860 get { if ((_hasBits4 & 134217728) != 0) { return cutLevel_; } else { return CutLevelDefaultValue; } }
7861 set {
7862 _hasBits4 |= 134217728;
7863 cutLevel_ = value;
7864 }
7865 }
7867 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7868 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7869 public bool HasCutLevel {
7870 get { return (_hasBits4 & 134217728) != 0; }
7871 }
7873 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7874 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7875 public void ClearCutLevel() {
7876 _hasBits4 &= ~134217728;
7877 }
7878
7880 public const int OnlyAddCutsAtLevelZeroFieldNumber = 92;
7881 private readonly static bool OnlyAddCutsAtLevelZeroDefaultValue = false;
7882
7883 private bool onlyAddCutsAtLevelZero_;
7886
7888 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7889 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7890 public bool OnlyAddCutsAtLevelZero {
7891 get { if ((_hasBits2 & 8) != 0) { return onlyAddCutsAtLevelZero_; } else { return OnlyAddCutsAtLevelZeroDefaultValue; } }
7892 set {
7893 _hasBits2 |= 8;
7894 onlyAddCutsAtLevelZero_ = value;
7895 }
7896 }
7898 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7899 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7900 public bool HasOnlyAddCutsAtLevelZero {
7901 get { return (_hasBits2 & 8) != 0; }
7902 }
7904 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7905 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7906 public void ClearOnlyAddCutsAtLevelZero() {
7907 _hasBits2 &= ~8;
7908 }
7909
7911 public const int AddObjectiveCutFieldNumber = 197;
7912 private readonly static bool AddObjectiveCutDefaultValue = false;
7913
7914 private bool addObjectiveCut_;
7915 /// <summary>
7916 /// When the LP objective is fractional, do we add the cut that forces the
7917 /// linear objective expression to be greater or equal to this fractional value
7918 /// rounded up? We can always do that since our objective is integer, and
7919 /// combined with MIR heuristic to reduce the coefficient of such cut, it can
7920 /// help.
7921 /// </summary>
7922 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7923 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7924 public bool AddObjectiveCut {
7925 get { if ((_hasBits4 & 268435456) != 0) { return addObjectiveCut_; } else { return AddObjectiveCutDefaultValue; } }
7926 set {
7927 _hasBits4 |= 268435456;
7928 addObjectiveCut_ = value;
7929 }
7930 }
7932 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7933 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7934 public bool HasAddObjectiveCut {
7935 get { return (_hasBits4 & 268435456) != 0; }
7938 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7939 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7940 public void ClearAddObjectiveCut() {
7941 _hasBits4 &= ~268435456;
7942 }
7943
7945 public const int AddCgCutsFieldNumber = 117;
7946 private readonly static bool AddCgCutsDefaultValue = true;
7947
7948 private bool addCgCuts_;
7949
7952 /// </summary>
7953 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7954 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7955 public bool AddCgCuts {
7956 get { if ((_hasBits2 & 8388608) != 0) { return addCgCuts_; } else { return AddCgCutsDefaultValue; } }
7957 set {
7958 _hasBits2 |= 8388608;
7959 addCgCuts_ = value;
7960 }
7961 }
7963 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7964 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7965 public bool HasAddCgCuts {
7966 get { return (_hasBits2 & 8388608) != 0; }
7967 }
7969 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7970 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7971 public void ClearAddCgCuts() {
7972 _hasBits2 &= ~8388608;
7973 }
7974
7976 public const int AddMirCutsFieldNumber = 120;
7977 private readonly static bool AddMirCutsDefaultValue = true;
7978
7979 private bool addMirCuts_;
7980 /// <summary>
7981 /// Whether we generate MIR cuts at root node.
7982 /// Note that for now, this is not heavily tuned.
7983 /// </summary>
7984 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7985 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7986 public bool AddMirCuts {
7987 get { if ((_hasBits2 & 33554432) != 0) { return addMirCuts_; } else { return AddMirCutsDefaultValue; } }
7988 set {
7989 _hasBits2 |= 33554432;
7990 addMirCuts_ = value;
7992 }
7994 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7995 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7996 public bool HasAddMirCuts {
7997 get { return (_hasBits2 & 33554432) != 0; }
7998 }
8000 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8001 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8002 public void ClearAddMirCuts() {
8003 _hasBits2 &= ~33554432;
8004 }
8005
8007 public const int AddZeroHalfCutsFieldNumber = 169;
8008 private readonly static bool AddZeroHalfCutsDefaultValue = true;
8009
8010 private bool addZeroHalfCuts_;
8011 /// <summary>
8012 /// Whether we generate Zero-Half cuts at root node.
8013 /// Note that for now, this is not heavily tuned.
8014 /// </summary>
8015 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8016 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8017 public bool AddZeroHalfCuts {
8018 get { if ((_hasBits4 & 8) != 0) { return addZeroHalfCuts_; } else { return AddZeroHalfCutsDefaultValue; } }
8019 set {
8020 _hasBits4 |= 8;
8021 addZeroHalfCuts_ = value;
8023 }
8025 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8026 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8027 public bool HasAddZeroHalfCuts {
8028 get { return (_hasBits4 & 8) != 0; }
8029 }
8031 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8032 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8033 public void ClearAddZeroHalfCuts() {
8034 _hasBits4 &= ~8;
8035 }
8036
8038 public const int AddCliqueCutsFieldNumber = 172;
8039 private readonly static bool AddCliqueCutsDefaultValue = true;
8040
8041 private bool addCliqueCuts_;
8042 /// <summary>
8043 /// Whether we generate clique cuts from the binary implication graph. Note
8044 /// that as the search goes on, this graph will contains new binary clauses
8045 /// learned by the SAT engine.
8046 /// </summary>
8047 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8048 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8049 public bool AddCliqueCuts {
8050 get { if ((_hasBits4 & 32) != 0) { return addCliqueCuts_; } else { return AddCliqueCutsDefaultValue; } }
8051 set {
8052 _hasBits4 |= 32;
8053 addCliqueCuts_ = value;
8054 }
8055 }
8057 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8058 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8059 public bool HasAddCliqueCuts {
8060 get { return (_hasBits4 & 32) != 0; }
8061 }
8063 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8064 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8065 public void ClearAddCliqueCuts() {
8066 _hasBits4 &= ~32;
8067 }
8068
8070 public const int AddRltCutsFieldNumber = 279;
8071 private readonly static bool AddRltCutsDefaultValue = true;
8072
8073 private bool addRltCuts_;
8076
8078 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8079 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8080 public bool AddRltCuts {
8081 get { if ((_hasBits6 & 1073741824) != 0) { return addRltCuts_; } else { return AddRltCutsDefaultValue; } }
8082 set {
8083 _hasBits6 |= 1073741824;
8084 addRltCuts_ = value;
8085 }
8086 }
8088 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8089 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8090 public bool HasAddRltCuts {
8091 get { return (_hasBits6 & 1073741824) != 0; }
8092 }
8094 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8095 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8096 public void ClearAddRltCuts() {
8097 _hasBits6 &= ~1073741824;
8098 }
8099
8101 public const int MaxAllDiffCutSizeFieldNumber = 148;
8102 private readonly static int MaxAllDiffCutSizeDefaultValue = 64;
8103
8104 private int maxAllDiffCutSize_;
8105 /// <summary>
8106 /// Cut generator for all diffs can add too many cuts for large all_diff
8107 /// constraints. This parameter restricts the large all_diff constraints to
8108 /// have a cut generator.
8109 /// </summary>
8110 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8111 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8112 public int MaxAllDiffCutSize {
8113 get { if ((_hasBits3 & 65536) != 0) { return maxAllDiffCutSize_; } else { return MaxAllDiffCutSizeDefaultValue; } }
8114 set {
8115 _hasBits3 |= 65536;
8116 maxAllDiffCutSize_ = value;
8117 }
8118 }
8120 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8121 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8122 public bool HasMaxAllDiffCutSize {
8123 get { return (_hasBits3 & 65536) != 0; }
8124 }
8126 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8127 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8128 public void ClearMaxAllDiffCutSize() {
8129 _hasBits3 &= ~65536;
8130 }
8131
8133 public const int AddLinMaxCutsFieldNumber = 152;
8134 private readonly static bool AddLinMaxCutsDefaultValue = true;
8135
8136 private bool addLinMaxCuts_;
8139
8142 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8143 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8144 public bool AddLinMaxCuts {
8145 get { if ((_hasBits3 & 524288) != 0) { return addLinMaxCuts_; } else { return AddLinMaxCutsDefaultValue; } }
8146 set {
8147 _hasBits3 |= 524288;
8148 addLinMaxCuts_ = value;
8149 }
8150 }
8152 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8153 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8154 public bool HasAddLinMaxCuts {
8155 get { return (_hasBits3 & 524288) != 0; }
8156 }
8158 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8159 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8160 public void ClearAddLinMaxCuts() {
8161 _hasBits3 &= ~524288;
8162 }
8163
8165 public const int MaxIntegerRoundingScalingFieldNumber = 119;
8166 private readonly static int MaxIntegerRoundingScalingDefaultValue = 600;
8167
8168 private int maxIntegerRoundingScaling_;
8171
8174 /// is no strict dominance relationship.
8175 ///
8176 /// Setting this to 2 result in the "strong fractional rouding" of Letchford
8177 /// and Lodi.
8178 /// </summary>
8179 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8180 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8181 public int MaxIntegerRoundingScaling {
8182 get { if ((_hasBits2 & 16777216) != 0) { return maxIntegerRoundingScaling_; } else { return MaxIntegerRoundingScalingDefaultValue; } }
8183 set {
8184 _hasBits2 |= 16777216;
8185 maxIntegerRoundingScaling_ = value;
8186 }
8187 }
8189 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8190 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8191 public bool HasMaxIntegerRoundingScaling {
8192 get { return (_hasBits2 & 16777216) != 0; }
8193 }
8195 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8196 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8197 public void ClearMaxIntegerRoundingScaling() {
8198 _hasBits2 &= ~16777216;
8199 }
8202 public const int AddLpConstraintsLazilyFieldNumber = 112;
8203 private readonly static bool AddLpConstraintsLazilyDefaultValue = true;
8204
8205 private bool addLpConstraintsLazily_;
8206 /// <summary>
8207 /// If true, we start by an empty LP, and only add constraints not satisfied
8208 /// by the current LP solution batch by batch. A constraint that is only added
8209 /// like this is known as a "lazy" constraint in the literature, except that we
8210 /// currently consider all constraints as lazy here.
8211 /// </summary>
8212 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8213 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8214 public bool AddLpConstraintsLazily {
8215 get { if ((_hasBits2 & 262144) != 0) { return addLpConstraintsLazily_; } else { return AddLpConstraintsLazilyDefaultValue; } }
8216 set {
8217 _hasBits2 |= 262144;
8218 addLpConstraintsLazily_ = value;
8219 }
8220 }
8222 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8223 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8224 public bool HasAddLpConstraintsLazily {
8225 get { return (_hasBits2 & 262144) != 0; }
8226 }
8228 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8229 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8230 public void ClearAddLpConstraintsLazily() {
8231 _hasBits2 &= ~262144;
8232 }
8233
8235 public const int RootLpIterationsFieldNumber = 227;
8236 private readonly static int RootLpIterationsDefaultValue = 2000;
8237
8238 private int rootLpIterations_;
8241
8244 /// </summary>
8245 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8246 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8247 public int RootLpIterations {
8248 get { if ((_hasBits5 & 262144) != 0) { return rootLpIterations_; } else { return RootLpIterationsDefaultValue; } }
8249 set {
8250 _hasBits5 |= 262144;
8251 rootLpIterations_ = value;
8252 }
8253 }
8255 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8256 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8257 public bool HasRootLpIterations {
8258 get { return (_hasBits5 & 262144) != 0; }
8259 }
8261 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8262 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8263 public void ClearRootLpIterations() {
8264 _hasBits5 &= ~262144;
8265 }
8266
8268 public const int MinOrthogonalityForLpConstraintsFieldNumber = 115;
8269 private readonly static double MinOrthogonalityForLpConstraintsDefaultValue = 0.05D;
8270
8271 private double minOrthogonalityForLpConstraints_;
8274
8277 /// feature.
8278 /// </summary>
8279 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8280 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8281 public double MinOrthogonalityForLpConstraints {
8282 get { if ((_hasBits2 & 2097152) != 0) { return minOrthogonalityForLpConstraints_; } else { return MinOrthogonalityForLpConstraintsDefaultValue; } }
8283 set {
8284 _hasBits2 |= 2097152;
8285 minOrthogonalityForLpConstraints_ = value;
8286 }
8287 }
8289 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8290 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8291 public bool HasMinOrthogonalityForLpConstraints {
8292 get { return (_hasBits2 & 2097152) != 0; }
8293 }
8294 /// <summary>Clears the value of the "min_orthogonality_for_lp_constraints" field</summary>
8295 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8296 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8298 _hasBits2 &= ~2097152;
8299 }
8300
8301
8302 public const int MaxCutRoundsAtLevelZeroFieldNumber = 154;
8303 private readonly static int MaxCutRoundsAtLevelZeroDefaultValue = 1;
8305 private int maxCutRoundsAtLevelZero_;
8307
8309 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8310 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8311 public int MaxCutRoundsAtLevelZero {
8312 get { if ((_hasBits3 & 2097152) != 0) { return maxCutRoundsAtLevelZero_; } else { return MaxCutRoundsAtLevelZeroDefaultValue; } }
8313 set {
8314 _hasBits3 |= 2097152;
8315 maxCutRoundsAtLevelZero_ = value;
8316 }
8317 }
8319 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8320 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8321 public bool HasMaxCutRoundsAtLevelZero {
8322 get { return (_hasBits3 & 2097152) != 0; }
8323 }
8325 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8326 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8327 public void ClearMaxCutRoundsAtLevelZero() {
8328 _hasBits3 &= ~2097152;
8329 }
8330
8332 public const int MaxConsecutiveInactiveCountFieldNumber = 121;
8333 private readonly static int MaxConsecutiveInactiveCountDefaultValue = 100;
8334
8335 private int maxConsecutiveInactiveCount_;
8338 /// solves, remove it from the LP. Note that it might be added again later if
8339 /// it become violated by the current LP solution.
8340 /// </summary>
8341 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8342 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8343 public int MaxConsecutiveInactiveCount {
8344 get { if ((_hasBits2 & 67108864) != 0) { return maxConsecutiveInactiveCount_; } else { return MaxConsecutiveInactiveCountDefaultValue; } }
8345 set {
8346 _hasBits2 |= 67108864;
8347 maxConsecutiveInactiveCount_ = value;
8348 }
8351 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8352 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8353 public bool HasMaxConsecutiveInactiveCount {
8354 get { return (_hasBits2 & 67108864) != 0; }
8355 }
8357 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8358 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8359 public void ClearMaxConsecutiveInactiveCount() {
8360 _hasBits2 &= ~67108864;
8361 }
8362
8364 public const int CutMaxActiveCountValueFieldNumber = 155;
8365 private readonly static double CutMaxActiveCountValueDefaultValue = 1e+10D;
8366
8367 private double cutMaxActiveCountValue_;
8368 /// <summary>
8369 /// These parameters are similar to sat clause management activity parameters.
8370 /// They are effective only if the number of generated cuts exceed the storage
8371 /// limit. Default values are based on a few experiments on miplib instances.
8372 /// </summary>
8373 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8374 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8375 public double CutMaxActiveCountValue {
8376 get { if ((_hasBits3 & 4194304) != 0) { return cutMaxActiveCountValue_; } else { return CutMaxActiveCountValueDefaultValue; } }
8377 set {
8378 _hasBits3 |= 4194304;
8379 cutMaxActiveCountValue_ = value;
8380 }
8381 }
8383 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8384 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8385 public bool HasCutMaxActiveCountValue {
8386 get { return (_hasBits3 & 4194304) != 0; }
8387 }
8389 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8390 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8391 public void ClearCutMaxActiveCountValue() {
8392 _hasBits3 &= ~4194304;
8393 }
8394
8396 public const int CutActiveCountDecayFieldNumber = 156;
8397 private readonly static double CutActiveCountDecayDefaultValue = 0.8D;
8398
8399 private double cutActiveCountDecay_;
8400 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8401 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8402 public double CutActiveCountDecay {
8403 get { if ((_hasBits3 & 8388608) != 0) { return cutActiveCountDecay_; } else { return CutActiveCountDecayDefaultValue; } }
8404 set {
8405 _hasBits3 |= 8388608;
8406 cutActiveCountDecay_ = value;
8407 }
8408 }
8409
8410 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8411 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8412 public bool HasCutActiveCountDecay {
8413 get { return (_hasBits3 & 8388608) != 0; }
8414 }
8416 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8417 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8418 public void ClearCutActiveCountDecay() {
8419 _hasBits3 &= ~8388608;
8420 }
8421
8422 /// <summary>Field number for the "cut_cleanup_target" field.</summary>
8423 public const int CutCleanupTargetFieldNumber = 157;
8424 private readonly static int CutCleanupTargetDefaultValue = 1000;
8425
8426 private int cutCleanupTarget_;
8429
8430 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8431 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8432 public int CutCleanupTarget {
8433 get { if ((_hasBits3 & 16777216) != 0) { return cutCleanupTarget_; } else { return CutCleanupTargetDefaultValue; } }
8434 set {
8435 _hasBits3 |= 16777216;
8436 cutCleanupTarget_ = value;
8437 }
8440 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8441 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8442 public bool HasCutCleanupTarget {
8443 get { return (_hasBits3 & 16777216) != 0; }
8444 }
8446 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8447 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8448 public void ClearCutCleanupTarget() {
8449 _hasBits3 &= ~16777216;
8450 }
8451
8453 public const int NewConstraintsBatchSizeFieldNumber = 122;
8454 private readonly static int NewConstraintsBatchSizeDefaultValue = 50;
8455
8456 private int newConstraintsBatchSize_;
8459 /// the beginning of the solve, we do add more than this.
8460 /// </summary>
8461 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8462 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8463 public int NewConstraintsBatchSize {
8464 get { if ((_hasBits2 & 134217728) != 0) { return newConstraintsBatchSize_; } else { return NewConstraintsBatchSizeDefaultValue; } }
8465 set {
8466 _hasBits2 |= 134217728;
8467 newConstraintsBatchSize_ = value;
8468 }
8469 }
8471 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8472 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8473 public bool HasNewConstraintsBatchSize {
8474 get { return (_hasBits2 & 134217728) != 0; }
8475 }
8477 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8478 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8480 _hasBits2 &= ~134217728;
8481 }
8482
8484 public const int ExploitIntegerLpSolutionFieldNumber = 94;
8485 private readonly static bool ExploitIntegerLpSolutionDefaultValue = true;
8486
8487 private bool exploitIntegerLpSolution_;
8489 /// If true and the Lp relaxation of the problem has an integer optimal
8490 /// solution, try to exploit it. Note that since the LP relaxation may not
8491 /// contain all the constraints, such a solution is not necessarily a solution
8492 /// of the full problem.
8493 /// </summary>
8494 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8495 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8496 public bool ExploitIntegerLpSolution {
8497 get { if ((_hasBits2 & 32) != 0) { return exploitIntegerLpSolution_; } else { return ExploitIntegerLpSolutionDefaultValue; } }
8498 set {
8499 _hasBits2 |= 32;
8500 exploitIntegerLpSolution_ = value;
8501 }
8502 }
8504 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8505 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8506 public bool HasExploitIntegerLpSolution {
8507 get { return (_hasBits2 & 32) != 0; }
8508 }
8510 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8511 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8512 public void ClearExploitIntegerLpSolution() {
8513 _hasBits2 &= ~32;
8514 }
8515
8517 public const int ExploitAllLpSolutionFieldNumber = 116;
8518 private readonly static bool ExploitAllLpSolutionDefaultValue = true;
8519
8520 private bool exploitAllLpSolution_;
8523
8526 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8527 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8528 public bool ExploitAllLpSolution {
8529 get { if ((_hasBits2 & 4194304) != 0) { return exploitAllLpSolution_; } else { return ExploitAllLpSolutionDefaultValue; } }
8530 set {
8531 _hasBits2 |= 4194304;
8532 exploitAllLpSolution_ = value;
8533 }
8534 }
8536 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8537 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8538 public bool HasExploitAllLpSolution {
8539 get { return (_hasBits2 & 4194304) != 0; }
8540 }
8542 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8543 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8544 public void ClearExploitAllLpSolution() {
8545 _hasBits2 &= ~4194304;
8546 }
8547
8549 public const int ExploitBestSolutionFieldNumber = 130;
8550 private readonly static bool ExploitBestSolutionDefaultValue = false;
8551
8552 private bool exploitBestSolution_;
8553 /// <summary>
8554 /// When branching on a variable, follow the last best solution value.
8555 /// </summary>
8556 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8557 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8558 public bool ExploitBestSolution {
8559 get { if ((_hasBits3 & 8) != 0) { return exploitBestSolution_; } else { return ExploitBestSolutionDefaultValue; } }
8560 set {
8561 _hasBits3 |= 8;
8562 exploitBestSolution_ = value;
8563 }
8566 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8567 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8568 public bool HasExploitBestSolution {
8569 get { return (_hasBits3 & 8) != 0; }
8570 }
8572 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8573 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8574 public void ClearExploitBestSolution() {
8575 _hasBits3 &= ~8;
8576 }
8577
8579 public const int ExploitRelaxationSolutionFieldNumber = 161;
8580 private readonly static bool ExploitRelaxationSolutionDefaultValue = false;
8581
8582 private bool exploitRelaxationSolution_;
8585 /// value. We use the relaxation with the tightest bound on the objective as
8586 /// the best relaxation solution.
8587 /// </summary>
8588 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8589 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8590 public bool ExploitRelaxationSolution {
8591 get { if ((_hasBits3 & 134217728) != 0) { return exploitRelaxationSolution_; } else { return ExploitRelaxationSolutionDefaultValue; } }
8592 set {
8593 _hasBits3 |= 134217728;
8594 exploitRelaxationSolution_ = value;
8595 }
8598 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8599 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8600 public bool HasExploitRelaxationSolution {
8601 get { return (_hasBits3 & 134217728) != 0; }
8602 }
8604 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8605 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8606 public void ClearExploitRelaxationSolution() {
8607 _hasBits3 &= ~134217728;
8608 }
8609
8611 public const int ExploitObjectiveFieldNumber = 131;
8612 private readonly static bool ExploitObjectiveDefaultValue = true;
8613
8614 private bool exploitObjective_;
8615 /// <summary>
8616 /// When branching an a variable that directly affect the objective,
8617 /// branch on the value that lead to the best objective first.
8618 /// </summary>
8619 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8620 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8621 public bool ExploitObjective {
8622 get { if ((_hasBits3 & 16) != 0) { return exploitObjective_; } else { return ExploitObjectiveDefaultValue; } }
8623 set {
8624 _hasBits3 |= 16;
8625 exploitObjective_ = value;
8627 }
8629 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8630 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8631 public bool HasExploitObjective {
8632 get { return (_hasBits3 & 16) != 0; }
8633 }
8635 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8636 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8638 _hasBits3 &= ~16;
8639 }
8640
8642 public const int DetectLinearizedProductFieldNumber = 277;
8643 private readonly static bool DetectLinearizedProductDefaultValue = false;
8644
8645 private bool detectLinearizedProduct_;
8647 /// Infer products of Boolean or of Boolean time IntegerVariable from the
8648 /// linear constrainst in the problem. This can be used in some cuts, altough
8649 /// for now we don't really exploit it.
8650 /// </summary>
8651 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8652 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8654 get { if ((_hasBits6 & 268435456) != 0) { return detectLinearizedProduct_; } else { return DetectLinearizedProductDefaultValue; } }
8655 set {
8656 _hasBits6 |= 268435456;
8657 detectLinearizedProduct_ = value;
8659 }
8661 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8662 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8663 public bool HasDetectLinearizedProduct {
8664 get { return (_hasBits6 & 268435456) != 0; }
8665 }
8667 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8668 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8669 public void ClearDetectLinearizedProduct() {
8670 _hasBits6 &= ~268435456;
8671 }
8672
8674 public const int MipMaxBoundFieldNumber = 124;
8675 private readonly static double MipMaxBoundDefaultValue = 1e+07D;
8676
8677 private double mipMaxBound_;
8678 /// <summary>
8679 /// We need to bound the maximum magnitude of the variables for CP-SAT, and
8680 /// that is the bound we use. If the MIP model expect larger variable value in
8681 /// the solution, then the converted model will likely not be relevant.
8682 /// </summary>
8683 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8684 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8685 public double MipMaxBound {
8686 get { if ((_hasBits2 & 536870912) != 0) { return mipMaxBound_; } else { return MipMaxBoundDefaultValue; } }
8687 set {
8688 _hasBits2 |= 536870912;
8689 mipMaxBound_ = value;
8690 }
8691 }
8693 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8694 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8695 public bool HasMipMaxBound {
8696 get { return (_hasBits2 & 536870912) != 0; }
8697 }
8699 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8700 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8701 public void ClearMipMaxBound() {
8702 _hasBits2 &= ~536870912;
8703 }
8704
8706 public const int MipVarScalingFieldNumber = 125;
8707 private readonly static double MipVarScalingDefaultValue = 1D;
8708
8709 private double mipVarScaling_;
8710 /// <summary>
8711 /// All continuous variable of the problem will be multiplied by this factor.
8712 /// By default, we don't do any variable scaling and rely on the MIP model to
8713 /// specify continuous variable domain with the wanted precision.
8714 /// </summary>
8715 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8716 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8717 public double MipVarScaling {
8718 get { if ((_hasBits2 & 1073741824) != 0) { return mipVarScaling_; } else { return MipVarScalingDefaultValue; } }
8719 set {
8720 _hasBits2 |= 1073741824;
8721 mipVarScaling_ = value;
8722 }
8723 }
8725 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8726 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8727 public bool HasMipVarScaling {
8728 get { return (_hasBits2 & 1073741824) != 0; }
8729 }
8731 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8732 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8733 public void ClearMipVarScaling() {
8734 _hasBits2 &= ~1073741824;
8735 }
8736
8738 public const int MipScaleLargeDomainFieldNumber = 225;
8739 private readonly static bool MipScaleLargeDomainDefaultValue = false;
8740
8741 private bool mipScaleLargeDomain_;
8742 /// <summary>
8743 /// If this is false, then mip_var_scaling is only applied to variables with
8744 /// "small" domain. If it is true, we scale all floating point variable
8745 /// independenlty of their domain.
8746 /// </summary>
8747 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8748 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8749 public bool MipScaleLargeDomain {
8750 get { if ((_hasBits5 & 65536) != 0) { return mipScaleLargeDomain_; } else { return MipScaleLargeDomainDefaultValue; } }
8751 set {
8752 _hasBits5 |= 65536;
8753 mipScaleLargeDomain_ = value;
8754 }
8755 }
8757 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8758 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8759 public bool HasMipScaleLargeDomain {
8760 get { return (_hasBits5 & 65536) != 0; }
8761 }
8763 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8764 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8765 public void ClearMipScaleLargeDomain() {
8766 _hasBits5 &= ~65536;
8767 }
8768
8770 public const int MipAutomaticallyScaleVariablesFieldNumber = 166;
8771 private readonly static bool MipAutomaticallyScaleVariablesDefaultValue = true;
8772
8773 private bool mipAutomaticallyScaleVariables_;
8774 /// <summary>
8775 /// If true, some continuous variable might be automatically scaled. For now,
8776 /// this is only the case where we detect that a variable is actually an
8777 /// integer multiple of a constant. For instance, variables of the form k * 0.5
8778 /// are quite frequent, and if we detect this, we will scale such variable
8779 /// domain by 2 to make it implied integer.
8780 /// </summary>
8781 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8782 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8783 public bool MipAutomaticallyScaleVariables {
8784 get { if ((_hasBits4 & 1) != 0) { return mipAutomaticallyScaleVariables_; } else { return MipAutomaticallyScaleVariablesDefaultValue; } }
8785 set {
8786 _hasBits4 |= 1;
8787 mipAutomaticallyScaleVariables_ = value;
8788 }
8789 }
8791 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8792 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8793 public bool HasMipAutomaticallyScaleVariables {
8794 get { return (_hasBits4 & 1) != 0; }
8795 }
8796 /// <summary>Clears the value of the "mip_automatically_scale_variables" field</summary>
8797 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8798 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8800 _hasBits4 &= ~1;
8801 }
8802
8803
8804 public const int OnlySolveIpFieldNumber = 222;
8805 private readonly static bool OnlySolveIpDefaultValue = false;
8807 private bool onlySolveIp_;
8809
8812 /// just solve a more restricted version of the original problem.
8813 ///
8814 /// This parameters is here to prevent user to think the solution is optimal
8815 /// when it might not be. One will need to manually set this to false to solve
8816 /// a MIP model where the optimal might be different.
8817 ///
8818 /// Note that this is tested after some MIP presolve steps, so even if not
8819 /// all original variable are integer, we might end up with a pure IP after
8820 /// presolve and after implied integer detection.
8821 /// </summary>
8822 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8823 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8824 public bool OnlySolveIp {
8825 get { if ((_hasBits5 & 8192) != 0) { return onlySolveIp_; } else { return OnlySolveIpDefaultValue; } }
8826 set {
8827 _hasBits5 |= 8192;
8828 onlySolveIp_ = value;
8829 }
8832 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8833 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8834 public bool HasOnlySolveIp {
8835 get { return (_hasBits5 & 8192) != 0; }
8836 }
8837
8838 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8839 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8840 public void ClearOnlySolveIp() {
8841 _hasBits5 &= ~8192;
8842 }
8843
8845 public const int MipWantedPrecisionFieldNumber = 126;
8846 private readonly static double MipWantedPrecisionDefaultValue = 1e-06D;
8847
8848 private double mipWantedPrecision_;
8849
8868 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8869 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8870 public double MipWantedPrecision {
8871 get { if ((_hasBits2 & -2147483648) != 0) { return mipWantedPrecision_; } else { return MipWantedPrecisionDefaultValue; } }
8872 set {
8873 _hasBits2 |= -2147483648;
8874 mipWantedPrecision_ = value;
8875 }
8876 }
8878 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8879 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8880 public bool HasMipWantedPrecision {
8881 get { return (_hasBits2 & -2147483648) != 0; }
8882 }
8883 /// <summary>Clears the value of the "mip_wanted_precision" field</summary>
8884 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8885 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8886 public void ClearMipWantedPrecision() {
8887 _hasBits2 &= ~-2147483648;
8888 }
8891 public const int MipMaxActivityExponentFieldNumber = 127;
8892 private readonly static int MipMaxActivityExponentDefaultValue = 53;
8893
8894 private int mipMaxActivityExponent_;
8905 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8906 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8907 public int MipMaxActivityExponent {
8908 get { if ((_hasBits3 & 1) != 0) { return mipMaxActivityExponent_; } else { return MipMaxActivityExponentDefaultValue; } }
8909 set {
8910 _hasBits3 |= 1;
8911 mipMaxActivityExponent_ = value;
8912 }
8913 }
8915 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8916 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8917 public bool HasMipMaxActivityExponent {
8918 get { return (_hasBits3 & 1) != 0; }
8919 }
8921 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8922 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8923 public void ClearMipMaxActivityExponent() {
8924 _hasBits3 &= ~1;
8925 }
8926
8928 public const int MipCheckPrecisionFieldNumber = 128;
8929 private readonly static double MipCheckPrecisionDefaultValue = 0.0001D;
8930
8931 private double mipCheckPrecision_;
8932 /// <summary>
8933 /// As explained in mip_precision and mip_max_activity_exponent, we cannot
8934 /// always reach the wanted precision during scaling. We use this threshold to
8935 /// enphasize in the logs when the precision seems bad.
8936 /// </summary>
8937 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8938 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8939 public double MipCheckPrecision {
8940 get { if ((_hasBits3 & 2) != 0) { return mipCheckPrecision_; } else { return MipCheckPrecisionDefaultValue; } }
8941 set {
8942 _hasBits3 |= 2;
8943 mipCheckPrecision_ = value;
8944 }
8945 }
8947 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8948 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8949 public bool HasMipCheckPrecision {
8950 get { return (_hasBits3 & 2) != 0; }
8951 }
8953 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8954 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8955 public void ClearMipCheckPrecision() {
8956 _hasBits3 &= ~2;
8957 }
8958
8961 private readonly static bool MipComputeTrueObjectiveBoundDefaultValue = true;
8962
8963 private bool mipComputeTrueObjectiveBound_;
8967
8970 /// </summary>
8971 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8972 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8973 public bool MipComputeTrueObjectiveBound {
8974 get { if ((_hasBits4 & 536870912) != 0) { return mipComputeTrueObjectiveBound_; } else { return MipComputeTrueObjectiveBoundDefaultValue; } }
8975 set {
8976 _hasBits4 |= 536870912;
8977 mipComputeTrueObjectiveBound_ = value;
8978 }
8979 }
8981 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8982 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8984 get { return (_hasBits4 & 536870912) != 0; }
8985 }
8987 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8988 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8989 public void ClearMipComputeTrueObjectiveBound() {
8990 _hasBits4 &= ~536870912;
8991 }
8994 public const int MipMaxValidMagnitudeFieldNumber = 199;
8995 private readonly static double MipMaxValidMagnitudeDefaultValue = 1e+20D;
8996
8997 private double mipMaxValidMagnitude_;
8999
9002 /// defensive, but in practice, users shouldn't use super large values in a
9003 /// MIP.
9004 /// </summary>
9005 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9006 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9007 public double MipMaxValidMagnitude {
9008 get { if ((_hasBits4 & 1073741824) != 0) { return mipMaxValidMagnitude_; } else { return MipMaxValidMagnitudeDefaultValue; } }
9009 set {
9010 _hasBits4 |= 1073741824;
9011 mipMaxValidMagnitude_ = value;
9012 }
9015 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9016 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9017 public bool HasMipMaxValidMagnitude {
9018 get { return (_hasBits4 & 1073741824) != 0; }
9019 }
9021 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9022 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9023 public void ClearMipMaxValidMagnitude() {
9024 _hasBits4 &= ~1073741824;
9025 }
9029 private readonly static bool MipTreatHighMagnitudeBoundsAsInfinityDefaultValue = false;
9030
9031 private bool mipTreatHighMagnitudeBoundsAsInfinity_;
9033
9036 /// silently transformed to +∞ or -∞.
9037 ///
9038 /// It is recommended to keep it at false, and create valid bounds.
9039 /// </summary>
9040 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9041 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9043 get { if ((_hasBits6 & 536870912) != 0) { return mipTreatHighMagnitudeBoundsAsInfinity_; } else { return MipTreatHighMagnitudeBoundsAsInfinityDefaultValue; } }
9044 set {
9045 _hasBits6 |= 536870912;
9046 mipTreatHighMagnitudeBoundsAsInfinity_ = value;
9048 }
9050 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9051 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9052 public bool HasMipTreatHighMagnitudeBoundsAsInfinity {
9053 get { return (_hasBits6 & 536870912) != 0; }
9054 }
9056 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9057 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9058 public void ClearMipTreatHighMagnitudeBoundsAsInfinity() {
9059 _hasBits6 &= ~536870912;
9061
9063 public const int MipDropToleranceFieldNumber = 232;
9064 private readonly static double MipDropToleranceDefaultValue = 1e-16D;
9065
9066 private double mipDropTolerance_;
9067
9070 /// </summary>
9071 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9072 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9073 public double MipDropTolerance {
9074 get { if ((_hasBits5 & 4194304) != 0) { return mipDropTolerance_; } else { return MipDropToleranceDefaultValue; } }
9075 set {
9076 _hasBits5 |= 4194304;
9077 mipDropTolerance_ = value;
9078 }
9079 }
9081 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9082 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9083 public bool HasMipDropTolerance {
9084 get { return (_hasBits5 & 4194304) != 0; }
9085 }
9087 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9088 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9089 public void ClearMipDropTolerance() {
9090 _hasBits5 &= ~4194304;
9091 }
9092
9094 public const int MipPresolveLevelFieldNumber = 261;
9095 private readonly static int MipPresolveLevelDefaultValue = 2;
9097 private int mipPresolveLevel_;
9103
9104 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9105 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9106 public int MipPresolveLevel {
9107 get { if ((_hasBits6 & 4096) != 0) { return mipPresolveLevel_; } else { return MipPresolveLevelDefaultValue; } }
9108 set {
9109 _hasBits6 |= 4096;
9110 mipPresolveLevel_ = value;
9111 }
9114 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9115 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9116 public bool HasMipPresolveLevel {
9117 get { return (_hasBits6 & 4096) != 0; }
9118 }
9120 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9121 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9122 public void ClearMipPresolveLevel() {
9123 _hasBits6 &= ~4096;
9124 }
9125
9126 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9127 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9128 public override bool Equals(object other) {
9129 return Equals(other as SatParameters);
9130 }
9131
9132 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9133 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9134 public bool Equals(SatParameters other) {
9135 if (ReferenceEquals(other, null)) {
9136 return false;
9138 if (ReferenceEquals(other, this)) {
9139 return true;
9140 }
9141 if (Name != other.Name) return false;
9142 if (PreferredVariableOrder != other.PreferredVariableOrder) return false;
9143 if (InitialPolarity != other.InitialPolarity) return false;
9144 if (UsePhaseSaving != other.UsePhaseSaving) return false;
9145 if (PolarityRephaseIncrement != other.PolarityRephaseIncrement) return false;
9146 if (PolarityExploitLsHints != other.PolarityExploitLsHints) return false;
9147 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RandomPolarityRatio, other.RandomPolarityRatio)) return false;
9148 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RandomBranchesRatio, other.RandomBranchesRatio)) return false;
9149 if (UseErwaHeuristic != other.UseErwaHeuristic) return false;
9150 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InitialVariablesActivity, other.InitialVariablesActivity)) return false;
9152 if (MinimizationAlgorithm != other.MinimizationAlgorithm) return false;
9155 if (ClauseCleanupPeriod != other.ClauseCleanupPeriod) return false;
9156 if (ClauseCleanupTarget != other.ClauseCleanupTarget) return false;
9157 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ClauseCleanupRatio, other.ClauseCleanupRatio)) return false;
9158 if (ClauseCleanupProtection != other.ClauseCleanupProtection) return false;
9159 if (ClauseCleanupLbdBound != other.ClauseCleanupLbdBound) return false;
9161 if (PbCleanupIncrement != other.PbCleanupIncrement) return false;
9162 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(PbCleanupRatio, other.PbCleanupRatio)) return false;
9163 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(VariableActivityDecay, other.VariableActivityDecay)) return false;
9164 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MaxVariableActivityValue, other.MaxVariableActivityValue)) return false;
9165 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(GlucoseMaxDecay, other.GlucoseMaxDecay)) return false;
9166 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(GlucoseDecayIncrement, other.GlucoseDecayIncrement)) return false;
9168 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ClauseActivityDecay, other.ClauseActivityDecay)) return false;
9169 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MaxClauseActivityValue, other.MaxClauseActivityValue)) return false;
9170 if(!restartAlgorithms_.Equals(other.restartAlgorithms_)) return false;
9171 if (DefaultRestartAlgorithms != other.DefaultRestartAlgorithms) return false;
9172 if (RestartPeriod != other.RestartPeriod) return false;
9173 if (RestartRunningWindowSize != other.RestartRunningWindowSize) return false;
9174 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RestartDlAverageRatio, other.RestartDlAverageRatio)) return false;
9175 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RestartLbdAverageRatio, other.RestartLbdAverageRatio)) return false;
9176 if (UseBlockingRestart != other.UseBlockingRestart) return false;
9177 if (BlockingRestartWindowSize != other.BlockingRestartWindowSize) return false;
9178 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(BlockingRestartMultiplier, other.BlockingRestartMultiplier)) return false;
9180 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(StrategyChangeIncreaseRatio, other.StrategyChangeIncreaseRatio)) return false;
9181 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MaxTimeInSeconds, other.MaxTimeInSeconds)) return false;
9182 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MaxDeterministicTime, other.MaxDeterministicTime)) return false;
9183 if (MaxNumDeterministicBatches != other.MaxNumDeterministicBatches) return false;
9184 if (MaxNumberOfConflicts != other.MaxNumberOfConflicts) return false;
9185 if (MaxMemoryInMb != other.MaxMemoryInMb) return false;
9186 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(AbsoluteGapLimit, other.AbsoluteGapLimit)) return false;
9187 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RelativeGapLimit, other.RelativeGapLimit)) return false;
9188 if (RandomSeed != other.RandomSeed) return false;
9189 if (PermuteVariableRandomly != other.PermuteVariableRandomly) return false;
9191 if (UseAbslRandom != other.UseAbslRandom) return false;
9192 if (LogSearchProgress != other.LogSearchProgress) return false;
9193 if (LogSubsolverStatistics != other.LogSubsolverStatistics) return false;
9194 if (LogPrefix != other.LogPrefix) return false;
9195 if (LogToStdout != other.LogToStdout) return false;
9196 if (LogToResponse != other.LogToResponse) return false;
9197 if (UsePbResolution != other.UsePbResolution) return false;
9199 if (CountAssumptionLevelsInLbd != other.CountAssumptionLevelsInLbd) return false;
9200 if (PresolveBveThreshold != other.PresolveBveThreshold) return false;
9201 if (PresolveBveClauseWeight != other.PresolveBveClauseWeight) return false;
9202 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ProbingDeterministicTimeLimit, other.ProbingDeterministicTimeLimit)) return false;
9203 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(PresolveProbingDeterministicTimeLimit, other.PresolveProbingDeterministicTimeLimit)) return false;
9204 if (PresolveBlockedClause != other.PresolveBlockedClause) return false;
9205 if (PresolveUseBva != other.PresolveUseBva) return false;
9206 if (PresolveBvaThreshold != other.PresolveBvaThreshold) return false;
9207 if (MaxPresolveIterations != other.MaxPresolveIterations) return false;
9208 if (CpModelPresolve != other.CpModelPresolve) return false;
9209 if (CpModelProbingLevel != other.CpModelProbingLevel) return false;
9210 if (CpModelUseSatPresolve != other.CpModelUseSatPresolve) return false;
9211 if (RemoveFixedVariablesEarly != other.RemoveFixedVariablesEarly) return false;
9212 if (DetectTableWithCost != other.DetectTableWithCost) return false;
9213 if (TableCompressionLevel != other.TableCompressionLevel) return false;
9214 if (ExpandAlldiffConstraints != other.ExpandAlldiffConstraints) return false;
9215 if (ExpandReservoirConstraints != other.ExpandReservoirConstraints) return false;
9218 if (MaxLinMaxSizeForExpansion != other.MaxLinMaxSizeForExpansion) return false;
9219 if (DisableConstraintExpansion != other.DisableConstraintExpansion) return false;
9221 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MergeNoOverlapWorkLimit, other.MergeNoOverlapWorkLimit)) return false;
9222 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MergeAtMostOneWorkLimit, other.MergeAtMostOneWorkLimit)) return false;
9223 if (PresolveSubstitutionLevel != other.PresolveSubstitutionLevel) return false;
9225 if (PresolveInclusionWorkLimit != other.PresolveInclusionWorkLimit) return false;
9226 if (IgnoreNames != other.IgnoreNames) return false;
9227 if (InferAllDiffs != other.InferAllDiffs) return false;
9228 if (FindBigLinearOverlap != other.FindBigLinearOverlap) return false;
9229 if (UseSatInprocessing != other.UseSatInprocessing) return false;
9230 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InprocessingDtimeRatio, other.InprocessingDtimeRatio)) return false;
9231 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InprocessingProbingDtime, other.InprocessingProbingDtime)) return false;
9232 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InprocessingMinimizationDtime, other.InprocessingMinimizationDtime)) return false;
9235 if (NumWorkers != other.NumWorkers) return false;
9236 if (NumSearchWorkers != other.NumSearchWorkers) return false;
9237 if (NumFullSubsolvers != other.NumFullSubsolvers) return false;
9238 if(!subsolvers_.Equals(other.subsolvers_)) return false;
9239 if(!extraSubsolvers_.Equals(other.extraSubsolvers_)) return false;
9240 if(!ignoreSubsolvers_.Equals(other.ignoreSubsolvers_)) return false;
9241 if(!filterSubsolvers_.Equals(other.filterSubsolvers_)) return false;
9242 if(!subsolverParams_.Equals(other.subsolverParams_)) return false;
9243 if (InterleaveSearch != other.InterleaveSearch) return false;
9244 if (InterleaveBatchSize != other.InterleaveBatchSize) return false;
9245 if (ShareObjectiveBounds != other.ShareObjectiveBounds) return false;
9246 if (ShareLevelZeroBounds != other.ShareLevelZeroBounds) return false;
9247 if (ShareBinaryClauses != other.ShareBinaryClauses) return false;
9248 if (ShareGlueClauses != other.ShareGlueClauses) return false;
9249 if (MinimizeSharedClauses != other.MinimizeSharedClauses) return false;
9252 if (DebugCrashOnBadHint != other.DebugCrashOnBadHint) return false;
9254 if (UseOptimizationHints != other.UseOptimizationHints) return false;
9255 if (CoreMinimizationLevel != other.CoreMinimizationLevel) return false;
9256 if (FindMultipleCores != other.FindMultipleCores) return false;
9257 if (CoverOptimization != other.CoverOptimization) return false;
9258 if (MaxSatAssumptionOrder != other.MaxSatAssumptionOrder) return false;
9260 if (MaxSatStratification != other.MaxSatStratification) return false;
9261 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(PropagationLoopDetectionFactor, other.PropagationLoopDetectionFactor)) return false;
9272 if (ExploitAllPrecedences != other.ExploitAllPrecedences) return false;
9281 if (UseAllDifferentForCircuit != other.UseAllDifferentForCircuit) return false;
9284 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RoutingCutDpEffort, other.RoutingCutDpEffort)) return false;
9285 if (SearchBranching != other.SearchBranching) return false;
9286 if (HintConflictLimit != other.HintConflictLimit) return false;
9287 if (RepairHint != other.RepairHint) return false;
9289 if (UseProbingSearch != other.UseProbingSearch) return false;
9290 if (UseExtendedProbing != other.UseExtendedProbing) return false;
9292 if (UseShavingInProbingSearch != other.UseShavingInProbingSearch) return false;
9293 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ShavingSearchDeterministicTime, other.ShavingSearchDeterministicTime)) return false;
9294 if (ShavingSearchThreshold != other.ShavingSearchThreshold) return false;
9295 if (UseObjectiveLbSearch != other.UseObjectiveLbSearch) return false;
9296 if (UseObjectiveShavingSearch != other.UseObjectiveShavingSearch) return false;
9297 if (UseVariablesShavingSearch != other.UseVariablesShavingSearch) return false;
9299 if (OptimizeWithCore != other.OptimizeWithCore) return false;
9300 if (OptimizeWithLbTreeSearch != other.OptimizeWithLbTreeSearch) return false;
9301 if (SaveLpBasisInLbTreeSearch != other.SaveLpBasisInLbTreeSearch) return false;
9302 if (BinarySearchNumConflicts != other.BinarySearchNumConflicts) return false;
9303 if (OptimizeWithMaxHs != other.OptimizeWithMaxHs) return false;
9304 if (UseFeasibilityJump != other.UseFeasibilityJump) return false;
9305 if (UseLsOnly != other.UseLsOnly) return false;
9306 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(FeasibilityJumpDecay, other.FeasibilityJumpDecay)) return false;
9309 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(FeasibilityJumpBatchDtime, other.FeasibilityJumpBatchDtime)) return false;
9310 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(FeasibilityJumpVarRandomizationProbability, other.FeasibilityJumpVarRandomizationProbability)) return false;
9311 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(FeasibilityJumpVarPerburbationRangeRatio, other.FeasibilityJumpVarPerburbationRangeRatio)) return false;
9314 if (NumViolationLs != other.NumViolationLs) return false;
9316 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ViolationLsCompoundMoveProbability, other.ViolationLsCompoundMoveProbability)) return false;
9317 if (SharedTreeNumWorkers != other.SharedTreeNumWorkers) return false;
9318 if (UseSharedTreeSearch != other.UseSharedTreeSearch) return false;
9322 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SharedTreeOpenLeavesPerWorker, other.SharedTreeOpenLeavesPerWorker)) return false;
9324 if (SharedTreeSplitStrategy != other.SharedTreeSplitStrategy) return false;
9325 if (SharedTreeBalanceTolerance != other.SharedTreeBalanceTolerance) return false;
9326 if (EnumerateAllSolutions != other.EnumerateAllSolutions) return false;
9330 if (InstantiateAllVariables != other.InstantiateAllVariables) return false;
9332 if (StopAfterFirstSolution != other.StopAfterFirstSolution) return false;
9333 if (StopAfterPresolve != other.StopAfterPresolve) return false;
9334 if (StopAfterRootPropagation != other.StopAfterRootPropagation) return false;
9335 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LnsInitialDifficulty, other.LnsInitialDifficulty)) return false;
9336 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LnsInitialDeterministicLimit, other.LnsInitialDeterministicLimit)) return false;
9337 if (UseLns != other.UseLns) return false;
9338 if (UseLnsOnly != other.UseLnsOnly) return false;
9339 if (SolutionPoolSize != other.SolutionPoolSize) return false;
9340 if (UseRinsLns != other.UseRinsLns) return false;
9341 if (UseFeasibilityPump != other.UseFeasibilityPump) return false;
9342 if (UseLbRelaxLns != other.UseLbRelaxLns) return false;
9343 if (LbRelaxNumWorkersThreshold != other.LbRelaxNumWorkersThreshold) return false;
9344 if (FpRounding != other.FpRounding) return false;
9345 if (DiversifyLnsParams != other.DiversifyLnsParams) return false;
9346 if (RandomizeSearch != other.RandomizeSearch) return false;
9348 if (PushAllTasksTowardStart != other.PushAllTasksTowardStart) return false;
9349 if (UseOptionalVariables != other.UseOptionalVariables) return false;
9350 if (UseExactLpReason != other.UseExactLpReason) return false;
9351 if (UseCombinedNoOverlap != other.UseCombinedNoOverlap) return false;
9352 if (AtMostOneMaxExpansionSize != other.AtMostOneMaxExpansionSize) return false;
9353 if (CatchSigintSignal != other.CatchSigintSignal) return false;
9354 if (UseImpliedBounds != other.UseImpliedBounds) return false;
9355 if (PolishLpSolution != other.PolishLpSolution) return false;
9356 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LpPrimalTolerance, other.LpPrimalTolerance)) return false;
9357 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LpDualTolerance, other.LpDualTolerance)) return false;
9358 if (ConvertIntervals != other.ConvertIntervals) return false;
9359 if (SymmetryLevel != other.SymmetryLevel) return false;
9360 if (UseSymmetryInLp != other.UseSymmetryInLp) return false;
9361 if (KeepSymmetryInPresolve != other.KeepSymmetryInPresolve) return false;
9362 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SymmetryDetectionDeterministicTimeLimit, other.SymmetryDetectionDeterministicTimeLimit)) return false;
9363 if (NewLinearPropagation != other.NewLinearPropagation) return false;
9364 if (LinearSplitSize != other.LinearSplitSize) return false;
9365 if (LinearizationLevel != other.LinearizationLevel) return false;
9366 if (BooleanEncodingLevel != other.BooleanEncodingLevel) return false;
9368 if (MaxNumCuts != other.MaxNumCuts) return false;
9369 if (CutLevel != other.CutLevel) return false;
9370 if (OnlyAddCutsAtLevelZero != other.OnlyAddCutsAtLevelZero) return false;
9371 if (AddObjectiveCut != other.AddObjectiveCut) return false;
9372 if (AddCgCuts != other.AddCgCuts) return false;
9373 if (AddMirCuts != other.AddMirCuts) return false;
9374 if (AddZeroHalfCuts != other.AddZeroHalfCuts) return false;
9375 if (AddCliqueCuts != other.AddCliqueCuts) return false;
9376 if (AddRltCuts != other.AddRltCuts) return false;
9377 if (MaxAllDiffCutSize != other.MaxAllDiffCutSize) return false;
9378 if (AddLinMaxCuts != other.AddLinMaxCuts) return false;
9379 if (MaxIntegerRoundingScaling != other.MaxIntegerRoundingScaling) return false;
9380 if (AddLpConstraintsLazily != other.AddLpConstraintsLazily) return false;
9381 if (RootLpIterations != other.RootLpIterations) return false;
9382 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MinOrthogonalityForLpConstraints, other.MinOrthogonalityForLpConstraints)) return false;
9383 if (MaxCutRoundsAtLevelZero != other.MaxCutRoundsAtLevelZero) return false;
9385 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CutMaxActiveCountValue, other.CutMaxActiveCountValue)) return false;
9386 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CutActiveCountDecay, other.CutActiveCountDecay)) return false;
9387 if (CutCleanupTarget != other.CutCleanupTarget) return false;
9388 if (NewConstraintsBatchSize != other.NewConstraintsBatchSize) return false;
9389 if (ExploitIntegerLpSolution != other.ExploitIntegerLpSolution) return false;
9390 if (ExploitAllLpSolution != other.ExploitAllLpSolution) return false;
9391 if (ExploitBestSolution != other.ExploitBestSolution) return false;
9392 if (ExploitRelaxationSolution != other.ExploitRelaxationSolution) return false;
9393 if (ExploitObjective != other.ExploitObjective) return false;
9394 if (DetectLinearizedProduct != other.DetectLinearizedProduct) return false;
9395 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipMaxBound, other.MipMaxBound)) return false;
9396 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipVarScaling, other.MipVarScaling)) return false;
9397 if (MipScaleLargeDomain != other.MipScaleLargeDomain) return false;
9399 if (OnlySolveIp != other.OnlySolveIp) return false;
9400 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipWantedPrecision, other.MipWantedPrecision)) return false;
9401 if (MipMaxActivityExponent != other.MipMaxActivityExponent) return false;
9402 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipCheckPrecision, other.MipCheckPrecision)) return false;
9404 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipMaxValidMagnitude, other.MipMaxValidMagnitude)) return false;
9406 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipDropTolerance, other.MipDropTolerance)) return false;
9407 if (MipPresolveLevel != other.MipPresolveLevel) return false;
9408 return Equals(_unknownFields, other._unknownFields);
9409 }
9410
9411 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9412 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9413 public override int GetHashCode() {
9414 int hash = 1;
9415 if (HasName) hash ^= Name.GetHashCode();
9416 if (HasPreferredVariableOrder) hash ^= PreferredVariableOrder.GetHashCode();
9417 if (HasInitialPolarity) hash ^= InitialPolarity.GetHashCode();
9418 if (HasUsePhaseSaving) hash ^= UsePhaseSaving.GetHashCode();
9419 if (HasPolarityRephaseIncrement) hash ^= PolarityRephaseIncrement.GetHashCode();
9420 if (HasPolarityExploitLsHints) hash ^= PolarityExploitLsHints.GetHashCode();
9421 if (HasRandomPolarityRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RandomPolarityRatio);
9422 if (HasRandomBranchesRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RandomBranchesRatio);
9423 if (HasUseErwaHeuristic) hash ^= UseErwaHeuristic.GetHashCode();
9424 if (HasInitialVariablesActivity) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InitialVariablesActivity);
9425 if (HasAlsoBumpVariablesInConflictReasons) hash ^= AlsoBumpVariablesInConflictReasons.GetHashCode();
9426 if (HasMinimizationAlgorithm) hash ^= MinimizationAlgorithm.GetHashCode();
9427 if (HasBinaryMinimizationAlgorithm) hash ^= BinaryMinimizationAlgorithm.GetHashCode();
9428 if (HasSubsumptionDuringConflictAnalysis) hash ^= SubsumptionDuringConflictAnalysis.GetHashCode();
9429 if (HasClauseCleanupPeriod) hash ^= ClauseCleanupPeriod.GetHashCode();
9430 if (HasClauseCleanupTarget) hash ^= ClauseCleanupTarget.GetHashCode();
9431 if (HasClauseCleanupRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ClauseCleanupRatio);
9432 if (HasClauseCleanupProtection) hash ^= ClauseCleanupProtection.GetHashCode();
9433 if (HasClauseCleanupLbdBound) hash ^= ClauseCleanupLbdBound.GetHashCode();
9434 if (HasClauseCleanupOrdering) hash ^= ClauseCleanupOrdering.GetHashCode();
9435 if (HasPbCleanupIncrement) hash ^= PbCleanupIncrement.GetHashCode();
9436 if (HasPbCleanupRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(PbCleanupRatio);
9437 if (HasVariableActivityDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(VariableActivityDecay);
9438 if (HasMaxVariableActivityValue) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MaxVariableActivityValue);
9439 if (HasGlucoseMaxDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(GlucoseMaxDecay);
9440 if (HasGlucoseDecayIncrement) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(GlucoseDecayIncrement);
9441 if (HasGlucoseDecayIncrementPeriod) hash ^= GlucoseDecayIncrementPeriod.GetHashCode();
9442 if (HasClauseActivityDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ClauseActivityDecay);
9443 if (HasMaxClauseActivityValue) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MaxClauseActivityValue);
9444 hash ^= restartAlgorithms_.GetHashCode();
9445 if (HasDefaultRestartAlgorithms) hash ^= DefaultRestartAlgorithms.GetHashCode();
9446 if (HasRestartPeriod) hash ^= RestartPeriod.GetHashCode();
9447 if (HasRestartRunningWindowSize) hash ^= RestartRunningWindowSize.GetHashCode();
9448 if (HasRestartDlAverageRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RestartDlAverageRatio);
9449 if (HasRestartLbdAverageRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RestartLbdAverageRatio);
9450 if (HasUseBlockingRestart) hash ^= UseBlockingRestart.GetHashCode();
9451 if (HasBlockingRestartWindowSize) hash ^= BlockingRestartWindowSize.GetHashCode();
9452 if (HasBlockingRestartMultiplier) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(BlockingRestartMultiplier);
9453 if (HasNumConflictsBeforeStrategyChanges) hash ^= NumConflictsBeforeStrategyChanges.GetHashCode();
9454 if (HasStrategyChangeIncreaseRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(StrategyChangeIncreaseRatio);
9455 if (HasMaxTimeInSeconds) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MaxTimeInSeconds);
9456 if (HasMaxDeterministicTime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MaxDeterministicTime);
9457 if (HasMaxNumDeterministicBatches) hash ^= MaxNumDeterministicBatches.GetHashCode();
9458 if (HasMaxNumberOfConflicts) hash ^= MaxNumberOfConflicts.GetHashCode();
9459 if (HasMaxMemoryInMb) hash ^= MaxMemoryInMb.GetHashCode();
9460 if (HasAbsoluteGapLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(AbsoluteGapLimit);
9461 if (HasRelativeGapLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RelativeGapLimit);
9462 if (HasRandomSeed) hash ^= RandomSeed.GetHashCode();
9463 if (HasPermuteVariableRandomly) hash ^= PermuteVariableRandomly.GetHashCode();
9464 if (HasPermutePresolveConstraintOrder) hash ^= PermutePresolveConstraintOrder.GetHashCode();
9465 if (HasUseAbslRandom) hash ^= UseAbslRandom.GetHashCode();
9466 if (HasLogSearchProgress) hash ^= LogSearchProgress.GetHashCode();
9468 if (HasLogPrefix) hash ^= LogPrefix.GetHashCode();
9469 if (HasLogToStdout) hash ^= LogToStdout.GetHashCode();
9470 if (HasLogToResponse) hash ^= LogToResponse.GetHashCode();
9471 if (HasUsePbResolution) hash ^= UsePbResolution.GetHashCode();
9474 if (HasPresolveBveThreshold) hash ^= PresolveBveThreshold.GetHashCode();
9475 if (HasPresolveBveClauseWeight) hash ^= PresolveBveClauseWeight.GetHashCode();
9476 if (HasProbingDeterministicTimeLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ProbingDeterministicTimeLimit);
9477 if (HasPresolveProbingDeterministicTimeLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(PresolveProbingDeterministicTimeLimit);
9478 if (HasPresolveBlockedClause) hash ^= PresolveBlockedClause.GetHashCode();
9479 if (HasPresolveUseBva) hash ^= PresolveUseBva.GetHashCode();
9480 if (HasPresolveBvaThreshold) hash ^= PresolveBvaThreshold.GetHashCode();
9481 if (HasMaxPresolveIterations) hash ^= MaxPresolveIterations.GetHashCode();
9482 if (HasCpModelPresolve) hash ^= CpModelPresolve.GetHashCode();
9483 if (HasCpModelProbingLevel) hash ^= CpModelProbingLevel.GetHashCode();
9484 if (HasCpModelUseSatPresolve) hash ^= CpModelUseSatPresolve.GetHashCode();
9486 if (HasDetectTableWithCost) hash ^= DetectTableWithCost.GetHashCode();
9487 if (HasTableCompressionLevel) hash ^= TableCompressionLevel.GetHashCode();
9488 if (HasExpandAlldiffConstraints) hash ^= ExpandAlldiffConstraints.GetHashCode();
9495 if (HasMergeNoOverlapWorkLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MergeNoOverlapWorkLimit);
9496 if (HasMergeAtMostOneWorkLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MergeAtMostOneWorkLimit);
9500 if (HasIgnoreNames) hash ^= IgnoreNames.GetHashCode();
9501 if (HasInferAllDiffs) hash ^= InferAllDiffs.GetHashCode();
9502 if (HasFindBigLinearOverlap) hash ^= FindBigLinearOverlap.GetHashCode();
9503 if (HasUseSatInprocessing) hash ^= UseSatInprocessing.GetHashCode();
9504 if (HasInprocessingDtimeRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InprocessingDtimeRatio);
9505 if (HasInprocessingProbingDtime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InprocessingProbingDtime);
9506 if (HasInprocessingMinimizationDtime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InprocessingMinimizationDtime);
9509 if (HasNumWorkers) hash ^= NumWorkers.GetHashCode();
9510 if (HasNumSearchWorkers) hash ^= NumSearchWorkers.GetHashCode();
9511 if (HasNumFullSubsolvers) hash ^= NumFullSubsolvers.GetHashCode();
9512 hash ^= subsolvers_.GetHashCode();
9513 hash ^= extraSubsolvers_.GetHashCode();
9514 hash ^= ignoreSubsolvers_.GetHashCode();
9515 hash ^= filterSubsolvers_.GetHashCode();
9516 hash ^= subsolverParams_.GetHashCode();
9517 if (HasInterleaveSearch) hash ^= InterleaveSearch.GetHashCode();
9518 if (HasInterleaveBatchSize) hash ^= InterleaveBatchSize.GetHashCode();
9519 if (HasShareObjectiveBounds) hash ^= ShareObjectiveBounds.GetHashCode();
9520 if (HasShareLevelZeroBounds) hash ^= ShareLevelZeroBounds.GetHashCode();
9521 if (HasShareBinaryClauses) hash ^= ShareBinaryClauses.GetHashCode();
9522 if (HasShareGlueClauses) hash ^= ShareGlueClauses.GetHashCode();
9523 if (HasMinimizeSharedClauses) hash ^= MinimizeSharedClauses.GetHashCode();
9526 if (HasDebugCrashOnBadHint) hash ^= DebugCrashOnBadHint.GetHashCode();
9528 if (HasUseOptimizationHints) hash ^= UseOptimizationHints.GetHashCode();
9529 if (HasCoreMinimizationLevel) hash ^= CoreMinimizationLevel.GetHashCode();
9530 if (HasFindMultipleCores) hash ^= FindMultipleCores.GetHashCode();
9531 if (HasCoverOptimization) hash ^= CoverOptimization.GetHashCode();
9532 if (HasMaxSatAssumptionOrder) hash ^= MaxSatAssumptionOrder.GetHashCode();
9534 if (HasMaxSatStratification) hash ^= MaxSatStratification.GetHashCode();
9535 if (HasPropagationLoopDetectionFactor) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(PropagationLoopDetectionFactor);
9546 if (HasExploitAllPrecedences) hash ^= ExploitAllPrecedences.GetHashCode();
9558 if (HasRoutingCutDpEffort) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RoutingCutDpEffort);
9559 if (HasSearchBranching) hash ^= SearchBranching.GetHashCode();
9560 if (HasHintConflictLimit) hash ^= HintConflictLimit.GetHashCode();
9561 if (HasRepairHint) hash ^= RepairHint.GetHashCode();
9563 if (HasUseProbingSearch) hash ^= UseProbingSearch.GetHashCode();
9564 if (HasUseExtendedProbing) hash ^= UseExtendedProbing.GetHashCode();
9567 if (HasShavingSearchDeterministicTime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ShavingSearchDeterministicTime);
9568 if (HasShavingSearchThreshold) hash ^= ShavingSearchThreshold.GetHashCode();
9569 if (HasUseObjectiveLbSearch) hash ^= UseObjectiveLbSearch.GetHashCode();
9573 if (HasOptimizeWithCore) hash ^= OptimizeWithCore.GetHashCode();
9574 if (HasOptimizeWithLbTreeSearch) hash ^= OptimizeWithLbTreeSearch.GetHashCode();
9576 if (HasBinarySearchNumConflicts) hash ^= BinarySearchNumConflicts.GetHashCode();
9577 if (HasOptimizeWithMaxHs) hash ^= OptimizeWithMaxHs.GetHashCode();
9578 if (HasUseFeasibilityJump) hash ^= UseFeasibilityJump.GetHashCode();
9579 if (HasUseLsOnly) hash ^= UseLsOnly.GetHashCode();
9580 if (HasFeasibilityJumpDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(FeasibilityJumpDecay);
9583 if (HasFeasibilityJumpBatchDtime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(FeasibilityJumpBatchDtime);
9584 if (HasFeasibilityJumpVarRandomizationProbability) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(FeasibilityJumpVarRandomizationProbability);
9585 if (HasFeasibilityJumpVarPerburbationRangeRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(FeasibilityJumpVarPerburbationRangeRatio);
9588 if (HasNumViolationLs) hash ^= NumViolationLs.GetHashCode();
9590 if (HasViolationLsCompoundMoveProbability) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ViolationLsCompoundMoveProbability);
9591 if (HasSharedTreeNumWorkers) hash ^= SharedTreeNumWorkers.GetHashCode();
9592 if (HasUseSharedTreeSearch) hash ^= UseSharedTreeSearch.GetHashCode();
9596 if (HasSharedTreeOpenLeavesPerWorker) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SharedTreeOpenLeavesPerWorker);
9598 if (HasSharedTreeSplitStrategy) hash ^= SharedTreeSplitStrategy.GetHashCode();
9600 if (HasEnumerateAllSolutions) hash ^= EnumerateAllSolutions.GetHashCode();
9604 if (HasInstantiateAllVariables) hash ^= InstantiateAllVariables.GetHashCode();
9606 if (HasStopAfterFirstSolution) hash ^= StopAfterFirstSolution.GetHashCode();
9607 if (HasStopAfterPresolve) hash ^= StopAfterPresolve.GetHashCode();
9608 if (HasStopAfterRootPropagation) hash ^= StopAfterRootPropagation.GetHashCode();
9609 if (HasLnsInitialDifficulty) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LnsInitialDifficulty);
9610 if (HasLnsInitialDeterministicLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LnsInitialDeterministicLimit);
9611 if (HasUseLns) hash ^= UseLns.GetHashCode();
9612 if (HasUseLnsOnly) hash ^= UseLnsOnly.GetHashCode();
9613 if (HasSolutionPoolSize) hash ^= SolutionPoolSize.GetHashCode();
9614 if (HasUseRinsLns) hash ^= UseRinsLns.GetHashCode();
9615 if (HasUseFeasibilityPump) hash ^= UseFeasibilityPump.GetHashCode();
9616 if (HasUseLbRelaxLns) hash ^= UseLbRelaxLns.GetHashCode();
9618 if (HasFpRounding) hash ^= FpRounding.GetHashCode();
9619 if (HasDiversifyLnsParams) hash ^= DiversifyLnsParams.GetHashCode();
9620 if (HasRandomizeSearch) hash ^= RandomizeSearch.GetHashCode();
9622 if (HasPushAllTasksTowardStart) hash ^= PushAllTasksTowardStart.GetHashCode();
9623 if (HasUseOptionalVariables) hash ^= UseOptionalVariables.GetHashCode();
9624 if (HasUseExactLpReason) hash ^= UseExactLpReason.GetHashCode();
9625 if (HasUseCombinedNoOverlap) hash ^= UseCombinedNoOverlap.GetHashCode();
9627 if (HasCatchSigintSignal) hash ^= CatchSigintSignal.GetHashCode();
9628 if (HasUseImpliedBounds) hash ^= UseImpliedBounds.GetHashCode();
9629 if (HasPolishLpSolution) hash ^= PolishLpSolution.GetHashCode();
9630 if (HasLpPrimalTolerance) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LpPrimalTolerance);
9631 if (HasLpDualTolerance) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LpDualTolerance);
9632 if (HasConvertIntervals) hash ^= ConvertIntervals.GetHashCode();
9633 if (HasSymmetryLevel) hash ^= SymmetryLevel.GetHashCode();
9634 if (HasUseSymmetryInLp) hash ^= UseSymmetryInLp.GetHashCode();
9635 if (HasKeepSymmetryInPresolve) hash ^= KeepSymmetryInPresolve.GetHashCode();
9636 if (HasSymmetryDetectionDeterministicTimeLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SymmetryDetectionDeterministicTimeLimit);
9637 if (HasNewLinearPropagation) hash ^= NewLinearPropagation.GetHashCode();
9638 if (HasLinearSplitSize) hash ^= LinearSplitSize.GetHashCode();
9639 if (HasLinearizationLevel) hash ^= LinearizationLevel.GetHashCode();
9640 if (HasBooleanEncodingLevel) hash ^= BooleanEncodingLevel.GetHashCode();
9642 if (HasMaxNumCuts) hash ^= MaxNumCuts.GetHashCode();
9643 if (HasCutLevel) hash ^= CutLevel.GetHashCode();
9644 if (HasOnlyAddCutsAtLevelZero) hash ^= OnlyAddCutsAtLevelZero.GetHashCode();
9645 if (HasAddObjectiveCut) hash ^= AddObjectiveCut.GetHashCode();
9646 if (HasAddCgCuts) hash ^= AddCgCuts.GetHashCode();
9647 if (HasAddMirCuts) hash ^= AddMirCuts.GetHashCode();
9648 if (HasAddZeroHalfCuts) hash ^= AddZeroHalfCuts.GetHashCode();
9649 if (HasAddCliqueCuts) hash ^= AddCliqueCuts.GetHashCode();
9650 if (HasAddRltCuts) hash ^= AddRltCuts.GetHashCode();
9651 if (HasMaxAllDiffCutSize) hash ^= MaxAllDiffCutSize.GetHashCode();
9652 if (HasAddLinMaxCuts) hash ^= AddLinMaxCuts.GetHashCode();
9654 if (HasAddLpConstraintsLazily) hash ^= AddLpConstraintsLazily.GetHashCode();
9655 if (HasRootLpIterations) hash ^= RootLpIterations.GetHashCode();
9656 if (HasMinOrthogonalityForLpConstraints) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MinOrthogonalityForLpConstraints);
9657 if (HasMaxCutRoundsAtLevelZero) hash ^= MaxCutRoundsAtLevelZero.GetHashCode();
9659 if (HasCutMaxActiveCountValue) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CutMaxActiveCountValue);
9660 if (HasCutActiveCountDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CutActiveCountDecay);
9661 if (HasCutCleanupTarget) hash ^= CutCleanupTarget.GetHashCode();
9662 if (HasNewConstraintsBatchSize) hash ^= NewConstraintsBatchSize.GetHashCode();
9663 if (HasExploitIntegerLpSolution) hash ^= ExploitIntegerLpSolution.GetHashCode();
9664 if (HasExploitAllLpSolution) hash ^= ExploitAllLpSolution.GetHashCode();
9665 if (HasExploitBestSolution) hash ^= ExploitBestSolution.GetHashCode();
9667 if (HasExploitObjective) hash ^= ExploitObjective.GetHashCode();
9668 if (HasDetectLinearizedProduct) hash ^= DetectLinearizedProduct.GetHashCode();
9669 if (HasMipMaxBound) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipMaxBound);
9670 if (HasMipVarScaling) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipVarScaling);
9671 if (HasMipScaleLargeDomain) hash ^= MipScaleLargeDomain.GetHashCode();
9673 if (HasOnlySolveIp) hash ^= OnlySolveIp.GetHashCode();
9674 if (HasMipWantedPrecision) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipWantedPrecision);
9675 if (HasMipMaxActivityExponent) hash ^= MipMaxActivityExponent.GetHashCode();
9676 if (HasMipCheckPrecision) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipCheckPrecision);
9678 if (HasMipMaxValidMagnitude) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipMaxValidMagnitude);
9680 if (HasMipDropTolerance) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipDropTolerance);
9681 if (HasMipPresolveLevel) hash ^= MipPresolveLevel.GetHashCode();
9682 if (_unknownFields != null) {
9683 hash ^= _unknownFields.GetHashCode();
9684 }
9685 return hash;
9686 }
9687
9688 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9689 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9690 public override string ToString() {
9691 return pb::JsonFormatter.ToDiagnosticString(this);
9692 }
9693
9694 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9695 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9696 public void WriteTo(pb::CodedOutputStream output) {
9697 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9698 output.WriteRawMessage(this);
9699 #else
9700 if (HasPreferredVariableOrder) {
9701 output.WriteRawTag(8);
9702 output.WriteEnum((int) PreferredVariableOrder);
9703 }
9704 if (HasInitialPolarity) {
9705 output.WriteRawTag(16);
9706 output.WriteEnum((int) InitialPolarity);
9707 }
9708 if (HasMinimizationAlgorithm) {
9709 output.WriteRawTag(32);
9710 output.WriteEnum((int) MinimizationAlgorithm);
9711 }
9712 if (HasClauseCleanupPeriod) {
9713 output.WriteRawTag(88);
9714 output.WriteInt32(ClauseCleanupPeriod);
9715 }
9716 if (HasClauseCleanupTarget) {
9717 output.WriteRawTag(104);
9718 output.WriteInt32(ClauseCleanupTarget);
9719 }
9720 if (HasVariableActivityDecay) {
9721 output.WriteRawTag(121);
9722 output.WriteDouble(VariableActivityDecay);
9723 }
9724 if (HasMaxVariableActivityValue) {
9725 output.WriteRawTag(129, 1);
9726 output.WriteDouble(MaxVariableActivityValue);
9727 }
9728 if (HasClauseActivityDecay) {
9729 output.WriteRawTag(137, 1);
9730 output.WriteDouble(ClauseActivityDecay);
9731 }
9732 if (HasMaxClauseActivityValue) {
9733 output.WriteRawTag(145, 1);
9734 output.WriteDouble(MaxClauseActivityValue);
9735 }
9736 if (HasGlucoseMaxDecay) {
9737 output.WriteRawTag(177, 1);
9738 output.WriteDouble(GlucoseMaxDecay);
9739 }
9740 if (HasGlucoseDecayIncrement) {
9741 output.WriteRawTag(185, 1);
9742 output.WriteDouble(GlucoseDecayIncrement);
9743 }
9745 output.WriteRawTag(192, 1);
9746 output.WriteInt32(GlucoseDecayIncrementPeriod);
9747 }
9748 if (HasRestartPeriod) {
9749 output.WriteRawTag(240, 1);
9750 output.WriteInt32(RestartPeriod);
9751 }
9752 if (HasRandomSeed) {
9753 output.WriteRawTag(248, 1);
9754 output.WriteInt32(RandomSeed);
9755 }
9756 if (HasRandomBranchesRatio) {
9757 output.WriteRawTag(129, 2);
9758 output.WriteDouble(RandomBranchesRatio);
9759 }
9760 if (HasBinaryMinimizationAlgorithm) {
9761 output.WriteRawTag(144, 2);
9762 output.WriteEnum((int) BinaryMinimizationAlgorithm);
9763 }
9764 if (HasUseOptimizationHints) {
9765 output.WriteRawTag(152, 2);
9766 output.WriteBool(UseOptimizationHints);
9767 }
9768 if (HasMaxTimeInSeconds) {
9769 output.WriteRawTag(161, 2);
9770 output.WriteDouble(MaxTimeInSeconds);
9771 }
9772 if (HasMaxNumberOfConflicts) {
9773 output.WriteRawTag(168, 2);
9774 output.WriteInt64(MaxNumberOfConflicts);
9775 }
9776 if (HasMaxMemoryInMb) {
9777 output.WriteRawTag(192, 2);
9778 output.WriteInt64(MaxMemoryInMb);
9779 }
9780 if (HasLogSearchProgress) {
9781 output.WriteRawTag(200, 2);
9782 output.WriteBool(LogSearchProgress);
9783 }
9784 if (HasUsePbResolution) {
9785 output.WriteRawTag(216, 2);
9786 output.WriteBool(UsePbResolution);
9787 }
9788 if (HasUsePhaseSaving) {
9789 output.WriteRawTag(224, 2);
9790 output.WriteBool(UsePhaseSaving);
9791 }
9792 if (HasRandomPolarityRatio) {
9793 output.WriteRawTag(233, 2);
9794 output.WriteDouble(RandomPolarityRatio);
9795 }
9796 if (HasPbCleanupIncrement) {
9797 output.WriteRawTag(240, 2);
9798 output.WriteInt32(PbCleanupIncrement);
9799 }
9800 if (HasPbCleanupRatio) {
9801 output.WriteRawTag(249, 2);
9802 output.WriteDouble(PbCleanupRatio);
9803 }
9804 if (HasMinimizeReductionDuringPbResolution) {
9805 output.WriteRawTag(128, 3);
9806 output.WriteBool(MinimizeReductionDuringPbResolution);
9807 }
9808 if (HasCountAssumptionLevelsInLbd) {
9809 output.WriteRawTag(136, 3);
9810 output.WriteBool(CountAssumptionLevelsInLbd);
9811 }
9812 if (HasCoreMinimizationLevel) {
9813 output.WriteRawTag(144, 3);
9814 output.WriteInt32(CoreMinimizationLevel);
9815 }
9816 if (HasMaxSatAssumptionOrder) {
9817 output.WriteRawTag(152, 3);
9818 output.WriteEnum((int) MaxSatAssumptionOrder);
9819 }
9820 if (HasMaxSatReverseAssumptionOrder) {
9821 output.WriteRawTag(160, 3);
9822 output.WriteBool(MaxSatReverseAssumptionOrder);
9823 }
9824 if (HasMaxSatStratification) {
9825 output.WriteRawTag(168, 3);
9826 output.WriteEnum((int) MaxSatStratification);
9827 }
9828 if (HasPresolveBveThreshold) {
9829 output.WriteRawTag(176, 3);
9830 output.WriteInt32(PresolveBveThreshold);
9831 }
9832 if (HasPresolveBveClauseWeight) {
9833 output.WriteRawTag(184, 3);
9834 output.WriteInt32(PresolveBveClauseWeight);
9835 }
9836 if (HasSubsumptionDuringConflictAnalysis) {
9837 output.WriteRawTag(192, 3);
9838 output.WriteBool(SubsumptionDuringConflictAnalysis);
9839 }
9840 if (HasPresolveProbingDeterministicTimeLimit) {
9841 output.WriteRawTag(201, 3);
9842 output.WriteDouble(PresolveProbingDeterministicTimeLimit);
9843 }
9844 if (HasClauseCleanupProtection) {
9845 output.WriteRawTag(208, 3);
9846 output.WriteEnum((int) ClauseCleanupProtection);
9847 }
9848 if (HasClauseCleanupLbdBound) {
9849 output.WriteRawTag(216, 3);
9850 output.WriteInt32(ClauseCleanupLbdBound);
9851 }
9852 if (HasClauseCleanupOrdering) {
9853 output.WriteRawTag(224, 3);
9854 output.WriteEnum((int) ClauseCleanupOrdering);
9855 }
9856 restartAlgorithms_.WriteTo(output, _repeated_restartAlgorithms_codec);
9857 if (HasRestartRunningWindowSize) {
9858 output.WriteRawTag(240, 3);
9859 output.WriteInt32(RestartRunningWindowSize);
9860 }
9861 if (HasRestartDlAverageRatio) {
9862 output.WriteRawTag(249, 3);
9863 output.WriteDouble(RestartDlAverageRatio);
9864 }
9865 if (HasUseBlockingRestart) {
9866 output.WriteRawTag(128, 4);
9867 output.WriteBool(UseBlockingRestart);
9868 }
9869 if (HasBlockingRestartWindowSize) {
9870 output.WriteRawTag(136, 4);
9871 output.WriteInt32(BlockingRestartWindowSize);
9872 }
9873 if (HasBlockingRestartMultiplier) {
9874 output.WriteRawTag(145, 4);
9875 output.WriteDouble(BlockingRestartMultiplier);
9876 }
9877 if (HasMaxDeterministicTime) {
9878 output.WriteRawTag(153, 4);
9879 output.WriteDouble(MaxDeterministicTime);
9880 }
9881 if (HasNumConflictsBeforeStrategyChanges) {
9882 output.WriteRawTag(160, 4);
9883 output.WriteInt32(NumConflictsBeforeStrategyChanges);
9884 }
9885 if (HasStrategyChangeIncreaseRatio) {
9886 output.WriteRawTag(169, 4);
9887 output.WriteDouble(StrategyChangeIncreaseRatio);
9888 }
9889 if (HasDefaultRestartAlgorithms) {
9890 output.WriteRawTag(178, 4);
9891 output.WriteString(DefaultRestartAlgorithms);
9892 }
9893 if (HasRestartLbdAverageRatio) {
9894 output.WriteRawTag(185, 4);
9895 output.WriteDouble(RestartLbdAverageRatio);
9896 }
9897 if (HasPresolveUseBva) {
9898 output.WriteRawTag(192, 4);
9899 output.WriteBool(PresolveUseBva);
9900 }
9901 if (HasPresolveBvaThreshold) {
9902 output.WriteRawTag(200, 4);
9903 output.WriteInt32(PresolveBvaThreshold);
9904 }
9905 if (HasUsePrecedencesInDisjunctiveConstraint) {
9906 output.WriteRawTag(208, 4);
9907 output.WriteBool(UsePrecedencesInDisjunctiveConstraint);
9908 }
9909 if (HasUseErwaHeuristic) {
9910 output.WriteRawTag(216, 4);
9911 output.WriteBool(UseErwaHeuristic);
9912 }
9913 if (HasInitialVariablesActivity) {
9914 output.WriteRawTag(225, 4);
9915 output.WriteDouble(InitialVariablesActivity);
9916 }
9917 if (HasAlsoBumpVariablesInConflictReasons) {
9918 output.WriteRawTag(232, 4);
9919 output.WriteBool(AlsoBumpVariablesInConflictReasons);
9920 }
9921 if (HasUseOverloadCheckerInCumulative) {
9922 output.WriteRawTag(240, 4);
9923 output.WriteBool(UseOverloadCheckerInCumulative);
9924 }
9925 if (HasUseTimetableEdgeFindingInCumulative) {
9926 output.WriteRawTag(248, 4);
9927 output.WriteBool(UseTimetableEdgeFindingInCumulative);
9928 }
9929 if (HasUseDisjunctiveConstraintInCumulative) {
9930 output.WriteRawTag(128, 5);
9931 output.WriteBool(UseDisjunctiveConstraintInCumulative);
9932 }
9933 if (HasSearchBranching) {
9934 output.WriteRawTag(144, 5);
9935 output.WriteEnum((int) SearchBranching);
9936 }
9937 if (HasOptimizeWithCore) {
9938 output.WriteRawTag(152, 5);
9939 output.WriteBool(OptimizeWithCore);
9940 }
9941 if (HasFindMultipleCores) {
9942 output.WriteRawTag(160, 5);
9943 output.WriteBool(FindMultipleCores);
9944 }
9945 if (HasOptimizeWithMaxHs) {
9946 output.WriteRawTag(168, 5);
9947 output.WriteBool(OptimizeWithMaxHs);
9948 }
9949 if (HasCpModelPresolve) {
9950 output.WriteRawTag(176, 5);
9951 output.WriteBool(CpModelPresolve);
9952 }
9953 if (HasEnumerateAllSolutions) {
9954 output.WriteRawTag(184, 5);
9955 output.WriteBool(EnumerateAllSolutions);
9956 }
9957 if (HasPresolveBlockedClause) {
9958 output.WriteRawTag(192, 5);
9959 output.WriteBool(PresolveBlockedClause);
9960 }
9961 if (HasCoverOptimization) {
9962 output.WriteRawTag(200, 5);
9963 output.WriteBool(CoverOptimization);
9964 }
9965 if (HasLinearizationLevel) {
9966 output.WriteRawTag(208, 5);
9967 output.WriteInt32(LinearizationLevel);
9968 }
9969 if (HasMaxNumCuts) {
9970 output.WriteRawTag(216, 5);
9971 output.WriteInt32(MaxNumCuts);
9972 }
9973 if (HasOnlyAddCutsAtLevelZero) {
9974 output.WriteRawTag(224, 5);
9975 output.WriteBool(OnlyAddCutsAtLevelZero);
9976 }
9977 if (HasCpModelUseSatPresolve) {
9978 output.WriteRawTag(232, 5);
9979 output.WriteBool(CpModelUseSatPresolve);
9980 }
9981 if (HasExploitIntegerLpSolution) {
9982 output.WriteRawTag(240, 5);
9983 output.WriteBool(ExploitIntegerLpSolution);
9984 }
9985 if (HasAutoDetectGreaterThanAtLeastOneOf) {
9986 output.WriteRawTag(248, 5);
9987 output.WriteBool(AutoDetectGreaterThanAtLeastOneOf);
9988 }
9989 if (HasStopAfterFirstSolution) {
9990 output.WriteRawTag(144, 6);
9991 output.WriteBool(StopAfterFirstSolution);
9992 }
9993 if (HasBinarySearchNumConflicts) {
9994 output.WriteRawTag(152, 6);
9995 output.WriteInt32(BinarySearchNumConflicts);
9996 }
9997 if (HasNumSearchWorkers) {
9998 output.WriteRawTag(160, 6);
9999 output.WriteInt32(NumSearchWorkers);
10000 }
10001 if (HasUseLnsOnly) {
10002 output.WriteRawTag(168, 6);
10003 output.WriteBool(UseLnsOnly);
10004 }
10005 if (HasRandomizeSearch) {
10006 output.WriteRawTag(184, 6);
10007 output.WriteBool(RandomizeSearch);
10008 }
10009 if (HasSearchRandomVariablePoolSize) {
10010 output.WriteRawTag(192, 6);
10011 output.WriteInt64(SearchRandomVariablePoolSize);
10012 }
10013 if (HasInstantiateAllVariables) {
10014 output.WriteRawTag(208, 6);
10015 output.WriteBool(InstantiateAllVariables);
10016 }
10017 if (HasBooleanEncodingLevel) {
10018 output.WriteRawTag(216, 6);
10019 output.WriteInt32(BooleanEncodingLevel);
10020 }
10021 if (HasUseOptionalVariables) {
10022 output.WriteRawTag(224, 6);
10023 output.WriteBool(UseOptionalVariables);
10024 }
10025 if (HasUseExactLpReason) {
10026 output.WriteRawTag(232, 6);
10027 output.WriteBool(UseExactLpReason);
10028 }
10029 if (HasCpModelProbingLevel) {
10030 output.WriteRawTag(240, 6);
10031 output.WriteInt32(CpModelProbingLevel);
10032 }
10033 if (HasAddLpConstraintsLazily) {
10034 output.WriteRawTag(128, 7);
10035 output.WriteBool(AddLpConstraintsLazily);
10036 }
10037 if (HasShareObjectiveBounds) {
10038 output.WriteRawTag(136, 7);
10039 output.WriteBool(ShareObjectiveBounds);
10040 }
10041 if (HasShareLevelZeroBounds) {
10042 output.WriteRawTag(144, 7);
10043 output.WriteBool(ShareLevelZeroBounds);
10044 }
10045 if (HasMinOrthogonalityForLpConstraints) {
10046 output.WriteRawTag(153, 7);
10047 output.WriteDouble(MinOrthogonalityForLpConstraints);
10048 }
10049 if (HasExploitAllLpSolution) {
10050 output.WriteRawTag(160, 7);
10051 output.WriteBool(ExploitAllLpSolution);
10052 }
10053 if (HasAddCgCuts) {
10054 output.WriteRawTag(168, 7);
10055 output.WriteBool(AddCgCuts);
10056 }
10057 if (HasMaxIntegerRoundingScaling) {
10058 output.WriteRawTag(184, 7);
10059 output.WriteInt32(MaxIntegerRoundingScaling);
10060 }
10061 if (HasAddMirCuts) {
10062 output.WriteRawTag(192, 7);
10063 output.WriteBool(AddMirCuts);
10064 }
10065 if (HasMaxConsecutiveInactiveCount) {
10066 output.WriteRawTag(200, 7);
10067 output.WriteInt32(MaxConsecutiveInactiveCount);
10068 }
10069 if (HasNewConstraintsBatchSize) {
10070 output.WriteRawTag(208, 7);
10071 output.WriteInt32(NewConstraintsBatchSize);
10072 }
10073 if (HasPseudoCostReliabilityThreshold) {
10074 output.WriteRawTag(216, 7);
10075 output.WriteInt64(PseudoCostReliabilityThreshold);
10076 }
10077 if (HasMipMaxBound) {
10078 output.WriteRawTag(225, 7);
10079 output.WriteDouble(MipMaxBound);
10080 }
10081 if (HasMipVarScaling) {
10082 output.WriteRawTag(233, 7);
10083 output.WriteDouble(MipVarScaling);
10084 }
10085 if (HasMipWantedPrecision) {
10086 output.WriteRawTag(241, 7);
10087 output.WriteDouble(MipWantedPrecision);
10088 }
10089 if (HasMipMaxActivityExponent) {
10090 output.WriteRawTag(248, 7);
10091 output.WriteInt32(MipMaxActivityExponent);
10092 }
10093 if (HasMipCheckPrecision) {
10094 output.WriteRawTag(129, 8);
10095 output.WriteDouble(MipCheckPrecision);
10096 }
10097 if (HasUseRinsLns) {
10098 output.WriteRawTag(136, 8);
10099 output.WriteBool(UseRinsLns);
10100 }
10101 if (HasExploitBestSolution) {
10102 output.WriteRawTag(144, 8);
10103 output.WriteBool(ExploitBestSolution);
10104 }
10105 if (HasExploitObjective) {
10106 output.WriteRawTag(152, 8);
10107 output.WriteBool(ExploitObjective);
10108 }
10109 if (HasFillTightenedDomainsInResponse) {
10110 output.WriteRawTag(160, 8);
10111 output.WriteBool(FillTightenedDomainsInResponse);
10112 }
10113 if (HasUseCombinedNoOverlap) {
10114 output.WriteRawTag(168, 8);
10115 output.WriteBool(UseCombinedNoOverlap);
10116 }
10117 if (HasInterleaveBatchSize) {
10118 output.WriteRawTag(176, 8);
10119 output.WriteInt32(InterleaveBatchSize);
10120 }
10121 if (HasCatchSigintSignal) {
10122 output.WriteRawTag(184, 8);
10123 output.WriteBool(CatchSigintSignal);
10124 }
10125 if (HasInterleaveSearch) {
10126 output.WriteRawTag(192, 8);
10127 output.WriteBool(InterleaveSearch);
10128 }
10129 if (HasDiversifyLnsParams) {
10130 output.WriteRawTag(200, 8);
10131 output.WriteBool(DiversifyLnsParams);
10132 }
10133 if (HasMaxPresolveIterations) {
10134 output.WriteRawTag(208, 8);
10135 output.WriteInt32(MaxPresolveIterations);
10136 }
10137 if (HasUseImpliedBounds) {
10138 output.WriteRawTag(128, 9);
10139 output.WriteBool(UseImpliedBounds);
10140 }
10141 if (HasMergeNoOverlapWorkLimit) {
10142 output.WriteRawTag(137, 9);
10143 output.WriteDouble(MergeNoOverlapWorkLimit);
10144 }
10145 if (HasMergeAtMostOneWorkLimit) {
10146 output.WriteRawTag(145, 9);
10147 output.WriteDouble(MergeAtMostOneWorkLimit);
10148 }
10149 if (HasPresolveSubstitutionLevel) {
10150 output.WriteRawTag(152, 9);
10151 output.WriteInt32(PresolveSubstitutionLevel);
10152 }
10153 if (HasMaxAllDiffCutSize) {
10154 output.WriteRawTag(160, 9);
10155 output.WriteInt32(MaxAllDiffCutSize);
10156 }
10157 if (HasStopAfterPresolve) {
10158 output.WriteRawTag(168, 9);
10159 output.WriteBool(StopAfterPresolve);
10160 }
10161 if (HasDebugMaxNumPresolveOperations) {
10162 output.WriteRawTag(184, 9);
10163 output.WriteInt32(DebugMaxNumPresolveOperations);
10164 }
10165 if (HasAddLinMaxCuts) {
10166 output.WriteRawTag(192, 9);
10167 output.WriteBool(AddLinMaxCuts);
10168 }
10169 if (HasHintConflictLimit) {
10170 output.WriteRawTag(200, 9);
10171 output.WriteInt32(HintConflictLimit);
10172 }
10173 if (HasMaxCutRoundsAtLevelZero) {
10174 output.WriteRawTag(208, 9);
10175 output.WriteInt32(MaxCutRoundsAtLevelZero);
10176 }
10177 if (HasCutMaxActiveCountValue) {
10178 output.WriteRawTag(217, 9);
10179 output.WriteDouble(CutMaxActiveCountValue);
10180 }
10181 if (HasCutActiveCountDecay) {
10182 output.WriteRawTag(225, 9);
10183 output.WriteDouble(CutActiveCountDecay);
10184 }
10185 if (HasCutCleanupTarget) {
10186 output.WriteRawTag(232, 9);
10187 output.WriteInt32(CutCleanupTarget);
10188 }
10189 if (HasAbsoluteGapLimit) {
10190 output.WriteRawTag(249, 9);
10191 output.WriteDouble(AbsoluteGapLimit);
10192 }
10193 if (HasRelativeGapLimit) {
10194 output.WriteRawTag(129, 10);
10195 output.WriteDouble(RelativeGapLimit);
10196 }
10197 if (HasExploitRelaxationSolution) {
10198 output.WriteRawTag(136, 10);
10199 output.WriteBool(ExploitRelaxationSolution);
10200 }
10201 if (HasDebugPostsolveWithFullSolver) {
10202 output.WriteRawTag(144, 10);
10203 output.WriteBool(DebugPostsolveWithFullSolver);
10204 }
10205 if (HasUseSatInprocessing) {
10206 output.WriteRawTag(152, 10);
10207 output.WriteBool(UseSatInprocessing);
10208 }
10209 if (HasUseFeasibilityPump) {
10210 output.WriteRawTag(160, 10);
10211 output.WriteBool(UseFeasibilityPump);
10212 }
10213 if (HasFpRounding) {
10214 output.WriteRawTag(168, 10);
10215 output.WriteEnum((int) FpRounding);
10216 }
10217 if (HasMipAutomaticallyScaleVariables) {
10218 output.WriteRawTag(176, 10);
10219 output.WriteBool(MipAutomaticallyScaleVariables);
10220 }
10221 if (HasRepairHint) {
10222 output.WriteRawTag(184, 10);
10223 output.WriteBool(RepairHint);
10224 }
10225 if (HasPolarityRephaseIncrement) {
10226 output.WriteRawTag(192, 10);
10227 output.WriteInt32(PolarityRephaseIncrement);
10228 }
10229 if (HasAddZeroHalfCuts) {
10230 output.WriteRawTag(200, 10);
10231 output.WriteBool(AddZeroHalfCuts);
10232 }
10233 if (HasExpandAlldiffConstraints) {
10234 output.WriteRawTag(208, 10);
10235 output.WriteBool(ExpandAlldiffConstraints);
10236 }
10237 if (HasName) {
10238 output.WriteRawTag(218, 10);
10239 output.WriteString(Name);
10240 }
10241 if (HasAddCliqueCuts) {
10242 output.WriteRawTag(224, 10);
10243 output.WriteBool(AddCliqueCuts);
10244 }
10245 if (HasKeepAllFeasibleSolutionsInPresolve) {
10246 output.WriteRawTag(232, 10);
10247 output.WriteBool(KeepAllFeasibleSolutionsInPresolve);
10248 }
10249 if (HasPresolveExtractIntegerEnforcement) {
10250 output.WriteRawTag(240, 10);
10251 output.WriteBool(PresolveExtractIntegerEnforcement);
10252 }
10253 if (HasPolishLpSolution) {
10254 output.WriteRawTag(248, 10);
10255 output.WriteBool(PolishLpSolution);
10256 }
10257 if (HasUseProbingSearch) {
10258 output.WriteRawTag(128, 11);
10259 output.WriteBool(UseProbingSearch);
10260 }
10261 if (HasConvertIntervals) {
10262 output.WriteRawTag(136, 11);
10263 output.WriteBool(ConvertIntervals);
10264 }
10265 if (HasPermuteVariableRandomly) {
10266 output.WriteRawTag(144, 11);
10267 output.WriteBool(PermuteVariableRandomly);
10268 }
10269 if (HasPermutePresolveConstraintOrder) {
10270 output.WriteRawTag(152, 11);
10271 output.WriteBool(PermutePresolveConstraintOrder);
10272 }
10273 if (HasUseAbslRandom) {
10274 output.WriteRawTag(160, 11);
10275 output.WriteBool(UseAbslRandom);
10276 }
10277 if (HasDisableConstraintExpansion) {
10278 output.WriteRawTag(168, 11);
10279 output.WriteBool(DisableConstraintExpansion);
10280 }
10281 if (HasExpandReservoirConstraints) {
10282 output.WriteRawTag(176, 11);
10283 output.WriteBool(ExpandReservoirConstraints);
10284 }
10285 if (HasSymmetryLevel) {
10286 output.WriteRawTag(184, 11);
10287 output.WriteInt32(SymmetryLevel);
10288 }
10289 if (HasLogPrefix) {
10290 output.WriteRawTag(202, 11);
10291 output.WriteString(LogPrefix);
10292 }
10293 if (HasLogToStdout) {
10294 output.WriteRawTag(208, 11);
10295 output.WriteBool(LogToStdout);
10296 }
10297 if (HasLogToResponse) {
10298 output.WriteRawTag(216, 11);
10299 output.WriteBool(LogToResponse);
10300 }
10301 if (HasOptimizeWithLbTreeSearch) {
10302 output.WriteRawTag(224, 11);
10303 output.WriteBool(OptimizeWithLbTreeSearch);
10304 }
10305 if (HasLogSubsolverStatistics) {
10306 output.WriteRawTag(232, 11);
10307 output.WriteBool(LogSubsolverStatistics);
10308 }
10309 if (HasClauseCleanupRatio) {
10310 output.WriteRawTag(241, 11);
10311 output.WriteDouble(ClauseCleanupRatio);
10312 }
10313 if (HasMaxDomainSizeWhenEncodingEqNeqConstraints) {
10314 output.WriteRawTag(248, 11);
10315 output.WriteInt32(MaxDomainSizeWhenEncodingEqNeqConstraints);
10316 }
10317 if (HasFixVariablesToTheirHintedValue) {
10318 output.WriteRawTag(128, 12);
10319 output.WriteBool(FixVariablesToTheirHintedValue);
10320 }
10321 if (HasSolutionPoolSize) {
10322 output.WriteRawTag(136, 12);
10323 output.WriteInt32(SolutionPoolSize);
10324 }
10325 if (HasFillAdditionalSolutionsInResponse) {
10326 output.WriteRawTag(144, 12);
10327 output.WriteBool(FillAdditionalSolutionsInResponse);
10328 }
10329 if (HasDebugCrashOnBadHint) {
10330 output.WriteRawTag(152, 12);
10331 output.WriteBool(DebugCrashOnBadHint);
10332 }
10333 if (HasCutLevel) {
10334 output.WriteRawTag(160, 12);
10335 output.WriteInt32(CutLevel);
10336 }
10337 if (HasAddObjectiveCut) {
10338 output.WriteRawTag(168, 12);
10339 output.WriteBool(AddObjectiveCut);
10340 }
10341 if (HasMipComputeTrueObjectiveBound) {
10342 output.WriteRawTag(176, 12);
10343 output.WriteBool(MipComputeTrueObjectiveBound);
10344 }
10345 if (HasMipMaxValidMagnitude) {
10346 output.WriteRawTag(185, 12);
10347 output.WriteDouble(MipMaxValidMagnitude);
10348 }
10349 if (HasUseTimetablingInNoOverlap2D) {
10350 output.WriteRawTag(192, 12);
10351 output.WriteBool(UseTimetablingInNoOverlap2D);
10352 }
10353 if (HasPresolveInclusionWorkLimit) {
10354 output.WriteRawTag(200, 12);
10355 output.WriteInt64(PresolveInclusionWorkLimit);
10356 }
10357 if (HasIgnoreNames) {
10358 output.WriteRawTag(208, 12);
10359 output.WriteBool(IgnoreNames);
10360 }
10361 if (HasShareBinaryClauses) {
10362 output.WriteRawTag(216, 12);
10363 output.WriteBool(ShareBinaryClauses);
10364 }
10365 if (HasUseShavingInProbingSearch) {
10366 output.WriteRawTag(224, 12);
10367 output.WriteBool(UseShavingInProbingSearch);
10368 }
10369 if (HasShavingSearchDeterministicTime) {
10370 output.WriteRawTag(233, 12);
10371 output.WriteDouble(ShavingSearchDeterministicTime);
10372 }
10373 if (HasNumWorkers) {
10374 output.WriteRawTag(240, 12);
10375 output.WriteInt32(NumWorkers);
10376 }
10377 subsolvers_.WriteTo(output, _repeated_subsolvers_codec);
10378 ignoreSubsolvers_.WriteTo(output, _repeated_ignoreSubsolvers_codec);
10379 subsolverParams_.WriteTo(output, _repeated_subsolverParams_codec);
10380 if (HasUseEnergeticReasoningInNoOverlap2D) {
10381 output.WriteRawTag(168, 13);
10382 output.WriteBool(UseEnergeticReasoningInNoOverlap2D);
10383 }
10384 if (HasUseDualSchedulingHeuristics) {
10385 output.WriteRawTag(176, 13);
10386 output.WriteBool(UseDualSchedulingHeuristics);
10387 }
10388 if (HasUseHardPrecedencesInCumulative) {
10389 output.WriteRawTag(184, 13);
10390 output.WriteBool(UseHardPrecedencesInCumulative);
10391 }
10392 if (HasDetectTableWithCost) {
10393 output.WriteRawTag(192, 13);
10394 output.WriteBool(DetectTableWithCost);
10395 }
10396 if (HasTableCompressionLevel) {
10397 output.WriteRawTag(200, 13);
10398 output.WriteInt32(TableCompressionLevel);
10399 }
10400 extraSubsolvers_.WriteTo(output, _repeated_extraSubsolvers_codec);
10401 if (HasExploitAllPrecedences) {
10402 output.WriteRawTag(224, 13);
10403 output.WriteBool(ExploitAllPrecedences);
10404 }
10405 if (HasPropagationLoopDetectionFactor) {
10406 output.WriteRawTag(233, 13);
10407 output.WriteDouble(PropagationLoopDetectionFactor);
10408 }
10409 if (HasOnlySolveIp) {
10410 output.WriteRawTag(240, 13);
10411 output.WriteBool(OnlySolveIp);
10412 }
10413 if (HasEncodeComplexLinearConstraintWithInteger) {
10414 output.WriteRawTag(248, 13);
10415 output.WriteBool(EncodeComplexLinearConstraintWithInteger);
10416 }
10417 if (HasNewLinearPropagation) {
10418 output.WriteRawTag(128, 14);
10419 output.WriteBool(NewLinearPropagation);
10420 }
10421 if (HasMipScaleLargeDomain) {
10422 output.WriteRawTag(136, 14);
10423 output.WriteBool(MipScaleLargeDomain);
10424 }
10425 if (HasProbingDeterministicTimeLimit) {
10426 output.WriteRawTag(145, 14);
10427 output.WriteDouble(ProbingDeterministicTimeLimit);
10428 }
10429 if (HasRootLpIterations) {
10430 output.WriteRawTag(152, 14);
10431 output.WriteInt32(RootLpIterations);
10432 }
10433 if (HasUseObjectiveLbSearch) {
10434 output.WriteRawTag(160, 14);
10435 output.WriteBool(UseObjectiveLbSearch);
10436 }
10437 if (HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive) {
10438 output.WriteRawTag(168, 14);
10439 output.WriteInt32(MaxSizeToCreatePrecedenceLiteralsInDisjunctive);
10440 }
10441 if (HasUseStrongPropagationInDisjunctive) {
10442 output.WriteRawTag(176, 14);
10443 output.WriteBool(UseStrongPropagationInDisjunctive);
10444 }
10445 if (HasMipDropTolerance) {
10446 output.WriteRawTag(193, 14);
10447 output.WriteDouble(MipDropTolerance);
10448 }
10449 if (HasInferAllDiffs) {
10450 output.WriteRawTag(200, 14);
10451 output.WriteBool(InferAllDiffs);
10452 }
10453 if (HasFindBigLinearOverlap) {
10454 output.WriteRawTag(208, 14);
10455 output.WriteBool(FindBigLinearOverlap);
10456 }
10457 if (HasSharedTreeNumWorkers) {
10458 output.WriteRawTag(216, 14);
10459 output.WriteInt32(SharedTreeNumWorkers);
10460 }
10461 if (HasUseSharedTreeSearch) {
10462 output.WriteRawTag(224, 14);
10463 output.WriteBool(UseSharedTreeSearch);
10464 }
10465 if (HasSharedTreeMaxNodesPerWorker) {
10466 output.WriteRawTag(240, 14);
10467 output.WriteInt32(SharedTreeMaxNodesPerWorker);
10468 }
10469 if (HasSharedTreeSplitStrategy) {
10470 output.WriteRawTag(248, 14);
10471 output.WriteEnum((int) SharedTreeSplitStrategy);
10472 }
10473 if (HasUseLsOnly) {
10474 output.WriteRawTag(128, 15);
10475 output.WriteBool(UseLsOnly);
10476 }
10477 if (HasFeasibilityJumpDecay) {
10478 output.WriteRawTag(145, 15);
10479 output.WriteDouble(FeasibilityJumpDecay);
10480 }
10481 if (HasNumViolationLs) {
10482 output.WriteRawTag(160, 15);
10483 output.WriteInt32(NumViolationLs);
10484 }
10485 if (HasFeasibilityJumpVarRandomizationProbability) {
10486 output.WriteRawTag(185, 15);
10487 output.WriteDouble(FeasibilityJumpVarRandomizationProbability);
10488 }
10489 if (HasFeasibilityJumpVarPerburbationRangeRatio) {
10490 output.WriteRawTag(193, 15);
10491 output.WriteDouble(FeasibilityJumpVarPerburbationRangeRatio);
10492 }
10493 if (HasViolationLsPerturbationPeriod) {
10494 output.WriteRawTag(200, 15);
10495 output.WriteInt32(ViolationLsPerturbationPeriod);
10496 }
10497 if (HasFeasibilityJumpEnableRestarts) {
10498 output.WriteRawTag(208, 15);
10499 output.WriteBool(FeasibilityJumpEnableRestarts);
10500 }
10501 if (HasStopAfterRootPropagation) {
10502 output.WriteRawTag(224, 15);
10503 output.WriteBool(StopAfterRootPropagation);
10504 }
10505 if (HasUseObjectiveShavingSearch) {
10506 output.WriteRawTag(232, 15);
10507 output.WriteBool(UseObjectiveShavingSearch);
10508 }
10509 if (HasUseLbRelaxLns) {
10510 output.WriteRawTag(248, 15);
10511 output.WriteBool(UseLbRelaxLns);
10512 }
10513 if (HasLinearSplitSize) {
10514 output.WriteRawTag(128, 16);
10515 output.WriteInt32(LinearSplitSize);
10516 }
10517 if (HasFeasibilityJumpLinearizationLevel) {
10518 output.WriteRawTag(136, 16);
10519 output.WriteInt32(FeasibilityJumpLinearizationLevel);
10520 }
10521 if (HasFeasibilityJumpRestartFactor) {
10522 output.WriteRawTag(144, 16);
10523 output.WriteInt32(FeasibilityJumpRestartFactor);
10524 }
10525 if (HasViolationLsCompoundMoveProbability) {
10526 output.WriteRawTag(153, 16);
10527 output.WriteDouble(ViolationLsCompoundMoveProbability);
10528 }
10529 if (HasMaxNumIntervalsForTimetableEdgeFinding) {
10530 output.WriteRawTag(160, 16);
10531 output.WriteInt32(MaxNumIntervalsForTimetableEdgeFinding);
10532 }
10533 if (HasMipPresolveLevel) {
10534 output.WriteRawTag(168, 16);
10535 output.WriteInt32(MipPresolveLevel);
10536 }
10537 if (HasPushAllTasksTowardStart) {
10538 output.WriteRawTag(176, 16);
10539 output.WriteBool(PushAllTasksTowardStart);
10540 }
10541 if (HasUseDynamicPrecedenceInDisjunctive) {
10542 output.WriteRawTag(184, 16);
10543 output.WriteBool(UseDynamicPrecedenceInDisjunctive);
10544 }
10545 if (HasFeasibilityJumpMaxExpandedConstraintSize) {
10546 output.WriteRawTag(192, 16);
10547 output.WriteInt32(FeasibilityJumpMaxExpandedConstraintSize);
10548 }
10549 if (HasUseFeasibilityJump) {
10550 output.WriteRawTag(200, 16);
10551 output.WriteBool(UseFeasibilityJump);
10552 }
10553 if (HasLpPrimalTolerance) {
10554 output.WriteRawTag(209, 16);
10555 output.WriteDouble(LpPrimalTolerance);
10556 }
10557 if (HasLpDualTolerance) {
10558 output.WriteRawTag(217, 16);
10559 output.WriteDouble(LpDualTolerance);
10560 }
10561 if (HasUseDynamicPrecedenceInCumulative) {
10562 output.WriteRawTag(224, 16);
10563 output.WriteBool(UseDynamicPrecedenceInCumulative);
10564 }
10565 if (HasUseExtendedProbing) {
10566 output.WriteRawTag(232, 16);
10567 output.WriteBool(UseExtendedProbing);
10568 }
10569 if (HasAtMostOneMaxExpansionSize) {
10570 output.WriteRawTag(240, 16);
10571 output.WriteInt32(AtMostOneMaxExpansionSize);
10572 }
10573 if (HasUseAreaEnergeticReasoningInNoOverlap2D) {
10574 output.WriteRawTag(248, 16);
10575 output.WriteBool(UseAreaEnergeticReasoningInNoOverlap2D);
10576 }
10577 if (HasProbingNumCombinationsLimit) {
10578 output.WriteRawTag(128, 17);
10579 output.WriteInt32(ProbingNumCombinationsLimit);
10580 }
10581 if (HasInprocessingDtimeRatio) {
10582 output.WriteRawTag(137, 17);
10583 output.WriteDouble(InprocessingDtimeRatio);
10584 }
10585 if (HasInprocessingProbingDtime) {
10586 output.WriteRawTag(145, 17);
10587 output.WriteDouble(InprocessingProbingDtime);
10588 }
10589 if (HasInprocessingMinimizationDtime) {
10590 output.WriteRawTag(153, 17);
10591 output.WriteDouble(InprocessingMinimizationDtime);
10592 }
10593 if (HasMaxPairsPairwiseReasoningInNoOverlap2D) {
10594 output.WriteRawTag(160, 17);
10595 output.WriteInt32(MaxPairsPairwiseReasoningInNoOverlap2D);
10596 }
10597 if (HasDetectLinearizedProduct) {
10598 output.WriteRawTag(168, 17);
10599 output.WriteBool(DetectLinearizedProduct);
10600 }
10601 if (HasMipTreatHighMagnitudeBoundsAsInfinity) {
10602 output.WriteRawTag(176, 17);
10603 output.WriteBool(MipTreatHighMagnitudeBoundsAsInfinity);
10604 }
10605 if (HasAddRltCuts) {
10606 output.WriteRawTag(184, 17);
10607 output.WriteBool(AddRltCuts);
10608 }
10609 if (HasMaxLinMaxSizeForExpansion) {
10610 output.WriteRawTag(192, 17);
10611 output.WriteInt32(MaxLinMaxSizeForExpansion);
10612 }
10613 if (HasSharedTreeOpenLeavesPerWorker) {
10614 output.WriteRawTag(201, 17);
10615 output.WriteDouble(SharedTreeOpenLeavesPerWorker);
10616 }
10617 if (HasSharedTreeWorkerMinRestartsPerSubtree) {
10618 output.WriteRawTag(208, 17);
10619 output.WriteInt32(SharedTreeWorkerMinRestartsPerSubtree);
10620 }
10621 if (HasUseLns) {
10622 output.WriteRawTag(216, 17);
10623 output.WriteBool(UseLns);
10624 }
10625 if (HasSaveLpBasisInLbTreeSearch) {
10626 output.WriteRawTag(224, 17);
10627 output.WriteBool(SaveLpBasisInLbTreeSearch);
10628 }
10629 if (HasShareGlueClauses) {
10630 output.WriteRawTag(232, 17);
10631 output.WriteBool(ShareGlueClauses);
10632 }
10633 if (HasUseConservativeScaleOverloadChecker) {
10634 output.WriteRawTag(240, 17);
10635 output.WriteBool(UseConservativeScaleOverloadChecker);
10636 }
10637 if (HasEncodeCumulativeAsReservoir) {
10638 output.WriteRawTag(248, 17);
10639 output.WriteBool(EncodeCumulativeAsReservoir);
10640 }
10641 if (HasExpandReservoirUsingCircuit) {
10642 output.WriteRawTag(128, 18);
10643 output.WriteBool(ExpandReservoirUsingCircuit);
10644 }
10645 if (HasUseVariablesShavingSearch) {
10646 output.WriteRawTag(136, 18);
10647 output.WriteBool(UseVariablesShavingSearch);
10648 }
10649 if (HasShavingSearchThreshold) {
10650 output.WriteRawTag(144, 18);
10651 output.WriteInt64(ShavingSearchThreshold);
10652 }
10653 if (HasMaxNumDeterministicBatches) {
10654 output.WriteRawTag(152, 18);
10655 output.WriteInt32(MaxNumDeterministicBatches);
10656 }
10657 if (HasFeasibilityJumpBatchDtime) {
10658 output.WriteRawTag(161, 18);
10659 output.WriteDouble(FeasibilityJumpBatchDtime);
10660 }
10661 filterSubsolvers_.WriteTo(output, _repeated_filterSubsolvers_codec);
10662 if (HasNumFullSubsolvers) {
10663 output.WriteRawTag(176, 18);
10664 output.WriteInt32(NumFullSubsolvers);
10665 }
10666 if (HasSharedTreeWorkerEnableTrailSharing) {
10667 output.WriteRawTag(184, 18);
10668 output.WriteBool(SharedTreeWorkerEnableTrailSharing);
10669 }
10670 if (HasLbRelaxNumWorkersThreshold) {
10671 output.WriteRawTag(192, 18);
10672 output.WriteInt32(LbRelaxNumWorkersThreshold);
10673 }
10674 if (HasInprocessingMinimizationUseConflictAnalysis) {
10675 output.WriteRawTag(200, 18);
10676 output.WriteBool(InprocessingMinimizationUseConflictAnalysis);
10677 }
10678 if (HasInprocessingMinimizationUseAllOrderings) {
10679 output.WriteRawTag(208, 18);
10680 output.WriteBool(InprocessingMinimizationUseAllOrderings);
10681 }
10682 if (HasUseTryEdgeReasoningInNoOverlap2D) {
10683 output.WriteRawTag(216, 18);
10684 output.WriteBool(UseTryEdgeReasoningInNoOverlap2D);
10685 }
10686 if (HasMinimizeSharedClauses) {
10687 output.WriteRawTag(224, 18);
10688 output.WriteBool(MinimizeSharedClauses);
10689 }
10690 if (HasUseSymmetryInLp) {
10691 output.WriteRawTag(232, 18);
10692 output.WriteBool(UseSymmetryInLp);
10693 }
10694 if (HasSymmetryDetectionDeterministicTimeLimit) {
10695 output.WriteRawTag(241, 18);
10696 output.WriteDouble(SymmetryDetectionDeterministicTimeLimit);
10697 }
10698 if (HasKeepSymmetryInPresolve) {
10699 output.WriteRawTag(248, 18);
10700 output.WriteBool(KeepSymmetryInPresolve);
10701 }
10702 if (HasSharedTreeWorkerEnablePhaseSharing) {
10703 output.WriteRawTag(128, 19);
10704 output.WriteBool(SharedTreeWorkerEnablePhaseSharing);
10705 }
10706 if (HasSharedTreeBalanceTolerance) {
10707 output.WriteRawTag(136, 19);
10708 output.WriteInt32(SharedTreeBalanceTolerance);
10709 }
10710 if (HasDebugCrashIfPresolveBreaksHint) {
10711 output.WriteRawTag(144, 19);
10712 output.WriteBool(DebugCrashIfPresolveBreaksHint);
10713 }
10714 if (HasLnsInitialDifficulty) {
10715 output.WriteRawTag(153, 19);
10716 output.WriteDouble(LnsInitialDifficulty);
10717 }
10718 if (HasLnsInitialDeterministicLimit) {
10719 output.WriteRawTag(161, 19);
10720 output.WriteDouble(LnsInitialDeterministicLimit);
10721 }
10722 if (HasPolarityExploitLsHints) {
10723 output.WriteRawTag(168, 19);
10724 output.WriteBool(PolarityExploitLsHints);
10725 }
10726 if (HasRemoveFixedVariablesEarly) {
10727 output.WriteRawTag(176, 19);
10728 output.WriteBool(RemoveFixedVariablesEarly);
10729 }
10730 if (HasUseAllDifferentForCircuit) {
10731 output.WriteRawTag(184, 19);
10732 output.WriteBool(UseAllDifferentForCircuit);
10733 }
10734 if (HasRoutingCutSubsetSizeForBinaryRelationBound) {
10735 output.WriteRawTag(192, 19);
10736 output.WriteInt32(RoutingCutSubsetSizeForBinaryRelationBound);
10737 }
10738 if (HasRoutingCutSubsetSizeForTightBinaryRelationBound) {
10739 output.WriteRawTag(200, 19);
10740 output.WriteInt32(RoutingCutSubsetSizeForTightBinaryRelationBound);
10741 }
10742 if (HasRoutingCutDpEffort) {
10743 output.WriteRawTag(209, 19);
10744 output.WriteDouble(RoutingCutDpEffort);
10745 }
10746 if (HasMaximumRegionsToSplitInDisconnectedNoOverlap2D) {
10747 output.WriteRawTag(216, 19);
10748 output.WriteInt32(MaximumRegionsToSplitInDisconnectedNoOverlap2D);
10749 }
10750 if (_unknownFields != null) {
10751 _unknownFields.WriteTo(output);
10752 }
10753 #endif
10754 }
10755
10756 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10757 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10758 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10759 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
10760 if (HasPreferredVariableOrder) {
10761 output.WriteRawTag(8);
10762 output.WriteEnum((int) PreferredVariableOrder);
10763 }
10764 if (HasInitialPolarity) {
10765 output.WriteRawTag(16);
10766 output.WriteEnum((int) InitialPolarity);
10767 }
10768 if (HasMinimizationAlgorithm) {
10769 output.WriteRawTag(32);
10770 output.WriteEnum((int) MinimizationAlgorithm);
10771 }
10772 if (HasClauseCleanupPeriod) {
10773 output.WriteRawTag(88);
10774 output.WriteInt32(ClauseCleanupPeriod);
10775 }
10776 if (HasClauseCleanupTarget) {
10777 output.WriteRawTag(104);
10778 output.WriteInt32(ClauseCleanupTarget);
10779 }
10780 if (HasVariableActivityDecay) {
10781 output.WriteRawTag(121);
10782 output.WriteDouble(VariableActivityDecay);
10783 }
10784 if (HasMaxVariableActivityValue) {
10785 output.WriteRawTag(129, 1);
10786 output.WriteDouble(MaxVariableActivityValue);
10787 }
10788 if (HasClauseActivityDecay) {
10789 output.WriteRawTag(137, 1);
10790 output.WriteDouble(ClauseActivityDecay);
10791 }
10792 if (HasMaxClauseActivityValue) {
10793 output.WriteRawTag(145, 1);
10794 output.WriteDouble(MaxClauseActivityValue);
10795 }
10796 if (HasGlucoseMaxDecay) {
10797 output.WriteRawTag(177, 1);
10798 output.WriteDouble(GlucoseMaxDecay);
10799 }
10800 if (HasGlucoseDecayIncrement) {
10801 output.WriteRawTag(185, 1);
10802 output.WriteDouble(GlucoseDecayIncrement);
10803 }
10804 if (HasGlucoseDecayIncrementPeriod) {
10805 output.WriteRawTag(192, 1);
10806 output.WriteInt32(GlucoseDecayIncrementPeriod);
10807 }
10808 if (HasRestartPeriod) {
10809 output.WriteRawTag(240, 1);
10810 output.WriteInt32(RestartPeriod);
10811 }
10812 if (HasRandomSeed) {
10813 output.WriteRawTag(248, 1);
10814 output.WriteInt32(RandomSeed);
10815 }
10816 if (HasRandomBranchesRatio) {
10817 output.WriteRawTag(129, 2);
10818 output.WriteDouble(RandomBranchesRatio);
10819 }
10820 if (HasBinaryMinimizationAlgorithm) {
10821 output.WriteRawTag(144, 2);
10822 output.WriteEnum((int) BinaryMinimizationAlgorithm);
10823 }
10824 if (HasUseOptimizationHints) {
10825 output.WriteRawTag(152, 2);
10826 output.WriteBool(UseOptimizationHints);
10827 }
10828 if (HasMaxTimeInSeconds) {
10829 output.WriteRawTag(161, 2);
10830 output.WriteDouble(MaxTimeInSeconds);
10831 }
10832 if (HasMaxNumberOfConflicts) {
10833 output.WriteRawTag(168, 2);
10834 output.WriteInt64(MaxNumberOfConflicts);
10835 }
10836 if (HasMaxMemoryInMb) {
10837 output.WriteRawTag(192, 2);
10838 output.WriteInt64(MaxMemoryInMb);
10839 }
10840 if (HasLogSearchProgress) {
10841 output.WriteRawTag(200, 2);
10842 output.WriteBool(LogSearchProgress);
10843 }
10844 if (HasUsePbResolution) {
10845 output.WriteRawTag(216, 2);
10846 output.WriteBool(UsePbResolution);
10847 }
10848 if (HasUsePhaseSaving) {
10849 output.WriteRawTag(224, 2);
10850 output.WriteBool(UsePhaseSaving);
10851 }
10852 if (HasRandomPolarityRatio) {
10853 output.WriteRawTag(233, 2);
10854 output.WriteDouble(RandomPolarityRatio);
10855 }
10856 if (HasPbCleanupIncrement) {
10857 output.WriteRawTag(240, 2);
10858 output.WriteInt32(PbCleanupIncrement);
10859 }
10860 if (HasPbCleanupRatio) {
10861 output.WriteRawTag(249, 2);
10862 output.WriteDouble(PbCleanupRatio);
10863 }
10864 if (HasMinimizeReductionDuringPbResolution) {
10865 output.WriteRawTag(128, 3);
10866 output.WriteBool(MinimizeReductionDuringPbResolution);
10867 }
10868 if (HasCountAssumptionLevelsInLbd) {
10869 output.WriteRawTag(136, 3);
10870 output.WriteBool(CountAssumptionLevelsInLbd);
10871 }
10872 if (HasCoreMinimizationLevel) {
10873 output.WriteRawTag(144, 3);
10874 output.WriteInt32(CoreMinimizationLevel);
10875 }
10876 if (HasMaxSatAssumptionOrder) {
10877 output.WriteRawTag(152, 3);
10878 output.WriteEnum((int) MaxSatAssumptionOrder);
10879 }
10880 if (HasMaxSatReverseAssumptionOrder) {
10881 output.WriteRawTag(160, 3);
10882 output.WriteBool(MaxSatReverseAssumptionOrder);
10883 }
10884 if (HasMaxSatStratification) {
10885 output.WriteRawTag(168, 3);
10886 output.WriteEnum((int) MaxSatStratification);
10887 }
10888 if (HasPresolveBveThreshold) {
10889 output.WriteRawTag(176, 3);
10890 output.WriteInt32(PresolveBveThreshold);
10891 }
10892 if (HasPresolveBveClauseWeight) {
10893 output.WriteRawTag(184, 3);
10894 output.WriteInt32(PresolveBveClauseWeight);
10895 }
10896 if (HasSubsumptionDuringConflictAnalysis) {
10897 output.WriteRawTag(192, 3);
10898 output.WriteBool(SubsumptionDuringConflictAnalysis);
10899 }
10900 if (HasPresolveProbingDeterministicTimeLimit) {
10901 output.WriteRawTag(201, 3);
10902 output.WriteDouble(PresolveProbingDeterministicTimeLimit);
10903 }
10904 if (HasClauseCleanupProtection) {
10905 output.WriteRawTag(208, 3);
10906 output.WriteEnum((int) ClauseCleanupProtection);
10907 }
10908 if (HasClauseCleanupLbdBound) {
10909 output.WriteRawTag(216, 3);
10910 output.WriteInt32(ClauseCleanupLbdBound);
10911 }
10912 if (HasClauseCleanupOrdering) {
10913 output.WriteRawTag(224, 3);
10914 output.WriteEnum((int) ClauseCleanupOrdering);
10915 }
10916 restartAlgorithms_.WriteTo(ref output, _repeated_restartAlgorithms_codec);
10917 if (HasRestartRunningWindowSize) {
10918 output.WriteRawTag(240, 3);
10919 output.WriteInt32(RestartRunningWindowSize);
10920 }
10921 if (HasRestartDlAverageRatio) {
10922 output.WriteRawTag(249, 3);
10923 output.WriteDouble(RestartDlAverageRatio);
10924 }
10925 if (HasUseBlockingRestart) {
10926 output.WriteRawTag(128, 4);
10927 output.WriteBool(UseBlockingRestart);
10928 }
10929 if (HasBlockingRestartWindowSize) {
10930 output.WriteRawTag(136, 4);
10931 output.WriteInt32(BlockingRestartWindowSize);
10932 }
10933 if (HasBlockingRestartMultiplier) {
10934 output.WriteRawTag(145, 4);
10935 output.WriteDouble(BlockingRestartMultiplier);
10936 }
10937 if (HasMaxDeterministicTime) {
10938 output.WriteRawTag(153, 4);
10939 output.WriteDouble(MaxDeterministicTime);
10940 }
10941 if (HasNumConflictsBeforeStrategyChanges) {
10942 output.WriteRawTag(160, 4);
10943 output.WriteInt32(NumConflictsBeforeStrategyChanges);
10944 }
10945 if (HasStrategyChangeIncreaseRatio) {
10946 output.WriteRawTag(169, 4);
10947 output.WriteDouble(StrategyChangeIncreaseRatio);
10948 }
10949 if (HasDefaultRestartAlgorithms) {
10950 output.WriteRawTag(178, 4);
10951 output.WriteString(DefaultRestartAlgorithms);
10952 }
10953 if (HasRestartLbdAverageRatio) {
10954 output.WriteRawTag(185, 4);
10955 output.WriteDouble(RestartLbdAverageRatio);
10956 }
10957 if (HasPresolveUseBva) {
10958 output.WriteRawTag(192, 4);
10959 output.WriteBool(PresolveUseBva);
10960 }
10961 if (HasPresolveBvaThreshold) {
10962 output.WriteRawTag(200, 4);
10963 output.WriteInt32(PresolveBvaThreshold);
10964 }
10965 if (HasUsePrecedencesInDisjunctiveConstraint) {
10966 output.WriteRawTag(208, 4);
10967 output.WriteBool(UsePrecedencesInDisjunctiveConstraint);
10968 }
10969 if (HasUseErwaHeuristic) {
10970 output.WriteRawTag(216, 4);
10971 output.WriteBool(UseErwaHeuristic);
10972 }
10973 if (HasInitialVariablesActivity) {
10974 output.WriteRawTag(225, 4);
10975 output.WriteDouble(InitialVariablesActivity);
10976 }
10977 if (HasAlsoBumpVariablesInConflictReasons) {
10978 output.WriteRawTag(232, 4);
10979 output.WriteBool(AlsoBumpVariablesInConflictReasons);
10980 }
10981 if (HasUseOverloadCheckerInCumulative) {
10982 output.WriteRawTag(240, 4);
10983 output.WriteBool(UseOverloadCheckerInCumulative);
10984 }
10985 if (HasUseTimetableEdgeFindingInCumulative) {
10986 output.WriteRawTag(248, 4);
10987 output.WriteBool(UseTimetableEdgeFindingInCumulative);
10988 }
10989 if (HasUseDisjunctiveConstraintInCumulative) {
10990 output.WriteRawTag(128, 5);
10991 output.WriteBool(UseDisjunctiveConstraintInCumulative);
10992 }
10993 if (HasSearchBranching) {
10994 output.WriteRawTag(144, 5);
10995 output.WriteEnum((int) SearchBranching);
10996 }
10997 if (HasOptimizeWithCore) {
10998 output.WriteRawTag(152, 5);
10999 output.WriteBool(OptimizeWithCore);
11000 }
11001 if (HasFindMultipleCores) {
11002 output.WriteRawTag(160, 5);
11003 output.WriteBool(FindMultipleCores);
11004 }
11005 if (HasOptimizeWithMaxHs) {
11006 output.WriteRawTag(168, 5);
11007 output.WriteBool(OptimizeWithMaxHs);
11008 }
11009 if (HasCpModelPresolve) {
11010 output.WriteRawTag(176, 5);
11011 output.WriteBool(CpModelPresolve);
11012 }
11013 if (HasEnumerateAllSolutions) {
11014 output.WriteRawTag(184, 5);
11015 output.WriteBool(EnumerateAllSolutions);
11016 }
11017 if (HasPresolveBlockedClause) {
11018 output.WriteRawTag(192, 5);
11019 output.WriteBool(PresolveBlockedClause);
11020 }
11021 if (HasCoverOptimization) {
11022 output.WriteRawTag(200, 5);
11023 output.WriteBool(CoverOptimization);
11024 }
11025 if (HasLinearizationLevel) {
11026 output.WriteRawTag(208, 5);
11027 output.WriteInt32(LinearizationLevel);
11028 }
11029 if (HasMaxNumCuts) {
11030 output.WriteRawTag(216, 5);
11031 output.WriteInt32(MaxNumCuts);
11032 }
11033 if (HasOnlyAddCutsAtLevelZero) {
11034 output.WriteRawTag(224, 5);
11035 output.WriteBool(OnlyAddCutsAtLevelZero);
11036 }
11037 if (HasCpModelUseSatPresolve) {
11038 output.WriteRawTag(232, 5);
11039 output.WriteBool(CpModelUseSatPresolve);
11040 }
11041 if (HasExploitIntegerLpSolution) {
11042 output.WriteRawTag(240, 5);
11043 output.WriteBool(ExploitIntegerLpSolution);
11044 }
11045 if (HasAutoDetectGreaterThanAtLeastOneOf) {
11046 output.WriteRawTag(248, 5);
11047 output.WriteBool(AutoDetectGreaterThanAtLeastOneOf);
11048 }
11049 if (HasStopAfterFirstSolution) {
11050 output.WriteRawTag(144, 6);
11051 output.WriteBool(StopAfterFirstSolution);
11052 }
11053 if (HasBinarySearchNumConflicts) {
11054 output.WriteRawTag(152, 6);
11055 output.WriteInt32(BinarySearchNumConflicts);
11056 }
11057 if (HasNumSearchWorkers) {
11058 output.WriteRawTag(160, 6);
11059 output.WriteInt32(NumSearchWorkers);
11060 }
11061 if (HasUseLnsOnly) {
11062 output.WriteRawTag(168, 6);
11063 output.WriteBool(UseLnsOnly);
11064 }
11065 if (HasRandomizeSearch) {
11066 output.WriteRawTag(184, 6);
11067 output.WriteBool(RandomizeSearch);
11068 }
11069 if (HasSearchRandomVariablePoolSize) {
11070 output.WriteRawTag(192, 6);
11071 output.WriteInt64(SearchRandomVariablePoolSize);
11072 }
11073 if (HasInstantiateAllVariables) {
11074 output.WriteRawTag(208, 6);
11075 output.WriteBool(InstantiateAllVariables);
11076 }
11077 if (HasBooleanEncodingLevel) {
11078 output.WriteRawTag(216, 6);
11079 output.WriteInt32(BooleanEncodingLevel);
11080 }
11081 if (HasUseOptionalVariables) {
11082 output.WriteRawTag(224, 6);
11083 output.WriteBool(UseOptionalVariables);
11084 }
11085 if (HasUseExactLpReason) {
11086 output.WriteRawTag(232, 6);
11087 output.WriteBool(UseExactLpReason);
11088 }
11089 if (HasCpModelProbingLevel) {
11090 output.WriteRawTag(240, 6);
11091 output.WriteInt32(CpModelProbingLevel);
11092 }
11093 if (HasAddLpConstraintsLazily) {
11094 output.WriteRawTag(128, 7);
11095 output.WriteBool(AddLpConstraintsLazily);
11096 }
11097 if (HasShareObjectiveBounds) {
11098 output.WriteRawTag(136, 7);
11099 output.WriteBool(ShareObjectiveBounds);
11100 }
11101 if (HasShareLevelZeroBounds) {
11102 output.WriteRawTag(144, 7);
11103 output.WriteBool(ShareLevelZeroBounds);
11104 }
11105 if (HasMinOrthogonalityForLpConstraints) {
11106 output.WriteRawTag(153, 7);
11107 output.WriteDouble(MinOrthogonalityForLpConstraints);
11108 }
11109 if (HasExploitAllLpSolution) {
11110 output.WriteRawTag(160, 7);
11111 output.WriteBool(ExploitAllLpSolution);
11112 }
11113 if (HasAddCgCuts) {
11114 output.WriteRawTag(168, 7);
11115 output.WriteBool(AddCgCuts);
11116 }
11117 if (HasMaxIntegerRoundingScaling) {
11118 output.WriteRawTag(184, 7);
11119 output.WriteInt32(MaxIntegerRoundingScaling);
11120 }
11121 if (HasAddMirCuts) {
11122 output.WriteRawTag(192, 7);
11123 output.WriteBool(AddMirCuts);
11124 }
11125 if (HasMaxConsecutiveInactiveCount) {
11126 output.WriteRawTag(200, 7);
11127 output.WriteInt32(MaxConsecutiveInactiveCount);
11128 }
11129 if (HasNewConstraintsBatchSize) {
11130 output.WriteRawTag(208, 7);
11131 output.WriteInt32(NewConstraintsBatchSize);
11132 }
11133 if (HasPseudoCostReliabilityThreshold) {
11134 output.WriteRawTag(216, 7);
11135 output.WriteInt64(PseudoCostReliabilityThreshold);
11136 }
11137 if (HasMipMaxBound) {
11138 output.WriteRawTag(225, 7);
11139 output.WriteDouble(MipMaxBound);
11140 }
11141 if (HasMipVarScaling) {
11142 output.WriteRawTag(233, 7);
11143 output.WriteDouble(MipVarScaling);
11144 }
11145 if (HasMipWantedPrecision) {
11146 output.WriteRawTag(241, 7);
11147 output.WriteDouble(MipWantedPrecision);
11148 }
11149 if (HasMipMaxActivityExponent) {
11150 output.WriteRawTag(248, 7);
11151 output.WriteInt32(MipMaxActivityExponent);
11152 }
11153 if (HasMipCheckPrecision) {
11154 output.WriteRawTag(129, 8);
11155 output.WriteDouble(MipCheckPrecision);
11156 }
11157 if (HasUseRinsLns) {
11158 output.WriteRawTag(136, 8);
11159 output.WriteBool(UseRinsLns);
11160 }
11161 if (HasExploitBestSolution) {
11162 output.WriteRawTag(144, 8);
11163 output.WriteBool(ExploitBestSolution);
11164 }
11165 if (HasExploitObjective) {
11166 output.WriteRawTag(152, 8);
11167 output.WriteBool(ExploitObjective);
11168 }
11169 if (HasFillTightenedDomainsInResponse) {
11170 output.WriteRawTag(160, 8);
11171 output.WriteBool(FillTightenedDomainsInResponse);
11172 }
11173 if (HasUseCombinedNoOverlap) {
11174 output.WriteRawTag(168, 8);
11175 output.WriteBool(UseCombinedNoOverlap);
11176 }
11177 if (HasInterleaveBatchSize) {
11178 output.WriteRawTag(176, 8);
11179 output.WriteInt32(InterleaveBatchSize);
11180 }
11181 if (HasCatchSigintSignal) {
11182 output.WriteRawTag(184, 8);
11183 output.WriteBool(CatchSigintSignal);
11184 }
11185 if (HasInterleaveSearch) {
11186 output.WriteRawTag(192, 8);
11187 output.WriteBool(InterleaveSearch);
11188 }
11189 if (HasDiversifyLnsParams) {
11190 output.WriteRawTag(200, 8);
11191 output.WriteBool(DiversifyLnsParams);
11192 }
11193 if (HasMaxPresolveIterations) {
11194 output.WriteRawTag(208, 8);
11195 output.WriteInt32(MaxPresolveIterations);
11196 }
11197 if (HasUseImpliedBounds) {
11198 output.WriteRawTag(128, 9);
11199 output.WriteBool(UseImpliedBounds);
11200 }
11201 if (HasMergeNoOverlapWorkLimit) {
11202 output.WriteRawTag(137, 9);
11203 output.WriteDouble(MergeNoOverlapWorkLimit);
11204 }
11205 if (HasMergeAtMostOneWorkLimit) {
11206 output.WriteRawTag(145, 9);
11207 output.WriteDouble(MergeAtMostOneWorkLimit);
11208 }
11209 if (HasPresolveSubstitutionLevel) {
11210 output.WriteRawTag(152, 9);
11211 output.WriteInt32(PresolveSubstitutionLevel);
11212 }
11213 if (HasMaxAllDiffCutSize) {
11214 output.WriteRawTag(160, 9);
11215 output.WriteInt32(MaxAllDiffCutSize);
11216 }
11217 if (HasStopAfterPresolve) {
11218 output.WriteRawTag(168, 9);
11219 output.WriteBool(StopAfterPresolve);
11220 }
11221 if (HasDebugMaxNumPresolveOperations) {
11222 output.WriteRawTag(184, 9);
11223 output.WriteInt32(DebugMaxNumPresolveOperations);
11224 }
11225 if (HasAddLinMaxCuts) {
11226 output.WriteRawTag(192, 9);
11227 output.WriteBool(AddLinMaxCuts);
11228 }
11229 if (HasHintConflictLimit) {
11230 output.WriteRawTag(200, 9);
11231 output.WriteInt32(HintConflictLimit);
11232 }
11233 if (HasMaxCutRoundsAtLevelZero) {
11234 output.WriteRawTag(208, 9);
11235 output.WriteInt32(MaxCutRoundsAtLevelZero);
11236 }
11237 if (HasCutMaxActiveCountValue) {
11238 output.WriteRawTag(217, 9);
11239 output.WriteDouble(CutMaxActiveCountValue);
11240 }
11241 if (HasCutActiveCountDecay) {
11242 output.WriteRawTag(225, 9);
11243 output.WriteDouble(CutActiveCountDecay);
11244 }
11245 if (HasCutCleanupTarget) {
11246 output.WriteRawTag(232, 9);
11247 output.WriteInt32(CutCleanupTarget);
11248 }
11249 if (HasAbsoluteGapLimit) {
11250 output.WriteRawTag(249, 9);
11251 output.WriteDouble(AbsoluteGapLimit);
11252 }
11253 if (HasRelativeGapLimit) {
11254 output.WriteRawTag(129, 10);
11255 output.WriteDouble(RelativeGapLimit);
11256 }
11257 if (HasExploitRelaxationSolution) {
11258 output.WriteRawTag(136, 10);
11259 output.WriteBool(ExploitRelaxationSolution);
11260 }
11261 if (HasDebugPostsolveWithFullSolver) {
11262 output.WriteRawTag(144, 10);
11263 output.WriteBool(DebugPostsolveWithFullSolver);
11264 }
11265 if (HasUseSatInprocessing) {
11266 output.WriteRawTag(152, 10);
11267 output.WriteBool(UseSatInprocessing);
11268 }
11269 if (HasUseFeasibilityPump) {
11270 output.WriteRawTag(160, 10);
11271 output.WriteBool(UseFeasibilityPump);
11272 }
11273 if (HasFpRounding) {
11274 output.WriteRawTag(168, 10);
11275 output.WriteEnum((int) FpRounding);
11276 }
11277 if (HasMipAutomaticallyScaleVariables) {
11278 output.WriteRawTag(176, 10);
11279 output.WriteBool(MipAutomaticallyScaleVariables);
11280 }
11281 if (HasRepairHint) {
11282 output.WriteRawTag(184, 10);
11283 output.WriteBool(RepairHint);
11284 }
11285 if (HasPolarityRephaseIncrement) {
11286 output.WriteRawTag(192, 10);
11287 output.WriteInt32(PolarityRephaseIncrement);
11288 }
11289 if (HasAddZeroHalfCuts) {
11290 output.WriteRawTag(200, 10);
11291 output.WriteBool(AddZeroHalfCuts);
11292 }
11293 if (HasExpandAlldiffConstraints) {
11294 output.WriteRawTag(208, 10);
11295 output.WriteBool(ExpandAlldiffConstraints);
11296 }
11297 if (HasName) {
11298 output.WriteRawTag(218, 10);
11299 output.WriteString(Name);
11300 }
11301 if (HasAddCliqueCuts) {
11302 output.WriteRawTag(224, 10);
11303 output.WriteBool(AddCliqueCuts);
11304 }
11305 if (HasKeepAllFeasibleSolutionsInPresolve) {
11306 output.WriteRawTag(232, 10);
11307 output.WriteBool(KeepAllFeasibleSolutionsInPresolve);
11308 }
11309 if (HasPresolveExtractIntegerEnforcement) {
11310 output.WriteRawTag(240, 10);
11311 output.WriteBool(PresolveExtractIntegerEnforcement);
11312 }
11313 if (HasPolishLpSolution) {
11314 output.WriteRawTag(248, 10);
11315 output.WriteBool(PolishLpSolution);
11316 }
11317 if (HasUseProbingSearch) {
11318 output.WriteRawTag(128, 11);
11319 output.WriteBool(UseProbingSearch);
11320 }
11321 if (HasConvertIntervals) {
11322 output.WriteRawTag(136, 11);
11323 output.WriteBool(ConvertIntervals);
11324 }
11325 if (HasPermuteVariableRandomly) {
11326 output.WriteRawTag(144, 11);
11327 output.WriteBool(PermuteVariableRandomly);
11328 }
11329 if (HasPermutePresolveConstraintOrder) {
11330 output.WriteRawTag(152, 11);
11331 output.WriteBool(PermutePresolveConstraintOrder);
11332 }
11333 if (HasUseAbslRandom) {
11334 output.WriteRawTag(160, 11);
11335 output.WriteBool(UseAbslRandom);
11336 }
11337 if (HasDisableConstraintExpansion) {
11338 output.WriteRawTag(168, 11);
11339 output.WriteBool(DisableConstraintExpansion);
11340 }
11341 if (HasExpandReservoirConstraints) {
11342 output.WriteRawTag(176, 11);
11343 output.WriteBool(ExpandReservoirConstraints);
11344 }
11345 if (HasSymmetryLevel) {
11346 output.WriteRawTag(184, 11);
11347 output.WriteInt32(SymmetryLevel);
11348 }
11349 if (HasLogPrefix) {
11350 output.WriteRawTag(202, 11);
11351 output.WriteString(LogPrefix);
11352 }
11353 if (HasLogToStdout) {
11354 output.WriteRawTag(208, 11);
11355 output.WriteBool(LogToStdout);
11356 }
11357 if (HasLogToResponse) {
11358 output.WriteRawTag(216, 11);
11359 output.WriteBool(LogToResponse);
11360 }
11361 if (HasOptimizeWithLbTreeSearch) {
11362 output.WriteRawTag(224, 11);
11363 output.WriteBool(OptimizeWithLbTreeSearch);
11364 }
11365 if (HasLogSubsolverStatistics) {
11366 output.WriteRawTag(232, 11);
11367 output.WriteBool(LogSubsolverStatistics);
11368 }
11369 if (HasClauseCleanupRatio) {
11370 output.WriteRawTag(241, 11);
11371 output.WriteDouble(ClauseCleanupRatio);
11372 }
11373 if (HasMaxDomainSizeWhenEncodingEqNeqConstraints) {
11374 output.WriteRawTag(248, 11);
11375 output.WriteInt32(MaxDomainSizeWhenEncodingEqNeqConstraints);
11376 }
11377 if (HasFixVariablesToTheirHintedValue) {
11378 output.WriteRawTag(128, 12);
11379 output.WriteBool(FixVariablesToTheirHintedValue);
11380 }
11381 if (HasSolutionPoolSize) {
11382 output.WriteRawTag(136, 12);
11383 output.WriteInt32(SolutionPoolSize);
11384 }
11385 if (HasFillAdditionalSolutionsInResponse) {
11386 output.WriteRawTag(144, 12);
11387 output.WriteBool(FillAdditionalSolutionsInResponse);
11388 }
11389 if (HasDebugCrashOnBadHint) {
11390 output.WriteRawTag(152, 12);
11391 output.WriteBool(DebugCrashOnBadHint);
11392 }
11393 if (HasCutLevel) {
11394 output.WriteRawTag(160, 12);
11395 output.WriteInt32(CutLevel);
11396 }
11397 if (HasAddObjectiveCut) {
11398 output.WriteRawTag(168, 12);
11399 output.WriteBool(AddObjectiveCut);
11400 }
11401 if (HasMipComputeTrueObjectiveBound) {
11402 output.WriteRawTag(176, 12);
11403 output.WriteBool(MipComputeTrueObjectiveBound);
11404 }
11405 if (HasMipMaxValidMagnitude) {
11406 output.WriteRawTag(185, 12);
11407 output.WriteDouble(MipMaxValidMagnitude);
11408 }
11409 if (HasUseTimetablingInNoOverlap2D) {
11410 output.WriteRawTag(192, 12);
11411 output.WriteBool(UseTimetablingInNoOverlap2D);
11412 }
11413 if (HasPresolveInclusionWorkLimit) {
11414 output.WriteRawTag(200, 12);
11415 output.WriteInt64(PresolveInclusionWorkLimit);
11416 }
11417 if (HasIgnoreNames) {
11418 output.WriteRawTag(208, 12);
11419 output.WriteBool(IgnoreNames);
11420 }
11421 if (HasShareBinaryClauses) {
11422 output.WriteRawTag(216, 12);
11423 output.WriteBool(ShareBinaryClauses);
11424 }
11425 if (HasUseShavingInProbingSearch) {
11426 output.WriteRawTag(224, 12);
11427 output.WriteBool(UseShavingInProbingSearch);
11428 }
11429 if (HasShavingSearchDeterministicTime) {
11430 output.WriteRawTag(233, 12);
11431 output.WriteDouble(ShavingSearchDeterministicTime);
11432 }
11433 if (HasNumWorkers) {
11434 output.WriteRawTag(240, 12);
11435 output.WriteInt32(NumWorkers);
11436 }
11437 subsolvers_.WriteTo(ref output, _repeated_subsolvers_codec);
11438 ignoreSubsolvers_.WriteTo(ref output, _repeated_ignoreSubsolvers_codec);
11439 subsolverParams_.WriteTo(ref output, _repeated_subsolverParams_codec);
11440 if (HasUseEnergeticReasoningInNoOverlap2D) {
11441 output.WriteRawTag(168, 13);
11442 output.WriteBool(UseEnergeticReasoningInNoOverlap2D);
11443 }
11444 if (HasUseDualSchedulingHeuristics) {
11445 output.WriteRawTag(176, 13);
11446 output.WriteBool(UseDualSchedulingHeuristics);
11447 }
11448 if (HasUseHardPrecedencesInCumulative) {
11449 output.WriteRawTag(184, 13);
11450 output.WriteBool(UseHardPrecedencesInCumulative);
11451 }
11452 if (HasDetectTableWithCost) {
11453 output.WriteRawTag(192, 13);
11454 output.WriteBool(DetectTableWithCost);
11455 }
11456 if (HasTableCompressionLevel) {
11457 output.WriteRawTag(200, 13);
11458 output.WriteInt32(TableCompressionLevel);
11459 }
11460 extraSubsolvers_.WriteTo(ref output, _repeated_extraSubsolvers_codec);
11461 if (HasExploitAllPrecedences) {
11462 output.WriteRawTag(224, 13);
11463 output.WriteBool(ExploitAllPrecedences);
11464 }
11465 if (HasPropagationLoopDetectionFactor) {
11466 output.WriteRawTag(233, 13);
11467 output.WriteDouble(PropagationLoopDetectionFactor);
11468 }
11469 if (HasOnlySolveIp) {
11470 output.WriteRawTag(240, 13);
11471 output.WriteBool(OnlySolveIp);
11472 }
11473 if (HasEncodeComplexLinearConstraintWithInteger) {
11474 output.WriteRawTag(248, 13);
11475 output.WriteBool(EncodeComplexLinearConstraintWithInteger);
11476 }
11477 if (HasNewLinearPropagation) {
11478 output.WriteRawTag(128, 14);
11479 output.WriteBool(NewLinearPropagation);
11480 }
11481 if (HasMipScaleLargeDomain) {
11482 output.WriteRawTag(136, 14);
11483 output.WriteBool(MipScaleLargeDomain);
11484 }
11485 if (HasProbingDeterministicTimeLimit) {
11486 output.WriteRawTag(145, 14);
11487 output.WriteDouble(ProbingDeterministicTimeLimit);
11488 }
11489 if (HasRootLpIterations) {
11490 output.WriteRawTag(152, 14);
11491 output.WriteInt32(RootLpIterations);
11492 }
11493 if (HasUseObjectiveLbSearch) {
11494 output.WriteRawTag(160, 14);
11495 output.WriteBool(UseObjectiveLbSearch);
11496 }
11497 if (HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive) {
11498 output.WriteRawTag(168, 14);
11499 output.WriteInt32(MaxSizeToCreatePrecedenceLiteralsInDisjunctive);
11500 }
11501 if (HasUseStrongPropagationInDisjunctive) {
11502 output.WriteRawTag(176, 14);
11503 output.WriteBool(UseStrongPropagationInDisjunctive);
11504 }
11505 if (HasMipDropTolerance) {
11506 output.WriteRawTag(193, 14);
11507 output.WriteDouble(MipDropTolerance);
11508 }
11509 if (HasInferAllDiffs) {
11510 output.WriteRawTag(200, 14);
11511 output.WriteBool(InferAllDiffs);
11512 }
11513 if (HasFindBigLinearOverlap) {
11514 output.WriteRawTag(208, 14);
11515 output.WriteBool(FindBigLinearOverlap);
11516 }
11517 if (HasSharedTreeNumWorkers) {
11518 output.WriteRawTag(216, 14);
11519 output.WriteInt32(SharedTreeNumWorkers);
11520 }
11521 if (HasUseSharedTreeSearch) {
11522 output.WriteRawTag(224, 14);
11523 output.WriteBool(UseSharedTreeSearch);
11524 }
11525 if (HasSharedTreeMaxNodesPerWorker) {
11526 output.WriteRawTag(240, 14);
11527 output.WriteInt32(SharedTreeMaxNodesPerWorker);
11528 }
11529 if (HasSharedTreeSplitStrategy) {
11530 output.WriteRawTag(248, 14);
11531 output.WriteEnum((int) SharedTreeSplitStrategy);
11532 }
11533 if (HasUseLsOnly) {
11534 output.WriteRawTag(128, 15);
11535 output.WriteBool(UseLsOnly);
11536 }
11537 if (HasFeasibilityJumpDecay) {
11538 output.WriteRawTag(145, 15);
11539 output.WriteDouble(FeasibilityJumpDecay);
11540 }
11541 if (HasNumViolationLs) {
11542 output.WriteRawTag(160, 15);
11543 output.WriteInt32(NumViolationLs);
11544 }
11545 if (HasFeasibilityJumpVarRandomizationProbability) {
11546 output.WriteRawTag(185, 15);
11547 output.WriteDouble(FeasibilityJumpVarRandomizationProbability);
11548 }
11549 if (HasFeasibilityJumpVarPerburbationRangeRatio) {
11550 output.WriteRawTag(193, 15);
11551 output.WriteDouble(FeasibilityJumpVarPerburbationRangeRatio);
11552 }
11553 if (HasViolationLsPerturbationPeriod) {
11554 output.WriteRawTag(200, 15);
11555 output.WriteInt32(ViolationLsPerturbationPeriod);
11556 }
11557 if (HasFeasibilityJumpEnableRestarts) {
11558 output.WriteRawTag(208, 15);
11559 output.WriteBool(FeasibilityJumpEnableRestarts);
11560 }
11561 if (HasStopAfterRootPropagation) {
11562 output.WriteRawTag(224, 15);
11563 output.WriteBool(StopAfterRootPropagation);
11564 }
11565 if (HasUseObjectiveShavingSearch) {
11566 output.WriteRawTag(232, 15);
11567 output.WriteBool(UseObjectiveShavingSearch);
11568 }
11569 if (HasUseLbRelaxLns) {
11570 output.WriteRawTag(248, 15);
11571 output.WriteBool(UseLbRelaxLns);
11572 }
11573 if (HasLinearSplitSize) {
11574 output.WriteRawTag(128, 16);
11575 output.WriteInt32(LinearSplitSize);
11576 }
11577 if (HasFeasibilityJumpLinearizationLevel) {
11578 output.WriteRawTag(136, 16);
11579 output.WriteInt32(FeasibilityJumpLinearizationLevel);
11580 }
11581 if (HasFeasibilityJumpRestartFactor) {
11582 output.WriteRawTag(144, 16);
11583 output.WriteInt32(FeasibilityJumpRestartFactor);
11584 }
11585 if (HasViolationLsCompoundMoveProbability) {
11586 output.WriteRawTag(153, 16);
11587 output.WriteDouble(ViolationLsCompoundMoveProbability);
11588 }
11589 if (HasMaxNumIntervalsForTimetableEdgeFinding) {
11590 output.WriteRawTag(160, 16);
11591 output.WriteInt32(MaxNumIntervalsForTimetableEdgeFinding);
11592 }
11593 if (HasMipPresolveLevel) {
11594 output.WriteRawTag(168, 16);
11595 output.WriteInt32(MipPresolveLevel);
11596 }
11597 if (HasPushAllTasksTowardStart) {
11598 output.WriteRawTag(176, 16);
11599 output.WriteBool(PushAllTasksTowardStart);
11600 }
11601 if (HasUseDynamicPrecedenceInDisjunctive) {
11602 output.WriteRawTag(184, 16);
11603 output.WriteBool(UseDynamicPrecedenceInDisjunctive);
11604 }
11605 if (HasFeasibilityJumpMaxExpandedConstraintSize) {
11606 output.WriteRawTag(192, 16);
11607 output.WriteInt32(FeasibilityJumpMaxExpandedConstraintSize);
11608 }
11609 if (HasUseFeasibilityJump) {
11610 output.WriteRawTag(200, 16);
11611 output.WriteBool(UseFeasibilityJump);
11612 }
11613 if (HasLpPrimalTolerance) {
11614 output.WriteRawTag(209, 16);
11615 output.WriteDouble(LpPrimalTolerance);
11616 }
11617 if (HasLpDualTolerance) {
11618 output.WriteRawTag(217, 16);
11619 output.WriteDouble(LpDualTolerance);
11620 }
11621 if (HasUseDynamicPrecedenceInCumulative) {
11622 output.WriteRawTag(224, 16);
11623 output.WriteBool(UseDynamicPrecedenceInCumulative);
11624 }
11625 if (HasUseExtendedProbing) {
11626 output.WriteRawTag(232, 16);
11627 output.WriteBool(UseExtendedProbing);
11628 }
11629 if (HasAtMostOneMaxExpansionSize) {
11630 output.WriteRawTag(240, 16);
11631 output.WriteInt32(AtMostOneMaxExpansionSize);
11632 }
11633 if (HasUseAreaEnergeticReasoningInNoOverlap2D) {
11634 output.WriteRawTag(248, 16);
11635 output.WriteBool(UseAreaEnergeticReasoningInNoOverlap2D);
11636 }
11637 if (HasProbingNumCombinationsLimit) {
11638 output.WriteRawTag(128, 17);
11639 output.WriteInt32(ProbingNumCombinationsLimit);
11640 }
11641 if (HasInprocessingDtimeRatio) {
11642 output.WriteRawTag(137, 17);
11643 output.WriteDouble(InprocessingDtimeRatio);
11644 }
11645 if (HasInprocessingProbingDtime) {
11646 output.WriteRawTag(145, 17);
11647 output.WriteDouble(InprocessingProbingDtime);
11648 }
11649 if (HasInprocessingMinimizationDtime) {
11650 output.WriteRawTag(153, 17);
11651 output.WriteDouble(InprocessingMinimizationDtime);
11652 }
11653 if (HasMaxPairsPairwiseReasoningInNoOverlap2D) {
11654 output.WriteRawTag(160, 17);
11655 output.WriteInt32(MaxPairsPairwiseReasoningInNoOverlap2D);
11656 }
11657 if (HasDetectLinearizedProduct) {
11658 output.WriteRawTag(168, 17);
11659 output.WriteBool(DetectLinearizedProduct);
11660 }
11661 if (HasMipTreatHighMagnitudeBoundsAsInfinity) {
11662 output.WriteRawTag(176, 17);
11663 output.WriteBool(MipTreatHighMagnitudeBoundsAsInfinity);
11664 }
11665 if (HasAddRltCuts) {
11666 output.WriteRawTag(184, 17);
11667 output.WriteBool(AddRltCuts);
11668 }
11669 if (HasMaxLinMaxSizeForExpansion) {
11670 output.WriteRawTag(192, 17);
11671 output.WriteInt32(MaxLinMaxSizeForExpansion);
11672 }
11673 if (HasSharedTreeOpenLeavesPerWorker) {
11674 output.WriteRawTag(201, 17);
11675 output.WriteDouble(SharedTreeOpenLeavesPerWorker);
11676 }
11677 if (HasSharedTreeWorkerMinRestartsPerSubtree) {
11678 output.WriteRawTag(208, 17);
11679 output.WriteInt32(SharedTreeWorkerMinRestartsPerSubtree);
11680 }
11681 if (HasUseLns) {
11682 output.WriteRawTag(216, 17);
11683 output.WriteBool(UseLns);
11684 }
11685 if (HasSaveLpBasisInLbTreeSearch) {
11686 output.WriteRawTag(224, 17);
11687 output.WriteBool(SaveLpBasisInLbTreeSearch);
11688 }
11689 if (HasShareGlueClauses) {
11690 output.WriteRawTag(232, 17);
11691 output.WriteBool(ShareGlueClauses);
11692 }
11693 if (HasUseConservativeScaleOverloadChecker) {
11694 output.WriteRawTag(240, 17);
11695 output.WriteBool(UseConservativeScaleOverloadChecker);
11696 }
11697 if (HasEncodeCumulativeAsReservoir) {
11698 output.WriteRawTag(248, 17);
11699 output.WriteBool(EncodeCumulativeAsReservoir);
11700 }
11701 if (HasExpandReservoirUsingCircuit) {
11702 output.WriteRawTag(128, 18);
11703 output.WriteBool(ExpandReservoirUsingCircuit);
11704 }
11705 if (HasUseVariablesShavingSearch) {
11706 output.WriteRawTag(136, 18);
11707 output.WriteBool(UseVariablesShavingSearch);
11708 }
11709 if (HasShavingSearchThreshold) {
11710 output.WriteRawTag(144, 18);
11711 output.WriteInt64(ShavingSearchThreshold);
11712 }
11713 if (HasMaxNumDeterministicBatches) {
11714 output.WriteRawTag(152, 18);
11715 output.WriteInt32(MaxNumDeterministicBatches);
11716 }
11717 if (HasFeasibilityJumpBatchDtime) {
11718 output.WriteRawTag(161, 18);
11719 output.WriteDouble(FeasibilityJumpBatchDtime);
11720 }
11721 filterSubsolvers_.WriteTo(ref output, _repeated_filterSubsolvers_codec);
11722 if (HasNumFullSubsolvers) {
11723 output.WriteRawTag(176, 18);
11724 output.WriteInt32(NumFullSubsolvers);
11725 }
11726 if (HasSharedTreeWorkerEnableTrailSharing) {
11727 output.WriteRawTag(184, 18);
11728 output.WriteBool(SharedTreeWorkerEnableTrailSharing);
11729 }
11730 if (HasLbRelaxNumWorkersThreshold) {
11731 output.WriteRawTag(192, 18);
11732 output.WriteInt32(LbRelaxNumWorkersThreshold);
11733 }
11734 if (HasInprocessingMinimizationUseConflictAnalysis) {
11735 output.WriteRawTag(200, 18);
11736 output.WriteBool(InprocessingMinimizationUseConflictAnalysis);
11737 }
11738 if (HasInprocessingMinimizationUseAllOrderings) {
11739 output.WriteRawTag(208, 18);
11740 output.WriteBool(InprocessingMinimizationUseAllOrderings);
11741 }
11742 if (HasUseTryEdgeReasoningInNoOverlap2D) {
11743 output.WriteRawTag(216, 18);
11744 output.WriteBool(UseTryEdgeReasoningInNoOverlap2D);
11745 }
11746 if (HasMinimizeSharedClauses) {
11747 output.WriteRawTag(224, 18);
11748 output.WriteBool(MinimizeSharedClauses);
11749 }
11750 if (HasUseSymmetryInLp) {
11751 output.WriteRawTag(232, 18);
11752 output.WriteBool(UseSymmetryInLp);
11753 }
11754 if (HasSymmetryDetectionDeterministicTimeLimit) {
11755 output.WriteRawTag(241, 18);
11756 output.WriteDouble(SymmetryDetectionDeterministicTimeLimit);
11757 }
11758 if (HasKeepSymmetryInPresolve) {
11759 output.WriteRawTag(248, 18);
11760 output.WriteBool(KeepSymmetryInPresolve);
11761 }
11762 if (HasSharedTreeWorkerEnablePhaseSharing) {
11763 output.WriteRawTag(128, 19);
11764 output.WriteBool(SharedTreeWorkerEnablePhaseSharing);
11765 }
11766 if (HasSharedTreeBalanceTolerance) {
11767 output.WriteRawTag(136, 19);
11768 output.WriteInt32(SharedTreeBalanceTolerance);
11769 }
11770 if (HasDebugCrashIfPresolveBreaksHint) {
11771 output.WriteRawTag(144, 19);
11772 output.WriteBool(DebugCrashIfPresolveBreaksHint);
11773 }
11774 if (HasLnsInitialDifficulty) {
11775 output.WriteRawTag(153, 19);
11776 output.WriteDouble(LnsInitialDifficulty);
11777 }
11778 if (HasLnsInitialDeterministicLimit) {
11779 output.WriteRawTag(161, 19);
11780 output.WriteDouble(LnsInitialDeterministicLimit);
11781 }
11782 if (HasPolarityExploitLsHints) {
11783 output.WriteRawTag(168, 19);
11784 output.WriteBool(PolarityExploitLsHints);
11785 }
11786 if (HasRemoveFixedVariablesEarly) {
11787 output.WriteRawTag(176, 19);
11788 output.WriteBool(RemoveFixedVariablesEarly);
11789 }
11790 if (HasUseAllDifferentForCircuit) {
11791 output.WriteRawTag(184, 19);
11792 output.WriteBool(UseAllDifferentForCircuit);
11793 }
11794 if (HasRoutingCutSubsetSizeForBinaryRelationBound) {
11795 output.WriteRawTag(192, 19);
11796 output.WriteInt32(RoutingCutSubsetSizeForBinaryRelationBound);
11797 }
11798 if (HasRoutingCutSubsetSizeForTightBinaryRelationBound) {
11799 output.WriteRawTag(200, 19);
11800 output.WriteInt32(RoutingCutSubsetSizeForTightBinaryRelationBound);
11801 }
11802 if (HasRoutingCutDpEffort) {
11803 output.WriteRawTag(209, 19);
11804 output.WriteDouble(RoutingCutDpEffort);
11805 }
11806 if (HasMaximumRegionsToSplitInDisconnectedNoOverlap2D) {
11807 output.WriteRawTag(216, 19);
11808 output.WriteInt32(MaximumRegionsToSplitInDisconnectedNoOverlap2D);
11809 }
11810 if (_unknownFields != null) {
11811 _unknownFields.WriteTo(ref output);
11812 }
11813 }
11814 #endif
11815
11816 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11817 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
11818 public int CalculateSize() {
11819 int size = 0;
11820 if (HasName) {
11821 size += 2 + pb::CodedOutputStream.ComputeStringSize(Name);
11822 }
11823 if (HasPreferredVariableOrder) {
11824 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PreferredVariableOrder);
11825 }
11826 if (HasInitialPolarity) {
11827 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) InitialPolarity);
11828 }
11829 if (HasUsePhaseSaving) {
11830 size += 2 + 1;
11831 }
11832 if (HasPolarityRephaseIncrement) {
11833 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PolarityRephaseIncrement);
11834 }
11835 if (HasPolarityExploitLsHints) {
11836 size += 2 + 1;
11837 }
11838 if (HasRandomPolarityRatio) {
11839 size += 2 + 8;
11840 }
11841 if (HasRandomBranchesRatio) {
11842 size += 2 + 8;
11843 }
11844 if (HasUseErwaHeuristic) {
11845 size += 2 + 1;
11846 }
11847 if (HasInitialVariablesActivity) {
11848 size += 2 + 8;
11849 }
11850 if (HasAlsoBumpVariablesInConflictReasons) {
11851 size += 2 + 1;
11852 }
11853 if (HasMinimizationAlgorithm) {
11854 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MinimizationAlgorithm);
11855 }
11856 if (HasBinaryMinimizationAlgorithm) {
11857 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) BinaryMinimizationAlgorithm);
11858 }
11859 if (HasSubsumptionDuringConflictAnalysis) {
11860 size += 2 + 1;
11861 }
11862 if (HasClauseCleanupPeriod) {
11863 size += 1 + pb::CodedOutputStream.ComputeInt32Size(ClauseCleanupPeriod);
11864 }
11865 if (HasClauseCleanupTarget) {
11866 size += 1 + pb::CodedOutputStream.ComputeInt32Size(ClauseCleanupTarget);
11867 }
11868 if (HasClauseCleanupRatio) {
11869 size += 2 + 8;
11870 }
11871 if (HasClauseCleanupProtection) {
11872 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ClauseCleanupProtection);
11873 }
11874 if (HasClauseCleanupLbdBound) {
11875 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ClauseCleanupLbdBound);
11876 }
11877 if (HasClauseCleanupOrdering) {
11878 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ClauseCleanupOrdering);
11879 }
11880 if (HasPbCleanupIncrement) {
11881 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PbCleanupIncrement);
11882 }
11883 if (HasPbCleanupRatio) {
11884 size += 2 + 8;
11885 }
11886 if (HasVariableActivityDecay) {
11887 size += 1 + 8;
11888 }
11889 if (HasMaxVariableActivityValue) {
11890 size += 2 + 8;
11891 }
11892 if (HasGlucoseMaxDecay) {
11893 size += 2 + 8;
11894 }
11895 if (HasGlucoseDecayIncrement) {
11896 size += 2 + 8;
11897 }
11898 if (HasGlucoseDecayIncrementPeriod) {
11899 size += 2 + pb::CodedOutputStream.ComputeInt32Size(GlucoseDecayIncrementPeriod);
11900 }
11901 if (HasClauseActivityDecay) {
11902 size += 2 + 8;
11903 }
11904 if (HasMaxClauseActivityValue) {
11905 size += 2 + 8;
11906 }
11907 size += restartAlgorithms_.CalculateSize(_repeated_restartAlgorithms_codec);
11908 if (HasDefaultRestartAlgorithms) {
11909 size += 2 + pb::CodedOutputStream.ComputeStringSize(DefaultRestartAlgorithms);
11910 }
11911 if (HasRestartPeriod) {
11912 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RestartPeriod);
11913 }
11914 if (HasRestartRunningWindowSize) {
11915 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RestartRunningWindowSize);
11916 }
11917 if (HasRestartDlAverageRatio) {
11918 size += 2 + 8;
11919 }
11920 if (HasRestartLbdAverageRatio) {
11921 size += 2 + 8;
11922 }
11923 if (HasUseBlockingRestart) {
11924 size += 2 + 1;
11925 }
11926 if (HasBlockingRestartWindowSize) {
11927 size += 2 + pb::CodedOutputStream.ComputeInt32Size(BlockingRestartWindowSize);
11928 }
11929 if (HasBlockingRestartMultiplier) {
11930 size += 2 + 8;
11931 }
11932 if (HasNumConflictsBeforeStrategyChanges) {
11933 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumConflictsBeforeStrategyChanges);
11934 }
11935 if (HasStrategyChangeIncreaseRatio) {
11936 size += 2 + 8;
11937 }
11938 if (HasMaxTimeInSeconds) {
11939 size += 2 + 8;
11940 }
11941 if (HasMaxDeterministicTime) {
11942 size += 2 + 8;
11943 }
11944 if (HasMaxNumDeterministicBatches) {
11945 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxNumDeterministicBatches);
11946 }
11947 if (HasMaxNumberOfConflicts) {
11948 size += 2 + pb::CodedOutputStream.ComputeInt64Size(MaxNumberOfConflicts);
11949 }
11950 if (HasMaxMemoryInMb) {
11951 size += 2 + pb::CodedOutputStream.ComputeInt64Size(MaxMemoryInMb);
11952 }
11953 if (HasAbsoluteGapLimit) {
11954 size += 2 + 8;
11955 }
11956 if (HasRelativeGapLimit) {
11957 size += 2 + 8;
11958 }
11959 if (HasRandomSeed) {
11960 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RandomSeed);
11961 }
11962 if (HasPermuteVariableRandomly) {
11963 size += 2 + 1;
11964 }
11965 if (HasPermutePresolveConstraintOrder) {
11966 size += 2 + 1;
11967 }
11968 if (HasUseAbslRandom) {
11969 size += 2 + 1;
11970 }
11971 if (HasLogSearchProgress) {
11972 size += 2 + 1;
11973 }
11974 if (HasLogSubsolverStatistics) {
11975 size += 2 + 1;
11976 }
11977 if (HasLogPrefix) {
11978 size += 2 + pb::CodedOutputStream.ComputeStringSize(LogPrefix);
11979 }
11980 if (HasLogToStdout) {
11981 size += 2 + 1;
11982 }
11983 if (HasLogToResponse) {
11984 size += 2 + 1;
11985 }
11986 if (HasUsePbResolution) {
11987 size += 2 + 1;
11988 }
11989 if (HasMinimizeReductionDuringPbResolution) {
11990 size += 2 + 1;
11991 }
11992 if (HasCountAssumptionLevelsInLbd) {
11993 size += 2 + 1;
11994 }
11995 if (HasPresolveBveThreshold) {
11996 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PresolveBveThreshold);
11997 }
11998 if (HasPresolveBveClauseWeight) {
11999 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PresolveBveClauseWeight);
12000 }
12001 if (HasProbingDeterministicTimeLimit) {
12002 size += 2 + 8;
12003 }
12004 if (HasPresolveProbingDeterministicTimeLimit) {
12005 size += 2 + 8;
12006 }
12007 if (HasPresolveBlockedClause) {
12008 size += 2 + 1;
12009 }
12010 if (HasPresolveUseBva) {
12011 size += 2 + 1;
12012 }
12013 if (HasPresolveBvaThreshold) {
12014 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PresolveBvaThreshold);
12015 }
12016 if (HasMaxPresolveIterations) {
12017 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxPresolveIterations);
12018 }
12019 if (HasCpModelPresolve) {
12020 size += 2 + 1;
12021 }
12022 if (HasCpModelProbingLevel) {
12023 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CpModelProbingLevel);
12024 }
12025 if (HasCpModelUseSatPresolve) {
12026 size += 2 + 1;
12027 }
12028 if (HasRemoveFixedVariablesEarly) {
12029 size += 2 + 1;
12030 }
12031 if (HasDetectTableWithCost) {
12032 size += 2 + 1;
12033 }
12034 if (HasTableCompressionLevel) {
12035 size += 2 + pb::CodedOutputStream.ComputeInt32Size(TableCompressionLevel);
12036 }
12037 if (HasExpandAlldiffConstraints) {
12038 size += 2 + 1;
12039 }
12040 if (HasExpandReservoirConstraints) {
12041 size += 2 + 1;
12042 }
12043 if (HasExpandReservoirUsingCircuit) {
12044 size += 2 + 1;
12045 }
12046 if (HasEncodeCumulativeAsReservoir) {
12047 size += 2 + 1;
12048 }
12049 if (HasMaxLinMaxSizeForExpansion) {
12050 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxLinMaxSizeForExpansion);
12051 }
12052 if (HasDisableConstraintExpansion) {
12053 size += 2 + 1;
12054 }
12055 if (HasEncodeComplexLinearConstraintWithInteger) {
12056 size += 2 + 1;
12057 }
12058 if (HasMergeNoOverlapWorkLimit) {
12059 size += 2 + 8;
12060 }
12061 if (HasMergeAtMostOneWorkLimit) {
12062 size += 2 + 8;
12063 }
12064 if (HasPresolveSubstitutionLevel) {
12065 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PresolveSubstitutionLevel);
12066 }
12067 if (HasPresolveExtractIntegerEnforcement) {
12068 size += 2 + 1;
12069 }
12070 if (HasPresolveInclusionWorkLimit) {
12071 size += 2 + pb::CodedOutputStream.ComputeInt64Size(PresolveInclusionWorkLimit);
12072 }
12073 if (HasIgnoreNames) {
12074 size += 2 + 1;
12075 }
12076 if (HasInferAllDiffs) {
12077 size += 2 + 1;
12078 }
12079 if (HasFindBigLinearOverlap) {
12080 size += 2 + 1;
12081 }
12082 if (HasUseSatInprocessing) {
12083 size += 2 + 1;
12084 }
12085 if (HasInprocessingDtimeRatio) {
12086 size += 2 + 8;
12087 }
12088 if (HasInprocessingProbingDtime) {
12089 size += 2 + 8;
12090 }
12091 if (HasInprocessingMinimizationDtime) {
12092 size += 2 + 8;
12093 }
12094 if (HasInprocessingMinimizationUseConflictAnalysis) {
12095 size += 2 + 1;
12096 }
12097 if (HasInprocessingMinimizationUseAllOrderings) {
12098 size += 2 + 1;
12099 }
12100 if (HasNumWorkers) {
12101 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumWorkers);
12102 }
12103 if (HasNumSearchWorkers) {
12104 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumSearchWorkers);
12105 }
12106 if (HasNumFullSubsolvers) {
12107 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumFullSubsolvers);
12108 }
12109 size += subsolvers_.CalculateSize(_repeated_subsolvers_codec);
12110 size += extraSubsolvers_.CalculateSize(_repeated_extraSubsolvers_codec);
12111 size += ignoreSubsolvers_.CalculateSize(_repeated_ignoreSubsolvers_codec);
12112 size += filterSubsolvers_.CalculateSize(_repeated_filterSubsolvers_codec);
12113 size += subsolverParams_.CalculateSize(_repeated_subsolverParams_codec);
12114 if (HasInterleaveSearch) {
12115 size += 2 + 1;
12116 }
12117 if (HasInterleaveBatchSize) {
12118 size += 2 + pb::CodedOutputStream.ComputeInt32Size(InterleaveBatchSize);
12119 }
12120 if (HasShareObjectiveBounds) {
12121 size += 2 + 1;
12122 }
12123 if (HasShareLevelZeroBounds) {
12124 size += 2 + 1;
12125 }
12126 if (HasShareBinaryClauses) {
12127 size += 2 + 1;
12128 }
12129 if (HasShareGlueClauses) {
12130 size += 2 + 1;
12131 }
12132 if (HasMinimizeSharedClauses) {
12133 size += 2 + 1;
12134 }
12135 if (HasDebugPostsolveWithFullSolver) {
12136 size += 2 + 1;
12137 }
12138 if (HasDebugMaxNumPresolveOperations) {
12139 size += 2 + pb::CodedOutputStream.ComputeInt32Size(DebugMaxNumPresolveOperations);
12140 }
12141 if (HasDebugCrashOnBadHint) {
12142 size += 2 + 1;
12143 }
12144 if (HasDebugCrashIfPresolveBreaksHint) {
12145 size += 2 + 1;
12146 }
12147 if (HasUseOptimizationHints) {
12148 size += 2 + 1;
12149 }
12150 if (HasCoreMinimizationLevel) {
12151 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CoreMinimizationLevel);
12152 }
12153 if (HasFindMultipleCores) {
12154 size += 2 + 1;
12155 }
12156 if (HasCoverOptimization) {
12157 size += 2 + 1;
12158 }
12159 if (HasMaxSatAssumptionOrder) {
12160 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) MaxSatAssumptionOrder);
12161 }
12162 if (HasMaxSatReverseAssumptionOrder) {
12163 size += 2 + 1;
12164 }
12165 if (HasMaxSatStratification) {
12166 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) MaxSatStratification);
12167 }
12168 if (HasPropagationLoopDetectionFactor) {
12169 size += 2 + 8;
12170 }
12171 if (HasUsePrecedencesInDisjunctiveConstraint) {
12172 size += 2 + 1;
12173 }
12174 if (HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive) {
12175 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxSizeToCreatePrecedenceLiteralsInDisjunctive);
12176 }
12177 if (HasUseStrongPropagationInDisjunctive) {
12178 size += 2 + 1;
12179 }
12180 if (HasUseDynamicPrecedenceInDisjunctive) {
12181 size += 2 + 1;
12182 }
12183 if (HasUseDynamicPrecedenceInCumulative) {
12184 size += 2 + 1;
12185 }
12186 if (HasUseOverloadCheckerInCumulative) {
12187 size += 2 + 1;
12188 }
12189 if (HasUseConservativeScaleOverloadChecker) {
12190 size += 2 + 1;
12191 }
12192 if (HasUseTimetableEdgeFindingInCumulative) {
12193 size += 2 + 1;
12194 }
12195 if (HasMaxNumIntervalsForTimetableEdgeFinding) {
12196 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxNumIntervalsForTimetableEdgeFinding);
12197 }
12198 if (HasUseHardPrecedencesInCumulative) {
12199 size += 2 + 1;
12200 }
12201 if (HasExploitAllPrecedences) {
12202 size += 2 + 1;
12203 }
12204 if (HasUseDisjunctiveConstraintInCumulative) {
12205 size += 2 + 1;
12206 }
12207 if (HasUseTimetablingInNoOverlap2D) {
12208 size += 2 + 1;
12209 }
12210 if (HasUseEnergeticReasoningInNoOverlap2D) {
12211 size += 2 + 1;
12212 }
12213 if (HasUseAreaEnergeticReasoningInNoOverlap2D) {
12214 size += 2 + 1;
12215 }
12216 if (HasUseTryEdgeReasoningInNoOverlap2D) {
12217 size += 2 + 1;
12218 }
12219 if (HasMaxPairsPairwiseReasoningInNoOverlap2D) {
12220 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxPairsPairwiseReasoningInNoOverlap2D);
12221 }
12222 if (HasMaximumRegionsToSplitInDisconnectedNoOverlap2D) {
12223 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaximumRegionsToSplitInDisconnectedNoOverlap2D);
12224 }
12225 if (HasUseDualSchedulingHeuristics) {
12226 size += 2 + 1;
12227 }
12228 if (HasUseAllDifferentForCircuit) {
12229 size += 2 + 1;
12230 }
12231 if (HasRoutingCutSubsetSizeForBinaryRelationBound) {
12232 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RoutingCutSubsetSizeForBinaryRelationBound);
12233 }
12234 if (HasRoutingCutSubsetSizeForTightBinaryRelationBound) {
12235 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RoutingCutSubsetSizeForTightBinaryRelationBound);
12236 }
12237 if (HasRoutingCutDpEffort) {
12238 size += 2 + 8;
12239 }
12240 if (HasSearchBranching) {
12241 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SearchBranching);
12242 }
12243 if (HasHintConflictLimit) {
12244 size += 2 + pb::CodedOutputStream.ComputeInt32Size(HintConflictLimit);
12245 }
12246 if (HasRepairHint) {
12247 size += 2 + 1;
12248 }
12249 if (HasFixVariablesToTheirHintedValue) {
12250 size += 2 + 1;
12251 }
12252 if (HasUseProbingSearch) {
12253 size += 2 + 1;
12254 }
12255 if (HasUseExtendedProbing) {
12256 size += 2 + 1;
12257 }
12258 if (HasProbingNumCombinationsLimit) {
12259 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ProbingNumCombinationsLimit);
12260 }
12261 if (HasUseShavingInProbingSearch) {
12262 size += 2 + 1;
12263 }
12264 if (HasShavingSearchDeterministicTime) {
12265 size += 2 + 8;
12266 }
12267 if (HasShavingSearchThreshold) {
12268 size += 2 + pb::CodedOutputStream.ComputeInt64Size(ShavingSearchThreshold);
12269 }
12270 if (HasUseObjectiveLbSearch) {
12271 size += 2 + 1;
12272 }
12273 if (HasUseObjectiveShavingSearch) {
12274 size += 2 + 1;
12275 }
12276 if (HasUseVariablesShavingSearch) {
12277 size += 2 + 1;
12278 }
12279 if (HasPseudoCostReliabilityThreshold) {
12280 size += 2 + pb::CodedOutputStream.ComputeInt64Size(PseudoCostReliabilityThreshold);
12281 }
12282 if (HasOptimizeWithCore) {
12283 size += 2 + 1;
12284 }
12285 if (HasOptimizeWithLbTreeSearch) {
12286 size += 2 + 1;
12287 }
12288 if (HasSaveLpBasisInLbTreeSearch) {
12289 size += 2 + 1;
12290 }
12291 if (HasBinarySearchNumConflicts) {
12292 size += 2 + pb::CodedOutputStream.ComputeInt32Size(BinarySearchNumConflicts);
12293 }
12294 if (HasOptimizeWithMaxHs) {
12295 size += 2 + 1;
12296 }
12297 if (HasUseFeasibilityJump) {
12298 size += 2 + 1;
12299 }
12300 if (HasUseLsOnly) {
12301 size += 2 + 1;
12302 }
12303 if (HasFeasibilityJumpDecay) {
12304 size += 2 + 8;
12305 }
12306 if (HasFeasibilityJumpLinearizationLevel) {
12307 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FeasibilityJumpLinearizationLevel);
12308 }
12309 if (HasFeasibilityJumpRestartFactor) {
12310 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FeasibilityJumpRestartFactor);
12311 }
12312 if (HasFeasibilityJumpBatchDtime) {
12313 size += 2 + 8;
12314 }
12315 if (HasFeasibilityJumpVarRandomizationProbability) {
12316 size += 2 + 8;
12317 }
12318 if (HasFeasibilityJumpVarPerburbationRangeRatio) {
12319 size += 2 + 8;
12320 }
12321 if (HasFeasibilityJumpEnableRestarts) {
12322 size += 2 + 1;
12323 }
12324 if (HasFeasibilityJumpMaxExpandedConstraintSize) {
12325 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FeasibilityJumpMaxExpandedConstraintSize);
12326 }
12327 if (HasNumViolationLs) {
12328 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumViolationLs);
12329 }
12330 if (HasViolationLsPerturbationPeriod) {
12331 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ViolationLsPerturbationPeriod);
12332 }
12333 if (HasViolationLsCompoundMoveProbability) {
12334 size += 2 + 8;
12335 }
12336 if (HasSharedTreeNumWorkers) {
12337 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SharedTreeNumWorkers);
12338 }
12339 if (HasUseSharedTreeSearch) {
12340 size += 2 + 1;
12341 }
12342 if (HasSharedTreeWorkerMinRestartsPerSubtree) {
12343 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SharedTreeWorkerMinRestartsPerSubtree);
12344 }
12345 if (HasSharedTreeWorkerEnableTrailSharing) {
12346 size += 2 + 1;
12347 }
12348 if (HasSharedTreeWorkerEnablePhaseSharing) {
12349 size += 2 + 1;
12350 }
12351 if (HasSharedTreeOpenLeavesPerWorker) {
12352 size += 2 + 8;
12353 }
12354 if (HasSharedTreeMaxNodesPerWorker) {
12355 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SharedTreeMaxNodesPerWorker);
12356 }
12357 if (HasSharedTreeSplitStrategy) {
12358 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SharedTreeSplitStrategy);
12359 }
12360 if (HasSharedTreeBalanceTolerance) {
12361 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SharedTreeBalanceTolerance);
12362 }
12363 if (HasEnumerateAllSolutions) {
12364 size += 2 + 1;
12365 }
12366 if (HasKeepAllFeasibleSolutionsInPresolve) {
12367 size += 2 + 1;
12368 }
12369 if (HasFillTightenedDomainsInResponse) {
12370 size += 2 + 1;
12371 }
12372 if (HasFillAdditionalSolutionsInResponse) {
12373 size += 2 + 1;
12374 }
12375 if (HasInstantiateAllVariables) {
12376 size += 2 + 1;
12377 }
12378 if (HasAutoDetectGreaterThanAtLeastOneOf) {
12379 size += 2 + 1;
12380 }
12381 if (HasStopAfterFirstSolution) {
12382 size += 2 + 1;
12383 }
12384 if (HasStopAfterPresolve) {
12385 size += 2 + 1;
12386 }
12387 if (HasStopAfterRootPropagation) {
12388 size += 2 + 1;
12389 }
12390 if (HasLnsInitialDifficulty) {
12391 size += 2 + 8;
12392 }
12393 if (HasLnsInitialDeterministicLimit) {
12394 size += 2 + 8;
12395 }
12396 if (HasUseLns) {
12397 size += 2 + 1;
12398 }
12399 if (HasUseLnsOnly) {
12400 size += 2 + 1;
12401 }
12402 if (HasSolutionPoolSize) {
12403 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SolutionPoolSize);
12404 }
12405 if (HasUseRinsLns) {
12406 size += 2 + 1;
12407 }
12408 if (HasUseFeasibilityPump) {
12409 size += 2 + 1;
12410 }
12411 if (HasUseLbRelaxLns) {
12412 size += 2 + 1;
12413 }
12414 if (HasLbRelaxNumWorkersThreshold) {
12415 size += 2 + pb::CodedOutputStream.ComputeInt32Size(LbRelaxNumWorkersThreshold);
12416 }
12417 if (HasFpRounding) {
12418 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) FpRounding);
12419 }
12420 if (HasDiversifyLnsParams) {
12421 size += 2 + 1;
12422 }
12423 if (HasRandomizeSearch) {
12424 size += 2 + 1;
12425 }
12426 if (HasSearchRandomVariablePoolSize) {
12427 size += 2 + pb::CodedOutputStream.ComputeInt64Size(SearchRandomVariablePoolSize);
12428 }
12429 if (HasPushAllTasksTowardStart) {
12430 size += 2 + 1;
12431 }
12432 if (HasUseOptionalVariables) {
12433 size += 2 + 1;
12434 }
12435 if (HasUseExactLpReason) {
12436 size += 2 + 1;
12437 }
12438 if (HasUseCombinedNoOverlap) {
12439 size += 2 + 1;
12440 }
12441 if (HasAtMostOneMaxExpansionSize) {
12442 size += 2 + pb::CodedOutputStream.ComputeInt32Size(AtMostOneMaxExpansionSize);
12443 }
12444 if (HasCatchSigintSignal) {
12445 size += 2 + 1;
12446 }
12447 if (HasUseImpliedBounds) {
12448 size += 2 + 1;
12449 }
12450 if (HasPolishLpSolution) {
12451 size += 2 + 1;
12452 }
12453 if (HasLpPrimalTolerance) {
12454 size += 2 + 8;
12455 }
12456 if (HasLpDualTolerance) {
12457 size += 2 + 8;
12458 }
12459 if (HasConvertIntervals) {
12460 size += 2 + 1;
12461 }
12462 if (HasSymmetryLevel) {
12463 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SymmetryLevel);
12464 }
12465 if (HasUseSymmetryInLp) {
12466 size += 2 + 1;
12467 }
12468 if (HasKeepSymmetryInPresolve) {
12469 size += 2 + 1;
12470 }
12471 if (HasSymmetryDetectionDeterministicTimeLimit) {
12472 size += 2 + 8;
12473 }
12474 if (HasNewLinearPropagation) {
12475 size += 2 + 1;
12476 }
12477 if (HasLinearSplitSize) {
12478 size += 2 + pb::CodedOutputStream.ComputeInt32Size(LinearSplitSize);
12479 }
12480 if (HasLinearizationLevel) {
12481 size += 2 + pb::CodedOutputStream.ComputeInt32Size(LinearizationLevel);
12482 }
12483 if (HasBooleanEncodingLevel) {
12484 size += 2 + pb::CodedOutputStream.ComputeInt32Size(BooleanEncodingLevel);
12485 }
12486 if (HasMaxDomainSizeWhenEncodingEqNeqConstraints) {
12487 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxDomainSizeWhenEncodingEqNeqConstraints);
12488 }
12489 if (HasMaxNumCuts) {
12490 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxNumCuts);
12491 }
12492 if (HasCutLevel) {
12493 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CutLevel);
12494 }
12495 if (HasOnlyAddCutsAtLevelZero) {
12496 size += 2 + 1;
12497 }
12498 if (HasAddObjectiveCut) {
12499 size += 2 + 1;
12500 }
12501 if (HasAddCgCuts) {
12502 size += 2 + 1;
12503 }
12504 if (HasAddMirCuts) {
12505 size += 2 + 1;
12506 }
12507 if (HasAddZeroHalfCuts) {
12508 size += 2 + 1;
12509 }
12510 if (HasAddCliqueCuts) {
12511 size += 2 + 1;
12512 }
12513 if (HasAddRltCuts) {
12514 size += 2 + 1;
12515 }
12516 if (HasMaxAllDiffCutSize) {
12517 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxAllDiffCutSize);
12518 }
12519 if (HasAddLinMaxCuts) {
12520 size += 2 + 1;
12521 }
12522 if (HasMaxIntegerRoundingScaling) {
12523 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxIntegerRoundingScaling);
12524 }
12525 if (HasAddLpConstraintsLazily) {
12526 size += 2 + 1;
12527 }
12528 if (HasRootLpIterations) {
12529 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RootLpIterations);
12530 }
12531 if (HasMinOrthogonalityForLpConstraints) {
12532 size += 2 + 8;
12533 }
12534 if (HasMaxCutRoundsAtLevelZero) {
12535 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxCutRoundsAtLevelZero);
12536 }
12537 if (HasMaxConsecutiveInactiveCount) {
12538 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxConsecutiveInactiveCount);
12539 }
12540 if (HasCutMaxActiveCountValue) {
12541 size += 2 + 8;
12542 }
12543 if (HasCutActiveCountDecay) {
12544 size += 2 + 8;
12545 }
12546 if (HasCutCleanupTarget) {
12547 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CutCleanupTarget);
12548 }
12549 if (HasNewConstraintsBatchSize) {
12550 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NewConstraintsBatchSize);
12551 }
12552 if (HasExploitIntegerLpSolution) {
12553 size += 2 + 1;
12554 }
12555 if (HasExploitAllLpSolution) {
12556 size += 2 + 1;
12557 }
12558 if (HasExploitBestSolution) {
12559 size += 2 + 1;
12560 }
12561 if (HasExploitRelaxationSolution) {
12562 size += 2 + 1;
12563 }
12564 if (HasExploitObjective) {
12565 size += 2 + 1;
12566 }
12567 if (HasDetectLinearizedProduct) {
12568 size += 2 + 1;
12569 }
12570 if (HasMipMaxBound) {
12571 size += 2 + 8;
12572 }
12573 if (HasMipVarScaling) {
12574 size += 2 + 8;
12575 }
12576 if (HasMipScaleLargeDomain) {
12577 size += 2 + 1;
12578 }
12579 if (HasMipAutomaticallyScaleVariables) {
12580 size += 2 + 1;
12581 }
12582 if (HasOnlySolveIp) {
12583 size += 2 + 1;
12584 }
12585 if (HasMipWantedPrecision) {
12586 size += 2 + 8;
12587 }
12588 if (HasMipMaxActivityExponent) {
12589 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MipMaxActivityExponent);
12590 }
12591 if (HasMipCheckPrecision) {
12592 size += 2 + 8;
12593 }
12594 if (HasMipComputeTrueObjectiveBound) {
12595 size += 2 + 1;
12596 }
12597 if (HasMipMaxValidMagnitude) {
12598 size += 2 + 8;
12599 }
12600 if (HasMipTreatHighMagnitudeBoundsAsInfinity) {
12601 size += 2 + 1;
12602 }
12603 if (HasMipDropTolerance) {
12604 size += 2 + 8;
12605 }
12606 if (HasMipPresolveLevel) {
12607 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MipPresolveLevel);
12608 }
12609 if (_unknownFields != null) {
12610 size += _unknownFields.CalculateSize();
12611 }
12612 return size;
12613 }
12614
12615 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12616 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
12617 public void MergeFrom(SatParameters other) {
12618 if (other == null) {
12619 return;
12620 }
12621 if (other.HasName) {
12622 Name = other.Name;
12623 }
12624 if (other.HasPreferredVariableOrder) {
12625 PreferredVariableOrder = other.PreferredVariableOrder;
12626 }
12627 if (other.HasInitialPolarity) {
12628 InitialPolarity = other.InitialPolarity;
12629 }
12630 if (other.HasUsePhaseSaving) {
12631 UsePhaseSaving = other.UsePhaseSaving;
12632 }
12633 if (other.HasPolarityRephaseIncrement) {
12634 PolarityRephaseIncrement = other.PolarityRephaseIncrement;
12635 }
12636 if (other.HasPolarityExploitLsHints) {
12637 PolarityExploitLsHints = other.PolarityExploitLsHints;
12638 }
12639 if (other.HasRandomPolarityRatio) {
12640 RandomPolarityRatio = other.RandomPolarityRatio;
12641 }
12642 if (other.HasRandomBranchesRatio) {
12643 RandomBranchesRatio = other.RandomBranchesRatio;
12644 }
12645 if (other.HasUseErwaHeuristic) {
12646 UseErwaHeuristic = other.UseErwaHeuristic;
12647 }
12648 if (other.HasInitialVariablesActivity) {
12649 InitialVariablesActivity = other.InitialVariablesActivity;
12650 }
12651 if (other.HasAlsoBumpVariablesInConflictReasons) {
12652 AlsoBumpVariablesInConflictReasons = other.AlsoBumpVariablesInConflictReasons;
12653 }
12654 if (other.HasMinimizationAlgorithm) {
12655 MinimizationAlgorithm = other.MinimizationAlgorithm;
12656 }
12657 if (other.HasBinaryMinimizationAlgorithm) {
12658 BinaryMinimizationAlgorithm = other.BinaryMinimizationAlgorithm;
12659 }
12660 if (other.HasSubsumptionDuringConflictAnalysis) {
12661 SubsumptionDuringConflictAnalysis = other.SubsumptionDuringConflictAnalysis;
12662 }
12663 if (other.HasClauseCleanupPeriod) {
12664 ClauseCleanupPeriod = other.ClauseCleanupPeriod;
12665 }
12666 if (other.HasClauseCleanupTarget) {
12667 ClauseCleanupTarget = other.ClauseCleanupTarget;
12668 }
12669 if (other.HasClauseCleanupRatio) {
12670 ClauseCleanupRatio = other.ClauseCleanupRatio;
12672 if (other.HasClauseCleanupProtection) {
12673 ClauseCleanupProtection = other.ClauseCleanupProtection;
12674 }
12675 if (other.HasClauseCleanupLbdBound) {
12676 ClauseCleanupLbdBound = other.ClauseCleanupLbdBound;
12677 }
12678 if (other.HasClauseCleanupOrdering) {
12679 ClauseCleanupOrdering = other.ClauseCleanupOrdering;
12680 }
12681 if (other.HasPbCleanupIncrement) {
12682 PbCleanupIncrement = other.PbCleanupIncrement;
12683 }
12684 if (other.HasPbCleanupRatio) {
12685 PbCleanupRatio = other.PbCleanupRatio;
12686 }
12687 if (other.HasVariableActivityDecay) {
12688 VariableActivityDecay = other.VariableActivityDecay;
12689 }
12690 if (other.HasMaxVariableActivityValue) {
12691 MaxVariableActivityValue = other.MaxVariableActivityValue;
12692 }
12693 if (other.HasGlucoseMaxDecay) {
12694 GlucoseMaxDecay = other.GlucoseMaxDecay;
12695 }
12696 if (other.HasGlucoseDecayIncrement) {
12697 GlucoseDecayIncrement = other.GlucoseDecayIncrement;
12698 }
12699 if (other.HasGlucoseDecayIncrementPeriod) {
12700 GlucoseDecayIncrementPeriod = other.GlucoseDecayIncrementPeriod;
12701 }
12702 if (other.HasClauseActivityDecay) {
12703 ClauseActivityDecay = other.ClauseActivityDecay;
12704 }
12705 if (other.HasMaxClauseActivityValue) {
12706 MaxClauseActivityValue = other.MaxClauseActivityValue;
12707 }
12708 restartAlgorithms_.Add(other.restartAlgorithms_);
12709 if (other.HasDefaultRestartAlgorithms) {
12710 DefaultRestartAlgorithms = other.DefaultRestartAlgorithms;
12711 }
12712 if (other.HasRestartPeriod) {
12713 RestartPeriod = other.RestartPeriod;
12714 }
12715 if (other.HasRestartRunningWindowSize) {
12716 RestartRunningWindowSize = other.RestartRunningWindowSize;
12717 }
12718 if (other.HasRestartDlAverageRatio) {
12719 RestartDlAverageRatio = other.RestartDlAverageRatio;
12720 }
12721 if (other.HasRestartLbdAverageRatio) {
12722 RestartLbdAverageRatio = other.RestartLbdAverageRatio;
12723 }
12724 if (other.HasUseBlockingRestart) {
12725 UseBlockingRestart = other.UseBlockingRestart;
12726 }
12727 if (other.HasBlockingRestartWindowSize) {
12728 BlockingRestartWindowSize = other.BlockingRestartWindowSize;
12729 }
12730 if (other.HasBlockingRestartMultiplier) {
12731 BlockingRestartMultiplier = other.BlockingRestartMultiplier;
12732 }
12733 if (other.HasNumConflictsBeforeStrategyChanges) {
12734 NumConflictsBeforeStrategyChanges = other.NumConflictsBeforeStrategyChanges;
12735 }
12736 if (other.HasStrategyChangeIncreaseRatio) {
12737 StrategyChangeIncreaseRatio = other.StrategyChangeIncreaseRatio;
12738 }
12739 if (other.HasMaxTimeInSeconds) {
12740 MaxTimeInSeconds = other.MaxTimeInSeconds;
12741 }
12742 if (other.HasMaxDeterministicTime) {
12743 MaxDeterministicTime = other.MaxDeterministicTime;
12744 }
12745 if (other.HasMaxNumDeterministicBatches) {
12746 MaxNumDeterministicBatches = other.MaxNumDeterministicBatches;
12747 }
12748 if (other.HasMaxNumberOfConflicts) {
12749 MaxNumberOfConflicts = other.MaxNumberOfConflicts;
12750 }
12751 if (other.HasMaxMemoryInMb) {
12752 MaxMemoryInMb = other.MaxMemoryInMb;
12753 }
12754 if (other.HasAbsoluteGapLimit) {
12755 AbsoluteGapLimit = other.AbsoluteGapLimit;
12756 }
12757 if (other.HasRelativeGapLimit) {
12758 RelativeGapLimit = other.RelativeGapLimit;
12759 }
12760 if (other.HasRandomSeed) {
12761 RandomSeed = other.RandomSeed;
12762 }
12763 if (other.HasPermuteVariableRandomly) {
12764 PermuteVariableRandomly = other.PermuteVariableRandomly;
12765 }
12766 if (other.HasPermutePresolveConstraintOrder) {
12767 PermutePresolveConstraintOrder = other.PermutePresolveConstraintOrder;
12768 }
12769 if (other.HasUseAbslRandom) {
12770 UseAbslRandom = other.UseAbslRandom;
12771 }
12772 if (other.HasLogSearchProgress) {
12773 LogSearchProgress = other.LogSearchProgress;
12774 }
12775 if (other.HasLogSubsolverStatistics) {
12776 LogSubsolverStatistics = other.LogSubsolverStatistics;
12777 }
12778 if (other.HasLogPrefix) {
12779 LogPrefix = other.LogPrefix;
12780 }
12781 if (other.HasLogToStdout) {
12782 LogToStdout = other.LogToStdout;
12783 }
12784 if (other.HasLogToResponse) {
12785 LogToResponse = other.LogToResponse;
12786 }
12787 if (other.HasUsePbResolution) {
12788 UsePbResolution = other.UsePbResolution;
12789 }
12790 if (other.HasMinimizeReductionDuringPbResolution) {
12791 MinimizeReductionDuringPbResolution = other.MinimizeReductionDuringPbResolution;
12792 }
12793 if (other.HasCountAssumptionLevelsInLbd) {
12794 CountAssumptionLevelsInLbd = other.CountAssumptionLevelsInLbd;
12795 }
12796 if (other.HasPresolveBveThreshold) {
12797 PresolveBveThreshold = other.PresolveBveThreshold;
12798 }
12799 if (other.HasPresolveBveClauseWeight) {
12800 PresolveBveClauseWeight = other.PresolveBveClauseWeight;
12801 }
12802 if (other.HasProbingDeterministicTimeLimit) {
12803 ProbingDeterministicTimeLimit = other.ProbingDeterministicTimeLimit;
12804 }
12805 if (other.HasPresolveProbingDeterministicTimeLimit) {
12806 PresolveProbingDeterministicTimeLimit = other.PresolveProbingDeterministicTimeLimit;
12807 }
12808 if (other.HasPresolveBlockedClause) {
12809 PresolveBlockedClause = other.PresolveBlockedClause;
12810 }
12811 if (other.HasPresolveUseBva) {
12812 PresolveUseBva = other.PresolveUseBva;
12813 }
12814 if (other.HasPresolveBvaThreshold) {
12815 PresolveBvaThreshold = other.PresolveBvaThreshold;
12816 }
12817 if (other.HasMaxPresolveIterations) {
12818 MaxPresolveIterations = other.MaxPresolveIterations;
12819 }
12820 if (other.HasCpModelPresolve) {
12821 CpModelPresolve = other.CpModelPresolve;
12822 }
12823 if (other.HasCpModelProbingLevel) {
12824 CpModelProbingLevel = other.CpModelProbingLevel;
12825 }
12826 if (other.HasCpModelUseSatPresolve) {
12827 CpModelUseSatPresolve = other.CpModelUseSatPresolve;
12828 }
12829 if (other.HasRemoveFixedVariablesEarly) {
12830 RemoveFixedVariablesEarly = other.RemoveFixedVariablesEarly;
12831 }
12832 if (other.HasDetectTableWithCost) {
12833 DetectTableWithCost = other.DetectTableWithCost;
12834 }
12835 if (other.HasTableCompressionLevel) {
12836 TableCompressionLevel = other.TableCompressionLevel;
12837 }
12838 if (other.HasExpandAlldiffConstraints) {
12839 ExpandAlldiffConstraints = other.ExpandAlldiffConstraints;
12840 }
12841 if (other.HasExpandReservoirConstraints) {
12842 ExpandReservoirConstraints = other.ExpandReservoirConstraints;
12843 }
12844 if (other.HasExpandReservoirUsingCircuit) {
12845 ExpandReservoirUsingCircuit = other.ExpandReservoirUsingCircuit;
12846 }
12847 if (other.HasEncodeCumulativeAsReservoir) {
12848 EncodeCumulativeAsReservoir = other.EncodeCumulativeAsReservoir;
12849 }
12850 if (other.HasMaxLinMaxSizeForExpansion) {
12851 MaxLinMaxSizeForExpansion = other.MaxLinMaxSizeForExpansion;
12852 }
12853 if (other.HasDisableConstraintExpansion) {
12854 DisableConstraintExpansion = other.DisableConstraintExpansion;
12855 }
12856 if (other.HasEncodeComplexLinearConstraintWithInteger) {
12857 EncodeComplexLinearConstraintWithInteger = other.EncodeComplexLinearConstraintWithInteger;
12858 }
12859 if (other.HasMergeNoOverlapWorkLimit) {
12860 MergeNoOverlapWorkLimit = other.MergeNoOverlapWorkLimit;
12861 }
12862 if (other.HasMergeAtMostOneWorkLimit) {
12863 MergeAtMostOneWorkLimit = other.MergeAtMostOneWorkLimit;
12864 }
12865 if (other.HasPresolveSubstitutionLevel) {
12866 PresolveSubstitutionLevel = other.PresolveSubstitutionLevel;
12867 }
12868 if (other.HasPresolveExtractIntegerEnforcement) {
12869 PresolveExtractIntegerEnforcement = other.PresolveExtractIntegerEnforcement;
12870 }
12871 if (other.HasPresolveInclusionWorkLimit) {
12872 PresolveInclusionWorkLimit = other.PresolveInclusionWorkLimit;
12873 }
12874 if (other.HasIgnoreNames) {
12875 IgnoreNames = other.IgnoreNames;
12876 }
12877 if (other.HasInferAllDiffs) {
12878 InferAllDiffs = other.InferAllDiffs;
12879 }
12880 if (other.HasFindBigLinearOverlap) {
12881 FindBigLinearOverlap = other.FindBigLinearOverlap;
12882 }
12883 if (other.HasUseSatInprocessing) {
12884 UseSatInprocessing = other.UseSatInprocessing;
12885 }
12886 if (other.HasInprocessingDtimeRatio) {
12887 InprocessingDtimeRatio = other.InprocessingDtimeRatio;
12888 }
12889 if (other.HasInprocessingProbingDtime) {
12890 InprocessingProbingDtime = other.InprocessingProbingDtime;
12891 }
12892 if (other.HasInprocessingMinimizationDtime) {
12893 InprocessingMinimizationDtime = other.InprocessingMinimizationDtime;
12894 }
12895 if (other.HasInprocessingMinimizationUseConflictAnalysis) {
12896 InprocessingMinimizationUseConflictAnalysis = other.InprocessingMinimizationUseConflictAnalysis;
12897 }
12898 if (other.HasInprocessingMinimizationUseAllOrderings) {
12899 InprocessingMinimizationUseAllOrderings = other.InprocessingMinimizationUseAllOrderings;
12900 }
12901 if (other.HasNumWorkers) {
12902 NumWorkers = other.NumWorkers;
12903 }
12904 if (other.HasNumSearchWorkers) {
12905 NumSearchWorkers = other.NumSearchWorkers;
12906 }
12907 if (other.HasNumFullSubsolvers) {
12908 NumFullSubsolvers = other.NumFullSubsolvers;
12909 }
12910 subsolvers_.Add(other.subsolvers_);
12911 extraSubsolvers_.Add(other.extraSubsolvers_);
12912 ignoreSubsolvers_.Add(other.ignoreSubsolvers_);
12913 filterSubsolvers_.Add(other.filterSubsolvers_);
12914 subsolverParams_.Add(other.subsolverParams_);
12915 if (other.HasInterleaveSearch) {
12916 InterleaveSearch = other.InterleaveSearch;
12917 }
12918 if (other.HasInterleaveBatchSize) {
12919 InterleaveBatchSize = other.InterleaveBatchSize;
12920 }
12921 if (other.HasShareObjectiveBounds) {
12922 ShareObjectiveBounds = other.ShareObjectiveBounds;
12923 }
12924 if (other.HasShareLevelZeroBounds) {
12925 ShareLevelZeroBounds = other.ShareLevelZeroBounds;
12926 }
12927 if (other.HasShareBinaryClauses) {
12928 ShareBinaryClauses = other.ShareBinaryClauses;
12929 }
12930 if (other.HasShareGlueClauses) {
12931 ShareGlueClauses = other.ShareGlueClauses;
12932 }
12933 if (other.HasMinimizeSharedClauses) {
12934 MinimizeSharedClauses = other.MinimizeSharedClauses;
12935 }
12936 if (other.HasDebugPostsolveWithFullSolver) {
12937 DebugPostsolveWithFullSolver = other.DebugPostsolveWithFullSolver;
12938 }
12939 if (other.HasDebugMaxNumPresolveOperations) {
12940 DebugMaxNumPresolveOperations = other.DebugMaxNumPresolveOperations;
12941 }
12942 if (other.HasDebugCrashOnBadHint) {
12943 DebugCrashOnBadHint = other.DebugCrashOnBadHint;
12944 }
12945 if (other.HasDebugCrashIfPresolveBreaksHint) {
12946 DebugCrashIfPresolveBreaksHint = other.DebugCrashIfPresolveBreaksHint;
12947 }
12948 if (other.HasUseOptimizationHints) {
12949 UseOptimizationHints = other.UseOptimizationHints;
12950 }
12951 if (other.HasCoreMinimizationLevel) {
12952 CoreMinimizationLevel = other.CoreMinimizationLevel;
12953 }
12954 if (other.HasFindMultipleCores) {
12955 FindMultipleCores = other.FindMultipleCores;
12956 }
12957 if (other.HasCoverOptimization) {
12958 CoverOptimization = other.CoverOptimization;
12959 }
12960 if (other.HasMaxSatAssumptionOrder) {
12961 MaxSatAssumptionOrder = other.MaxSatAssumptionOrder;
12962 }
12963 if (other.HasMaxSatReverseAssumptionOrder) {
12964 MaxSatReverseAssumptionOrder = other.MaxSatReverseAssumptionOrder;
12965 }
12966 if (other.HasMaxSatStratification) {
12967 MaxSatStratification = other.MaxSatStratification;
12968 }
12969 if (other.HasPropagationLoopDetectionFactor) {
12970 PropagationLoopDetectionFactor = other.PropagationLoopDetectionFactor;
12971 }
12972 if (other.HasUsePrecedencesInDisjunctiveConstraint) {
12973 UsePrecedencesInDisjunctiveConstraint = other.UsePrecedencesInDisjunctiveConstraint;
12974 }
12975 if (other.HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive) {
12976 MaxSizeToCreatePrecedenceLiteralsInDisjunctive = other.MaxSizeToCreatePrecedenceLiteralsInDisjunctive;
12977 }
12978 if (other.HasUseStrongPropagationInDisjunctive) {
12979 UseStrongPropagationInDisjunctive = other.UseStrongPropagationInDisjunctive;
12980 }
12981 if (other.HasUseDynamicPrecedenceInDisjunctive) {
12982 UseDynamicPrecedenceInDisjunctive = other.UseDynamicPrecedenceInDisjunctive;
12983 }
12984 if (other.HasUseDynamicPrecedenceInCumulative) {
12985 UseDynamicPrecedenceInCumulative = other.UseDynamicPrecedenceInCumulative;
12986 }
12987 if (other.HasUseOverloadCheckerInCumulative) {
12988 UseOverloadCheckerInCumulative = other.UseOverloadCheckerInCumulative;
12989 }
12990 if (other.HasUseConservativeScaleOverloadChecker) {
12991 UseConservativeScaleOverloadChecker = other.UseConservativeScaleOverloadChecker;
12992 }
12993 if (other.HasUseTimetableEdgeFindingInCumulative) {
12994 UseTimetableEdgeFindingInCumulative = other.UseTimetableEdgeFindingInCumulative;
12995 }
12996 if (other.HasMaxNumIntervalsForTimetableEdgeFinding) {
12997 MaxNumIntervalsForTimetableEdgeFinding = other.MaxNumIntervalsForTimetableEdgeFinding;
12998 }
12999 if (other.HasUseHardPrecedencesInCumulative) {
13000 UseHardPrecedencesInCumulative = other.UseHardPrecedencesInCumulative;
13001 }
13002 if (other.HasExploitAllPrecedences) {
13003 ExploitAllPrecedences = other.ExploitAllPrecedences;
13004 }
13005 if (other.HasUseDisjunctiveConstraintInCumulative) {
13006 UseDisjunctiveConstraintInCumulative = other.UseDisjunctiveConstraintInCumulative;
13007 }
13008 if (other.HasUseTimetablingInNoOverlap2D) {
13009 UseTimetablingInNoOverlap2D = other.UseTimetablingInNoOverlap2D;
13010 }
13011 if (other.HasUseEnergeticReasoningInNoOverlap2D) {
13012 UseEnergeticReasoningInNoOverlap2D = other.UseEnergeticReasoningInNoOverlap2D;
13013 }
13014 if (other.HasUseAreaEnergeticReasoningInNoOverlap2D) {
13015 UseAreaEnergeticReasoningInNoOverlap2D = other.UseAreaEnergeticReasoningInNoOverlap2D;
13016 }
13017 if (other.HasUseTryEdgeReasoningInNoOverlap2D) {
13018 UseTryEdgeReasoningInNoOverlap2D = other.UseTryEdgeReasoningInNoOverlap2D;
13019 }
13020 if (other.HasMaxPairsPairwiseReasoningInNoOverlap2D) {
13021 MaxPairsPairwiseReasoningInNoOverlap2D = other.MaxPairsPairwiseReasoningInNoOverlap2D;
13022 }
13023 if (other.HasMaximumRegionsToSplitInDisconnectedNoOverlap2D) {
13024 MaximumRegionsToSplitInDisconnectedNoOverlap2D = other.MaximumRegionsToSplitInDisconnectedNoOverlap2D;
13025 }
13026 if (other.HasUseDualSchedulingHeuristics) {
13027 UseDualSchedulingHeuristics = other.UseDualSchedulingHeuristics;
13028 }
13029 if (other.HasUseAllDifferentForCircuit) {
13030 UseAllDifferentForCircuit = other.UseAllDifferentForCircuit;
13031 }
13032 if (other.HasRoutingCutSubsetSizeForBinaryRelationBound) {
13033 RoutingCutSubsetSizeForBinaryRelationBound = other.RoutingCutSubsetSizeForBinaryRelationBound;
13034 }
13035 if (other.HasRoutingCutSubsetSizeForTightBinaryRelationBound) {
13036 RoutingCutSubsetSizeForTightBinaryRelationBound = other.RoutingCutSubsetSizeForTightBinaryRelationBound;
13037 }
13038 if (other.HasRoutingCutDpEffort) {
13039 RoutingCutDpEffort = other.RoutingCutDpEffort;
13040 }
13041 if (other.HasSearchBranching) {
13042 SearchBranching = other.SearchBranching;
13043 }
13044 if (other.HasHintConflictLimit) {
13045 HintConflictLimit = other.HintConflictLimit;
13046 }
13047 if (other.HasRepairHint) {
13048 RepairHint = other.RepairHint;
13049 }
13050 if (other.HasFixVariablesToTheirHintedValue) {
13051 FixVariablesToTheirHintedValue = other.FixVariablesToTheirHintedValue;
13052 }
13053 if (other.HasUseProbingSearch) {
13054 UseProbingSearch = other.UseProbingSearch;
13055 }
13056 if (other.HasUseExtendedProbing) {
13057 UseExtendedProbing = other.UseExtendedProbing;
13058 }
13059 if (other.HasProbingNumCombinationsLimit) {
13060 ProbingNumCombinationsLimit = other.ProbingNumCombinationsLimit;
13061 }
13062 if (other.HasUseShavingInProbingSearch) {
13063 UseShavingInProbingSearch = other.UseShavingInProbingSearch;
13064 }
13065 if (other.HasShavingSearchDeterministicTime) {
13066 ShavingSearchDeterministicTime = other.ShavingSearchDeterministicTime;
13067 }
13068 if (other.HasShavingSearchThreshold) {
13069 ShavingSearchThreshold = other.ShavingSearchThreshold;
13070 }
13071 if (other.HasUseObjectiveLbSearch) {
13072 UseObjectiveLbSearch = other.UseObjectiveLbSearch;
13073 }
13074 if (other.HasUseObjectiveShavingSearch) {
13075 UseObjectiveShavingSearch = other.UseObjectiveShavingSearch;
13076 }
13077 if (other.HasUseVariablesShavingSearch) {
13078 UseVariablesShavingSearch = other.UseVariablesShavingSearch;
13079 }
13080 if (other.HasPseudoCostReliabilityThreshold) {
13081 PseudoCostReliabilityThreshold = other.PseudoCostReliabilityThreshold;
13082 }
13083 if (other.HasOptimizeWithCore) {
13084 OptimizeWithCore = other.OptimizeWithCore;
13085 }
13086 if (other.HasOptimizeWithLbTreeSearch) {
13087 OptimizeWithLbTreeSearch = other.OptimizeWithLbTreeSearch;
13088 }
13089 if (other.HasSaveLpBasisInLbTreeSearch) {
13090 SaveLpBasisInLbTreeSearch = other.SaveLpBasisInLbTreeSearch;
13091 }
13092 if (other.HasBinarySearchNumConflicts) {
13093 BinarySearchNumConflicts = other.BinarySearchNumConflicts;
13094 }
13095 if (other.HasOptimizeWithMaxHs) {
13096 OptimizeWithMaxHs = other.OptimizeWithMaxHs;
13097 }
13098 if (other.HasUseFeasibilityJump) {
13099 UseFeasibilityJump = other.UseFeasibilityJump;
13100 }
13101 if (other.HasUseLsOnly) {
13102 UseLsOnly = other.UseLsOnly;
13103 }
13104 if (other.HasFeasibilityJumpDecay) {
13105 FeasibilityJumpDecay = other.FeasibilityJumpDecay;
13106 }
13107 if (other.HasFeasibilityJumpLinearizationLevel) {
13108 FeasibilityJumpLinearizationLevel = other.FeasibilityJumpLinearizationLevel;
13109 }
13110 if (other.HasFeasibilityJumpRestartFactor) {
13111 FeasibilityJumpRestartFactor = other.FeasibilityJumpRestartFactor;
13112 }
13113 if (other.HasFeasibilityJumpBatchDtime) {
13114 FeasibilityJumpBatchDtime = other.FeasibilityJumpBatchDtime;
13115 }
13116 if (other.HasFeasibilityJumpVarRandomizationProbability) {
13117 FeasibilityJumpVarRandomizationProbability = other.FeasibilityJumpVarRandomizationProbability;
13118 }
13119 if (other.HasFeasibilityJumpVarPerburbationRangeRatio) {
13120 FeasibilityJumpVarPerburbationRangeRatio = other.FeasibilityJumpVarPerburbationRangeRatio;
13121 }
13122 if (other.HasFeasibilityJumpEnableRestarts) {
13123 FeasibilityJumpEnableRestarts = other.FeasibilityJumpEnableRestarts;
13124 }
13125 if (other.HasFeasibilityJumpMaxExpandedConstraintSize) {
13126 FeasibilityJumpMaxExpandedConstraintSize = other.FeasibilityJumpMaxExpandedConstraintSize;
13127 }
13128 if (other.HasNumViolationLs) {
13129 NumViolationLs = other.NumViolationLs;
13130 }
13131 if (other.HasViolationLsPerturbationPeriod) {
13132 ViolationLsPerturbationPeriod = other.ViolationLsPerturbationPeriod;
13133 }
13134 if (other.HasViolationLsCompoundMoveProbability) {
13135 ViolationLsCompoundMoveProbability = other.ViolationLsCompoundMoveProbability;
13136 }
13137 if (other.HasSharedTreeNumWorkers) {
13138 SharedTreeNumWorkers = other.SharedTreeNumWorkers;
13139 }
13140 if (other.HasUseSharedTreeSearch) {
13141 UseSharedTreeSearch = other.UseSharedTreeSearch;
13142 }
13143 if (other.HasSharedTreeWorkerMinRestartsPerSubtree) {
13144 SharedTreeWorkerMinRestartsPerSubtree = other.SharedTreeWorkerMinRestartsPerSubtree;
13145 }
13146 if (other.HasSharedTreeWorkerEnableTrailSharing) {
13147 SharedTreeWorkerEnableTrailSharing = other.SharedTreeWorkerEnableTrailSharing;
13148 }
13149 if (other.HasSharedTreeWorkerEnablePhaseSharing) {
13150 SharedTreeWorkerEnablePhaseSharing = other.SharedTreeWorkerEnablePhaseSharing;
13151 }
13152 if (other.HasSharedTreeOpenLeavesPerWorker) {
13153 SharedTreeOpenLeavesPerWorker = other.SharedTreeOpenLeavesPerWorker;
13154 }
13155 if (other.HasSharedTreeMaxNodesPerWorker) {
13156 SharedTreeMaxNodesPerWorker = other.SharedTreeMaxNodesPerWorker;
13157 }
13158 if (other.HasSharedTreeSplitStrategy) {
13159 SharedTreeSplitStrategy = other.SharedTreeSplitStrategy;
13160 }
13161 if (other.HasSharedTreeBalanceTolerance) {
13162 SharedTreeBalanceTolerance = other.SharedTreeBalanceTolerance;
13163 }
13164 if (other.HasEnumerateAllSolutions) {
13165 EnumerateAllSolutions = other.EnumerateAllSolutions;
13166 }
13167 if (other.HasKeepAllFeasibleSolutionsInPresolve) {
13168 KeepAllFeasibleSolutionsInPresolve = other.KeepAllFeasibleSolutionsInPresolve;
13169 }
13170 if (other.HasFillTightenedDomainsInResponse) {
13171 FillTightenedDomainsInResponse = other.FillTightenedDomainsInResponse;
13172 }
13173 if (other.HasFillAdditionalSolutionsInResponse) {
13174 FillAdditionalSolutionsInResponse = other.FillAdditionalSolutionsInResponse;
13175 }
13176 if (other.HasInstantiateAllVariables) {
13177 InstantiateAllVariables = other.InstantiateAllVariables;
13178 }
13179 if (other.HasAutoDetectGreaterThanAtLeastOneOf) {
13180 AutoDetectGreaterThanAtLeastOneOf = other.AutoDetectGreaterThanAtLeastOneOf;
13181 }
13182 if (other.HasStopAfterFirstSolution) {
13183 StopAfterFirstSolution = other.StopAfterFirstSolution;
13184 }
13185 if (other.HasStopAfterPresolve) {
13186 StopAfterPresolve = other.StopAfterPresolve;
13187 }
13188 if (other.HasStopAfterRootPropagation) {
13189 StopAfterRootPropagation = other.StopAfterRootPropagation;
13190 }
13191 if (other.HasLnsInitialDifficulty) {
13192 LnsInitialDifficulty = other.LnsInitialDifficulty;
13193 }
13194 if (other.HasLnsInitialDeterministicLimit) {
13195 LnsInitialDeterministicLimit = other.LnsInitialDeterministicLimit;
13196 }
13197 if (other.HasUseLns) {
13198 UseLns = other.UseLns;
13199 }
13200 if (other.HasUseLnsOnly) {
13201 UseLnsOnly = other.UseLnsOnly;
13202 }
13203 if (other.HasSolutionPoolSize) {
13204 SolutionPoolSize = other.SolutionPoolSize;
13205 }
13206 if (other.HasUseRinsLns) {
13207 UseRinsLns = other.UseRinsLns;
13208 }
13209 if (other.HasUseFeasibilityPump) {
13210 UseFeasibilityPump = other.UseFeasibilityPump;
13211 }
13212 if (other.HasUseLbRelaxLns) {
13213 UseLbRelaxLns = other.UseLbRelaxLns;
13214 }
13215 if (other.HasLbRelaxNumWorkersThreshold) {
13216 LbRelaxNumWorkersThreshold = other.LbRelaxNumWorkersThreshold;
13217 }
13218 if (other.HasFpRounding) {
13219 FpRounding = other.FpRounding;
13220 }
13221 if (other.HasDiversifyLnsParams) {
13222 DiversifyLnsParams = other.DiversifyLnsParams;
13223 }
13224 if (other.HasRandomizeSearch) {
13225 RandomizeSearch = other.RandomizeSearch;
13226 }
13227 if (other.HasSearchRandomVariablePoolSize) {
13228 SearchRandomVariablePoolSize = other.SearchRandomVariablePoolSize;
13229 }
13230 if (other.HasPushAllTasksTowardStart) {
13231 PushAllTasksTowardStart = other.PushAllTasksTowardStart;
13232 }
13233 if (other.HasUseOptionalVariables) {
13234 UseOptionalVariables = other.UseOptionalVariables;
13235 }
13236 if (other.HasUseExactLpReason) {
13237 UseExactLpReason = other.UseExactLpReason;
13238 }
13239 if (other.HasUseCombinedNoOverlap) {
13240 UseCombinedNoOverlap = other.UseCombinedNoOverlap;
13241 }
13242 if (other.HasAtMostOneMaxExpansionSize) {
13243 AtMostOneMaxExpansionSize = other.AtMostOneMaxExpansionSize;
13244 }
13245 if (other.HasCatchSigintSignal) {
13246 CatchSigintSignal = other.CatchSigintSignal;
13247 }
13248 if (other.HasUseImpliedBounds) {
13249 UseImpliedBounds = other.UseImpliedBounds;
13250 }
13251 if (other.HasPolishLpSolution) {
13252 PolishLpSolution = other.PolishLpSolution;
13253 }
13254 if (other.HasLpPrimalTolerance) {
13255 LpPrimalTolerance = other.LpPrimalTolerance;
13256 }
13257 if (other.HasLpDualTolerance) {
13258 LpDualTolerance = other.LpDualTolerance;
13259 }
13260 if (other.HasConvertIntervals) {
13261 ConvertIntervals = other.ConvertIntervals;
13262 }
13263 if (other.HasSymmetryLevel) {
13264 SymmetryLevel = other.SymmetryLevel;
13265 }
13266 if (other.HasUseSymmetryInLp) {
13267 UseSymmetryInLp = other.UseSymmetryInLp;
13268 }
13269 if (other.HasKeepSymmetryInPresolve) {
13270 KeepSymmetryInPresolve = other.KeepSymmetryInPresolve;
13271 }
13272 if (other.HasSymmetryDetectionDeterministicTimeLimit) {
13273 SymmetryDetectionDeterministicTimeLimit = other.SymmetryDetectionDeterministicTimeLimit;
13274 }
13275 if (other.HasNewLinearPropagation) {
13276 NewLinearPropagation = other.NewLinearPropagation;
13277 }
13278 if (other.HasLinearSplitSize) {
13279 LinearSplitSize = other.LinearSplitSize;
13280 }
13281 if (other.HasLinearizationLevel) {
13282 LinearizationLevel = other.LinearizationLevel;
13283 }
13284 if (other.HasBooleanEncodingLevel) {
13285 BooleanEncodingLevel = other.BooleanEncodingLevel;
13286 }
13287 if (other.HasMaxDomainSizeWhenEncodingEqNeqConstraints) {
13288 MaxDomainSizeWhenEncodingEqNeqConstraints = other.MaxDomainSizeWhenEncodingEqNeqConstraints;
13289 }
13290 if (other.HasMaxNumCuts) {
13291 MaxNumCuts = other.MaxNumCuts;
13292 }
13293 if (other.HasCutLevel) {
13294 CutLevel = other.CutLevel;
13295 }
13296 if (other.HasOnlyAddCutsAtLevelZero) {
13297 OnlyAddCutsAtLevelZero = other.OnlyAddCutsAtLevelZero;
13298 }
13299 if (other.HasAddObjectiveCut) {
13300 AddObjectiveCut = other.AddObjectiveCut;
13301 }
13302 if (other.HasAddCgCuts) {
13303 AddCgCuts = other.AddCgCuts;
13304 }
13305 if (other.HasAddMirCuts) {
13306 AddMirCuts = other.AddMirCuts;
13307 }
13308 if (other.HasAddZeroHalfCuts) {
13309 AddZeroHalfCuts = other.AddZeroHalfCuts;
13310 }
13311 if (other.HasAddCliqueCuts) {
13312 AddCliqueCuts = other.AddCliqueCuts;
13313 }
13314 if (other.HasAddRltCuts) {
13315 AddRltCuts = other.AddRltCuts;
13316 }
13317 if (other.HasMaxAllDiffCutSize) {
13318 MaxAllDiffCutSize = other.MaxAllDiffCutSize;
13319 }
13320 if (other.HasAddLinMaxCuts) {
13321 AddLinMaxCuts = other.AddLinMaxCuts;
13322 }
13323 if (other.HasMaxIntegerRoundingScaling) {
13324 MaxIntegerRoundingScaling = other.MaxIntegerRoundingScaling;
13325 }
13326 if (other.HasAddLpConstraintsLazily) {
13327 AddLpConstraintsLazily = other.AddLpConstraintsLazily;
13328 }
13329 if (other.HasRootLpIterations) {
13330 RootLpIterations = other.RootLpIterations;
13331 }
13332 if (other.HasMinOrthogonalityForLpConstraints) {
13333 MinOrthogonalityForLpConstraints = other.MinOrthogonalityForLpConstraints;
13334 }
13335 if (other.HasMaxCutRoundsAtLevelZero) {
13336 MaxCutRoundsAtLevelZero = other.MaxCutRoundsAtLevelZero;
13337 }
13338 if (other.HasMaxConsecutiveInactiveCount) {
13339 MaxConsecutiveInactiveCount = other.MaxConsecutiveInactiveCount;
13340 }
13341 if (other.HasCutMaxActiveCountValue) {
13342 CutMaxActiveCountValue = other.CutMaxActiveCountValue;
13343 }
13344 if (other.HasCutActiveCountDecay) {
13345 CutActiveCountDecay = other.CutActiveCountDecay;
13346 }
13347 if (other.HasCutCleanupTarget) {
13348 CutCleanupTarget = other.CutCleanupTarget;
13349 }
13350 if (other.HasNewConstraintsBatchSize) {
13351 NewConstraintsBatchSize = other.NewConstraintsBatchSize;
13352 }
13353 if (other.HasExploitIntegerLpSolution) {
13354 ExploitIntegerLpSolution = other.ExploitIntegerLpSolution;
13355 }
13356 if (other.HasExploitAllLpSolution) {
13357 ExploitAllLpSolution = other.ExploitAllLpSolution;
13358 }
13359 if (other.HasExploitBestSolution) {
13360 ExploitBestSolution = other.ExploitBestSolution;
13361 }
13362 if (other.HasExploitRelaxationSolution) {
13363 ExploitRelaxationSolution = other.ExploitRelaxationSolution;
13364 }
13365 if (other.HasExploitObjective) {
13366 ExploitObjective = other.ExploitObjective;
13367 }
13368 if (other.HasDetectLinearizedProduct) {
13369 DetectLinearizedProduct = other.DetectLinearizedProduct;
13370 }
13371 if (other.HasMipMaxBound) {
13372 MipMaxBound = other.MipMaxBound;
13373 }
13374 if (other.HasMipVarScaling) {
13375 MipVarScaling = other.MipVarScaling;
13376 }
13377 if (other.HasMipScaleLargeDomain) {
13378 MipScaleLargeDomain = other.MipScaleLargeDomain;
13379 }
13380 if (other.HasMipAutomaticallyScaleVariables) {
13381 MipAutomaticallyScaleVariables = other.MipAutomaticallyScaleVariables;
13382 }
13383 if (other.HasOnlySolveIp) {
13384 OnlySolveIp = other.OnlySolveIp;
13385 }
13386 if (other.HasMipWantedPrecision) {
13387 MipWantedPrecision = other.MipWantedPrecision;
13388 }
13389 if (other.HasMipMaxActivityExponent) {
13390 MipMaxActivityExponent = other.MipMaxActivityExponent;
13391 }
13392 if (other.HasMipCheckPrecision) {
13393 MipCheckPrecision = other.MipCheckPrecision;
13394 }
13395 if (other.HasMipComputeTrueObjectiveBound) {
13396 MipComputeTrueObjectiveBound = other.MipComputeTrueObjectiveBound;
13397 }
13398 if (other.HasMipMaxValidMagnitude) {
13399 MipMaxValidMagnitude = other.MipMaxValidMagnitude;
13400 }
13401 if (other.HasMipTreatHighMagnitudeBoundsAsInfinity) {
13402 MipTreatHighMagnitudeBoundsAsInfinity = other.MipTreatHighMagnitudeBoundsAsInfinity;
13403 }
13404 if (other.HasMipDropTolerance) {
13405 MipDropTolerance = other.MipDropTolerance;
13406 }
13407 if (other.HasMipPresolveLevel) {
13408 MipPresolveLevel = other.MipPresolveLevel;
13409 }
13410 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
13411 }
13412
13413 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13414 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
13415 public void MergeFrom(pb::CodedInputStream input) {
13416 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13417 input.ReadRawMessage(this);
13418 #else
13419 uint tag;
13420 while ((tag = input.ReadTag()) != 0) {
13421 if ((tag & 7) == 4) {
13422 // Abort on any end group tag.
13423 return;
13424 }
13425 switch(tag) {
13426 default:
13427 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
13428 break;
13429 case 8: {
13430 PreferredVariableOrder = (global::Google.OrTools.Sat.SatParameters.Types.VariableOrder) input.ReadEnum();
13431 break;
13432 }
13433 case 16: {
13434 InitialPolarity = (global::Google.OrTools.Sat.SatParameters.Types.Polarity) input.ReadEnum();
13435 break;
13436 }
13437 case 32: {
13438 MinimizationAlgorithm = (global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm) input.ReadEnum();
13439 break;
13440 }
13441 case 88: {
13442 ClauseCleanupPeriod = input.ReadInt32();
13443 break;
13444 }
13445 case 104: {
13446 ClauseCleanupTarget = input.ReadInt32();
13447 break;
13448 }
13449 case 121: {
13450 VariableActivityDecay = input.ReadDouble();
13451 break;
13452 }
13453 case 129: {
13454 MaxVariableActivityValue = input.ReadDouble();
13455 break;
13456 }
13457 case 137: {
13458 ClauseActivityDecay = input.ReadDouble();
13459 break;
13460 }
13461 case 145: {
13462 MaxClauseActivityValue = input.ReadDouble();
13463 break;
13464 }
13465 case 177: {
13466 GlucoseMaxDecay = input.ReadDouble();
13467 break;
13468 }
13469 case 185: {
13470 GlucoseDecayIncrement = input.ReadDouble();
13471 break;
13472 }
13473 case 192: {
13474 GlucoseDecayIncrementPeriod = input.ReadInt32();
13475 break;
13476 }
13477 case 240: {
13478 RestartPeriod = input.ReadInt32();
13479 break;
13480 }
13481 case 248: {
13482 RandomSeed = input.ReadInt32();
13483 break;
13484 }
13485 case 257: {
13486 RandomBranchesRatio = input.ReadDouble();
13487 break;
13488 }
13489 case 272: {
13490 BinaryMinimizationAlgorithm = (global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm) input.ReadEnum();
13491 break;
13492 }
13493 case 280: {
13494 UseOptimizationHints = input.ReadBool();
13495 break;
13496 }
13497 case 289: {
13498 MaxTimeInSeconds = input.ReadDouble();
13499 break;
13500 }
13501 case 296: {
13502 MaxNumberOfConflicts = input.ReadInt64();
13503 break;
13504 }
13505 case 320: {
13506 MaxMemoryInMb = input.ReadInt64();
13507 break;
13508 }
13509 case 328: {
13510 LogSearchProgress = input.ReadBool();
13511 break;
13512 }
13513 case 344: {
13514 UsePbResolution = input.ReadBool();
13515 break;
13516 }
13517 case 352: {
13518 UsePhaseSaving = input.ReadBool();
13519 break;
13520 }
13521 case 361: {
13522 RandomPolarityRatio = input.ReadDouble();
13523 break;
13524 }
13525 case 368: {
13526 PbCleanupIncrement = input.ReadInt32();
13527 break;
13528 }
13529 case 377: {
13530 PbCleanupRatio = input.ReadDouble();
13531 break;
13532 }
13533 case 384: {
13534 MinimizeReductionDuringPbResolution = input.ReadBool();
13535 break;
13536 }
13537 case 392: {
13538 CountAssumptionLevelsInLbd = input.ReadBool();
13539 break;
13540 }
13541 case 400: {
13542 CoreMinimizationLevel = input.ReadInt32();
13543 break;
13544 }
13545 case 408: {
13546 MaxSatAssumptionOrder = (global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder) input.ReadEnum();
13547 break;
13548 }
13549 case 416: {
13550 MaxSatReverseAssumptionOrder = input.ReadBool();
13551 break;
13552 }
13553 case 424: {
13554 MaxSatStratification = (global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm) input.ReadEnum();
13555 break;
13556 }
13557 case 432: {
13558 PresolveBveThreshold = input.ReadInt32();
13559 break;
13560 }
13561 case 440: {
13562 PresolveBveClauseWeight = input.ReadInt32();
13563 break;
13564 }
13565 case 448: {
13566 SubsumptionDuringConflictAnalysis = input.ReadBool();
13567 break;
13568 }
13569 case 457: {
13570 PresolveProbingDeterministicTimeLimit = input.ReadDouble();
13571 break;
13572 }
13573 case 464: {
13574 ClauseCleanupProtection = (global::Google.OrTools.Sat.SatParameters.Types.ClauseProtection) input.ReadEnum();
13575 break;
13576 }
13577 case 472: {
13578 ClauseCleanupLbdBound = input.ReadInt32();
13579 break;
13580 }
13581 case 480: {
13582 ClauseCleanupOrdering = (global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering) input.ReadEnum();
13583 break;
13584 }
13585 case 490:
13586 case 488: {
13587 restartAlgorithms_.AddEntriesFrom(input, _repeated_restartAlgorithms_codec);
13588 break;
13589 }
13590 case 496: {
13591 RestartRunningWindowSize = input.ReadInt32();
13592 break;
13593 }
13594 case 505: {
13595 RestartDlAverageRatio = input.ReadDouble();
13596 break;
13597 }
13598 case 512: {
13599 UseBlockingRestart = input.ReadBool();
13600 break;
13601 }
13602 case 520: {
13603 BlockingRestartWindowSize = input.ReadInt32();
13604 break;
13605 }
13606 case 529: {
13607 BlockingRestartMultiplier = input.ReadDouble();
13608 break;
13609 }
13610 case 537: {
13611 MaxDeterministicTime = input.ReadDouble();
13612 break;
13613 }
13614 case 544: {
13615 NumConflictsBeforeStrategyChanges = input.ReadInt32();
13616 break;
13617 }
13618 case 553: {
13619 StrategyChangeIncreaseRatio = input.ReadDouble();
13620 break;
13621 }
13622 case 562: {
13623 DefaultRestartAlgorithms = input.ReadString();
13624 break;
13625 }
13626 case 569: {
13627 RestartLbdAverageRatio = input.ReadDouble();
13628 break;
13629 }
13630 case 576: {
13631 PresolveUseBva = input.ReadBool();
13632 break;
13633 }
13634 case 584: {
13635 PresolveBvaThreshold = input.ReadInt32();
13636 break;
13637 }
13638 case 592: {
13639 UsePrecedencesInDisjunctiveConstraint = input.ReadBool();
13640 break;
13641 }
13642 case 600: {
13643 UseErwaHeuristic = input.ReadBool();
13644 break;
13645 }
13646 case 609: {
13647 InitialVariablesActivity = input.ReadDouble();
13648 break;
13649 }
13650 case 616: {
13651 AlsoBumpVariablesInConflictReasons = input.ReadBool();
13652 break;
13653 }
13654 case 624: {
13655 UseOverloadCheckerInCumulative = input.ReadBool();
13656 break;
13657 }
13658 case 632: {
13659 UseTimetableEdgeFindingInCumulative = input.ReadBool();
13660 break;
13661 }
13662 case 640: {
13663 UseDisjunctiveConstraintInCumulative = input.ReadBool();
13664 break;
13665 }
13666 case 656: {
13667 SearchBranching = (global::Google.OrTools.Sat.SatParameters.Types.SearchBranching) input.ReadEnum();
13668 break;
13669 }
13670 case 664: {
13671 OptimizeWithCore = input.ReadBool();
13672 break;
13673 }
13674 case 672: {
13675 FindMultipleCores = input.ReadBool();
13676 break;
13677 }
13678 case 680: {
13679 OptimizeWithMaxHs = input.ReadBool();
13680 break;
13681 }
13682 case 688: {
13683 CpModelPresolve = input.ReadBool();
13684 break;
13685 }
13686 case 696: {
13687 EnumerateAllSolutions = input.ReadBool();
13688 break;
13689 }
13690 case 704: {
13691 PresolveBlockedClause = input.ReadBool();
13692 break;
13693 }
13694 case 712: {
13695 CoverOptimization = input.ReadBool();
13696 break;
13697 }
13698 case 720: {
13699 LinearizationLevel = input.ReadInt32();
13700 break;
13701 }
13702 case 728: {
13703 MaxNumCuts = input.ReadInt32();
13704 break;
13705 }
13706 case 736: {
13707 OnlyAddCutsAtLevelZero = input.ReadBool();
13708 break;
13709 }
13710 case 744: {
13711 CpModelUseSatPresolve = input.ReadBool();
13712 break;
13713 }
13714 case 752: {
13715 ExploitIntegerLpSolution = input.ReadBool();
13716 break;
13717 }
13718 case 760: {
13719 AutoDetectGreaterThanAtLeastOneOf = input.ReadBool();
13720 break;
13721 }
13722 case 784: {
13723 StopAfterFirstSolution = input.ReadBool();
13724 break;
13725 }
13726 case 792: {
13727 BinarySearchNumConflicts = input.ReadInt32();
13728 break;
13729 }
13730 case 800: {
13731 NumSearchWorkers = input.ReadInt32();
13732 break;
13733 }
13734 case 808: {
13735 UseLnsOnly = input.ReadBool();
13736 break;
13737 }
13738 case 824: {
13739 RandomizeSearch = input.ReadBool();
13740 break;
13741 }
13742 case 832: {
13743 SearchRandomVariablePoolSize = input.ReadInt64();
13744 break;
13745 }
13746 case 848: {
13747 InstantiateAllVariables = input.ReadBool();
13748 break;
13749 }
13750 case 856: {
13751 BooleanEncodingLevel = input.ReadInt32();
13752 break;
13753 }
13754 case 864: {
13755 UseOptionalVariables = input.ReadBool();
13756 break;
13757 }
13758 case 872: {
13759 UseExactLpReason = input.ReadBool();
13760 break;
13761 }
13762 case 880: {
13763 CpModelProbingLevel = input.ReadInt32();
13764 break;
13765 }
13766 case 896: {
13767 AddLpConstraintsLazily = input.ReadBool();
13768 break;
13769 }
13770 case 904: {
13771 ShareObjectiveBounds = input.ReadBool();
13772 break;
13773 }
13774 case 912: {
13775 ShareLevelZeroBounds = input.ReadBool();
13776 break;
13777 }
13778 case 921: {
13779 MinOrthogonalityForLpConstraints = input.ReadDouble();
13780 break;
13781 }
13782 case 928: {
13783 ExploitAllLpSolution = input.ReadBool();
13784 break;
13785 }
13786 case 936: {
13787 AddCgCuts = input.ReadBool();
13788 break;
13789 }
13790 case 952: {
13791 MaxIntegerRoundingScaling = input.ReadInt32();
13792 break;
13793 }
13794 case 960: {
13795 AddMirCuts = input.ReadBool();
13796 break;
13797 }
13798 case 968: {
13799 MaxConsecutiveInactiveCount = input.ReadInt32();
13800 break;
13801 }
13802 case 976: {
13803 NewConstraintsBatchSize = input.ReadInt32();
13804 break;
13805 }
13806 case 984: {
13807 PseudoCostReliabilityThreshold = input.ReadInt64();
13808 break;
13809 }
13810 case 993: {
13811 MipMaxBound = input.ReadDouble();
13812 break;
13813 }
13814 case 1001: {
13815 MipVarScaling = input.ReadDouble();
13816 break;
13817 }
13818 case 1009: {
13819 MipWantedPrecision = input.ReadDouble();
13820 break;
13821 }
13822 case 1016: {
13823 MipMaxActivityExponent = input.ReadInt32();
13824 break;
13825 }
13826 case 1025: {
13827 MipCheckPrecision = input.ReadDouble();
13828 break;
13829 }
13830 case 1032: {
13831 UseRinsLns = input.ReadBool();
13832 break;
13833 }
13834 case 1040: {
13835 ExploitBestSolution = input.ReadBool();
13836 break;
13837 }
13838 case 1048: {
13839 ExploitObjective = input.ReadBool();
13840 break;
13841 }
13842 case 1056: {
13843 FillTightenedDomainsInResponse = input.ReadBool();
13844 break;
13845 }
13846 case 1064: {
13847 UseCombinedNoOverlap = input.ReadBool();
13848 break;
13849 }
13850 case 1072: {
13851 InterleaveBatchSize = input.ReadInt32();
13852 break;
13853 }
13854 case 1080: {
13855 CatchSigintSignal = input.ReadBool();
13856 break;
13857 }
13858 case 1088: {
13859 InterleaveSearch = input.ReadBool();
13860 break;
13861 }
13862 case 1096: {
13863 DiversifyLnsParams = input.ReadBool();
13864 break;
13865 }
13866 case 1104: {
13867 MaxPresolveIterations = input.ReadInt32();
13868 break;
13869 }
13870 case 1152: {
13871 UseImpliedBounds = input.ReadBool();
13872 break;
13873 }
13874 case 1161: {
13875 MergeNoOverlapWorkLimit = input.ReadDouble();
13876 break;
13877 }
13878 case 1169: {
13879 MergeAtMostOneWorkLimit = input.ReadDouble();
13880 break;
13881 }
13882 case 1176: {
13883 PresolveSubstitutionLevel = input.ReadInt32();
13884 break;
13885 }
13886 case 1184: {
13887 MaxAllDiffCutSize = input.ReadInt32();
13888 break;
13889 }
13890 case 1192: {
13891 StopAfterPresolve = input.ReadBool();
13892 break;
13893 }
13894 case 1208: {
13895 DebugMaxNumPresolveOperations = input.ReadInt32();
13896 break;
13897 }
13898 case 1216: {
13899 AddLinMaxCuts = input.ReadBool();
13900 break;
13901 }
13902 case 1224: {
13903 HintConflictLimit = input.ReadInt32();
13904 break;
13905 }
13906 case 1232: {
13907 MaxCutRoundsAtLevelZero = input.ReadInt32();
13908 break;
13909 }
13910 case 1241: {
13911 CutMaxActiveCountValue = input.ReadDouble();
13912 break;
13913 }
13914 case 1249: {
13915 CutActiveCountDecay = input.ReadDouble();
13916 break;
13917 }
13918 case 1256: {
13919 CutCleanupTarget = input.ReadInt32();
13920 break;
13921 }
13922 case 1273: {
13923 AbsoluteGapLimit = input.ReadDouble();
13924 break;
13925 }
13926 case 1281: {
13927 RelativeGapLimit = input.ReadDouble();
13928 break;
13929 }
13930 case 1288: {
13931 ExploitRelaxationSolution = input.ReadBool();
13932 break;
13933 }
13934 case 1296: {
13935 DebugPostsolveWithFullSolver = input.ReadBool();
13936 break;
13937 }
13938 case 1304: {
13939 UseSatInprocessing = input.ReadBool();
13940 break;
13941 }
13942 case 1312: {
13943 UseFeasibilityPump = input.ReadBool();
13944 break;
13945 }
13946 case 1320: {
13947 FpRounding = (global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod) input.ReadEnum();
13948 break;
13949 }
13950 case 1328: {
13951 MipAutomaticallyScaleVariables = input.ReadBool();
13952 break;
13953 }
13954 case 1336: {
13955 RepairHint = input.ReadBool();
13956 break;
13957 }
13958 case 1344: {
13959 PolarityRephaseIncrement = input.ReadInt32();
13960 break;
13961 }
13962 case 1352: {
13963 AddZeroHalfCuts = input.ReadBool();
13964 break;
13965 }
13966 case 1360: {
13967 ExpandAlldiffConstraints = input.ReadBool();
13968 break;
13969 }
13970 case 1370: {
13971 Name = input.ReadString();
13972 break;
13973 }
13974 case 1376: {
13975 AddCliqueCuts = input.ReadBool();
13976 break;
13977 }
13978 case 1384: {
13979 KeepAllFeasibleSolutionsInPresolve = input.ReadBool();
13980 break;
13981 }
13982 case 1392: {
13983 PresolveExtractIntegerEnforcement = input.ReadBool();
13984 break;
13985 }
13986 case 1400: {
13987 PolishLpSolution = input.ReadBool();
13988 break;
13989 }
13990 case 1408: {
13991 UseProbingSearch = input.ReadBool();
13992 break;
13993 }
13994 case 1416: {
13995 ConvertIntervals = input.ReadBool();
13996 break;
13997 }
13998 case 1424: {
13999 PermuteVariableRandomly = input.ReadBool();
14000 break;
14001 }
14002 case 1432: {
14003 PermutePresolveConstraintOrder = input.ReadBool();
14004 break;
14005 }
14006 case 1440: {
14007 UseAbslRandom = input.ReadBool();
14008 break;
14009 }
14010 case 1448: {
14011 DisableConstraintExpansion = input.ReadBool();
14012 break;
14013 }
14014 case 1456: {
14015 ExpandReservoirConstraints = input.ReadBool();
14016 break;
14017 }
14018 case 1464: {
14019 SymmetryLevel = input.ReadInt32();
14020 break;
14021 }
14022 case 1482: {
14023 LogPrefix = input.ReadString();
14024 break;
14025 }
14026 case 1488: {
14027 LogToStdout = input.ReadBool();
14028 break;
14029 }
14030 case 1496: {
14031 LogToResponse = input.ReadBool();
14032 break;
14033 }
14034 case 1504: {
14035 OptimizeWithLbTreeSearch = input.ReadBool();
14036 break;
14037 }
14038 case 1512: {
14039 LogSubsolverStatistics = input.ReadBool();
14040 break;
14041 }
14042 case 1521: {
14043 ClauseCleanupRatio = input.ReadDouble();
14044 break;
14045 }
14046 case 1528: {
14047 MaxDomainSizeWhenEncodingEqNeqConstraints = input.ReadInt32();
14048 break;
14049 }
14050 case 1536: {
14051 FixVariablesToTheirHintedValue = input.ReadBool();
14052 break;
14053 }
14054 case 1544: {
14055 SolutionPoolSize = input.ReadInt32();
14056 break;
14057 }
14058 case 1552: {
14059 FillAdditionalSolutionsInResponse = input.ReadBool();
14060 break;
14061 }
14062 case 1560: {
14063 DebugCrashOnBadHint = input.ReadBool();
14064 break;
14065 }
14066 case 1568: {
14067 CutLevel = input.ReadInt32();
14068 break;
14069 }
14070 case 1576: {
14071 AddObjectiveCut = input.ReadBool();
14072 break;
14073 }
14074 case 1584: {
14075 MipComputeTrueObjectiveBound = input.ReadBool();
14076 break;
14077 }
14078 case 1593: {
14079 MipMaxValidMagnitude = input.ReadDouble();
14080 break;
14081 }
14082 case 1600: {
14083 UseTimetablingInNoOverlap2D = input.ReadBool();
14084 break;
14085 }
14086 case 1608: {
14087 PresolveInclusionWorkLimit = input.ReadInt64();
14088 break;
14089 }
14090 case 1616: {
14091 IgnoreNames = input.ReadBool();
14092 break;
14093 }
14094 case 1624: {
14095 ShareBinaryClauses = input.ReadBool();
14096 break;
14097 }
14098 case 1632: {
14099 UseShavingInProbingSearch = input.ReadBool();
14100 break;
14101 }
14102 case 1641: {
14103 ShavingSearchDeterministicTime = input.ReadDouble();
14104 break;
14105 }
14106 case 1648: {
14107 NumWorkers = input.ReadInt32();
14108 break;
14109 }
14110 case 1658: {
14111 subsolvers_.AddEntriesFrom(input, _repeated_subsolvers_codec);
14112 break;
14113 }
14114 case 1674: {
14115 ignoreSubsolvers_.AddEntriesFrom(input, _repeated_ignoreSubsolvers_codec);
14116 break;
14117 }
14118 case 1682: {
14119 subsolverParams_.AddEntriesFrom(input, _repeated_subsolverParams_codec);
14120 break;
14121 }
14122 case 1704: {
14123 UseEnergeticReasoningInNoOverlap2D = input.ReadBool();
14124 break;
14125 }
14126 case 1712: {
14127 UseDualSchedulingHeuristics = input.ReadBool();
14128 break;
14129 }
14130 case 1720: {
14131 UseHardPrecedencesInCumulative = input.ReadBool();
14132 break;
14133 }
14134 case 1728: {
14135 DetectTableWithCost = input.ReadBool();
14136 break;
14137 }
14138 case 1736: {
14139 TableCompressionLevel = input.ReadInt32();
14140 break;
14141 }
14142 case 1754: {
14143 extraSubsolvers_.AddEntriesFrom(input, _repeated_extraSubsolvers_codec);
14144 break;
14145 }
14146 case 1760: {
14147 ExploitAllPrecedences = input.ReadBool();
14148 break;
14149 }
14150 case 1769: {
14151 PropagationLoopDetectionFactor = input.ReadDouble();
14152 break;
14153 }
14154 case 1776: {
14155 OnlySolveIp = input.ReadBool();
14156 break;
14157 }
14158 case 1784: {
14159 EncodeComplexLinearConstraintWithInteger = input.ReadBool();
14160 break;
14161 }
14162 case 1792: {
14163 NewLinearPropagation = input.ReadBool();
14164 break;
14165 }
14166 case 1800: {
14167 MipScaleLargeDomain = input.ReadBool();
14168 break;
14169 }
14170 case 1809: {
14171 ProbingDeterministicTimeLimit = input.ReadDouble();
14172 break;
14173 }
14174 case 1816: {
14175 RootLpIterations = input.ReadInt32();
14176 break;
14177 }
14178 case 1824: {
14179 UseObjectiveLbSearch = input.ReadBool();
14180 break;
14181 }
14182 case 1832: {
14183 MaxSizeToCreatePrecedenceLiteralsInDisjunctive = input.ReadInt32();
14184 break;
14185 }
14186 case 1840: {
14187 UseStrongPropagationInDisjunctive = input.ReadBool();
14188 break;
14189 }
14190 case 1857: {
14191 MipDropTolerance = input.ReadDouble();
14192 break;
14193 }
14194 case 1864: {
14195 InferAllDiffs = input.ReadBool();
14196 break;
14197 }
14198 case 1872: {
14199 FindBigLinearOverlap = input.ReadBool();
14200 break;
14201 }
14202 case 1880: {
14203 SharedTreeNumWorkers = input.ReadInt32();
14204 break;
14205 }
14206 case 1888: {
14207 UseSharedTreeSearch = input.ReadBool();
14208 break;
14209 }
14210 case 1904: {
14211 SharedTreeMaxNodesPerWorker = input.ReadInt32();
14212 break;
14213 }
14214 case 1912: {
14215 SharedTreeSplitStrategy = (global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy) input.ReadEnum();
14216 break;
14217 }
14218 case 1920: {
14219 UseLsOnly = input.ReadBool();
14220 break;
14221 }
14222 case 1937: {
14223 FeasibilityJumpDecay = input.ReadDouble();
14224 break;
14225 }
14226 case 1952: {
14227 NumViolationLs = input.ReadInt32();
14228 break;
14229 }
14230 case 1977: {
14231 FeasibilityJumpVarRandomizationProbability = input.ReadDouble();
14232 break;
14233 }
14234 case 1985: {
14235 FeasibilityJumpVarPerburbationRangeRatio = input.ReadDouble();
14236 break;
14237 }
14238 case 1992: {
14239 ViolationLsPerturbationPeriod = input.ReadInt32();
14240 break;
14241 }
14242 case 2000: {
14243 FeasibilityJumpEnableRestarts = input.ReadBool();
14244 break;
14245 }
14246 case 2016: {
14247 StopAfterRootPropagation = input.ReadBool();
14248 break;
14249 }
14250 case 2024: {
14251 UseObjectiveShavingSearch = input.ReadBool();
14252 break;
14253 }
14254 case 2040: {
14255 UseLbRelaxLns = input.ReadBool();
14256 break;
14257 }
14258 case 2048: {
14259 LinearSplitSize = input.ReadInt32();
14260 break;
14261 }
14262 case 2056: {
14263 FeasibilityJumpLinearizationLevel = input.ReadInt32();
14264 break;
14265 }
14266 case 2064: {
14267 FeasibilityJumpRestartFactor = input.ReadInt32();
14268 break;
14269 }
14270 case 2073: {
14271 ViolationLsCompoundMoveProbability = input.ReadDouble();
14272 break;
14273 }
14274 case 2080: {
14275 MaxNumIntervalsForTimetableEdgeFinding = input.ReadInt32();
14276 break;
14277 }
14278 case 2088: {
14279 MipPresolveLevel = input.ReadInt32();
14280 break;
14281 }
14282 case 2096: {
14283 PushAllTasksTowardStart = input.ReadBool();
14284 break;
14285 }
14286 case 2104: {
14287 UseDynamicPrecedenceInDisjunctive = input.ReadBool();
14288 break;
14289 }
14290 case 2112: {
14291 FeasibilityJumpMaxExpandedConstraintSize = input.ReadInt32();
14292 break;
14293 }
14294 case 2120: {
14295 UseFeasibilityJump = input.ReadBool();
14296 break;
14297 }
14298 case 2129: {
14299 LpPrimalTolerance = input.ReadDouble();
14300 break;
14301 }
14302 case 2137: {
14303 LpDualTolerance = input.ReadDouble();
14304 break;
14305 }
14306 case 2144: {
14307 UseDynamicPrecedenceInCumulative = input.ReadBool();
14308 break;
14309 }
14310 case 2152: {
14311 UseExtendedProbing = input.ReadBool();
14312 break;
14313 }
14314 case 2160: {
14315 AtMostOneMaxExpansionSize = input.ReadInt32();
14316 break;
14317 }
14318 case 2168: {
14319 UseAreaEnergeticReasoningInNoOverlap2D = input.ReadBool();
14320 break;
14321 }
14322 case 2176: {
14323 ProbingNumCombinationsLimit = input.ReadInt32();
14324 break;
14325 }
14326 case 2185: {
14327 InprocessingDtimeRatio = input.ReadDouble();
14328 break;
14329 }
14330 case 2193: {
14331 InprocessingProbingDtime = input.ReadDouble();
14332 break;
14333 }
14334 case 2201: {
14335 InprocessingMinimizationDtime = input.ReadDouble();
14336 break;
14337 }
14338 case 2208: {
14339 MaxPairsPairwiseReasoningInNoOverlap2D = input.ReadInt32();
14340 break;
14341 }
14342 case 2216: {
14343 DetectLinearizedProduct = input.ReadBool();
14344 break;
14345 }
14346 case 2224: {
14347 MipTreatHighMagnitudeBoundsAsInfinity = input.ReadBool();
14348 break;
14349 }
14350 case 2232: {
14351 AddRltCuts = input.ReadBool();
14352 break;
14353 }
14354 case 2240: {
14355 MaxLinMaxSizeForExpansion = input.ReadInt32();
14356 break;
14357 }
14358 case 2249: {
14359 SharedTreeOpenLeavesPerWorker = input.ReadDouble();
14360 break;
14361 }
14362 case 2256: {
14363 SharedTreeWorkerMinRestartsPerSubtree = input.ReadInt32();
14364 break;
14365 }
14366 case 2264: {
14367 UseLns = input.ReadBool();
14368 break;
14369 }
14370 case 2272: {
14371 SaveLpBasisInLbTreeSearch = input.ReadBool();
14372 break;
14373 }
14374 case 2280: {
14375 ShareGlueClauses = input.ReadBool();
14376 break;
14377 }
14378 case 2288: {
14379 UseConservativeScaleOverloadChecker = input.ReadBool();
14380 break;
14381 }
14382 case 2296: {
14383 EncodeCumulativeAsReservoir = input.ReadBool();
14384 break;
14385 }
14386 case 2304: {
14387 ExpandReservoirUsingCircuit = input.ReadBool();
14388 break;
14389 }
14390 case 2312: {
14391 UseVariablesShavingSearch = input.ReadBool();
14392 break;
14393 }
14394 case 2320: {
14395 ShavingSearchThreshold = input.ReadInt64();
14396 break;
14397 }
14398 case 2328: {
14399 MaxNumDeterministicBatches = input.ReadInt32();
14400 break;
14401 }
14402 case 2337: {
14403 FeasibilityJumpBatchDtime = input.ReadDouble();
14404 break;
14405 }
14406 case 2346: {
14407 filterSubsolvers_.AddEntriesFrom(input, _repeated_filterSubsolvers_codec);
14408 break;
14409 }
14410 case 2352: {
14411 NumFullSubsolvers = input.ReadInt32();
14412 break;
14413 }
14414 case 2360: {
14415 SharedTreeWorkerEnableTrailSharing = input.ReadBool();
14416 break;
14417 }
14418 case 2368: {
14419 LbRelaxNumWorkersThreshold = input.ReadInt32();
14420 break;
14421 }
14422 case 2376: {
14423 InprocessingMinimizationUseConflictAnalysis = input.ReadBool();
14424 break;
14425 }
14426 case 2384: {
14427 InprocessingMinimizationUseAllOrderings = input.ReadBool();
14428 break;
14429 }
14430 case 2392: {
14431 UseTryEdgeReasoningInNoOverlap2D = input.ReadBool();
14432 break;
14433 }
14434 case 2400: {
14435 MinimizeSharedClauses = input.ReadBool();
14436 break;
14437 }
14438 case 2408: {
14439 UseSymmetryInLp = input.ReadBool();
14440 break;
14441 }
14442 case 2417: {
14443 SymmetryDetectionDeterministicTimeLimit = input.ReadDouble();
14444 break;
14445 }
14446 case 2424: {
14447 KeepSymmetryInPresolve = input.ReadBool();
14448 break;
14449 }
14450 case 2432: {
14451 SharedTreeWorkerEnablePhaseSharing = input.ReadBool();
14452 break;
14453 }
14454 case 2440: {
14455 SharedTreeBalanceTolerance = input.ReadInt32();
14456 break;
14457 }
14458 case 2448: {
14459 DebugCrashIfPresolveBreaksHint = input.ReadBool();
14460 break;
14461 }
14462 case 2457: {
14463 LnsInitialDifficulty = input.ReadDouble();
14464 break;
14465 }
14466 case 2465: {
14467 LnsInitialDeterministicLimit = input.ReadDouble();
14468 break;
14469 }
14470 case 2472: {
14471 PolarityExploitLsHints = input.ReadBool();
14472 break;
14473 }
14474 case 2480: {
14475 RemoveFixedVariablesEarly = input.ReadBool();
14476 break;
14477 }
14478 case 2488: {
14479 UseAllDifferentForCircuit = input.ReadBool();
14480 break;
14481 }
14482 case 2496: {
14483 RoutingCutSubsetSizeForBinaryRelationBound = input.ReadInt32();
14484 break;
14485 }
14486 case 2504: {
14487 RoutingCutSubsetSizeForTightBinaryRelationBound = input.ReadInt32();
14488 break;
14489 }
14490 case 2513: {
14491 RoutingCutDpEffort = input.ReadDouble();
14492 break;
14493 }
14494 case 2520: {
14495 MaximumRegionsToSplitInDisconnectedNoOverlap2D = input.ReadInt32();
14496 break;
14497 }
14498 }
14499 }
14500 #endif
14501 }
14502
14503 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
14504 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14505 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
14506 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
14507 uint tag;
14508 while ((tag = input.ReadTag()) != 0) {
14509 if ((tag & 7) == 4) {
14510 // Abort on any end group tag.
14511 return;
14512 }
14513 switch(tag) {
14514 default:
14515 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
14516 break;
14517 case 8: {
14518 PreferredVariableOrder = (global::Google.OrTools.Sat.SatParameters.Types.VariableOrder) input.ReadEnum();
14519 break;
14520 }
14521 case 16: {
14522 InitialPolarity = (global::Google.OrTools.Sat.SatParameters.Types.Polarity) input.ReadEnum();
14523 break;
14524 }
14525 case 32: {
14526 MinimizationAlgorithm = (global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm) input.ReadEnum();
14527 break;
14528 }
14529 case 88: {
14530 ClauseCleanupPeriod = input.ReadInt32();
14531 break;
14532 }
14533 case 104: {
14534 ClauseCleanupTarget = input.ReadInt32();
14535 break;
14536 }
14537 case 121: {
14538 VariableActivityDecay = input.ReadDouble();
14539 break;
14540 }
14541 case 129: {
14542 MaxVariableActivityValue = input.ReadDouble();
14543 break;
14544 }
14545 case 137: {
14546 ClauseActivityDecay = input.ReadDouble();
14547 break;
14548 }
14549 case 145: {
14550 MaxClauseActivityValue = input.ReadDouble();
14551 break;
14552 }
14553 case 177: {
14554 GlucoseMaxDecay = input.ReadDouble();
14555 break;
14556 }
14557 case 185: {
14558 GlucoseDecayIncrement = input.ReadDouble();
14559 break;
14560 }
14561 case 192: {
14562 GlucoseDecayIncrementPeriod = input.ReadInt32();
14563 break;
14564 }
14565 case 240: {
14566 RestartPeriod = input.ReadInt32();
14567 break;
14568 }
14569 case 248: {
14570 RandomSeed = input.ReadInt32();
14571 break;
14572 }
14573 case 257: {
14574 RandomBranchesRatio = input.ReadDouble();
14575 break;
14576 }
14577 case 272: {
14578 BinaryMinimizationAlgorithm = (global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm) input.ReadEnum();
14579 break;
14580 }
14581 case 280: {
14582 UseOptimizationHints = input.ReadBool();
14583 break;
14584 }
14585 case 289: {
14586 MaxTimeInSeconds = input.ReadDouble();
14587 break;
14588 }
14589 case 296: {
14590 MaxNumberOfConflicts = input.ReadInt64();
14591 break;
14592 }
14593 case 320: {
14594 MaxMemoryInMb = input.ReadInt64();
14595 break;
14596 }
14597 case 328: {
14598 LogSearchProgress = input.ReadBool();
14599 break;
14600 }
14601 case 344: {
14602 UsePbResolution = input.ReadBool();
14603 break;
14604 }
14605 case 352: {
14606 UsePhaseSaving = input.ReadBool();
14607 break;
14608 }
14609 case 361: {
14610 RandomPolarityRatio = input.ReadDouble();
14611 break;
14612 }
14613 case 368: {
14614 PbCleanupIncrement = input.ReadInt32();
14615 break;
14616 }
14617 case 377: {
14618 PbCleanupRatio = input.ReadDouble();
14619 break;
14620 }
14621 case 384: {
14622 MinimizeReductionDuringPbResolution = input.ReadBool();
14623 break;
14624 }
14625 case 392: {
14626 CountAssumptionLevelsInLbd = input.ReadBool();
14627 break;
14628 }
14629 case 400: {
14630 CoreMinimizationLevel = input.ReadInt32();
14631 break;
14632 }
14633 case 408: {
14634 MaxSatAssumptionOrder = (global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder) input.ReadEnum();
14635 break;
14636 }
14637 case 416: {
14638 MaxSatReverseAssumptionOrder = input.ReadBool();
14639 break;
14640 }
14641 case 424: {
14642 MaxSatStratification = (global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm) input.ReadEnum();
14643 break;
14644 }
14645 case 432: {
14646 PresolveBveThreshold = input.ReadInt32();
14647 break;
14648 }
14649 case 440: {
14650 PresolveBveClauseWeight = input.ReadInt32();
14651 break;
14652 }
14653 case 448: {
14654 SubsumptionDuringConflictAnalysis = input.ReadBool();
14655 break;
14656 }
14657 case 457: {
14658 PresolveProbingDeterministicTimeLimit = input.ReadDouble();
14659 break;
14660 }
14661 case 464: {
14662 ClauseCleanupProtection = (global::Google.OrTools.Sat.SatParameters.Types.ClauseProtection) input.ReadEnum();
14663 break;
14664 }
14665 case 472: {
14666 ClauseCleanupLbdBound = input.ReadInt32();
14667 break;
14668 }
14669 case 480: {
14670 ClauseCleanupOrdering = (global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering) input.ReadEnum();
14671 break;
14672 }
14673 case 490:
14674 case 488: {
14675 restartAlgorithms_.AddEntriesFrom(ref input, _repeated_restartAlgorithms_codec);
14676 break;
14677 }
14678 case 496: {
14679 RestartRunningWindowSize = input.ReadInt32();
14680 break;
14681 }
14682 case 505: {
14683 RestartDlAverageRatio = input.ReadDouble();
14684 break;
14685 }
14686 case 512: {
14687 UseBlockingRestart = input.ReadBool();
14688 break;
14689 }
14690 case 520: {
14691 BlockingRestartWindowSize = input.ReadInt32();
14692 break;
14693 }
14694 case 529: {
14695 BlockingRestartMultiplier = input.ReadDouble();
14696 break;
14697 }
14698 case 537: {
14699 MaxDeterministicTime = input.ReadDouble();
14700 break;
14701 }
14702 case 544: {
14703 NumConflictsBeforeStrategyChanges = input.ReadInt32();
14704 break;
14705 }
14706 case 553: {
14707 StrategyChangeIncreaseRatio = input.ReadDouble();
14708 break;
14709 }
14710 case 562: {
14711 DefaultRestartAlgorithms = input.ReadString();
14712 break;
14713 }
14714 case 569: {
14715 RestartLbdAverageRatio = input.ReadDouble();
14716 break;
14717 }
14718 case 576: {
14719 PresolveUseBva = input.ReadBool();
14720 break;
14721 }
14722 case 584: {
14723 PresolveBvaThreshold = input.ReadInt32();
14724 break;
14725 }
14726 case 592: {
14727 UsePrecedencesInDisjunctiveConstraint = input.ReadBool();
14728 break;
14729 }
14730 case 600: {
14731 UseErwaHeuristic = input.ReadBool();
14732 break;
14733 }
14734 case 609: {
14735 InitialVariablesActivity = input.ReadDouble();
14736 break;
14737 }
14738 case 616: {
14739 AlsoBumpVariablesInConflictReasons = input.ReadBool();
14740 break;
14741 }
14742 case 624: {
14743 UseOverloadCheckerInCumulative = input.ReadBool();
14744 break;
14745 }
14746 case 632: {
14747 UseTimetableEdgeFindingInCumulative = input.ReadBool();
14748 break;
14749 }
14750 case 640: {
14751 UseDisjunctiveConstraintInCumulative = input.ReadBool();
14752 break;
14753 }
14754 case 656: {
14755 SearchBranching = (global::Google.OrTools.Sat.SatParameters.Types.SearchBranching) input.ReadEnum();
14756 break;
14757 }
14758 case 664: {
14759 OptimizeWithCore = input.ReadBool();
14760 break;
14761 }
14762 case 672: {
14763 FindMultipleCores = input.ReadBool();
14764 break;
14765 }
14766 case 680: {
14767 OptimizeWithMaxHs = input.ReadBool();
14768 break;
14769 }
14770 case 688: {
14771 CpModelPresolve = input.ReadBool();
14772 break;
14773 }
14774 case 696: {
14775 EnumerateAllSolutions = input.ReadBool();
14776 break;
14777 }
14778 case 704: {
14779 PresolveBlockedClause = input.ReadBool();
14780 break;
14781 }
14782 case 712: {
14783 CoverOptimization = input.ReadBool();
14784 break;
14785 }
14786 case 720: {
14787 LinearizationLevel = input.ReadInt32();
14788 break;
14789 }
14790 case 728: {
14791 MaxNumCuts = input.ReadInt32();
14792 break;
14793 }
14794 case 736: {
14795 OnlyAddCutsAtLevelZero = input.ReadBool();
14796 break;
14797 }
14798 case 744: {
14799 CpModelUseSatPresolve = input.ReadBool();
14800 break;
14801 }
14802 case 752: {
14803 ExploitIntegerLpSolution = input.ReadBool();
14804 break;
14805 }
14806 case 760: {
14807 AutoDetectGreaterThanAtLeastOneOf = input.ReadBool();
14808 break;
14809 }
14810 case 784: {
14811 StopAfterFirstSolution = input.ReadBool();
14812 break;
14813 }
14814 case 792: {
14815 BinarySearchNumConflicts = input.ReadInt32();
14816 break;
14817 }
14818 case 800: {
14819 NumSearchWorkers = input.ReadInt32();
14820 break;
14821 }
14822 case 808: {
14823 UseLnsOnly = input.ReadBool();
14824 break;
14825 }
14826 case 824: {
14827 RandomizeSearch = input.ReadBool();
14828 break;
14829 }
14830 case 832: {
14831 SearchRandomVariablePoolSize = input.ReadInt64();
14832 break;
14833 }
14834 case 848: {
14835 InstantiateAllVariables = input.ReadBool();
14836 break;
14837 }
14838 case 856: {
14839 BooleanEncodingLevel = input.ReadInt32();
14840 break;
14841 }
14842 case 864: {
14843 UseOptionalVariables = input.ReadBool();
14844 break;
14845 }
14846 case 872: {
14847 UseExactLpReason = input.ReadBool();
14848 break;
14849 }
14850 case 880: {
14851 CpModelProbingLevel = input.ReadInt32();
14852 break;
14853 }
14854 case 896: {
14855 AddLpConstraintsLazily = input.ReadBool();
14856 break;
14857 }
14858 case 904: {
14859 ShareObjectiveBounds = input.ReadBool();
14860 break;
14861 }
14862 case 912: {
14863 ShareLevelZeroBounds = input.ReadBool();
14864 break;
14865 }
14866 case 921: {
14867 MinOrthogonalityForLpConstraints = input.ReadDouble();
14868 break;
14869 }
14870 case 928: {
14871 ExploitAllLpSolution = input.ReadBool();
14872 break;
14873 }
14874 case 936: {
14875 AddCgCuts = input.ReadBool();
14876 break;
14877 }
14878 case 952: {
14879 MaxIntegerRoundingScaling = input.ReadInt32();
14880 break;
14881 }
14882 case 960: {
14883 AddMirCuts = input.ReadBool();
14884 break;
14885 }
14886 case 968: {
14887 MaxConsecutiveInactiveCount = input.ReadInt32();
14888 break;
14889 }
14890 case 976: {
14891 NewConstraintsBatchSize = input.ReadInt32();
14892 break;
14893 }
14894 case 984: {
14895 PseudoCostReliabilityThreshold = input.ReadInt64();
14896 break;
14897 }
14898 case 993: {
14899 MipMaxBound = input.ReadDouble();
14900 break;
14901 }
14902 case 1001: {
14903 MipVarScaling = input.ReadDouble();
14904 break;
14905 }
14906 case 1009: {
14907 MipWantedPrecision = input.ReadDouble();
14908 break;
14909 }
14910 case 1016: {
14911 MipMaxActivityExponent = input.ReadInt32();
14912 break;
14913 }
14914 case 1025: {
14915 MipCheckPrecision = input.ReadDouble();
14916 break;
14917 }
14918 case 1032: {
14919 UseRinsLns = input.ReadBool();
14920 break;
14921 }
14922 case 1040: {
14923 ExploitBestSolution = input.ReadBool();
14924 break;
14925 }
14926 case 1048: {
14927 ExploitObjective = input.ReadBool();
14928 break;
14929 }
14930 case 1056: {
14931 FillTightenedDomainsInResponse = input.ReadBool();
14932 break;
14933 }
14934 case 1064: {
14935 UseCombinedNoOverlap = input.ReadBool();
14936 break;
14937 }
14938 case 1072: {
14939 InterleaveBatchSize = input.ReadInt32();
14940 break;
14941 }
14942 case 1080: {
14943 CatchSigintSignal = input.ReadBool();
14944 break;
14945 }
14946 case 1088: {
14947 InterleaveSearch = input.ReadBool();
14948 break;
14949 }
14950 case 1096: {
14951 DiversifyLnsParams = input.ReadBool();
14952 break;
14953 }
14954 case 1104: {
14955 MaxPresolveIterations = input.ReadInt32();
14956 break;
14957 }
14958 case 1152: {
14959 UseImpliedBounds = input.ReadBool();
14960 break;
14961 }
14962 case 1161: {
14963 MergeNoOverlapWorkLimit = input.ReadDouble();
14964 break;
14965 }
14966 case 1169: {
14967 MergeAtMostOneWorkLimit = input.ReadDouble();
14968 break;
14969 }
14970 case 1176: {
14971 PresolveSubstitutionLevel = input.ReadInt32();
14972 break;
14973 }
14974 case 1184: {
14975 MaxAllDiffCutSize = input.ReadInt32();
14976 break;
14977 }
14978 case 1192: {
14979 StopAfterPresolve = input.ReadBool();
14980 break;
14981 }
14982 case 1208: {
14983 DebugMaxNumPresolveOperations = input.ReadInt32();
14984 break;
14985 }
14986 case 1216: {
14987 AddLinMaxCuts = input.ReadBool();
14988 break;
14989 }
14990 case 1224: {
14991 HintConflictLimit = input.ReadInt32();
14992 break;
14993 }
14994 case 1232: {
14995 MaxCutRoundsAtLevelZero = input.ReadInt32();
14996 break;
14997 }
14998 case 1241: {
14999 CutMaxActiveCountValue = input.ReadDouble();
15000 break;
15001 }
15002 case 1249: {
15003 CutActiveCountDecay = input.ReadDouble();
15004 break;
15005 }
15006 case 1256: {
15007 CutCleanupTarget = input.ReadInt32();
15008 break;
15009 }
15010 case 1273: {
15011 AbsoluteGapLimit = input.ReadDouble();
15012 break;
15013 }
15014 case 1281: {
15015 RelativeGapLimit = input.ReadDouble();
15016 break;
15017 }
15018 case 1288: {
15019 ExploitRelaxationSolution = input.ReadBool();
15020 break;
15021 }
15022 case 1296: {
15023 DebugPostsolveWithFullSolver = input.ReadBool();
15024 break;
15025 }
15026 case 1304: {
15027 UseSatInprocessing = input.ReadBool();
15028 break;
15029 }
15030 case 1312: {
15031 UseFeasibilityPump = input.ReadBool();
15032 break;
15033 }
15034 case 1320: {
15035 FpRounding = (global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod) input.ReadEnum();
15036 break;
15037 }
15038 case 1328: {
15039 MipAutomaticallyScaleVariables = input.ReadBool();
15040 break;
15041 }
15042 case 1336: {
15043 RepairHint = input.ReadBool();
15044 break;
15045 }
15046 case 1344: {
15047 PolarityRephaseIncrement = input.ReadInt32();
15048 break;
15049 }
15050 case 1352: {
15051 AddZeroHalfCuts = input.ReadBool();
15052 break;
15053 }
15054 case 1360: {
15055 ExpandAlldiffConstraints = input.ReadBool();
15056 break;
15057 }
15058 case 1370: {
15059 Name = input.ReadString();
15060 break;
15061 }
15062 case 1376: {
15063 AddCliqueCuts = input.ReadBool();
15064 break;
15065 }
15066 case 1384: {
15067 KeepAllFeasibleSolutionsInPresolve = input.ReadBool();
15068 break;
15069 }
15070 case 1392: {
15071 PresolveExtractIntegerEnforcement = input.ReadBool();
15072 break;
15073 }
15074 case 1400: {
15075 PolishLpSolution = input.ReadBool();
15076 break;
15077 }
15078 case 1408: {
15079 UseProbingSearch = input.ReadBool();
15080 break;
15081 }
15082 case 1416: {
15083 ConvertIntervals = input.ReadBool();
15084 break;
15085 }
15086 case 1424: {
15087 PermuteVariableRandomly = input.ReadBool();
15088 break;
15089 }
15090 case 1432: {
15091 PermutePresolveConstraintOrder = input.ReadBool();
15092 break;
15093 }
15094 case 1440: {
15095 UseAbslRandom = input.ReadBool();
15096 break;
15097 }
15098 case 1448: {
15099 DisableConstraintExpansion = input.ReadBool();
15100 break;
15101 }
15102 case 1456: {
15103 ExpandReservoirConstraints = input.ReadBool();
15104 break;
15105 }
15106 case 1464: {
15107 SymmetryLevel = input.ReadInt32();
15108 break;
15109 }
15110 case 1482: {
15111 LogPrefix = input.ReadString();
15112 break;
15113 }
15114 case 1488: {
15115 LogToStdout = input.ReadBool();
15116 break;
15117 }
15118 case 1496: {
15119 LogToResponse = input.ReadBool();
15120 break;
15121 }
15122 case 1504: {
15123 OptimizeWithLbTreeSearch = input.ReadBool();
15124 break;
15125 }
15126 case 1512: {
15127 LogSubsolverStatistics = input.ReadBool();
15128 break;
15129 }
15130 case 1521: {
15131 ClauseCleanupRatio = input.ReadDouble();
15132 break;
15133 }
15134 case 1528: {
15135 MaxDomainSizeWhenEncodingEqNeqConstraints = input.ReadInt32();
15136 break;
15137 }
15138 case 1536: {
15139 FixVariablesToTheirHintedValue = input.ReadBool();
15140 break;
15141 }
15142 case 1544: {
15143 SolutionPoolSize = input.ReadInt32();
15144 break;
15145 }
15146 case 1552: {
15147 FillAdditionalSolutionsInResponse = input.ReadBool();
15148 break;
15149 }
15150 case 1560: {
15151 DebugCrashOnBadHint = input.ReadBool();
15152 break;
15153 }
15154 case 1568: {
15155 CutLevel = input.ReadInt32();
15156 break;
15157 }
15158 case 1576: {
15159 AddObjectiveCut = input.ReadBool();
15160 break;
15161 }
15162 case 1584: {
15163 MipComputeTrueObjectiveBound = input.ReadBool();
15164 break;
15165 }
15166 case 1593: {
15167 MipMaxValidMagnitude = input.ReadDouble();
15168 break;
15169 }
15170 case 1600: {
15171 UseTimetablingInNoOverlap2D = input.ReadBool();
15172 break;
15173 }
15174 case 1608: {
15175 PresolveInclusionWorkLimit = input.ReadInt64();
15176 break;
15177 }
15178 case 1616: {
15179 IgnoreNames = input.ReadBool();
15180 break;
15181 }
15182 case 1624: {
15183 ShareBinaryClauses = input.ReadBool();
15184 break;
15185 }
15186 case 1632: {
15187 UseShavingInProbingSearch = input.ReadBool();
15188 break;
15189 }
15190 case 1641: {
15191 ShavingSearchDeterministicTime = input.ReadDouble();
15192 break;
15193 }
15194 case 1648: {
15195 NumWorkers = input.ReadInt32();
15196 break;
15197 }
15198 case 1658: {
15199 subsolvers_.AddEntriesFrom(ref input, _repeated_subsolvers_codec);
15200 break;
15201 }
15202 case 1674: {
15203 ignoreSubsolvers_.AddEntriesFrom(ref input, _repeated_ignoreSubsolvers_codec);
15204 break;
15205 }
15206 case 1682: {
15207 subsolverParams_.AddEntriesFrom(ref input, _repeated_subsolverParams_codec);
15208 break;
15209 }
15210 case 1704: {
15211 UseEnergeticReasoningInNoOverlap2D = input.ReadBool();
15212 break;
15213 }
15214 case 1712: {
15215 UseDualSchedulingHeuristics = input.ReadBool();
15216 break;
15217 }
15218 case 1720: {
15219 UseHardPrecedencesInCumulative = input.ReadBool();
15220 break;
15221 }
15222 case 1728: {
15223 DetectTableWithCost = input.ReadBool();
15224 break;
15225 }
15226 case 1736: {
15227 TableCompressionLevel = input.ReadInt32();
15228 break;
15229 }
15230 case 1754: {
15231 extraSubsolvers_.AddEntriesFrom(ref input, _repeated_extraSubsolvers_codec);
15232 break;
15233 }
15234 case 1760: {
15235 ExploitAllPrecedences = input.ReadBool();
15236 break;
15237 }
15238 case 1769: {
15239 PropagationLoopDetectionFactor = input.ReadDouble();
15240 break;
15241 }
15242 case 1776: {
15243 OnlySolveIp = input.ReadBool();
15244 break;
15245 }
15246 case 1784: {
15247 EncodeComplexLinearConstraintWithInteger = input.ReadBool();
15248 break;
15249 }
15250 case 1792: {
15251 NewLinearPropagation = input.ReadBool();
15252 break;
15253 }
15254 case 1800: {
15255 MipScaleLargeDomain = input.ReadBool();
15256 break;
15257 }
15258 case 1809: {
15259 ProbingDeterministicTimeLimit = input.ReadDouble();
15260 break;
15261 }
15262 case 1816: {
15263 RootLpIterations = input.ReadInt32();
15264 break;
15265 }
15266 case 1824: {
15267 UseObjectiveLbSearch = input.ReadBool();
15268 break;
15269 }
15270 case 1832: {
15271 MaxSizeToCreatePrecedenceLiteralsInDisjunctive = input.ReadInt32();
15272 break;
15273 }
15274 case 1840: {
15275 UseStrongPropagationInDisjunctive = input.ReadBool();
15276 break;
15277 }
15278 case 1857: {
15279 MipDropTolerance = input.ReadDouble();
15280 break;
15281 }
15282 case 1864: {
15283 InferAllDiffs = input.ReadBool();
15284 break;
15285 }
15286 case 1872: {
15287 FindBigLinearOverlap = input.ReadBool();
15288 break;
15289 }
15290 case 1880: {
15291 SharedTreeNumWorkers = input.ReadInt32();
15292 break;
15293 }
15294 case 1888: {
15295 UseSharedTreeSearch = input.ReadBool();
15296 break;
15297 }
15298 case 1904: {
15299 SharedTreeMaxNodesPerWorker = input.ReadInt32();
15300 break;
15301 }
15302 case 1912: {
15303 SharedTreeSplitStrategy = (global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy) input.ReadEnum();
15304 break;
15305 }
15306 case 1920: {
15307 UseLsOnly = input.ReadBool();
15308 break;
15309 }
15310 case 1937: {
15311 FeasibilityJumpDecay = input.ReadDouble();
15312 break;
15313 }
15314 case 1952: {
15315 NumViolationLs = input.ReadInt32();
15316 break;
15317 }
15318 case 1977: {
15319 FeasibilityJumpVarRandomizationProbability = input.ReadDouble();
15320 break;
15321 }
15322 case 1985: {
15323 FeasibilityJumpVarPerburbationRangeRatio = input.ReadDouble();
15324 break;
15325 }
15326 case 1992: {
15327 ViolationLsPerturbationPeriod = input.ReadInt32();
15328 break;
15329 }
15330 case 2000: {
15331 FeasibilityJumpEnableRestarts = input.ReadBool();
15332 break;
15333 }
15334 case 2016: {
15335 StopAfterRootPropagation = input.ReadBool();
15336 break;
15337 }
15338 case 2024: {
15339 UseObjectiveShavingSearch = input.ReadBool();
15340 break;
15341 }
15342 case 2040: {
15343 UseLbRelaxLns = input.ReadBool();
15344 break;
15345 }
15346 case 2048: {
15347 LinearSplitSize = input.ReadInt32();
15348 break;
15349 }
15350 case 2056: {
15351 FeasibilityJumpLinearizationLevel = input.ReadInt32();
15352 break;
15353 }
15354 case 2064: {
15355 FeasibilityJumpRestartFactor = input.ReadInt32();
15356 break;
15357 }
15358 case 2073: {
15359 ViolationLsCompoundMoveProbability = input.ReadDouble();
15360 break;
15361 }
15362 case 2080: {
15363 MaxNumIntervalsForTimetableEdgeFinding = input.ReadInt32();
15364 break;
15365 }
15366 case 2088: {
15367 MipPresolveLevel = input.ReadInt32();
15368 break;
15369 }
15370 case 2096: {
15371 PushAllTasksTowardStart = input.ReadBool();
15372 break;
15373 }
15374 case 2104: {
15375 UseDynamicPrecedenceInDisjunctive = input.ReadBool();
15376 break;
15377 }
15378 case 2112: {
15379 FeasibilityJumpMaxExpandedConstraintSize = input.ReadInt32();
15380 break;
15381 }
15382 case 2120: {
15383 UseFeasibilityJump = input.ReadBool();
15384 break;
15385 }
15386 case 2129: {
15387 LpPrimalTolerance = input.ReadDouble();
15388 break;
15389 }
15390 case 2137: {
15391 LpDualTolerance = input.ReadDouble();
15392 break;
15393 }
15394 case 2144: {
15395 UseDynamicPrecedenceInCumulative = input.ReadBool();
15396 break;
15397 }
15398 case 2152: {
15399 UseExtendedProbing = input.ReadBool();
15400 break;
15401 }
15402 case 2160: {
15403 AtMostOneMaxExpansionSize = input.ReadInt32();
15404 break;
15405 }
15406 case 2168: {
15407 UseAreaEnergeticReasoningInNoOverlap2D = input.ReadBool();
15408 break;
15409 }
15410 case 2176: {
15411 ProbingNumCombinationsLimit = input.ReadInt32();
15412 break;
15413 }
15414 case 2185: {
15415 InprocessingDtimeRatio = input.ReadDouble();
15416 break;
15417 }
15418 case 2193: {
15419 InprocessingProbingDtime = input.ReadDouble();
15420 break;
15421 }
15422 case 2201: {
15423 InprocessingMinimizationDtime = input.ReadDouble();
15424 break;
15425 }
15426 case 2208: {
15427 MaxPairsPairwiseReasoningInNoOverlap2D = input.ReadInt32();
15428 break;
15429 }
15430 case 2216: {
15431 DetectLinearizedProduct = input.ReadBool();
15432 break;
15433 }
15434 case 2224: {
15435 MipTreatHighMagnitudeBoundsAsInfinity = input.ReadBool();
15436 break;
15437 }
15438 case 2232: {
15439 AddRltCuts = input.ReadBool();
15440 break;
15441 }
15442 case 2240: {
15443 MaxLinMaxSizeForExpansion = input.ReadInt32();
15444 break;
15445 }
15446 case 2249: {
15447 SharedTreeOpenLeavesPerWorker = input.ReadDouble();
15448 break;
15449 }
15450 case 2256: {
15451 SharedTreeWorkerMinRestartsPerSubtree = input.ReadInt32();
15452 break;
15453 }
15454 case 2264: {
15455 UseLns = input.ReadBool();
15456 break;
15457 }
15458 case 2272: {
15459 SaveLpBasisInLbTreeSearch = input.ReadBool();
15460 break;
15461 }
15462 case 2280: {
15463 ShareGlueClauses = input.ReadBool();
15464 break;
15465 }
15466 case 2288: {
15467 UseConservativeScaleOverloadChecker = input.ReadBool();
15468 break;
15469 }
15470 case 2296: {
15471 EncodeCumulativeAsReservoir = input.ReadBool();
15472 break;
15473 }
15474 case 2304: {
15475 ExpandReservoirUsingCircuit = input.ReadBool();
15476 break;
15477 }
15478 case 2312: {
15479 UseVariablesShavingSearch = input.ReadBool();
15480 break;
15481 }
15482 case 2320: {
15483 ShavingSearchThreshold = input.ReadInt64();
15484 break;
15485 }
15486 case 2328: {
15487 MaxNumDeterministicBatches = input.ReadInt32();
15488 break;
15489 }
15490 case 2337: {
15491 FeasibilityJumpBatchDtime = input.ReadDouble();
15492 break;
15493 }
15494 case 2346: {
15495 filterSubsolvers_.AddEntriesFrom(ref input, _repeated_filterSubsolvers_codec);
15496 break;
15497 }
15498 case 2352: {
15499 NumFullSubsolvers = input.ReadInt32();
15500 break;
15501 }
15502 case 2360: {
15503 SharedTreeWorkerEnableTrailSharing = input.ReadBool();
15504 break;
15505 }
15506 case 2368: {
15507 LbRelaxNumWorkersThreshold = input.ReadInt32();
15508 break;
15509 }
15510 case 2376: {
15511 InprocessingMinimizationUseConflictAnalysis = input.ReadBool();
15512 break;
15513 }
15514 case 2384: {
15515 InprocessingMinimizationUseAllOrderings = input.ReadBool();
15516 break;
15517 }
15518 case 2392: {
15519 UseTryEdgeReasoningInNoOverlap2D = input.ReadBool();
15520 break;
15521 }
15522 case 2400: {
15523 MinimizeSharedClauses = input.ReadBool();
15524 break;
15525 }
15526 case 2408: {
15527 UseSymmetryInLp = input.ReadBool();
15528 break;
15529 }
15530 case 2417: {
15531 SymmetryDetectionDeterministicTimeLimit = input.ReadDouble();
15532 break;
15533 }
15534 case 2424: {
15535 KeepSymmetryInPresolve = input.ReadBool();
15536 break;
15537 }
15538 case 2432: {
15539 SharedTreeWorkerEnablePhaseSharing = input.ReadBool();
15540 break;
15541 }
15542 case 2440: {
15543 SharedTreeBalanceTolerance = input.ReadInt32();
15544 break;
15545 }
15546 case 2448: {
15547 DebugCrashIfPresolveBreaksHint = input.ReadBool();
15548 break;
15549 }
15550 case 2457: {
15551 LnsInitialDifficulty = input.ReadDouble();
15552 break;
15553 }
15554 case 2465: {
15555 LnsInitialDeterministicLimit = input.ReadDouble();
15556 break;
15557 }
15558 case 2472: {
15559 PolarityExploitLsHints = input.ReadBool();
15560 break;
15561 }
15562 case 2480: {
15563 RemoveFixedVariablesEarly = input.ReadBool();
15564 break;
15565 }
15566 case 2488: {
15567 UseAllDifferentForCircuit = input.ReadBool();
15568 break;
15569 }
15570 case 2496: {
15571 RoutingCutSubsetSizeForBinaryRelationBound = input.ReadInt32();
15572 break;
15573 }
15574 case 2504: {
15575 RoutingCutSubsetSizeForTightBinaryRelationBound = input.ReadInt32();
15576 break;
15577 }
15578 case 2513: {
15579 RoutingCutDpEffort = input.ReadDouble();
15580 break;
15581 }
15582 case 2520: {
15583 MaximumRegionsToSplitInDisconnectedNoOverlap2D = input.ReadInt32();
15584 break;
15585 }
15586 }
15587 }
15588 }
15589 #endif
15590
15591 #region Nested types
15593 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15594 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
15595 public static partial class Types {
15600 public enum VariableOrder {
15604 [pbr::OriginalName("IN_ORDER")] InOrder = 0,
15605 [pbr::OriginalName("IN_REVERSE_ORDER")] InReverseOrder = 1,
15606 [pbr::OriginalName("IN_RANDOM_ORDER")] InRandomOrder = 2,
15607 }
15608
15617 public enum Polarity {
15618 [pbr::OriginalName("POLARITY_TRUE")] True = 0,
15619 [pbr::OriginalName("POLARITY_FALSE")] False = 1,
15620 [pbr::OriginalName("POLARITY_RANDOM")] Random = 2,
15621 }
15622
15626 public enum ConflictMinimizationAlgorithm {
15627 [pbr::OriginalName("NONE")] None = 0,
15628 [pbr::OriginalName("SIMPLE")] Simple = 1,
15629 [pbr::OriginalName("RECURSIVE")] Recursive = 2,
15630 [pbr::OriginalName("EXPERIMENTAL")] Experimental = 3,
15631 }
15632
15636 public enum BinaryMinizationAlgorithm {
15637 [pbr::OriginalName("NO_BINARY_MINIMIZATION")] NoBinaryMinimization = 0,
15638 [pbr::OriginalName("BINARY_MINIMIZATION_FIRST")] BinaryMinimizationFirst = 1,
15639 [pbr::OriginalName("BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION")] BinaryMinimizationFirstWithTransitiveReduction = 4,
15640 [pbr::OriginalName("BINARY_MINIMIZATION_WITH_REACHABILITY")] BinaryMinimizationWithReachability = 2,
15641 [pbr::OriginalName("EXPERIMENTAL_BINARY_MINIMIZATION")] ExperimentalBinaryMinimization = 3,
15642 }
15643
15649 public enum ClauseProtection {
15653 [pbr::OriginalName("PROTECTION_NONE")] ProtectionNone = 0,
15654 /// <summary>
15655 /// Protect all clauses whose activity is bumped.
15656 /// </summary>
15657 [pbr::OriginalName("PROTECTION_ALWAYS")] ProtectionAlways = 1,
15661 [pbr::OriginalName("PROTECTION_LBD")] ProtectionLbd = 2,
15662 }
15663
15668 public enum ClauseOrdering {
15672 [pbr::OriginalName("CLAUSE_ACTIVITY")] ClauseActivity = 0,
15676 [pbr::OriginalName("CLAUSE_LBD")] ClauseLbd = 1,
15677 }
15678
15681 ///
15682 /// A reference for the more advanced ones is:
15683 /// Gilles Audemard, Laurent Simon, "Refining Restarts Strategies for SAT
15684 /// and UNSAT", Principles and Practice of Constraint Programming Lecture
15685 /// Notes in Computer Science 2012, pp 118-126
15686 /// </summary>
15687 public enum RestartAlgorithm {
15688 [pbr::OriginalName("NO_RESTART")] NoRestart = 0,
15691 /// </summary>
15692 [pbr::OriginalName("LUBY_RESTART")] LubyRestart = 1,
15696 [pbr::OriginalName("DL_MOVING_AVERAGE_RESTART")] DlMovingAverageRestart = 2,
15698
15700 [pbr::OriginalName("LBD_MOVING_AVERAGE_RESTART")] LbdMovingAverageRestart = 3,
15704 [pbr::OriginalName("FIXED_RESTART")] FixedRestart = 4,
15705 }
15706
15710 public enum MaxSatAssumptionOrder {
15711 [pbr::OriginalName("DEFAULT_ASSUMPTION_ORDER")] DefaultAssumptionOrder = 0,
15712 [pbr::OriginalName("ORDER_ASSUMPTION_BY_DEPTH")] OrderAssumptionByDepth = 1,
15713 [pbr::OriginalName("ORDER_ASSUMPTION_BY_WEIGHT")] OrderAssumptionByWeight = 2,
15714 }
15715
15718
15719 public enum MaxSatStratificationAlgorithm {
15723 [pbr::OriginalName("STRATIFICATION_NONE")] StratificationNone = 0,
15728 [pbr::OriginalName("STRATIFICATION_DESCENT")] StratificationDescent = 1,
15733
15735 [pbr::OriginalName("STRATIFICATION_ASCENT")] StratificationAscent = 2,
15736 }
15737
15741 public enum SearchBranching {
15743 /// Try to fix all literals using the underlying SAT solver's heuristics,
15744 /// then generate and fix literals until integer variables are fixed. New
15745 /// literals on integer variables are generated using the fixed search
15746 /// specified by the user or our default one.
15747 /// </summary>
15748 [pbr::OriginalName("AUTOMATIC_SEARCH")] AutomaticSearch = 0,
15754 [pbr::OriginalName("FIXED_SEARCH")] FixedSearch = 1,
15758 [pbr::OriginalName("PORTFOLIO_SEARCH")] PortfolioSearch = 2,
15762
15763 [pbr::OriginalName("LP_SEARCH")] LpSearch = 3,
15766 /// are computed using the historical change in objective bounds when some
15767 /// decision are taken. Note that this works whether we use an LP or not.
15768 /// </summary>
15769 [pbr::OriginalName("PSEUDO_COST_SEARCH")] PseudoCostSearch = 4,
15771
15775 [pbr::OriginalName("PORTFOLIO_WITH_QUICK_RESTART_SEARCH")] PortfolioWithQuickRestartSearch = 5,
15781 [pbr::OriginalName("HINT_SEARCH")] HintSearch = 6,
15788 [pbr::OriginalName("PARTIAL_FIXED_SEARCH")] PartialFixedSearch = 7,
15792 [pbr::OriginalName("RANDOMIZED_SEARCH")] RandomizedSearch = 8,
15793 }
15794
15795 public enum SharedTreeSplitStrategy {
15797 /// Uses the default strategy, currently equivalent to
15798 /// SPLIT_STRATEGY_DISCREPANCY.
15799 /// </summary>
15800 [pbr::OriginalName("SPLIT_STRATEGY_AUTO")] SplitStrategyAuto = 0,
15809 [pbr::OriginalName("SPLIT_STRATEGY_DISCREPANCY")] SplitStrategyDiscrepancy = 1,
15814 [pbr::OriginalName("SPLIT_STRATEGY_OBJECTIVE_LB")] SplitStrategyObjectiveLb = 2,
15818 [pbr::OriginalName("SPLIT_STRATEGY_BALANCED_TREE")] SplitStrategyBalancedTree = 3,
15822 [pbr::OriginalName("SPLIT_STRATEGY_FIRST_PROPOSAL")] SplitStrategyFirstProposal = 4,
15823 }
15824
15828 public enum FPRoundingMethod {
15832 [pbr::OriginalName("NEAREST_INTEGER")] NearestInteger = 0,
15838 [pbr::OriginalName("LOCK_BASED")] LockBased = 1,
15843 [pbr::OriginalName("ACTIVE_LOCK_BASED")] ActiveLockBased = 3,
15850
15851 /// </summary>
15852 [pbr::OriginalName("PROPAGATION_ASSISTED")] PropagationAssisted = 2,
15853 }
15854
15855 }
15856 #endregion
15857
15858 }
15859
15860 #endregion
15861
15862}
15863
15864#endregion Designer generated code
global::Google.Protobuf pb
Definition SetCover.pb.cs:8
global::Google.Protobuf.Reflection pbr
global::System.Collections.Generic scg
global::Google.Protobuf.Collections pbc
Definition SetCover.pb.cs:9
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.
@ ClauseActivity
Order clause by decreasing activity, then by increasing LBD.
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.
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.
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.
void ClearMipMaxActivityExponent()
Clears the value of the "mip_max_activity_exponent" 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....
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.
bool HasAddZeroHalfCuts
Gets whether the "add_zero_half_cuts" field is set.
void ClearMipMaxBound()
Clears the value of the "mip_max_bound" field.
int TableCompressionLevel
How much we try to "compress" a table constraint. Compressing more leads to less Booleans and faster ...
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.
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 ClearOptimizeWithLbTreeSearch()
Clears the value of the "optimize_with_lb_tree_search" 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....
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
void ClearOnlySolveIp()
Clears the value of the "only_solve_ip" field.
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.
const int BinarySearchNumConflictsFieldNumber
Field number for the "binary_search_num_conflicts" field.
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.
const int StopAfterFirstSolutionFieldNumber
Field number for the "stop_after_first_solution" field.
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 FillTightenedDomainsInResponseFieldNumber
Field number for the "fill_tightened_domains_in_response" 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.
const int CutLevelFieldNumber
Field number for the "cut_level" field.
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...
void ClearUseRinsLns()
Clears the value of the "use_rins_lns" field.
void ClearSharedTreeBalanceTolerance()
Clears the value of the "shared_tree_balance_tolerance" field.
bool HasLogPrefix
Gets whether the "log_prefix" field is set.
void ClearSymmetryDetectionDeterministicTimeLimit()
Clears the value of the "symmetry_detection_deterministic_time_limit" 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.
void ClearMipScaleLargeDomain()
Clears the value of the "mip_scale_large_domain" field.
bool HasPropagationLoopDetectionFactor
Gets whether the "propagation_loop_detection_factor" field is set.
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.
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 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.
bool HasMipPresolveLevel
Gets whether the "mip_presolve_level" field is set.
void ClearUseTimetablingInNoOverlap2D()
Clears the value of the "use_timetabling_in_no_overlap_2d" field.
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,...
int MaxNumDeterministicBatches
Stops after that number of batches has been scheduled. This only make sense when interleave_search is...
bool HasUseAllDifferentForCircuit
Gets whether the "use_all_different_for_circuit" field is set.
const int UseTimetablingInNoOverlap2DFieldNumber
Field number for the "use_timetabling_in_no_overlap_2d" 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 HasGlucoseDecayIncrementPeriod
Gets whether the "glucose_decay_increment_period" field is set.
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.
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...
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 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 ClearAddCgCuts()
Clears the value of the "add_cg_cuts" field.
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 ClearNewConstraintsBatchSize()
Clears the value of the "new_constraints_batch_size" 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.
const int SharedTreeWorkerMinRestartsPerSubtreeFieldNumber
Field number for the "shared_tree_worker_min_restarts_per_subtree" field.
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.
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 ClearAddMirCuts()
Clears the value of the "add_mir_cuts" 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.
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...
void ClearAddZeroHalfCuts()
Clears the value of the "add_zero_half_cuts" 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.
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...
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...
void ClearMipVarScaling()
Clears the value of the "mip_var_scaling" field.
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.
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.
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 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.
const int SaveLpBasisInLbTreeSearchFieldNumber
Field number for the "save_lp_basis_in_lb_tree_search" field.
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.
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.
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.
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 ClearOnlyAddCutsAtLevelZero()
Clears the value of the "only_add_cuts_at_level_zero" field.
void ClearPresolveUseBva()
Clears the value of the "presolve_use_bva" field.
void ClearMaxConsecutiveInactiveCount()
Clears the value of the "max_consecutive_inactive_count" 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 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.
bool HasFillTightenedDomainsInResponse
Gets whether the "fill_tightened_domains_in_response" field is set.
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.
void ClearRepairHint()
Clears the value of the "repair_hint" field.
int MaxSizeToCreatePrecedenceLiteralsInDisjunctive
Create one literal for each disjunction of two pairs of tasks. This slows down the solve time,...
void ClearShareBinaryClauses()
Clears the value of the "share_binary_clauses" field.
bool HasUseSharedTreeSearch
Gets whether the "use_shared_tree_search" field is set.
const int UseEnergeticReasoningInNoOverlap2DFieldNumber
Field number for the "use_energetic_reasoning_in_no_overlap_2d" 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...
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 ClearPresolveBvaThreshold()
Clears the value of the "presolve_bva_threshold" 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 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....
const int FeasibilityJumpRestartFactorFieldNumber
Field number for the "feasibility_jump_restart_factor" field.
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 ClearExploitRelaxationSolution()
Clears the value of the "exploit_relaxation_solution" field.
const int UseFeasibilityJumpFieldNumber
Field number for the "use_feasibility_jump" field.
const int MipComputeTrueObjectiveBoundFieldNumber
Field number for the "mip_compute_true_objective_bound" 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 HasLogSubsolverStatistics
Gets whether the "log_subsolver_statistics" field is set.
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 HasUseShavingInProbingSearch
Gets whether the "use_shaving_in_probing_search" field is set.
bool HasRootLpIterations
Gets whether the "root_lp_iterations" field is set.
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...
void ClearShavingSearchThreshold()
Clears the value of the "shaving_search_threshold" field.
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.
bool HasFeasibilityJumpLinearizationLevel
Gets whether the "feasibility_jump_linearization_level" field is set.
bool FixVariablesToTheirHintedValue
If true, variables appearing in the solution hints will be fixed to their hinted value.
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.
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.
void ClearAddRltCuts()
Clears the value of the "add_rlt_cuts" field.
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,...
const int UseSharedTreeSearchFieldNumber
Field number for the "use_shared_tree_search" field.
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.
const int FeasibilityJumpVarRandomizationProbabilityFieldNumber
Field number for the "feasibility_jump_var_randomization_probability" field.
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.
void ClearExploitObjective()
Clears the value of the "exploit_objective" field.
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 CoverOptimizationFieldNumber
Field number for the "cover_optimization" field.
void ClearMaxTimeInSeconds()
Clears the value of the "max_time_in_seconds" field.
const int KeepAllFeasibleSolutionsInPresolveFieldNumber
Field number for the "keep_all_feasible_solutions_in_presolve" 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.
double ViolationLsCompoundMoveProbability
Probability of using compound move search each restart.
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 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 UseShavingInProbingSearch
Add a shaving phase (where the solver tries to prove that the lower or upper bound of a variable are ...
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.
void ClearDetectLinearizedProduct()
Clears the value of the "detect_linearized_product" field.
const int EnumerateAllSolutionsFieldNumber
Field number for the "enumerate_all_solutions" 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 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 = #Valu...
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.
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 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.
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.
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
const int SharedTreeMaxNodesPerWorkerFieldNumber
Field number for the "shared_tree_max_nodes_per_worker" field.
double AbsoluteGapLimit
Stop the search when the gap between the best feasible objective (O) and our best objective bound (B)...
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...
void ClearRoutingCutDpEffort()
Clears the value of the "routing_cut_dp_effort" field.
bool HasAddLinMaxCuts
Gets whether the "add_lin_max_cuts" field is set.
const int ClauseCleanupTargetFieldNumber
Field number for the "clause_cleanup_target" field.
int SharedTreeMaxNodesPerWorker
In order to limit total shared memory and communication overhead, limit the total number of nodes tha...
bool HasUseVariablesShavingSearch
Gets whether the "use_variables_shaving_search" field is set.
bool HasMipMaxActivityExponent
Gets whether the "mip_max_activity_exponent" field is set.
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....
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.
const int AutoDetectGreaterThanAtLeastOneOfFieldNumber
Field number for the "auto_detect_greater_than_at_least_one_of" 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,...
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.
void ClearMaximumRegionsToSplitInDisconnectedNoOverlap2D()
Clears the value of the "maximum_regions_to_split_in_disconnected_no_overlap_2d" field.
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 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.
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.
global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod FpRounding
const int PbCleanupRatioFieldNumber
Field number for the "pb_cleanup_ratio" 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...
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.
const int UseDualSchedulingHeuristicsFieldNumber
Field number for the "use_dual_scheduling_heuristics" field.
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...
const int UseShavingInProbingSearchFieldNumber
Field number for the "use_shaving_in_probing_search" field.
void ClearExploitIntegerLpSolution()
Clears the value of the "exploit_integer_lp_solution" field.
const int LpDualToleranceFieldNumber
Field number for the "lp_dual_tolerance" 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 ViolationLsCompoundMoveProbabilityFieldNumber
Field number for the "violation_ls_compound_move_probability" field.
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.
const int KeepSymmetryInPresolveFieldNumber
Field number for the "keep_symmetry_in_presolve" 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 ClearOptimizeWithCore()
Clears the value of the "optimize_with_core" field.
void ClearUseErwaHeuristic()
Clears the value of the "use_erwa_heuristic" field.
const int CutCleanupTargetFieldNumber
Field number for the "cut_cleanup_target" field.
void ClearExploitAllLpSolution()
Clears the value of the "exploit_all_lp_solution" 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 UseSymmetryInLpFieldNumber
Field number for the "use_symmetry_in_lp" field.
bool UseVariablesShavingSearch
This search takes all Boolean or integer variables, and maximize or minimize them in order to reduce ...
bool HasPseudoCostReliabilityThreshold
Gets whether the "pseudo_cost_reliability_threshold" field is set.
void ClearPresolveBlockedClause()
Clears the value of the "presolve_blocked_clause" 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.
void ClearOptimizeWithMaxHs()
Clears the value of the "optimize_with_max_hs" field.
bool HasBooleanEncodingLevel
Gets whether the "boolean_encoding_level" field is set.
void ClearCutMaxActiveCountValue()
Clears the value of the "cut_max_active_count_value" field.
@ None
There is no corresponding point.