Java Reference

Java Reference

SatParameters.java
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/sat/sat_parameters.proto
3 
4 package com.google.ortools.sat;
5 
15 public final class SatParameters extends
16  com.google.protobuf.GeneratedMessageV3 implements
17  // @@protoc_insertion_point(message_implements:operations_research.sat.SatParameters)
19 private static final long serialVersionUID = 0L;
20  // Use SatParameters.newBuilder() to construct.
21  private SatParameters(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
22  super(builder);
23  }
24  private SatParameters() {
25  name_ = "";
26  preferredVariableOrder_ = 0;
27  initialPolarity_ = 1;
28  usePhaseSaving_ = true;
29  polarityRephaseIncrement_ = 1000;
30  minimizationAlgorithm_ = 2;
31  binaryMinimizationAlgorithm_ = 1;
32  subsumptionDuringConflictAnalysis_ = true;
33  clauseCleanupPeriod_ = 10000;
34  clauseCleanupTarget_ = 10000;
35  clauseCleanupProtection_ = 0;
36  clauseCleanupLbdBound_ = 5;
37  clauseCleanupOrdering_ = 0;
38  pbCleanupIncrement_ = 200;
39  pbCleanupRatio_ = 0.5D;
40  minimizeWithPropagationRestartPeriod_ = 10;
41  minimizeWithPropagationNumDecisions_ = 1000;
42  variableActivityDecay_ = 0.8D;
43  maxVariableActivityValue_ = 1e+100D;
44  glucoseMaxDecay_ = 0.95D;
45  glucoseDecayIncrement_ = 0.01D;
46  glucoseDecayIncrementPeriod_ = 5000;
47  clauseActivityDecay_ = 0.999D;
48  maxClauseActivityValue_ = 1e+20D;
49  restartAlgorithms_ = java.util.Collections.emptyList();
50  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
51  restartPeriod_ = 50;
52  restartRunningWindowSize_ = 50;
53  restartDlAverageRatio_ = 1D;
54  restartLbdAverageRatio_ = 1D;
55  blockingRestartWindowSize_ = 5000;
56  blockingRestartMultiplier_ = 1.4D;
57  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
58  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
59  maxNumberOfConflicts_ = 9223372036854775807L;
60  maxMemoryInMb_ = 10000L;
61  treatBinaryClausesSeparately_ = true;
62  randomSeed_ = 1;
63  countAssumptionLevelsInLbd_ = true;
64  presolveBveThreshold_ = 500;
65  presolveBveClauseWeight_ = 3;
66  presolveProbingDeterministicTimeLimit_ = 30D;
67  presolveBlockedClause_ = true;
68  presolveUseBva_ = true;
69  presolveBvaThreshold_ = 1;
70  maxPresolveIterations_ = 3;
71  cpModelPresolve_ = true;
72  cpModelProbingLevel_ = 2;
73  cpModelUseSatPresolve_ = true;
74  expandElementConstraints_ = true;
75  expandAutomatonConstraints_ = true;
76  expandTableConstraints_ = true;
77  expandReservoirConstraints_ = true;
78  mergeNoOverlapWorkLimit_ = 1000000000000D;
79  mergeAtMostOneWorkLimit_ = 100000000D;
80  presolveSubstitutionLevel_ = 1;
81  useOptimizationHints_ = true;
82  minimizeCore_ = true;
83  findMultipleCores_ = true;
84  coverOptimization_ = true;
85  maxSatAssumptionOrder_ = 0;
86  maxSatStratification_ = 1;
87  usePrecedencesInDisjunctiveConstraint_ = true;
88  useDisjunctiveConstraintInCumulativeConstraint_ = true;
89  linearizationLevel_ = 1;
90  booleanEncodingLevel_ = 1;
91  maxNumCuts_ = 10000;
92  addCgCuts_ = true;
93  addMirCuts_ = true;
94  addZeroHalfCuts_ = true;
95  addCliqueCuts_ = true;
96  maxAllDiffCutSize_ = 7;
97  addLinMaxCuts_ = true;
98  maxIntegerRoundingScaling_ = 600;
99  addLpConstraintsLazily_ = true;
100  minOrthogonalityForLpConstraints_ = 0.05D;
101  maxCutRoundsAtLevelZero_ = 1;
102  maxConsecutiveInactiveCount_ = 100;
103  cutMaxActiveCountValue_ = 10000000000D;
104  cutActiveCountDecay_ = 0.8D;
105  cutCleanupTarget_ = 1000;
106  newConstraintsBatchSize_ = 50;
107  searchBranching_ = 0;
108  hintConflictLimit_ = 10;
109  exploitIntegerLpSolution_ = true;
110  exploitAllLpSolution_ = true;
111  exploitObjective_ = true;
112  pseudoCostReliabilityThreshold_ = 100L;
113  binarySearchNumConflicts_ = -1;
114  instantiateAllVariables_ = true;
115  autoDetectGreaterThanAtLeastOneOf_ = true;
116  numSearchWorkers_ = 1;
117  interleaveBatchSize_ = 1;
118  shareObjectiveBounds_ = true;
119  shareLevelZeroBounds_ = true;
120  useRinsLns_ = true;
121  useFeasibilityPump_ = true;
122  fpRounding_ = 2;
123  useOptionalVariables_ = true;
124  useExactLpReason_ = true;
125  catchSigintSignal_ = true;
126  useImpliedBounds_ = true;
127  mipMaxBound_ = 10000000D;
128  mipVarScaling_ = 1D;
129  mipAutomaticallyScaleVariables_ = true;
130  mipWantedPrecision_ = 1e-06D;
131  mipMaxActivityExponent_ = 53;
132  mipCheckPrecision_ = 0.0001D;
133  }
134 
135  @java.lang.Override
136  @SuppressWarnings({"unused"})
137  protected java.lang.Object newInstance(
138  UnusedPrivateParameter unused) {
139  return new SatParameters();
140  }
141 
142  @java.lang.Override
143  public final com.google.protobuf.UnknownFieldSet
145  return this.unknownFields;
146  }
147  private SatParameters(
148  com.google.protobuf.CodedInputStream input,
149  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
150  throws com.google.protobuf.InvalidProtocolBufferException {
151  this();
152  if (extensionRegistry == null) {
153  throw new java.lang.NullPointerException();
154  }
155  int mutable_bitField0_ = 0;
156  int mutable_bitField1_ = 0;
157  int mutable_bitField2_ = 0;
158  int mutable_bitField3_ = 0;
159  int mutable_bitField4_ = 0;
160  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
161  com.google.protobuf.UnknownFieldSet.newBuilder();
162  try {
163  boolean done = false;
164  while (!done) {
165  int tag = input.readTag();
166  switch (tag) {
167  case 0:
168  done = true;
169  break;
170  case 8: {
171  int rawValue = input.readEnum();
172  @SuppressWarnings("deprecation")
173  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
174  if (value == null) {
175  unknownFields.mergeVarintField(1, rawValue);
176  } else {
177  bitField0_ |= 0x00000002;
178  preferredVariableOrder_ = rawValue;
179  }
180  break;
181  }
182  case 16: {
183  int rawValue = input.readEnum();
184  @SuppressWarnings("deprecation")
185  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
186  if (value == null) {
187  unknownFields.mergeVarintField(2, rawValue);
188  } else {
189  bitField0_ |= 0x00000004;
190  initialPolarity_ = rawValue;
191  }
192  break;
193  }
194  case 32: {
195  int rawValue = input.readEnum();
196  @SuppressWarnings("deprecation")
197  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
198  if (value == null) {
199  unknownFields.mergeVarintField(4, rawValue);
200  } else {
201  bitField0_ |= 0x00000400;
202  minimizationAlgorithm_ = rawValue;
203  }
204  break;
205  }
206  case 88: {
207  bitField0_ |= 0x00002000;
208  clauseCleanupPeriod_ = input.readInt32();
209  break;
210  }
211  case 104: {
212  bitField0_ |= 0x00004000;
213  clauseCleanupTarget_ = input.readInt32();
214  break;
215  }
216  case 121: {
217  bitField0_ |= 0x00400000;
218  variableActivityDecay_ = input.readDouble();
219  break;
220  }
221  case 129: {
222  bitField0_ |= 0x00800000;
223  maxVariableActivityValue_ = input.readDouble();
224  break;
225  }
226  case 137: {
227  bitField0_ |= 0x08000000;
228  clauseActivityDecay_ = input.readDouble();
229  break;
230  }
231  case 145: {
232  bitField0_ |= 0x10000000;
233  maxClauseActivityValue_ = input.readDouble();
234  break;
235  }
236  case 177: {
237  bitField0_ |= 0x01000000;
238  glucoseMaxDecay_ = input.readDouble();
239  break;
240  }
241  case 185: {
242  bitField0_ |= 0x02000000;
243  glucoseDecayIncrement_ = input.readDouble();
244  break;
245  }
246  case 192: {
247  bitField0_ |= 0x04000000;
248  glucoseDecayIncrementPeriod_ = input.readInt32();
249  break;
250  }
251  case 240: {
252  bitField0_ |= 0x40000000;
253  restartPeriod_ = input.readInt32();
254  break;
255  }
256  case 248: {
257  bitField1_ |= 0x00004000;
258  randomSeed_ = input.readInt32();
259  break;
260  }
261  case 257: {
262  bitField0_ |= 0x00000040;
263  randomBranchesRatio_ = input.readDouble();
264  break;
265  }
266  case 264: {
267  bitField1_ |= 0x00002000;
268  treatBinaryClausesSeparately_ = input.readBool();
269  break;
270  }
271  case 272: {
272  int rawValue = input.readEnum();
273  @SuppressWarnings("deprecation")
274  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
275  if (value == null) {
276  unknownFields.mergeVarintField(34, rawValue);
277  } else {
278  bitField0_ |= 0x00000800;
279  binaryMinimizationAlgorithm_ = rawValue;
280  }
281  break;
282  }
283  case 280: {
284  bitField2_ |= 0x00002000;
285  useOptimizationHints_ = input.readBool();
286  break;
287  }
288  case 289: {
289  bitField1_ |= 0x00000080;
290  maxTimeInSeconds_ = input.readDouble();
291  break;
292  }
293  case 296: {
294  bitField1_ |= 0x00000200;
295  maxNumberOfConflicts_ = input.readInt64();
296  break;
297  }
298  case 320: {
299  bitField1_ |= 0x00000400;
300  maxMemoryInMb_ = input.readInt64();
301  break;
302  }
303  case 328: {
304  bitField1_ |= 0x00040000;
305  logSearchProgress_ = input.readBool();
306  break;
307  }
308  case 344: {
309  bitField1_ |= 0x00080000;
310  usePbResolution_ = input.readBool();
311  break;
312  }
313  case 352: {
314  bitField0_ |= 0x00000008;
315  usePhaseSaving_ = input.readBool();
316  break;
317  }
318  case 361: {
319  bitField0_ |= 0x00000020;
320  randomPolarityRatio_ = input.readDouble();
321  break;
322  }
323  case 368: {
324  bitField0_ |= 0x00040000;
325  pbCleanupIncrement_ = input.readInt32();
326  break;
327  }
328  case 377: {
329  bitField0_ |= 0x00080000;
330  pbCleanupRatio_ = input.readDouble();
331  break;
332  }
333  case 384: {
334  bitField1_ |= 0x00100000;
335  minimizeReductionDuringPbResolution_ = input.readBool();
336  break;
337  }
338  case 392: {
339  bitField1_ |= 0x00200000;
340  countAssumptionLevelsInLbd_ = input.readBool();
341  break;
342  }
343  case 400: {
344  bitField2_ |= 0x00004000;
345  minimizeCore_ = input.readBool();
346  break;
347  }
348  case 408: {
349  int rawValue = input.readEnum();
350  @SuppressWarnings("deprecation")
351  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
352  if (value == null) {
353  unknownFields.mergeVarintField(51, rawValue);
354  } else {
355  bitField2_ |= 0x00020000;
356  maxSatAssumptionOrder_ = rawValue;
357  }
358  break;
359  }
360  case 416: {
361  bitField2_ |= 0x00040000;
362  maxSatReverseAssumptionOrder_ = input.readBool();
363  break;
364  }
365  case 424: {
366  int rawValue = input.readEnum();
367  @SuppressWarnings("deprecation")
368  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
369  if (value == null) {
370  unknownFields.mergeVarintField(53, rawValue);
371  } else {
372  bitField2_ |= 0x00080000;
373  maxSatStratification_ = rawValue;
374  }
375  break;
376  }
377  case 432: {
378  bitField1_ |= 0x00400000;
379  presolveBveThreshold_ = input.readInt32();
380  break;
381  }
382  case 440: {
383  bitField1_ |= 0x00800000;
384  presolveBveClauseWeight_ = input.readInt32();
385  break;
386  }
387  case 448: {
388  bitField0_ |= 0x00001000;
389  subsumptionDuringConflictAnalysis_ = input.readBool();
390  break;
391  }
392  case 457: {
393  bitField1_ |= 0x01000000;
394  presolveProbingDeterministicTimeLimit_ = input.readDouble();
395  break;
396  }
397  case 464: {
398  int rawValue = input.readEnum();
399  @SuppressWarnings("deprecation")
400  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
401  if (value == null) {
402  unknownFields.mergeVarintField(58, rawValue);
403  } else {
404  bitField0_ |= 0x00008000;
405  clauseCleanupProtection_ = rawValue;
406  }
407  break;
408  }
409  case 472: {
410  bitField0_ |= 0x00010000;
411  clauseCleanupLbdBound_ = input.readInt32();
412  break;
413  }
414  case 480: {
415  int rawValue = input.readEnum();
416  @SuppressWarnings("deprecation")
417  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
418  if (value == null) {
419  unknownFields.mergeVarintField(60, rawValue);
420  } else {
421  bitField0_ |= 0x00020000;
422  clauseCleanupOrdering_ = rawValue;
423  }
424  break;
425  }
426  case 488: {
427  int rawValue = input.readEnum();
428  @SuppressWarnings("deprecation")
429  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
430  if (value == null) {
431  unknownFields.mergeVarintField(61, rawValue);
432  } else {
433  if (!((mutable_bitField0_ & 0x20000000) != 0)) {
434  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
435  mutable_bitField0_ |= 0x20000000;
436  }
437  restartAlgorithms_.add(rawValue);
438  }
439  break;
440  }
441  case 490: {
442  int length = input.readRawVarint32();
443  int oldLimit = input.pushLimit(length);
444  while(input.getBytesUntilLimit() > 0) {
445  int rawValue = input.readEnum();
446  @SuppressWarnings("deprecation")
447  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
448  if (value == null) {
449  unknownFields.mergeVarintField(61, rawValue);
450  } else {
451  if (!((mutable_bitField0_ & 0x20000000) != 0)) {
452  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
453  mutable_bitField0_ |= 0x20000000;
454  }
455  restartAlgorithms_.add(rawValue);
456  }
457  }
458  input.popLimit(oldLimit);
459  break;
460  }
461  case 496: {
462  bitField0_ |= 0x80000000;
463  restartRunningWindowSize_ = input.readInt32();
464  break;
465  }
466  case 505: {
467  bitField1_ |= 0x00000001;
468  restartDlAverageRatio_ = input.readDouble();
469  break;
470  }
471  case 512: {
472  bitField1_ |= 0x00000004;
473  useBlockingRestart_ = input.readBool();
474  break;
475  }
476  case 520: {
477  bitField1_ |= 0x00000008;
478  blockingRestartWindowSize_ = input.readInt32();
479  break;
480  }
481  case 529: {
482  bitField1_ |= 0x00000010;
483  blockingRestartMultiplier_ = input.readDouble();
484  break;
485  }
486  case 537: {
487  bitField1_ |= 0x00000100;
488  maxDeterministicTime_ = input.readDouble();
489  break;
490  }
491  case 544: {
492  bitField1_ |= 0x00000020;
493  numConflictsBeforeStrategyChanges_ = input.readInt32();
494  break;
495  }
496  case 553: {
497  bitField1_ |= 0x00000040;
498  strategyChangeIncreaseRatio_ = input.readDouble();
499  break;
500  }
501  case 562: {
502  com.google.protobuf.ByteString bs = input.readBytes();
503  bitField0_ |= 0x20000000;
504  defaultRestartAlgorithms_ = bs;
505  break;
506  }
507  case 569: {
508  bitField1_ |= 0x00000002;
509  restartLbdAverageRatio_ = input.readDouble();
510  break;
511  }
512  case 576: {
513  bitField1_ |= 0x04000000;
514  presolveUseBva_ = input.readBool();
515  break;
516  }
517  case 584: {
518  bitField1_ |= 0x08000000;
519  presolveBvaThreshold_ = input.readInt32();
520  break;
521  }
522  case 592: {
523  bitField2_ |= 0x00100000;
524  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
525  break;
526  }
527  case 600: {
528  bitField0_ |= 0x00000080;
529  useErwaHeuristic_ = input.readBool();
530  break;
531  }
532  case 609: {
533  bitField0_ |= 0x00000100;
534  initialVariablesActivity_ = input.readDouble();
535  break;
536  }
537  case 616: {
538  bitField0_ |= 0x00000200;
539  alsoBumpVariablesInConflictReasons_ = input.readBool();
540  break;
541  }
542  case 624: {
543  bitField2_ |= 0x00200000;
544  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
545  break;
546  }
547  case 632: {
548  bitField2_ |= 0x00400000;
549  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
550  break;
551  }
552  case 640: {
553  bitField2_ |= 0x00800000;
554  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
555  break;
556  }
557  case 656: {
558  int rawValue = input.readEnum();
559  @SuppressWarnings("deprecation")
560  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
561  if (value == null) {
562  unknownFields.mergeVarintField(82, rawValue);
563  } else {
564  bitField3_ |= 0x00001000;
565  searchBranching_ = rawValue;
566  }
567  break;
568  }
569  case 664: {
570  bitField3_ |= 0x00800000;
571  optimizeWithCore_ = input.readBool();
572  break;
573  }
574  case 672: {
575  bitField2_ |= 0x00008000;
576  findMultipleCores_ = input.readBool();
577  break;
578  }
579  case 680: {
580  bitField3_ |= 0x02000000;
581  optimizeWithMaxHs_ = input.readBool();
582  break;
583  }
584  case 688: {
585  bitField1_ |= 0x20000000;
586  cpModelPresolve_ = input.readBool();
587  break;
588  }
589  case 696: {
590  bitField3_ |= 0x04000000;
591  enumerateAllSolutions_ = input.readBool();
592  break;
593  }
594  case 704: {
595  bitField1_ |= 0x02000000;
596  presolveBlockedClause_ = input.readBool();
597  break;
598  }
599  case 712: {
600  bitField2_ |= 0x00010000;
601  coverOptimization_ = input.readBool();
602  break;
603  }
604  case 720: {
605  bitField2_ |= 0x01000000;
606  linearizationLevel_ = input.readInt32();
607  break;
608  }
609  case 728: {
610  bitField2_ |= 0x04000000;
611  maxNumCuts_ = input.readInt32();
612  break;
613  }
614  case 736: {
615  bitField2_ |= 0x08000000;
616  onlyAddCutsAtLevelZero_ = input.readBool();
617  break;
618  }
619  case 744: {
620  bitField2_ |= 0x00000002;
621  cpModelUseSatPresolve_ = input.readBool();
622  break;
623  }
624  case 752: {
625  bitField3_ |= 0x00008000;
626  exploitIntegerLpSolution_ = input.readBool();
627  break;
628  }
629  case 760: {
630  bitField3_ |= 0x40000000;
631  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
632  break;
633  }
634  case 768: {
635  bitField0_ |= 0x00100000;
636  minimizeWithPropagationRestartPeriod_ = input.readInt32();
637  break;
638  }
639  case 776: {
640  bitField0_ |= 0x00200000;
641  minimizeWithPropagationNumDecisions_ = input.readInt32();
642  break;
643  }
644  case 784: {
645  bitField3_ |= 0x80000000;
646  stopAfterFirstSolution_ = input.readBool();
647  break;
648  }
649  case 792: {
650  bitField3_ |= 0x01000000;
651  binarySearchNumConflicts_ = input.readInt32();
652  break;
653  }
654  case 800: {
655  bitField4_ |= 0x00000002;
656  numSearchWorkers_ = input.readInt32();
657  break;
658  }
659  case 808: {
660  bitField4_ |= 0x00000080;
661  useLnsOnly_ = input.readBool();
662  break;
663  }
664  case 824: {
665  bitField4_ |= 0x00004000;
666  randomizeSearch_ = input.readBool();
667  break;
668  }
669  case 832: {
670  bitField4_ |= 0x00008000;
671  searchRandomizationTolerance_ = input.readInt64();
672  break;
673  }
674  case 840: {
675  bitField4_ |= 0x00000100;
676  lnsFocusOnDecisionVariables_ = input.readBool();
677  break;
678  }
679  case 848: {
680  bitField3_ |= 0x20000000;
681  instantiateAllVariables_ = input.readBool();
682  break;
683  }
684  case 856: {
685  bitField2_ |= 0x02000000;
686  booleanEncodingLevel_ = input.readInt32();
687  break;
688  }
689  case 864: {
690  bitField4_ |= 0x00010000;
691  useOptionalVariables_ = input.readBool();
692  break;
693  }
694  case 872: {
695  bitField4_ |= 0x00020000;
696  useExactLpReason_ = input.readBool();
697  break;
698  }
699  case 880: {
700  bitField2_ |= 0x00000001;
701  cpModelProbingLevel_ = input.readInt32();
702  break;
703  }
704  case 888: {
705  bitField2_ |= 0x10000000;
706  addKnapsackCuts_ = input.readBool();
707  break;
708  }
709  case 896: {
710  bitField3_ |= 0x00000010;
711  addLpConstraintsLazily_ = input.readBool();
712  break;
713  }
714  case 904: {
715  bitField4_ |= 0x00000020;
716  shareObjectiveBounds_ = input.readBool();
717  break;
718  }
719  case 912: {
720  bitField4_ |= 0x00000040;
721  shareLevelZeroBounds_ = input.readBool();
722  break;
723  }
724  case 921: {
725  bitField3_ |= 0x00000020;
726  minOrthogonalityForLpConstraints_ = input.readDouble();
727  break;
728  }
729  case 928: {
730  bitField3_ |= 0x00010000;
731  exploitAllLpSolution_ = input.readBool();
732  break;
733  }
734  case 936: {
735  bitField2_ |= 0x20000000;
736  addCgCuts_ = input.readBool();
737  break;
738  }
739  case 952: {
740  bitField3_ |= 0x00000008;
741  maxIntegerRoundingScaling_ = input.readInt32();
742  break;
743  }
744  case 960: {
745  bitField2_ |= 0x40000000;
746  addMirCuts_ = input.readBool();
747  break;
748  }
749  case 968: {
750  bitField3_ |= 0x00000080;
751  maxConsecutiveInactiveCount_ = input.readInt32();
752  break;
753  }
754  case 976: {
755  bitField3_ |= 0x00000800;
756  newConstraintsBatchSize_ = input.readInt32();
757  break;
758  }
759  case 984: {
760  bitField3_ |= 0x00400000;
761  pseudoCostReliabilityThreshold_ = input.readInt64();
762  break;
763  }
764  case 993: {
765  bitField4_ |= 0x02000000;
766  mipMaxBound_ = input.readDouble();
767  break;
768  }
769  case 1001: {
770  bitField4_ |= 0x04000000;
771  mipVarScaling_ = input.readDouble();
772  break;
773  }
774  case 1009: {
775  bitField4_ |= 0x10000000;
776  mipWantedPrecision_ = input.readDouble();
777  break;
778  }
779  case 1016: {
780  bitField4_ |= 0x20000000;
781  mipMaxActivityExponent_ = input.readInt32();
782  break;
783  }
784  case 1025: {
785  bitField4_ |= 0x40000000;
786  mipCheckPrecision_ = input.readDouble();
787  break;
788  }
789  case 1032: {
790  bitField4_ |= 0x00000200;
791  useRinsLns_ = input.readBool();
792  break;
793  }
794  case 1040: {
795  bitField3_ |= 0x00020000;
796  exploitBestSolution_ = input.readBool();
797  break;
798  }
799  case 1048: {
800  bitField3_ |= 0x00080000;
801  exploitObjective_ = input.readBool();
802  break;
803  }
804  case 1056: {
805  bitField3_ |= 0x10000000;
806  fillTightenedDomainsInResponse_ = input.readBool();
807  break;
808  }
809  case 1064: {
810  bitField4_ |= 0x00080000;
811  useCombinedNoOverlap_ = input.readBool();
812  break;
813  }
814  case 1072: {
815  bitField4_ |= 0x00000008;
816  interleaveBatchSize_ = input.readInt32();
817  break;
818  }
819  case 1080: {
820  bitField4_ |= 0x00100000;
821  catchSigintSignal_ = input.readBool();
822  break;
823  }
824  case 1088: {
825  bitField4_ |= 0x00000004;
826  interleaveSearch_ = input.readBool();
827  break;
828  }
829  case 1096: {
830  bitField4_ |= 0x00002000;
831  diversifyLnsParams_ = input.readBool();
832  break;
833  }
834  case 1104: {
835  bitField1_ |= 0x10000000;
836  maxPresolveIterations_ = input.readInt32();
837  break;
838  }
839  case 1112: {
840  bitField4_ |= 0x00040000;
841  useBranchingInLp_ = input.readBool();
842  break;
843  }
844  case 1120: {
845  bitField2_ |= 0x00000008;
846  expandElementConstraints_ = input.readBool();
847  break;
848  }
849  case 1128: {
850  bitField4_ |= 0x00000010;
851  reduceMemoryUsageInInterleaveMode_ = input.readBool();
852  break;
853  }
854  case 1136: {
855  bitField3_ |= 0x00100000;
856  probingPeriodAtRoot_ = input.readInt64();
857  break;
858  }
859  case 1144: {
860  bitField2_ |= 0x00000010;
861  expandAutomatonConstraints_ = input.readBool();
862  break;
863  }
864  case 1152: {
865  bitField4_ |= 0x00200000;
866  useImpliedBounds_ = input.readBool();
867  break;
868  }
869  case 1161: {
870  bitField2_ |= 0x00000200;
871  mergeNoOverlapWorkLimit_ = input.readDouble();
872  break;
873  }
874  case 1169: {
875  bitField2_ |= 0x00000400;
876  mergeAtMostOneWorkLimit_ = input.readDouble();
877  break;
878  }
879  case 1176: {
880  bitField2_ |= 0x00000800;
881  presolveSubstitutionLevel_ = input.readInt32();
882  break;
883  }
884  case 1184: {
885  bitField3_ |= 0x00000002;
886  maxAllDiffCutSize_ = input.readInt32();
887  break;
888  }
889  case 1192: {
890  bitField4_ |= 0x00000001;
891  stopAfterPresolve_ = input.readBool();
892  break;
893  }
894  case 1200: {
895  bitField4_ |= 0x00001000;
896  useRelaxationLns_ = input.readBool();
897  break;
898  }
899  case 1208: {
900  bitField1_ |= 0x80000000;
901  cpModelMaxNumPresolveOperations_ = input.readInt32();
902  break;
903  }
904  case 1216: {
905  bitField3_ |= 0x00000004;
906  addLinMaxCuts_ = input.readBool();
907  break;
908  }
909  case 1224: {
910  bitField3_ |= 0x00002000;
911  hintConflictLimit_ = input.readInt32();
912  break;
913  }
914  case 1232: {
915  bitField3_ |= 0x00000040;
916  maxCutRoundsAtLevelZero_ = input.readInt32();
917  break;
918  }
919  case 1241: {
920  bitField3_ |= 0x00000100;
921  cutMaxActiveCountValue_ = input.readDouble();
922  break;
923  }
924  case 1249: {
925  bitField3_ |= 0x00000200;
926  cutActiveCountDecay_ = input.readDouble();
927  break;
928  }
929  case 1256: {
930  bitField3_ |= 0x00000400;
931  cutCleanupTarget_ = input.readInt32();
932  break;
933  }
934  case 1264: {
935  bitField2_ |= 0x00000020;
936  expandTableConstraints_ = input.readBool();
937  break;
938  }
939  case 1273: {
940  bitField1_ |= 0x00000800;
941  absoluteGapLimit_ = input.readDouble();
942  break;
943  }
944  case 1281: {
945  bitField1_ |= 0x00001000;
946  relativeGapLimit_ = input.readDouble();
947  break;
948  }
949  case 1288: {
950  bitField3_ |= 0x00040000;
951  exploitRelaxationSolution_ = input.readBool();
952  break;
953  }
954  case 1296: {
955  bitField1_ |= 0x40000000;
956  cpModelPostsolveWithFullSolver_ = input.readBool();
957  break;
958  }
959  case 1304: {
960  bitField2_ |= 0x00000004;
961  useSatInprocessing_ = input.readBool();
962  break;
963  }
964  case 1312: {
965  bitField4_ |= 0x00000400;
966  useFeasibilityPump_ = input.readBool();
967  break;
968  }
969  case 1320: {
970  int rawValue = input.readEnum();
971  @SuppressWarnings("deprecation")
972  com.google.ortools.sat.SatParameters.FPRoundingMethod value = com.google.ortools.sat.SatParameters.FPRoundingMethod.valueOf(rawValue);
973  if (value == null) {
974  unknownFields.mergeVarintField(165, rawValue);
975  } else {
976  bitField4_ |= 0x00000800;
977  fpRounding_ = rawValue;
978  }
979  break;
980  }
981  case 1328: {
982  bitField4_ |= 0x08000000;
983  mipAutomaticallyScaleVariables_ = input.readBool();
984  break;
985  }
986  case 1336: {
987  bitField3_ |= 0x00004000;
988  repairHint_ = input.readBool();
989  break;
990  }
991  case 1344: {
992  bitField0_ |= 0x00000010;
993  polarityRephaseIncrement_ = input.readInt32();
994  break;
995  }
996  case 1352: {
997  bitField2_ |= 0x80000000;
998  addZeroHalfCuts_ = input.readBool();
999  break;
1000  }
1001  case 1360: {
1002  bitField2_ |= 0x00000040;
1003  expandAlldiffConstraints_ = input.readBool();
1004  break;
1005  }
1006  case 1370: {
1007  com.google.protobuf.ByteString bs = input.readBytes();
1008  bitField0_ |= 0x00000001;
1009  name_ = bs;
1010  break;
1011  }
1012  case 1376: {
1013  bitField3_ |= 0x00000001;
1014  addCliqueCuts_ = input.readBool();
1015  break;
1016  }
1017  case 1384: {
1018  bitField3_ |= 0x08000000;
1019  keepAllFeasibleSolutionsInPresolve_ = input.readBool();
1020  break;
1021  }
1022  case 1392: {
1023  bitField2_ |= 0x00001000;
1024  presolveExtractIntegerEnforcement_ = input.readBool();
1025  break;
1026  }
1027  case 1400: {
1028  bitField4_ |= 0x00400000;
1029  polishLpSolution_ = input.readBool();
1030  break;
1031  }
1032  case 1408: {
1033  bitField3_ |= 0x00200000;
1034  useProbingSearch_ = input.readBool();
1035  break;
1036  }
1037  case 1416: {
1038  bitField4_ |= 0x00800000;
1039  convertIntervals_ = input.readBool();
1040  break;
1041  }
1042  case 1424: {
1043  bitField1_ |= 0x00008000;
1044  permuteVariableRandomly_ = input.readBool();
1045  break;
1046  }
1047  case 1432: {
1048  bitField1_ |= 0x00010000;
1049  permutePresolveConstraintOrder_ = input.readBool();
1050  break;
1051  }
1052  case 1440: {
1053  bitField1_ |= 0x00020000;
1054  useAbslRandom_ = input.readBool();
1055  break;
1056  }
1057  case 1448: {
1058  bitField2_ |= 0x00000100;
1059  disableConstraintExpansion_ = input.readBool();
1060  break;
1061  }
1062  case 1456: {
1063  bitField2_ |= 0x00000080;
1064  expandReservoirConstraints_ = input.readBool();
1065  break;
1066  }
1067  case 1464: {
1068  bitField4_ |= 0x01000000;
1069  detectSymmetries_ = input.readBool();
1070  break;
1071  }
1072  default: {
1073  if (!parseUnknownField(
1074  input, unknownFields, extensionRegistry, tag)) {
1075  done = true;
1076  }
1077  break;
1078  }
1079  }
1080  }
1081  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1082  throw e.setUnfinishedMessage(this);
1083  } catch (java.io.IOException e) {
1084  throw new com.google.protobuf.InvalidProtocolBufferException(
1085  e).setUnfinishedMessage(this);
1086  } finally {
1087  if (((mutable_bitField0_ & 0x20000000) != 0)) {
1088  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
1089  }
1090  this.unknownFields = unknownFields.build();
1091  makeExtensionsImmutable();
1092  }
1093  }
1094  public static final com.google.protobuf.Descriptors.Descriptor
1096  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
1097  }
1098 
1099  @java.lang.Override
1100  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
1102  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
1103  .ensureFieldAccessorsInitialized(
1104  com.google.ortools.sat.SatParameters.class, com.google.ortools.sat.SatParameters.Builder.class);
1105  }
1106 
1115  public enum VariableOrder
1116  implements com.google.protobuf.ProtocolMessageEnum {
1133  ;
1134 
1142  public static final int IN_ORDER_VALUE = 0;
1146  public static final int IN_REVERSE_ORDER_VALUE = 1;
1150  public static final int IN_RANDOM_ORDER_VALUE = 2;
1151 
1152 
1153  public final int getNumber() {
1154  return value;
1155  }
1156 
1162  @java.lang.Deprecated
1163  public static VariableOrder valueOf(int value) {
1164  return forNumber(value);
1165  }
1166 
1171  public static VariableOrder forNumber(int value) {
1172  switch (value) {
1173  case 0: return IN_ORDER;
1174  case 1: return IN_REVERSE_ORDER;
1175  case 2: return IN_RANDOM_ORDER;
1176  default: return null;
1177  }
1178  }
1179 
1180  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
1182  return internalValueMap;
1183  }
1184  private static final com.google.protobuf.Internal.EnumLiteMap<
1185  VariableOrder> internalValueMap =
1186  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
1187  public VariableOrder findValueByNumber(int number) {
1188  return VariableOrder.forNumber(number);
1189  }
1190  };
1191 
1192  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1194  return getDescriptor().getValues().get(ordinal());
1195  }
1196  public final com.google.protobuf.Descriptors.EnumDescriptor
1198  return getDescriptor();
1199  }
1200  public static final com.google.protobuf.Descriptors.EnumDescriptor
1202  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
1203  }
1204 
1205  private static final VariableOrder[] VALUES = values();
1206 
1207  public static VariableOrder valueOf(
1208  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1209  if (desc.getType() != getDescriptor()) {
1210  throw new java.lang.IllegalArgumentException(
1211  "EnumValueDescriptor is not for this type.");
1212  }
1213  return VALUES[desc.getIndex()];
1214  }
1215 
1216  private final int value;
1217 
1218  private VariableOrder(int value) {
1219  this.value = value;
1220  }
1221 
1222  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
1223  }
1224 
1236  public enum Polarity
1237  implements com.google.protobuf.ProtocolMessageEnum {
1269  ;
1270 
1274  public static final int POLARITY_TRUE_VALUE = 0;
1278  public static final int POLARITY_FALSE_VALUE = 1;
1282  public static final int POLARITY_RANDOM_VALUE = 2;
1293  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1301  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1302 
1303 
1304  public final int getNumber() {
1305  return value;
1306  }
1307 
1313  @java.lang.Deprecated
1314  public static Polarity valueOf(int value) {
1315  return forNumber(value);
1316  }
1317 
1322  public static Polarity forNumber(int value) {
1323  switch (value) {
1324  case 0: return POLARITY_TRUE;
1325  case 1: return POLARITY_FALSE;
1326  case 2: return POLARITY_RANDOM;
1327  case 3: return POLARITY_WEIGHTED_SIGN;
1328  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1329  default: return null;
1330  }
1331  }
1332 
1333  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1335  return internalValueMap;
1336  }
1337  private static final com.google.protobuf.Internal.EnumLiteMap<
1338  Polarity> internalValueMap =
1339  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1340  public Polarity findValueByNumber(int number) {
1341  return Polarity.forNumber(number);
1342  }
1343  };
1344 
1345  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1347  return getDescriptor().getValues().get(ordinal());
1348  }
1349  public final com.google.protobuf.Descriptors.EnumDescriptor
1351  return getDescriptor();
1352  }
1353  public static final com.google.protobuf.Descriptors.EnumDescriptor
1355  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1356  }
1357 
1358  private static final Polarity[] VALUES = values();
1359 
1360  public static Polarity valueOf(
1361  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1362  if (desc.getType() != getDescriptor()) {
1363  throw new java.lang.IllegalArgumentException(
1364  "EnumValueDescriptor is not for this type.");
1365  }
1366  return VALUES[desc.getIndex()];
1367  }
1368 
1369  private final int value;
1370 
1371  private Polarity(int value) {
1372  this.value = value;
1373  }
1374 
1375  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1376  }
1377 
1386  implements com.google.protobuf.ProtocolMessageEnum {
1390  NONE(0),
1403  ;
1404 
1408  public static final int NONE_VALUE = 0;
1412  public static final int SIMPLE_VALUE = 1;
1416  public static final int RECURSIVE_VALUE = 2;
1420  public static final int EXPERIMENTAL_VALUE = 3;
1421 
1422 
1423  public final int getNumber() {
1424  return value;
1425  }
1426 
1432  @java.lang.Deprecated
1433  public static ConflictMinimizationAlgorithm valueOf(int value) {
1434  return forNumber(value);
1435  }
1436 
1441  public static ConflictMinimizationAlgorithm forNumber(int value) {
1442  switch (value) {
1443  case 0: return NONE;
1444  case 1: return SIMPLE;
1445  case 2: return RECURSIVE;
1446  case 3: return EXPERIMENTAL;
1447  default: return null;
1448  }
1449  }
1450 
1451  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1453  return internalValueMap;
1454  }
1455  private static final com.google.protobuf.Internal.EnumLiteMap<
1456  ConflictMinimizationAlgorithm> internalValueMap =
1457  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1458  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1460  }
1461  };
1462 
1463  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1465  return getDescriptor().getValues().get(ordinal());
1466  }
1467  public final com.google.protobuf.Descriptors.EnumDescriptor
1469  return getDescriptor();
1470  }
1471  public static final com.google.protobuf.Descriptors.EnumDescriptor
1473  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1474  }
1475 
1476  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1477 
1479  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1480  if (desc.getType() != getDescriptor()) {
1481  throw new java.lang.IllegalArgumentException(
1482  "EnumValueDescriptor is not for this type.");
1483  }
1484  return VALUES[desc.getIndex()];
1485  }
1486 
1487  private final int value;
1488 
1489  private ConflictMinimizationAlgorithm(int value) {
1490  this.value = value;
1491  }
1492 
1493  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1494  }
1495 
1505  implements com.google.protobuf.ProtocolMessageEnum {
1526  ;
1527 
1531  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1535  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1539  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1543  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1547  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1548 
1549 
1550  public final int getNumber() {
1551  return value;
1552  }
1553 
1559  @java.lang.Deprecated
1560  public static BinaryMinizationAlgorithm valueOf(int value) {
1561  return forNumber(value);
1562  }
1563 
1568  public static BinaryMinizationAlgorithm forNumber(int value) {
1569  switch (value) {
1570  case 0: return NO_BINARY_MINIMIZATION;
1571  case 1: return BINARY_MINIMIZATION_FIRST;
1572  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1573  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1574  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1575  default: return null;
1576  }
1577  }
1578 
1579  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1581  return internalValueMap;
1582  }
1583  private static final com.google.protobuf.Internal.EnumLiteMap<
1584  BinaryMinizationAlgorithm> internalValueMap =
1585  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1586  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1587  return BinaryMinizationAlgorithm.forNumber(number);
1588  }
1589  };
1590 
1591  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1593  return getDescriptor().getValues().get(ordinal());
1594  }
1595  public final com.google.protobuf.Descriptors.EnumDescriptor
1597  return getDescriptor();
1598  }
1599  public static final com.google.protobuf.Descriptors.EnumDescriptor
1601  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1602  }
1603 
1604  private static final BinaryMinizationAlgorithm[] VALUES = values();
1605 
1607  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1608  if (desc.getType() != getDescriptor()) {
1609  throw new java.lang.IllegalArgumentException(
1610  "EnumValueDescriptor is not for this type.");
1611  }
1612  return VALUES[desc.getIndex()];
1613  }
1614 
1615  private final int value;
1616 
1617  private BinaryMinizationAlgorithm(int value) {
1618  this.value = value;
1619  }
1620 
1621  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1622  }
1623 
1633  public enum ClauseProtection
1634  implements com.google.protobuf.ProtocolMessageEnum {
1659  ;
1660 
1668  public static final int PROTECTION_NONE_VALUE = 0;
1676  public static final int PROTECTION_ALWAYS_VALUE = 1;
1684  public static final int PROTECTION_LBD_VALUE = 2;
1685 
1686 
1687  public final int getNumber() {
1688  return value;
1689  }
1690 
1696  @java.lang.Deprecated
1697  public static ClauseProtection valueOf(int value) {
1698  return forNumber(value);
1699  }
1700 
1705  public static ClauseProtection forNumber(int value) {
1706  switch (value) {
1707  case 0: return PROTECTION_NONE;
1708  case 1: return PROTECTION_ALWAYS;
1709  case 2: return PROTECTION_LBD;
1710  default: return null;
1711  }
1712  }
1713 
1714  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1716  return internalValueMap;
1717  }
1718  private static final com.google.protobuf.Internal.EnumLiteMap<
1719  ClauseProtection> internalValueMap =
1720  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1721  public ClauseProtection findValueByNumber(int number) {
1722  return ClauseProtection.forNumber(number);
1723  }
1724  };
1725 
1726  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1728  return getDescriptor().getValues().get(ordinal());
1729  }
1730  public final com.google.protobuf.Descriptors.EnumDescriptor
1732  return getDescriptor();
1733  }
1734  public static final com.google.protobuf.Descriptors.EnumDescriptor
1736  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1737  }
1738 
1739  private static final ClauseProtection[] VALUES = values();
1740 
1741  public static ClauseProtection valueOf(
1742  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1743  if (desc.getType() != getDescriptor()) {
1744  throw new java.lang.IllegalArgumentException(
1745  "EnumValueDescriptor is not for this type.");
1746  }
1747  return VALUES[desc.getIndex()];
1748  }
1749 
1750  private final int value;
1751 
1752  private ClauseProtection(int value) {
1753  this.value = value;
1754  }
1755 
1756  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1757  }
1758 
1767  public enum ClauseOrdering
1768  implements com.google.protobuf.ProtocolMessageEnum {
1785  ;
1786 
1794  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1802  public static final int CLAUSE_LBD_VALUE = 1;
1803 
1804 
1805  public final int getNumber() {
1806  return value;
1807  }
1808 
1814  @java.lang.Deprecated
1815  public static ClauseOrdering valueOf(int value) {
1816  return forNumber(value);
1817  }
1818 
1823  public static ClauseOrdering forNumber(int value) {
1824  switch (value) {
1825  case 0: return CLAUSE_ACTIVITY;
1826  case 1: return CLAUSE_LBD;
1827  default: return null;
1828  }
1829  }
1830 
1831  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1833  return internalValueMap;
1834  }
1835  private static final com.google.protobuf.Internal.EnumLiteMap<
1836  ClauseOrdering> internalValueMap =
1837  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1838  public ClauseOrdering findValueByNumber(int number) {
1839  return ClauseOrdering.forNumber(number);
1840  }
1841  };
1842 
1843  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1845  return getDescriptor().getValues().get(ordinal());
1846  }
1847  public final com.google.protobuf.Descriptors.EnumDescriptor
1849  return getDescriptor();
1850  }
1851  public static final com.google.protobuf.Descriptors.EnumDescriptor
1853  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1854  }
1855 
1856  private static final ClauseOrdering[] VALUES = values();
1857 
1858  public static ClauseOrdering valueOf(
1859  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1860  if (desc.getType() != getDescriptor()) {
1861  throw new java.lang.IllegalArgumentException(
1862  "EnumValueDescriptor is not for this type.");
1863  }
1864  return VALUES[desc.getIndex()];
1865  }
1866 
1867  private final int value;
1868 
1869  private ClauseOrdering(int value) {
1870  this.value = value;
1871  }
1872 
1873  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1874  }
1875 
1887  public enum RestartAlgorithm
1888  implements com.google.protobuf.ProtocolMessageEnum {
1925  ;
1926 
1930  public static final int NO_RESTART_VALUE = 0;
1938  public static final int LUBY_RESTART_VALUE = 1;
1946  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1954  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1962  public static final int FIXED_RESTART_VALUE = 4;
1963 
1964 
1965  public final int getNumber() {
1966  return value;
1967  }
1968 
1974  @java.lang.Deprecated
1975  public static RestartAlgorithm valueOf(int value) {
1976  return forNumber(value);
1977  }
1978 
1983  public static RestartAlgorithm forNumber(int value) {
1984  switch (value) {
1985  case 0: return NO_RESTART;
1986  case 1: return LUBY_RESTART;
1987  case 2: return DL_MOVING_AVERAGE_RESTART;
1988  case 3: return LBD_MOVING_AVERAGE_RESTART;
1989  case 4: return FIXED_RESTART;
1990  default: return null;
1991  }
1992  }
1993 
1994  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1996  return internalValueMap;
1997  }
1998  private static final com.google.protobuf.Internal.EnumLiteMap<
1999  RestartAlgorithm> internalValueMap =
2000  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
2001  public RestartAlgorithm findValueByNumber(int number) {
2002  return RestartAlgorithm.forNumber(number);
2003  }
2004  };
2005 
2006  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2008  return getDescriptor().getValues().get(ordinal());
2009  }
2010  public final com.google.protobuf.Descriptors.EnumDescriptor
2012  return getDescriptor();
2013  }
2014  public static final com.google.protobuf.Descriptors.EnumDescriptor
2016  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
2017  }
2018 
2019  private static final RestartAlgorithm[] VALUES = values();
2020 
2021  public static RestartAlgorithm valueOf(
2022  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2023  if (desc.getType() != getDescriptor()) {
2024  throw new java.lang.IllegalArgumentException(
2025  "EnumValueDescriptor is not for this type.");
2026  }
2027  return VALUES[desc.getIndex()];
2028  }
2029 
2030  private final int value;
2031 
2032  private RestartAlgorithm(int value) {
2033  this.value = value;
2034  }
2035 
2036  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
2037  }
2038 
2047  implements com.google.protobuf.ProtocolMessageEnum {
2060  ;
2061 
2065  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
2069  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
2073  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
2074 
2075 
2076  public final int getNumber() {
2077  return value;
2078  }
2079 
2085  @java.lang.Deprecated
2086  public static MaxSatAssumptionOrder valueOf(int value) {
2087  return forNumber(value);
2088  }
2089 
2094  public static MaxSatAssumptionOrder forNumber(int value) {
2095  switch (value) {
2096  case 0: return DEFAULT_ASSUMPTION_ORDER;
2097  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
2098  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
2099  default: return null;
2100  }
2101  }
2102 
2103  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
2105  return internalValueMap;
2106  }
2107  private static final com.google.protobuf.Internal.EnumLiteMap<
2108  MaxSatAssumptionOrder> internalValueMap =
2109  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
2110  public MaxSatAssumptionOrder findValueByNumber(int number) {
2111  return MaxSatAssumptionOrder.forNumber(number);
2112  }
2113  };
2114 
2115  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2117  return getDescriptor().getValues().get(ordinal());
2118  }
2119  public final com.google.protobuf.Descriptors.EnumDescriptor
2121  return getDescriptor();
2122  }
2123  public static final com.google.protobuf.Descriptors.EnumDescriptor
2125  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
2126  }
2127 
2128  private static final MaxSatAssumptionOrder[] VALUES = values();
2129 
2131  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2132  if (desc.getType() != getDescriptor()) {
2133  throw new java.lang.IllegalArgumentException(
2134  "EnumValueDescriptor is not for this type.");
2135  }
2136  return VALUES[desc.getIndex()];
2137  }
2138 
2139  private final int value;
2140 
2141  private MaxSatAssumptionOrder(int value) {
2142  this.value = value;
2143  }
2144 
2145  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
2146  }
2147 
2156  implements com.google.protobuf.ProtocolMessageEnum {
2185  ;
2186 
2194  public static final int STRATIFICATION_NONE_VALUE = 0;
2203  public static final int STRATIFICATION_DESCENT_VALUE = 1;
2214  public static final int STRATIFICATION_ASCENT_VALUE = 2;
2215 
2216 
2217  public final int getNumber() {
2218  return value;
2219  }
2220 
2226  @java.lang.Deprecated
2227  public static MaxSatStratificationAlgorithm valueOf(int value) {
2228  return forNumber(value);
2229  }
2230 
2235  public static MaxSatStratificationAlgorithm forNumber(int value) {
2236  switch (value) {
2237  case 0: return STRATIFICATION_NONE;
2238  case 1: return STRATIFICATION_DESCENT;
2239  case 2: return STRATIFICATION_ASCENT;
2240  default: return null;
2241  }
2242  }
2243 
2244  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
2246  return internalValueMap;
2247  }
2248  private static final com.google.protobuf.Internal.EnumLiteMap<
2249  MaxSatStratificationAlgorithm> internalValueMap =
2250  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
2251  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
2253  }
2254  };
2255 
2256  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2258  return getDescriptor().getValues().get(ordinal());
2259  }
2260  public final com.google.protobuf.Descriptors.EnumDescriptor
2262  return getDescriptor();
2263  }
2264  public static final com.google.protobuf.Descriptors.EnumDescriptor
2266  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
2267  }
2268 
2269  private static final MaxSatStratificationAlgorithm[] VALUES = values();
2270 
2272  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2273  if (desc.getType() != getDescriptor()) {
2274  throw new java.lang.IllegalArgumentException(
2275  "EnumValueDescriptor is not for this type.");
2276  }
2277  return VALUES[desc.getIndex()];
2278  }
2279 
2280  private final int value;
2281 
2282  private MaxSatStratificationAlgorithm(int value) {
2283  this.value = value;
2284  }
2285 
2286  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
2287  }
2288 
2296  public enum SearchBranching
2297  implements com.google.protobuf.ProtocolMessageEnum {
2365  ;
2366 
2375  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2385  public static final int FIXED_SEARCH_VALUE = 1;
2393  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2403  public static final int LP_SEARCH_VALUE = 3;
2413  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2423  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2433  public static final int HINT_SEARCH_VALUE = 6;
2434 
2435 
2436  public final int getNumber() {
2437  return value;
2438  }
2439 
2445  @java.lang.Deprecated
2446  public static SearchBranching valueOf(int value) {
2447  return forNumber(value);
2448  }
2449 
2454  public static SearchBranching forNumber(int value) {
2455  switch (value) {
2456  case 0: return AUTOMATIC_SEARCH;
2457  case 1: return FIXED_SEARCH;
2458  case 2: return PORTFOLIO_SEARCH;
2459  case 3: return LP_SEARCH;
2460  case 4: return PSEUDO_COST_SEARCH;
2461  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2462  case 6: return HINT_SEARCH;
2463  default: return null;
2464  }
2465  }
2466 
2467  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2469  return internalValueMap;
2470  }
2471  private static final com.google.protobuf.Internal.EnumLiteMap<
2472  SearchBranching> internalValueMap =
2473  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2474  public SearchBranching findValueByNumber(int number) {
2475  return SearchBranching.forNumber(number);
2476  }
2477  };
2478 
2479  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2481  return getDescriptor().getValues().get(ordinal());
2482  }
2483  public final com.google.protobuf.Descriptors.EnumDescriptor
2485  return getDescriptor();
2486  }
2487  public static final com.google.protobuf.Descriptors.EnumDescriptor
2489  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2490  }
2491 
2492  private static final SearchBranching[] VALUES = values();
2493 
2494  public static SearchBranching valueOf(
2495  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2496  if (desc.getType() != getDescriptor()) {
2497  throw new java.lang.IllegalArgumentException(
2498  "EnumValueDescriptor is not for this type.");
2499  }
2500  return VALUES[desc.getIndex()];
2501  }
2502 
2503  private final int value;
2504 
2505  private SearchBranching(int value) {
2506  this.value = value;
2507  }
2508 
2509  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2510  }
2511 
2519  public enum FPRoundingMethod
2520  implements com.google.protobuf.ProtocolMessageEnum {
2561  ;
2562 
2570  public static final int NEAREST_INTEGER_VALUE = 0;
2580  public static final int LOCK_BASED_VALUE = 1;
2589  public static final int ACTIVE_LOCK_BASED_VALUE = 3;
2602  public static final int PROPAGATION_ASSISTED_VALUE = 2;
2603 
2604 
2605  public final int getNumber() {
2606  return value;
2607  }
2608 
2614  @java.lang.Deprecated
2615  public static FPRoundingMethod valueOf(int value) {
2616  return forNumber(value);
2617  }
2618 
2623  public static FPRoundingMethod forNumber(int value) {
2624  switch (value) {
2625  case 0: return NEAREST_INTEGER;
2626  case 1: return LOCK_BASED;
2627  case 3: return ACTIVE_LOCK_BASED;
2628  case 2: return PROPAGATION_ASSISTED;
2629  default: return null;
2630  }
2631  }
2632 
2633  public static com.google.protobuf.Internal.EnumLiteMap<FPRoundingMethod>
2635  return internalValueMap;
2636  }
2637  private static final com.google.protobuf.Internal.EnumLiteMap<
2638  FPRoundingMethod> internalValueMap =
2639  new com.google.protobuf.Internal.EnumLiteMap<FPRoundingMethod>() {
2640  public FPRoundingMethod findValueByNumber(int number) {
2641  return FPRoundingMethod.forNumber(number);
2642  }
2643  };
2644 
2645  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2647  return getDescriptor().getValues().get(ordinal());
2648  }
2649  public final com.google.protobuf.Descriptors.EnumDescriptor
2651  return getDescriptor();
2652  }
2653  public static final com.google.protobuf.Descriptors.EnumDescriptor
2655  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(10);
2656  }
2657 
2658  private static final FPRoundingMethod[] VALUES = values();
2659 
2660  public static FPRoundingMethod valueOf(
2661  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2662  if (desc.getType() != getDescriptor()) {
2663  throw new java.lang.IllegalArgumentException(
2664  "EnumValueDescriptor is not for this type.");
2665  }
2666  return VALUES[desc.getIndex()];
2667  }
2668 
2669  private final int value;
2670 
2671  private FPRoundingMethod(int value) {
2672  this.value = value;
2673  }
2674 
2675  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.FPRoundingMethod)
2676  }
2677 
2678  private int bitField0_;
2679  private int bitField1_;
2680  private int bitField2_;
2681  private int bitField3_;
2682  private int bitField4_;
2683  public static final int NAME_FIELD_NUMBER = 171;
2684  private volatile java.lang.Object name_;
2694  @java.lang.Override
2695  public boolean hasName() {
2696  return ((bitField0_ & 0x00000001) != 0);
2697  }
2707  @java.lang.Override
2708  public java.lang.String getName() {
2709  java.lang.Object ref = name_;
2710  if (ref instanceof java.lang.String) {
2711  return (java.lang.String) ref;
2712  } else {
2713  com.google.protobuf.ByteString bs =
2714  (com.google.protobuf.ByteString) ref;
2715  java.lang.String s = bs.toStringUtf8();
2716  if (bs.isValidUtf8()) {
2717  name_ = s;
2718  }
2719  return s;
2720  }
2721  }
2731  @java.lang.Override
2732  public com.google.protobuf.ByteString
2734  java.lang.Object ref = name_;
2735  if (ref instanceof java.lang.String) {
2736  com.google.protobuf.ByteString b =
2737  com.google.protobuf.ByteString.copyFromUtf8(
2738  (java.lang.String) ref);
2739  name_ = b;
2740  return b;
2741  } else {
2742  return (com.google.protobuf.ByteString) ref;
2743  }
2744  }
2745 
2746  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2747  private int preferredVariableOrder_;
2752  @java.lang.Override public boolean hasPreferredVariableOrder() {
2753  return ((bitField0_ & 0x00000002) != 0);
2754  }
2759  @java.lang.Override public com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder() {
2760  @SuppressWarnings("deprecation")
2761  com.google.ortools.sat.SatParameters.VariableOrder result = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(preferredVariableOrder_);
2762  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2763  }
2764 
2765  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2766  private int initialPolarity_;
2771  @java.lang.Override public boolean hasInitialPolarity() {
2772  return ((bitField0_ & 0x00000004) != 0);
2773  }
2778  @java.lang.Override public com.google.ortools.sat.SatParameters.Polarity getInitialPolarity() {
2779  @SuppressWarnings("deprecation")
2780  com.google.ortools.sat.SatParameters.Polarity result = com.google.ortools.sat.SatParameters.Polarity.valueOf(initialPolarity_);
2781  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2782  }
2783 
2784  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2785  private boolean usePhaseSaving_;
2802  @java.lang.Override
2803  public boolean hasUsePhaseSaving() {
2804  return ((bitField0_ & 0x00000008) != 0);
2805  }
2822  @java.lang.Override
2823  public boolean getUsePhaseSaving() {
2824  return usePhaseSaving_;
2825  }
2826 
2827  public static final int POLARITY_REPHASE_INCREMENT_FIELD_NUMBER = 168;
2828  private int polarityRephaseIncrement_;
2839  @java.lang.Override
2840  public boolean hasPolarityRephaseIncrement() {
2841  return ((bitField0_ & 0x00000010) != 0);
2842  }
2853  @java.lang.Override
2855  return polarityRephaseIncrement_;
2856  }
2857 
2858  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2859  private double randomPolarityRatio_;
2872  @java.lang.Override
2873  public boolean hasRandomPolarityRatio() {
2874  return ((bitField0_ & 0x00000020) != 0);
2875  }
2888  @java.lang.Override
2889  public double getRandomPolarityRatio() {
2890  return randomPolarityRatio_;
2891  }
2892 
2893  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2894  private double randomBranchesRatio_;
2905  @java.lang.Override
2906  public boolean hasRandomBranchesRatio() {
2907  return ((bitField0_ & 0x00000040) != 0);
2908  }
2919  @java.lang.Override
2920  public double getRandomBranchesRatio() {
2921  return randomBranchesRatio_;
2922  }
2923 
2924  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2925  private boolean useErwaHeuristic_;
2936  @java.lang.Override
2937  public boolean hasUseErwaHeuristic() {
2938  return ((bitField0_ & 0x00000080) != 0);
2939  }
2950  @java.lang.Override
2951  public boolean getUseErwaHeuristic() {
2952  return useErwaHeuristic_;
2953  }
2954 
2955  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2956  private double initialVariablesActivity_;
2970  @java.lang.Override
2971  public boolean hasInitialVariablesActivity() {
2972  return ((bitField0_ & 0x00000100) != 0);
2973  }
2987  @java.lang.Override
2989  return initialVariablesActivity_;
2990  }
2991 
2993  private boolean alsoBumpVariablesInConflictReasons_;
3005  @java.lang.Override
3007  return ((bitField0_ & 0x00000200) != 0);
3008  }
3020  @java.lang.Override
3022  return alsoBumpVariablesInConflictReasons_;
3023  }
3024 
3025  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
3026  private int minimizationAlgorithm_;
3031  @java.lang.Override public boolean hasMinimizationAlgorithm() {
3032  return ((bitField0_ & 0x00000400) != 0);
3033  }
3038  @java.lang.Override public com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm() {
3039  @SuppressWarnings("deprecation")
3040  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm result = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(minimizationAlgorithm_);
3041  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
3042  }
3043 
3044  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
3045  private int binaryMinimizationAlgorithm_;
3050  @java.lang.Override public boolean hasBinaryMinimizationAlgorithm() {
3051  return ((bitField0_ & 0x00000800) != 0);
3052  }
3057  @java.lang.Override public com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm() {
3058  @SuppressWarnings("deprecation")
3059  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm result = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(binaryMinimizationAlgorithm_);
3060  return result == null ? com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.BINARY_MINIMIZATION_FIRST : result;
3061  }
3062 
3064  private boolean subsumptionDuringConflictAnalysis_;
3076  @java.lang.Override
3078  return ((bitField0_ & 0x00001000) != 0);
3079  }
3091  @java.lang.Override
3093  return subsumptionDuringConflictAnalysis_;
3094  }
3095 
3096  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
3097  private int clauseCleanupPeriod_;
3106  @java.lang.Override
3107  public boolean hasClauseCleanupPeriod() {
3108  return ((bitField0_ & 0x00002000) != 0);
3109  }
3118  @java.lang.Override
3119  public int getClauseCleanupPeriod() {
3120  return clauseCleanupPeriod_;
3121  }
3122 
3123  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
3124  private int clauseCleanupTarget_;
3134  @java.lang.Override
3135  public boolean hasClauseCleanupTarget() {
3136  return ((bitField0_ & 0x00004000) != 0);
3137  }
3147  @java.lang.Override
3148  public int getClauseCleanupTarget() {
3149  return clauseCleanupTarget_;
3150  }
3151 
3152  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
3153  private int clauseCleanupProtection_;
3158  @java.lang.Override public boolean hasClauseCleanupProtection() {
3159  return ((bitField0_ & 0x00008000) != 0);
3160  }
3165  @java.lang.Override public com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection() {
3166  @SuppressWarnings("deprecation")
3167  com.google.ortools.sat.SatParameters.ClauseProtection result = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(clauseCleanupProtection_);
3168  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
3169  }
3170 
3171  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
3172  private int clauseCleanupLbdBound_;
3182  @java.lang.Override
3183  public boolean hasClauseCleanupLbdBound() {
3184  return ((bitField0_ & 0x00010000) != 0);
3185  }
3195  @java.lang.Override
3197  return clauseCleanupLbdBound_;
3198  }
3199 
3200  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
3201  private int clauseCleanupOrdering_;
3206  @java.lang.Override public boolean hasClauseCleanupOrdering() {
3207  return ((bitField0_ & 0x00020000) != 0);
3208  }
3213  @java.lang.Override public com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering() {
3214  @SuppressWarnings("deprecation")
3215  com.google.ortools.sat.SatParameters.ClauseOrdering result = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(clauseCleanupOrdering_);
3216  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
3217  }
3218 
3219  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
3220  private int pbCleanupIncrement_;
3229  @java.lang.Override
3230  public boolean hasPbCleanupIncrement() {
3231  return ((bitField0_ & 0x00040000) != 0);
3232  }
3241  @java.lang.Override
3242  public int getPbCleanupIncrement() {
3243  return pbCleanupIncrement_;
3244  }
3245 
3246  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
3247  private double pbCleanupRatio_;
3252  @java.lang.Override
3253  public boolean hasPbCleanupRatio() {
3254  return ((bitField0_ & 0x00080000) != 0);
3255  }
3260  @java.lang.Override
3261  public double getPbCleanupRatio() {
3262  return pbCleanupRatio_;
3263  }
3264 
3266  private int minimizeWithPropagationRestartPeriod_;
3285  @java.lang.Override
3287  return ((bitField0_ & 0x00100000) != 0);
3288  }
3307  @java.lang.Override
3309  return minimizeWithPropagationRestartPeriod_;
3310  }
3311 
3313  private int minimizeWithPropagationNumDecisions_;
3318  @java.lang.Override
3320  return ((bitField0_ & 0x00200000) != 0);
3321  }
3326  @java.lang.Override
3328  return minimizeWithPropagationNumDecisions_;
3329  }
3330 
3331  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
3332  private double variableActivityDecay_;
3347  @java.lang.Override
3348  public boolean hasVariableActivityDecay() {
3349  return ((bitField0_ & 0x00400000) != 0);
3350  }
3365  @java.lang.Override
3366  public double getVariableActivityDecay() {
3367  return variableActivityDecay_;
3368  }
3369 
3370  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
3371  private double maxVariableActivityValue_;
3376  @java.lang.Override
3377  public boolean hasMaxVariableActivityValue() {
3378  return ((bitField0_ & 0x00800000) != 0);
3379  }
3384  @java.lang.Override
3386  return maxVariableActivityValue_;
3387  }
3388 
3389  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
3390  private double glucoseMaxDecay_;
3402  @java.lang.Override
3403  public boolean hasGlucoseMaxDecay() {
3404  return ((bitField0_ & 0x01000000) != 0);
3405  }
3417  @java.lang.Override
3418  public double getGlucoseMaxDecay() {
3419  return glucoseMaxDecay_;
3420  }
3421 
3422  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
3423  private double glucoseDecayIncrement_;
3428  @java.lang.Override
3429  public boolean hasGlucoseDecayIncrement() {
3430  return ((bitField0_ & 0x02000000) != 0);
3431  }
3436  @java.lang.Override
3437  public double getGlucoseDecayIncrement() {
3438  return glucoseDecayIncrement_;
3439  }
3440 
3441  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
3442  private int glucoseDecayIncrementPeriod_;
3447  @java.lang.Override
3449  return ((bitField0_ & 0x04000000) != 0);
3450  }
3455  @java.lang.Override
3457  return glucoseDecayIncrementPeriod_;
3458  }
3459 
3460  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
3461  private double clauseActivityDecay_;
3470  @java.lang.Override
3471  public boolean hasClauseActivityDecay() {
3472  return ((bitField0_ & 0x08000000) != 0);
3473  }
3482  @java.lang.Override
3483  public double getClauseActivityDecay() {
3484  return clauseActivityDecay_;
3485  }
3486 
3487  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
3488  private double maxClauseActivityValue_;
3493  @java.lang.Override
3494  public boolean hasMaxClauseActivityValue() {
3495  return ((bitField0_ & 0x10000000) != 0);
3496  }
3501  @java.lang.Override
3502  public double getMaxClauseActivityValue() {
3503  return maxClauseActivityValue_;
3504  }
3505 
3506  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
3507  private java.util.List<java.lang.Integer> restartAlgorithms_;
3508  private static final com.google.protobuf.Internal.ListAdapter.Converter<
3509  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
3510  new com.google.protobuf.Internal.ListAdapter.Converter<
3511  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
3512  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
3513  @SuppressWarnings("deprecation")
3514  com.google.ortools.sat.SatParameters.RestartAlgorithm result = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(from);
3515  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
3516  }
3517  };
3533  @java.lang.Override
3534  public java.util.List<com.google.ortools.sat.SatParameters.RestartAlgorithm> getRestartAlgorithmsList() {
3535  return new com.google.protobuf.Internal.ListAdapter<
3536  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
3537  }
3553  @java.lang.Override
3555  return restartAlgorithms_.size();
3556  }
3573  @java.lang.Override
3574  public com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index) {
3575  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
3576  }
3577 
3578  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
3579  private volatile java.lang.Object defaultRestartAlgorithms_;
3584  @java.lang.Override
3585  public boolean hasDefaultRestartAlgorithms() {
3586  return ((bitField0_ & 0x20000000) != 0);
3587  }
3592  @java.lang.Override
3593  public java.lang.String getDefaultRestartAlgorithms() {
3594  java.lang.Object ref = defaultRestartAlgorithms_;
3595  if (ref instanceof java.lang.String) {
3596  return (java.lang.String) ref;
3597  } else {
3598  com.google.protobuf.ByteString bs =
3599  (com.google.protobuf.ByteString) ref;
3600  java.lang.String s = bs.toStringUtf8();
3601  if (bs.isValidUtf8()) {
3602  defaultRestartAlgorithms_ = s;
3603  }
3604  return s;
3605  }
3606  }
3611  @java.lang.Override
3612  public com.google.protobuf.ByteString
3614  java.lang.Object ref = defaultRestartAlgorithms_;
3615  if (ref instanceof java.lang.String) {
3616  com.google.protobuf.ByteString b =
3617  com.google.protobuf.ByteString.copyFromUtf8(
3618  (java.lang.String) ref);
3619  defaultRestartAlgorithms_ = b;
3620  return b;
3621  } else {
3622  return (com.google.protobuf.ByteString) ref;
3623  }
3624  }
3625 
3626  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
3627  private int restartPeriod_;
3637  @java.lang.Override
3638  public boolean hasRestartPeriod() {
3639  return ((bitField0_ & 0x40000000) != 0);
3640  }
3650  @java.lang.Override
3651  public int getRestartPeriod() {
3652  return restartPeriod_;
3653  }
3654 
3655  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
3656  private int restartRunningWindowSize_;
3665  @java.lang.Override
3666  public boolean hasRestartRunningWindowSize() {
3667  return ((bitField0_ & 0x80000000) != 0);
3668  }
3677  @java.lang.Override
3679  return restartRunningWindowSize_;
3680  }
3681 
3682  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
3683  private double restartDlAverageRatio_;
3693  @java.lang.Override
3694  public boolean hasRestartDlAverageRatio() {
3695  return ((bitField1_ & 0x00000001) != 0);
3696  }
3706  @java.lang.Override
3707  public double getRestartDlAverageRatio() {
3708  return restartDlAverageRatio_;
3709  }
3710 
3711  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
3712  private double restartLbdAverageRatio_;
3717  @java.lang.Override
3718  public boolean hasRestartLbdAverageRatio() {
3719  return ((bitField1_ & 0x00000002) != 0);
3720  }
3725  @java.lang.Override
3726  public double getRestartLbdAverageRatio() {
3727  return restartLbdAverageRatio_;
3728  }
3729 
3730  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3731  private boolean useBlockingRestart_;
3742  @java.lang.Override
3743  public boolean hasUseBlockingRestart() {
3744  return ((bitField1_ & 0x00000004) != 0);
3745  }
3756  @java.lang.Override
3757  public boolean getUseBlockingRestart() {
3758  return useBlockingRestart_;
3759  }
3760 
3761  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3762  private int blockingRestartWindowSize_;
3767  @java.lang.Override
3768  public boolean hasBlockingRestartWindowSize() {
3769  return ((bitField1_ & 0x00000008) != 0);
3770  }
3775  @java.lang.Override
3777  return blockingRestartWindowSize_;
3778  }
3779 
3780  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3781  private double blockingRestartMultiplier_;
3786  @java.lang.Override
3787  public boolean hasBlockingRestartMultiplier() {
3788  return ((bitField1_ & 0x00000010) != 0);
3789  }
3794  @java.lang.Override
3796  return blockingRestartMultiplier_;
3797  }
3798 
3800  private int numConflictsBeforeStrategyChanges_;
3811  @java.lang.Override
3813  return ((bitField1_ & 0x00000020) != 0);
3814  }
3825  @java.lang.Override
3827  return numConflictsBeforeStrategyChanges_;
3828  }
3829 
3830  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3831  private double strategyChangeIncreaseRatio_;
3841  @java.lang.Override
3843  return ((bitField1_ & 0x00000040) != 0);
3844  }
3854  @java.lang.Override
3856  return strategyChangeIncreaseRatio_;
3857  }
3858 
3859  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3860  private double maxTimeInSeconds_;
3870  @java.lang.Override
3871  public boolean hasMaxTimeInSeconds() {
3872  return ((bitField1_ & 0x00000080) != 0);
3873  }
3883  @java.lang.Override
3884  public double getMaxTimeInSeconds() {
3885  return maxTimeInSeconds_;
3886  }
3887 
3888  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3889  private double maxDeterministicTime_;
3900  @java.lang.Override
3901  public boolean hasMaxDeterministicTime() {
3902  return ((bitField1_ & 0x00000100) != 0);
3903  }
3914  @java.lang.Override
3915  public double getMaxDeterministicTime() {
3916  return maxDeterministicTime_;
3917  }
3918 
3919  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3920  private long maxNumberOfConflicts_;
3934  @java.lang.Override
3935  public boolean hasMaxNumberOfConflicts() {
3936  return ((bitField1_ & 0x00000200) != 0);
3937  }
3951  @java.lang.Override
3952  public long getMaxNumberOfConflicts() {
3953  return maxNumberOfConflicts_;
3954  }
3955 
3956  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3957  private long maxMemoryInMb_;
3969  @java.lang.Override
3970  public boolean hasMaxMemoryInMb() {
3971  return ((bitField1_ & 0x00000400) != 0);
3972  }
3984  @java.lang.Override
3985  public long getMaxMemoryInMb() {
3986  return maxMemoryInMb_;
3987  }
3988 
3989  public static final int ABSOLUTE_GAP_LIMIT_FIELD_NUMBER = 159;
3990  private double absoluteGapLimit_;
4008  @java.lang.Override
4009  public boolean hasAbsoluteGapLimit() {
4010  return ((bitField1_ & 0x00000800) != 0);
4011  }
4029  @java.lang.Override
4030  public double getAbsoluteGapLimit() {
4031  return absoluteGapLimit_;
4032  }
4033 
4034  public static final int RELATIVE_GAP_LIMIT_FIELD_NUMBER = 160;
4035  private double relativeGapLimit_;
4040  @java.lang.Override
4041  public boolean hasRelativeGapLimit() {
4042  return ((bitField1_ & 0x00001000) != 0);
4043  }
4048  @java.lang.Override
4049  public double getRelativeGapLimit() {
4050  return relativeGapLimit_;
4051  }
4052 
4053  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
4054  private boolean treatBinaryClausesSeparately_;
4065  @java.lang.Override
4067  return ((bitField1_ & 0x00002000) != 0);
4068  }
4079  @java.lang.Override
4081  return treatBinaryClausesSeparately_;
4082  }
4083 
4084  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
4085  private int randomSeed_;
4099  @java.lang.Override
4100  public boolean hasRandomSeed() {
4101  return ((bitField1_ & 0x00004000) != 0);
4102  }
4116  @java.lang.Override
4117  public int getRandomSeed() {
4118  return randomSeed_;
4119  }
4120 
4121  public static final int PERMUTE_VARIABLE_RANDOMLY_FIELD_NUMBER = 178;
4122  private boolean permuteVariableRandomly_;
4134  @java.lang.Override
4135  public boolean hasPermuteVariableRandomly() {
4136  return ((bitField1_ & 0x00008000) != 0);
4137  }
4149  @java.lang.Override
4150  public boolean getPermuteVariableRandomly() {
4151  return permuteVariableRandomly_;
4152  }
4153 
4154  public static final int PERMUTE_PRESOLVE_CONSTRAINT_ORDER_FIELD_NUMBER = 179;
4155  private boolean permutePresolveConstraintOrder_;
4160  @java.lang.Override
4162  return ((bitField1_ & 0x00010000) != 0);
4163  }
4168  @java.lang.Override
4170  return permutePresolveConstraintOrder_;
4171  }
4172 
4173  public static final int USE_ABSL_RANDOM_FIELD_NUMBER = 180;
4174  private boolean useAbslRandom_;
4179  @java.lang.Override
4180  public boolean hasUseAbslRandom() {
4181  return ((bitField1_ & 0x00020000) != 0);
4182  }
4187  @java.lang.Override
4188  public boolean getUseAbslRandom() {
4189  return useAbslRandom_;
4190  }
4191 
4192  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
4193  private boolean logSearchProgress_;
4202  @java.lang.Override
4203  public boolean hasLogSearchProgress() {
4204  return ((bitField1_ & 0x00040000) != 0);
4205  }
4214  @java.lang.Override
4215  public boolean getLogSearchProgress() {
4216  return logSearchProgress_;
4217  }
4218 
4219  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
4220  private boolean usePbResolution_;
4232  @java.lang.Override
4233  public boolean hasUsePbResolution() {
4234  return ((bitField1_ & 0x00080000) != 0);
4235  }
4247  @java.lang.Override
4248  public boolean getUsePbResolution() {
4249  return usePbResolution_;
4250  }
4251 
4253  private boolean minimizeReductionDuringPbResolution_;
4265  @java.lang.Override
4267  return ((bitField1_ & 0x00100000) != 0);
4268  }
4280  @java.lang.Override
4282  return minimizeReductionDuringPbResolution_;
4283  }
4284 
4285  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
4286  private boolean countAssumptionLevelsInLbd_;
4302  @java.lang.Override
4304  return ((bitField1_ & 0x00200000) != 0);
4305  }
4321  @java.lang.Override
4323  return countAssumptionLevelsInLbd_;
4324  }
4325 
4326  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
4327  private int presolveBveThreshold_;
4338  @java.lang.Override
4339  public boolean hasPresolveBveThreshold() {
4340  return ((bitField1_ & 0x00400000) != 0);
4341  }
4352  @java.lang.Override
4354  return presolveBveThreshold_;
4355  }
4356 
4357  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
4358  private int presolveBveClauseWeight_;
4368  @java.lang.Override
4369  public boolean hasPresolveBveClauseWeight() {
4370  return ((bitField1_ & 0x00800000) != 0);
4371  }
4381  @java.lang.Override
4383  return presolveBveClauseWeight_;
4384  }
4385 
4387  private double presolveProbingDeterministicTimeLimit_;
4397  @java.lang.Override
4399  return ((bitField1_ & 0x01000000) != 0);
4400  }
4410  @java.lang.Override
4412  return presolveProbingDeterministicTimeLimit_;
4413  }
4414 
4415  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
4416  private boolean presolveBlockedClause_;
4426  @java.lang.Override
4427  public boolean hasPresolveBlockedClause() {
4428  return ((bitField1_ & 0x02000000) != 0);
4429  }
4439  @java.lang.Override
4440  public boolean getPresolveBlockedClause() {
4441  return presolveBlockedClause_;
4442  }
4443 
4444  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
4445  private boolean presolveUseBva_;
4454  @java.lang.Override
4455  public boolean hasPresolveUseBva() {
4456  return ((bitField1_ & 0x04000000) != 0);
4457  }
4466  @java.lang.Override
4467  public boolean getPresolveUseBva() {
4468  return presolveUseBva_;
4469  }
4470 
4471  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
4472  private int presolveBvaThreshold_;
4484  @java.lang.Override
4485  public boolean hasPresolveBvaThreshold() {
4486  return ((bitField1_ & 0x08000000) != 0);
4487  }
4499  @java.lang.Override
4501  return presolveBvaThreshold_;
4502  }
4503 
4504  public static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER = 138;
4505  private int maxPresolveIterations_;
4516  @java.lang.Override
4517  public boolean hasMaxPresolveIterations() {
4518  return ((bitField1_ & 0x10000000) != 0);
4519  }
4530  @java.lang.Override
4532  return maxPresolveIterations_;
4533  }
4534 
4535  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
4536  private boolean cpModelPresolve_;
4545  @java.lang.Override
4546  public boolean hasCpModelPresolve() {
4547  return ((bitField1_ & 0x20000000) != 0);
4548  }
4557  @java.lang.Override
4558  public boolean getCpModelPresolve() {
4559  return cpModelPresolve_;
4560  }
4561 
4563  private boolean cpModelPostsolveWithFullSolver_;
4575  @java.lang.Override
4577  return ((bitField1_ & 0x40000000) != 0);
4578  }
4590  @java.lang.Override
4592  return cpModelPostsolveWithFullSolver_;
4593  }
4594 
4596  private int cpModelMaxNumPresolveOperations_;
4606  @java.lang.Override
4608  return ((bitField1_ & 0x80000000) != 0);
4609  }
4619  @java.lang.Override
4621  return cpModelMaxNumPresolveOperations_;
4622  }
4623 
4624  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
4625  private int cpModelProbingLevel_;
4634  @java.lang.Override
4635  public boolean hasCpModelProbingLevel() {
4636  return ((bitField2_ & 0x00000001) != 0);
4637  }
4646  @java.lang.Override
4647  public int getCpModelProbingLevel() {
4648  return cpModelProbingLevel_;
4649  }
4650 
4651  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
4652  private boolean cpModelUseSatPresolve_;
4661  @java.lang.Override
4662  public boolean hasCpModelUseSatPresolve() {
4663  return ((bitField2_ & 0x00000002) != 0);
4664  }
4673  @java.lang.Override
4674  public boolean getCpModelUseSatPresolve() {
4675  return cpModelUseSatPresolve_;
4676  }
4677 
4678  public static final int USE_SAT_INPROCESSING_FIELD_NUMBER = 163;
4679  private boolean useSatInprocessing_;
4684  @java.lang.Override
4685  public boolean hasUseSatInprocessing() {
4686  return ((bitField2_ & 0x00000004) != 0);
4687  }
4692  @java.lang.Override
4693  public boolean getUseSatInprocessing() {
4694  return useSatInprocessing_;
4695  }
4696 
4697  public static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER = 140;
4698  private boolean expandElementConstraints_;
4708  @java.lang.Override
4709  public boolean hasExpandElementConstraints() {
4710  return ((bitField2_ & 0x00000008) != 0);
4711  }
4721  @java.lang.Override
4722  public boolean getExpandElementConstraints() {
4723  return expandElementConstraints_;
4724  }
4725 
4726  public static final int EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER = 143;
4727  private boolean expandAutomatonConstraints_;
4736  @java.lang.Override
4738  return ((bitField2_ & 0x00000010) != 0);
4739  }
4748  @java.lang.Override
4750  return expandAutomatonConstraints_;
4751  }
4752 
4753  public static final int EXPAND_TABLE_CONSTRAINTS_FIELD_NUMBER = 158;
4754  private boolean expandTableConstraints_;
4764  @java.lang.Override
4765  public boolean hasExpandTableConstraints() {
4766  return ((bitField2_ & 0x00000020) != 0);
4767  }
4777  @java.lang.Override
4778  public boolean getExpandTableConstraints() {
4779  return expandTableConstraints_;
4780  }
4781 
4782  public static final int EXPAND_ALLDIFF_CONSTRAINTS_FIELD_NUMBER = 170;
4783  private boolean expandAlldiffConstraints_;
4793  @java.lang.Override
4794  public boolean hasExpandAlldiffConstraints() {
4795  return ((bitField2_ & 0x00000040) != 0);
4796  }
4806  @java.lang.Override
4807  public boolean getExpandAlldiffConstraints() {
4808  return expandAlldiffConstraints_;
4809  }
4810 
4811  public static final int EXPAND_RESERVOIR_CONSTRAINTS_FIELD_NUMBER = 182;
4812  private boolean expandReservoirConstraints_;
4822  @java.lang.Override
4824  return ((bitField2_ & 0x00000080) != 0);
4825  }
4835  @java.lang.Override
4837  return expandReservoirConstraints_;
4838  }
4839 
4840  public static final int DISABLE_CONSTRAINT_EXPANSION_FIELD_NUMBER = 181;
4841  private boolean disableConstraintExpansion_;
4851  @java.lang.Override
4853  return ((bitField2_ & 0x00000100) != 0);
4854  }
4864  @java.lang.Override
4866  return disableConstraintExpansion_;
4867  }
4868 
4869  public static final int MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER = 145;
4870  private double mergeNoOverlapWorkLimit_;
4883  @java.lang.Override
4884  public boolean hasMergeNoOverlapWorkLimit() {
4885  return ((bitField2_ & 0x00000200) != 0);
4886  }
4899  @java.lang.Override
4900  public double getMergeNoOverlapWorkLimit() {
4901  return mergeNoOverlapWorkLimit_;
4902  }
4903 
4904  public static final int MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER = 146;
4905  private double mergeAtMostOneWorkLimit_;
4910  @java.lang.Override
4911  public boolean hasMergeAtMostOneWorkLimit() {
4912  return ((bitField2_ & 0x00000400) != 0);
4913  }
4918  @java.lang.Override
4919  public double getMergeAtMostOneWorkLimit() {
4920  return mergeAtMostOneWorkLimit_;
4921  }
4922 
4923  public static final int PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER = 147;
4924  private int presolveSubstitutionLevel_;
4936  @java.lang.Override
4937  public boolean hasPresolveSubstitutionLevel() {
4938  return ((bitField2_ & 0x00000800) != 0);
4939  }
4951  @java.lang.Override
4953  return presolveSubstitutionLevel_;
4954  }
4955 
4957  private boolean presolveExtractIntegerEnforcement_;
4971  @java.lang.Override
4973  return ((bitField2_ & 0x00001000) != 0);
4974  }
4988  @java.lang.Override
4990  return presolveExtractIntegerEnforcement_;
4991  }
4992 
4993  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
4994  private boolean useOptimizationHints_;
5006  @java.lang.Override
5007  public boolean hasUseOptimizationHints() {
5008  return ((bitField2_ & 0x00002000) != 0);
5009  }
5021  @java.lang.Override
5022  public boolean getUseOptimizationHints() {
5023  return useOptimizationHints_;
5024  }
5025 
5026  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
5027  private boolean minimizeCore_;
5036  @java.lang.Override
5037  public boolean hasMinimizeCore() {
5038  return ((bitField2_ & 0x00004000) != 0);
5039  }
5048  @java.lang.Override
5049  public boolean getMinimizeCore() {
5050  return minimizeCore_;
5051  }
5052 
5053  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
5054  private boolean findMultipleCores_;
5064  @java.lang.Override
5065  public boolean hasFindMultipleCores() {
5066  return ((bitField2_ & 0x00008000) != 0);
5067  }
5077  @java.lang.Override
5078  public boolean getFindMultipleCores() {
5079  return findMultipleCores_;
5080  }
5081 
5082  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
5083  private boolean coverOptimization_;
5093  @java.lang.Override
5094  public boolean hasCoverOptimization() {
5095  return ((bitField2_ & 0x00010000) != 0);
5096  }
5106  @java.lang.Override
5107  public boolean getCoverOptimization() {
5108  return coverOptimization_;
5109  }
5110 
5111  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
5112  private int maxSatAssumptionOrder_;
5117  @java.lang.Override public boolean hasMaxSatAssumptionOrder() {
5118  return ((bitField2_ & 0x00020000) != 0);
5119  }
5124  @java.lang.Override public com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder() {
5125  @SuppressWarnings("deprecation")
5126  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder result = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(maxSatAssumptionOrder_);
5127  return result == null ? com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.DEFAULT_ASSUMPTION_ORDER : result;
5128  }
5129 
5131  private boolean maxSatReverseAssumptionOrder_;
5141  @java.lang.Override
5143  return ((bitField2_ & 0x00040000) != 0);
5144  }
5154  @java.lang.Override
5156  return maxSatReverseAssumptionOrder_;
5157  }
5158 
5159  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
5160  private int maxSatStratification_;
5165  @java.lang.Override public boolean hasMaxSatStratification() {
5166  return ((bitField2_ & 0x00080000) != 0);
5167  }
5172  @java.lang.Override public com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification() {
5173  @SuppressWarnings("deprecation")
5174  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm result = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(maxSatStratification_);
5175  return result == null ? com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.STRATIFICATION_DESCENT : result;
5176  }
5177 
5179  private boolean usePrecedencesInDisjunctiveConstraint_;
5195  @java.lang.Override
5197  return ((bitField2_ & 0x00100000) != 0);
5198  }
5214  @java.lang.Override
5216  return usePrecedencesInDisjunctiveConstraint_;
5217  }
5218 
5220  private boolean useOverloadCheckerInCumulativeConstraint_;
5234  @java.lang.Override
5236  return ((bitField2_ & 0x00200000) != 0);
5237  }
5251  @java.lang.Override
5253  return useOverloadCheckerInCumulativeConstraint_;
5254  }
5255 
5257  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
5271  @java.lang.Override
5273  return ((bitField2_ & 0x00400000) != 0);
5274  }
5288  @java.lang.Override
5290  return useTimetableEdgeFindingInCumulativeConstraint_;
5291  }
5292 
5294  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
5310  @java.lang.Override
5312  return ((bitField2_ & 0x00800000) != 0);
5313  }
5329  @java.lang.Override
5331  return useDisjunctiveConstraintInCumulativeConstraint_;
5332  }
5333 
5334  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
5335  private int linearizationLevel_;
5347  @java.lang.Override
5348  public boolean hasLinearizationLevel() {
5349  return ((bitField2_ & 0x01000000) != 0);
5350  }
5362  @java.lang.Override
5363  public int getLinearizationLevel() {
5364  return linearizationLevel_;
5365  }
5366 
5367  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
5368  private int booleanEncodingLevel_;
5378  @java.lang.Override
5379  public boolean hasBooleanEncodingLevel() {
5380  return ((bitField2_ & 0x02000000) != 0);
5381  }
5391  @java.lang.Override
5393  return booleanEncodingLevel_;
5394  }
5395 
5396  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
5397  private int maxNumCuts_;
5409  @java.lang.Override
5410  public boolean hasMaxNumCuts() {
5411  return ((bitField2_ & 0x04000000) != 0);
5412  }
5424  @java.lang.Override
5425  public int getMaxNumCuts() {
5426  return maxNumCuts_;
5427  }
5428 
5429  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
5430  private boolean onlyAddCutsAtLevelZero_;
5440  @java.lang.Override
5441  public boolean hasOnlyAddCutsAtLevelZero() {
5442  return ((bitField2_ & 0x08000000) != 0);
5443  }
5453  @java.lang.Override
5454  public boolean getOnlyAddCutsAtLevelZero() {
5455  return onlyAddCutsAtLevelZero_;
5456  }
5457 
5458  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
5459  private boolean addKnapsackCuts_;
5470  @java.lang.Override
5471  public boolean hasAddKnapsackCuts() {
5472  return ((bitField2_ & 0x10000000) != 0);
5473  }
5484  @java.lang.Override
5485  public boolean getAddKnapsackCuts() {
5486  return addKnapsackCuts_;
5487  }
5488 
5489  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
5490  private boolean addCgCuts_;
5500  @java.lang.Override
5501  public boolean hasAddCgCuts() {
5502  return ((bitField2_ & 0x20000000) != 0);
5503  }
5513  @java.lang.Override
5514  public boolean getAddCgCuts() {
5515  return addCgCuts_;
5516  }
5517 
5518  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
5519  private boolean addMirCuts_;
5529  @java.lang.Override
5530  public boolean hasAddMirCuts() {
5531  return ((bitField2_ & 0x40000000) != 0);
5532  }
5542  @java.lang.Override
5543  public boolean getAddMirCuts() {
5544  return addMirCuts_;
5545  }
5546 
5547  public static final int ADD_ZERO_HALF_CUTS_FIELD_NUMBER = 169;
5548  private boolean addZeroHalfCuts_;
5558  @java.lang.Override
5559  public boolean hasAddZeroHalfCuts() {
5560  return ((bitField2_ & 0x80000000) != 0);
5561  }
5571  @java.lang.Override
5572  public boolean getAddZeroHalfCuts() {
5573  return addZeroHalfCuts_;
5574  }
5575 
5576  public static final int ADD_CLIQUE_CUTS_FIELD_NUMBER = 172;
5577  private boolean addCliqueCuts_;
5588  @java.lang.Override
5589  public boolean hasAddCliqueCuts() {
5590  return ((bitField3_ & 0x00000001) != 0);
5591  }
5602  @java.lang.Override
5603  public boolean getAddCliqueCuts() {
5604  return addCliqueCuts_;
5605  }
5606 
5607  public static final int MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER = 148;
5608  private int maxAllDiffCutSize_;
5619  @java.lang.Override
5620  public boolean hasMaxAllDiffCutSize() {
5621  return ((bitField3_ & 0x00000002) != 0);
5622  }
5633  @java.lang.Override
5634  public int getMaxAllDiffCutSize() {
5635  return maxAllDiffCutSize_;
5636  }
5637 
5638  public static final int ADD_LIN_MAX_CUTS_FIELD_NUMBER = 152;
5639  private boolean addLinMaxCuts_;
5650  @java.lang.Override
5651  public boolean hasAddLinMaxCuts() {
5652  return ((bitField3_ & 0x00000004) != 0);
5653  }
5664  @java.lang.Override
5665  public boolean getAddLinMaxCuts() {
5666  return addLinMaxCuts_;
5667  }
5668 
5669  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
5670  private int maxIntegerRoundingScaling_;
5685  @java.lang.Override
5686  public boolean hasMaxIntegerRoundingScaling() {
5687  return ((bitField3_ & 0x00000008) != 0);
5688  }
5703  @java.lang.Override
5705  return maxIntegerRoundingScaling_;
5706  }
5707 
5708  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
5709  private boolean addLpConstraintsLazily_;
5721  @java.lang.Override
5722  public boolean hasAddLpConstraintsLazily() {
5723  return ((bitField3_ & 0x00000010) != 0);
5724  }
5736  @java.lang.Override
5737  public boolean getAddLpConstraintsLazily() {
5738  return addLpConstraintsLazily_;
5739  }
5740 
5742  private double minOrthogonalityForLpConstraints_;
5755  @java.lang.Override
5757  return ((bitField3_ & 0x00000020) != 0);
5758  }
5771  @java.lang.Override
5773  return minOrthogonalityForLpConstraints_;
5774  }
5775 
5776  public static final int MAX_CUT_ROUNDS_AT_LEVEL_ZERO_FIELD_NUMBER = 154;
5777  private int maxCutRoundsAtLevelZero_;
5786  @java.lang.Override
5787  public boolean hasMaxCutRoundsAtLevelZero() {
5788  return ((bitField3_ & 0x00000040) != 0);
5789  }
5798  @java.lang.Override
5800  return maxCutRoundsAtLevelZero_;
5801  }
5802 
5803  public static final int MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER = 121;
5804  private int maxConsecutiveInactiveCount_;
5815  @java.lang.Override
5817  return ((bitField3_ & 0x00000080) != 0);
5818  }
5829  @java.lang.Override
5831  return maxConsecutiveInactiveCount_;
5832  }
5833 
5834  public static final int CUT_MAX_ACTIVE_COUNT_VALUE_FIELD_NUMBER = 155;
5835  private double cutMaxActiveCountValue_;
5846  @java.lang.Override
5847  public boolean hasCutMaxActiveCountValue() {
5848  return ((bitField3_ & 0x00000100) != 0);
5849  }
5860  @java.lang.Override
5861  public double getCutMaxActiveCountValue() {
5862  return cutMaxActiveCountValue_;
5863  }
5864 
5865  public static final int CUT_ACTIVE_COUNT_DECAY_FIELD_NUMBER = 156;
5866  private double cutActiveCountDecay_;
5871  @java.lang.Override
5872  public boolean hasCutActiveCountDecay() {
5873  return ((bitField3_ & 0x00000200) != 0);
5874  }
5879  @java.lang.Override
5880  public double getCutActiveCountDecay() {
5881  return cutActiveCountDecay_;
5882  }
5883 
5884  public static final int CUT_CLEANUP_TARGET_FIELD_NUMBER = 157;
5885  private int cutCleanupTarget_;
5894  @java.lang.Override
5895  public boolean hasCutCleanupTarget() {
5896  return ((bitField3_ & 0x00000400) != 0);
5897  }
5906  @java.lang.Override
5907  public int getCutCleanupTarget() {
5908  return cutCleanupTarget_;
5909  }
5910 
5911  public static final int NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER = 122;
5912  private int newConstraintsBatchSize_;
5922  @java.lang.Override
5923  public boolean hasNewConstraintsBatchSize() {
5924  return ((bitField3_ & 0x00000800) != 0);
5925  }
5935  @java.lang.Override
5937  return newConstraintsBatchSize_;
5938  }
5939 
5940  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
5941  private int searchBranching_;
5946  @java.lang.Override public boolean hasSearchBranching() {
5947  return ((bitField3_ & 0x00001000) != 0);
5948  }
5953  @java.lang.Override public com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching() {
5954  @SuppressWarnings("deprecation")
5955  com.google.ortools.sat.SatParameters.SearchBranching result = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(searchBranching_);
5956  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
5957  }
5958 
5959  public static final int HINT_CONFLICT_LIMIT_FIELD_NUMBER = 153;
5960  private int hintConflictLimit_;
5969  @java.lang.Override
5970  public boolean hasHintConflictLimit() {
5971  return ((bitField3_ & 0x00002000) != 0);
5972  }
5981  @java.lang.Override
5982  public int getHintConflictLimit() {
5983  return hintConflictLimit_;
5984  }
5985 
5986  public static final int REPAIR_HINT_FIELD_NUMBER = 167;
5987  private boolean repairHint_;
5999  @java.lang.Override
6000  public boolean hasRepairHint() {
6001  return ((bitField3_ & 0x00004000) != 0);
6002  }
6014  @java.lang.Override
6015  public boolean getRepairHint() {
6016  return repairHint_;
6017  }
6018 
6019  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
6020  private boolean exploitIntegerLpSolution_;
6032  @java.lang.Override
6033  public boolean hasExploitIntegerLpSolution() {
6034  return ((bitField3_ & 0x00008000) != 0);
6035  }
6047  @java.lang.Override
6048  public boolean getExploitIntegerLpSolution() {
6049  return exploitIntegerLpSolution_;
6050  }
6051 
6052  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
6053  private boolean exploitAllLpSolution_;
6064  @java.lang.Override
6065  public boolean hasExploitAllLpSolution() {
6066  return ((bitField3_ & 0x00010000) != 0);
6067  }
6078  @java.lang.Override
6079  public boolean getExploitAllLpSolution() {
6080  return exploitAllLpSolution_;
6081  }
6082 
6083  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
6084  private boolean exploitBestSolution_;
6093  @java.lang.Override
6094  public boolean hasExploitBestSolution() {
6095  return ((bitField3_ & 0x00020000) != 0);
6096  }
6105  @java.lang.Override
6106  public boolean getExploitBestSolution() {
6107  return exploitBestSolution_;
6108  }
6109 
6110  public static final int EXPLOIT_RELAXATION_SOLUTION_FIELD_NUMBER = 161;
6111  private boolean exploitRelaxationSolution_;
6122  @java.lang.Override
6123  public boolean hasExploitRelaxationSolution() {
6124  return ((bitField3_ & 0x00040000) != 0);
6125  }
6136  @java.lang.Override
6137  public boolean getExploitRelaxationSolution() {
6138  return exploitRelaxationSolution_;
6139  }
6140 
6141  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
6142  private boolean exploitObjective_;
6152  @java.lang.Override
6153  public boolean hasExploitObjective() {
6154  return ((bitField3_ & 0x00080000) != 0);
6155  }
6165  @java.lang.Override
6166  public boolean getExploitObjective() {
6167  return exploitObjective_;
6168  }
6169 
6170  public static final int PROBING_PERIOD_AT_ROOT_FIELD_NUMBER = 142;
6171  private long probingPeriodAtRoot_;
6182  @java.lang.Override
6183  public boolean hasProbingPeriodAtRoot() {
6184  return ((bitField3_ & 0x00100000) != 0);
6185  }
6196  @java.lang.Override
6197  public long getProbingPeriodAtRoot() {
6198  return probingPeriodAtRoot_;
6199  }
6200 
6201  public static final int USE_PROBING_SEARCH_FIELD_NUMBER = 176;
6202  private boolean useProbingSearch_;
6212  @java.lang.Override
6213  public boolean hasUseProbingSearch() {
6214  return ((bitField3_ & 0x00200000) != 0);
6215  }
6225  @java.lang.Override
6226  public boolean getUseProbingSearch() {
6227  return useProbingSearch_;
6228  }
6229 
6230  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
6231  private long pseudoCostReliabilityThreshold_;
6241  @java.lang.Override
6243  return ((bitField3_ & 0x00400000) != 0);
6244  }
6254  @java.lang.Override
6256  return pseudoCostReliabilityThreshold_;
6257  }
6258 
6259  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
6260  private boolean optimizeWithCore_;
6272  @java.lang.Override
6273  public boolean hasOptimizeWithCore() {
6274  return ((bitField3_ & 0x00800000) != 0);
6275  }
6287  @java.lang.Override
6288  public boolean getOptimizeWithCore() {
6289  return optimizeWithCore_;
6290  }
6291 
6292  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
6293  private int binarySearchNumConflicts_;
6305  @java.lang.Override
6306  public boolean hasBinarySearchNumConflicts() {
6307  return ((bitField3_ & 0x01000000) != 0);
6308  }
6320  @java.lang.Override
6322  return binarySearchNumConflicts_;
6323  }
6324 
6325  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
6326  private boolean optimizeWithMaxHs_;
6340  @java.lang.Override
6341  public boolean hasOptimizeWithMaxHs() {
6342  return ((bitField3_ & 0x02000000) != 0);
6343  }
6357  @java.lang.Override
6358  public boolean getOptimizeWithMaxHs() {
6359  return optimizeWithMaxHs_;
6360  }
6361 
6362  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
6363  private boolean enumerateAllSolutions_;
6377  @java.lang.Override
6378  public boolean hasEnumerateAllSolutions() {
6379  return ((bitField3_ & 0x04000000) != 0);
6380  }
6394  @java.lang.Override
6395  public boolean getEnumerateAllSolutions() {
6396  return enumerateAllSolutions_;
6397  }
6398 
6400  private boolean keepAllFeasibleSolutionsInPresolve_;
6415  @java.lang.Override
6417  return ((bitField3_ & 0x08000000) != 0);
6418  }
6433  @java.lang.Override
6435  return keepAllFeasibleSolutionsInPresolve_;
6436  }
6437 
6439  private boolean fillTightenedDomainsInResponse_;
6452  @java.lang.Override
6454  return ((bitField3_ & 0x10000000) != 0);
6455  }
6468  @java.lang.Override
6470  return fillTightenedDomainsInResponse_;
6471  }
6472 
6473  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
6474  private boolean instantiateAllVariables_;
6484  @java.lang.Override
6485  public boolean hasInstantiateAllVariables() {
6486  return ((bitField3_ & 0x20000000) != 0);
6487  }
6497  @java.lang.Override
6498  public boolean getInstantiateAllVariables() {
6499  return instantiateAllVariables_;
6500  }
6501 
6503  private boolean autoDetectGreaterThanAtLeastOneOf_;
6515  @java.lang.Override
6517  return ((bitField3_ & 0x40000000) != 0);
6518  }
6530  @java.lang.Override
6532  return autoDetectGreaterThanAtLeastOneOf_;
6533  }
6534 
6535  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
6536  private boolean stopAfterFirstSolution_;
6545  @java.lang.Override
6546  public boolean hasStopAfterFirstSolution() {
6547  return ((bitField3_ & 0x80000000) != 0);
6548  }
6557  @java.lang.Override
6558  public boolean getStopAfterFirstSolution() {
6559  return stopAfterFirstSolution_;
6560  }
6561 
6562  public static final int STOP_AFTER_PRESOLVE_FIELD_NUMBER = 149;
6563  private boolean stopAfterPresolve_;
6573  @java.lang.Override
6574  public boolean hasStopAfterPresolve() {
6575  return ((bitField4_ & 0x00000001) != 0);
6576  }
6586  @java.lang.Override
6587  public boolean getStopAfterPresolve() {
6588  return stopAfterPresolve_;
6589  }
6590 
6591  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
6592  private int numSearchWorkers_;
6606  @java.lang.Override
6607  public boolean hasNumSearchWorkers() {
6608  return ((bitField4_ & 0x00000002) != 0);
6609  }
6623  @java.lang.Override
6624  public int getNumSearchWorkers() {
6625  return numSearchWorkers_;
6626  }
6627 
6628  public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
6629  private boolean interleaveSearch_;
6642  @java.lang.Override
6643  public boolean hasInterleaveSearch() {
6644  return ((bitField4_ & 0x00000004) != 0);
6645  }
6658  @java.lang.Override
6659  public boolean getInterleaveSearch() {
6660  return interleaveSearch_;
6661  }
6662 
6663  public static final int INTERLEAVE_BATCH_SIZE_FIELD_NUMBER = 134;
6664  private int interleaveBatchSize_;
6669  @java.lang.Override
6670  public boolean hasInterleaveBatchSize() {
6671  return ((bitField4_ & 0x00000008) != 0);
6672  }
6677  @java.lang.Override
6678  public int getInterleaveBatchSize() {
6679  return interleaveBatchSize_;
6680  }
6681 
6683  private boolean reduceMemoryUsageInInterleaveMode_;
6692  @java.lang.Override
6694  return ((bitField4_ & 0x00000010) != 0);
6695  }
6704  @java.lang.Override
6706  return reduceMemoryUsageInInterleaveMode_;
6707  }
6708 
6709  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
6710  private boolean shareObjectiveBounds_;
6719  @java.lang.Override
6720  public boolean hasShareObjectiveBounds() {
6721  return ((bitField4_ & 0x00000020) != 0);
6722  }
6731  @java.lang.Override
6732  public boolean getShareObjectiveBounds() {
6733  return shareObjectiveBounds_;
6734  }
6735 
6736  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
6737  private boolean shareLevelZeroBounds_;
6746  @java.lang.Override
6747  public boolean hasShareLevelZeroBounds() {
6748  return ((bitField4_ & 0x00000040) != 0);
6749  }
6758  @java.lang.Override
6759  public boolean getShareLevelZeroBounds() {
6760  return shareLevelZeroBounds_;
6761  }
6762 
6763  public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
6764  private boolean useLnsOnly_;
6773  @java.lang.Override
6774  public boolean hasUseLnsOnly() {
6775  return ((bitField4_ & 0x00000080) != 0);
6776  }
6785  @java.lang.Override
6786  public boolean getUseLnsOnly() {
6787  return useLnsOnly_;
6788  }
6789 
6790  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
6791  private boolean lnsFocusOnDecisionVariables_;
6796  @java.lang.Override
6798  return ((bitField4_ & 0x00000100) != 0);
6799  }
6804  @java.lang.Override
6806  return lnsFocusOnDecisionVariables_;
6807  }
6808 
6809  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
6810  private boolean useRinsLns_;
6819  @java.lang.Override
6820  public boolean hasUseRinsLns() {
6821  return ((bitField4_ & 0x00000200) != 0);
6822  }
6831  @java.lang.Override
6832  public boolean getUseRinsLns() {
6833  return useRinsLns_;
6834  }
6835 
6836  public static final int USE_FEASIBILITY_PUMP_FIELD_NUMBER = 164;
6837  private boolean useFeasibilityPump_;
6846  @java.lang.Override
6847  public boolean hasUseFeasibilityPump() {
6848  return ((bitField4_ & 0x00000400) != 0);
6849  }
6858  @java.lang.Override
6859  public boolean getUseFeasibilityPump() {
6860  return useFeasibilityPump_;
6861  }
6862 
6863  public static final int FP_ROUNDING_FIELD_NUMBER = 165;
6864  private int fpRounding_;
6869  @java.lang.Override public boolean hasFpRounding() {
6870  return ((bitField4_ & 0x00000800) != 0);
6871  }
6876  @java.lang.Override public com.google.ortools.sat.SatParameters.FPRoundingMethod getFpRounding() {
6877  @SuppressWarnings("deprecation")
6878  com.google.ortools.sat.SatParameters.FPRoundingMethod result = com.google.ortools.sat.SatParameters.FPRoundingMethod.valueOf(fpRounding_);
6879  return result == null ? com.google.ortools.sat.SatParameters.FPRoundingMethod.PROPAGATION_ASSISTED : result;
6880  }
6881 
6882  public static final int USE_RELAXATION_LNS_FIELD_NUMBER = 150;
6883  private boolean useRelaxationLns_;
6893  @java.lang.Override
6894  public boolean hasUseRelaxationLns() {
6895  return ((bitField4_ & 0x00001000) != 0);
6896  }
6906  @java.lang.Override
6907  public boolean getUseRelaxationLns() {
6908  return useRelaxationLns_;
6909  }
6910 
6911  public static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER = 137;
6912  private boolean diversifyLnsParams_;
6921  @java.lang.Override
6922  public boolean hasDiversifyLnsParams() {
6923  return ((bitField4_ & 0x00002000) != 0);
6924  }
6933  @java.lang.Override
6934  public boolean getDiversifyLnsParams() {
6935  return diversifyLnsParams_;
6936  }
6937 
6938  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
6939  private boolean randomizeSearch_;
6948  @java.lang.Override
6949  public boolean hasRandomizeSearch() {
6950  return ((bitField4_ & 0x00004000) != 0);
6951  }
6960  @java.lang.Override
6961  public boolean getRandomizeSearch() {
6962  return randomizeSearch_;
6963  }
6964 
6965  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
6966  private long searchRandomizationTolerance_;
6981  @java.lang.Override
6983  return ((bitField4_ & 0x00008000) != 0);
6984  }
6999  @java.lang.Override
7001  return searchRandomizationTolerance_;
7002  }
7003 
7004  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
7005  private boolean useOptionalVariables_;
7016  @java.lang.Override
7017  public boolean hasUseOptionalVariables() {
7018  return ((bitField4_ & 0x00010000) != 0);
7019  }
7030  @java.lang.Override
7031  public boolean getUseOptionalVariables() {
7032  return useOptionalVariables_;
7033  }
7034 
7035  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
7036  private boolean useExactLpReason_;
7048  @java.lang.Override
7049  public boolean hasUseExactLpReason() {
7050  return ((bitField4_ & 0x00020000) != 0);
7051  }
7063  @java.lang.Override
7064  public boolean getUseExactLpReason() {
7065  return useExactLpReason_;
7066  }
7067 
7068  public static final int USE_BRANCHING_IN_LP_FIELD_NUMBER = 139;
7069  private boolean useBranchingInLp_;
7080  @java.lang.Override
7081  public boolean hasUseBranchingInLp() {
7082  return ((bitField4_ & 0x00040000) != 0);
7083  }
7094  @java.lang.Override
7095  public boolean getUseBranchingInLp() {
7096  return useBranchingInLp_;
7097  }
7098 
7099  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
7100  private boolean useCombinedNoOverlap_;
7111  @java.lang.Override
7112  public boolean hasUseCombinedNoOverlap() {
7113  return ((bitField4_ & 0x00080000) != 0);
7114  }
7125  @java.lang.Override
7126  public boolean getUseCombinedNoOverlap() {
7127  return useCombinedNoOverlap_;
7128  }
7129 
7130  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
7131  private boolean catchSigintSignal_;
7142  @java.lang.Override
7143  public boolean hasCatchSigintSignal() {
7144  return ((bitField4_ & 0x00100000) != 0);
7145  }
7156  @java.lang.Override
7157  public boolean getCatchSigintSignal() {
7158  return catchSigintSignal_;
7159  }
7160 
7161  public static final int USE_IMPLIED_BOUNDS_FIELD_NUMBER = 144;
7162  private boolean useImpliedBounds_;
7173  @java.lang.Override
7174  public boolean hasUseImpliedBounds() {
7175  return ((bitField4_ & 0x00200000) != 0);
7176  }
7187  @java.lang.Override
7188  public boolean getUseImpliedBounds() {
7189  return useImpliedBounds_;
7190  }
7191 
7192  public static final int POLISH_LP_SOLUTION_FIELD_NUMBER = 175;
7193  private boolean polishLpSolution_;
7205  @java.lang.Override
7206  public boolean hasPolishLpSolution() {
7207  return ((bitField4_ & 0x00400000) != 0);
7208  }
7220  @java.lang.Override
7221  public boolean getPolishLpSolution() {
7222  return polishLpSolution_;
7223  }
7224 
7225  public static final int CONVERT_INTERVALS_FIELD_NUMBER = 177;
7226  private boolean convertIntervals_;
7237  @java.lang.Override
7238  public boolean hasConvertIntervals() {
7239  return ((bitField4_ & 0x00800000) != 0);
7240  }
7251  @java.lang.Override
7252  public boolean getConvertIntervals() {
7253  return convertIntervals_;
7254  }
7255 
7256  public static final int DETECT_SYMMETRIES_FIELD_NUMBER = 183;
7257  private boolean detectSymmetries_;
7267  @java.lang.Override
7268  public boolean hasDetectSymmetries() {
7269  return ((bitField4_ & 0x01000000) != 0);
7270  }
7280  @java.lang.Override
7281  public boolean getDetectSymmetries() {
7282  return detectSymmetries_;
7283  }
7284 
7285  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
7286  private double mipMaxBound_;
7297  @java.lang.Override
7298  public boolean hasMipMaxBound() {
7299  return ((bitField4_ & 0x02000000) != 0);
7300  }
7311  @java.lang.Override
7312  public double getMipMaxBound() {
7313  return mipMaxBound_;
7314  }
7315 
7316  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
7317  private double mipVarScaling_;
7328  @java.lang.Override
7329  public boolean hasMipVarScaling() {
7330  return ((bitField4_ & 0x04000000) != 0);
7331  }
7342  @java.lang.Override
7343  public double getMipVarScaling() {
7344  return mipVarScaling_;
7345  }
7346 
7347  public static final int MIP_AUTOMATICALLY_SCALE_VARIABLES_FIELD_NUMBER = 166;
7348  private boolean mipAutomaticallyScaleVariables_;
7361  @java.lang.Override
7363  return ((bitField4_ & 0x08000000) != 0);
7364  }
7377  @java.lang.Override
7379  return mipAutomaticallyScaleVariables_;
7380  }
7381 
7382  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
7383  private double mipWantedPrecision_;
7401  @java.lang.Override
7402  public boolean hasMipWantedPrecision() {
7403  return ((bitField4_ & 0x10000000) != 0);
7404  }
7422  @java.lang.Override
7423  public double getMipWantedPrecision() {
7424  return mipWantedPrecision_;
7425  }
7426 
7427  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
7428  private int mipMaxActivityExponent_;
7443  @java.lang.Override
7444  public boolean hasMipMaxActivityExponent() {
7445  return ((bitField4_ & 0x20000000) != 0);
7446  }
7461  @java.lang.Override
7463  return mipMaxActivityExponent_;
7464  }
7465 
7466  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
7467  private double mipCheckPrecision_;
7478  @java.lang.Override
7479  public boolean hasMipCheckPrecision() {
7480  return ((bitField4_ & 0x40000000) != 0);
7481  }
7492  @java.lang.Override
7493  public double getMipCheckPrecision() {
7494  return mipCheckPrecision_;
7495  }
7496 
7497  private byte memoizedIsInitialized = -1;
7498  @java.lang.Override
7499  public final boolean isInitialized() {
7500  byte isInitialized = memoizedIsInitialized;
7501  if (isInitialized == 1) return true;
7502  if (isInitialized == 0) return false;
7503 
7504  memoizedIsInitialized = 1;
7505  return true;
7506  }
7507 
7508  @java.lang.Override
7509  public void writeTo(com.google.protobuf.CodedOutputStream output)
7510  throws java.io.IOException {
7511  if (((bitField0_ & 0x00000002) != 0)) {
7512  output.writeEnum(1, preferredVariableOrder_);
7513  }
7514  if (((bitField0_ & 0x00000004) != 0)) {
7515  output.writeEnum(2, initialPolarity_);
7516  }
7517  if (((bitField0_ & 0x00000400) != 0)) {
7518  output.writeEnum(4, minimizationAlgorithm_);
7519  }
7520  if (((bitField0_ & 0x00002000) != 0)) {
7521  output.writeInt32(11, clauseCleanupPeriod_);
7522  }
7523  if (((bitField0_ & 0x00004000) != 0)) {
7524  output.writeInt32(13, clauseCleanupTarget_);
7525  }
7526  if (((bitField0_ & 0x00400000) != 0)) {
7527  output.writeDouble(15, variableActivityDecay_);
7528  }
7529  if (((bitField0_ & 0x00800000) != 0)) {
7530  output.writeDouble(16, maxVariableActivityValue_);
7531  }
7532  if (((bitField0_ & 0x08000000) != 0)) {
7533  output.writeDouble(17, clauseActivityDecay_);
7534  }
7535  if (((bitField0_ & 0x10000000) != 0)) {
7536  output.writeDouble(18, maxClauseActivityValue_);
7537  }
7538  if (((bitField0_ & 0x01000000) != 0)) {
7539  output.writeDouble(22, glucoseMaxDecay_);
7540  }
7541  if (((bitField0_ & 0x02000000) != 0)) {
7542  output.writeDouble(23, glucoseDecayIncrement_);
7543  }
7544  if (((bitField0_ & 0x04000000) != 0)) {
7545  output.writeInt32(24, glucoseDecayIncrementPeriod_);
7546  }
7547  if (((bitField0_ & 0x40000000) != 0)) {
7548  output.writeInt32(30, restartPeriod_);
7549  }
7550  if (((bitField1_ & 0x00004000) != 0)) {
7551  output.writeInt32(31, randomSeed_);
7552  }
7553  if (((bitField0_ & 0x00000040) != 0)) {
7554  output.writeDouble(32, randomBranchesRatio_);
7555  }
7556  if (((bitField1_ & 0x00002000) != 0)) {
7557  output.writeBool(33, treatBinaryClausesSeparately_);
7558  }
7559  if (((bitField0_ & 0x00000800) != 0)) {
7560  output.writeEnum(34, binaryMinimizationAlgorithm_);
7561  }
7562  if (((bitField2_ & 0x00002000) != 0)) {
7563  output.writeBool(35, useOptimizationHints_);
7564  }
7565  if (((bitField1_ & 0x00000080) != 0)) {
7566  output.writeDouble(36, maxTimeInSeconds_);
7567  }
7568  if (((bitField1_ & 0x00000200) != 0)) {
7569  output.writeInt64(37, maxNumberOfConflicts_);
7570  }
7571  if (((bitField1_ & 0x00000400) != 0)) {
7572  output.writeInt64(40, maxMemoryInMb_);
7573  }
7574  if (((bitField1_ & 0x00040000) != 0)) {
7575  output.writeBool(41, logSearchProgress_);
7576  }
7577  if (((bitField1_ & 0x00080000) != 0)) {
7578  output.writeBool(43, usePbResolution_);
7579  }
7580  if (((bitField0_ & 0x00000008) != 0)) {
7581  output.writeBool(44, usePhaseSaving_);
7582  }
7583  if (((bitField0_ & 0x00000020) != 0)) {
7584  output.writeDouble(45, randomPolarityRatio_);
7585  }
7586  if (((bitField0_ & 0x00040000) != 0)) {
7587  output.writeInt32(46, pbCleanupIncrement_);
7588  }
7589  if (((bitField0_ & 0x00080000) != 0)) {
7590  output.writeDouble(47, pbCleanupRatio_);
7591  }
7592  if (((bitField1_ & 0x00100000) != 0)) {
7593  output.writeBool(48, minimizeReductionDuringPbResolution_);
7594  }
7595  if (((bitField1_ & 0x00200000) != 0)) {
7596  output.writeBool(49, countAssumptionLevelsInLbd_);
7597  }
7598  if (((bitField2_ & 0x00004000) != 0)) {
7599  output.writeBool(50, minimizeCore_);
7600  }
7601  if (((bitField2_ & 0x00020000) != 0)) {
7602  output.writeEnum(51, maxSatAssumptionOrder_);
7603  }
7604  if (((bitField2_ & 0x00040000) != 0)) {
7605  output.writeBool(52, maxSatReverseAssumptionOrder_);
7606  }
7607  if (((bitField2_ & 0x00080000) != 0)) {
7608  output.writeEnum(53, maxSatStratification_);
7609  }
7610  if (((bitField1_ & 0x00400000) != 0)) {
7611  output.writeInt32(54, presolveBveThreshold_);
7612  }
7613  if (((bitField1_ & 0x00800000) != 0)) {
7614  output.writeInt32(55, presolveBveClauseWeight_);
7615  }
7616  if (((bitField0_ & 0x00001000) != 0)) {
7617  output.writeBool(56, subsumptionDuringConflictAnalysis_);
7618  }
7619  if (((bitField1_ & 0x01000000) != 0)) {
7620  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
7621  }
7622  if (((bitField0_ & 0x00008000) != 0)) {
7623  output.writeEnum(58, clauseCleanupProtection_);
7624  }
7625  if (((bitField0_ & 0x00010000) != 0)) {
7626  output.writeInt32(59, clauseCleanupLbdBound_);
7627  }
7628  if (((bitField0_ & 0x00020000) != 0)) {
7629  output.writeEnum(60, clauseCleanupOrdering_);
7630  }
7631  for (int i = 0; i < restartAlgorithms_.size(); i++) {
7632  output.writeEnum(61, restartAlgorithms_.get(i));
7633  }
7634  if (((bitField0_ & 0x80000000) != 0)) {
7635  output.writeInt32(62, restartRunningWindowSize_);
7636  }
7637  if (((bitField1_ & 0x00000001) != 0)) {
7638  output.writeDouble(63, restartDlAverageRatio_);
7639  }
7640  if (((bitField1_ & 0x00000004) != 0)) {
7641  output.writeBool(64, useBlockingRestart_);
7642  }
7643  if (((bitField1_ & 0x00000008) != 0)) {
7644  output.writeInt32(65, blockingRestartWindowSize_);
7645  }
7646  if (((bitField1_ & 0x00000010) != 0)) {
7647  output.writeDouble(66, blockingRestartMultiplier_);
7648  }
7649  if (((bitField1_ & 0x00000100) != 0)) {
7650  output.writeDouble(67, maxDeterministicTime_);
7651  }
7652  if (((bitField1_ & 0x00000020) != 0)) {
7653  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
7654  }
7655  if (((bitField1_ & 0x00000040) != 0)) {
7656  output.writeDouble(69, strategyChangeIncreaseRatio_);
7657  }
7658  if (((bitField0_ & 0x20000000) != 0)) {
7659  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
7660  }
7661  if (((bitField1_ & 0x00000002) != 0)) {
7662  output.writeDouble(71, restartLbdAverageRatio_);
7663  }
7664  if (((bitField1_ & 0x04000000) != 0)) {
7665  output.writeBool(72, presolveUseBva_);
7666  }
7667  if (((bitField1_ & 0x08000000) != 0)) {
7668  output.writeInt32(73, presolveBvaThreshold_);
7669  }
7670  if (((bitField2_ & 0x00100000) != 0)) {
7671  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
7672  }
7673  if (((bitField0_ & 0x00000080) != 0)) {
7674  output.writeBool(75, useErwaHeuristic_);
7675  }
7676  if (((bitField0_ & 0x00000100) != 0)) {
7677  output.writeDouble(76, initialVariablesActivity_);
7678  }
7679  if (((bitField0_ & 0x00000200) != 0)) {
7680  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
7681  }
7682  if (((bitField2_ & 0x00200000) != 0)) {
7683  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
7684  }
7685  if (((bitField2_ & 0x00400000) != 0)) {
7686  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
7687  }
7688  if (((bitField2_ & 0x00800000) != 0)) {
7689  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
7690  }
7691  if (((bitField3_ & 0x00001000) != 0)) {
7692  output.writeEnum(82, searchBranching_);
7693  }
7694  if (((bitField3_ & 0x00800000) != 0)) {
7695  output.writeBool(83, optimizeWithCore_);
7696  }
7697  if (((bitField2_ & 0x00008000) != 0)) {
7698  output.writeBool(84, findMultipleCores_);
7699  }
7700  if (((bitField3_ & 0x02000000) != 0)) {
7701  output.writeBool(85, optimizeWithMaxHs_);
7702  }
7703  if (((bitField1_ & 0x20000000) != 0)) {
7704  output.writeBool(86, cpModelPresolve_);
7705  }
7706  if (((bitField3_ & 0x04000000) != 0)) {
7707  output.writeBool(87, enumerateAllSolutions_);
7708  }
7709  if (((bitField1_ & 0x02000000) != 0)) {
7710  output.writeBool(88, presolveBlockedClause_);
7711  }
7712  if (((bitField2_ & 0x00010000) != 0)) {
7713  output.writeBool(89, coverOptimization_);
7714  }
7715  if (((bitField2_ & 0x01000000) != 0)) {
7716  output.writeInt32(90, linearizationLevel_);
7717  }
7718  if (((bitField2_ & 0x04000000) != 0)) {
7719  output.writeInt32(91, maxNumCuts_);
7720  }
7721  if (((bitField2_ & 0x08000000) != 0)) {
7722  output.writeBool(92, onlyAddCutsAtLevelZero_);
7723  }
7724  if (((bitField2_ & 0x00000002) != 0)) {
7725  output.writeBool(93, cpModelUseSatPresolve_);
7726  }
7727  if (((bitField3_ & 0x00008000) != 0)) {
7728  output.writeBool(94, exploitIntegerLpSolution_);
7729  }
7730  if (((bitField3_ & 0x40000000) != 0)) {
7731  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
7732  }
7733  if (((bitField0_ & 0x00100000) != 0)) {
7734  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
7735  }
7736  if (((bitField0_ & 0x00200000) != 0)) {
7737  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
7738  }
7739  if (((bitField3_ & 0x80000000) != 0)) {
7740  output.writeBool(98, stopAfterFirstSolution_);
7741  }
7742  if (((bitField3_ & 0x01000000) != 0)) {
7743  output.writeInt32(99, binarySearchNumConflicts_);
7744  }
7745  if (((bitField4_ & 0x00000002) != 0)) {
7746  output.writeInt32(100, numSearchWorkers_);
7747  }
7748  if (((bitField4_ & 0x00000080) != 0)) {
7749  output.writeBool(101, useLnsOnly_);
7750  }
7751  if (((bitField4_ & 0x00004000) != 0)) {
7752  output.writeBool(103, randomizeSearch_);
7753  }
7754  if (((bitField4_ & 0x00008000) != 0)) {
7755  output.writeInt64(104, searchRandomizationTolerance_);
7756  }
7757  if (((bitField4_ & 0x00000100) != 0)) {
7758  output.writeBool(105, lnsFocusOnDecisionVariables_);
7759  }
7760  if (((bitField3_ & 0x20000000) != 0)) {
7761  output.writeBool(106, instantiateAllVariables_);
7762  }
7763  if (((bitField2_ & 0x02000000) != 0)) {
7764  output.writeInt32(107, booleanEncodingLevel_);
7765  }
7766  if (((bitField4_ & 0x00010000) != 0)) {
7767  output.writeBool(108, useOptionalVariables_);
7768  }
7769  if (((bitField4_ & 0x00020000) != 0)) {
7770  output.writeBool(109, useExactLpReason_);
7771  }
7772  if (((bitField2_ & 0x00000001) != 0)) {
7773  output.writeInt32(110, cpModelProbingLevel_);
7774  }
7775  if (((bitField2_ & 0x10000000) != 0)) {
7776  output.writeBool(111, addKnapsackCuts_);
7777  }
7778  if (((bitField3_ & 0x00000010) != 0)) {
7779  output.writeBool(112, addLpConstraintsLazily_);
7780  }
7781  if (((bitField4_ & 0x00000020) != 0)) {
7782  output.writeBool(113, shareObjectiveBounds_);
7783  }
7784  if (((bitField4_ & 0x00000040) != 0)) {
7785  output.writeBool(114, shareLevelZeroBounds_);
7786  }
7787  if (((bitField3_ & 0x00000020) != 0)) {
7788  output.writeDouble(115, minOrthogonalityForLpConstraints_);
7789  }
7790  if (((bitField3_ & 0x00010000) != 0)) {
7791  output.writeBool(116, exploitAllLpSolution_);
7792  }
7793  if (((bitField2_ & 0x20000000) != 0)) {
7794  output.writeBool(117, addCgCuts_);
7795  }
7796  if (((bitField3_ & 0x00000008) != 0)) {
7797  output.writeInt32(119, maxIntegerRoundingScaling_);
7798  }
7799  if (((bitField2_ & 0x40000000) != 0)) {
7800  output.writeBool(120, addMirCuts_);
7801  }
7802  if (((bitField3_ & 0x00000080) != 0)) {
7803  output.writeInt32(121, maxConsecutiveInactiveCount_);
7804  }
7805  if (((bitField3_ & 0x00000800) != 0)) {
7806  output.writeInt32(122, newConstraintsBatchSize_);
7807  }
7808  if (((bitField3_ & 0x00400000) != 0)) {
7809  output.writeInt64(123, pseudoCostReliabilityThreshold_);
7810  }
7811  if (((bitField4_ & 0x02000000) != 0)) {
7812  output.writeDouble(124, mipMaxBound_);
7813  }
7814  if (((bitField4_ & 0x04000000) != 0)) {
7815  output.writeDouble(125, mipVarScaling_);
7816  }
7817  if (((bitField4_ & 0x10000000) != 0)) {
7818  output.writeDouble(126, mipWantedPrecision_);
7819  }
7820  if (((bitField4_ & 0x20000000) != 0)) {
7821  output.writeInt32(127, mipMaxActivityExponent_);
7822  }
7823  if (((bitField4_ & 0x40000000) != 0)) {
7824  output.writeDouble(128, mipCheckPrecision_);
7825  }
7826  if (((bitField4_ & 0x00000200) != 0)) {
7827  output.writeBool(129, useRinsLns_);
7828  }
7829  if (((bitField3_ & 0x00020000) != 0)) {
7830  output.writeBool(130, exploitBestSolution_);
7831  }
7832  if (((bitField3_ & 0x00080000) != 0)) {
7833  output.writeBool(131, exploitObjective_);
7834  }
7835  if (((bitField3_ & 0x10000000) != 0)) {
7836  output.writeBool(132, fillTightenedDomainsInResponse_);
7837  }
7838  if (((bitField4_ & 0x00080000) != 0)) {
7839  output.writeBool(133, useCombinedNoOverlap_);
7840  }
7841  if (((bitField4_ & 0x00000008) != 0)) {
7842  output.writeInt32(134, interleaveBatchSize_);
7843  }
7844  if (((bitField4_ & 0x00100000) != 0)) {
7845  output.writeBool(135, catchSigintSignal_);
7846  }
7847  if (((bitField4_ & 0x00000004) != 0)) {
7848  output.writeBool(136, interleaveSearch_);
7849  }
7850  if (((bitField4_ & 0x00002000) != 0)) {
7851  output.writeBool(137, diversifyLnsParams_);
7852  }
7853  if (((bitField1_ & 0x10000000) != 0)) {
7854  output.writeInt32(138, maxPresolveIterations_);
7855  }
7856  if (((bitField4_ & 0x00040000) != 0)) {
7857  output.writeBool(139, useBranchingInLp_);
7858  }
7859  if (((bitField2_ & 0x00000008) != 0)) {
7860  output.writeBool(140, expandElementConstraints_);
7861  }
7862  if (((bitField4_ & 0x00000010) != 0)) {
7863  output.writeBool(141, reduceMemoryUsageInInterleaveMode_);
7864  }
7865  if (((bitField3_ & 0x00100000) != 0)) {
7866  output.writeInt64(142, probingPeriodAtRoot_);
7867  }
7868  if (((bitField2_ & 0x00000010) != 0)) {
7869  output.writeBool(143, expandAutomatonConstraints_);
7870  }
7871  if (((bitField4_ & 0x00200000) != 0)) {
7872  output.writeBool(144, useImpliedBounds_);
7873  }
7874  if (((bitField2_ & 0x00000200) != 0)) {
7875  output.writeDouble(145, mergeNoOverlapWorkLimit_);
7876  }
7877  if (((bitField2_ & 0x00000400) != 0)) {
7878  output.writeDouble(146, mergeAtMostOneWorkLimit_);
7879  }
7880  if (((bitField2_ & 0x00000800) != 0)) {
7881  output.writeInt32(147, presolveSubstitutionLevel_);
7882  }
7883  if (((bitField3_ & 0x00000002) != 0)) {
7884  output.writeInt32(148, maxAllDiffCutSize_);
7885  }
7886  if (((bitField4_ & 0x00000001) != 0)) {
7887  output.writeBool(149, stopAfterPresolve_);
7888  }
7889  if (((bitField4_ & 0x00001000) != 0)) {
7890  output.writeBool(150, useRelaxationLns_);
7891  }
7892  if (((bitField1_ & 0x80000000) != 0)) {
7893  output.writeInt32(151, cpModelMaxNumPresolveOperations_);
7894  }
7895  if (((bitField3_ & 0x00000004) != 0)) {
7896  output.writeBool(152, addLinMaxCuts_);
7897  }
7898  if (((bitField3_ & 0x00002000) != 0)) {
7899  output.writeInt32(153, hintConflictLimit_);
7900  }
7901  if (((bitField3_ & 0x00000040) != 0)) {
7902  output.writeInt32(154, maxCutRoundsAtLevelZero_);
7903  }
7904  if (((bitField3_ & 0x00000100) != 0)) {
7905  output.writeDouble(155, cutMaxActiveCountValue_);
7906  }
7907  if (((bitField3_ & 0x00000200) != 0)) {
7908  output.writeDouble(156, cutActiveCountDecay_);
7909  }
7910  if (((bitField3_ & 0x00000400) != 0)) {
7911  output.writeInt32(157, cutCleanupTarget_);
7912  }
7913  if (((bitField2_ & 0x00000020) != 0)) {
7914  output.writeBool(158, expandTableConstraints_);
7915  }
7916  if (((bitField1_ & 0x00000800) != 0)) {
7917  output.writeDouble(159, absoluteGapLimit_);
7918  }
7919  if (((bitField1_ & 0x00001000) != 0)) {
7920  output.writeDouble(160, relativeGapLimit_);
7921  }
7922  if (((bitField3_ & 0x00040000) != 0)) {
7923  output.writeBool(161, exploitRelaxationSolution_);
7924  }
7925  if (((bitField1_ & 0x40000000) != 0)) {
7926  output.writeBool(162, cpModelPostsolveWithFullSolver_);
7927  }
7928  if (((bitField2_ & 0x00000004) != 0)) {
7929  output.writeBool(163, useSatInprocessing_);
7930  }
7931  if (((bitField4_ & 0x00000400) != 0)) {
7932  output.writeBool(164, useFeasibilityPump_);
7933  }
7934  if (((bitField4_ & 0x00000800) != 0)) {
7935  output.writeEnum(165, fpRounding_);
7936  }
7937  if (((bitField4_ & 0x08000000) != 0)) {
7938  output.writeBool(166, mipAutomaticallyScaleVariables_);
7939  }
7940  if (((bitField3_ & 0x00004000) != 0)) {
7941  output.writeBool(167, repairHint_);
7942  }
7943  if (((bitField0_ & 0x00000010) != 0)) {
7944  output.writeInt32(168, polarityRephaseIncrement_);
7945  }
7946  if (((bitField2_ & 0x80000000) != 0)) {
7947  output.writeBool(169, addZeroHalfCuts_);
7948  }
7949  if (((bitField2_ & 0x00000040) != 0)) {
7950  output.writeBool(170, expandAlldiffConstraints_);
7951  }
7952  if (((bitField0_ & 0x00000001) != 0)) {
7953  com.google.protobuf.GeneratedMessageV3.writeString(output, 171, name_);
7954  }
7955  if (((bitField3_ & 0x00000001) != 0)) {
7956  output.writeBool(172, addCliqueCuts_);
7957  }
7958  if (((bitField3_ & 0x08000000) != 0)) {
7959  output.writeBool(173, keepAllFeasibleSolutionsInPresolve_);
7960  }
7961  if (((bitField2_ & 0x00001000) != 0)) {
7962  output.writeBool(174, presolveExtractIntegerEnforcement_);
7963  }
7964  if (((bitField4_ & 0x00400000) != 0)) {
7965  output.writeBool(175, polishLpSolution_);
7966  }
7967  if (((bitField3_ & 0x00200000) != 0)) {
7968  output.writeBool(176, useProbingSearch_);
7969  }
7970  if (((bitField4_ & 0x00800000) != 0)) {
7971  output.writeBool(177, convertIntervals_);
7972  }
7973  if (((bitField1_ & 0x00008000) != 0)) {
7974  output.writeBool(178, permuteVariableRandomly_);
7975  }
7976  if (((bitField1_ & 0x00010000) != 0)) {
7977  output.writeBool(179, permutePresolveConstraintOrder_);
7978  }
7979  if (((bitField1_ & 0x00020000) != 0)) {
7980  output.writeBool(180, useAbslRandom_);
7981  }
7982  if (((bitField2_ & 0x00000100) != 0)) {
7983  output.writeBool(181, disableConstraintExpansion_);
7984  }
7985  if (((bitField2_ & 0x00000080) != 0)) {
7986  output.writeBool(182, expandReservoirConstraints_);
7987  }
7988  if (((bitField4_ & 0x01000000) != 0)) {
7989  output.writeBool(183, detectSymmetries_);
7990  }
7991  unknownFields.writeTo(output);
7992  }
7993 
7994  @java.lang.Override
7995  public int getSerializedSize() {
7996  int size = memoizedSize;
7997  if (size != -1) return size;
7998 
7999  size = 0;
8000  if (((bitField0_ & 0x00000002) != 0)) {
8001  size += com.google.protobuf.CodedOutputStream
8002  .computeEnumSize(1, preferredVariableOrder_);
8003  }
8004  if (((bitField0_ & 0x00000004) != 0)) {
8005  size += com.google.protobuf.CodedOutputStream
8006  .computeEnumSize(2, initialPolarity_);
8007  }
8008  if (((bitField0_ & 0x00000400) != 0)) {
8009  size += com.google.protobuf.CodedOutputStream
8010  .computeEnumSize(4, minimizationAlgorithm_);
8011  }
8012  if (((bitField0_ & 0x00002000) != 0)) {
8013  size += com.google.protobuf.CodedOutputStream
8014  .computeInt32Size(11, clauseCleanupPeriod_);
8015  }
8016  if (((bitField0_ & 0x00004000) != 0)) {
8017  size += com.google.protobuf.CodedOutputStream
8018  .computeInt32Size(13, clauseCleanupTarget_);
8019  }
8020  if (((bitField0_ & 0x00400000) != 0)) {
8021  size += com.google.protobuf.CodedOutputStream
8022  .computeDoubleSize(15, variableActivityDecay_);
8023  }
8024  if (((bitField0_ & 0x00800000) != 0)) {
8025  size += com.google.protobuf.CodedOutputStream
8026  .computeDoubleSize(16, maxVariableActivityValue_);
8027  }
8028  if (((bitField0_ & 0x08000000) != 0)) {
8029  size += com.google.protobuf.CodedOutputStream
8030  .computeDoubleSize(17, clauseActivityDecay_);
8031  }
8032  if (((bitField0_ & 0x10000000) != 0)) {
8033  size += com.google.protobuf.CodedOutputStream
8034  .computeDoubleSize(18, maxClauseActivityValue_);
8035  }
8036  if (((bitField0_ & 0x01000000) != 0)) {
8037  size += com.google.protobuf.CodedOutputStream
8038  .computeDoubleSize(22, glucoseMaxDecay_);
8039  }
8040  if (((bitField0_ & 0x02000000) != 0)) {
8041  size += com.google.protobuf.CodedOutputStream
8042  .computeDoubleSize(23, glucoseDecayIncrement_);
8043  }
8044  if (((bitField0_ & 0x04000000) != 0)) {
8045  size += com.google.protobuf.CodedOutputStream
8046  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
8047  }
8048  if (((bitField0_ & 0x40000000) != 0)) {
8049  size += com.google.protobuf.CodedOutputStream
8050  .computeInt32Size(30, restartPeriod_);
8051  }
8052  if (((bitField1_ & 0x00004000) != 0)) {
8053  size += com.google.protobuf.CodedOutputStream
8054  .computeInt32Size(31, randomSeed_);
8055  }
8056  if (((bitField0_ & 0x00000040) != 0)) {
8057  size += com.google.protobuf.CodedOutputStream
8058  .computeDoubleSize(32, randomBranchesRatio_);
8059  }
8060  if (((bitField1_ & 0x00002000) != 0)) {
8061  size += com.google.protobuf.CodedOutputStream
8062  .computeBoolSize(33, treatBinaryClausesSeparately_);
8063  }
8064  if (((bitField0_ & 0x00000800) != 0)) {
8065  size += com.google.protobuf.CodedOutputStream
8066  .computeEnumSize(34, binaryMinimizationAlgorithm_);
8067  }
8068  if (((bitField2_ & 0x00002000) != 0)) {
8069  size += com.google.protobuf.CodedOutputStream
8070  .computeBoolSize(35, useOptimizationHints_);
8071  }
8072  if (((bitField1_ & 0x00000080) != 0)) {
8073  size += com.google.protobuf.CodedOutputStream
8074  .computeDoubleSize(36, maxTimeInSeconds_);
8075  }
8076  if (((bitField1_ & 0x00000200) != 0)) {
8077  size += com.google.protobuf.CodedOutputStream
8078  .computeInt64Size(37, maxNumberOfConflicts_);
8079  }
8080  if (((bitField1_ & 0x00000400) != 0)) {
8081  size += com.google.protobuf.CodedOutputStream
8082  .computeInt64Size(40, maxMemoryInMb_);
8083  }
8084  if (((bitField1_ & 0x00040000) != 0)) {
8085  size += com.google.protobuf.CodedOutputStream
8086  .computeBoolSize(41, logSearchProgress_);
8087  }
8088  if (((bitField1_ & 0x00080000) != 0)) {
8089  size += com.google.protobuf.CodedOutputStream
8090  .computeBoolSize(43, usePbResolution_);
8091  }
8092  if (((bitField0_ & 0x00000008) != 0)) {
8093  size += com.google.protobuf.CodedOutputStream
8094  .computeBoolSize(44, usePhaseSaving_);
8095  }
8096  if (((bitField0_ & 0x00000020) != 0)) {
8097  size += com.google.protobuf.CodedOutputStream
8098  .computeDoubleSize(45, randomPolarityRatio_);
8099  }
8100  if (((bitField0_ & 0x00040000) != 0)) {
8101  size += com.google.protobuf.CodedOutputStream
8102  .computeInt32Size(46, pbCleanupIncrement_);
8103  }
8104  if (((bitField0_ & 0x00080000) != 0)) {
8105  size += com.google.protobuf.CodedOutputStream
8106  .computeDoubleSize(47, pbCleanupRatio_);
8107  }
8108  if (((bitField1_ & 0x00100000) != 0)) {
8109  size += com.google.protobuf.CodedOutputStream
8110  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
8111  }
8112  if (((bitField1_ & 0x00200000) != 0)) {
8113  size += com.google.protobuf.CodedOutputStream
8114  .computeBoolSize(49, countAssumptionLevelsInLbd_);
8115  }
8116  if (((bitField2_ & 0x00004000) != 0)) {
8117  size += com.google.protobuf.CodedOutputStream
8118  .computeBoolSize(50, minimizeCore_);
8119  }
8120  if (((bitField2_ & 0x00020000) != 0)) {
8121  size += com.google.protobuf.CodedOutputStream
8122  .computeEnumSize(51, maxSatAssumptionOrder_);
8123  }
8124  if (((bitField2_ & 0x00040000) != 0)) {
8125  size += com.google.protobuf.CodedOutputStream
8126  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
8127  }
8128  if (((bitField2_ & 0x00080000) != 0)) {
8129  size += com.google.protobuf.CodedOutputStream
8130  .computeEnumSize(53, maxSatStratification_);
8131  }
8132  if (((bitField1_ & 0x00400000) != 0)) {
8133  size += com.google.protobuf.CodedOutputStream
8134  .computeInt32Size(54, presolveBveThreshold_);
8135  }
8136  if (((bitField1_ & 0x00800000) != 0)) {
8137  size += com.google.protobuf.CodedOutputStream
8138  .computeInt32Size(55, presolveBveClauseWeight_);
8139  }
8140  if (((bitField0_ & 0x00001000) != 0)) {
8141  size += com.google.protobuf.CodedOutputStream
8142  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
8143  }
8144  if (((bitField1_ & 0x01000000) != 0)) {
8145  size += com.google.protobuf.CodedOutputStream
8146  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
8147  }
8148  if (((bitField0_ & 0x00008000) != 0)) {
8149  size += com.google.protobuf.CodedOutputStream
8150  .computeEnumSize(58, clauseCleanupProtection_);
8151  }
8152  if (((bitField0_ & 0x00010000) != 0)) {
8153  size += com.google.protobuf.CodedOutputStream
8154  .computeInt32Size(59, clauseCleanupLbdBound_);
8155  }
8156  if (((bitField0_ & 0x00020000) != 0)) {
8157  size += com.google.protobuf.CodedOutputStream
8158  .computeEnumSize(60, clauseCleanupOrdering_);
8159  }
8160  {
8161  int dataSize = 0;
8162  for (int i = 0; i < restartAlgorithms_.size(); i++) {
8163  dataSize += com.google.protobuf.CodedOutputStream
8164  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
8165  }
8166  size += dataSize;
8167  size += 2 * restartAlgorithms_.size();
8168  }
8169  if (((bitField0_ & 0x80000000) != 0)) {
8170  size += com.google.protobuf.CodedOutputStream
8171  .computeInt32Size(62, restartRunningWindowSize_);
8172  }
8173  if (((bitField1_ & 0x00000001) != 0)) {
8174  size += com.google.protobuf.CodedOutputStream
8175  .computeDoubleSize(63, restartDlAverageRatio_);
8176  }
8177  if (((bitField1_ & 0x00000004) != 0)) {
8178  size += com.google.protobuf.CodedOutputStream
8179  .computeBoolSize(64, useBlockingRestart_);
8180  }
8181  if (((bitField1_ & 0x00000008) != 0)) {
8182  size += com.google.protobuf.CodedOutputStream
8183  .computeInt32Size(65, blockingRestartWindowSize_);
8184  }
8185  if (((bitField1_ & 0x00000010) != 0)) {
8186  size += com.google.protobuf.CodedOutputStream
8187  .computeDoubleSize(66, blockingRestartMultiplier_);
8188  }
8189  if (((bitField1_ & 0x00000100) != 0)) {
8190  size += com.google.protobuf.CodedOutputStream
8191  .computeDoubleSize(67, maxDeterministicTime_);
8192  }
8193  if (((bitField1_ & 0x00000020) != 0)) {
8194  size += com.google.protobuf.CodedOutputStream
8195  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
8196  }
8197  if (((bitField1_ & 0x00000040) != 0)) {
8198  size += com.google.protobuf.CodedOutputStream
8199  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
8200  }
8201  if (((bitField0_ & 0x20000000) != 0)) {
8202  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
8203  }
8204  if (((bitField1_ & 0x00000002) != 0)) {
8205  size += com.google.protobuf.CodedOutputStream
8206  .computeDoubleSize(71, restartLbdAverageRatio_);
8207  }
8208  if (((bitField1_ & 0x04000000) != 0)) {
8209  size += com.google.protobuf.CodedOutputStream
8210  .computeBoolSize(72, presolveUseBva_);
8211  }
8212  if (((bitField1_ & 0x08000000) != 0)) {
8213  size += com.google.protobuf.CodedOutputStream
8214  .computeInt32Size(73, presolveBvaThreshold_);
8215  }
8216  if (((bitField2_ & 0x00100000) != 0)) {
8217  size += com.google.protobuf.CodedOutputStream
8218  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
8219  }
8220  if (((bitField0_ & 0x00000080) != 0)) {
8221  size += com.google.protobuf.CodedOutputStream
8222  .computeBoolSize(75, useErwaHeuristic_);
8223  }
8224  if (((bitField0_ & 0x00000100) != 0)) {
8225  size += com.google.protobuf.CodedOutputStream
8226  .computeDoubleSize(76, initialVariablesActivity_);
8227  }
8228  if (((bitField0_ & 0x00000200) != 0)) {
8229  size += com.google.protobuf.CodedOutputStream
8230  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
8231  }
8232  if (((bitField2_ & 0x00200000) != 0)) {
8233  size += com.google.protobuf.CodedOutputStream
8234  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
8235  }
8236  if (((bitField2_ & 0x00400000) != 0)) {
8237  size += com.google.protobuf.CodedOutputStream
8238  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
8239  }
8240  if (((bitField2_ & 0x00800000) != 0)) {
8241  size += com.google.protobuf.CodedOutputStream
8242  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
8243  }
8244  if (((bitField3_ & 0x00001000) != 0)) {
8245  size += com.google.protobuf.CodedOutputStream
8246  .computeEnumSize(82, searchBranching_);
8247  }
8248  if (((bitField3_ & 0x00800000) != 0)) {
8249  size += com.google.protobuf.CodedOutputStream
8250  .computeBoolSize(83, optimizeWithCore_);
8251  }
8252  if (((bitField2_ & 0x00008000) != 0)) {
8253  size += com.google.protobuf.CodedOutputStream
8254  .computeBoolSize(84, findMultipleCores_);
8255  }
8256  if (((bitField3_ & 0x02000000) != 0)) {
8257  size += com.google.protobuf.CodedOutputStream
8258  .computeBoolSize(85, optimizeWithMaxHs_);
8259  }
8260  if (((bitField1_ & 0x20000000) != 0)) {
8261  size += com.google.protobuf.CodedOutputStream
8262  .computeBoolSize(86, cpModelPresolve_);
8263  }
8264  if (((bitField3_ & 0x04000000) != 0)) {
8265  size += com.google.protobuf.CodedOutputStream
8266  .computeBoolSize(87, enumerateAllSolutions_);
8267  }
8268  if (((bitField1_ & 0x02000000) != 0)) {
8269  size += com.google.protobuf.CodedOutputStream
8270  .computeBoolSize(88, presolveBlockedClause_);
8271  }
8272  if (((bitField2_ & 0x00010000) != 0)) {
8273  size += com.google.protobuf.CodedOutputStream
8274  .computeBoolSize(89, coverOptimization_);
8275  }
8276  if (((bitField2_ & 0x01000000) != 0)) {
8277  size += com.google.protobuf.CodedOutputStream
8278  .computeInt32Size(90, linearizationLevel_);
8279  }
8280  if (((bitField2_ & 0x04000000) != 0)) {
8281  size += com.google.protobuf.CodedOutputStream
8282  .computeInt32Size(91, maxNumCuts_);
8283  }
8284  if (((bitField2_ & 0x08000000) != 0)) {
8285  size += com.google.protobuf.CodedOutputStream
8286  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
8287  }
8288  if (((bitField2_ & 0x00000002) != 0)) {
8289  size += com.google.protobuf.CodedOutputStream
8290  .computeBoolSize(93, cpModelUseSatPresolve_);
8291  }
8292  if (((bitField3_ & 0x00008000) != 0)) {
8293  size += com.google.protobuf.CodedOutputStream
8294  .computeBoolSize(94, exploitIntegerLpSolution_);
8295  }
8296  if (((bitField3_ & 0x40000000) != 0)) {
8297  size += com.google.protobuf.CodedOutputStream
8298  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
8299  }
8300  if (((bitField0_ & 0x00100000) != 0)) {
8301  size += com.google.protobuf.CodedOutputStream
8302  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
8303  }
8304  if (((bitField0_ & 0x00200000) != 0)) {
8305  size += com.google.protobuf.CodedOutputStream
8306  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
8307  }
8308  if (((bitField3_ & 0x80000000) != 0)) {
8309  size += com.google.protobuf.CodedOutputStream
8310  .computeBoolSize(98, stopAfterFirstSolution_);
8311  }
8312  if (((bitField3_ & 0x01000000) != 0)) {
8313  size += com.google.protobuf.CodedOutputStream
8314  .computeInt32Size(99, binarySearchNumConflicts_);
8315  }
8316  if (((bitField4_ & 0x00000002) != 0)) {
8317  size += com.google.protobuf.CodedOutputStream
8318  .computeInt32Size(100, numSearchWorkers_);
8319  }
8320  if (((bitField4_ & 0x00000080) != 0)) {
8321  size += com.google.protobuf.CodedOutputStream
8322  .computeBoolSize(101, useLnsOnly_);
8323  }
8324  if (((bitField4_ & 0x00004000) != 0)) {
8325  size += com.google.protobuf.CodedOutputStream
8326  .computeBoolSize(103, randomizeSearch_);
8327  }
8328  if (((bitField4_ & 0x00008000) != 0)) {
8329  size += com.google.protobuf.CodedOutputStream
8330  .computeInt64Size(104, searchRandomizationTolerance_);
8331  }
8332  if (((bitField4_ & 0x00000100) != 0)) {
8333  size += com.google.protobuf.CodedOutputStream
8334  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
8335  }
8336  if (((bitField3_ & 0x20000000) != 0)) {
8337  size += com.google.protobuf.CodedOutputStream
8338  .computeBoolSize(106, instantiateAllVariables_);
8339  }
8340  if (((bitField2_ & 0x02000000) != 0)) {
8341  size += com.google.protobuf.CodedOutputStream
8342  .computeInt32Size(107, booleanEncodingLevel_);
8343  }
8344  if (((bitField4_ & 0x00010000) != 0)) {
8345  size += com.google.protobuf.CodedOutputStream
8346  .computeBoolSize(108, useOptionalVariables_);
8347  }
8348  if (((bitField4_ & 0x00020000) != 0)) {
8349  size += com.google.protobuf.CodedOutputStream
8350  .computeBoolSize(109, useExactLpReason_);
8351  }
8352  if (((bitField2_ & 0x00000001) != 0)) {
8353  size += com.google.protobuf.CodedOutputStream
8354  .computeInt32Size(110, cpModelProbingLevel_);
8355  }
8356  if (((bitField2_ & 0x10000000) != 0)) {
8357  size += com.google.protobuf.CodedOutputStream
8358  .computeBoolSize(111, addKnapsackCuts_);
8359  }
8360  if (((bitField3_ & 0x00000010) != 0)) {
8361  size += com.google.protobuf.CodedOutputStream
8362  .computeBoolSize(112, addLpConstraintsLazily_);
8363  }
8364  if (((bitField4_ & 0x00000020) != 0)) {
8365  size += com.google.protobuf.CodedOutputStream
8366  .computeBoolSize(113, shareObjectiveBounds_);
8367  }
8368  if (((bitField4_ & 0x00000040) != 0)) {
8369  size += com.google.protobuf.CodedOutputStream
8370  .computeBoolSize(114, shareLevelZeroBounds_);
8371  }
8372  if (((bitField3_ & 0x00000020) != 0)) {
8373  size += com.google.protobuf.CodedOutputStream
8374  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
8375  }
8376  if (((bitField3_ & 0x00010000) != 0)) {
8377  size += com.google.protobuf.CodedOutputStream
8378  .computeBoolSize(116, exploitAllLpSolution_);
8379  }
8380  if (((bitField2_ & 0x20000000) != 0)) {
8381  size += com.google.protobuf.CodedOutputStream
8382  .computeBoolSize(117, addCgCuts_);
8383  }
8384  if (((bitField3_ & 0x00000008) != 0)) {
8385  size += com.google.protobuf.CodedOutputStream
8386  .computeInt32Size(119, maxIntegerRoundingScaling_);
8387  }
8388  if (((bitField2_ & 0x40000000) != 0)) {
8389  size += com.google.protobuf.CodedOutputStream
8390  .computeBoolSize(120, addMirCuts_);
8391  }
8392  if (((bitField3_ & 0x00000080) != 0)) {
8393  size += com.google.protobuf.CodedOutputStream
8394  .computeInt32Size(121, maxConsecutiveInactiveCount_);
8395  }
8396  if (((bitField3_ & 0x00000800) != 0)) {
8397  size += com.google.protobuf.CodedOutputStream
8398  .computeInt32Size(122, newConstraintsBatchSize_);
8399  }
8400  if (((bitField3_ & 0x00400000) != 0)) {
8401  size += com.google.protobuf.CodedOutputStream
8402  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
8403  }
8404  if (((bitField4_ & 0x02000000) != 0)) {
8405  size += com.google.protobuf.CodedOutputStream
8406  .computeDoubleSize(124, mipMaxBound_);
8407  }
8408  if (((bitField4_ & 0x04000000) != 0)) {
8409  size += com.google.protobuf.CodedOutputStream
8410  .computeDoubleSize(125, mipVarScaling_);
8411  }
8412  if (((bitField4_ & 0x10000000) != 0)) {
8413  size += com.google.protobuf.CodedOutputStream
8414  .computeDoubleSize(126, mipWantedPrecision_);
8415  }
8416  if (((bitField4_ & 0x20000000) != 0)) {
8417  size += com.google.protobuf.CodedOutputStream
8418  .computeInt32Size(127, mipMaxActivityExponent_);
8419  }
8420  if (((bitField4_ & 0x40000000) != 0)) {
8421  size += com.google.protobuf.CodedOutputStream
8422  .computeDoubleSize(128, mipCheckPrecision_);
8423  }
8424  if (((bitField4_ & 0x00000200) != 0)) {
8425  size += com.google.protobuf.CodedOutputStream
8426  .computeBoolSize(129, useRinsLns_);
8427  }
8428  if (((bitField3_ & 0x00020000) != 0)) {
8429  size += com.google.protobuf.CodedOutputStream
8430  .computeBoolSize(130, exploitBestSolution_);
8431  }
8432  if (((bitField3_ & 0x00080000) != 0)) {
8433  size += com.google.protobuf.CodedOutputStream
8434  .computeBoolSize(131, exploitObjective_);
8435  }
8436  if (((bitField3_ & 0x10000000) != 0)) {
8437  size += com.google.protobuf.CodedOutputStream
8438  .computeBoolSize(132, fillTightenedDomainsInResponse_);
8439  }
8440  if (((bitField4_ & 0x00080000) != 0)) {
8441  size += com.google.protobuf.CodedOutputStream
8442  .computeBoolSize(133, useCombinedNoOverlap_);
8443  }
8444  if (((bitField4_ & 0x00000008) != 0)) {
8445  size += com.google.protobuf.CodedOutputStream
8446  .computeInt32Size(134, interleaveBatchSize_);
8447  }
8448  if (((bitField4_ & 0x00100000) != 0)) {
8449  size += com.google.protobuf.CodedOutputStream
8450  .computeBoolSize(135, catchSigintSignal_);
8451  }
8452  if (((bitField4_ & 0x00000004) != 0)) {
8453  size += com.google.protobuf.CodedOutputStream
8454  .computeBoolSize(136, interleaveSearch_);
8455  }
8456  if (((bitField4_ & 0x00002000) != 0)) {
8457  size += com.google.protobuf.CodedOutputStream
8458  .computeBoolSize(137, diversifyLnsParams_);
8459  }
8460  if (((bitField1_ & 0x10000000) != 0)) {
8461  size += com.google.protobuf.CodedOutputStream
8462  .computeInt32Size(138, maxPresolveIterations_);
8463  }
8464  if (((bitField4_ & 0x00040000) != 0)) {
8465  size += com.google.protobuf.CodedOutputStream
8466  .computeBoolSize(139, useBranchingInLp_);
8467  }
8468  if (((bitField2_ & 0x00000008) != 0)) {
8469  size += com.google.protobuf.CodedOutputStream
8470  .computeBoolSize(140, expandElementConstraints_);
8471  }
8472  if (((bitField4_ & 0x00000010) != 0)) {
8473  size += com.google.protobuf.CodedOutputStream
8474  .computeBoolSize(141, reduceMemoryUsageInInterleaveMode_);
8475  }
8476  if (((bitField3_ & 0x00100000) != 0)) {
8477  size += com.google.protobuf.CodedOutputStream
8478  .computeInt64Size(142, probingPeriodAtRoot_);
8479  }
8480  if (((bitField2_ & 0x00000010) != 0)) {
8481  size += com.google.protobuf.CodedOutputStream
8482  .computeBoolSize(143, expandAutomatonConstraints_);
8483  }
8484  if (((bitField4_ & 0x00200000) != 0)) {
8485  size += com.google.protobuf.CodedOutputStream
8486  .computeBoolSize(144, useImpliedBounds_);
8487  }
8488  if (((bitField2_ & 0x00000200) != 0)) {
8489  size += com.google.protobuf.CodedOutputStream
8490  .computeDoubleSize(145, mergeNoOverlapWorkLimit_);
8491  }
8492  if (((bitField2_ & 0x00000400) != 0)) {
8493  size += com.google.protobuf.CodedOutputStream
8494  .computeDoubleSize(146, mergeAtMostOneWorkLimit_);
8495  }
8496  if (((bitField2_ & 0x00000800) != 0)) {
8497  size += com.google.protobuf.CodedOutputStream
8498  .computeInt32Size(147, presolveSubstitutionLevel_);
8499  }
8500  if (((bitField3_ & 0x00000002) != 0)) {
8501  size += com.google.protobuf.CodedOutputStream
8502  .computeInt32Size(148, maxAllDiffCutSize_);
8503  }
8504  if (((bitField4_ & 0x00000001) != 0)) {
8505  size += com.google.protobuf.CodedOutputStream
8506  .computeBoolSize(149, stopAfterPresolve_);
8507  }
8508  if (((bitField4_ & 0x00001000) != 0)) {
8509  size += com.google.protobuf.CodedOutputStream
8510  .computeBoolSize(150, useRelaxationLns_);
8511  }
8512  if (((bitField1_ & 0x80000000) != 0)) {
8513  size += com.google.protobuf.CodedOutputStream
8514  .computeInt32Size(151, cpModelMaxNumPresolveOperations_);
8515  }
8516  if (((bitField3_ & 0x00000004) != 0)) {
8517  size += com.google.protobuf.CodedOutputStream
8518  .computeBoolSize(152, addLinMaxCuts_);
8519  }
8520  if (((bitField3_ & 0x00002000) != 0)) {
8521  size += com.google.protobuf.CodedOutputStream
8522  .computeInt32Size(153, hintConflictLimit_);
8523  }
8524  if (((bitField3_ & 0x00000040) != 0)) {
8525  size += com.google.protobuf.CodedOutputStream
8526  .computeInt32Size(154, maxCutRoundsAtLevelZero_);
8527  }
8528  if (((bitField3_ & 0x00000100) != 0)) {
8529  size += com.google.protobuf.CodedOutputStream
8530  .computeDoubleSize(155, cutMaxActiveCountValue_);
8531  }
8532  if (((bitField3_ & 0x00000200) != 0)) {
8533  size += com.google.protobuf.CodedOutputStream
8534  .computeDoubleSize(156, cutActiveCountDecay_);
8535  }
8536  if (((bitField3_ & 0x00000400) != 0)) {
8537  size += com.google.protobuf.CodedOutputStream
8538  .computeInt32Size(157, cutCleanupTarget_);
8539  }
8540  if (((bitField2_ & 0x00000020) != 0)) {
8541  size += com.google.protobuf.CodedOutputStream
8542  .computeBoolSize(158, expandTableConstraints_);
8543  }
8544  if (((bitField1_ & 0x00000800) != 0)) {
8545  size += com.google.protobuf.CodedOutputStream
8546  .computeDoubleSize(159, absoluteGapLimit_);
8547  }
8548  if (((bitField1_ & 0x00001000) != 0)) {
8549  size += com.google.protobuf.CodedOutputStream
8550  .computeDoubleSize(160, relativeGapLimit_);
8551  }
8552  if (((bitField3_ & 0x00040000) != 0)) {
8553  size += com.google.protobuf.CodedOutputStream
8554  .computeBoolSize(161, exploitRelaxationSolution_);
8555  }
8556  if (((bitField1_ & 0x40000000) != 0)) {
8557  size += com.google.protobuf.CodedOutputStream
8558  .computeBoolSize(162, cpModelPostsolveWithFullSolver_);
8559  }
8560  if (((bitField2_ & 0x00000004) != 0)) {
8561  size += com.google.protobuf.CodedOutputStream
8562  .computeBoolSize(163, useSatInprocessing_);
8563  }
8564  if (((bitField4_ & 0x00000400) != 0)) {
8565  size += com.google.protobuf.CodedOutputStream
8566  .computeBoolSize(164, useFeasibilityPump_);
8567  }
8568  if (((bitField4_ & 0x00000800) != 0)) {
8569  size += com.google.protobuf.CodedOutputStream
8570  .computeEnumSize(165, fpRounding_);
8571  }
8572  if (((bitField4_ & 0x08000000) != 0)) {
8573  size += com.google.protobuf.CodedOutputStream
8574  .computeBoolSize(166, mipAutomaticallyScaleVariables_);
8575  }
8576  if (((bitField3_ & 0x00004000) != 0)) {
8577  size += com.google.protobuf.CodedOutputStream
8578  .computeBoolSize(167, repairHint_);
8579  }
8580  if (((bitField0_ & 0x00000010) != 0)) {
8581  size += com.google.protobuf.CodedOutputStream
8582  .computeInt32Size(168, polarityRephaseIncrement_);
8583  }
8584  if (((bitField2_ & 0x80000000) != 0)) {
8585  size += com.google.protobuf.CodedOutputStream
8586  .computeBoolSize(169, addZeroHalfCuts_);
8587  }
8588  if (((bitField2_ & 0x00000040) != 0)) {
8589  size += com.google.protobuf.CodedOutputStream
8590  .computeBoolSize(170, expandAlldiffConstraints_);
8591  }
8592  if (((bitField0_ & 0x00000001) != 0)) {
8593  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(171, name_);
8594  }
8595  if (((bitField3_ & 0x00000001) != 0)) {
8596  size += com.google.protobuf.CodedOutputStream
8597  .computeBoolSize(172, addCliqueCuts_);
8598  }
8599  if (((bitField3_ & 0x08000000) != 0)) {
8600  size += com.google.protobuf.CodedOutputStream
8601  .computeBoolSize(173, keepAllFeasibleSolutionsInPresolve_);
8602  }
8603  if (((bitField2_ & 0x00001000) != 0)) {
8604  size += com.google.protobuf.CodedOutputStream
8605  .computeBoolSize(174, presolveExtractIntegerEnforcement_);
8606  }
8607  if (((bitField4_ & 0x00400000) != 0)) {
8608  size += com.google.protobuf.CodedOutputStream
8609  .computeBoolSize(175, polishLpSolution_);
8610  }
8611  if (((bitField3_ & 0x00200000) != 0)) {
8612  size += com.google.protobuf.CodedOutputStream
8613  .computeBoolSize(176, useProbingSearch_);
8614  }
8615  if (((bitField4_ & 0x00800000) != 0)) {
8616  size += com.google.protobuf.CodedOutputStream
8617  .computeBoolSize(177, convertIntervals_);
8618  }
8619  if (((bitField1_ & 0x00008000) != 0)) {
8620  size += com.google.protobuf.CodedOutputStream
8621  .computeBoolSize(178, permuteVariableRandomly_);
8622  }
8623  if (((bitField1_ & 0x00010000) != 0)) {
8624  size += com.google.protobuf.CodedOutputStream
8625  .computeBoolSize(179, permutePresolveConstraintOrder_);
8626  }
8627  if (((bitField1_ & 0x00020000) != 0)) {
8628  size += com.google.protobuf.CodedOutputStream
8629  .computeBoolSize(180, useAbslRandom_);
8630  }
8631  if (((bitField2_ & 0x00000100) != 0)) {
8632  size += com.google.protobuf.CodedOutputStream
8633  .computeBoolSize(181, disableConstraintExpansion_);
8634  }
8635  if (((bitField2_ & 0x00000080) != 0)) {
8636  size += com.google.protobuf.CodedOutputStream
8637  .computeBoolSize(182, expandReservoirConstraints_);
8638  }
8639  if (((bitField4_ & 0x01000000) != 0)) {
8640  size += com.google.protobuf.CodedOutputStream
8641  .computeBoolSize(183, detectSymmetries_);
8642  }
8643  size += unknownFields.getSerializedSize();
8644  memoizedSize = size;
8645  return size;
8646  }
8647 
8648  @java.lang.Override
8649  public boolean equals(final java.lang.Object obj) {
8650  if (obj == this) {
8651  return true;
8652  }
8653  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
8654  return super.equals(obj);
8655  }
8656  com.google.ortools.sat.SatParameters other = (com.google.ortools.sat.SatParameters) obj;
8657 
8658  if (hasName() != other.hasName()) return false;
8659  if (hasName()) {
8660  if (!getName()
8661  .equals(other.getName())) return false;
8662  }
8663  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
8664  if (hasPreferredVariableOrder()) {
8665  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
8666  }
8667  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
8668  if (hasInitialPolarity()) {
8669  if (initialPolarity_ != other.initialPolarity_) return false;
8670  }
8671  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
8672  if (hasUsePhaseSaving()) {
8673  if (getUsePhaseSaving()
8674  != other.getUsePhaseSaving()) return false;
8675  }
8676  if (hasPolarityRephaseIncrement() != other.hasPolarityRephaseIncrement()) return false;
8679  != other.getPolarityRephaseIncrement()) return false;
8680  }
8681  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
8682  if (hasRandomPolarityRatio()) {
8683  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
8684  != java.lang.Double.doubleToLongBits(
8685  other.getRandomPolarityRatio())) return false;
8686  }
8687  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
8688  if (hasRandomBranchesRatio()) {
8689  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
8690  != java.lang.Double.doubleToLongBits(
8691  other.getRandomBranchesRatio())) return false;
8692  }
8693  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
8694  if (hasUseErwaHeuristic()) {
8695  if (getUseErwaHeuristic()
8696  != other.getUseErwaHeuristic()) return false;
8697  }
8698  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
8700  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
8701  != java.lang.Double.doubleToLongBits(
8702  other.getInitialVariablesActivity())) return false;
8703  }
8704  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
8707  != other.getAlsoBumpVariablesInConflictReasons()) return false;
8708  }
8709  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
8710  if (hasMinimizationAlgorithm()) {
8711  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
8712  }
8713  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
8715  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
8716  }
8717  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
8720  != other.getSubsumptionDuringConflictAnalysis()) return false;
8721  }
8722  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
8723  if (hasClauseCleanupPeriod()) {
8725  != other.getClauseCleanupPeriod()) return false;
8726  }
8727  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
8728  if (hasClauseCleanupTarget()) {
8730  != other.getClauseCleanupTarget()) return false;
8731  }
8732  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
8734  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
8735  }
8736  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
8737  if (hasClauseCleanupLbdBound()) {
8739  != other.getClauseCleanupLbdBound()) return false;
8740  }
8741  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
8742  if (hasClauseCleanupOrdering()) {
8743  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
8744  }
8745  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
8746  if (hasPbCleanupIncrement()) {
8747  if (getPbCleanupIncrement()
8748  != other.getPbCleanupIncrement()) return false;
8749  }
8750  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
8751  if (hasPbCleanupRatio()) {
8752  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
8753  != java.lang.Double.doubleToLongBits(
8754  other.getPbCleanupRatio())) return false;
8755  }
8756  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
8759  != other.getMinimizeWithPropagationRestartPeriod()) return false;
8760  }
8761  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
8764  != other.getMinimizeWithPropagationNumDecisions()) return false;
8765  }
8766  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
8767  if (hasVariableActivityDecay()) {
8768  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
8769  != java.lang.Double.doubleToLongBits(
8770  other.getVariableActivityDecay())) return false;
8771  }
8772  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
8774  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
8775  != java.lang.Double.doubleToLongBits(
8776  other.getMaxVariableActivityValue())) return false;
8777  }
8778  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
8779  if (hasGlucoseMaxDecay()) {
8780  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
8781  != java.lang.Double.doubleToLongBits(
8782  other.getGlucoseMaxDecay())) return false;
8783  }
8784  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
8785  if (hasGlucoseDecayIncrement()) {
8786  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
8787  != java.lang.Double.doubleToLongBits(
8788  other.getGlucoseDecayIncrement())) return false;
8789  }
8790  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
8793  != other.getGlucoseDecayIncrementPeriod()) return false;
8794  }
8795  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
8796  if (hasClauseActivityDecay()) {
8797  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
8798  != java.lang.Double.doubleToLongBits(
8799  other.getClauseActivityDecay())) return false;
8800  }
8801  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
8802  if (hasMaxClauseActivityValue()) {
8803  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
8804  != java.lang.Double.doubleToLongBits(
8805  other.getMaxClauseActivityValue())) return false;
8806  }
8807  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
8808  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
8811  .equals(other.getDefaultRestartAlgorithms())) return false;
8812  }
8813  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
8814  if (hasRestartPeriod()) {
8815  if (getRestartPeriod()
8816  != other.getRestartPeriod()) return false;
8817  }
8818  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
8821  != other.getRestartRunningWindowSize()) return false;
8822  }
8823  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
8824  if (hasRestartDlAverageRatio()) {
8825  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
8826  != java.lang.Double.doubleToLongBits(
8827  other.getRestartDlAverageRatio())) return false;
8828  }
8829  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
8830  if (hasRestartLbdAverageRatio()) {
8831  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
8832  != java.lang.Double.doubleToLongBits(
8833  other.getRestartLbdAverageRatio())) return false;
8834  }
8835  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
8836  if (hasUseBlockingRestart()) {
8837  if (getUseBlockingRestart()
8838  != other.getUseBlockingRestart()) return false;
8839  }
8840  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
8843  != other.getBlockingRestartWindowSize()) return false;
8844  }
8845  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
8847  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
8848  != java.lang.Double.doubleToLongBits(
8849  other.getBlockingRestartMultiplier())) return false;
8850  }
8851  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
8854  != other.getNumConflictsBeforeStrategyChanges()) return false;
8855  }
8856  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
8858  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
8859  != java.lang.Double.doubleToLongBits(
8860  other.getStrategyChangeIncreaseRatio())) return false;
8861  }
8862  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
8863  if (hasMaxTimeInSeconds()) {
8864  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
8865  != java.lang.Double.doubleToLongBits(
8866  other.getMaxTimeInSeconds())) return false;
8867  }
8868  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
8869  if (hasMaxDeterministicTime()) {
8870  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
8871  != java.lang.Double.doubleToLongBits(
8872  other.getMaxDeterministicTime())) return false;
8873  }
8874  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
8875  if (hasMaxNumberOfConflicts()) {
8877  != other.getMaxNumberOfConflicts()) return false;
8878  }
8879  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
8880  if (hasMaxMemoryInMb()) {
8881  if (getMaxMemoryInMb()
8882  != other.getMaxMemoryInMb()) return false;
8883  }
8884  if (hasAbsoluteGapLimit() != other.hasAbsoluteGapLimit()) return false;
8885  if (hasAbsoluteGapLimit()) {
8886  if (java.lang.Double.doubleToLongBits(getAbsoluteGapLimit())
8887  != java.lang.Double.doubleToLongBits(
8888  other.getAbsoluteGapLimit())) return false;
8889  }
8890  if (hasRelativeGapLimit() != other.hasRelativeGapLimit()) return false;
8891  if (hasRelativeGapLimit()) {
8892  if (java.lang.Double.doubleToLongBits(getRelativeGapLimit())
8893  != java.lang.Double.doubleToLongBits(
8894  other.getRelativeGapLimit())) return false;
8895  }
8896  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
8899  != other.getTreatBinaryClausesSeparately()) return false;
8900  }
8901  if (hasRandomSeed() != other.hasRandomSeed()) return false;
8902  if (hasRandomSeed()) {
8903  if (getRandomSeed()
8904  != other.getRandomSeed()) return false;
8905  }
8906  if (hasPermuteVariableRandomly() != other.hasPermuteVariableRandomly()) return false;
8909  != other.getPermuteVariableRandomly()) return false;
8910  }
8911  if (hasPermutePresolveConstraintOrder() != other.hasPermutePresolveConstraintOrder()) return false;
8914  != other.getPermutePresolveConstraintOrder()) return false;
8915  }
8916  if (hasUseAbslRandom() != other.hasUseAbslRandom()) return false;
8917  if (hasUseAbslRandom()) {
8918  if (getUseAbslRandom()
8919  != other.getUseAbslRandom()) return false;
8920  }
8921  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
8922  if (hasLogSearchProgress()) {
8923  if (getLogSearchProgress()
8924  != other.getLogSearchProgress()) return false;
8925  }
8926  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
8927  if (hasUsePbResolution()) {
8928  if (getUsePbResolution()
8929  != other.getUsePbResolution()) return false;
8930  }
8931  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
8934  != other.getMinimizeReductionDuringPbResolution()) return false;
8935  }
8936  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
8939  != other.getCountAssumptionLevelsInLbd()) return false;
8940  }
8941  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
8942  if (hasPresolveBveThreshold()) {
8944  != other.getPresolveBveThreshold()) return false;
8945  }
8946  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
8949  != other.getPresolveBveClauseWeight()) return false;
8950  }
8951  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
8953  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
8954  != java.lang.Double.doubleToLongBits(
8955  other.getPresolveProbingDeterministicTimeLimit())) return false;
8956  }
8957  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
8958  if (hasPresolveBlockedClause()) {
8960  != other.getPresolveBlockedClause()) return false;
8961  }
8962  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
8963  if (hasPresolveUseBva()) {
8964  if (getPresolveUseBva()
8965  != other.getPresolveUseBva()) return false;
8966  }
8967  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
8968  if (hasPresolveBvaThreshold()) {
8970  != other.getPresolveBvaThreshold()) return false;
8971  }
8972  if (hasMaxPresolveIterations() != other.hasMaxPresolveIterations()) return false;
8973  if (hasMaxPresolveIterations()) {
8975  != other.getMaxPresolveIterations()) return false;
8976  }
8977  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
8978  if (hasCpModelPresolve()) {
8979  if (getCpModelPresolve()
8980  != other.getCpModelPresolve()) return false;
8981  }
8982  if (hasCpModelPostsolveWithFullSolver() != other.hasCpModelPostsolveWithFullSolver()) return false;
8985  != other.getCpModelPostsolveWithFullSolver()) return false;
8986  }
8987  if (hasCpModelMaxNumPresolveOperations() != other.hasCpModelMaxNumPresolveOperations()) return false;
8990  != other.getCpModelMaxNumPresolveOperations()) return false;
8991  }
8992  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
8993  if (hasCpModelProbingLevel()) {
8995  != other.getCpModelProbingLevel()) return false;
8996  }
8997  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
8998  if (hasCpModelUseSatPresolve()) {
9000  != other.getCpModelUseSatPresolve()) return false;
9001  }
9002  if (hasUseSatInprocessing() != other.hasUseSatInprocessing()) return false;
9003  if (hasUseSatInprocessing()) {
9004  if (getUseSatInprocessing()
9005  != other.getUseSatInprocessing()) return false;
9006  }
9007  if (hasExpandElementConstraints() != other.hasExpandElementConstraints()) return false;
9010  != other.getExpandElementConstraints()) return false;
9011  }
9012  if (hasExpandAutomatonConstraints() != other.hasExpandAutomatonConstraints()) return false;
9015  != other.getExpandAutomatonConstraints()) return false;
9016  }
9017  if (hasExpandTableConstraints() != other.hasExpandTableConstraints()) return false;
9018  if (hasExpandTableConstraints()) {
9020  != other.getExpandTableConstraints()) return false;
9021  }
9022  if (hasExpandAlldiffConstraints() != other.hasExpandAlldiffConstraints()) return false;
9025  != other.getExpandAlldiffConstraints()) return false;
9026  }
9027  if (hasExpandReservoirConstraints() != other.hasExpandReservoirConstraints()) return false;
9030  != other.getExpandReservoirConstraints()) return false;
9031  }
9032  if (hasDisableConstraintExpansion() != other.hasDisableConstraintExpansion()) return false;
9035  != other.getDisableConstraintExpansion()) return false;
9036  }
9037  if (hasMergeNoOverlapWorkLimit() != other.hasMergeNoOverlapWorkLimit()) return false;
9039  if (java.lang.Double.doubleToLongBits(getMergeNoOverlapWorkLimit())
9040  != java.lang.Double.doubleToLongBits(
9041  other.getMergeNoOverlapWorkLimit())) return false;
9042  }
9043  if (hasMergeAtMostOneWorkLimit() != other.hasMergeAtMostOneWorkLimit()) return false;
9045  if (java.lang.Double.doubleToLongBits(getMergeAtMostOneWorkLimit())
9046  != java.lang.Double.doubleToLongBits(
9047  other.getMergeAtMostOneWorkLimit())) return false;
9048  }
9049  if (hasPresolveSubstitutionLevel() != other.hasPresolveSubstitutionLevel()) return false;
9052  != other.getPresolveSubstitutionLevel()) return false;
9053  }
9054  if (hasPresolveExtractIntegerEnforcement() != other.hasPresolveExtractIntegerEnforcement()) return false;
9057  != other.getPresolveExtractIntegerEnforcement()) return false;
9058  }
9059  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
9060  if (hasUseOptimizationHints()) {
9062  != other.getUseOptimizationHints()) return false;
9063  }
9064  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
9065  if (hasMinimizeCore()) {
9066  if (getMinimizeCore()
9067  != other.getMinimizeCore()) return false;
9068  }
9069  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
9070  if (hasFindMultipleCores()) {
9071  if (getFindMultipleCores()
9072  != other.getFindMultipleCores()) return false;
9073  }
9074  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
9075  if (hasCoverOptimization()) {
9076  if (getCoverOptimization()
9077  != other.getCoverOptimization()) return false;
9078  }
9079  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
9080  if (hasMaxSatAssumptionOrder()) {
9081  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
9082  }
9083  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
9086  != other.getMaxSatReverseAssumptionOrder()) return false;
9087  }
9088  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
9089  if (hasMaxSatStratification()) {
9090  if (maxSatStratification_ != other.maxSatStratification_) return false;
9091  }
9092  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
9095  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
9096  }
9097  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
9100  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
9101  }
9102  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
9105  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
9106  }
9107  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
9110  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
9111  }
9112  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
9113  if (hasLinearizationLevel()) {
9114  if (getLinearizationLevel()
9115  != other.getLinearizationLevel()) return false;
9116  }
9117  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
9118  if (hasBooleanEncodingLevel()) {
9120  != other.getBooleanEncodingLevel()) return false;
9121  }
9122  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
9123  if (hasMaxNumCuts()) {
9124  if (getMaxNumCuts()
9125  != other.getMaxNumCuts()) return false;
9126  }
9127  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
9128  if (hasOnlyAddCutsAtLevelZero()) {
9130  != other.getOnlyAddCutsAtLevelZero()) return false;
9131  }
9132  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
9133  if (hasAddKnapsackCuts()) {
9134  if (getAddKnapsackCuts()
9135  != other.getAddKnapsackCuts()) return false;
9136  }
9137  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
9138  if (hasAddCgCuts()) {
9139  if (getAddCgCuts()
9140  != other.getAddCgCuts()) return false;
9141  }
9142  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
9143  if (hasAddMirCuts()) {
9144  if (getAddMirCuts()
9145  != other.getAddMirCuts()) return false;
9146  }
9147  if (hasAddZeroHalfCuts() != other.hasAddZeroHalfCuts()) return false;
9148  if (hasAddZeroHalfCuts()) {
9149  if (getAddZeroHalfCuts()
9150  != other.getAddZeroHalfCuts()) return false;
9151  }
9152  if (hasAddCliqueCuts() != other.hasAddCliqueCuts()) return false;
9153  if (hasAddCliqueCuts()) {
9154  if (getAddCliqueCuts()
9155  != other.getAddCliqueCuts()) return false;
9156  }
9157  if (hasMaxAllDiffCutSize() != other.hasMaxAllDiffCutSize()) return false;
9158  if (hasMaxAllDiffCutSize()) {
9159  if (getMaxAllDiffCutSize()
9160  != other.getMaxAllDiffCutSize()) return false;
9161  }
9162  if (hasAddLinMaxCuts() != other.hasAddLinMaxCuts()) return false;
9163  if (hasAddLinMaxCuts()) {
9164  if (getAddLinMaxCuts()
9165  != other.getAddLinMaxCuts()) return false;
9166  }
9167  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
9170  != other.getMaxIntegerRoundingScaling()) return false;
9171  }
9172  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
9173  if (hasAddLpConstraintsLazily()) {
9175  != other.getAddLpConstraintsLazily()) return false;
9176  }
9177  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
9179  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
9180  != java.lang.Double.doubleToLongBits(
9181  other.getMinOrthogonalityForLpConstraints())) return false;
9182  }
9183  if (hasMaxCutRoundsAtLevelZero() != other.hasMaxCutRoundsAtLevelZero()) return false;
9186  != other.getMaxCutRoundsAtLevelZero()) return false;
9187  }
9188  if (hasMaxConsecutiveInactiveCount() != other.hasMaxConsecutiveInactiveCount()) return false;
9191  != other.getMaxConsecutiveInactiveCount()) return false;
9192  }
9193  if (hasCutMaxActiveCountValue() != other.hasCutMaxActiveCountValue()) return false;
9194  if (hasCutMaxActiveCountValue()) {
9195  if (java.lang.Double.doubleToLongBits(getCutMaxActiveCountValue())
9196  != java.lang.Double.doubleToLongBits(
9197  other.getCutMaxActiveCountValue())) return false;
9198  }
9199  if (hasCutActiveCountDecay() != other.hasCutActiveCountDecay()) return false;
9200  if (hasCutActiveCountDecay()) {
9201  if (java.lang.Double.doubleToLongBits(getCutActiveCountDecay())
9202  != java.lang.Double.doubleToLongBits(
9203  other.getCutActiveCountDecay())) return false;
9204  }
9205  if (hasCutCleanupTarget() != other.hasCutCleanupTarget()) return false;
9206  if (hasCutCleanupTarget()) {
9207  if (getCutCleanupTarget()
9208  != other.getCutCleanupTarget()) return false;
9209  }
9210  if (hasNewConstraintsBatchSize() != other.hasNewConstraintsBatchSize()) return false;
9213  != other.getNewConstraintsBatchSize()) return false;
9214  }
9215  if (hasSearchBranching() != other.hasSearchBranching()) return false;
9216  if (hasSearchBranching()) {
9217  if (searchBranching_ != other.searchBranching_) return false;
9218  }
9219  if (hasHintConflictLimit() != other.hasHintConflictLimit()) return false;
9220  if (hasHintConflictLimit()) {
9221  if (getHintConflictLimit()
9222  != other.getHintConflictLimit()) return false;
9223  }
9224  if (hasRepairHint() != other.hasRepairHint()) return false;
9225  if (hasRepairHint()) {
9226  if (getRepairHint()
9227  != other.getRepairHint()) return false;
9228  }
9229  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
9232  != other.getExploitIntegerLpSolution()) return false;
9233  }
9234  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
9235  if (hasExploitAllLpSolution()) {
9237  != other.getExploitAllLpSolution()) return false;
9238  }
9239  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
9240  if (hasExploitBestSolution()) {
9242  != other.getExploitBestSolution()) return false;
9243  }
9244  if (hasExploitRelaxationSolution() != other.hasExploitRelaxationSolution()) return false;
9247  != other.getExploitRelaxationSolution()) return false;
9248  }
9249  if (hasExploitObjective() != other.hasExploitObjective()) return false;
9250  if (hasExploitObjective()) {
9251  if (getExploitObjective()
9252  != other.getExploitObjective()) return false;
9253  }
9254  if (hasProbingPeriodAtRoot() != other.hasProbingPeriodAtRoot()) return false;
9255  if (hasProbingPeriodAtRoot()) {
9257  != other.getProbingPeriodAtRoot()) return false;
9258  }
9259  if (hasUseProbingSearch() != other.hasUseProbingSearch()) return false;
9260  if (hasUseProbingSearch()) {
9261  if (getUseProbingSearch()
9262  != other.getUseProbingSearch()) return false;
9263  }
9264  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
9267  != other.getPseudoCostReliabilityThreshold()) return false;
9268  }
9269  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
9270  if (hasOptimizeWithCore()) {
9271  if (getOptimizeWithCore()
9272  != other.getOptimizeWithCore()) return false;
9273  }
9274  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
9277  != other.getBinarySearchNumConflicts()) return false;
9278  }
9279  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
9280  if (hasOptimizeWithMaxHs()) {
9281  if (getOptimizeWithMaxHs()
9282  != other.getOptimizeWithMaxHs()) return false;
9283  }
9284  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
9285  if (hasEnumerateAllSolutions()) {
9287  != other.getEnumerateAllSolutions()) return false;
9288  }
9289  if (hasKeepAllFeasibleSolutionsInPresolve() != other.hasKeepAllFeasibleSolutionsInPresolve()) return false;
9292  != other.getKeepAllFeasibleSolutionsInPresolve()) return false;
9293  }
9294  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
9297  != other.getFillTightenedDomainsInResponse()) return false;
9298  }
9299  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
9302  != other.getInstantiateAllVariables()) return false;
9303  }
9304  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
9307  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
9308  }
9309  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
9310  if (hasStopAfterFirstSolution()) {
9312  != other.getStopAfterFirstSolution()) return false;
9313  }
9314  if (hasStopAfterPresolve() != other.hasStopAfterPresolve()) return false;
9315  if (hasStopAfterPresolve()) {
9316  if (getStopAfterPresolve()
9317  != other.getStopAfterPresolve()) return false;
9318  }
9319  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
9320  if (hasNumSearchWorkers()) {
9321  if (getNumSearchWorkers()
9322  != other.getNumSearchWorkers()) return false;
9323  }
9324  if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
9325  if (hasInterleaveSearch()) {
9326  if (getInterleaveSearch()
9327  != other.getInterleaveSearch()) return false;
9328  }
9329  if (hasInterleaveBatchSize() != other.hasInterleaveBatchSize()) return false;
9330  if (hasInterleaveBatchSize()) {
9332  != other.getInterleaveBatchSize()) return false;
9333  }
9334  if (hasReduceMemoryUsageInInterleaveMode() != other.hasReduceMemoryUsageInInterleaveMode()) return false;
9337  != other.getReduceMemoryUsageInInterleaveMode()) return false;
9338  }
9339  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
9340  if (hasShareObjectiveBounds()) {
9342  != other.getShareObjectiveBounds()) return false;
9343  }
9344  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
9345  if (hasShareLevelZeroBounds()) {
9347  != other.getShareLevelZeroBounds()) return false;
9348  }
9349  if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
9350  if (hasUseLnsOnly()) {
9351  if (getUseLnsOnly()
9352  != other.getUseLnsOnly()) return false;
9353  }
9354  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
9357  != other.getLnsFocusOnDecisionVariables()) return false;
9358  }
9359  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
9360  if (hasUseRinsLns()) {
9361  if (getUseRinsLns()
9362  != other.getUseRinsLns()) return false;
9363  }
9364  if (hasUseFeasibilityPump() != other.hasUseFeasibilityPump()) return false;
9365  if (hasUseFeasibilityPump()) {
9366  if (getUseFeasibilityPump()
9367  != other.getUseFeasibilityPump()) return false;
9368  }
9369  if (hasFpRounding() != other.hasFpRounding()) return false;
9370  if (hasFpRounding()) {
9371  if (fpRounding_ != other.fpRounding_) return false;
9372  }
9373  if (hasUseRelaxationLns() != other.hasUseRelaxationLns()) return false;
9374  if (hasUseRelaxationLns()) {
9375  if (getUseRelaxationLns()
9376  != other.getUseRelaxationLns()) return false;
9377  }
9378  if (hasDiversifyLnsParams() != other.hasDiversifyLnsParams()) return false;
9379  if (hasDiversifyLnsParams()) {
9380  if (getDiversifyLnsParams()
9381  != other.getDiversifyLnsParams()) return false;
9382  }
9383  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
9384  if (hasRandomizeSearch()) {
9385  if (getRandomizeSearch()
9386  != other.getRandomizeSearch()) return false;
9387  }
9388  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
9391  != other.getSearchRandomizationTolerance()) return false;
9392  }
9393  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
9394  if (hasUseOptionalVariables()) {
9396  != other.getUseOptionalVariables()) return false;
9397  }
9398  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
9399  if (hasUseExactLpReason()) {
9400  if (getUseExactLpReason()
9401  != other.getUseExactLpReason()) return false;
9402  }
9403  if (hasUseBranchingInLp() != other.hasUseBranchingInLp()) return false;
9404  if (hasUseBranchingInLp()) {
9405  if (getUseBranchingInLp()
9406  != other.getUseBranchingInLp()) return false;
9407  }
9408  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
9409  if (hasUseCombinedNoOverlap()) {
9411  != other.getUseCombinedNoOverlap()) return false;
9412  }
9413  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
9414  if (hasCatchSigintSignal()) {
9415  if (getCatchSigintSignal()
9416  != other.getCatchSigintSignal()) return false;
9417  }
9418  if (hasUseImpliedBounds() != other.hasUseImpliedBounds()) return false;
9419  if (hasUseImpliedBounds()) {
9420  if (getUseImpliedBounds()
9421  != other.getUseImpliedBounds()) return false;
9422  }
9423  if (hasPolishLpSolution() != other.hasPolishLpSolution()) return false;
9424  if (hasPolishLpSolution()) {
9425  if (getPolishLpSolution()
9426  != other.getPolishLpSolution()) return false;
9427  }
9428  if (hasConvertIntervals() != other.hasConvertIntervals()) return false;
9429  if (hasConvertIntervals()) {
9430  if (getConvertIntervals()
9431  != other.getConvertIntervals()) return false;
9432  }
9433  if (hasDetectSymmetries() != other.hasDetectSymmetries()) return false;
9434  if (hasDetectSymmetries()) {
9435  if (getDetectSymmetries()
9436  != other.getDetectSymmetries()) return false;
9437  }
9438  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
9439  if (hasMipMaxBound()) {
9440  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
9441  != java.lang.Double.doubleToLongBits(
9442  other.getMipMaxBound())) return false;
9443  }
9444  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
9445  if (hasMipVarScaling()) {
9446  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
9447  != java.lang.Double.doubleToLongBits(
9448  other.getMipVarScaling())) return false;
9449  }
9450  if (hasMipAutomaticallyScaleVariables() != other.hasMipAutomaticallyScaleVariables()) return false;
9453  != other.getMipAutomaticallyScaleVariables()) return false;
9454  }
9455  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
9456  if (hasMipWantedPrecision()) {
9457  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
9458  != java.lang.Double.doubleToLongBits(
9459  other.getMipWantedPrecision())) return false;
9460  }
9461  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
9462  if (hasMipMaxActivityExponent()) {
9464  != other.getMipMaxActivityExponent()) return false;
9465  }
9466  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
9467  if (hasMipCheckPrecision()) {
9468  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
9469  != java.lang.Double.doubleToLongBits(
9470  other.getMipCheckPrecision())) return false;
9471  }
9472  if (!unknownFields.equals(other.unknownFields)) return false;
9473  return true;
9474  }
9475 
9476  @java.lang.Override
9477  public int hashCode() {
9478  if (memoizedHashCode != 0) {
9479  return memoizedHashCode;
9480  }
9481  int hash = 41;
9482  hash = (19 * hash) + getDescriptor().hashCode();
9483  if (hasName()) {
9484  hash = (37 * hash) + NAME_FIELD_NUMBER;
9485  hash = (53 * hash) + getName().hashCode();
9486  }
9487  if (hasPreferredVariableOrder()) {
9488  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
9489  hash = (53 * hash) + preferredVariableOrder_;
9490  }
9491  if (hasInitialPolarity()) {
9492  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
9493  hash = (53 * hash) + initialPolarity_;
9494  }
9495  if (hasUsePhaseSaving()) {
9496  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
9497  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9498  getUsePhaseSaving());
9499  }
9501  hash = (37 * hash) + POLARITY_REPHASE_INCREMENT_FIELD_NUMBER;
9502  hash = (53 * hash) + getPolarityRephaseIncrement();
9503  }
9504  if (hasRandomPolarityRatio()) {
9505  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
9506  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9507  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
9508  }
9509  if (hasRandomBranchesRatio()) {
9510  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
9511  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9512  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
9513  }
9514  if (hasUseErwaHeuristic()) {
9515  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
9516  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9518  }
9520  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
9521  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9522  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
9523  }
9526  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9528  }
9529  if (hasMinimizationAlgorithm()) {
9530  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
9531  hash = (53 * hash) + minimizationAlgorithm_;
9532  }
9534  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
9535  hash = (53 * hash) + binaryMinimizationAlgorithm_;
9536  }
9539  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9541  }
9542  if (hasClauseCleanupPeriod()) {
9543  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
9544  hash = (53 * hash) + getClauseCleanupPeriod();
9545  }
9546  if (hasClauseCleanupTarget()) {
9547  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
9548  hash = (53 * hash) + getClauseCleanupTarget();
9549  }
9551  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
9552  hash = (53 * hash) + clauseCleanupProtection_;
9553  }
9554  if (hasClauseCleanupLbdBound()) {
9555  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
9556  hash = (53 * hash) + getClauseCleanupLbdBound();
9557  }
9558  if (hasClauseCleanupOrdering()) {
9559  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
9560  hash = (53 * hash) + clauseCleanupOrdering_;
9561  }
9562  if (hasPbCleanupIncrement()) {
9563  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
9564  hash = (53 * hash) + getPbCleanupIncrement();
9565  }
9566  if (hasPbCleanupRatio()) {
9567  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
9568  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9569  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
9570  }
9573  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
9574  }
9577  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
9578  }
9579  if (hasVariableActivityDecay()) {
9580  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
9581  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9582  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
9583  }
9585  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
9586  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9587  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
9588  }
9589  if (hasGlucoseMaxDecay()) {
9590  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
9591  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9592  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
9593  }
9594  if (hasGlucoseDecayIncrement()) {
9595  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
9596  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9597  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
9598  }
9600  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
9601  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
9602  }
9603  if (hasClauseActivityDecay()) {
9604  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
9605  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9606  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
9607  }
9608  if (hasMaxClauseActivityValue()) {
9609  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
9610  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9611  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
9612  }
9613  if (getRestartAlgorithmsCount() > 0) {
9614  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
9615  hash = (53 * hash) + restartAlgorithms_.hashCode();
9616  }
9618  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
9619  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
9620  }
9621  if (hasRestartPeriod()) {
9622  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
9623  hash = (53 * hash) + getRestartPeriod();
9624  }
9626  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
9627  hash = (53 * hash) + getRestartRunningWindowSize();
9628  }
9629  if (hasRestartDlAverageRatio()) {
9630  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
9631  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9632  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
9633  }
9634  if (hasRestartLbdAverageRatio()) {
9635  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
9636  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9637  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
9638  }
9639  if (hasUseBlockingRestart()) {
9640  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
9641  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9643  }
9645  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
9646  hash = (53 * hash) + getBlockingRestartWindowSize();
9647  }
9649  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
9650  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9651  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
9652  }
9655  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
9656  }
9658  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
9659  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9660  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
9661  }
9662  if (hasMaxTimeInSeconds()) {
9663  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
9664  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9665  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
9666  }
9667  if (hasMaxDeterministicTime()) {
9668  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
9669  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9670  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
9671  }
9672  if (hasMaxNumberOfConflicts()) {
9673  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
9674  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9676  }
9677  if (hasMaxMemoryInMb()) {
9678  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
9679  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9680  getMaxMemoryInMb());
9681  }
9682  if (hasAbsoluteGapLimit()) {
9683  hash = (37 * hash) + ABSOLUTE_GAP_LIMIT_FIELD_NUMBER;
9684  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9685  java.lang.Double.doubleToLongBits(getAbsoluteGapLimit()));
9686  }
9687  if (hasRelativeGapLimit()) {
9688  hash = (37 * hash) + RELATIVE_GAP_LIMIT_FIELD_NUMBER;
9689  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9690  java.lang.Double.doubleToLongBits(getRelativeGapLimit()));
9691  }
9693  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
9694  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9696  }
9697  if (hasRandomSeed()) {
9698  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
9699  hash = (53 * hash) + getRandomSeed();
9700  }
9702  hash = (37 * hash) + PERMUTE_VARIABLE_RANDOMLY_FIELD_NUMBER;
9703  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9705  }
9708  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9710  }
9711  if (hasUseAbslRandom()) {
9712  hash = (37 * hash) + USE_ABSL_RANDOM_FIELD_NUMBER;
9713  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9714  getUseAbslRandom());
9715  }
9716  if (hasLogSearchProgress()) {
9717  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
9718  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9720  }
9721  if (hasUsePbResolution()) {
9722  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
9723  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9724  getUsePbResolution());
9725  }
9728  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9730  }
9732  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
9733  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9735  }
9736  if (hasPresolveBveThreshold()) {
9737  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
9738  hash = (53 * hash) + getPresolveBveThreshold();
9739  }
9741  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
9742  hash = (53 * hash) + getPresolveBveClauseWeight();
9743  }
9746  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9747  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
9748  }
9749  if (hasPresolveBlockedClause()) {
9750  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
9751  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9753  }
9754  if (hasPresolveUseBva()) {
9755  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
9756  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9757  getPresolveUseBva());
9758  }
9759  if (hasPresolveBvaThreshold()) {
9760  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
9761  hash = (53 * hash) + getPresolveBvaThreshold();
9762  }
9763  if (hasMaxPresolveIterations()) {
9764  hash = (37 * hash) + MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER;
9765  hash = (53 * hash) + getMaxPresolveIterations();
9766  }
9767  if (hasCpModelPresolve()) {
9768  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
9769  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9770  getCpModelPresolve());
9771  }
9774  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9776  }
9779  hash = (53 * hash) + getCpModelMaxNumPresolveOperations();
9780  }
9781  if (hasCpModelProbingLevel()) {
9782  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
9783  hash = (53 * hash) + getCpModelProbingLevel();
9784  }
9785  if (hasCpModelUseSatPresolve()) {
9786  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
9787  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9789  }
9790  if (hasUseSatInprocessing()) {
9791  hash = (37 * hash) + USE_SAT_INPROCESSING_FIELD_NUMBER;
9792  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9794  }
9796  hash = (37 * hash) + EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER;
9797  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9799  }
9801  hash = (37 * hash) + EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER;
9802  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9804  }
9805  if (hasExpandTableConstraints()) {
9806  hash = (37 * hash) + EXPAND_TABLE_CONSTRAINTS_FIELD_NUMBER;
9807  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9809  }
9811  hash = (37 * hash) + EXPAND_ALLDIFF_CONSTRAINTS_FIELD_NUMBER;
9812  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9814  }
9816  hash = (37 * hash) + EXPAND_RESERVOIR_CONSTRAINTS_FIELD_NUMBER;
9817  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9819  }
9821  hash = (37 * hash) + DISABLE_CONSTRAINT_EXPANSION_FIELD_NUMBER;
9822  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9824  }
9826  hash = (37 * hash) + MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER;
9827  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9828  java.lang.Double.doubleToLongBits(getMergeNoOverlapWorkLimit()));
9829  }
9831  hash = (37 * hash) + MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER;
9832  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9833  java.lang.Double.doubleToLongBits(getMergeAtMostOneWorkLimit()));
9834  }
9836  hash = (37 * hash) + PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER;
9837  hash = (53 * hash) + getPresolveSubstitutionLevel();
9838  }
9841  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9843  }
9844  if (hasUseOptimizationHints()) {
9845  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
9846  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9848  }
9849  if (hasMinimizeCore()) {
9850  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
9851  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9852  getMinimizeCore());
9853  }
9854  if (hasFindMultipleCores()) {
9855  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
9856  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9858  }
9859  if (hasCoverOptimization()) {
9860  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
9861  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9863  }
9864  if (hasMaxSatAssumptionOrder()) {
9865  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
9866  hash = (53 * hash) + maxSatAssumptionOrder_;
9867  }
9869  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
9870  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9872  }
9873  if (hasMaxSatStratification()) {
9874  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
9875  hash = (53 * hash) + maxSatStratification_;
9876  }
9879  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9881  }
9884  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9886  }
9889  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9891  }
9894  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9896  }
9897  if (hasLinearizationLevel()) {
9898  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
9899  hash = (53 * hash) + getLinearizationLevel();
9900  }
9901  if (hasBooleanEncodingLevel()) {
9902  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
9903  hash = (53 * hash) + getBooleanEncodingLevel();
9904  }
9905  if (hasMaxNumCuts()) {
9906  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
9907  hash = (53 * hash) + getMaxNumCuts();
9908  }
9909  if (hasOnlyAddCutsAtLevelZero()) {
9910  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
9911  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9913  }
9914  if (hasAddKnapsackCuts()) {
9915  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
9916  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9917  getAddKnapsackCuts());
9918  }
9919  if (hasAddCgCuts()) {
9920  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
9921  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9922  getAddCgCuts());
9923  }
9924  if (hasAddMirCuts()) {
9925  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
9926  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9927  getAddMirCuts());
9928  }
9929  if (hasAddZeroHalfCuts()) {
9930  hash = (37 * hash) + ADD_ZERO_HALF_CUTS_FIELD_NUMBER;
9931  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9932  getAddZeroHalfCuts());
9933  }
9934  if (hasAddCliqueCuts()) {
9935  hash = (37 * hash) + ADD_CLIQUE_CUTS_FIELD_NUMBER;
9936  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9937  getAddCliqueCuts());
9938  }
9939  if (hasMaxAllDiffCutSize()) {
9940  hash = (37 * hash) + MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER;
9941  hash = (53 * hash) + getMaxAllDiffCutSize();
9942  }
9943  if (hasAddLinMaxCuts()) {
9944  hash = (37 * hash) + ADD_LIN_MAX_CUTS_FIELD_NUMBER;
9945  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9946  getAddLinMaxCuts());
9947  }
9949  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
9950  hash = (53 * hash) + getMaxIntegerRoundingScaling();
9951  }
9952  if (hasAddLpConstraintsLazily()) {
9953  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
9954  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9956  }
9959  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9960  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
9961  }
9963  hash = (37 * hash) + MAX_CUT_ROUNDS_AT_LEVEL_ZERO_FIELD_NUMBER;
9964  hash = (53 * hash) + getMaxCutRoundsAtLevelZero();
9965  }
9967  hash = (37 * hash) + MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER;
9968  hash = (53 * hash) + getMaxConsecutiveInactiveCount();
9969  }
9970  if (hasCutMaxActiveCountValue()) {
9971  hash = (37 * hash) + CUT_MAX_ACTIVE_COUNT_VALUE_FIELD_NUMBER;
9972  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9973  java.lang.Double.doubleToLongBits(getCutMaxActiveCountValue()));
9974  }
9975  if (hasCutActiveCountDecay()) {
9976  hash = (37 * hash) + CUT_ACTIVE_COUNT_DECAY_FIELD_NUMBER;
9977  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9978  java.lang.Double.doubleToLongBits(getCutActiveCountDecay()));
9979  }
9980  if (hasCutCleanupTarget()) {
9981  hash = (37 * hash) + CUT_CLEANUP_TARGET_FIELD_NUMBER;
9982  hash = (53 * hash) + getCutCleanupTarget();
9983  }
9985  hash = (37 * hash) + NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER;
9986  hash = (53 * hash) + getNewConstraintsBatchSize();
9987  }
9988  if (hasSearchBranching()) {
9989  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
9990  hash = (53 * hash) + searchBranching_;
9991  }
9992  if (hasHintConflictLimit()) {
9993  hash = (37 * hash) + HINT_CONFLICT_LIMIT_FIELD_NUMBER;
9994  hash = (53 * hash) + getHintConflictLimit();
9995  }
9996  if (hasRepairHint()) {
9997  hash = (37 * hash) + REPAIR_HINT_FIELD_NUMBER;
9998  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9999  getRepairHint());
10000  }
10002  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
10003  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10005  }
10006  if (hasExploitAllLpSolution()) {
10007  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
10008  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10010  }
10011  if (hasExploitBestSolution()) {
10012  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
10013  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10015  }
10017  hash = (37 * hash) + EXPLOIT_RELAXATION_SOLUTION_FIELD_NUMBER;
10018  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10020  }
10021  if (hasExploitObjective()) {
10022  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
10023  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10025  }
10026  if (hasProbingPeriodAtRoot()) {
10027  hash = (37 * hash) + PROBING_PERIOD_AT_ROOT_FIELD_NUMBER;
10028  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10030  }
10031  if (hasUseProbingSearch()) {
10032  hash = (37 * hash) + USE_PROBING_SEARCH_FIELD_NUMBER;
10033  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10035  }
10038  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10040  }
10041  if (hasOptimizeWithCore()) {
10042  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
10043  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10045  }
10047  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
10048  hash = (53 * hash) + getBinarySearchNumConflicts();
10049  }
10050  if (hasOptimizeWithMaxHs()) {
10051  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
10052  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10054  }
10055  if (hasEnumerateAllSolutions()) {
10056  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
10057  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10059  }
10062  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10064  }
10067  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10069  }
10071  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
10072  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10074  }
10077  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10079  }
10080  if (hasStopAfterFirstSolution()) {
10081  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
10082  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10084  }
10085  if (hasStopAfterPresolve()) {
10086  hash = (37 * hash) + STOP_AFTER_PRESOLVE_FIELD_NUMBER;
10087  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10089  }
10090  if (hasNumSearchWorkers()) {
10091  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
10092  hash = (53 * hash) + getNumSearchWorkers();
10093  }
10094  if (hasInterleaveSearch()) {
10095  hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
10096  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10098  }
10099  if (hasInterleaveBatchSize()) {
10100  hash = (37 * hash) + INTERLEAVE_BATCH_SIZE_FIELD_NUMBER;
10101  hash = (53 * hash) + getInterleaveBatchSize();
10102  }
10105  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10107  }
10108  if (hasShareObjectiveBounds()) {
10109  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
10110  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10112  }
10113  if (hasShareLevelZeroBounds()) {
10114  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
10115  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10117  }
10118  if (hasUseLnsOnly()) {
10119  hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
10120  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10121  getUseLnsOnly());
10122  }
10124  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
10125  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10127  }
10128  if (hasUseRinsLns()) {
10129  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
10130  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10131  getUseRinsLns());
10132  }
10133  if (hasUseFeasibilityPump()) {
10134  hash = (37 * hash) + USE_FEASIBILITY_PUMP_FIELD_NUMBER;
10135  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10137  }
10138  if (hasFpRounding()) {
10139  hash = (37 * hash) + FP_ROUNDING_FIELD_NUMBER;
10140  hash = (53 * hash) + fpRounding_;
10141  }
10142  if (hasUseRelaxationLns()) {
10143  hash = (37 * hash) + USE_RELAXATION_LNS_FIELD_NUMBER;
10144  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10146  }
10147  if (hasDiversifyLnsParams()) {
10148  hash = (37 * hash) + DIVERSIFY_LNS_PARAMS_FIELD_NUMBER;
10149  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10151  }
10152  if (hasRandomizeSearch()) {
10153  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
10154  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10155  getRandomizeSearch());
10156  }
10158  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
10159  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10161  }
10162  if (hasUseOptionalVariables()) {
10163  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
10164  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10166  }
10167  if (hasUseExactLpReason()) {
10168  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
10169  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10171  }
10172  if (hasUseBranchingInLp()) {
10173  hash = (37 * hash) + USE_BRANCHING_IN_LP_FIELD_NUMBER;
10174  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10176  }
10177  if (hasUseCombinedNoOverlap()) {
10178  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
10179  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10181  }
10182  if (hasCatchSigintSignal()) {
10183  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
10184  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10186  }
10187  if (hasUseImpliedBounds()) {
10188  hash = (37 * hash) + USE_IMPLIED_BOUNDS_FIELD_NUMBER;
10189  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10191  }
10192  if (hasPolishLpSolution()) {
10193  hash = (37 * hash) + POLISH_LP_SOLUTION_FIELD_NUMBER;
10194  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10196  }
10197  if (hasConvertIntervals()) {
10198  hash = (37 * hash) + CONVERT_INTERVALS_FIELD_NUMBER;
10199  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10201  }
10202  if (hasDetectSymmetries()) {
10203  hash = (37 * hash) + DETECT_SYMMETRIES_FIELD_NUMBER;
10204  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10206  }
10207  if (hasMipMaxBound()) {
10208  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
10209  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10210  java.lang.Double.doubleToLongBits(getMipMaxBound()));
10211  }
10212  if (hasMipVarScaling()) {
10213  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
10214  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10215  java.lang.Double.doubleToLongBits(getMipVarScaling()));
10216  }
10219  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10221  }
10222  if (hasMipWantedPrecision()) {
10223  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
10224  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10225  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
10226  }
10227  if (hasMipMaxActivityExponent()) {
10228  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
10229  hash = (53 * hash) + getMipMaxActivityExponent();
10230  }
10231  if (hasMipCheckPrecision()) {
10232  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
10233  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10234  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
10235  }
10236  hash = (29 * hash) + unknownFields.hashCode();
10237  memoizedHashCode = hash;
10238  return hash;
10239  }
10240 
10241  public static com.google.ortools.sat.SatParameters parseFrom(
10242  java.nio.ByteBuffer data)
10243  throws com.google.protobuf.InvalidProtocolBufferException {
10244  return PARSER.parseFrom(data);
10245  }
10246  public static com.google.ortools.sat.SatParameters parseFrom(
10247  java.nio.ByteBuffer data,
10248  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10249  throws com.google.protobuf.InvalidProtocolBufferException {
10250  return PARSER.parseFrom(data, extensionRegistry);
10251  }
10252  public static com.google.ortools.sat.SatParameters parseFrom(
10253  com.google.protobuf.ByteString data)
10254  throws com.google.protobuf.InvalidProtocolBufferException {
10255  return PARSER.parseFrom(data);
10256  }
10257  public static com.google.ortools.sat.SatParameters parseFrom(
10258  com.google.protobuf.ByteString data,
10259  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10260  throws com.google.protobuf.InvalidProtocolBufferException {
10261  return PARSER.parseFrom(data, extensionRegistry);
10262  }
10263  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
10264  throws com.google.protobuf.InvalidProtocolBufferException {
10265  return PARSER.parseFrom(data);
10266  }
10267  public static com.google.ortools.sat.SatParameters parseFrom(
10268  byte[] data,
10269  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10270  throws com.google.protobuf.InvalidProtocolBufferException {
10271  return PARSER.parseFrom(data, extensionRegistry);
10272  }
10273  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
10274  throws java.io.IOException {
10275  return com.google.protobuf.GeneratedMessageV3
10276  .parseWithIOException(PARSER, input);
10277  }
10278  public static com.google.ortools.sat.SatParameters parseFrom(
10279  java.io.InputStream input,
10280  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10281  throws java.io.IOException {
10282  return com.google.protobuf.GeneratedMessageV3
10283  .parseWithIOException(PARSER, input, extensionRegistry);
10284  }
10285  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
10286  throws java.io.IOException {
10287  return com.google.protobuf.GeneratedMessageV3
10288  .parseDelimitedWithIOException(PARSER, input);
10289  }
10290  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(
10291  java.io.InputStream input,
10292  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10293  throws java.io.IOException {
10294  return com.google.protobuf.GeneratedMessageV3
10295  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
10296  }
10297  public static com.google.ortools.sat.SatParameters parseFrom(
10298  com.google.protobuf.CodedInputStream input)
10299  throws java.io.IOException {
10300  return com.google.protobuf.GeneratedMessageV3
10301  .parseWithIOException(PARSER, input);
10302  }
10303  public static com.google.ortools.sat.SatParameters parseFrom(
10304  com.google.protobuf.CodedInputStream input,
10305  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10306  throws java.io.IOException {
10307  return com.google.protobuf.GeneratedMessageV3
10308  .parseWithIOException(PARSER, input, extensionRegistry);
10309  }
10310 
10311  @java.lang.Override
10312  public Builder newBuilderForType() { return newBuilder(); }
10313  public static Builder newBuilder() {
10314  return DEFAULT_INSTANCE.toBuilder();
10315  }
10316  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
10317  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
10318  }
10319  @java.lang.Override
10320  public Builder toBuilder() {
10321  return this == DEFAULT_INSTANCE
10322  ? new Builder() : new Builder().mergeFrom(this);
10323  }
10324 
10325  @java.lang.Override
10327  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
10328  Builder builder = new Builder(parent);
10329  return builder;
10330  }
10340  public static final class Builder extends
10341  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
10342  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
10343  com.google.ortools.sat.SatParametersOrBuilder {
10344  public static final com.google.protobuf.Descriptors.Descriptor
10346  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
10347  }
10348 
10349  @java.lang.Override
10350  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
10352  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
10353  .ensureFieldAccessorsInitialized(
10354  com.google.ortools.sat.SatParameters.class, com.google.ortools.sat.SatParameters.Builder.class);
10355  }
10356 
10357  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
10358  private Builder() {
10359  maybeForceBuilderInitialization();
10360  }
10361 
10362  private Builder(
10363  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
10364  super(parent);
10365  maybeForceBuilderInitialization();
10366  }
10367  private void maybeForceBuilderInitialization() {
10368  if (com.google.protobuf.GeneratedMessageV3
10369  .alwaysUseFieldBuilders) {
10370  }
10371  }
10372  @java.lang.Override
10373  public Builder clear() {
10374  super.clear();
10375  name_ = "";
10376  bitField0_ = (bitField0_ & ~0x00000001);
10377  preferredVariableOrder_ = 0;
10378  bitField0_ = (bitField0_ & ~0x00000002);
10379  initialPolarity_ = 1;
10380  bitField0_ = (bitField0_ & ~0x00000004);
10381  usePhaseSaving_ = true;
10382  bitField0_ = (bitField0_ & ~0x00000008);
10383  polarityRephaseIncrement_ = 1000;
10384  bitField0_ = (bitField0_ & ~0x00000010);
10385  randomPolarityRatio_ = 0D;
10386  bitField0_ = (bitField0_ & ~0x00000020);
10387  randomBranchesRatio_ = 0D;
10388  bitField0_ = (bitField0_ & ~0x00000040);
10389  useErwaHeuristic_ = false;
10390  bitField0_ = (bitField0_ & ~0x00000080);
10391  initialVariablesActivity_ = 0D;
10392  bitField0_ = (bitField0_ & ~0x00000100);
10393  alsoBumpVariablesInConflictReasons_ = false;
10394  bitField0_ = (bitField0_ & ~0x00000200);
10395  minimizationAlgorithm_ = 2;
10396  bitField0_ = (bitField0_ & ~0x00000400);
10397  binaryMinimizationAlgorithm_ = 1;
10398  bitField0_ = (bitField0_ & ~0x00000800);
10399  subsumptionDuringConflictAnalysis_ = true;
10400  bitField0_ = (bitField0_ & ~0x00001000);
10401  clauseCleanupPeriod_ = 10000;
10402  bitField0_ = (bitField0_ & ~0x00002000);
10403  clauseCleanupTarget_ = 10000;
10404  bitField0_ = (bitField0_ & ~0x00004000);
10405  clauseCleanupProtection_ = 0;
10406  bitField0_ = (bitField0_ & ~0x00008000);
10407  clauseCleanupLbdBound_ = 5;
10408  bitField0_ = (bitField0_ & ~0x00010000);
10409  clauseCleanupOrdering_ = 0;
10410  bitField0_ = (bitField0_ & ~0x00020000);
10411  pbCleanupIncrement_ = 200;
10412  bitField0_ = (bitField0_ & ~0x00040000);
10413  pbCleanupRatio_ = 0.5D;
10414  bitField0_ = (bitField0_ & ~0x00080000);
10415  minimizeWithPropagationRestartPeriod_ = 10;
10416  bitField0_ = (bitField0_ & ~0x00100000);
10417  minimizeWithPropagationNumDecisions_ = 1000;
10418  bitField0_ = (bitField0_ & ~0x00200000);
10419  variableActivityDecay_ = 0.8D;
10420  bitField0_ = (bitField0_ & ~0x00400000);
10421  maxVariableActivityValue_ = 1e+100D;
10422  bitField0_ = (bitField0_ & ~0x00800000);
10423  glucoseMaxDecay_ = 0.95D;
10424  bitField0_ = (bitField0_ & ~0x01000000);
10425  glucoseDecayIncrement_ = 0.01D;
10426  bitField0_ = (bitField0_ & ~0x02000000);
10427  glucoseDecayIncrementPeriod_ = 5000;
10428  bitField0_ = (bitField0_ & ~0x04000000);
10429  clauseActivityDecay_ = 0.999D;
10430  bitField0_ = (bitField0_ & ~0x08000000);
10431  maxClauseActivityValue_ = 1e+20D;
10432  bitField0_ = (bitField0_ & ~0x10000000);
10433  restartAlgorithms_ = java.util.Collections.emptyList();
10434  bitField0_ = (bitField0_ & ~0x20000000);
10435  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
10436  bitField0_ = (bitField0_ & ~0x40000000);
10437  restartPeriod_ = 50;
10438  bitField0_ = (bitField0_ & ~0x80000000);
10439  restartRunningWindowSize_ = 50;
10440  bitField1_ = (bitField1_ & ~0x00000001);
10441  restartDlAverageRatio_ = 1D;
10442  bitField1_ = (bitField1_ & ~0x00000002);
10443  restartLbdAverageRatio_ = 1D;
10444  bitField1_ = (bitField1_ & ~0x00000004);
10445  useBlockingRestart_ = false;
10446  bitField1_ = (bitField1_ & ~0x00000008);
10447  blockingRestartWindowSize_ = 5000;
10448  bitField1_ = (bitField1_ & ~0x00000010);
10449  blockingRestartMultiplier_ = 1.4D;
10450  bitField1_ = (bitField1_ & ~0x00000020);
10451  numConflictsBeforeStrategyChanges_ = 0;
10452  bitField1_ = (bitField1_ & ~0x00000040);
10453  strategyChangeIncreaseRatio_ = 0D;
10454  bitField1_ = (bitField1_ & ~0x00000080);
10455  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10456  bitField1_ = (bitField1_ & ~0x00000100);
10457  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10458  bitField1_ = (bitField1_ & ~0x00000200);
10459  maxNumberOfConflicts_ = 9223372036854775807L;
10460  bitField1_ = (bitField1_ & ~0x00000400);
10461  maxMemoryInMb_ = 10000L;
10462  bitField1_ = (bitField1_ & ~0x00000800);
10463  absoluteGapLimit_ = 0D;
10464  bitField1_ = (bitField1_ & ~0x00001000);
10465  relativeGapLimit_ = 0D;
10466  bitField1_ = (bitField1_ & ~0x00002000);
10467  treatBinaryClausesSeparately_ = true;
10468  bitField1_ = (bitField1_ & ~0x00004000);
10469  randomSeed_ = 1;
10470  bitField1_ = (bitField1_ & ~0x00008000);
10471  permuteVariableRandomly_ = false;
10472  bitField1_ = (bitField1_ & ~0x00010000);
10473  permutePresolveConstraintOrder_ = false;
10474  bitField1_ = (bitField1_ & ~0x00020000);
10475  useAbslRandom_ = false;
10476  bitField1_ = (bitField1_ & ~0x00040000);
10477  logSearchProgress_ = false;
10478  bitField1_ = (bitField1_ & ~0x00080000);
10479  usePbResolution_ = false;
10480  bitField1_ = (bitField1_ & ~0x00100000);
10481  minimizeReductionDuringPbResolution_ = false;
10482  bitField1_ = (bitField1_ & ~0x00200000);
10483  countAssumptionLevelsInLbd_ = true;
10484  bitField1_ = (bitField1_ & ~0x00400000);
10485  presolveBveThreshold_ = 500;
10486  bitField1_ = (bitField1_ & ~0x00800000);
10487  presolveBveClauseWeight_ = 3;
10488  bitField1_ = (bitField1_ & ~0x01000000);
10489  presolveProbingDeterministicTimeLimit_ = 30D;
10490  bitField1_ = (bitField1_ & ~0x02000000);
10491  presolveBlockedClause_ = true;
10492  bitField1_ = (bitField1_ & ~0x04000000);
10493  presolveUseBva_ = true;
10494  bitField1_ = (bitField1_ & ~0x08000000);
10495  presolveBvaThreshold_ = 1;
10496  bitField1_ = (bitField1_ & ~0x10000000);
10497  maxPresolveIterations_ = 3;
10498  bitField1_ = (bitField1_ & ~0x20000000);
10499  cpModelPresolve_ = true;
10500  bitField1_ = (bitField1_ & ~0x40000000);
10501  cpModelPostsolveWithFullSolver_ = false;
10502  bitField1_ = (bitField1_ & ~0x80000000);
10503  cpModelMaxNumPresolveOperations_ = 0;
10504  bitField2_ = (bitField2_ & ~0x00000001);
10505  cpModelProbingLevel_ = 2;
10506  bitField2_ = (bitField2_ & ~0x00000002);
10507  cpModelUseSatPresolve_ = true;
10508  bitField2_ = (bitField2_ & ~0x00000004);
10509  useSatInprocessing_ = false;
10510  bitField2_ = (bitField2_ & ~0x00000008);
10511  expandElementConstraints_ = true;
10512  bitField2_ = (bitField2_ & ~0x00000010);
10513  expandAutomatonConstraints_ = true;
10514  bitField2_ = (bitField2_ & ~0x00000020);
10515  expandTableConstraints_ = true;
10516  bitField2_ = (bitField2_ & ~0x00000040);
10517  expandAlldiffConstraints_ = false;
10518  bitField2_ = (bitField2_ & ~0x00000080);
10519  expandReservoirConstraints_ = true;
10520  bitField2_ = (bitField2_ & ~0x00000100);
10521  disableConstraintExpansion_ = false;
10522  bitField2_ = (bitField2_ & ~0x00000200);
10523  mergeNoOverlapWorkLimit_ = 1000000000000D;
10524  bitField2_ = (bitField2_ & ~0x00000400);
10525  mergeAtMostOneWorkLimit_ = 100000000D;
10526  bitField2_ = (bitField2_ & ~0x00000800);
10527  presolveSubstitutionLevel_ = 1;
10528  bitField2_ = (bitField2_ & ~0x00001000);
10529  presolveExtractIntegerEnforcement_ = false;
10530  bitField2_ = (bitField2_ & ~0x00002000);
10531  useOptimizationHints_ = true;
10532  bitField2_ = (bitField2_ & ~0x00004000);
10533  minimizeCore_ = true;
10534  bitField2_ = (bitField2_ & ~0x00008000);
10535  findMultipleCores_ = true;
10536  bitField2_ = (bitField2_ & ~0x00010000);
10537  coverOptimization_ = true;
10538  bitField2_ = (bitField2_ & ~0x00020000);
10539  maxSatAssumptionOrder_ = 0;
10540  bitField2_ = (bitField2_ & ~0x00040000);
10541  maxSatReverseAssumptionOrder_ = false;
10542  bitField2_ = (bitField2_ & ~0x00080000);
10543  maxSatStratification_ = 1;
10544  bitField2_ = (bitField2_ & ~0x00100000);
10545  usePrecedencesInDisjunctiveConstraint_ = true;
10546  bitField2_ = (bitField2_ & ~0x00200000);
10547  useOverloadCheckerInCumulativeConstraint_ = false;
10548  bitField2_ = (bitField2_ & ~0x00400000);
10549  useTimetableEdgeFindingInCumulativeConstraint_ = false;
10550  bitField2_ = (bitField2_ & ~0x00800000);
10551  useDisjunctiveConstraintInCumulativeConstraint_ = true;
10552  bitField2_ = (bitField2_ & ~0x01000000);
10553  linearizationLevel_ = 1;
10554  bitField2_ = (bitField2_ & ~0x02000000);
10555  booleanEncodingLevel_ = 1;
10556  bitField2_ = (bitField2_ & ~0x04000000);
10557  maxNumCuts_ = 10000;
10558  bitField2_ = (bitField2_ & ~0x08000000);
10559  onlyAddCutsAtLevelZero_ = false;
10560  bitField2_ = (bitField2_ & ~0x10000000);
10561  addKnapsackCuts_ = false;
10562  bitField2_ = (bitField2_ & ~0x20000000);
10563  addCgCuts_ = true;
10564  bitField2_ = (bitField2_ & ~0x40000000);
10565  addMirCuts_ = true;
10566  bitField2_ = (bitField2_ & ~0x80000000);
10567  addZeroHalfCuts_ = true;
10568  bitField3_ = (bitField3_ & ~0x00000001);
10569  addCliqueCuts_ = true;
10570  bitField3_ = (bitField3_ & ~0x00000002);
10571  maxAllDiffCutSize_ = 7;
10572  bitField3_ = (bitField3_ & ~0x00000004);
10573  addLinMaxCuts_ = true;
10574  bitField3_ = (bitField3_ & ~0x00000008);
10575  maxIntegerRoundingScaling_ = 600;
10576  bitField3_ = (bitField3_ & ~0x00000010);
10577  addLpConstraintsLazily_ = true;
10578  bitField3_ = (bitField3_ & ~0x00000020);
10579  minOrthogonalityForLpConstraints_ = 0.05D;
10580  bitField3_ = (bitField3_ & ~0x00000040);
10581  maxCutRoundsAtLevelZero_ = 1;
10582  bitField3_ = (bitField3_ & ~0x00000080);
10583  maxConsecutiveInactiveCount_ = 100;
10584  bitField3_ = (bitField3_ & ~0x00000100);
10585  cutMaxActiveCountValue_ = 10000000000D;
10586  bitField3_ = (bitField3_ & ~0x00000200);
10587  cutActiveCountDecay_ = 0.8D;
10588  bitField3_ = (bitField3_ & ~0x00000400);
10589  cutCleanupTarget_ = 1000;
10590  bitField3_ = (bitField3_ & ~0x00000800);
10591  newConstraintsBatchSize_ = 50;
10592  bitField3_ = (bitField3_ & ~0x00001000);
10593  searchBranching_ = 0;
10594  bitField3_ = (bitField3_ & ~0x00002000);
10595  hintConflictLimit_ = 10;
10596  bitField3_ = (bitField3_ & ~0x00004000);
10597  repairHint_ = false;
10598  bitField3_ = (bitField3_ & ~0x00008000);
10599  exploitIntegerLpSolution_ = true;
10600  bitField3_ = (bitField3_ & ~0x00010000);
10601  exploitAllLpSolution_ = true;
10602  bitField3_ = (bitField3_ & ~0x00020000);
10603  exploitBestSolution_ = false;
10604  bitField3_ = (bitField3_ & ~0x00040000);
10605  exploitRelaxationSolution_ = false;
10606  bitField3_ = (bitField3_ & ~0x00080000);
10607  exploitObjective_ = true;
10608  bitField3_ = (bitField3_ & ~0x00100000);
10609  probingPeriodAtRoot_ = 0L;
10610  bitField3_ = (bitField3_ & ~0x00200000);
10611  useProbingSearch_ = false;
10612  bitField3_ = (bitField3_ & ~0x00400000);
10613  pseudoCostReliabilityThreshold_ = 100L;
10614  bitField3_ = (bitField3_ & ~0x00800000);
10615  optimizeWithCore_ = false;
10616  bitField3_ = (bitField3_ & ~0x01000000);
10617  binarySearchNumConflicts_ = -1;
10618  bitField3_ = (bitField3_ & ~0x02000000);
10619  optimizeWithMaxHs_ = false;
10620  bitField3_ = (bitField3_ & ~0x04000000);
10621  enumerateAllSolutions_ = false;
10622  bitField3_ = (bitField3_ & ~0x08000000);
10623  keepAllFeasibleSolutionsInPresolve_ = false;
10624  bitField3_ = (bitField3_ & ~0x10000000);
10625  fillTightenedDomainsInResponse_ = false;
10626  bitField3_ = (bitField3_ & ~0x20000000);
10627  instantiateAllVariables_ = true;
10628  bitField3_ = (bitField3_ & ~0x40000000);
10629  autoDetectGreaterThanAtLeastOneOf_ = true;
10630  bitField3_ = (bitField3_ & ~0x80000000);
10631  stopAfterFirstSolution_ = false;
10632  bitField4_ = (bitField4_ & ~0x00000001);
10633  stopAfterPresolve_ = false;
10634  bitField4_ = (bitField4_ & ~0x00000002);
10635  numSearchWorkers_ = 1;
10636  bitField4_ = (bitField4_ & ~0x00000004);
10637  interleaveSearch_ = false;
10638  bitField4_ = (bitField4_ & ~0x00000008);
10639  interleaveBatchSize_ = 1;
10640  bitField4_ = (bitField4_ & ~0x00000010);
10641  reduceMemoryUsageInInterleaveMode_ = false;
10642  bitField4_ = (bitField4_ & ~0x00000020);
10643  shareObjectiveBounds_ = true;
10644  bitField4_ = (bitField4_ & ~0x00000040);
10645  shareLevelZeroBounds_ = true;
10646  bitField4_ = (bitField4_ & ~0x00000080);
10647  useLnsOnly_ = false;
10648  bitField4_ = (bitField4_ & ~0x00000100);
10649  lnsFocusOnDecisionVariables_ = false;
10650  bitField4_ = (bitField4_ & ~0x00000200);
10651  useRinsLns_ = true;
10652  bitField4_ = (bitField4_ & ~0x00000400);
10653  useFeasibilityPump_ = true;
10654  bitField4_ = (bitField4_ & ~0x00000800);
10655  fpRounding_ = 2;
10656  bitField4_ = (bitField4_ & ~0x00001000);
10657  useRelaxationLns_ = false;
10658  bitField4_ = (bitField4_ & ~0x00002000);
10659  diversifyLnsParams_ = false;
10660  bitField4_ = (bitField4_ & ~0x00004000);
10661  randomizeSearch_ = false;
10662  bitField4_ = (bitField4_ & ~0x00008000);
10663  searchRandomizationTolerance_ = 0L;
10664  bitField4_ = (bitField4_ & ~0x00010000);
10665  useOptionalVariables_ = true;
10666  bitField4_ = (bitField4_ & ~0x00020000);
10667  useExactLpReason_ = true;
10668  bitField4_ = (bitField4_ & ~0x00040000);
10669  useBranchingInLp_ = false;
10670  bitField4_ = (bitField4_ & ~0x00080000);
10671  useCombinedNoOverlap_ = false;
10672  bitField4_ = (bitField4_ & ~0x00100000);
10673  catchSigintSignal_ = true;
10674  bitField4_ = (bitField4_ & ~0x00200000);
10675  useImpliedBounds_ = true;
10676  bitField4_ = (bitField4_ & ~0x00400000);
10677  polishLpSolution_ = false;
10678  bitField4_ = (bitField4_ & ~0x00800000);
10679  convertIntervals_ = false;
10680  bitField4_ = (bitField4_ & ~0x01000000);
10681  detectSymmetries_ = false;
10682  bitField4_ = (bitField4_ & ~0x02000000);
10683  mipMaxBound_ = 10000000D;
10684  bitField4_ = (bitField4_ & ~0x04000000);
10685  mipVarScaling_ = 1D;
10686  bitField4_ = (bitField4_ & ~0x08000000);
10687  mipAutomaticallyScaleVariables_ = true;
10688  bitField4_ = (bitField4_ & ~0x10000000);
10689  mipWantedPrecision_ = 1e-06D;
10690  bitField4_ = (bitField4_ & ~0x20000000);
10691  mipMaxActivityExponent_ = 53;
10692  bitField4_ = (bitField4_ & ~0x40000000);
10693  mipCheckPrecision_ = 0.0001D;
10694  bitField4_ = (bitField4_ & ~0x80000000);
10695  return this;
10696  }
10697 
10698  @java.lang.Override
10699  public com.google.protobuf.Descriptors.Descriptor
10701  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
10702  }
10703 
10704  @java.lang.Override
10705  public com.google.ortools.sat.SatParameters getDefaultInstanceForType() {
10706  return com.google.ortools.sat.SatParameters.getDefaultInstance();
10707  }
10708 
10709  @java.lang.Override
10710  public com.google.ortools.sat.SatParameters build() {
10711  com.google.ortools.sat.SatParameters result = buildPartial();
10712  if (!result.isInitialized()) {
10713  throw newUninitializedMessageException(result);
10714  }
10715  return result;
10716  }
10717 
10718  @java.lang.Override
10719  public com.google.ortools.sat.SatParameters buildPartial() {
10720  com.google.ortools.sat.SatParameters result = new com.google.ortools.sat.SatParameters(this);
10721  int from_bitField0_ = bitField0_;
10722  int from_bitField1_ = bitField1_;
10723  int from_bitField2_ = bitField2_;
10724  int from_bitField3_ = bitField3_;
10725  int from_bitField4_ = bitField4_;
10726  int to_bitField0_ = 0;
10727  int to_bitField1_ = 0;
10728  int to_bitField2_ = 0;
10729  int to_bitField3_ = 0;
10730  int to_bitField4_ = 0;
10731  if (((from_bitField0_ & 0x00000001) != 0)) {
10732  to_bitField0_ |= 0x00000001;
10733  }
10734  result.name_ = name_;
10735  if (((from_bitField0_ & 0x00000002) != 0)) {
10736  to_bitField0_ |= 0x00000002;
10737  }
10738  result.preferredVariableOrder_ = preferredVariableOrder_;
10739  if (((from_bitField0_ & 0x00000004) != 0)) {
10740  to_bitField0_ |= 0x00000004;
10741  }
10742  result.initialPolarity_ = initialPolarity_;
10743  if (((from_bitField0_ & 0x00000008) != 0)) {
10744  to_bitField0_ |= 0x00000008;
10745  }
10746  result.usePhaseSaving_ = usePhaseSaving_;
10747  if (((from_bitField0_ & 0x00000010) != 0)) {
10748  to_bitField0_ |= 0x00000010;
10749  }
10750  result.polarityRephaseIncrement_ = polarityRephaseIncrement_;
10751  if (((from_bitField0_ & 0x00000020) != 0)) {
10752  result.randomPolarityRatio_ = randomPolarityRatio_;
10753  to_bitField0_ |= 0x00000020;
10754  }
10755  if (((from_bitField0_ & 0x00000040) != 0)) {
10756  result.randomBranchesRatio_ = randomBranchesRatio_;
10757  to_bitField0_ |= 0x00000040;
10758  }
10759  if (((from_bitField0_ & 0x00000080) != 0)) {
10760  result.useErwaHeuristic_ = useErwaHeuristic_;
10761  to_bitField0_ |= 0x00000080;
10762  }
10763  if (((from_bitField0_ & 0x00000100) != 0)) {
10764  result.initialVariablesActivity_ = initialVariablesActivity_;
10765  to_bitField0_ |= 0x00000100;
10766  }
10767  if (((from_bitField0_ & 0x00000200) != 0)) {
10768  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
10769  to_bitField0_ |= 0x00000200;
10770  }
10771  if (((from_bitField0_ & 0x00000400) != 0)) {
10772  to_bitField0_ |= 0x00000400;
10773  }
10774  result.minimizationAlgorithm_ = minimizationAlgorithm_;
10775  if (((from_bitField0_ & 0x00000800) != 0)) {
10776  to_bitField0_ |= 0x00000800;
10777  }
10778  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
10779  if (((from_bitField0_ & 0x00001000) != 0)) {
10780  to_bitField0_ |= 0x00001000;
10781  }
10782  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
10783  if (((from_bitField0_ & 0x00002000) != 0)) {
10784  to_bitField0_ |= 0x00002000;
10785  }
10786  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
10787  if (((from_bitField0_ & 0x00004000) != 0)) {
10788  to_bitField0_ |= 0x00004000;
10789  }
10790  result.clauseCleanupTarget_ = clauseCleanupTarget_;
10791  if (((from_bitField0_ & 0x00008000) != 0)) {
10792  to_bitField0_ |= 0x00008000;
10793  }
10794  result.clauseCleanupProtection_ = clauseCleanupProtection_;
10795  if (((from_bitField0_ & 0x00010000) != 0)) {
10796  to_bitField0_ |= 0x00010000;
10797  }
10798  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
10799  if (((from_bitField0_ & 0x00020000) != 0)) {
10800  to_bitField0_ |= 0x00020000;
10801  }
10802  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
10803  if (((from_bitField0_ & 0x00040000) != 0)) {
10804  to_bitField0_ |= 0x00040000;
10805  }
10806  result.pbCleanupIncrement_ = pbCleanupIncrement_;
10807  if (((from_bitField0_ & 0x00080000) != 0)) {
10808  to_bitField0_ |= 0x00080000;
10809  }
10810  result.pbCleanupRatio_ = pbCleanupRatio_;
10811  if (((from_bitField0_ & 0x00100000) != 0)) {
10812  to_bitField0_ |= 0x00100000;
10813  }
10814  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
10815  if (((from_bitField0_ & 0x00200000) != 0)) {
10816  to_bitField0_ |= 0x00200000;
10817  }
10818  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
10819  if (((from_bitField0_ & 0x00400000) != 0)) {
10820  to_bitField0_ |= 0x00400000;
10821  }
10822  result.variableActivityDecay_ = variableActivityDecay_;
10823  if (((from_bitField0_ & 0x00800000) != 0)) {
10824  to_bitField0_ |= 0x00800000;
10825  }
10826  result.maxVariableActivityValue_ = maxVariableActivityValue_;
10827  if (((from_bitField0_ & 0x01000000) != 0)) {
10828  to_bitField0_ |= 0x01000000;
10829  }
10830  result.glucoseMaxDecay_ = glucoseMaxDecay_;
10831  if (((from_bitField0_ & 0x02000000) != 0)) {
10832  to_bitField0_ |= 0x02000000;
10833  }
10834  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
10835  if (((from_bitField0_ & 0x04000000) != 0)) {
10836  to_bitField0_ |= 0x04000000;
10837  }
10838  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
10839  if (((from_bitField0_ & 0x08000000) != 0)) {
10840  to_bitField0_ |= 0x08000000;
10841  }
10842  result.clauseActivityDecay_ = clauseActivityDecay_;
10843  if (((from_bitField0_ & 0x10000000) != 0)) {
10844  to_bitField0_ |= 0x10000000;
10845  }
10846  result.maxClauseActivityValue_ = maxClauseActivityValue_;
10847  if (((bitField0_ & 0x20000000) != 0)) {
10848  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
10849  bitField0_ = (bitField0_ & ~0x20000000);
10850  }
10851  result.restartAlgorithms_ = restartAlgorithms_;
10852  if (((from_bitField0_ & 0x40000000) != 0)) {
10853  to_bitField0_ |= 0x20000000;
10854  }
10855  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
10856  if (((from_bitField0_ & 0x80000000) != 0)) {
10857  to_bitField0_ |= 0x40000000;
10858  }
10859  result.restartPeriod_ = restartPeriod_;
10860  if (((from_bitField1_ & 0x00000001) != 0)) {
10861  to_bitField0_ |= 0x80000000;
10862  }
10863  result.restartRunningWindowSize_ = restartRunningWindowSize_;
10864  if (((from_bitField1_ & 0x00000002) != 0)) {
10865  to_bitField1_ |= 0x00000001;
10866  }
10867  result.restartDlAverageRatio_ = restartDlAverageRatio_;
10868  if (((from_bitField1_ & 0x00000004) != 0)) {
10869  to_bitField1_ |= 0x00000002;
10870  }
10871  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
10872  if (((from_bitField1_ & 0x00000008) != 0)) {
10873  result.useBlockingRestart_ = useBlockingRestart_;
10874  to_bitField1_ |= 0x00000004;
10875  }
10876  if (((from_bitField1_ & 0x00000010) != 0)) {
10877  to_bitField1_ |= 0x00000008;
10878  }
10879  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
10880  if (((from_bitField1_ & 0x00000020) != 0)) {
10881  to_bitField1_ |= 0x00000010;
10882  }
10883  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
10884  if (((from_bitField1_ & 0x00000040) != 0)) {
10885  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
10886  to_bitField1_ |= 0x00000020;
10887  }
10888  if (((from_bitField1_ & 0x00000080) != 0)) {
10889  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
10890  to_bitField1_ |= 0x00000040;
10891  }
10892  if (((from_bitField1_ & 0x00000100) != 0)) {
10893  to_bitField1_ |= 0x00000080;
10894  }
10895  result.maxTimeInSeconds_ = maxTimeInSeconds_;
10896  if (((from_bitField1_ & 0x00000200) != 0)) {
10897  to_bitField1_ |= 0x00000100;
10898  }
10899  result.maxDeterministicTime_ = maxDeterministicTime_;
10900  if (((from_bitField1_ & 0x00000400) != 0)) {
10901  to_bitField1_ |= 0x00000200;
10902  }
10903  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
10904  if (((from_bitField1_ & 0x00000800) != 0)) {
10905  to_bitField1_ |= 0x00000400;
10906  }
10907  result.maxMemoryInMb_ = maxMemoryInMb_;
10908  if (((from_bitField1_ & 0x00001000) != 0)) {
10909  result.absoluteGapLimit_ = absoluteGapLimit_;
10910  to_bitField1_ |= 0x00000800;
10911  }
10912  if (((from_bitField1_ & 0x00002000) != 0)) {
10913  result.relativeGapLimit_ = relativeGapLimit_;
10914  to_bitField1_ |= 0x00001000;
10915  }
10916  if (((from_bitField1_ & 0x00004000) != 0)) {
10917  to_bitField1_ |= 0x00002000;
10918  }
10919  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
10920  if (((from_bitField1_ & 0x00008000) != 0)) {
10921  to_bitField1_ |= 0x00004000;
10922  }
10923  result.randomSeed_ = randomSeed_;
10924  if (((from_bitField1_ & 0x00010000) != 0)) {
10925  result.permuteVariableRandomly_ = permuteVariableRandomly_;
10926  to_bitField1_ |= 0x00008000;
10927  }
10928  if (((from_bitField1_ & 0x00020000) != 0)) {
10929  result.permutePresolveConstraintOrder_ = permutePresolveConstraintOrder_;
10930  to_bitField1_ |= 0x00010000;
10931  }
10932  if (((from_bitField1_ & 0x00040000) != 0)) {
10933  result.useAbslRandom_ = useAbslRandom_;
10934  to_bitField1_ |= 0x00020000;
10935  }
10936  if (((from_bitField1_ & 0x00080000) != 0)) {
10937  result.logSearchProgress_ = logSearchProgress_;
10938  to_bitField1_ |= 0x00040000;
10939  }
10940  if (((from_bitField1_ & 0x00100000) != 0)) {
10941  result.usePbResolution_ = usePbResolution_;
10942  to_bitField1_ |= 0x00080000;
10943  }
10944  if (((from_bitField1_ & 0x00200000) != 0)) {
10945  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
10946  to_bitField1_ |= 0x00100000;
10947  }
10948  if (((from_bitField1_ & 0x00400000) != 0)) {
10949  to_bitField1_ |= 0x00200000;
10950  }
10951  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
10952  if (((from_bitField1_ & 0x00800000) != 0)) {
10953  to_bitField1_ |= 0x00400000;
10954  }
10955  result.presolveBveThreshold_ = presolveBveThreshold_;
10956  if (((from_bitField1_ & 0x01000000) != 0)) {
10957  to_bitField1_ |= 0x00800000;
10958  }
10959  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
10960  if (((from_bitField1_ & 0x02000000) != 0)) {
10961  to_bitField1_ |= 0x01000000;
10962  }
10963  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
10964  if (((from_bitField1_ & 0x04000000) != 0)) {
10965  to_bitField1_ |= 0x02000000;
10966  }
10967  result.presolveBlockedClause_ = presolveBlockedClause_;
10968  if (((from_bitField1_ & 0x08000000) != 0)) {
10969  to_bitField1_ |= 0x04000000;
10970  }
10971  result.presolveUseBva_ = presolveUseBva_;
10972  if (((from_bitField1_ & 0x10000000) != 0)) {
10973  to_bitField1_ |= 0x08000000;
10974  }
10975  result.presolveBvaThreshold_ = presolveBvaThreshold_;
10976  if (((from_bitField1_ & 0x20000000) != 0)) {
10977  to_bitField1_ |= 0x10000000;
10978  }
10979  result.maxPresolveIterations_ = maxPresolveIterations_;
10980  if (((from_bitField1_ & 0x40000000) != 0)) {
10981  to_bitField1_ |= 0x20000000;
10982  }
10983  result.cpModelPresolve_ = cpModelPresolve_;
10984  if (((from_bitField1_ & 0x80000000) != 0)) {
10985  result.cpModelPostsolveWithFullSolver_ = cpModelPostsolveWithFullSolver_;
10986  to_bitField1_ |= 0x40000000;
10987  }
10988  if (((from_bitField2_ & 0x00000001) != 0)) {
10989  result.cpModelMaxNumPresolveOperations_ = cpModelMaxNumPresolveOperations_;
10990  to_bitField1_ |= 0x80000000;
10991  }
10992  if (((from_bitField2_ & 0x00000002) != 0)) {
10993  to_bitField2_ |= 0x00000001;
10994  }
10995  result.cpModelProbingLevel_ = cpModelProbingLevel_;
10996  if (((from_bitField2_ & 0x00000004) != 0)) {
10997  to_bitField2_ |= 0x00000002;
10998  }
10999  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
11000  if (((from_bitField2_ & 0x00000008) != 0)) {
11001  result.useSatInprocessing_ = useSatInprocessing_;
11002  to_bitField2_ |= 0x00000004;
11003  }
11004  if (((from_bitField2_ & 0x00000010) != 0)) {
11005  to_bitField2_ |= 0x00000008;
11006  }
11007  result.expandElementConstraints_ = expandElementConstraints_;
11008  if (((from_bitField2_ & 0x00000020) != 0)) {
11009  to_bitField2_ |= 0x00000010;
11010  }
11011  result.expandAutomatonConstraints_ = expandAutomatonConstraints_;
11012  if (((from_bitField2_ & 0x00000040) != 0)) {
11013  to_bitField2_ |= 0x00000020;
11014  }
11015  result.expandTableConstraints_ = expandTableConstraints_;
11016  if (((from_bitField2_ & 0x00000080) != 0)) {
11017  result.expandAlldiffConstraints_ = expandAlldiffConstraints_;
11018  to_bitField2_ |= 0x00000040;
11019  }
11020  if (((from_bitField2_ & 0x00000100) != 0)) {
11021  to_bitField2_ |= 0x00000080;
11022  }
11023  result.expandReservoirConstraints_ = expandReservoirConstraints_;
11024  if (((from_bitField2_ & 0x00000200) != 0)) {
11025  result.disableConstraintExpansion_ = disableConstraintExpansion_;
11026  to_bitField2_ |= 0x00000100;
11027  }
11028  if (((from_bitField2_ & 0x00000400) != 0)) {
11029  to_bitField2_ |= 0x00000200;
11030  }
11031  result.mergeNoOverlapWorkLimit_ = mergeNoOverlapWorkLimit_;
11032  if (((from_bitField2_ & 0x00000800) != 0)) {
11033  to_bitField2_ |= 0x00000400;
11034  }
11035  result.mergeAtMostOneWorkLimit_ = mergeAtMostOneWorkLimit_;
11036  if (((from_bitField2_ & 0x00001000) != 0)) {
11037  to_bitField2_ |= 0x00000800;
11038  }
11039  result.presolveSubstitutionLevel_ = presolveSubstitutionLevel_;
11040  if (((from_bitField2_ & 0x00002000) != 0)) {
11041  result.presolveExtractIntegerEnforcement_ = presolveExtractIntegerEnforcement_;
11042  to_bitField2_ |= 0x00001000;
11043  }
11044  if (((from_bitField2_ & 0x00004000) != 0)) {
11045  to_bitField2_ |= 0x00002000;
11046  }
11047  result.useOptimizationHints_ = useOptimizationHints_;
11048  if (((from_bitField2_ & 0x00008000) != 0)) {
11049  to_bitField2_ |= 0x00004000;
11050  }
11051  result.minimizeCore_ = minimizeCore_;
11052  if (((from_bitField2_ & 0x00010000) != 0)) {
11053  to_bitField2_ |= 0x00008000;
11054  }
11055  result.findMultipleCores_ = findMultipleCores_;
11056  if (((from_bitField2_ & 0x00020000) != 0)) {
11057  to_bitField2_ |= 0x00010000;
11058  }
11059  result.coverOptimization_ = coverOptimization_;
11060  if (((from_bitField2_ & 0x00040000) != 0)) {
11061  to_bitField2_ |= 0x00020000;
11062  }
11063  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
11064  if (((from_bitField2_ & 0x00080000) != 0)) {
11065  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
11066  to_bitField2_ |= 0x00040000;
11067  }
11068  if (((from_bitField2_ & 0x00100000) != 0)) {
11069  to_bitField2_ |= 0x00080000;
11070  }
11071  result.maxSatStratification_ = maxSatStratification_;
11072  if (((from_bitField2_ & 0x00200000) != 0)) {
11073  to_bitField2_ |= 0x00100000;
11074  }
11075  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
11076  if (((from_bitField2_ & 0x00400000) != 0)) {
11077  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
11078  to_bitField2_ |= 0x00200000;
11079  }
11080  if (((from_bitField2_ & 0x00800000) != 0)) {
11081  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
11082  to_bitField2_ |= 0x00400000;
11083  }
11084  if (((from_bitField2_ & 0x01000000) != 0)) {
11085  to_bitField2_ |= 0x00800000;
11086  }
11087  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
11088  if (((from_bitField2_ & 0x02000000) != 0)) {
11089  to_bitField2_ |= 0x01000000;
11090  }
11091  result.linearizationLevel_ = linearizationLevel_;
11092  if (((from_bitField2_ & 0x04000000) != 0)) {
11093  to_bitField2_ |= 0x02000000;
11094  }
11095  result.booleanEncodingLevel_ = booleanEncodingLevel_;
11096  if (((from_bitField2_ & 0x08000000) != 0)) {
11097  to_bitField2_ |= 0x04000000;
11098  }
11099  result.maxNumCuts_ = maxNumCuts_;
11100  if (((from_bitField2_ & 0x10000000) != 0)) {
11101  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
11102  to_bitField2_ |= 0x08000000;
11103  }
11104  if (((from_bitField2_ & 0x20000000) != 0)) {
11105  result.addKnapsackCuts_ = addKnapsackCuts_;
11106  to_bitField2_ |= 0x10000000;
11107  }
11108  if (((from_bitField2_ & 0x40000000) != 0)) {
11109  to_bitField2_ |= 0x20000000;
11110  }
11111  result.addCgCuts_ = addCgCuts_;
11112  if (((from_bitField2_ & 0x80000000) != 0)) {
11113  to_bitField2_ |= 0x40000000;
11114  }
11115  result.addMirCuts_ = addMirCuts_;
11116  if (((from_bitField3_ & 0x00000001) != 0)) {
11117  to_bitField2_ |= 0x80000000;
11118  }
11119  result.addZeroHalfCuts_ = addZeroHalfCuts_;
11120  if (((from_bitField3_ & 0x00000002) != 0)) {
11121  to_bitField3_ |= 0x00000001;
11122  }
11123  result.addCliqueCuts_ = addCliqueCuts_;
11124  if (((from_bitField3_ & 0x00000004) != 0)) {
11125  to_bitField3_ |= 0x00000002;
11126  }
11127  result.maxAllDiffCutSize_ = maxAllDiffCutSize_;
11128  if (((from_bitField3_ & 0x00000008) != 0)) {
11129  to_bitField3_ |= 0x00000004;
11130  }
11131  result.addLinMaxCuts_ = addLinMaxCuts_;
11132  if (((from_bitField3_ & 0x00000010) != 0)) {
11133  to_bitField3_ |= 0x00000008;
11134  }
11135  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
11136  if (((from_bitField3_ & 0x00000020) != 0)) {
11137  to_bitField3_ |= 0x00000010;
11138  }
11139  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
11140  if (((from_bitField3_ & 0x00000040) != 0)) {
11141  to_bitField3_ |= 0x00000020;
11142  }
11143  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
11144  if (((from_bitField3_ & 0x00000080) != 0)) {
11145  to_bitField3_ |= 0x00000040;
11146  }
11147  result.maxCutRoundsAtLevelZero_ = maxCutRoundsAtLevelZero_;
11148  if (((from_bitField3_ & 0x00000100) != 0)) {
11149  to_bitField3_ |= 0x00000080;
11150  }
11151  result.maxConsecutiveInactiveCount_ = maxConsecutiveInactiveCount_;
11152  if (((from_bitField3_ & 0x00000200) != 0)) {
11153  to_bitField3_ |= 0x00000100;
11154  }
11155  result.cutMaxActiveCountValue_ = cutMaxActiveCountValue_;
11156  if (((from_bitField3_ & 0x00000400) != 0)) {
11157  to_bitField3_ |= 0x00000200;
11158  }
11159  result.cutActiveCountDecay_ = cutActiveCountDecay_;
11160  if (((from_bitField3_ & 0x00000800) != 0)) {
11161  to_bitField3_ |= 0x00000400;
11162  }
11163  result.cutCleanupTarget_ = cutCleanupTarget_;
11164  if (((from_bitField3_ & 0x00001000) != 0)) {
11165  to_bitField3_ |= 0x00000800;
11166  }
11167  result.newConstraintsBatchSize_ = newConstraintsBatchSize_;
11168  if (((from_bitField3_ & 0x00002000) != 0)) {
11169  to_bitField3_ |= 0x00001000;
11170  }
11171  result.searchBranching_ = searchBranching_;
11172  if (((from_bitField3_ & 0x00004000) != 0)) {
11173  to_bitField3_ |= 0x00002000;
11174  }
11175  result.hintConflictLimit_ = hintConflictLimit_;
11176  if (((from_bitField3_ & 0x00008000) != 0)) {
11177  result.repairHint_ = repairHint_;
11178  to_bitField3_ |= 0x00004000;
11179  }
11180  if (((from_bitField3_ & 0x00010000) != 0)) {
11181  to_bitField3_ |= 0x00008000;
11182  }
11183  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
11184  if (((from_bitField3_ & 0x00020000) != 0)) {
11185  to_bitField3_ |= 0x00010000;
11186  }
11187  result.exploitAllLpSolution_ = exploitAllLpSolution_;
11188  if (((from_bitField3_ & 0x00040000) != 0)) {
11189  result.exploitBestSolution_ = exploitBestSolution_;
11190  to_bitField3_ |= 0x00020000;
11191  }
11192  if (((from_bitField3_ & 0x00080000) != 0)) {
11193  result.exploitRelaxationSolution_ = exploitRelaxationSolution_;
11194  to_bitField3_ |= 0x00040000;
11195  }
11196  if (((from_bitField3_ & 0x00100000) != 0)) {
11197  to_bitField3_ |= 0x00080000;
11198  }
11199  result.exploitObjective_ = exploitObjective_;
11200  if (((from_bitField3_ & 0x00200000) != 0)) {
11201  result.probingPeriodAtRoot_ = probingPeriodAtRoot_;
11202  to_bitField3_ |= 0x00100000;
11203  }
11204  if (((from_bitField3_ & 0x00400000) != 0)) {
11205  result.useProbingSearch_ = useProbingSearch_;
11206  to_bitField3_ |= 0x00200000;
11207  }
11208  if (((from_bitField3_ & 0x00800000) != 0)) {
11209  to_bitField3_ |= 0x00400000;
11210  }
11211  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
11212  if (((from_bitField3_ & 0x01000000) != 0)) {
11213  result.optimizeWithCore_ = optimizeWithCore_;
11214  to_bitField3_ |= 0x00800000;
11215  }
11216  if (((from_bitField3_ & 0x02000000) != 0)) {
11217  to_bitField3_ |= 0x01000000;
11218  }
11219  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
11220  if (((from_bitField3_ & 0x04000000) != 0)) {
11221  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
11222  to_bitField3_ |= 0x02000000;
11223  }
11224  if (((from_bitField3_ & 0x08000000) != 0)) {
11225  result.enumerateAllSolutions_ = enumerateAllSolutions_;
11226  to_bitField3_ |= 0x04000000;
11227  }
11228  if (((from_bitField3_ & 0x10000000) != 0)) {
11229  result.keepAllFeasibleSolutionsInPresolve_ = keepAllFeasibleSolutionsInPresolve_;
11230  to_bitField3_ |= 0x08000000;
11231  }
11232  if (((from_bitField3_ & 0x20000000) != 0)) {
11233  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
11234  to_bitField3_ |= 0x10000000;
11235  }
11236  if (((from_bitField3_ & 0x40000000) != 0)) {
11237  to_bitField3_ |= 0x20000000;
11238  }
11239  result.instantiateAllVariables_ = instantiateAllVariables_;
11240  if (((from_bitField3_ & 0x80000000) != 0)) {
11241  to_bitField3_ |= 0x40000000;
11242  }
11243  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
11244  if (((from_bitField4_ & 0x00000001) != 0)) {
11245  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
11246  to_bitField3_ |= 0x80000000;
11247  }
11248  if (((from_bitField4_ & 0x00000002) != 0)) {
11249  result.stopAfterPresolve_ = stopAfterPresolve_;
11250  to_bitField4_ |= 0x00000001;
11251  }
11252  if (((from_bitField4_ & 0x00000004) != 0)) {
11253  to_bitField4_ |= 0x00000002;
11254  }
11255  result.numSearchWorkers_ = numSearchWorkers_;
11256  if (((from_bitField4_ & 0x00000008) != 0)) {
11257  result.interleaveSearch_ = interleaveSearch_;
11258  to_bitField4_ |= 0x00000004;
11259  }
11260  if (((from_bitField4_ & 0x00000010) != 0)) {
11261  to_bitField4_ |= 0x00000008;
11262  }
11263  result.interleaveBatchSize_ = interleaveBatchSize_;
11264  if (((from_bitField4_ & 0x00000020) != 0)) {
11265  result.reduceMemoryUsageInInterleaveMode_ = reduceMemoryUsageInInterleaveMode_;
11266  to_bitField4_ |= 0x00000010;
11267  }
11268  if (((from_bitField4_ & 0x00000040) != 0)) {
11269  to_bitField4_ |= 0x00000020;
11270  }
11271  result.shareObjectiveBounds_ = shareObjectiveBounds_;
11272  if (((from_bitField4_ & 0x00000080) != 0)) {
11273  to_bitField4_ |= 0x00000040;
11274  }
11275  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
11276  if (((from_bitField4_ & 0x00000100) != 0)) {
11277  result.useLnsOnly_ = useLnsOnly_;
11278  to_bitField4_ |= 0x00000080;
11279  }
11280  if (((from_bitField4_ & 0x00000200) != 0)) {
11281  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
11282  to_bitField4_ |= 0x00000100;
11283  }
11284  if (((from_bitField4_ & 0x00000400) != 0)) {
11285  to_bitField4_ |= 0x00000200;
11286  }
11287  result.useRinsLns_ = useRinsLns_;
11288  if (((from_bitField4_ & 0x00000800) != 0)) {
11289  to_bitField4_ |= 0x00000400;
11290  }
11291  result.useFeasibilityPump_ = useFeasibilityPump_;
11292  if (((from_bitField4_ & 0x00001000) != 0)) {
11293  to_bitField4_ |= 0x00000800;
11294  }
11295  result.fpRounding_ = fpRounding_;
11296  if (((from_bitField4_ & 0x00002000) != 0)) {
11297  result.useRelaxationLns_ = useRelaxationLns_;
11298  to_bitField4_ |= 0x00001000;
11299  }
11300  if (((from_bitField4_ & 0x00004000) != 0)) {
11301  result.diversifyLnsParams_ = diversifyLnsParams_;
11302  to_bitField4_ |= 0x00002000;
11303  }
11304  if (((from_bitField4_ & 0x00008000) != 0)) {
11305  result.randomizeSearch_ = randomizeSearch_;
11306  to_bitField4_ |= 0x00004000;
11307  }
11308  if (((from_bitField4_ & 0x00010000) != 0)) {
11309  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
11310  to_bitField4_ |= 0x00008000;
11311  }
11312  if (((from_bitField4_ & 0x00020000) != 0)) {
11313  to_bitField4_ |= 0x00010000;
11314  }
11315  result.useOptionalVariables_ = useOptionalVariables_;
11316  if (((from_bitField4_ & 0x00040000) != 0)) {
11317  to_bitField4_ |= 0x00020000;
11318  }
11319  result.useExactLpReason_ = useExactLpReason_;
11320  if (((from_bitField4_ & 0x00080000) != 0)) {
11321  result.useBranchingInLp_ = useBranchingInLp_;
11322  to_bitField4_ |= 0x00040000;
11323  }
11324  if (((from_bitField4_ & 0x00100000) != 0)) {
11325  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
11326  to_bitField4_ |= 0x00080000;
11327  }
11328  if (((from_bitField4_ & 0x00200000) != 0)) {
11329  to_bitField4_ |= 0x00100000;
11330  }
11331  result.catchSigintSignal_ = catchSigintSignal_;
11332  if (((from_bitField4_ & 0x00400000) != 0)) {
11333  to_bitField4_ |= 0x00200000;
11334  }
11335  result.useImpliedBounds_ = useImpliedBounds_;
11336  if (((from_bitField4_ & 0x00800000) != 0)) {
11337  result.polishLpSolution_ = polishLpSolution_;
11338  to_bitField4_ |= 0x00400000;
11339  }
11340  if (((from_bitField4_ & 0x01000000) != 0)) {
11341  result.convertIntervals_ = convertIntervals_;
11342  to_bitField4_ |= 0x00800000;
11343  }
11344  if (((from_bitField4_ & 0x02000000) != 0)) {
11345  result.detectSymmetries_ = detectSymmetries_;
11346  to_bitField4_ |= 0x01000000;
11347  }
11348  if (((from_bitField4_ & 0x04000000) != 0)) {
11349  to_bitField4_ |= 0x02000000;
11350  }
11351  result.mipMaxBound_ = mipMaxBound_;
11352  if (((from_bitField4_ & 0x08000000) != 0)) {
11353  to_bitField4_ |= 0x04000000;
11354  }
11355  result.mipVarScaling_ = mipVarScaling_;
11356  if (((from_bitField4_ & 0x10000000) != 0)) {
11357  to_bitField4_ |= 0x08000000;
11358  }
11359  result.mipAutomaticallyScaleVariables_ = mipAutomaticallyScaleVariables_;
11360  if (((from_bitField4_ & 0x20000000) != 0)) {
11361  to_bitField4_ |= 0x10000000;
11362  }
11363  result.mipWantedPrecision_ = mipWantedPrecision_;
11364  if (((from_bitField4_ & 0x40000000) != 0)) {
11365  to_bitField4_ |= 0x20000000;
11366  }
11367  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
11368  if (((from_bitField4_ & 0x80000000) != 0)) {
11369  to_bitField4_ |= 0x40000000;
11370  }
11371  result.mipCheckPrecision_ = mipCheckPrecision_;
11372  result.bitField0_ = to_bitField0_;
11373  result.bitField1_ = to_bitField1_;
11374  result.bitField2_ = to_bitField2_;
11375  result.bitField3_ = to_bitField3_;
11376  result.bitField4_ = to_bitField4_;
11377  onBuilt();
11378  return result;
11379  }
11380 
11381  @java.lang.Override
11382  public Builder clone() {
11383  return super.clone();
11384  }
11385  @java.lang.Override
11387  com.google.protobuf.Descriptors.FieldDescriptor field,
11388  java.lang.Object value) {
11389  return super.setField(field, value);
11390  }
11391  @java.lang.Override
11393  com.google.protobuf.Descriptors.FieldDescriptor field) {
11394  return super.clearField(field);
11395  }
11396  @java.lang.Override
11398  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
11399  return super.clearOneof(oneof);
11400  }
11401  @java.lang.Override
11403  com.google.protobuf.Descriptors.FieldDescriptor field,
11404  int index, java.lang.Object value) {
11405  return super.setRepeatedField(field, index, value);
11406  }
11407  @java.lang.Override
11409  com.google.protobuf.Descriptors.FieldDescriptor field,
11410  java.lang.Object value) {
11411  return super.addRepeatedField(field, value);
11412  }
11413  @java.lang.Override
11414  public Builder mergeFrom(com.google.protobuf.Message other) {
11415  if (other instanceof com.google.ortools.sat.SatParameters) {
11416  return mergeFrom((com.google.ortools.sat.SatParameters)other);
11417  } else {
11418  super.mergeFrom(other);
11419  return this;
11420  }
11421  }
11422 
11423  public Builder mergeFrom(com.google.ortools.sat.SatParameters other) {
11424  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
11425  if (other.hasName()) {
11426  bitField0_ |= 0x00000001;
11427  name_ = other.name_;
11428  onChanged();
11429  }
11430  if (other.hasPreferredVariableOrder()) {
11431  setPreferredVariableOrder(other.getPreferredVariableOrder());
11432  }
11433  if (other.hasInitialPolarity()) {
11434  setInitialPolarity(other.getInitialPolarity());
11435  }
11436  if (other.hasUsePhaseSaving()) {
11437  setUsePhaseSaving(other.getUsePhaseSaving());
11438  }
11439  if (other.hasPolarityRephaseIncrement()) {
11440  setPolarityRephaseIncrement(other.getPolarityRephaseIncrement());
11441  }
11442  if (other.hasRandomPolarityRatio()) {
11443  setRandomPolarityRatio(other.getRandomPolarityRatio());
11444  }
11445  if (other.hasRandomBranchesRatio()) {
11446  setRandomBranchesRatio(other.getRandomBranchesRatio());
11447  }
11448  if (other.hasUseErwaHeuristic()) {
11449  setUseErwaHeuristic(other.getUseErwaHeuristic());
11450  }
11451  if (other.hasInitialVariablesActivity()) {
11452  setInitialVariablesActivity(other.getInitialVariablesActivity());
11453  }
11454  if (other.hasAlsoBumpVariablesInConflictReasons()) {
11455  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
11456  }
11457  if (other.hasMinimizationAlgorithm()) {
11458  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
11459  }
11460  if (other.hasBinaryMinimizationAlgorithm()) {
11461  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
11462  }
11463  if (other.hasSubsumptionDuringConflictAnalysis()) {
11464  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
11465  }
11466  if (other.hasClauseCleanupPeriod()) {
11467  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
11468  }
11469  if (other.hasClauseCleanupTarget()) {
11470  setClauseCleanupTarget(other.getClauseCleanupTarget());
11471  }
11472  if (other.hasClauseCleanupProtection()) {
11473  setClauseCleanupProtection(other.getClauseCleanupProtection());
11474  }
11475  if (other.hasClauseCleanupLbdBound()) {
11476  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
11477  }
11478  if (other.hasClauseCleanupOrdering()) {
11479  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
11480  }
11481  if (other.hasPbCleanupIncrement()) {
11482  setPbCleanupIncrement(other.getPbCleanupIncrement());
11483  }
11484  if (other.hasPbCleanupRatio()) {
11485  setPbCleanupRatio(other.getPbCleanupRatio());
11486  }
11487  if (other.hasMinimizeWithPropagationRestartPeriod()) {
11488  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
11489  }
11490  if (other.hasMinimizeWithPropagationNumDecisions()) {
11491  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
11492  }
11493  if (other.hasVariableActivityDecay()) {
11494  setVariableActivityDecay(other.getVariableActivityDecay());
11495  }
11496  if (other.hasMaxVariableActivityValue()) {
11497  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
11498  }
11499  if (other.hasGlucoseMaxDecay()) {
11500  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
11501  }
11502  if (other.hasGlucoseDecayIncrement()) {
11503  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
11504  }
11505  if (other.hasGlucoseDecayIncrementPeriod()) {
11506  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
11507  }
11508  if (other.hasClauseActivityDecay()) {
11509  setClauseActivityDecay(other.getClauseActivityDecay());
11510  }
11511  if (other.hasMaxClauseActivityValue()) {
11512  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
11513  }
11514  if (!other.restartAlgorithms_.isEmpty()) {
11515  if (restartAlgorithms_.isEmpty()) {
11516  restartAlgorithms_ = other.restartAlgorithms_;
11517  bitField0_ = (bitField0_ & ~0x20000000);
11518  } else {
11519  ensureRestartAlgorithmsIsMutable();
11520  restartAlgorithms_.addAll(other.restartAlgorithms_);
11521  }
11522  onChanged();
11523  }
11524  if (other.hasDefaultRestartAlgorithms()) {
11525  bitField0_ |= 0x40000000;
11526  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
11527  onChanged();
11528  }
11529  if (other.hasRestartPeriod()) {
11530  setRestartPeriod(other.getRestartPeriod());
11531  }
11532  if (other.hasRestartRunningWindowSize()) {
11533  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
11534  }
11535  if (other.hasRestartDlAverageRatio()) {
11536  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
11537  }
11538  if (other.hasRestartLbdAverageRatio()) {
11539  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
11540  }
11541  if (other.hasUseBlockingRestart()) {
11542  setUseBlockingRestart(other.getUseBlockingRestart());
11543  }
11544  if (other.hasBlockingRestartWindowSize()) {
11545  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
11546  }
11547  if (other.hasBlockingRestartMultiplier()) {
11548  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
11549  }
11550  if (other.hasNumConflictsBeforeStrategyChanges()) {
11551  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
11552  }
11553  if (other.hasStrategyChangeIncreaseRatio()) {
11554  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
11555  }
11556  if (other.hasMaxTimeInSeconds()) {
11557  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
11558  }
11559  if (other.hasMaxDeterministicTime()) {
11560  setMaxDeterministicTime(other.getMaxDeterministicTime());
11561  }
11562  if (other.hasMaxNumberOfConflicts()) {
11563  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
11564  }
11565  if (other.hasMaxMemoryInMb()) {
11566  setMaxMemoryInMb(other.getMaxMemoryInMb());
11567  }
11568  if (other.hasAbsoluteGapLimit()) {
11569  setAbsoluteGapLimit(other.getAbsoluteGapLimit());
11570  }
11571  if (other.hasRelativeGapLimit()) {
11572  setRelativeGapLimit(other.getRelativeGapLimit());
11573  }
11574  if (other.hasTreatBinaryClausesSeparately()) {
11575  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
11576  }
11577  if (other.hasRandomSeed()) {
11578  setRandomSeed(other.getRandomSeed());
11579  }
11580  if (other.hasPermuteVariableRandomly()) {
11581  setPermuteVariableRandomly(other.getPermuteVariableRandomly());
11582  }
11583  if (other.hasPermutePresolveConstraintOrder()) {
11584  setPermutePresolveConstraintOrder(other.getPermutePresolveConstraintOrder());
11585  }
11586  if (other.hasUseAbslRandom()) {
11587  setUseAbslRandom(other.getUseAbslRandom());
11588  }
11589  if (other.hasLogSearchProgress()) {
11590  setLogSearchProgress(other.getLogSearchProgress());
11591  }
11592  if (other.hasUsePbResolution()) {
11593  setUsePbResolution(other.getUsePbResolution());
11594  }
11595  if (other.hasMinimizeReductionDuringPbResolution()) {
11596  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
11597  }
11598  if (other.hasCountAssumptionLevelsInLbd()) {
11599  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
11600  }
11601  if (other.hasPresolveBveThreshold()) {
11602  setPresolveBveThreshold(other.getPresolveBveThreshold());
11603  }
11604  if (other.hasPresolveBveClauseWeight()) {
11605  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
11606  }
11607  if (other.hasPresolveProbingDeterministicTimeLimit()) {
11608  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
11609  }
11610  if (other.hasPresolveBlockedClause()) {
11611  setPresolveBlockedClause(other.getPresolveBlockedClause());
11612  }
11613  if (other.hasPresolveUseBva()) {
11614  setPresolveUseBva(other.getPresolveUseBva());
11615  }
11616  if (other.hasPresolveBvaThreshold()) {
11617  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
11618  }
11619  if (other.hasMaxPresolveIterations()) {
11620  setMaxPresolveIterations(other.getMaxPresolveIterations());
11621  }
11622  if (other.hasCpModelPresolve()) {
11623  setCpModelPresolve(other.getCpModelPresolve());
11624  }
11625  if (other.hasCpModelPostsolveWithFullSolver()) {
11626  setCpModelPostsolveWithFullSolver(other.getCpModelPostsolveWithFullSolver());
11627  }
11628  if (other.hasCpModelMaxNumPresolveOperations()) {
11629  setCpModelMaxNumPresolveOperations(other.getCpModelMaxNumPresolveOperations());
11630  }
11631  if (other.hasCpModelProbingLevel()) {
11632  setCpModelProbingLevel(other.getCpModelProbingLevel());
11633  }
11634  if (other.hasCpModelUseSatPresolve()) {
11635  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
11636  }
11637  if (other.hasUseSatInprocessing()) {
11638  setUseSatInprocessing(other.getUseSatInprocessing());
11639  }
11640  if (other.hasExpandElementConstraints()) {
11641  setExpandElementConstraints(other.getExpandElementConstraints());
11642  }
11643  if (other.hasExpandAutomatonConstraints()) {
11644  setExpandAutomatonConstraints(other.getExpandAutomatonConstraints());
11645  }
11646  if (other.hasExpandTableConstraints()) {
11647  setExpandTableConstraints(other.getExpandTableConstraints());
11648  }
11649  if (other.hasExpandAlldiffConstraints()) {
11650  setExpandAlldiffConstraints(other.getExpandAlldiffConstraints());
11651  }
11652  if (other.hasExpandReservoirConstraints()) {
11653  setExpandReservoirConstraints(other.getExpandReservoirConstraints());
11654  }
11655  if (other.hasDisableConstraintExpansion()) {
11656  setDisableConstraintExpansion(other.getDisableConstraintExpansion());
11657  }
11658  if (other.hasMergeNoOverlapWorkLimit()) {
11659  setMergeNoOverlapWorkLimit(other.getMergeNoOverlapWorkLimit());
11660  }
11661  if (other.hasMergeAtMostOneWorkLimit()) {
11662  setMergeAtMostOneWorkLimit(other.getMergeAtMostOneWorkLimit());
11663  }
11664  if (other.hasPresolveSubstitutionLevel()) {
11665  setPresolveSubstitutionLevel(other.getPresolveSubstitutionLevel());
11666  }
11667  if (other.hasPresolveExtractIntegerEnforcement()) {
11668  setPresolveExtractIntegerEnforcement(other.getPresolveExtractIntegerEnforcement());
11669  }
11670  if (other.hasUseOptimizationHints()) {
11671  setUseOptimizationHints(other.getUseOptimizationHints());
11672  }
11673  if (other.hasMinimizeCore()) {
11674  setMinimizeCore(other.getMinimizeCore());
11675  }
11676  if (other.hasFindMultipleCores()) {
11677  setFindMultipleCores(other.getFindMultipleCores());
11678  }
11679  if (other.hasCoverOptimization()) {
11680  setCoverOptimization(other.getCoverOptimization());
11681  }
11682  if (other.hasMaxSatAssumptionOrder()) {
11683  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
11684  }
11685  if (other.hasMaxSatReverseAssumptionOrder()) {
11686  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
11687  }
11688  if (other.hasMaxSatStratification()) {
11689  setMaxSatStratification(other.getMaxSatStratification());
11690  }
11691  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
11692  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
11693  }
11694  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
11695  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
11696  }
11697  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
11698  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
11699  }
11700  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
11701  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
11702  }
11703  if (other.hasLinearizationLevel()) {
11704  setLinearizationLevel(other.getLinearizationLevel());
11705  }
11706  if (other.hasBooleanEncodingLevel()) {
11707  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
11708  }
11709  if (other.hasMaxNumCuts()) {
11710  setMaxNumCuts(other.getMaxNumCuts());
11711  }
11712  if (other.hasOnlyAddCutsAtLevelZero()) {
11713  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
11714  }
11715  if (other.hasAddKnapsackCuts()) {
11716  setAddKnapsackCuts(other.getAddKnapsackCuts());
11717  }
11718  if (other.hasAddCgCuts()) {
11719  setAddCgCuts(other.getAddCgCuts());
11720  }
11721  if (other.hasAddMirCuts()) {
11722  setAddMirCuts(other.getAddMirCuts());
11723  }
11724  if (other.hasAddZeroHalfCuts()) {
11725  setAddZeroHalfCuts(other.getAddZeroHalfCuts());
11726  }
11727  if (other.hasAddCliqueCuts()) {
11728  setAddCliqueCuts(other.getAddCliqueCuts());
11729  }
11730  if (other.hasMaxAllDiffCutSize()) {
11731  setMaxAllDiffCutSize(other.getMaxAllDiffCutSize());
11732  }
11733  if (other.hasAddLinMaxCuts()) {
11734  setAddLinMaxCuts(other.getAddLinMaxCuts());
11735  }
11736  if (other.hasMaxIntegerRoundingScaling()) {
11737  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
11738  }
11739  if (other.hasAddLpConstraintsLazily()) {
11740  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
11741  }
11742  if (other.hasMinOrthogonalityForLpConstraints()) {
11743  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
11744  }
11745  if (other.hasMaxCutRoundsAtLevelZero()) {
11746  setMaxCutRoundsAtLevelZero(other.getMaxCutRoundsAtLevelZero());
11747  }
11748  if (other.hasMaxConsecutiveInactiveCount()) {
11749  setMaxConsecutiveInactiveCount(other.getMaxConsecutiveInactiveCount());
11750  }
11751  if (other.hasCutMaxActiveCountValue()) {
11752  setCutMaxActiveCountValue(other.getCutMaxActiveCountValue());
11753  }
11754  if (other.hasCutActiveCountDecay()) {
11755  setCutActiveCountDecay(other.getCutActiveCountDecay());
11756  }
11757  if (other.hasCutCleanupTarget()) {
11758  setCutCleanupTarget(other.getCutCleanupTarget());
11759  }
11760  if (other.hasNewConstraintsBatchSize()) {
11761  setNewConstraintsBatchSize(other.getNewConstraintsBatchSize());
11762  }
11763  if (other.hasSearchBranching()) {
11764  setSearchBranching(other.getSearchBranching());
11765  }
11766  if (other.hasHintConflictLimit()) {
11767  setHintConflictLimit(other.getHintConflictLimit());
11768  }
11769  if (other.hasRepairHint()) {
11770  setRepairHint(other.getRepairHint());
11771  }
11772  if (other.hasExploitIntegerLpSolution()) {
11773  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
11774  }
11775  if (other.hasExploitAllLpSolution()) {
11776  setExploitAllLpSolution(other.getExploitAllLpSolution());
11777  }
11778  if (other.hasExploitBestSolution()) {
11779  setExploitBestSolution(other.getExploitBestSolution());
11780  }
11781  if (other.hasExploitRelaxationSolution()) {
11782  setExploitRelaxationSolution(other.getExploitRelaxationSolution());
11783  }
11784  if (other.hasExploitObjective()) {
11785  setExploitObjective(other.getExploitObjective());
11786  }
11787  if (other.hasProbingPeriodAtRoot()) {
11788  setProbingPeriodAtRoot(other.getProbingPeriodAtRoot());
11789  }
11790  if (other.hasUseProbingSearch()) {
11791  setUseProbingSearch(other.getUseProbingSearch());
11792  }
11793  if (other.hasPseudoCostReliabilityThreshold()) {
11794  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
11795  }
11796  if (other.hasOptimizeWithCore()) {
11797  setOptimizeWithCore(other.getOptimizeWithCore());
11798  }
11799  if (other.hasBinarySearchNumConflicts()) {
11800  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
11801  }
11802  if (other.hasOptimizeWithMaxHs()) {
11803  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
11804  }
11805  if (other.hasEnumerateAllSolutions()) {
11806  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
11807  }
11808  if (other.hasKeepAllFeasibleSolutionsInPresolve()) {
11809  setKeepAllFeasibleSolutionsInPresolve(other.getKeepAllFeasibleSolutionsInPresolve());
11810  }
11811  if (other.hasFillTightenedDomainsInResponse()) {
11812  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
11813  }
11814  if (other.hasInstantiateAllVariables()) {
11815  setInstantiateAllVariables(other.getInstantiateAllVariables());
11816  }
11817  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
11818  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
11819  }
11820  if (other.hasStopAfterFirstSolution()) {
11821  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
11822  }
11823  if (other.hasStopAfterPresolve()) {
11824  setStopAfterPresolve(other.getStopAfterPresolve());
11825  }
11826  if (other.hasNumSearchWorkers()) {
11827  setNumSearchWorkers(other.getNumSearchWorkers());
11828  }
11829  if (other.hasInterleaveSearch()) {
11830  setInterleaveSearch(other.getInterleaveSearch());
11831  }
11832  if (other.hasInterleaveBatchSize()) {
11833  setInterleaveBatchSize(other.getInterleaveBatchSize());
11834  }
11835  if (other.hasReduceMemoryUsageInInterleaveMode()) {
11836  setReduceMemoryUsageInInterleaveMode(other.getReduceMemoryUsageInInterleaveMode());
11837  }
11838  if (other.hasShareObjectiveBounds()) {
11839  setShareObjectiveBounds(other.getShareObjectiveBounds());
11840  }
11841  if (other.hasShareLevelZeroBounds()) {
11842  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
11843  }
11844  if (other.hasUseLnsOnly()) {
11845  setUseLnsOnly(other.getUseLnsOnly());
11846  }
11847  if (other.hasLnsFocusOnDecisionVariables()) {
11848  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
11849  }
11850  if (other.hasUseRinsLns()) {
11851  setUseRinsLns(other.getUseRinsLns());
11852  }
11853  if (other.hasUseFeasibilityPump()) {
11854  setUseFeasibilityPump(other.getUseFeasibilityPump());
11855  }
11856  if (other.hasFpRounding()) {
11857  setFpRounding(other.getFpRounding());
11858  }
11859  if (other.hasUseRelaxationLns()) {
11860  setUseRelaxationLns(other.getUseRelaxationLns());
11861  }
11862  if (other.hasDiversifyLnsParams()) {
11863  setDiversifyLnsParams(other.getDiversifyLnsParams());
11864  }
11865  if (other.hasRandomizeSearch()) {
11866  setRandomizeSearch(other.getRandomizeSearch());
11867  }
11868  if (other.hasSearchRandomizationTolerance()) {
11869  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
11870  }
11871  if (other.hasUseOptionalVariables()) {
11872  setUseOptionalVariables(other.getUseOptionalVariables());
11873  }
11874  if (other.hasUseExactLpReason()) {
11875  setUseExactLpReason(other.getUseExactLpReason());
11876  }
11877  if (other.hasUseBranchingInLp()) {
11878  setUseBranchingInLp(other.getUseBranchingInLp());
11879  }
11880  if (other.hasUseCombinedNoOverlap()) {
11881  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
11882  }
11883  if (other.hasCatchSigintSignal()) {
11884  setCatchSigintSignal(other.getCatchSigintSignal());
11885  }
11886  if (other.hasUseImpliedBounds()) {
11887  setUseImpliedBounds(other.getUseImpliedBounds());
11888  }
11889  if (other.hasPolishLpSolution()) {
11890  setPolishLpSolution(other.getPolishLpSolution());
11891  }
11892  if (other.hasConvertIntervals()) {
11893  setConvertIntervals(other.getConvertIntervals());
11894  }
11895  if (other.hasDetectSymmetries()) {
11896  setDetectSymmetries(other.getDetectSymmetries());
11897  }
11898  if (other.hasMipMaxBound()) {
11899  setMipMaxBound(other.getMipMaxBound());
11900  }
11901  if (other.hasMipVarScaling()) {
11902  setMipVarScaling(other.getMipVarScaling());
11903  }
11904  if (other.hasMipAutomaticallyScaleVariables()) {
11905  setMipAutomaticallyScaleVariables(other.getMipAutomaticallyScaleVariables());
11906  }
11907  if (other.hasMipWantedPrecision()) {
11908  setMipWantedPrecision(other.getMipWantedPrecision());
11909  }
11910  if (other.hasMipMaxActivityExponent()) {
11911  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
11912  }
11913  if (other.hasMipCheckPrecision()) {
11914  setMipCheckPrecision(other.getMipCheckPrecision());
11915  }
11916  this.mergeUnknownFields(other.unknownFields);
11917  onChanged();
11918  return this;
11919  }
11920 
11921  @java.lang.Override
11922  public final boolean isInitialized() {
11923  return true;
11924  }
11925 
11926  @java.lang.Override
11928  com.google.protobuf.CodedInputStream input,
11929  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11930  throws java.io.IOException {
11931  com.google.ortools.sat.SatParameters parsedMessage = null;
11932  try {
11933  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
11934  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
11935  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
11936  throw e.unwrapIOException();
11937  } finally {
11938  if (parsedMessage != null) {
11939  mergeFrom(parsedMessage);
11940  }
11941  }
11942  return this;
11943  }
11944  private int bitField0_;
11945  private int bitField1_;
11946  private int bitField2_;
11947  private int bitField3_;
11948  private int bitField4_;
11949 
11950  private java.lang.Object name_ = "";
11960  public boolean hasName() {
11961  return ((bitField0_ & 0x00000001) != 0);
11962  }
11972  public java.lang.String getName() {
11973  java.lang.Object ref = name_;
11974  if (!(ref instanceof java.lang.String)) {
11975  com.google.protobuf.ByteString bs =
11976  (com.google.protobuf.ByteString) ref;
11977  java.lang.String s = bs.toStringUtf8();
11978  if (bs.isValidUtf8()) {
11979  name_ = s;
11980  }
11981  return s;
11982  } else {
11983  return (java.lang.String) ref;
11984  }
11985  }
11995  public com.google.protobuf.ByteString
11997  java.lang.Object ref = name_;
11998  if (ref instanceof String) {
11999  com.google.protobuf.ByteString b =
12000  com.google.protobuf.ByteString.copyFromUtf8(
12001  (java.lang.String) ref);
12002  name_ = b;
12003  return b;
12004  } else {
12005  return (com.google.protobuf.ByteString) ref;
12006  }
12007  }
12019  java.lang.String value) {
12020  if (value == null) {
12021  throw new NullPointerException();
12022  }
12023  bitField0_ |= 0x00000001;
12024  name_ = value;
12025  onChanged();
12026  return this;
12027  }
12037  public Builder clearName() {
12038  bitField0_ = (bitField0_ & ~0x00000001);
12039  name_ = getDefaultInstance().getName();
12040  onChanged();
12041  return this;
12042  }
12054  com.google.protobuf.ByteString value) {
12055  if (value == null) {
12056  throw new NullPointerException();
12057  }
12058  bitField0_ |= 0x00000001;
12059  name_ = value;
12060  onChanged();
12061  return this;
12062  }
12063 
12064  private int preferredVariableOrder_ = 0;
12069  @java.lang.Override public boolean hasPreferredVariableOrder() {
12070  return ((bitField0_ & 0x00000002) != 0);
12071  }
12076  @java.lang.Override
12077  public com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder() {
12078  @SuppressWarnings("deprecation")
12079  com.google.ortools.sat.SatParameters.VariableOrder result = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(preferredVariableOrder_);
12080  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
12081  }
12087  public Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value) {
12088  if (value == null) {
12089  throw new NullPointerException();
12090  }
12091  bitField0_ |= 0x00000002;
12092  preferredVariableOrder_ = value.getNumber();
12093  onChanged();
12094  return this;
12095  }
12101  bitField0_ = (bitField0_ & ~0x00000002);
12102  preferredVariableOrder_ = 0;
12103  onChanged();
12104  return this;
12105  }
12106 
12107  private int initialPolarity_ = 1;
12112  @java.lang.Override public boolean hasInitialPolarity() {
12113  return ((bitField0_ & 0x00000004) != 0);
12114  }
12119  @java.lang.Override
12120  public com.google.ortools.sat.SatParameters.Polarity getInitialPolarity() {
12121  @SuppressWarnings("deprecation")
12122  com.google.ortools.sat.SatParameters.Polarity result = com.google.ortools.sat.SatParameters.Polarity.valueOf(initialPolarity_);
12123  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
12124  }
12130  public Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value) {
12131  if (value == null) {
12132  throw new NullPointerException();
12133  }
12134  bitField0_ |= 0x00000004;
12135  initialPolarity_ = value.getNumber();
12136  onChanged();
12137  return this;
12138  }
12144  bitField0_ = (bitField0_ & ~0x00000004);
12145  initialPolarity_ = 1;
12146  onChanged();
12147  return this;
12148  }
12149 
12150  private boolean usePhaseSaving_ = true;
12167  @java.lang.Override
12168  public boolean hasUsePhaseSaving() {
12169  return ((bitField0_ & 0x00000008) != 0);
12170  }
12187  @java.lang.Override
12188  public boolean getUsePhaseSaving() {
12189  return usePhaseSaving_;
12190  }
12208  public Builder setUsePhaseSaving(boolean value) {
12209  bitField0_ |= 0x00000008;
12210  usePhaseSaving_ = value;
12211  onChanged();
12212  return this;
12213  }
12231  bitField0_ = (bitField0_ & ~0x00000008);
12232  usePhaseSaving_ = true;
12233  onChanged();
12234  return this;
12235  }
12236 
12237  private int polarityRephaseIncrement_ = 1000;
12248  @java.lang.Override
12249  public boolean hasPolarityRephaseIncrement() {
12250  return ((bitField0_ & 0x00000010) != 0);
12251  }
12262  @java.lang.Override
12264  return polarityRephaseIncrement_;
12265  }
12278  bitField0_ |= 0x00000010;
12279  polarityRephaseIncrement_ = value;
12280  onChanged();
12281  return this;
12282  }
12294  bitField0_ = (bitField0_ & ~0x00000010);
12295  polarityRephaseIncrement_ = 1000;
12296  onChanged();
12297  return this;
12298  }
12299 
12300  private double randomPolarityRatio_ ;
12313  @java.lang.Override
12314  public boolean hasRandomPolarityRatio() {
12315  return ((bitField0_ & 0x00000020) != 0);
12316  }
12329  @java.lang.Override
12330  public double getRandomPolarityRatio() {
12331  return randomPolarityRatio_;
12332  }
12346  public Builder setRandomPolarityRatio(double value) {
12347  bitField0_ |= 0x00000020;
12348  randomPolarityRatio_ = value;
12349  onChanged();
12350  return this;
12351  }
12365  bitField0_ = (bitField0_ & ~0x00000020);
12366  randomPolarityRatio_ = 0D;
12367  onChanged();
12368  return this;
12369  }
12370 
12371  private double randomBranchesRatio_ ;
12382  @java.lang.Override
12383  public boolean hasRandomBranchesRatio() {
12384  return ((bitField0_ & 0x00000040) != 0);
12385  }
12396  @java.lang.Override
12397  public double getRandomBranchesRatio() {
12398  return randomBranchesRatio_;
12399  }
12411  public Builder setRandomBranchesRatio(double value) {
12412  bitField0_ |= 0x00000040;
12413  randomBranchesRatio_ = value;
12414  onChanged();
12415  return this;
12416  }
12428  bitField0_ = (bitField0_ & ~0x00000040);
12429  randomBranchesRatio_ = 0D;
12430  onChanged();
12431  return this;
12432  }
12433 
12434  private boolean useErwaHeuristic_ ;
12445  @java.lang.Override
12446  public boolean hasUseErwaHeuristic() {
12447  return ((bitField0_ & 0x00000080) != 0);
12448  }
12459  @java.lang.Override
12460  public boolean getUseErwaHeuristic() {
12461  return useErwaHeuristic_;
12462  }
12474  public Builder setUseErwaHeuristic(boolean value) {
12475  bitField0_ |= 0x00000080;
12476  useErwaHeuristic_ = value;
12477  onChanged();
12478  return this;
12479  }
12491  bitField0_ = (bitField0_ & ~0x00000080);
12492  useErwaHeuristic_ = false;
12493  onChanged();
12494  return this;
12495  }
12496 
12497  private double initialVariablesActivity_ ;
12511  @java.lang.Override
12512  public boolean hasInitialVariablesActivity() {
12513  return ((bitField0_ & 0x00000100) != 0);
12514  }
12528  @java.lang.Override
12530  return initialVariablesActivity_;
12531  }
12546  public Builder setInitialVariablesActivity(double value) {
12547  bitField0_ |= 0x00000100;
12548  initialVariablesActivity_ = value;
12549  onChanged();
12550  return this;
12551  }
12566  bitField0_ = (bitField0_ & ~0x00000100);
12567  initialVariablesActivity_ = 0D;
12568  onChanged();
12569  return this;
12570  }
12571 
12572  private boolean alsoBumpVariablesInConflictReasons_ ;
12584  @java.lang.Override
12586  return ((bitField0_ & 0x00000200) != 0);
12587  }
12599  @java.lang.Override
12601  return alsoBumpVariablesInConflictReasons_;
12602  }
12616  bitField0_ |= 0x00000200;
12617  alsoBumpVariablesInConflictReasons_ = value;
12618  onChanged();
12619  return this;
12620  }
12633  bitField0_ = (bitField0_ & ~0x00000200);
12634  alsoBumpVariablesInConflictReasons_ = false;
12635  onChanged();
12636  return this;
12637  }
12638 
12639  private int minimizationAlgorithm_ = 2;
12644  @java.lang.Override public boolean hasMinimizationAlgorithm() {
12645  return ((bitField0_ & 0x00000400) != 0);
12646  }
12651  @java.lang.Override
12652  public com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm() {
12653  @SuppressWarnings("deprecation")
12654  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm result = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(minimizationAlgorithm_);
12655  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
12656  }
12662  public Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value) {
12663  if (value == null) {
12664  throw new NullPointerException();
12665  }
12666  bitField0_ |= 0x00000400;
12667  minimizationAlgorithm_ = value.getNumber();
12668  onChanged();
12669  return this;
12670  }
12676  bitField0_ = (bitField0_ & ~0x00000400);
12677  minimizationAlgorithm_ = 2;
12678  onChanged();
12679  return this;
12680  }
12681 
12682  private int binaryMinimizationAlgorithm_ = 1;
12687  @java.lang.Override public boolean hasBinaryMinimizationAlgorithm() {
12688  return ((bitField0_ & 0x00000800) != 0);
12689  }
12694  @java.lang.Override
12695  public com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm() {
12696  @SuppressWarnings("deprecation")
12697  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm result = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(binaryMinimizationAlgorithm_);
12698  return result == null ? com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.BINARY_MINIMIZATION_FIRST : result;
12699  }
12705  public Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value) {
12706  if (value == null) {
12707  throw new NullPointerException();
12708  }
12709  bitField0_ |= 0x00000800;
12710  binaryMinimizationAlgorithm_ = value.getNumber();
12711  onChanged();
12712  return this;
12713  }
12719  bitField0_ = (bitField0_ & ~0x00000800);
12720  binaryMinimizationAlgorithm_ = 1;
12721  onChanged();
12722  return this;
12723  }
12724 
12725  private boolean subsumptionDuringConflictAnalysis_ = true;
12737  @java.lang.Override
12739  return ((bitField0_ & 0x00001000) != 0);
12740  }
12752  @java.lang.Override
12754  return subsumptionDuringConflictAnalysis_;
12755  }
12769  bitField0_ |= 0x00001000;
12770  subsumptionDuringConflictAnalysis_ = value;
12771  onChanged();
12772  return this;
12773  }
12786  bitField0_ = (bitField0_ & ~0x00001000);
12787  subsumptionDuringConflictAnalysis_ = true;
12788  onChanged();
12789  return this;
12790  }
12791 
12792  private int clauseCleanupPeriod_ = 10000;
12801  @java.lang.Override
12802  public boolean hasClauseCleanupPeriod() {
12803  return ((bitField0_ & 0x00002000) != 0);
12804  }
12813  @java.lang.Override
12814  public int getClauseCleanupPeriod() {
12815  return clauseCleanupPeriod_;
12816  }
12826  public Builder setClauseCleanupPeriod(int value) {
12827  bitField0_ |= 0x00002000;
12828  clauseCleanupPeriod_ = value;
12829  onChanged();
12830  return this;
12831  }
12841  bitField0_ = (bitField0_ & ~0x00002000);
12842  clauseCleanupPeriod_ = 10000;
12843  onChanged();
12844  return this;
12845  }
12846 
12847  private int clauseCleanupTarget_ = 10000;
12857  @java.lang.Override
12858  public boolean hasClauseCleanupTarget() {
12859  return ((bitField0_ & 0x00004000) != 0);
12860  }
12870  @java.lang.Override
12871  public int getClauseCleanupTarget() {
12872  return clauseCleanupTarget_;
12873  }
12884  public Builder setClauseCleanupTarget(int value) {
12885  bitField0_ |= 0x00004000;
12886  clauseCleanupTarget_ = value;
12887  onChanged();
12888  return this;
12889  }
12900  bitField0_ = (bitField0_ & ~0x00004000);
12901  clauseCleanupTarget_ = 10000;
12902  onChanged();
12903  return this;
12904  }
12905 
12906  private int clauseCleanupProtection_ = 0;
12911  @java.lang.Override public boolean hasClauseCleanupProtection() {
12912  return ((bitField0_ & 0x00008000) != 0);
12913  }
12918  @java.lang.Override
12919  public com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection() {
12920  @SuppressWarnings("deprecation")
12921  com.google.ortools.sat.SatParameters.ClauseProtection result = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(clauseCleanupProtection_);
12922  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
12923  }
12929  public Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value) {
12930  if (value == null) {
12931  throw new NullPointerException();
12932  }
12933  bitField0_ |= 0x00008000;
12934  clauseCleanupProtection_ = value.getNumber();
12935  onChanged();
12936  return this;
12937  }
12943  bitField0_ = (bitField0_ & ~0x00008000);
12944  clauseCleanupProtection_ = 0;
12945  onChanged();
12946  return this;
12947  }
12948 
12949  private int clauseCleanupLbdBound_ = 5;
12959  @java.lang.Override
12960  public boolean hasClauseCleanupLbdBound() {
12961  return ((bitField0_ & 0x00010000) != 0);
12962  }
12972  @java.lang.Override
12974  return clauseCleanupLbdBound_;
12975  }
12986  public Builder setClauseCleanupLbdBound(int value) {
12987  bitField0_ |= 0x00010000;
12988  clauseCleanupLbdBound_ = value;
12989  onChanged();
12990  return this;
12991  }
13002  bitField0_ = (bitField0_ & ~0x00010000);
13003  clauseCleanupLbdBound_ = 5;
13004  onChanged();
13005  return this;
13006  }
13007 
13008  private int clauseCleanupOrdering_ = 0;
13013  @java.lang.Override public boolean hasClauseCleanupOrdering() {
13014  return ((bitField0_ & 0x00020000) != 0);
13015  }
13020  @java.lang.Override
13021  public com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering() {
13022  @SuppressWarnings("deprecation")
13023  com.google.ortools.sat.SatParameters.ClauseOrdering result = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(clauseCleanupOrdering_);
13024  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
13025  }
13031  public Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value) {
13032  if (value == null) {
13033  throw new NullPointerException();
13034  }
13035  bitField0_ |= 0x00020000;
13036  clauseCleanupOrdering_ = value.getNumber();
13037  onChanged();
13038  return this;
13039  }
13045  bitField0_ = (bitField0_ & ~0x00020000);
13046  clauseCleanupOrdering_ = 0;
13047  onChanged();
13048  return this;
13049  }
13050 
13051  private int pbCleanupIncrement_ = 200;
13060  @java.lang.Override
13061  public boolean hasPbCleanupIncrement() {
13062  return ((bitField0_ & 0x00040000) != 0);
13063  }
13072  @java.lang.Override
13073  public int getPbCleanupIncrement() {
13074  return pbCleanupIncrement_;
13075  }
13085  public Builder setPbCleanupIncrement(int value) {
13086  bitField0_ |= 0x00040000;
13087  pbCleanupIncrement_ = value;
13088  onChanged();
13089  return this;
13090  }
13100  bitField0_ = (bitField0_ & ~0x00040000);
13101  pbCleanupIncrement_ = 200;
13102  onChanged();
13103  return this;
13104  }
13105 
13106  private double pbCleanupRatio_ = 0.5D;
13111  @java.lang.Override
13112  public boolean hasPbCleanupRatio() {
13113  return ((bitField0_ & 0x00080000) != 0);
13114  }
13119  @java.lang.Override
13120  public double getPbCleanupRatio() {
13121  return pbCleanupRatio_;
13122  }
13128  public Builder setPbCleanupRatio(double value) {
13129  bitField0_ |= 0x00080000;
13130  pbCleanupRatio_ = value;
13131  onChanged();
13132  return this;
13133  }
13139  bitField0_ = (bitField0_ & ~0x00080000);
13140  pbCleanupRatio_ = 0.5D;
13141  onChanged();
13142  return this;
13143  }
13144 
13145  private int minimizeWithPropagationRestartPeriod_ = 10;
13164  @java.lang.Override
13166  return ((bitField0_ & 0x00100000) != 0);
13167  }
13186  @java.lang.Override
13188  return minimizeWithPropagationRestartPeriod_;
13189  }
13210  bitField0_ |= 0x00100000;
13211  minimizeWithPropagationRestartPeriod_ = value;
13212  onChanged();
13213  return this;
13214  }
13234  bitField0_ = (bitField0_ & ~0x00100000);
13235  minimizeWithPropagationRestartPeriod_ = 10;
13236  onChanged();
13237  return this;
13238  }
13239 
13240  private int minimizeWithPropagationNumDecisions_ = 1000;
13245  @java.lang.Override
13247  return ((bitField0_ & 0x00200000) != 0);
13248  }
13253  @java.lang.Override
13255  return minimizeWithPropagationNumDecisions_;
13256  }
13263  bitField0_ |= 0x00200000;
13264  minimizeWithPropagationNumDecisions_ = value;
13265  onChanged();
13266  return this;
13267  }
13273  bitField0_ = (bitField0_ & ~0x00200000);
13274  minimizeWithPropagationNumDecisions_ = 1000;
13275  onChanged();
13276  return this;
13277  }
13278 
13279  private double variableActivityDecay_ = 0.8D;
13294  @java.lang.Override
13295  public boolean hasVariableActivityDecay() {
13296  return ((bitField0_ & 0x00400000) != 0);
13297  }
13312  @java.lang.Override
13313  public double getVariableActivityDecay() {
13314  return variableActivityDecay_;
13315  }
13331  public Builder setVariableActivityDecay(double value) {
13332  bitField0_ |= 0x00400000;
13333  variableActivityDecay_ = value;
13334  onChanged();
13335  return this;
13336  }
13352  bitField0_ = (bitField0_ & ~0x00400000);
13353  variableActivityDecay_ = 0.8D;
13354  onChanged();
13355  return this;
13356  }
13357 
13358  private double maxVariableActivityValue_ = 1e+100D;
13363  @java.lang.Override
13364  public boolean hasMaxVariableActivityValue() {
13365  return ((bitField0_ & 0x00800000) != 0);
13366  }
13371  @java.lang.Override
13373  return maxVariableActivityValue_;
13374  }
13380  public Builder setMaxVariableActivityValue(double value) {
13381  bitField0_ |= 0x00800000;
13382  maxVariableActivityValue_ = value;
13383  onChanged();
13384  return this;
13385  }
13391  bitField0_ = (bitField0_ & ~0x00800000);
13392  maxVariableActivityValue_ = 1e+100D;
13393  onChanged();
13394  return this;
13395  }
13396 
13397  private double glucoseMaxDecay_ = 0.95D;
13409  @java.lang.Override
13410  public boolean hasGlucoseMaxDecay() {
13411  return ((bitField0_ & 0x01000000) != 0);
13412  }
13424  @java.lang.Override
13425  public double getGlucoseMaxDecay() {
13426  return glucoseMaxDecay_;
13427  }
13440  public Builder setGlucoseMaxDecay(double value) {
13441  bitField0_ |= 0x01000000;
13442  glucoseMaxDecay_ = value;
13443  onChanged();
13444  return this;
13445  }
13458  bitField0_ = (bitField0_ & ~0x01000000);
13459  glucoseMaxDecay_ = 0.95D;
13460  onChanged();
13461  return this;
13462  }
13463 
13464  private double glucoseDecayIncrement_ = 0.01D;
13469  @java.lang.Override
13470  public boolean hasGlucoseDecayIncrement() {
13471  return ((bitField0_ & 0x02000000) != 0);
13472  }
13477  @java.lang.Override
13478  public double getGlucoseDecayIncrement() {
13479  return glucoseDecayIncrement_;
13480  }
13486  public Builder setGlucoseDecayIncrement(double value) {
13487  bitField0_ |= 0x02000000;
13488  glucoseDecayIncrement_ = value;
13489  onChanged();
13490  return this;
13491  }
13497  bitField0_ = (bitField0_ & ~0x02000000);
13498  glucoseDecayIncrement_ = 0.01D;
13499  onChanged();
13500  return this;
13501  }
13502 
13503  private int glucoseDecayIncrementPeriod_ = 5000;
13508  @java.lang.Override
13510  return ((bitField0_ & 0x04000000) != 0);
13511  }
13516  @java.lang.Override
13518  return glucoseDecayIncrementPeriod_;
13519  }
13526  bitField0_ |= 0x04000000;
13527  glucoseDecayIncrementPeriod_ = value;
13528  onChanged();
13529  return this;
13530  }
13536  bitField0_ = (bitField0_ & ~0x04000000);
13537  glucoseDecayIncrementPeriod_ = 5000;
13538  onChanged();
13539  return this;
13540  }
13541 
13542  private double clauseActivityDecay_ = 0.999D;
13551  @java.lang.Override
13552  public boolean hasClauseActivityDecay() {
13553  return ((bitField0_ & 0x08000000) != 0);
13554  }
13563  @java.lang.Override
13564  public double getClauseActivityDecay() {
13565  return clauseActivityDecay_;
13566  }
13576  public Builder setClauseActivityDecay(double value) {
13577  bitField0_ |= 0x08000000;
13578  clauseActivityDecay_ = value;
13579  onChanged();
13580  return this;
13581  }
13591  bitField0_ = (bitField0_ & ~0x08000000);
13592  clauseActivityDecay_ = 0.999D;
13593  onChanged();
13594  return this;
13595  }
13596 
13597  private double maxClauseActivityValue_ = 1e+20D;
13602  @java.lang.Override
13603  public boolean hasMaxClauseActivityValue() {
13604  return ((bitField0_ & 0x10000000) != 0);
13605  }
13610  @java.lang.Override
13611  public double getMaxClauseActivityValue() {
13612  return maxClauseActivityValue_;
13613  }
13619  public Builder setMaxClauseActivityValue(double value) {
13620  bitField0_ |= 0x10000000;
13621  maxClauseActivityValue_ = value;
13622  onChanged();
13623  return this;
13624  }
13630  bitField0_ = (bitField0_ & ~0x10000000);
13631  maxClauseActivityValue_ = 1e+20D;
13632  onChanged();
13633  return this;
13634  }
13635 
13636  private java.util.List<java.lang.Integer> restartAlgorithms_ =
13637  java.util.Collections.emptyList();
13638  private void ensureRestartAlgorithmsIsMutable() {
13639  if (!((bitField0_ & 0x20000000) != 0)) {
13640  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
13641  bitField0_ |= 0x20000000;
13642  }
13643  }
13659  public java.util.List<com.google.ortools.sat.SatParameters.RestartAlgorithm> getRestartAlgorithmsList() {
13660  return new com.google.protobuf.Internal.ListAdapter<
13661  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
13662  }
13679  return restartAlgorithms_.size();
13680  }
13697  public com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index) {
13698  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
13699  }
13718  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
13719  if (value == null) {
13720  throw new NullPointerException();
13721  }
13722  ensureRestartAlgorithmsIsMutable();
13723  restartAlgorithms_.set(index, value.getNumber());
13724  onChanged();
13725  return this;
13726  }
13743  public Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
13744  if (value == null) {
13745  throw new NullPointerException();
13746  }
13747  ensureRestartAlgorithmsIsMutable();
13748  restartAlgorithms_.add(value.getNumber());
13749  onChanged();
13750  return this;
13751  }
13769  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
13770  ensureRestartAlgorithmsIsMutable();
13771  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
13772  restartAlgorithms_.add(value.getNumber());
13773  }
13774  onChanged();
13775  return this;
13776  }
13793  restartAlgorithms_ = java.util.Collections.emptyList();
13794  bitField0_ = (bitField0_ & ~0x20000000);
13795  onChanged();
13796  return this;
13797  }
13798 
13799  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
13804  public boolean hasDefaultRestartAlgorithms() {
13805  return ((bitField0_ & 0x40000000) != 0);
13806  }
13811  public java.lang.String getDefaultRestartAlgorithms() {
13812  java.lang.Object ref = defaultRestartAlgorithms_;
13813  if (!(ref instanceof java.lang.String)) {
13814  com.google.protobuf.ByteString bs =
13815  (com.google.protobuf.ByteString) ref;
13816  java.lang.String s = bs.toStringUtf8();
13817  if (bs.isValidUtf8()) {
13818  defaultRestartAlgorithms_ = s;
13819  }
13820  return s;
13821  } else {
13822  return (java.lang.String) ref;
13823  }
13824  }
13829  public com.google.protobuf.ByteString
13831  java.lang.Object ref = defaultRestartAlgorithms_;
13832  if (ref instanceof String) {
13833  com.google.protobuf.ByteString b =
13834  com.google.protobuf.ByteString.copyFromUtf8(
13835  (java.lang.String) ref);
13836  defaultRestartAlgorithms_ = b;
13837  return b;
13838  } else {
13839  return (com.google.protobuf.ByteString) ref;
13840  }
13841  }
13848  java.lang.String value) {
13849  if (value == null) {
13850  throw new NullPointerException();
13851  }
13852  bitField0_ |= 0x40000000;
13853  defaultRestartAlgorithms_ = value;
13854  onChanged();
13855  return this;
13856  }
13862  bitField0_ = (bitField0_ & ~0x40000000);
13863  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
13864  onChanged();
13865  return this;
13866  }
13873  com.google.protobuf.ByteString value) {
13874  if (value == null) {
13875  throw new NullPointerException();
13876  }
13877  bitField0_ |= 0x40000000;
13878  defaultRestartAlgorithms_ = value;
13879  onChanged();
13880  return this;
13881  }
13882 
13883  private int restartPeriod_ = 50;
13893  @java.lang.Override
13894  public boolean hasRestartPeriod() {
13895  return ((bitField0_ & 0x80000000) != 0);
13896  }
13906  @java.lang.Override
13907  public int getRestartPeriod() {
13908  return restartPeriod_;
13909  }
13920  public Builder setRestartPeriod(int value) {
13921  bitField0_ |= 0x80000000;
13922  restartPeriod_ = value;
13923  onChanged();
13924  return this;
13925  }
13936  bitField0_ = (bitField0_ & ~0x80000000);
13937  restartPeriod_ = 50;
13938  onChanged();
13939  return this;
13940  }
13941 
13942  private int restartRunningWindowSize_ = 50;
13951  @java.lang.Override
13952  public boolean hasRestartRunningWindowSize() {
13953  return ((bitField1_ & 0x00000001) != 0);
13954  }
13963  @java.lang.Override
13965  return restartRunningWindowSize_;
13966  }
13977  bitField1_ |= 0x00000001;
13978  restartRunningWindowSize_ = value;
13979  onChanged();
13980  return this;
13981  }
13991  bitField1_ = (bitField1_ & ~0x00000001);
13992  restartRunningWindowSize_ = 50;
13993  onChanged();
13994  return this;
13995  }
13996 
13997  private double restartDlAverageRatio_ = 1D;
14007  @java.lang.Override
14008  public boolean hasRestartDlAverageRatio() {
14009  return ((bitField1_ & 0x00000002) != 0);
14010  }
14020  @java.lang.Override
14021  public double getRestartDlAverageRatio() {
14022  return restartDlAverageRatio_;
14023  }
14034  public Builder setRestartDlAverageRatio(double value) {
14035  bitField1_ |= 0x00000002;
14036  restartDlAverageRatio_ = value;
14037  onChanged();
14038  return this;
14039  }
14050  bitField1_ = (bitField1_ & ~0x00000002);
14051  restartDlAverageRatio_ = 1D;
14052  onChanged();
14053  return this;
14054  }
14055 
14056  private double restartLbdAverageRatio_ = 1D;
14061  @java.lang.Override
14062  public boolean hasRestartLbdAverageRatio() {
14063  return ((bitField1_ & 0x00000004) != 0);
14064  }
14069  @java.lang.Override
14070  public double getRestartLbdAverageRatio() {
14071  return restartLbdAverageRatio_;
14072  }
14078  public Builder setRestartLbdAverageRatio(double value) {
14079  bitField1_ |= 0x00000004;
14080  restartLbdAverageRatio_ = value;
14081  onChanged();
14082  return this;
14083  }
14089  bitField1_ = (bitField1_ & ~0x00000004);
14090  restartLbdAverageRatio_ = 1D;
14091  onChanged();
14092  return this;
14093  }
14094 
14095  private boolean useBlockingRestart_ ;
14106  @java.lang.Override
14107  public boolean hasUseBlockingRestart() {
14108  return ((bitField1_ & 0x00000008) != 0);
14109  }
14120  @java.lang.Override
14121  public boolean getUseBlockingRestart() {
14122  return useBlockingRestart_;
14123  }
14135  public Builder setUseBlockingRestart(boolean value) {
14136  bitField1_ |= 0x00000008;
14137  useBlockingRestart_ = value;
14138  onChanged();
14139  return this;
14140  }
14152  bitField1_ = (bitField1_ & ~0x00000008);
14153  useBlockingRestart_ = false;
14154  onChanged();
14155  return this;
14156  }
14157 
14158  private int blockingRestartWindowSize_ = 5000;
14163  @java.lang.Override
14164  public boolean hasBlockingRestartWindowSize() {
14165  return ((bitField1_ & 0x00000010) != 0);
14166  }
14171  @java.lang.Override
14173  return blockingRestartWindowSize_;
14174  }
14181  bitField1_ |= 0x00000010;
14182  blockingRestartWindowSize_ = value;
14183  onChanged();
14184  return this;
14185  }
14191  bitField1_ = (bitField1_ & ~0x00000010);
14192  blockingRestartWindowSize_ = 5000;
14193  onChanged();
14194  return this;
14195  }
14196 
14197  private double blockingRestartMultiplier_ = 1.4D;
14202  @java.lang.Override
14203  public boolean hasBlockingRestartMultiplier() {
14204  return ((bitField1_ & 0x00000020) != 0);
14205  }
14210  @java.lang.Override
14212  return blockingRestartMultiplier_;
14213  }
14219  public Builder setBlockingRestartMultiplier(double value) {
14220  bitField1_ |= 0x00000020;
14221  blockingRestartMultiplier_ = value;
14222  onChanged();
14223  return this;
14224  }
14230  bitField1_ = (bitField1_ & ~0x00000020);
14231  blockingRestartMultiplier_ = 1.4D;
14232  onChanged();
14233  return this;
14234  }
14235 
14236  private int numConflictsBeforeStrategyChanges_ ;
14247  @java.lang.Override
14249  return ((bitField1_ & 0x00000040) != 0);
14250  }
14261  @java.lang.Override
14263  return numConflictsBeforeStrategyChanges_;
14264  }
14277  bitField1_ |= 0x00000040;
14278  numConflictsBeforeStrategyChanges_ = value;
14279  onChanged();
14280  return this;
14281  }
14293  bitField1_ = (bitField1_ & ~0x00000040);
14294  numConflictsBeforeStrategyChanges_ = 0;
14295  onChanged();
14296  return this;
14297  }
14298 
14299  private double strategyChangeIncreaseRatio_ ;
14309  @java.lang.Override
14311  return ((bitField1_ & 0x00000080) != 0);
14312  }
14322  @java.lang.Override
14324  return strategyChangeIncreaseRatio_;
14325  }
14337  bitField1_ |= 0x00000080;
14338  strategyChangeIncreaseRatio_ = value;
14339  onChanged();
14340  return this;
14341  }
14352  bitField1_ = (bitField1_ & ~0x00000080);
14353  strategyChangeIncreaseRatio_ = 0D;
14354  onChanged();
14355  return this;
14356  }
14357 
14358  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
14368  @java.lang.Override
14369  public boolean hasMaxTimeInSeconds() {
14370  return ((bitField1_ & 0x00000100) != 0);
14371  }
14381  @java.lang.Override
14382  public double getMaxTimeInSeconds() {
14383  return maxTimeInSeconds_;
14384  }
14395  public Builder setMaxTimeInSeconds(double value) {
14396  bitField1_ |= 0x00000100;
14397  maxTimeInSeconds_ = value;
14398  onChanged();
14399  return this;
14400  }
14411  bitField1_ = (bitField1_ & ~0x00000100);
14412  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
14413  onChanged();
14414  return this;
14415  }
14416 
14417  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
14428  @java.lang.Override
14429  public boolean hasMaxDeterministicTime() {
14430  return ((bitField1_ & 0x00000200) != 0);
14431  }
14442  @java.lang.Override
14443  public double getMaxDeterministicTime() {
14444  return maxDeterministicTime_;
14445  }
14457  public Builder setMaxDeterministicTime(double value) {
14458  bitField1_ |= 0x00000200;
14459  maxDeterministicTime_ = value;
14460  onChanged();
14461  return this;
14462  }
14474  bitField1_ = (bitField1_ & ~0x00000200);
14475  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
14476  onChanged();
14477  return this;
14478  }
14479 
14480  private long maxNumberOfConflicts_ = 9223372036854775807L;
14494  @java.lang.Override
14495  public boolean hasMaxNumberOfConflicts() {
14496  return ((bitField1_ & 0x00000400) != 0);
14497  }
14511  @java.lang.Override
14512  public long getMaxNumberOfConflicts() {
14513  return maxNumberOfConflicts_;
14514  }
14529  public Builder setMaxNumberOfConflicts(long value) {
14530  bitField1_ |= 0x00000400;
14531  maxNumberOfConflicts_ = value;
14532  onChanged();
14533  return this;
14534  }
14549  bitField1_ = (bitField1_ & ~0x00000400);
14550  maxNumberOfConflicts_ = 9223372036854775807L;
14551  onChanged();
14552  return this;
14553  }
14554 
14555  private long maxMemoryInMb_ = 10000L;
14567  @java.lang.Override
14568  public boolean hasMaxMemoryInMb() {
14569  return ((bitField1_ & 0x00000800) != 0);
14570  }
14582  @java.lang.Override
14583  public long getMaxMemoryInMb() {
14584  return maxMemoryInMb_;
14585  }
14598  public Builder setMaxMemoryInMb(long value) {
14599  bitField1_ |= 0x00000800;
14600  maxMemoryInMb_ = value;
14601  onChanged();
14602  return this;
14603  }
14616  bitField1_ = (bitField1_ & ~0x00000800);
14617  maxMemoryInMb_ = 10000L;
14618  onChanged();
14619  return this;
14620  }
14621 
14622  private double absoluteGapLimit_ ;
14640  @java.lang.Override
14641  public boolean hasAbsoluteGapLimit() {
14642  return ((bitField1_ & 0x00001000) != 0);
14643  }
14661  @java.lang.Override
14662  public double getAbsoluteGapLimit() {
14663  return absoluteGapLimit_;
14664  }
14683  public Builder setAbsoluteGapLimit(double value) {
14684  bitField1_ |= 0x00001000;
14685  absoluteGapLimit_ = value;
14686  onChanged();
14687  return this;
14688  }
14707  bitField1_ = (bitField1_ & ~0x00001000);
14708  absoluteGapLimit_ = 0D;
14709  onChanged();
14710  return this;
14711  }
14712 
14713  private double relativeGapLimit_ ;
14718  @java.lang.Override
14719  public boolean hasRelativeGapLimit() {
14720  return ((bitField1_ & 0x00002000) != 0);
14721  }
14726  @java.lang.Override
14727  public double getRelativeGapLimit() {
14728  return relativeGapLimit_;
14729  }
14735  public Builder setRelativeGapLimit(double value) {
14736  bitField1_ |= 0x00002000;
14737  relativeGapLimit_ = value;
14738  onChanged();
14739  return this;
14740  }
14746  bitField1_ = (bitField1_ & ~0x00002000);
14747  relativeGapLimit_ = 0D;
14748  onChanged();
14749  return this;
14750  }
14751 
14752  private boolean treatBinaryClausesSeparately_ = true;
14763  @java.lang.Override
14765  return ((bitField1_ & 0x00004000) != 0);
14766  }
14777  @java.lang.Override
14779  return treatBinaryClausesSeparately_;
14780  }
14793  bitField1_ |= 0x00004000;
14794  treatBinaryClausesSeparately_ = value;
14795  onChanged();
14796  return this;
14797  }
14809  bitField1_ = (bitField1_ & ~0x00004000);
14810  treatBinaryClausesSeparately_ = true;
14811  onChanged();
14812  return this;
14813  }
14814 
14815  private int randomSeed_ = 1;
14829  @java.lang.Override
14830  public boolean hasRandomSeed() {
14831  return ((bitField1_ & 0x00008000) != 0);
14832  }
14846  @java.lang.Override
14847  public int getRandomSeed() {
14848  return randomSeed_;
14849  }
14864  public Builder setRandomSeed(int value) {
14865  bitField1_ |= 0x00008000;
14866  randomSeed_ = value;
14867  onChanged();
14868  return this;
14869  }
14884  bitField1_ = (bitField1_ & ~0x00008000);
14885  randomSeed_ = 1;
14886  onChanged();
14887  return this;
14888  }
14889 
14890  private boolean permuteVariableRandomly_ ;
14902  @java.lang.Override
14903  public boolean hasPermuteVariableRandomly() {
14904  return ((bitField1_ & 0x00010000) != 0);
14905  }
14917  @java.lang.Override
14918  public boolean getPermuteVariableRandomly() {
14919  return permuteVariableRandomly_;
14920  }
14933  public Builder setPermuteVariableRandomly(boolean value) {
14934  bitField1_ |= 0x00010000;
14935  permuteVariableRandomly_ = value;
14936  onChanged();
14937  return this;
14938  }
14951  bitField1_ = (bitField1_ & ~0x00010000);
14952  permuteVariableRandomly_ = false;
14953  onChanged();
14954  return this;
14955  }
14956 
14957  private boolean permutePresolveConstraintOrder_ ;
14962  @java.lang.Override
14964  return ((bitField1_ & 0x00020000) != 0);
14965  }
14970  @java.lang.Override
14972  return permutePresolveConstraintOrder_;
14973  }
14980  bitField1_ |= 0x00020000;
14981  permutePresolveConstraintOrder_ = value;
14982  onChanged();
14983  return this;
14984  }
14990  bitField1_ = (bitField1_ & ~0x00020000);
14991  permutePresolveConstraintOrder_ = false;
14992  onChanged();
14993  return this;
14994  }
14995 
14996  private boolean useAbslRandom_ ;
15001  @java.lang.Override
15002  public boolean hasUseAbslRandom() {
15003  return ((bitField1_ & 0x00040000) != 0);
15004  }
15009  @java.lang.Override
15010  public boolean getUseAbslRandom() {
15011  return useAbslRandom_;
15012  }
15018  public Builder setUseAbslRandom(boolean value) {
15019  bitField1_ |= 0x00040000;
15020  useAbslRandom_ = value;
15021  onChanged();
15022  return this;
15023  }
15029  bitField1_ = (bitField1_ & ~0x00040000);
15030  useAbslRandom_ = false;
15031  onChanged();
15032  return this;
15033  }
15034 
15035  private boolean logSearchProgress_ ;
15044  @java.lang.Override
15045  public boolean hasLogSearchProgress() {
15046  return ((bitField1_ & 0x00080000) != 0);
15047  }
15056  @java.lang.Override
15057  public boolean getLogSearchProgress() {
15058  return logSearchProgress_;
15059  }
15069  public Builder setLogSearchProgress(boolean value) {
15070  bitField1_ |= 0x00080000;
15071  logSearchProgress_ = value;
15072  onChanged();
15073  return this;
15074  }
15084  bitField1_ = (bitField1_ & ~0x00080000);
15085  logSearchProgress_ = false;
15086  onChanged();
15087  return this;
15088  }
15089 
15090  private boolean usePbResolution_ ;
15102  @java.lang.Override
15103  public boolean hasUsePbResolution() {
15104  return ((bitField1_ & 0x00100000) != 0);
15105  }
15117  @java.lang.Override
15118  public boolean getUsePbResolution() {
15119  return usePbResolution_;
15120  }
15133  public Builder setUsePbResolution(boolean value) {
15134  bitField1_ |= 0x00100000;
15135  usePbResolution_ = value;
15136  onChanged();
15137  return this;
15138  }
15151  bitField1_ = (bitField1_ & ~0x00100000);
15152  usePbResolution_ = false;
15153  onChanged();
15154  return this;
15155  }
15156 
15157  private boolean minimizeReductionDuringPbResolution_ ;
15169  @java.lang.Override
15171  return ((bitField1_ & 0x00200000) != 0);
15172  }
15184  @java.lang.Override
15186  return minimizeReductionDuringPbResolution_;
15187  }
15201  bitField1_ |= 0x00200000;
15202  minimizeReductionDuringPbResolution_ = value;
15203  onChanged();
15204  return this;
15205  }
15218  bitField1_ = (bitField1_ & ~0x00200000);
15219  minimizeReductionDuringPbResolution_ = false;
15220  onChanged();
15221  return this;
15222  }
15223 
15224  private boolean countAssumptionLevelsInLbd_ = true;
15240  @java.lang.Override
15242  return ((bitField1_ & 0x00400000) != 0);
15243  }
15259  @java.lang.Override
15261  return countAssumptionLevelsInLbd_;
15262  }
15279  public Builder setCountAssumptionLevelsInLbd(boolean value) {
15280  bitField1_ |= 0x00400000;
15281  countAssumptionLevelsInLbd_ = value;
15282  onChanged();
15283  return this;
15284  }
15301  bitField1_ = (bitField1_ & ~0x00400000);
15302  countAssumptionLevelsInLbd_ = true;
15303  onChanged();
15304  return this;
15305  }
15306 
15307  private int presolveBveThreshold_ = 500;
15318  @java.lang.Override
15319  public boolean hasPresolveBveThreshold() {
15320  return ((bitField1_ & 0x00800000) != 0);
15321  }
15332  @java.lang.Override
15334  return presolveBveThreshold_;
15335  }
15347  public Builder setPresolveBveThreshold(int value) {
15348  bitField1_ |= 0x00800000;
15349  presolveBveThreshold_ = value;
15350  onChanged();
15351  return this;
15352  }
15364  bitField1_ = (bitField1_ & ~0x00800000);
15365  presolveBveThreshold_ = 500;
15366  onChanged();
15367  return this;
15368  }
15369 
15370  private int presolveBveClauseWeight_ = 3;
15380  @java.lang.Override
15381  public boolean hasPresolveBveClauseWeight() {
15382  return ((bitField1_ & 0x01000000) != 0);
15383  }
15393  @java.lang.Override
15395  return presolveBveClauseWeight_;
15396  }
15408  bitField1_ |= 0x01000000;
15409  presolveBveClauseWeight_ = value;
15410  onChanged();
15411  return this;
15412  }
15423  bitField1_ = (bitField1_ & ~0x01000000);
15424  presolveBveClauseWeight_ = 3;
15425  onChanged();
15426  return this;
15427  }
15428 
15429  private double presolveProbingDeterministicTimeLimit_ = 30D;
15439  @java.lang.Override
15441  return ((bitField1_ & 0x02000000) != 0);
15442  }
15452  @java.lang.Override
15454  return presolveProbingDeterministicTimeLimit_;
15455  }
15467  bitField1_ |= 0x02000000;
15468  presolveProbingDeterministicTimeLimit_ = value;
15469  onChanged();
15470  return this;
15471  }
15482  bitField1_ = (bitField1_ & ~0x02000000);
15483  presolveProbingDeterministicTimeLimit_ = 30D;
15484  onChanged();
15485  return this;
15486  }
15487 
15488  private boolean presolveBlockedClause_ = true;
15498  @java.lang.Override
15499  public boolean hasPresolveBlockedClause() {
15500  return ((bitField1_ & 0x04000000) != 0);
15501  }
15511  @java.lang.Override
15512  public boolean getPresolveBlockedClause() {
15513  return presolveBlockedClause_;
15514  }
15525  public Builder setPresolveBlockedClause(boolean value) {
15526  bitField1_ |= 0x04000000;
15527  presolveBlockedClause_ = value;
15528  onChanged();
15529  return this;
15530  }
15541  bitField1_ = (bitField1_ & ~0x04000000);
15542  presolveBlockedClause_ = true;
15543  onChanged();
15544  return this;
15545  }
15546 
15547  private boolean presolveUseBva_ = true;
15556  @java.lang.Override
15557  public boolean hasPresolveUseBva() {
15558  return ((bitField1_ & 0x08000000) != 0);
15559  }
15568  @java.lang.Override
15569  public boolean getPresolveUseBva() {
15570  return presolveUseBva_;
15571  }
15581  public Builder setPresolveUseBva(boolean value) {
15582  bitField1_ |= 0x08000000;
15583  presolveUseBva_ = value;
15584  onChanged();
15585  return this;
15586  }
15596  bitField1_ = (bitField1_ & ~0x08000000);
15597  presolveUseBva_ = true;
15598  onChanged();
15599  return this;
15600  }
15601 
15602  private int presolveBvaThreshold_ = 1;
15614  @java.lang.Override
15615  public boolean hasPresolveBvaThreshold() {
15616  return ((bitField1_ & 0x10000000) != 0);
15617  }
15629  @java.lang.Override
15631  return presolveBvaThreshold_;
15632  }
15645  public Builder setPresolveBvaThreshold(int value) {
15646  bitField1_ |= 0x10000000;
15647  presolveBvaThreshold_ = value;
15648  onChanged();
15649  return this;
15650  }
15663  bitField1_ = (bitField1_ & ~0x10000000);
15664  presolveBvaThreshold_ = 1;
15665  onChanged();
15666  return this;
15667  }
15668 
15669  private int maxPresolveIterations_ = 3;
15680  @java.lang.Override
15681  public boolean hasMaxPresolveIterations() {
15682  return ((bitField1_ & 0x20000000) != 0);
15683  }
15694  @java.lang.Override
15696  return maxPresolveIterations_;
15697  }
15709  public Builder setMaxPresolveIterations(int value) {
15710  bitField1_ |= 0x20000000;
15711  maxPresolveIterations_ = value;
15712  onChanged();
15713  return this;
15714  }
15726  bitField1_ = (bitField1_ & ~0x20000000);
15727  maxPresolveIterations_ = 3;
15728  onChanged();
15729  return this;
15730  }
15731 
15732  private boolean cpModelPresolve_ = true;
15741  @java.lang.Override
15742  public boolean hasCpModelPresolve() {
15743  return ((bitField1_ & 0x40000000) != 0);
15744  }
15753  @java.lang.Override
15754  public boolean getCpModelPresolve() {
15755  return cpModelPresolve_;
15756  }
15766  public Builder setCpModelPresolve(boolean value) {
15767  bitField1_ |= 0x40000000;
15768  cpModelPresolve_ = value;
15769  onChanged();
15770  return this;
15771  }
15781  bitField1_ = (bitField1_ & ~0x40000000);
15782  cpModelPresolve_ = true;
15783  onChanged();
15784  return this;
15785  }
15786 
15787  private boolean cpModelPostsolveWithFullSolver_ ;
15799  @java.lang.Override
15801  return ((bitField1_ & 0x80000000) != 0);
15802  }
15814  @java.lang.Override
15816  return cpModelPostsolveWithFullSolver_;
15817  }
15831  bitField1_ |= 0x80000000;
15832  cpModelPostsolveWithFullSolver_ = value;
15833  onChanged();
15834  return this;
15835  }
15848  bitField1_ = (bitField1_ & ~0x80000000);
15849  cpModelPostsolveWithFullSolver_ = false;
15850  onChanged();
15851  return this;
15852  }
15853 
15854  private int cpModelMaxNumPresolveOperations_ ;
15864  @java.lang.Override
15866  return ((bitField2_ & 0x00000001) != 0);
15867  }
15877  @java.lang.Override
15879  return cpModelMaxNumPresolveOperations_;
15880  }
15892  bitField2_ |= 0x00000001;
15893  cpModelMaxNumPresolveOperations_ = value;
15894  onChanged();
15895  return this;
15896  }
15907  bitField2_ = (bitField2_ & ~0x00000001);
15908  cpModelMaxNumPresolveOperations_ = 0;
15909  onChanged();
15910  return this;
15911  }
15912 
15913  private int cpModelProbingLevel_ = 2;
15922  @java.lang.Override
15923  public boolean hasCpModelProbingLevel() {
15924  return ((bitField2_ & 0x00000002) != 0);
15925  }
15934  @java.lang.Override
15935  public int getCpModelProbingLevel() {
15936  return cpModelProbingLevel_;
15937  }
15947  public Builder setCpModelProbingLevel(int value) {
15948  bitField2_ |= 0x00000002;
15949  cpModelProbingLevel_ = value;
15950  onChanged();
15951  return this;
15952  }
15962  bitField2_ = (bitField2_ & ~0x00000002);
15963  cpModelProbingLevel_ = 2;
15964  onChanged();
15965  return this;
15966  }
15967 
15968  private boolean cpModelUseSatPresolve_ = true;
15977  @java.lang.Override
15978  public boolean hasCpModelUseSatPresolve() {
15979  return ((bitField2_ & 0x00000004) != 0);
15980  }
15989  @java.lang.Override
15990  public boolean getCpModelUseSatPresolve() {
15991  return cpModelUseSatPresolve_;
15992  }
16002  public Builder setCpModelUseSatPresolve(boolean value) {
16003  bitField2_ |= 0x00000004;
16004  cpModelUseSatPresolve_ = value;
16005  onChanged();
16006  return this;
16007  }
16017  bitField2_ = (bitField2_ & ~0x00000004);
16018  cpModelUseSatPresolve_ = true;
16019  onChanged();
16020  return this;
16021  }
16022 
16023  private boolean useSatInprocessing_ ;
16028  @java.lang.Override
16029  public boolean hasUseSatInprocessing() {
16030  return ((bitField2_ & 0x00000008) != 0);
16031  }
16036  @java.lang.Override
16037  public boolean getUseSatInprocessing() {
16038  return useSatInprocessing_;
16039  }
16045  public Builder setUseSatInprocessing(boolean value) {
16046  bitField2_ |= 0x00000008;
16047  useSatInprocessing_ = value;
16048  onChanged();
16049  return this;
16050  }
16056  bitField2_ = (bitField2_ & ~0x00000008);
16057  useSatInprocessing_ = false;
16058  onChanged();
16059  return this;
16060  }
16061 
16062  private boolean expandElementConstraints_ = true;
16072  @java.lang.Override
16073  public boolean hasExpandElementConstraints() {
16074  return ((bitField2_ & 0x00000010) != 0);
16075  }
16085  @java.lang.Override
16086  public boolean getExpandElementConstraints() {
16087  return expandElementConstraints_;
16088  }
16099  public Builder setExpandElementConstraints(boolean value) {
16100  bitField2_ |= 0x00000010;
16101  expandElementConstraints_ = value;
16102  onChanged();
16103  return this;
16104  }
16115  bitField2_ = (bitField2_ & ~0x00000010);
16116  expandElementConstraints_ = true;
16117  onChanged();
16118  return this;
16119  }
16120 
16121  private boolean expandAutomatonConstraints_ = true;
16130  @java.lang.Override
16132  return ((bitField2_ & 0x00000020) != 0);
16133  }
16142  @java.lang.Override
16144  return expandAutomatonConstraints_;
16145  }
16155  public Builder setExpandAutomatonConstraints(boolean value) {
16156  bitField2_ |= 0x00000020;
16157  expandAutomatonConstraints_ = value;
16158  onChanged();
16159  return this;
16160  }
16170  bitField2_ = (bitField2_ & ~0x00000020);
16171  expandAutomatonConstraints_ = true;
16172  onChanged();
16173  return this;
16174  }
16175 
16176  private boolean expandTableConstraints_ = true;
16186  @java.lang.Override
16187  public boolean hasExpandTableConstraints() {
16188  return ((bitField2_ & 0x00000040) != 0);
16189  }
16199  @java.lang.Override
16200  public boolean getExpandTableConstraints() {
16201  return expandTableConstraints_;
16202  }
16213  public Builder setExpandTableConstraints(boolean value) {
16214  bitField2_ |= 0x00000040;
16215  expandTableConstraints_ = value;
16216  onChanged();
16217  return this;
16218  }
16229  bitField2_ = (bitField2_ & ~0x00000040);
16230  expandTableConstraints_ = true;
16231  onChanged();
16232  return this;
16233  }
16234 
16235  private boolean expandAlldiffConstraints_ ;
16245  @java.lang.Override
16246  public boolean hasExpandAlldiffConstraints() {
16247  return ((bitField2_ & 0x00000080) != 0);
16248  }
16258  @java.lang.Override
16259  public boolean getExpandAlldiffConstraints() {
16260  return expandAlldiffConstraints_;
16261  }
16272  public Builder setExpandAlldiffConstraints(boolean value) {
16273  bitField2_ |= 0x00000080;
16274  expandAlldiffConstraints_ = value;
16275  onChanged();
16276  return this;
16277  }
16288  bitField2_ = (bitField2_ & ~0x00000080);
16289  expandAlldiffConstraints_ = false;
16290  onChanged();
16291  return this;
16292  }
16293 
16294  private boolean expandReservoirConstraints_ = true;
16304  @java.lang.Override
16306  return ((bitField2_ & 0x00000100) != 0);
16307  }
16317  @java.lang.Override
16319  return expandReservoirConstraints_;
16320  }
16331  public Builder setExpandReservoirConstraints(boolean value) {
16332  bitField2_ |= 0x00000100;
16333  expandReservoirConstraints_ = value;
16334  onChanged();
16335  return this;
16336  }
16347  bitField2_ = (bitField2_ & ~0x00000100);
16348  expandReservoirConstraints_ = true;
16349  onChanged();
16350  return this;
16351  }
16352 
16353  private boolean disableConstraintExpansion_ ;
16363  @java.lang.Override
16365  return ((bitField2_ & 0x00000200) != 0);
16366  }
16376  @java.lang.Override
16378  return disableConstraintExpansion_;
16379  }
16390  public Builder setDisableConstraintExpansion(boolean value) {
16391  bitField2_ |= 0x00000200;
16392  disableConstraintExpansion_ = value;
16393  onChanged();
16394  return this;
16395  }
16406  bitField2_ = (bitField2_ & ~0x00000200);
16407  disableConstraintExpansion_ = false;
16408  onChanged();
16409  return this;
16410  }
16411 
16412  private double mergeNoOverlapWorkLimit_ = 1000000000000D;
16425  @java.lang.Override
16426  public boolean hasMergeNoOverlapWorkLimit() {
16427  return ((bitField2_ & 0x00000400) != 0);
16428  }
16441  @java.lang.Override
16442  public double getMergeNoOverlapWorkLimit() {
16443  return mergeNoOverlapWorkLimit_;
16444  }
16458  public Builder setMergeNoOverlapWorkLimit(double value) {
16459  bitField2_ |= 0x00000400;
16460  mergeNoOverlapWorkLimit_ = value;
16461  onChanged();
16462  return this;
16463  }
16477  bitField2_ = (bitField2_ & ~0x00000400);
16478  mergeNoOverlapWorkLimit_ = 1000000000000D;
16479  onChanged();
16480  return this;
16481  }
16482 
16483  private double mergeAtMostOneWorkLimit_ = 100000000D;
16488  @java.lang.Override
16489  public boolean hasMergeAtMostOneWorkLimit() {
16490  return ((bitField2_ & 0x00000800) != 0);
16491  }
16496  @java.lang.Override
16497  public double getMergeAtMostOneWorkLimit() {
16498  return mergeAtMostOneWorkLimit_;
16499  }
16505  public Builder setMergeAtMostOneWorkLimit(double value) {
16506  bitField2_ |= 0x00000800;
16507  mergeAtMostOneWorkLimit_ = value;
16508  onChanged();
16509  return this;
16510  }
16516  bitField2_ = (bitField2_ & ~0x00000800);
16517  mergeAtMostOneWorkLimit_ = 100000000D;
16518  onChanged();
16519  return this;
16520  }
16521 
16522  private int presolveSubstitutionLevel_ = 1;
16534  @java.lang.Override
16535  public boolean hasPresolveSubstitutionLevel() {
16536  return ((bitField2_ & 0x00001000) != 0);
16537  }
16549  @java.lang.Override
16551  return presolveSubstitutionLevel_;
16552  }
16566  bitField2_ |= 0x00001000;
16567  presolveSubstitutionLevel_ = value;
16568  onChanged();
16569  return this;
16570  }
16583  bitField2_ = (bitField2_ & ~0x00001000);
16584  presolveSubstitutionLevel_ = 1;
16585  onChanged();
16586  return this;
16587  }
16588 
16589  private boolean presolveExtractIntegerEnforcement_ ;
16603  @java.lang.Override
16605  return ((bitField2_ & 0x00002000) != 0);
16606  }
16620  @java.lang.Override
16622  return presolveExtractIntegerEnforcement_;
16623  }
16639  bitField2_ |= 0x00002000;
16640  presolveExtractIntegerEnforcement_ = value;
16641  onChanged();
16642  return this;
16643  }
16658  bitField2_ = (bitField2_ & ~0x00002000);
16659  presolveExtractIntegerEnforcement_ = false;
16660  onChanged();
16661  return this;
16662  }
16663 
16664  private boolean useOptimizationHints_ = true;
16676  @java.lang.Override
16677  public boolean hasUseOptimizationHints() {
16678  return ((bitField2_ & 0x00004000) != 0);
16679  }
16691  @java.lang.Override
16692  public boolean getUseOptimizationHints() {
16693  return useOptimizationHints_;
16694  }
16707  public Builder setUseOptimizationHints(boolean value) {
16708  bitField2_ |= 0x00004000;
16709  useOptimizationHints_ = value;
16710  onChanged();
16711  return this;
16712  }
16725  bitField2_ = (bitField2_ & ~0x00004000);
16726  useOptimizationHints_ = true;
16727  onChanged();
16728  return this;
16729  }
16730 
16731  private boolean minimizeCore_ = true;
16740  @java.lang.Override
16741  public boolean hasMinimizeCore() {
16742  return ((bitField2_ & 0x00008000) != 0);
16743  }
16752  @java.lang.Override
16753  public boolean getMinimizeCore() {
16754  return minimizeCore_;
16755  }
16765  public Builder setMinimizeCore(boolean value) {
16766  bitField2_ |= 0x00008000;
16767  minimizeCore_ = value;
16768  onChanged();
16769  return this;
16770  }
16780  bitField2_ = (bitField2_ & ~0x00008000);
16781  minimizeCore_ = true;
16782  onChanged();
16783  return this;
16784  }
16785 
16786  private boolean findMultipleCores_ = true;
16796  @java.lang.Override
16797  public boolean hasFindMultipleCores() {
16798  return ((bitField2_ & 0x00010000) != 0);
16799  }
16809  @java.lang.Override
16810  public boolean getFindMultipleCores() {
16811  return findMultipleCores_;
16812  }
16823  public Builder setFindMultipleCores(boolean value) {
16824  bitField2_ |= 0x00010000;
16825  findMultipleCores_ = value;
16826  onChanged();
16827  return this;
16828  }
16839  bitField2_ = (bitField2_ & ~0x00010000);
16840  findMultipleCores_ = true;
16841  onChanged();
16842  return this;
16843  }
16844 
16845  private boolean coverOptimization_ = true;
16855  @java.lang.Override
16856  public boolean hasCoverOptimization() {
16857  return ((bitField2_ & 0x00020000) != 0);
16858  }
16868  @java.lang.Override
16869  public boolean getCoverOptimization() {
16870  return coverOptimization_;
16871  }
16882  public Builder setCoverOptimization(boolean value) {
16883  bitField2_ |= 0x00020000;
16884  coverOptimization_ = value;
16885  onChanged();
16886  return this;
16887  }
16898  bitField2_ = (bitField2_ & ~0x00020000);
16899  coverOptimization_ = true;
16900  onChanged();
16901  return this;
16902  }
16903 
16904  private int maxSatAssumptionOrder_ = 0;
16909  @java.lang.Override public boolean hasMaxSatAssumptionOrder() {
16910  return ((bitField2_ & 0x00040000) != 0);
16911  }
16916  @java.lang.Override
16917  public com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder() {
16918  @SuppressWarnings("deprecation")
16919  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder result = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(maxSatAssumptionOrder_);
16920  return result == null ? com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.DEFAULT_ASSUMPTION_ORDER : result;
16921  }
16927  public Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value) {
16928  if (value == null) {
16929  throw new NullPointerException();
16930  }
16931  bitField2_ |= 0x00040000;
16932  maxSatAssumptionOrder_ = value.getNumber();
16933  onChanged();
16934  return this;
16935  }
16941  bitField2_ = (bitField2_ & ~0x00040000);
16942  maxSatAssumptionOrder_ = 0;
16943  onChanged();
16944  return this;
16945  }
16946 
16947  private boolean maxSatReverseAssumptionOrder_ ;
16957  @java.lang.Override
16959  return ((bitField2_ & 0x00080000) != 0);
16960  }
16970  @java.lang.Override
16972  return maxSatReverseAssumptionOrder_;
16973  }
16985  bitField2_ |= 0x00080000;
16986  maxSatReverseAssumptionOrder_ = value;
16987  onChanged();
16988  return this;
16989  }
17000  bitField2_ = (bitField2_ & ~0x00080000);
17001  maxSatReverseAssumptionOrder_ = false;
17002  onChanged();
17003  return this;
17004  }
17005 
17006  private int maxSatStratification_ = 1;
17011  @java.lang.Override public boolean hasMaxSatStratification() {
17012  return ((bitField2_ & 0x00100000) != 0);
17013  }
17018  @java.lang.Override
17019  public com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification() {
17020  @SuppressWarnings("deprecation")
17021  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm result = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(maxSatStratification_);
17022  return result == null ? com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.STRATIFICATION_DESCENT : result;
17023  }
17029  public Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value) {
17030  if (value == null) {
17031  throw new NullPointerException();
17032  }
17033  bitField2_ |= 0x00100000;
17034  maxSatStratification_ = value.getNumber();
17035  onChanged();
17036  return this;
17037  }
17043  bitField2_ = (bitField2_ & ~0x00100000);
17044  maxSatStratification_ = 1;
17045  onChanged();
17046  return this;
17047  }
17048 
17049  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
17065  @java.lang.Override
17067  return ((bitField2_ & 0x00200000) != 0);
17068  }
17084  @java.lang.Override
17086  return usePrecedencesInDisjunctiveConstraint_;
17087  }
17105  bitField2_ |= 0x00200000;
17106  usePrecedencesInDisjunctiveConstraint_ = value;
17107  onChanged();
17108  return this;
17109  }
17126  bitField2_ = (bitField2_ & ~0x00200000);
17127  usePrecedencesInDisjunctiveConstraint_ = true;
17128  onChanged();
17129  return this;
17130  }
17131 
17132  private boolean useOverloadCheckerInCumulativeConstraint_ ;
17146  @java.lang.Override
17148  return ((bitField2_ & 0x00400000) != 0);
17149  }
17163  @java.lang.Override
17165  return useOverloadCheckerInCumulativeConstraint_;
17166  }
17182  bitField2_ |= 0x00400000;
17183  useOverloadCheckerInCumulativeConstraint_ = value;
17184  onChanged();
17185  return this;
17186  }
17201  bitField2_ = (bitField2_ & ~0x00400000);
17202  useOverloadCheckerInCumulativeConstraint_ = false;
17203  onChanged();
17204  return this;
17205  }
17206 
17207  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
17221  @java.lang.Override
17223  return ((bitField2_ & 0x00800000) != 0);
17224  }
17238  @java.lang.Override
17240  return useTimetableEdgeFindingInCumulativeConstraint_;
17241  }
17257  bitField2_ |= 0x00800000;
17258  useTimetableEdgeFindingInCumulativeConstraint_ = value;
17259  onChanged();
17260  return this;
17261  }
17276  bitField2_ = (bitField2_ & ~0x00800000);
17277  useTimetableEdgeFindingInCumulativeConstraint_ = false;
17278  onChanged();
17279  return this;
17280  }
17281 
17282  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
17298  @java.lang.Override
17300  return ((bitField2_ & 0x01000000) != 0);
17301  }
17317  @java.lang.Override
17319  return useDisjunctiveConstraintInCumulativeConstraint_;
17320  }
17338  bitField2_ |= 0x01000000;
17339  useDisjunctiveConstraintInCumulativeConstraint_ = value;
17340  onChanged();
17341  return this;
17342  }
17359  bitField2_ = (bitField2_ & ~0x01000000);
17360  useDisjunctiveConstraintInCumulativeConstraint_ = true;
17361  onChanged();
17362  return this;
17363  }
17364 
17365  private int linearizationLevel_ = 1;
17377  @java.lang.Override
17378  public boolean hasLinearizationLevel() {
17379  return ((bitField2_ & 0x02000000) != 0);
17380  }
17392  @java.lang.Override
17393  public int getLinearizationLevel() {
17394  return linearizationLevel_;
17395  }
17408  public Builder setLinearizationLevel(int value) {
17409  bitField2_ |= 0x02000000;
17410  linearizationLevel_ = value;
17411  onChanged();
17412  return this;
17413  }
17426  bitField2_ = (bitField2_ & ~0x02000000);
17427  linearizationLevel_ = 1;
17428  onChanged();
17429  return this;
17430  }
17431 
17432  private int booleanEncodingLevel_ = 1;
17442  @java.lang.Override
17443  public boolean hasBooleanEncodingLevel() {
17444  return ((bitField2_ & 0x04000000) != 0);
17445  }
17455  @java.lang.Override
17457  return booleanEncodingLevel_;
17458  }
17469  public Builder setBooleanEncodingLevel(int value) {
17470  bitField2_ |= 0x04000000;
17471  booleanEncodingLevel_ = value;
17472  onChanged();
17473  return this;
17474  }
17485  bitField2_ = (bitField2_ & ~0x04000000);
17486  booleanEncodingLevel_ = 1;
17487  onChanged();
17488  return this;
17489  }
17490 
17491  private int maxNumCuts_ = 10000;
17503  @java.lang.Override
17504  public boolean hasMaxNumCuts() {
17505  return ((bitField2_ & 0x08000000) != 0);
17506  }
17518  @java.lang.Override
17519  public int getMaxNumCuts() {
17520  return maxNumCuts_;
17521  }
17534  public Builder setMaxNumCuts(int value) {
17535  bitField2_ |= 0x08000000;
17536  maxNumCuts_ = value;
17537  onChanged();
17538  return this;
17539  }
17552  bitField2_ = (bitField2_ & ~0x08000000);
17553  maxNumCuts_ = 10000;
17554  onChanged();
17555  return this;
17556  }
17557 
17558  private boolean onlyAddCutsAtLevelZero_ ;
17568  @java.lang.Override
17569  public boolean hasOnlyAddCutsAtLevelZero() {
17570  return ((bitField2_ & 0x10000000) != 0);
17571  }
17581  @java.lang.Override
17582  public boolean getOnlyAddCutsAtLevelZero() {
17583  return onlyAddCutsAtLevelZero_;
17584  }
17595  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
17596  bitField2_ |= 0x10000000;
17597  onlyAddCutsAtLevelZero_ = value;
17598  onChanged();
17599  return this;
17600  }
17611  bitField2_ = (bitField2_ & ~0x10000000);
17612  onlyAddCutsAtLevelZero_ = false;
17613  onChanged();
17614  return this;
17615  }
17616 
17617  private boolean addKnapsackCuts_ ;
17628  @java.lang.Override
17629  public boolean hasAddKnapsackCuts() {
17630  return ((bitField2_ & 0x20000000) != 0);
17631  }
17642  @java.lang.Override
17643  public boolean getAddKnapsackCuts() {
17644  return addKnapsackCuts_;
17645  }
17657  public Builder setAddKnapsackCuts(boolean value) {
17658  bitField2_ |= 0x20000000;
17659  addKnapsackCuts_ = value;
17660  onChanged();
17661  return this;
17662  }
17674  bitField2_ = (bitField2_ & ~0x20000000);
17675  addKnapsackCuts_ = false;
17676  onChanged();
17677  return this;
17678  }
17679 
17680  private boolean addCgCuts_ = true;
17690  @java.lang.Override
17691  public boolean hasAddCgCuts() {
17692  return ((bitField2_ & 0x40000000) != 0);
17693  }
17703  @java.lang.Override
17704  public boolean getAddCgCuts() {
17705  return addCgCuts_;
17706  }
17717  public Builder setAddCgCuts(boolean value) {
17718  bitField2_ |= 0x40000000;
17719  addCgCuts_ = value;
17720  onChanged();
17721  return this;
17722  }
17733  bitField2_ = (bitField2_ & ~0x40000000);
17734  addCgCuts_ = true;
17735  onChanged();
17736  return this;
17737  }
17738 
17739  private boolean addMirCuts_ = true;
17749  @java.lang.Override
17750  public boolean hasAddMirCuts() {
17751  return ((bitField2_ & 0x80000000) != 0);
17752  }
17762  @java.lang.Override
17763  public boolean getAddMirCuts() {
17764  return addMirCuts_;
17765  }
17776  public Builder setAddMirCuts(boolean value) {
17777  bitField2_ |= 0x80000000;
17778  addMirCuts_ = value;
17779  onChanged();
17780  return this;
17781  }
17792  bitField2_ = (bitField2_ & ~0x80000000);
17793  addMirCuts_ = true;
17794  onChanged();
17795  return this;
17796  }
17797 
17798  private boolean addZeroHalfCuts_ = true;
17808  @java.lang.Override
17809  public boolean hasAddZeroHalfCuts() {
17810  return ((bitField3_ & 0x00000001) != 0);
17811  }
17821  @java.lang.Override
17822  public boolean getAddZeroHalfCuts() {
17823  return addZeroHalfCuts_;
17824  }
17835  public Builder setAddZeroHalfCuts(boolean value) {
17836  bitField3_ |= 0x00000001;
17837  addZeroHalfCuts_ = value;
17838  onChanged();
17839  return this;
17840  }
17851  bitField3_ = (bitField3_ & ~0x00000001);
17852  addZeroHalfCuts_ = true;
17853  onChanged();
17854  return this;
17855  }
17856 
17857  private boolean addCliqueCuts_ = true;
17868  @java.lang.Override
17869  public boolean hasAddCliqueCuts() {
17870  return ((bitField3_ & 0x00000002) != 0);
17871  }
17882  @java.lang.Override
17883  public boolean getAddCliqueCuts() {
17884  return addCliqueCuts_;
17885  }
17897  public Builder setAddCliqueCuts(boolean value) {
17898  bitField3_ |= 0x00000002;
17899  addCliqueCuts_ = value;
17900  onChanged();
17901  return this;
17902  }
17914  bitField3_ = (bitField3_ & ~0x00000002);
17915  addCliqueCuts_ = true;
17916  onChanged();
17917  return this;
17918  }
17919 
17920  private int maxAllDiffCutSize_ = 7;
17931  @java.lang.Override
17932  public boolean hasMaxAllDiffCutSize() {
17933  return ((bitField3_ & 0x00000004) != 0);
17934  }
17945  @java.lang.Override
17946  public int getMaxAllDiffCutSize() {
17947  return maxAllDiffCutSize_;
17948  }
17960  public Builder setMaxAllDiffCutSize(int value) {
17961  bitField3_ |= 0x00000004;
17962  maxAllDiffCutSize_ = value;
17963  onChanged();
17964  return this;
17965  }
17977  bitField3_ = (bitField3_ & ~0x00000004);
17978  maxAllDiffCutSize_ = 7;
17979  onChanged();
17980  return this;
17981  }
17982 
17983  private boolean addLinMaxCuts_ = true;
17994  @java.lang.Override
17995  public boolean hasAddLinMaxCuts() {
17996  return ((bitField3_ & 0x00000008) != 0);
17997  }
18008  @java.lang.Override
18009  public boolean getAddLinMaxCuts() {
18010  return addLinMaxCuts_;
18011  }
18023  public Builder setAddLinMaxCuts(boolean value) {
18024  bitField3_ |= 0x00000008;
18025  addLinMaxCuts_ = value;
18026  onChanged();
18027  return this;
18028  }
18040  bitField3_ = (bitField3_ & ~0x00000008);
18041  addLinMaxCuts_ = true;
18042  onChanged();
18043  return this;
18044  }
18045 
18046  private int maxIntegerRoundingScaling_ = 600;
18061  @java.lang.Override
18062  public boolean hasMaxIntegerRoundingScaling() {
18063  return ((bitField3_ & 0x00000010) != 0);
18064  }
18079  @java.lang.Override
18081  return maxIntegerRoundingScaling_;
18082  }
18099  bitField3_ |= 0x00000010;
18100  maxIntegerRoundingScaling_ = value;
18101  onChanged();
18102  return this;
18103  }
18119  bitField3_ = (bitField3_ & ~0x00000010);
18120  maxIntegerRoundingScaling_ = 600;
18121  onChanged();
18122  return this;
18123  }
18124 
18125  private boolean addLpConstraintsLazily_ = true;
18137  @java.lang.Override
18138  public boolean hasAddLpConstraintsLazily() {
18139  return ((bitField3_ & 0x00000020) != 0);
18140  }
18152  @java.lang.Override
18153  public boolean getAddLpConstraintsLazily() {
18154  return addLpConstraintsLazily_;
18155  }
18168  public Builder setAddLpConstraintsLazily(boolean value) {
18169  bitField3_ |= 0x00000020;
18170  addLpConstraintsLazily_ = value;
18171  onChanged();
18172  return this;
18173  }
18186  bitField3_ = (bitField3_ & ~0x00000020);
18187  addLpConstraintsLazily_ = true;
18188  onChanged();
18189  return this;
18190  }
18191 
18192  private double minOrthogonalityForLpConstraints_ = 0.05D;
18205  @java.lang.Override
18207  return ((bitField3_ & 0x00000040) != 0);
18208  }
18221  @java.lang.Override
18223  return minOrthogonalityForLpConstraints_;
18224  }
18239  bitField3_ |= 0x00000040;
18240  minOrthogonalityForLpConstraints_ = value;
18241  onChanged();
18242  return this;
18243  }
18257  bitField3_ = (bitField3_ & ~0x00000040);
18258  minOrthogonalityForLpConstraints_ = 0.05D;
18259  onChanged();
18260  return this;
18261  }
18262 
18263  private int maxCutRoundsAtLevelZero_ = 1;
18272  @java.lang.Override
18273  public boolean hasMaxCutRoundsAtLevelZero() {
18274  return ((bitField3_ & 0x00000080) != 0);
18275  }
18284  @java.lang.Override
18286  return maxCutRoundsAtLevelZero_;
18287  }
18298  bitField3_ |= 0x00000080;
18299  maxCutRoundsAtLevelZero_ = value;
18300  onChanged();
18301  return this;
18302  }
18312  bitField3_ = (bitField3_ & ~0x00000080);
18313  maxCutRoundsAtLevelZero_ = 1;
18314  onChanged();
18315  return this;
18316  }
18317 
18318  private int maxConsecutiveInactiveCount_ = 100;
18329  @java.lang.Override
18331  return ((bitField3_ & 0x00000100) != 0);
18332  }
18343  @java.lang.Override
18345  return maxConsecutiveInactiveCount_;
18346  }
18359  bitField3_ |= 0x00000100;
18360  maxConsecutiveInactiveCount_ = value;
18361  onChanged();
18362  return this;
18363  }
18375  bitField3_ = (bitField3_ & ~0x00000100);
18376  maxConsecutiveInactiveCount_ = 100;
18377  onChanged();
18378  return this;
18379  }
18380 
18381  private double cutMaxActiveCountValue_ = 10000000000D;
18392  @java.lang.Override
18393  public boolean hasCutMaxActiveCountValue() {
18394  return ((bitField3_ & 0x00000200) != 0);
18395  }
18406  @java.lang.Override
18407  public double getCutMaxActiveCountValue() {
18408  return cutMaxActiveCountValue_;
18409  }
18421  public Builder setCutMaxActiveCountValue(double value) {
18422  bitField3_ |= 0x00000200;
18423  cutMaxActiveCountValue_ = value;
18424  onChanged();
18425  return this;
18426  }
18438  bitField3_ = (bitField3_ & ~0x00000200);
18439  cutMaxActiveCountValue_ = 10000000000D;
18440  onChanged();
18441  return this;
18442  }
18443 
18444  private double cutActiveCountDecay_ = 0.8D;
18449  @java.lang.Override
18450  public boolean hasCutActiveCountDecay() {
18451  return ((bitField3_ & 0x00000400) != 0);
18452  }
18457  @java.lang.Override
18458  public double getCutActiveCountDecay() {
18459  return cutActiveCountDecay_;
18460  }
18466  public Builder setCutActiveCountDecay(double value) {
18467  bitField3_ |= 0x00000400;
18468  cutActiveCountDecay_ = value;
18469  onChanged();
18470  return this;
18471  }
18477  bitField3_ = (bitField3_ & ~0x00000400);
18478  cutActiveCountDecay_ = 0.8D;
18479  onChanged();
18480  return this;
18481  }
18482 
18483  private int cutCleanupTarget_ = 1000;
18492  @java.lang.Override
18493  public boolean hasCutCleanupTarget() {
18494  return ((bitField3_ & 0x00000800) != 0);
18495  }
18504  @java.lang.Override
18505  public int getCutCleanupTarget() {
18506  return cutCleanupTarget_;
18507  }
18517  public Builder setCutCleanupTarget(int value) {
18518  bitField3_ |= 0x00000800;
18519  cutCleanupTarget_ = value;
18520  onChanged();
18521  return this;
18522  }
18532  bitField3_ = (bitField3_ & ~0x00000800);
18533  cutCleanupTarget_ = 1000;
18534  onChanged();
18535  return this;
18536  }
18537 
18538  private int newConstraintsBatchSize_ = 50;
18548  @java.lang.Override
18549  public boolean hasNewConstraintsBatchSize() {
18550  return ((bitField3_ & 0x00001000) != 0);
18551  }
18561  @java.lang.Override
18563  return newConstraintsBatchSize_;
18564  }
18576  bitField3_ |= 0x00001000;
18577  newConstraintsBatchSize_ = value;
18578  onChanged();
18579  return this;
18580  }
18591  bitField3_ = (bitField3_ & ~0x00001000);
18592  newConstraintsBatchSize_ = 50;
18593  onChanged();
18594  return this;
18595  }
18596 
18597  private int searchBranching_ = 0;
18602  @java.lang.Override public boolean hasSearchBranching() {
18603  return ((bitField3_ & 0x00002000) != 0);
18604  }
18609  @java.lang.Override
18610  public com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching() {
18611  @SuppressWarnings("deprecation")
18612  com.google.ortools.sat.SatParameters.SearchBranching result = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(searchBranching_);
18613  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
18614  }
18620  public Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value) {
18621  if (value == null) {
18622  throw new NullPointerException();
18623  }
18624  bitField3_ |= 0x00002000;
18625  searchBranching_ = value.getNumber();
18626  onChanged();
18627  return this;
18628  }
18634  bitField3_ = (bitField3_ & ~0x00002000);
18635  searchBranching_ = 0;
18636  onChanged();
18637  return this;
18638  }
18639 
18640  private int hintConflictLimit_ = 10;
18649  @java.lang.Override
18650  public boolean hasHintConflictLimit() {
18651  return ((bitField3_ & 0x00004000) != 0);
18652  }
18661  @java.lang.Override
18662  public int getHintConflictLimit() {
18663  return hintConflictLimit_;
18664  }
18674  public Builder setHintConflictLimit(int value) {
18675  bitField3_ |= 0x00004000;
18676  hintConflictLimit_ = value;
18677  onChanged();
18678  return this;
18679  }
18689  bitField3_ = (bitField3_ & ~0x00004000);
18690  hintConflictLimit_ = 10;
18691  onChanged();
18692  return this;
18693  }
18694 
18695  private boolean repairHint_ ;
18707  @java.lang.Override
18708  public boolean hasRepairHint() {
18709  return ((bitField3_ & 0x00008000) != 0);
18710  }
18722  @java.lang.Override
18723  public boolean getRepairHint() {
18724  return repairHint_;
18725  }
18738  public Builder setRepairHint(boolean value) {
18739  bitField3_ |= 0x00008000;
18740  repairHint_ = value;
18741  onChanged();
18742  return this;
18743  }
18756  bitField3_ = (bitField3_ & ~0x00008000);
18757  repairHint_ = false;
18758  onChanged();
18759  return this;
18760  }
18761 
18762  private boolean exploitIntegerLpSolution_ = true;
18774  @java.lang.Override
18775  public boolean hasExploitIntegerLpSolution() {
18776  return ((bitField3_ & 0x00010000) != 0);
18777  }
18789  @java.lang.Override
18790  public boolean getExploitIntegerLpSolution() {
18791  return exploitIntegerLpSolution_;
18792  }
18805  public Builder setExploitIntegerLpSolution(boolean value) {
18806  bitField3_ |= 0x00010000;
18807  exploitIntegerLpSolution_ = value;
18808  onChanged();
18809  return this;
18810  }
18823  bitField3_ = (bitField3_ & ~0x00010000);
18824  exploitIntegerLpSolution_ = true;
18825  onChanged();
18826  return this;
18827  }
18828 
18829  private boolean exploitAllLpSolution_ = true;
18840  @java.lang.Override
18841  public boolean hasExploitAllLpSolution() {
18842  return ((bitField3_ & 0x00020000) != 0);
18843  }
18854  @java.lang.Override
18855  public boolean getExploitAllLpSolution() {
18856  return exploitAllLpSolution_;
18857  }
18869  public Builder setExploitAllLpSolution(boolean value) {
18870  bitField3_ |= 0x00020000;
18871  exploitAllLpSolution_ = value;
18872  onChanged();
18873  return this;
18874  }
18886  bitField3_ = (bitField3_ & ~0x00020000);
18887  exploitAllLpSolution_ = true;
18888  onChanged();
18889  return this;
18890  }
18891 
18892  private boolean exploitBestSolution_ ;
18901  @java.lang.Override
18902  public boolean hasExploitBestSolution() {
18903  return ((bitField3_ & 0x00040000) != 0);
18904  }
18913  @java.lang.Override
18914  public boolean getExploitBestSolution() {
18915  return exploitBestSolution_;
18916  }
18926  public Builder setExploitBestSolution(boolean value) {
18927  bitField3_ |= 0x00040000;
18928  exploitBestSolution_ = value;
18929  onChanged();
18930  return this;
18931  }
18941  bitField3_ = (bitField3_ & ~0x00040000);
18942  exploitBestSolution_ = false;
18943  onChanged();
18944  return this;
18945  }
18946 
18947  private boolean exploitRelaxationSolution_ ;
18958  @java.lang.Override
18959  public boolean hasExploitRelaxationSolution() {
18960  return ((bitField3_ & 0x00080000) != 0);
18961  }
18972  @java.lang.Override
18973  public boolean getExploitRelaxationSolution() {
18974  return exploitRelaxationSolution_;
18975  }
18987  public Builder setExploitRelaxationSolution(boolean value) {
18988  bitField3_ |= 0x00080000;
18989  exploitRelaxationSolution_ = value;
18990  onChanged();
18991  return this;
18992  }
19004  bitField3_ = (bitField3_ & ~0x00080000);
19005  exploitRelaxationSolution_ = false;
19006  onChanged();
19007  return this;
19008  }
19009 
19010  private boolean exploitObjective_ = true;
19020  @java.lang.Override
19021  public boolean hasExploitObjective() {
19022  return ((bitField3_ & 0x00100000) != 0);
19023  }
19033  @java.lang.Override
19034  public boolean getExploitObjective() {
19035  return exploitObjective_;
19036  }
19047  public Builder setExploitObjective(boolean value) {
19048  bitField3_ |= 0x00100000;
19049  exploitObjective_ = value;
19050  onChanged();
19051  return this;
19052  }
19063  bitField3_ = (bitField3_ & ~0x00100000);
19064  exploitObjective_ = true;
19065  onChanged();
19066  return this;
19067  }
19068 
19069  private long probingPeriodAtRoot_ ;
19080  @java.lang.Override
19081  public boolean hasProbingPeriodAtRoot() {
19082  return ((bitField3_ & 0x00200000) != 0);
19083  }
19094  @java.lang.Override
19095  public long getProbingPeriodAtRoot() {
19096  return probingPeriodAtRoot_;
19097  }
19109  public Builder setProbingPeriodAtRoot(long value) {
19110  bitField3_ |= 0x00200000;
19111  probingPeriodAtRoot_ = value;
19112  onChanged();
19113  return this;
19114  }
19126  bitField3_ = (bitField3_ & ~0x00200000);
19127  probingPeriodAtRoot_ = 0L;
19128  onChanged();
19129  return this;
19130  }
19131 
19132  private boolean useProbingSearch_ ;
19142  @java.lang.Override
19143  public boolean hasUseProbingSearch() {
19144  return ((bitField3_ & 0x00400000) != 0);
19145  }
19155  @java.lang.Override
19156  public boolean getUseProbingSearch() {
19157  return useProbingSearch_;
19158  }
19169  public Builder setUseProbingSearch(boolean value) {
19170  bitField3_ |= 0x00400000;
19171  useProbingSearch_ = value;
19172  onChanged();
19173  return this;
19174  }
19185  bitField3_ = (bitField3_ & ~0x00400000);
19186  useProbingSearch_ = false;
19187  onChanged();
19188  return this;
19189  }
19190 
19191  private long pseudoCostReliabilityThreshold_ = 100L;
19201  @java.lang.Override
19203  return ((bitField3_ & 0x00800000) != 0);
19204  }
19214  @java.lang.Override
19216  return pseudoCostReliabilityThreshold_;
19217  }
19229  bitField3_ |= 0x00800000;
19230  pseudoCostReliabilityThreshold_ = value;
19231  onChanged();
19232  return this;
19233  }
19244  bitField3_ = (bitField3_ & ~0x00800000);
19245  pseudoCostReliabilityThreshold_ = 100L;
19246  onChanged();
19247  return this;
19248  }
19249 
19250  private boolean optimizeWithCore_ ;
19262  @java.lang.Override
19263  public boolean hasOptimizeWithCore() {
19264  return ((bitField3_ & 0x01000000) != 0);
19265  }
19277  @java.lang.Override
19278  public boolean getOptimizeWithCore() {
19279  return optimizeWithCore_;
19280  }
19293  public Builder setOptimizeWithCore(boolean value) {
19294  bitField3_ |= 0x01000000;
19295  optimizeWithCore_ = value;
19296  onChanged();
19297  return this;
19298  }
19311  bitField3_ = (bitField3_ & ~0x01000000);
19312  optimizeWithCore_ = false;
19313  onChanged();
19314  return this;
19315  }
19316 
19317  private int binarySearchNumConflicts_ = -1;
19329  @java.lang.Override
19330  public boolean hasBinarySearchNumConflicts() {
19331  return ((bitField3_ & 0x02000000) != 0);
19332  }
19344  @java.lang.Override
19346  return binarySearchNumConflicts_;
19347  }
19361  bitField3_ |= 0x02000000;
19362  binarySearchNumConflicts_ = value;
19363  onChanged();
19364  return this;
19365  }
19378  bitField3_ = (bitField3_ & ~0x02000000);
19379  binarySearchNumConflicts_ = -1;
19380  onChanged();
19381  return this;
19382  }
19383 
19384  private boolean optimizeWithMaxHs_ ;
19398  @java.lang.Override
19399  public boolean hasOptimizeWithMaxHs() {
19400  return ((bitField3_ & 0x04000000) != 0);
19401  }
19415  @java.lang.Override
19416  public boolean getOptimizeWithMaxHs() {
19417  return optimizeWithMaxHs_;
19418  }
19433  public Builder setOptimizeWithMaxHs(boolean value) {
19434  bitField3_ |= 0x04000000;
19435  optimizeWithMaxHs_ = value;
19436  onChanged();
19437  return this;
19438  }
19453  bitField3_ = (bitField3_ & ~0x04000000);
19454  optimizeWithMaxHs_ = false;
19455  onChanged();
19456  return this;
19457  }
19458 
19459  private boolean enumerateAllSolutions_ ;
19473  @java.lang.Override
19474  public boolean hasEnumerateAllSolutions() {
19475  return ((bitField3_ & 0x08000000) != 0);
19476  }
19490  @java.lang.Override
19491  public boolean getEnumerateAllSolutions() {
19492  return enumerateAllSolutions_;
19493  }
19508  public Builder setEnumerateAllSolutions(boolean value) {
19509  bitField3_ |= 0x08000000;
19510  enumerateAllSolutions_ = value;
19511  onChanged();
19512  return this;
19513  }
19528  bitField3_ = (bitField3_ & ~0x08000000);
19529  enumerateAllSolutions_ = false;
19530  onChanged();
19531  return this;
19532  }
19533 
19534  private boolean keepAllFeasibleSolutionsInPresolve_ ;
19549  @java.lang.Override
19551  return ((bitField3_ & 0x10000000) != 0);
19552  }
19567  @java.lang.Override
19569  return keepAllFeasibleSolutionsInPresolve_;
19570  }
19587  bitField3_ |= 0x10000000;
19588  keepAllFeasibleSolutionsInPresolve_ = value;
19589  onChanged();
19590  return this;
19591  }
19607  bitField3_ = (bitField3_ & ~0x10000000);
19608  keepAllFeasibleSolutionsInPresolve_ = false;
19609  onChanged();
19610  return this;
19611  }
19612 
19613  private boolean fillTightenedDomainsInResponse_ ;
19626  @java.lang.Override
19628  return ((bitField3_ & 0x20000000) != 0);
19629  }
19642  @java.lang.Override
19644  return fillTightenedDomainsInResponse_;
19645  }
19660  bitField3_ |= 0x20000000;
19661  fillTightenedDomainsInResponse_ = value;
19662  onChanged();
19663  return this;
19664  }
19678  bitField3_ = (bitField3_ & ~0x20000000);
19679  fillTightenedDomainsInResponse_ = false;
19680  onChanged();
19681  return this;
19682  }
19683 
19684  private boolean instantiateAllVariables_ = true;
19694  @java.lang.Override
19695  public boolean hasInstantiateAllVariables() {
19696  return ((bitField3_ & 0x40000000) != 0);
19697  }
19707  @java.lang.Override
19708  public boolean getInstantiateAllVariables() {
19709  return instantiateAllVariables_;
19710  }
19721  public Builder setInstantiateAllVariables(boolean value) {
19722  bitField3_ |= 0x40000000;
19723  instantiateAllVariables_ = value;
19724  onChanged();
19725  return this;
19726  }
19737  bitField3_ = (bitField3_ & ~0x40000000);
19738  instantiateAllVariables_ = true;
19739  onChanged();
19740  return this;
19741  }
19742 
19743  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
19755  @java.lang.Override
19757  return ((bitField3_ & 0x80000000) != 0);
19758  }
19770  @java.lang.Override
19772  return autoDetectGreaterThanAtLeastOneOf_;
19773  }
19787  bitField3_ |= 0x80000000;
19788  autoDetectGreaterThanAtLeastOneOf_ = value;
19789  onChanged();
19790  return this;
19791  }
19804  bitField3_ = (bitField3_ & ~0x80000000);
19805  autoDetectGreaterThanAtLeastOneOf_ = true;
19806  onChanged();
19807  return this;
19808  }
19809 
19810  private boolean stopAfterFirstSolution_ ;
19819  @java.lang.Override
19820  public boolean hasStopAfterFirstSolution() {
19821  return ((bitField4_ & 0x00000001) != 0);
19822  }
19831  @java.lang.Override
19832  public boolean getStopAfterFirstSolution() {
19833  return stopAfterFirstSolution_;
19834  }
19844  public Builder setStopAfterFirstSolution(boolean value) {
19845  bitField4_ |= 0x00000001;
19846  stopAfterFirstSolution_ = value;
19847  onChanged();
19848  return this;
19849  }
19859  bitField4_ = (bitField4_ & ~0x00000001);
19860  stopAfterFirstSolution_ = false;
19861  onChanged();
19862  return this;
19863  }
19864 
19865  private boolean stopAfterPresolve_ ;
19875  @java.lang.Override
19876  public boolean hasStopAfterPresolve() {
19877  return ((bitField4_ & 0x00000002) != 0);
19878  }
19888  @java.lang.Override
19889  public boolean getStopAfterPresolve() {
19890  return stopAfterPresolve_;
19891  }
19902  public Builder setStopAfterPresolve(boolean value) {
19903  bitField4_ |= 0x00000002;
19904  stopAfterPresolve_ = value;
19905  onChanged();
19906  return this;
19907  }
19918  bitField4_ = (bitField4_ & ~0x00000002);
19919  stopAfterPresolve_ = false;
19920  onChanged();
19921  return this;
19922  }
19923 
19924  private int numSearchWorkers_ = 1;
19938  @java.lang.Override
19939  public boolean hasNumSearchWorkers() {
19940  return ((bitField4_ & 0x00000004) != 0);
19941  }
19955  @java.lang.Override
19956  public int getNumSearchWorkers() {
19957  return numSearchWorkers_;
19958  }
19973  public Builder setNumSearchWorkers(int value) {
19974  bitField4_ |= 0x00000004;
19975  numSearchWorkers_ = value;
19976  onChanged();
19977  return this;
19978  }
19993  bitField4_ = (bitField4_ & ~0x00000004);
19994  numSearchWorkers_ = 1;
19995  onChanged();
19996  return this;
19997  }
19998 
19999  private boolean interleaveSearch_ ;
20012  @java.lang.Override
20013  public boolean hasInterleaveSearch() {
20014  return ((bitField4_ & 0x00000008) != 0);
20015  }
20028  @java.lang.Override
20029  public boolean getInterleaveSearch() {
20030  return interleaveSearch_;
20031  }
20045  public Builder setInterleaveSearch(boolean value) {
20046  bitField4_ |= 0x00000008;
20047  interleaveSearch_ = value;
20048  onChanged();
20049  return this;
20050  }
20064  bitField4_ = (bitField4_ & ~0x00000008);
20065  interleaveSearch_ = false;
20066  onChanged();
20067  return this;
20068  }
20069 
20070  private int interleaveBatchSize_ = 1;
20075  @java.lang.Override
20076  public boolean hasInterleaveBatchSize() {
20077  return ((bitField4_ & 0x00000010) != 0);
20078  }
20083  @java.lang.Override
20084  public int getInterleaveBatchSize() {
20085  return interleaveBatchSize_;
20086  }
20092  public Builder setInterleaveBatchSize(int value) {
20093  bitField4_ |= 0x00000010;
20094  interleaveBatchSize_ = value;
20095  onChanged();
20096  return this;
20097  }
20103  bitField4_ = (bitField4_ & ~0x00000010);
20104  interleaveBatchSize_ = 1;
20105  onChanged();
20106  return this;
20107  }
20108 
20109  private boolean reduceMemoryUsageInInterleaveMode_ ;
20118  @java.lang.Override
20120  return ((bitField4_ & 0x00000020) != 0);
20121  }
20130  @java.lang.Override
20132  return reduceMemoryUsageInInterleaveMode_;
20133  }
20144  bitField4_ |= 0x00000020;
20145  reduceMemoryUsageInInterleaveMode_ = value;
20146  onChanged();
20147  return this;
20148  }
20158  bitField4_ = (bitField4_ & ~0x00000020);
20159  reduceMemoryUsageInInterleaveMode_ = false;
20160  onChanged();
20161  return this;
20162  }
20163 
20164  private boolean shareObjectiveBounds_ = true;
20173  @java.lang.Override
20174  public boolean hasShareObjectiveBounds() {
20175  return ((bitField4_ & 0x00000040) != 0);
20176  }
20185  @java.lang.Override
20186  public boolean getShareObjectiveBounds() {
20187  return shareObjectiveBounds_;
20188  }
20198  public Builder setShareObjectiveBounds(boolean value) {
20199  bitField4_ |= 0x00000040;
20200  shareObjectiveBounds_ = value;
20201  onChanged();
20202  return this;
20203  }
20213  bitField4_ = (bitField4_ & ~0x00000040);
20214  shareObjectiveBounds_ = true;
20215  onChanged();
20216  return this;
20217  }
20218 
20219  private boolean shareLevelZeroBounds_ = true;
20228  @java.lang.Override
20229  public boolean hasShareLevelZeroBounds() {
20230  return ((bitField4_ & 0x00000080) != 0);
20231  }
20240  @java.lang.Override
20241  public boolean getShareLevelZeroBounds() {
20242  return shareLevelZeroBounds_;
20243  }
20253  public Builder setShareLevelZeroBounds(boolean value) {
20254  bitField4_ |= 0x00000080;
20255  shareLevelZeroBounds_ = value;
20256  onChanged();
20257  return this;
20258  }
20268  bitField4_ = (bitField4_ & ~0x00000080);
20269  shareLevelZeroBounds_ = true;
20270  onChanged();
20271  return this;
20272  }
20273 
20274  private boolean useLnsOnly_ ;
20283  @java.lang.Override
20284  public boolean hasUseLnsOnly() {
20285  return ((bitField4_ & 0x00000100) != 0);
20286  }
20295  @java.lang.Override
20296  public boolean getUseLnsOnly() {
20297  return useLnsOnly_;
20298  }
20308  public Builder setUseLnsOnly(boolean value) {
20309  bitField4_ |= 0x00000100;
20310  useLnsOnly_ = value;
20311  onChanged();
20312  return this;
20313  }
20323  bitField4_ = (bitField4_ & ~0x00000100);
20324  useLnsOnly_ = false;
20325  onChanged();
20326  return this;
20327  }
20328 
20329  private boolean lnsFocusOnDecisionVariables_ ;
20334  @java.lang.Override
20336  return ((bitField4_ & 0x00000200) != 0);
20337  }
20342  @java.lang.Override
20344  return lnsFocusOnDecisionVariables_;
20345  }
20351  public Builder setLnsFocusOnDecisionVariables(boolean value) {
20352  bitField4_ |= 0x00000200;
20353  lnsFocusOnDecisionVariables_ = value;
20354  onChanged();
20355  return this;
20356  }
20362  bitField4_ = (bitField4_ & ~0x00000200);
20363  lnsFocusOnDecisionVariables_ = false;
20364  onChanged();
20365  return this;
20366  }
20367 
20368  private boolean useRinsLns_ = true;
20377  @java.lang.Override
20378  public boolean hasUseRinsLns() {
20379  return ((bitField4_ & 0x00000400) != 0);
20380  }
20389  @java.lang.Override
20390  public boolean getUseRinsLns() {
20391  return useRinsLns_;
20392  }
20402  public Builder setUseRinsLns(boolean value) {
20403  bitField4_ |= 0x00000400;
20404  useRinsLns_ = value;
20405  onChanged();
20406  return this;
20407  }
20417  bitField4_ = (bitField4_ & ~0x00000400);
20418  useRinsLns_ = true;
20419  onChanged();
20420  return this;
20421  }
20422 
20423  private boolean useFeasibilityPump_ = true;
20432  @java.lang.Override
20433  public boolean hasUseFeasibilityPump() {
20434  return ((bitField4_ & 0x00000800) != 0);
20435  }
20444  @java.lang.Override
20445  public boolean getUseFeasibilityPump() {
20446  return useFeasibilityPump_;
20447  }
20457  public Builder setUseFeasibilityPump(boolean value) {
20458  bitField4_ |= 0x00000800;
20459  useFeasibilityPump_ = value;
20460  onChanged();
20461  return this;
20462  }
20472  bitField4_ = (bitField4_ & ~0x00000800);
20473  useFeasibilityPump_ = true;
20474  onChanged();
20475  return this;
20476  }
20477 
20478  private int fpRounding_ = 2;
20483  @java.lang.Override public boolean hasFpRounding() {
20484  return ((bitField4_ & 0x00001000) != 0);
20485  }
20490  @java.lang.Override
20491  public com.google.ortools.sat.SatParameters.FPRoundingMethod getFpRounding() {
20492  @SuppressWarnings("deprecation")
20493  com.google.ortools.sat.SatParameters.FPRoundingMethod result = com.google.ortools.sat.SatParameters.FPRoundingMethod.valueOf(fpRounding_);
20494  return result == null ? com.google.ortools.sat.SatParameters.FPRoundingMethod.PROPAGATION_ASSISTED : result;
20495  }
20501  public Builder setFpRounding(com.google.ortools.sat.SatParameters.FPRoundingMethod value) {
20502  if (value == null) {
20503  throw new NullPointerException();
20504  }
20505  bitField4_ |= 0x00001000;
20506  fpRounding_ = value.getNumber();
20507  onChanged();
20508  return this;
20509  }
20515  bitField4_ = (bitField4_ & ~0x00001000);
20516  fpRounding_ = 2;
20517  onChanged();
20518  return this;
20519  }
20520 
20521  private boolean useRelaxationLns_ ;
20531  @java.lang.Override
20532  public boolean hasUseRelaxationLns() {
20533  return ((bitField4_ & 0x00002000) != 0);
20534  }
20544  @java.lang.Override
20545  public boolean getUseRelaxationLns() {
20546  return useRelaxationLns_;
20547  }
20558  public Builder setUseRelaxationLns(boolean value) {
20559  bitField4_ |= 0x00002000;
20560  useRelaxationLns_ = value;
20561  onChanged();
20562  return this;
20563  }
20574  bitField4_ = (bitField4_ & ~0x00002000);
20575  useRelaxationLns_ = false;
20576  onChanged();
20577  return this;
20578  }
20579 
20580  private boolean diversifyLnsParams_ ;
20589  @java.lang.Override
20590  public boolean hasDiversifyLnsParams() {
20591  return ((bitField4_ & 0x00004000) != 0);
20592  }
20601  @java.lang.Override
20602  public boolean getDiversifyLnsParams() {
20603  return diversifyLnsParams_;
20604  }
20614  public Builder setDiversifyLnsParams(boolean value) {
20615  bitField4_ |= 0x00004000;
20616  diversifyLnsParams_ = value;
20617  onChanged();
20618  return this;
20619  }
20629  bitField4_ = (bitField4_ & ~0x00004000);
20630  diversifyLnsParams_ = false;
20631  onChanged();
20632  return this;
20633  }
20634 
20635  private boolean randomizeSearch_ ;
20644  @java.lang.Override
20645  public boolean hasRandomizeSearch() {
20646  return ((bitField4_ & 0x00008000) != 0);
20647  }
20656  @java.lang.Override
20657  public boolean getRandomizeSearch() {
20658  return randomizeSearch_;
20659  }
20669  public Builder setRandomizeSearch(boolean value) {
20670  bitField4_ |= 0x00008000;
20671  randomizeSearch_ = value;
20672  onChanged();
20673  return this;
20674  }
20684  bitField4_ = (bitField4_ & ~0x00008000);
20685  randomizeSearch_ = false;
20686  onChanged();
20687  return this;
20688  }
20689 
20690  private long searchRandomizationTolerance_ ;
20705  @java.lang.Override
20707  return ((bitField4_ & 0x00010000) != 0);
20708  }
20723  @java.lang.Override
20725  return searchRandomizationTolerance_;
20726  }
20743  bitField4_ |= 0x00010000;
20744  searchRandomizationTolerance_ = value;
20745  onChanged();
20746  return this;
20747  }
20763  bitField4_ = (bitField4_ & ~0x00010000);
20764  searchRandomizationTolerance_ = 0L;
20765  onChanged();
20766  return this;
20767  }
20768 
20769  private boolean useOptionalVariables_ = true;
20780  @java.lang.Override
20781  public boolean hasUseOptionalVariables() {
20782  return ((bitField4_ & 0x00020000) != 0);
20783  }
20794  @java.lang.Override
20795  public boolean getUseOptionalVariables() {
20796  return useOptionalVariables_;
20797  }
20809  public Builder setUseOptionalVariables(boolean value) {
20810  bitField4_ |= 0x00020000;
20811  useOptionalVariables_ = value;
20812  onChanged();
20813  return this;
20814  }
20826  bitField4_ = (bitField4_ & ~0x00020000);
20827  useOptionalVariables_ = true;
20828  onChanged();
20829  return this;
20830  }
20831 
20832  private boolean useExactLpReason_ = true;
20844  @java.lang.Override
20845  public boolean hasUseExactLpReason() {
20846  return ((bitField4_ & 0x00040000) != 0);
20847  }
20859  @java.lang.Override
20860  public boolean getUseExactLpReason() {
20861  return useExactLpReason_;
20862  }
20875  public Builder setUseExactLpReason(boolean value) {
20876  bitField4_ |= 0x00040000;
20877  useExactLpReason_ = value;
20878  onChanged();
20879  return this;
20880  }
20893  bitField4_ = (bitField4_ & ~0x00040000);
20894  useExactLpReason_ = true;
20895  onChanged();
20896  return this;
20897  }
20898 
20899  private boolean useBranchingInLp_ ;
20910  @java.lang.Override
20911  public boolean hasUseBranchingInLp() {
20912  return ((bitField4_ & 0x00080000) != 0);
20913  }
20924  @java.lang.Override
20925  public boolean getUseBranchingInLp() {
20926  return useBranchingInLp_;
20927  }
20939  public Builder setUseBranchingInLp(boolean value) {
20940  bitField4_ |= 0x00080000;
20941  useBranchingInLp_ = value;
20942  onChanged();
20943  return this;
20944  }
20956  bitField4_ = (bitField4_ & ~0x00080000);
20957  useBranchingInLp_ = false;
20958  onChanged();
20959  return this;
20960  }
20961 
20962  private boolean useCombinedNoOverlap_ ;
20973  @java.lang.Override
20974  public boolean hasUseCombinedNoOverlap() {
20975  return ((bitField4_ & 0x00100000) != 0);
20976  }
20987  @java.lang.Override
20988  public boolean getUseCombinedNoOverlap() {
20989  return useCombinedNoOverlap_;
20990  }
21002  public Builder setUseCombinedNoOverlap(boolean value) {
21003  bitField4_ |= 0x00100000;
21004  useCombinedNoOverlap_ = value;
21005  onChanged();
21006  return this;
21007  }
21019  bitField4_ = (bitField4_ & ~0x00100000);
21020  useCombinedNoOverlap_ = false;
21021  onChanged();
21022  return this;
21023  }
21024 
21025  private boolean catchSigintSignal_ = true;
21036  @java.lang.Override
21037  public boolean hasCatchSigintSignal() {
21038  return ((bitField4_ & 0x00200000) != 0);
21039  }
21050  @java.lang.Override
21051  public boolean getCatchSigintSignal() {
21052  return catchSigintSignal_;
21053  }
21065  public Builder setCatchSigintSignal(boolean value) {
21066  bitField4_ |= 0x00200000;
21067  catchSigintSignal_ = value;
21068  onChanged();
21069  return this;
21070  }
21082  bitField4_ = (bitField4_ & ~0x00200000);
21083  catchSigintSignal_ = true;
21084  onChanged();
21085  return this;
21086  }
21087 
21088  private boolean useImpliedBounds_ = true;
21099  @java.lang.Override
21100  public boolean hasUseImpliedBounds() {
21101  return ((bitField4_ & 0x00400000) != 0);
21102  }
21113  @java.lang.Override
21114  public boolean getUseImpliedBounds() {
21115  return useImpliedBounds_;
21116  }
21128  public Builder setUseImpliedBounds(boolean value) {
21129  bitField4_ |= 0x00400000;
21130  useImpliedBounds_ = value;
21131  onChanged();
21132  return this;
21133  }
21145  bitField4_ = (bitField4_ & ~0x00400000);
21146  useImpliedBounds_ = true;
21147  onChanged();
21148  return this;
21149  }
21150 
21151  private boolean polishLpSolution_ ;
21163  @java.lang.Override
21164  public boolean hasPolishLpSolution() {
21165  return ((bitField4_ & 0x00800000) != 0);
21166  }
21178  @java.lang.Override
21179  public boolean getPolishLpSolution() {
21180  return polishLpSolution_;
21181  }
21194  public Builder setPolishLpSolution(boolean value) {
21195  bitField4_ |= 0x00800000;
21196  polishLpSolution_ = value;
21197  onChanged();
21198  return this;
21199  }
21212  bitField4_ = (bitField4_ & ~0x00800000);
21213  polishLpSolution_ = false;
21214  onChanged();
21215  return this;
21216  }
21217 
21218  private boolean convertIntervals_ ;
21229  @java.lang.Override
21230  public boolean hasConvertIntervals() {
21231  return ((bitField4_ & 0x01000000) != 0);
21232  }
21243  @java.lang.Override
21244  public boolean getConvertIntervals() {
21245  return convertIntervals_;
21246  }
21258  public Builder setConvertIntervals(boolean value) {
21259  bitField4_ |= 0x01000000;
21260  convertIntervals_ = value;
21261  onChanged();
21262  return this;
21263  }
21275  bitField4_ = (bitField4_ & ~0x01000000);
21276  convertIntervals_ = false;
21277  onChanged();
21278  return this;
21279  }
21280 
21281  private boolean detectSymmetries_ ;
21291  @java.lang.Override
21292  public boolean hasDetectSymmetries() {
21293  return ((bitField4_ & 0x02000000) != 0);
21294  }
21304  @java.lang.Override
21305  public boolean getDetectSymmetries() {
21306  return detectSymmetries_;
21307  }
21318  public Builder setDetectSymmetries(boolean value) {
21319  bitField4_ |= 0x02000000;
21320  detectSymmetries_ = value;
21321  onChanged();
21322  return this;
21323  }
21334  bitField4_ = (bitField4_ & ~0x02000000);
21335  detectSymmetries_ = false;
21336  onChanged();
21337  return this;
21338  }
21339 
21340  private double mipMaxBound_ = 10000000D;
21351  @java.lang.Override
21352  public boolean hasMipMaxBound() {
21353  return ((bitField4_ & 0x04000000) != 0);
21354  }
21365  @java.lang.Override
21366  public double getMipMaxBound() {
21367  return mipMaxBound_;
21368  }
21380  public Builder setMipMaxBound(double value) {
21381  bitField4_ |= 0x04000000;
21382  mipMaxBound_ = value;
21383  onChanged();
21384  return this;
21385  }
21397  bitField4_ = (bitField4_ & ~0x04000000);
21398  mipMaxBound_ = 10000000D;
21399  onChanged();
21400  return this;
21401  }
21402 
21403  private double mipVarScaling_ = 1D;
21414  @java.lang.Override
21415  public boolean hasMipVarScaling() {
21416  return ((bitField4_ & 0x08000000) != 0);
21417  }
21428  @java.lang.Override
21429  public double getMipVarScaling() {
21430  return mipVarScaling_;
21431  }
21443  public Builder setMipVarScaling(double value) {
21444  bitField4_ |= 0x08000000;
21445  mipVarScaling_ = value;
21446  onChanged();
21447  return this;
21448  }
21460  bitField4_ = (bitField4_ & ~0x08000000);
21461  mipVarScaling_ = 1D;
21462  onChanged();
21463  return this;
21464  }
21465 
21466  private boolean mipAutomaticallyScaleVariables_ = true;
21479  @java.lang.Override
21481  return ((bitField4_ & 0x10000000) != 0);
21482  }
21495  @java.lang.Override
21497  return mipAutomaticallyScaleVariables_;
21498  }
21513  bitField4_ |= 0x10000000;
21514  mipAutomaticallyScaleVariables_ = value;
21515  onChanged();
21516  return this;
21517  }
21531  bitField4_ = (bitField4_ & ~0x10000000);
21532  mipAutomaticallyScaleVariables_ = true;
21533  onChanged();
21534  return this;
21535  }
21536 
21537  private double mipWantedPrecision_ = 1e-06D;
21555  @java.lang.Override
21556  public boolean hasMipWantedPrecision() {
21557  return ((bitField4_ & 0x20000000) != 0);
21558  }
21576  @java.lang.Override
21577  public double getMipWantedPrecision() {
21578  return mipWantedPrecision_;
21579  }
21598  public Builder setMipWantedPrecision(double value) {
21599  bitField4_ |= 0x20000000;
21600  mipWantedPrecision_ = value;
21601  onChanged();
21602  return this;
21603  }
21622  bitField4_ = (bitField4_ & ~0x20000000);
21623  mipWantedPrecision_ = 1e-06D;
21624  onChanged();
21625  return this;
21626  }
21627 
21628  private int mipMaxActivityExponent_ = 53;
21643  @java.lang.Override
21644  public boolean hasMipMaxActivityExponent() {
21645  return ((bitField4_ & 0x40000000) != 0);
21646  }
21661  @java.lang.Override
21663  return mipMaxActivityExponent_;
21664  }
21681  bitField4_ |= 0x40000000;
21682  mipMaxActivityExponent_ = value;
21683  onChanged();
21684  return this;
21685  }
21701  bitField4_ = (bitField4_ & ~0x40000000);
21702  mipMaxActivityExponent_ = 53;
21703  onChanged();
21704  return this;
21705  }
21706 
21707  private double mipCheckPrecision_ = 0.0001D;
21718  @java.lang.Override
21719  public boolean hasMipCheckPrecision() {
21720  return ((bitField4_ & 0x80000000) != 0);
21721  }
21732  @java.lang.Override
21733  public double getMipCheckPrecision() {
21734  return mipCheckPrecision_;
21735  }
21747  public Builder setMipCheckPrecision(double value) {
21748  bitField4_ |= 0x80000000;
21749  mipCheckPrecision_ = value;
21750  onChanged();
21751  return this;
21752  }
21764  bitField4_ = (bitField4_ & ~0x80000000);
21765  mipCheckPrecision_ = 0.0001D;
21766  onChanged();
21767  return this;
21768  }
21769  @java.lang.Override
21771  final com.google.protobuf.UnknownFieldSet unknownFields) {
21772  return super.setUnknownFields(unknownFields);
21773  }
21774 
21775  @java.lang.Override
21777  final com.google.protobuf.UnknownFieldSet unknownFields) {
21778  return super.mergeUnknownFields(unknownFields);
21779  }
21780 
21781 
21782  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
21783  }
21784 
21785  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
21786  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
21787  static {
21788  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
21789  }
21790 
21791  public static com.google.ortools.sat.SatParameters getDefaultInstance() {
21792  return DEFAULT_INSTANCE;
21793  }
21794 
21795  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
21796  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
21797  @java.lang.Override
21798  public SatParameters parsePartialFrom(
21799  com.google.protobuf.CodedInputStream input,
21800  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
21801  throws com.google.protobuf.InvalidProtocolBufferException {
21802  return new SatParameters(input, extensionRegistry);
21803  }
21804  };
21805 
21806  public static com.google.protobuf.Parser<SatParameters> parser() {
21807  return PARSER;
21808  }
21809 
21810  @java.lang.Override
21811  public com.google.protobuf.Parser<SatParameters> getParserForType() {
21812  return PARSER;
21813  }
21814 
21815  @java.lang.Override
21816  public com.google.ortools.sat.SatParameters getDefaultInstanceForType() {
21817  return DEFAULT_INSTANCE;
21818  }
21819 
21820 }
21821 
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
Builder setSubsumptionDuringConflictAnalysis(boolean value)
Builder setRelativeGapLimit(double value)
optional double relative_gap_limit = 160 [default = 0];
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
.lang.Override boolean getCountAssumptionLevelsInLbd()
Builder setRestartLbdAverageRatio(double value)
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Override boolean hasPresolveProbingDeterministicTimeLimit()
.lang.Override double getCutActiveCountDecay()
optional double cut_active_count_decay = 156 [default = 0.8];
.lang.Override boolean hasAlsoBumpVariablesInConflictReasons()
.lang.Override boolean getUseSatInprocessing()
optional bool use_sat_inprocessing = 163 [default = false];
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
.lang.Override boolean hasExpandAlldiffConstraints()
.lang.Override double getRelativeGapLimit()
optional double relative_gap_limit = 160 [default = 0];
Builder setBlockingRestartMultiplier(double value)
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Override double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Override boolean getUsePrecedencesInDisjunctiveConstraint()
.lang.Override boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder setLnsFocusOnDecisionVariables(boolean value)
optional bool lns_focus_on_decision_variables = 105 [default = false];
.lang.Override boolean hasExpandElementConstraints()
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
.lang.Override com.google.ortools.sat.SatParameters buildPartial()
Builder clearPermutePresolveConstraintOrder()
optional bool permute_presolve_constraint_order = 179 [default = false];
.lang.Override boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
.lang.Override boolean hasSearchRandomizationTolerance()
.lang.Override boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
.lang.Override boolean hasMaxConsecutiveInactiveCount()
.lang.Override boolean hasExpandAutomatonConstraints()
Builder clearUseSatInprocessing()
optional bool use_sat_inprocessing = 163 [default = false];
.lang.Override com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override boolean getMinimizeReductionDuringPbResolution()
.lang.Override double getStrategyChangeIncreaseRatio()
.lang.Override boolean getUseDisjunctiveConstraintInCumulativeConstraint()
.lang.Override boolean getDisableConstraintExpansion()
.lang.Override boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
.lang.Override boolean hasTreatBinaryClausesSeparately()
.lang.Override double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
Builder setGlucoseDecayIncrement(double value)
optional double glucose_decay_increment = 23 [default = 0.01];
.lang.Override boolean hasAutoDetectGreaterThanAtLeastOneOf()
.lang.Override boolean getPermutePresolveConstraintOrder()
optional bool permute_presolve_constraint_order = 179 [default = false];
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
.lang.Override boolean hasUsePrecedencesInDisjunctiveConstraint()
Builder setUseTimetableEdgeFindingInCumulativeConstraint(boolean value)
.lang.Override boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override int getInterleaveBatchSize()
optional int32 interleave_batch_size = 134 [default = 1];
.lang.Override boolean hasMaxIntegerRoundingScaling()
Builder clearSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
Builder clearBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
Builder setName(java.lang.String value)
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
Builder clearLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
.lang.Override boolean getUseTimetableEdgeFindingInCumulativeConstraint()
Builder setPermutePresolveConstraintOrder(boolean value)
optional bool permute_presolve_constraint_order = 179 [default = false];
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
.lang.Override boolean getUseOverloadCheckerInCumulativeConstraint()
.lang.Override boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder setMinimizeWithPropagationNumDecisions(int value)
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
Builder clearCutActiveCountDecay()
optional double cut_active_count_decay = 156 [default = 0.8];
.lang.Override boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
Builder setMergeAtMostOneWorkLimit(double value)
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
Builder setNameBytes(com.google.protobuf.ByteString value)
.lang.Override boolean getExpandAlldiffConstraints()
Builder clearMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
.lang.Override boolean hasExploitIntegerLpSolution()
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
.lang.Override boolean hasInterleaveBatchSize()
optional int32 interleave_batch_size = 134 [default = 1];
.lang.Override boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Override boolean hasMinimizeReductionDuringPbResolution()
.lang.Override boolean hasMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
.lang.Override boolean hasExploitRelaxationSolution()
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
.lang.Override boolean getSubsumptionDuringConflictAnalysis()
Builder clearMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
Builder setInterleaveBatchSize(int value)
optional int32 interleave_batch_size = 134 [default = 1];
.lang.Override com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
.lang.Override boolean hasUseOverloadCheckerInCumulativeConstraint()
.lang.Override boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
.lang.Override boolean hasPolarityRephaseIncrement()
Builder setFpRounding(com.google.ortools.sat.SatParameters.FPRoundingMethod value)
optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGA...
.lang.Override boolean hasBinarySearchNumConflicts()
.lang.Override boolean getExpandAutomatonConstraints()
.lang.Override boolean hasFillTightenedDomainsInResponse()
.lang.Override boolean hasUseTimetableEdgeFindingInCumulativeConstraint()
Builder setPbCleanupRatio(double value)
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override boolean getExpandReservoirConstraints()
.lang.Override boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder setUseSatInprocessing(boolean value)
optional bool use_sat_inprocessing = 163 [default = false];
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
Builder setBlockingRestartWindowSize(int value)
optional int32 blocking_restart_window_size = 65 [default = 5000];
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder clearClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
.lang.Override com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
Builder setUseOverloadCheckerInCumulativeConstraint(boolean value)
.lang.Override boolean hasPseudoCostReliabilityThreshold()
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override boolean hasRelativeGapLimit()
optional double relative_gap_limit = 160 [default = 0];
.lang.Override boolean hasInitialVariablesActivity()
Builder clearMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
Builder clearInterleaveBatchSize()
optional int32 interleave_batch_size = 134 [default = 1];
.lang.Override boolean hasPresolveExtractIntegerEnforcement()
.lang.Override boolean hasFpRounding()
optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGA...
Builder setUseDisjunctiveConstraintInCumulativeConstraint(boolean value)
.lang.Override boolean getCpModelPostsolveWithFullSolver()
.lang.Override boolean hasCpModelPostsolveWithFullSolver()
.lang.Override boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
.lang.Override double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Override boolean getMipAutomaticallyScaleVariables()
.lang.Override boolean hasCpModelMaxNumPresolveOperations()
.lang.Override boolean getExpandElementConstraints()
.lang.Override boolean getTreatBinaryClausesSeparately()
.lang.Override boolean getExploitRelaxationSolution()
.lang.Override boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
.lang.Override boolean hasUseAbslRandom()
optional bool use_absl_random = 180 [default = false];
Builder clearMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
.lang.Override Builder mergeFrom(com.google.protobuf.Message other)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
.lang.Override boolean hasKeepAllFeasibleSolutionsInPresolve()
.lang.Override boolean hasCountAssumptionLevelsInLbd()
.lang.Override com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder clearFpRounding()
optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGA...
Builder setGlucoseDecayIncrementPeriod(int value)
optional int32 glucose_decay_increment_period = 24 [default = 5000];
.lang.Override final boolean isInitialized()
.lang.Override double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder clearGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder setMinimizeReductionDuringPbResolution(boolean value)
.lang.Override double getPresolveProbingDeterministicTimeLimit()
.lang.Override boolean hasNumConflictsBeforeStrategyChanges()
.lang.Override boolean hasUseDisjunctiveConstraintInCumulativeConstraint()
.lang.Override double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Override double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
Builder clearPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override boolean hasDisableConstraintExpansion()
Builder clearMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
.lang.Override boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
.lang.Override com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder clearGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setUseAbslRandom(boolean value)
optional bool use_absl_random = 180 [default = false];
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
.lang.Override boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override boolean getPresolveExtractIntegerEnforcement()
Builder setMaxClauseActivityValue(double value)
optional double max_clause_activity_value = 18 [default = 1e+20];
Builder setFillTightenedDomainsInResponse(boolean value)
Builder clearClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setPresolveProbingDeterministicTimeLimit(double value)
.lang.Override boolean getKeepAllFeasibleSolutionsInPresolve()
.lang.Override boolean hasMinOrthogonalityForLpConstraints()
.lang.Override boolean hasMinimizeWithPropagationRestartPeriod()
Builder clearRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Override boolean getReduceMemoryUsageInInterleaveMode()
.lang.Override boolean hasPresolveSubstitutionLevel()
Builder clearBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
Builder clearDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder clearUseAbslRandom()
optional bool use_absl_random = 180 [default = false];
.lang.Override double getMinOrthogonalityForLpConstraints()
.lang.Override boolean hasRestartRunningWindowSize()
.lang.Override boolean hasExpandReservoirConstraints()
.lang.Override boolean hasStrategyChangeIncreaseRatio()
.lang.Override int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
.lang.Override int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
.lang.Override boolean getUseAbslRandom()
optional bool use_absl_random = 180 [default = false];
.lang.Override boolean getFillTightenedDomainsInResponse()
.lang.Override com.google.ortools.sat.SatParameters.FPRoundingMethod getFpRounding()
optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGA...
.lang.Override double getMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
Builder setKeepAllFeasibleSolutionsInPresolve(boolean value)
Builder clearInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
.lang.Override com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
Builder setCpModelPostsolveWithFullSolver(boolean value)
Builder clearPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
Builder setMaxVariableActivityValue(double value)
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
.lang.Override boolean getAlsoBumpVariablesInConflictReasons()
.lang.Override boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Override boolean hasReduceMemoryUsageInInterleaveMode()
.lang.Override boolean hasSubsumptionDuringConflictAnalysis()
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
.lang.Override com.google.ortools.sat.SatParameters build()
Builder clearMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
.lang.Override boolean hasUseSatInprocessing()
optional bool use_sat_inprocessing = 163 [default = false];
.lang.Override com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder setDefaultRestartAlgorithms(java.lang.String value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override boolean hasMaxSatReverseAssumptionOrder()
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
Builder setCutActiveCountDecay(double value)
optional double cut_active_count_decay = 156 [default = 0.8];
.lang.Override int getMinimizeWithPropagationRestartPeriod()
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder clearRelativeGapLimit()
optional double relative_gap_limit = 160 [default = 0];
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder setReduceMemoryUsageInInterleaveMode(boolean value)
com.google.protobuf.ByteString getNameBytes()
.lang.Override boolean getMaxSatReverseAssumptionOrder()
.lang.Override boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder clearMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
Builder setMipAutomaticallyScaleVariables(boolean value)
.lang.Override boolean getExploitIntegerLpSolution()
.lang.Override boolean hasPermutePresolveConstraintOrder()
optional bool permute_presolve_constraint_order = 179 [default = false];
.lang.Override boolean getAutoDetectGreaterThanAtLeastOneOf()
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
.lang.Override boolean hasMipAutomaticallyScaleVariables()
Builder setPresolveExtractIntegerEnforcement(boolean value)
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
.lang.Override boolean hasCutActiveCountDecay()
optional double cut_active_count_decay = 156 [default = 0.8];
.lang.Override int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder clearBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Override boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
.lang.Override com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Override com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER
static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER
static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER
.lang.Override int getNumConflictsBeforeStrategyChanges()
.lang.Override boolean hasExploitAllLpSolution()
.lang.Override boolean getCountAssumptionLevelsInLbd()
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
.lang.Override boolean hasMipCheckPrecision()
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
.lang.Override boolean hasRepairHint()
.lang.Override boolean hasPresolveProbingDeterministicTimeLimit()
.lang.Override boolean getAddCliqueCuts()
static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER
.lang.Override double getCutActiveCountDecay()
optional double cut_active_count_decay = 156 [default = 0.8];
.lang.Override boolean hasCatchSigintSignal()
.lang.Override boolean hasAlsoBumpVariablesInConflictReasons()
.lang.Override boolean hasUseProbingSearch()
.lang.Override boolean getUseSatInprocessing()
optional bool use_sat_inprocessing = 163 [default = false];
.lang.Override boolean hasRandomPolarityRatio()
static final int MIP_AUTOMATICALLY_SCALE_VARIABLES_FIELD_NUMBER
static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER
.lang.Override boolean getPresolveUseBva()
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
.lang.Override boolean hasExpandAlldiffConstraints()
.lang.Override double getRelativeGapLimit()
optional double relative_gap_limit = 160 [default = 0];
.lang.Override double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Override boolean getUsePrecedencesInDisjunctiveConstraint()
.lang.Override boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER
.lang.Override boolean hasExpandElementConstraints()
static final int PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override boolean hasPresolveBveClauseWeight()
.lang.Override boolean hasPresolveBlockedClause()
.lang.Override boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override boolean hasSearchRandomizationTolerance()
.lang.Override boolean hasAddLpConstraintsLazily()
.lang.Override boolean hasMipVarScaling()
.lang.Override boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
.lang.Override boolean hasMaxConsecutiveInactiveCount()
.lang.Override boolean hasExpandAutomatonConstraints()
.lang.Override boolean hasMaxDeterministicTime()
.lang.Override boolean hasFindMultipleCores()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override boolean hasUseCombinedNoOverlap()
.lang.Override boolean hasRandomSeed()
.lang.Override com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override boolean getMinimizeReductionDuringPbResolution()
.lang.Override int getCpModelProbingLevel()
.lang.Override double getRandomPolarityRatio()
.lang.Override double getStrategyChangeIncreaseRatio()
.lang.Override boolean hasCoverOptimization()
.lang.Override boolean getUseDisjunctiveConstraintInCumulativeConstraint()
.lang.Override boolean getDisableConstraintExpansion()
.lang.Override boolean getUseRelaxationLns()
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
.lang.Override boolean hasUseLnsOnly()
.lang.Override boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
.lang.Override boolean hasTreatBinaryClausesSeparately()
.lang.Override boolean hasRestartPeriod()
.lang.Override boolean hasExploitObjective()
.lang.Override boolean hasPermuteVariableRandomly()
.lang.Override com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
.lang.Override double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
.lang.Override boolean hasInstantiateAllVariables()
static final int MINIMIZE_WITH_PROPAGATION_RESTART_PERIOD_FIELD_NUMBER
.lang.Override boolean hasUseFeasibilityPump()
static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER
.lang.Override int getMipMaxActivityExponent()
.lang.Override boolean getEnumerateAllSolutions()
.lang.Override boolean hasAutoDetectGreaterThanAtLeastOneOf()
.lang.Override int getRestartAlgorithmsCount()
.lang.Override boolean hasCutCleanupTarget()
.lang.Override boolean getPermutePresolveConstraintOrder()
optional bool permute_presolve_constraint_order = 179 [default = false];
.lang.Override int getMaxPresolveIterations()
.lang.Override boolean hasRandomizeSearch()
.lang.Override boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override boolean hasExploitBestSolution()
static final int INTERLEAVE_BATCH_SIZE_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override boolean hasUsePrecedencesInDisjunctiveConstraint()
.lang.Override int getLinearizationLevel()
static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
.lang.Override boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
.lang.Override int getInterleaveBatchSize()
optional int32 interleave_batch_size = 134 [default = 1];
.lang.Override boolean hasMaxIntegerRoundingScaling()
.lang.Override boolean getUseRinsLns()
.lang.Override boolean hasClauseActivityDecay()
static final int MIP_WANTED_PRECISION_FIELD_NUMBER
.lang.Override boolean hasMipMaxActivityExponent()
.lang.Override boolean hasShareObjectiveBounds()
.lang.Override boolean getCpModelUseSatPresolve()
.lang.Override double getMipWantedPrecision()
.lang.Override boolean hasMaxPresolveIterations()
.lang.Override boolean hasMaxNumberOfConflicts()
.lang.Override boolean hasClauseCleanupTarget()
.lang.Override boolean hasAddMirCuts()
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
.lang.Override boolean getDetectSymmetries()
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
.lang.Override boolean getUseTimetableEdgeFindingInCumulativeConstraint()
.lang.Override boolean getMinimizeCore()
.lang.Override double getMergeNoOverlapWorkLimit()
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
.lang.Override boolean hasConvertIntervals()
.lang.Override boolean getUseOverloadCheckerInCumulativeConstraint()
.lang.Override boolean hasMergeNoOverlapWorkLimit()
.lang.Override boolean getLogSearchProgress()
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
.lang.Override boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
.lang.Override int getNewConstraintsBatchSize()
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
.lang.Override boolean hasPbCleanupIncrement()
.lang.Override boolean hasOptimizeWithMaxHs()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
.lang.Override boolean hasVariableActivityDecay()
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
.lang.Override boolean hasMipWantedPrecision()
.lang.Override boolean hasClauseCleanupLbdBound()
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
.lang.Override boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Override boolean getInstantiateAllVariables()
.lang.Override boolean getUseProbingSearch()
.lang.Override double getMaxDeterministicTime()
.lang.Override boolean getExpandAlldiffConstraints()
.lang.Override boolean hasExploitIntegerLpSolution()
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
.lang.Override boolean getShareLevelZeroBounds()
.lang.Override boolean hasInterleaveBatchSize()
optional int32 interleave_batch_size = 134 [default = 1];
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
.lang.Override boolean getOptimizeWithCore()
.lang.Override boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Override boolean hasClauseCleanupPeriod()
.lang.Override boolean hasMinimizeReductionDuringPbResolution()
.lang.Override boolean hasAddZeroHalfCuts()
static com.google.ortools.sat.SatParameters getDefaultInstance()
static final int EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER
.lang.Override boolean hasMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
.lang.Override boolean hasExploitRelaxationSolution()
.lang.Override boolean getSubsumptionDuringConflictAnalysis()
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override java.lang.String getName()
static final int PROBING_PERIOD_AT_ROOT_FIELD_NUMBER
.lang.Override boolean getShareObjectiveBounds()
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
.lang.Override boolean hasUsePbResolution()
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER
.lang.Override boolean hasUseOptionalVariables()
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
.lang.Override boolean hasUseOverloadCheckerInCumulativeConstraint()
.lang.Override boolean hasAddCliqueCuts()
.lang.Override boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
.lang.Override boolean hasPolarityRephaseIncrement()
.lang.Override boolean hasUseErwaHeuristic()
static final int PRESOLVE_EXTRACT_INTEGER_ENFORCEMENT_FIELD_NUMBER
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
.lang.Override int getPolarityRephaseIncrement()
.lang.Override boolean hasNewConstraintsBatchSize()
static final int MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER
static final int CUT_MAX_ACTIVE_COUNT_VALUE_FIELD_NUMBER
.lang.Override boolean getInterleaveSearch()
.lang.Override boolean hasOnlyAddCutsAtLevelZero()
.lang.Override double getRandomBranchesRatio()
.lang.Override boolean hasBinarySearchNumConflicts()
.lang.Override boolean getExpandAutomatonConstraints()
.lang.Override boolean hasShareLevelZeroBounds()
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
static final int PERMUTE_PRESOLVE_CONSTRAINT_ORDER_FIELD_NUMBER
.lang.Override boolean getOnlyAddCutsAtLevelZero()
.lang.Override boolean hasFillTightenedDomainsInResponse()
.lang.Override boolean getRepairHint()
.lang.Override boolean hasUseTimetableEdgeFindingInCumulativeConstraint()
static final int USE_SAT_INPROCESSING_FIELD_NUMBER
.lang.Override boolean getExpandReservoirConstraints()
.lang.Override boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
.lang.Override double getCutMaxActiveCountValue()
.lang.Override double getRestartDlAverageRatio()
static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER
static final int POLARITY_REPHASE_INCREMENT_FIELD_NUMBER
.lang.Override int getRestartRunningWindowSize()
.lang.Override boolean hasMaxAllDiffCutSize()
.lang.Override boolean hasMaxNumCuts()
static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER
.lang.Override boolean hasUsePhaseSaving()
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
.lang.Override boolean hasOptimizeWithCore()
.lang.Override boolean getExploitAllLpSolution()
.lang.Override boolean hasAddCgCuts()
.lang.Override long getPseudoCostReliabilityThreshold()
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
.lang.Override boolean getPermuteVariableRandomly()
.lang.Override double getMaxTimeInSeconds()
.lang.Override int getPresolveSubstitutionLevel()
.lang.Override com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
.lang.Override com.google.protobuf.Parser< SatParameters > getParserForType()
.lang.Override boolean hasPseudoCostReliabilityThreshold()
.lang.Override boolean getAddKnapsackCuts()
.lang.Override boolean hasCpModelProbingLevel()
.lang.Override boolean hasMaxMemoryInMb()
.lang.Override boolean hasRelativeGapLimit()
optional double relative_gap_limit = 160 [default = 0];
.lang.Override boolean getOptimizeWithMaxHs()
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
.lang.Override Builder newBuilderForType()
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
.lang.Override int getClauseCleanupTarget()
static final int CP_MODEL_POSTSOLVE_WITH_FULL_SOLVER_FIELD_NUMBER
.lang.Override boolean hasInitialVariablesActivity()
.lang.Override boolean hasMinimizeCore()
.lang.Override boolean hasEnumerateAllSolutions()
.lang.Override double getClauseActivityDecay()
static com.google.protobuf.Parser< SatParameters > parser()
.lang.Override boolean hasPresolveExtractIntegerEnforcement()
.lang.Override boolean hasFpRounding()
optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGA...
.lang.Override void writeTo(com.google.protobuf.CodedOutputStream output)
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
.lang.Override boolean getCpModelPostsolveWithFullSolver()
static final int KEEP_ALL_FEASIBLE_SOLUTIONS_IN_PRESOLVE_FIELD_NUMBER
.lang.Override boolean hasCpModelPostsolveWithFullSolver()
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
.lang.Override boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
.lang.Override double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Override boolean getUseBranchingInLp()
.lang.Override boolean getMipAutomaticallyScaleVariables()
.lang.Override java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
static final int USE_FEASIBILITY_PUMP_FIELD_NUMBER
.lang.Override boolean hasCpModelMaxNumPresolveOperations()
static final int EXPAND_ALLDIFF_CONSTRAINTS_FIELD_NUMBER
static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER
.lang.Override int getMaxConsecutiveInactiveCount()
.lang.Override boolean getExpandElementConstraints()
.lang.Override boolean getTreatBinaryClausesSeparately()
.lang.Override boolean getExploitRelaxationSolution()
.lang.Override double getMipVarScaling()
static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER
.lang.Override int getBooleanEncodingLevel()
.lang.Override boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
.lang.Override boolean getPolishLpSolution()
.lang.Override boolean hasUseAbslRandom()
optional bool use_absl_random = 180 [default = false];
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
.lang.Override boolean hasAbsoluteGapLimit()
.lang.Override int getCpModelMaxNumPresolveOperations()
.lang.Override long getProbingPeriodAtRoot()
.lang.Override boolean hasUseExactLpReason()
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
.lang.Override boolean hasKeepAllFeasibleSolutionsInPresolve()
.lang.Override boolean hasCountAssumptionLevelsInLbd()
.lang.Override com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
static final int CP_MODEL_MAX_NUM_PRESOLVE_OPERATIONS_FIELD_NUMBER
.lang.Override final boolean isInitialized()
.lang.Override boolean hasInterleaveSearch()
.lang.Override boolean getStopAfterFirstSolution()
.lang.Override double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override double getPresolveProbingDeterministicTimeLimit()
.lang.Override double getInitialVariablesActivity()
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
.lang.Override boolean hasNumConflictsBeforeStrategyChanges()
.lang.Override boolean getCatchSigintSignal()
.lang.Override boolean hasBooleanEncodingLevel()
.lang.Override boolean hasMaxTimeInSeconds()
.lang.Override boolean hasUseDisjunctiveConstraintInCumulativeConstraint()
.lang.Override boolean hasHintConflictLimit()
.lang.Override int getPresolveBvaThreshold()
.lang.Override double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
static final int CUT_ACTIVE_COUNT_DECAY_FIELD_NUMBER
.lang.Override boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Override boolean getExpandTableConstraints()
.lang.Override int getPresolveBveClauseWeight()
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
.lang.Override double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER
.lang.Override boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
.lang.Override double getMipCheckPrecision()
.lang.Override boolean hasPresolveUseBva()
.lang.Override boolean getUseOptimizationHints()
.lang.Override int getClauseCleanupPeriod()
.lang.Override long getSearchRandomizationTolerance()
.lang.Override boolean hasDisableConstraintExpansion()
.lang.Override boolean hasMaxCutRoundsAtLevelZero()
.lang.Override boolean hasGlucoseMaxDecay()
.lang.Override boolean hasUseImpliedBounds()
.lang.Override boolean hasCutMaxActiveCountValue()
.lang.Override boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
.lang.Override boolean hasAddKnapsackCuts()
.lang.Override boolean hasUseRelaxationLns()
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
.lang.Override boolean getUseCombinedNoOverlap()
.lang.Deprecated static final com.google.protobuf.Parser< SatParameters > PARSER
.lang.Override boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override boolean getPresolveExtractIntegerEnforcement()
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
.lang.Override boolean getKeepAllFeasibleSolutionsInPresolve()
.lang.Override double getGlucoseMaxDecay()
.lang.Override boolean hasMinOrthogonalityForLpConstraints()
.lang.Override boolean hasProbingPeriodAtRoot()
.lang.Override boolean hasCpModelUseSatPresolve()
.lang.Override boolean getConvertIntervals()
.lang.Override boolean hasRestartDlAverageRatio()
.lang.Override boolean hasMinimizeWithPropagationRestartPeriod()
.lang.Override boolean hasLinearizationLevel()
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
.lang.Override boolean getReduceMemoryUsageInInterleaveMode()
.lang.Override boolean hasPresolveSubstitutionLevel()
.lang.Override boolean getAddCgCuts()
.lang.Override boolean hasPresolveBvaThreshold()
.lang.Override boolean getExploitBestSolution()
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
.lang.Override com.google.protobuf.ByteString getNameBytes()
.lang.Override boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
.lang.Override double getMinOrthogonalityForLpConstraints()
.lang.Override boolean hasRestartRunningWindowSize()
.lang.Override boolean hasExpandReservoirConstraints()
static final int MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER
.lang.Override boolean hasStrategyChangeIncreaseRatio()
.lang.Override int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
.lang.Override boolean getDiversifyLnsParams()
.lang.Override boolean hasMipMaxBound()
static final int USE_BLOCKING_RESTART_FIELD_NUMBER
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
.lang.Override int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
.lang.Override boolean getUseAbslRandom()
optional bool use_absl_random = 180 [default = false];
.lang.Override boolean getFillTightenedDomainsInResponse()
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters.FPRoundingMethod getFpRounding()
optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGA...
static final int NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER
.lang.Override double getMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
.lang.Override boolean hasUseRinsLns()
.lang.Override boolean getExploitObjective()
static final int MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER
.lang.Override java.lang.Object newInstance(UnusedPrivateParameter unused)
.lang.Override boolean hasUseBlockingRestart()
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
.lang.Override boolean hasStopAfterFirstSolution()
static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER
static final int EXPAND_TABLE_CONSTRAINTS_FIELD_NUMBER
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
.lang.Override boolean hasPresolveBveThreshold()
.lang.Override com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
.lang.Override boolean getAlsoBumpVariablesInConflictReasons()
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
.lang.Override boolean getCpModelPresolve()
.lang.Override boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Override boolean getCoverOptimization()
.lang.Override boolean hasReduceMemoryUsageInInterleaveMode()
.lang.Override double getAbsoluteGapLimit()
.lang.Override boolean equals(final java.lang.Object obj)
.lang.Override boolean hasSubsumptionDuringConflictAnalysis()
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
.lang.Override int getPresolveBveThreshold()
.lang.Override boolean getUseImpliedBounds()
static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER
.lang.Override double getVariableActivityDecay()
.lang.Override boolean getUseLnsOnly()
.lang.Override int getPbCleanupIncrement()
.lang.Override boolean getPresolveBlockedClause()
static final int PERMUTE_VARIABLE_RANDOMLY_FIELD_NUMBER
.lang.Override boolean hasUseSatInprocessing()
optional bool use_sat_inprocessing = 163 [default = false];
static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER
.lang.Override boolean hasMaxSatReverseAssumptionOrder()
.lang.Override boolean hasStopAfterPresolve()
.lang.Override boolean hasDiversifyLnsParams()
.lang.Override int getClauseCleanupLbdBound()
static final int MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER
.lang.Override int getMinimizeWithPropagationRestartPeriod()
.lang.Override boolean hasCpModelPresolve()
.lang.Override boolean getFindMultipleCores()
.lang.Override int getMaxIntegerRoundingScaling()
.lang.Override boolean hasRandomBranchesRatio()
static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER
.lang.Override boolean hasPolishLpSolution()
.lang.Override boolean getUsePhaseSaving()
static final int MINIMIZE_WITH_PROPAGATION_NUM_DECISIONS_FIELD_NUMBER
.lang.Override boolean getAddLinMaxCuts()
static final int REDUCE_MEMORY_USAGE_IN_INTERLEAVE_MODE_FIELD_NUMBER
.lang.Override boolean getAddMirCuts()
.lang.Override boolean getMaxSatReverseAssumptionOrder()
.lang.Override long getMaxNumberOfConflicts()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
.lang.Override boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
.lang.Override boolean hasExpandTableConstraints()
.lang.Override boolean getUseOptionalVariables()
.lang.Override boolean getUsePbResolution()
.lang.Override boolean getExploitIntegerLpSolution()
.lang.Override boolean hasPermutePresolveConstraintOrder()
optional bool permute_presolve_constraint_order = 179 [default = false];
static final int EXPLOIT_RELAXATION_SOLUTION_FIELD_NUMBER
.lang.Override boolean getAddZeroHalfCuts()
.lang.Override boolean getAddLpConstraintsLazily()
.lang.Override boolean getUseErwaHeuristic()
.lang.Override boolean getAutoDetectGreaterThanAtLeastOneOf()
.lang.Override boolean hasUseOptimizationHints()
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
.lang.Override boolean hasMipAutomaticallyScaleVariables()
.lang.Override boolean hasLogSearchProgress()
.lang.Override boolean hasUseBranchingInLp()
.lang.Override boolean getRandomizeSearch()
.lang.Override boolean hasNumSearchWorkers()
.lang.Override boolean hasAddLinMaxCuts()
.lang.Override boolean getUseFeasibilityPump()
.lang.Override double getMipMaxBound()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
.lang.Override boolean hasCutActiveCountDecay()
optional double cut_active_count_decay = 156 [default = 0.8];
static final int DISABLE_CONSTRAINT_EXPANSION_FIELD_NUMBER
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
.lang.Override boolean getUseBlockingRestart()
.lang.Override int getBinarySearchNumConflicts()
.lang.Override int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
.lang.Override boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
.lang.Override boolean getUseExactLpReason()
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
.lang.Override int getMaxCutRoundsAtLevelZero()
.lang.Override boolean hasDetectSymmetries()
.lang.Override com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int MAX_CUT_ROUNDS_AT_LEVEL_ZERO_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER
static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
static final int EXPAND_RESERVOIR_CONSTRAINTS_FIELD_NUMBER
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
.lang.Override com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override boolean getStopAfterPresolve()
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4;
static BinaryMinizationAlgorithm forNumber(int value)
.lang.Deprecated static BinaryMinizationAlgorithm valueOf(int value)
BINARY_MINIMIZATION_WITH_REACHABILITY
BINARY_MINIMIZATION_WITH_REACHABILITY = 2;
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
EXPERIMENTAL_BINARY_MINIMIZATION
EXPERIMENTAL_BINARY_MINIMIZATION = 3;
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Deprecated static ClauseOrdering valueOf(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
.lang.Deprecated static ClauseProtection valueOf(int value)
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Deprecated static ConflictMinimizationAlgorithm valueOf(int value)
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
static ConflictMinimizationAlgorithm forNumber(int value)
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static FPRoundingMethod valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.protobuf.Internal.EnumLiteMap< FPRoundingMethod > internalGetValueMap()
.lang.Deprecated static FPRoundingMethod valueOf(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static MaxSatAssumptionOrder forNumber(int value)
.lang.Deprecated static MaxSatAssumptionOrder valueOf(int value)
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static MaxSatStratificationAlgorithm forNumber(int value)
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
.lang.Deprecated static MaxSatStratificationAlgorithm valueOf(int value)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Deprecated static Polarity valueOf(int value)
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
.lang.Deprecated static RestartAlgorithm valueOf(int value)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Deprecated static SearchBranching valueOf(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Deprecated static VariableOrder valueOf(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()