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  preferredVariableOrder_ = 0;
26  initialPolarity_ = 1;
27  usePhaseSaving_ = true;
28  minimizationAlgorithm_ = 2;
29  binaryMinimizationAlgorithm_ = 1;
30  subsumptionDuringConflictAnalysis_ = true;
31  clauseCleanupPeriod_ = 10000;
32  clauseCleanupTarget_ = 10000;
33  clauseCleanupProtection_ = 0;
34  clauseCleanupLbdBound_ = 5;
35  clauseCleanupOrdering_ = 0;
36  pbCleanupIncrement_ = 200;
37  pbCleanupRatio_ = 0.5D;
38  minimizeWithPropagationRestartPeriod_ = 10;
39  minimizeWithPropagationNumDecisions_ = 1000;
40  variableActivityDecay_ = 0.8D;
41  maxVariableActivityValue_ = 1e+100D;
42  glucoseMaxDecay_ = 0.95D;
43  glucoseDecayIncrement_ = 0.01D;
44  glucoseDecayIncrementPeriod_ = 5000;
45  clauseActivityDecay_ = 0.999D;
46  maxClauseActivityValue_ = 1e+20D;
47  restartAlgorithms_ = java.util.Collections.emptyList();
48  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
49  restartPeriod_ = 50;
50  restartRunningWindowSize_ = 50;
51  restartDlAverageRatio_ = 1D;
52  restartLbdAverageRatio_ = 1D;
53  blockingRestartWindowSize_ = 5000;
54  blockingRestartMultiplier_ = 1.4D;
55  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
56  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
57  maxNumberOfConflicts_ = 9223372036854775807L;
58  maxMemoryInMb_ = 10000L;
59  treatBinaryClausesSeparately_ = true;
60  randomSeed_ = 1;
61  countAssumptionLevelsInLbd_ = true;
62  presolveBveThreshold_ = 500;
63  presolveBveClauseWeight_ = 3;
64  presolveProbingDeterministicTimeLimit_ = 30D;
65  presolveBlockedClause_ = true;
66  presolveUseBva_ = true;
67  presolveBvaThreshold_ = 1;
68  maxPresolveIterations_ = 3;
69  cpModelPresolve_ = true;
70  cpModelProbingLevel_ = 2;
71  cpModelUseSatPresolve_ = true;
72  expandElementConstraints_ = true;
73  expandAutomatonConstraints_ = true;
74  expandTableConstraints_ = true;
75  mergeNoOverlapWorkLimit_ = 1000000000000D;
76  mergeAtMostOneWorkLimit_ = 100000000D;
77  presolveSubstitutionLevel_ = 1;
78  useOptimizationHints_ = true;
79  minimizeCore_ = true;
80  findMultipleCores_ = true;
81  coverOptimization_ = true;
82  maxSatAssumptionOrder_ = 0;
83  maxSatStratification_ = 1;
84  usePrecedencesInDisjunctiveConstraint_ = true;
85  useDisjunctiveConstraintInCumulativeConstraint_ = true;
86  linearizationLevel_ = 1;
87  booleanEncodingLevel_ = 1;
88  maxNumCuts_ = 10000;
89  addCgCuts_ = true;
90  addMirCuts_ = true;
91  maxAllDiffCutSize_ = 7;
92  addLinMaxCuts_ = true;
93  maxIntegerRoundingScaling_ = 600;
94  addLpConstraintsLazily_ = true;
95  minOrthogonalityForLpConstraints_ = 0.05D;
96  maxCutRoundsAtLevelZero_ = 1;
97  maxConsecutiveInactiveCount_ = 100;
98  cutMaxActiveCountValue_ = 10000000000D;
99  cutActiveCountDecay_ = 0.8D;
100  cutCleanupTarget_ = 1000;
101  newConstraintsBatchSize_ = 50;
102  searchBranching_ = 0;
103  hintConflictLimit_ = 10;
104  exploitIntegerLpSolution_ = true;
105  exploitAllLpSolution_ = true;
106  exploitObjective_ = true;
107  pseudoCostReliabilityThreshold_ = 100L;
108  binarySearchNumConflicts_ = -1;
109  instantiateAllVariables_ = true;
110  autoDetectGreaterThanAtLeastOneOf_ = true;
111  numSearchWorkers_ = 1;
112  interleaveBatchSize_ = 1;
113  shareObjectiveBounds_ = true;
114  shareLevelZeroBounds_ = true;
115  useRinsLns_ = true;
116  useFeasibilityPump_ = true;
117  fpRounding_ = 2;
118  useOptionalVariables_ = true;
119  useExactLpReason_ = true;
120  catchSigintSignal_ = true;
121  useImpliedBounds_ = true;
122  mipMaxBound_ = 10000000D;
123  mipVarScaling_ = 1D;
124  mipAutomaticallyScaleVariables_ = true;
125  mipWantedPrecision_ = 1e-06D;
126  mipMaxActivityExponent_ = 53;
127  mipCheckPrecision_ = 0.0001D;
128  }
129 
130  @java.lang.Override
131  @SuppressWarnings({"unused"})
132  protected java.lang.Object newInstance(
133  UnusedPrivateParameter unused) {
134  return new SatParameters();
135  }
136 
137  @java.lang.Override
138  public final com.google.protobuf.UnknownFieldSet
140  return this.unknownFields;
141  }
142  private SatParameters(
143  com.google.protobuf.CodedInputStream input,
144  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
145  throws com.google.protobuf.InvalidProtocolBufferException {
146  this();
147  if (extensionRegistry == null) {
148  throw new java.lang.NullPointerException();
149  }
150  int mutable_bitField0_ = 0;
151  int mutable_bitField1_ = 0;
152  int mutable_bitField2_ = 0;
153  int mutable_bitField3_ = 0;
154  int mutable_bitField4_ = 0;
155  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
156  com.google.protobuf.UnknownFieldSet.newBuilder();
157  try {
158  boolean done = false;
159  while (!done) {
160  int tag = input.readTag();
161  switch (tag) {
162  case 0:
163  done = true;
164  break;
165  case 8: {
166  int rawValue = input.readEnum();
167  @SuppressWarnings("deprecation")
168  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
169  if (value == null) {
170  unknownFields.mergeVarintField(1, rawValue);
171  } else {
172  bitField0_ |= 0x00000001;
173  preferredVariableOrder_ = rawValue;
174  }
175  break;
176  }
177  case 16: {
178  int rawValue = input.readEnum();
179  @SuppressWarnings("deprecation")
180  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
181  if (value == null) {
182  unknownFields.mergeVarintField(2, rawValue);
183  } else {
184  bitField0_ |= 0x00000002;
185  initialPolarity_ = rawValue;
186  }
187  break;
188  }
189  case 32: {
190  int rawValue = input.readEnum();
191  @SuppressWarnings("deprecation")
192  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
193  if (value == null) {
194  unknownFields.mergeVarintField(4, rawValue);
195  } else {
196  bitField0_ |= 0x00000100;
197  minimizationAlgorithm_ = rawValue;
198  }
199  break;
200  }
201  case 88: {
202  bitField0_ |= 0x00000800;
203  clauseCleanupPeriod_ = input.readInt32();
204  break;
205  }
206  case 104: {
207  bitField0_ |= 0x00001000;
208  clauseCleanupTarget_ = input.readInt32();
209  break;
210  }
211  case 121: {
212  bitField0_ |= 0x00100000;
213  variableActivityDecay_ = input.readDouble();
214  break;
215  }
216  case 129: {
217  bitField0_ |= 0x00200000;
218  maxVariableActivityValue_ = input.readDouble();
219  break;
220  }
221  case 137: {
222  bitField0_ |= 0x02000000;
223  clauseActivityDecay_ = input.readDouble();
224  break;
225  }
226  case 145: {
227  bitField0_ |= 0x04000000;
228  maxClauseActivityValue_ = input.readDouble();
229  break;
230  }
231  case 177: {
232  bitField0_ |= 0x00400000;
233  glucoseMaxDecay_ = input.readDouble();
234  break;
235  }
236  case 185: {
237  bitField0_ |= 0x00800000;
238  glucoseDecayIncrement_ = input.readDouble();
239  break;
240  }
241  case 192: {
242  bitField0_ |= 0x01000000;
243  glucoseDecayIncrementPeriod_ = input.readInt32();
244  break;
245  }
246  case 240: {
247  bitField0_ |= 0x10000000;
248  restartPeriod_ = input.readInt32();
249  break;
250  }
251  case 248: {
252  bitField1_ |= 0x00001000;
253  randomSeed_ = input.readInt32();
254  break;
255  }
256  case 257: {
257  bitField0_ |= 0x00000010;
258  randomBranchesRatio_ = input.readDouble();
259  break;
260  }
261  case 264: {
262  bitField1_ |= 0x00000800;
263  treatBinaryClausesSeparately_ = input.readBool();
264  break;
265  }
266  case 272: {
267  int rawValue = input.readEnum();
268  @SuppressWarnings("deprecation")
269  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
270  if (value == null) {
271  unknownFields.mergeVarintField(34, rawValue);
272  } else {
273  bitField0_ |= 0x00000200;
274  binaryMinimizationAlgorithm_ = rawValue;
275  }
276  break;
277  }
278  case 280: {
279  bitField2_ |= 0x00000010;
280  useOptimizationHints_ = input.readBool();
281  break;
282  }
283  case 289: {
284  bitField1_ |= 0x00000020;
285  maxTimeInSeconds_ = input.readDouble();
286  break;
287  }
288  case 296: {
289  bitField1_ |= 0x00000080;
290  maxNumberOfConflicts_ = input.readInt64();
291  break;
292  }
293  case 320: {
294  bitField1_ |= 0x00000100;
295  maxMemoryInMb_ = input.readInt64();
296  break;
297  }
298  case 328: {
299  bitField1_ |= 0x00002000;
300  logSearchProgress_ = input.readBool();
301  break;
302  }
303  case 344: {
304  bitField1_ |= 0x00004000;
305  usePbResolution_ = input.readBool();
306  break;
307  }
308  case 352: {
309  bitField0_ |= 0x00000004;
310  usePhaseSaving_ = input.readBool();
311  break;
312  }
313  case 361: {
314  bitField0_ |= 0x00000008;
315  randomPolarityRatio_ = input.readDouble();
316  break;
317  }
318  case 368: {
319  bitField0_ |= 0x00010000;
320  pbCleanupIncrement_ = input.readInt32();
321  break;
322  }
323  case 377: {
324  bitField0_ |= 0x00020000;
325  pbCleanupRatio_ = input.readDouble();
326  break;
327  }
328  case 384: {
329  bitField1_ |= 0x00008000;
330  minimizeReductionDuringPbResolution_ = input.readBool();
331  break;
332  }
333  case 392: {
334  bitField1_ |= 0x00010000;
335  countAssumptionLevelsInLbd_ = input.readBool();
336  break;
337  }
338  case 400: {
339  bitField2_ |= 0x00000020;
340  minimizeCore_ = input.readBool();
341  break;
342  }
343  case 408: {
344  int rawValue = input.readEnum();
345  @SuppressWarnings("deprecation")
346  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
347  if (value == null) {
348  unknownFields.mergeVarintField(51, rawValue);
349  } else {
350  bitField2_ |= 0x00000100;
351  maxSatAssumptionOrder_ = rawValue;
352  }
353  break;
354  }
355  case 416: {
356  bitField2_ |= 0x00000200;
357  maxSatReverseAssumptionOrder_ = input.readBool();
358  break;
359  }
360  case 424: {
361  int rawValue = input.readEnum();
362  @SuppressWarnings("deprecation")
363  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
364  if (value == null) {
365  unknownFields.mergeVarintField(53, rawValue);
366  } else {
367  bitField2_ |= 0x00000400;
368  maxSatStratification_ = rawValue;
369  }
370  break;
371  }
372  case 432: {
373  bitField1_ |= 0x00020000;
374  presolveBveThreshold_ = input.readInt32();
375  break;
376  }
377  case 440: {
378  bitField1_ |= 0x00040000;
379  presolveBveClauseWeight_ = input.readInt32();
380  break;
381  }
382  case 448: {
383  bitField0_ |= 0x00000400;
384  subsumptionDuringConflictAnalysis_ = input.readBool();
385  break;
386  }
387  case 457: {
388  bitField1_ |= 0x00080000;
389  presolveProbingDeterministicTimeLimit_ = input.readDouble();
390  break;
391  }
392  case 464: {
393  int rawValue = input.readEnum();
394  @SuppressWarnings("deprecation")
395  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
396  if (value == null) {
397  unknownFields.mergeVarintField(58, rawValue);
398  } else {
399  bitField0_ |= 0x00002000;
400  clauseCleanupProtection_ = rawValue;
401  }
402  break;
403  }
404  case 472: {
405  bitField0_ |= 0x00004000;
406  clauseCleanupLbdBound_ = input.readInt32();
407  break;
408  }
409  case 480: {
410  int rawValue = input.readEnum();
411  @SuppressWarnings("deprecation")
412  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
413  if (value == null) {
414  unknownFields.mergeVarintField(60, rawValue);
415  } else {
416  bitField0_ |= 0x00008000;
417  clauseCleanupOrdering_ = rawValue;
418  }
419  break;
420  }
421  case 488: {
422  int rawValue = input.readEnum();
423  @SuppressWarnings("deprecation")
424  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
425  if (value == null) {
426  unknownFields.mergeVarintField(61, rawValue);
427  } else {
428  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
429  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
430  mutable_bitField0_ |= 0x08000000;
431  }
432  restartAlgorithms_.add(rawValue);
433  }
434  break;
435  }
436  case 490: {
437  int length = input.readRawVarint32();
438  int oldLimit = input.pushLimit(length);
439  while(input.getBytesUntilLimit() > 0) {
440  int rawValue = input.readEnum();
441  @SuppressWarnings("deprecation")
442  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
443  if (value == null) {
444  unknownFields.mergeVarintField(61, rawValue);
445  } else {
446  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
447  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
448  mutable_bitField0_ |= 0x08000000;
449  }
450  restartAlgorithms_.add(rawValue);
451  }
452  }
453  input.popLimit(oldLimit);
454  break;
455  }
456  case 496: {
457  bitField0_ |= 0x20000000;
458  restartRunningWindowSize_ = input.readInt32();
459  break;
460  }
461  case 505: {
462  bitField0_ |= 0x40000000;
463  restartDlAverageRatio_ = input.readDouble();
464  break;
465  }
466  case 512: {
467  bitField1_ |= 0x00000001;
468  useBlockingRestart_ = input.readBool();
469  break;
470  }
471  case 520: {
472  bitField1_ |= 0x00000002;
473  blockingRestartWindowSize_ = input.readInt32();
474  break;
475  }
476  case 529: {
477  bitField1_ |= 0x00000004;
478  blockingRestartMultiplier_ = input.readDouble();
479  break;
480  }
481  case 537: {
482  bitField1_ |= 0x00000040;
483  maxDeterministicTime_ = input.readDouble();
484  break;
485  }
486  case 544: {
487  bitField1_ |= 0x00000008;
488  numConflictsBeforeStrategyChanges_ = input.readInt32();
489  break;
490  }
491  case 553: {
492  bitField1_ |= 0x00000010;
493  strategyChangeIncreaseRatio_ = input.readDouble();
494  break;
495  }
496  case 562: {
497  com.google.protobuf.ByteString bs = input.readBytes();
498  bitField0_ |= 0x08000000;
499  defaultRestartAlgorithms_ = bs;
500  break;
501  }
502  case 569: {
503  bitField0_ |= 0x80000000;
504  restartLbdAverageRatio_ = input.readDouble();
505  break;
506  }
507  case 576: {
508  bitField1_ |= 0x00200000;
509  presolveUseBva_ = input.readBool();
510  break;
511  }
512  case 584: {
513  bitField1_ |= 0x00400000;
514  presolveBvaThreshold_ = input.readInt32();
515  break;
516  }
517  case 592: {
518  bitField2_ |= 0x00000800;
519  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
520  break;
521  }
522  case 600: {
523  bitField0_ |= 0x00000020;
524  useErwaHeuristic_ = input.readBool();
525  break;
526  }
527  case 609: {
528  bitField0_ |= 0x00000040;
529  initialVariablesActivity_ = input.readDouble();
530  break;
531  }
532  case 616: {
533  bitField0_ |= 0x00000080;
534  alsoBumpVariablesInConflictReasons_ = input.readBool();
535  break;
536  }
537  case 624: {
538  bitField2_ |= 0x00001000;
539  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
540  break;
541  }
542  case 632: {
543  bitField2_ |= 0x00002000;
544  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
545  break;
546  }
547  case 640: {
548  bitField2_ |= 0x00004000;
549  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
550  break;
551  }
552  case 656: {
553  int rawValue = input.readEnum();
554  @SuppressWarnings("deprecation")
555  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
556  if (value == null) {
557  unknownFields.mergeVarintField(82, rawValue);
558  } else {
559  bitField3_ |= 0x00000002;
560  searchBranching_ = rawValue;
561  }
562  break;
563  }
564  case 664: {
565  bitField3_ |= 0x00000400;
566  optimizeWithCore_ = input.readBool();
567  break;
568  }
569  case 672: {
570  bitField2_ |= 0x00000040;
571  findMultipleCores_ = input.readBool();
572  break;
573  }
574  case 680: {
575  bitField3_ |= 0x00001000;
576  optimizeWithMaxHs_ = input.readBool();
577  break;
578  }
579  case 688: {
580  bitField1_ |= 0x01000000;
581  cpModelPresolve_ = input.readBool();
582  break;
583  }
584  case 696: {
585  bitField3_ |= 0x00002000;
586  enumerateAllSolutions_ = input.readBool();
587  break;
588  }
589  case 704: {
590  bitField1_ |= 0x00100000;
591  presolveBlockedClause_ = input.readBool();
592  break;
593  }
594  case 712: {
595  bitField2_ |= 0x00000080;
596  coverOptimization_ = input.readBool();
597  break;
598  }
599  case 720: {
600  bitField2_ |= 0x00008000;
601  linearizationLevel_ = input.readInt32();
602  break;
603  }
604  case 728: {
605  bitField2_ |= 0x00020000;
606  maxNumCuts_ = input.readInt32();
607  break;
608  }
609  case 736: {
610  bitField2_ |= 0x00040000;
611  onlyAddCutsAtLevelZero_ = input.readBool();
612  break;
613  }
614  case 744: {
615  bitField1_ |= 0x10000000;
616  cpModelUseSatPresolve_ = input.readBool();
617  break;
618  }
619  case 752: {
620  bitField3_ |= 0x00000008;
621  exploitIntegerLpSolution_ = input.readBool();
622  break;
623  }
624  case 760: {
625  bitField3_ |= 0x00010000;
626  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
627  break;
628  }
629  case 768: {
630  bitField0_ |= 0x00040000;
631  minimizeWithPropagationRestartPeriod_ = input.readInt32();
632  break;
633  }
634  case 776: {
635  bitField0_ |= 0x00080000;
636  minimizeWithPropagationNumDecisions_ = input.readInt32();
637  break;
638  }
639  case 784: {
640  bitField3_ |= 0x00020000;
641  stopAfterFirstSolution_ = input.readBool();
642  break;
643  }
644  case 792: {
645  bitField3_ |= 0x00000800;
646  binarySearchNumConflicts_ = input.readInt32();
647  break;
648  }
649  case 800: {
650  bitField3_ |= 0x00080000;
651  numSearchWorkers_ = input.readInt32();
652  break;
653  }
654  case 808: {
655  bitField3_ |= 0x02000000;
656  useLnsOnly_ = input.readBool();
657  break;
658  }
659  case 824: {
660  bitField4_ |= 0x00000001;
661  randomizeSearch_ = input.readBool();
662  break;
663  }
664  case 832: {
665  bitField4_ |= 0x00000002;
666  searchRandomizationTolerance_ = input.readInt64();
667  break;
668  }
669  case 840: {
670  bitField3_ |= 0x04000000;
671  lnsFocusOnDecisionVariables_ = input.readBool();
672  break;
673  }
674  case 848: {
675  bitField3_ |= 0x00008000;
676  instantiateAllVariables_ = input.readBool();
677  break;
678  }
679  case 856: {
680  bitField2_ |= 0x00010000;
681  booleanEncodingLevel_ = input.readInt32();
682  break;
683  }
684  case 864: {
685  bitField4_ |= 0x00000004;
686  useOptionalVariables_ = input.readBool();
687  break;
688  }
689  case 872: {
690  bitField4_ |= 0x00000008;
691  useExactLpReason_ = input.readBool();
692  break;
693  }
694  case 880: {
695  bitField1_ |= 0x08000000;
696  cpModelProbingLevel_ = input.readInt32();
697  break;
698  }
699  case 888: {
700  bitField2_ |= 0x00080000;
701  addKnapsackCuts_ = input.readBool();
702  break;
703  }
704  case 896: {
705  bitField2_ |= 0x02000000;
706  addLpConstraintsLazily_ = input.readBool();
707  break;
708  }
709  case 904: {
710  bitField3_ |= 0x00800000;
711  shareObjectiveBounds_ = input.readBool();
712  break;
713  }
714  case 912: {
715  bitField3_ |= 0x01000000;
716  shareLevelZeroBounds_ = input.readBool();
717  break;
718  }
719  case 921: {
720  bitField2_ |= 0x04000000;
721  minOrthogonalityForLpConstraints_ = input.readDouble();
722  break;
723  }
724  case 928: {
725  bitField3_ |= 0x00000010;
726  exploitAllLpSolution_ = input.readBool();
727  break;
728  }
729  case 936: {
730  bitField2_ |= 0x00100000;
731  addCgCuts_ = input.readBool();
732  break;
733  }
734  case 952: {
735  bitField2_ |= 0x01000000;
736  maxIntegerRoundingScaling_ = input.readInt32();
737  break;
738  }
739  case 960: {
740  bitField2_ |= 0x00200000;
741  addMirCuts_ = input.readBool();
742  break;
743  }
744  case 968: {
745  bitField2_ |= 0x10000000;
746  maxConsecutiveInactiveCount_ = input.readInt32();
747  break;
748  }
749  case 976: {
750  bitField3_ |= 0x00000001;
751  newConstraintsBatchSize_ = input.readInt32();
752  break;
753  }
754  case 984: {
755  bitField3_ |= 0x00000200;
756  pseudoCostReliabilityThreshold_ = input.readInt64();
757  break;
758  }
759  case 993: {
760  bitField4_ |= 0x00000100;
761  mipMaxBound_ = input.readDouble();
762  break;
763  }
764  case 1001: {
765  bitField4_ |= 0x00000200;
766  mipVarScaling_ = input.readDouble();
767  break;
768  }
769  case 1009: {
770  bitField4_ |= 0x00000800;
771  mipWantedPrecision_ = input.readDouble();
772  break;
773  }
774  case 1016: {
775  bitField4_ |= 0x00001000;
776  mipMaxActivityExponent_ = input.readInt32();
777  break;
778  }
779  case 1025: {
780  bitField4_ |= 0x00002000;
781  mipCheckPrecision_ = input.readDouble();
782  break;
783  }
784  case 1032: {
785  bitField3_ |= 0x08000000;
786  useRinsLns_ = input.readBool();
787  break;
788  }
789  case 1040: {
790  bitField3_ |= 0x00000020;
791  exploitBestSolution_ = input.readBool();
792  break;
793  }
794  case 1048: {
795  bitField3_ |= 0x00000080;
796  exploitObjective_ = input.readBool();
797  break;
798  }
799  case 1056: {
800  bitField3_ |= 0x00004000;
801  fillTightenedDomainsInResponse_ = input.readBool();
802  break;
803  }
804  case 1064: {
805  bitField4_ |= 0x00000020;
806  useCombinedNoOverlap_ = input.readBool();
807  break;
808  }
809  case 1072: {
810  bitField3_ |= 0x00200000;
811  interleaveBatchSize_ = input.readInt32();
812  break;
813  }
814  case 1080: {
815  bitField4_ |= 0x00000040;
816  catchSigintSignal_ = input.readBool();
817  break;
818  }
819  case 1088: {
820  bitField3_ |= 0x00100000;
821  interleaveSearch_ = input.readBool();
822  break;
823  }
824  case 1096: {
825  bitField3_ |= 0x80000000;
826  diversifyLnsParams_ = input.readBool();
827  break;
828  }
829  case 1104: {
830  bitField1_ |= 0x00800000;
831  maxPresolveIterations_ = input.readInt32();
832  break;
833  }
834  case 1112: {
835  bitField4_ |= 0x00000010;
836  useBranchingInLp_ = input.readBool();
837  break;
838  }
839  case 1120: {
840  bitField1_ |= 0x40000000;
841  expandElementConstraints_ = input.readBool();
842  break;
843  }
844  case 1128: {
845  bitField3_ |= 0x00400000;
846  reduceMemoryUsageInInterleaveMode_ = input.readBool();
847  break;
848  }
849  case 1136: {
850  bitField3_ |= 0x00000100;
851  probingPeriodAtRoot_ = input.readInt64();
852  break;
853  }
854  case 1144: {
855  bitField1_ |= 0x80000000;
856  expandAutomatonConstraints_ = input.readBool();
857  break;
858  }
859  case 1152: {
860  bitField4_ |= 0x00000080;
861  useImpliedBounds_ = input.readBool();
862  break;
863  }
864  case 1161: {
865  bitField2_ |= 0x00000002;
866  mergeNoOverlapWorkLimit_ = input.readDouble();
867  break;
868  }
869  case 1169: {
870  bitField2_ |= 0x00000004;
871  mergeAtMostOneWorkLimit_ = input.readDouble();
872  break;
873  }
874  case 1176: {
875  bitField2_ |= 0x00000008;
876  presolveSubstitutionLevel_ = input.readInt32();
877  break;
878  }
879  case 1184: {
880  bitField2_ |= 0x00400000;
881  maxAllDiffCutSize_ = input.readInt32();
882  break;
883  }
884  case 1192: {
885  bitField3_ |= 0x00040000;
886  stopAfterPresolve_ = input.readBool();
887  break;
888  }
889  case 1200: {
890  bitField3_ |= 0x40000000;
891  useRelaxationLns_ = input.readBool();
892  break;
893  }
894  case 1208: {
895  bitField1_ |= 0x04000000;
896  cpModelMaxNumPresolveOperations_ = input.readInt32();
897  break;
898  }
899  case 1216: {
900  bitField2_ |= 0x00800000;
901  addLinMaxCuts_ = input.readBool();
902  break;
903  }
904  case 1224: {
905  bitField3_ |= 0x00000004;
906  hintConflictLimit_ = input.readInt32();
907  break;
908  }
909  case 1232: {
910  bitField2_ |= 0x08000000;
911  maxCutRoundsAtLevelZero_ = input.readInt32();
912  break;
913  }
914  case 1241: {
915  bitField2_ |= 0x20000000;
916  cutMaxActiveCountValue_ = input.readDouble();
917  break;
918  }
919  case 1249: {
920  bitField2_ |= 0x40000000;
921  cutActiveCountDecay_ = input.readDouble();
922  break;
923  }
924  case 1256: {
925  bitField2_ |= 0x80000000;
926  cutCleanupTarget_ = input.readInt32();
927  break;
928  }
929  case 1264: {
930  bitField2_ |= 0x00000001;
931  expandTableConstraints_ = input.readBool();
932  break;
933  }
934  case 1273: {
935  bitField1_ |= 0x00000200;
936  absoluteGapLimit_ = input.readDouble();
937  break;
938  }
939  case 1281: {
940  bitField1_ |= 0x00000400;
941  relativeGapLimit_ = input.readDouble();
942  break;
943  }
944  case 1288: {
945  bitField3_ |= 0x00000040;
946  exploitRelaxationSolution_ = input.readBool();
947  break;
948  }
949  case 1296: {
950  bitField1_ |= 0x02000000;
951  cpModelPostsolveWithFullSolver_ = input.readBool();
952  break;
953  }
954  case 1304: {
955  bitField1_ |= 0x20000000;
956  useSatInprocessing_ = input.readBool();
957  break;
958  }
959  case 1312: {
960  bitField3_ |= 0x10000000;
961  useFeasibilityPump_ = input.readBool();
962  break;
963  }
964  case 1320: {
965  int rawValue = input.readEnum();
966  @SuppressWarnings("deprecation")
967  com.google.ortools.sat.SatParameters.FPRoundingMethod value = com.google.ortools.sat.SatParameters.FPRoundingMethod.valueOf(rawValue);
968  if (value == null) {
969  unknownFields.mergeVarintField(165, rawValue);
970  } else {
971  bitField3_ |= 0x20000000;
972  fpRounding_ = rawValue;
973  }
974  break;
975  }
976  case 1328: {
977  bitField4_ |= 0x00000400;
978  mipAutomaticallyScaleVariables_ = input.readBool();
979  break;
980  }
981  default: {
982  if (!parseUnknownField(
983  input, unknownFields, extensionRegistry, tag)) {
984  done = true;
985  }
986  break;
987  }
988  }
989  }
990  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
991  throw e.setUnfinishedMessage(this);
992  } catch (java.io.IOException e) {
993  throw new com.google.protobuf.InvalidProtocolBufferException(
994  e).setUnfinishedMessage(this);
995  } finally {
996  if (((mutable_bitField0_ & 0x08000000) != 0)) {
997  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
998  }
999  this.unknownFields = unknownFields.build();
1000  makeExtensionsImmutable();
1001  }
1002  }
1003  public static final com.google.protobuf.Descriptors.Descriptor
1005  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
1006  }
1007 
1008  @java.lang.Override
1009  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
1011  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
1012  .ensureFieldAccessorsInitialized(
1014  }
1015 
1024  public enum VariableOrder
1025  implements com.google.protobuf.ProtocolMessageEnum {
1042  ;
1043 
1051  public static final int IN_ORDER_VALUE = 0;
1055  public static final int IN_REVERSE_ORDER_VALUE = 1;
1059  public static final int IN_RANDOM_ORDER_VALUE = 2;
1060 
1061 
1062  public final int getNumber() {
1063  return value;
1064  }
1065 
1071  @java.lang.Deprecated
1072  public static VariableOrder valueOf(int value) {
1073  return forNumber(value);
1074  }
1075 
1080  public static VariableOrder forNumber(int value) {
1081  switch (value) {
1082  case 0: return IN_ORDER;
1083  case 1: return IN_REVERSE_ORDER;
1084  case 2: return IN_RANDOM_ORDER;
1085  default: return null;
1086  }
1087  }
1088 
1089  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
1091  return internalValueMap;
1092  }
1093  private static final com.google.protobuf.Internal.EnumLiteMap<
1094  VariableOrder> internalValueMap =
1095  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
1096  public VariableOrder findValueByNumber(int number) {
1097  return VariableOrder.forNumber(number);
1098  }
1099  };
1100 
1101  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1103  return getDescriptor().getValues().get(ordinal());
1104  }
1105  public final com.google.protobuf.Descriptors.EnumDescriptor
1107  return getDescriptor();
1108  }
1109  public static final com.google.protobuf.Descriptors.EnumDescriptor
1111  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
1112  }
1113 
1114  private static final VariableOrder[] VALUES = values();
1115 
1116  public static VariableOrder valueOf(
1117  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1118  if (desc.getType() != getDescriptor()) {
1119  throw new java.lang.IllegalArgumentException(
1120  "EnumValueDescriptor is not for this type.");
1121  }
1122  return VALUES[desc.getIndex()];
1123  }
1124 
1125  private final int value;
1126 
1127  private VariableOrder(int value) {
1128  this.value = value;
1129  }
1130 
1131  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
1132  }
1133 
1145  public enum Polarity
1146  implements com.google.protobuf.ProtocolMessageEnum {
1178  ;
1179 
1183  public static final int POLARITY_TRUE_VALUE = 0;
1187  public static final int POLARITY_FALSE_VALUE = 1;
1191  public static final int POLARITY_RANDOM_VALUE = 2;
1202  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1210  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1211 
1212 
1213  public final int getNumber() {
1214  return value;
1215  }
1216 
1222  @java.lang.Deprecated
1223  public static Polarity valueOf(int value) {
1224  return forNumber(value);
1225  }
1226 
1231  public static Polarity forNumber(int value) {
1232  switch (value) {
1233  case 0: return POLARITY_TRUE;
1234  case 1: return POLARITY_FALSE;
1235  case 2: return POLARITY_RANDOM;
1236  case 3: return POLARITY_WEIGHTED_SIGN;
1237  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1238  default: return null;
1239  }
1240  }
1241 
1242  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1244  return internalValueMap;
1245  }
1246  private static final com.google.protobuf.Internal.EnumLiteMap<
1247  Polarity> internalValueMap =
1248  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1249  public Polarity findValueByNumber(int number) {
1250  return Polarity.forNumber(number);
1251  }
1252  };
1253 
1254  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1256  return getDescriptor().getValues().get(ordinal());
1257  }
1258  public final com.google.protobuf.Descriptors.EnumDescriptor
1260  return getDescriptor();
1261  }
1262  public static final com.google.protobuf.Descriptors.EnumDescriptor
1264  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1265  }
1266 
1267  private static final Polarity[] VALUES = values();
1268 
1269  public static Polarity valueOf(
1270  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1271  if (desc.getType() != getDescriptor()) {
1272  throw new java.lang.IllegalArgumentException(
1273  "EnumValueDescriptor is not for this type.");
1274  }
1275  return VALUES[desc.getIndex()];
1276  }
1277 
1278  private final int value;
1279 
1280  private Polarity(int value) {
1281  this.value = value;
1282  }
1283 
1284  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1285  }
1286 
1295  implements com.google.protobuf.ProtocolMessageEnum {
1299  NONE(0),
1312  ;
1313 
1317  public static final int NONE_VALUE = 0;
1321  public static final int SIMPLE_VALUE = 1;
1325  public static final int RECURSIVE_VALUE = 2;
1329  public static final int EXPERIMENTAL_VALUE = 3;
1330 
1331 
1332  public final int getNumber() {
1333  return value;
1334  }
1335 
1341  @java.lang.Deprecated
1342  public static ConflictMinimizationAlgorithm valueOf(int value) {
1343  return forNumber(value);
1344  }
1345 
1350  public static ConflictMinimizationAlgorithm forNumber(int value) {
1351  switch (value) {
1352  case 0: return NONE;
1353  case 1: return SIMPLE;
1354  case 2: return RECURSIVE;
1355  case 3: return EXPERIMENTAL;
1356  default: return null;
1357  }
1358  }
1359 
1360  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1362  return internalValueMap;
1363  }
1364  private static final com.google.protobuf.Internal.EnumLiteMap<
1365  ConflictMinimizationAlgorithm> internalValueMap =
1366  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1367  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1369  }
1370  };
1371 
1372  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1374  return getDescriptor().getValues().get(ordinal());
1375  }
1376  public final com.google.protobuf.Descriptors.EnumDescriptor
1378  return getDescriptor();
1379  }
1380  public static final com.google.protobuf.Descriptors.EnumDescriptor
1382  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1383  }
1384 
1385  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1386 
1388  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1389  if (desc.getType() != getDescriptor()) {
1390  throw new java.lang.IllegalArgumentException(
1391  "EnumValueDescriptor is not for this type.");
1392  }
1393  return VALUES[desc.getIndex()];
1394  }
1395 
1396  private final int value;
1397 
1398  private ConflictMinimizationAlgorithm(int value) {
1399  this.value = value;
1400  }
1401 
1402  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1403  }
1404 
1414  implements com.google.protobuf.ProtocolMessageEnum {
1435  ;
1436 
1440  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1444  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1448  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1452  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1456  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1457 
1458 
1459  public final int getNumber() {
1460  return value;
1461  }
1462 
1468  @java.lang.Deprecated
1469  public static BinaryMinizationAlgorithm valueOf(int value) {
1470  return forNumber(value);
1471  }
1472 
1477  public static BinaryMinizationAlgorithm forNumber(int value) {
1478  switch (value) {
1479  case 0: return NO_BINARY_MINIMIZATION;
1480  case 1: return BINARY_MINIMIZATION_FIRST;
1481  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1482  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1483  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1484  default: return null;
1485  }
1486  }
1487 
1488  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1490  return internalValueMap;
1491  }
1492  private static final com.google.protobuf.Internal.EnumLiteMap<
1493  BinaryMinizationAlgorithm> internalValueMap =
1494  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1495  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1496  return BinaryMinizationAlgorithm.forNumber(number);
1497  }
1498  };
1499 
1500  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1502  return getDescriptor().getValues().get(ordinal());
1503  }
1504  public final com.google.protobuf.Descriptors.EnumDescriptor
1506  return getDescriptor();
1507  }
1508  public static final com.google.protobuf.Descriptors.EnumDescriptor
1510  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1511  }
1512 
1513  private static final BinaryMinizationAlgorithm[] VALUES = values();
1514 
1516  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1517  if (desc.getType() != getDescriptor()) {
1518  throw new java.lang.IllegalArgumentException(
1519  "EnumValueDescriptor is not for this type.");
1520  }
1521  return VALUES[desc.getIndex()];
1522  }
1523 
1524  private final int value;
1525 
1526  private BinaryMinizationAlgorithm(int value) {
1527  this.value = value;
1528  }
1529 
1530  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1531  }
1532 
1542  public enum ClauseProtection
1543  implements com.google.protobuf.ProtocolMessageEnum {
1568  ;
1569 
1577  public static final int PROTECTION_NONE_VALUE = 0;
1585  public static final int PROTECTION_ALWAYS_VALUE = 1;
1593  public static final int PROTECTION_LBD_VALUE = 2;
1594 
1595 
1596  public final int getNumber() {
1597  return value;
1598  }
1599 
1605  @java.lang.Deprecated
1606  public static ClauseProtection valueOf(int value) {
1607  return forNumber(value);
1608  }
1609 
1614  public static ClauseProtection forNumber(int value) {
1615  switch (value) {
1616  case 0: return PROTECTION_NONE;
1617  case 1: return PROTECTION_ALWAYS;
1618  case 2: return PROTECTION_LBD;
1619  default: return null;
1620  }
1621  }
1622 
1623  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1625  return internalValueMap;
1626  }
1627  private static final com.google.protobuf.Internal.EnumLiteMap<
1628  ClauseProtection> internalValueMap =
1629  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1630  public ClauseProtection findValueByNumber(int number) {
1631  return ClauseProtection.forNumber(number);
1632  }
1633  };
1634 
1635  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1637  return getDescriptor().getValues().get(ordinal());
1638  }
1639  public final com.google.protobuf.Descriptors.EnumDescriptor
1641  return getDescriptor();
1642  }
1643  public static final com.google.protobuf.Descriptors.EnumDescriptor
1645  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1646  }
1647 
1648  private static final ClauseProtection[] VALUES = values();
1649 
1650  public static ClauseProtection valueOf(
1651  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1652  if (desc.getType() != getDescriptor()) {
1653  throw new java.lang.IllegalArgumentException(
1654  "EnumValueDescriptor is not for this type.");
1655  }
1656  return VALUES[desc.getIndex()];
1657  }
1658 
1659  private final int value;
1660 
1661  private ClauseProtection(int value) {
1662  this.value = value;
1663  }
1664 
1665  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1666  }
1667 
1676  public enum ClauseOrdering
1677  implements com.google.protobuf.ProtocolMessageEnum {
1694  ;
1695 
1703  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1711  public static final int CLAUSE_LBD_VALUE = 1;
1712 
1713 
1714  public final int getNumber() {
1715  return value;
1716  }
1717 
1723  @java.lang.Deprecated
1724  public static ClauseOrdering valueOf(int value) {
1725  return forNumber(value);
1726  }
1727 
1732  public static ClauseOrdering forNumber(int value) {
1733  switch (value) {
1734  case 0: return CLAUSE_ACTIVITY;
1735  case 1: return CLAUSE_LBD;
1736  default: return null;
1737  }
1738  }
1739 
1740  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1742  return internalValueMap;
1743  }
1744  private static final com.google.protobuf.Internal.EnumLiteMap<
1745  ClauseOrdering> internalValueMap =
1746  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1747  public ClauseOrdering findValueByNumber(int number) {
1748  return ClauseOrdering.forNumber(number);
1749  }
1750  };
1751 
1752  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1754  return getDescriptor().getValues().get(ordinal());
1755  }
1756  public final com.google.protobuf.Descriptors.EnumDescriptor
1758  return getDescriptor();
1759  }
1760  public static final com.google.protobuf.Descriptors.EnumDescriptor
1762  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1763  }
1764 
1765  private static final ClauseOrdering[] VALUES = values();
1766 
1767  public static ClauseOrdering valueOf(
1768  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1769  if (desc.getType() != getDescriptor()) {
1770  throw new java.lang.IllegalArgumentException(
1771  "EnumValueDescriptor is not for this type.");
1772  }
1773  return VALUES[desc.getIndex()];
1774  }
1775 
1776  private final int value;
1777 
1778  private ClauseOrdering(int value) {
1779  this.value = value;
1780  }
1781 
1782  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1783  }
1784 
1796  public enum RestartAlgorithm
1797  implements com.google.protobuf.ProtocolMessageEnum {
1834  ;
1835 
1839  public static final int NO_RESTART_VALUE = 0;
1847  public static final int LUBY_RESTART_VALUE = 1;
1855  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1863  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1871  public static final int FIXED_RESTART_VALUE = 4;
1872 
1873 
1874  public final int getNumber() {
1875  return value;
1876  }
1877 
1883  @java.lang.Deprecated
1884  public static RestartAlgorithm valueOf(int value) {
1885  return forNumber(value);
1886  }
1887 
1892  public static RestartAlgorithm forNumber(int value) {
1893  switch (value) {
1894  case 0: return NO_RESTART;
1895  case 1: return LUBY_RESTART;
1896  case 2: return DL_MOVING_AVERAGE_RESTART;
1897  case 3: return LBD_MOVING_AVERAGE_RESTART;
1898  case 4: return FIXED_RESTART;
1899  default: return null;
1900  }
1901  }
1902 
1903  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1905  return internalValueMap;
1906  }
1907  private static final com.google.protobuf.Internal.EnumLiteMap<
1908  RestartAlgorithm> internalValueMap =
1909  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1910  public RestartAlgorithm findValueByNumber(int number) {
1911  return RestartAlgorithm.forNumber(number);
1912  }
1913  };
1914 
1915  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1917  return getDescriptor().getValues().get(ordinal());
1918  }
1919  public final com.google.protobuf.Descriptors.EnumDescriptor
1921  return getDescriptor();
1922  }
1923  public static final com.google.protobuf.Descriptors.EnumDescriptor
1925  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1926  }
1927 
1928  private static final RestartAlgorithm[] VALUES = values();
1929 
1930  public static RestartAlgorithm valueOf(
1931  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1932  if (desc.getType() != getDescriptor()) {
1933  throw new java.lang.IllegalArgumentException(
1934  "EnumValueDescriptor is not for this type.");
1935  }
1936  return VALUES[desc.getIndex()];
1937  }
1938 
1939  private final int value;
1940 
1941  private RestartAlgorithm(int value) {
1942  this.value = value;
1943  }
1944 
1945  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1946  }
1947 
1956  implements com.google.protobuf.ProtocolMessageEnum {
1969  ;
1970 
1974  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1978  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1982  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1983 
1984 
1985  public final int getNumber() {
1986  return value;
1987  }
1988 
1994  @java.lang.Deprecated
1995  public static MaxSatAssumptionOrder valueOf(int value) {
1996  return forNumber(value);
1997  }
1998 
2003  public static MaxSatAssumptionOrder forNumber(int value) {
2004  switch (value) {
2005  case 0: return DEFAULT_ASSUMPTION_ORDER;
2006  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
2007  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
2008  default: return null;
2009  }
2010  }
2011 
2012  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
2014  return internalValueMap;
2015  }
2016  private static final com.google.protobuf.Internal.EnumLiteMap<
2017  MaxSatAssumptionOrder> internalValueMap =
2018  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
2019  public MaxSatAssumptionOrder findValueByNumber(int number) {
2020  return MaxSatAssumptionOrder.forNumber(number);
2021  }
2022  };
2023 
2024  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2026  return getDescriptor().getValues().get(ordinal());
2027  }
2028  public final com.google.protobuf.Descriptors.EnumDescriptor
2030  return getDescriptor();
2031  }
2032  public static final com.google.protobuf.Descriptors.EnumDescriptor
2034  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
2035  }
2036 
2037  private static final MaxSatAssumptionOrder[] VALUES = values();
2038 
2040  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2041  if (desc.getType() != getDescriptor()) {
2042  throw new java.lang.IllegalArgumentException(
2043  "EnumValueDescriptor is not for this type.");
2044  }
2045  return VALUES[desc.getIndex()];
2046  }
2047 
2048  private final int value;
2049 
2050  private MaxSatAssumptionOrder(int value) {
2051  this.value = value;
2052  }
2053 
2054  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
2055  }
2056 
2065  implements com.google.protobuf.ProtocolMessageEnum {
2094  ;
2095 
2103  public static final int STRATIFICATION_NONE_VALUE = 0;
2112  public static final int STRATIFICATION_DESCENT_VALUE = 1;
2123  public static final int STRATIFICATION_ASCENT_VALUE = 2;
2124 
2125 
2126  public final int getNumber() {
2127  return value;
2128  }
2129 
2135  @java.lang.Deprecated
2136  public static MaxSatStratificationAlgorithm valueOf(int value) {
2137  return forNumber(value);
2138  }
2139 
2144  public static MaxSatStratificationAlgorithm forNumber(int value) {
2145  switch (value) {
2146  case 0: return STRATIFICATION_NONE;
2147  case 1: return STRATIFICATION_DESCENT;
2148  case 2: return STRATIFICATION_ASCENT;
2149  default: return null;
2150  }
2151  }
2152 
2153  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
2155  return internalValueMap;
2156  }
2157  private static final com.google.protobuf.Internal.EnumLiteMap<
2158  MaxSatStratificationAlgorithm> internalValueMap =
2159  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
2160  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
2162  }
2163  };
2164 
2165  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2167  return getDescriptor().getValues().get(ordinal());
2168  }
2169  public final com.google.protobuf.Descriptors.EnumDescriptor
2171  return getDescriptor();
2172  }
2173  public static final com.google.protobuf.Descriptors.EnumDescriptor
2175  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
2176  }
2177 
2178  private static final MaxSatStratificationAlgorithm[] VALUES = values();
2179 
2181  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2182  if (desc.getType() != getDescriptor()) {
2183  throw new java.lang.IllegalArgumentException(
2184  "EnumValueDescriptor is not for this type.");
2185  }
2186  return VALUES[desc.getIndex()];
2187  }
2188 
2189  private final int value;
2190 
2191  private MaxSatStratificationAlgorithm(int value) {
2192  this.value = value;
2193  }
2194 
2195  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
2196  }
2197 
2205  public enum SearchBranching
2206  implements com.google.protobuf.ProtocolMessageEnum {
2274  ;
2275 
2284  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2294  public static final int FIXED_SEARCH_VALUE = 1;
2302  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2312  public static final int LP_SEARCH_VALUE = 3;
2322  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2332  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2342  public static final int HINT_SEARCH_VALUE = 6;
2343 
2344 
2345  public final int getNumber() {
2346  return value;
2347  }
2348 
2354  @java.lang.Deprecated
2355  public static SearchBranching valueOf(int value) {
2356  return forNumber(value);
2357  }
2358 
2363  public static SearchBranching forNumber(int value) {
2364  switch (value) {
2365  case 0: return AUTOMATIC_SEARCH;
2366  case 1: return FIXED_SEARCH;
2367  case 2: return PORTFOLIO_SEARCH;
2368  case 3: return LP_SEARCH;
2369  case 4: return PSEUDO_COST_SEARCH;
2370  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2371  case 6: return HINT_SEARCH;
2372  default: return null;
2373  }
2374  }
2375 
2376  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2378  return internalValueMap;
2379  }
2380  private static final com.google.protobuf.Internal.EnumLiteMap<
2381  SearchBranching> internalValueMap =
2382  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2383  public SearchBranching findValueByNumber(int number) {
2384  return SearchBranching.forNumber(number);
2385  }
2386  };
2387 
2388  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2390  return getDescriptor().getValues().get(ordinal());
2391  }
2392  public final com.google.protobuf.Descriptors.EnumDescriptor
2394  return getDescriptor();
2395  }
2396  public static final com.google.protobuf.Descriptors.EnumDescriptor
2398  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2399  }
2400 
2401  private static final SearchBranching[] VALUES = values();
2402 
2403  public static SearchBranching valueOf(
2404  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2405  if (desc.getType() != getDescriptor()) {
2406  throw new java.lang.IllegalArgumentException(
2407  "EnumValueDescriptor is not for this type.");
2408  }
2409  return VALUES[desc.getIndex()];
2410  }
2411 
2412  private final int value;
2413 
2414  private SearchBranching(int value) {
2415  this.value = value;
2416  }
2417 
2418  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2419  }
2420 
2428  public enum FPRoundingMethod
2429  implements com.google.protobuf.ProtocolMessageEnum {
2470  ;
2471 
2479  public static final int NEAREST_INTEGER_VALUE = 0;
2489  public static final int LOCK_BASED_VALUE = 1;
2498  public static final int ACTIVE_LOCK_BASED_VALUE = 3;
2511  public static final int PROPAGATION_ASSISTED_VALUE = 2;
2512 
2513 
2514  public final int getNumber() {
2515  return value;
2516  }
2517 
2523  @java.lang.Deprecated
2524  public static FPRoundingMethod valueOf(int value) {
2525  return forNumber(value);
2526  }
2527 
2532  public static FPRoundingMethod forNumber(int value) {
2533  switch (value) {
2534  case 0: return NEAREST_INTEGER;
2535  case 1: return LOCK_BASED;
2536  case 3: return ACTIVE_LOCK_BASED;
2537  case 2: return PROPAGATION_ASSISTED;
2538  default: return null;
2539  }
2540  }
2541 
2542  public static com.google.protobuf.Internal.EnumLiteMap<FPRoundingMethod>
2544  return internalValueMap;
2545  }
2546  private static final com.google.protobuf.Internal.EnumLiteMap<
2547  FPRoundingMethod> internalValueMap =
2548  new com.google.protobuf.Internal.EnumLiteMap<FPRoundingMethod>() {
2549  public FPRoundingMethod findValueByNumber(int number) {
2550  return FPRoundingMethod.forNumber(number);
2551  }
2552  };
2553 
2554  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2556  return getDescriptor().getValues().get(ordinal());
2557  }
2558  public final com.google.protobuf.Descriptors.EnumDescriptor
2560  return getDescriptor();
2561  }
2562  public static final com.google.protobuf.Descriptors.EnumDescriptor
2564  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(10);
2565  }
2566 
2567  private static final FPRoundingMethod[] VALUES = values();
2568 
2569  public static FPRoundingMethod valueOf(
2570  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2571  if (desc.getType() != getDescriptor()) {
2572  throw new java.lang.IllegalArgumentException(
2573  "EnumValueDescriptor is not for this type.");
2574  }
2575  return VALUES[desc.getIndex()];
2576  }
2577 
2578  private final int value;
2579 
2580  private FPRoundingMethod(int value) {
2581  this.value = value;
2582  }
2583 
2584  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.FPRoundingMethod)
2585  }
2586 
2587  private int bitField0_;
2588  private int bitField1_;
2589  private int bitField2_;
2590  private int bitField3_;
2591  private int bitField4_;
2592  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2593  private int preferredVariableOrder_;
2598  @java.lang.Override public boolean hasPreferredVariableOrder() {
2599  return ((bitField0_ & 0x00000001) != 0);
2600  }
2606  @SuppressWarnings("deprecation")
2608  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2609  }
2610 
2611  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2612  private int initialPolarity_;
2617  @java.lang.Override public boolean hasInitialPolarity() {
2618  return ((bitField0_ & 0x00000002) != 0);
2619  }
2625  @SuppressWarnings("deprecation")
2627  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2628  }
2629 
2630  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2631  private boolean usePhaseSaving_;
2646  @java.lang.Override
2647  public boolean hasUsePhaseSaving() {
2648  return ((bitField0_ & 0x00000004) != 0);
2649  }
2664  @java.lang.Override
2665  public boolean getUsePhaseSaving() {
2666  return usePhaseSaving_;
2667  }
2668 
2669  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2670  private double randomPolarityRatio_;
2683  @java.lang.Override
2684  public boolean hasRandomPolarityRatio() {
2685  return ((bitField0_ & 0x00000008) != 0);
2686  }
2699  @java.lang.Override
2700  public double getRandomPolarityRatio() {
2701  return randomPolarityRatio_;
2702  }
2703 
2704  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2705  private double randomBranchesRatio_;
2716  @java.lang.Override
2717  public boolean hasRandomBranchesRatio() {
2718  return ((bitField0_ & 0x00000010) != 0);
2719  }
2730  @java.lang.Override
2731  public double getRandomBranchesRatio() {
2732  return randomBranchesRatio_;
2733  }
2734 
2735  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2736  private boolean useErwaHeuristic_;
2747  @java.lang.Override
2748  public boolean hasUseErwaHeuristic() {
2749  return ((bitField0_ & 0x00000020) != 0);
2750  }
2761  @java.lang.Override
2762  public boolean getUseErwaHeuristic() {
2763  return useErwaHeuristic_;
2764  }
2765 
2766  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2767  private double initialVariablesActivity_;
2781  @java.lang.Override
2782  public boolean hasInitialVariablesActivity() {
2783  return ((bitField0_ & 0x00000040) != 0);
2784  }
2798  @java.lang.Override
2800  return initialVariablesActivity_;
2801  }
2802 
2804  private boolean alsoBumpVariablesInConflictReasons_;
2816  @java.lang.Override
2818  return ((bitField0_ & 0x00000080) != 0);
2819  }
2831  @java.lang.Override
2833  return alsoBumpVariablesInConflictReasons_;
2834  }
2835 
2836  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2837  private int minimizationAlgorithm_;
2842  @java.lang.Override public boolean hasMinimizationAlgorithm() {
2843  return ((bitField0_ & 0x00000100) != 0);
2844  }
2850  @SuppressWarnings("deprecation")
2852  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2853  }
2854 
2855  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2856  private int binaryMinimizationAlgorithm_;
2861  @java.lang.Override public boolean hasBinaryMinimizationAlgorithm() {
2862  return ((bitField0_ & 0x00000200) != 0);
2863  }
2869  @SuppressWarnings("deprecation")
2872  }
2873 
2875  private boolean subsumptionDuringConflictAnalysis_;
2887  @java.lang.Override
2889  return ((bitField0_ & 0x00000400) != 0);
2890  }
2902  @java.lang.Override
2904  return subsumptionDuringConflictAnalysis_;
2905  }
2906 
2907  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2908  private int clauseCleanupPeriod_;
2917  @java.lang.Override
2918  public boolean hasClauseCleanupPeriod() {
2919  return ((bitField0_ & 0x00000800) != 0);
2920  }
2929  @java.lang.Override
2930  public int getClauseCleanupPeriod() {
2931  return clauseCleanupPeriod_;
2932  }
2933 
2934  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2935  private int clauseCleanupTarget_;
2945  @java.lang.Override
2946  public boolean hasClauseCleanupTarget() {
2947  return ((bitField0_ & 0x00001000) != 0);
2948  }
2958  @java.lang.Override
2959  public int getClauseCleanupTarget() {
2960  return clauseCleanupTarget_;
2961  }
2962 
2963  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2964  private int clauseCleanupProtection_;
2969  @java.lang.Override public boolean hasClauseCleanupProtection() {
2970  return ((bitField0_ & 0x00002000) != 0);
2971  }
2977  @SuppressWarnings("deprecation")
2979  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2980  }
2981 
2982  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2983  private int clauseCleanupLbdBound_;
2993  @java.lang.Override
2994  public boolean hasClauseCleanupLbdBound() {
2995  return ((bitField0_ & 0x00004000) != 0);
2996  }
3006  @java.lang.Override
3008  return clauseCleanupLbdBound_;
3009  }
3010 
3011  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
3012  private int clauseCleanupOrdering_;
3017  @java.lang.Override public boolean hasClauseCleanupOrdering() {
3018  return ((bitField0_ & 0x00008000) != 0);
3019  }
3025  @SuppressWarnings("deprecation")
3027  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
3028  }
3029 
3030  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
3031  private int pbCleanupIncrement_;
3040  @java.lang.Override
3041  public boolean hasPbCleanupIncrement() {
3042  return ((bitField0_ & 0x00010000) != 0);
3043  }
3052  @java.lang.Override
3053  public int getPbCleanupIncrement() {
3054  return pbCleanupIncrement_;
3055  }
3056 
3057  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
3058  private double pbCleanupRatio_;
3063  @java.lang.Override
3064  public boolean hasPbCleanupRatio() {
3065  return ((bitField0_ & 0x00020000) != 0);
3066  }
3071  @java.lang.Override
3072  public double getPbCleanupRatio() {
3073  return pbCleanupRatio_;
3074  }
3075 
3077  private int minimizeWithPropagationRestartPeriod_;
3096  @java.lang.Override
3098  return ((bitField0_ & 0x00040000) != 0);
3099  }
3118  @java.lang.Override
3120  return minimizeWithPropagationRestartPeriod_;
3121  }
3122 
3124  private int minimizeWithPropagationNumDecisions_;
3129  @java.lang.Override
3131  return ((bitField0_ & 0x00080000) != 0);
3132  }
3137  @java.lang.Override
3139  return minimizeWithPropagationNumDecisions_;
3140  }
3141 
3142  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
3143  private double variableActivityDecay_;
3158  @java.lang.Override
3159  public boolean hasVariableActivityDecay() {
3160  return ((bitField0_ & 0x00100000) != 0);
3161  }
3176  @java.lang.Override
3177  public double getVariableActivityDecay() {
3178  return variableActivityDecay_;
3179  }
3180 
3181  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
3182  private double maxVariableActivityValue_;
3187  @java.lang.Override
3188  public boolean hasMaxVariableActivityValue() {
3189  return ((bitField0_ & 0x00200000) != 0);
3190  }
3195  @java.lang.Override
3197  return maxVariableActivityValue_;
3198  }
3199 
3200  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
3201  private double glucoseMaxDecay_;
3213  @java.lang.Override
3214  public boolean hasGlucoseMaxDecay() {
3215  return ((bitField0_ & 0x00400000) != 0);
3216  }
3228  @java.lang.Override
3229  public double getGlucoseMaxDecay() {
3230  return glucoseMaxDecay_;
3231  }
3232 
3233  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
3234  private double glucoseDecayIncrement_;
3239  @java.lang.Override
3240  public boolean hasGlucoseDecayIncrement() {
3241  return ((bitField0_ & 0x00800000) != 0);
3242  }
3247  @java.lang.Override
3248  public double getGlucoseDecayIncrement() {
3249  return glucoseDecayIncrement_;
3250  }
3251 
3252  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
3253  private int glucoseDecayIncrementPeriod_;
3258  @java.lang.Override
3260  return ((bitField0_ & 0x01000000) != 0);
3261  }
3266  @java.lang.Override
3268  return glucoseDecayIncrementPeriod_;
3269  }
3270 
3271  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
3272  private double clauseActivityDecay_;
3281  @java.lang.Override
3282  public boolean hasClauseActivityDecay() {
3283  return ((bitField0_ & 0x02000000) != 0);
3284  }
3293  @java.lang.Override
3294  public double getClauseActivityDecay() {
3295  return clauseActivityDecay_;
3296  }
3297 
3298  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
3299  private double maxClauseActivityValue_;
3304  @java.lang.Override
3305  public boolean hasMaxClauseActivityValue() {
3306  return ((bitField0_ & 0x04000000) != 0);
3307  }
3312  @java.lang.Override
3313  public double getMaxClauseActivityValue() {
3314  return maxClauseActivityValue_;
3315  }
3316 
3317  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
3318  private java.util.List<java.lang.Integer> restartAlgorithms_;
3319  private static final com.google.protobuf.Internal.ListAdapter.Converter<
3320  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
3321  new com.google.protobuf.Internal.ListAdapter.Converter<
3322  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
3323  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
3324  @SuppressWarnings("deprecation")
3326  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
3327  }
3328  };
3344  @java.lang.Override
3346  return new com.google.protobuf.Internal.ListAdapter<
3347  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
3348  }
3364  @java.lang.Override
3366  return restartAlgorithms_.size();
3367  }
3384  @java.lang.Override
3386  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
3387  }
3388 
3389  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
3390  private volatile java.lang.Object defaultRestartAlgorithms_;
3395  @java.lang.Override
3396  public boolean hasDefaultRestartAlgorithms() {
3397  return ((bitField0_ & 0x08000000) != 0);
3398  }
3403  @java.lang.Override
3404  public java.lang.String getDefaultRestartAlgorithms() {
3405  java.lang.Object ref = defaultRestartAlgorithms_;
3406  if (ref instanceof java.lang.String) {
3407  return (java.lang.String) ref;
3408  } else {
3409  com.google.protobuf.ByteString bs =
3410  (com.google.protobuf.ByteString) ref;
3411  java.lang.String s = bs.toStringUtf8();
3412  if (bs.isValidUtf8()) {
3413  defaultRestartAlgorithms_ = s;
3414  }
3415  return s;
3416  }
3417  }
3422  @java.lang.Override
3423  public com.google.protobuf.ByteString
3425  java.lang.Object ref = defaultRestartAlgorithms_;
3426  if (ref instanceof java.lang.String) {
3427  com.google.protobuf.ByteString b =
3428  com.google.protobuf.ByteString.copyFromUtf8(
3429  (java.lang.String) ref);
3430  defaultRestartAlgorithms_ = b;
3431  return b;
3432  } else {
3433  return (com.google.protobuf.ByteString) ref;
3434  }
3435  }
3436 
3437  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
3438  private int restartPeriod_;
3448  @java.lang.Override
3449  public boolean hasRestartPeriod() {
3450  return ((bitField0_ & 0x10000000) != 0);
3451  }
3461  @java.lang.Override
3462  public int getRestartPeriod() {
3463  return restartPeriod_;
3464  }
3465 
3466  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
3467  private int restartRunningWindowSize_;
3476  @java.lang.Override
3477  public boolean hasRestartRunningWindowSize() {
3478  return ((bitField0_ & 0x20000000) != 0);
3479  }
3488  @java.lang.Override
3490  return restartRunningWindowSize_;
3491  }
3492 
3493  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
3494  private double restartDlAverageRatio_;
3504  @java.lang.Override
3505  public boolean hasRestartDlAverageRatio() {
3506  return ((bitField0_ & 0x40000000) != 0);
3507  }
3517  @java.lang.Override
3518  public double getRestartDlAverageRatio() {
3519  return restartDlAverageRatio_;
3520  }
3521 
3522  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
3523  private double restartLbdAverageRatio_;
3528  @java.lang.Override
3529  public boolean hasRestartLbdAverageRatio() {
3530  return ((bitField0_ & 0x80000000) != 0);
3531  }
3536  @java.lang.Override
3537  public double getRestartLbdAverageRatio() {
3538  return restartLbdAverageRatio_;
3539  }
3540 
3541  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3542  private boolean useBlockingRestart_;
3553  @java.lang.Override
3554  public boolean hasUseBlockingRestart() {
3555  return ((bitField1_ & 0x00000001) != 0);
3556  }
3567  @java.lang.Override
3568  public boolean getUseBlockingRestart() {
3569  return useBlockingRestart_;
3570  }
3571 
3572  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3573  private int blockingRestartWindowSize_;
3578  @java.lang.Override
3579  public boolean hasBlockingRestartWindowSize() {
3580  return ((bitField1_ & 0x00000002) != 0);
3581  }
3586  @java.lang.Override
3588  return blockingRestartWindowSize_;
3589  }
3590 
3591  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3592  private double blockingRestartMultiplier_;
3597  @java.lang.Override
3598  public boolean hasBlockingRestartMultiplier() {
3599  return ((bitField1_ & 0x00000004) != 0);
3600  }
3605  @java.lang.Override
3607  return blockingRestartMultiplier_;
3608  }
3609 
3611  private int numConflictsBeforeStrategyChanges_;
3622  @java.lang.Override
3624  return ((bitField1_ & 0x00000008) != 0);
3625  }
3636  @java.lang.Override
3638  return numConflictsBeforeStrategyChanges_;
3639  }
3640 
3641  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3642  private double strategyChangeIncreaseRatio_;
3652  @java.lang.Override
3654  return ((bitField1_ & 0x00000010) != 0);
3655  }
3665  @java.lang.Override
3667  return strategyChangeIncreaseRatio_;
3668  }
3669 
3670  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3671  private double maxTimeInSeconds_;
3681  @java.lang.Override
3682  public boolean hasMaxTimeInSeconds() {
3683  return ((bitField1_ & 0x00000020) != 0);
3684  }
3694  @java.lang.Override
3695  public double getMaxTimeInSeconds() {
3696  return maxTimeInSeconds_;
3697  }
3698 
3699  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3700  private double maxDeterministicTime_;
3711  @java.lang.Override
3712  public boolean hasMaxDeterministicTime() {
3713  return ((bitField1_ & 0x00000040) != 0);
3714  }
3725  @java.lang.Override
3726  public double getMaxDeterministicTime() {
3727  return maxDeterministicTime_;
3728  }
3729 
3730  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3731  private long maxNumberOfConflicts_;
3745  @java.lang.Override
3746  public boolean hasMaxNumberOfConflicts() {
3747  return ((bitField1_ & 0x00000080) != 0);
3748  }
3762  @java.lang.Override
3763  public long getMaxNumberOfConflicts() {
3764  return maxNumberOfConflicts_;
3765  }
3766 
3767  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3768  private long maxMemoryInMb_;
3780  @java.lang.Override
3781  public boolean hasMaxMemoryInMb() {
3782  return ((bitField1_ & 0x00000100) != 0);
3783  }
3795  @java.lang.Override
3796  public long getMaxMemoryInMb() {
3797  return maxMemoryInMb_;
3798  }
3799 
3800  public static final int ABSOLUTE_GAP_LIMIT_FIELD_NUMBER = 159;
3801  private double absoluteGapLimit_;
3819  @java.lang.Override
3820  public boolean hasAbsoluteGapLimit() {
3821  return ((bitField1_ & 0x00000200) != 0);
3822  }
3840  @java.lang.Override
3841  public double getAbsoluteGapLimit() {
3842  return absoluteGapLimit_;
3843  }
3844 
3845  public static final int RELATIVE_GAP_LIMIT_FIELD_NUMBER = 160;
3846  private double relativeGapLimit_;
3851  @java.lang.Override
3852  public boolean hasRelativeGapLimit() {
3853  return ((bitField1_ & 0x00000400) != 0);
3854  }
3859  @java.lang.Override
3860  public double getRelativeGapLimit() {
3861  return relativeGapLimit_;
3862  }
3863 
3864  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3865  private boolean treatBinaryClausesSeparately_;
3876  @java.lang.Override
3878  return ((bitField1_ & 0x00000800) != 0);
3879  }
3890  @java.lang.Override
3892  return treatBinaryClausesSeparately_;
3893  }
3894 
3895  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3896  private int randomSeed_;
3910  @java.lang.Override
3911  public boolean hasRandomSeed() {
3912  return ((bitField1_ & 0x00001000) != 0);
3913  }
3927  @java.lang.Override
3928  public int getRandomSeed() {
3929  return randomSeed_;
3930  }
3931 
3932  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3933  private boolean logSearchProgress_;
3942  @java.lang.Override
3943  public boolean hasLogSearchProgress() {
3944  return ((bitField1_ & 0x00002000) != 0);
3945  }
3954  @java.lang.Override
3955  public boolean getLogSearchProgress() {
3956  return logSearchProgress_;
3957  }
3958 
3959  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3960  private boolean usePbResolution_;
3972  @java.lang.Override
3973  public boolean hasUsePbResolution() {
3974  return ((bitField1_ & 0x00004000) != 0);
3975  }
3987  @java.lang.Override
3988  public boolean getUsePbResolution() {
3989  return usePbResolution_;
3990  }
3991 
3993  private boolean minimizeReductionDuringPbResolution_;
4005  @java.lang.Override
4007  return ((bitField1_ & 0x00008000) != 0);
4008  }
4020  @java.lang.Override
4022  return minimizeReductionDuringPbResolution_;
4023  }
4024 
4025  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
4026  private boolean countAssumptionLevelsInLbd_;
4042  @java.lang.Override
4044  return ((bitField1_ & 0x00010000) != 0);
4045  }
4061  @java.lang.Override
4063  return countAssumptionLevelsInLbd_;
4064  }
4065 
4066  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
4067  private int presolveBveThreshold_;
4078  @java.lang.Override
4079  public boolean hasPresolveBveThreshold() {
4080  return ((bitField1_ & 0x00020000) != 0);
4081  }
4092  @java.lang.Override
4094  return presolveBveThreshold_;
4095  }
4096 
4097  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
4098  private int presolveBveClauseWeight_;
4108  @java.lang.Override
4109  public boolean hasPresolveBveClauseWeight() {
4110  return ((bitField1_ & 0x00040000) != 0);
4111  }
4121  @java.lang.Override
4123  return presolveBveClauseWeight_;
4124  }
4125 
4127  private double presolveProbingDeterministicTimeLimit_;
4137  @java.lang.Override
4139  return ((bitField1_ & 0x00080000) != 0);
4140  }
4150  @java.lang.Override
4152  return presolveProbingDeterministicTimeLimit_;
4153  }
4154 
4155  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
4156  private boolean presolveBlockedClause_;
4166  @java.lang.Override
4167  public boolean hasPresolveBlockedClause() {
4168  return ((bitField1_ & 0x00100000) != 0);
4169  }
4179  @java.lang.Override
4180  public boolean getPresolveBlockedClause() {
4181  return presolveBlockedClause_;
4182  }
4183 
4184  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
4185  private boolean presolveUseBva_;
4194  @java.lang.Override
4195  public boolean hasPresolveUseBva() {
4196  return ((bitField1_ & 0x00200000) != 0);
4197  }
4206  @java.lang.Override
4207  public boolean getPresolveUseBva() {
4208  return presolveUseBva_;
4209  }
4210 
4211  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
4212  private int presolveBvaThreshold_;
4224  @java.lang.Override
4225  public boolean hasPresolveBvaThreshold() {
4226  return ((bitField1_ & 0x00400000) != 0);
4227  }
4239  @java.lang.Override
4241  return presolveBvaThreshold_;
4242  }
4243 
4244  public static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER = 138;
4245  private int maxPresolveIterations_;
4256  @java.lang.Override
4257  public boolean hasMaxPresolveIterations() {
4258  return ((bitField1_ & 0x00800000) != 0);
4259  }
4270  @java.lang.Override
4272  return maxPresolveIterations_;
4273  }
4274 
4275  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
4276  private boolean cpModelPresolve_;
4285  @java.lang.Override
4286  public boolean hasCpModelPresolve() {
4287  return ((bitField1_ & 0x01000000) != 0);
4288  }
4297  @java.lang.Override
4298  public boolean getCpModelPresolve() {
4299  return cpModelPresolve_;
4300  }
4301 
4303  private boolean cpModelPostsolveWithFullSolver_;
4315  @java.lang.Override
4317  return ((bitField1_ & 0x02000000) != 0);
4318  }
4330  @java.lang.Override
4332  return cpModelPostsolveWithFullSolver_;
4333  }
4334 
4336  private int cpModelMaxNumPresolveOperations_;
4346  @java.lang.Override
4348  return ((bitField1_ & 0x04000000) != 0);
4349  }
4359  @java.lang.Override
4361  return cpModelMaxNumPresolveOperations_;
4362  }
4363 
4364  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
4365  private int cpModelProbingLevel_;
4374  @java.lang.Override
4375  public boolean hasCpModelProbingLevel() {
4376  return ((bitField1_ & 0x08000000) != 0);
4377  }
4386  @java.lang.Override
4387  public int getCpModelProbingLevel() {
4388  return cpModelProbingLevel_;
4389  }
4390 
4391  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
4392  private boolean cpModelUseSatPresolve_;
4401  @java.lang.Override
4402  public boolean hasCpModelUseSatPresolve() {
4403  return ((bitField1_ & 0x10000000) != 0);
4404  }
4413  @java.lang.Override
4414  public boolean getCpModelUseSatPresolve() {
4415  return cpModelUseSatPresolve_;
4416  }
4417 
4418  public static final int USE_SAT_INPROCESSING_FIELD_NUMBER = 163;
4419  private boolean useSatInprocessing_;
4424  @java.lang.Override
4425  public boolean hasUseSatInprocessing() {
4426  return ((bitField1_ & 0x20000000) != 0);
4427  }
4432  @java.lang.Override
4433  public boolean getUseSatInprocessing() {
4434  return useSatInprocessing_;
4435  }
4436 
4437  public static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER = 140;
4438  private boolean expandElementConstraints_;
4448  @java.lang.Override
4449  public boolean hasExpandElementConstraints() {
4450  return ((bitField1_ & 0x40000000) != 0);
4451  }
4461  @java.lang.Override
4462  public boolean getExpandElementConstraints() {
4463  return expandElementConstraints_;
4464  }
4465 
4466  public static final int EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER = 143;
4467  private boolean expandAutomatonConstraints_;
4476  @java.lang.Override
4478  return ((bitField1_ & 0x80000000) != 0);
4479  }
4488  @java.lang.Override
4490  return expandAutomatonConstraints_;
4491  }
4492 
4493  public static final int EXPAND_TABLE_CONSTRAINTS_FIELD_NUMBER = 158;
4494  private boolean expandTableConstraints_;
4504  @java.lang.Override
4505  public boolean hasExpandTableConstraints() {
4506  return ((bitField2_ & 0x00000001) != 0);
4507  }
4517  @java.lang.Override
4518  public boolean getExpandTableConstraints() {
4519  return expandTableConstraints_;
4520  }
4521 
4522  public static final int MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER = 145;
4523  private double mergeNoOverlapWorkLimit_;
4536  @java.lang.Override
4537  public boolean hasMergeNoOverlapWorkLimit() {
4538  return ((bitField2_ & 0x00000002) != 0);
4539  }
4552  @java.lang.Override
4553  public double getMergeNoOverlapWorkLimit() {
4554  return mergeNoOverlapWorkLimit_;
4555  }
4556 
4557  public static final int MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER = 146;
4558  private double mergeAtMostOneWorkLimit_;
4563  @java.lang.Override
4564  public boolean hasMergeAtMostOneWorkLimit() {
4565  return ((bitField2_ & 0x00000004) != 0);
4566  }
4571  @java.lang.Override
4572  public double getMergeAtMostOneWorkLimit() {
4573  return mergeAtMostOneWorkLimit_;
4574  }
4575 
4576  public static final int PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER = 147;
4577  private int presolveSubstitutionLevel_;
4589  @java.lang.Override
4590  public boolean hasPresolveSubstitutionLevel() {
4591  return ((bitField2_ & 0x00000008) != 0);
4592  }
4604  @java.lang.Override
4606  return presolveSubstitutionLevel_;
4607  }
4608 
4609  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
4610  private boolean useOptimizationHints_;
4622  @java.lang.Override
4623  public boolean hasUseOptimizationHints() {
4624  return ((bitField2_ & 0x00000010) != 0);
4625  }
4637  @java.lang.Override
4638  public boolean getUseOptimizationHints() {
4639  return useOptimizationHints_;
4640  }
4641 
4642  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
4643  private boolean minimizeCore_;
4652  @java.lang.Override
4653  public boolean hasMinimizeCore() {
4654  return ((bitField2_ & 0x00000020) != 0);
4655  }
4664  @java.lang.Override
4665  public boolean getMinimizeCore() {
4666  return minimizeCore_;
4667  }
4668 
4669  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
4670  private boolean findMultipleCores_;
4680  @java.lang.Override
4681  public boolean hasFindMultipleCores() {
4682  return ((bitField2_ & 0x00000040) != 0);
4683  }
4693  @java.lang.Override
4694  public boolean getFindMultipleCores() {
4695  return findMultipleCores_;
4696  }
4697 
4698  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
4699  private boolean coverOptimization_;
4709  @java.lang.Override
4710  public boolean hasCoverOptimization() {
4711  return ((bitField2_ & 0x00000080) != 0);
4712  }
4722  @java.lang.Override
4723  public boolean getCoverOptimization() {
4724  return coverOptimization_;
4725  }
4726 
4727  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
4728  private int maxSatAssumptionOrder_;
4733  @java.lang.Override public boolean hasMaxSatAssumptionOrder() {
4734  return ((bitField2_ & 0x00000100) != 0);
4735  }
4741  @SuppressWarnings("deprecation")
4744  }
4745 
4747  private boolean maxSatReverseAssumptionOrder_;
4757  @java.lang.Override
4759  return ((bitField2_ & 0x00000200) != 0);
4760  }
4770  @java.lang.Override
4772  return maxSatReverseAssumptionOrder_;
4773  }
4774 
4775  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
4776  private int maxSatStratification_;
4781  @java.lang.Override public boolean hasMaxSatStratification() {
4782  return ((bitField2_ & 0x00000400) != 0);
4783  }
4789  @SuppressWarnings("deprecation")
4792  }
4793 
4795  private boolean usePrecedencesInDisjunctiveConstraint_;
4811  @java.lang.Override
4813  return ((bitField2_ & 0x00000800) != 0);
4814  }
4830  @java.lang.Override
4832  return usePrecedencesInDisjunctiveConstraint_;
4833  }
4834 
4836  private boolean useOverloadCheckerInCumulativeConstraint_;
4850  @java.lang.Override
4852  return ((bitField2_ & 0x00001000) != 0);
4853  }
4867  @java.lang.Override
4869  return useOverloadCheckerInCumulativeConstraint_;
4870  }
4871 
4873  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
4887  @java.lang.Override
4889  return ((bitField2_ & 0x00002000) != 0);
4890  }
4904  @java.lang.Override
4906  return useTimetableEdgeFindingInCumulativeConstraint_;
4907  }
4908 
4910  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
4926  @java.lang.Override
4928  return ((bitField2_ & 0x00004000) != 0);
4929  }
4945  @java.lang.Override
4947  return useDisjunctiveConstraintInCumulativeConstraint_;
4948  }
4949 
4950  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
4951  private int linearizationLevel_;
4963  @java.lang.Override
4964  public boolean hasLinearizationLevel() {
4965  return ((bitField2_ & 0x00008000) != 0);
4966  }
4978  @java.lang.Override
4979  public int getLinearizationLevel() {
4980  return linearizationLevel_;
4981  }
4982 
4983  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
4984  private int booleanEncodingLevel_;
4994  @java.lang.Override
4995  public boolean hasBooleanEncodingLevel() {
4996  return ((bitField2_ & 0x00010000) != 0);
4997  }
5007  @java.lang.Override
5009  return booleanEncodingLevel_;
5010  }
5011 
5012  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
5013  private int maxNumCuts_;
5025  @java.lang.Override
5026  public boolean hasMaxNumCuts() {
5027  return ((bitField2_ & 0x00020000) != 0);
5028  }
5040  @java.lang.Override
5041  public int getMaxNumCuts() {
5042  return maxNumCuts_;
5043  }
5044 
5045  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
5046  private boolean onlyAddCutsAtLevelZero_;
5056  @java.lang.Override
5057  public boolean hasOnlyAddCutsAtLevelZero() {
5058  return ((bitField2_ & 0x00040000) != 0);
5059  }
5069  @java.lang.Override
5070  public boolean getOnlyAddCutsAtLevelZero() {
5071  return onlyAddCutsAtLevelZero_;
5072  }
5073 
5074  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
5075  private boolean addKnapsackCuts_;
5086  @java.lang.Override
5087  public boolean hasAddKnapsackCuts() {
5088  return ((bitField2_ & 0x00080000) != 0);
5089  }
5100  @java.lang.Override
5101  public boolean getAddKnapsackCuts() {
5102  return addKnapsackCuts_;
5103  }
5104 
5105  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
5106  private boolean addCgCuts_;
5116  @java.lang.Override
5117  public boolean hasAddCgCuts() {
5118  return ((bitField2_ & 0x00100000) != 0);
5119  }
5129  @java.lang.Override
5130  public boolean getAddCgCuts() {
5131  return addCgCuts_;
5132  }
5133 
5134  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
5135  private boolean addMirCuts_;
5145  @java.lang.Override
5146  public boolean hasAddMirCuts() {
5147  return ((bitField2_ & 0x00200000) != 0);
5148  }
5158  @java.lang.Override
5159  public boolean getAddMirCuts() {
5160  return addMirCuts_;
5161  }
5162 
5163  public static final int MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER = 148;
5164  private int maxAllDiffCutSize_;
5175  @java.lang.Override
5176  public boolean hasMaxAllDiffCutSize() {
5177  return ((bitField2_ & 0x00400000) != 0);
5178  }
5189  @java.lang.Override
5190  public int getMaxAllDiffCutSize() {
5191  return maxAllDiffCutSize_;
5192  }
5193 
5194  public static final int ADD_LIN_MAX_CUTS_FIELD_NUMBER = 152;
5195  private boolean addLinMaxCuts_;
5206  @java.lang.Override
5207  public boolean hasAddLinMaxCuts() {
5208  return ((bitField2_ & 0x00800000) != 0);
5209  }
5220  @java.lang.Override
5221  public boolean getAddLinMaxCuts() {
5222  return addLinMaxCuts_;
5223  }
5224 
5225  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
5226  private int maxIntegerRoundingScaling_;
5241  @java.lang.Override
5242  public boolean hasMaxIntegerRoundingScaling() {
5243  return ((bitField2_ & 0x01000000) != 0);
5244  }
5259  @java.lang.Override
5261  return maxIntegerRoundingScaling_;
5262  }
5263 
5264  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
5265  private boolean addLpConstraintsLazily_;
5277  @java.lang.Override
5278  public boolean hasAddLpConstraintsLazily() {
5279  return ((bitField2_ & 0x02000000) != 0);
5280  }
5292  @java.lang.Override
5293  public boolean getAddLpConstraintsLazily() {
5294  return addLpConstraintsLazily_;
5295  }
5296 
5298  private double minOrthogonalityForLpConstraints_;
5311  @java.lang.Override
5313  return ((bitField2_ & 0x04000000) != 0);
5314  }
5327  @java.lang.Override
5329  return minOrthogonalityForLpConstraints_;
5330  }
5331 
5332  public static final int MAX_CUT_ROUNDS_AT_LEVEL_ZERO_FIELD_NUMBER = 154;
5333  private int maxCutRoundsAtLevelZero_;
5342  @java.lang.Override
5343  public boolean hasMaxCutRoundsAtLevelZero() {
5344  return ((bitField2_ & 0x08000000) != 0);
5345  }
5354  @java.lang.Override
5356  return maxCutRoundsAtLevelZero_;
5357  }
5358 
5359  public static final int MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER = 121;
5360  private int maxConsecutiveInactiveCount_;
5371  @java.lang.Override
5373  return ((bitField2_ & 0x10000000) != 0);
5374  }
5385  @java.lang.Override
5387  return maxConsecutiveInactiveCount_;
5388  }
5389 
5390  public static final int CUT_MAX_ACTIVE_COUNT_VALUE_FIELD_NUMBER = 155;
5391  private double cutMaxActiveCountValue_;
5402  @java.lang.Override
5403  public boolean hasCutMaxActiveCountValue() {
5404  return ((bitField2_ & 0x20000000) != 0);
5405  }
5416  @java.lang.Override
5417  public double getCutMaxActiveCountValue() {
5418  return cutMaxActiveCountValue_;
5419  }
5420 
5421  public static final int CUT_ACTIVE_COUNT_DECAY_FIELD_NUMBER = 156;
5422  private double cutActiveCountDecay_;
5427  @java.lang.Override
5428  public boolean hasCutActiveCountDecay() {
5429  return ((bitField2_ & 0x40000000) != 0);
5430  }
5435  @java.lang.Override
5436  public double getCutActiveCountDecay() {
5437  return cutActiveCountDecay_;
5438  }
5439 
5440  public static final int CUT_CLEANUP_TARGET_FIELD_NUMBER = 157;
5441  private int cutCleanupTarget_;
5450  @java.lang.Override
5451  public boolean hasCutCleanupTarget() {
5452  return ((bitField2_ & 0x80000000) != 0);
5453  }
5462  @java.lang.Override
5463  public int getCutCleanupTarget() {
5464  return cutCleanupTarget_;
5465  }
5466 
5467  public static final int NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER = 122;
5468  private int newConstraintsBatchSize_;
5478  @java.lang.Override
5479  public boolean hasNewConstraintsBatchSize() {
5480  return ((bitField3_ & 0x00000001) != 0);
5481  }
5491  @java.lang.Override
5493  return newConstraintsBatchSize_;
5494  }
5495 
5496  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
5497  private int searchBranching_;
5502  @java.lang.Override public boolean hasSearchBranching() {
5503  return ((bitField3_ & 0x00000002) != 0);
5504  }
5510  @SuppressWarnings("deprecation")
5512  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
5513  }
5514 
5515  public static final int HINT_CONFLICT_LIMIT_FIELD_NUMBER = 153;
5516  private int hintConflictLimit_;
5526  @java.lang.Override
5527  public boolean hasHintConflictLimit() {
5528  return ((bitField3_ & 0x00000004) != 0);
5529  }
5539  @java.lang.Override
5540  public int getHintConflictLimit() {
5541  return hintConflictLimit_;
5542  }
5543 
5544  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
5545  private boolean exploitIntegerLpSolution_;
5557  @java.lang.Override
5558  public boolean hasExploitIntegerLpSolution() {
5559  return ((bitField3_ & 0x00000008) != 0);
5560  }
5572  @java.lang.Override
5573  public boolean getExploitIntegerLpSolution() {
5574  return exploitIntegerLpSolution_;
5575  }
5576 
5577  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
5578  private boolean exploitAllLpSolution_;
5589  @java.lang.Override
5590  public boolean hasExploitAllLpSolution() {
5591  return ((bitField3_ & 0x00000010) != 0);
5592  }
5603  @java.lang.Override
5604  public boolean getExploitAllLpSolution() {
5605  return exploitAllLpSolution_;
5606  }
5607 
5608  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
5609  private boolean exploitBestSolution_;
5618  @java.lang.Override
5619  public boolean hasExploitBestSolution() {
5620  return ((bitField3_ & 0x00000020) != 0);
5621  }
5630  @java.lang.Override
5631  public boolean getExploitBestSolution() {
5632  return exploitBestSolution_;
5633  }
5634 
5635  public static final int EXPLOIT_RELAXATION_SOLUTION_FIELD_NUMBER = 161;
5636  private boolean exploitRelaxationSolution_;
5647  @java.lang.Override
5648  public boolean hasExploitRelaxationSolution() {
5649  return ((bitField3_ & 0x00000040) != 0);
5650  }
5661  @java.lang.Override
5662  public boolean getExploitRelaxationSolution() {
5663  return exploitRelaxationSolution_;
5664  }
5665 
5666  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
5667  private boolean exploitObjective_;
5677  @java.lang.Override
5678  public boolean hasExploitObjective() {
5679  return ((bitField3_ & 0x00000080) != 0);
5680  }
5690  @java.lang.Override
5691  public boolean getExploitObjective() {
5692  return exploitObjective_;
5693  }
5694 
5695  public static final int PROBING_PERIOD_AT_ROOT_FIELD_NUMBER = 142;
5696  private long probingPeriodAtRoot_;
5707  @java.lang.Override
5708  public boolean hasProbingPeriodAtRoot() {
5709  return ((bitField3_ & 0x00000100) != 0);
5710  }
5721  @java.lang.Override
5722  public long getProbingPeriodAtRoot() {
5723  return probingPeriodAtRoot_;
5724  }
5725 
5726  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
5727  private long pseudoCostReliabilityThreshold_;
5737  @java.lang.Override
5739  return ((bitField3_ & 0x00000200) != 0);
5740  }
5750  @java.lang.Override
5752  return pseudoCostReliabilityThreshold_;
5753  }
5754 
5755  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
5756  private boolean optimizeWithCore_;
5768  @java.lang.Override
5769  public boolean hasOptimizeWithCore() {
5770  return ((bitField3_ & 0x00000400) != 0);
5771  }
5783  @java.lang.Override
5784  public boolean getOptimizeWithCore() {
5785  return optimizeWithCore_;
5786  }
5787 
5788  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
5789  private int binarySearchNumConflicts_;
5801  @java.lang.Override
5802  public boolean hasBinarySearchNumConflicts() {
5803  return ((bitField3_ & 0x00000800) != 0);
5804  }
5816  @java.lang.Override
5818  return binarySearchNumConflicts_;
5819  }
5820 
5821  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
5822  private boolean optimizeWithMaxHs_;
5836  @java.lang.Override
5837  public boolean hasOptimizeWithMaxHs() {
5838  return ((bitField3_ & 0x00001000) != 0);
5839  }
5853  @java.lang.Override
5854  public boolean getOptimizeWithMaxHs() {
5855  return optimizeWithMaxHs_;
5856  }
5857 
5858  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
5859  private boolean enumerateAllSolutions_;
5873  @java.lang.Override
5874  public boolean hasEnumerateAllSolutions() {
5875  return ((bitField3_ & 0x00002000) != 0);
5876  }
5890  @java.lang.Override
5891  public boolean getEnumerateAllSolutions() {
5892  return enumerateAllSolutions_;
5893  }
5894 
5896  private boolean fillTightenedDomainsInResponse_;
5909  @java.lang.Override
5911  return ((bitField3_ & 0x00004000) != 0);
5912  }
5925  @java.lang.Override
5927  return fillTightenedDomainsInResponse_;
5928  }
5929 
5930  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
5931  private boolean instantiateAllVariables_;
5941  @java.lang.Override
5942  public boolean hasInstantiateAllVariables() {
5943  return ((bitField3_ & 0x00008000) != 0);
5944  }
5954  @java.lang.Override
5955  public boolean getInstantiateAllVariables() {
5956  return instantiateAllVariables_;
5957  }
5958 
5960  private boolean autoDetectGreaterThanAtLeastOneOf_;
5972  @java.lang.Override
5974  return ((bitField3_ & 0x00010000) != 0);
5975  }
5987  @java.lang.Override
5989  return autoDetectGreaterThanAtLeastOneOf_;
5990  }
5991 
5992  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
5993  private boolean stopAfterFirstSolution_;
6002  @java.lang.Override
6003  public boolean hasStopAfterFirstSolution() {
6004  return ((bitField3_ & 0x00020000) != 0);
6005  }
6014  @java.lang.Override
6015  public boolean getStopAfterFirstSolution() {
6016  return stopAfterFirstSolution_;
6017  }
6018 
6019  public static final int STOP_AFTER_PRESOLVE_FIELD_NUMBER = 149;
6020  private boolean stopAfterPresolve_;
6030  @java.lang.Override
6031  public boolean hasStopAfterPresolve() {
6032  return ((bitField3_ & 0x00040000) != 0);
6033  }
6043  @java.lang.Override
6044  public boolean getStopAfterPresolve() {
6045  return stopAfterPresolve_;
6046  }
6047 
6048  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
6049  private int numSearchWorkers_;
6063  @java.lang.Override
6064  public boolean hasNumSearchWorkers() {
6065  return ((bitField3_ & 0x00080000) != 0);
6066  }
6080  @java.lang.Override
6081  public int getNumSearchWorkers() {
6082  return numSearchWorkers_;
6083  }
6084 
6085  public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
6086  private boolean interleaveSearch_;
6099  @java.lang.Override
6100  public boolean hasInterleaveSearch() {
6101  return ((bitField3_ & 0x00100000) != 0);
6102  }
6115  @java.lang.Override
6116  public boolean getInterleaveSearch() {
6117  return interleaveSearch_;
6118  }
6119 
6120  public static final int INTERLEAVE_BATCH_SIZE_FIELD_NUMBER = 134;
6121  private int interleaveBatchSize_;
6126  @java.lang.Override
6127  public boolean hasInterleaveBatchSize() {
6128  return ((bitField3_ & 0x00200000) != 0);
6129  }
6134  @java.lang.Override
6135  public int getInterleaveBatchSize() {
6136  return interleaveBatchSize_;
6137  }
6138 
6140  private boolean reduceMemoryUsageInInterleaveMode_;
6149  @java.lang.Override
6151  return ((bitField3_ & 0x00400000) != 0);
6152  }
6161  @java.lang.Override
6163  return reduceMemoryUsageInInterleaveMode_;
6164  }
6165 
6166  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
6167  private boolean shareObjectiveBounds_;
6176  @java.lang.Override
6177  public boolean hasShareObjectiveBounds() {
6178  return ((bitField3_ & 0x00800000) != 0);
6179  }
6188  @java.lang.Override
6189  public boolean getShareObjectiveBounds() {
6190  return shareObjectiveBounds_;
6191  }
6192 
6193  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
6194  private boolean shareLevelZeroBounds_;
6203  @java.lang.Override
6204  public boolean hasShareLevelZeroBounds() {
6205  return ((bitField3_ & 0x01000000) != 0);
6206  }
6215  @java.lang.Override
6216  public boolean getShareLevelZeroBounds() {
6217  return shareLevelZeroBounds_;
6218  }
6219 
6220  public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
6221  private boolean useLnsOnly_;
6230  @java.lang.Override
6231  public boolean hasUseLnsOnly() {
6232  return ((bitField3_ & 0x02000000) != 0);
6233  }
6242  @java.lang.Override
6243  public boolean getUseLnsOnly() {
6244  return useLnsOnly_;
6245  }
6246 
6247  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
6248  private boolean lnsFocusOnDecisionVariables_;
6253  @java.lang.Override
6255  return ((bitField3_ & 0x04000000) != 0);
6256  }
6261  @java.lang.Override
6263  return lnsFocusOnDecisionVariables_;
6264  }
6265 
6266  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
6267  private boolean useRinsLns_;
6276  @java.lang.Override
6277  public boolean hasUseRinsLns() {
6278  return ((bitField3_ & 0x08000000) != 0);
6279  }
6288  @java.lang.Override
6289  public boolean getUseRinsLns() {
6290  return useRinsLns_;
6291  }
6292 
6293  public static final int USE_FEASIBILITY_PUMP_FIELD_NUMBER = 164;
6294  private boolean useFeasibilityPump_;
6303  @java.lang.Override
6304  public boolean hasUseFeasibilityPump() {
6305  return ((bitField3_ & 0x10000000) != 0);
6306  }
6315  @java.lang.Override
6316  public boolean getUseFeasibilityPump() {
6317  return useFeasibilityPump_;
6318  }
6319 
6320  public static final int FP_ROUNDING_FIELD_NUMBER = 165;
6321  private int fpRounding_;
6326  @java.lang.Override public boolean hasFpRounding() {
6327  return ((bitField3_ & 0x20000000) != 0);
6328  }
6334  @SuppressWarnings("deprecation")
6336  return result == null ? com.google.ortools.sat.SatParameters.FPRoundingMethod.PROPAGATION_ASSISTED : result;
6337  }
6338 
6339  public static final int USE_RELAXATION_LNS_FIELD_NUMBER = 150;
6340  private boolean useRelaxationLns_;
6350  @java.lang.Override
6351  public boolean hasUseRelaxationLns() {
6352  return ((bitField3_ & 0x40000000) != 0);
6353  }
6363  @java.lang.Override
6364  public boolean getUseRelaxationLns() {
6365  return useRelaxationLns_;
6366  }
6367 
6368  public static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER = 137;
6369  private boolean diversifyLnsParams_;
6378  @java.lang.Override
6379  public boolean hasDiversifyLnsParams() {
6380  return ((bitField3_ & 0x80000000) != 0);
6381  }
6390  @java.lang.Override
6391  public boolean getDiversifyLnsParams() {
6392  return diversifyLnsParams_;
6393  }
6394 
6395  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
6396  private boolean randomizeSearch_;
6405  @java.lang.Override
6406  public boolean hasRandomizeSearch() {
6407  return ((bitField4_ & 0x00000001) != 0);
6408  }
6417  @java.lang.Override
6418  public boolean getRandomizeSearch() {
6419  return randomizeSearch_;
6420  }
6421 
6422  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
6423  private long searchRandomizationTolerance_;
6438  @java.lang.Override
6440  return ((bitField4_ & 0x00000002) != 0);
6441  }
6456  @java.lang.Override
6458  return searchRandomizationTolerance_;
6459  }
6460 
6461  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
6462  private boolean useOptionalVariables_;
6473  @java.lang.Override
6474  public boolean hasUseOptionalVariables() {
6475  return ((bitField4_ & 0x00000004) != 0);
6476  }
6487  @java.lang.Override
6488  public boolean getUseOptionalVariables() {
6489  return useOptionalVariables_;
6490  }
6491 
6492  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
6493  private boolean useExactLpReason_;
6505  @java.lang.Override
6506  public boolean hasUseExactLpReason() {
6507  return ((bitField4_ & 0x00000008) != 0);
6508  }
6520  @java.lang.Override
6521  public boolean getUseExactLpReason() {
6522  return useExactLpReason_;
6523  }
6524 
6525  public static final int USE_BRANCHING_IN_LP_FIELD_NUMBER = 139;
6526  private boolean useBranchingInLp_;
6537  @java.lang.Override
6538  public boolean hasUseBranchingInLp() {
6539  return ((bitField4_ & 0x00000010) != 0);
6540  }
6551  @java.lang.Override
6552  public boolean getUseBranchingInLp() {
6553  return useBranchingInLp_;
6554  }
6555 
6556  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
6557  private boolean useCombinedNoOverlap_;
6568  @java.lang.Override
6569  public boolean hasUseCombinedNoOverlap() {
6570  return ((bitField4_ & 0x00000020) != 0);
6571  }
6582  @java.lang.Override
6583  public boolean getUseCombinedNoOverlap() {
6584  return useCombinedNoOverlap_;
6585  }
6586 
6587  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
6588  private boolean catchSigintSignal_;
6599  @java.lang.Override
6600  public boolean hasCatchSigintSignal() {
6601  return ((bitField4_ & 0x00000040) != 0);
6602  }
6613  @java.lang.Override
6614  public boolean getCatchSigintSignal() {
6615  return catchSigintSignal_;
6616  }
6617 
6618  public static final int USE_IMPLIED_BOUNDS_FIELD_NUMBER = 144;
6619  private boolean useImpliedBounds_;
6630  @java.lang.Override
6631  public boolean hasUseImpliedBounds() {
6632  return ((bitField4_ & 0x00000080) != 0);
6633  }
6644  @java.lang.Override
6645  public boolean getUseImpliedBounds() {
6646  return useImpliedBounds_;
6647  }
6648 
6649  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
6650  private double mipMaxBound_;
6661  @java.lang.Override
6662  public boolean hasMipMaxBound() {
6663  return ((bitField4_ & 0x00000100) != 0);
6664  }
6675  @java.lang.Override
6676  public double getMipMaxBound() {
6677  return mipMaxBound_;
6678  }
6679 
6680  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
6681  private double mipVarScaling_;
6692  @java.lang.Override
6693  public boolean hasMipVarScaling() {
6694  return ((bitField4_ & 0x00000200) != 0);
6695  }
6706  @java.lang.Override
6707  public double getMipVarScaling() {
6708  return mipVarScaling_;
6709  }
6710 
6711  public static final int MIP_AUTOMATICALLY_SCALE_VARIABLES_FIELD_NUMBER = 166;
6712  private boolean mipAutomaticallyScaleVariables_;
6725  @java.lang.Override
6727  return ((bitField4_ & 0x00000400) != 0);
6728  }
6741  @java.lang.Override
6743  return mipAutomaticallyScaleVariables_;
6744  }
6745 
6746  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
6747  private double mipWantedPrecision_;
6764  @java.lang.Override
6765  public boolean hasMipWantedPrecision() {
6766  return ((bitField4_ & 0x00000800) != 0);
6767  }
6784  @java.lang.Override
6785  public double getMipWantedPrecision() {
6786  return mipWantedPrecision_;
6787  }
6788 
6789  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
6790  private int mipMaxActivityExponent_;
6805  @java.lang.Override
6806  public boolean hasMipMaxActivityExponent() {
6807  return ((bitField4_ & 0x00001000) != 0);
6808  }
6823  @java.lang.Override
6825  return mipMaxActivityExponent_;
6826  }
6827 
6828  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
6829  private double mipCheckPrecision_;
6841  @java.lang.Override
6842  public boolean hasMipCheckPrecision() {
6843  return ((bitField4_ & 0x00002000) != 0);
6844  }
6856  @java.lang.Override
6857  public double getMipCheckPrecision() {
6858  return mipCheckPrecision_;
6859  }
6860 
6861  private byte memoizedIsInitialized = -1;
6862  @java.lang.Override
6863  public final boolean isInitialized() {
6864  byte isInitialized = memoizedIsInitialized;
6865  if (isInitialized == 1) return true;
6866  if (isInitialized == 0) return false;
6867 
6868  memoizedIsInitialized = 1;
6869  return true;
6870  }
6871 
6872  @java.lang.Override
6873  public void writeTo(com.google.protobuf.CodedOutputStream output)
6874  throws java.io.IOException {
6875  if (((bitField0_ & 0x00000001) != 0)) {
6876  output.writeEnum(1, preferredVariableOrder_);
6877  }
6878  if (((bitField0_ & 0x00000002) != 0)) {
6879  output.writeEnum(2, initialPolarity_);
6880  }
6881  if (((bitField0_ & 0x00000100) != 0)) {
6882  output.writeEnum(4, minimizationAlgorithm_);
6883  }
6884  if (((bitField0_ & 0x00000800) != 0)) {
6885  output.writeInt32(11, clauseCleanupPeriod_);
6886  }
6887  if (((bitField0_ & 0x00001000) != 0)) {
6888  output.writeInt32(13, clauseCleanupTarget_);
6889  }
6890  if (((bitField0_ & 0x00100000) != 0)) {
6891  output.writeDouble(15, variableActivityDecay_);
6892  }
6893  if (((bitField0_ & 0x00200000) != 0)) {
6894  output.writeDouble(16, maxVariableActivityValue_);
6895  }
6896  if (((bitField0_ & 0x02000000) != 0)) {
6897  output.writeDouble(17, clauseActivityDecay_);
6898  }
6899  if (((bitField0_ & 0x04000000) != 0)) {
6900  output.writeDouble(18, maxClauseActivityValue_);
6901  }
6902  if (((bitField0_ & 0x00400000) != 0)) {
6903  output.writeDouble(22, glucoseMaxDecay_);
6904  }
6905  if (((bitField0_ & 0x00800000) != 0)) {
6906  output.writeDouble(23, glucoseDecayIncrement_);
6907  }
6908  if (((bitField0_ & 0x01000000) != 0)) {
6909  output.writeInt32(24, glucoseDecayIncrementPeriod_);
6910  }
6911  if (((bitField0_ & 0x10000000) != 0)) {
6912  output.writeInt32(30, restartPeriod_);
6913  }
6914  if (((bitField1_ & 0x00001000) != 0)) {
6915  output.writeInt32(31, randomSeed_);
6916  }
6917  if (((bitField0_ & 0x00000010) != 0)) {
6918  output.writeDouble(32, randomBranchesRatio_);
6919  }
6920  if (((bitField1_ & 0x00000800) != 0)) {
6921  output.writeBool(33, treatBinaryClausesSeparately_);
6922  }
6923  if (((bitField0_ & 0x00000200) != 0)) {
6924  output.writeEnum(34, binaryMinimizationAlgorithm_);
6925  }
6926  if (((bitField2_ & 0x00000010) != 0)) {
6927  output.writeBool(35, useOptimizationHints_);
6928  }
6929  if (((bitField1_ & 0x00000020) != 0)) {
6930  output.writeDouble(36, maxTimeInSeconds_);
6931  }
6932  if (((bitField1_ & 0x00000080) != 0)) {
6933  output.writeInt64(37, maxNumberOfConflicts_);
6934  }
6935  if (((bitField1_ & 0x00000100) != 0)) {
6936  output.writeInt64(40, maxMemoryInMb_);
6937  }
6938  if (((bitField1_ & 0x00002000) != 0)) {
6939  output.writeBool(41, logSearchProgress_);
6940  }
6941  if (((bitField1_ & 0x00004000) != 0)) {
6942  output.writeBool(43, usePbResolution_);
6943  }
6944  if (((bitField0_ & 0x00000004) != 0)) {
6945  output.writeBool(44, usePhaseSaving_);
6946  }
6947  if (((bitField0_ & 0x00000008) != 0)) {
6948  output.writeDouble(45, randomPolarityRatio_);
6949  }
6950  if (((bitField0_ & 0x00010000) != 0)) {
6951  output.writeInt32(46, pbCleanupIncrement_);
6952  }
6953  if (((bitField0_ & 0x00020000) != 0)) {
6954  output.writeDouble(47, pbCleanupRatio_);
6955  }
6956  if (((bitField1_ & 0x00008000) != 0)) {
6957  output.writeBool(48, minimizeReductionDuringPbResolution_);
6958  }
6959  if (((bitField1_ & 0x00010000) != 0)) {
6960  output.writeBool(49, countAssumptionLevelsInLbd_);
6961  }
6962  if (((bitField2_ & 0x00000020) != 0)) {
6963  output.writeBool(50, minimizeCore_);
6964  }
6965  if (((bitField2_ & 0x00000100) != 0)) {
6966  output.writeEnum(51, maxSatAssumptionOrder_);
6967  }
6968  if (((bitField2_ & 0x00000200) != 0)) {
6969  output.writeBool(52, maxSatReverseAssumptionOrder_);
6970  }
6971  if (((bitField2_ & 0x00000400) != 0)) {
6972  output.writeEnum(53, maxSatStratification_);
6973  }
6974  if (((bitField1_ & 0x00020000) != 0)) {
6975  output.writeInt32(54, presolveBveThreshold_);
6976  }
6977  if (((bitField1_ & 0x00040000) != 0)) {
6978  output.writeInt32(55, presolveBveClauseWeight_);
6979  }
6980  if (((bitField0_ & 0x00000400) != 0)) {
6981  output.writeBool(56, subsumptionDuringConflictAnalysis_);
6982  }
6983  if (((bitField1_ & 0x00080000) != 0)) {
6984  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
6985  }
6986  if (((bitField0_ & 0x00002000) != 0)) {
6987  output.writeEnum(58, clauseCleanupProtection_);
6988  }
6989  if (((bitField0_ & 0x00004000) != 0)) {
6990  output.writeInt32(59, clauseCleanupLbdBound_);
6991  }
6992  if (((bitField0_ & 0x00008000) != 0)) {
6993  output.writeEnum(60, clauseCleanupOrdering_);
6994  }
6995  for (int i = 0; i < restartAlgorithms_.size(); i++) {
6996  output.writeEnum(61, restartAlgorithms_.get(i));
6997  }
6998  if (((bitField0_ & 0x20000000) != 0)) {
6999  output.writeInt32(62, restartRunningWindowSize_);
7000  }
7001  if (((bitField0_ & 0x40000000) != 0)) {
7002  output.writeDouble(63, restartDlAverageRatio_);
7003  }
7004  if (((bitField1_ & 0x00000001) != 0)) {
7005  output.writeBool(64, useBlockingRestart_);
7006  }
7007  if (((bitField1_ & 0x00000002) != 0)) {
7008  output.writeInt32(65, blockingRestartWindowSize_);
7009  }
7010  if (((bitField1_ & 0x00000004) != 0)) {
7011  output.writeDouble(66, blockingRestartMultiplier_);
7012  }
7013  if (((bitField1_ & 0x00000040) != 0)) {
7014  output.writeDouble(67, maxDeterministicTime_);
7015  }
7016  if (((bitField1_ & 0x00000008) != 0)) {
7017  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
7018  }
7019  if (((bitField1_ & 0x00000010) != 0)) {
7020  output.writeDouble(69, strategyChangeIncreaseRatio_);
7021  }
7022  if (((bitField0_ & 0x08000000) != 0)) {
7023  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
7024  }
7025  if (((bitField0_ & 0x80000000) != 0)) {
7026  output.writeDouble(71, restartLbdAverageRatio_);
7027  }
7028  if (((bitField1_ & 0x00200000) != 0)) {
7029  output.writeBool(72, presolveUseBva_);
7030  }
7031  if (((bitField1_ & 0x00400000) != 0)) {
7032  output.writeInt32(73, presolveBvaThreshold_);
7033  }
7034  if (((bitField2_ & 0x00000800) != 0)) {
7035  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
7036  }
7037  if (((bitField0_ & 0x00000020) != 0)) {
7038  output.writeBool(75, useErwaHeuristic_);
7039  }
7040  if (((bitField0_ & 0x00000040) != 0)) {
7041  output.writeDouble(76, initialVariablesActivity_);
7042  }
7043  if (((bitField0_ & 0x00000080) != 0)) {
7044  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
7045  }
7046  if (((bitField2_ & 0x00001000) != 0)) {
7047  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
7048  }
7049  if (((bitField2_ & 0x00002000) != 0)) {
7050  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
7051  }
7052  if (((bitField2_ & 0x00004000) != 0)) {
7053  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
7054  }
7055  if (((bitField3_ & 0x00000002) != 0)) {
7056  output.writeEnum(82, searchBranching_);
7057  }
7058  if (((bitField3_ & 0x00000400) != 0)) {
7059  output.writeBool(83, optimizeWithCore_);
7060  }
7061  if (((bitField2_ & 0x00000040) != 0)) {
7062  output.writeBool(84, findMultipleCores_);
7063  }
7064  if (((bitField3_ & 0x00001000) != 0)) {
7065  output.writeBool(85, optimizeWithMaxHs_);
7066  }
7067  if (((bitField1_ & 0x01000000) != 0)) {
7068  output.writeBool(86, cpModelPresolve_);
7069  }
7070  if (((bitField3_ & 0x00002000) != 0)) {
7071  output.writeBool(87, enumerateAllSolutions_);
7072  }
7073  if (((bitField1_ & 0x00100000) != 0)) {
7074  output.writeBool(88, presolveBlockedClause_);
7075  }
7076  if (((bitField2_ & 0x00000080) != 0)) {
7077  output.writeBool(89, coverOptimization_);
7078  }
7079  if (((bitField2_ & 0x00008000) != 0)) {
7080  output.writeInt32(90, linearizationLevel_);
7081  }
7082  if (((bitField2_ & 0x00020000) != 0)) {
7083  output.writeInt32(91, maxNumCuts_);
7084  }
7085  if (((bitField2_ & 0x00040000) != 0)) {
7086  output.writeBool(92, onlyAddCutsAtLevelZero_);
7087  }
7088  if (((bitField1_ & 0x10000000) != 0)) {
7089  output.writeBool(93, cpModelUseSatPresolve_);
7090  }
7091  if (((bitField3_ & 0x00000008) != 0)) {
7092  output.writeBool(94, exploitIntegerLpSolution_);
7093  }
7094  if (((bitField3_ & 0x00010000) != 0)) {
7095  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
7096  }
7097  if (((bitField0_ & 0x00040000) != 0)) {
7098  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
7099  }
7100  if (((bitField0_ & 0x00080000) != 0)) {
7101  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
7102  }
7103  if (((bitField3_ & 0x00020000) != 0)) {
7104  output.writeBool(98, stopAfterFirstSolution_);
7105  }
7106  if (((bitField3_ & 0x00000800) != 0)) {
7107  output.writeInt32(99, binarySearchNumConflicts_);
7108  }
7109  if (((bitField3_ & 0x00080000) != 0)) {
7110  output.writeInt32(100, numSearchWorkers_);
7111  }
7112  if (((bitField3_ & 0x02000000) != 0)) {
7113  output.writeBool(101, useLnsOnly_);
7114  }
7115  if (((bitField4_ & 0x00000001) != 0)) {
7116  output.writeBool(103, randomizeSearch_);
7117  }
7118  if (((bitField4_ & 0x00000002) != 0)) {
7119  output.writeInt64(104, searchRandomizationTolerance_);
7120  }
7121  if (((bitField3_ & 0x04000000) != 0)) {
7122  output.writeBool(105, lnsFocusOnDecisionVariables_);
7123  }
7124  if (((bitField3_ & 0x00008000) != 0)) {
7125  output.writeBool(106, instantiateAllVariables_);
7126  }
7127  if (((bitField2_ & 0x00010000) != 0)) {
7128  output.writeInt32(107, booleanEncodingLevel_);
7129  }
7130  if (((bitField4_ & 0x00000004) != 0)) {
7131  output.writeBool(108, useOptionalVariables_);
7132  }
7133  if (((bitField4_ & 0x00000008) != 0)) {
7134  output.writeBool(109, useExactLpReason_);
7135  }
7136  if (((bitField1_ & 0x08000000) != 0)) {
7137  output.writeInt32(110, cpModelProbingLevel_);
7138  }
7139  if (((bitField2_ & 0x00080000) != 0)) {
7140  output.writeBool(111, addKnapsackCuts_);
7141  }
7142  if (((bitField2_ & 0x02000000) != 0)) {
7143  output.writeBool(112, addLpConstraintsLazily_);
7144  }
7145  if (((bitField3_ & 0x00800000) != 0)) {
7146  output.writeBool(113, shareObjectiveBounds_);
7147  }
7148  if (((bitField3_ & 0x01000000) != 0)) {
7149  output.writeBool(114, shareLevelZeroBounds_);
7150  }
7151  if (((bitField2_ & 0x04000000) != 0)) {
7152  output.writeDouble(115, minOrthogonalityForLpConstraints_);
7153  }
7154  if (((bitField3_ & 0x00000010) != 0)) {
7155  output.writeBool(116, exploitAllLpSolution_);
7156  }
7157  if (((bitField2_ & 0x00100000) != 0)) {
7158  output.writeBool(117, addCgCuts_);
7159  }
7160  if (((bitField2_ & 0x01000000) != 0)) {
7161  output.writeInt32(119, maxIntegerRoundingScaling_);
7162  }
7163  if (((bitField2_ & 0x00200000) != 0)) {
7164  output.writeBool(120, addMirCuts_);
7165  }
7166  if (((bitField2_ & 0x10000000) != 0)) {
7167  output.writeInt32(121, maxConsecutiveInactiveCount_);
7168  }
7169  if (((bitField3_ & 0x00000001) != 0)) {
7170  output.writeInt32(122, newConstraintsBatchSize_);
7171  }
7172  if (((bitField3_ & 0x00000200) != 0)) {
7173  output.writeInt64(123, pseudoCostReliabilityThreshold_);
7174  }
7175  if (((bitField4_ & 0x00000100) != 0)) {
7176  output.writeDouble(124, mipMaxBound_);
7177  }
7178  if (((bitField4_ & 0x00000200) != 0)) {
7179  output.writeDouble(125, mipVarScaling_);
7180  }
7181  if (((bitField4_ & 0x00000800) != 0)) {
7182  output.writeDouble(126, mipWantedPrecision_);
7183  }
7184  if (((bitField4_ & 0x00001000) != 0)) {
7185  output.writeInt32(127, mipMaxActivityExponent_);
7186  }
7187  if (((bitField4_ & 0x00002000) != 0)) {
7188  output.writeDouble(128, mipCheckPrecision_);
7189  }
7190  if (((bitField3_ & 0x08000000) != 0)) {
7191  output.writeBool(129, useRinsLns_);
7192  }
7193  if (((bitField3_ & 0x00000020) != 0)) {
7194  output.writeBool(130, exploitBestSolution_);
7195  }
7196  if (((bitField3_ & 0x00000080) != 0)) {
7197  output.writeBool(131, exploitObjective_);
7198  }
7199  if (((bitField3_ & 0x00004000) != 0)) {
7200  output.writeBool(132, fillTightenedDomainsInResponse_);
7201  }
7202  if (((bitField4_ & 0x00000020) != 0)) {
7203  output.writeBool(133, useCombinedNoOverlap_);
7204  }
7205  if (((bitField3_ & 0x00200000) != 0)) {
7206  output.writeInt32(134, interleaveBatchSize_);
7207  }
7208  if (((bitField4_ & 0x00000040) != 0)) {
7209  output.writeBool(135, catchSigintSignal_);
7210  }
7211  if (((bitField3_ & 0x00100000) != 0)) {
7212  output.writeBool(136, interleaveSearch_);
7213  }
7214  if (((bitField3_ & 0x80000000) != 0)) {
7215  output.writeBool(137, diversifyLnsParams_);
7216  }
7217  if (((bitField1_ & 0x00800000) != 0)) {
7218  output.writeInt32(138, maxPresolveIterations_);
7219  }
7220  if (((bitField4_ & 0x00000010) != 0)) {
7221  output.writeBool(139, useBranchingInLp_);
7222  }
7223  if (((bitField1_ & 0x40000000) != 0)) {
7224  output.writeBool(140, expandElementConstraints_);
7225  }
7226  if (((bitField3_ & 0x00400000) != 0)) {
7227  output.writeBool(141, reduceMemoryUsageInInterleaveMode_);
7228  }
7229  if (((bitField3_ & 0x00000100) != 0)) {
7230  output.writeInt64(142, probingPeriodAtRoot_);
7231  }
7232  if (((bitField1_ & 0x80000000) != 0)) {
7233  output.writeBool(143, expandAutomatonConstraints_);
7234  }
7235  if (((bitField4_ & 0x00000080) != 0)) {
7236  output.writeBool(144, useImpliedBounds_);
7237  }
7238  if (((bitField2_ & 0x00000002) != 0)) {
7239  output.writeDouble(145, mergeNoOverlapWorkLimit_);
7240  }
7241  if (((bitField2_ & 0x00000004) != 0)) {
7242  output.writeDouble(146, mergeAtMostOneWorkLimit_);
7243  }
7244  if (((bitField2_ & 0x00000008) != 0)) {
7245  output.writeInt32(147, presolveSubstitutionLevel_);
7246  }
7247  if (((bitField2_ & 0x00400000) != 0)) {
7248  output.writeInt32(148, maxAllDiffCutSize_);
7249  }
7250  if (((bitField3_ & 0x00040000) != 0)) {
7251  output.writeBool(149, stopAfterPresolve_);
7252  }
7253  if (((bitField3_ & 0x40000000) != 0)) {
7254  output.writeBool(150, useRelaxationLns_);
7255  }
7256  if (((bitField1_ & 0x04000000) != 0)) {
7257  output.writeInt32(151, cpModelMaxNumPresolveOperations_);
7258  }
7259  if (((bitField2_ & 0x00800000) != 0)) {
7260  output.writeBool(152, addLinMaxCuts_);
7261  }
7262  if (((bitField3_ & 0x00000004) != 0)) {
7263  output.writeInt32(153, hintConflictLimit_);
7264  }
7265  if (((bitField2_ & 0x08000000) != 0)) {
7266  output.writeInt32(154, maxCutRoundsAtLevelZero_);
7267  }
7268  if (((bitField2_ & 0x20000000) != 0)) {
7269  output.writeDouble(155, cutMaxActiveCountValue_);
7270  }
7271  if (((bitField2_ & 0x40000000) != 0)) {
7272  output.writeDouble(156, cutActiveCountDecay_);
7273  }
7274  if (((bitField2_ & 0x80000000) != 0)) {
7275  output.writeInt32(157, cutCleanupTarget_);
7276  }
7277  if (((bitField2_ & 0x00000001) != 0)) {
7278  output.writeBool(158, expandTableConstraints_);
7279  }
7280  if (((bitField1_ & 0x00000200) != 0)) {
7281  output.writeDouble(159, absoluteGapLimit_);
7282  }
7283  if (((bitField1_ & 0x00000400) != 0)) {
7284  output.writeDouble(160, relativeGapLimit_);
7285  }
7286  if (((bitField3_ & 0x00000040) != 0)) {
7287  output.writeBool(161, exploitRelaxationSolution_);
7288  }
7289  if (((bitField1_ & 0x02000000) != 0)) {
7290  output.writeBool(162, cpModelPostsolveWithFullSolver_);
7291  }
7292  if (((bitField1_ & 0x20000000) != 0)) {
7293  output.writeBool(163, useSatInprocessing_);
7294  }
7295  if (((bitField3_ & 0x10000000) != 0)) {
7296  output.writeBool(164, useFeasibilityPump_);
7297  }
7298  if (((bitField3_ & 0x20000000) != 0)) {
7299  output.writeEnum(165, fpRounding_);
7300  }
7301  if (((bitField4_ & 0x00000400) != 0)) {
7302  output.writeBool(166, mipAutomaticallyScaleVariables_);
7303  }
7304  unknownFields.writeTo(output);
7305  }
7306 
7307  @java.lang.Override
7308  public int getSerializedSize() {
7309  int size = memoizedSize;
7310  if (size != -1) return size;
7311 
7312  size = 0;
7313  if (((bitField0_ & 0x00000001) != 0)) {
7314  size += com.google.protobuf.CodedOutputStream
7315  .computeEnumSize(1, preferredVariableOrder_);
7316  }
7317  if (((bitField0_ & 0x00000002) != 0)) {
7318  size += com.google.protobuf.CodedOutputStream
7319  .computeEnumSize(2, initialPolarity_);
7320  }
7321  if (((bitField0_ & 0x00000100) != 0)) {
7322  size += com.google.protobuf.CodedOutputStream
7323  .computeEnumSize(4, minimizationAlgorithm_);
7324  }
7325  if (((bitField0_ & 0x00000800) != 0)) {
7326  size += com.google.protobuf.CodedOutputStream
7327  .computeInt32Size(11, clauseCleanupPeriod_);
7328  }
7329  if (((bitField0_ & 0x00001000) != 0)) {
7330  size += com.google.protobuf.CodedOutputStream
7331  .computeInt32Size(13, clauseCleanupTarget_);
7332  }
7333  if (((bitField0_ & 0x00100000) != 0)) {
7334  size += com.google.protobuf.CodedOutputStream
7335  .computeDoubleSize(15, variableActivityDecay_);
7336  }
7337  if (((bitField0_ & 0x00200000) != 0)) {
7338  size += com.google.protobuf.CodedOutputStream
7339  .computeDoubleSize(16, maxVariableActivityValue_);
7340  }
7341  if (((bitField0_ & 0x02000000) != 0)) {
7342  size += com.google.protobuf.CodedOutputStream
7343  .computeDoubleSize(17, clauseActivityDecay_);
7344  }
7345  if (((bitField0_ & 0x04000000) != 0)) {
7346  size += com.google.protobuf.CodedOutputStream
7347  .computeDoubleSize(18, maxClauseActivityValue_);
7348  }
7349  if (((bitField0_ & 0x00400000) != 0)) {
7350  size += com.google.protobuf.CodedOutputStream
7351  .computeDoubleSize(22, glucoseMaxDecay_);
7352  }
7353  if (((bitField0_ & 0x00800000) != 0)) {
7354  size += com.google.protobuf.CodedOutputStream
7355  .computeDoubleSize(23, glucoseDecayIncrement_);
7356  }
7357  if (((bitField0_ & 0x01000000) != 0)) {
7358  size += com.google.protobuf.CodedOutputStream
7359  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
7360  }
7361  if (((bitField0_ & 0x10000000) != 0)) {
7362  size += com.google.protobuf.CodedOutputStream
7363  .computeInt32Size(30, restartPeriod_);
7364  }
7365  if (((bitField1_ & 0x00001000) != 0)) {
7366  size += com.google.protobuf.CodedOutputStream
7367  .computeInt32Size(31, randomSeed_);
7368  }
7369  if (((bitField0_ & 0x00000010) != 0)) {
7370  size += com.google.protobuf.CodedOutputStream
7371  .computeDoubleSize(32, randomBranchesRatio_);
7372  }
7373  if (((bitField1_ & 0x00000800) != 0)) {
7374  size += com.google.protobuf.CodedOutputStream
7375  .computeBoolSize(33, treatBinaryClausesSeparately_);
7376  }
7377  if (((bitField0_ & 0x00000200) != 0)) {
7378  size += com.google.protobuf.CodedOutputStream
7379  .computeEnumSize(34, binaryMinimizationAlgorithm_);
7380  }
7381  if (((bitField2_ & 0x00000010) != 0)) {
7382  size += com.google.protobuf.CodedOutputStream
7383  .computeBoolSize(35, useOptimizationHints_);
7384  }
7385  if (((bitField1_ & 0x00000020) != 0)) {
7386  size += com.google.protobuf.CodedOutputStream
7387  .computeDoubleSize(36, maxTimeInSeconds_);
7388  }
7389  if (((bitField1_ & 0x00000080) != 0)) {
7390  size += com.google.protobuf.CodedOutputStream
7391  .computeInt64Size(37, maxNumberOfConflicts_);
7392  }
7393  if (((bitField1_ & 0x00000100) != 0)) {
7394  size += com.google.protobuf.CodedOutputStream
7395  .computeInt64Size(40, maxMemoryInMb_);
7396  }
7397  if (((bitField1_ & 0x00002000) != 0)) {
7398  size += com.google.protobuf.CodedOutputStream
7399  .computeBoolSize(41, logSearchProgress_);
7400  }
7401  if (((bitField1_ & 0x00004000) != 0)) {
7402  size += com.google.protobuf.CodedOutputStream
7403  .computeBoolSize(43, usePbResolution_);
7404  }
7405  if (((bitField0_ & 0x00000004) != 0)) {
7406  size += com.google.protobuf.CodedOutputStream
7407  .computeBoolSize(44, usePhaseSaving_);
7408  }
7409  if (((bitField0_ & 0x00000008) != 0)) {
7410  size += com.google.protobuf.CodedOutputStream
7411  .computeDoubleSize(45, randomPolarityRatio_);
7412  }
7413  if (((bitField0_ & 0x00010000) != 0)) {
7414  size += com.google.protobuf.CodedOutputStream
7415  .computeInt32Size(46, pbCleanupIncrement_);
7416  }
7417  if (((bitField0_ & 0x00020000) != 0)) {
7418  size += com.google.protobuf.CodedOutputStream
7419  .computeDoubleSize(47, pbCleanupRatio_);
7420  }
7421  if (((bitField1_ & 0x00008000) != 0)) {
7422  size += com.google.protobuf.CodedOutputStream
7423  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
7424  }
7425  if (((bitField1_ & 0x00010000) != 0)) {
7426  size += com.google.protobuf.CodedOutputStream
7427  .computeBoolSize(49, countAssumptionLevelsInLbd_);
7428  }
7429  if (((bitField2_ & 0x00000020) != 0)) {
7430  size += com.google.protobuf.CodedOutputStream
7431  .computeBoolSize(50, minimizeCore_);
7432  }
7433  if (((bitField2_ & 0x00000100) != 0)) {
7434  size += com.google.protobuf.CodedOutputStream
7435  .computeEnumSize(51, maxSatAssumptionOrder_);
7436  }
7437  if (((bitField2_ & 0x00000200) != 0)) {
7438  size += com.google.protobuf.CodedOutputStream
7439  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
7440  }
7441  if (((bitField2_ & 0x00000400) != 0)) {
7442  size += com.google.protobuf.CodedOutputStream
7443  .computeEnumSize(53, maxSatStratification_);
7444  }
7445  if (((bitField1_ & 0x00020000) != 0)) {
7446  size += com.google.protobuf.CodedOutputStream
7447  .computeInt32Size(54, presolveBveThreshold_);
7448  }
7449  if (((bitField1_ & 0x00040000) != 0)) {
7450  size += com.google.protobuf.CodedOutputStream
7451  .computeInt32Size(55, presolveBveClauseWeight_);
7452  }
7453  if (((bitField0_ & 0x00000400) != 0)) {
7454  size += com.google.protobuf.CodedOutputStream
7455  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
7456  }
7457  if (((bitField1_ & 0x00080000) != 0)) {
7458  size += com.google.protobuf.CodedOutputStream
7459  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
7460  }
7461  if (((bitField0_ & 0x00002000) != 0)) {
7462  size += com.google.protobuf.CodedOutputStream
7463  .computeEnumSize(58, clauseCleanupProtection_);
7464  }
7465  if (((bitField0_ & 0x00004000) != 0)) {
7466  size += com.google.protobuf.CodedOutputStream
7467  .computeInt32Size(59, clauseCleanupLbdBound_);
7468  }
7469  if (((bitField0_ & 0x00008000) != 0)) {
7470  size += com.google.protobuf.CodedOutputStream
7471  .computeEnumSize(60, clauseCleanupOrdering_);
7472  }
7473  {
7474  int dataSize = 0;
7475  for (int i = 0; i < restartAlgorithms_.size(); i++) {
7476  dataSize += com.google.protobuf.CodedOutputStream
7477  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
7478  }
7479  size += dataSize;
7480  size += 2 * restartAlgorithms_.size();
7481  }
7482  if (((bitField0_ & 0x20000000) != 0)) {
7483  size += com.google.protobuf.CodedOutputStream
7484  .computeInt32Size(62, restartRunningWindowSize_);
7485  }
7486  if (((bitField0_ & 0x40000000) != 0)) {
7487  size += com.google.protobuf.CodedOutputStream
7488  .computeDoubleSize(63, restartDlAverageRatio_);
7489  }
7490  if (((bitField1_ & 0x00000001) != 0)) {
7491  size += com.google.protobuf.CodedOutputStream
7492  .computeBoolSize(64, useBlockingRestart_);
7493  }
7494  if (((bitField1_ & 0x00000002) != 0)) {
7495  size += com.google.protobuf.CodedOutputStream
7496  .computeInt32Size(65, blockingRestartWindowSize_);
7497  }
7498  if (((bitField1_ & 0x00000004) != 0)) {
7499  size += com.google.protobuf.CodedOutputStream
7500  .computeDoubleSize(66, blockingRestartMultiplier_);
7501  }
7502  if (((bitField1_ & 0x00000040) != 0)) {
7503  size += com.google.protobuf.CodedOutputStream
7504  .computeDoubleSize(67, maxDeterministicTime_);
7505  }
7506  if (((bitField1_ & 0x00000008) != 0)) {
7507  size += com.google.protobuf.CodedOutputStream
7508  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
7509  }
7510  if (((bitField1_ & 0x00000010) != 0)) {
7511  size += com.google.protobuf.CodedOutputStream
7512  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
7513  }
7514  if (((bitField0_ & 0x08000000) != 0)) {
7515  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
7516  }
7517  if (((bitField0_ & 0x80000000) != 0)) {
7518  size += com.google.protobuf.CodedOutputStream
7519  .computeDoubleSize(71, restartLbdAverageRatio_);
7520  }
7521  if (((bitField1_ & 0x00200000) != 0)) {
7522  size += com.google.protobuf.CodedOutputStream
7523  .computeBoolSize(72, presolveUseBva_);
7524  }
7525  if (((bitField1_ & 0x00400000) != 0)) {
7526  size += com.google.protobuf.CodedOutputStream
7527  .computeInt32Size(73, presolveBvaThreshold_);
7528  }
7529  if (((bitField2_ & 0x00000800) != 0)) {
7530  size += com.google.protobuf.CodedOutputStream
7531  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
7532  }
7533  if (((bitField0_ & 0x00000020) != 0)) {
7534  size += com.google.protobuf.CodedOutputStream
7535  .computeBoolSize(75, useErwaHeuristic_);
7536  }
7537  if (((bitField0_ & 0x00000040) != 0)) {
7538  size += com.google.protobuf.CodedOutputStream
7539  .computeDoubleSize(76, initialVariablesActivity_);
7540  }
7541  if (((bitField0_ & 0x00000080) != 0)) {
7542  size += com.google.protobuf.CodedOutputStream
7543  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
7544  }
7545  if (((bitField2_ & 0x00001000) != 0)) {
7546  size += com.google.protobuf.CodedOutputStream
7547  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
7548  }
7549  if (((bitField2_ & 0x00002000) != 0)) {
7550  size += com.google.protobuf.CodedOutputStream
7551  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
7552  }
7553  if (((bitField2_ & 0x00004000) != 0)) {
7554  size += com.google.protobuf.CodedOutputStream
7555  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
7556  }
7557  if (((bitField3_ & 0x00000002) != 0)) {
7558  size += com.google.protobuf.CodedOutputStream
7559  .computeEnumSize(82, searchBranching_);
7560  }
7561  if (((bitField3_ & 0x00000400) != 0)) {
7562  size += com.google.protobuf.CodedOutputStream
7563  .computeBoolSize(83, optimizeWithCore_);
7564  }
7565  if (((bitField2_ & 0x00000040) != 0)) {
7566  size += com.google.protobuf.CodedOutputStream
7567  .computeBoolSize(84, findMultipleCores_);
7568  }
7569  if (((bitField3_ & 0x00001000) != 0)) {
7570  size += com.google.protobuf.CodedOutputStream
7571  .computeBoolSize(85, optimizeWithMaxHs_);
7572  }
7573  if (((bitField1_ & 0x01000000) != 0)) {
7574  size += com.google.protobuf.CodedOutputStream
7575  .computeBoolSize(86, cpModelPresolve_);
7576  }
7577  if (((bitField3_ & 0x00002000) != 0)) {
7578  size += com.google.protobuf.CodedOutputStream
7579  .computeBoolSize(87, enumerateAllSolutions_);
7580  }
7581  if (((bitField1_ & 0x00100000) != 0)) {
7582  size += com.google.protobuf.CodedOutputStream
7583  .computeBoolSize(88, presolveBlockedClause_);
7584  }
7585  if (((bitField2_ & 0x00000080) != 0)) {
7586  size += com.google.protobuf.CodedOutputStream
7587  .computeBoolSize(89, coverOptimization_);
7588  }
7589  if (((bitField2_ & 0x00008000) != 0)) {
7590  size += com.google.protobuf.CodedOutputStream
7591  .computeInt32Size(90, linearizationLevel_);
7592  }
7593  if (((bitField2_ & 0x00020000) != 0)) {
7594  size += com.google.protobuf.CodedOutputStream
7595  .computeInt32Size(91, maxNumCuts_);
7596  }
7597  if (((bitField2_ & 0x00040000) != 0)) {
7598  size += com.google.protobuf.CodedOutputStream
7599  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
7600  }
7601  if (((bitField1_ & 0x10000000) != 0)) {
7602  size += com.google.protobuf.CodedOutputStream
7603  .computeBoolSize(93, cpModelUseSatPresolve_);
7604  }
7605  if (((bitField3_ & 0x00000008) != 0)) {
7606  size += com.google.protobuf.CodedOutputStream
7607  .computeBoolSize(94, exploitIntegerLpSolution_);
7608  }
7609  if (((bitField3_ & 0x00010000) != 0)) {
7610  size += com.google.protobuf.CodedOutputStream
7611  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
7612  }
7613  if (((bitField0_ & 0x00040000) != 0)) {
7614  size += com.google.protobuf.CodedOutputStream
7615  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
7616  }
7617  if (((bitField0_ & 0x00080000) != 0)) {
7618  size += com.google.protobuf.CodedOutputStream
7619  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
7620  }
7621  if (((bitField3_ & 0x00020000) != 0)) {
7622  size += com.google.protobuf.CodedOutputStream
7623  .computeBoolSize(98, stopAfterFirstSolution_);
7624  }
7625  if (((bitField3_ & 0x00000800) != 0)) {
7626  size += com.google.protobuf.CodedOutputStream
7627  .computeInt32Size(99, binarySearchNumConflicts_);
7628  }
7629  if (((bitField3_ & 0x00080000) != 0)) {
7630  size += com.google.protobuf.CodedOutputStream
7631  .computeInt32Size(100, numSearchWorkers_);
7632  }
7633  if (((bitField3_ & 0x02000000) != 0)) {
7634  size += com.google.protobuf.CodedOutputStream
7635  .computeBoolSize(101, useLnsOnly_);
7636  }
7637  if (((bitField4_ & 0x00000001) != 0)) {
7638  size += com.google.protobuf.CodedOutputStream
7639  .computeBoolSize(103, randomizeSearch_);
7640  }
7641  if (((bitField4_ & 0x00000002) != 0)) {
7642  size += com.google.protobuf.CodedOutputStream
7643  .computeInt64Size(104, searchRandomizationTolerance_);
7644  }
7645  if (((bitField3_ & 0x04000000) != 0)) {
7646  size += com.google.protobuf.CodedOutputStream
7647  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
7648  }
7649  if (((bitField3_ & 0x00008000) != 0)) {
7650  size += com.google.protobuf.CodedOutputStream
7651  .computeBoolSize(106, instantiateAllVariables_);
7652  }
7653  if (((bitField2_ & 0x00010000) != 0)) {
7654  size += com.google.protobuf.CodedOutputStream
7655  .computeInt32Size(107, booleanEncodingLevel_);
7656  }
7657  if (((bitField4_ & 0x00000004) != 0)) {
7658  size += com.google.protobuf.CodedOutputStream
7659  .computeBoolSize(108, useOptionalVariables_);
7660  }
7661  if (((bitField4_ & 0x00000008) != 0)) {
7662  size += com.google.protobuf.CodedOutputStream
7663  .computeBoolSize(109, useExactLpReason_);
7664  }
7665  if (((bitField1_ & 0x08000000) != 0)) {
7666  size += com.google.protobuf.CodedOutputStream
7667  .computeInt32Size(110, cpModelProbingLevel_);
7668  }
7669  if (((bitField2_ & 0x00080000) != 0)) {
7670  size += com.google.protobuf.CodedOutputStream
7671  .computeBoolSize(111, addKnapsackCuts_);
7672  }
7673  if (((bitField2_ & 0x02000000) != 0)) {
7674  size += com.google.protobuf.CodedOutputStream
7675  .computeBoolSize(112, addLpConstraintsLazily_);
7676  }
7677  if (((bitField3_ & 0x00800000) != 0)) {
7678  size += com.google.protobuf.CodedOutputStream
7679  .computeBoolSize(113, shareObjectiveBounds_);
7680  }
7681  if (((bitField3_ & 0x01000000) != 0)) {
7682  size += com.google.protobuf.CodedOutputStream
7683  .computeBoolSize(114, shareLevelZeroBounds_);
7684  }
7685  if (((bitField2_ & 0x04000000) != 0)) {
7686  size += com.google.protobuf.CodedOutputStream
7687  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
7688  }
7689  if (((bitField3_ & 0x00000010) != 0)) {
7690  size += com.google.protobuf.CodedOutputStream
7691  .computeBoolSize(116, exploitAllLpSolution_);
7692  }
7693  if (((bitField2_ & 0x00100000) != 0)) {
7694  size += com.google.protobuf.CodedOutputStream
7695  .computeBoolSize(117, addCgCuts_);
7696  }
7697  if (((bitField2_ & 0x01000000) != 0)) {
7698  size += com.google.protobuf.CodedOutputStream
7699  .computeInt32Size(119, maxIntegerRoundingScaling_);
7700  }
7701  if (((bitField2_ & 0x00200000) != 0)) {
7702  size += com.google.protobuf.CodedOutputStream
7703  .computeBoolSize(120, addMirCuts_);
7704  }
7705  if (((bitField2_ & 0x10000000) != 0)) {
7706  size += com.google.protobuf.CodedOutputStream
7707  .computeInt32Size(121, maxConsecutiveInactiveCount_);
7708  }
7709  if (((bitField3_ & 0x00000001) != 0)) {
7710  size += com.google.protobuf.CodedOutputStream
7711  .computeInt32Size(122, newConstraintsBatchSize_);
7712  }
7713  if (((bitField3_ & 0x00000200) != 0)) {
7714  size += com.google.protobuf.CodedOutputStream
7715  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
7716  }
7717  if (((bitField4_ & 0x00000100) != 0)) {
7718  size += com.google.protobuf.CodedOutputStream
7719  .computeDoubleSize(124, mipMaxBound_);
7720  }
7721  if (((bitField4_ & 0x00000200) != 0)) {
7722  size += com.google.protobuf.CodedOutputStream
7723  .computeDoubleSize(125, mipVarScaling_);
7724  }
7725  if (((bitField4_ & 0x00000800) != 0)) {
7726  size += com.google.protobuf.CodedOutputStream
7727  .computeDoubleSize(126, mipWantedPrecision_);
7728  }
7729  if (((bitField4_ & 0x00001000) != 0)) {
7730  size += com.google.protobuf.CodedOutputStream
7731  .computeInt32Size(127, mipMaxActivityExponent_);
7732  }
7733  if (((bitField4_ & 0x00002000) != 0)) {
7734  size += com.google.protobuf.CodedOutputStream
7735  .computeDoubleSize(128, mipCheckPrecision_);
7736  }
7737  if (((bitField3_ & 0x08000000) != 0)) {
7738  size += com.google.protobuf.CodedOutputStream
7739  .computeBoolSize(129, useRinsLns_);
7740  }
7741  if (((bitField3_ & 0x00000020) != 0)) {
7742  size += com.google.protobuf.CodedOutputStream
7743  .computeBoolSize(130, exploitBestSolution_);
7744  }
7745  if (((bitField3_ & 0x00000080) != 0)) {
7746  size += com.google.protobuf.CodedOutputStream
7747  .computeBoolSize(131, exploitObjective_);
7748  }
7749  if (((bitField3_ & 0x00004000) != 0)) {
7750  size += com.google.protobuf.CodedOutputStream
7751  .computeBoolSize(132, fillTightenedDomainsInResponse_);
7752  }
7753  if (((bitField4_ & 0x00000020) != 0)) {
7754  size += com.google.protobuf.CodedOutputStream
7755  .computeBoolSize(133, useCombinedNoOverlap_);
7756  }
7757  if (((bitField3_ & 0x00200000) != 0)) {
7758  size += com.google.protobuf.CodedOutputStream
7759  .computeInt32Size(134, interleaveBatchSize_);
7760  }
7761  if (((bitField4_ & 0x00000040) != 0)) {
7762  size += com.google.protobuf.CodedOutputStream
7763  .computeBoolSize(135, catchSigintSignal_);
7764  }
7765  if (((bitField3_ & 0x00100000) != 0)) {
7766  size += com.google.protobuf.CodedOutputStream
7767  .computeBoolSize(136, interleaveSearch_);
7768  }
7769  if (((bitField3_ & 0x80000000) != 0)) {
7770  size += com.google.protobuf.CodedOutputStream
7771  .computeBoolSize(137, diversifyLnsParams_);
7772  }
7773  if (((bitField1_ & 0x00800000) != 0)) {
7774  size += com.google.protobuf.CodedOutputStream
7775  .computeInt32Size(138, maxPresolveIterations_);
7776  }
7777  if (((bitField4_ & 0x00000010) != 0)) {
7778  size += com.google.protobuf.CodedOutputStream
7779  .computeBoolSize(139, useBranchingInLp_);
7780  }
7781  if (((bitField1_ & 0x40000000) != 0)) {
7782  size += com.google.protobuf.CodedOutputStream
7783  .computeBoolSize(140, expandElementConstraints_);
7784  }
7785  if (((bitField3_ & 0x00400000) != 0)) {
7786  size += com.google.protobuf.CodedOutputStream
7787  .computeBoolSize(141, reduceMemoryUsageInInterleaveMode_);
7788  }
7789  if (((bitField3_ & 0x00000100) != 0)) {
7790  size += com.google.protobuf.CodedOutputStream
7791  .computeInt64Size(142, probingPeriodAtRoot_);
7792  }
7793  if (((bitField1_ & 0x80000000) != 0)) {
7794  size += com.google.protobuf.CodedOutputStream
7795  .computeBoolSize(143, expandAutomatonConstraints_);
7796  }
7797  if (((bitField4_ & 0x00000080) != 0)) {
7798  size += com.google.protobuf.CodedOutputStream
7799  .computeBoolSize(144, useImpliedBounds_);
7800  }
7801  if (((bitField2_ & 0x00000002) != 0)) {
7802  size += com.google.protobuf.CodedOutputStream
7803  .computeDoubleSize(145, mergeNoOverlapWorkLimit_);
7804  }
7805  if (((bitField2_ & 0x00000004) != 0)) {
7806  size += com.google.protobuf.CodedOutputStream
7807  .computeDoubleSize(146, mergeAtMostOneWorkLimit_);
7808  }
7809  if (((bitField2_ & 0x00000008) != 0)) {
7810  size += com.google.protobuf.CodedOutputStream
7811  .computeInt32Size(147, presolveSubstitutionLevel_);
7812  }
7813  if (((bitField2_ & 0x00400000) != 0)) {
7814  size += com.google.protobuf.CodedOutputStream
7815  .computeInt32Size(148, maxAllDiffCutSize_);
7816  }
7817  if (((bitField3_ & 0x00040000) != 0)) {
7818  size += com.google.protobuf.CodedOutputStream
7819  .computeBoolSize(149, stopAfterPresolve_);
7820  }
7821  if (((bitField3_ & 0x40000000) != 0)) {
7822  size += com.google.protobuf.CodedOutputStream
7823  .computeBoolSize(150, useRelaxationLns_);
7824  }
7825  if (((bitField1_ & 0x04000000) != 0)) {
7826  size += com.google.protobuf.CodedOutputStream
7827  .computeInt32Size(151, cpModelMaxNumPresolveOperations_);
7828  }
7829  if (((bitField2_ & 0x00800000) != 0)) {
7830  size += com.google.protobuf.CodedOutputStream
7831  .computeBoolSize(152, addLinMaxCuts_);
7832  }
7833  if (((bitField3_ & 0x00000004) != 0)) {
7834  size += com.google.protobuf.CodedOutputStream
7835  .computeInt32Size(153, hintConflictLimit_);
7836  }
7837  if (((bitField2_ & 0x08000000) != 0)) {
7838  size += com.google.protobuf.CodedOutputStream
7839  .computeInt32Size(154, maxCutRoundsAtLevelZero_);
7840  }
7841  if (((bitField2_ & 0x20000000) != 0)) {
7842  size += com.google.protobuf.CodedOutputStream
7843  .computeDoubleSize(155, cutMaxActiveCountValue_);
7844  }
7845  if (((bitField2_ & 0x40000000) != 0)) {
7846  size += com.google.protobuf.CodedOutputStream
7847  .computeDoubleSize(156, cutActiveCountDecay_);
7848  }
7849  if (((bitField2_ & 0x80000000) != 0)) {
7850  size += com.google.protobuf.CodedOutputStream
7851  .computeInt32Size(157, cutCleanupTarget_);
7852  }
7853  if (((bitField2_ & 0x00000001) != 0)) {
7854  size += com.google.protobuf.CodedOutputStream
7855  .computeBoolSize(158, expandTableConstraints_);
7856  }
7857  if (((bitField1_ & 0x00000200) != 0)) {
7858  size += com.google.protobuf.CodedOutputStream
7859  .computeDoubleSize(159, absoluteGapLimit_);
7860  }
7861  if (((bitField1_ & 0x00000400) != 0)) {
7862  size += com.google.protobuf.CodedOutputStream
7863  .computeDoubleSize(160, relativeGapLimit_);
7864  }
7865  if (((bitField3_ & 0x00000040) != 0)) {
7866  size += com.google.protobuf.CodedOutputStream
7867  .computeBoolSize(161, exploitRelaxationSolution_);
7868  }
7869  if (((bitField1_ & 0x02000000) != 0)) {
7870  size += com.google.protobuf.CodedOutputStream
7871  .computeBoolSize(162, cpModelPostsolveWithFullSolver_);
7872  }
7873  if (((bitField1_ & 0x20000000) != 0)) {
7874  size += com.google.protobuf.CodedOutputStream
7875  .computeBoolSize(163, useSatInprocessing_);
7876  }
7877  if (((bitField3_ & 0x10000000) != 0)) {
7878  size += com.google.protobuf.CodedOutputStream
7879  .computeBoolSize(164, useFeasibilityPump_);
7880  }
7881  if (((bitField3_ & 0x20000000) != 0)) {
7882  size += com.google.protobuf.CodedOutputStream
7883  .computeEnumSize(165, fpRounding_);
7884  }
7885  if (((bitField4_ & 0x00000400) != 0)) {
7886  size += com.google.protobuf.CodedOutputStream
7887  .computeBoolSize(166, mipAutomaticallyScaleVariables_);
7888  }
7889  size += unknownFields.getSerializedSize();
7890  memoizedSize = size;
7891  return size;
7892  }
7893 
7894  @java.lang.Override
7895  public boolean equals(final java.lang.Object obj) {
7896  if (obj == this) {
7897  return true;
7898  }
7899  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
7900  return super.equals(obj);
7901  }
7903 
7904  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
7905  if (hasPreferredVariableOrder()) {
7906  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
7907  }
7908  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
7909  if (hasInitialPolarity()) {
7910  if (initialPolarity_ != other.initialPolarity_) return false;
7911  }
7912  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
7913  if (hasUsePhaseSaving()) {
7914  if (getUsePhaseSaving()
7915  != other.getUsePhaseSaving()) return false;
7916  }
7917  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
7918  if (hasRandomPolarityRatio()) {
7919  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
7920  != java.lang.Double.doubleToLongBits(
7921  other.getRandomPolarityRatio())) return false;
7922  }
7923  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
7924  if (hasRandomBranchesRatio()) {
7925  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
7926  != java.lang.Double.doubleToLongBits(
7927  other.getRandomBranchesRatio())) return false;
7928  }
7929  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
7930  if (hasUseErwaHeuristic()) {
7931  if (getUseErwaHeuristic()
7932  != other.getUseErwaHeuristic()) return false;
7933  }
7934  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
7936  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
7937  != java.lang.Double.doubleToLongBits(
7938  other.getInitialVariablesActivity())) return false;
7939  }
7940  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
7943  != other.getAlsoBumpVariablesInConflictReasons()) return false;
7944  }
7945  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
7946  if (hasMinimizationAlgorithm()) {
7947  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
7948  }
7949  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
7951  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
7952  }
7953  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
7956  != other.getSubsumptionDuringConflictAnalysis()) return false;
7957  }
7958  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
7959  if (hasClauseCleanupPeriod()) {
7961  != other.getClauseCleanupPeriod()) return false;
7962  }
7963  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
7964  if (hasClauseCleanupTarget()) {
7966  != other.getClauseCleanupTarget()) return false;
7967  }
7968  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
7970  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
7971  }
7972  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
7973  if (hasClauseCleanupLbdBound()) {
7975  != other.getClauseCleanupLbdBound()) return false;
7976  }
7977  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
7978  if (hasClauseCleanupOrdering()) {
7979  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
7980  }
7981  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
7982  if (hasPbCleanupIncrement()) {
7983  if (getPbCleanupIncrement()
7984  != other.getPbCleanupIncrement()) return false;
7985  }
7986  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
7987  if (hasPbCleanupRatio()) {
7988  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
7989  != java.lang.Double.doubleToLongBits(
7990  other.getPbCleanupRatio())) return false;
7991  }
7992  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
7995  != other.getMinimizeWithPropagationRestartPeriod()) return false;
7996  }
7997  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
8000  != other.getMinimizeWithPropagationNumDecisions()) return false;
8001  }
8002  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
8003  if (hasVariableActivityDecay()) {
8004  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
8005  != java.lang.Double.doubleToLongBits(
8006  other.getVariableActivityDecay())) return false;
8007  }
8008  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
8010  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
8011  != java.lang.Double.doubleToLongBits(
8012  other.getMaxVariableActivityValue())) return false;
8013  }
8014  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
8015  if (hasGlucoseMaxDecay()) {
8016  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
8017  != java.lang.Double.doubleToLongBits(
8018  other.getGlucoseMaxDecay())) return false;
8019  }
8020  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
8021  if (hasGlucoseDecayIncrement()) {
8022  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
8023  != java.lang.Double.doubleToLongBits(
8024  other.getGlucoseDecayIncrement())) return false;
8025  }
8026  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
8029  != other.getGlucoseDecayIncrementPeriod()) return false;
8030  }
8031  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
8032  if (hasClauseActivityDecay()) {
8033  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
8034  != java.lang.Double.doubleToLongBits(
8035  other.getClauseActivityDecay())) return false;
8036  }
8037  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
8038  if (hasMaxClauseActivityValue()) {
8039  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
8040  != java.lang.Double.doubleToLongBits(
8041  other.getMaxClauseActivityValue())) return false;
8042  }
8043  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
8044  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
8047  .equals(other.getDefaultRestartAlgorithms())) return false;
8048  }
8049  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
8050  if (hasRestartPeriod()) {
8051  if (getRestartPeriod()
8052  != other.getRestartPeriod()) return false;
8053  }
8054  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
8057  != other.getRestartRunningWindowSize()) return false;
8058  }
8059  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
8060  if (hasRestartDlAverageRatio()) {
8061  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
8062  != java.lang.Double.doubleToLongBits(
8063  other.getRestartDlAverageRatio())) return false;
8064  }
8065  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
8066  if (hasRestartLbdAverageRatio()) {
8067  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
8068  != java.lang.Double.doubleToLongBits(
8069  other.getRestartLbdAverageRatio())) return false;
8070  }
8071  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
8072  if (hasUseBlockingRestart()) {
8073  if (getUseBlockingRestart()
8074  != other.getUseBlockingRestart()) return false;
8075  }
8076  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
8079  != other.getBlockingRestartWindowSize()) return false;
8080  }
8081  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
8083  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
8084  != java.lang.Double.doubleToLongBits(
8085  other.getBlockingRestartMultiplier())) return false;
8086  }
8087  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
8090  != other.getNumConflictsBeforeStrategyChanges()) return false;
8091  }
8092  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
8094  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
8095  != java.lang.Double.doubleToLongBits(
8096  other.getStrategyChangeIncreaseRatio())) return false;
8097  }
8098  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
8099  if (hasMaxTimeInSeconds()) {
8100  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
8101  != java.lang.Double.doubleToLongBits(
8102  other.getMaxTimeInSeconds())) return false;
8103  }
8104  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
8105  if (hasMaxDeterministicTime()) {
8106  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
8107  != java.lang.Double.doubleToLongBits(
8108  other.getMaxDeterministicTime())) return false;
8109  }
8110  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
8111  if (hasMaxNumberOfConflicts()) {
8113  != other.getMaxNumberOfConflicts()) return false;
8114  }
8115  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
8116  if (hasMaxMemoryInMb()) {
8117  if (getMaxMemoryInMb()
8118  != other.getMaxMemoryInMb()) return false;
8119  }
8120  if (hasAbsoluteGapLimit() != other.hasAbsoluteGapLimit()) return false;
8121  if (hasAbsoluteGapLimit()) {
8122  if (java.lang.Double.doubleToLongBits(getAbsoluteGapLimit())
8123  != java.lang.Double.doubleToLongBits(
8124  other.getAbsoluteGapLimit())) return false;
8125  }
8126  if (hasRelativeGapLimit() != other.hasRelativeGapLimit()) return false;
8127  if (hasRelativeGapLimit()) {
8128  if (java.lang.Double.doubleToLongBits(getRelativeGapLimit())
8129  != java.lang.Double.doubleToLongBits(
8130  other.getRelativeGapLimit())) return false;
8131  }
8132  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
8135  != other.getTreatBinaryClausesSeparately()) return false;
8136  }
8137  if (hasRandomSeed() != other.hasRandomSeed()) return false;
8138  if (hasRandomSeed()) {
8139  if (getRandomSeed()
8140  != other.getRandomSeed()) return false;
8141  }
8142  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
8143  if (hasLogSearchProgress()) {
8144  if (getLogSearchProgress()
8145  != other.getLogSearchProgress()) return false;
8146  }
8147  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
8148  if (hasUsePbResolution()) {
8149  if (getUsePbResolution()
8150  != other.getUsePbResolution()) return false;
8151  }
8152  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
8155  != other.getMinimizeReductionDuringPbResolution()) return false;
8156  }
8157  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
8160  != other.getCountAssumptionLevelsInLbd()) return false;
8161  }
8162  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
8163  if (hasPresolveBveThreshold()) {
8165  != other.getPresolveBveThreshold()) return false;
8166  }
8167  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
8170  != other.getPresolveBveClauseWeight()) return false;
8171  }
8172  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
8174  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
8175  != java.lang.Double.doubleToLongBits(
8176  other.getPresolveProbingDeterministicTimeLimit())) return false;
8177  }
8178  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
8179  if (hasPresolveBlockedClause()) {
8181  != other.getPresolveBlockedClause()) return false;
8182  }
8183  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
8184  if (hasPresolveUseBva()) {
8185  if (getPresolveUseBva()
8186  != other.getPresolveUseBva()) return false;
8187  }
8188  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
8189  if (hasPresolveBvaThreshold()) {
8191  != other.getPresolveBvaThreshold()) return false;
8192  }
8193  if (hasMaxPresolveIterations() != other.hasMaxPresolveIterations()) return false;
8194  if (hasMaxPresolveIterations()) {
8196  != other.getMaxPresolveIterations()) return false;
8197  }
8198  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
8199  if (hasCpModelPresolve()) {
8200  if (getCpModelPresolve()
8201  != other.getCpModelPresolve()) return false;
8202  }
8203  if (hasCpModelPostsolveWithFullSolver() != other.hasCpModelPostsolveWithFullSolver()) return false;
8206  != other.getCpModelPostsolveWithFullSolver()) return false;
8207  }
8208  if (hasCpModelMaxNumPresolveOperations() != other.hasCpModelMaxNumPresolveOperations()) return false;
8211  != other.getCpModelMaxNumPresolveOperations()) return false;
8212  }
8213  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
8214  if (hasCpModelProbingLevel()) {
8216  != other.getCpModelProbingLevel()) return false;
8217  }
8218  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
8219  if (hasCpModelUseSatPresolve()) {
8221  != other.getCpModelUseSatPresolve()) return false;
8222  }
8223  if (hasUseSatInprocessing() != other.hasUseSatInprocessing()) return false;
8224  if (hasUseSatInprocessing()) {
8225  if (getUseSatInprocessing()
8226  != other.getUseSatInprocessing()) return false;
8227  }
8228  if (hasExpandElementConstraints() != other.hasExpandElementConstraints()) return false;
8231  != other.getExpandElementConstraints()) return false;
8232  }
8233  if (hasExpandAutomatonConstraints() != other.hasExpandAutomatonConstraints()) return false;
8236  != other.getExpandAutomatonConstraints()) return false;
8237  }
8238  if (hasExpandTableConstraints() != other.hasExpandTableConstraints()) return false;
8239  if (hasExpandTableConstraints()) {
8241  != other.getExpandTableConstraints()) return false;
8242  }
8243  if (hasMergeNoOverlapWorkLimit() != other.hasMergeNoOverlapWorkLimit()) return false;
8245  if (java.lang.Double.doubleToLongBits(getMergeNoOverlapWorkLimit())
8246  != java.lang.Double.doubleToLongBits(
8247  other.getMergeNoOverlapWorkLimit())) return false;
8248  }
8249  if (hasMergeAtMostOneWorkLimit() != other.hasMergeAtMostOneWorkLimit()) return false;
8251  if (java.lang.Double.doubleToLongBits(getMergeAtMostOneWorkLimit())
8252  != java.lang.Double.doubleToLongBits(
8253  other.getMergeAtMostOneWorkLimit())) return false;
8254  }
8255  if (hasPresolveSubstitutionLevel() != other.hasPresolveSubstitutionLevel()) return false;
8258  != other.getPresolveSubstitutionLevel()) return false;
8259  }
8260  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
8261  if (hasUseOptimizationHints()) {
8263  != other.getUseOptimizationHints()) return false;
8264  }
8265  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
8266  if (hasMinimizeCore()) {
8267  if (getMinimizeCore()
8268  != other.getMinimizeCore()) return false;
8269  }
8270  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
8271  if (hasFindMultipleCores()) {
8272  if (getFindMultipleCores()
8273  != other.getFindMultipleCores()) return false;
8274  }
8275  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
8276  if (hasCoverOptimization()) {
8277  if (getCoverOptimization()
8278  != other.getCoverOptimization()) return false;
8279  }
8280  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
8281  if (hasMaxSatAssumptionOrder()) {
8282  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
8283  }
8284  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
8287  != other.getMaxSatReverseAssumptionOrder()) return false;
8288  }
8289  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
8290  if (hasMaxSatStratification()) {
8291  if (maxSatStratification_ != other.maxSatStratification_) return false;
8292  }
8293  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
8296  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
8297  }
8298  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
8301  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
8302  }
8303  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
8306  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
8307  }
8308  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
8311  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
8312  }
8313  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
8314  if (hasLinearizationLevel()) {
8315  if (getLinearizationLevel()
8316  != other.getLinearizationLevel()) return false;
8317  }
8318  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
8319  if (hasBooleanEncodingLevel()) {
8321  != other.getBooleanEncodingLevel()) return false;
8322  }
8323  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
8324  if (hasMaxNumCuts()) {
8325  if (getMaxNumCuts()
8326  != other.getMaxNumCuts()) return false;
8327  }
8328  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
8329  if (hasOnlyAddCutsAtLevelZero()) {
8331  != other.getOnlyAddCutsAtLevelZero()) return false;
8332  }
8333  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
8334  if (hasAddKnapsackCuts()) {
8335  if (getAddKnapsackCuts()
8336  != other.getAddKnapsackCuts()) return false;
8337  }
8338  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
8339  if (hasAddCgCuts()) {
8340  if (getAddCgCuts()
8341  != other.getAddCgCuts()) return false;
8342  }
8343  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
8344  if (hasAddMirCuts()) {
8345  if (getAddMirCuts()
8346  != other.getAddMirCuts()) return false;
8347  }
8348  if (hasMaxAllDiffCutSize() != other.hasMaxAllDiffCutSize()) return false;
8349  if (hasMaxAllDiffCutSize()) {
8350  if (getMaxAllDiffCutSize()
8351  != other.getMaxAllDiffCutSize()) return false;
8352  }
8353  if (hasAddLinMaxCuts() != other.hasAddLinMaxCuts()) return false;
8354  if (hasAddLinMaxCuts()) {
8355  if (getAddLinMaxCuts()
8356  != other.getAddLinMaxCuts()) return false;
8357  }
8358  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
8361  != other.getMaxIntegerRoundingScaling()) return false;
8362  }
8363  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
8364  if (hasAddLpConstraintsLazily()) {
8366  != other.getAddLpConstraintsLazily()) return false;
8367  }
8368  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
8370  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
8371  != java.lang.Double.doubleToLongBits(
8372  other.getMinOrthogonalityForLpConstraints())) return false;
8373  }
8374  if (hasMaxCutRoundsAtLevelZero() != other.hasMaxCutRoundsAtLevelZero()) return false;
8377  != other.getMaxCutRoundsAtLevelZero()) return false;
8378  }
8379  if (hasMaxConsecutiveInactiveCount() != other.hasMaxConsecutiveInactiveCount()) return false;
8382  != other.getMaxConsecutiveInactiveCount()) return false;
8383  }
8384  if (hasCutMaxActiveCountValue() != other.hasCutMaxActiveCountValue()) return false;
8385  if (hasCutMaxActiveCountValue()) {
8386  if (java.lang.Double.doubleToLongBits(getCutMaxActiveCountValue())
8387  != java.lang.Double.doubleToLongBits(
8388  other.getCutMaxActiveCountValue())) return false;
8389  }
8390  if (hasCutActiveCountDecay() != other.hasCutActiveCountDecay()) return false;
8391  if (hasCutActiveCountDecay()) {
8392  if (java.lang.Double.doubleToLongBits(getCutActiveCountDecay())
8393  != java.lang.Double.doubleToLongBits(
8394  other.getCutActiveCountDecay())) return false;
8395  }
8396  if (hasCutCleanupTarget() != other.hasCutCleanupTarget()) return false;
8397  if (hasCutCleanupTarget()) {
8398  if (getCutCleanupTarget()
8399  != other.getCutCleanupTarget()) return false;
8400  }
8401  if (hasNewConstraintsBatchSize() != other.hasNewConstraintsBatchSize()) return false;
8404  != other.getNewConstraintsBatchSize()) return false;
8405  }
8406  if (hasSearchBranching() != other.hasSearchBranching()) return false;
8407  if (hasSearchBranching()) {
8408  if (searchBranching_ != other.searchBranching_) return false;
8409  }
8410  if (hasHintConflictLimit() != other.hasHintConflictLimit()) return false;
8411  if (hasHintConflictLimit()) {
8412  if (getHintConflictLimit()
8413  != other.getHintConflictLimit()) return false;
8414  }
8415  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
8418  != other.getExploitIntegerLpSolution()) return false;
8419  }
8420  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
8421  if (hasExploitAllLpSolution()) {
8423  != other.getExploitAllLpSolution()) return false;
8424  }
8425  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
8426  if (hasExploitBestSolution()) {
8428  != other.getExploitBestSolution()) return false;
8429  }
8430  if (hasExploitRelaxationSolution() != other.hasExploitRelaxationSolution()) return false;
8433  != other.getExploitRelaxationSolution()) return false;
8434  }
8435  if (hasExploitObjective() != other.hasExploitObjective()) return false;
8436  if (hasExploitObjective()) {
8437  if (getExploitObjective()
8438  != other.getExploitObjective()) return false;
8439  }
8440  if (hasProbingPeriodAtRoot() != other.hasProbingPeriodAtRoot()) return false;
8441  if (hasProbingPeriodAtRoot()) {
8443  != other.getProbingPeriodAtRoot()) return false;
8444  }
8445  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
8448  != other.getPseudoCostReliabilityThreshold()) return false;
8449  }
8450  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
8451  if (hasOptimizeWithCore()) {
8452  if (getOptimizeWithCore()
8453  != other.getOptimizeWithCore()) return false;
8454  }
8455  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
8458  != other.getBinarySearchNumConflicts()) return false;
8459  }
8460  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
8461  if (hasOptimizeWithMaxHs()) {
8462  if (getOptimizeWithMaxHs()
8463  != other.getOptimizeWithMaxHs()) return false;
8464  }
8465  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
8466  if (hasEnumerateAllSolutions()) {
8468  != other.getEnumerateAllSolutions()) return false;
8469  }
8470  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
8473  != other.getFillTightenedDomainsInResponse()) return false;
8474  }
8475  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
8478  != other.getInstantiateAllVariables()) return false;
8479  }
8480  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
8483  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
8484  }
8485  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
8486  if (hasStopAfterFirstSolution()) {
8488  != other.getStopAfterFirstSolution()) return false;
8489  }
8490  if (hasStopAfterPresolve() != other.hasStopAfterPresolve()) return false;
8491  if (hasStopAfterPresolve()) {
8492  if (getStopAfterPresolve()
8493  != other.getStopAfterPresolve()) return false;
8494  }
8495  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
8496  if (hasNumSearchWorkers()) {
8497  if (getNumSearchWorkers()
8498  != other.getNumSearchWorkers()) return false;
8499  }
8500  if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
8501  if (hasInterleaveSearch()) {
8502  if (getInterleaveSearch()
8503  != other.getInterleaveSearch()) return false;
8504  }
8505  if (hasInterleaveBatchSize() != other.hasInterleaveBatchSize()) return false;
8506  if (hasInterleaveBatchSize()) {
8508  != other.getInterleaveBatchSize()) return false;
8509  }
8510  if (hasReduceMemoryUsageInInterleaveMode() != other.hasReduceMemoryUsageInInterleaveMode()) return false;
8513  != other.getReduceMemoryUsageInInterleaveMode()) return false;
8514  }
8515  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
8516  if (hasShareObjectiveBounds()) {
8518  != other.getShareObjectiveBounds()) return false;
8519  }
8520  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
8521  if (hasShareLevelZeroBounds()) {
8523  != other.getShareLevelZeroBounds()) return false;
8524  }
8525  if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
8526  if (hasUseLnsOnly()) {
8527  if (getUseLnsOnly()
8528  != other.getUseLnsOnly()) return false;
8529  }
8530  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
8533  != other.getLnsFocusOnDecisionVariables()) return false;
8534  }
8535  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
8536  if (hasUseRinsLns()) {
8537  if (getUseRinsLns()
8538  != other.getUseRinsLns()) return false;
8539  }
8540  if (hasUseFeasibilityPump() != other.hasUseFeasibilityPump()) return false;
8541  if (hasUseFeasibilityPump()) {
8542  if (getUseFeasibilityPump()
8543  != other.getUseFeasibilityPump()) return false;
8544  }
8545  if (hasFpRounding() != other.hasFpRounding()) return false;
8546  if (hasFpRounding()) {
8547  if (fpRounding_ != other.fpRounding_) return false;
8548  }
8549  if (hasUseRelaxationLns() != other.hasUseRelaxationLns()) return false;
8550  if (hasUseRelaxationLns()) {
8551  if (getUseRelaxationLns()
8552  != other.getUseRelaxationLns()) return false;
8553  }
8554  if (hasDiversifyLnsParams() != other.hasDiversifyLnsParams()) return false;
8555  if (hasDiversifyLnsParams()) {
8556  if (getDiversifyLnsParams()
8557  != other.getDiversifyLnsParams()) return false;
8558  }
8559  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
8560  if (hasRandomizeSearch()) {
8561  if (getRandomizeSearch()
8562  != other.getRandomizeSearch()) return false;
8563  }
8564  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
8567  != other.getSearchRandomizationTolerance()) return false;
8568  }
8569  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
8570  if (hasUseOptionalVariables()) {
8572  != other.getUseOptionalVariables()) return false;
8573  }
8574  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
8575  if (hasUseExactLpReason()) {
8576  if (getUseExactLpReason()
8577  != other.getUseExactLpReason()) return false;
8578  }
8579  if (hasUseBranchingInLp() != other.hasUseBranchingInLp()) return false;
8580  if (hasUseBranchingInLp()) {
8581  if (getUseBranchingInLp()
8582  != other.getUseBranchingInLp()) return false;
8583  }
8584  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
8585  if (hasUseCombinedNoOverlap()) {
8587  != other.getUseCombinedNoOverlap()) return false;
8588  }
8589  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
8590  if (hasCatchSigintSignal()) {
8591  if (getCatchSigintSignal()
8592  != other.getCatchSigintSignal()) return false;
8593  }
8594  if (hasUseImpliedBounds() != other.hasUseImpliedBounds()) return false;
8595  if (hasUseImpliedBounds()) {
8596  if (getUseImpliedBounds()
8597  != other.getUseImpliedBounds()) return false;
8598  }
8599  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
8600  if (hasMipMaxBound()) {
8601  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
8602  != java.lang.Double.doubleToLongBits(
8603  other.getMipMaxBound())) return false;
8604  }
8605  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
8606  if (hasMipVarScaling()) {
8607  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
8608  != java.lang.Double.doubleToLongBits(
8609  other.getMipVarScaling())) return false;
8610  }
8611  if (hasMipAutomaticallyScaleVariables() != other.hasMipAutomaticallyScaleVariables()) return false;
8614  != other.getMipAutomaticallyScaleVariables()) return false;
8615  }
8616  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
8617  if (hasMipWantedPrecision()) {
8618  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
8619  != java.lang.Double.doubleToLongBits(
8620  other.getMipWantedPrecision())) return false;
8621  }
8622  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
8623  if (hasMipMaxActivityExponent()) {
8625  != other.getMipMaxActivityExponent()) return false;
8626  }
8627  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
8628  if (hasMipCheckPrecision()) {
8629  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
8630  != java.lang.Double.doubleToLongBits(
8631  other.getMipCheckPrecision())) return false;
8632  }
8633  if (!unknownFields.equals(other.unknownFields)) return false;
8634  return true;
8635  }
8636 
8637  @java.lang.Override
8638  public int hashCode() {
8639  if (memoizedHashCode != 0) {
8640  return memoizedHashCode;
8641  }
8642  int hash = 41;
8643  hash = (19 * hash) + getDescriptor().hashCode();
8644  if (hasPreferredVariableOrder()) {
8645  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
8646  hash = (53 * hash) + preferredVariableOrder_;
8647  }
8648  if (hasInitialPolarity()) {
8649  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
8650  hash = (53 * hash) + initialPolarity_;
8651  }
8652  if (hasUsePhaseSaving()) {
8653  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
8654  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8655  getUsePhaseSaving());
8656  }
8657  if (hasRandomPolarityRatio()) {
8658  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
8659  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8660  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
8661  }
8662  if (hasRandomBranchesRatio()) {
8663  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
8664  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8665  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
8666  }
8667  if (hasUseErwaHeuristic()) {
8668  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
8669  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8671  }
8673  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
8674  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8675  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
8676  }
8679  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8681  }
8682  if (hasMinimizationAlgorithm()) {
8683  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
8684  hash = (53 * hash) + minimizationAlgorithm_;
8685  }
8687  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
8688  hash = (53 * hash) + binaryMinimizationAlgorithm_;
8689  }
8692  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8694  }
8695  if (hasClauseCleanupPeriod()) {
8696  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
8697  hash = (53 * hash) + getClauseCleanupPeriod();
8698  }
8699  if (hasClauseCleanupTarget()) {
8700  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
8701  hash = (53 * hash) + getClauseCleanupTarget();
8702  }
8704  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
8705  hash = (53 * hash) + clauseCleanupProtection_;
8706  }
8707  if (hasClauseCleanupLbdBound()) {
8708  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
8709  hash = (53 * hash) + getClauseCleanupLbdBound();
8710  }
8711  if (hasClauseCleanupOrdering()) {
8712  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
8713  hash = (53 * hash) + clauseCleanupOrdering_;
8714  }
8715  if (hasPbCleanupIncrement()) {
8716  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
8717  hash = (53 * hash) + getPbCleanupIncrement();
8718  }
8719  if (hasPbCleanupRatio()) {
8720  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
8721  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8722  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
8723  }
8726  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
8727  }
8730  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
8731  }
8732  if (hasVariableActivityDecay()) {
8733  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
8734  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8735  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
8736  }
8738  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
8739  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8740  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
8741  }
8742  if (hasGlucoseMaxDecay()) {
8743  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
8744  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8745  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
8746  }
8747  if (hasGlucoseDecayIncrement()) {
8748  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
8749  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8750  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
8751  }
8753  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
8754  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
8755  }
8756  if (hasClauseActivityDecay()) {
8757  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
8758  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8759  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
8760  }
8761  if (hasMaxClauseActivityValue()) {
8762  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
8763  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8764  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
8765  }
8766  if (getRestartAlgorithmsCount() > 0) {
8767  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
8768  hash = (53 * hash) + restartAlgorithms_.hashCode();
8769  }
8771  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
8772  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
8773  }
8774  if (hasRestartPeriod()) {
8775  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
8776  hash = (53 * hash) + getRestartPeriod();
8777  }
8779  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
8780  hash = (53 * hash) + getRestartRunningWindowSize();
8781  }
8782  if (hasRestartDlAverageRatio()) {
8783  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
8784  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8785  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
8786  }
8787  if (hasRestartLbdAverageRatio()) {
8788  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
8789  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8790  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
8791  }
8792  if (hasUseBlockingRestart()) {
8793  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
8794  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8796  }
8798  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
8799  hash = (53 * hash) + getBlockingRestartWindowSize();
8800  }
8802  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
8803  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8804  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
8805  }
8808  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
8809  }
8811  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
8812  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8813  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
8814  }
8815  if (hasMaxTimeInSeconds()) {
8816  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
8817  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8818  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
8819  }
8820  if (hasMaxDeterministicTime()) {
8821  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
8822  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8823  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
8824  }
8825  if (hasMaxNumberOfConflicts()) {
8826  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
8827  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8829  }
8830  if (hasMaxMemoryInMb()) {
8831  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
8832  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8833  getMaxMemoryInMb());
8834  }
8835  if (hasAbsoluteGapLimit()) {
8836  hash = (37 * hash) + ABSOLUTE_GAP_LIMIT_FIELD_NUMBER;
8837  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8838  java.lang.Double.doubleToLongBits(getAbsoluteGapLimit()));
8839  }
8840  if (hasRelativeGapLimit()) {
8841  hash = (37 * hash) + RELATIVE_GAP_LIMIT_FIELD_NUMBER;
8842  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8843  java.lang.Double.doubleToLongBits(getRelativeGapLimit()));
8844  }
8846  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
8847  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8849  }
8850  if (hasRandomSeed()) {
8851  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
8852  hash = (53 * hash) + getRandomSeed();
8853  }
8854  if (hasLogSearchProgress()) {
8855  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
8856  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8858  }
8859  if (hasUsePbResolution()) {
8860  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
8861  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8862  getUsePbResolution());
8863  }
8866  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8868  }
8870  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
8871  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8873  }
8874  if (hasPresolveBveThreshold()) {
8875  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
8876  hash = (53 * hash) + getPresolveBveThreshold();
8877  }
8879  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
8880  hash = (53 * hash) + getPresolveBveClauseWeight();
8881  }
8884  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8885  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
8886  }
8887  if (hasPresolveBlockedClause()) {
8888  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
8889  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8891  }
8892  if (hasPresolveUseBva()) {
8893  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
8894  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8895  getPresolveUseBva());
8896  }
8897  if (hasPresolveBvaThreshold()) {
8898  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
8899  hash = (53 * hash) + getPresolveBvaThreshold();
8900  }
8901  if (hasMaxPresolveIterations()) {
8902  hash = (37 * hash) + MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER;
8903  hash = (53 * hash) + getMaxPresolveIterations();
8904  }
8905  if (hasCpModelPresolve()) {
8906  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
8907  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8908  getCpModelPresolve());
8909  }
8912  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8914  }
8917  hash = (53 * hash) + getCpModelMaxNumPresolveOperations();
8918  }
8919  if (hasCpModelProbingLevel()) {
8920  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
8921  hash = (53 * hash) + getCpModelProbingLevel();
8922  }
8923  if (hasCpModelUseSatPresolve()) {
8924  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
8925  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8927  }
8928  if (hasUseSatInprocessing()) {
8929  hash = (37 * hash) + USE_SAT_INPROCESSING_FIELD_NUMBER;
8930  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8932  }
8934  hash = (37 * hash) + EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER;
8935  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8937  }
8939  hash = (37 * hash) + EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER;
8940  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8942  }
8943  if (hasExpandTableConstraints()) {
8944  hash = (37 * hash) + EXPAND_TABLE_CONSTRAINTS_FIELD_NUMBER;
8945  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8947  }
8949  hash = (37 * hash) + MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER;
8950  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8951  java.lang.Double.doubleToLongBits(getMergeNoOverlapWorkLimit()));
8952  }
8954  hash = (37 * hash) + MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER;
8955  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8956  java.lang.Double.doubleToLongBits(getMergeAtMostOneWorkLimit()));
8957  }
8959  hash = (37 * hash) + PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER;
8960  hash = (53 * hash) + getPresolveSubstitutionLevel();
8961  }
8962  if (hasUseOptimizationHints()) {
8963  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
8964  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8966  }
8967  if (hasMinimizeCore()) {
8968  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
8969  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8970  getMinimizeCore());
8971  }
8972  if (hasFindMultipleCores()) {
8973  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
8974  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8976  }
8977  if (hasCoverOptimization()) {
8978  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
8979  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8981  }
8982  if (hasMaxSatAssumptionOrder()) {
8983  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
8984  hash = (53 * hash) + maxSatAssumptionOrder_;
8985  }
8987  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
8988  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8990  }
8991  if (hasMaxSatStratification()) {
8992  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
8993  hash = (53 * hash) + maxSatStratification_;
8994  }
8997  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8999  }
9002  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9004  }
9007  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9009  }
9012  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9014  }
9015  if (hasLinearizationLevel()) {
9016  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
9017  hash = (53 * hash) + getLinearizationLevel();
9018  }
9019  if (hasBooleanEncodingLevel()) {
9020  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
9021  hash = (53 * hash) + getBooleanEncodingLevel();
9022  }
9023  if (hasMaxNumCuts()) {
9024  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
9025  hash = (53 * hash) + getMaxNumCuts();
9026  }
9027  if (hasOnlyAddCutsAtLevelZero()) {
9028  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
9029  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9031  }
9032  if (hasAddKnapsackCuts()) {
9033  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
9034  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9035  getAddKnapsackCuts());
9036  }
9037  if (hasAddCgCuts()) {
9038  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
9039  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9040  getAddCgCuts());
9041  }
9042  if (hasAddMirCuts()) {
9043  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
9044  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9045  getAddMirCuts());
9046  }
9047  if (hasMaxAllDiffCutSize()) {
9048  hash = (37 * hash) + MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER;
9049  hash = (53 * hash) + getMaxAllDiffCutSize();
9050  }
9051  if (hasAddLinMaxCuts()) {
9052  hash = (37 * hash) + ADD_LIN_MAX_CUTS_FIELD_NUMBER;
9053  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9054  getAddLinMaxCuts());
9055  }
9057  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
9058  hash = (53 * hash) + getMaxIntegerRoundingScaling();
9059  }
9060  if (hasAddLpConstraintsLazily()) {
9061  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
9062  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9064  }
9067  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9068  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
9069  }
9071  hash = (37 * hash) + MAX_CUT_ROUNDS_AT_LEVEL_ZERO_FIELD_NUMBER;
9072  hash = (53 * hash) + getMaxCutRoundsAtLevelZero();
9073  }
9075  hash = (37 * hash) + MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER;
9076  hash = (53 * hash) + getMaxConsecutiveInactiveCount();
9077  }
9078  if (hasCutMaxActiveCountValue()) {
9079  hash = (37 * hash) + CUT_MAX_ACTIVE_COUNT_VALUE_FIELD_NUMBER;
9080  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9081  java.lang.Double.doubleToLongBits(getCutMaxActiveCountValue()));
9082  }
9083  if (hasCutActiveCountDecay()) {
9084  hash = (37 * hash) + CUT_ACTIVE_COUNT_DECAY_FIELD_NUMBER;
9085  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9086  java.lang.Double.doubleToLongBits(getCutActiveCountDecay()));
9087  }
9088  if (hasCutCleanupTarget()) {
9089  hash = (37 * hash) + CUT_CLEANUP_TARGET_FIELD_NUMBER;
9090  hash = (53 * hash) + getCutCleanupTarget();
9091  }
9093  hash = (37 * hash) + NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER;
9094  hash = (53 * hash) + getNewConstraintsBatchSize();
9095  }
9096  if (hasSearchBranching()) {
9097  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
9098  hash = (53 * hash) + searchBranching_;
9099  }
9100  if (hasHintConflictLimit()) {
9101  hash = (37 * hash) + HINT_CONFLICT_LIMIT_FIELD_NUMBER;
9102  hash = (53 * hash) + getHintConflictLimit();
9103  }
9105  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
9106  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9108  }
9109  if (hasExploitAllLpSolution()) {
9110  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
9111  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9113  }
9114  if (hasExploitBestSolution()) {
9115  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
9116  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9118  }
9120  hash = (37 * hash) + EXPLOIT_RELAXATION_SOLUTION_FIELD_NUMBER;
9121  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9123  }
9124  if (hasExploitObjective()) {
9125  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
9126  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9128  }
9129  if (hasProbingPeriodAtRoot()) {
9130  hash = (37 * hash) + PROBING_PERIOD_AT_ROOT_FIELD_NUMBER;
9131  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9133  }
9136  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9138  }
9139  if (hasOptimizeWithCore()) {
9140  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
9141  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9143  }
9145  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
9146  hash = (53 * hash) + getBinarySearchNumConflicts();
9147  }
9148  if (hasOptimizeWithMaxHs()) {
9149  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
9150  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9152  }
9153  if (hasEnumerateAllSolutions()) {
9154  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
9155  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9157  }
9160  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9162  }
9164  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
9165  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9167  }
9170  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9172  }
9173  if (hasStopAfterFirstSolution()) {
9174  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
9175  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9177  }
9178  if (hasStopAfterPresolve()) {
9179  hash = (37 * hash) + STOP_AFTER_PRESOLVE_FIELD_NUMBER;
9180  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9182  }
9183  if (hasNumSearchWorkers()) {
9184  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
9185  hash = (53 * hash) + getNumSearchWorkers();
9186  }
9187  if (hasInterleaveSearch()) {
9188  hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
9189  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9191  }
9192  if (hasInterleaveBatchSize()) {
9193  hash = (37 * hash) + INTERLEAVE_BATCH_SIZE_FIELD_NUMBER;
9194  hash = (53 * hash) + getInterleaveBatchSize();
9195  }
9198  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9200  }
9201  if (hasShareObjectiveBounds()) {
9202  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
9203  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9205  }
9206  if (hasShareLevelZeroBounds()) {
9207  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
9208  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9210  }
9211  if (hasUseLnsOnly()) {
9212  hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
9213  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9214  getUseLnsOnly());
9215  }
9217  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
9218  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9220  }
9221  if (hasUseRinsLns()) {
9222  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
9223  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9224  getUseRinsLns());
9225  }
9226  if (hasUseFeasibilityPump()) {
9227  hash = (37 * hash) + USE_FEASIBILITY_PUMP_FIELD_NUMBER;
9228  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9230  }
9231  if (hasFpRounding()) {
9232  hash = (37 * hash) + FP_ROUNDING_FIELD_NUMBER;
9233  hash = (53 * hash) + fpRounding_;
9234  }
9235  if (hasUseRelaxationLns()) {
9236  hash = (37 * hash) + USE_RELAXATION_LNS_FIELD_NUMBER;
9237  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9239  }
9240  if (hasDiversifyLnsParams()) {
9241  hash = (37 * hash) + DIVERSIFY_LNS_PARAMS_FIELD_NUMBER;
9242  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9244  }
9245  if (hasRandomizeSearch()) {
9246  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
9247  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9248  getRandomizeSearch());
9249  }
9251  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
9252  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9254  }
9255  if (hasUseOptionalVariables()) {
9256  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
9257  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9259  }
9260  if (hasUseExactLpReason()) {
9261  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
9262  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9264  }
9265  if (hasUseBranchingInLp()) {
9266  hash = (37 * hash) + USE_BRANCHING_IN_LP_FIELD_NUMBER;
9267  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9269  }
9270  if (hasUseCombinedNoOverlap()) {
9271  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
9272  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9274  }
9275  if (hasCatchSigintSignal()) {
9276  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
9277  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9279  }
9280  if (hasUseImpliedBounds()) {
9281  hash = (37 * hash) + USE_IMPLIED_BOUNDS_FIELD_NUMBER;
9282  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9284  }
9285  if (hasMipMaxBound()) {
9286  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
9287  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9288  java.lang.Double.doubleToLongBits(getMipMaxBound()));
9289  }
9290  if (hasMipVarScaling()) {
9291  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
9292  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9293  java.lang.Double.doubleToLongBits(getMipVarScaling()));
9294  }
9297  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9299  }
9300  if (hasMipWantedPrecision()) {
9301  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
9302  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9303  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
9304  }
9305  if (hasMipMaxActivityExponent()) {
9306  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
9307  hash = (53 * hash) + getMipMaxActivityExponent();
9308  }
9309  if (hasMipCheckPrecision()) {
9310  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
9311  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9312  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
9313  }
9314  hash = (29 * hash) + unknownFields.hashCode();
9315  memoizedHashCode = hash;
9316  return hash;
9317  }
9318 
9320  java.nio.ByteBuffer data)
9321  throws com.google.protobuf.InvalidProtocolBufferException {
9322  return PARSER.parseFrom(data);
9323  }
9325  java.nio.ByteBuffer data,
9326  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9327  throws com.google.protobuf.InvalidProtocolBufferException {
9328  return PARSER.parseFrom(data, extensionRegistry);
9329  }
9331  com.google.protobuf.ByteString data)
9332  throws com.google.protobuf.InvalidProtocolBufferException {
9333  return PARSER.parseFrom(data);
9334  }
9336  com.google.protobuf.ByteString data,
9337  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9338  throws com.google.protobuf.InvalidProtocolBufferException {
9339  return PARSER.parseFrom(data, extensionRegistry);
9340  }
9341  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
9342  throws com.google.protobuf.InvalidProtocolBufferException {
9343  return PARSER.parseFrom(data);
9344  }
9346  byte[] data,
9347  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9348  throws com.google.protobuf.InvalidProtocolBufferException {
9349  return PARSER.parseFrom(data, extensionRegistry);
9350  }
9351  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
9352  throws java.io.IOException {
9353  return com.google.protobuf.GeneratedMessageV3
9354  .parseWithIOException(PARSER, input);
9355  }
9357  java.io.InputStream input,
9358  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9359  throws java.io.IOException {
9360  return com.google.protobuf.GeneratedMessageV3
9361  .parseWithIOException(PARSER, input, extensionRegistry);
9362  }
9363  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
9364  throws java.io.IOException {
9365  return com.google.protobuf.GeneratedMessageV3
9366  .parseDelimitedWithIOException(PARSER, input);
9367  }
9369  java.io.InputStream input,
9370  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9371  throws java.io.IOException {
9372  return com.google.protobuf.GeneratedMessageV3
9373  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
9374  }
9376  com.google.protobuf.CodedInputStream input)
9377  throws java.io.IOException {
9378  return com.google.protobuf.GeneratedMessageV3
9379  .parseWithIOException(PARSER, input);
9380  }
9382  com.google.protobuf.CodedInputStream input,
9383  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9384  throws java.io.IOException {
9385  return com.google.protobuf.GeneratedMessageV3
9386  .parseWithIOException(PARSER, input, extensionRegistry);
9387  }
9388 
9389  @java.lang.Override
9390  public Builder newBuilderForType() { return newBuilder(); }
9391  public static Builder newBuilder() {
9392  return DEFAULT_INSTANCE.toBuilder();
9393  }
9394  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
9395  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
9396  }
9397  @java.lang.Override
9398  public Builder toBuilder() {
9399  return this == DEFAULT_INSTANCE
9400  ? new Builder() : new Builder().mergeFrom(this);
9401  }
9402 
9403  @java.lang.Override
9405  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
9406  Builder builder = new Builder(parent);
9407  return builder;
9408  }
9418  public static final class Builder extends
9419  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
9420  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
9421  com.google.ortools.sat.SatParametersOrBuilder {
9422  public static final com.google.protobuf.Descriptors.Descriptor
9424  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
9425  }
9426 
9427  @java.lang.Override
9428  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
9430  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
9431  .ensureFieldAccessorsInitialized(
9433  }
9434 
9435  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
9436  private Builder() {
9437  maybeForceBuilderInitialization();
9438  }
9439 
9440  private Builder(
9441  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
9442  super(parent);
9443  maybeForceBuilderInitialization();
9444  }
9445  private void maybeForceBuilderInitialization() {
9446  if (com.google.protobuf.GeneratedMessageV3
9447  .alwaysUseFieldBuilders) {
9448  }
9449  }
9450  @java.lang.Override
9451  public Builder clear() {
9452  super.clear();
9453  preferredVariableOrder_ = 0;
9454  bitField0_ = (bitField0_ & ~0x00000001);
9455  initialPolarity_ = 1;
9456  bitField0_ = (bitField0_ & ~0x00000002);
9457  usePhaseSaving_ = true;
9458  bitField0_ = (bitField0_ & ~0x00000004);
9459  randomPolarityRatio_ = 0D;
9460  bitField0_ = (bitField0_ & ~0x00000008);
9461  randomBranchesRatio_ = 0D;
9462  bitField0_ = (bitField0_ & ~0x00000010);
9463  useErwaHeuristic_ = false;
9464  bitField0_ = (bitField0_ & ~0x00000020);
9465  initialVariablesActivity_ = 0D;
9466  bitField0_ = (bitField0_ & ~0x00000040);
9467  alsoBumpVariablesInConflictReasons_ = false;
9468  bitField0_ = (bitField0_ & ~0x00000080);
9469  minimizationAlgorithm_ = 2;
9470  bitField0_ = (bitField0_ & ~0x00000100);
9471  binaryMinimizationAlgorithm_ = 1;
9472  bitField0_ = (bitField0_ & ~0x00000200);
9473  subsumptionDuringConflictAnalysis_ = true;
9474  bitField0_ = (bitField0_ & ~0x00000400);
9475  clauseCleanupPeriod_ = 10000;
9476  bitField0_ = (bitField0_ & ~0x00000800);
9477  clauseCleanupTarget_ = 10000;
9478  bitField0_ = (bitField0_ & ~0x00001000);
9479  clauseCleanupProtection_ = 0;
9480  bitField0_ = (bitField0_ & ~0x00002000);
9481  clauseCleanupLbdBound_ = 5;
9482  bitField0_ = (bitField0_ & ~0x00004000);
9483  clauseCleanupOrdering_ = 0;
9484  bitField0_ = (bitField0_ & ~0x00008000);
9485  pbCleanupIncrement_ = 200;
9486  bitField0_ = (bitField0_ & ~0x00010000);
9487  pbCleanupRatio_ = 0.5D;
9488  bitField0_ = (bitField0_ & ~0x00020000);
9489  minimizeWithPropagationRestartPeriod_ = 10;
9490  bitField0_ = (bitField0_ & ~0x00040000);
9491  minimizeWithPropagationNumDecisions_ = 1000;
9492  bitField0_ = (bitField0_ & ~0x00080000);
9493  variableActivityDecay_ = 0.8D;
9494  bitField0_ = (bitField0_ & ~0x00100000);
9495  maxVariableActivityValue_ = 1e+100D;
9496  bitField0_ = (bitField0_ & ~0x00200000);
9497  glucoseMaxDecay_ = 0.95D;
9498  bitField0_ = (bitField0_ & ~0x00400000);
9499  glucoseDecayIncrement_ = 0.01D;
9500  bitField0_ = (bitField0_ & ~0x00800000);
9501  glucoseDecayIncrementPeriod_ = 5000;
9502  bitField0_ = (bitField0_ & ~0x01000000);
9503  clauseActivityDecay_ = 0.999D;
9504  bitField0_ = (bitField0_ & ~0x02000000);
9505  maxClauseActivityValue_ = 1e+20D;
9506  bitField0_ = (bitField0_ & ~0x04000000);
9507  restartAlgorithms_ = java.util.Collections.emptyList();
9508  bitField0_ = (bitField0_ & ~0x08000000);
9509  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
9510  bitField0_ = (bitField0_ & ~0x10000000);
9511  restartPeriod_ = 50;
9512  bitField0_ = (bitField0_ & ~0x20000000);
9513  restartRunningWindowSize_ = 50;
9514  bitField0_ = (bitField0_ & ~0x40000000);
9515  restartDlAverageRatio_ = 1D;
9516  bitField0_ = (bitField0_ & ~0x80000000);
9517  restartLbdAverageRatio_ = 1D;
9518  bitField1_ = (bitField1_ & ~0x00000001);
9519  useBlockingRestart_ = false;
9520  bitField1_ = (bitField1_ & ~0x00000002);
9521  blockingRestartWindowSize_ = 5000;
9522  bitField1_ = (bitField1_ & ~0x00000004);
9523  blockingRestartMultiplier_ = 1.4D;
9524  bitField1_ = (bitField1_ & ~0x00000008);
9525  numConflictsBeforeStrategyChanges_ = 0;
9526  bitField1_ = (bitField1_ & ~0x00000010);
9527  strategyChangeIncreaseRatio_ = 0D;
9528  bitField1_ = (bitField1_ & ~0x00000020);
9529  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
9530  bitField1_ = (bitField1_ & ~0x00000040);
9531  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
9532  bitField1_ = (bitField1_ & ~0x00000080);
9533  maxNumberOfConflicts_ = 9223372036854775807L;
9534  bitField1_ = (bitField1_ & ~0x00000100);
9535  maxMemoryInMb_ = 10000L;
9536  bitField1_ = (bitField1_ & ~0x00000200);
9537  absoluteGapLimit_ = 0D;
9538  bitField1_ = (bitField1_ & ~0x00000400);
9539  relativeGapLimit_ = 0D;
9540  bitField1_ = (bitField1_ & ~0x00000800);
9541  treatBinaryClausesSeparately_ = true;
9542  bitField1_ = (bitField1_ & ~0x00001000);
9543  randomSeed_ = 1;
9544  bitField1_ = (bitField1_ & ~0x00002000);
9545  logSearchProgress_ = false;
9546  bitField1_ = (bitField1_ & ~0x00004000);
9547  usePbResolution_ = false;
9548  bitField1_ = (bitField1_ & ~0x00008000);
9549  minimizeReductionDuringPbResolution_ = false;
9550  bitField1_ = (bitField1_ & ~0x00010000);
9551  countAssumptionLevelsInLbd_ = true;
9552  bitField1_ = (bitField1_ & ~0x00020000);
9553  presolveBveThreshold_ = 500;
9554  bitField1_ = (bitField1_ & ~0x00040000);
9555  presolveBveClauseWeight_ = 3;
9556  bitField1_ = (bitField1_ & ~0x00080000);
9557  presolveProbingDeterministicTimeLimit_ = 30D;
9558  bitField1_ = (bitField1_ & ~0x00100000);
9559  presolveBlockedClause_ = true;
9560  bitField1_ = (bitField1_ & ~0x00200000);
9561  presolveUseBva_ = true;
9562  bitField1_ = (bitField1_ & ~0x00400000);
9563  presolveBvaThreshold_ = 1;
9564  bitField1_ = (bitField1_ & ~0x00800000);
9565  maxPresolveIterations_ = 3;
9566  bitField1_ = (bitField1_ & ~0x01000000);
9567  cpModelPresolve_ = true;
9568  bitField1_ = (bitField1_ & ~0x02000000);
9569  cpModelPostsolveWithFullSolver_ = false;
9570  bitField1_ = (bitField1_ & ~0x04000000);
9571  cpModelMaxNumPresolveOperations_ = 0;
9572  bitField1_ = (bitField1_ & ~0x08000000);
9573  cpModelProbingLevel_ = 2;
9574  bitField1_ = (bitField1_ & ~0x10000000);
9575  cpModelUseSatPresolve_ = true;
9576  bitField1_ = (bitField1_ & ~0x20000000);
9577  useSatInprocessing_ = false;
9578  bitField1_ = (bitField1_ & ~0x40000000);
9579  expandElementConstraints_ = true;
9580  bitField1_ = (bitField1_ & ~0x80000000);
9581  expandAutomatonConstraints_ = true;
9582  bitField2_ = (bitField2_ & ~0x00000001);
9583  expandTableConstraints_ = true;
9584  bitField2_ = (bitField2_ & ~0x00000002);
9585  mergeNoOverlapWorkLimit_ = 1000000000000D;
9586  bitField2_ = (bitField2_ & ~0x00000004);
9587  mergeAtMostOneWorkLimit_ = 100000000D;
9588  bitField2_ = (bitField2_ & ~0x00000008);
9589  presolveSubstitutionLevel_ = 1;
9590  bitField2_ = (bitField2_ & ~0x00000010);
9591  useOptimizationHints_ = true;
9592  bitField2_ = (bitField2_ & ~0x00000020);
9593  minimizeCore_ = true;
9594  bitField2_ = (bitField2_ & ~0x00000040);
9595  findMultipleCores_ = true;
9596  bitField2_ = (bitField2_ & ~0x00000080);
9597  coverOptimization_ = true;
9598  bitField2_ = (bitField2_ & ~0x00000100);
9599  maxSatAssumptionOrder_ = 0;
9600  bitField2_ = (bitField2_ & ~0x00000200);
9601  maxSatReverseAssumptionOrder_ = false;
9602  bitField2_ = (bitField2_ & ~0x00000400);
9603  maxSatStratification_ = 1;
9604  bitField2_ = (bitField2_ & ~0x00000800);
9605  usePrecedencesInDisjunctiveConstraint_ = true;
9606  bitField2_ = (bitField2_ & ~0x00001000);
9607  useOverloadCheckerInCumulativeConstraint_ = false;
9608  bitField2_ = (bitField2_ & ~0x00002000);
9609  useTimetableEdgeFindingInCumulativeConstraint_ = false;
9610  bitField2_ = (bitField2_ & ~0x00004000);
9611  useDisjunctiveConstraintInCumulativeConstraint_ = true;
9612  bitField2_ = (bitField2_ & ~0x00008000);
9613  linearizationLevel_ = 1;
9614  bitField2_ = (bitField2_ & ~0x00010000);
9615  booleanEncodingLevel_ = 1;
9616  bitField2_ = (bitField2_ & ~0x00020000);
9617  maxNumCuts_ = 10000;
9618  bitField2_ = (bitField2_ & ~0x00040000);
9619  onlyAddCutsAtLevelZero_ = false;
9620  bitField2_ = (bitField2_ & ~0x00080000);
9621  addKnapsackCuts_ = false;
9622  bitField2_ = (bitField2_ & ~0x00100000);
9623  addCgCuts_ = true;
9624  bitField2_ = (bitField2_ & ~0x00200000);
9625  addMirCuts_ = true;
9626  bitField2_ = (bitField2_ & ~0x00400000);
9627  maxAllDiffCutSize_ = 7;
9628  bitField2_ = (bitField2_ & ~0x00800000);
9629  addLinMaxCuts_ = true;
9630  bitField2_ = (bitField2_ & ~0x01000000);
9631  maxIntegerRoundingScaling_ = 600;
9632  bitField2_ = (bitField2_ & ~0x02000000);
9633  addLpConstraintsLazily_ = true;
9634  bitField2_ = (bitField2_ & ~0x04000000);
9635  minOrthogonalityForLpConstraints_ = 0.05D;
9636  bitField2_ = (bitField2_ & ~0x08000000);
9637  maxCutRoundsAtLevelZero_ = 1;
9638  bitField2_ = (bitField2_ & ~0x10000000);
9639  maxConsecutiveInactiveCount_ = 100;
9640  bitField2_ = (bitField2_ & ~0x20000000);
9641  cutMaxActiveCountValue_ = 10000000000D;
9642  bitField2_ = (bitField2_ & ~0x40000000);
9643  cutActiveCountDecay_ = 0.8D;
9644  bitField2_ = (bitField2_ & ~0x80000000);
9645  cutCleanupTarget_ = 1000;
9646  bitField3_ = (bitField3_ & ~0x00000001);
9647  newConstraintsBatchSize_ = 50;
9648  bitField3_ = (bitField3_ & ~0x00000002);
9649  searchBranching_ = 0;
9650  bitField3_ = (bitField3_ & ~0x00000004);
9651  hintConflictLimit_ = 10;
9652  bitField3_ = (bitField3_ & ~0x00000008);
9653  exploitIntegerLpSolution_ = true;
9654  bitField3_ = (bitField3_ & ~0x00000010);
9655  exploitAllLpSolution_ = true;
9656  bitField3_ = (bitField3_ & ~0x00000020);
9657  exploitBestSolution_ = false;
9658  bitField3_ = (bitField3_ & ~0x00000040);
9659  exploitRelaxationSolution_ = false;
9660  bitField3_ = (bitField3_ & ~0x00000080);
9661  exploitObjective_ = true;
9662  bitField3_ = (bitField3_ & ~0x00000100);
9663  probingPeriodAtRoot_ = 0L;
9664  bitField3_ = (bitField3_ & ~0x00000200);
9665  pseudoCostReliabilityThreshold_ = 100L;
9666  bitField3_ = (bitField3_ & ~0x00000400);
9667  optimizeWithCore_ = false;
9668  bitField3_ = (bitField3_ & ~0x00000800);
9669  binarySearchNumConflicts_ = -1;
9670  bitField3_ = (bitField3_ & ~0x00001000);
9671  optimizeWithMaxHs_ = false;
9672  bitField3_ = (bitField3_ & ~0x00002000);
9673  enumerateAllSolutions_ = false;
9674  bitField3_ = (bitField3_ & ~0x00004000);
9675  fillTightenedDomainsInResponse_ = false;
9676  bitField3_ = (bitField3_ & ~0x00008000);
9677  instantiateAllVariables_ = true;
9678  bitField3_ = (bitField3_ & ~0x00010000);
9679  autoDetectGreaterThanAtLeastOneOf_ = true;
9680  bitField3_ = (bitField3_ & ~0x00020000);
9681  stopAfterFirstSolution_ = false;
9682  bitField3_ = (bitField3_ & ~0x00040000);
9683  stopAfterPresolve_ = false;
9684  bitField3_ = (bitField3_ & ~0x00080000);
9685  numSearchWorkers_ = 1;
9686  bitField3_ = (bitField3_ & ~0x00100000);
9687  interleaveSearch_ = false;
9688  bitField3_ = (bitField3_ & ~0x00200000);
9689  interleaveBatchSize_ = 1;
9690  bitField3_ = (bitField3_ & ~0x00400000);
9691  reduceMemoryUsageInInterleaveMode_ = false;
9692  bitField3_ = (bitField3_ & ~0x00800000);
9693  shareObjectiveBounds_ = true;
9694  bitField3_ = (bitField3_ & ~0x01000000);
9695  shareLevelZeroBounds_ = true;
9696  bitField3_ = (bitField3_ & ~0x02000000);
9697  useLnsOnly_ = false;
9698  bitField3_ = (bitField3_ & ~0x04000000);
9699  lnsFocusOnDecisionVariables_ = false;
9700  bitField3_ = (bitField3_ & ~0x08000000);
9701  useRinsLns_ = true;
9702  bitField3_ = (bitField3_ & ~0x10000000);
9703  useFeasibilityPump_ = true;
9704  bitField3_ = (bitField3_ & ~0x20000000);
9705  fpRounding_ = 2;
9706  bitField3_ = (bitField3_ & ~0x40000000);
9707  useRelaxationLns_ = false;
9708  bitField3_ = (bitField3_ & ~0x80000000);
9709  diversifyLnsParams_ = false;
9710  bitField4_ = (bitField4_ & ~0x00000001);
9711  randomizeSearch_ = false;
9712  bitField4_ = (bitField4_ & ~0x00000002);
9713  searchRandomizationTolerance_ = 0L;
9714  bitField4_ = (bitField4_ & ~0x00000004);
9715  useOptionalVariables_ = true;
9716  bitField4_ = (bitField4_ & ~0x00000008);
9717  useExactLpReason_ = true;
9718  bitField4_ = (bitField4_ & ~0x00000010);
9719  useBranchingInLp_ = false;
9720  bitField4_ = (bitField4_ & ~0x00000020);
9721  useCombinedNoOverlap_ = false;
9722  bitField4_ = (bitField4_ & ~0x00000040);
9723  catchSigintSignal_ = true;
9724  bitField4_ = (bitField4_ & ~0x00000080);
9725  useImpliedBounds_ = true;
9726  bitField4_ = (bitField4_ & ~0x00000100);
9727  mipMaxBound_ = 10000000D;
9728  bitField4_ = (bitField4_ & ~0x00000200);
9729  mipVarScaling_ = 1D;
9730  bitField4_ = (bitField4_ & ~0x00000400);
9731  mipAutomaticallyScaleVariables_ = true;
9732  bitField4_ = (bitField4_ & ~0x00000800);
9733  mipWantedPrecision_ = 1e-06D;
9734  bitField4_ = (bitField4_ & ~0x00001000);
9735  mipMaxActivityExponent_ = 53;
9736  bitField4_ = (bitField4_ & ~0x00002000);
9737  mipCheckPrecision_ = 0.0001D;
9738  bitField4_ = (bitField4_ & ~0x00004000);
9739  return this;
9740  }
9741 
9742  @java.lang.Override
9743  public com.google.protobuf.Descriptors.Descriptor
9745  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
9746  }
9747 
9748  @java.lang.Override
9751  }
9752 
9753  @java.lang.Override
9756  if (!result.isInitialized()) {
9757  throw newUninitializedMessageException(result);
9758  }
9759  return result;
9760  }
9761 
9762  @java.lang.Override
9765  int from_bitField0_ = bitField0_;
9766  int from_bitField1_ = bitField1_;
9767  int from_bitField2_ = bitField2_;
9768  int from_bitField3_ = bitField3_;
9769  int from_bitField4_ = bitField4_;
9770  int to_bitField0_ = 0;
9771  int to_bitField1_ = 0;
9772  int to_bitField2_ = 0;
9773  int to_bitField3_ = 0;
9774  int to_bitField4_ = 0;
9775  if (((from_bitField0_ & 0x00000001) != 0)) {
9776  to_bitField0_ |= 0x00000001;
9777  }
9778  result.preferredVariableOrder_ = preferredVariableOrder_;
9779  if (((from_bitField0_ & 0x00000002) != 0)) {
9780  to_bitField0_ |= 0x00000002;
9781  }
9782  result.initialPolarity_ = initialPolarity_;
9783  if (((from_bitField0_ & 0x00000004) != 0)) {
9784  to_bitField0_ |= 0x00000004;
9785  }
9786  result.usePhaseSaving_ = usePhaseSaving_;
9787  if (((from_bitField0_ & 0x00000008) != 0)) {
9788  result.randomPolarityRatio_ = randomPolarityRatio_;
9789  to_bitField0_ |= 0x00000008;
9790  }
9791  if (((from_bitField0_ & 0x00000010) != 0)) {
9792  result.randomBranchesRatio_ = randomBranchesRatio_;
9793  to_bitField0_ |= 0x00000010;
9794  }
9795  if (((from_bitField0_ & 0x00000020) != 0)) {
9796  result.useErwaHeuristic_ = useErwaHeuristic_;
9797  to_bitField0_ |= 0x00000020;
9798  }
9799  if (((from_bitField0_ & 0x00000040) != 0)) {
9800  result.initialVariablesActivity_ = initialVariablesActivity_;
9801  to_bitField0_ |= 0x00000040;
9802  }
9803  if (((from_bitField0_ & 0x00000080) != 0)) {
9804  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
9805  to_bitField0_ |= 0x00000080;
9806  }
9807  if (((from_bitField0_ & 0x00000100) != 0)) {
9808  to_bitField0_ |= 0x00000100;
9809  }
9810  result.minimizationAlgorithm_ = minimizationAlgorithm_;
9811  if (((from_bitField0_ & 0x00000200) != 0)) {
9812  to_bitField0_ |= 0x00000200;
9813  }
9814  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
9815  if (((from_bitField0_ & 0x00000400) != 0)) {
9816  to_bitField0_ |= 0x00000400;
9817  }
9818  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
9819  if (((from_bitField0_ & 0x00000800) != 0)) {
9820  to_bitField0_ |= 0x00000800;
9821  }
9822  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
9823  if (((from_bitField0_ & 0x00001000) != 0)) {
9824  to_bitField0_ |= 0x00001000;
9825  }
9826  result.clauseCleanupTarget_ = clauseCleanupTarget_;
9827  if (((from_bitField0_ & 0x00002000) != 0)) {
9828  to_bitField0_ |= 0x00002000;
9829  }
9830  result.clauseCleanupProtection_ = clauseCleanupProtection_;
9831  if (((from_bitField0_ & 0x00004000) != 0)) {
9832  to_bitField0_ |= 0x00004000;
9833  }
9834  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
9835  if (((from_bitField0_ & 0x00008000) != 0)) {
9836  to_bitField0_ |= 0x00008000;
9837  }
9838  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
9839  if (((from_bitField0_ & 0x00010000) != 0)) {
9840  to_bitField0_ |= 0x00010000;
9841  }
9842  result.pbCleanupIncrement_ = pbCleanupIncrement_;
9843  if (((from_bitField0_ & 0x00020000) != 0)) {
9844  to_bitField0_ |= 0x00020000;
9845  }
9846  result.pbCleanupRatio_ = pbCleanupRatio_;
9847  if (((from_bitField0_ & 0x00040000) != 0)) {
9848  to_bitField0_ |= 0x00040000;
9849  }
9850  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
9851  if (((from_bitField0_ & 0x00080000) != 0)) {
9852  to_bitField0_ |= 0x00080000;
9853  }
9854  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
9855  if (((from_bitField0_ & 0x00100000) != 0)) {
9856  to_bitField0_ |= 0x00100000;
9857  }
9858  result.variableActivityDecay_ = variableActivityDecay_;
9859  if (((from_bitField0_ & 0x00200000) != 0)) {
9860  to_bitField0_ |= 0x00200000;
9861  }
9862  result.maxVariableActivityValue_ = maxVariableActivityValue_;
9863  if (((from_bitField0_ & 0x00400000) != 0)) {
9864  to_bitField0_ |= 0x00400000;
9865  }
9866  result.glucoseMaxDecay_ = glucoseMaxDecay_;
9867  if (((from_bitField0_ & 0x00800000) != 0)) {
9868  to_bitField0_ |= 0x00800000;
9869  }
9870  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
9871  if (((from_bitField0_ & 0x01000000) != 0)) {
9872  to_bitField0_ |= 0x01000000;
9873  }
9874  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
9875  if (((from_bitField0_ & 0x02000000) != 0)) {
9876  to_bitField0_ |= 0x02000000;
9877  }
9878  result.clauseActivityDecay_ = clauseActivityDecay_;
9879  if (((from_bitField0_ & 0x04000000) != 0)) {
9880  to_bitField0_ |= 0x04000000;
9881  }
9882  result.maxClauseActivityValue_ = maxClauseActivityValue_;
9883  if (((bitField0_ & 0x08000000) != 0)) {
9884  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
9885  bitField0_ = (bitField0_ & ~0x08000000);
9886  }
9887  result.restartAlgorithms_ = restartAlgorithms_;
9888  if (((from_bitField0_ & 0x10000000) != 0)) {
9889  to_bitField0_ |= 0x08000000;
9890  }
9891  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
9892  if (((from_bitField0_ & 0x20000000) != 0)) {
9893  to_bitField0_ |= 0x10000000;
9894  }
9895  result.restartPeriod_ = restartPeriod_;
9896  if (((from_bitField0_ & 0x40000000) != 0)) {
9897  to_bitField0_ |= 0x20000000;
9898  }
9899  result.restartRunningWindowSize_ = restartRunningWindowSize_;
9900  if (((from_bitField0_ & 0x80000000) != 0)) {
9901  to_bitField0_ |= 0x40000000;
9902  }
9903  result.restartDlAverageRatio_ = restartDlAverageRatio_;
9904  if (((from_bitField1_ & 0x00000001) != 0)) {
9905  to_bitField0_ |= 0x80000000;
9906  }
9907  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
9908  if (((from_bitField1_ & 0x00000002) != 0)) {
9909  result.useBlockingRestart_ = useBlockingRestart_;
9910  to_bitField1_ |= 0x00000001;
9911  }
9912  if (((from_bitField1_ & 0x00000004) != 0)) {
9913  to_bitField1_ |= 0x00000002;
9914  }
9915  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
9916  if (((from_bitField1_ & 0x00000008) != 0)) {
9917  to_bitField1_ |= 0x00000004;
9918  }
9919  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
9920  if (((from_bitField1_ & 0x00000010) != 0)) {
9921  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
9922  to_bitField1_ |= 0x00000008;
9923  }
9924  if (((from_bitField1_ & 0x00000020) != 0)) {
9925  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
9926  to_bitField1_ |= 0x00000010;
9927  }
9928  if (((from_bitField1_ & 0x00000040) != 0)) {
9929  to_bitField1_ |= 0x00000020;
9930  }
9931  result.maxTimeInSeconds_ = maxTimeInSeconds_;
9932  if (((from_bitField1_ & 0x00000080) != 0)) {
9933  to_bitField1_ |= 0x00000040;
9934  }
9935  result.maxDeterministicTime_ = maxDeterministicTime_;
9936  if (((from_bitField1_ & 0x00000100) != 0)) {
9937  to_bitField1_ |= 0x00000080;
9938  }
9939  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
9940  if (((from_bitField1_ & 0x00000200) != 0)) {
9941  to_bitField1_ |= 0x00000100;
9942  }
9943  result.maxMemoryInMb_ = maxMemoryInMb_;
9944  if (((from_bitField1_ & 0x00000400) != 0)) {
9945  result.absoluteGapLimit_ = absoluteGapLimit_;
9946  to_bitField1_ |= 0x00000200;
9947  }
9948  if (((from_bitField1_ & 0x00000800) != 0)) {
9949  result.relativeGapLimit_ = relativeGapLimit_;
9950  to_bitField1_ |= 0x00000400;
9951  }
9952  if (((from_bitField1_ & 0x00001000) != 0)) {
9953  to_bitField1_ |= 0x00000800;
9954  }
9955  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
9956  if (((from_bitField1_ & 0x00002000) != 0)) {
9957  to_bitField1_ |= 0x00001000;
9958  }
9959  result.randomSeed_ = randomSeed_;
9960  if (((from_bitField1_ & 0x00004000) != 0)) {
9961  result.logSearchProgress_ = logSearchProgress_;
9962  to_bitField1_ |= 0x00002000;
9963  }
9964  if (((from_bitField1_ & 0x00008000) != 0)) {
9965  result.usePbResolution_ = usePbResolution_;
9966  to_bitField1_ |= 0x00004000;
9967  }
9968  if (((from_bitField1_ & 0x00010000) != 0)) {
9969  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
9970  to_bitField1_ |= 0x00008000;
9971  }
9972  if (((from_bitField1_ & 0x00020000) != 0)) {
9973  to_bitField1_ |= 0x00010000;
9974  }
9975  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
9976  if (((from_bitField1_ & 0x00040000) != 0)) {
9977  to_bitField1_ |= 0x00020000;
9978  }
9979  result.presolveBveThreshold_ = presolveBveThreshold_;
9980  if (((from_bitField1_ & 0x00080000) != 0)) {
9981  to_bitField1_ |= 0x00040000;
9982  }
9983  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
9984  if (((from_bitField1_ & 0x00100000) != 0)) {
9985  to_bitField1_ |= 0x00080000;
9986  }
9987  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
9988  if (((from_bitField1_ & 0x00200000) != 0)) {
9989  to_bitField1_ |= 0x00100000;
9990  }
9991  result.presolveBlockedClause_ = presolveBlockedClause_;
9992  if (((from_bitField1_ & 0x00400000) != 0)) {
9993  to_bitField1_ |= 0x00200000;
9994  }
9995  result.presolveUseBva_ = presolveUseBva_;
9996  if (((from_bitField1_ & 0x00800000) != 0)) {
9997  to_bitField1_ |= 0x00400000;
9998  }
9999  result.presolveBvaThreshold_ = presolveBvaThreshold_;
10000  if (((from_bitField1_ & 0x01000000) != 0)) {
10001  to_bitField1_ |= 0x00800000;
10002  }
10003  result.maxPresolveIterations_ = maxPresolveIterations_;
10004  if (((from_bitField1_ & 0x02000000) != 0)) {
10005  to_bitField1_ |= 0x01000000;
10006  }
10007  result.cpModelPresolve_ = cpModelPresolve_;
10008  if (((from_bitField1_ & 0x04000000) != 0)) {
10009  result.cpModelPostsolveWithFullSolver_ = cpModelPostsolveWithFullSolver_;
10010  to_bitField1_ |= 0x02000000;
10011  }
10012  if (((from_bitField1_ & 0x08000000) != 0)) {
10013  result.cpModelMaxNumPresolveOperations_ = cpModelMaxNumPresolveOperations_;
10014  to_bitField1_ |= 0x04000000;
10015  }
10016  if (((from_bitField1_ & 0x10000000) != 0)) {
10017  to_bitField1_ |= 0x08000000;
10018  }
10019  result.cpModelProbingLevel_ = cpModelProbingLevel_;
10020  if (((from_bitField1_ & 0x20000000) != 0)) {
10021  to_bitField1_ |= 0x10000000;
10022  }
10023  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
10024  if (((from_bitField1_ & 0x40000000) != 0)) {
10025  result.useSatInprocessing_ = useSatInprocessing_;
10026  to_bitField1_ |= 0x20000000;
10027  }
10028  if (((from_bitField1_ & 0x80000000) != 0)) {
10029  to_bitField1_ |= 0x40000000;
10030  }
10031  result.expandElementConstraints_ = expandElementConstraints_;
10032  if (((from_bitField2_ & 0x00000001) != 0)) {
10033  to_bitField1_ |= 0x80000000;
10034  }
10035  result.expandAutomatonConstraints_ = expandAutomatonConstraints_;
10036  if (((from_bitField2_ & 0x00000002) != 0)) {
10037  to_bitField2_ |= 0x00000001;
10038  }
10039  result.expandTableConstraints_ = expandTableConstraints_;
10040  if (((from_bitField2_ & 0x00000004) != 0)) {
10041  to_bitField2_ |= 0x00000002;
10042  }
10043  result.mergeNoOverlapWorkLimit_ = mergeNoOverlapWorkLimit_;
10044  if (((from_bitField2_ & 0x00000008) != 0)) {
10045  to_bitField2_ |= 0x00000004;
10046  }
10047  result.mergeAtMostOneWorkLimit_ = mergeAtMostOneWorkLimit_;
10048  if (((from_bitField2_ & 0x00000010) != 0)) {
10049  to_bitField2_ |= 0x00000008;
10050  }
10051  result.presolveSubstitutionLevel_ = presolveSubstitutionLevel_;
10052  if (((from_bitField2_ & 0x00000020) != 0)) {
10053  to_bitField2_ |= 0x00000010;
10054  }
10055  result.useOptimizationHints_ = useOptimizationHints_;
10056  if (((from_bitField2_ & 0x00000040) != 0)) {
10057  to_bitField2_ |= 0x00000020;
10058  }
10059  result.minimizeCore_ = minimizeCore_;
10060  if (((from_bitField2_ & 0x00000080) != 0)) {
10061  to_bitField2_ |= 0x00000040;
10062  }
10063  result.findMultipleCores_ = findMultipleCores_;
10064  if (((from_bitField2_ & 0x00000100) != 0)) {
10065  to_bitField2_ |= 0x00000080;
10066  }
10067  result.coverOptimization_ = coverOptimization_;
10068  if (((from_bitField2_ & 0x00000200) != 0)) {
10069  to_bitField2_ |= 0x00000100;
10070  }
10071  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
10072  if (((from_bitField2_ & 0x00000400) != 0)) {
10073  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
10074  to_bitField2_ |= 0x00000200;
10075  }
10076  if (((from_bitField2_ & 0x00000800) != 0)) {
10077  to_bitField2_ |= 0x00000400;
10078  }
10079  result.maxSatStratification_ = maxSatStratification_;
10080  if (((from_bitField2_ & 0x00001000) != 0)) {
10081  to_bitField2_ |= 0x00000800;
10082  }
10083  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
10084  if (((from_bitField2_ & 0x00002000) != 0)) {
10085  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
10086  to_bitField2_ |= 0x00001000;
10087  }
10088  if (((from_bitField2_ & 0x00004000) != 0)) {
10089  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
10090  to_bitField2_ |= 0x00002000;
10091  }
10092  if (((from_bitField2_ & 0x00008000) != 0)) {
10093  to_bitField2_ |= 0x00004000;
10094  }
10095  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
10096  if (((from_bitField2_ & 0x00010000) != 0)) {
10097  to_bitField2_ |= 0x00008000;
10098  }
10099  result.linearizationLevel_ = linearizationLevel_;
10100  if (((from_bitField2_ & 0x00020000) != 0)) {
10101  to_bitField2_ |= 0x00010000;
10102  }
10103  result.booleanEncodingLevel_ = booleanEncodingLevel_;
10104  if (((from_bitField2_ & 0x00040000) != 0)) {
10105  to_bitField2_ |= 0x00020000;
10106  }
10107  result.maxNumCuts_ = maxNumCuts_;
10108  if (((from_bitField2_ & 0x00080000) != 0)) {
10109  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
10110  to_bitField2_ |= 0x00040000;
10111  }
10112  if (((from_bitField2_ & 0x00100000) != 0)) {
10113  result.addKnapsackCuts_ = addKnapsackCuts_;
10114  to_bitField2_ |= 0x00080000;
10115  }
10116  if (((from_bitField2_ & 0x00200000) != 0)) {
10117  to_bitField2_ |= 0x00100000;
10118  }
10119  result.addCgCuts_ = addCgCuts_;
10120  if (((from_bitField2_ & 0x00400000) != 0)) {
10121  to_bitField2_ |= 0x00200000;
10122  }
10123  result.addMirCuts_ = addMirCuts_;
10124  if (((from_bitField2_ & 0x00800000) != 0)) {
10125  to_bitField2_ |= 0x00400000;
10126  }
10127  result.maxAllDiffCutSize_ = maxAllDiffCutSize_;
10128  if (((from_bitField2_ & 0x01000000) != 0)) {
10129  to_bitField2_ |= 0x00800000;
10130  }
10131  result.addLinMaxCuts_ = addLinMaxCuts_;
10132  if (((from_bitField2_ & 0x02000000) != 0)) {
10133  to_bitField2_ |= 0x01000000;
10134  }
10135  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
10136  if (((from_bitField2_ & 0x04000000) != 0)) {
10137  to_bitField2_ |= 0x02000000;
10138  }
10139  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
10140  if (((from_bitField2_ & 0x08000000) != 0)) {
10141  to_bitField2_ |= 0x04000000;
10142  }
10143  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
10144  if (((from_bitField2_ & 0x10000000) != 0)) {
10145  to_bitField2_ |= 0x08000000;
10146  }
10147  result.maxCutRoundsAtLevelZero_ = maxCutRoundsAtLevelZero_;
10148  if (((from_bitField2_ & 0x20000000) != 0)) {
10149  to_bitField2_ |= 0x10000000;
10150  }
10151  result.maxConsecutiveInactiveCount_ = maxConsecutiveInactiveCount_;
10152  if (((from_bitField2_ & 0x40000000) != 0)) {
10153  to_bitField2_ |= 0x20000000;
10154  }
10155  result.cutMaxActiveCountValue_ = cutMaxActiveCountValue_;
10156  if (((from_bitField2_ & 0x80000000) != 0)) {
10157  to_bitField2_ |= 0x40000000;
10158  }
10159  result.cutActiveCountDecay_ = cutActiveCountDecay_;
10160  if (((from_bitField3_ & 0x00000001) != 0)) {
10161  to_bitField2_ |= 0x80000000;
10162  }
10163  result.cutCleanupTarget_ = cutCleanupTarget_;
10164  if (((from_bitField3_ & 0x00000002) != 0)) {
10165  to_bitField3_ |= 0x00000001;
10166  }
10167  result.newConstraintsBatchSize_ = newConstraintsBatchSize_;
10168  if (((from_bitField3_ & 0x00000004) != 0)) {
10169  to_bitField3_ |= 0x00000002;
10170  }
10171  result.searchBranching_ = searchBranching_;
10172  if (((from_bitField3_ & 0x00000008) != 0)) {
10173  to_bitField3_ |= 0x00000004;
10174  }
10175  result.hintConflictLimit_ = hintConflictLimit_;
10176  if (((from_bitField3_ & 0x00000010) != 0)) {
10177  to_bitField3_ |= 0x00000008;
10178  }
10179  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
10180  if (((from_bitField3_ & 0x00000020) != 0)) {
10181  to_bitField3_ |= 0x00000010;
10182  }
10183  result.exploitAllLpSolution_ = exploitAllLpSolution_;
10184  if (((from_bitField3_ & 0x00000040) != 0)) {
10185  result.exploitBestSolution_ = exploitBestSolution_;
10186  to_bitField3_ |= 0x00000020;
10187  }
10188  if (((from_bitField3_ & 0x00000080) != 0)) {
10189  result.exploitRelaxationSolution_ = exploitRelaxationSolution_;
10190  to_bitField3_ |= 0x00000040;
10191  }
10192  if (((from_bitField3_ & 0x00000100) != 0)) {
10193  to_bitField3_ |= 0x00000080;
10194  }
10195  result.exploitObjective_ = exploitObjective_;
10196  if (((from_bitField3_ & 0x00000200) != 0)) {
10197  result.probingPeriodAtRoot_ = probingPeriodAtRoot_;
10198  to_bitField3_ |= 0x00000100;
10199  }
10200  if (((from_bitField3_ & 0x00000400) != 0)) {
10201  to_bitField3_ |= 0x00000200;
10202  }
10203  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
10204  if (((from_bitField3_ & 0x00000800) != 0)) {
10205  result.optimizeWithCore_ = optimizeWithCore_;
10206  to_bitField3_ |= 0x00000400;
10207  }
10208  if (((from_bitField3_ & 0x00001000) != 0)) {
10209  to_bitField3_ |= 0x00000800;
10210  }
10211  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
10212  if (((from_bitField3_ & 0x00002000) != 0)) {
10213  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
10214  to_bitField3_ |= 0x00001000;
10215  }
10216  if (((from_bitField3_ & 0x00004000) != 0)) {
10217  result.enumerateAllSolutions_ = enumerateAllSolutions_;
10218  to_bitField3_ |= 0x00002000;
10219  }
10220  if (((from_bitField3_ & 0x00008000) != 0)) {
10221  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
10222  to_bitField3_ |= 0x00004000;
10223  }
10224  if (((from_bitField3_ & 0x00010000) != 0)) {
10225  to_bitField3_ |= 0x00008000;
10226  }
10227  result.instantiateAllVariables_ = instantiateAllVariables_;
10228  if (((from_bitField3_ & 0x00020000) != 0)) {
10229  to_bitField3_ |= 0x00010000;
10230  }
10231  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
10232  if (((from_bitField3_ & 0x00040000) != 0)) {
10233  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
10234  to_bitField3_ |= 0x00020000;
10235  }
10236  if (((from_bitField3_ & 0x00080000) != 0)) {
10237  result.stopAfterPresolve_ = stopAfterPresolve_;
10238  to_bitField3_ |= 0x00040000;
10239  }
10240  if (((from_bitField3_ & 0x00100000) != 0)) {
10241  to_bitField3_ |= 0x00080000;
10242  }
10243  result.numSearchWorkers_ = numSearchWorkers_;
10244  if (((from_bitField3_ & 0x00200000) != 0)) {
10245  result.interleaveSearch_ = interleaveSearch_;
10246  to_bitField3_ |= 0x00100000;
10247  }
10248  if (((from_bitField3_ & 0x00400000) != 0)) {
10249  to_bitField3_ |= 0x00200000;
10250  }
10251  result.interleaveBatchSize_ = interleaveBatchSize_;
10252  if (((from_bitField3_ & 0x00800000) != 0)) {
10253  result.reduceMemoryUsageInInterleaveMode_ = reduceMemoryUsageInInterleaveMode_;
10254  to_bitField3_ |= 0x00400000;
10255  }
10256  if (((from_bitField3_ & 0x01000000) != 0)) {
10257  to_bitField3_ |= 0x00800000;
10258  }
10259  result.shareObjectiveBounds_ = shareObjectiveBounds_;
10260  if (((from_bitField3_ & 0x02000000) != 0)) {
10261  to_bitField3_ |= 0x01000000;
10262  }
10263  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
10264  if (((from_bitField3_ & 0x04000000) != 0)) {
10265  result.useLnsOnly_ = useLnsOnly_;
10266  to_bitField3_ |= 0x02000000;
10267  }
10268  if (((from_bitField3_ & 0x08000000) != 0)) {
10269  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
10270  to_bitField3_ |= 0x04000000;
10271  }
10272  if (((from_bitField3_ & 0x10000000) != 0)) {
10273  to_bitField3_ |= 0x08000000;
10274  }
10275  result.useRinsLns_ = useRinsLns_;
10276  if (((from_bitField3_ & 0x20000000) != 0)) {
10277  to_bitField3_ |= 0x10000000;
10278  }
10279  result.useFeasibilityPump_ = useFeasibilityPump_;
10280  if (((from_bitField3_ & 0x40000000) != 0)) {
10281  to_bitField3_ |= 0x20000000;
10282  }
10283  result.fpRounding_ = fpRounding_;
10284  if (((from_bitField3_ & 0x80000000) != 0)) {
10285  result.useRelaxationLns_ = useRelaxationLns_;
10286  to_bitField3_ |= 0x40000000;
10287  }
10288  if (((from_bitField4_ & 0x00000001) != 0)) {
10289  result.diversifyLnsParams_ = diversifyLnsParams_;
10290  to_bitField3_ |= 0x80000000;
10291  }
10292  if (((from_bitField4_ & 0x00000002) != 0)) {
10293  result.randomizeSearch_ = randomizeSearch_;
10294  to_bitField4_ |= 0x00000001;
10295  }
10296  if (((from_bitField4_ & 0x00000004) != 0)) {
10297  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
10298  to_bitField4_ |= 0x00000002;
10299  }
10300  if (((from_bitField4_ & 0x00000008) != 0)) {
10301  to_bitField4_ |= 0x00000004;
10302  }
10303  result.useOptionalVariables_ = useOptionalVariables_;
10304  if (((from_bitField4_ & 0x00000010) != 0)) {
10305  to_bitField4_ |= 0x00000008;
10306  }
10307  result.useExactLpReason_ = useExactLpReason_;
10308  if (((from_bitField4_ & 0x00000020) != 0)) {
10309  result.useBranchingInLp_ = useBranchingInLp_;
10310  to_bitField4_ |= 0x00000010;
10311  }
10312  if (((from_bitField4_ & 0x00000040) != 0)) {
10313  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
10314  to_bitField4_ |= 0x00000020;
10315  }
10316  if (((from_bitField4_ & 0x00000080) != 0)) {
10317  to_bitField4_ |= 0x00000040;
10318  }
10319  result.catchSigintSignal_ = catchSigintSignal_;
10320  if (((from_bitField4_ & 0x00000100) != 0)) {
10321  to_bitField4_ |= 0x00000080;
10322  }
10323  result.useImpliedBounds_ = useImpliedBounds_;
10324  if (((from_bitField4_ & 0x00000200) != 0)) {
10325  to_bitField4_ |= 0x00000100;
10326  }
10327  result.mipMaxBound_ = mipMaxBound_;
10328  if (((from_bitField4_ & 0x00000400) != 0)) {
10329  to_bitField4_ |= 0x00000200;
10330  }
10331  result.mipVarScaling_ = mipVarScaling_;
10332  if (((from_bitField4_ & 0x00000800) != 0)) {
10333  to_bitField4_ |= 0x00000400;
10334  }
10335  result.mipAutomaticallyScaleVariables_ = mipAutomaticallyScaleVariables_;
10336  if (((from_bitField4_ & 0x00001000) != 0)) {
10337  to_bitField4_ |= 0x00000800;
10338  }
10339  result.mipWantedPrecision_ = mipWantedPrecision_;
10340  if (((from_bitField4_ & 0x00002000) != 0)) {
10341  to_bitField4_ |= 0x00001000;
10342  }
10343  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
10344  if (((from_bitField4_ & 0x00004000) != 0)) {
10345  to_bitField4_ |= 0x00002000;
10346  }
10347  result.mipCheckPrecision_ = mipCheckPrecision_;
10348  result.bitField0_ = to_bitField0_;
10349  result.bitField1_ = to_bitField1_;
10350  result.bitField2_ = to_bitField2_;
10351  result.bitField3_ = to_bitField3_;
10352  result.bitField4_ = to_bitField4_;
10353  onBuilt();
10354  return result;
10355  }
10356 
10357  @java.lang.Override
10358  public Builder clone() {
10359  return super.clone();
10360  }
10361  @java.lang.Override
10363  com.google.protobuf.Descriptors.FieldDescriptor field,
10364  java.lang.Object value) {
10365  return super.setField(field, value);
10366  }
10367  @java.lang.Override
10369  com.google.protobuf.Descriptors.FieldDescriptor field) {
10370  return super.clearField(field);
10371  }
10372  @java.lang.Override
10374  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
10375  return super.clearOneof(oneof);
10376  }
10377  @java.lang.Override
10379  com.google.protobuf.Descriptors.FieldDescriptor field,
10380  int index, java.lang.Object value) {
10381  return super.setRepeatedField(field, index, value);
10382  }
10383  @java.lang.Override
10385  com.google.protobuf.Descriptors.FieldDescriptor field,
10386  java.lang.Object value) {
10387  return super.addRepeatedField(field, value);
10388  }
10389  @java.lang.Override
10390  public Builder mergeFrom(com.google.protobuf.Message other) {
10391  if (other instanceof com.google.ortools.sat.SatParameters) {
10392  return mergeFrom((com.google.ortools.sat.SatParameters)other);
10393  } else {
10394  super.mergeFrom(other);
10395  return this;
10396  }
10397  }
10398 
10400  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
10401  if (other.hasPreferredVariableOrder()) {
10402  setPreferredVariableOrder(other.getPreferredVariableOrder());
10403  }
10404  if (other.hasInitialPolarity()) {
10405  setInitialPolarity(other.getInitialPolarity());
10406  }
10407  if (other.hasUsePhaseSaving()) {
10408  setUsePhaseSaving(other.getUsePhaseSaving());
10409  }
10410  if (other.hasRandomPolarityRatio()) {
10411  setRandomPolarityRatio(other.getRandomPolarityRatio());
10412  }
10413  if (other.hasRandomBranchesRatio()) {
10414  setRandomBranchesRatio(other.getRandomBranchesRatio());
10415  }
10416  if (other.hasUseErwaHeuristic()) {
10417  setUseErwaHeuristic(other.getUseErwaHeuristic());
10418  }
10419  if (other.hasInitialVariablesActivity()) {
10420  setInitialVariablesActivity(other.getInitialVariablesActivity());
10421  }
10422  if (other.hasAlsoBumpVariablesInConflictReasons()) {
10423  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
10424  }
10425  if (other.hasMinimizationAlgorithm()) {
10426  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
10427  }
10428  if (other.hasBinaryMinimizationAlgorithm()) {
10429  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
10430  }
10431  if (other.hasSubsumptionDuringConflictAnalysis()) {
10432  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
10433  }
10434  if (other.hasClauseCleanupPeriod()) {
10435  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
10436  }
10437  if (other.hasClauseCleanupTarget()) {
10438  setClauseCleanupTarget(other.getClauseCleanupTarget());
10439  }
10440  if (other.hasClauseCleanupProtection()) {
10441  setClauseCleanupProtection(other.getClauseCleanupProtection());
10442  }
10443  if (other.hasClauseCleanupLbdBound()) {
10444  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
10445  }
10446  if (other.hasClauseCleanupOrdering()) {
10447  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
10448  }
10449  if (other.hasPbCleanupIncrement()) {
10450  setPbCleanupIncrement(other.getPbCleanupIncrement());
10451  }
10452  if (other.hasPbCleanupRatio()) {
10453  setPbCleanupRatio(other.getPbCleanupRatio());
10454  }
10455  if (other.hasMinimizeWithPropagationRestartPeriod()) {
10456  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
10457  }
10458  if (other.hasMinimizeWithPropagationNumDecisions()) {
10459  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
10460  }
10461  if (other.hasVariableActivityDecay()) {
10462  setVariableActivityDecay(other.getVariableActivityDecay());
10463  }
10464  if (other.hasMaxVariableActivityValue()) {
10465  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
10466  }
10467  if (other.hasGlucoseMaxDecay()) {
10468  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
10469  }
10470  if (other.hasGlucoseDecayIncrement()) {
10471  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
10472  }
10473  if (other.hasGlucoseDecayIncrementPeriod()) {
10474  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
10475  }
10476  if (other.hasClauseActivityDecay()) {
10477  setClauseActivityDecay(other.getClauseActivityDecay());
10478  }
10479  if (other.hasMaxClauseActivityValue()) {
10480  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
10481  }
10482  if (!other.restartAlgorithms_.isEmpty()) {
10483  if (restartAlgorithms_.isEmpty()) {
10484  restartAlgorithms_ = other.restartAlgorithms_;
10485  bitField0_ = (bitField0_ & ~0x08000000);
10486  } else {
10487  ensureRestartAlgorithmsIsMutable();
10488  restartAlgorithms_.addAll(other.restartAlgorithms_);
10489  }
10490  onChanged();
10491  }
10492  if (other.hasDefaultRestartAlgorithms()) {
10493  bitField0_ |= 0x10000000;
10494  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
10495  onChanged();
10496  }
10497  if (other.hasRestartPeriod()) {
10498  setRestartPeriod(other.getRestartPeriod());
10499  }
10500  if (other.hasRestartRunningWindowSize()) {
10501  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
10502  }
10503  if (other.hasRestartDlAverageRatio()) {
10504  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
10505  }
10506  if (other.hasRestartLbdAverageRatio()) {
10507  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
10508  }
10509  if (other.hasUseBlockingRestart()) {
10510  setUseBlockingRestart(other.getUseBlockingRestart());
10511  }
10512  if (other.hasBlockingRestartWindowSize()) {
10513  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
10514  }
10515  if (other.hasBlockingRestartMultiplier()) {
10516  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
10517  }
10518  if (other.hasNumConflictsBeforeStrategyChanges()) {
10519  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
10520  }
10521  if (other.hasStrategyChangeIncreaseRatio()) {
10522  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
10523  }
10524  if (other.hasMaxTimeInSeconds()) {
10525  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
10526  }
10527  if (other.hasMaxDeterministicTime()) {
10528  setMaxDeterministicTime(other.getMaxDeterministicTime());
10529  }
10530  if (other.hasMaxNumberOfConflicts()) {
10531  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
10532  }
10533  if (other.hasMaxMemoryInMb()) {
10534  setMaxMemoryInMb(other.getMaxMemoryInMb());
10535  }
10536  if (other.hasAbsoluteGapLimit()) {
10537  setAbsoluteGapLimit(other.getAbsoluteGapLimit());
10538  }
10539  if (other.hasRelativeGapLimit()) {
10540  setRelativeGapLimit(other.getRelativeGapLimit());
10541  }
10542  if (other.hasTreatBinaryClausesSeparately()) {
10543  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
10544  }
10545  if (other.hasRandomSeed()) {
10546  setRandomSeed(other.getRandomSeed());
10547  }
10548  if (other.hasLogSearchProgress()) {
10549  setLogSearchProgress(other.getLogSearchProgress());
10550  }
10551  if (other.hasUsePbResolution()) {
10552  setUsePbResolution(other.getUsePbResolution());
10553  }
10554  if (other.hasMinimizeReductionDuringPbResolution()) {
10555  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
10556  }
10557  if (other.hasCountAssumptionLevelsInLbd()) {
10558  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
10559  }
10560  if (other.hasPresolveBveThreshold()) {
10561  setPresolveBveThreshold(other.getPresolveBveThreshold());
10562  }
10563  if (other.hasPresolveBveClauseWeight()) {
10564  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
10565  }
10566  if (other.hasPresolveProbingDeterministicTimeLimit()) {
10567  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
10568  }
10569  if (other.hasPresolveBlockedClause()) {
10570  setPresolveBlockedClause(other.getPresolveBlockedClause());
10571  }
10572  if (other.hasPresolveUseBva()) {
10573  setPresolveUseBva(other.getPresolveUseBva());
10574  }
10575  if (other.hasPresolveBvaThreshold()) {
10576  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
10577  }
10578  if (other.hasMaxPresolveIterations()) {
10579  setMaxPresolveIterations(other.getMaxPresolveIterations());
10580  }
10581  if (other.hasCpModelPresolve()) {
10582  setCpModelPresolve(other.getCpModelPresolve());
10583  }
10584  if (other.hasCpModelPostsolveWithFullSolver()) {
10585  setCpModelPostsolveWithFullSolver(other.getCpModelPostsolveWithFullSolver());
10586  }
10587  if (other.hasCpModelMaxNumPresolveOperations()) {
10588  setCpModelMaxNumPresolveOperations(other.getCpModelMaxNumPresolveOperations());
10589  }
10590  if (other.hasCpModelProbingLevel()) {
10591  setCpModelProbingLevel(other.getCpModelProbingLevel());
10592  }
10593  if (other.hasCpModelUseSatPresolve()) {
10594  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
10595  }
10596  if (other.hasUseSatInprocessing()) {
10597  setUseSatInprocessing(other.getUseSatInprocessing());
10598  }
10599  if (other.hasExpandElementConstraints()) {
10600  setExpandElementConstraints(other.getExpandElementConstraints());
10601  }
10602  if (other.hasExpandAutomatonConstraints()) {
10603  setExpandAutomatonConstraints(other.getExpandAutomatonConstraints());
10604  }
10605  if (other.hasExpandTableConstraints()) {
10606  setExpandTableConstraints(other.getExpandTableConstraints());
10607  }
10608  if (other.hasMergeNoOverlapWorkLimit()) {
10609  setMergeNoOverlapWorkLimit(other.getMergeNoOverlapWorkLimit());
10610  }
10611  if (other.hasMergeAtMostOneWorkLimit()) {
10612  setMergeAtMostOneWorkLimit(other.getMergeAtMostOneWorkLimit());
10613  }
10614  if (other.hasPresolveSubstitutionLevel()) {
10615  setPresolveSubstitutionLevel(other.getPresolveSubstitutionLevel());
10616  }
10617  if (other.hasUseOptimizationHints()) {
10618  setUseOptimizationHints(other.getUseOptimizationHints());
10619  }
10620  if (other.hasMinimizeCore()) {
10621  setMinimizeCore(other.getMinimizeCore());
10622  }
10623  if (other.hasFindMultipleCores()) {
10624  setFindMultipleCores(other.getFindMultipleCores());
10625  }
10626  if (other.hasCoverOptimization()) {
10627  setCoverOptimization(other.getCoverOptimization());
10628  }
10629  if (other.hasMaxSatAssumptionOrder()) {
10630  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
10631  }
10632  if (other.hasMaxSatReverseAssumptionOrder()) {
10633  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
10634  }
10635  if (other.hasMaxSatStratification()) {
10636  setMaxSatStratification(other.getMaxSatStratification());
10637  }
10638  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
10639  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
10640  }
10641  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
10642  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
10643  }
10644  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
10645  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
10646  }
10647  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
10648  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
10649  }
10650  if (other.hasLinearizationLevel()) {
10651  setLinearizationLevel(other.getLinearizationLevel());
10652  }
10653  if (other.hasBooleanEncodingLevel()) {
10654  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
10655  }
10656  if (other.hasMaxNumCuts()) {
10657  setMaxNumCuts(other.getMaxNumCuts());
10658  }
10659  if (other.hasOnlyAddCutsAtLevelZero()) {
10660  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
10661  }
10662  if (other.hasAddKnapsackCuts()) {
10663  setAddKnapsackCuts(other.getAddKnapsackCuts());
10664  }
10665  if (other.hasAddCgCuts()) {
10666  setAddCgCuts(other.getAddCgCuts());
10667  }
10668  if (other.hasAddMirCuts()) {
10669  setAddMirCuts(other.getAddMirCuts());
10670  }
10671  if (other.hasMaxAllDiffCutSize()) {
10672  setMaxAllDiffCutSize(other.getMaxAllDiffCutSize());
10673  }
10674  if (other.hasAddLinMaxCuts()) {
10675  setAddLinMaxCuts(other.getAddLinMaxCuts());
10676  }
10677  if (other.hasMaxIntegerRoundingScaling()) {
10678  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
10679  }
10680  if (other.hasAddLpConstraintsLazily()) {
10681  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
10682  }
10683  if (other.hasMinOrthogonalityForLpConstraints()) {
10684  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
10685  }
10686  if (other.hasMaxCutRoundsAtLevelZero()) {
10687  setMaxCutRoundsAtLevelZero(other.getMaxCutRoundsAtLevelZero());
10688  }
10689  if (other.hasMaxConsecutiveInactiveCount()) {
10690  setMaxConsecutiveInactiveCount(other.getMaxConsecutiveInactiveCount());
10691  }
10692  if (other.hasCutMaxActiveCountValue()) {
10693  setCutMaxActiveCountValue(other.getCutMaxActiveCountValue());
10694  }
10695  if (other.hasCutActiveCountDecay()) {
10696  setCutActiveCountDecay(other.getCutActiveCountDecay());
10697  }
10698  if (other.hasCutCleanupTarget()) {
10699  setCutCleanupTarget(other.getCutCleanupTarget());
10700  }
10701  if (other.hasNewConstraintsBatchSize()) {
10702  setNewConstraintsBatchSize(other.getNewConstraintsBatchSize());
10703  }
10704  if (other.hasSearchBranching()) {
10705  setSearchBranching(other.getSearchBranching());
10706  }
10707  if (other.hasHintConflictLimit()) {
10708  setHintConflictLimit(other.getHintConflictLimit());
10709  }
10710  if (other.hasExploitIntegerLpSolution()) {
10711  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
10712  }
10713  if (other.hasExploitAllLpSolution()) {
10714  setExploitAllLpSolution(other.getExploitAllLpSolution());
10715  }
10716  if (other.hasExploitBestSolution()) {
10717  setExploitBestSolution(other.getExploitBestSolution());
10718  }
10719  if (other.hasExploitRelaxationSolution()) {
10720  setExploitRelaxationSolution(other.getExploitRelaxationSolution());
10721  }
10722  if (other.hasExploitObjective()) {
10723  setExploitObjective(other.getExploitObjective());
10724  }
10725  if (other.hasProbingPeriodAtRoot()) {
10726  setProbingPeriodAtRoot(other.getProbingPeriodAtRoot());
10727  }
10728  if (other.hasPseudoCostReliabilityThreshold()) {
10729  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
10730  }
10731  if (other.hasOptimizeWithCore()) {
10732  setOptimizeWithCore(other.getOptimizeWithCore());
10733  }
10734  if (other.hasBinarySearchNumConflicts()) {
10735  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
10736  }
10737  if (other.hasOptimizeWithMaxHs()) {
10738  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
10739  }
10740  if (other.hasEnumerateAllSolutions()) {
10741  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
10742  }
10743  if (other.hasFillTightenedDomainsInResponse()) {
10744  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
10745  }
10746  if (other.hasInstantiateAllVariables()) {
10747  setInstantiateAllVariables(other.getInstantiateAllVariables());
10748  }
10749  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
10750  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
10751  }
10752  if (other.hasStopAfterFirstSolution()) {
10753  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
10754  }
10755  if (other.hasStopAfterPresolve()) {
10756  setStopAfterPresolve(other.getStopAfterPresolve());
10757  }
10758  if (other.hasNumSearchWorkers()) {
10759  setNumSearchWorkers(other.getNumSearchWorkers());
10760  }
10761  if (other.hasInterleaveSearch()) {
10762  setInterleaveSearch(other.getInterleaveSearch());
10763  }
10764  if (other.hasInterleaveBatchSize()) {
10765  setInterleaveBatchSize(other.getInterleaveBatchSize());
10766  }
10767  if (other.hasReduceMemoryUsageInInterleaveMode()) {
10768  setReduceMemoryUsageInInterleaveMode(other.getReduceMemoryUsageInInterleaveMode());
10769  }
10770  if (other.hasShareObjectiveBounds()) {
10771  setShareObjectiveBounds(other.getShareObjectiveBounds());
10772  }
10773  if (other.hasShareLevelZeroBounds()) {
10774  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
10775  }
10776  if (other.hasUseLnsOnly()) {
10777  setUseLnsOnly(other.getUseLnsOnly());
10778  }
10779  if (other.hasLnsFocusOnDecisionVariables()) {
10780  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
10781  }
10782  if (other.hasUseRinsLns()) {
10783  setUseRinsLns(other.getUseRinsLns());
10784  }
10785  if (other.hasUseFeasibilityPump()) {
10786  setUseFeasibilityPump(other.getUseFeasibilityPump());
10787  }
10788  if (other.hasFpRounding()) {
10789  setFpRounding(other.getFpRounding());
10790  }
10791  if (other.hasUseRelaxationLns()) {
10792  setUseRelaxationLns(other.getUseRelaxationLns());
10793  }
10794  if (other.hasDiversifyLnsParams()) {
10795  setDiversifyLnsParams(other.getDiversifyLnsParams());
10796  }
10797  if (other.hasRandomizeSearch()) {
10798  setRandomizeSearch(other.getRandomizeSearch());
10799  }
10800  if (other.hasSearchRandomizationTolerance()) {
10801  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
10802  }
10803  if (other.hasUseOptionalVariables()) {
10804  setUseOptionalVariables(other.getUseOptionalVariables());
10805  }
10806  if (other.hasUseExactLpReason()) {
10807  setUseExactLpReason(other.getUseExactLpReason());
10808  }
10809  if (other.hasUseBranchingInLp()) {
10810  setUseBranchingInLp(other.getUseBranchingInLp());
10811  }
10812  if (other.hasUseCombinedNoOverlap()) {
10813  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
10814  }
10815  if (other.hasCatchSigintSignal()) {
10816  setCatchSigintSignal(other.getCatchSigintSignal());
10817  }
10818  if (other.hasUseImpliedBounds()) {
10819  setUseImpliedBounds(other.getUseImpliedBounds());
10820  }
10821  if (other.hasMipMaxBound()) {
10822  setMipMaxBound(other.getMipMaxBound());
10823  }
10824  if (other.hasMipVarScaling()) {
10825  setMipVarScaling(other.getMipVarScaling());
10826  }
10827  if (other.hasMipAutomaticallyScaleVariables()) {
10828  setMipAutomaticallyScaleVariables(other.getMipAutomaticallyScaleVariables());
10829  }
10830  if (other.hasMipWantedPrecision()) {
10831  setMipWantedPrecision(other.getMipWantedPrecision());
10832  }
10833  if (other.hasMipMaxActivityExponent()) {
10834  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
10835  }
10836  if (other.hasMipCheckPrecision()) {
10837  setMipCheckPrecision(other.getMipCheckPrecision());
10838  }
10839  this.mergeUnknownFields(other.unknownFields);
10840  onChanged();
10841  return this;
10842  }
10843 
10844  @java.lang.Override
10845  public final boolean isInitialized() {
10846  return true;
10847  }
10848 
10849  @java.lang.Override
10851  com.google.protobuf.CodedInputStream input,
10852  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10853  throws java.io.IOException {
10854  com.google.ortools.sat.SatParameters parsedMessage = null;
10855  try {
10856  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
10857  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
10858  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
10859  throw e.unwrapIOException();
10860  } finally {
10861  if (parsedMessage != null) {
10862  mergeFrom(parsedMessage);
10863  }
10864  }
10865  return this;
10866  }
10867  private int bitField0_;
10868  private int bitField1_;
10869  private int bitField2_;
10870  private int bitField3_;
10871  private int bitField4_;
10872 
10873  private int preferredVariableOrder_ = 0;
10878  @java.lang.Override public boolean hasPreferredVariableOrder() {
10879  return ((bitField0_ & 0x00000001) != 0);
10880  }
10885  @java.lang.Override
10887  @SuppressWarnings("deprecation")
10889  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
10890  }
10897  if (value == null) {
10898  throw new NullPointerException();
10899  }
10900  bitField0_ |= 0x00000001;
10901  preferredVariableOrder_ = value.getNumber();
10902  onChanged();
10903  return this;
10904  }
10910  bitField0_ = (bitField0_ & ~0x00000001);
10911  preferredVariableOrder_ = 0;
10912  onChanged();
10913  return this;
10914  }
10915 
10916  private int initialPolarity_ = 1;
10921  @java.lang.Override public boolean hasInitialPolarity() {
10922  return ((bitField0_ & 0x00000002) != 0);
10923  }
10928  @java.lang.Override
10930  @SuppressWarnings("deprecation")
10932  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
10933  }
10940  if (value == null) {
10941  throw new NullPointerException();
10942  }
10943  bitField0_ |= 0x00000002;
10944  initialPolarity_ = value.getNumber();
10945  onChanged();
10946  return this;
10947  }
10953  bitField0_ = (bitField0_ & ~0x00000002);
10954  initialPolarity_ = 1;
10955  onChanged();
10956  return this;
10957  }
10958 
10959  private boolean usePhaseSaving_ = true;
10974  @java.lang.Override
10975  public boolean hasUsePhaseSaving() {
10976  return ((bitField0_ & 0x00000004) != 0);
10977  }
10992  @java.lang.Override
10993  public boolean getUsePhaseSaving() {
10994  return usePhaseSaving_;
10995  }
11011  public Builder setUsePhaseSaving(boolean value) {
11012  bitField0_ |= 0x00000004;
11013  usePhaseSaving_ = value;
11014  onChanged();
11015  return this;
11016  }
11032  bitField0_ = (bitField0_ & ~0x00000004);
11033  usePhaseSaving_ = true;
11034  onChanged();
11035  return this;
11036  }
11037 
11038  private double randomPolarityRatio_ ;
11051  @java.lang.Override
11052  public boolean hasRandomPolarityRatio() {
11053  return ((bitField0_ & 0x00000008) != 0);
11054  }
11067  @java.lang.Override
11068  public double getRandomPolarityRatio() {
11069  return randomPolarityRatio_;
11070  }
11084  public Builder setRandomPolarityRatio(double value) {
11085  bitField0_ |= 0x00000008;
11086  randomPolarityRatio_ = value;
11087  onChanged();
11088  return this;
11089  }
11103  bitField0_ = (bitField0_ & ~0x00000008);
11104  randomPolarityRatio_ = 0D;
11105  onChanged();
11106  return this;
11107  }
11108 
11109  private double randomBranchesRatio_ ;
11120  @java.lang.Override
11121  public boolean hasRandomBranchesRatio() {
11122  return ((bitField0_ & 0x00000010) != 0);
11123  }
11134  @java.lang.Override
11135  public double getRandomBranchesRatio() {
11136  return randomBranchesRatio_;
11137  }
11149  public Builder setRandomBranchesRatio(double value) {
11150  bitField0_ |= 0x00000010;
11151  randomBranchesRatio_ = value;
11152  onChanged();
11153  return this;
11154  }
11166  bitField0_ = (bitField0_ & ~0x00000010);
11167  randomBranchesRatio_ = 0D;
11168  onChanged();
11169  return this;
11170  }
11171 
11172  private boolean useErwaHeuristic_ ;
11183  @java.lang.Override
11184  public boolean hasUseErwaHeuristic() {
11185  return ((bitField0_ & 0x00000020) != 0);
11186  }
11197  @java.lang.Override
11198  public boolean getUseErwaHeuristic() {
11199  return useErwaHeuristic_;
11200  }
11212  public Builder setUseErwaHeuristic(boolean value) {
11213  bitField0_ |= 0x00000020;
11214  useErwaHeuristic_ = value;
11215  onChanged();
11216  return this;
11217  }
11229  bitField0_ = (bitField0_ & ~0x00000020);
11230  useErwaHeuristic_ = false;
11231  onChanged();
11232  return this;
11233  }
11234 
11235  private double initialVariablesActivity_ ;
11249  @java.lang.Override
11250  public boolean hasInitialVariablesActivity() {
11251  return ((bitField0_ & 0x00000040) != 0);
11252  }
11266  @java.lang.Override
11268  return initialVariablesActivity_;
11269  }
11284  public Builder setInitialVariablesActivity(double value) {
11285  bitField0_ |= 0x00000040;
11286  initialVariablesActivity_ = value;
11287  onChanged();
11288  return this;
11289  }
11304  bitField0_ = (bitField0_ & ~0x00000040);
11305  initialVariablesActivity_ = 0D;
11306  onChanged();
11307  return this;
11308  }
11309 
11310  private boolean alsoBumpVariablesInConflictReasons_ ;
11322  @java.lang.Override
11324  return ((bitField0_ & 0x00000080) != 0);
11325  }
11337  @java.lang.Override
11339  return alsoBumpVariablesInConflictReasons_;
11340  }
11354  bitField0_ |= 0x00000080;
11355  alsoBumpVariablesInConflictReasons_ = value;
11356  onChanged();
11357  return this;
11358  }
11371  bitField0_ = (bitField0_ & ~0x00000080);
11372  alsoBumpVariablesInConflictReasons_ = false;
11373  onChanged();
11374  return this;
11375  }
11376 
11377  private int minimizationAlgorithm_ = 2;
11382  @java.lang.Override public boolean hasMinimizationAlgorithm() {
11383  return ((bitField0_ & 0x00000100) != 0);
11384  }
11389  @java.lang.Override
11391  @SuppressWarnings("deprecation")
11393  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
11394  }
11401  if (value == null) {
11402  throw new NullPointerException();
11403  }
11404  bitField0_ |= 0x00000100;
11405  minimizationAlgorithm_ = value.getNumber();
11406  onChanged();
11407  return this;
11408  }
11414  bitField0_ = (bitField0_ & ~0x00000100);
11415  minimizationAlgorithm_ = 2;
11416  onChanged();
11417  return this;
11418  }
11419 
11420  private int binaryMinimizationAlgorithm_ = 1;
11425  @java.lang.Override public boolean hasBinaryMinimizationAlgorithm() {
11426  return ((bitField0_ & 0x00000200) != 0);
11427  }
11432  @java.lang.Override
11434  @SuppressWarnings("deprecation")
11437  }
11444  if (value == null) {
11445  throw new NullPointerException();
11446  }
11447  bitField0_ |= 0x00000200;
11448  binaryMinimizationAlgorithm_ = value.getNumber();
11449  onChanged();
11450  return this;
11451  }
11457  bitField0_ = (bitField0_ & ~0x00000200);
11458  binaryMinimizationAlgorithm_ = 1;
11459  onChanged();
11460  return this;
11461  }
11462 
11463  private boolean subsumptionDuringConflictAnalysis_ = true;
11475  @java.lang.Override
11477  return ((bitField0_ & 0x00000400) != 0);
11478  }
11490  @java.lang.Override
11492  return subsumptionDuringConflictAnalysis_;
11493  }
11507  bitField0_ |= 0x00000400;
11508  subsumptionDuringConflictAnalysis_ = value;
11509  onChanged();
11510  return this;
11511  }
11524  bitField0_ = (bitField0_ & ~0x00000400);
11525  subsumptionDuringConflictAnalysis_ = true;
11526  onChanged();
11527  return this;
11528  }
11529 
11530  private int clauseCleanupPeriod_ = 10000;
11539  @java.lang.Override
11540  public boolean hasClauseCleanupPeriod() {
11541  return ((bitField0_ & 0x00000800) != 0);
11542  }
11551  @java.lang.Override
11552  public int getClauseCleanupPeriod() {
11553  return clauseCleanupPeriod_;
11554  }
11564  public Builder setClauseCleanupPeriod(int value) {
11565  bitField0_ |= 0x00000800;
11566  clauseCleanupPeriod_ = value;
11567  onChanged();
11568  return this;
11569  }
11579  bitField0_ = (bitField0_ & ~0x00000800);
11580  clauseCleanupPeriod_ = 10000;
11581  onChanged();
11582  return this;
11583  }
11584 
11585  private int clauseCleanupTarget_ = 10000;
11595  @java.lang.Override
11596  public boolean hasClauseCleanupTarget() {
11597  return ((bitField0_ & 0x00001000) != 0);
11598  }
11608  @java.lang.Override
11609  public int getClauseCleanupTarget() {
11610  return clauseCleanupTarget_;
11611  }
11622  public Builder setClauseCleanupTarget(int value) {
11623  bitField0_ |= 0x00001000;
11624  clauseCleanupTarget_ = value;
11625  onChanged();
11626  return this;
11627  }
11638  bitField0_ = (bitField0_ & ~0x00001000);
11639  clauseCleanupTarget_ = 10000;
11640  onChanged();
11641  return this;
11642  }
11643 
11644  private int clauseCleanupProtection_ = 0;
11649  @java.lang.Override public boolean hasClauseCleanupProtection() {
11650  return ((bitField0_ & 0x00002000) != 0);
11651  }
11656  @java.lang.Override
11658  @SuppressWarnings("deprecation")
11660  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
11661  }
11668  if (value == null) {
11669  throw new NullPointerException();
11670  }
11671  bitField0_ |= 0x00002000;
11672  clauseCleanupProtection_ = value.getNumber();
11673  onChanged();
11674  return this;
11675  }
11681  bitField0_ = (bitField0_ & ~0x00002000);
11682  clauseCleanupProtection_ = 0;
11683  onChanged();
11684  return this;
11685  }
11686 
11687  private int clauseCleanupLbdBound_ = 5;
11697  @java.lang.Override
11698  public boolean hasClauseCleanupLbdBound() {
11699  return ((bitField0_ & 0x00004000) != 0);
11700  }
11710  @java.lang.Override
11712  return clauseCleanupLbdBound_;
11713  }
11724  public Builder setClauseCleanupLbdBound(int value) {
11725  bitField0_ |= 0x00004000;
11726  clauseCleanupLbdBound_ = value;
11727  onChanged();
11728  return this;
11729  }
11740  bitField0_ = (bitField0_ & ~0x00004000);
11741  clauseCleanupLbdBound_ = 5;
11742  onChanged();
11743  return this;
11744  }
11745 
11746  private int clauseCleanupOrdering_ = 0;
11751  @java.lang.Override public boolean hasClauseCleanupOrdering() {
11752  return ((bitField0_ & 0x00008000) != 0);
11753  }
11758  @java.lang.Override
11760  @SuppressWarnings("deprecation")
11762  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
11763  }
11770  if (value == null) {
11771  throw new NullPointerException();
11772  }
11773  bitField0_ |= 0x00008000;
11774  clauseCleanupOrdering_ = value.getNumber();
11775  onChanged();
11776  return this;
11777  }
11783  bitField0_ = (bitField0_ & ~0x00008000);
11784  clauseCleanupOrdering_ = 0;
11785  onChanged();
11786  return this;
11787  }
11788 
11789  private int pbCleanupIncrement_ = 200;
11798  @java.lang.Override
11799  public boolean hasPbCleanupIncrement() {
11800  return ((bitField0_ & 0x00010000) != 0);
11801  }
11810  @java.lang.Override
11811  public int getPbCleanupIncrement() {
11812  return pbCleanupIncrement_;
11813  }
11823  public Builder setPbCleanupIncrement(int value) {
11824  bitField0_ |= 0x00010000;
11825  pbCleanupIncrement_ = value;
11826  onChanged();
11827  return this;
11828  }
11838  bitField0_ = (bitField0_ & ~0x00010000);
11839  pbCleanupIncrement_ = 200;
11840  onChanged();
11841  return this;
11842  }
11843 
11844  private double pbCleanupRatio_ = 0.5D;
11849  @java.lang.Override
11850  public boolean hasPbCleanupRatio() {
11851  return ((bitField0_ & 0x00020000) != 0);
11852  }
11857  @java.lang.Override
11858  public double getPbCleanupRatio() {
11859  return pbCleanupRatio_;
11860  }
11866  public Builder setPbCleanupRatio(double value) {
11867  bitField0_ |= 0x00020000;
11868  pbCleanupRatio_ = value;
11869  onChanged();
11870  return this;
11871  }
11877  bitField0_ = (bitField0_ & ~0x00020000);
11878  pbCleanupRatio_ = 0.5D;
11879  onChanged();
11880  return this;
11881  }
11882 
11883  private int minimizeWithPropagationRestartPeriod_ = 10;
11902  @java.lang.Override
11904  return ((bitField0_ & 0x00040000) != 0);
11905  }
11924  @java.lang.Override
11926  return minimizeWithPropagationRestartPeriod_;
11927  }
11948  bitField0_ |= 0x00040000;
11949  minimizeWithPropagationRestartPeriod_ = value;
11950  onChanged();
11951  return this;
11952  }
11972  bitField0_ = (bitField0_ & ~0x00040000);
11973  minimizeWithPropagationRestartPeriod_ = 10;
11974  onChanged();
11975  return this;
11976  }
11977 
11978  private int minimizeWithPropagationNumDecisions_ = 1000;
11983  @java.lang.Override
11985  return ((bitField0_ & 0x00080000) != 0);
11986  }
11991  @java.lang.Override
11993  return minimizeWithPropagationNumDecisions_;
11994  }
12001  bitField0_ |= 0x00080000;
12002  minimizeWithPropagationNumDecisions_ = value;
12003  onChanged();
12004  return this;
12005  }
12011  bitField0_ = (bitField0_ & ~0x00080000);
12012  minimizeWithPropagationNumDecisions_ = 1000;
12013  onChanged();
12014  return this;
12015  }
12016 
12017  private double variableActivityDecay_ = 0.8D;
12032  @java.lang.Override
12033  public boolean hasVariableActivityDecay() {
12034  return ((bitField0_ & 0x00100000) != 0);
12035  }
12050  @java.lang.Override
12051  public double getVariableActivityDecay() {
12052  return variableActivityDecay_;
12053  }
12069  public Builder setVariableActivityDecay(double value) {
12070  bitField0_ |= 0x00100000;
12071  variableActivityDecay_ = value;
12072  onChanged();
12073  return this;
12074  }
12090  bitField0_ = (bitField0_ & ~0x00100000);
12091  variableActivityDecay_ = 0.8D;
12092  onChanged();
12093  return this;
12094  }
12095 
12096  private double maxVariableActivityValue_ = 1e+100D;
12101  @java.lang.Override
12102  public boolean hasMaxVariableActivityValue() {
12103  return ((bitField0_ & 0x00200000) != 0);
12104  }
12109  @java.lang.Override
12111  return maxVariableActivityValue_;
12112  }
12118  public Builder setMaxVariableActivityValue(double value) {
12119  bitField0_ |= 0x00200000;
12120  maxVariableActivityValue_ = value;
12121  onChanged();
12122  return this;
12123  }
12129  bitField0_ = (bitField0_ & ~0x00200000);
12130  maxVariableActivityValue_ = 1e+100D;
12131  onChanged();
12132  return this;
12133  }
12134 
12135  private double glucoseMaxDecay_ = 0.95D;
12147  @java.lang.Override
12148  public boolean hasGlucoseMaxDecay() {
12149  return ((bitField0_ & 0x00400000) != 0);
12150  }
12162  @java.lang.Override
12163  public double getGlucoseMaxDecay() {
12164  return glucoseMaxDecay_;
12165  }
12178  public Builder setGlucoseMaxDecay(double value) {
12179  bitField0_ |= 0x00400000;
12180  glucoseMaxDecay_ = value;
12181  onChanged();
12182  return this;
12183  }
12196  bitField0_ = (bitField0_ & ~0x00400000);
12197  glucoseMaxDecay_ = 0.95D;
12198  onChanged();
12199  return this;
12200  }
12201 
12202  private double glucoseDecayIncrement_ = 0.01D;
12207  @java.lang.Override
12208  public boolean hasGlucoseDecayIncrement() {
12209  return ((bitField0_ & 0x00800000) != 0);
12210  }
12215  @java.lang.Override
12216  public double getGlucoseDecayIncrement() {
12217  return glucoseDecayIncrement_;
12218  }
12224  public Builder setGlucoseDecayIncrement(double value) {
12225  bitField0_ |= 0x00800000;
12226  glucoseDecayIncrement_ = value;
12227  onChanged();
12228  return this;
12229  }
12235  bitField0_ = (bitField0_ & ~0x00800000);
12236  glucoseDecayIncrement_ = 0.01D;
12237  onChanged();
12238  return this;
12239  }
12240 
12241  private int glucoseDecayIncrementPeriod_ = 5000;
12246  @java.lang.Override
12248  return ((bitField0_ & 0x01000000) != 0);
12249  }
12254  @java.lang.Override
12256  return glucoseDecayIncrementPeriod_;
12257  }
12264  bitField0_ |= 0x01000000;
12265  glucoseDecayIncrementPeriod_ = value;
12266  onChanged();
12267  return this;
12268  }
12274  bitField0_ = (bitField0_ & ~0x01000000);
12275  glucoseDecayIncrementPeriod_ = 5000;
12276  onChanged();
12277  return this;
12278  }
12279 
12280  private double clauseActivityDecay_ = 0.999D;
12289  @java.lang.Override
12290  public boolean hasClauseActivityDecay() {
12291  return ((bitField0_ & 0x02000000) != 0);
12292  }
12301  @java.lang.Override
12302  public double getClauseActivityDecay() {
12303  return clauseActivityDecay_;
12304  }
12314  public Builder setClauseActivityDecay(double value) {
12315  bitField0_ |= 0x02000000;
12316  clauseActivityDecay_ = value;
12317  onChanged();
12318  return this;
12319  }
12329  bitField0_ = (bitField0_ & ~0x02000000);
12330  clauseActivityDecay_ = 0.999D;
12331  onChanged();
12332  return this;
12333  }
12334 
12335  private double maxClauseActivityValue_ = 1e+20D;
12340  @java.lang.Override
12341  public boolean hasMaxClauseActivityValue() {
12342  return ((bitField0_ & 0x04000000) != 0);
12343  }
12348  @java.lang.Override
12349  public double getMaxClauseActivityValue() {
12350  return maxClauseActivityValue_;
12351  }
12357  public Builder setMaxClauseActivityValue(double value) {
12358  bitField0_ |= 0x04000000;
12359  maxClauseActivityValue_ = value;
12360  onChanged();
12361  return this;
12362  }
12368  bitField0_ = (bitField0_ & ~0x04000000);
12369  maxClauseActivityValue_ = 1e+20D;
12370  onChanged();
12371  return this;
12372  }
12373 
12374  private java.util.List<java.lang.Integer> restartAlgorithms_ =
12375  java.util.Collections.emptyList();
12376  private void ensureRestartAlgorithmsIsMutable() {
12377  if (!((bitField0_ & 0x08000000) != 0)) {
12378  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
12379  bitField0_ |= 0x08000000;
12380  }
12381  }
12398  return new com.google.protobuf.Internal.ListAdapter<
12399  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
12400  }
12417  return restartAlgorithms_.size();
12418  }
12436  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
12437  }
12456  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
12457  if (value == null) {
12458  throw new NullPointerException();
12459  }
12460  ensureRestartAlgorithmsIsMutable();
12461  restartAlgorithms_.set(index, value.getNumber());
12462  onChanged();
12463  return this;
12464  }
12482  if (value == null) {
12483  throw new NullPointerException();
12484  }
12485  ensureRestartAlgorithmsIsMutable();
12486  restartAlgorithms_.add(value.getNumber());
12487  onChanged();
12488  return this;
12489  }
12507  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
12508  ensureRestartAlgorithmsIsMutable();
12509  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
12510  restartAlgorithms_.add(value.getNumber());
12511  }
12512  onChanged();
12513  return this;
12514  }
12531  restartAlgorithms_ = java.util.Collections.emptyList();
12532  bitField0_ = (bitField0_ & ~0x08000000);
12533  onChanged();
12534  return this;
12535  }
12536 
12537  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
12542  public boolean hasDefaultRestartAlgorithms() {
12543  return ((bitField0_ & 0x10000000) != 0);
12544  }
12549  public java.lang.String getDefaultRestartAlgorithms() {
12550  java.lang.Object ref = defaultRestartAlgorithms_;
12551  if (!(ref instanceof java.lang.String)) {
12552  com.google.protobuf.ByteString bs =
12553  (com.google.protobuf.ByteString) ref;
12554  java.lang.String s = bs.toStringUtf8();
12555  if (bs.isValidUtf8()) {
12556  defaultRestartAlgorithms_ = s;
12557  }
12558  return s;
12559  } else {
12560  return (java.lang.String) ref;
12561  }
12562  }
12567  public com.google.protobuf.ByteString
12569  java.lang.Object ref = defaultRestartAlgorithms_;
12570  if (ref instanceof String) {
12571  com.google.protobuf.ByteString b =
12572  com.google.protobuf.ByteString.copyFromUtf8(
12573  (java.lang.String) ref);
12574  defaultRestartAlgorithms_ = b;
12575  return b;
12576  } else {
12577  return (com.google.protobuf.ByteString) ref;
12578  }
12579  }
12586  java.lang.String value) {
12587  if (value == null) {
12588  throw new NullPointerException();
12589  }
12590  bitField0_ |= 0x10000000;
12591  defaultRestartAlgorithms_ = value;
12592  onChanged();
12593  return this;
12594  }
12600  bitField0_ = (bitField0_ & ~0x10000000);
12601  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
12602  onChanged();
12603  return this;
12604  }
12611  com.google.protobuf.ByteString value) {
12612  if (value == null) {
12613  throw new NullPointerException();
12614  }
12615  bitField0_ |= 0x10000000;
12616  defaultRestartAlgorithms_ = value;
12617  onChanged();
12618  return this;
12619  }
12620 
12621  private int restartPeriod_ = 50;
12631  @java.lang.Override
12632  public boolean hasRestartPeriod() {
12633  return ((bitField0_ & 0x20000000) != 0);
12634  }
12644  @java.lang.Override
12645  public int getRestartPeriod() {
12646  return restartPeriod_;
12647  }
12658  public Builder setRestartPeriod(int value) {
12659  bitField0_ |= 0x20000000;
12660  restartPeriod_ = value;
12661  onChanged();
12662  return this;
12663  }
12674  bitField0_ = (bitField0_ & ~0x20000000);
12675  restartPeriod_ = 50;
12676  onChanged();
12677  return this;
12678  }
12679 
12680  private int restartRunningWindowSize_ = 50;
12689  @java.lang.Override
12690  public boolean hasRestartRunningWindowSize() {
12691  return ((bitField0_ & 0x40000000) != 0);
12692  }
12701  @java.lang.Override
12703  return restartRunningWindowSize_;
12704  }
12715  bitField0_ |= 0x40000000;
12716  restartRunningWindowSize_ = value;
12717  onChanged();
12718  return this;
12719  }
12729  bitField0_ = (bitField0_ & ~0x40000000);
12730  restartRunningWindowSize_ = 50;
12731  onChanged();
12732  return this;
12733  }
12734 
12735  private double restartDlAverageRatio_ = 1D;
12745  @java.lang.Override
12746  public boolean hasRestartDlAverageRatio() {
12747  return ((bitField0_ & 0x80000000) != 0);
12748  }
12758  @java.lang.Override
12759  public double getRestartDlAverageRatio() {
12760  return restartDlAverageRatio_;
12761  }
12772  public Builder setRestartDlAverageRatio(double value) {
12773  bitField0_ |= 0x80000000;
12774  restartDlAverageRatio_ = value;
12775  onChanged();
12776  return this;
12777  }
12788  bitField0_ = (bitField0_ & ~0x80000000);
12789  restartDlAverageRatio_ = 1D;
12790  onChanged();
12791  return this;
12792  }
12793 
12794  private double restartLbdAverageRatio_ = 1D;
12799  @java.lang.Override
12800  public boolean hasRestartLbdAverageRatio() {
12801  return ((bitField1_ & 0x00000001) != 0);
12802  }
12807  @java.lang.Override
12808  public double getRestartLbdAverageRatio() {
12809  return restartLbdAverageRatio_;
12810  }
12816  public Builder setRestartLbdAverageRatio(double value) {
12817  bitField1_ |= 0x00000001;
12818  restartLbdAverageRatio_ = value;
12819  onChanged();
12820  return this;
12821  }
12827  bitField1_ = (bitField1_ & ~0x00000001);
12828  restartLbdAverageRatio_ = 1D;
12829  onChanged();
12830  return this;
12831  }
12832 
12833  private boolean useBlockingRestart_ ;
12844  @java.lang.Override
12845  public boolean hasUseBlockingRestart() {
12846  return ((bitField1_ & 0x00000002) != 0);
12847  }
12858  @java.lang.Override
12859  public boolean getUseBlockingRestart() {
12860  return useBlockingRestart_;
12861  }
12873  public Builder setUseBlockingRestart(boolean value) {
12874  bitField1_ |= 0x00000002;
12875  useBlockingRestart_ = value;
12876  onChanged();
12877  return this;
12878  }
12890  bitField1_ = (bitField1_ & ~0x00000002);
12891  useBlockingRestart_ = false;
12892  onChanged();
12893  return this;
12894  }
12895 
12896  private int blockingRestartWindowSize_ = 5000;
12901  @java.lang.Override
12902  public boolean hasBlockingRestartWindowSize() {
12903  return ((bitField1_ & 0x00000004) != 0);
12904  }
12909  @java.lang.Override
12911  return blockingRestartWindowSize_;
12912  }
12919  bitField1_ |= 0x00000004;
12920  blockingRestartWindowSize_ = value;
12921  onChanged();
12922  return this;
12923  }
12929  bitField1_ = (bitField1_ & ~0x00000004);
12930  blockingRestartWindowSize_ = 5000;
12931  onChanged();
12932  return this;
12933  }
12934 
12935  private double blockingRestartMultiplier_ = 1.4D;
12940  @java.lang.Override
12941  public boolean hasBlockingRestartMultiplier() {
12942  return ((bitField1_ & 0x00000008) != 0);
12943  }
12948  @java.lang.Override
12950  return blockingRestartMultiplier_;
12951  }
12957  public Builder setBlockingRestartMultiplier(double value) {
12958  bitField1_ |= 0x00000008;
12959  blockingRestartMultiplier_ = value;
12960  onChanged();
12961  return this;
12962  }
12968  bitField1_ = (bitField1_ & ~0x00000008);
12969  blockingRestartMultiplier_ = 1.4D;
12970  onChanged();
12971  return this;
12972  }
12973 
12974  private int numConflictsBeforeStrategyChanges_ ;
12985  @java.lang.Override
12987  return ((bitField1_ & 0x00000010) != 0);
12988  }
12999  @java.lang.Override
13001  return numConflictsBeforeStrategyChanges_;
13002  }
13015  bitField1_ |= 0x00000010;
13016  numConflictsBeforeStrategyChanges_ = value;
13017  onChanged();
13018  return this;
13019  }
13031  bitField1_ = (bitField1_ & ~0x00000010);
13032  numConflictsBeforeStrategyChanges_ = 0;
13033  onChanged();
13034  return this;
13035  }
13036 
13037  private double strategyChangeIncreaseRatio_ ;
13047  @java.lang.Override
13049  return ((bitField1_ & 0x00000020) != 0);
13050  }
13060  @java.lang.Override
13062  return strategyChangeIncreaseRatio_;
13063  }
13075  bitField1_ |= 0x00000020;
13076  strategyChangeIncreaseRatio_ = value;
13077  onChanged();
13078  return this;
13079  }
13090  bitField1_ = (bitField1_ & ~0x00000020);
13091  strategyChangeIncreaseRatio_ = 0D;
13092  onChanged();
13093  return this;
13094  }
13095 
13096  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
13106  @java.lang.Override
13107  public boolean hasMaxTimeInSeconds() {
13108  return ((bitField1_ & 0x00000040) != 0);
13109  }
13119  @java.lang.Override
13120  public double getMaxTimeInSeconds() {
13121  return maxTimeInSeconds_;
13122  }
13133  public Builder setMaxTimeInSeconds(double value) {
13134  bitField1_ |= 0x00000040;
13135  maxTimeInSeconds_ = value;
13136  onChanged();
13137  return this;
13138  }
13149  bitField1_ = (bitField1_ & ~0x00000040);
13150  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
13151  onChanged();
13152  return this;
13153  }
13154 
13155  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
13166  @java.lang.Override
13167  public boolean hasMaxDeterministicTime() {
13168  return ((bitField1_ & 0x00000080) != 0);
13169  }
13180  @java.lang.Override
13181  public double getMaxDeterministicTime() {
13182  return maxDeterministicTime_;
13183  }
13195  public Builder setMaxDeterministicTime(double value) {
13196  bitField1_ |= 0x00000080;
13197  maxDeterministicTime_ = value;
13198  onChanged();
13199  return this;
13200  }
13212  bitField1_ = (bitField1_ & ~0x00000080);
13213  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
13214  onChanged();
13215  return this;
13216  }
13217 
13218  private long maxNumberOfConflicts_ = 9223372036854775807L;
13232  @java.lang.Override
13233  public boolean hasMaxNumberOfConflicts() {
13234  return ((bitField1_ & 0x00000100) != 0);
13235  }
13249  @java.lang.Override
13250  public long getMaxNumberOfConflicts() {
13251  return maxNumberOfConflicts_;
13252  }
13267  public Builder setMaxNumberOfConflicts(long value) {
13268  bitField1_ |= 0x00000100;
13269  maxNumberOfConflicts_ = value;
13270  onChanged();
13271  return this;
13272  }
13287  bitField1_ = (bitField1_ & ~0x00000100);
13288  maxNumberOfConflicts_ = 9223372036854775807L;
13289  onChanged();
13290  return this;
13291  }
13292 
13293  private long maxMemoryInMb_ = 10000L;
13305  @java.lang.Override
13306  public boolean hasMaxMemoryInMb() {
13307  return ((bitField1_ & 0x00000200) != 0);
13308  }
13320  @java.lang.Override
13321  public long getMaxMemoryInMb() {
13322  return maxMemoryInMb_;
13323  }
13336  public Builder setMaxMemoryInMb(long value) {
13337  bitField1_ |= 0x00000200;
13338  maxMemoryInMb_ = value;
13339  onChanged();
13340  return this;
13341  }
13354  bitField1_ = (bitField1_ & ~0x00000200);
13355  maxMemoryInMb_ = 10000L;
13356  onChanged();
13357  return this;
13358  }
13359 
13360  private double absoluteGapLimit_ ;
13378  @java.lang.Override
13379  public boolean hasAbsoluteGapLimit() {
13380  return ((bitField1_ & 0x00000400) != 0);
13381  }
13399  @java.lang.Override
13400  public double getAbsoluteGapLimit() {
13401  return absoluteGapLimit_;
13402  }
13421  public Builder setAbsoluteGapLimit(double value) {
13422  bitField1_ |= 0x00000400;
13423  absoluteGapLimit_ = value;
13424  onChanged();
13425  return this;
13426  }
13445  bitField1_ = (bitField1_ & ~0x00000400);
13446  absoluteGapLimit_ = 0D;
13447  onChanged();
13448  return this;
13449  }
13450 
13451  private double relativeGapLimit_ ;
13456  @java.lang.Override
13457  public boolean hasRelativeGapLimit() {
13458  return ((bitField1_ & 0x00000800) != 0);
13459  }
13464  @java.lang.Override
13465  public double getRelativeGapLimit() {
13466  return relativeGapLimit_;
13467  }
13473  public Builder setRelativeGapLimit(double value) {
13474  bitField1_ |= 0x00000800;
13475  relativeGapLimit_ = value;
13476  onChanged();
13477  return this;
13478  }
13484  bitField1_ = (bitField1_ & ~0x00000800);
13485  relativeGapLimit_ = 0D;
13486  onChanged();
13487  return this;
13488  }
13489 
13490  private boolean treatBinaryClausesSeparately_ = true;
13501  @java.lang.Override
13503  return ((bitField1_ & 0x00001000) != 0);
13504  }
13515  @java.lang.Override
13517  return treatBinaryClausesSeparately_;
13518  }
13531  bitField1_ |= 0x00001000;
13532  treatBinaryClausesSeparately_ = value;
13533  onChanged();
13534  return this;
13535  }
13547  bitField1_ = (bitField1_ & ~0x00001000);
13548  treatBinaryClausesSeparately_ = true;
13549  onChanged();
13550  return this;
13551  }
13552 
13553  private int randomSeed_ = 1;
13567  @java.lang.Override
13568  public boolean hasRandomSeed() {
13569  return ((bitField1_ & 0x00002000) != 0);
13570  }
13584  @java.lang.Override
13585  public int getRandomSeed() {
13586  return randomSeed_;
13587  }
13602  public Builder setRandomSeed(int value) {
13603  bitField1_ |= 0x00002000;
13604  randomSeed_ = value;
13605  onChanged();
13606  return this;
13607  }
13622  bitField1_ = (bitField1_ & ~0x00002000);
13623  randomSeed_ = 1;
13624  onChanged();
13625  return this;
13626  }
13627 
13628  private boolean logSearchProgress_ ;
13637  @java.lang.Override
13638  public boolean hasLogSearchProgress() {
13639  return ((bitField1_ & 0x00004000) != 0);
13640  }
13649  @java.lang.Override
13650  public boolean getLogSearchProgress() {
13651  return logSearchProgress_;
13652  }
13662  public Builder setLogSearchProgress(boolean value) {
13663  bitField1_ |= 0x00004000;
13664  logSearchProgress_ = value;
13665  onChanged();
13666  return this;
13667  }
13677  bitField1_ = (bitField1_ & ~0x00004000);
13678  logSearchProgress_ = false;
13679  onChanged();
13680  return this;
13681  }
13682 
13683  private boolean usePbResolution_ ;
13695  @java.lang.Override
13696  public boolean hasUsePbResolution() {
13697  return ((bitField1_ & 0x00008000) != 0);
13698  }
13710  @java.lang.Override
13711  public boolean getUsePbResolution() {
13712  return usePbResolution_;
13713  }
13726  public Builder setUsePbResolution(boolean value) {
13727  bitField1_ |= 0x00008000;
13728  usePbResolution_ = value;
13729  onChanged();
13730  return this;
13731  }
13744  bitField1_ = (bitField1_ & ~0x00008000);
13745  usePbResolution_ = false;
13746  onChanged();
13747  return this;
13748  }
13749 
13750  private boolean minimizeReductionDuringPbResolution_ ;
13762  @java.lang.Override
13764  return ((bitField1_ & 0x00010000) != 0);
13765  }
13777  @java.lang.Override
13779  return minimizeReductionDuringPbResolution_;
13780  }
13794  bitField1_ |= 0x00010000;
13795  minimizeReductionDuringPbResolution_ = value;
13796  onChanged();
13797  return this;
13798  }
13811  bitField1_ = (bitField1_ & ~0x00010000);
13812  minimizeReductionDuringPbResolution_ = false;
13813  onChanged();
13814  return this;
13815  }
13816 
13817  private boolean countAssumptionLevelsInLbd_ = true;
13833  @java.lang.Override
13835  return ((bitField1_ & 0x00020000) != 0);
13836  }
13852  @java.lang.Override
13854  return countAssumptionLevelsInLbd_;
13855  }
13872  public Builder setCountAssumptionLevelsInLbd(boolean value) {
13873  bitField1_ |= 0x00020000;
13874  countAssumptionLevelsInLbd_ = value;
13875  onChanged();
13876  return this;
13877  }
13894  bitField1_ = (bitField1_ & ~0x00020000);
13895  countAssumptionLevelsInLbd_ = true;
13896  onChanged();
13897  return this;
13898  }
13899 
13900  private int presolveBveThreshold_ = 500;
13911  @java.lang.Override
13912  public boolean hasPresolveBveThreshold() {
13913  return ((bitField1_ & 0x00040000) != 0);
13914  }
13925  @java.lang.Override
13927  return presolveBveThreshold_;
13928  }
13940  public Builder setPresolveBveThreshold(int value) {
13941  bitField1_ |= 0x00040000;
13942  presolveBveThreshold_ = value;
13943  onChanged();
13944  return this;
13945  }
13957  bitField1_ = (bitField1_ & ~0x00040000);
13958  presolveBveThreshold_ = 500;
13959  onChanged();
13960  return this;
13961  }
13962 
13963  private int presolveBveClauseWeight_ = 3;
13973  @java.lang.Override
13974  public boolean hasPresolveBveClauseWeight() {
13975  return ((bitField1_ & 0x00080000) != 0);
13976  }
13986  @java.lang.Override
13988  return presolveBveClauseWeight_;
13989  }
14001  bitField1_ |= 0x00080000;
14002  presolveBveClauseWeight_ = value;
14003  onChanged();
14004  return this;
14005  }
14016  bitField1_ = (bitField1_ & ~0x00080000);
14017  presolveBveClauseWeight_ = 3;
14018  onChanged();
14019  return this;
14020  }
14021 
14022  private double presolveProbingDeterministicTimeLimit_ = 30D;
14032  @java.lang.Override
14034  return ((bitField1_ & 0x00100000) != 0);
14035  }
14045  @java.lang.Override
14047  return presolveProbingDeterministicTimeLimit_;
14048  }
14060  bitField1_ |= 0x00100000;
14061  presolveProbingDeterministicTimeLimit_ = value;
14062  onChanged();
14063  return this;
14064  }
14075  bitField1_ = (bitField1_ & ~0x00100000);
14076  presolveProbingDeterministicTimeLimit_ = 30D;
14077  onChanged();
14078  return this;
14079  }
14080 
14081  private boolean presolveBlockedClause_ = true;
14091  @java.lang.Override
14092  public boolean hasPresolveBlockedClause() {
14093  return ((bitField1_ & 0x00200000) != 0);
14094  }
14104  @java.lang.Override
14105  public boolean getPresolveBlockedClause() {
14106  return presolveBlockedClause_;
14107  }
14118  public Builder setPresolveBlockedClause(boolean value) {
14119  bitField1_ |= 0x00200000;
14120  presolveBlockedClause_ = value;
14121  onChanged();
14122  return this;
14123  }
14134  bitField1_ = (bitField1_ & ~0x00200000);
14135  presolveBlockedClause_ = true;
14136  onChanged();
14137  return this;
14138  }
14139 
14140  private boolean presolveUseBva_ = true;
14149  @java.lang.Override
14150  public boolean hasPresolveUseBva() {
14151  return ((bitField1_ & 0x00400000) != 0);
14152  }
14161  @java.lang.Override
14162  public boolean getPresolveUseBva() {
14163  return presolveUseBva_;
14164  }
14174  public Builder setPresolveUseBva(boolean value) {
14175  bitField1_ |= 0x00400000;
14176  presolveUseBva_ = value;
14177  onChanged();
14178  return this;
14179  }
14189  bitField1_ = (bitField1_ & ~0x00400000);
14190  presolveUseBva_ = true;
14191  onChanged();
14192  return this;
14193  }
14194 
14195  private int presolveBvaThreshold_ = 1;
14207  @java.lang.Override
14208  public boolean hasPresolveBvaThreshold() {
14209  return ((bitField1_ & 0x00800000) != 0);
14210  }
14222  @java.lang.Override
14224  return presolveBvaThreshold_;
14225  }
14238  public Builder setPresolveBvaThreshold(int value) {
14239  bitField1_ |= 0x00800000;
14240  presolveBvaThreshold_ = value;
14241  onChanged();
14242  return this;
14243  }
14256  bitField1_ = (bitField1_ & ~0x00800000);
14257  presolveBvaThreshold_ = 1;
14258  onChanged();
14259  return this;
14260  }
14261 
14262  private int maxPresolveIterations_ = 3;
14273  @java.lang.Override
14274  public boolean hasMaxPresolveIterations() {
14275  return ((bitField1_ & 0x01000000) != 0);
14276  }
14287  @java.lang.Override
14289  return maxPresolveIterations_;
14290  }
14302  public Builder setMaxPresolveIterations(int value) {
14303  bitField1_ |= 0x01000000;
14304  maxPresolveIterations_ = value;
14305  onChanged();
14306  return this;
14307  }
14319  bitField1_ = (bitField1_ & ~0x01000000);
14320  maxPresolveIterations_ = 3;
14321  onChanged();
14322  return this;
14323  }
14324 
14325  private boolean cpModelPresolve_ = true;
14334  @java.lang.Override
14335  public boolean hasCpModelPresolve() {
14336  return ((bitField1_ & 0x02000000) != 0);
14337  }
14346  @java.lang.Override
14347  public boolean getCpModelPresolve() {
14348  return cpModelPresolve_;
14349  }
14359  public Builder setCpModelPresolve(boolean value) {
14360  bitField1_ |= 0x02000000;
14361  cpModelPresolve_ = value;
14362  onChanged();
14363  return this;
14364  }
14374  bitField1_ = (bitField1_ & ~0x02000000);
14375  cpModelPresolve_ = true;
14376  onChanged();
14377  return this;
14378  }
14379 
14380  private boolean cpModelPostsolveWithFullSolver_ ;
14392  @java.lang.Override
14394  return ((bitField1_ & 0x04000000) != 0);
14395  }
14407  @java.lang.Override
14409  return cpModelPostsolveWithFullSolver_;
14410  }
14424  bitField1_ |= 0x04000000;
14425  cpModelPostsolveWithFullSolver_ = value;
14426  onChanged();
14427  return this;
14428  }
14441  bitField1_ = (bitField1_ & ~0x04000000);
14442  cpModelPostsolveWithFullSolver_ = false;
14443  onChanged();
14444  return this;
14445  }
14446 
14447  private int cpModelMaxNumPresolveOperations_ ;
14457  @java.lang.Override
14459  return ((bitField1_ & 0x08000000) != 0);
14460  }
14470  @java.lang.Override
14472  return cpModelMaxNumPresolveOperations_;
14473  }
14485  bitField1_ |= 0x08000000;
14486  cpModelMaxNumPresolveOperations_ = value;
14487  onChanged();
14488  return this;
14489  }
14500  bitField1_ = (bitField1_ & ~0x08000000);
14501  cpModelMaxNumPresolveOperations_ = 0;
14502  onChanged();
14503  return this;
14504  }
14505 
14506  private int cpModelProbingLevel_ = 2;
14515  @java.lang.Override
14516  public boolean hasCpModelProbingLevel() {
14517  return ((bitField1_ & 0x10000000) != 0);
14518  }
14527  @java.lang.Override
14528  public int getCpModelProbingLevel() {
14529  return cpModelProbingLevel_;
14530  }
14540  public Builder setCpModelProbingLevel(int value) {
14541  bitField1_ |= 0x10000000;
14542  cpModelProbingLevel_ = value;
14543  onChanged();
14544  return this;
14545  }
14555  bitField1_ = (bitField1_ & ~0x10000000);
14556  cpModelProbingLevel_ = 2;
14557  onChanged();
14558  return this;
14559  }
14560 
14561  private boolean cpModelUseSatPresolve_ = true;
14570  @java.lang.Override
14571  public boolean hasCpModelUseSatPresolve() {
14572  return ((bitField1_ & 0x20000000) != 0);
14573  }
14582  @java.lang.Override
14583  public boolean getCpModelUseSatPresolve() {
14584  return cpModelUseSatPresolve_;
14585  }
14595  public Builder setCpModelUseSatPresolve(boolean value) {
14596  bitField1_ |= 0x20000000;
14597  cpModelUseSatPresolve_ = value;
14598  onChanged();
14599  return this;
14600  }
14610  bitField1_ = (bitField1_ & ~0x20000000);
14611  cpModelUseSatPresolve_ = true;
14612  onChanged();
14613  return this;
14614  }
14615 
14616  private boolean useSatInprocessing_ ;
14621  @java.lang.Override
14622  public boolean hasUseSatInprocessing() {
14623  return ((bitField1_ & 0x40000000) != 0);
14624  }
14629  @java.lang.Override
14630  public boolean getUseSatInprocessing() {
14631  return useSatInprocessing_;
14632  }
14638  public Builder setUseSatInprocessing(boolean value) {
14639  bitField1_ |= 0x40000000;
14640  useSatInprocessing_ = value;
14641  onChanged();
14642  return this;
14643  }
14649  bitField1_ = (bitField1_ & ~0x40000000);
14650  useSatInprocessing_ = false;
14651  onChanged();
14652  return this;
14653  }
14654 
14655  private boolean expandElementConstraints_ = true;
14665  @java.lang.Override
14666  public boolean hasExpandElementConstraints() {
14667  return ((bitField1_ & 0x80000000) != 0);
14668  }
14678  @java.lang.Override
14679  public boolean getExpandElementConstraints() {
14680  return expandElementConstraints_;
14681  }
14692  public Builder setExpandElementConstraints(boolean value) {
14693  bitField1_ |= 0x80000000;
14694  expandElementConstraints_ = value;
14695  onChanged();
14696  return this;
14697  }
14708  bitField1_ = (bitField1_ & ~0x80000000);
14709  expandElementConstraints_ = true;
14710  onChanged();
14711  return this;
14712  }
14713 
14714  private boolean expandAutomatonConstraints_ = true;
14723  @java.lang.Override
14725  return ((bitField2_ & 0x00000001) != 0);
14726  }
14735  @java.lang.Override
14737  return expandAutomatonConstraints_;
14738  }
14748  public Builder setExpandAutomatonConstraints(boolean value) {
14749  bitField2_ |= 0x00000001;
14750  expandAutomatonConstraints_ = value;
14751  onChanged();
14752  return this;
14753  }
14763  bitField2_ = (bitField2_ & ~0x00000001);
14764  expandAutomatonConstraints_ = true;
14765  onChanged();
14766  return this;
14767  }
14768 
14769  private boolean expandTableConstraints_ = true;
14779  @java.lang.Override
14780  public boolean hasExpandTableConstraints() {
14781  return ((bitField2_ & 0x00000002) != 0);
14782  }
14792  @java.lang.Override
14793  public boolean getExpandTableConstraints() {
14794  return expandTableConstraints_;
14795  }
14806  public Builder setExpandTableConstraints(boolean value) {
14807  bitField2_ |= 0x00000002;
14808  expandTableConstraints_ = value;
14809  onChanged();
14810  return this;
14811  }
14822  bitField2_ = (bitField2_ & ~0x00000002);
14823  expandTableConstraints_ = true;
14824  onChanged();
14825  return this;
14826  }
14827 
14828  private double mergeNoOverlapWorkLimit_ = 1000000000000D;
14841  @java.lang.Override
14842  public boolean hasMergeNoOverlapWorkLimit() {
14843  return ((bitField2_ & 0x00000004) != 0);
14844  }
14857  @java.lang.Override
14858  public double getMergeNoOverlapWorkLimit() {
14859  return mergeNoOverlapWorkLimit_;
14860  }
14874  public Builder setMergeNoOverlapWorkLimit(double value) {
14875  bitField2_ |= 0x00000004;
14876  mergeNoOverlapWorkLimit_ = value;
14877  onChanged();
14878  return this;
14879  }
14893  bitField2_ = (bitField2_ & ~0x00000004);
14894  mergeNoOverlapWorkLimit_ = 1000000000000D;
14895  onChanged();
14896  return this;
14897  }
14898 
14899  private double mergeAtMostOneWorkLimit_ = 100000000D;
14904  @java.lang.Override
14905  public boolean hasMergeAtMostOneWorkLimit() {
14906  return ((bitField2_ & 0x00000008) != 0);
14907  }
14912  @java.lang.Override
14913  public double getMergeAtMostOneWorkLimit() {
14914  return mergeAtMostOneWorkLimit_;
14915  }
14921  public Builder setMergeAtMostOneWorkLimit(double value) {
14922  bitField2_ |= 0x00000008;
14923  mergeAtMostOneWorkLimit_ = value;
14924  onChanged();
14925  return this;
14926  }
14932  bitField2_ = (bitField2_ & ~0x00000008);
14933  mergeAtMostOneWorkLimit_ = 100000000D;
14934  onChanged();
14935  return this;
14936  }
14937 
14938  private int presolveSubstitutionLevel_ = 1;
14950  @java.lang.Override
14951  public boolean hasPresolveSubstitutionLevel() {
14952  return ((bitField2_ & 0x00000010) != 0);
14953  }
14965  @java.lang.Override
14967  return presolveSubstitutionLevel_;
14968  }
14982  bitField2_ |= 0x00000010;
14983  presolveSubstitutionLevel_ = value;
14984  onChanged();
14985  return this;
14986  }
14999  bitField2_ = (bitField2_ & ~0x00000010);
15000  presolveSubstitutionLevel_ = 1;
15001  onChanged();
15002  return this;
15003  }
15004 
15005  private boolean useOptimizationHints_ = true;
15017  @java.lang.Override
15018  public boolean hasUseOptimizationHints() {
15019  return ((bitField2_ & 0x00000020) != 0);
15020  }
15032  @java.lang.Override
15033  public boolean getUseOptimizationHints() {
15034  return useOptimizationHints_;
15035  }
15048  public Builder setUseOptimizationHints(boolean value) {
15049  bitField2_ |= 0x00000020;
15050  useOptimizationHints_ = value;
15051  onChanged();
15052  return this;
15053  }
15066  bitField2_ = (bitField2_ & ~0x00000020);
15067  useOptimizationHints_ = true;
15068  onChanged();
15069  return this;
15070  }
15071 
15072  private boolean minimizeCore_ = true;
15081  @java.lang.Override
15082  public boolean hasMinimizeCore() {
15083  return ((bitField2_ & 0x00000040) != 0);
15084  }
15093  @java.lang.Override
15094  public boolean getMinimizeCore() {
15095  return minimizeCore_;
15096  }
15106  public Builder setMinimizeCore(boolean value) {
15107  bitField2_ |= 0x00000040;
15108  minimizeCore_ = value;
15109  onChanged();
15110  return this;
15111  }
15121  bitField2_ = (bitField2_ & ~0x00000040);
15122  minimizeCore_ = true;
15123  onChanged();
15124  return this;
15125  }
15126 
15127  private boolean findMultipleCores_ = true;
15137  @java.lang.Override
15138  public boolean hasFindMultipleCores() {
15139  return ((bitField2_ & 0x00000080) != 0);
15140  }
15150  @java.lang.Override
15151  public boolean getFindMultipleCores() {
15152  return findMultipleCores_;
15153  }
15164  public Builder setFindMultipleCores(boolean value) {
15165  bitField2_ |= 0x00000080;
15166  findMultipleCores_ = value;
15167  onChanged();
15168  return this;
15169  }
15180  bitField2_ = (bitField2_ & ~0x00000080);
15181  findMultipleCores_ = true;
15182  onChanged();
15183  return this;
15184  }
15185 
15186  private boolean coverOptimization_ = true;
15196  @java.lang.Override
15197  public boolean hasCoverOptimization() {
15198  return ((bitField2_ & 0x00000100) != 0);
15199  }
15209  @java.lang.Override
15210  public boolean getCoverOptimization() {
15211  return coverOptimization_;
15212  }
15223  public Builder setCoverOptimization(boolean value) {
15224  bitField2_ |= 0x00000100;
15225  coverOptimization_ = value;
15226  onChanged();
15227  return this;
15228  }
15239  bitField2_ = (bitField2_ & ~0x00000100);
15240  coverOptimization_ = true;
15241  onChanged();
15242  return this;
15243  }
15244 
15245  private int maxSatAssumptionOrder_ = 0;
15250  @java.lang.Override public boolean hasMaxSatAssumptionOrder() {
15251  return ((bitField2_ & 0x00000200) != 0);
15252  }
15257  @java.lang.Override
15259  @SuppressWarnings("deprecation")
15262  }
15269  if (value == null) {
15270  throw new NullPointerException();
15271  }
15272  bitField2_ |= 0x00000200;
15273  maxSatAssumptionOrder_ = value.getNumber();
15274  onChanged();
15275  return this;
15276  }
15282  bitField2_ = (bitField2_ & ~0x00000200);
15283  maxSatAssumptionOrder_ = 0;
15284  onChanged();
15285  return this;
15286  }
15287 
15288  private boolean maxSatReverseAssumptionOrder_ ;
15298  @java.lang.Override
15300  return ((bitField2_ & 0x00000400) != 0);
15301  }
15311  @java.lang.Override
15313  return maxSatReverseAssumptionOrder_;
15314  }
15326  bitField2_ |= 0x00000400;
15327  maxSatReverseAssumptionOrder_ = value;
15328  onChanged();
15329  return this;
15330  }
15341  bitField2_ = (bitField2_ & ~0x00000400);
15342  maxSatReverseAssumptionOrder_ = false;
15343  onChanged();
15344  return this;
15345  }
15346 
15347  private int maxSatStratification_ = 1;
15352  @java.lang.Override public boolean hasMaxSatStratification() {
15353  return ((bitField2_ & 0x00000800) != 0);
15354  }
15359  @java.lang.Override
15361  @SuppressWarnings("deprecation")
15364  }
15371  if (value == null) {
15372  throw new NullPointerException();
15373  }
15374  bitField2_ |= 0x00000800;
15375  maxSatStratification_ = value.getNumber();
15376  onChanged();
15377  return this;
15378  }
15384  bitField2_ = (bitField2_ & ~0x00000800);
15385  maxSatStratification_ = 1;
15386  onChanged();
15387  return this;
15388  }
15389 
15390  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
15406  @java.lang.Override
15408  return ((bitField2_ & 0x00001000) != 0);
15409  }
15425  @java.lang.Override
15427  return usePrecedencesInDisjunctiveConstraint_;
15428  }
15446  bitField2_ |= 0x00001000;
15447  usePrecedencesInDisjunctiveConstraint_ = value;
15448  onChanged();
15449  return this;
15450  }
15467  bitField2_ = (bitField2_ & ~0x00001000);
15468  usePrecedencesInDisjunctiveConstraint_ = true;
15469  onChanged();
15470  return this;
15471  }
15472 
15473  private boolean useOverloadCheckerInCumulativeConstraint_ ;
15487  @java.lang.Override
15489  return ((bitField2_ & 0x00002000) != 0);
15490  }
15504  @java.lang.Override
15506  return useOverloadCheckerInCumulativeConstraint_;
15507  }
15523  bitField2_ |= 0x00002000;
15524  useOverloadCheckerInCumulativeConstraint_ = value;
15525  onChanged();
15526  return this;
15527  }
15542  bitField2_ = (bitField2_ & ~0x00002000);
15543  useOverloadCheckerInCumulativeConstraint_ = false;
15544  onChanged();
15545  return this;
15546  }
15547 
15548  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
15562  @java.lang.Override
15564  return ((bitField2_ & 0x00004000) != 0);
15565  }
15579  @java.lang.Override
15581  return useTimetableEdgeFindingInCumulativeConstraint_;
15582  }
15598  bitField2_ |= 0x00004000;
15599  useTimetableEdgeFindingInCumulativeConstraint_ = value;
15600  onChanged();
15601  return this;
15602  }
15617  bitField2_ = (bitField2_ & ~0x00004000);
15618  useTimetableEdgeFindingInCumulativeConstraint_ = false;
15619  onChanged();
15620  return this;
15621  }
15622 
15623  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
15639  @java.lang.Override
15641  return ((bitField2_ & 0x00008000) != 0);
15642  }
15658  @java.lang.Override
15660  return useDisjunctiveConstraintInCumulativeConstraint_;
15661  }
15679  bitField2_ |= 0x00008000;
15680  useDisjunctiveConstraintInCumulativeConstraint_ = value;
15681  onChanged();
15682  return this;
15683  }
15700  bitField2_ = (bitField2_ & ~0x00008000);
15701  useDisjunctiveConstraintInCumulativeConstraint_ = true;
15702  onChanged();
15703  return this;
15704  }
15705 
15706  private int linearizationLevel_ = 1;
15718  @java.lang.Override
15719  public boolean hasLinearizationLevel() {
15720  return ((bitField2_ & 0x00010000) != 0);
15721  }
15733  @java.lang.Override
15734  public int getLinearizationLevel() {
15735  return linearizationLevel_;
15736  }
15749  public Builder setLinearizationLevel(int value) {
15750  bitField2_ |= 0x00010000;
15751  linearizationLevel_ = value;
15752  onChanged();
15753  return this;
15754  }
15767  bitField2_ = (bitField2_ & ~0x00010000);
15768  linearizationLevel_ = 1;
15769  onChanged();
15770  return this;
15771  }
15772 
15773  private int booleanEncodingLevel_ = 1;
15783  @java.lang.Override
15784  public boolean hasBooleanEncodingLevel() {
15785  return ((bitField2_ & 0x00020000) != 0);
15786  }
15796  @java.lang.Override
15798  return booleanEncodingLevel_;
15799  }
15810  public Builder setBooleanEncodingLevel(int value) {
15811  bitField2_ |= 0x00020000;
15812  booleanEncodingLevel_ = value;
15813  onChanged();
15814  return this;
15815  }
15826  bitField2_ = (bitField2_ & ~0x00020000);
15827  booleanEncodingLevel_ = 1;
15828  onChanged();
15829  return this;
15830  }
15831 
15832  private int maxNumCuts_ = 10000;
15844  @java.lang.Override
15845  public boolean hasMaxNumCuts() {
15846  return ((bitField2_ & 0x00040000) != 0);
15847  }
15859  @java.lang.Override
15860  public int getMaxNumCuts() {
15861  return maxNumCuts_;
15862  }
15875  public Builder setMaxNumCuts(int value) {
15876  bitField2_ |= 0x00040000;
15877  maxNumCuts_ = value;
15878  onChanged();
15879  return this;
15880  }
15893  bitField2_ = (bitField2_ & ~0x00040000);
15894  maxNumCuts_ = 10000;
15895  onChanged();
15896  return this;
15897  }
15898 
15899  private boolean onlyAddCutsAtLevelZero_ ;
15909  @java.lang.Override
15910  public boolean hasOnlyAddCutsAtLevelZero() {
15911  return ((bitField2_ & 0x00080000) != 0);
15912  }
15922  @java.lang.Override
15923  public boolean getOnlyAddCutsAtLevelZero() {
15924  return onlyAddCutsAtLevelZero_;
15925  }
15936  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
15937  bitField2_ |= 0x00080000;
15938  onlyAddCutsAtLevelZero_ = value;
15939  onChanged();
15940  return this;
15941  }
15952  bitField2_ = (bitField2_ & ~0x00080000);
15953  onlyAddCutsAtLevelZero_ = false;
15954  onChanged();
15955  return this;
15956  }
15957 
15958  private boolean addKnapsackCuts_ ;
15969  @java.lang.Override
15970  public boolean hasAddKnapsackCuts() {
15971  return ((bitField2_ & 0x00100000) != 0);
15972  }
15983  @java.lang.Override
15984  public boolean getAddKnapsackCuts() {
15985  return addKnapsackCuts_;
15986  }
15998  public Builder setAddKnapsackCuts(boolean value) {
15999  bitField2_ |= 0x00100000;
16000  addKnapsackCuts_ = value;
16001  onChanged();
16002  return this;
16003  }
16015  bitField2_ = (bitField2_ & ~0x00100000);
16016  addKnapsackCuts_ = false;
16017  onChanged();
16018  return this;
16019  }
16020 
16021  private boolean addCgCuts_ = true;
16031  @java.lang.Override
16032  public boolean hasAddCgCuts() {
16033  return ((bitField2_ & 0x00200000) != 0);
16034  }
16044  @java.lang.Override
16045  public boolean getAddCgCuts() {
16046  return addCgCuts_;
16047  }
16058  public Builder setAddCgCuts(boolean value) {
16059  bitField2_ |= 0x00200000;
16060  addCgCuts_ = value;
16061  onChanged();
16062  return this;
16063  }
16074  bitField2_ = (bitField2_ & ~0x00200000);
16075  addCgCuts_ = true;
16076  onChanged();
16077  return this;
16078  }
16079 
16080  private boolean addMirCuts_ = true;
16090  @java.lang.Override
16091  public boolean hasAddMirCuts() {
16092  return ((bitField2_ & 0x00400000) != 0);
16093  }
16103  @java.lang.Override
16104  public boolean getAddMirCuts() {
16105  return addMirCuts_;
16106  }
16117  public Builder setAddMirCuts(boolean value) {
16118  bitField2_ |= 0x00400000;
16119  addMirCuts_ = value;
16120  onChanged();
16121  return this;
16122  }
16133  bitField2_ = (bitField2_ & ~0x00400000);
16134  addMirCuts_ = true;
16135  onChanged();
16136  return this;
16137  }
16138 
16139  private int maxAllDiffCutSize_ = 7;
16150  @java.lang.Override
16151  public boolean hasMaxAllDiffCutSize() {
16152  return ((bitField2_ & 0x00800000) != 0);
16153  }
16164  @java.lang.Override
16165  public int getMaxAllDiffCutSize() {
16166  return maxAllDiffCutSize_;
16167  }
16179  public Builder setMaxAllDiffCutSize(int value) {
16180  bitField2_ |= 0x00800000;
16181  maxAllDiffCutSize_ = value;
16182  onChanged();
16183  return this;
16184  }
16196  bitField2_ = (bitField2_ & ~0x00800000);
16197  maxAllDiffCutSize_ = 7;
16198  onChanged();
16199  return this;
16200  }
16201 
16202  private boolean addLinMaxCuts_ = true;
16213  @java.lang.Override
16214  public boolean hasAddLinMaxCuts() {
16215  return ((bitField2_ & 0x01000000) != 0);
16216  }
16227  @java.lang.Override
16228  public boolean getAddLinMaxCuts() {
16229  return addLinMaxCuts_;
16230  }
16242  public Builder setAddLinMaxCuts(boolean value) {
16243  bitField2_ |= 0x01000000;
16244  addLinMaxCuts_ = value;
16245  onChanged();
16246  return this;
16247  }
16259  bitField2_ = (bitField2_ & ~0x01000000);
16260  addLinMaxCuts_ = true;
16261  onChanged();
16262  return this;
16263  }
16264 
16265  private int maxIntegerRoundingScaling_ = 600;
16280  @java.lang.Override
16281  public boolean hasMaxIntegerRoundingScaling() {
16282  return ((bitField2_ & 0x02000000) != 0);
16283  }
16298  @java.lang.Override
16300  return maxIntegerRoundingScaling_;
16301  }
16318  bitField2_ |= 0x02000000;
16319  maxIntegerRoundingScaling_ = value;
16320  onChanged();
16321  return this;
16322  }
16338  bitField2_ = (bitField2_ & ~0x02000000);
16339  maxIntegerRoundingScaling_ = 600;
16340  onChanged();
16341  return this;
16342  }
16343 
16344  private boolean addLpConstraintsLazily_ = true;
16356  @java.lang.Override
16357  public boolean hasAddLpConstraintsLazily() {
16358  return ((bitField2_ & 0x04000000) != 0);
16359  }
16371  @java.lang.Override
16372  public boolean getAddLpConstraintsLazily() {
16373  return addLpConstraintsLazily_;
16374  }
16387  public Builder setAddLpConstraintsLazily(boolean value) {
16388  bitField2_ |= 0x04000000;
16389  addLpConstraintsLazily_ = value;
16390  onChanged();
16391  return this;
16392  }
16405  bitField2_ = (bitField2_ & ~0x04000000);
16406  addLpConstraintsLazily_ = true;
16407  onChanged();
16408  return this;
16409  }
16410 
16411  private double minOrthogonalityForLpConstraints_ = 0.05D;
16424  @java.lang.Override
16426  return ((bitField2_ & 0x08000000) != 0);
16427  }
16440  @java.lang.Override
16442  return minOrthogonalityForLpConstraints_;
16443  }
16458  bitField2_ |= 0x08000000;
16459  minOrthogonalityForLpConstraints_ = value;
16460  onChanged();
16461  return this;
16462  }
16476  bitField2_ = (bitField2_ & ~0x08000000);
16477  minOrthogonalityForLpConstraints_ = 0.05D;
16478  onChanged();
16479  return this;
16480  }
16481 
16482  private int maxCutRoundsAtLevelZero_ = 1;
16491  @java.lang.Override
16492  public boolean hasMaxCutRoundsAtLevelZero() {
16493  return ((bitField2_ & 0x10000000) != 0);
16494  }
16503  @java.lang.Override
16505  return maxCutRoundsAtLevelZero_;
16506  }
16517  bitField2_ |= 0x10000000;
16518  maxCutRoundsAtLevelZero_ = value;
16519  onChanged();
16520  return this;
16521  }
16531  bitField2_ = (bitField2_ & ~0x10000000);
16532  maxCutRoundsAtLevelZero_ = 1;
16533  onChanged();
16534  return this;
16535  }
16536 
16537  private int maxConsecutiveInactiveCount_ = 100;
16548  @java.lang.Override
16550  return ((bitField2_ & 0x20000000) != 0);
16551  }
16562  @java.lang.Override
16564  return maxConsecutiveInactiveCount_;
16565  }
16578  bitField2_ |= 0x20000000;
16579  maxConsecutiveInactiveCount_ = value;
16580  onChanged();
16581  return this;
16582  }
16594  bitField2_ = (bitField2_ & ~0x20000000);
16595  maxConsecutiveInactiveCount_ = 100;
16596  onChanged();
16597  return this;
16598  }
16599 
16600  private double cutMaxActiveCountValue_ = 10000000000D;
16611  @java.lang.Override
16612  public boolean hasCutMaxActiveCountValue() {
16613  return ((bitField2_ & 0x40000000) != 0);
16614  }
16625  @java.lang.Override
16626  public double getCutMaxActiveCountValue() {
16627  return cutMaxActiveCountValue_;
16628  }
16640  public Builder setCutMaxActiveCountValue(double value) {
16641  bitField2_ |= 0x40000000;
16642  cutMaxActiveCountValue_ = value;
16643  onChanged();
16644  return this;
16645  }
16657  bitField2_ = (bitField2_ & ~0x40000000);
16658  cutMaxActiveCountValue_ = 10000000000D;
16659  onChanged();
16660  return this;
16661  }
16662 
16663  private double cutActiveCountDecay_ = 0.8D;
16668  @java.lang.Override
16669  public boolean hasCutActiveCountDecay() {
16670  return ((bitField2_ & 0x80000000) != 0);
16671  }
16676  @java.lang.Override
16677  public double getCutActiveCountDecay() {
16678  return cutActiveCountDecay_;
16679  }
16685  public Builder setCutActiveCountDecay(double value) {
16686  bitField2_ |= 0x80000000;
16687  cutActiveCountDecay_ = value;
16688  onChanged();
16689  return this;
16690  }
16696  bitField2_ = (bitField2_ & ~0x80000000);
16697  cutActiveCountDecay_ = 0.8D;
16698  onChanged();
16699  return this;
16700  }
16701 
16702  private int cutCleanupTarget_ = 1000;
16711  @java.lang.Override
16712  public boolean hasCutCleanupTarget() {
16713  return ((bitField3_ & 0x00000001) != 0);
16714  }
16723  @java.lang.Override
16724  public int getCutCleanupTarget() {
16725  return cutCleanupTarget_;
16726  }
16736  public Builder setCutCleanupTarget(int value) {
16737  bitField3_ |= 0x00000001;
16738  cutCleanupTarget_ = value;
16739  onChanged();
16740  return this;
16741  }
16751  bitField3_ = (bitField3_ & ~0x00000001);
16752  cutCleanupTarget_ = 1000;
16753  onChanged();
16754  return this;
16755  }
16756 
16757  private int newConstraintsBatchSize_ = 50;
16767  @java.lang.Override
16768  public boolean hasNewConstraintsBatchSize() {
16769  return ((bitField3_ & 0x00000002) != 0);
16770  }
16780  @java.lang.Override
16782  return newConstraintsBatchSize_;
16783  }
16795  bitField3_ |= 0x00000002;
16796  newConstraintsBatchSize_ = value;
16797  onChanged();
16798  return this;
16799  }
16810  bitField3_ = (bitField3_ & ~0x00000002);
16811  newConstraintsBatchSize_ = 50;
16812  onChanged();
16813  return this;
16814  }
16815 
16816  private int searchBranching_ = 0;
16821  @java.lang.Override public boolean hasSearchBranching() {
16822  return ((bitField3_ & 0x00000004) != 0);
16823  }
16828  @java.lang.Override
16830  @SuppressWarnings("deprecation")
16832  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
16833  }
16840  if (value == null) {
16841  throw new NullPointerException();
16842  }
16843  bitField3_ |= 0x00000004;
16844  searchBranching_ = value.getNumber();
16845  onChanged();
16846  return this;
16847  }
16853  bitField3_ = (bitField3_ & ~0x00000004);
16854  searchBranching_ = 0;
16855  onChanged();
16856  return this;
16857  }
16858 
16859  private int hintConflictLimit_ = 10;
16869  @java.lang.Override
16870  public boolean hasHintConflictLimit() {
16871  return ((bitField3_ & 0x00000008) != 0);
16872  }
16882  @java.lang.Override
16883  public int getHintConflictLimit() {
16884  return hintConflictLimit_;
16885  }
16896  public Builder setHintConflictLimit(int value) {
16897  bitField3_ |= 0x00000008;
16898  hintConflictLimit_ = value;
16899  onChanged();
16900  return this;
16901  }
16912  bitField3_ = (bitField3_ & ~0x00000008);
16913  hintConflictLimit_ = 10;
16914  onChanged();
16915  return this;
16916  }
16917 
16918  private boolean exploitIntegerLpSolution_ = true;
16930  @java.lang.Override
16931  public boolean hasExploitIntegerLpSolution() {
16932  return ((bitField3_ & 0x00000010) != 0);
16933  }
16945  @java.lang.Override
16946  public boolean getExploitIntegerLpSolution() {
16947  return exploitIntegerLpSolution_;
16948  }
16961  public Builder setExploitIntegerLpSolution(boolean value) {
16962  bitField3_ |= 0x00000010;
16963  exploitIntegerLpSolution_ = value;
16964  onChanged();
16965  return this;
16966  }
16979  bitField3_ = (bitField3_ & ~0x00000010);
16980  exploitIntegerLpSolution_ = true;
16981  onChanged();
16982  return this;
16983  }
16984 
16985  private boolean exploitAllLpSolution_ = true;
16996  @java.lang.Override
16997  public boolean hasExploitAllLpSolution() {
16998  return ((bitField3_ & 0x00000020) != 0);
16999  }
17010  @java.lang.Override
17011  public boolean getExploitAllLpSolution() {
17012  return exploitAllLpSolution_;
17013  }
17025  public Builder setExploitAllLpSolution(boolean value) {
17026  bitField3_ |= 0x00000020;
17027  exploitAllLpSolution_ = value;
17028  onChanged();
17029  return this;
17030  }
17042  bitField3_ = (bitField3_ & ~0x00000020);
17043  exploitAllLpSolution_ = true;
17044  onChanged();
17045  return this;
17046  }
17047 
17048  private boolean exploitBestSolution_ ;
17057  @java.lang.Override
17058  public boolean hasExploitBestSolution() {
17059  return ((bitField3_ & 0x00000040) != 0);
17060  }
17069  @java.lang.Override
17070  public boolean getExploitBestSolution() {
17071  return exploitBestSolution_;
17072  }
17082  public Builder setExploitBestSolution(boolean value) {
17083  bitField3_ |= 0x00000040;
17084  exploitBestSolution_ = value;
17085  onChanged();
17086  return this;
17087  }
17097  bitField3_ = (bitField3_ & ~0x00000040);
17098  exploitBestSolution_ = false;
17099  onChanged();
17100  return this;
17101  }
17102 
17103  private boolean exploitRelaxationSolution_ ;
17114  @java.lang.Override
17115  public boolean hasExploitRelaxationSolution() {
17116  return ((bitField3_ & 0x00000080) != 0);
17117  }
17128  @java.lang.Override
17129  public boolean getExploitRelaxationSolution() {
17130  return exploitRelaxationSolution_;
17131  }
17143  public Builder setExploitRelaxationSolution(boolean value) {
17144  bitField3_ |= 0x00000080;
17145  exploitRelaxationSolution_ = value;
17146  onChanged();
17147  return this;
17148  }
17160  bitField3_ = (bitField3_ & ~0x00000080);
17161  exploitRelaxationSolution_ = false;
17162  onChanged();
17163  return this;
17164  }
17165 
17166  private boolean exploitObjective_ = true;
17176  @java.lang.Override
17177  public boolean hasExploitObjective() {
17178  return ((bitField3_ & 0x00000100) != 0);
17179  }
17189  @java.lang.Override
17190  public boolean getExploitObjective() {
17191  return exploitObjective_;
17192  }
17203  public Builder setExploitObjective(boolean value) {
17204  bitField3_ |= 0x00000100;
17205  exploitObjective_ = value;
17206  onChanged();
17207  return this;
17208  }
17219  bitField3_ = (bitField3_ & ~0x00000100);
17220  exploitObjective_ = true;
17221  onChanged();
17222  return this;
17223  }
17224 
17225  private long probingPeriodAtRoot_ ;
17236  @java.lang.Override
17237  public boolean hasProbingPeriodAtRoot() {
17238  return ((bitField3_ & 0x00000200) != 0);
17239  }
17250  @java.lang.Override
17251  public long getProbingPeriodAtRoot() {
17252  return probingPeriodAtRoot_;
17253  }
17265  public Builder setProbingPeriodAtRoot(long value) {
17266  bitField3_ |= 0x00000200;
17267  probingPeriodAtRoot_ = value;
17268  onChanged();
17269  return this;
17270  }
17282  bitField3_ = (bitField3_ & ~0x00000200);
17283  probingPeriodAtRoot_ = 0L;
17284  onChanged();
17285  return this;
17286  }
17287 
17288  private long pseudoCostReliabilityThreshold_ = 100L;
17298  @java.lang.Override
17300  return ((bitField3_ & 0x00000400) != 0);
17301  }
17311  @java.lang.Override
17313  return pseudoCostReliabilityThreshold_;
17314  }
17326  bitField3_ |= 0x00000400;
17327  pseudoCostReliabilityThreshold_ = value;
17328  onChanged();
17329  return this;
17330  }
17341  bitField3_ = (bitField3_ & ~0x00000400);
17342  pseudoCostReliabilityThreshold_ = 100L;
17343  onChanged();
17344  return this;
17345  }
17346 
17347  private boolean optimizeWithCore_ ;
17359  @java.lang.Override
17360  public boolean hasOptimizeWithCore() {
17361  return ((bitField3_ & 0x00000800) != 0);
17362  }
17374  @java.lang.Override
17375  public boolean getOptimizeWithCore() {
17376  return optimizeWithCore_;
17377  }
17390  public Builder setOptimizeWithCore(boolean value) {
17391  bitField3_ |= 0x00000800;
17392  optimizeWithCore_ = value;
17393  onChanged();
17394  return this;
17395  }
17408  bitField3_ = (bitField3_ & ~0x00000800);
17409  optimizeWithCore_ = false;
17410  onChanged();
17411  return this;
17412  }
17413 
17414  private int binarySearchNumConflicts_ = -1;
17426  @java.lang.Override
17427  public boolean hasBinarySearchNumConflicts() {
17428  return ((bitField3_ & 0x00001000) != 0);
17429  }
17441  @java.lang.Override
17443  return binarySearchNumConflicts_;
17444  }
17458  bitField3_ |= 0x00001000;
17459  binarySearchNumConflicts_ = value;
17460  onChanged();
17461  return this;
17462  }
17475  bitField3_ = (bitField3_ & ~0x00001000);
17476  binarySearchNumConflicts_ = -1;
17477  onChanged();
17478  return this;
17479  }
17480 
17481  private boolean optimizeWithMaxHs_ ;
17495  @java.lang.Override
17496  public boolean hasOptimizeWithMaxHs() {
17497  return ((bitField3_ & 0x00002000) != 0);
17498  }
17512  @java.lang.Override
17513  public boolean getOptimizeWithMaxHs() {
17514  return optimizeWithMaxHs_;
17515  }
17530  public Builder setOptimizeWithMaxHs(boolean value) {
17531  bitField3_ |= 0x00002000;
17532  optimizeWithMaxHs_ = value;
17533  onChanged();
17534  return this;
17535  }
17550  bitField3_ = (bitField3_ & ~0x00002000);
17551  optimizeWithMaxHs_ = false;
17552  onChanged();
17553  return this;
17554  }
17555 
17556  private boolean enumerateAllSolutions_ ;
17570  @java.lang.Override
17571  public boolean hasEnumerateAllSolutions() {
17572  return ((bitField3_ & 0x00004000) != 0);
17573  }
17587  @java.lang.Override
17588  public boolean getEnumerateAllSolutions() {
17589  return enumerateAllSolutions_;
17590  }
17605  public Builder setEnumerateAllSolutions(boolean value) {
17606  bitField3_ |= 0x00004000;
17607  enumerateAllSolutions_ = value;
17608  onChanged();
17609  return this;
17610  }
17625  bitField3_ = (bitField3_ & ~0x00004000);
17626  enumerateAllSolutions_ = false;
17627  onChanged();
17628  return this;
17629  }
17630 
17631  private boolean fillTightenedDomainsInResponse_ ;
17644  @java.lang.Override
17646  return ((bitField3_ & 0x00008000) != 0);
17647  }
17660  @java.lang.Override
17662  return fillTightenedDomainsInResponse_;
17663  }
17678  bitField3_ |= 0x00008000;
17679  fillTightenedDomainsInResponse_ = value;
17680  onChanged();
17681  return this;
17682  }
17696  bitField3_ = (bitField3_ & ~0x00008000);
17697  fillTightenedDomainsInResponse_ = false;
17698  onChanged();
17699  return this;
17700  }
17701 
17702  private boolean instantiateAllVariables_ = true;
17712  @java.lang.Override
17713  public boolean hasInstantiateAllVariables() {
17714  return ((bitField3_ & 0x00010000) != 0);
17715  }
17725  @java.lang.Override
17726  public boolean getInstantiateAllVariables() {
17727  return instantiateAllVariables_;
17728  }
17739  public Builder setInstantiateAllVariables(boolean value) {
17740  bitField3_ |= 0x00010000;
17741  instantiateAllVariables_ = value;
17742  onChanged();
17743  return this;
17744  }
17755  bitField3_ = (bitField3_ & ~0x00010000);
17756  instantiateAllVariables_ = true;
17757  onChanged();
17758  return this;
17759  }
17760 
17761  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
17773  @java.lang.Override
17775  return ((bitField3_ & 0x00020000) != 0);
17776  }
17788  @java.lang.Override
17790  return autoDetectGreaterThanAtLeastOneOf_;
17791  }
17805  bitField3_ |= 0x00020000;
17806  autoDetectGreaterThanAtLeastOneOf_ = value;
17807  onChanged();
17808  return this;
17809  }
17822  bitField3_ = (bitField3_ & ~0x00020000);
17823  autoDetectGreaterThanAtLeastOneOf_ = true;
17824  onChanged();
17825  return this;
17826  }
17827 
17828  private boolean stopAfterFirstSolution_ ;
17837  @java.lang.Override
17838  public boolean hasStopAfterFirstSolution() {
17839  return ((bitField3_ & 0x00040000) != 0);
17840  }
17849  @java.lang.Override
17850  public boolean getStopAfterFirstSolution() {
17851  return stopAfterFirstSolution_;
17852  }
17862  public Builder setStopAfterFirstSolution(boolean value) {
17863  bitField3_ |= 0x00040000;
17864  stopAfterFirstSolution_ = value;
17865  onChanged();
17866  return this;
17867  }
17877  bitField3_ = (bitField3_ & ~0x00040000);
17878  stopAfterFirstSolution_ = false;
17879  onChanged();
17880  return this;
17881  }
17882 
17883  private boolean stopAfterPresolve_ ;
17893  @java.lang.Override
17894  public boolean hasStopAfterPresolve() {
17895  return ((bitField3_ & 0x00080000) != 0);
17896  }
17906  @java.lang.Override
17907  public boolean getStopAfterPresolve() {
17908  return stopAfterPresolve_;
17909  }
17920  public Builder setStopAfterPresolve(boolean value) {
17921  bitField3_ |= 0x00080000;
17922  stopAfterPresolve_ = value;
17923  onChanged();
17924  return this;
17925  }
17936  bitField3_ = (bitField3_ & ~0x00080000);
17937  stopAfterPresolve_ = false;
17938  onChanged();
17939  return this;
17940  }
17941 
17942  private int numSearchWorkers_ = 1;
17956  @java.lang.Override
17957  public boolean hasNumSearchWorkers() {
17958  return ((bitField3_ & 0x00100000) != 0);
17959  }
17973  @java.lang.Override
17974  public int getNumSearchWorkers() {
17975  return numSearchWorkers_;
17976  }
17991  public Builder setNumSearchWorkers(int value) {
17992  bitField3_ |= 0x00100000;
17993  numSearchWorkers_ = value;
17994  onChanged();
17995  return this;
17996  }
18011  bitField3_ = (bitField3_ & ~0x00100000);
18012  numSearchWorkers_ = 1;
18013  onChanged();
18014  return this;
18015  }
18016 
18017  private boolean interleaveSearch_ ;
18030  @java.lang.Override
18031  public boolean hasInterleaveSearch() {
18032  return ((bitField3_ & 0x00200000) != 0);
18033  }
18046  @java.lang.Override
18047  public boolean getInterleaveSearch() {
18048  return interleaveSearch_;
18049  }
18063  public Builder setInterleaveSearch(boolean value) {
18064  bitField3_ |= 0x00200000;
18065  interleaveSearch_ = value;
18066  onChanged();
18067  return this;
18068  }
18082  bitField3_ = (bitField3_ & ~0x00200000);
18083  interleaveSearch_ = false;
18084  onChanged();
18085  return this;
18086  }
18087 
18088  private int interleaveBatchSize_ = 1;
18093  @java.lang.Override
18094  public boolean hasInterleaveBatchSize() {
18095  return ((bitField3_ & 0x00400000) != 0);
18096  }
18101  @java.lang.Override
18102  public int getInterleaveBatchSize() {
18103  return interleaveBatchSize_;
18104  }
18110  public Builder setInterleaveBatchSize(int value) {
18111  bitField3_ |= 0x00400000;
18112  interleaveBatchSize_ = value;
18113  onChanged();
18114  return this;
18115  }
18121  bitField3_ = (bitField3_ & ~0x00400000);
18122  interleaveBatchSize_ = 1;
18123  onChanged();
18124  return this;
18125  }
18126 
18127  private boolean reduceMemoryUsageInInterleaveMode_ ;
18136  @java.lang.Override
18138  return ((bitField3_ & 0x00800000) != 0);
18139  }
18148  @java.lang.Override
18150  return reduceMemoryUsageInInterleaveMode_;
18151  }
18162  bitField3_ |= 0x00800000;
18163  reduceMemoryUsageInInterleaveMode_ = value;
18164  onChanged();
18165  return this;
18166  }
18176  bitField3_ = (bitField3_ & ~0x00800000);
18177  reduceMemoryUsageInInterleaveMode_ = false;
18178  onChanged();
18179  return this;
18180  }
18181 
18182  private boolean shareObjectiveBounds_ = true;
18191  @java.lang.Override
18192  public boolean hasShareObjectiveBounds() {
18193  return ((bitField3_ & 0x01000000) != 0);
18194  }
18203  @java.lang.Override
18204  public boolean getShareObjectiveBounds() {
18205  return shareObjectiveBounds_;
18206  }
18216  public Builder setShareObjectiveBounds(boolean value) {
18217  bitField3_ |= 0x01000000;
18218  shareObjectiveBounds_ = value;
18219  onChanged();
18220  return this;
18221  }
18231  bitField3_ = (bitField3_ & ~0x01000000);
18232  shareObjectiveBounds_ = true;
18233  onChanged();
18234  return this;
18235  }
18236 
18237  private boolean shareLevelZeroBounds_ = true;
18246  @java.lang.Override
18247  public boolean hasShareLevelZeroBounds() {
18248  return ((bitField3_ & 0x02000000) != 0);
18249  }
18258  @java.lang.Override
18259  public boolean getShareLevelZeroBounds() {
18260  return shareLevelZeroBounds_;
18261  }
18271  public Builder setShareLevelZeroBounds(boolean value) {
18272  bitField3_ |= 0x02000000;
18273  shareLevelZeroBounds_ = value;
18274  onChanged();
18275  return this;
18276  }
18286  bitField3_ = (bitField3_ & ~0x02000000);
18287  shareLevelZeroBounds_ = true;
18288  onChanged();
18289  return this;
18290  }
18291 
18292  private boolean useLnsOnly_ ;
18301  @java.lang.Override
18302  public boolean hasUseLnsOnly() {
18303  return ((bitField3_ & 0x04000000) != 0);
18304  }
18313  @java.lang.Override
18314  public boolean getUseLnsOnly() {
18315  return useLnsOnly_;
18316  }
18326  public Builder setUseLnsOnly(boolean value) {
18327  bitField3_ |= 0x04000000;
18328  useLnsOnly_ = value;
18329  onChanged();
18330  return this;
18331  }
18341  bitField3_ = (bitField3_ & ~0x04000000);
18342  useLnsOnly_ = false;
18343  onChanged();
18344  return this;
18345  }
18346 
18347  private boolean lnsFocusOnDecisionVariables_ ;
18352  @java.lang.Override
18354  return ((bitField3_ & 0x08000000) != 0);
18355  }
18360  @java.lang.Override
18362  return lnsFocusOnDecisionVariables_;
18363  }
18369  public Builder setLnsFocusOnDecisionVariables(boolean value) {
18370  bitField3_ |= 0x08000000;
18371  lnsFocusOnDecisionVariables_ = value;
18372  onChanged();
18373  return this;
18374  }
18380  bitField3_ = (bitField3_ & ~0x08000000);
18381  lnsFocusOnDecisionVariables_ = false;
18382  onChanged();
18383  return this;
18384  }
18385 
18386  private boolean useRinsLns_ = true;
18395  @java.lang.Override
18396  public boolean hasUseRinsLns() {
18397  return ((bitField3_ & 0x10000000) != 0);
18398  }
18407  @java.lang.Override
18408  public boolean getUseRinsLns() {
18409  return useRinsLns_;
18410  }
18420  public Builder setUseRinsLns(boolean value) {
18421  bitField3_ |= 0x10000000;
18422  useRinsLns_ = value;
18423  onChanged();
18424  return this;
18425  }
18435  bitField3_ = (bitField3_ & ~0x10000000);
18436  useRinsLns_ = true;
18437  onChanged();
18438  return this;
18439  }
18440 
18441  private boolean useFeasibilityPump_ = true;
18450  @java.lang.Override
18451  public boolean hasUseFeasibilityPump() {
18452  return ((bitField3_ & 0x20000000) != 0);
18453  }
18462  @java.lang.Override
18463  public boolean getUseFeasibilityPump() {
18464  return useFeasibilityPump_;
18465  }
18475  public Builder setUseFeasibilityPump(boolean value) {
18476  bitField3_ |= 0x20000000;
18477  useFeasibilityPump_ = value;
18478  onChanged();
18479  return this;
18480  }
18490  bitField3_ = (bitField3_ & ~0x20000000);
18491  useFeasibilityPump_ = true;
18492  onChanged();
18493  return this;
18494  }
18495 
18496  private int fpRounding_ = 2;
18501  @java.lang.Override public boolean hasFpRounding() {
18502  return ((bitField3_ & 0x40000000) != 0);
18503  }
18508  @java.lang.Override
18510  @SuppressWarnings("deprecation")
18512  return result == null ? com.google.ortools.sat.SatParameters.FPRoundingMethod.PROPAGATION_ASSISTED : result;
18513  }
18520  if (value == null) {
18521  throw new NullPointerException();
18522  }
18523  bitField3_ |= 0x40000000;
18524  fpRounding_ = value.getNumber();
18525  onChanged();
18526  return this;
18527  }
18533  bitField3_ = (bitField3_ & ~0x40000000);
18534  fpRounding_ = 2;
18535  onChanged();
18536  return this;
18537  }
18538 
18539  private boolean useRelaxationLns_ ;
18549  @java.lang.Override
18550  public boolean hasUseRelaxationLns() {
18551  return ((bitField3_ & 0x80000000) != 0);
18552  }
18562  @java.lang.Override
18563  public boolean getUseRelaxationLns() {
18564  return useRelaxationLns_;
18565  }
18576  public Builder setUseRelaxationLns(boolean value) {
18577  bitField3_ |= 0x80000000;
18578  useRelaxationLns_ = value;
18579  onChanged();
18580  return this;
18581  }
18592  bitField3_ = (bitField3_ & ~0x80000000);
18593  useRelaxationLns_ = false;
18594  onChanged();
18595  return this;
18596  }
18597 
18598  private boolean diversifyLnsParams_ ;
18607  @java.lang.Override
18608  public boolean hasDiversifyLnsParams() {
18609  return ((bitField4_ & 0x00000001) != 0);
18610  }
18619  @java.lang.Override
18620  public boolean getDiversifyLnsParams() {
18621  return diversifyLnsParams_;
18622  }
18632  public Builder setDiversifyLnsParams(boolean value) {
18633  bitField4_ |= 0x00000001;
18634  diversifyLnsParams_ = value;
18635  onChanged();
18636  return this;
18637  }
18647  bitField4_ = (bitField4_ & ~0x00000001);
18648  diversifyLnsParams_ = false;
18649  onChanged();
18650  return this;
18651  }
18652 
18653  private boolean randomizeSearch_ ;
18662  @java.lang.Override
18663  public boolean hasRandomizeSearch() {
18664  return ((bitField4_ & 0x00000002) != 0);
18665  }
18674  @java.lang.Override
18675  public boolean getRandomizeSearch() {
18676  return randomizeSearch_;
18677  }
18687  public Builder setRandomizeSearch(boolean value) {
18688  bitField4_ |= 0x00000002;
18689  randomizeSearch_ = value;
18690  onChanged();
18691  return this;
18692  }
18702  bitField4_ = (bitField4_ & ~0x00000002);
18703  randomizeSearch_ = false;
18704  onChanged();
18705  return this;
18706  }
18707 
18708  private long searchRandomizationTolerance_ ;
18723  @java.lang.Override
18725  return ((bitField4_ & 0x00000004) != 0);
18726  }
18741  @java.lang.Override
18743  return searchRandomizationTolerance_;
18744  }
18761  bitField4_ |= 0x00000004;
18762  searchRandomizationTolerance_ = value;
18763  onChanged();
18764  return this;
18765  }
18781  bitField4_ = (bitField4_ & ~0x00000004);
18782  searchRandomizationTolerance_ = 0L;
18783  onChanged();
18784  return this;
18785  }
18786 
18787  private boolean useOptionalVariables_ = true;
18798  @java.lang.Override
18799  public boolean hasUseOptionalVariables() {
18800  return ((bitField4_ & 0x00000008) != 0);
18801  }
18812  @java.lang.Override
18813  public boolean getUseOptionalVariables() {
18814  return useOptionalVariables_;
18815  }
18827  public Builder setUseOptionalVariables(boolean value) {
18828  bitField4_ |= 0x00000008;
18829  useOptionalVariables_ = value;
18830  onChanged();
18831  return this;
18832  }
18844  bitField4_ = (bitField4_ & ~0x00000008);
18845  useOptionalVariables_ = true;
18846  onChanged();
18847  return this;
18848  }
18849 
18850  private boolean useExactLpReason_ = true;
18862  @java.lang.Override
18863  public boolean hasUseExactLpReason() {
18864  return ((bitField4_ & 0x00000010) != 0);
18865  }
18877  @java.lang.Override
18878  public boolean getUseExactLpReason() {
18879  return useExactLpReason_;
18880  }
18893  public Builder setUseExactLpReason(boolean value) {
18894  bitField4_ |= 0x00000010;
18895  useExactLpReason_ = value;
18896  onChanged();
18897  return this;
18898  }
18911  bitField4_ = (bitField4_ & ~0x00000010);
18912  useExactLpReason_ = true;
18913  onChanged();
18914  return this;
18915  }
18916 
18917  private boolean useBranchingInLp_ ;
18928  @java.lang.Override
18929  public boolean hasUseBranchingInLp() {
18930  return ((bitField4_ & 0x00000020) != 0);
18931  }
18942  @java.lang.Override
18943  public boolean getUseBranchingInLp() {
18944  return useBranchingInLp_;
18945  }
18957  public Builder setUseBranchingInLp(boolean value) {
18958  bitField4_ |= 0x00000020;
18959  useBranchingInLp_ = value;
18960  onChanged();
18961  return this;
18962  }
18974  bitField4_ = (bitField4_ & ~0x00000020);
18975  useBranchingInLp_ = false;
18976  onChanged();
18977  return this;
18978  }
18979 
18980  private boolean useCombinedNoOverlap_ ;
18991  @java.lang.Override
18992  public boolean hasUseCombinedNoOverlap() {
18993  return ((bitField4_ & 0x00000040) != 0);
18994  }
19005  @java.lang.Override
19006  public boolean getUseCombinedNoOverlap() {
19007  return useCombinedNoOverlap_;
19008  }
19020  public Builder setUseCombinedNoOverlap(boolean value) {
19021  bitField4_ |= 0x00000040;
19022  useCombinedNoOverlap_ = value;
19023  onChanged();
19024  return this;
19025  }
19037  bitField4_ = (bitField4_ & ~0x00000040);
19038  useCombinedNoOverlap_ = false;
19039  onChanged();
19040  return this;
19041  }
19042 
19043  private boolean catchSigintSignal_ = true;
19054  @java.lang.Override
19055  public boolean hasCatchSigintSignal() {
19056  return ((bitField4_ & 0x00000080) != 0);
19057  }
19068  @java.lang.Override
19069  public boolean getCatchSigintSignal() {
19070  return catchSigintSignal_;
19071  }
19083  public Builder setCatchSigintSignal(boolean value) {
19084  bitField4_ |= 0x00000080;
19085  catchSigintSignal_ = value;
19086  onChanged();
19087  return this;
19088  }
19100  bitField4_ = (bitField4_ & ~0x00000080);
19101  catchSigintSignal_ = true;
19102  onChanged();
19103  return this;
19104  }
19105 
19106  private boolean useImpliedBounds_ = true;
19117  @java.lang.Override
19118  public boolean hasUseImpliedBounds() {
19119  return ((bitField4_ & 0x00000100) != 0);
19120  }
19131  @java.lang.Override
19132  public boolean getUseImpliedBounds() {
19133  return useImpliedBounds_;
19134  }
19146  public Builder setUseImpliedBounds(boolean value) {
19147  bitField4_ |= 0x00000100;
19148  useImpliedBounds_ = value;
19149  onChanged();
19150  return this;
19151  }
19163  bitField4_ = (bitField4_ & ~0x00000100);
19164  useImpliedBounds_ = true;
19165  onChanged();
19166  return this;
19167  }
19168 
19169  private double mipMaxBound_ = 10000000D;
19180  @java.lang.Override
19181  public boolean hasMipMaxBound() {
19182  return ((bitField4_ & 0x00000200) != 0);
19183  }
19194  @java.lang.Override
19195  public double getMipMaxBound() {
19196  return mipMaxBound_;
19197  }
19209  public Builder setMipMaxBound(double value) {
19210  bitField4_ |= 0x00000200;
19211  mipMaxBound_ = value;
19212  onChanged();
19213  return this;
19214  }
19226  bitField4_ = (bitField4_ & ~0x00000200);
19227  mipMaxBound_ = 10000000D;
19228  onChanged();
19229  return this;
19230  }
19231 
19232  private double mipVarScaling_ = 1D;
19243  @java.lang.Override
19244  public boolean hasMipVarScaling() {
19245  return ((bitField4_ & 0x00000400) != 0);
19246  }
19257  @java.lang.Override
19258  public double getMipVarScaling() {
19259  return mipVarScaling_;
19260  }
19272  public Builder setMipVarScaling(double value) {
19273  bitField4_ |= 0x00000400;
19274  mipVarScaling_ = value;
19275  onChanged();
19276  return this;
19277  }
19289  bitField4_ = (bitField4_ & ~0x00000400);
19290  mipVarScaling_ = 1D;
19291  onChanged();
19292  return this;
19293  }
19294 
19295  private boolean mipAutomaticallyScaleVariables_ = true;
19308  @java.lang.Override
19310  return ((bitField4_ & 0x00000800) != 0);
19311  }
19324  @java.lang.Override
19326  return mipAutomaticallyScaleVariables_;
19327  }
19342  bitField4_ |= 0x00000800;
19343  mipAutomaticallyScaleVariables_ = value;
19344  onChanged();
19345  return this;
19346  }
19360  bitField4_ = (bitField4_ & ~0x00000800);
19361  mipAutomaticallyScaleVariables_ = true;
19362  onChanged();
19363  return this;
19364  }
19365 
19366  private double mipWantedPrecision_ = 1e-06D;
19383  @java.lang.Override
19384  public boolean hasMipWantedPrecision() {
19385  return ((bitField4_ & 0x00001000) != 0);
19386  }
19403  @java.lang.Override
19404  public double getMipWantedPrecision() {
19405  return mipWantedPrecision_;
19406  }
19424  public Builder setMipWantedPrecision(double value) {
19425  bitField4_ |= 0x00001000;
19426  mipWantedPrecision_ = value;
19427  onChanged();
19428  return this;
19429  }
19447  bitField4_ = (bitField4_ & ~0x00001000);
19448  mipWantedPrecision_ = 1e-06D;
19449  onChanged();
19450  return this;
19451  }
19452 
19453  private int mipMaxActivityExponent_ = 53;
19468  @java.lang.Override
19469  public boolean hasMipMaxActivityExponent() {
19470  return ((bitField4_ & 0x00002000) != 0);
19471  }
19486  @java.lang.Override
19488  return mipMaxActivityExponent_;
19489  }
19506  bitField4_ |= 0x00002000;
19507  mipMaxActivityExponent_ = value;
19508  onChanged();
19509  return this;
19510  }
19526  bitField4_ = (bitField4_ & ~0x00002000);
19527  mipMaxActivityExponent_ = 53;
19528  onChanged();
19529  return this;
19530  }
19531 
19532  private double mipCheckPrecision_ = 0.0001D;
19544  @java.lang.Override
19545  public boolean hasMipCheckPrecision() {
19546  return ((bitField4_ & 0x00004000) != 0);
19547  }
19559  @java.lang.Override
19560  public double getMipCheckPrecision() {
19561  return mipCheckPrecision_;
19562  }
19575  public Builder setMipCheckPrecision(double value) {
19576  bitField4_ |= 0x00004000;
19577  mipCheckPrecision_ = value;
19578  onChanged();
19579  return this;
19580  }
19593  bitField4_ = (bitField4_ & ~0x00004000);
19594  mipCheckPrecision_ = 0.0001D;
19595  onChanged();
19596  return this;
19597  }
19598  @java.lang.Override
19600  final com.google.protobuf.UnknownFieldSet unknownFields) {
19601  return super.setUnknownFields(unknownFields);
19602  }
19603 
19604  @java.lang.Override
19606  final com.google.protobuf.UnknownFieldSet unknownFields) {
19607  return super.mergeUnknownFields(unknownFields);
19608  }
19609 
19610 
19611  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
19612  }
19613 
19614  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
19615  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
19616  static {
19617  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
19618  }
19619 
19621  return DEFAULT_INSTANCE;
19622  }
19623 
19624  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
19625  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
19626  @java.lang.Override
19627  public SatParameters parsePartialFrom(
19628  com.google.protobuf.CodedInputStream input,
19629  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
19630  throws com.google.protobuf.InvalidProtocolBufferException {
19631  return new SatParameters(input, extensionRegistry);
19632  }
19633  };
19634 
19635  public static com.google.protobuf.Parser<SatParameters> parser() {
19636  return PARSER;
19637  }
19638 
19639  @java.lang.Override
19640  public com.google.protobuf.Parser<SatParameters> getParserForType() {
19641  return PARSER;
19642  }
19643 
19644  @java.lang.Override
19646  return DEFAULT_INSTANCE;
19647  }
19648 
19649 }
19650 
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER
static final int REDUCE_MEMORY_USAGE_IN_INTERLEAVE_MODE_FIELD_NUMBER
.lang.Override final boolean isInitialized()
.lang.Override double getRandomPolarityRatio()
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override boolean hasCatchSigintSignal()
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
.lang.Override boolean getShareObjectiveBounds()
.lang.Override boolean getExploitRelaxationSolution()
.lang.Override boolean getMinimizeReductionDuringPbResolution()
static final int USE_RINS_LNS_FIELD_NUMBER
static ClauseProtection forNumber(int value)
.lang.Override boolean getMinimizeReductionDuringPbResolution()
Builder setMaxMemoryInMb(long value)
.lang.Override boolean hasUseImpliedBounds()
.lang.Override boolean hasExploitAllLpSolution()
.lang.Override boolean hasUseSatInprocessing()
optional bool use_sat_inprocessing = 163 [default = false];
.lang.Override boolean hasAddCgCuts()
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
Builder setCutMaxActiveCountValue(double value)
.lang.Override int getMipMaxActivityExponent()
Builder setUsePhaseSaving(boolean value)
.lang.Override boolean getInterleaveSearch()
.lang.Override boolean getUsePrecedencesInDisjunctiveConstraint()
NO_BINARY_MINIMIZATION
NO_BINARY_MINIMIZATION = 0;
.lang.Override int getPresolveBveClauseWeight()
Builder clearExpandAutomatonConstraints()
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
Builder clearMinOrthogonalityForLpConstraints()
.lang.Override boolean getUseLnsOnly()
final int getNumber()
.lang.Override boolean getCountAssumptionLevelsInLbd()
.lang.Override boolean hasRandomizeSearch()
static BinaryMinizationAlgorithm forNumber(int value)
Builder setDiversifyLnsParams(boolean value)
.lang.Override void writeTo(com.google.protobuf.CodedOutputStream output)
.lang.Override boolean hasOptimizeWithMaxHs()
.lang.Override boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
Builder clearClauseCleanupTarget()
.lang.Override boolean hasPresolveProbingDeterministicTimeLimit()
.lang.Override boolean hasDiversifyLnsParams()
Builder clearAddCgCuts()
.lang.Override boolean hasClauseActivityDecay()
.lang.Override int getBooleanEncodingLevel()
.lang.Override boolean getShareLevelZeroBounds()
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
Builder clearCutCleanupTarget()
.lang.Override boolean hasUseExactLpReason()
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
.lang.Override boolean hasRandomSeed()
.lang.Override boolean hasMaxSatReverseAssumptionOrder()
.lang.Override boolean hasPresolveBlockedClause()
.lang.Override boolean hasUseCombinedNoOverlap()
.lang.Override boolean hasStopAfterFirstSolution()
.lang.Override com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
Builder setPseudoCostReliabilityThreshold(long value)
static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMergeNoOverlapWorkLimit(double value)
static final int ADD_MIR_CUTS_FIELD_NUMBER
Builder setUseRinsLns(boolean value)
Builder clearMipVarScaling()
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
.lang.Override int getLinearizationLevel()
.lang.Override boolean hasExploitRelaxationSolution()
.lang.Override boolean hasMaxMemoryInMb()
.lang.Override boolean hasSubsumptionDuringConflictAnalysis()
.lang.Override boolean hasMaxDeterministicTime()
Builder setNumSearchWorkers(int value)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearUseRinsLns()
static final int FIND_MULTIPLE_CORES_FIELD_NUMBER
.lang.Override double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
.lang.Override boolean getInterleaveSearch()
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
IN_REVERSE_ORDER
IN_REVERSE_ORDER = 1;
Builder clearVariableActivityDecay()
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
.lang.Override double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
.lang.Override double getRelativeGapLimit()
optional double relative_gap_limit = 160 [default = 0];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int RANDOM_SEED_FIELD_NUMBER
POLARITY_TRUE
POLARITY_TRUE = 0;
.lang.Override boolean hasRandomSeed()
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
Builder clearUseLnsOnly()
.lang.Override boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
Builder clearGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setInterleaveSearch(boolean value)
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override double getRandomPolarityRatio()
.lang.Override boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override int getInterleaveBatchSize()
optional int32 interleave_batch_size = 134 [default = 1];
static final int CP_MODEL_PRESOLVE_FIELD_NUMBER
PSEUDO_COST_SEARCH
static VariableOrder forNumber(int value)
Builder setExpandTableConstraints(boolean value)
.lang.Override int getMaxAllDiffCutSize()
.lang.Override boolean hasUseOptionalVariables()
Builder clearReduceMemoryUsageInInterleaveMode()
Builder setAddLpConstraintsLazily(boolean value)
Builder setMinimizeWithPropagationRestartPeriod(int value)
Builder clearShareObjectiveBounds()
.lang.Override boolean hasMergeNoOverlapWorkLimit()
.lang.Override boolean getStopAfterFirstSolution()
.lang.Override boolean hasUseImpliedBounds()
.lang.Override int getHintConflictLimit()
Builder clearMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
.lang.Override int getClauseCleanupPeriod()
SIMPLE
SIMPLE = 1;
Builder setBooleanEncodingLevel(int value)
.lang.Override boolean hasSearchRandomizationTolerance()
Builder setPresolveBvaThreshold(int value)
.lang.Override boolean hasExpandAutomatonConstraints()
.lang.Override boolean getInstantiateAllVariables()
.lang.Override boolean getCatchSigintSignal()
.lang.Override boolean getLogSearchProgress()
.lang.Override boolean getSubsumptionDuringConflictAnalysis()
final int getNumber()
.lang.Override boolean hasCpModelMaxNumPresolveOperations()
static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER
Builder clearClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
static final int COVER_OPTIMIZATION_FIELD_NUMBER
final int getNumber()
.lang.Override double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
Builder setCutCleanupTarget(int value)
.lang.Override double getCutMaxActiveCountValue()
.lang.Override boolean hasCutCleanupTarget()
Builder setMaxIntegerRoundingScaling(int value)
.lang.Override boolean hasFindMultipleCores()
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
.lang.Override com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
Builder clearRestartRunningWindowSize()
.lang.Override boolean getUseOptionalVariables()
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
static final int MIP_CHECK_PRECISION_FIELD_NUMBER
.lang.Override boolean getUseFeasibilityPump()
Builder setAddKnapsackCuts(boolean value)
.lang.Override boolean getMaxSatReverseAssumptionOrder()
.lang.Override boolean getUseOptionalVariables()
.lang.Override boolean hasInterleaveBatchSize()
optional int32 interleave_batch_size = 134 [default = 1];
.lang.Override boolean hasPresolveProbingDeterministicTimeLimit()
.lang.Override boolean hasMinimizeWithPropagationRestartPeriod()
static final int RANDOMIZE_SEARCH_FIELD_NUMBER
EXPERIMENTAL_BINARY_MINIMIZATION
EXPERIMENTAL_BINARY_MINIMIZATION = 3;
.lang.Override boolean getExploitObjective()
.lang.Override long getPseudoCostReliabilityThreshold()
.lang.Override double getMipWantedPrecision()
.lang.Override boolean getMinimizeCore()
.lang.Override int getRestartAlgorithmsCount()
POLARITY_RANDOM
POLARITY_RANDOM = 2;
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override int getPresolveBvaThreshold()
.lang.Override boolean getStopAfterPresolve()
Builder setCpModelMaxNumPresolveOperations(int value)
.lang.Override com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
.lang.Override boolean getCpModelPostsolveWithFullSolver()
STRATIFICATION_ASCENT
final int getNumber()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
.lang.Override boolean hasMipMaxBound()
.lang.Override double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
.lang.Override boolean getPresolveBlockedClause()
.lang.Override boolean hasUseBlockingRestart()
.lang.Override boolean hasMaxDeterministicTime()
Builder clearRestartPeriod()
.lang.Override boolean hasReduceMemoryUsageInInterleaveMode()
.lang.Deprecated static FPRoundingMethod valueOf(int value)
.lang.Override int getHintConflictLimit()
Builder setExploitAllLpSolution(boolean value)
Builder setMaxSatReverseAssumptionOrder(boolean value)
Builder setCpModelUseSatPresolve(boolean value)
.lang.Override int getCutCleanupTarget()
.lang.Override boolean getExploitAllLpSolution()
final int getNumber()
Builder clearRestartAlgorithms()
Builder setMipMaxActivityExponent(int value)
.lang.Override boolean hasFillTightenedDomainsInResponse()
.lang.Override boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Override double getCutActiveCountDecay()
optional double cut_active_count_decay = 156 [default = 0.8];
.lang.Override int getMaxPresolveIterations()
Builder clearBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Override int getRestartPeriod()
.lang.Override long getMaxNumberOfConflicts()
Builder setMaxCutRoundsAtLevelZero(int value)
Builder clearNewConstraintsBatchSize()
.lang.Override Builder clear()
static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER
Builder clearLogSearchProgress()
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
.lang.Override boolean hasPresolveUseBva()
.lang.Override boolean getEnumerateAllSolutions()
.lang.Override boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override boolean hasRandomPolarityRatio()
Builder clearDiversifyLnsParams()
.lang.Override double getMinOrthogonalityForLpConstraints()
.lang.Override boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override boolean hasRandomizeSearch()
.lang.Override int getRestartRunningWindowSize()
.lang.Override com.google.ortools.sat.SatParameters.FPRoundingMethod getFpRounding()
optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGA...
.lang.Override int getMaxPresolveIterations()
.lang.Override boolean hasMinimizeReductionDuringPbResolution()
Builder clearMinimizeWithPropagationRestartPeriod()
Builder clearMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder clearMipAutomaticallyScaleVariables()
Builder setSearchRandomizationTolerance(long value)
static final int INTERLEAVE_SEARCH_FIELD_NUMBER
.lang.Override boolean hasLinearizationLevel()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder setLnsFocusOnDecisionVariables(boolean value)
optional bool lns_focus_on_decision_variables = 105 [default = false];
static final int RESTART_ALGORITHMS_FIELD_NUMBER
.lang.Override boolean hasMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER
.lang.Override boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
.lang.Override boolean hasMaxPresolveIterations()
Builder setReduceMemoryUsageInInterleaveMode(boolean value)
.lang.Override boolean hasPresolveBveClauseWeight()
.lang.Deprecated static ClauseOrdering valueOf(int value)
static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER
Builder setOptimizeWithCore(boolean value)
.lang.Override boolean hasUseDisjunctiveConstraintInCumulativeConstraint()
Builder setUseImpliedBounds(boolean value)
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
Builder setMaxConsecutiveInactiveCount(int value)
static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER
static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER
Builder clearUseOptimizationHints()
.lang.Override com.google.ortools.sat.SatParameters.FPRoundingMethod getFpRounding()
optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGA...
Builder clearMaxMemoryInMb()
static final int EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER
.lang.Override double getCutMaxActiveCountValue()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override boolean hasMaxCutRoundsAtLevelZero()
.lang.Override boolean hasOnlyAddCutsAtLevelZero()
Builder clearPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setAbsoluteGapLimit(double value)
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
static final int FP_ROUNDING_FIELD_NUMBER
.lang.Override boolean hasLogSearchProgress()
Builder setPresolveSubstitutionLevel(int value)
Builder clearMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Builder setAddMirCuts(boolean value)
static final int MIP_VAR_SCALING_FIELD_NUMBER
.lang.Override boolean hasVariableActivityDecay()
Builder clearUseOverloadCheckerInCumulativeConstraint()
.lang.Override boolean hasNumSearchWorkers()
.lang.Override boolean hasBinarySearchNumConflicts()
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override boolean hasClauseCleanupTarget()
.lang.Override double getGlucoseMaxDecay()
.lang.Override boolean getUseTimetableEdgeFindingInCumulativeConstraint()
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
.lang.Override boolean hasUseCombinedNoOverlap()
.lang.Override boolean getUseExactLpReason()
.lang.Override boolean getUseLnsOnly()
.lang.Override boolean hasUseBlockingRestart()
.lang.Deprecated static BinaryMinizationAlgorithm valueOf(int value)
.lang.Override com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
.lang.Override boolean hasUseErwaHeuristic()
Builder setStopAfterFirstSolution(boolean value)
CLAUSE_ACTIVITY
ORDER_ASSUMPTION_BY_WEIGHT
ORDER_ASSUMPTION_BY_WEIGHT = 2;
.lang.Override double getVariableActivityDecay()
Builder clearMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
.lang.Override boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
.lang.Override boolean getAddLinMaxCuts()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override boolean getCpModelUseSatPresolve()
static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER
PROTECTION_LBD
static final int MINIMIZE_CORE_FIELD_NUMBER
Builder clearMaxNumberOfConflicts()
static final int USE_BRANCHING_IN_LP_FIELD_NUMBER
.lang.Override int getMipMaxActivityExponent()
.lang.Override boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER
Builder setUseFeasibilityPump(boolean value)
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override boolean hasMipWantedPrecision()
.lang.Override double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
.lang.Override boolean hasMaxCutRoundsAtLevelZero()
.lang.Override boolean getUseSatInprocessing()
optional bool use_sat_inprocessing = 163 [default = false];
static MaxSatAssumptionOrder forNumber(int value)
Builder setPbCleanupIncrement(int value)
static final int MINIMIZE_WITH_PROPAGATION_NUM_DECISIONS_FIELD_NUMBER
.lang.Override int getNumSearchWorkers()
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
PORTFOLIO_SEARCH
static final int RELATIVE_GAP_LIMIT_FIELD_NUMBER
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
.lang.Override double getMergeNoOverlapWorkLimit()
final int getNumber()
.lang.Override boolean getUseOptimizationHints()
.lang.Override boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
Builder clearCoverOptimization()
.lang.Override int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER
.lang.Override double getInitialVariablesActivity()
.lang.Override boolean getUsePhaseSaving()
Builder clearBinarySearchNumConflicts()
.lang.Override boolean getUseFeasibilityPump()
Builder setMaxNumCuts(int value)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override boolean hasMinOrthogonalityForLpConstraints()
.lang.Override com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
static final int CUT_ACTIVE_COUNT_DECAY_FIELD_NUMBER
static RestartAlgorithm forNumber(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder clearCutMaxActiveCountValue()
Builder setFindMultipleCores(boolean value)
.lang.Override boolean hasInterleaveBatchSize()
optional int32 interleave_batch_size = 134 [default = 1];
.lang.Override boolean hasCutCleanupTarget()
.lang.Override boolean getUsePhaseSaving()
.lang.Override boolean getUseRelaxationLns()
static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER
Builder setGlucoseDecayIncrement(double value)
optional double glucose_decay_increment = 23 [default = 0.01];
.lang.Deprecated static ClauseProtection valueOf(int value)
.lang.Override boolean getUseBranchingInLp()
.lang.Override int getMaxIntegerRoundingScaling()
Builder setRestartDlAverageRatio(double value)
.lang.Override boolean hasStrategyChangeIncreaseRatio()
.lang.Override int hashCode()
Builder clearExploitAllLpSolution()
Builder clearInitialVariablesActivity()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
.lang.Override long getMaxMemoryInMb()
.lang.Override double getRestartDlAverageRatio()
.lang.Override boolean getExploitBestSolution()
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
Builder setMaxDeterministicTime(double value)
final int getNumber()
Builder clearOnlyAddCutsAtLevelZero()
.lang.Override boolean hasSubsumptionDuringConflictAnalysis()
.lang.Override boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
.lang.Override boolean hasMergeNoOverlapWorkLimit()
.lang.Override boolean hasInstantiateAllVariables()
.lang.Override boolean hasRelativeGapLimit()
optional double relative_gap_limit = 160 [default = 0];
.lang.Override boolean hasPseudoCostReliabilityThreshold()
.lang.Override boolean getReduceMemoryUsageInInterleaveMode()
.lang.Override boolean getExpandElementConstraints()
Builder setExpandAutomatonConstraints(boolean value)
.lang.Override boolean hasMipMaxActivityExponent()
static final int MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER
Builder clearAbsoluteGapLimit()
AUTOMATIC_SEARCH
.lang.Override boolean hasAddLpConstraintsLazily()
.lang.Override boolean hasUseExactLpReason()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
.lang.Override boolean hasShareObjectiveBounds()
Builder setMaxVariableActivityValue(double value)
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override double getRandomBranchesRatio()
Builder clearUseTimetableEdgeFindingInCumulativeConstraint()
.lang.Override boolean hasExploitBestSolution()
.lang.Override boolean getStopAfterPresolve()
Builder clearMaxAllDiffCutSize()
IN_RANDOM_ORDER
IN_RANDOM_ORDER = 2;
Builder clearExploitIntegerLpSolution()
Builder clearLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
.lang.Override com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override double getRandomBranchesRatio()
.lang.Override double getMipMaxBound()
BINARY_MINIMIZATION_WITH_REACHABILITY
BINARY_MINIMIZATION_WITH_REACHABILITY = 2;
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
.lang.Override boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Override boolean hasRestartDlAverageRatio()
.lang.Override Builder clone()
static Builder newBuilder()
LBD_MOVING_AVERAGE_RESTART
.lang.Override Builder toBuilder()
Builder clearMipCheckPrecision()
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
.lang.Override boolean getOptimizeWithCore()
.lang.Override double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override boolean getUseErwaHeuristic()
.lang.Override boolean hasPresolveUseBva()
.lang.Override boolean hasUsePrecedencesInDisjunctiveConstraint()
.lang.Override boolean getAddKnapsackCuts()
.lang.Override boolean hasClauseCleanupLbdBound()
.lang.Override boolean hasMipAutomaticallyScaleVariables()
.lang.Override com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
.lang.Override boolean hasMaxSatReverseAssumptionOrder()
.lang.Override boolean getUseImpliedBounds()
.lang.Override boolean hasLinearizationLevel()
.lang.Override boolean getSubsumptionDuringConflictAnalysis()
Builder setCountAssumptionLevelsInLbd(boolean value)
.lang.Override boolean hasCountAssumptionLevelsInLbd()
.lang.Override long getMaxNumberOfConflicts()
.lang.Override boolean getPresolveUseBva()
.lang.Override boolean getExploitIntegerLpSolution()
.lang.Override boolean hasCutMaxActiveCountValue()
.lang.Override boolean hasPresolveSubstitutionLevel()
Builder setNumConflictsBeforeStrategyChanges(int value)
.lang.Override com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMipAutomaticallyScaleVariables(boolean value)
.lang.Override boolean hasMaxNumCuts()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
static final int CP_MODEL_MAX_NUM_PRESOLVE_OPERATIONS_FIELD_NUMBER
Builder clearRandomBranchesRatio()
.lang.Override boolean getExpandTableConstraints()
Builder setOptimizeWithMaxHs(boolean value)
.lang.Override boolean getUseImpliedBounds()
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
Builder clearRandomSeed()
.lang.Override boolean hasStrategyChangeIncreaseRatio()
static final int MAX_CUT_ROUNDS_AT_LEVEL_ZERO_FIELD_NUMBER
Builder setMipCheckPrecision(double value)
.lang.Override boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
Builder setMinimizeCore(boolean value)
Builder clearUseDisjunctiveConstraintInCumulativeConstraint()
Builder setStopAfterPresolve(boolean value)
Builder setUseLnsOnly(boolean value)
Builder clearUseCombinedNoOverlap()
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
.lang.Override double getMipWantedPrecision()
.lang.Override boolean getExploitRelaxationSolution()
.lang.Override boolean hasMipMaxBound()
.lang.Override boolean getOptimizeWithCore()
.lang.Override int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
.lang.Override boolean hasMipVarScaling()
.lang.Override int getNumConflictsBeforeStrategyChanges()
static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER
.lang.Override boolean getUseDisjunctiveConstraintInCumulativeConstraint()
.lang.Override boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
.lang.Override com.google.ortools.sat.SatParameters buildPartial()
.lang.Override java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
.lang.Override boolean hasFpRounding()
optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGA...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Parser< SatParameters > parser()
static ConflictMinimizationAlgorithm forNumber(int value)
.lang.Override final boolean isInitialized()
.lang.Override boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Override boolean hasMinimizeCore()
Builder setUseBranchingInLp(boolean value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
.lang.Override boolean getUseBlockingRestart()
Builder setStrategyChangeIncreaseRatio(double value)
static final int ADD_LIN_MAX_CUTS_FIELD_NUMBER
.lang.Override boolean getAlsoBumpVariablesInConflictReasons()
.lang.Override com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder clearMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
.lang.Override double getMipCheckPrecision()
.lang.Override boolean hasUseRinsLns()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
FIXED_RESTART
Builder clearStrategyChangeIncreaseRatio()
.lang.Override boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
.lang.Override boolean hasMipMaxActivityExponent()
Builder clearMaxNumCuts()
CLAUSE_LBD
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override com.google.ortools.sat.SatParameters build()
int getRestartAlgorithmsCount()
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
.lang.Override double getMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
Builder clearMaxIntegerRoundingScaling()
.lang.Override boolean hasUsePhaseSaving()
.lang.Override int getClauseCleanupTarget()
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
.lang.Override boolean getCpModelPostsolveWithFullSolver()
.lang.Override com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
Builder setInstantiateAllVariables(boolean value)
.lang.Override boolean getCoverOptimization()
.lang.Override boolean hasUseFeasibilityPump()
static final int EXPAND_TABLE_CONSTRAINTS_FIELD_NUMBER
static final int PRESOLVE_USE_BVA_FIELD_NUMBER
.lang.Override boolean getPresolveUseBva()
.lang.Override boolean hasUseLnsOnly()
Builder clearSearchRandomizationTolerance()
Builder setPresolveBlockedClause(boolean value)
.lang.Override boolean getAddLpConstraintsLazily()
Builder clearMaxTimeInSeconds()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
Builder setMaxPresolveIterations(int value)
Builder setEnumerateAllSolutions(boolean value)
Builder clearPseudoCostReliabilityThreshold()
.lang.Override boolean hasUsePhaseSaving()
.lang.Override boolean hasCutActiveCountDecay()
optional double cut_active_count_decay = 156 [default = 0.8];
.lang.Override boolean hasExploitObjective()
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override boolean hasMaxConsecutiveInactiveCount()
Builder clearExpandElementConstraints()
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
.lang.Override boolean hasPresolveBveThreshold()
.lang.Deprecated static MaxSatStratificationAlgorithm valueOf(int value)
.lang.Override boolean hasCoverOptimization()
.lang.Override boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
Builder clearCpModelProbingLevel()
.lang.Override boolean hasCpModelUseSatPresolve()
.lang.Override boolean getMipAutomaticallyScaleVariables()
.lang.Override boolean hasExploitIntegerLpSolution()
.lang.Override long getProbingPeriodAtRoot()
static final int INTERLEAVE_BATCH_SIZE_FIELD_NUMBER
.lang.Override boolean hasMipCheckPrecision()
.lang.Override com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override boolean hasUseOverloadCheckerInCumulativeConstraint()
.lang.Override boolean hasEnumerateAllSolutions()
static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER
.lang.Override int getRandomSeed()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMaxNumberOfConflicts(long value)
.lang.Override boolean hasMaxNumberOfConflicts()
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
Builder setDefaultRestartAlgorithms(java.lang.String value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder clearAddLpConstraintsLazily()
.lang.Override boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Override int getRandomSeed()
Builder clearDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override int getClauseCleanupLbdBound()
.lang.Override boolean hasMaxIntegerRoundingScaling()
.lang.Override double getAbsoluteGapLimit()
.lang.Override boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
.lang.Override java.lang.Object newInstance(UnusedPrivateParameter unused)
static final int MIP_AUTOMATICALLY_SCALE_VARIABLES_FIELD_NUMBER
.lang.Override boolean hasMaxNumberOfConflicts()
Builder setUseTimetableEdgeFindingInCumulativeConstraint(boolean value)
.lang.Override boolean hasNewConstraintsBatchSize()
.lang.Override boolean getCpModelPresolve()
.lang.Override boolean hasRandomBranchesRatio()
.lang.Override int getBooleanEncodingLevel()
.lang.Override boolean getCpModelUseSatPresolve()
.lang.Override boolean hasAddLinMaxCuts()
Builder setUsePbResolution(boolean value)
Builder clearNumSearchWorkers()
.lang.Override com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setGlucoseDecayIncrementPeriod(int value)
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder clearUsePrecedencesInDisjunctiveConstraint()
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
Builder setClauseCleanupPeriod(int value)
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
.lang.Override boolean hasPresolveBvaThreshold()
Builder setTreatBinaryClausesSeparately(boolean value)
.lang.Override boolean hasUseFeasibilityPump()
Builder clearFindMultipleCores()
.lang.Override int getPresolveBveClauseWeight()
.lang.Override boolean getUsePrecedencesInDisjunctiveConstraint()
.lang.Override int getLinearizationLevel()
static final int MIP_WANTED_PRECISION_FIELD_NUMBER
.lang.Override int getBinarySearchNumConflicts()
.lang.Override double getMergeNoOverlapWorkLimit()
POLARITY_REVERSE_WEIGHTED_SIGN
IN_ORDER
static final int STOP_AFTER_PRESOLVE_FIELD_NUMBER
static final int MIP_MAX_BOUND_FIELD_NUMBER
.lang.Override boolean getUseTimetableEdgeFindingInCumulativeConstraint()
.lang.Override boolean getDiversifyLnsParams()
.lang.Override boolean hasUseOptionalVariables()
.lang.Override boolean hasPresolveBlockedClause()
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
Builder setPbCleanupRatio(double value)
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
.lang.Override boolean hasMaxIntegerRoundingScaling()
static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
Builder clearMipWantedPrecision()
.lang.Override boolean hasGlucoseMaxDecay()
Builder setInitialVariablesActivity(double value)
Builder clearBooleanEncodingLevel()
Builder clearSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
DEFAULT_ASSUMPTION_ORDER
DEFAULT_ASSUMPTION_ORDER = 0;
.lang.Override boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Override boolean hasClauseCleanupPeriod()
Builder setUseDisjunctiveConstraintInCumulativeConstraint(boolean value)
.lang.Override boolean hasMinimizeReductionDuringPbResolution()
.lang.Override Builder mergeFrom(com.google.protobuf.Message other)
.lang.Override boolean hasCpModelUseSatPresolve()
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
Builder setBlockingRestartMultiplier(double value)
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Override long getProbingPeriodAtRoot()
static ClauseOrdering forNumber(int value)
Builder setSubsumptionDuringConflictAnalysis(boolean value)
.lang.Override boolean getMipAutomaticallyScaleVariables()
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
.lang.Override boolean hasCoverOptimization()
.lang.Override boolean hasUseBranchingInLp()
.lang.Override boolean hasShareLevelZeroBounds()
.lang.Override boolean getMaxSatReverseAssumptionOrder()
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Override boolean hasExpandTableConstraints()
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
.lang.Override boolean hasPresolveSubstitutionLevel()
.lang.Override boolean hasUseTimetableEdgeFindingInCumulativeConstraint()
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
static MaxSatStratificationAlgorithm forNumber(int value)
LOCK_BASED
.lang.Override boolean hasPresolveBveThreshold()
Builder clearStopAfterPresolve()
.lang.Override int getBinarySearchNumConflicts()
.lang.Override boolean getEnumerateAllSolutions()
.lang.Override int getPbCleanupIncrement()
static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER
.lang.Override boolean hasStopAfterFirstSolution()
Builder setRelativeGapLimit(double value)
optional double relative_gap_limit = 160 [default = 0];
static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER
.lang.Override int getMaxConsecutiveInactiveCount()
Builder setRestartLbdAverageRatio(double value)
optional double restart_lbd_average_ratio = 71 [default = 1];
static com.google.protobuf.Internal.EnumLiteMap< FPRoundingMethod > internalGetValueMap()
Builder setCoverOptimization(boolean value)
Builder setExpandElementConstraints(boolean value)
Builder clearUseBlockingRestart()
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
.lang.Override boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
POLARITY_WEIGHTED_SIGN
.lang.Override int getMaxIntegerRoundingScaling()
Builder setPresolveProbingDeterministicTimeLimit(double value)
static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER
Builder clearOptimizeWithMaxHs()
Builder clearEnumerateAllSolutions()
.lang.Override boolean hasInitialVariablesActivity()
.lang.Override boolean getDiversifyLnsParams()
.lang.Override boolean hasAutoDetectGreaterThanAtLeastOneOf()
.lang.Override boolean hasFpRounding()
optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGA...
.lang.Override boolean getCountAssumptionLevelsInLbd()
Builder setProbingPeriodAtRoot(long value)
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
Builder clearRelativeGapLimit()
optional double relative_gap_limit = 160 [default = 0];
.lang.Override boolean hasInitialVariablesActivity()
Builder clearBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
Builder clearMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
Builder clearGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER
.lang.Override boolean hasCpModelProbingLevel()
static final int CUT_CLEANUP_TARGET_FIELD_NUMBER
.lang.Override boolean hasNumConflictsBeforeStrategyChanges()
Builder setUseExactLpReason(boolean value)
.lang.Override boolean hasTreatBinaryClausesSeparately()
static final int MAX_NUM_CUTS_FIELD_NUMBER
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
Builder setShareLevelZeroBounds(boolean value)
.lang.Override int getCutCleanupTarget()
.lang.Override boolean hasMaxPresolveIterations()
Builder clearPresolveProbingDeterministicTimeLimit()
.lang.Override boolean hasMipCheckPrecision()
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override int getCpModelProbingLevel()
.lang.Override boolean hasFillTightenedDomainsInResponse()
.lang.Override boolean hasUsePrecedencesInDisjunctiveConstraint()
Builder setPresolveBveThreshold(int value)
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
.lang.Override boolean hasMaxTimeInSeconds()
.lang.Override boolean hasRestartPeriod()
.lang.Override boolean hasRestartPeriod()
static final int USE_LNS_ONLY_FIELD_NUMBER
Builder setHintConflictLimit(int value)
Builder setRestartRunningWindowSize(int value)
Builder setMinimizeWithPropagationNumDecisions(int value)
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
.lang.Override boolean getRandomizeSearch()
Builder setInterleaveBatchSize(int value)
optional int32 interleave_batch_size = 134 [default = 1];
static final int USE_SAT_INPROCESSING_FIELD_NUMBER
.lang.Override int getMaxNumCuts()
.lang.Override int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
.lang.Override double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Deprecated static SearchBranching valueOf(int value)
final int getNumber()
Builder setMaxTimeInSeconds(double value)
.lang.Override int getCpModelMaxNumPresolveOperations()
Builder setRandomizeSearch(boolean value)
Builder clearNumConflictsBeforeStrategyChanges()
Builder clearRandomPolarityRatio()
.lang.Deprecated static VariableOrder valueOf(int value)
static final int CUT_MAX_ACTIVE_COUNT_VALUE_FIELD_NUMBER
static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER
Builder setLinearizationLevel(int value)
Builder setUseOptimizationHints(boolean value)
.lang.Override boolean hasPbCleanupIncrement()
Builder clearRandomizeSearch()
.lang.Override double getMipVarScaling()
.lang.Override boolean hasMaxConsecutiveInactiveCount()
Builder setExploitIntegerLpSolution(boolean value)
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
.lang.Override double getGlucoseMaxDecay()
.lang.Override boolean hasMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
Builder setAddCgCuts(boolean value)
.lang.Override double getClauseActivityDecay()
.lang.Override int getMinimizeWithPropagationRestartPeriod()
.lang.Override boolean hasPresolveBveClauseWeight()
.lang.Override boolean hasUseOptimizationHints()
.lang.Override boolean getExpandElementConstraints()
.lang.Override double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override double getCutActiveCountDecay()
optional double cut_active_count_decay = 156 [default = 0.8];
.lang.Override double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder clearUseOptionalVariables()
.lang.Override double getMaxTimeInSeconds()
.lang.Override boolean hasRandomPolarityRatio()
.lang.Override boolean hasAutoDetectGreaterThanAtLeastOneOf()
Builder setMinOrthogonalityForLpConstraints(double value)
.lang.Override int getNewConstraintsBatchSize()
.lang.Override boolean hasInterleaveSearch()
.lang.Override boolean hasUseTimetableEdgeFindingInCumulativeConstraint()
.lang.Override boolean hasRestartRunningWindowSize()
.lang.Override int getMaxAllDiffCutSize()
.lang.Override boolean getExploitAllLpSolution()
.lang.Override double getMaxDeterministicTime()
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
.lang.Override int getPbCleanupIncrement()
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
Builder clearAddKnapsackCuts()
.lang.Override boolean hasExpandElementConstraints()
.lang.Override boolean hasMaxAllDiffCutSize()
Builder clearUseSatInprocessing()
optional bool use_sat_inprocessing = 163 [default = false];
.lang.Override double getRestartDlAverageRatio()
.lang.Override boolean getCatchSigintSignal()
Builder setBlockingRestartWindowSize(int value)
optional int32 blocking_restart_window_size = 65 [default = 5000];
.lang.Override boolean hasAddMirCuts()
NEAREST_INTEGER
.lang.Override boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
.lang.Override boolean getFindMultipleCores()
.lang.Override boolean hasMinimizeCore()
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
.lang.Override boolean getUseErwaHeuristic()
Builder clearFpRounding()
optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGA...
.lang.Override com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Override int getInterleaveBatchSize()
optional int32 interleave_batch_size = 134 [default = 1];
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
.lang.Override boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
.lang.Override boolean getUseDisjunctiveConstraintInCumulativeConstraint()
.lang.Override boolean getAddCgCuts()
.lang.Override boolean hasCountAssumptionLevelsInLbd()
static FPRoundingMethod forNumber(int value)
.lang.Override boolean hasUseSatInprocessing()
optional bool use_sat_inprocessing = 163 [default = false];
Builder setShareObjectiveBounds(boolean value)
.lang.Override boolean getStopAfterFirstSolution()
static FPRoundingMethod valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
Builder clearUsePhaseSaving()
static final int PROBING_PERIOD_AT_ROOT_FIELD_NUMBER
static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER
.lang.Override boolean equals(final java.lang.Object obj)
.lang.Override boolean hasCpModelMaxNumPresolveOperations()
Builder setClauseActivityDecay(double value)
.lang.Override boolean hasRestartDlAverageRatio()
.lang.Override boolean getAddKnapsackCuts()
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
.lang.Override double getMipVarScaling()
.lang.Override int getPresolveBveThreshold()
Builder clearExpandTableConstraints()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override boolean hasFindMultipleCores()
.lang.Override boolean getUseOverloadCheckerInCumulativeConstraint()
.lang.Override boolean hasHintConflictLimit()
Builder clearCutActiveCountDecay()
optional double cut_active_count_decay = 156 [default = 0.8];
static final int RESTART_PERIOD_FIELD_NUMBER
.lang.Override boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
Builder clearUsePbResolution()
.lang.Override boolean getShareObjectiveBounds()
.lang.Override boolean getUsePbResolution()
Builder setCutActiveCountDecay(double value)
optional double cut_active_count_decay = 156 [default = 0.8];
.lang.Override boolean hasOptimizeWithCore()
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
.lang.Override boolean hasShareObjectiveBounds()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
.lang.Override boolean hasEnumerateAllSolutions()
.lang.Override boolean getAlsoBumpVariablesInConflictReasons()
Builder clearAutoDetectGreaterThanAtLeastOneOf()
static final int PB_CLEANUP_RATIO_FIELD_NUMBER
Builder clearOptimizeWithCore()
Builder clearUseExactLpReason()
.lang.Override boolean getRandomizeSearch()
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
Builder clearMipMaxBound()
.lang.Override boolean hasPresolveBvaThreshold()
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
.lang.Override boolean hasMinOrthogonalityForLpConstraints()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override boolean hasMaxMemoryInMb()
.lang.Override boolean hasExploitObjective()
final int getNumber()
.lang.Override double getVariableActivityDecay()
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
.lang.Override boolean hasAlsoBumpVariablesInConflictReasons()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override long getMaxMemoryInMb()
Builder setMipWantedPrecision(double value)
.lang.Override boolean hasExpandElementConstraints()
Builder setUseOverloadCheckerInCumulativeConstraint(boolean value)
Builder setNewConstraintsBatchSize(int value)
.lang.Deprecated static final com.google.protobuf.Parser< SatParameters > PARSER
.lang.Override com.google.protobuf.Parser< SatParameters > getParserForType()
Builder setAddLinMaxCuts(boolean value)
Builder clearMaxDeterministicTime()
.lang.Override int getPresolveSubstitutionLevel()
Builder setRandomBranchesRatio(double value)
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
.lang.Override boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
.lang.Override boolean getUseSatInprocessing()
optional bool use_sat_inprocessing = 163 [default = false];
.lang.Override boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Override boolean getUseRelaxationLns()
.lang.Override boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
.lang.Override boolean hasClauseCleanupLbdBound()
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
.lang.Override double getInitialVariablesActivity()
.lang.Override int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
.lang.Override boolean hasAddKnapsackCuts()
.lang.Override double getPresolveProbingDeterministicTimeLimit()
.lang.Override boolean getTreatBinaryClausesSeparately()
.lang.Override double getMipCheckPrecision()
Builder clearHintConflictLimit()
.lang.Override boolean hasClauseActivityDecay()
Builder clearInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
POLARITY_FALSE
POLARITY_FALSE = 1;
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
.lang.Override boolean getExpandAutomatonConstraints()
.lang.Override double getAbsoluteGapLimit()
static final int USE_PB_RESOLUTION_FIELD_NUMBER
.lang.Override boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
PROTECTION_ALWAYS
Builder setMaxAllDiffCutSize(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder clearPresolveSubstitutionLevel()
Builder clearStopAfterFirstSolution()
.lang.Override boolean hasShareLevelZeroBounds()
.lang.Override boolean getUseOverloadCheckerInCumulativeConstraint()
.lang.Override boolean getOnlyAddCutsAtLevelZero()
.lang.Override boolean hasInstantiateAllVariables()
.lang.Override boolean getAutoDetectGreaterThanAtLeastOneOf()
.lang.Override boolean hasAbsoluteGapLimit()
Builder clearAddMirCuts()
Builder clearPresolveBvaThreshold()
.lang.Override boolean hasOptimizeWithMaxHs()
Builder setCpModelProbingLevel(int value)
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
.lang.Override boolean hasMaxNumCuts()
.lang.Override boolean getOptimizeWithMaxHs()
Builder setClauseCleanupTarget(int value)
.lang.Override boolean hasUseRinsLns()
.lang.Override boolean hasCpModelPostsolveWithFullSolver()
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
NONE
NONE = 0;
static final int ADD_CG_CUTS_FIELD_NUMBER
.lang.Override boolean hasBooleanEncodingLevel()
Builder setFpRounding(com.google.ortools.sat.SatParameters.FPRoundingMethod value)
optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGA...
Builder clearUseImpliedBounds()
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Override boolean hasVariableActivityDecay()
HINT_SEARCH
.lang.Override int getPresolveBveThreshold()
static final int SEARCH_BRANCHING_FIELD_NUMBER
Builder clearInterleaveBatchSize()
optional int32 interleave_batch_size = 134 [default = 1];
.lang.Override int getMaxCutRoundsAtLevelZero()
.lang.Override boolean getExploitIntegerLpSolution()
.lang.Override com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
Builder setLogSearchProgress(boolean value)
Builder clearUseFeasibilityPump()
Builder clearPresolveBveClauseWeight()
Builder setUseErwaHeuristic(boolean value)
.lang.Override boolean hasBinarySearchNumConflicts()
.lang.Override boolean getAddMirCuts()
Builder clearGlucoseMaxDecay()
.lang.Deprecated static ConflictMinimizationAlgorithm valueOf(int value)
Builder clearCpModelMaxNumPresolveOperations()
.lang.Override boolean hasCpModelProbingLevel()
.lang.Override boolean hasExploitBestSolution()
Builder clearMinimizeCore()
.lang.Deprecated static RestartAlgorithm valueOf(int value)
Builder clearRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
Builder clearUseErwaHeuristic()
.lang.Override boolean hasCpModelPostsolveWithFullSolver()
Builder clearClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int HINT_CONFLICT_LIMIT_FIELD_NUMBER
static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
Builder clearUseRelaxationLns()
.lang.Override boolean hasLogSearchProgress()
Builder clearExploitObjective()
Builder setOnlyAddCutsAtLevelZero(boolean value)
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder clearMaxSatReverseAssumptionOrder()
.lang.Override boolean getCoverOptimization()
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
BINARY_MINIMIZATION_FIRST
BINARY_MINIMIZATION_FIRST = 1;
.lang.Override int getMaxCutRoundsAtLevelZero()
Builder clearExploitRelaxationSolution()
.lang.Override boolean hasClauseCleanupTarget()
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
Builder clearInterleaveSearch()
.lang.Override int getPresolveBvaThreshold()
.lang.Override double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
ORDER_ASSUMPTION_BY_DEPTH
ORDER_ASSUMPTION_BY_DEPTH = 1;
Builder clearPresolveBlockedClause()
.lang.Override boolean hasCatchSigintSignal()
.lang.Override int getNumSearchWorkers()
.lang.Override double getStrategyChangeIncreaseRatio()
Builder setPresolveBveClauseWeight(int value)
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
Builder setCpModelPostsolveWithFullSolver(boolean value)
Builder setUseCombinedNoOverlap(boolean value)
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER
.lang.Override int getNumConflictsBeforeStrategyChanges()
.lang.Override boolean getUseBlockingRestart()
STRATIFICATION_DESCENT
.lang.Override boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
final int getNumber()
Builder setMipVarScaling(double value)
Builder setUseRelaxationLns(boolean value)
.lang.Override boolean hasOnlyAddCutsAtLevelZero()
Builder setBinarySearchNumConflicts(int value)
.lang.Override boolean hasMaxTimeInSeconds()
.lang.Override boolean hasRandomBranchesRatio()
static final int MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER
.lang.Override boolean getOnlyAddCutsAtLevelZero()
static final int USE_IMPLIED_BOUNDS_FIELD_NUMBER
static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER
.lang.Override boolean hasMipAutomaticallyScaleVariables()
static final int NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER
.lang.Override boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder clearRestartDlAverageRatio()
Builder clearCatchSigintSignal()
.lang.Override int getMaxNumCuts()
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder clearPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4;
Builder clearCpModelPostsolveWithFullSolver()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
.lang.Deprecated static Polarity valueOf(int value)
final int getNumber()
.lang.Override boolean hasTreatBinaryClausesSeparately()
.lang.Override boolean getUseCombinedNoOverlap()
.lang.Override boolean hasCutActiveCountDecay()
optional double cut_active_count_decay = 156 [default = 0.8];
.lang.Override int getMinimizeWithPropagationRestartPeriod()
.lang.Override int getSerializedSize()
.lang.Override long getSearchRandomizationTolerance()
.lang.Override boolean hasUseRelaxationLns()
Builder clearSubsumptionDuringConflictAnalysis()
.lang.Override boolean getExpandAutomatonConstraints()
Builder clearUseBranchingInLp()
Builder setPresolveUseBva(boolean value)
.lang.Override boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Override boolean hasReduceMemoryUsageInInterleaveMode()
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
Builder clearCpModelPresolve()
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
.lang.Override boolean hasAddKnapsackCuts()
PORTFOLIO_WITH_QUICK_RESTART_SEARCH
.lang.Override boolean getAddMirCuts()
.lang.Override boolean getOptimizeWithMaxHs()
.lang.Override boolean hasClauseCleanupPeriod()
.lang.Override boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
EXPERIMENTAL
EXPERIMENTAL = 3;
Builder clearAlsoBumpVariablesInConflictReasons()
static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER
DL_MOVING_AVERAGE_RESTART
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Builder clearMaxConsecutiveInactiveCount()
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override boolean hasCpModelPresolve()
Builder clearClauseCleanupPeriod()
.lang.Override boolean getAutoDetectGreaterThanAtLeastOneOf()
.lang.Override boolean getUseOptimizationHints()
Builder clearPresolveBveThreshold()
.lang.Override boolean hasAddLpConstraintsLazily()
Builder clearMipMaxActivityExponent()
.lang.Override double getMaxDeterministicTime()
static SearchBranching forNumber(int value)
Builder setMergeAtMostOneWorkLimit(double value)
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
static final int USE_RELAXATION_LNS_FIELD_NUMBER
.lang.Override boolean hasMipVarScaling()
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Override boolean hasUseOptimizationHints()
Builder setMaxClauseActivityValue(double value)
optional double max_clause_activity_value = 18 [default = 1e+20];
.lang.Override double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Override double getMaxTimeInSeconds()
.lang.Override boolean getFillTightenedDomainsInResponse()
.lang.Override boolean hasExpandTableConstraints()
.lang.Override boolean getReduceMemoryUsageInInterleaveMode()
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override boolean getExpandTableConstraints()
static final int ABSOLUTE_GAP_LIMIT_FIELD_NUMBER
static final int USE_EXACT_LP_REASON_FIELD_NUMBER
static final int INITIAL_POLARITY_FIELD_NUMBER
RECURSIVE
RECURSIVE = 2;
.lang.Override boolean hasProbingPeriodAtRoot()
Builder clearLinearizationLevel()
Builder setMipMaxBound(double value)
.lang.Override boolean hasMinimizeWithPropagationRestartPeriod()
.lang.Override boolean hasCpModelPresolve()
.lang.Override boolean getFillTightenedDomainsInResponse()
static Polarity forNumber(int value)
Builder setRandomPolarityRatio(double value)
.lang.Override boolean hasUsePbResolution()
.lang.Override int getClauseCleanupLbdBound()
.lang.Override double getMinOrthogonalityForLpConstraints()
STRATIFICATION_NONE
.lang.Override double getStrategyChangeIncreaseRatio()
Builder clearInstantiateAllVariables()
.lang.Override boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
PROTECTION_NONE
.lang.Override boolean getAddCgCuts()
Builder clearShareLevelZeroBounds()
.lang.Override boolean hasCutMaxActiveCountValue()
Builder setClauseCleanupLbdBound(int value)
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
static final int NUM_SEARCH_WORKERS_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
Builder setRestartPeriod(int value)
Builder clearCpModelUseSatPresolve()
.lang.Override int getRestartRunningWindowSize()
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
Builder setVariableActivityDecay(double value)
Builder clearAddLinMaxCuts()
.lang.Override boolean hasExpandAutomatonConstraints()
Builder setCpModelPresolve(boolean value)
.lang.Override boolean hasGlucoseMaxDecay()
.lang.Override int getRestartPeriod()
.lang.Override int getClauseCleanupTarget()
.lang.Override boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override boolean hasAlsoBumpVariablesInConflictReasons()
NO_RESTART
NO_RESTART = 0;
.lang.Override boolean getUseCombinedNoOverlap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder setRandomSeed(int value)
.lang.Override boolean getUseExactLpReason()
.lang.Override boolean hasStopAfterPresolve()
.lang.Override boolean getLogSearchProgress()
.lang.Override boolean hasRestartRunningWindowSize()
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER
Builder clearTreatBinaryClausesSeparately()
.lang.Override java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
.lang.Override boolean hasUsePbResolution()
.lang.Override boolean hasMaxAllDiffCutSize()
.lang.Override boolean getUseBranchingInLp()
static final int USE_PHASE_SAVING_FIELD_NUMBER
.lang.Override boolean hasAddLinMaxCuts()
.lang.Override long getPseudoCostReliabilityThreshold()
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
.lang.Override boolean getExploitObjective()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearPbCleanupIncrement()
Builder setExploitBestSolution(boolean value)
Builder clearMergeNoOverlapWorkLimit()
.lang.Override boolean hasAbsoluteGapLimit()
.lang.Override boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
FIXED_SEARCH
.lang.Override boolean getUseRinsLns()
static final int MINIMIZE_WITH_PROPAGATION_RESTART_PERIOD_FIELD_NUMBER
.lang.Override int getMaxConsecutiveInactiveCount()
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override boolean hasNewConstraintsBatchSize()
.lang.Override boolean getUsePbResolution()
.lang.Override boolean hasOptimizeWithCore()
Builder setExploitRelaxationSolution(boolean value)
.lang.Override int getNewConstraintsBatchSize()
.lang.Override boolean hasExploitAllLpSolution()
.lang.Override boolean hasUseRelaxationLns()
static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER
.lang.Override long getSearchRandomizationTolerance()
static final int LINEARIZATION_LEVEL_FIELD_NUMBER
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override double getClauseActivityDecay()
static com.google.ortools.sat.SatParameters getDefaultInstance()
Builder setMinimizeReductionDuringPbResolution(boolean value)
.lang.Override boolean hasProbingPeriodAtRoot()
.lang.Deprecated static MaxSatAssumptionOrder valueOf(int value)
.lang.Override boolean hasUseBranchingInLp()
static final int USE_BLOCKING_RESTART_FIELD_NUMBER
.lang.Override boolean hasBooleanEncodingLevel()
.lang.Override boolean hasUseErwaHeuristic()
Builder setUseOptionalVariables(boolean value)
.lang.Override boolean getPresolveBlockedClause()
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
.lang.Override boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
.lang.Override double getRelativeGapLimit()
optional double relative_gap_limit = 160 [default = 0];
static final int USE_FEASIBILITY_PUMP_FIELD_NUMBER
.lang.Override boolean hasExploitIntegerLpSolution()
static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override boolean hasPseudoCostReliabilityThreshold()
.lang.Override int getCpModelMaxNumPresolveOperations()
LUBY_RESTART
Builder clearProbingPeriodAtRoot()
.lang.Override Builder newBuilderForType()
Builder clearPresolveUseBva()
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
.lang.Override boolean hasNumConflictsBeforeStrategyChanges()
LP_SEARCH
.lang.Override double getMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
Builder setCatchSigintSignal(boolean value)
.lang.Override boolean getUseRinsLns()
.lang.Override com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
.lang.Override boolean getTreatBinaryClausesSeparately()
Builder clearExploitBestSolution()
.lang.Override boolean getShareLevelZeroBounds()
.lang.Override boolean hasInterleaveSearch()
.lang.Override boolean hasAddMirCuts()
static final int MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER
.lang.Override boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
Builder setExploitObjective(boolean value)
.lang.Override boolean getFindMultipleCores()
.lang.Override boolean hasStopAfterPresolve()
.lang.Override boolean hasDiversifyLnsParams()
.lang.Override boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override boolean hasSearchRandomizationTolerance()
static final int MAX_MEMORY_IN_MB_FIELD_NUMBER
.lang.Override double getPresolveProbingDeterministicTimeLimit()
static final int CP_MODEL_POSTSOLVE_WITH_FULL_SOLVER_FIELD_NUMBER
.lang.Override boolean getAddLinMaxCuts()
.lang.Override double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
.lang.Override boolean hasAddCgCuts()
.lang.Override boolean getAddLpConstraintsLazily()
Builder clearBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
.lang.Override boolean hasNumSearchWorkers()
.lang.Override boolean hasUseLnsOnly()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
Builder clearMinimizeReductionDuringPbResolution()
ACTIVE_LOCK_BASED
.lang.Override int getPresolveSubstitutionLevel()
.lang.Override boolean getCpModelPresolve()
.lang.Override boolean hasRelativeGapLimit()
optional double relative_gap_limit = 160 [default = 0];
.lang.Override com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
PROPAGATION_ASSISTED
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override boolean hasUseDisjunctiveConstraintInCumulativeConstraint()
Builder clearMaxCutRoundsAtLevelZero()
.lang.Override int getClauseCleanupPeriod()
.lang.Override boolean hasPbCleanupIncrement()
.lang.Override boolean hasUseOverloadCheckerInCumulativeConstraint()
Builder clearMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
Builder clearFillTightenedDomainsInResponse()
.lang.Override com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder clearClauseCleanupLbdBound()
Builder setFillTightenedDomainsInResponse(boolean value)
Builder setUseBlockingRestart(boolean value)
Builder setUseSatInprocessing(boolean value)
optional bool use_sat_inprocessing = 163 [default = false];
.lang.Override boolean getInstantiateAllVariables()
.lang.Override int getCpModelProbingLevel()
Builder clearMaxPresolveIterations()
.lang.Override boolean getMinimizeCore()
.lang.Override boolean getExploitBestSolution()
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final int USE_ERWA_HEURISTIC_FIELD_NUMBER
Builder clearCountAssumptionLevelsInLbd()
Builder setGlucoseMaxDecay(double value)
.lang.Override boolean hasExploitRelaxationSolution()
Builder clearClauseActivityDecay()
static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER
static final int EXPLOIT_RELAXATION_SOLUTION_FIELD_NUMBER
.lang.Override boolean hasMipWantedPrecision()
.lang.Override boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
.lang.Override double getMipMaxBound()
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
.lang.Override boolean hasHintConflictLimit()