Reference

C++

Python

DotNET

Java Documentation

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  useOptimizationHints_ = true;
70  minimizeCore_ = true;
71  findMultipleCores_ = true;
72  coverOptimization_ = true;
73  maxSatAssumptionOrder_ = 0;
74  maxSatStratification_ = 1;
75  usePrecedencesInDisjunctiveConstraint_ = true;
76  useDisjunctiveConstraintInCumulativeConstraint_ = true;
77  linearizationLevel_ = 1;
78  booleanEncodingLevel_ = 1;
79  maxNumCuts_ = 5000;
80  addMirCuts_ = true;
81  useMirRounding_ = true;
82  maxIntegerRoundingScaling_ = 600;
83  addLpConstraintsLazily_ = true;
84  maxInactiveCount_ = 1000L;
85  constraintRemovalBatchSize_ = 100L;
86  searchBranching_ = 0;
87  exploitIntegerLpSolution_ = true;
88  exploitAllLpSolution_ = true;
89  exploitObjective_ = true;
90  pseudoCostReliabilityThreshold_ = 100L;
91  binarySearchNumConflicts_ = -1;
92  cpModelPresolve_ = true;
93  cpModelProbingLevel_ = 2;
94  cpModelUseSatPresolve_ = true;
95  instantiateAllVariables_ = true;
96  autoDetectGreaterThanAtLeastOneOf_ = true;
97  numSearchWorkers_ = 1;
98  shareObjectiveBounds_ = true;
99  shareLevelZeroBounds_ = true;
100  useRinsLns_ = true;
101  useOptionalVariables_ = true;
102  useExactLpReason_ = true;
103  mipMaxBound_ = 10000000D;
104  mipVarScaling_ = 1D;
105  mipWantedPrecision_ = 1e-06D;
106  mipMaxActivityExponent_ = 53;
107  mipCheckPrecision_ = 0.0001D;
108  catchSigintSignal_ = true;
109  }
110 
111  @java.lang.Override
112  @SuppressWarnings({"unused"})
113  protected java.lang.Object newInstance(
114  UnusedPrivateParameter unused) {
115  return new SatParameters();
116  }
117 
118  @java.lang.Override
119  public final com.google.protobuf.UnknownFieldSet
121  return this.unknownFields;
122  }
123  private SatParameters(
124  com.google.protobuf.CodedInputStream input,
125  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
126  throws com.google.protobuf.InvalidProtocolBufferException {
127  this();
128  if (extensionRegistry == null) {
129  throw new java.lang.NullPointerException();
130  }
131  int mutable_bitField0_ = 0;
132  int mutable_bitField1_ = 0;
133  int mutable_bitField2_ = 0;
134  int mutable_bitField3_ = 0;
135  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
136  com.google.protobuf.UnknownFieldSet.newBuilder();
137  try {
138  boolean done = false;
139  while (!done) {
140  int tag = input.readTag();
141  switch (tag) {
142  case 0:
143  done = true;
144  break;
145  case 8: {
146  int rawValue = input.readEnum();
147  @SuppressWarnings("deprecation")
148  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
149  if (value == null) {
150  unknownFields.mergeVarintField(1, rawValue);
151  } else {
152  bitField0_ |= 0x00000001;
153  preferredVariableOrder_ = rawValue;
154  }
155  break;
156  }
157  case 16: {
158  int rawValue = input.readEnum();
159  @SuppressWarnings("deprecation")
160  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
161  if (value == null) {
162  unknownFields.mergeVarintField(2, rawValue);
163  } else {
164  bitField0_ |= 0x00000002;
165  initialPolarity_ = rawValue;
166  }
167  break;
168  }
169  case 32: {
170  int rawValue = input.readEnum();
171  @SuppressWarnings("deprecation")
172  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
173  if (value == null) {
174  unknownFields.mergeVarintField(4, rawValue);
175  } else {
176  bitField0_ |= 0x00000100;
177  minimizationAlgorithm_ = rawValue;
178  }
179  break;
180  }
181  case 88: {
182  bitField0_ |= 0x00000800;
183  clauseCleanupPeriod_ = input.readInt32();
184  break;
185  }
186  case 104: {
187  bitField0_ |= 0x00001000;
188  clauseCleanupTarget_ = input.readInt32();
189  break;
190  }
191  case 121: {
192  bitField0_ |= 0x00100000;
193  variableActivityDecay_ = input.readDouble();
194  break;
195  }
196  case 129: {
197  bitField0_ |= 0x00200000;
198  maxVariableActivityValue_ = input.readDouble();
199  break;
200  }
201  case 137: {
202  bitField0_ |= 0x02000000;
203  clauseActivityDecay_ = input.readDouble();
204  break;
205  }
206  case 145: {
207  bitField0_ |= 0x04000000;
208  maxClauseActivityValue_ = input.readDouble();
209  break;
210  }
211  case 177: {
212  bitField0_ |= 0x00400000;
213  glucoseMaxDecay_ = input.readDouble();
214  break;
215  }
216  case 185: {
217  bitField0_ |= 0x00800000;
218  glucoseDecayIncrement_ = input.readDouble();
219  break;
220  }
221  case 192: {
222  bitField0_ |= 0x01000000;
223  glucoseDecayIncrementPeriod_ = input.readInt32();
224  break;
225  }
226  case 240: {
227  bitField0_ |= 0x10000000;
228  restartPeriod_ = input.readInt32();
229  break;
230  }
231  case 248: {
232  bitField1_ |= 0x00000400;
233  randomSeed_ = input.readInt32();
234  break;
235  }
236  case 257: {
237  bitField0_ |= 0x00000010;
238  randomBranchesRatio_ = input.readDouble();
239  break;
240  }
241  case 264: {
242  bitField1_ |= 0x00000200;
243  treatBinaryClausesSeparately_ = input.readBool();
244  break;
245  }
246  case 272: {
247  int rawValue = input.readEnum();
248  @SuppressWarnings("deprecation")
249  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
250  if (value == null) {
251  unknownFields.mergeVarintField(34, rawValue);
252  } else {
253  bitField0_ |= 0x00000200;
254  binaryMinimizationAlgorithm_ = rawValue;
255  }
256  break;
257  }
258  case 280: {
259  bitField1_ |= 0x00400000;
260  useOptimizationHints_ = input.readBool();
261  break;
262  }
263  case 289: {
264  bitField1_ |= 0x00000020;
265  maxTimeInSeconds_ = input.readDouble();
266  break;
267  }
268  case 296: {
269  bitField1_ |= 0x00000080;
270  maxNumberOfConflicts_ = input.readInt64();
271  break;
272  }
273  case 320: {
274  bitField1_ |= 0x00000100;
275  maxMemoryInMb_ = input.readInt64();
276  break;
277  }
278  case 328: {
279  bitField1_ |= 0x00000800;
280  logSearchProgress_ = input.readBool();
281  break;
282  }
283  case 344: {
284  bitField1_ |= 0x00001000;
285  usePbResolution_ = input.readBool();
286  break;
287  }
288  case 352: {
289  bitField0_ |= 0x00000004;
290  usePhaseSaving_ = input.readBool();
291  break;
292  }
293  case 361: {
294  bitField0_ |= 0x00000008;
295  randomPolarityRatio_ = input.readDouble();
296  break;
297  }
298  case 368: {
299  bitField0_ |= 0x00010000;
300  pbCleanupIncrement_ = input.readInt32();
301  break;
302  }
303  case 377: {
304  bitField0_ |= 0x00020000;
305  pbCleanupRatio_ = input.readDouble();
306  break;
307  }
308  case 384: {
309  bitField1_ |= 0x00002000;
310  minimizeReductionDuringPbResolution_ = input.readBool();
311  break;
312  }
313  case 392: {
314  bitField1_ |= 0x00004000;
315  countAssumptionLevelsInLbd_ = input.readBool();
316  break;
317  }
318  case 400: {
319  bitField1_ |= 0x00800000;
320  minimizeCore_ = input.readBool();
321  break;
322  }
323  case 408: {
324  int rawValue = input.readEnum();
325  @SuppressWarnings("deprecation")
326  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
327  if (value == null) {
328  unknownFields.mergeVarintField(51, rawValue);
329  } else {
330  bitField1_ |= 0x04000000;
331  maxSatAssumptionOrder_ = rawValue;
332  }
333  break;
334  }
335  case 416: {
336  bitField1_ |= 0x08000000;
337  maxSatReverseAssumptionOrder_ = input.readBool();
338  break;
339  }
340  case 424: {
341  int rawValue = input.readEnum();
342  @SuppressWarnings("deprecation")
343  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
344  if (value == null) {
345  unknownFields.mergeVarintField(53, rawValue);
346  } else {
347  bitField1_ |= 0x10000000;
348  maxSatStratification_ = rawValue;
349  }
350  break;
351  }
352  case 432: {
353  bitField1_ |= 0x00008000;
354  presolveBveThreshold_ = input.readInt32();
355  break;
356  }
357  case 440: {
358  bitField1_ |= 0x00010000;
359  presolveBveClauseWeight_ = input.readInt32();
360  break;
361  }
362  case 448: {
363  bitField0_ |= 0x00000400;
364  subsumptionDuringConflictAnalysis_ = input.readBool();
365  break;
366  }
367  case 457: {
368  bitField1_ |= 0x00020000;
369  presolveProbingDeterministicTimeLimit_ = input.readDouble();
370  break;
371  }
372  case 464: {
373  int rawValue = input.readEnum();
374  @SuppressWarnings("deprecation")
375  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
376  if (value == null) {
377  unknownFields.mergeVarintField(58, rawValue);
378  } else {
379  bitField0_ |= 0x00002000;
380  clauseCleanupProtection_ = rawValue;
381  }
382  break;
383  }
384  case 472: {
385  bitField0_ |= 0x00004000;
386  clauseCleanupLbdBound_ = input.readInt32();
387  break;
388  }
389  case 480: {
390  int rawValue = input.readEnum();
391  @SuppressWarnings("deprecation")
392  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
393  if (value == null) {
394  unknownFields.mergeVarintField(60, rawValue);
395  } else {
396  bitField0_ |= 0x00008000;
397  clauseCleanupOrdering_ = rawValue;
398  }
399  break;
400  }
401  case 488: {
402  int rawValue = input.readEnum();
403  @SuppressWarnings("deprecation")
404  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
405  if (value == null) {
406  unknownFields.mergeVarintField(61, rawValue);
407  } else {
408  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
409  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
410  mutable_bitField0_ |= 0x08000000;
411  }
412  restartAlgorithms_.add(rawValue);
413  }
414  break;
415  }
416  case 490: {
417  int length = input.readRawVarint32();
418  int oldLimit = input.pushLimit(length);
419  while(input.getBytesUntilLimit() > 0) {
420  int rawValue = input.readEnum();
421  @SuppressWarnings("deprecation")
422  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
423  if (value == null) {
424  unknownFields.mergeVarintField(61, rawValue);
425  } else {
426  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
427  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
428  mutable_bitField0_ |= 0x08000000;
429  }
430  restartAlgorithms_.add(rawValue);
431  }
432  }
433  input.popLimit(oldLimit);
434  break;
435  }
436  case 496: {
437  bitField0_ |= 0x20000000;
438  restartRunningWindowSize_ = input.readInt32();
439  break;
440  }
441  case 505: {
442  bitField0_ |= 0x40000000;
443  restartDlAverageRatio_ = input.readDouble();
444  break;
445  }
446  case 512: {
447  bitField1_ |= 0x00000001;
448  useBlockingRestart_ = input.readBool();
449  break;
450  }
451  case 520: {
452  bitField1_ |= 0x00000002;
453  blockingRestartWindowSize_ = input.readInt32();
454  break;
455  }
456  case 529: {
457  bitField1_ |= 0x00000004;
458  blockingRestartMultiplier_ = input.readDouble();
459  break;
460  }
461  case 537: {
462  bitField1_ |= 0x00000040;
463  maxDeterministicTime_ = input.readDouble();
464  break;
465  }
466  case 544: {
467  bitField1_ |= 0x00000008;
468  numConflictsBeforeStrategyChanges_ = input.readInt32();
469  break;
470  }
471  case 553: {
472  bitField1_ |= 0x00000010;
473  strategyChangeIncreaseRatio_ = input.readDouble();
474  break;
475  }
476  case 562: {
477  com.google.protobuf.ByteString bs = input.readBytes();
478  bitField0_ |= 0x08000000;
479  defaultRestartAlgorithms_ = bs;
480  break;
481  }
482  case 569: {
483  bitField0_ |= 0x80000000;
484  restartLbdAverageRatio_ = input.readDouble();
485  break;
486  }
487  case 576: {
488  bitField1_ |= 0x00080000;
489  presolveUseBva_ = input.readBool();
490  break;
491  }
492  case 584: {
493  bitField1_ |= 0x00100000;
494  presolveBvaThreshold_ = input.readInt32();
495  break;
496  }
497  case 592: {
498  bitField1_ |= 0x20000000;
499  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
500  break;
501  }
502  case 600: {
503  bitField0_ |= 0x00000020;
504  useErwaHeuristic_ = input.readBool();
505  break;
506  }
507  case 609: {
508  bitField0_ |= 0x00000040;
509  initialVariablesActivity_ = input.readDouble();
510  break;
511  }
512  case 616: {
513  bitField0_ |= 0x00000080;
514  alsoBumpVariablesInConflictReasons_ = input.readBool();
515  break;
516  }
517  case 624: {
518  bitField1_ |= 0x40000000;
519  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
520  break;
521  }
522  case 632: {
523  bitField1_ |= 0x80000000;
524  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
525  break;
526  }
527  case 640: {
528  bitField2_ |= 0x00000001;
529  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
530  break;
531  }
532  case 656: {
533  int rawValue = input.readEnum();
534  @SuppressWarnings("deprecation")
535  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
536  if (value == null) {
537  unknownFields.mergeVarintField(82, rawValue);
538  } else {
539  bitField2_ |= 0x00004000;
540  searchBranching_ = rawValue;
541  }
542  break;
543  }
544  case 664: {
545  bitField2_ |= 0x00100000;
546  optimizeWithCore_ = input.readBool();
547  break;
548  }
549  case 672: {
550  bitField1_ |= 0x01000000;
551  findMultipleCores_ = input.readBool();
552  break;
553  }
554  case 680: {
555  bitField2_ |= 0x00400000;
556  optimizeWithMaxHs_ = input.readBool();
557  break;
558  }
559  case 688: {
560  bitField2_ |= 0x00800000;
561  cpModelPresolve_ = input.readBool();
562  break;
563  }
564  case 696: {
565  bitField2_ |= 0x04000000;
566  enumerateAllSolutions_ = input.readBool();
567  break;
568  }
569  case 704: {
570  bitField1_ |= 0x00040000;
571  presolveBlockedClause_ = input.readBool();
572  break;
573  }
574  case 712: {
575  bitField1_ |= 0x02000000;
576  coverOptimization_ = input.readBool();
577  break;
578  }
579  case 720: {
580  bitField2_ |= 0x00000002;
581  linearizationLevel_ = input.readInt32();
582  break;
583  }
584  case 728: {
585  bitField2_ |= 0x00000008;
586  maxNumCuts_ = input.readInt32();
587  break;
588  }
589  case 736: {
590  bitField2_ |= 0x00000010;
591  onlyAddCutsAtLevelZero_ = input.readBool();
592  break;
593  }
594  case 744: {
595  bitField2_ |= 0x02000000;
596  cpModelUseSatPresolve_ = input.readBool();
597  break;
598  }
599  case 752: {
600  bitField2_ |= 0x00008000;
601  exploitIntegerLpSolution_ = input.readBool();
602  break;
603  }
604  case 760: {
605  bitField2_ |= 0x20000000;
606  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
607  break;
608  }
609  case 768: {
610  bitField0_ |= 0x00040000;
611  minimizeWithPropagationRestartPeriod_ = input.readInt32();
612  break;
613  }
614  case 776: {
615  bitField0_ |= 0x00080000;
616  minimizeWithPropagationNumDecisions_ = input.readInt32();
617  break;
618  }
619  case 784: {
620  bitField2_ |= 0x40000000;
621  stopAfterFirstSolution_ = input.readBool();
622  break;
623  }
624  case 792: {
625  bitField2_ |= 0x00200000;
626  binarySearchNumConflicts_ = input.readInt32();
627  break;
628  }
629  case 800: {
630  bitField2_ |= 0x80000000;
631  numSearchWorkers_ = input.readInt32();
632  break;
633  }
634  case 808: {
635  bitField3_ |= 0x00000010;
636  useLnsOnly_ = input.readBool();
637  break;
638  }
639  case 824: {
640  bitField3_ |= 0x00000100;
641  randomizeSearch_ = input.readBool();
642  break;
643  }
644  case 832: {
645  bitField3_ |= 0x00000200;
646  searchRandomizationTolerance_ = input.readInt64();
647  break;
648  }
649  case 840: {
650  bitField3_ |= 0x00000020;
651  lnsFocusOnDecisionVariables_ = input.readBool();
652  break;
653  }
654  case 848: {
655  bitField2_ |= 0x10000000;
656  instantiateAllVariables_ = input.readBool();
657  break;
658  }
659  case 856: {
660  bitField2_ |= 0x00000004;
661  booleanEncodingLevel_ = input.readInt32();
662  break;
663  }
664  case 864: {
665  bitField3_ |= 0x00000400;
666  useOptionalVariables_ = input.readBool();
667  break;
668  }
669  case 872: {
670  bitField3_ |= 0x00000800;
671  useExactLpReason_ = input.readBool();
672  break;
673  }
674  case 880: {
675  bitField2_ |= 0x01000000;
676  cpModelProbingLevel_ = input.readInt32();
677  break;
678  }
679  case 888: {
680  bitField2_ |= 0x00000020;
681  addKnapsackCuts_ = input.readBool();
682  break;
683  }
684  case 896: {
685  bitField2_ |= 0x00000400;
686  addLpConstraintsLazily_ = input.readBool();
687  break;
688  }
689  case 904: {
690  bitField3_ |= 0x00000004;
691  shareObjectiveBounds_ = input.readBool();
692  break;
693  }
694  case 912: {
695  bitField3_ |= 0x00000008;
696  shareLevelZeroBounds_ = input.readBool();
697  break;
698  }
699  case 921: {
700  bitField2_ |= 0x00000800;
701  minOrthogonalityForLpConstraints_ = input.readDouble();
702  break;
703  }
704  case 928: {
705  bitField2_ |= 0x00010000;
706  exploitAllLpSolution_ = input.readBool();
707  break;
708  }
709  case 936: {
710  bitField2_ |= 0x00000040;
711  addCgCuts_ = input.readBool();
712  break;
713  }
714  case 944: {
715  bitField2_ |= 0x00000100;
716  useMirRounding_ = input.readBool();
717  break;
718  }
719  case 952: {
720  bitField2_ |= 0x00000200;
721  maxIntegerRoundingScaling_ = input.readInt32();
722  break;
723  }
724  case 960: {
725  bitField2_ |= 0x00000080;
726  addMirCuts_ = input.readBool();
727  break;
728  }
729  case 968: {
730  bitField2_ |= 0x00001000;
731  maxInactiveCount_ = input.readInt64();
732  break;
733  }
734  case 976: {
735  bitField2_ |= 0x00002000;
736  constraintRemovalBatchSize_ = input.readInt64();
737  break;
738  }
739  case 984: {
740  bitField2_ |= 0x00080000;
741  pseudoCostReliabilityThreshold_ = input.readInt64();
742  break;
743  }
744  case 993: {
745  bitField3_ |= 0x00002000;
746  mipMaxBound_ = input.readDouble();
747  break;
748  }
749  case 1001: {
750  bitField3_ |= 0x00004000;
751  mipVarScaling_ = input.readDouble();
752  break;
753  }
754  case 1009: {
755  bitField3_ |= 0x00008000;
756  mipWantedPrecision_ = input.readDouble();
757  break;
758  }
759  case 1016: {
760  bitField3_ |= 0x00010000;
761  mipMaxActivityExponent_ = input.readInt32();
762  break;
763  }
764  case 1025: {
765  bitField3_ |= 0x00020000;
766  mipCheckPrecision_ = input.readDouble();
767  break;
768  }
769  case 1032: {
770  bitField3_ |= 0x00000040;
771  useRinsLns_ = input.readBool();
772  break;
773  }
774  case 1040: {
775  bitField2_ |= 0x00020000;
776  exploitBestSolution_ = input.readBool();
777  break;
778  }
779  case 1048: {
780  bitField2_ |= 0x00040000;
781  exploitObjective_ = input.readBool();
782  break;
783  }
784  case 1056: {
785  bitField2_ |= 0x08000000;
786  fillTightenedDomainsInResponse_ = input.readBool();
787  break;
788  }
789  case 1064: {
790  bitField3_ |= 0x00001000;
791  useCombinedNoOverlap_ = input.readBool();
792  break;
793  }
794  case 1072: {
795  bitField3_ |= 0x00000002;
796  deterministicParallelSearch_ = input.readBool();
797  break;
798  }
799  case 1080: {
800  bitField3_ |= 0x00040000;
801  catchSigintSignal_ = input.readBool();
802  break;
803  }
804  case 1088: {
805  bitField3_ |= 0x00000001;
806  interleaveSearch_ = input.readBool();
807  break;
808  }
809  case 1096: {
810  bitField3_ |= 0x00000080;
811  diversifyLnsParams_ = input.readBool();
812  break;
813  }
814  case 1104: {
815  bitField1_ |= 0x00200000;
816  maxPresolveIterations_ = input.readInt32();
817  break;
818  }
819  default: {
820  if (!parseUnknownField(
821  input, unknownFields, extensionRegistry, tag)) {
822  done = true;
823  }
824  break;
825  }
826  }
827  }
828  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
829  throw e.setUnfinishedMessage(this);
830  } catch (java.io.IOException e) {
831  throw new com.google.protobuf.InvalidProtocolBufferException(
832  e).setUnfinishedMessage(this);
833  } finally {
834  if (((mutable_bitField0_ & 0x08000000) != 0)) {
835  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
836  }
837  this.unknownFields = unknownFields.build();
838  makeExtensionsImmutable();
839  }
840  }
841  public static final com.google.protobuf.Descriptors.Descriptor
843  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
844  }
845 
846  @java.lang.Override
847  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
849  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
850  .ensureFieldAccessorsInitialized(
852  }
853 
862  public enum VariableOrder
863  implements com.google.protobuf.ProtocolMessageEnum {
880  ;
881 
889  public static final int IN_ORDER_VALUE = 0;
893  public static final int IN_REVERSE_ORDER_VALUE = 1;
897  public static final int IN_RANDOM_ORDER_VALUE = 2;
898 
899 
900  public final int getNumber() {
901  return value;
902  }
903 
907  @java.lang.Deprecated
908  public static VariableOrder valueOf(int value) {
909  return forNumber(value);
910  }
911 
912  public static VariableOrder forNumber(int value) {
913  switch (value) {
914  case 0: return IN_ORDER;
915  case 1: return IN_REVERSE_ORDER;
916  case 2: return IN_RANDOM_ORDER;
917  default: return null;
918  }
919  }
920 
921  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
923  return internalValueMap;
924  }
925  private static final com.google.protobuf.Internal.EnumLiteMap<
926  VariableOrder> internalValueMap =
927  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
928  public VariableOrder findValueByNumber(int number) {
929  return VariableOrder.forNumber(number);
930  }
931  };
932 
933  public final com.google.protobuf.Descriptors.EnumValueDescriptor
935  return getDescriptor().getValues().get(ordinal());
936  }
937  public final com.google.protobuf.Descriptors.EnumDescriptor
939  return getDescriptor();
940  }
941  public static final com.google.protobuf.Descriptors.EnumDescriptor
943  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
944  }
945 
946  private static final VariableOrder[] VALUES = values();
947 
948  public static VariableOrder valueOf(
949  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
950  if (desc.getType() != getDescriptor()) {
951  throw new java.lang.IllegalArgumentException(
952  "EnumValueDescriptor is not for this type.");
953  }
954  return VALUES[desc.getIndex()];
955  }
956 
957  private final int value;
958 
959  private VariableOrder(int value) {
960  this.value = value;
961  }
962 
963  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
964  }
965 
977  public enum Polarity
978  implements com.google.protobuf.ProtocolMessageEnum {
1010  ;
1011 
1015  public static final int POLARITY_TRUE_VALUE = 0;
1019  public static final int POLARITY_FALSE_VALUE = 1;
1023  public static final int POLARITY_RANDOM_VALUE = 2;
1034  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1042  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1043 
1044 
1045  public final int getNumber() {
1046  return value;
1047  }
1048 
1052  @java.lang.Deprecated
1053  public static Polarity valueOf(int value) {
1054  return forNumber(value);
1055  }
1056 
1057  public static Polarity forNumber(int value) {
1058  switch (value) {
1059  case 0: return POLARITY_TRUE;
1060  case 1: return POLARITY_FALSE;
1061  case 2: return POLARITY_RANDOM;
1062  case 3: return POLARITY_WEIGHTED_SIGN;
1063  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1064  default: return null;
1065  }
1066  }
1067 
1068  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1070  return internalValueMap;
1071  }
1072  private static final com.google.protobuf.Internal.EnumLiteMap<
1073  Polarity> internalValueMap =
1074  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1075  public Polarity findValueByNumber(int number) {
1076  return Polarity.forNumber(number);
1077  }
1078  };
1079 
1080  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1082  return getDescriptor().getValues().get(ordinal());
1083  }
1084  public final com.google.protobuf.Descriptors.EnumDescriptor
1086  return getDescriptor();
1087  }
1088  public static final com.google.protobuf.Descriptors.EnumDescriptor
1090  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1091  }
1092 
1093  private static final Polarity[] VALUES = values();
1094 
1095  public static Polarity valueOf(
1096  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1097  if (desc.getType() != getDescriptor()) {
1098  throw new java.lang.IllegalArgumentException(
1099  "EnumValueDescriptor is not for this type.");
1100  }
1101  return VALUES[desc.getIndex()];
1102  }
1103 
1104  private final int value;
1105 
1106  private Polarity(int value) {
1107  this.value = value;
1108  }
1109 
1110  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1111  }
1112 
1121  implements com.google.protobuf.ProtocolMessageEnum {
1125  NONE(0),
1138  ;
1139 
1143  public static final int NONE_VALUE = 0;
1147  public static final int SIMPLE_VALUE = 1;
1151  public static final int RECURSIVE_VALUE = 2;
1155  public static final int EXPERIMENTAL_VALUE = 3;
1156 
1157 
1158  public final int getNumber() {
1159  return value;
1160  }
1161 
1165  @java.lang.Deprecated
1166  public static ConflictMinimizationAlgorithm valueOf(int value) {
1167  return forNumber(value);
1168  }
1169 
1170  public static ConflictMinimizationAlgorithm forNumber(int value) {
1171  switch (value) {
1172  case 0: return NONE;
1173  case 1: return SIMPLE;
1174  case 2: return RECURSIVE;
1175  case 3: return EXPERIMENTAL;
1176  default: return null;
1177  }
1178  }
1179 
1180  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1182  return internalValueMap;
1183  }
1184  private static final com.google.protobuf.Internal.EnumLiteMap<
1185  ConflictMinimizationAlgorithm> internalValueMap =
1186  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1187  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1189  }
1190  };
1191 
1192  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1194  return getDescriptor().getValues().get(ordinal());
1195  }
1196  public final com.google.protobuf.Descriptors.EnumDescriptor
1198  return getDescriptor();
1199  }
1200  public static final com.google.protobuf.Descriptors.EnumDescriptor
1202  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1203  }
1204 
1205  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1206 
1208  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1209  if (desc.getType() != getDescriptor()) {
1210  throw new java.lang.IllegalArgumentException(
1211  "EnumValueDescriptor is not for this type.");
1212  }
1213  return VALUES[desc.getIndex()];
1214  }
1215 
1216  private final int value;
1217 
1218  private ConflictMinimizationAlgorithm(int value) {
1219  this.value = value;
1220  }
1221 
1222  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1223  }
1224 
1234  implements com.google.protobuf.ProtocolMessageEnum {
1255  ;
1256 
1260  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1264  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1268  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1272  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1276  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1277 
1278 
1279  public final int getNumber() {
1280  return value;
1281  }
1282 
1286  @java.lang.Deprecated
1287  public static BinaryMinizationAlgorithm valueOf(int value) {
1288  return forNumber(value);
1289  }
1290 
1291  public static BinaryMinizationAlgorithm forNumber(int value) {
1292  switch (value) {
1293  case 0: return NO_BINARY_MINIMIZATION;
1294  case 1: return BINARY_MINIMIZATION_FIRST;
1295  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1296  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1297  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1298  default: return null;
1299  }
1300  }
1301 
1302  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1304  return internalValueMap;
1305  }
1306  private static final com.google.protobuf.Internal.EnumLiteMap<
1307  BinaryMinizationAlgorithm> internalValueMap =
1308  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1309  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1310  return BinaryMinizationAlgorithm.forNumber(number);
1311  }
1312  };
1313 
1314  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1316  return getDescriptor().getValues().get(ordinal());
1317  }
1318  public final com.google.protobuf.Descriptors.EnumDescriptor
1320  return getDescriptor();
1321  }
1322  public static final com.google.protobuf.Descriptors.EnumDescriptor
1324  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1325  }
1326 
1327  private static final BinaryMinizationAlgorithm[] VALUES = values();
1328 
1330  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1331  if (desc.getType() != getDescriptor()) {
1332  throw new java.lang.IllegalArgumentException(
1333  "EnumValueDescriptor is not for this type.");
1334  }
1335  return VALUES[desc.getIndex()];
1336  }
1337 
1338  private final int value;
1339 
1340  private BinaryMinizationAlgorithm(int value) {
1341  this.value = value;
1342  }
1343 
1344  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1345  }
1346 
1356  public enum ClauseProtection
1357  implements com.google.protobuf.ProtocolMessageEnum {
1382  ;
1383 
1391  public static final int PROTECTION_NONE_VALUE = 0;
1399  public static final int PROTECTION_ALWAYS_VALUE = 1;
1407  public static final int PROTECTION_LBD_VALUE = 2;
1408 
1409 
1410  public final int getNumber() {
1411  return value;
1412  }
1413 
1417  @java.lang.Deprecated
1418  public static ClauseProtection valueOf(int value) {
1419  return forNumber(value);
1420  }
1421 
1422  public static ClauseProtection forNumber(int value) {
1423  switch (value) {
1424  case 0: return PROTECTION_NONE;
1425  case 1: return PROTECTION_ALWAYS;
1426  case 2: return PROTECTION_LBD;
1427  default: return null;
1428  }
1429  }
1430 
1431  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1433  return internalValueMap;
1434  }
1435  private static final com.google.protobuf.Internal.EnumLiteMap<
1436  ClauseProtection> internalValueMap =
1437  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1438  public ClauseProtection findValueByNumber(int number) {
1439  return ClauseProtection.forNumber(number);
1440  }
1441  };
1442 
1443  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1445  return getDescriptor().getValues().get(ordinal());
1446  }
1447  public final com.google.protobuf.Descriptors.EnumDescriptor
1449  return getDescriptor();
1450  }
1451  public static final com.google.protobuf.Descriptors.EnumDescriptor
1453  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1454  }
1455 
1456  private static final ClauseProtection[] VALUES = values();
1457 
1458  public static ClauseProtection valueOf(
1459  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1460  if (desc.getType() != getDescriptor()) {
1461  throw new java.lang.IllegalArgumentException(
1462  "EnumValueDescriptor is not for this type.");
1463  }
1464  return VALUES[desc.getIndex()];
1465  }
1466 
1467  private final int value;
1468 
1469  private ClauseProtection(int value) {
1470  this.value = value;
1471  }
1472 
1473  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1474  }
1475 
1484  public enum ClauseOrdering
1485  implements com.google.protobuf.ProtocolMessageEnum {
1502  ;
1503 
1511  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1519  public static final int CLAUSE_LBD_VALUE = 1;
1520 
1521 
1522  public final int getNumber() {
1523  return value;
1524  }
1525 
1529  @java.lang.Deprecated
1530  public static ClauseOrdering valueOf(int value) {
1531  return forNumber(value);
1532  }
1533 
1534  public static ClauseOrdering forNumber(int value) {
1535  switch (value) {
1536  case 0: return CLAUSE_ACTIVITY;
1537  case 1: return CLAUSE_LBD;
1538  default: return null;
1539  }
1540  }
1541 
1542  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1544  return internalValueMap;
1545  }
1546  private static final com.google.protobuf.Internal.EnumLiteMap<
1547  ClauseOrdering> internalValueMap =
1548  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1549  public ClauseOrdering findValueByNumber(int number) {
1550  return ClauseOrdering.forNumber(number);
1551  }
1552  };
1553 
1554  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1556  return getDescriptor().getValues().get(ordinal());
1557  }
1558  public final com.google.protobuf.Descriptors.EnumDescriptor
1560  return getDescriptor();
1561  }
1562  public static final com.google.protobuf.Descriptors.EnumDescriptor
1564  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1565  }
1566 
1567  private static final ClauseOrdering[] VALUES = values();
1568 
1569  public static ClauseOrdering valueOf(
1570  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1571  if (desc.getType() != getDescriptor()) {
1572  throw new java.lang.IllegalArgumentException(
1573  "EnumValueDescriptor is not for this type.");
1574  }
1575  return VALUES[desc.getIndex()];
1576  }
1577 
1578  private final int value;
1579 
1580  private ClauseOrdering(int value) {
1581  this.value = value;
1582  }
1583 
1584  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1585  }
1586 
1598  public enum RestartAlgorithm
1599  implements com.google.protobuf.ProtocolMessageEnum {
1636  ;
1637 
1641  public static final int NO_RESTART_VALUE = 0;
1649  public static final int LUBY_RESTART_VALUE = 1;
1657  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1665  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1673  public static final int FIXED_RESTART_VALUE = 4;
1674 
1675 
1676  public final int getNumber() {
1677  return value;
1678  }
1679 
1683  @java.lang.Deprecated
1684  public static RestartAlgorithm valueOf(int value) {
1685  return forNumber(value);
1686  }
1687 
1688  public static RestartAlgorithm forNumber(int value) {
1689  switch (value) {
1690  case 0: return NO_RESTART;
1691  case 1: return LUBY_RESTART;
1692  case 2: return DL_MOVING_AVERAGE_RESTART;
1693  case 3: return LBD_MOVING_AVERAGE_RESTART;
1694  case 4: return FIXED_RESTART;
1695  default: return null;
1696  }
1697  }
1698 
1699  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1701  return internalValueMap;
1702  }
1703  private static final com.google.protobuf.Internal.EnumLiteMap<
1704  RestartAlgorithm> internalValueMap =
1705  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1706  public RestartAlgorithm findValueByNumber(int number) {
1707  return RestartAlgorithm.forNumber(number);
1708  }
1709  };
1710 
1711  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1713  return getDescriptor().getValues().get(ordinal());
1714  }
1715  public final com.google.protobuf.Descriptors.EnumDescriptor
1717  return getDescriptor();
1718  }
1719  public static final com.google.protobuf.Descriptors.EnumDescriptor
1721  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1722  }
1723 
1724  private static final RestartAlgorithm[] VALUES = values();
1725 
1726  public static RestartAlgorithm valueOf(
1727  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1728  if (desc.getType() != getDescriptor()) {
1729  throw new java.lang.IllegalArgumentException(
1730  "EnumValueDescriptor is not for this type.");
1731  }
1732  return VALUES[desc.getIndex()];
1733  }
1734 
1735  private final int value;
1736 
1737  private RestartAlgorithm(int value) {
1738  this.value = value;
1739  }
1740 
1741  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1742  }
1743 
1752  implements com.google.protobuf.ProtocolMessageEnum {
1765  ;
1766 
1770  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1774  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1778  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1779 
1780 
1781  public final int getNumber() {
1782  return value;
1783  }
1784 
1788  @java.lang.Deprecated
1789  public static MaxSatAssumptionOrder valueOf(int value) {
1790  return forNumber(value);
1791  }
1792 
1793  public static MaxSatAssumptionOrder forNumber(int value) {
1794  switch (value) {
1795  case 0: return DEFAULT_ASSUMPTION_ORDER;
1796  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1797  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1798  default: return null;
1799  }
1800  }
1801 
1802  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1804  return internalValueMap;
1805  }
1806  private static final com.google.protobuf.Internal.EnumLiteMap<
1807  MaxSatAssumptionOrder> internalValueMap =
1808  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1809  public MaxSatAssumptionOrder findValueByNumber(int number) {
1810  return MaxSatAssumptionOrder.forNumber(number);
1811  }
1812  };
1813 
1814  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1816  return getDescriptor().getValues().get(ordinal());
1817  }
1818  public final com.google.protobuf.Descriptors.EnumDescriptor
1820  return getDescriptor();
1821  }
1822  public static final com.google.protobuf.Descriptors.EnumDescriptor
1824  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1825  }
1826 
1827  private static final MaxSatAssumptionOrder[] VALUES = values();
1828 
1830  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1831  if (desc.getType() != getDescriptor()) {
1832  throw new java.lang.IllegalArgumentException(
1833  "EnumValueDescriptor is not for this type.");
1834  }
1835  return VALUES[desc.getIndex()];
1836  }
1837 
1838  private final int value;
1839 
1840  private MaxSatAssumptionOrder(int value) {
1841  this.value = value;
1842  }
1843 
1844  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1845  }
1846 
1855  implements com.google.protobuf.ProtocolMessageEnum {
1884  ;
1885 
1893  public static final int STRATIFICATION_NONE_VALUE = 0;
1902  public static final int STRATIFICATION_DESCENT_VALUE = 1;
1913  public static final int STRATIFICATION_ASCENT_VALUE = 2;
1914 
1915 
1916  public final int getNumber() {
1917  return value;
1918  }
1919 
1923  @java.lang.Deprecated
1924  public static MaxSatStratificationAlgorithm valueOf(int value) {
1925  return forNumber(value);
1926  }
1927 
1928  public static MaxSatStratificationAlgorithm forNumber(int value) {
1929  switch (value) {
1930  case 0: return STRATIFICATION_NONE;
1931  case 1: return STRATIFICATION_DESCENT;
1932  case 2: return STRATIFICATION_ASCENT;
1933  default: return null;
1934  }
1935  }
1936 
1937  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
1939  return internalValueMap;
1940  }
1941  private static final com.google.protobuf.Internal.EnumLiteMap<
1942  MaxSatStratificationAlgorithm> internalValueMap =
1943  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
1944  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
1946  }
1947  };
1948 
1949  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1951  return getDescriptor().getValues().get(ordinal());
1952  }
1953  public final com.google.protobuf.Descriptors.EnumDescriptor
1955  return getDescriptor();
1956  }
1957  public static final com.google.protobuf.Descriptors.EnumDescriptor
1959  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
1960  }
1961 
1962  private static final MaxSatStratificationAlgorithm[] VALUES = values();
1963 
1965  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1966  if (desc.getType() != getDescriptor()) {
1967  throw new java.lang.IllegalArgumentException(
1968  "EnumValueDescriptor is not for this type.");
1969  }
1970  return VALUES[desc.getIndex()];
1971  }
1972 
1973  private final int value;
1974 
1975  private MaxSatStratificationAlgorithm(int value) {
1976  this.value = value;
1977  }
1978 
1979  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
1980  }
1981 
1989  public enum SearchBranching
1990  implements com.google.protobuf.ProtocolMessageEnum {
2058  ;
2059 
2068  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2078  public static final int FIXED_SEARCH_VALUE = 1;
2086  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2096  public static final int LP_SEARCH_VALUE = 3;
2106  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2116  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2126  public static final int HINT_SEARCH_VALUE = 6;
2127 
2128 
2129  public final int getNumber() {
2130  return value;
2131  }
2132 
2136  @java.lang.Deprecated
2137  public static SearchBranching valueOf(int value) {
2138  return forNumber(value);
2139  }
2140 
2141  public static SearchBranching forNumber(int value) {
2142  switch (value) {
2143  case 0: return AUTOMATIC_SEARCH;
2144  case 1: return FIXED_SEARCH;
2145  case 2: return PORTFOLIO_SEARCH;
2146  case 3: return LP_SEARCH;
2147  case 4: return PSEUDO_COST_SEARCH;
2148  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2149  case 6: return HINT_SEARCH;
2150  default: return null;
2151  }
2152  }
2153 
2154  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2156  return internalValueMap;
2157  }
2158  private static final com.google.protobuf.Internal.EnumLiteMap<
2159  SearchBranching> internalValueMap =
2160  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2161  public SearchBranching findValueByNumber(int number) {
2162  return SearchBranching.forNumber(number);
2163  }
2164  };
2165 
2166  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2168  return getDescriptor().getValues().get(ordinal());
2169  }
2170  public final com.google.protobuf.Descriptors.EnumDescriptor
2172  return getDescriptor();
2173  }
2174  public static final com.google.protobuf.Descriptors.EnumDescriptor
2176  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2177  }
2178 
2179  private static final SearchBranching[] VALUES = values();
2180 
2181  public static SearchBranching valueOf(
2182  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2183  if (desc.getType() != getDescriptor()) {
2184  throw new java.lang.IllegalArgumentException(
2185  "EnumValueDescriptor is not for this type.");
2186  }
2187  return VALUES[desc.getIndex()];
2188  }
2189 
2190  private final int value;
2191 
2192  private SearchBranching(int value) {
2193  this.value = value;
2194  }
2195 
2196  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2197  }
2198 
2199  private int bitField0_;
2200  private int bitField1_;
2201  private int bitField2_;
2202  private int bitField3_;
2203  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2204  private int preferredVariableOrder_;
2208  public boolean hasPreferredVariableOrder() {
2209  return ((bitField0_ & 0x00000001) != 0);
2210  }
2215  @SuppressWarnings("deprecation")
2217  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2218  }
2219 
2220  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2221  private int initialPolarity_;
2225  public boolean hasInitialPolarity() {
2226  return ((bitField0_ & 0x00000002) != 0);
2227  }
2232  @SuppressWarnings("deprecation")
2234  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2235  }
2236 
2237  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2238  private boolean usePhaseSaving_;
2252  public boolean hasUsePhaseSaving() {
2253  return ((bitField0_ & 0x00000004) != 0);
2254  }
2268  public boolean getUsePhaseSaving() {
2269  return usePhaseSaving_;
2270  }
2271 
2272  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2273  private double randomPolarityRatio_;
2285  public boolean hasRandomPolarityRatio() {
2286  return ((bitField0_ & 0x00000008) != 0);
2287  }
2299  public double getRandomPolarityRatio() {
2300  return randomPolarityRatio_;
2301  }
2302 
2303  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2304  private double randomBranchesRatio_;
2314  public boolean hasRandomBranchesRatio() {
2315  return ((bitField0_ & 0x00000010) != 0);
2316  }
2326  public double getRandomBranchesRatio() {
2327  return randomBranchesRatio_;
2328  }
2329 
2330  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2331  private boolean useErwaHeuristic_;
2341  public boolean hasUseErwaHeuristic() {
2342  return ((bitField0_ & 0x00000020) != 0);
2343  }
2353  public boolean getUseErwaHeuristic() {
2354  return useErwaHeuristic_;
2355  }
2356 
2357  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2358  private double initialVariablesActivity_;
2371  public boolean hasInitialVariablesActivity() {
2372  return ((bitField0_ & 0x00000040) != 0);
2373  }
2387  return initialVariablesActivity_;
2388  }
2389 
2391  private boolean alsoBumpVariablesInConflictReasons_;
2403  return ((bitField0_ & 0x00000080) != 0);
2404  }
2416  return alsoBumpVariablesInConflictReasons_;
2417  }
2418 
2419  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2420  private int minimizationAlgorithm_;
2424  public boolean hasMinimizationAlgorithm() {
2425  return ((bitField0_ & 0x00000100) != 0);
2426  }
2431  @SuppressWarnings("deprecation")
2433  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2434  }
2435 
2436  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2437  private int binaryMinimizationAlgorithm_;
2442  return ((bitField0_ & 0x00000200) != 0);
2443  }
2448  @SuppressWarnings("deprecation")
2451  }
2452 
2454  private boolean subsumptionDuringConflictAnalysis_;
2466  return ((bitField0_ & 0x00000400) != 0);
2467  }
2479  return subsumptionDuringConflictAnalysis_;
2480  }
2481 
2482  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2483  private int clauseCleanupPeriod_;
2491  public boolean hasClauseCleanupPeriod() {
2492  return ((bitField0_ & 0x00000800) != 0);
2493  }
2501  public int getClauseCleanupPeriod() {
2502  return clauseCleanupPeriod_;
2503  }
2504 
2505  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2506  private int clauseCleanupTarget_;
2515  public boolean hasClauseCleanupTarget() {
2516  return ((bitField0_ & 0x00001000) != 0);
2517  }
2526  public int getClauseCleanupTarget() {
2527  return clauseCleanupTarget_;
2528  }
2529 
2530  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2531  private int clauseCleanupProtection_;
2535  public boolean hasClauseCleanupProtection() {
2536  return ((bitField0_ & 0x00002000) != 0);
2537  }
2542  @SuppressWarnings("deprecation")
2544  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2545  }
2546 
2547  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2548  private int clauseCleanupLbdBound_;
2557  public boolean hasClauseCleanupLbdBound() {
2558  return ((bitField0_ & 0x00004000) != 0);
2559  }
2569  return clauseCleanupLbdBound_;
2570  }
2571 
2572  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2573  private int clauseCleanupOrdering_;
2577  public boolean hasClauseCleanupOrdering() {
2578  return ((bitField0_ & 0x00008000) != 0);
2579  }
2584  @SuppressWarnings("deprecation")
2586  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2587  }
2588 
2589  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2590  private int pbCleanupIncrement_;
2598  public boolean hasPbCleanupIncrement() {
2599  return ((bitField0_ & 0x00010000) != 0);
2600  }
2608  public int getPbCleanupIncrement() {
2609  return pbCleanupIncrement_;
2610  }
2611 
2612  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2613  private double pbCleanupRatio_;
2617  public boolean hasPbCleanupRatio() {
2618  return ((bitField0_ & 0x00020000) != 0);
2619  }
2623  public double getPbCleanupRatio() {
2624  return pbCleanupRatio_;
2625  }
2626 
2628  private int minimizeWithPropagationRestartPeriod_;
2647  return ((bitField0_ & 0x00040000) != 0);
2648  }
2667  return minimizeWithPropagationRestartPeriod_;
2668  }
2669 
2671  private int minimizeWithPropagationNumDecisions_;
2676  return ((bitField0_ & 0x00080000) != 0);
2677  }
2682  return minimizeWithPropagationNumDecisions_;
2683  }
2684 
2685  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2686  private double variableActivityDecay_;
2700  public boolean hasVariableActivityDecay() {
2701  return ((bitField0_ & 0x00100000) != 0);
2702  }
2716  public double getVariableActivityDecay() {
2717  return variableActivityDecay_;
2718  }
2719 
2720  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2721  private double maxVariableActivityValue_;
2725  public boolean hasMaxVariableActivityValue() {
2726  return ((bitField0_ & 0x00200000) != 0);
2727  }
2732  return maxVariableActivityValue_;
2733  }
2734 
2735  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2736  private double glucoseMaxDecay_;
2747  public boolean hasGlucoseMaxDecay() {
2748  return ((bitField0_ & 0x00400000) != 0);
2749  }
2760  public double getGlucoseMaxDecay() {
2761  return glucoseMaxDecay_;
2762  }
2763 
2764  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2765  private double glucoseDecayIncrement_;
2769  public boolean hasGlucoseDecayIncrement() {
2770  return ((bitField0_ & 0x00800000) != 0);
2771  }
2775  public double getGlucoseDecayIncrement() {
2776  return glucoseDecayIncrement_;
2777  }
2778 
2779  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
2780  private int glucoseDecayIncrementPeriod_;
2785  return ((bitField0_ & 0x01000000) != 0);
2786  }
2791  return glucoseDecayIncrementPeriod_;
2792  }
2793 
2794  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2795  private double clauseActivityDecay_;
2803  public boolean hasClauseActivityDecay() {
2804  return ((bitField0_ & 0x02000000) != 0);
2805  }
2813  public double getClauseActivityDecay() {
2814  return clauseActivityDecay_;
2815  }
2816 
2817  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2818  private double maxClauseActivityValue_;
2822  public boolean hasMaxClauseActivityValue() {
2823  return ((bitField0_ & 0x04000000) != 0);
2824  }
2828  public double getMaxClauseActivityValue() {
2829  return maxClauseActivityValue_;
2830  }
2831 
2832  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
2833  private java.util.List<java.lang.Integer> restartAlgorithms_;
2834  private static final com.google.protobuf.Internal.ListAdapter.Converter<
2835  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
2836  new com.google.protobuf.Internal.ListAdapter.Converter<
2837  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
2838  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
2839  @SuppressWarnings("deprecation")
2841  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
2842  }
2843  };
2859  return new com.google.protobuf.Internal.ListAdapter<
2860  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
2861  }
2877  return restartAlgorithms_.size();
2878  }
2894  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
2895  }
2896 
2897  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
2898  private volatile java.lang.Object defaultRestartAlgorithms_;
2902  public boolean hasDefaultRestartAlgorithms() {
2903  return ((bitField0_ & 0x08000000) != 0);
2904  }
2908  public java.lang.String getDefaultRestartAlgorithms() {
2909  java.lang.Object ref = defaultRestartAlgorithms_;
2910  if (ref instanceof java.lang.String) {
2911  return (java.lang.String) ref;
2912  } else {
2913  com.google.protobuf.ByteString bs =
2914  (com.google.protobuf.ByteString) ref;
2915  java.lang.String s = bs.toStringUtf8();
2916  if (bs.isValidUtf8()) {
2917  defaultRestartAlgorithms_ = s;
2918  }
2919  return s;
2920  }
2921  }
2925  public com.google.protobuf.ByteString
2927  java.lang.Object ref = defaultRestartAlgorithms_;
2928  if (ref instanceof java.lang.String) {
2929  com.google.protobuf.ByteString b =
2930  com.google.protobuf.ByteString.copyFromUtf8(
2931  (java.lang.String) ref);
2932  defaultRestartAlgorithms_ = b;
2933  return b;
2934  } else {
2935  return (com.google.protobuf.ByteString) ref;
2936  }
2937  }
2938 
2939  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
2940  private int restartPeriod_;
2949  public boolean hasRestartPeriod() {
2950  return ((bitField0_ & 0x10000000) != 0);
2951  }
2960  public int getRestartPeriod() {
2961  return restartPeriod_;
2962  }
2963 
2964  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
2965  private int restartRunningWindowSize_;
2973  public boolean hasRestartRunningWindowSize() {
2974  return ((bitField0_ & 0x20000000) != 0);
2975  }
2984  return restartRunningWindowSize_;
2985  }
2986 
2987  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
2988  private double restartDlAverageRatio_;
2997  public boolean hasRestartDlAverageRatio() {
2998  return ((bitField0_ & 0x40000000) != 0);
2999  }
3008  public double getRestartDlAverageRatio() {
3009  return restartDlAverageRatio_;
3010  }
3011 
3012  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
3013  private double restartLbdAverageRatio_;
3017  public boolean hasRestartLbdAverageRatio() {
3018  return ((bitField0_ & 0x80000000) != 0);
3019  }
3023  public double getRestartLbdAverageRatio() {
3024  return restartLbdAverageRatio_;
3025  }
3026 
3027  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3028  private boolean useBlockingRestart_;
3038  public boolean hasUseBlockingRestart() {
3039  return ((bitField1_ & 0x00000001) != 0);
3040  }
3050  public boolean getUseBlockingRestart() {
3051  return useBlockingRestart_;
3052  }
3053 
3054  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3055  private int blockingRestartWindowSize_;
3059  public boolean hasBlockingRestartWindowSize() {
3060  return ((bitField1_ & 0x00000002) != 0);
3061  }
3066  return blockingRestartWindowSize_;
3067  }
3068 
3069  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3070  private double blockingRestartMultiplier_;
3074  public boolean hasBlockingRestartMultiplier() {
3075  return ((bitField1_ & 0x00000004) != 0);
3076  }
3081  return blockingRestartMultiplier_;
3082  }
3083 
3085  private int numConflictsBeforeStrategyChanges_;
3096  return ((bitField1_ & 0x00000008) != 0);
3097  }
3108  return numConflictsBeforeStrategyChanges_;
3109  }
3110 
3111  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3112  private double strategyChangeIncreaseRatio_;
3122  return ((bitField1_ & 0x00000010) != 0);
3123  }
3133  return strategyChangeIncreaseRatio_;
3134  }
3135 
3136  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3137  private double maxTimeInSeconds_;
3147  public boolean hasMaxTimeInSeconds() {
3148  return ((bitField1_ & 0x00000020) != 0);
3149  }
3159  public double getMaxTimeInSeconds() {
3160  return maxTimeInSeconds_;
3161  }
3162 
3163  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3164  private double maxDeterministicTime_;
3176  public boolean hasMaxDeterministicTime() {
3177  return ((bitField1_ & 0x00000040) != 0);
3178  }
3190  public double getMaxDeterministicTime() {
3191  return maxDeterministicTime_;
3192  }
3193 
3194  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3195  private long maxNumberOfConflicts_;
3208  public boolean hasMaxNumberOfConflicts() {
3209  return ((bitField1_ & 0x00000080) != 0);
3210  }
3223  public long getMaxNumberOfConflicts() {
3224  return maxNumberOfConflicts_;
3225  }
3226 
3227  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3228  private long maxMemoryInMb_;
3239  public boolean hasMaxMemoryInMb() {
3240  return ((bitField1_ & 0x00000100) != 0);
3241  }
3252  public long getMaxMemoryInMb() {
3253  return maxMemoryInMb_;
3254  }
3255 
3256  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3257  private boolean treatBinaryClausesSeparately_;
3268  return ((bitField1_ & 0x00000200) != 0);
3269  }
3280  return treatBinaryClausesSeparately_;
3281  }
3282 
3283  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3284  private int randomSeed_;
3297  public boolean hasRandomSeed() {
3298  return ((bitField1_ & 0x00000400) != 0);
3299  }
3312  public int getRandomSeed() {
3313  return randomSeed_;
3314  }
3315 
3316  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3317  private boolean logSearchProgress_;
3325  public boolean hasLogSearchProgress() {
3326  return ((bitField1_ & 0x00000800) != 0);
3327  }
3335  public boolean getLogSearchProgress() {
3336  return logSearchProgress_;
3337  }
3338 
3339  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3340  private boolean usePbResolution_;
3351  public boolean hasUsePbResolution() {
3352  return ((bitField1_ & 0x00001000) != 0);
3353  }
3364  public boolean getUsePbResolution() {
3365  return usePbResolution_;
3366  }
3367 
3369  private boolean minimizeReductionDuringPbResolution_;
3381  return ((bitField1_ & 0x00002000) != 0);
3382  }
3394  return minimizeReductionDuringPbResolution_;
3395  }
3396 
3397  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
3398  private boolean countAssumptionLevelsInLbd_;
3414  return ((bitField1_ & 0x00004000) != 0);
3415  }
3431  return countAssumptionLevelsInLbd_;
3432  }
3433 
3434  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3435  private int presolveBveThreshold_;
3445  public boolean hasPresolveBveThreshold() {
3446  return ((bitField1_ & 0x00008000) != 0);
3447  }
3458  return presolveBveThreshold_;
3459  }
3460 
3461  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3462  private int presolveBveClauseWeight_;
3471  public boolean hasPresolveBveClauseWeight() {
3472  return ((bitField1_ & 0x00010000) != 0);
3473  }
3483  return presolveBveClauseWeight_;
3484  }
3485 
3487  private double presolveProbingDeterministicTimeLimit_;
3497  return ((bitField1_ & 0x00020000) != 0);
3498  }
3508  return presolveProbingDeterministicTimeLimit_;
3509  }
3510 
3511  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3512  private boolean presolveBlockedClause_;
3521  public boolean hasPresolveBlockedClause() {
3522  return ((bitField1_ & 0x00040000) != 0);
3523  }
3532  public boolean getPresolveBlockedClause() {
3533  return presolveBlockedClause_;
3534  }
3535 
3536  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
3537  private boolean presolveUseBva_;
3545  public boolean hasPresolveUseBva() {
3546  return ((bitField1_ & 0x00080000) != 0);
3547  }
3555  public boolean getPresolveUseBva() {
3556  return presolveUseBva_;
3557  }
3558 
3559  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
3560  private int presolveBvaThreshold_;
3571  public boolean hasPresolveBvaThreshold() {
3572  return ((bitField1_ & 0x00100000) != 0);
3573  }
3585  return presolveBvaThreshold_;
3586  }
3587 
3588  public static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER = 138;
3589  private int maxPresolveIterations_;
3599  public boolean hasMaxPresolveIterations() {
3600  return ((bitField1_ & 0x00200000) != 0);
3601  }
3612  return maxPresolveIterations_;
3613  }
3614 
3615  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
3616  private boolean useOptimizationHints_;
3627  public boolean hasUseOptimizationHints() {
3628  return ((bitField1_ & 0x00400000) != 0);
3629  }
3640  public boolean getUseOptimizationHints() {
3641  return useOptimizationHints_;
3642  }
3643 
3644  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
3645  private boolean minimizeCore_;
3653  public boolean hasMinimizeCore() {
3654  return ((bitField1_ & 0x00800000) != 0);
3655  }
3663  public boolean getMinimizeCore() {
3664  return minimizeCore_;
3665  }
3666 
3667  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
3668  private boolean findMultipleCores_;
3677  public boolean hasFindMultipleCores() {
3678  return ((bitField1_ & 0x01000000) != 0);
3679  }
3688  public boolean getFindMultipleCores() {
3689  return findMultipleCores_;
3690  }
3691 
3692  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
3693  private boolean coverOptimization_;
3702  public boolean hasCoverOptimization() {
3703  return ((bitField1_ & 0x02000000) != 0);
3704  }
3713  public boolean getCoverOptimization() {
3714  return coverOptimization_;
3715  }
3716 
3717  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
3718  private int maxSatAssumptionOrder_;
3722  public boolean hasMaxSatAssumptionOrder() {
3723  return ((bitField1_ & 0x04000000) != 0);
3724  }
3729  @SuppressWarnings("deprecation")
3732  }
3733 
3735  private boolean maxSatReverseAssumptionOrder_;
3745  return ((bitField1_ & 0x08000000) != 0);
3746  }
3756  return maxSatReverseAssumptionOrder_;
3757  }
3758 
3759  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
3760  private int maxSatStratification_;
3764  public boolean hasMaxSatStratification() {
3765  return ((bitField1_ & 0x10000000) != 0);
3766  }
3771  @SuppressWarnings("deprecation")
3774  }
3775 
3777  private boolean usePrecedencesInDisjunctiveConstraint_;
3793  return ((bitField1_ & 0x20000000) != 0);
3794  }
3810  return usePrecedencesInDisjunctiveConstraint_;
3811  }
3812 
3814  private boolean useOverloadCheckerInCumulativeConstraint_;
3828  return ((bitField1_ & 0x40000000) != 0);
3829  }
3843  return useOverloadCheckerInCumulativeConstraint_;
3844  }
3845 
3847  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
3861  return ((bitField1_ & 0x80000000) != 0);
3862  }
3876  return useTimetableEdgeFindingInCumulativeConstraint_;
3877  }
3878 
3880  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
3896  return ((bitField2_ & 0x00000001) != 0);
3897  }
3913  return useDisjunctiveConstraintInCumulativeConstraint_;
3914  }
3915 
3916  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
3917  private int linearizationLevel_;
3928  public boolean hasLinearizationLevel() {
3929  return ((bitField2_ & 0x00000002) != 0);
3930  }
3941  public int getLinearizationLevel() {
3942  return linearizationLevel_;
3943  }
3944 
3945  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
3946  private int booleanEncodingLevel_;
3955  public boolean hasBooleanEncodingLevel() {
3956  return ((bitField2_ & 0x00000004) != 0);
3957  }
3967  return booleanEncodingLevel_;
3968  }
3969 
3970  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
3971  private int maxNumCuts_;
3982  public boolean hasMaxNumCuts() {
3983  return ((bitField2_ & 0x00000008) != 0);
3984  }
3995  public int getMaxNumCuts() {
3996  return maxNumCuts_;
3997  }
3998 
3999  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
4000  private boolean onlyAddCutsAtLevelZero_;
4009  public boolean hasOnlyAddCutsAtLevelZero() {
4010  return ((bitField2_ & 0x00000010) != 0);
4011  }
4020  public boolean getOnlyAddCutsAtLevelZero() {
4021  return onlyAddCutsAtLevelZero_;
4022  }
4023 
4024  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
4025  private boolean addKnapsackCuts_;
4035  public boolean hasAddKnapsackCuts() {
4036  return ((bitField2_ & 0x00000020) != 0);
4037  }
4047  public boolean getAddKnapsackCuts() {
4048  return addKnapsackCuts_;
4049  }
4050 
4051  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
4052  private boolean addCgCuts_;
4061  public boolean hasAddCgCuts() {
4062  return ((bitField2_ & 0x00000040) != 0);
4063  }
4072  public boolean getAddCgCuts() {
4073  return addCgCuts_;
4074  }
4075 
4076  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
4077  private boolean addMirCuts_;
4086  public boolean hasAddMirCuts() {
4087  return ((bitField2_ & 0x00000080) != 0);
4088  }
4097  public boolean getAddMirCuts() {
4098  return addMirCuts_;
4099  }
4100 
4101  public static final int USE_MIR_ROUNDING_FIELD_NUMBER = 118;
4102  private boolean useMirRounding_;
4112  public boolean hasUseMirRounding() {
4113  return ((bitField2_ & 0x00000100) != 0);
4114  }
4124  public boolean getUseMirRounding() {
4125  return useMirRounding_;
4126  }
4127 
4128  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4129  private int maxIntegerRoundingScaling_;
4141  public boolean hasMaxIntegerRoundingScaling() {
4142  return ((bitField2_ & 0x00000200) != 0);
4143  }
4156  return maxIntegerRoundingScaling_;
4157  }
4158 
4159  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4160  private boolean addLpConstraintsLazily_;
4171  public boolean hasAddLpConstraintsLazily() {
4172  return ((bitField2_ & 0x00000400) != 0);
4173  }
4184  public boolean getAddLpConstraintsLazily() {
4185  return addLpConstraintsLazily_;
4186  }
4187 
4189  private double minOrthogonalityForLpConstraints_;
4202  return ((bitField2_ & 0x00000800) != 0);
4203  }
4216  return minOrthogonalityForLpConstraints_;
4217  }
4218 
4219  public static final int MAX_INACTIVE_COUNT_FIELD_NUMBER = 121;
4220  private long maxInactiveCount_;
4229  public boolean hasMaxInactiveCount() {
4230  return ((bitField2_ & 0x00001000) != 0);
4231  }
4240  public long getMaxInactiveCount() {
4241  return maxInactiveCount_;
4242  }
4243 
4244  public static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER = 122;
4245  private long constraintRemovalBatchSize_;
4255  return ((bitField2_ & 0x00002000) != 0);
4256  }
4266  return constraintRemovalBatchSize_;
4267  }
4268 
4269  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4270  private int searchBranching_;
4274  public boolean hasSearchBranching() {
4275  return ((bitField2_ & 0x00004000) != 0);
4276  }
4281  @SuppressWarnings("deprecation")
4283  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4284  }
4285 
4286  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4287  private boolean exploitIntegerLpSolution_;
4298  public boolean hasExploitIntegerLpSolution() {
4299  return ((bitField2_ & 0x00008000) != 0);
4300  }
4311  public boolean getExploitIntegerLpSolution() {
4312  return exploitIntegerLpSolution_;
4313  }
4314 
4315  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4316  private boolean exploitAllLpSolution_;
4326  public boolean hasExploitAllLpSolution() {
4327  return ((bitField2_ & 0x00010000) != 0);
4328  }
4338  public boolean getExploitAllLpSolution() {
4339  return exploitAllLpSolution_;
4340  }
4341 
4342  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4343  private boolean exploitBestSolution_;
4351  public boolean hasExploitBestSolution() {
4352  return ((bitField2_ & 0x00020000) != 0);
4353  }
4361  public boolean getExploitBestSolution() {
4362  return exploitBestSolution_;
4363  }
4364 
4365  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4366  private boolean exploitObjective_;
4375  public boolean hasExploitObjective() {
4376  return ((bitField2_ & 0x00040000) != 0);
4377  }
4386  public boolean getExploitObjective() {
4387  return exploitObjective_;
4388  }
4389 
4390  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4391  private long pseudoCostReliabilityThreshold_;
4401  return ((bitField2_ & 0x00080000) != 0);
4402  }
4412  return pseudoCostReliabilityThreshold_;
4413  }
4414 
4415  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4416  private boolean optimizeWithCore_;
4427  public boolean hasOptimizeWithCore() {
4428  return ((bitField2_ & 0x00100000) != 0);
4429  }
4440  public boolean getOptimizeWithCore() {
4441  return optimizeWithCore_;
4442  }
4443 
4444  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
4445  private int binarySearchNumConflicts_;
4456  public boolean hasBinarySearchNumConflicts() {
4457  return ((bitField2_ & 0x00200000) != 0);
4458  }
4470  return binarySearchNumConflicts_;
4471  }
4472 
4473  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
4474  private boolean optimizeWithMaxHs_;
4487  public boolean hasOptimizeWithMaxHs() {
4488  return ((bitField2_ & 0x00400000) != 0);
4489  }
4502  public boolean getOptimizeWithMaxHs() {
4503  return optimizeWithMaxHs_;
4504  }
4505 
4506  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
4507  private boolean cpModelPresolve_;
4515  public boolean hasCpModelPresolve() {
4516  return ((bitField2_ & 0x00800000) != 0);
4517  }
4525  public boolean getCpModelPresolve() {
4526  return cpModelPresolve_;
4527  }
4528 
4529  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
4530  private int cpModelProbingLevel_;
4538  public boolean hasCpModelProbingLevel() {
4539  return ((bitField2_ & 0x01000000) != 0);
4540  }
4548  public int getCpModelProbingLevel() {
4549  return cpModelProbingLevel_;
4550  }
4551 
4552  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
4553  private boolean cpModelUseSatPresolve_;
4561  public boolean hasCpModelUseSatPresolve() {
4562  return ((bitField2_ & 0x02000000) != 0);
4563  }
4571  public boolean getCpModelUseSatPresolve() {
4572  return cpModelUseSatPresolve_;
4573  }
4574 
4575  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
4576  private boolean enumerateAllSolutions_;
4589  public boolean hasEnumerateAllSolutions() {
4590  return ((bitField2_ & 0x04000000) != 0);
4591  }
4604  public boolean getEnumerateAllSolutions() {
4605  return enumerateAllSolutions_;
4606  }
4607 
4609  private boolean fillTightenedDomainsInResponse_;
4622  return ((bitField2_ & 0x08000000) != 0);
4623  }
4636  return fillTightenedDomainsInResponse_;
4637  }
4638 
4639  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
4640  private boolean instantiateAllVariables_;
4649  public boolean hasInstantiateAllVariables() {
4650  return ((bitField2_ & 0x10000000) != 0);
4651  }
4660  public boolean getInstantiateAllVariables() {
4661  return instantiateAllVariables_;
4662  }
4663 
4665  private boolean autoDetectGreaterThanAtLeastOneOf_;
4677  return ((bitField2_ & 0x20000000) != 0);
4678  }
4690  return autoDetectGreaterThanAtLeastOneOf_;
4691  }
4692 
4693  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
4694  private boolean stopAfterFirstSolution_;
4702  public boolean hasStopAfterFirstSolution() {
4703  return ((bitField2_ & 0x40000000) != 0);
4704  }
4712  public boolean getStopAfterFirstSolution() {
4713  return stopAfterFirstSolution_;
4714  }
4715 
4716  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
4717  private int numSearchWorkers_;
4726  public boolean hasNumSearchWorkers() {
4727  return ((bitField2_ & 0x80000000) != 0);
4728  }
4737  public int getNumSearchWorkers() {
4738  return numSearchWorkers_;
4739  }
4740 
4741  public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
4742  private boolean interleaveSearch_;
4753  public boolean hasInterleaveSearch() {
4754  return ((bitField3_ & 0x00000001) != 0);
4755  }
4766  public boolean getInterleaveSearch() {
4767  return interleaveSearch_;
4768  }
4769 
4770  public static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER = 134;
4771  private boolean deterministicParallelSearch_;
4782  return ((bitField3_ & 0x00000002) != 0);
4783  }
4794  return deterministicParallelSearch_;
4795  }
4796 
4797  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
4798  private boolean shareObjectiveBounds_;
4806  public boolean hasShareObjectiveBounds() {
4807  return ((bitField3_ & 0x00000004) != 0);
4808  }
4816  public boolean getShareObjectiveBounds() {
4817  return shareObjectiveBounds_;
4818  }
4819 
4820  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
4821  private boolean shareLevelZeroBounds_;
4829  public boolean hasShareLevelZeroBounds() {
4830  return ((bitField3_ & 0x00000008) != 0);
4831  }
4839  public boolean getShareLevelZeroBounds() {
4840  return shareLevelZeroBounds_;
4841  }
4842 
4843  public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
4844  private boolean useLnsOnly_;
4852  public boolean hasUseLnsOnly() {
4853  return ((bitField3_ & 0x00000010) != 0);
4854  }
4862  public boolean getUseLnsOnly() {
4863  return useLnsOnly_;
4864  }
4865 
4866  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
4867  private boolean lnsFocusOnDecisionVariables_;
4872  return ((bitField3_ & 0x00000020) != 0);
4873  }
4878  return lnsFocusOnDecisionVariables_;
4879  }
4880 
4881  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
4882  private boolean useRinsLns_;
4890  public boolean hasUseRinsLns() {
4891  return ((bitField3_ & 0x00000040) != 0);
4892  }
4900  public boolean getUseRinsLns() {
4901  return useRinsLns_;
4902  }
4903 
4904  public static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER = 137;
4905  private boolean diversifyLnsParams_;
4913  public boolean hasDiversifyLnsParams() {
4914  return ((bitField3_ & 0x00000080) != 0);
4915  }
4923  public boolean getDiversifyLnsParams() {
4924  return diversifyLnsParams_;
4925  }
4926 
4927  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
4928  private boolean randomizeSearch_;
4936  public boolean hasRandomizeSearch() {
4937  return ((bitField3_ & 0x00000100) != 0);
4938  }
4946  public boolean getRandomizeSearch() {
4947  return randomizeSearch_;
4948  }
4949 
4950  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
4951  private long searchRandomizationTolerance_;
4966  return ((bitField3_ & 0x00000200) != 0);
4967  }
4982  return searchRandomizationTolerance_;
4983  }
4984 
4985  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
4986  private boolean useOptionalVariables_;
4996  public boolean hasUseOptionalVariables() {
4997  return ((bitField3_ & 0x00000400) != 0);
4998  }
5008  public boolean getUseOptionalVariables() {
5009  return useOptionalVariables_;
5010  }
5011 
5012  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
5013  private boolean useExactLpReason_;
5024  public boolean hasUseExactLpReason() {
5025  return ((bitField3_ & 0x00000800) != 0);
5026  }
5037  public boolean getUseExactLpReason() {
5038  return useExactLpReason_;
5039  }
5040 
5041  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
5042  private boolean useCombinedNoOverlap_;
5052  public boolean hasUseCombinedNoOverlap() {
5053  return ((bitField3_ & 0x00001000) != 0);
5054  }
5064  public boolean getUseCombinedNoOverlap() {
5065  return useCombinedNoOverlap_;
5066  }
5067 
5068  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
5069  private double mipMaxBound_;
5079  public boolean hasMipMaxBound() {
5080  return ((bitField3_ & 0x00002000) != 0);
5081  }
5091  public double getMipMaxBound() {
5092  return mipMaxBound_;
5093  }
5094 
5095  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
5096  private double mipVarScaling_;
5106  public boolean hasMipVarScaling() {
5107  return ((bitField3_ & 0x00004000) != 0);
5108  }
5118  public double getMipVarScaling() {
5119  return mipVarScaling_;
5120  }
5121 
5122  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
5123  private double mipWantedPrecision_;
5139  public boolean hasMipWantedPrecision() {
5140  return ((bitField3_ & 0x00008000) != 0);
5141  }
5157  public double getMipWantedPrecision() {
5158  return mipWantedPrecision_;
5159  }
5160 
5161  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5162  private int mipMaxActivityExponent_;
5176  public boolean hasMipMaxActivityExponent() {
5177  return ((bitField3_ & 0x00010000) != 0);
5178  }
5193  return mipMaxActivityExponent_;
5194  }
5195 
5196  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5197  private double mipCheckPrecision_;
5208  public boolean hasMipCheckPrecision() {
5209  return ((bitField3_ & 0x00020000) != 0);
5210  }
5221  public double getMipCheckPrecision() {
5222  return mipCheckPrecision_;
5223  }
5224 
5225  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
5226  private boolean catchSigintSignal_;
5236  public boolean hasCatchSigintSignal() {
5237  return ((bitField3_ & 0x00040000) != 0);
5238  }
5248  public boolean getCatchSigintSignal() {
5249  return catchSigintSignal_;
5250  }
5251 
5252  private byte memoizedIsInitialized = -1;
5253  @java.lang.Override
5254  public final boolean isInitialized() {
5255  byte isInitialized = memoizedIsInitialized;
5256  if (isInitialized == 1) return true;
5257  if (isInitialized == 0) return false;
5258 
5259  memoizedIsInitialized = 1;
5260  return true;
5261  }
5262 
5263  @java.lang.Override
5264  public void writeTo(com.google.protobuf.CodedOutputStream output)
5265  throws java.io.IOException {
5266  if (((bitField0_ & 0x00000001) != 0)) {
5267  output.writeEnum(1, preferredVariableOrder_);
5268  }
5269  if (((bitField0_ & 0x00000002) != 0)) {
5270  output.writeEnum(2, initialPolarity_);
5271  }
5272  if (((bitField0_ & 0x00000100) != 0)) {
5273  output.writeEnum(4, minimizationAlgorithm_);
5274  }
5275  if (((bitField0_ & 0x00000800) != 0)) {
5276  output.writeInt32(11, clauseCleanupPeriod_);
5277  }
5278  if (((bitField0_ & 0x00001000) != 0)) {
5279  output.writeInt32(13, clauseCleanupTarget_);
5280  }
5281  if (((bitField0_ & 0x00100000) != 0)) {
5282  output.writeDouble(15, variableActivityDecay_);
5283  }
5284  if (((bitField0_ & 0x00200000) != 0)) {
5285  output.writeDouble(16, maxVariableActivityValue_);
5286  }
5287  if (((bitField0_ & 0x02000000) != 0)) {
5288  output.writeDouble(17, clauseActivityDecay_);
5289  }
5290  if (((bitField0_ & 0x04000000) != 0)) {
5291  output.writeDouble(18, maxClauseActivityValue_);
5292  }
5293  if (((bitField0_ & 0x00400000) != 0)) {
5294  output.writeDouble(22, glucoseMaxDecay_);
5295  }
5296  if (((bitField0_ & 0x00800000) != 0)) {
5297  output.writeDouble(23, glucoseDecayIncrement_);
5298  }
5299  if (((bitField0_ & 0x01000000) != 0)) {
5300  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5301  }
5302  if (((bitField0_ & 0x10000000) != 0)) {
5303  output.writeInt32(30, restartPeriod_);
5304  }
5305  if (((bitField1_ & 0x00000400) != 0)) {
5306  output.writeInt32(31, randomSeed_);
5307  }
5308  if (((bitField0_ & 0x00000010) != 0)) {
5309  output.writeDouble(32, randomBranchesRatio_);
5310  }
5311  if (((bitField1_ & 0x00000200) != 0)) {
5312  output.writeBool(33, treatBinaryClausesSeparately_);
5313  }
5314  if (((bitField0_ & 0x00000200) != 0)) {
5315  output.writeEnum(34, binaryMinimizationAlgorithm_);
5316  }
5317  if (((bitField1_ & 0x00400000) != 0)) {
5318  output.writeBool(35, useOptimizationHints_);
5319  }
5320  if (((bitField1_ & 0x00000020) != 0)) {
5321  output.writeDouble(36, maxTimeInSeconds_);
5322  }
5323  if (((bitField1_ & 0x00000080) != 0)) {
5324  output.writeInt64(37, maxNumberOfConflicts_);
5325  }
5326  if (((bitField1_ & 0x00000100) != 0)) {
5327  output.writeInt64(40, maxMemoryInMb_);
5328  }
5329  if (((bitField1_ & 0x00000800) != 0)) {
5330  output.writeBool(41, logSearchProgress_);
5331  }
5332  if (((bitField1_ & 0x00001000) != 0)) {
5333  output.writeBool(43, usePbResolution_);
5334  }
5335  if (((bitField0_ & 0x00000004) != 0)) {
5336  output.writeBool(44, usePhaseSaving_);
5337  }
5338  if (((bitField0_ & 0x00000008) != 0)) {
5339  output.writeDouble(45, randomPolarityRatio_);
5340  }
5341  if (((bitField0_ & 0x00010000) != 0)) {
5342  output.writeInt32(46, pbCleanupIncrement_);
5343  }
5344  if (((bitField0_ & 0x00020000) != 0)) {
5345  output.writeDouble(47, pbCleanupRatio_);
5346  }
5347  if (((bitField1_ & 0x00002000) != 0)) {
5348  output.writeBool(48, minimizeReductionDuringPbResolution_);
5349  }
5350  if (((bitField1_ & 0x00004000) != 0)) {
5351  output.writeBool(49, countAssumptionLevelsInLbd_);
5352  }
5353  if (((bitField1_ & 0x00800000) != 0)) {
5354  output.writeBool(50, minimizeCore_);
5355  }
5356  if (((bitField1_ & 0x04000000) != 0)) {
5357  output.writeEnum(51, maxSatAssumptionOrder_);
5358  }
5359  if (((bitField1_ & 0x08000000) != 0)) {
5360  output.writeBool(52, maxSatReverseAssumptionOrder_);
5361  }
5362  if (((bitField1_ & 0x10000000) != 0)) {
5363  output.writeEnum(53, maxSatStratification_);
5364  }
5365  if (((bitField1_ & 0x00008000) != 0)) {
5366  output.writeInt32(54, presolveBveThreshold_);
5367  }
5368  if (((bitField1_ & 0x00010000) != 0)) {
5369  output.writeInt32(55, presolveBveClauseWeight_);
5370  }
5371  if (((bitField0_ & 0x00000400) != 0)) {
5372  output.writeBool(56, subsumptionDuringConflictAnalysis_);
5373  }
5374  if (((bitField1_ & 0x00020000) != 0)) {
5375  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
5376  }
5377  if (((bitField0_ & 0x00002000) != 0)) {
5378  output.writeEnum(58, clauseCleanupProtection_);
5379  }
5380  if (((bitField0_ & 0x00004000) != 0)) {
5381  output.writeInt32(59, clauseCleanupLbdBound_);
5382  }
5383  if (((bitField0_ & 0x00008000) != 0)) {
5384  output.writeEnum(60, clauseCleanupOrdering_);
5385  }
5386  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5387  output.writeEnum(61, restartAlgorithms_.get(i));
5388  }
5389  if (((bitField0_ & 0x20000000) != 0)) {
5390  output.writeInt32(62, restartRunningWindowSize_);
5391  }
5392  if (((bitField0_ & 0x40000000) != 0)) {
5393  output.writeDouble(63, restartDlAverageRatio_);
5394  }
5395  if (((bitField1_ & 0x00000001) != 0)) {
5396  output.writeBool(64, useBlockingRestart_);
5397  }
5398  if (((bitField1_ & 0x00000002) != 0)) {
5399  output.writeInt32(65, blockingRestartWindowSize_);
5400  }
5401  if (((bitField1_ & 0x00000004) != 0)) {
5402  output.writeDouble(66, blockingRestartMultiplier_);
5403  }
5404  if (((bitField1_ & 0x00000040) != 0)) {
5405  output.writeDouble(67, maxDeterministicTime_);
5406  }
5407  if (((bitField1_ & 0x00000008) != 0)) {
5408  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
5409  }
5410  if (((bitField1_ & 0x00000010) != 0)) {
5411  output.writeDouble(69, strategyChangeIncreaseRatio_);
5412  }
5413  if (((bitField0_ & 0x08000000) != 0)) {
5414  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
5415  }
5416  if (((bitField0_ & 0x80000000) != 0)) {
5417  output.writeDouble(71, restartLbdAverageRatio_);
5418  }
5419  if (((bitField1_ & 0x00080000) != 0)) {
5420  output.writeBool(72, presolveUseBva_);
5421  }
5422  if (((bitField1_ & 0x00100000) != 0)) {
5423  output.writeInt32(73, presolveBvaThreshold_);
5424  }
5425  if (((bitField1_ & 0x20000000) != 0)) {
5426  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
5427  }
5428  if (((bitField0_ & 0x00000020) != 0)) {
5429  output.writeBool(75, useErwaHeuristic_);
5430  }
5431  if (((bitField0_ & 0x00000040) != 0)) {
5432  output.writeDouble(76, initialVariablesActivity_);
5433  }
5434  if (((bitField0_ & 0x00000080) != 0)) {
5435  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
5436  }
5437  if (((bitField1_ & 0x40000000) != 0)) {
5438  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
5439  }
5440  if (((bitField1_ & 0x80000000) != 0)) {
5441  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
5442  }
5443  if (((bitField2_ & 0x00000001) != 0)) {
5444  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
5445  }
5446  if (((bitField2_ & 0x00004000) != 0)) {
5447  output.writeEnum(82, searchBranching_);
5448  }
5449  if (((bitField2_ & 0x00100000) != 0)) {
5450  output.writeBool(83, optimizeWithCore_);
5451  }
5452  if (((bitField1_ & 0x01000000) != 0)) {
5453  output.writeBool(84, findMultipleCores_);
5454  }
5455  if (((bitField2_ & 0x00400000) != 0)) {
5456  output.writeBool(85, optimizeWithMaxHs_);
5457  }
5458  if (((bitField2_ & 0x00800000) != 0)) {
5459  output.writeBool(86, cpModelPresolve_);
5460  }
5461  if (((bitField2_ & 0x04000000) != 0)) {
5462  output.writeBool(87, enumerateAllSolutions_);
5463  }
5464  if (((bitField1_ & 0x00040000) != 0)) {
5465  output.writeBool(88, presolveBlockedClause_);
5466  }
5467  if (((bitField1_ & 0x02000000) != 0)) {
5468  output.writeBool(89, coverOptimization_);
5469  }
5470  if (((bitField2_ & 0x00000002) != 0)) {
5471  output.writeInt32(90, linearizationLevel_);
5472  }
5473  if (((bitField2_ & 0x00000008) != 0)) {
5474  output.writeInt32(91, maxNumCuts_);
5475  }
5476  if (((bitField2_ & 0x00000010) != 0)) {
5477  output.writeBool(92, onlyAddCutsAtLevelZero_);
5478  }
5479  if (((bitField2_ & 0x02000000) != 0)) {
5480  output.writeBool(93, cpModelUseSatPresolve_);
5481  }
5482  if (((bitField2_ & 0x00008000) != 0)) {
5483  output.writeBool(94, exploitIntegerLpSolution_);
5484  }
5485  if (((bitField2_ & 0x20000000) != 0)) {
5486  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
5487  }
5488  if (((bitField0_ & 0x00040000) != 0)) {
5489  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
5490  }
5491  if (((bitField0_ & 0x00080000) != 0)) {
5492  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
5493  }
5494  if (((bitField2_ & 0x40000000) != 0)) {
5495  output.writeBool(98, stopAfterFirstSolution_);
5496  }
5497  if (((bitField2_ & 0x00200000) != 0)) {
5498  output.writeInt32(99, binarySearchNumConflicts_);
5499  }
5500  if (((bitField2_ & 0x80000000) != 0)) {
5501  output.writeInt32(100, numSearchWorkers_);
5502  }
5503  if (((bitField3_ & 0x00000010) != 0)) {
5504  output.writeBool(101, useLnsOnly_);
5505  }
5506  if (((bitField3_ & 0x00000100) != 0)) {
5507  output.writeBool(103, randomizeSearch_);
5508  }
5509  if (((bitField3_ & 0x00000200) != 0)) {
5510  output.writeInt64(104, searchRandomizationTolerance_);
5511  }
5512  if (((bitField3_ & 0x00000020) != 0)) {
5513  output.writeBool(105, lnsFocusOnDecisionVariables_);
5514  }
5515  if (((bitField2_ & 0x10000000) != 0)) {
5516  output.writeBool(106, instantiateAllVariables_);
5517  }
5518  if (((bitField2_ & 0x00000004) != 0)) {
5519  output.writeInt32(107, booleanEncodingLevel_);
5520  }
5521  if (((bitField3_ & 0x00000400) != 0)) {
5522  output.writeBool(108, useOptionalVariables_);
5523  }
5524  if (((bitField3_ & 0x00000800) != 0)) {
5525  output.writeBool(109, useExactLpReason_);
5526  }
5527  if (((bitField2_ & 0x01000000) != 0)) {
5528  output.writeInt32(110, cpModelProbingLevel_);
5529  }
5530  if (((bitField2_ & 0x00000020) != 0)) {
5531  output.writeBool(111, addKnapsackCuts_);
5532  }
5533  if (((bitField2_ & 0x00000400) != 0)) {
5534  output.writeBool(112, addLpConstraintsLazily_);
5535  }
5536  if (((bitField3_ & 0x00000004) != 0)) {
5537  output.writeBool(113, shareObjectiveBounds_);
5538  }
5539  if (((bitField3_ & 0x00000008) != 0)) {
5540  output.writeBool(114, shareLevelZeroBounds_);
5541  }
5542  if (((bitField2_ & 0x00000800) != 0)) {
5543  output.writeDouble(115, minOrthogonalityForLpConstraints_);
5544  }
5545  if (((bitField2_ & 0x00010000) != 0)) {
5546  output.writeBool(116, exploitAllLpSolution_);
5547  }
5548  if (((bitField2_ & 0x00000040) != 0)) {
5549  output.writeBool(117, addCgCuts_);
5550  }
5551  if (((bitField2_ & 0x00000100) != 0)) {
5552  output.writeBool(118, useMirRounding_);
5553  }
5554  if (((bitField2_ & 0x00000200) != 0)) {
5555  output.writeInt32(119, maxIntegerRoundingScaling_);
5556  }
5557  if (((bitField2_ & 0x00000080) != 0)) {
5558  output.writeBool(120, addMirCuts_);
5559  }
5560  if (((bitField2_ & 0x00001000) != 0)) {
5561  output.writeInt64(121, maxInactiveCount_);
5562  }
5563  if (((bitField2_ & 0x00002000) != 0)) {
5564  output.writeInt64(122, constraintRemovalBatchSize_);
5565  }
5566  if (((bitField2_ & 0x00080000) != 0)) {
5567  output.writeInt64(123, pseudoCostReliabilityThreshold_);
5568  }
5569  if (((bitField3_ & 0x00002000) != 0)) {
5570  output.writeDouble(124, mipMaxBound_);
5571  }
5572  if (((bitField3_ & 0x00004000) != 0)) {
5573  output.writeDouble(125, mipVarScaling_);
5574  }
5575  if (((bitField3_ & 0x00008000) != 0)) {
5576  output.writeDouble(126, mipWantedPrecision_);
5577  }
5578  if (((bitField3_ & 0x00010000) != 0)) {
5579  output.writeInt32(127, mipMaxActivityExponent_);
5580  }
5581  if (((bitField3_ & 0x00020000) != 0)) {
5582  output.writeDouble(128, mipCheckPrecision_);
5583  }
5584  if (((bitField3_ & 0x00000040) != 0)) {
5585  output.writeBool(129, useRinsLns_);
5586  }
5587  if (((bitField2_ & 0x00020000) != 0)) {
5588  output.writeBool(130, exploitBestSolution_);
5589  }
5590  if (((bitField2_ & 0x00040000) != 0)) {
5591  output.writeBool(131, exploitObjective_);
5592  }
5593  if (((bitField2_ & 0x08000000) != 0)) {
5594  output.writeBool(132, fillTightenedDomainsInResponse_);
5595  }
5596  if (((bitField3_ & 0x00001000) != 0)) {
5597  output.writeBool(133, useCombinedNoOverlap_);
5598  }
5599  if (((bitField3_ & 0x00000002) != 0)) {
5600  output.writeBool(134, deterministicParallelSearch_);
5601  }
5602  if (((bitField3_ & 0x00040000) != 0)) {
5603  output.writeBool(135, catchSigintSignal_);
5604  }
5605  if (((bitField3_ & 0x00000001) != 0)) {
5606  output.writeBool(136, interleaveSearch_);
5607  }
5608  if (((bitField3_ & 0x00000080) != 0)) {
5609  output.writeBool(137, diversifyLnsParams_);
5610  }
5611  if (((bitField1_ & 0x00200000) != 0)) {
5612  output.writeInt32(138, maxPresolveIterations_);
5613  }
5614  unknownFields.writeTo(output);
5615  }
5616 
5617  @java.lang.Override
5618  public int getSerializedSize() {
5619  int size = memoizedSize;
5620  if (size != -1) return size;
5621 
5622  size = 0;
5623  if (((bitField0_ & 0x00000001) != 0)) {
5624  size += com.google.protobuf.CodedOutputStream
5625  .computeEnumSize(1, preferredVariableOrder_);
5626  }
5627  if (((bitField0_ & 0x00000002) != 0)) {
5628  size += com.google.protobuf.CodedOutputStream
5629  .computeEnumSize(2, initialPolarity_);
5630  }
5631  if (((bitField0_ & 0x00000100) != 0)) {
5632  size += com.google.protobuf.CodedOutputStream
5633  .computeEnumSize(4, minimizationAlgorithm_);
5634  }
5635  if (((bitField0_ & 0x00000800) != 0)) {
5636  size += com.google.protobuf.CodedOutputStream
5637  .computeInt32Size(11, clauseCleanupPeriod_);
5638  }
5639  if (((bitField0_ & 0x00001000) != 0)) {
5640  size += com.google.protobuf.CodedOutputStream
5641  .computeInt32Size(13, clauseCleanupTarget_);
5642  }
5643  if (((bitField0_ & 0x00100000) != 0)) {
5644  size += com.google.protobuf.CodedOutputStream
5645  .computeDoubleSize(15, variableActivityDecay_);
5646  }
5647  if (((bitField0_ & 0x00200000) != 0)) {
5648  size += com.google.protobuf.CodedOutputStream
5649  .computeDoubleSize(16, maxVariableActivityValue_);
5650  }
5651  if (((bitField0_ & 0x02000000) != 0)) {
5652  size += com.google.protobuf.CodedOutputStream
5653  .computeDoubleSize(17, clauseActivityDecay_);
5654  }
5655  if (((bitField0_ & 0x04000000) != 0)) {
5656  size += com.google.protobuf.CodedOutputStream
5657  .computeDoubleSize(18, maxClauseActivityValue_);
5658  }
5659  if (((bitField0_ & 0x00400000) != 0)) {
5660  size += com.google.protobuf.CodedOutputStream
5661  .computeDoubleSize(22, glucoseMaxDecay_);
5662  }
5663  if (((bitField0_ & 0x00800000) != 0)) {
5664  size += com.google.protobuf.CodedOutputStream
5665  .computeDoubleSize(23, glucoseDecayIncrement_);
5666  }
5667  if (((bitField0_ & 0x01000000) != 0)) {
5668  size += com.google.protobuf.CodedOutputStream
5669  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
5670  }
5671  if (((bitField0_ & 0x10000000) != 0)) {
5672  size += com.google.protobuf.CodedOutputStream
5673  .computeInt32Size(30, restartPeriod_);
5674  }
5675  if (((bitField1_ & 0x00000400) != 0)) {
5676  size += com.google.protobuf.CodedOutputStream
5677  .computeInt32Size(31, randomSeed_);
5678  }
5679  if (((bitField0_ & 0x00000010) != 0)) {
5680  size += com.google.protobuf.CodedOutputStream
5681  .computeDoubleSize(32, randomBranchesRatio_);
5682  }
5683  if (((bitField1_ & 0x00000200) != 0)) {
5684  size += com.google.protobuf.CodedOutputStream
5685  .computeBoolSize(33, treatBinaryClausesSeparately_);
5686  }
5687  if (((bitField0_ & 0x00000200) != 0)) {
5688  size += com.google.protobuf.CodedOutputStream
5689  .computeEnumSize(34, binaryMinimizationAlgorithm_);
5690  }
5691  if (((bitField1_ & 0x00400000) != 0)) {
5692  size += com.google.protobuf.CodedOutputStream
5693  .computeBoolSize(35, useOptimizationHints_);
5694  }
5695  if (((bitField1_ & 0x00000020) != 0)) {
5696  size += com.google.protobuf.CodedOutputStream
5697  .computeDoubleSize(36, maxTimeInSeconds_);
5698  }
5699  if (((bitField1_ & 0x00000080) != 0)) {
5700  size += com.google.protobuf.CodedOutputStream
5701  .computeInt64Size(37, maxNumberOfConflicts_);
5702  }
5703  if (((bitField1_ & 0x00000100) != 0)) {
5704  size += com.google.protobuf.CodedOutputStream
5705  .computeInt64Size(40, maxMemoryInMb_);
5706  }
5707  if (((bitField1_ & 0x00000800) != 0)) {
5708  size += com.google.protobuf.CodedOutputStream
5709  .computeBoolSize(41, logSearchProgress_);
5710  }
5711  if (((bitField1_ & 0x00001000) != 0)) {
5712  size += com.google.protobuf.CodedOutputStream
5713  .computeBoolSize(43, usePbResolution_);
5714  }
5715  if (((bitField0_ & 0x00000004) != 0)) {
5716  size += com.google.protobuf.CodedOutputStream
5717  .computeBoolSize(44, usePhaseSaving_);
5718  }
5719  if (((bitField0_ & 0x00000008) != 0)) {
5720  size += com.google.protobuf.CodedOutputStream
5721  .computeDoubleSize(45, randomPolarityRatio_);
5722  }
5723  if (((bitField0_ & 0x00010000) != 0)) {
5724  size += com.google.protobuf.CodedOutputStream
5725  .computeInt32Size(46, pbCleanupIncrement_);
5726  }
5727  if (((bitField0_ & 0x00020000) != 0)) {
5728  size += com.google.protobuf.CodedOutputStream
5729  .computeDoubleSize(47, pbCleanupRatio_);
5730  }
5731  if (((bitField1_ & 0x00002000) != 0)) {
5732  size += com.google.protobuf.CodedOutputStream
5733  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
5734  }
5735  if (((bitField1_ & 0x00004000) != 0)) {
5736  size += com.google.protobuf.CodedOutputStream
5737  .computeBoolSize(49, countAssumptionLevelsInLbd_);
5738  }
5739  if (((bitField1_ & 0x00800000) != 0)) {
5740  size += com.google.protobuf.CodedOutputStream
5741  .computeBoolSize(50, minimizeCore_);
5742  }
5743  if (((bitField1_ & 0x04000000) != 0)) {
5744  size += com.google.protobuf.CodedOutputStream
5745  .computeEnumSize(51, maxSatAssumptionOrder_);
5746  }
5747  if (((bitField1_ & 0x08000000) != 0)) {
5748  size += com.google.protobuf.CodedOutputStream
5749  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
5750  }
5751  if (((bitField1_ & 0x10000000) != 0)) {
5752  size += com.google.protobuf.CodedOutputStream
5753  .computeEnumSize(53, maxSatStratification_);
5754  }
5755  if (((bitField1_ & 0x00008000) != 0)) {
5756  size += com.google.protobuf.CodedOutputStream
5757  .computeInt32Size(54, presolveBveThreshold_);
5758  }
5759  if (((bitField1_ & 0x00010000) != 0)) {
5760  size += com.google.protobuf.CodedOutputStream
5761  .computeInt32Size(55, presolveBveClauseWeight_);
5762  }
5763  if (((bitField0_ & 0x00000400) != 0)) {
5764  size += com.google.protobuf.CodedOutputStream
5765  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
5766  }
5767  if (((bitField1_ & 0x00020000) != 0)) {
5768  size += com.google.protobuf.CodedOutputStream
5769  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
5770  }
5771  if (((bitField0_ & 0x00002000) != 0)) {
5772  size += com.google.protobuf.CodedOutputStream
5773  .computeEnumSize(58, clauseCleanupProtection_);
5774  }
5775  if (((bitField0_ & 0x00004000) != 0)) {
5776  size += com.google.protobuf.CodedOutputStream
5777  .computeInt32Size(59, clauseCleanupLbdBound_);
5778  }
5779  if (((bitField0_ & 0x00008000) != 0)) {
5780  size += com.google.protobuf.CodedOutputStream
5781  .computeEnumSize(60, clauseCleanupOrdering_);
5782  }
5783  {
5784  int dataSize = 0;
5785  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5786  dataSize += com.google.protobuf.CodedOutputStream
5787  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
5788  }
5789  size += dataSize;
5790  size += 2 * restartAlgorithms_.size();
5791  }
5792  if (((bitField0_ & 0x20000000) != 0)) {
5793  size += com.google.protobuf.CodedOutputStream
5794  .computeInt32Size(62, restartRunningWindowSize_);
5795  }
5796  if (((bitField0_ & 0x40000000) != 0)) {
5797  size += com.google.protobuf.CodedOutputStream
5798  .computeDoubleSize(63, restartDlAverageRatio_);
5799  }
5800  if (((bitField1_ & 0x00000001) != 0)) {
5801  size += com.google.protobuf.CodedOutputStream
5802  .computeBoolSize(64, useBlockingRestart_);
5803  }
5804  if (((bitField1_ & 0x00000002) != 0)) {
5805  size += com.google.protobuf.CodedOutputStream
5806  .computeInt32Size(65, blockingRestartWindowSize_);
5807  }
5808  if (((bitField1_ & 0x00000004) != 0)) {
5809  size += com.google.protobuf.CodedOutputStream
5810  .computeDoubleSize(66, blockingRestartMultiplier_);
5811  }
5812  if (((bitField1_ & 0x00000040) != 0)) {
5813  size += com.google.protobuf.CodedOutputStream
5814  .computeDoubleSize(67, maxDeterministicTime_);
5815  }
5816  if (((bitField1_ & 0x00000008) != 0)) {
5817  size += com.google.protobuf.CodedOutputStream
5818  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
5819  }
5820  if (((bitField1_ & 0x00000010) != 0)) {
5821  size += com.google.protobuf.CodedOutputStream
5822  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
5823  }
5824  if (((bitField0_ & 0x08000000) != 0)) {
5825  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
5826  }
5827  if (((bitField0_ & 0x80000000) != 0)) {
5828  size += com.google.protobuf.CodedOutputStream
5829  .computeDoubleSize(71, restartLbdAverageRatio_);
5830  }
5831  if (((bitField1_ & 0x00080000) != 0)) {
5832  size += com.google.protobuf.CodedOutputStream
5833  .computeBoolSize(72, presolveUseBva_);
5834  }
5835  if (((bitField1_ & 0x00100000) != 0)) {
5836  size += com.google.protobuf.CodedOutputStream
5837  .computeInt32Size(73, presolveBvaThreshold_);
5838  }
5839  if (((bitField1_ & 0x20000000) != 0)) {
5840  size += com.google.protobuf.CodedOutputStream
5841  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
5842  }
5843  if (((bitField0_ & 0x00000020) != 0)) {
5844  size += com.google.protobuf.CodedOutputStream
5845  .computeBoolSize(75, useErwaHeuristic_);
5846  }
5847  if (((bitField0_ & 0x00000040) != 0)) {
5848  size += com.google.protobuf.CodedOutputStream
5849  .computeDoubleSize(76, initialVariablesActivity_);
5850  }
5851  if (((bitField0_ & 0x00000080) != 0)) {
5852  size += com.google.protobuf.CodedOutputStream
5853  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
5854  }
5855  if (((bitField1_ & 0x40000000) != 0)) {
5856  size += com.google.protobuf.CodedOutputStream
5857  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
5858  }
5859  if (((bitField1_ & 0x80000000) != 0)) {
5860  size += com.google.protobuf.CodedOutputStream
5861  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
5862  }
5863  if (((bitField2_ & 0x00000001) != 0)) {
5864  size += com.google.protobuf.CodedOutputStream
5865  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
5866  }
5867  if (((bitField2_ & 0x00004000) != 0)) {
5868  size += com.google.protobuf.CodedOutputStream
5869  .computeEnumSize(82, searchBranching_);
5870  }
5871  if (((bitField2_ & 0x00100000) != 0)) {
5872  size += com.google.protobuf.CodedOutputStream
5873  .computeBoolSize(83, optimizeWithCore_);
5874  }
5875  if (((bitField1_ & 0x01000000) != 0)) {
5876  size += com.google.protobuf.CodedOutputStream
5877  .computeBoolSize(84, findMultipleCores_);
5878  }
5879  if (((bitField2_ & 0x00400000) != 0)) {
5880  size += com.google.protobuf.CodedOutputStream
5881  .computeBoolSize(85, optimizeWithMaxHs_);
5882  }
5883  if (((bitField2_ & 0x00800000) != 0)) {
5884  size += com.google.protobuf.CodedOutputStream
5885  .computeBoolSize(86, cpModelPresolve_);
5886  }
5887  if (((bitField2_ & 0x04000000) != 0)) {
5888  size += com.google.protobuf.CodedOutputStream
5889  .computeBoolSize(87, enumerateAllSolutions_);
5890  }
5891  if (((bitField1_ & 0x00040000) != 0)) {
5892  size += com.google.protobuf.CodedOutputStream
5893  .computeBoolSize(88, presolveBlockedClause_);
5894  }
5895  if (((bitField1_ & 0x02000000) != 0)) {
5896  size += com.google.protobuf.CodedOutputStream
5897  .computeBoolSize(89, coverOptimization_);
5898  }
5899  if (((bitField2_ & 0x00000002) != 0)) {
5900  size += com.google.protobuf.CodedOutputStream
5901  .computeInt32Size(90, linearizationLevel_);
5902  }
5903  if (((bitField2_ & 0x00000008) != 0)) {
5904  size += com.google.protobuf.CodedOutputStream
5905  .computeInt32Size(91, maxNumCuts_);
5906  }
5907  if (((bitField2_ & 0x00000010) != 0)) {
5908  size += com.google.protobuf.CodedOutputStream
5909  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
5910  }
5911  if (((bitField2_ & 0x02000000) != 0)) {
5912  size += com.google.protobuf.CodedOutputStream
5913  .computeBoolSize(93, cpModelUseSatPresolve_);
5914  }
5915  if (((bitField2_ & 0x00008000) != 0)) {
5916  size += com.google.protobuf.CodedOutputStream
5917  .computeBoolSize(94, exploitIntegerLpSolution_);
5918  }
5919  if (((bitField2_ & 0x20000000) != 0)) {
5920  size += com.google.protobuf.CodedOutputStream
5921  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
5922  }
5923  if (((bitField0_ & 0x00040000) != 0)) {
5924  size += com.google.protobuf.CodedOutputStream
5925  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
5926  }
5927  if (((bitField0_ & 0x00080000) != 0)) {
5928  size += com.google.protobuf.CodedOutputStream
5929  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
5930  }
5931  if (((bitField2_ & 0x40000000) != 0)) {
5932  size += com.google.protobuf.CodedOutputStream
5933  .computeBoolSize(98, stopAfterFirstSolution_);
5934  }
5935  if (((bitField2_ & 0x00200000) != 0)) {
5936  size += com.google.protobuf.CodedOutputStream
5937  .computeInt32Size(99, binarySearchNumConflicts_);
5938  }
5939  if (((bitField2_ & 0x80000000) != 0)) {
5940  size += com.google.protobuf.CodedOutputStream
5941  .computeInt32Size(100, numSearchWorkers_);
5942  }
5943  if (((bitField3_ & 0x00000010) != 0)) {
5944  size += com.google.protobuf.CodedOutputStream
5945  .computeBoolSize(101, useLnsOnly_);
5946  }
5947  if (((bitField3_ & 0x00000100) != 0)) {
5948  size += com.google.protobuf.CodedOutputStream
5949  .computeBoolSize(103, randomizeSearch_);
5950  }
5951  if (((bitField3_ & 0x00000200) != 0)) {
5952  size += com.google.protobuf.CodedOutputStream
5953  .computeInt64Size(104, searchRandomizationTolerance_);
5954  }
5955  if (((bitField3_ & 0x00000020) != 0)) {
5956  size += com.google.protobuf.CodedOutputStream
5957  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
5958  }
5959  if (((bitField2_ & 0x10000000) != 0)) {
5960  size += com.google.protobuf.CodedOutputStream
5961  .computeBoolSize(106, instantiateAllVariables_);
5962  }
5963  if (((bitField2_ & 0x00000004) != 0)) {
5964  size += com.google.protobuf.CodedOutputStream
5965  .computeInt32Size(107, booleanEncodingLevel_);
5966  }
5967  if (((bitField3_ & 0x00000400) != 0)) {
5968  size += com.google.protobuf.CodedOutputStream
5969  .computeBoolSize(108, useOptionalVariables_);
5970  }
5971  if (((bitField3_ & 0x00000800) != 0)) {
5972  size += com.google.protobuf.CodedOutputStream
5973  .computeBoolSize(109, useExactLpReason_);
5974  }
5975  if (((bitField2_ & 0x01000000) != 0)) {
5976  size += com.google.protobuf.CodedOutputStream
5977  .computeInt32Size(110, cpModelProbingLevel_);
5978  }
5979  if (((bitField2_ & 0x00000020) != 0)) {
5980  size += com.google.protobuf.CodedOutputStream
5981  .computeBoolSize(111, addKnapsackCuts_);
5982  }
5983  if (((bitField2_ & 0x00000400) != 0)) {
5984  size += com.google.protobuf.CodedOutputStream
5985  .computeBoolSize(112, addLpConstraintsLazily_);
5986  }
5987  if (((bitField3_ & 0x00000004) != 0)) {
5988  size += com.google.protobuf.CodedOutputStream
5989  .computeBoolSize(113, shareObjectiveBounds_);
5990  }
5991  if (((bitField3_ & 0x00000008) != 0)) {
5992  size += com.google.protobuf.CodedOutputStream
5993  .computeBoolSize(114, shareLevelZeroBounds_);
5994  }
5995  if (((bitField2_ & 0x00000800) != 0)) {
5996  size += com.google.protobuf.CodedOutputStream
5997  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
5998  }
5999  if (((bitField2_ & 0x00010000) != 0)) {
6000  size += com.google.protobuf.CodedOutputStream
6001  .computeBoolSize(116, exploitAllLpSolution_);
6002  }
6003  if (((bitField2_ & 0x00000040) != 0)) {
6004  size += com.google.protobuf.CodedOutputStream
6005  .computeBoolSize(117, addCgCuts_);
6006  }
6007  if (((bitField2_ & 0x00000100) != 0)) {
6008  size += com.google.protobuf.CodedOutputStream
6009  .computeBoolSize(118, useMirRounding_);
6010  }
6011  if (((bitField2_ & 0x00000200) != 0)) {
6012  size += com.google.protobuf.CodedOutputStream
6013  .computeInt32Size(119, maxIntegerRoundingScaling_);
6014  }
6015  if (((bitField2_ & 0x00000080) != 0)) {
6016  size += com.google.protobuf.CodedOutputStream
6017  .computeBoolSize(120, addMirCuts_);
6018  }
6019  if (((bitField2_ & 0x00001000) != 0)) {
6020  size += com.google.protobuf.CodedOutputStream
6021  .computeInt64Size(121, maxInactiveCount_);
6022  }
6023  if (((bitField2_ & 0x00002000) != 0)) {
6024  size += com.google.protobuf.CodedOutputStream
6025  .computeInt64Size(122, constraintRemovalBatchSize_);
6026  }
6027  if (((bitField2_ & 0x00080000) != 0)) {
6028  size += com.google.protobuf.CodedOutputStream
6029  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
6030  }
6031  if (((bitField3_ & 0x00002000) != 0)) {
6032  size += com.google.protobuf.CodedOutputStream
6033  .computeDoubleSize(124, mipMaxBound_);
6034  }
6035  if (((bitField3_ & 0x00004000) != 0)) {
6036  size += com.google.protobuf.CodedOutputStream
6037  .computeDoubleSize(125, mipVarScaling_);
6038  }
6039  if (((bitField3_ & 0x00008000) != 0)) {
6040  size += com.google.protobuf.CodedOutputStream
6041  .computeDoubleSize(126, mipWantedPrecision_);
6042  }
6043  if (((bitField3_ & 0x00010000) != 0)) {
6044  size += com.google.protobuf.CodedOutputStream
6045  .computeInt32Size(127, mipMaxActivityExponent_);
6046  }
6047  if (((bitField3_ & 0x00020000) != 0)) {
6048  size += com.google.protobuf.CodedOutputStream
6049  .computeDoubleSize(128, mipCheckPrecision_);
6050  }
6051  if (((bitField3_ & 0x00000040) != 0)) {
6052  size += com.google.protobuf.CodedOutputStream
6053  .computeBoolSize(129, useRinsLns_);
6054  }
6055  if (((bitField2_ & 0x00020000) != 0)) {
6056  size += com.google.protobuf.CodedOutputStream
6057  .computeBoolSize(130, exploitBestSolution_);
6058  }
6059  if (((bitField2_ & 0x00040000) != 0)) {
6060  size += com.google.protobuf.CodedOutputStream
6061  .computeBoolSize(131, exploitObjective_);
6062  }
6063  if (((bitField2_ & 0x08000000) != 0)) {
6064  size += com.google.protobuf.CodedOutputStream
6065  .computeBoolSize(132, fillTightenedDomainsInResponse_);
6066  }
6067  if (((bitField3_ & 0x00001000) != 0)) {
6068  size += com.google.protobuf.CodedOutputStream
6069  .computeBoolSize(133, useCombinedNoOverlap_);
6070  }
6071  if (((bitField3_ & 0x00000002) != 0)) {
6072  size += com.google.protobuf.CodedOutputStream
6073  .computeBoolSize(134, deterministicParallelSearch_);
6074  }
6075  if (((bitField3_ & 0x00040000) != 0)) {
6076  size += com.google.protobuf.CodedOutputStream
6077  .computeBoolSize(135, catchSigintSignal_);
6078  }
6079  if (((bitField3_ & 0x00000001) != 0)) {
6080  size += com.google.protobuf.CodedOutputStream
6081  .computeBoolSize(136, interleaveSearch_);
6082  }
6083  if (((bitField3_ & 0x00000080) != 0)) {
6084  size += com.google.protobuf.CodedOutputStream
6085  .computeBoolSize(137, diversifyLnsParams_);
6086  }
6087  if (((bitField1_ & 0x00200000) != 0)) {
6088  size += com.google.protobuf.CodedOutputStream
6089  .computeInt32Size(138, maxPresolveIterations_);
6090  }
6091  size += unknownFields.getSerializedSize();
6092  memoizedSize = size;
6093  return size;
6094  }
6095 
6096  @java.lang.Override
6097  public boolean equals(final java.lang.Object obj) {
6098  if (obj == this) {
6099  return true;
6100  }
6101  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
6102  return super.equals(obj);
6103  }
6105 
6106  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
6107  if (hasPreferredVariableOrder()) {
6108  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
6109  }
6110  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
6111  if (hasInitialPolarity()) {
6112  if (initialPolarity_ != other.initialPolarity_) return false;
6113  }
6114  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
6115  if (hasUsePhaseSaving()) {
6116  if (getUsePhaseSaving()
6117  != other.getUsePhaseSaving()) return false;
6118  }
6119  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
6120  if (hasRandomPolarityRatio()) {
6121  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
6122  != java.lang.Double.doubleToLongBits(
6123  other.getRandomPolarityRatio())) return false;
6124  }
6125  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
6126  if (hasRandomBranchesRatio()) {
6127  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
6128  != java.lang.Double.doubleToLongBits(
6129  other.getRandomBranchesRatio())) return false;
6130  }
6131  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
6132  if (hasUseErwaHeuristic()) {
6133  if (getUseErwaHeuristic()
6134  != other.getUseErwaHeuristic()) return false;
6135  }
6136  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
6138  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
6139  != java.lang.Double.doubleToLongBits(
6140  other.getInitialVariablesActivity())) return false;
6141  }
6142  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
6145  != other.getAlsoBumpVariablesInConflictReasons()) return false;
6146  }
6147  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
6148  if (hasMinimizationAlgorithm()) {
6149  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
6150  }
6151  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
6153  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
6154  }
6155  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
6158  != other.getSubsumptionDuringConflictAnalysis()) return false;
6159  }
6160  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
6161  if (hasClauseCleanupPeriod()) {
6163  != other.getClauseCleanupPeriod()) return false;
6164  }
6165  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
6166  if (hasClauseCleanupTarget()) {
6168  != other.getClauseCleanupTarget()) return false;
6169  }
6170  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
6172  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
6173  }
6174  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
6175  if (hasClauseCleanupLbdBound()) {
6177  != other.getClauseCleanupLbdBound()) return false;
6178  }
6179  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
6180  if (hasClauseCleanupOrdering()) {
6181  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
6182  }
6183  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
6184  if (hasPbCleanupIncrement()) {
6185  if (getPbCleanupIncrement()
6186  != other.getPbCleanupIncrement()) return false;
6187  }
6188  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
6189  if (hasPbCleanupRatio()) {
6190  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
6191  != java.lang.Double.doubleToLongBits(
6192  other.getPbCleanupRatio())) return false;
6193  }
6194  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
6197  != other.getMinimizeWithPropagationRestartPeriod()) return false;
6198  }
6199  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
6202  != other.getMinimizeWithPropagationNumDecisions()) return false;
6203  }
6204  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
6205  if (hasVariableActivityDecay()) {
6206  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
6207  != java.lang.Double.doubleToLongBits(
6208  other.getVariableActivityDecay())) return false;
6209  }
6210  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6212  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6213  != java.lang.Double.doubleToLongBits(
6214  other.getMaxVariableActivityValue())) return false;
6215  }
6216  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6217  if (hasGlucoseMaxDecay()) {
6218  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6219  != java.lang.Double.doubleToLongBits(
6220  other.getGlucoseMaxDecay())) return false;
6221  }
6222  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
6223  if (hasGlucoseDecayIncrement()) {
6224  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
6225  != java.lang.Double.doubleToLongBits(
6226  other.getGlucoseDecayIncrement())) return false;
6227  }
6228  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
6231  != other.getGlucoseDecayIncrementPeriod()) return false;
6232  }
6233  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
6234  if (hasClauseActivityDecay()) {
6235  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
6236  != java.lang.Double.doubleToLongBits(
6237  other.getClauseActivityDecay())) return false;
6238  }
6239  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
6240  if (hasMaxClauseActivityValue()) {
6241  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
6242  != java.lang.Double.doubleToLongBits(
6243  other.getMaxClauseActivityValue())) return false;
6244  }
6245  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
6246  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
6249  .equals(other.getDefaultRestartAlgorithms())) return false;
6250  }
6251  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
6252  if (hasRestartPeriod()) {
6253  if (getRestartPeriod()
6254  != other.getRestartPeriod()) return false;
6255  }
6256  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
6259  != other.getRestartRunningWindowSize()) return false;
6260  }
6261  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
6262  if (hasRestartDlAverageRatio()) {
6263  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
6264  != java.lang.Double.doubleToLongBits(
6265  other.getRestartDlAverageRatio())) return false;
6266  }
6267  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
6268  if (hasRestartLbdAverageRatio()) {
6269  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
6270  != java.lang.Double.doubleToLongBits(
6271  other.getRestartLbdAverageRatio())) return false;
6272  }
6273  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
6274  if (hasUseBlockingRestart()) {
6275  if (getUseBlockingRestart()
6276  != other.getUseBlockingRestart()) return false;
6277  }
6278  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
6281  != other.getBlockingRestartWindowSize()) return false;
6282  }
6283  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
6285  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
6286  != java.lang.Double.doubleToLongBits(
6287  other.getBlockingRestartMultiplier())) return false;
6288  }
6289  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
6292  != other.getNumConflictsBeforeStrategyChanges()) return false;
6293  }
6294  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
6296  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
6297  != java.lang.Double.doubleToLongBits(
6298  other.getStrategyChangeIncreaseRatio())) return false;
6299  }
6300  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
6301  if (hasMaxTimeInSeconds()) {
6302  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
6303  != java.lang.Double.doubleToLongBits(
6304  other.getMaxTimeInSeconds())) return false;
6305  }
6306  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
6307  if (hasMaxDeterministicTime()) {
6308  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
6309  != java.lang.Double.doubleToLongBits(
6310  other.getMaxDeterministicTime())) return false;
6311  }
6312  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
6313  if (hasMaxNumberOfConflicts()) {
6315  != other.getMaxNumberOfConflicts()) return false;
6316  }
6317  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
6318  if (hasMaxMemoryInMb()) {
6319  if (getMaxMemoryInMb()
6320  != other.getMaxMemoryInMb()) return false;
6321  }
6322  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
6325  != other.getTreatBinaryClausesSeparately()) return false;
6326  }
6327  if (hasRandomSeed() != other.hasRandomSeed()) return false;
6328  if (hasRandomSeed()) {
6329  if (getRandomSeed()
6330  != other.getRandomSeed()) return false;
6331  }
6332  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
6333  if (hasLogSearchProgress()) {
6334  if (getLogSearchProgress()
6335  != other.getLogSearchProgress()) return false;
6336  }
6337  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
6338  if (hasUsePbResolution()) {
6339  if (getUsePbResolution()
6340  != other.getUsePbResolution()) return false;
6341  }
6342  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
6345  != other.getMinimizeReductionDuringPbResolution()) return false;
6346  }
6347  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
6350  != other.getCountAssumptionLevelsInLbd()) return false;
6351  }
6352  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
6353  if (hasPresolveBveThreshold()) {
6355  != other.getPresolveBveThreshold()) return false;
6356  }
6357  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
6360  != other.getPresolveBveClauseWeight()) return false;
6361  }
6362  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
6364  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
6365  != java.lang.Double.doubleToLongBits(
6366  other.getPresolveProbingDeterministicTimeLimit())) return false;
6367  }
6368  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
6369  if (hasPresolveBlockedClause()) {
6371  != other.getPresolveBlockedClause()) return false;
6372  }
6373  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
6374  if (hasPresolveUseBva()) {
6375  if (getPresolveUseBva()
6376  != other.getPresolveUseBva()) return false;
6377  }
6378  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
6379  if (hasPresolveBvaThreshold()) {
6381  != other.getPresolveBvaThreshold()) return false;
6382  }
6383  if (hasMaxPresolveIterations() != other.hasMaxPresolveIterations()) return false;
6384  if (hasMaxPresolveIterations()) {
6386  != other.getMaxPresolveIterations()) return false;
6387  }
6388  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
6389  if (hasUseOptimizationHints()) {
6391  != other.getUseOptimizationHints()) return false;
6392  }
6393  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
6394  if (hasMinimizeCore()) {
6395  if (getMinimizeCore()
6396  != other.getMinimizeCore()) return false;
6397  }
6398  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
6399  if (hasFindMultipleCores()) {
6400  if (getFindMultipleCores()
6401  != other.getFindMultipleCores()) return false;
6402  }
6403  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
6404  if (hasCoverOptimization()) {
6405  if (getCoverOptimization()
6406  != other.getCoverOptimization()) return false;
6407  }
6408  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
6409  if (hasMaxSatAssumptionOrder()) {
6410  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
6411  }
6412  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
6415  != other.getMaxSatReverseAssumptionOrder()) return false;
6416  }
6417  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
6418  if (hasMaxSatStratification()) {
6419  if (maxSatStratification_ != other.maxSatStratification_) return false;
6420  }
6421  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
6424  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
6425  }
6426  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
6429  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
6430  }
6431  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6434  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6435  }
6436  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6439  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6440  }
6441  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
6442  if (hasLinearizationLevel()) {
6443  if (getLinearizationLevel()
6444  != other.getLinearizationLevel()) return false;
6445  }
6446  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
6447  if (hasBooleanEncodingLevel()) {
6449  != other.getBooleanEncodingLevel()) return false;
6450  }
6451  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
6452  if (hasMaxNumCuts()) {
6453  if (getMaxNumCuts()
6454  != other.getMaxNumCuts()) return false;
6455  }
6456  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
6457  if (hasOnlyAddCutsAtLevelZero()) {
6459  != other.getOnlyAddCutsAtLevelZero()) return false;
6460  }
6461  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
6462  if (hasAddKnapsackCuts()) {
6463  if (getAddKnapsackCuts()
6464  != other.getAddKnapsackCuts()) return false;
6465  }
6466  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
6467  if (hasAddCgCuts()) {
6468  if (getAddCgCuts()
6469  != other.getAddCgCuts()) return false;
6470  }
6471  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
6472  if (hasAddMirCuts()) {
6473  if (getAddMirCuts()
6474  != other.getAddMirCuts()) return false;
6475  }
6476  if (hasUseMirRounding() != other.hasUseMirRounding()) return false;
6477  if (hasUseMirRounding()) {
6478  if (getUseMirRounding()
6479  != other.getUseMirRounding()) return false;
6480  }
6481  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
6484  != other.getMaxIntegerRoundingScaling()) return false;
6485  }
6486  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
6487  if (hasAddLpConstraintsLazily()) {
6489  != other.getAddLpConstraintsLazily()) return false;
6490  }
6491  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
6493  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
6494  != java.lang.Double.doubleToLongBits(
6495  other.getMinOrthogonalityForLpConstraints())) return false;
6496  }
6497  if (hasMaxInactiveCount() != other.hasMaxInactiveCount()) return false;
6498  if (hasMaxInactiveCount()) {
6499  if (getMaxInactiveCount()
6500  != other.getMaxInactiveCount()) return false;
6501  }
6502  if (hasConstraintRemovalBatchSize() != other.hasConstraintRemovalBatchSize()) return false;
6505  != other.getConstraintRemovalBatchSize()) return false;
6506  }
6507  if (hasSearchBranching() != other.hasSearchBranching()) return false;
6508  if (hasSearchBranching()) {
6509  if (searchBranching_ != other.searchBranching_) return false;
6510  }
6511  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
6514  != other.getExploitIntegerLpSolution()) return false;
6515  }
6516  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
6517  if (hasExploitAllLpSolution()) {
6519  != other.getExploitAllLpSolution()) return false;
6520  }
6521  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
6522  if (hasExploitBestSolution()) {
6524  != other.getExploitBestSolution()) return false;
6525  }
6526  if (hasExploitObjective() != other.hasExploitObjective()) return false;
6527  if (hasExploitObjective()) {
6528  if (getExploitObjective()
6529  != other.getExploitObjective()) return false;
6530  }
6531  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
6534  != other.getPseudoCostReliabilityThreshold()) return false;
6535  }
6536  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
6537  if (hasOptimizeWithCore()) {
6538  if (getOptimizeWithCore()
6539  != other.getOptimizeWithCore()) return false;
6540  }
6541  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
6544  != other.getBinarySearchNumConflicts()) return false;
6545  }
6546  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
6547  if (hasOptimizeWithMaxHs()) {
6548  if (getOptimizeWithMaxHs()
6549  != other.getOptimizeWithMaxHs()) return false;
6550  }
6551  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
6552  if (hasCpModelPresolve()) {
6553  if (getCpModelPresolve()
6554  != other.getCpModelPresolve()) return false;
6555  }
6556  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
6557  if (hasCpModelProbingLevel()) {
6559  != other.getCpModelProbingLevel()) return false;
6560  }
6561  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
6562  if (hasCpModelUseSatPresolve()) {
6564  != other.getCpModelUseSatPresolve()) return false;
6565  }
6566  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
6567  if (hasEnumerateAllSolutions()) {
6569  != other.getEnumerateAllSolutions()) return false;
6570  }
6571  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
6574  != other.getFillTightenedDomainsInResponse()) return false;
6575  }
6576  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
6579  != other.getInstantiateAllVariables()) return false;
6580  }
6581  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
6584  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
6585  }
6586  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
6587  if (hasStopAfterFirstSolution()) {
6589  != other.getStopAfterFirstSolution()) return false;
6590  }
6591  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
6592  if (hasNumSearchWorkers()) {
6593  if (getNumSearchWorkers()
6594  != other.getNumSearchWorkers()) return false;
6595  }
6596  if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
6597  if (hasInterleaveSearch()) {
6598  if (getInterleaveSearch()
6599  != other.getInterleaveSearch()) return false;
6600  }
6601  if (hasDeterministicParallelSearch() != other.hasDeterministicParallelSearch()) return false;
6604  != other.getDeterministicParallelSearch()) return false;
6605  }
6606  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
6607  if (hasShareObjectiveBounds()) {
6609  != other.getShareObjectiveBounds()) return false;
6610  }
6611  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
6612  if (hasShareLevelZeroBounds()) {
6614  != other.getShareLevelZeroBounds()) return false;
6615  }
6616  if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
6617  if (hasUseLnsOnly()) {
6618  if (getUseLnsOnly()
6619  != other.getUseLnsOnly()) return false;
6620  }
6621  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
6624  != other.getLnsFocusOnDecisionVariables()) return false;
6625  }
6626  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
6627  if (hasUseRinsLns()) {
6628  if (getUseRinsLns()
6629  != other.getUseRinsLns()) return false;
6630  }
6631  if (hasDiversifyLnsParams() != other.hasDiversifyLnsParams()) return false;
6632  if (hasDiversifyLnsParams()) {
6633  if (getDiversifyLnsParams()
6634  != other.getDiversifyLnsParams()) return false;
6635  }
6636  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
6637  if (hasRandomizeSearch()) {
6638  if (getRandomizeSearch()
6639  != other.getRandomizeSearch()) return false;
6640  }
6641  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
6644  != other.getSearchRandomizationTolerance()) return false;
6645  }
6646  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
6647  if (hasUseOptionalVariables()) {
6649  != other.getUseOptionalVariables()) return false;
6650  }
6651  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
6652  if (hasUseExactLpReason()) {
6653  if (getUseExactLpReason()
6654  != other.getUseExactLpReason()) return false;
6655  }
6656  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
6657  if (hasUseCombinedNoOverlap()) {
6659  != other.getUseCombinedNoOverlap()) return false;
6660  }
6661  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
6662  if (hasMipMaxBound()) {
6663  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
6664  != java.lang.Double.doubleToLongBits(
6665  other.getMipMaxBound())) return false;
6666  }
6667  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
6668  if (hasMipVarScaling()) {
6669  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
6670  != java.lang.Double.doubleToLongBits(
6671  other.getMipVarScaling())) return false;
6672  }
6673  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
6674  if (hasMipWantedPrecision()) {
6675  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
6676  != java.lang.Double.doubleToLongBits(
6677  other.getMipWantedPrecision())) return false;
6678  }
6679  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
6680  if (hasMipMaxActivityExponent()) {
6682  != other.getMipMaxActivityExponent()) return false;
6683  }
6684  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
6685  if (hasMipCheckPrecision()) {
6686  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
6687  != java.lang.Double.doubleToLongBits(
6688  other.getMipCheckPrecision())) return false;
6689  }
6690  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
6691  if (hasCatchSigintSignal()) {
6692  if (getCatchSigintSignal()
6693  != other.getCatchSigintSignal()) return false;
6694  }
6695  if (!unknownFields.equals(other.unknownFields)) return false;
6696  return true;
6697  }
6698 
6699  @java.lang.Override
6700  public int hashCode() {
6701  if (memoizedHashCode != 0) {
6702  return memoizedHashCode;
6703  }
6704  int hash = 41;
6705  hash = (19 * hash) + getDescriptor().hashCode();
6706  if (hasPreferredVariableOrder()) {
6707  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
6708  hash = (53 * hash) + preferredVariableOrder_;
6709  }
6710  if (hasInitialPolarity()) {
6711  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
6712  hash = (53 * hash) + initialPolarity_;
6713  }
6714  if (hasUsePhaseSaving()) {
6715  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
6716  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6717  getUsePhaseSaving());
6718  }
6719  if (hasRandomPolarityRatio()) {
6720  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
6721  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6722  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
6723  }
6724  if (hasRandomBranchesRatio()) {
6725  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
6726  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6727  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
6728  }
6729  if (hasUseErwaHeuristic()) {
6730  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
6731  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6733  }
6735  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
6736  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6737  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
6738  }
6741  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6743  }
6744  if (hasMinimizationAlgorithm()) {
6745  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6746  hash = (53 * hash) + minimizationAlgorithm_;
6747  }
6749  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6750  hash = (53 * hash) + binaryMinimizationAlgorithm_;
6751  }
6754  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6756  }
6757  if (hasClauseCleanupPeriod()) {
6758  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
6759  hash = (53 * hash) + getClauseCleanupPeriod();
6760  }
6761  if (hasClauseCleanupTarget()) {
6762  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
6763  hash = (53 * hash) + getClauseCleanupTarget();
6764  }
6766  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
6767  hash = (53 * hash) + clauseCleanupProtection_;
6768  }
6769  if (hasClauseCleanupLbdBound()) {
6770  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
6771  hash = (53 * hash) + getClauseCleanupLbdBound();
6772  }
6773  if (hasClauseCleanupOrdering()) {
6774  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
6775  hash = (53 * hash) + clauseCleanupOrdering_;
6776  }
6777  if (hasPbCleanupIncrement()) {
6778  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
6779  hash = (53 * hash) + getPbCleanupIncrement();
6780  }
6781  if (hasPbCleanupRatio()) {
6782  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
6783  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6784  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
6785  }
6788  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
6789  }
6792  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
6793  }
6794  if (hasVariableActivityDecay()) {
6795  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
6796  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6797  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
6798  }
6800  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
6801  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6802  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
6803  }
6804  if (hasGlucoseMaxDecay()) {
6805  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
6806  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6807  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
6808  }
6809  if (hasGlucoseDecayIncrement()) {
6810  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
6811  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6812  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
6813  }
6815  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
6816  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
6817  }
6818  if (hasClauseActivityDecay()) {
6819  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
6820  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6821  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
6822  }
6823  if (hasMaxClauseActivityValue()) {
6824  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
6825  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6826  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
6827  }
6828  if (getRestartAlgorithmsCount() > 0) {
6829  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
6830  hash = (53 * hash) + restartAlgorithms_.hashCode();
6831  }
6833  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
6834  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
6835  }
6836  if (hasRestartPeriod()) {
6837  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
6838  hash = (53 * hash) + getRestartPeriod();
6839  }
6841  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
6842  hash = (53 * hash) + getRestartRunningWindowSize();
6843  }
6844  if (hasRestartDlAverageRatio()) {
6845  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
6846  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6847  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
6848  }
6849  if (hasRestartLbdAverageRatio()) {
6850  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
6851  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6852  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
6853  }
6854  if (hasUseBlockingRestart()) {
6855  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
6856  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6858  }
6860  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
6861  hash = (53 * hash) + getBlockingRestartWindowSize();
6862  }
6864  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
6865  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6866  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
6867  }
6870  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
6871  }
6873  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
6874  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6875  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
6876  }
6877  if (hasMaxTimeInSeconds()) {
6878  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
6879  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6880  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
6881  }
6882  if (hasMaxDeterministicTime()) {
6883  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
6884  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6885  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
6886  }
6887  if (hasMaxNumberOfConflicts()) {
6888  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
6889  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6891  }
6892  if (hasMaxMemoryInMb()) {
6893  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
6894  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6895  getMaxMemoryInMb());
6896  }
6898  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
6899  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6901  }
6902  if (hasRandomSeed()) {
6903  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
6904  hash = (53 * hash) + getRandomSeed();
6905  }
6906  if (hasLogSearchProgress()) {
6907  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
6908  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6910  }
6911  if (hasUsePbResolution()) {
6912  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
6913  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6914  getUsePbResolution());
6915  }
6918  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6920  }
6922  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
6923  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6925  }
6926  if (hasPresolveBveThreshold()) {
6927  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
6928  hash = (53 * hash) + getPresolveBveThreshold();
6929  }
6931  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
6932  hash = (53 * hash) + getPresolveBveClauseWeight();
6933  }
6936  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6937  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
6938  }
6939  if (hasPresolveBlockedClause()) {
6940  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
6941  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6943  }
6944  if (hasPresolveUseBva()) {
6945  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
6946  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6947  getPresolveUseBva());
6948  }
6949  if (hasPresolveBvaThreshold()) {
6950  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
6951  hash = (53 * hash) + getPresolveBvaThreshold();
6952  }
6953  if (hasMaxPresolveIterations()) {
6954  hash = (37 * hash) + MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER;
6955  hash = (53 * hash) + getMaxPresolveIterations();
6956  }
6957  if (hasUseOptimizationHints()) {
6958  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
6959  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6961  }
6962  if (hasMinimizeCore()) {
6963  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
6964  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6965  getMinimizeCore());
6966  }
6967  if (hasFindMultipleCores()) {
6968  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
6969  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6971  }
6972  if (hasCoverOptimization()) {
6973  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
6974  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6976  }
6977  if (hasMaxSatAssumptionOrder()) {
6978  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
6979  hash = (53 * hash) + maxSatAssumptionOrder_;
6980  }
6982  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
6983  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6985  }
6986  if (hasMaxSatStratification()) {
6987  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
6988  hash = (53 * hash) + maxSatStratification_;
6989  }
6992  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6994  }
6997  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6999  }
7002  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7004  }
7007  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7009  }
7010  if (hasLinearizationLevel()) {
7011  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
7012  hash = (53 * hash) + getLinearizationLevel();
7013  }
7014  if (hasBooleanEncodingLevel()) {
7015  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
7016  hash = (53 * hash) + getBooleanEncodingLevel();
7017  }
7018  if (hasMaxNumCuts()) {
7019  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
7020  hash = (53 * hash) + getMaxNumCuts();
7021  }
7022  if (hasOnlyAddCutsAtLevelZero()) {
7023  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
7024  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7026  }
7027  if (hasAddKnapsackCuts()) {
7028  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
7029  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7030  getAddKnapsackCuts());
7031  }
7032  if (hasAddCgCuts()) {
7033  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
7034  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7035  getAddCgCuts());
7036  }
7037  if (hasAddMirCuts()) {
7038  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
7039  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7040  getAddMirCuts());
7041  }
7042  if (hasUseMirRounding()) {
7043  hash = (37 * hash) + USE_MIR_ROUNDING_FIELD_NUMBER;
7044  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7045  getUseMirRounding());
7046  }
7048  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
7049  hash = (53 * hash) + getMaxIntegerRoundingScaling();
7050  }
7051  if (hasAddLpConstraintsLazily()) {
7052  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
7053  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7055  }
7058  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7059  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
7060  }
7061  if (hasMaxInactiveCount()) {
7062  hash = (37 * hash) + MAX_INACTIVE_COUNT_FIELD_NUMBER;
7063  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7065  }
7067  hash = (37 * hash) + CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER;
7068  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7070  }
7071  if (hasSearchBranching()) {
7072  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
7073  hash = (53 * hash) + searchBranching_;
7074  }
7076  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
7077  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7079  }
7080  if (hasExploitAllLpSolution()) {
7081  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
7082  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7084  }
7085  if (hasExploitBestSolution()) {
7086  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
7087  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7089  }
7090  if (hasExploitObjective()) {
7091  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
7092  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7094  }
7097  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7099  }
7100  if (hasOptimizeWithCore()) {
7101  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
7102  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7104  }
7106  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
7107  hash = (53 * hash) + getBinarySearchNumConflicts();
7108  }
7109  if (hasOptimizeWithMaxHs()) {
7110  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
7111  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7113  }
7114  if (hasCpModelPresolve()) {
7115  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
7116  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7117  getCpModelPresolve());
7118  }
7119  if (hasCpModelProbingLevel()) {
7120  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
7121  hash = (53 * hash) + getCpModelProbingLevel();
7122  }
7123  if (hasCpModelUseSatPresolve()) {
7124  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
7125  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7127  }
7128  if (hasEnumerateAllSolutions()) {
7129  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
7130  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7132  }
7135  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7137  }
7139  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
7140  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7142  }
7145  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7147  }
7148  if (hasStopAfterFirstSolution()) {
7149  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
7150  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7152  }
7153  if (hasNumSearchWorkers()) {
7154  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
7155  hash = (53 * hash) + getNumSearchWorkers();
7156  }
7157  if (hasInterleaveSearch()) {
7158  hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
7159  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7161  }
7163  hash = (37 * hash) + DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER;
7164  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7166  }
7167  if (hasShareObjectiveBounds()) {
7168  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
7169  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7171  }
7172  if (hasShareLevelZeroBounds()) {
7173  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
7174  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7176  }
7177  if (hasUseLnsOnly()) {
7178  hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
7179  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7180  getUseLnsOnly());
7181  }
7183  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
7184  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7186  }
7187  if (hasUseRinsLns()) {
7188  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
7189  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7190  getUseRinsLns());
7191  }
7192  if (hasDiversifyLnsParams()) {
7193  hash = (37 * hash) + DIVERSIFY_LNS_PARAMS_FIELD_NUMBER;
7194  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7196  }
7197  if (hasRandomizeSearch()) {
7198  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
7199  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7200  getRandomizeSearch());
7201  }
7203  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
7204  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7206  }
7207  if (hasUseOptionalVariables()) {
7208  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
7209  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7211  }
7212  if (hasUseExactLpReason()) {
7213  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
7214  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7216  }
7217  if (hasUseCombinedNoOverlap()) {
7218  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
7219  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7221  }
7222  if (hasMipMaxBound()) {
7223  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
7224  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7225  java.lang.Double.doubleToLongBits(getMipMaxBound()));
7226  }
7227  if (hasMipVarScaling()) {
7228  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
7229  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7230  java.lang.Double.doubleToLongBits(getMipVarScaling()));
7231  }
7232  if (hasMipWantedPrecision()) {
7233  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
7234  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7235  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
7236  }
7237  if (hasMipMaxActivityExponent()) {
7238  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
7239  hash = (53 * hash) + getMipMaxActivityExponent();
7240  }
7241  if (hasMipCheckPrecision()) {
7242  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
7243  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7244  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
7245  }
7246  if (hasCatchSigintSignal()) {
7247  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
7248  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7250  }
7251  hash = (29 * hash) + unknownFields.hashCode();
7252  memoizedHashCode = hash;
7253  return hash;
7254  }
7255 
7257  java.nio.ByteBuffer data)
7258  throws com.google.protobuf.InvalidProtocolBufferException {
7259  return PARSER.parseFrom(data);
7260  }
7262  java.nio.ByteBuffer data,
7263  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7264  throws com.google.protobuf.InvalidProtocolBufferException {
7265  return PARSER.parseFrom(data, extensionRegistry);
7266  }
7268  com.google.protobuf.ByteString data)
7269  throws com.google.protobuf.InvalidProtocolBufferException {
7270  return PARSER.parseFrom(data);
7271  }
7273  com.google.protobuf.ByteString data,
7274  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7275  throws com.google.protobuf.InvalidProtocolBufferException {
7276  return PARSER.parseFrom(data, extensionRegistry);
7277  }
7278  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
7279  throws com.google.protobuf.InvalidProtocolBufferException {
7280  return PARSER.parseFrom(data);
7281  }
7283  byte[] data,
7284  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7285  throws com.google.protobuf.InvalidProtocolBufferException {
7286  return PARSER.parseFrom(data, extensionRegistry);
7287  }
7288  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
7289  throws java.io.IOException {
7290  return com.google.protobuf.GeneratedMessageV3
7291  .parseWithIOException(PARSER, input);
7292  }
7294  java.io.InputStream input,
7295  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7296  throws java.io.IOException {
7297  return com.google.protobuf.GeneratedMessageV3
7298  .parseWithIOException(PARSER, input, extensionRegistry);
7299  }
7300  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
7301  throws java.io.IOException {
7302  return com.google.protobuf.GeneratedMessageV3
7303  .parseDelimitedWithIOException(PARSER, input);
7304  }
7306  java.io.InputStream input,
7307  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7308  throws java.io.IOException {
7309  return com.google.protobuf.GeneratedMessageV3
7310  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7311  }
7313  com.google.protobuf.CodedInputStream input)
7314  throws java.io.IOException {
7315  return com.google.protobuf.GeneratedMessageV3
7316  .parseWithIOException(PARSER, input);
7317  }
7319  com.google.protobuf.CodedInputStream input,
7320  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7321  throws java.io.IOException {
7322  return com.google.protobuf.GeneratedMessageV3
7323  .parseWithIOException(PARSER, input, extensionRegistry);
7324  }
7325 
7326  @java.lang.Override
7327  public Builder newBuilderForType() { return newBuilder(); }
7328  public static Builder newBuilder() {
7329  return DEFAULT_INSTANCE.toBuilder();
7330  }
7331  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
7332  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7333  }
7334  @java.lang.Override
7335  public Builder toBuilder() {
7336  return this == DEFAULT_INSTANCE
7337  ? new Builder() : new Builder().mergeFrom(this);
7338  }
7339 
7340  @java.lang.Override
7342  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7343  Builder builder = new Builder(parent);
7344  return builder;
7345  }
7355  public static final class Builder extends
7356  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7357  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
7358  com.google.ortools.sat.SatParametersOrBuilder {
7359  public static final com.google.protobuf.Descriptors.Descriptor
7361  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7362  }
7363 
7364  @java.lang.Override
7365  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7367  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
7368  .ensureFieldAccessorsInitialized(
7370  }
7371 
7372  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
7373  private Builder() {
7374  maybeForceBuilderInitialization();
7375  }
7376 
7377  private Builder(
7378  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7379  super(parent);
7380  maybeForceBuilderInitialization();
7381  }
7382  private void maybeForceBuilderInitialization() {
7383  if (com.google.protobuf.GeneratedMessageV3
7384  .alwaysUseFieldBuilders) {
7385  }
7386  }
7387  @java.lang.Override
7388  public Builder clear() {
7389  super.clear();
7390  preferredVariableOrder_ = 0;
7391  bitField0_ = (bitField0_ & ~0x00000001);
7392  initialPolarity_ = 1;
7393  bitField0_ = (bitField0_ & ~0x00000002);
7394  usePhaseSaving_ = true;
7395  bitField0_ = (bitField0_ & ~0x00000004);
7396  randomPolarityRatio_ = 0D;
7397  bitField0_ = (bitField0_ & ~0x00000008);
7398  randomBranchesRatio_ = 0D;
7399  bitField0_ = (bitField0_ & ~0x00000010);
7400  useErwaHeuristic_ = false;
7401  bitField0_ = (bitField0_ & ~0x00000020);
7402  initialVariablesActivity_ = 0D;
7403  bitField0_ = (bitField0_ & ~0x00000040);
7404  alsoBumpVariablesInConflictReasons_ = false;
7405  bitField0_ = (bitField0_ & ~0x00000080);
7406  minimizationAlgorithm_ = 2;
7407  bitField0_ = (bitField0_ & ~0x00000100);
7408  binaryMinimizationAlgorithm_ = 1;
7409  bitField0_ = (bitField0_ & ~0x00000200);
7410  subsumptionDuringConflictAnalysis_ = true;
7411  bitField0_ = (bitField0_ & ~0x00000400);
7412  clauseCleanupPeriod_ = 10000;
7413  bitField0_ = (bitField0_ & ~0x00000800);
7414  clauseCleanupTarget_ = 10000;
7415  bitField0_ = (bitField0_ & ~0x00001000);
7416  clauseCleanupProtection_ = 0;
7417  bitField0_ = (bitField0_ & ~0x00002000);
7418  clauseCleanupLbdBound_ = 5;
7419  bitField0_ = (bitField0_ & ~0x00004000);
7420  clauseCleanupOrdering_ = 0;
7421  bitField0_ = (bitField0_ & ~0x00008000);
7422  pbCleanupIncrement_ = 200;
7423  bitField0_ = (bitField0_ & ~0x00010000);
7424  pbCleanupRatio_ = 0.5D;
7425  bitField0_ = (bitField0_ & ~0x00020000);
7426  minimizeWithPropagationRestartPeriod_ = 10;
7427  bitField0_ = (bitField0_ & ~0x00040000);
7428  minimizeWithPropagationNumDecisions_ = 1000;
7429  bitField0_ = (bitField0_ & ~0x00080000);
7430  variableActivityDecay_ = 0.8D;
7431  bitField0_ = (bitField0_ & ~0x00100000);
7432  maxVariableActivityValue_ = 1e+100D;
7433  bitField0_ = (bitField0_ & ~0x00200000);
7434  glucoseMaxDecay_ = 0.95D;
7435  bitField0_ = (bitField0_ & ~0x00400000);
7436  glucoseDecayIncrement_ = 0.01D;
7437  bitField0_ = (bitField0_ & ~0x00800000);
7438  glucoseDecayIncrementPeriod_ = 5000;
7439  bitField0_ = (bitField0_ & ~0x01000000);
7440  clauseActivityDecay_ = 0.999D;
7441  bitField0_ = (bitField0_ & ~0x02000000);
7442  maxClauseActivityValue_ = 1e+20D;
7443  bitField0_ = (bitField0_ & ~0x04000000);
7444  restartAlgorithms_ = java.util.Collections.emptyList();
7445  bitField0_ = (bitField0_ & ~0x08000000);
7446  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
7447  bitField0_ = (bitField0_ & ~0x10000000);
7448  restartPeriod_ = 50;
7449  bitField0_ = (bitField0_ & ~0x20000000);
7450  restartRunningWindowSize_ = 50;
7451  bitField0_ = (bitField0_ & ~0x40000000);
7452  restartDlAverageRatio_ = 1D;
7453  bitField0_ = (bitField0_ & ~0x80000000);
7454  restartLbdAverageRatio_ = 1D;
7455  bitField1_ = (bitField1_ & ~0x00000001);
7456  useBlockingRestart_ = false;
7457  bitField1_ = (bitField1_ & ~0x00000002);
7458  blockingRestartWindowSize_ = 5000;
7459  bitField1_ = (bitField1_ & ~0x00000004);
7460  blockingRestartMultiplier_ = 1.4D;
7461  bitField1_ = (bitField1_ & ~0x00000008);
7462  numConflictsBeforeStrategyChanges_ = 0;
7463  bitField1_ = (bitField1_ & ~0x00000010);
7464  strategyChangeIncreaseRatio_ = 0D;
7465  bitField1_ = (bitField1_ & ~0x00000020);
7466  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
7467  bitField1_ = (bitField1_ & ~0x00000040);
7468  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
7469  bitField1_ = (bitField1_ & ~0x00000080);
7470  maxNumberOfConflicts_ = 9223372036854775807L;
7471  bitField1_ = (bitField1_ & ~0x00000100);
7472  maxMemoryInMb_ = 10000L;
7473  bitField1_ = (bitField1_ & ~0x00000200);
7474  treatBinaryClausesSeparately_ = true;
7475  bitField1_ = (bitField1_ & ~0x00000400);
7476  randomSeed_ = 1;
7477  bitField1_ = (bitField1_ & ~0x00000800);
7478  logSearchProgress_ = false;
7479  bitField1_ = (bitField1_ & ~0x00001000);
7480  usePbResolution_ = false;
7481  bitField1_ = (bitField1_ & ~0x00002000);
7482  minimizeReductionDuringPbResolution_ = false;
7483  bitField1_ = (bitField1_ & ~0x00004000);
7484  countAssumptionLevelsInLbd_ = true;
7485  bitField1_ = (bitField1_ & ~0x00008000);
7486  presolveBveThreshold_ = 500;
7487  bitField1_ = (bitField1_ & ~0x00010000);
7488  presolveBveClauseWeight_ = 3;
7489  bitField1_ = (bitField1_ & ~0x00020000);
7490  presolveProbingDeterministicTimeLimit_ = 30D;
7491  bitField1_ = (bitField1_ & ~0x00040000);
7492  presolveBlockedClause_ = true;
7493  bitField1_ = (bitField1_ & ~0x00080000);
7494  presolveUseBva_ = true;
7495  bitField1_ = (bitField1_ & ~0x00100000);
7496  presolveBvaThreshold_ = 1;
7497  bitField1_ = (bitField1_ & ~0x00200000);
7498  maxPresolveIterations_ = 3;
7499  bitField1_ = (bitField1_ & ~0x00400000);
7500  useOptimizationHints_ = true;
7501  bitField1_ = (bitField1_ & ~0x00800000);
7502  minimizeCore_ = true;
7503  bitField1_ = (bitField1_ & ~0x01000000);
7504  findMultipleCores_ = true;
7505  bitField1_ = (bitField1_ & ~0x02000000);
7506  coverOptimization_ = true;
7507  bitField1_ = (bitField1_ & ~0x04000000);
7508  maxSatAssumptionOrder_ = 0;
7509  bitField1_ = (bitField1_ & ~0x08000000);
7510  maxSatReverseAssumptionOrder_ = false;
7511  bitField1_ = (bitField1_ & ~0x10000000);
7512  maxSatStratification_ = 1;
7513  bitField1_ = (bitField1_ & ~0x20000000);
7514  usePrecedencesInDisjunctiveConstraint_ = true;
7515  bitField1_ = (bitField1_ & ~0x40000000);
7516  useOverloadCheckerInCumulativeConstraint_ = false;
7517  bitField1_ = (bitField1_ & ~0x80000000);
7518  useTimetableEdgeFindingInCumulativeConstraint_ = false;
7519  bitField2_ = (bitField2_ & ~0x00000001);
7520  useDisjunctiveConstraintInCumulativeConstraint_ = true;
7521  bitField2_ = (bitField2_ & ~0x00000002);
7522  linearizationLevel_ = 1;
7523  bitField2_ = (bitField2_ & ~0x00000004);
7524  booleanEncodingLevel_ = 1;
7525  bitField2_ = (bitField2_ & ~0x00000008);
7526  maxNumCuts_ = 5000;
7527  bitField2_ = (bitField2_ & ~0x00000010);
7528  onlyAddCutsAtLevelZero_ = false;
7529  bitField2_ = (bitField2_ & ~0x00000020);
7530  addKnapsackCuts_ = false;
7531  bitField2_ = (bitField2_ & ~0x00000040);
7532  addCgCuts_ = false;
7533  bitField2_ = (bitField2_ & ~0x00000080);
7534  addMirCuts_ = true;
7535  bitField2_ = (bitField2_ & ~0x00000100);
7536  useMirRounding_ = true;
7537  bitField2_ = (bitField2_ & ~0x00000200);
7538  maxIntegerRoundingScaling_ = 600;
7539  bitField2_ = (bitField2_ & ~0x00000400);
7540  addLpConstraintsLazily_ = true;
7541  bitField2_ = (bitField2_ & ~0x00000800);
7542  minOrthogonalityForLpConstraints_ = 0D;
7543  bitField2_ = (bitField2_ & ~0x00001000);
7544  maxInactiveCount_ = 1000L;
7545  bitField2_ = (bitField2_ & ~0x00002000);
7546  constraintRemovalBatchSize_ = 100L;
7547  bitField2_ = (bitField2_ & ~0x00004000);
7548  searchBranching_ = 0;
7549  bitField2_ = (bitField2_ & ~0x00008000);
7550  exploitIntegerLpSolution_ = true;
7551  bitField2_ = (bitField2_ & ~0x00010000);
7552  exploitAllLpSolution_ = true;
7553  bitField2_ = (bitField2_ & ~0x00020000);
7554  exploitBestSolution_ = false;
7555  bitField2_ = (bitField2_ & ~0x00040000);
7556  exploitObjective_ = true;
7557  bitField2_ = (bitField2_ & ~0x00080000);
7558  pseudoCostReliabilityThreshold_ = 100L;
7559  bitField2_ = (bitField2_ & ~0x00100000);
7560  optimizeWithCore_ = false;
7561  bitField2_ = (bitField2_ & ~0x00200000);
7562  binarySearchNumConflicts_ = -1;
7563  bitField2_ = (bitField2_ & ~0x00400000);
7564  optimizeWithMaxHs_ = false;
7565  bitField2_ = (bitField2_ & ~0x00800000);
7566  cpModelPresolve_ = true;
7567  bitField2_ = (bitField2_ & ~0x01000000);
7568  cpModelProbingLevel_ = 2;
7569  bitField2_ = (bitField2_ & ~0x02000000);
7570  cpModelUseSatPresolve_ = true;
7571  bitField2_ = (bitField2_ & ~0x04000000);
7572  enumerateAllSolutions_ = false;
7573  bitField2_ = (bitField2_ & ~0x08000000);
7574  fillTightenedDomainsInResponse_ = false;
7575  bitField2_ = (bitField2_ & ~0x10000000);
7576  instantiateAllVariables_ = true;
7577  bitField2_ = (bitField2_ & ~0x20000000);
7578  autoDetectGreaterThanAtLeastOneOf_ = true;
7579  bitField2_ = (bitField2_ & ~0x40000000);
7580  stopAfterFirstSolution_ = false;
7581  bitField2_ = (bitField2_ & ~0x80000000);
7582  numSearchWorkers_ = 1;
7583  bitField3_ = (bitField3_ & ~0x00000001);
7584  interleaveSearch_ = false;
7585  bitField3_ = (bitField3_ & ~0x00000002);
7586  deterministicParallelSearch_ = false;
7587  bitField3_ = (bitField3_ & ~0x00000004);
7588  shareObjectiveBounds_ = true;
7589  bitField3_ = (bitField3_ & ~0x00000008);
7590  shareLevelZeroBounds_ = true;
7591  bitField3_ = (bitField3_ & ~0x00000010);
7592  useLnsOnly_ = false;
7593  bitField3_ = (bitField3_ & ~0x00000020);
7594  lnsFocusOnDecisionVariables_ = false;
7595  bitField3_ = (bitField3_ & ~0x00000040);
7596  useRinsLns_ = true;
7597  bitField3_ = (bitField3_ & ~0x00000080);
7598  diversifyLnsParams_ = false;
7599  bitField3_ = (bitField3_ & ~0x00000100);
7600  randomizeSearch_ = false;
7601  bitField3_ = (bitField3_ & ~0x00000200);
7602  searchRandomizationTolerance_ = 0L;
7603  bitField3_ = (bitField3_ & ~0x00000400);
7604  useOptionalVariables_ = true;
7605  bitField3_ = (bitField3_ & ~0x00000800);
7606  useExactLpReason_ = true;
7607  bitField3_ = (bitField3_ & ~0x00001000);
7608  useCombinedNoOverlap_ = false;
7609  bitField3_ = (bitField3_ & ~0x00002000);
7610  mipMaxBound_ = 10000000D;
7611  bitField3_ = (bitField3_ & ~0x00004000);
7612  mipVarScaling_ = 1D;
7613  bitField3_ = (bitField3_ & ~0x00008000);
7614  mipWantedPrecision_ = 1e-06D;
7615  bitField3_ = (bitField3_ & ~0x00010000);
7616  mipMaxActivityExponent_ = 53;
7617  bitField3_ = (bitField3_ & ~0x00020000);
7618  mipCheckPrecision_ = 0.0001D;
7619  bitField3_ = (bitField3_ & ~0x00040000);
7620  catchSigintSignal_ = true;
7621  bitField3_ = (bitField3_ & ~0x00080000);
7622  return this;
7623  }
7624 
7625  @java.lang.Override
7626  public com.google.protobuf.Descriptors.Descriptor
7628  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7629  }
7630 
7631  @java.lang.Override
7634  }
7635 
7636  @java.lang.Override
7639  if (!result.isInitialized()) {
7640  throw newUninitializedMessageException(result);
7641  }
7642  return result;
7643  }
7644 
7645  @java.lang.Override
7648  int from_bitField0_ = bitField0_;
7649  int from_bitField1_ = bitField1_;
7650  int from_bitField2_ = bitField2_;
7651  int from_bitField3_ = bitField3_;
7652  int to_bitField0_ = 0;
7653  int to_bitField1_ = 0;
7654  int to_bitField2_ = 0;
7655  int to_bitField3_ = 0;
7656  if (((from_bitField0_ & 0x00000001) != 0)) {
7657  to_bitField0_ |= 0x00000001;
7658  }
7659  result.preferredVariableOrder_ = preferredVariableOrder_;
7660  if (((from_bitField0_ & 0x00000002) != 0)) {
7661  to_bitField0_ |= 0x00000002;
7662  }
7663  result.initialPolarity_ = initialPolarity_;
7664  if (((from_bitField0_ & 0x00000004) != 0)) {
7665  to_bitField0_ |= 0x00000004;
7666  }
7667  result.usePhaseSaving_ = usePhaseSaving_;
7668  if (((from_bitField0_ & 0x00000008) != 0)) {
7669  result.randomPolarityRatio_ = randomPolarityRatio_;
7670  to_bitField0_ |= 0x00000008;
7671  }
7672  if (((from_bitField0_ & 0x00000010) != 0)) {
7673  result.randomBranchesRatio_ = randomBranchesRatio_;
7674  to_bitField0_ |= 0x00000010;
7675  }
7676  if (((from_bitField0_ & 0x00000020) != 0)) {
7677  result.useErwaHeuristic_ = useErwaHeuristic_;
7678  to_bitField0_ |= 0x00000020;
7679  }
7680  if (((from_bitField0_ & 0x00000040) != 0)) {
7681  result.initialVariablesActivity_ = initialVariablesActivity_;
7682  to_bitField0_ |= 0x00000040;
7683  }
7684  if (((from_bitField0_ & 0x00000080) != 0)) {
7685  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
7686  to_bitField0_ |= 0x00000080;
7687  }
7688  if (((from_bitField0_ & 0x00000100) != 0)) {
7689  to_bitField0_ |= 0x00000100;
7690  }
7691  result.minimizationAlgorithm_ = minimizationAlgorithm_;
7692  if (((from_bitField0_ & 0x00000200) != 0)) {
7693  to_bitField0_ |= 0x00000200;
7694  }
7695  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
7696  if (((from_bitField0_ & 0x00000400) != 0)) {
7697  to_bitField0_ |= 0x00000400;
7698  }
7699  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
7700  if (((from_bitField0_ & 0x00000800) != 0)) {
7701  to_bitField0_ |= 0x00000800;
7702  }
7703  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
7704  if (((from_bitField0_ & 0x00001000) != 0)) {
7705  to_bitField0_ |= 0x00001000;
7706  }
7707  result.clauseCleanupTarget_ = clauseCleanupTarget_;
7708  if (((from_bitField0_ & 0x00002000) != 0)) {
7709  to_bitField0_ |= 0x00002000;
7710  }
7711  result.clauseCleanupProtection_ = clauseCleanupProtection_;
7712  if (((from_bitField0_ & 0x00004000) != 0)) {
7713  to_bitField0_ |= 0x00004000;
7714  }
7715  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
7716  if (((from_bitField0_ & 0x00008000) != 0)) {
7717  to_bitField0_ |= 0x00008000;
7718  }
7719  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
7720  if (((from_bitField0_ & 0x00010000) != 0)) {
7721  to_bitField0_ |= 0x00010000;
7722  }
7723  result.pbCleanupIncrement_ = pbCleanupIncrement_;
7724  if (((from_bitField0_ & 0x00020000) != 0)) {
7725  to_bitField0_ |= 0x00020000;
7726  }
7727  result.pbCleanupRatio_ = pbCleanupRatio_;
7728  if (((from_bitField0_ & 0x00040000) != 0)) {
7729  to_bitField0_ |= 0x00040000;
7730  }
7731  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
7732  if (((from_bitField0_ & 0x00080000) != 0)) {
7733  to_bitField0_ |= 0x00080000;
7734  }
7735  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
7736  if (((from_bitField0_ & 0x00100000) != 0)) {
7737  to_bitField0_ |= 0x00100000;
7738  }
7739  result.variableActivityDecay_ = variableActivityDecay_;
7740  if (((from_bitField0_ & 0x00200000) != 0)) {
7741  to_bitField0_ |= 0x00200000;
7742  }
7743  result.maxVariableActivityValue_ = maxVariableActivityValue_;
7744  if (((from_bitField0_ & 0x00400000) != 0)) {
7745  to_bitField0_ |= 0x00400000;
7746  }
7747  result.glucoseMaxDecay_ = glucoseMaxDecay_;
7748  if (((from_bitField0_ & 0x00800000) != 0)) {
7749  to_bitField0_ |= 0x00800000;
7750  }
7751  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
7752  if (((from_bitField0_ & 0x01000000) != 0)) {
7753  to_bitField0_ |= 0x01000000;
7754  }
7755  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
7756  if (((from_bitField0_ & 0x02000000) != 0)) {
7757  to_bitField0_ |= 0x02000000;
7758  }
7759  result.clauseActivityDecay_ = clauseActivityDecay_;
7760  if (((from_bitField0_ & 0x04000000) != 0)) {
7761  to_bitField0_ |= 0x04000000;
7762  }
7763  result.maxClauseActivityValue_ = maxClauseActivityValue_;
7764  if (((bitField0_ & 0x08000000) != 0)) {
7765  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
7766  bitField0_ = (bitField0_ & ~0x08000000);
7767  }
7768  result.restartAlgorithms_ = restartAlgorithms_;
7769  if (((from_bitField0_ & 0x10000000) != 0)) {
7770  to_bitField0_ |= 0x08000000;
7771  }
7772  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
7773  if (((from_bitField0_ & 0x20000000) != 0)) {
7774  to_bitField0_ |= 0x10000000;
7775  }
7776  result.restartPeriod_ = restartPeriod_;
7777  if (((from_bitField0_ & 0x40000000) != 0)) {
7778  to_bitField0_ |= 0x20000000;
7779  }
7780  result.restartRunningWindowSize_ = restartRunningWindowSize_;
7781  if (((from_bitField0_ & 0x80000000) != 0)) {
7782  to_bitField0_ |= 0x40000000;
7783  }
7784  result.restartDlAverageRatio_ = restartDlAverageRatio_;
7785  if (((from_bitField1_ & 0x00000001) != 0)) {
7786  to_bitField0_ |= 0x80000000;
7787  }
7788  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
7789  if (((from_bitField1_ & 0x00000002) != 0)) {
7790  result.useBlockingRestart_ = useBlockingRestart_;
7791  to_bitField1_ |= 0x00000001;
7792  }
7793  if (((from_bitField1_ & 0x00000004) != 0)) {
7794  to_bitField1_ |= 0x00000002;
7795  }
7796  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
7797  if (((from_bitField1_ & 0x00000008) != 0)) {
7798  to_bitField1_ |= 0x00000004;
7799  }
7800  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
7801  if (((from_bitField1_ & 0x00000010) != 0)) {
7802  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
7803  to_bitField1_ |= 0x00000008;
7804  }
7805  if (((from_bitField1_ & 0x00000020) != 0)) {
7806  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
7807  to_bitField1_ |= 0x00000010;
7808  }
7809  if (((from_bitField1_ & 0x00000040) != 0)) {
7810  to_bitField1_ |= 0x00000020;
7811  }
7812  result.maxTimeInSeconds_ = maxTimeInSeconds_;
7813  if (((from_bitField1_ & 0x00000080) != 0)) {
7814  to_bitField1_ |= 0x00000040;
7815  }
7816  result.maxDeterministicTime_ = maxDeterministicTime_;
7817  if (((from_bitField1_ & 0x00000100) != 0)) {
7818  to_bitField1_ |= 0x00000080;
7819  }
7820  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
7821  if (((from_bitField1_ & 0x00000200) != 0)) {
7822  to_bitField1_ |= 0x00000100;
7823  }
7824  result.maxMemoryInMb_ = maxMemoryInMb_;
7825  if (((from_bitField1_ & 0x00000400) != 0)) {
7826  to_bitField1_ |= 0x00000200;
7827  }
7828  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
7829  if (((from_bitField1_ & 0x00000800) != 0)) {
7830  to_bitField1_ |= 0x00000400;
7831  }
7832  result.randomSeed_ = randomSeed_;
7833  if (((from_bitField1_ & 0x00001000) != 0)) {
7834  result.logSearchProgress_ = logSearchProgress_;
7835  to_bitField1_ |= 0x00000800;
7836  }
7837  if (((from_bitField1_ & 0x00002000) != 0)) {
7838  result.usePbResolution_ = usePbResolution_;
7839  to_bitField1_ |= 0x00001000;
7840  }
7841  if (((from_bitField1_ & 0x00004000) != 0)) {
7842  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
7843  to_bitField1_ |= 0x00002000;
7844  }
7845  if (((from_bitField1_ & 0x00008000) != 0)) {
7846  to_bitField1_ |= 0x00004000;
7847  }
7848  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
7849  if (((from_bitField1_ & 0x00010000) != 0)) {
7850  to_bitField1_ |= 0x00008000;
7851  }
7852  result.presolveBveThreshold_ = presolveBveThreshold_;
7853  if (((from_bitField1_ & 0x00020000) != 0)) {
7854  to_bitField1_ |= 0x00010000;
7855  }
7856  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
7857  if (((from_bitField1_ & 0x00040000) != 0)) {
7858  to_bitField1_ |= 0x00020000;
7859  }
7860  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
7861  if (((from_bitField1_ & 0x00080000) != 0)) {
7862  to_bitField1_ |= 0x00040000;
7863  }
7864  result.presolveBlockedClause_ = presolveBlockedClause_;
7865  if (((from_bitField1_ & 0x00100000) != 0)) {
7866  to_bitField1_ |= 0x00080000;
7867  }
7868  result.presolveUseBva_ = presolveUseBva_;
7869  if (((from_bitField1_ & 0x00200000) != 0)) {
7870  to_bitField1_ |= 0x00100000;
7871  }
7872  result.presolveBvaThreshold_ = presolveBvaThreshold_;
7873  if (((from_bitField1_ & 0x00400000) != 0)) {
7874  to_bitField1_ |= 0x00200000;
7875  }
7876  result.maxPresolveIterations_ = maxPresolveIterations_;
7877  if (((from_bitField1_ & 0x00800000) != 0)) {
7878  to_bitField1_ |= 0x00400000;
7879  }
7880  result.useOptimizationHints_ = useOptimizationHints_;
7881  if (((from_bitField1_ & 0x01000000) != 0)) {
7882  to_bitField1_ |= 0x00800000;
7883  }
7884  result.minimizeCore_ = minimizeCore_;
7885  if (((from_bitField1_ & 0x02000000) != 0)) {
7886  to_bitField1_ |= 0x01000000;
7887  }
7888  result.findMultipleCores_ = findMultipleCores_;
7889  if (((from_bitField1_ & 0x04000000) != 0)) {
7890  to_bitField1_ |= 0x02000000;
7891  }
7892  result.coverOptimization_ = coverOptimization_;
7893  if (((from_bitField1_ & 0x08000000) != 0)) {
7894  to_bitField1_ |= 0x04000000;
7895  }
7896  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
7897  if (((from_bitField1_ & 0x10000000) != 0)) {
7898  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
7899  to_bitField1_ |= 0x08000000;
7900  }
7901  if (((from_bitField1_ & 0x20000000) != 0)) {
7902  to_bitField1_ |= 0x10000000;
7903  }
7904  result.maxSatStratification_ = maxSatStratification_;
7905  if (((from_bitField1_ & 0x40000000) != 0)) {
7906  to_bitField1_ |= 0x20000000;
7907  }
7908  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
7909  if (((from_bitField1_ & 0x80000000) != 0)) {
7910  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
7911  to_bitField1_ |= 0x40000000;
7912  }
7913  if (((from_bitField2_ & 0x00000001) != 0)) {
7914  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
7915  to_bitField1_ |= 0x80000000;
7916  }
7917  if (((from_bitField2_ & 0x00000002) != 0)) {
7918  to_bitField2_ |= 0x00000001;
7919  }
7920  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
7921  if (((from_bitField2_ & 0x00000004) != 0)) {
7922  to_bitField2_ |= 0x00000002;
7923  }
7924  result.linearizationLevel_ = linearizationLevel_;
7925  if (((from_bitField2_ & 0x00000008) != 0)) {
7926  to_bitField2_ |= 0x00000004;
7927  }
7928  result.booleanEncodingLevel_ = booleanEncodingLevel_;
7929  if (((from_bitField2_ & 0x00000010) != 0)) {
7930  to_bitField2_ |= 0x00000008;
7931  }
7932  result.maxNumCuts_ = maxNumCuts_;
7933  if (((from_bitField2_ & 0x00000020) != 0)) {
7934  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
7935  to_bitField2_ |= 0x00000010;
7936  }
7937  if (((from_bitField2_ & 0x00000040) != 0)) {
7938  result.addKnapsackCuts_ = addKnapsackCuts_;
7939  to_bitField2_ |= 0x00000020;
7940  }
7941  if (((from_bitField2_ & 0x00000080) != 0)) {
7942  result.addCgCuts_ = addCgCuts_;
7943  to_bitField2_ |= 0x00000040;
7944  }
7945  if (((from_bitField2_ & 0x00000100) != 0)) {
7946  to_bitField2_ |= 0x00000080;
7947  }
7948  result.addMirCuts_ = addMirCuts_;
7949  if (((from_bitField2_ & 0x00000200) != 0)) {
7950  to_bitField2_ |= 0x00000100;
7951  }
7952  result.useMirRounding_ = useMirRounding_;
7953  if (((from_bitField2_ & 0x00000400) != 0)) {
7954  to_bitField2_ |= 0x00000200;
7955  }
7956  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
7957  if (((from_bitField2_ & 0x00000800) != 0)) {
7958  to_bitField2_ |= 0x00000400;
7959  }
7960  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
7961  if (((from_bitField2_ & 0x00001000) != 0)) {
7962  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
7963  to_bitField2_ |= 0x00000800;
7964  }
7965  if (((from_bitField2_ & 0x00002000) != 0)) {
7966  to_bitField2_ |= 0x00001000;
7967  }
7968  result.maxInactiveCount_ = maxInactiveCount_;
7969  if (((from_bitField2_ & 0x00004000) != 0)) {
7970  to_bitField2_ |= 0x00002000;
7971  }
7972  result.constraintRemovalBatchSize_ = constraintRemovalBatchSize_;
7973  if (((from_bitField2_ & 0x00008000) != 0)) {
7974  to_bitField2_ |= 0x00004000;
7975  }
7976  result.searchBranching_ = searchBranching_;
7977  if (((from_bitField2_ & 0x00010000) != 0)) {
7978  to_bitField2_ |= 0x00008000;
7979  }
7980  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
7981  if (((from_bitField2_ & 0x00020000) != 0)) {
7982  to_bitField2_ |= 0x00010000;
7983  }
7984  result.exploitAllLpSolution_ = exploitAllLpSolution_;
7985  if (((from_bitField2_ & 0x00040000) != 0)) {
7986  result.exploitBestSolution_ = exploitBestSolution_;
7987  to_bitField2_ |= 0x00020000;
7988  }
7989  if (((from_bitField2_ & 0x00080000) != 0)) {
7990  to_bitField2_ |= 0x00040000;
7991  }
7992  result.exploitObjective_ = exploitObjective_;
7993  if (((from_bitField2_ & 0x00100000) != 0)) {
7994  to_bitField2_ |= 0x00080000;
7995  }
7996  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
7997  if (((from_bitField2_ & 0x00200000) != 0)) {
7998  result.optimizeWithCore_ = optimizeWithCore_;
7999  to_bitField2_ |= 0x00100000;
8000  }
8001  if (((from_bitField2_ & 0x00400000) != 0)) {
8002  to_bitField2_ |= 0x00200000;
8003  }
8004  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
8005  if (((from_bitField2_ & 0x00800000) != 0)) {
8006  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
8007  to_bitField2_ |= 0x00400000;
8008  }
8009  if (((from_bitField2_ & 0x01000000) != 0)) {
8010  to_bitField2_ |= 0x00800000;
8011  }
8012  result.cpModelPresolve_ = cpModelPresolve_;
8013  if (((from_bitField2_ & 0x02000000) != 0)) {
8014  to_bitField2_ |= 0x01000000;
8015  }
8016  result.cpModelProbingLevel_ = cpModelProbingLevel_;
8017  if (((from_bitField2_ & 0x04000000) != 0)) {
8018  to_bitField2_ |= 0x02000000;
8019  }
8020  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
8021  if (((from_bitField2_ & 0x08000000) != 0)) {
8022  result.enumerateAllSolutions_ = enumerateAllSolutions_;
8023  to_bitField2_ |= 0x04000000;
8024  }
8025  if (((from_bitField2_ & 0x10000000) != 0)) {
8026  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
8027  to_bitField2_ |= 0x08000000;
8028  }
8029  if (((from_bitField2_ & 0x20000000) != 0)) {
8030  to_bitField2_ |= 0x10000000;
8031  }
8032  result.instantiateAllVariables_ = instantiateAllVariables_;
8033  if (((from_bitField2_ & 0x40000000) != 0)) {
8034  to_bitField2_ |= 0x20000000;
8035  }
8036  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
8037  if (((from_bitField2_ & 0x80000000) != 0)) {
8038  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
8039  to_bitField2_ |= 0x40000000;
8040  }
8041  if (((from_bitField3_ & 0x00000001) != 0)) {
8042  to_bitField2_ |= 0x80000000;
8043  }
8044  result.numSearchWorkers_ = numSearchWorkers_;
8045  if (((from_bitField3_ & 0x00000002) != 0)) {
8046  result.interleaveSearch_ = interleaveSearch_;
8047  to_bitField3_ |= 0x00000001;
8048  }
8049  if (((from_bitField3_ & 0x00000004) != 0)) {
8050  result.deterministicParallelSearch_ = deterministicParallelSearch_;
8051  to_bitField3_ |= 0x00000002;
8052  }
8053  if (((from_bitField3_ & 0x00000008) != 0)) {
8054  to_bitField3_ |= 0x00000004;
8055  }
8056  result.shareObjectiveBounds_ = shareObjectiveBounds_;
8057  if (((from_bitField3_ & 0x00000010) != 0)) {
8058  to_bitField3_ |= 0x00000008;
8059  }
8060  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
8061  if (((from_bitField3_ & 0x00000020) != 0)) {
8062  result.useLnsOnly_ = useLnsOnly_;
8063  to_bitField3_ |= 0x00000010;
8064  }
8065  if (((from_bitField3_ & 0x00000040) != 0)) {
8066  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
8067  to_bitField3_ |= 0x00000020;
8068  }
8069  if (((from_bitField3_ & 0x00000080) != 0)) {
8070  to_bitField3_ |= 0x00000040;
8071  }
8072  result.useRinsLns_ = useRinsLns_;
8073  if (((from_bitField3_ & 0x00000100) != 0)) {
8074  result.diversifyLnsParams_ = diversifyLnsParams_;
8075  to_bitField3_ |= 0x00000080;
8076  }
8077  if (((from_bitField3_ & 0x00000200) != 0)) {
8078  result.randomizeSearch_ = randomizeSearch_;
8079  to_bitField3_ |= 0x00000100;
8080  }
8081  if (((from_bitField3_ & 0x00000400) != 0)) {
8082  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
8083  to_bitField3_ |= 0x00000200;
8084  }
8085  if (((from_bitField3_ & 0x00000800) != 0)) {
8086  to_bitField3_ |= 0x00000400;
8087  }
8088  result.useOptionalVariables_ = useOptionalVariables_;
8089  if (((from_bitField3_ & 0x00001000) != 0)) {
8090  to_bitField3_ |= 0x00000800;
8091  }
8092  result.useExactLpReason_ = useExactLpReason_;
8093  if (((from_bitField3_ & 0x00002000) != 0)) {
8094  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
8095  to_bitField3_ |= 0x00001000;
8096  }
8097  if (((from_bitField3_ & 0x00004000) != 0)) {
8098  to_bitField3_ |= 0x00002000;
8099  }
8100  result.mipMaxBound_ = mipMaxBound_;
8101  if (((from_bitField3_ & 0x00008000) != 0)) {
8102  to_bitField3_ |= 0x00004000;
8103  }
8104  result.mipVarScaling_ = mipVarScaling_;
8105  if (((from_bitField3_ & 0x00010000) != 0)) {
8106  to_bitField3_ |= 0x00008000;
8107  }
8108  result.mipWantedPrecision_ = mipWantedPrecision_;
8109  if (((from_bitField3_ & 0x00020000) != 0)) {
8110  to_bitField3_ |= 0x00010000;
8111  }
8112  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
8113  if (((from_bitField3_ & 0x00040000) != 0)) {
8114  to_bitField3_ |= 0x00020000;
8115  }
8116  result.mipCheckPrecision_ = mipCheckPrecision_;
8117  if (((from_bitField3_ & 0x00080000) != 0)) {
8118  to_bitField3_ |= 0x00040000;
8119  }
8120  result.catchSigintSignal_ = catchSigintSignal_;
8121  result.bitField0_ = to_bitField0_;
8122  result.bitField1_ = to_bitField1_;
8123  result.bitField2_ = to_bitField2_;
8124  result.bitField3_ = to_bitField3_;
8125  onBuilt();
8126  return result;
8127  }
8128 
8129  @java.lang.Override
8130  public Builder clone() {
8131  return super.clone();
8132  }
8133  @java.lang.Override
8135  com.google.protobuf.Descriptors.FieldDescriptor field,
8136  java.lang.Object value) {
8137  return super.setField(field, value);
8138  }
8139  @java.lang.Override
8141  com.google.protobuf.Descriptors.FieldDescriptor field) {
8142  return super.clearField(field);
8143  }
8144  @java.lang.Override
8146  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
8147  return super.clearOneof(oneof);
8148  }
8149  @java.lang.Override
8151  com.google.protobuf.Descriptors.FieldDescriptor field,
8152  int index, java.lang.Object value) {
8153  return super.setRepeatedField(field, index, value);
8154  }
8155  @java.lang.Override
8157  com.google.protobuf.Descriptors.FieldDescriptor field,
8158  java.lang.Object value) {
8159  return super.addRepeatedField(field, value);
8160  }
8161  @java.lang.Override
8162  public Builder mergeFrom(com.google.protobuf.Message other) {
8163  if (other instanceof com.google.ortools.sat.SatParameters) {
8164  return mergeFrom((com.google.ortools.sat.SatParameters)other);
8165  } else {
8166  super.mergeFrom(other);
8167  return this;
8168  }
8169  }
8170 
8172  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
8173  if (other.hasPreferredVariableOrder()) {
8174  setPreferredVariableOrder(other.getPreferredVariableOrder());
8175  }
8176  if (other.hasInitialPolarity()) {
8177  setInitialPolarity(other.getInitialPolarity());
8178  }
8179  if (other.hasUsePhaseSaving()) {
8180  setUsePhaseSaving(other.getUsePhaseSaving());
8181  }
8182  if (other.hasRandomPolarityRatio()) {
8183  setRandomPolarityRatio(other.getRandomPolarityRatio());
8184  }
8185  if (other.hasRandomBranchesRatio()) {
8186  setRandomBranchesRatio(other.getRandomBranchesRatio());
8187  }
8188  if (other.hasUseErwaHeuristic()) {
8189  setUseErwaHeuristic(other.getUseErwaHeuristic());
8190  }
8191  if (other.hasInitialVariablesActivity()) {
8192  setInitialVariablesActivity(other.getInitialVariablesActivity());
8193  }
8194  if (other.hasAlsoBumpVariablesInConflictReasons()) {
8195  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
8196  }
8197  if (other.hasMinimizationAlgorithm()) {
8198  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
8199  }
8200  if (other.hasBinaryMinimizationAlgorithm()) {
8201  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
8202  }
8203  if (other.hasSubsumptionDuringConflictAnalysis()) {
8204  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
8205  }
8206  if (other.hasClauseCleanupPeriod()) {
8207  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
8208  }
8209  if (other.hasClauseCleanupTarget()) {
8210  setClauseCleanupTarget(other.getClauseCleanupTarget());
8211  }
8212  if (other.hasClauseCleanupProtection()) {
8213  setClauseCleanupProtection(other.getClauseCleanupProtection());
8214  }
8215  if (other.hasClauseCleanupLbdBound()) {
8216  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
8217  }
8218  if (other.hasClauseCleanupOrdering()) {
8219  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
8220  }
8221  if (other.hasPbCleanupIncrement()) {
8222  setPbCleanupIncrement(other.getPbCleanupIncrement());
8223  }
8224  if (other.hasPbCleanupRatio()) {
8225  setPbCleanupRatio(other.getPbCleanupRatio());
8226  }
8227  if (other.hasMinimizeWithPropagationRestartPeriod()) {
8228  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
8229  }
8230  if (other.hasMinimizeWithPropagationNumDecisions()) {
8231  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
8232  }
8233  if (other.hasVariableActivityDecay()) {
8234  setVariableActivityDecay(other.getVariableActivityDecay());
8235  }
8236  if (other.hasMaxVariableActivityValue()) {
8237  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
8238  }
8239  if (other.hasGlucoseMaxDecay()) {
8240  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
8241  }
8242  if (other.hasGlucoseDecayIncrement()) {
8243  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
8244  }
8245  if (other.hasGlucoseDecayIncrementPeriod()) {
8246  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
8247  }
8248  if (other.hasClauseActivityDecay()) {
8249  setClauseActivityDecay(other.getClauseActivityDecay());
8250  }
8251  if (other.hasMaxClauseActivityValue()) {
8252  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
8253  }
8254  if (!other.restartAlgorithms_.isEmpty()) {
8255  if (restartAlgorithms_.isEmpty()) {
8256  restartAlgorithms_ = other.restartAlgorithms_;
8257  bitField0_ = (bitField0_ & ~0x08000000);
8258  } else {
8259  ensureRestartAlgorithmsIsMutable();
8260  restartAlgorithms_.addAll(other.restartAlgorithms_);
8261  }
8262  onChanged();
8263  }
8264  if (other.hasDefaultRestartAlgorithms()) {
8265  bitField0_ |= 0x10000000;
8266  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
8267  onChanged();
8268  }
8269  if (other.hasRestartPeriod()) {
8270  setRestartPeriod(other.getRestartPeriod());
8271  }
8272  if (other.hasRestartRunningWindowSize()) {
8273  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
8274  }
8275  if (other.hasRestartDlAverageRatio()) {
8276  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
8277  }
8278  if (other.hasRestartLbdAverageRatio()) {
8279  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
8280  }
8281  if (other.hasUseBlockingRestart()) {
8282  setUseBlockingRestart(other.getUseBlockingRestart());
8283  }
8284  if (other.hasBlockingRestartWindowSize()) {
8285  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
8286  }
8287  if (other.hasBlockingRestartMultiplier()) {
8288  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
8289  }
8290  if (other.hasNumConflictsBeforeStrategyChanges()) {
8291  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
8292  }
8293  if (other.hasStrategyChangeIncreaseRatio()) {
8294  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
8295  }
8296  if (other.hasMaxTimeInSeconds()) {
8297  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
8298  }
8299  if (other.hasMaxDeterministicTime()) {
8300  setMaxDeterministicTime(other.getMaxDeterministicTime());
8301  }
8302  if (other.hasMaxNumberOfConflicts()) {
8303  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
8304  }
8305  if (other.hasMaxMemoryInMb()) {
8306  setMaxMemoryInMb(other.getMaxMemoryInMb());
8307  }
8308  if (other.hasTreatBinaryClausesSeparately()) {
8309  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
8310  }
8311  if (other.hasRandomSeed()) {
8312  setRandomSeed(other.getRandomSeed());
8313  }
8314  if (other.hasLogSearchProgress()) {
8315  setLogSearchProgress(other.getLogSearchProgress());
8316  }
8317  if (other.hasUsePbResolution()) {
8318  setUsePbResolution(other.getUsePbResolution());
8319  }
8320  if (other.hasMinimizeReductionDuringPbResolution()) {
8321  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
8322  }
8323  if (other.hasCountAssumptionLevelsInLbd()) {
8324  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
8325  }
8326  if (other.hasPresolveBveThreshold()) {
8327  setPresolveBveThreshold(other.getPresolveBveThreshold());
8328  }
8329  if (other.hasPresolveBveClauseWeight()) {
8330  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
8331  }
8332  if (other.hasPresolveProbingDeterministicTimeLimit()) {
8333  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
8334  }
8335  if (other.hasPresolveBlockedClause()) {
8336  setPresolveBlockedClause(other.getPresolveBlockedClause());
8337  }
8338  if (other.hasPresolveUseBva()) {
8339  setPresolveUseBva(other.getPresolveUseBva());
8340  }
8341  if (other.hasPresolveBvaThreshold()) {
8342  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
8343  }
8344  if (other.hasMaxPresolveIterations()) {
8345  setMaxPresolveIterations(other.getMaxPresolveIterations());
8346  }
8347  if (other.hasUseOptimizationHints()) {
8348  setUseOptimizationHints(other.getUseOptimizationHints());
8349  }
8350  if (other.hasMinimizeCore()) {
8351  setMinimizeCore(other.getMinimizeCore());
8352  }
8353  if (other.hasFindMultipleCores()) {
8354  setFindMultipleCores(other.getFindMultipleCores());
8355  }
8356  if (other.hasCoverOptimization()) {
8357  setCoverOptimization(other.getCoverOptimization());
8358  }
8359  if (other.hasMaxSatAssumptionOrder()) {
8360  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
8361  }
8362  if (other.hasMaxSatReverseAssumptionOrder()) {
8363  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
8364  }
8365  if (other.hasMaxSatStratification()) {
8366  setMaxSatStratification(other.getMaxSatStratification());
8367  }
8368  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
8369  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
8370  }
8371  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
8372  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
8373  }
8374  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
8375  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
8376  }
8377  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
8378  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
8379  }
8380  if (other.hasLinearizationLevel()) {
8381  setLinearizationLevel(other.getLinearizationLevel());
8382  }
8383  if (other.hasBooleanEncodingLevel()) {
8384  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
8385  }
8386  if (other.hasMaxNumCuts()) {
8387  setMaxNumCuts(other.getMaxNumCuts());
8388  }
8389  if (other.hasOnlyAddCutsAtLevelZero()) {
8390  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
8391  }
8392  if (other.hasAddKnapsackCuts()) {
8393  setAddKnapsackCuts(other.getAddKnapsackCuts());
8394  }
8395  if (other.hasAddCgCuts()) {
8396  setAddCgCuts(other.getAddCgCuts());
8397  }
8398  if (other.hasAddMirCuts()) {
8399  setAddMirCuts(other.getAddMirCuts());
8400  }
8401  if (other.hasUseMirRounding()) {
8402  setUseMirRounding(other.getUseMirRounding());
8403  }
8404  if (other.hasMaxIntegerRoundingScaling()) {
8405  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
8406  }
8407  if (other.hasAddLpConstraintsLazily()) {
8408  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
8409  }
8410  if (other.hasMinOrthogonalityForLpConstraints()) {
8411  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
8412  }
8413  if (other.hasMaxInactiveCount()) {
8414  setMaxInactiveCount(other.getMaxInactiveCount());
8415  }
8416  if (other.hasConstraintRemovalBatchSize()) {
8417  setConstraintRemovalBatchSize(other.getConstraintRemovalBatchSize());
8418  }
8419  if (other.hasSearchBranching()) {
8420  setSearchBranching(other.getSearchBranching());
8421  }
8422  if (other.hasExploitIntegerLpSolution()) {
8423  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
8424  }
8425  if (other.hasExploitAllLpSolution()) {
8426  setExploitAllLpSolution(other.getExploitAllLpSolution());
8427  }
8428  if (other.hasExploitBestSolution()) {
8429  setExploitBestSolution(other.getExploitBestSolution());
8430  }
8431  if (other.hasExploitObjective()) {
8432  setExploitObjective(other.getExploitObjective());
8433  }
8434  if (other.hasPseudoCostReliabilityThreshold()) {
8435  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
8436  }
8437  if (other.hasOptimizeWithCore()) {
8438  setOptimizeWithCore(other.getOptimizeWithCore());
8439  }
8440  if (other.hasBinarySearchNumConflicts()) {
8441  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
8442  }
8443  if (other.hasOptimizeWithMaxHs()) {
8444  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
8445  }
8446  if (other.hasCpModelPresolve()) {
8447  setCpModelPresolve(other.getCpModelPresolve());
8448  }
8449  if (other.hasCpModelProbingLevel()) {
8450  setCpModelProbingLevel(other.getCpModelProbingLevel());
8451  }
8452  if (other.hasCpModelUseSatPresolve()) {
8453  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
8454  }
8455  if (other.hasEnumerateAllSolutions()) {
8456  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
8457  }
8458  if (other.hasFillTightenedDomainsInResponse()) {
8459  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
8460  }
8461  if (other.hasInstantiateAllVariables()) {
8462  setInstantiateAllVariables(other.getInstantiateAllVariables());
8463  }
8464  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
8465  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
8466  }
8467  if (other.hasStopAfterFirstSolution()) {
8468  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
8469  }
8470  if (other.hasNumSearchWorkers()) {
8471  setNumSearchWorkers(other.getNumSearchWorkers());
8472  }
8473  if (other.hasInterleaveSearch()) {
8474  setInterleaveSearch(other.getInterleaveSearch());
8475  }
8476  if (other.hasDeterministicParallelSearch()) {
8477  setDeterministicParallelSearch(other.getDeterministicParallelSearch());
8478  }
8479  if (other.hasShareObjectiveBounds()) {
8480  setShareObjectiveBounds(other.getShareObjectiveBounds());
8481  }
8482  if (other.hasShareLevelZeroBounds()) {
8483  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
8484  }
8485  if (other.hasUseLnsOnly()) {
8486  setUseLnsOnly(other.getUseLnsOnly());
8487  }
8488  if (other.hasLnsFocusOnDecisionVariables()) {
8489  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
8490  }
8491  if (other.hasUseRinsLns()) {
8492  setUseRinsLns(other.getUseRinsLns());
8493  }
8494  if (other.hasDiversifyLnsParams()) {
8495  setDiversifyLnsParams(other.getDiversifyLnsParams());
8496  }
8497  if (other.hasRandomizeSearch()) {
8498  setRandomizeSearch(other.getRandomizeSearch());
8499  }
8500  if (other.hasSearchRandomizationTolerance()) {
8501  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
8502  }
8503  if (other.hasUseOptionalVariables()) {
8504  setUseOptionalVariables(other.getUseOptionalVariables());
8505  }
8506  if (other.hasUseExactLpReason()) {
8507  setUseExactLpReason(other.getUseExactLpReason());
8508  }
8509  if (other.hasUseCombinedNoOverlap()) {
8510  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
8511  }
8512  if (other.hasMipMaxBound()) {
8513  setMipMaxBound(other.getMipMaxBound());
8514  }
8515  if (other.hasMipVarScaling()) {
8516  setMipVarScaling(other.getMipVarScaling());
8517  }
8518  if (other.hasMipWantedPrecision()) {
8519  setMipWantedPrecision(other.getMipWantedPrecision());
8520  }
8521  if (other.hasMipMaxActivityExponent()) {
8522  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
8523  }
8524  if (other.hasMipCheckPrecision()) {
8525  setMipCheckPrecision(other.getMipCheckPrecision());
8526  }
8527  if (other.hasCatchSigintSignal()) {
8528  setCatchSigintSignal(other.getCatchSigintSignal());
8529  }
8530  this.mergeUnknownFields(other.unknownFields);
8531  onChanged();
8532  return this;
8533  }
8534 
8535  @java.lang.Override
8536  public final boolean isInitialized() {
8537  return true;
8538  }
8539 
8540  @java.lang.Override
8542  com.google.protobuf.CodedInputStream input,
8543  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8544  throws java.io.IOException {
8545  com.google.ortools.sat.SatParameters parsedMessage = null;
8546  try {
8547  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8548  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8549  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
8550  throw e.unwrapIOException();
8551  } finally {
8552  if (parsedMessage != null) {
8553  mergeFrom(parsedMessage);
8554  }
8555  }
8556  return this;
8557  }
8558  private int bitField0_;
8559  private int bitField1_;
8560  private int bitField2_;
8561  private int bitField3_;
8562 
8563  private int preferredVariableOrder_ = 0;
8567  public boolean hasPreferredVariableOrder() {
8568  return ((bitField0_ & 0x00000001) != 0);
8569  }
8574  @SuppressWarnings("deprecation")
8576  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
8577  }
8582  if (value == null) {
8583  throw new NullPointerException();
8584  }
8585  bitField0_ |= 0x00000001;
8586  preferredVariableOrder_ = value.getNumber();
8587  onChanged();
8588  return this;
8589  }
8594  bitField0_ = (bitField0_ & ~0x00000001);
8595  preferredVariableOrder_ = 0;
8596  onChanged();
8597  return this;
8598  }
8599 
8600  private int initialPolarity_ = 1;
8604  public boolean hasInitialPolarity() {
8605  return ((bitField0_ & 0x00000002) != 0);
8606  }
8611  @SuppressWarnings("deprecation")
8613  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
8614  }
8619  if (value == null) {
8620  throw new NullPointerException();
8621  }
8622  bitField0_ |= 0x00000002;
8623  initialPolarity_ = value.getNumber();
8624  onChanged();
8625  return this;
8626  }
8631  bitField0_ = (bitField0_ & ~0x00000002);
8632  initialPolarity_ = 1;
8633  onChanged();
8634  return this;
8635  }
8636 
8637  private boolean usePhaseSaving_ = true;
8651  public boolean hasUsePhaseSaving() {
8652  return ((bitField0_ & 0x00000004) != 0);
8653  }
8667  public boolean getUsePhaseSaving() {
8668  return usePhaseSaving_;
8669  }
8683  public Builder setUsePhaseSaving(boolean value) {
8684  bitField0_ |= 0x00000004;
8685  usePhaseSaving_ = value;
8686  onChanged();
8687  return this;
8688  }
8703  bitField0_ = (bitField0_ & ~0x00000004);
8704  usePhaseSaving_ = true;
8705  onChanged();
8706  return this;
8707  }
8708 
8709  private double randomPolarityRatio_ ;
8721  public boolean hasRandomPolarityRatio() {
8722  return ((bitField0_ & 0x00000008) != 0);
8723  }
8735  public double getRandomPolarityRatio() {
8736  return randomPolarityRatio_;
8737  }
8749  public Builder setRandomPolarityRatio(double value) {
8750  bitField0_ |= 0x00000008;
8751  randomPolarityRatio_ = value;
8752  onChanged();
8753  return this;
8754  }
8767  bitField0_ = (bitField0_ & ~0x00000008);
8768  randomPolarityRatio_ = 0D;
8769  onChanged();
8770  return this;
8771  }
8772 
8773  private double randomBranchesRatio_ ;
8783  public boolean hasRandomBranchesRatio() {
8784  return ((bitField0_ & 0x00000010) != 0);
8785  }
8795  public double getRandomBranchesRatio() {
8796  return randomBranchesRatio_;
8797  }
8807  public Builder setRandomBranchesRatio(double value) {
8808  bitField0_ |= 0x00000010;
8809  randomBranchesRatio_ = value;
8810  onChanged();
8811  return this;
8812  }
8823  bitField0_ = (bitField0_ & ~0x00000010);
8824  randomBranchesRatio_ = 0D;
8825  onChanged();
8826  return this;
8827  }
8828 
8829  private boolean useErwaHeuristic_ ;
8839  public boolean hasUseErwaHeuristic() {
8840  return ((bitField0_ & 0x00000020) != 0);
8841  }
8851  public boolean getUseErwaHeuristic() {
8852  return useErwaHeuristic_;
8853  }
8863  public Builder setUseErwaHeuristic(boolean value) {
8864  bitField0_ |= 0x00000020;
8865  useErwaHeuristic_ = value;
8866  onChanged();
8867  return this;
8868  }
8879  bitField0_ = (bitField0_ & ~0x00000020);
8880  useErwaHeuristic_ = false;
8881  onChanged();
8882  return this;
8883  }
8884 
8885  private double initialVariablesActivity_ ;
8898  public boolean hasInitialVariablesActivity() {
8899  return ((bitField0_ & 0x00000040) != 0);
8900  }
8914  return initialVariablesActivity_;
8915  }
8928  public Builder setInitialVariablesActivity(double value) {
8929  bitField0_ |= 0x00000040;
8930  initialVariablesActivity_ = value;
8931  onChanged();
8932  return this;
8933  }
8947  bitField0_ = (bitField0_ & ~0x00000040);
8948  initialVariablesActivity_ = 0D;
8949  onChanged();
8950  return this;
8951  }
8952 
8953  private boolean alsoBumpVariablesInConflictReasons_ ;
8965  return ((bitField0_ & 0x00000080) != 0);
8966  }
8978  return alsoBumpVariablesInConflictReasons_;
8979  }
8991  bitField0_ |= 0x00000080;
8992  alsoBumpVariablesInConflictReasons_ = value;
8993  onChanged();
8994  return this;
8995  }
9007  bitField0_ = (bitField0_ & ~0x00000080);
9008  alsoBumpVariablesInConflictReasons_ = false;
9009  onChanged();
9010  return this;
9011  }
9012 
9013  private int minimizationAlgorithm_ = 2;
9017  public boolean hasMinimizationAlgorithm() {
9018  return ((bitField0_ & 0x00000100) != 0);
9019  }
9024  @SuppressWarnings("deprecation")
9026  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
9027  }
9032  if (value == null) {
9033  throw new NullPointerException();
9034  }
9035  bitField0_ |= 0x00000100;
9036  minimizationAlgorithm_ = value.getNumber();
9037  onChanged();
9038  return this;
9039  }
9044  bitField0_ = (bitField0_ & ~0x00000100);
9045  minimizationAlgorithm_ = 2;
9046  onChanged();
9047  return this;
9048  }
9049 
9050  private int binaryMinimizationAlgorithm_ = 1;
9055  return ((bitField0_ & 0x00000200) != 0);
9056  }
9061  @SuppressWarnings("deprecation")
9064  }
9069  if (value == null) {
9070  throw new NullPointerException();
9071  }
9072  bitField0_ |= 0x00000200;
9073  binaryMinimizationAlgorithm_ = value.getNumber();
9074  onChanged();
9075  return this;
9076  }
9081  bitField0_ = (bitField0_ & ~0x00000200);
9082  binaryMinimizationAlgorithm_ = 1;
9083  onChanged();
9084  return this;
9085  }
9086 
9087  private boolean subsumptionDuringConflictAnalysis_ = true;
9099  return ((bitField0_ & 0x00000400) != 0);
9100  }
9112  return subsumptionDuringConflictAnalysis_;
9113  }
9125  bitField0_ |= 0x00000400;
9126  subsumptionDuringConflictAnalysis_ = value;
9127  onChanged();
9128  return this;
9129  }
9141  bitField0_ = (bitField0_ & ~0x00000400);
9142  subsumptionDuringConflictAnalysis_ = true;
9143  onChanged();
9144  return this;
9145  }
9146 
9147  private int clauseCleanupPeriod_ = 10000;
9155  public boolean hasClauseCleanupPeriod() {
9156  return ((bitField0_ & 0x00000800) != 0);
9157  }
9165  public int getClauseCleanupPeriod() {
9166  return clauseCleanupPeriod_;
9167  }
9175  public Builder setClauseCleanupPeriod(int value) {
9176  bitField0_ |= 0x00000800;
9177  clauseCleanupPeriod_ = value;
9178  onChanged();
9179  return this;
9180  }
9189  bitField0_ = (bitField0_ & ~0x00000800);
9190  clauseCleanupPeriod_ = 10000;
9191  onChanged();
9192  return this;
9193  }
9194 
9195  private int clauseCleanupTarget_ = 10000;
9204  public boolean hasClauseCleanupTarget() {
9205  return ((bitField0_ & 0x00001000) != 0);
9206  }
9215  public int getClauseCleanupTarget() {
9216  return clauseCleanupTarget_;
9217  }
9226  public Builder setClauseCleanupTarget(int value) {
9227  bitField0_ |= 0x00001000;
9228  clauseCleanupTarget_ = value;
9229  onChanged();
9230  return this;
9231  }
9241  bitField0_ = (bitField0_ & ~0x00001000);
9242  clauseCleanupTarget_ = 10000;
9243  onChanged();
9244  return this;
9245  }
9246 
9247  private int clauseCleanupProtection_ = 0;
9251  public boolean hasClauseCleanupProtection() {
9252  return ((bitField0_ & 0x00002000) != 0);
9253  }
9258  @SuppressWarnings("deprecation")
9260  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
9261  }
9266  if (value == null) {
9267  throw new NullPointerException();
9268  }
9269  bitField0_ |= 0x00002000;
9270  clauseCleanupProtection_ = value.getNumber();
9271  onChanged();
9272  return this;
9273  }
9278  bitField0_ = (bitField0_ & ~0x00002000);
9279  clauseCleanupProtection_ = 0;
9280  onChanged();
9281  return this;
9282  }
9283 
9284  private int clauseCleanupLbdBound_ = 5;
9293  public boolean hasClauseCleanupLbdBound() {
9294  return ((bitField0_ & 0x00004000) != 0);
9295  }
9305  return clauseCleanupLbdBound_;
9306  }
9315  public Builder setClauseCleanupLbdBound(int value) {
9316  bitField0_ |= 0x00004000;
9317  clauseCleanupLbdBound_ = value;
9318  onChanged();
9319  return this;
9320  }
9330  bitField0_ = (bitField0_ & ~0x00004000);
9331  clauseCleanupLbdBound_ = 5;
9332  onChanged();
9333  return this;
9334  }
9335 
9336  private int clauseCleanupOrdering_ = 0;
9340  public boolean hasClauseCleanupOrdering() {
9341  return ((bitField0_ & 0x00008000) != 0);
9342  }
9347  @SuppressWarnings("deprecation")
9349  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
9350  }
9355  if (value == null) {
9356  throw new NullPointerException();
9357  }
9358  bitField0_ |= 0x00008000;
9359  clauseCleanupOrdering_ = value.getNumber();
9360  onChanged();
9361  return this;
9362  }
9367  bitField0_ = (bitField0_ & ~0x00008000);
9368  clauseCleanupOrdering_ = 0;
9369  onChanged();
9370  return this;
9371  }
9372 
9373  private int pbCleanupIncrement_ = 200;
9381  public boolean hasPbCleanupIncrement() {
9382  return ((bitField0_ & 0x00010000) != 0);
9383  }
9391  public int getPbCleanupIncrement() {
9392  return pbCleanupIncrement_;
9393  }
9401  public Builder setPbCleanupIncrement(int value) {
9402  bitField0_ |= 0x00010000;
9403  pbCleanupIncrement_ = value;
9404  onChanged();
9405  return this;
9406  }
9415  bitField0_ = (bitField0_ & ~0x00010000);
9416  pbCleanupIncrement_ = 200;
9417  onChanged();
9418  return this;
9419  }
9420 
9421  private double pbCleanupRatio_ = 0.5D;
9425  public boolean hasPbCleanupRatio() {
9426  return ((bitField0_ & 0x00020000) != 0);
9427  }
9431  public double getPbCleanupRatio() {
9432  return pbCleanupRatio_;
9433  }
9437  public Builder setPbCleanupRatio(double value) {
9438  bitField0_ |= 0x00020000;
9439  pbCleanupRatio_ = value;
9440  onChanged();
9441  return this;
9442  }
9447  bitField0_ = (bitField0_ & ~0x00020000);
9448  pbCleanupRatio_ = 0.5D;
9449  onChanged();
9450  return this;
9451  }
9452 
9453  private int minimizeWithPropagationRestartPeriod_ = 10;
9472  return ((bitField0_ & 0x00040000) != 0);
9473  }
9492  return minimizeWithPropagationRestartPeriod_;
9493  }
9512  bitField0_ |= 0x00040000;
9513  minimizeWithPropagationRestartPeriod_ = value;
9514  onChanged();
9515  return this;
9516  }
9535  bitField0_ = (bitField0_ & ~0x00040000);
9536  minimizeWithPropagationRestartPeriod_ = 10;
9537  onChanged();
9538  return this;
9539  }
9540 
9541  private int minimizeWithPropagationNumDecisions_ = 1000;
9546  return ((bitField0_ & 0x00080000) != 0);
9547  }
9552  return minimizeWithPropagationNumDecisions_;
9553  }
9558  bitField0_ |= 0x00080000;
9559  minimizeWithPropagationNumDecisions_ = value;
9560  onChanged();
9561  return this;
9562  }
9567  bitField0_ = (bitField0_ & ~0x00080000);
9568  minimizeWithPropagationNumDecisions_ = 1000;
9569  onChanged();
9570  return this;
9571  }
9572 
9573  private double variableActivityDecay_ = 0.8D;
9587  public boolean hasVariableActivityDecay() {
9588  return ((bitField0_ & 0x00100000) != 0);
9589  }
9603  public double getVariableActivityDecay() {
9604  return variableActivityDecay_;
9605  }
9619  public Builder setVariableActivityDecay(double value) {
9620  bitField0_ |= 0x00100000;
9621  variableActivityDecay_ = value;
9622  onChanged();
9623  return this;
9624  }
9639  bitField0_ = (bitField0_ & ~0x00100000);
9640  variableActivityDecay_ = 0.8D;
9641  onChanged();
9642  return this;
9643  }
9644 
9645  private double maxVariableActivityValue_ = 1e+100D;
9649  public boolean hasMaxVariableActivityValue() {
9650  return ((bitField0_ & 0x00200000) != 0);
9651  }
9656  return maxVariableActivityValue_;
9657  }
9661  public Builder setMaxVariableActivityValue(double value) {
9662  bitField0_ |= 0x00200000;
9663  maxVariableActivityValue_ = value;
9664  onChanged();
9665  return this;
9666  }
9671  bitField0_ = (bitField0_ & ~0x00200000);
9672  maxVariableActivityValue_ = 1e+100D;
9673  onChanged();
9674  return this;
9675  }
9676 
9677  private double glucoseMaxDecay_ = 0.95D;
9688  public boolean hasGlucoseMaxDecay() {
9689  return ((bitField0_ & 0x00400000) != 0);
9690  }
9701  public double getGlucoseMaxDecay() {
9702  return glucoseMaxDecay_;
9703  }
9714  public Builder setGlucoseMaxDecay(double value) {
9715  bitField0_ |= 0x00400000;
9716  glucoseMaxDecay_ = value;
9717  onChanged();
9718  return this;
9719  }
9731  bitField0_ = (bitField0_ & ~0x00400000);
9732  glucoseMaxDecay_ = 0.95D;
9733  onChanged();
9734  return this;
9735  }
9736 
9737  private double glucoseDecayIncrement_ = 0.01D;
9741  public boolean hasGlucoseDecayIncrement() {
9742  return ((bitField0_ & 0x00800000) != 0);
9743  }
9747  public double getGlucoseDecayIncrement() {
9748  return glucoseDecayIncrement_;
9749  }
9753  public Builder setGlucoseDecayIncrement(double value) {
9754  bitField0_ |= 0x00800000;
9755  glucoseDecayIncrement_ = value;
9756  onChanged();
9757  return this;
9758  }
9763  bitField0_ = (bitField0_ & ~0x00800000);
9764  glucoseDecayIncrement_ = 0.01D;
9765  onChanged();
9766  return this;
9767  }
9768 
9769  private int glucoseDecayIncrementPeriod_ = 5000;
9774  return ((bitField0_ & 0x01000000) != 0);
9775  }
9780  return glucoseDecayIncrementPeriod_;
9781  }
9786  bitField0_ |= 0x01000000;
9787  glucoseDecayIncrementPeriod_ = value;
9788  onChanged();
9789  return this;
9790  }
9795  bitField0_ = (bitField0_ & ~0x01000000);
9796  glucoseDecayIncrementPeriod_ = 5000;
9797  onChanged();
9798  return this;
9799  }
9800 
9801  private double clauseActivityDecay_ = 0.999D;
9809  public boolean hasClauseActivityDecay() {
9810  return ((bitField0_ & 0x02000000) != 0);
9811  }
9819  public double getClauseActivityDecay() {
9820  return clauseActivityDecay_;
9821  }
9829  public Builder setClauseActivityDecay(double value) {
9830  bitField0_ |= 0x02000000;
9831  clauseActivityDecay_ = value;
9832  onChanged();
9833  return this;
9834  }
9843  bitField0_ = (bitField0_ & ~0x02000000);
9844  clauseActivityDecay_ = 0.999D;
9845  onChanged();
9846  return this;
9847  }
9848 
9849  private double maxClauseActivityValue_ = 1e+20D;
9853  public boolean hasMaxClauseActivityValue() {
9854  return ((bitField0_ & 0x04000000) != 0);
9855  }
9859  public double getMaxClauseActivityValue() {
9860  return maxClauseActivityValue_;
9861  }
9865  public Builder setMaxClauseActivityValue(double value) {
9866  bitField0_ |= 0x04000000;
9867  maxClauseActivityValue_ = value;
9868  onChanged();
9869  return this;
9870  }
9875  bitField0_ = (bitField0_ & ~0x04000000);
9876  maxClauseActivityValue_ = 1e+20D;
9877  onChanged();
9878  return this;
9879  }
9880 
9881  private java.util.List<java.lang.Integer> restartAlgorithms_ =
9882  java.util.Collections.emptyList();
9883  private void ensureRestartAlgorithmsIsMutable() {
9884  if (!((bitField0_ & 0x08000000) != 0)) {
9885  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
9886  bitField0_ |= 0x08000000;
9887  }
9888  }
9904  return new com.google.protobuf.Internal.ListAdapter<
9905  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
9906  }
9922  return restartAlgorithms_.size();
9923  }
9939  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
9940  }
9956  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
9957  if (value == null) {
9958  throw new NullPointerException();
9959  }
9960  ensureRestartAlgorithmsIsMutable();
9961  restartAlgorithms_.set(index, value.getNumber());
9962  onChanged();
9963  return this;
9964  }
9980  if (value == null) {
9981  throw new NullPointerException();
9982  }
9983  ensureRestartAlgorithmsIsMutable();
9984  restartAlgorithms_.add(value.getNumber());
9985  onChanged();
9986  return this;
9987  }
10003  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
10004  ensureRestartAlgorithmsIsMutable();
10005  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
10006  restartAlgorithms_.add(value.getNumber());
10007  }
10008  onChanged();
10009  return this;
10010  }
10026  restartAlgorithms_ = java.util.Collections.emptyList();
10027  bitField0_ = (bitField0_ & ~0x08000000);
10028  onChanged();
10029  return this;
10030  }
10031 
10032  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
10036  public boolean hasDefaultRestartAlgorithms() {
10037  return ((bitField0_ & 0x10000000) != 0);
10038  }
10042  public java.lang.String getDefaultRestartAlgorithms() {
10043  java.lang.Object ref = defaultRestartAlgorithms_;
10044  if (!(ref instanceof java.lang.String)) {
10045  com.google.protobuf.ByteString bs =
10046  (com.google.protobuf.ByteString) ref;
10047  java.lang.String s = bs.toStringUtf8();
10048  if (bs.isValidUtf8()) {
10049  defaultRestartAlgorithms_ = s;
10050  }
10051  return s;
10052  } else {
10053  return (java.lang.String) ref;
10054  }
10055  }
10059  public com.google.protobuf.ByteString
10061  java.lang.Object ref = defaultRestartAlgorithms_;
10062  if (ref instanceof String) {
10063  com.google.protobuf.ByteString b =
10064  com.google.protobuf.ByteString.copyFromUtf8(
10065  (java.lang.String) ref);
10066  defaultRestartAlgorithms_ = b;
10067  return b;
10068  } else {
10069  return (com.google.protobuf.ByteString) ref;
10070  }
10071  }
10076  java.lang.String value) {
10077  if (value == null) {
10078  throw new NullPointerException();
10079  }
10080  bitField0_ |= 0x10000000;
10081  defaultRestartAlgorithms_ = value;
10082  onChanged();
10083  return this;
10084  }
10089  bitField0_ = (bitField0_ & ~0x10000000);
10090  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
10091  onChanged();
10092  return this;
10093  }
10098  com.google.protobuf.ByteString value) {
10099  if (value == null) {
10100  throw new NullPointerException();
10101  }
10102  bitField0_ |= 0x10000000;
10103  defaultRestartAlgorithms_ = value;
10104  onChanged();
10105  return this;
10106  }
10107 
10108  private int restartPeriod_ = 50;
10117  public boolean hasRestartPeriod() {
10118  return ((bitField0_ & 0x20000000) != 0);
10119  }
10128  public int getRestartPeriod() {
10129  return restartPeriod_;
10130  }
10139  public Builder setRestartPeriod(int value) {
10140  bitField0_ |= 0x20000000;
10141  restartPeriod_ = value;
10142  onChanged();
10143  return this;
10144  }
10154  bitField0_ = (bitField0_ & ~0x20000000);
10155  restartPeriod_ = 50;
10156  onChanged();
10157  return this;
10158  }
10159 
10160  private int restartRunningWindowSize_ = 50;
10168  public boolean hasRestartRunningWindowSize() {
10169  return ((bitField0_ & 0x40000000) != 0);
10170  }
10179  return restartRunningWindowSize_;
10180  }
10189  bitField0_ |= 0x40000000;
10190  restartRunningWindowSize_ = value;
10191  onChanged();
10192  return this;
10193  }
10202  bitField0_ = (bitField0_ & ~0x40000000);
10203  restartRunningWindowSize_ = 50;
10204  onChanged();
10205  return this;
10206  }
10207 
10208  private double restartDlAverageRatio_ = 1D;
10217  public boolean hasRestartDlAverageRatio() {
10218  return ((bitField0_ & 0x80000000) != 0);
10219  }
10228  public double getRestartDlAverageRatio() {
10229  return restartDlAverageRatio_;
10230  }
10239  public Builder setRestartDlAverageRatio(double value) {
10240  bitField0_ |= 0x80000000;
10241  restartDlAverageRatio_ = value;
10242  onChanged();
10243  return this;
10244  }
10254  bitField0_ = (bitField0_ & ~0x80000000);
10255  restartDlAverageRatio_ = 1D;
10256  onChanged();
10257  return this;
10258  }
10259 
10260  private double restartLbdAverageRatio_ = 1D;
10264  public boolean hasRestartLbdAverageRatio() {
10265  return ((bitField1_ & 0x00000001) != 0);
10266  }
10270  public double getRestartLbdAverageRatio() {
10271  return restartLbdAverageRatio_;
10272  }
10276  public Builder setRestartLbdAverageRatio(double value) {
10277  bitField1_ |= 0x00000001;
10278  restartLbdAverageRatio_ = value;
10279  onChanged();
10280  return this;
10281  }
10286  bitField1_ = (bitField1_ & ~0x00000001);
10287  restartLbdAverageRatio_ = 1D;
10288  onChanged();
10289  return this;
10290  }
10291 
10292  private boolean useBlockingRestart_ ;
10302  public boolean hasUseBlockingRestart() {
10303  return ((bitField1_ & 0x00000002) != 0);
10304  }
10314  public boolean getUseBlockingRestart() {
10315  return useBlockingRestart_;
10316  }
10326  public Builder setUseBlockingRestart(boolean value) {
10327  bitField1_ |= 0x00000002;
10328  useBlockingRestart_ = value;
10329  onChanged();
10330  return this;
10331  }
10342  bitField1_ = (bitField1_ & ~0x00000002);
10343  useBlockingRestart_ = false;
10344  onChanged();
10345  return this;
10346  }
10347 
10348  private int blockingRestartWindowSize_ = 5000;
10352  public boolean hasBlockingRestartWindowSize() {
10353  return ((bitField1_ & 0x00000004) != 0);
10354  }
10359  return blockingRestartWindowSize_;
10360  }
10365  bitField1_ |= 0x00000004;
10366  blockingRestartWindowSize_ = value;
10367  onChanged();
10368  return this;
10369  }
10374  bitField1_ = (bitField1_ & ~0x00000004);
10375  blockingRestartWindowSize_ = 5000;
10376  onChanged();
10377  return this;
10378  }
10379 
10380  private double blockingRestartMultiplier_ = 1.4D;
10384  public boolean hasBlockingRestartMultiplier() {
10385  return ((bitField1_ & 0x00000008) != 0);
10386  }
10391  return blockingRestartMultiplier_;
10392  }
10396  public Builder setBlockingRestartMultiplier(double value) {
10397  bitField1_ |= 0x00000008;
10398  blockingRestartMultiplier_ = value;
10399  onChanged();
10400  return this;
10401  }
10406  bitField1_ = (bitField1_ & ~0x00000008);
10407  blockingRestartMultiplier_ = 1.4D;
10408  onChanged();
10409  return this;
10410  }
10411 
10412  private int numConflictsBeforeStrategyChanges_ ;
10423  return ((bitField1_ & 0x00000010) != 0);
10424  }
10435  return numConflictsBeforeStrategyChanges_;
10436  }
10447  bitField1_ |= 0x00000010;
10448  numConflictsBeforeStrategyChanges_ = value;
10449  onChanged();
10450  return this;
10451  }
10462  bitField1_ = (bitField1_ & ~0x00000010);
10463  numConflictsBeforeStrategyChanges_ = 0;
10464  onChanged();
10465  return this;
10466  }
10467 
10468  private double strategyChangeIncreaseRatio_ ;
10478  return ((bitField1_ & 0x00000020) != 0);
10479  }
10489  return strategyChangeIncreaseRatio_;
10490  }
10500  bitField1_ |= 0x00000020;
10501  strategyChangeIncreaseRatio_ = value;
10502  onChanged();
10503  return this;
10504  }
10514  bitField1_ = (bitField1_ & ~0x00000020);
10515  strategyChangeIncreaseRatio_ = 0D;
10516  onChanged();
10517  return this;
10518  }
10519 
10520  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10530  public boolean hasMaxTimeInSeconds() {
10531  return ((bitField1_ & 0x00000040) != 0);
10532  }
10542  public double getMaxTimeInSeconds() {
10543  return maxTimeInSeconds_;
10544  }
10554  public Builder setMaxTimeInSeconds(double value) {
10555  bitField1_ |= 0x00000040;
10556  maxTimeInSeconds_ = value;
10557  onChanged();
10558  return this;
10559  }
10570  bitField1_ = (bitField1_ & ~0x00000040);
10571  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10572  onChanged();
10573  return this;
10574  }
10575 
10576  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10588  public boolean hasMaxDeterministicTime() {
10589  return ((bitField1_ & 0x00000080) != 0);
10590  }
10602  public double getMaxDeterministicTime() {
10603  return maxDeterministicTime_;
10604  }
10616  public Builder setMaxDeterministicTime(double value) {
10617  bitField1_ |= 0x00000080;
10618  maxDeterministicTime_ = value;
10619  onChanged();
10620  return this;
10621  }
10634  bitField1_ = (bitField1_ & ~0x00000080);
10635  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10636  onChanged();
10637  return this;
10638  }
10639 
10640  private long maxNumberOfConflicts_ = 9223372036854775807L;
10653  public boolean hasMaxNumberOfConflicts() {
10654  return ((bitField1_ & 0x00000100) != 0);
10655  }
10668  public long getMaxNumberOfConflicts() {
10669  return maxNumberOfConflicts_;
10670  }
10683  public Builder setMaxNumberOfConflicts(long value) {
10684  bitField1_ |= 0x00000100;
10685  maxNumberOfConflicts_ = value;
10686  onChanged();
10687  return this;
10688  }
10702  bitField1_ = (bitField1_ & ~0x00000100);
10703  maxNumberOfConflicts_ = 9223372036854775807L;
10704  onChanged();
10705  return this;
10706  }
10707 
10708  private long maxMemoryInMb_ = 10000L;
10719  public boolean hasMaxMemoryInMb() {
10720  return ((bitField1_ & 0x00000200) != 0);
10721  }
10732  public long getMaxMemoryInMb() {
10733  return maxMemoryInMb_;
10734  }
10745  public Builder setMaxMemoryInMb(long value) {
10746  bitField1_ |= 0x00000200;
10747  maxMemoryInMb_ = value;
10748  onChanged();
10749  return this;
10750  }
10762  bitField1_ = (bitField1_ & ~0x00000200);
10763  maxMemoryInMb_ = 10000L;
10764  onChanged();
10765  return this;
10766  }
10767 
10768  private boolean treatBinaryClausesSeparately_ = true;
10779  return ((bitField1_ & 0x00000400) != 0);
10780  }
10791  return treatBinaryClausesSeparately_;
10792  }
10803  bitField1_ |= 0x00000400;
10804  treatBinaryClausesSeparately_ = value;
10805  onChanged();
10806  return this;
10807  }
10818  bitField1_ = (bitField1_ & ~0x00000400);
10819  treatBinaryClausesSeparately_ = true;
10820  onChanged();
10821  return this;
10822  }
10823 
10824  private int randomSeed_ = 1;
10837  public boolean hasRandomSeed() {
10838  return ((bitField1_ & 0x00000800) != 0);
10839  }
10852  public int getRandomSeed() {
10853  return randomSeed_;
10854  }
10867  public Builder setRandomSeed(int value) {
10868  bitField1_ |= 0x00000800;
10869  randomSeed_ = value;
10870  onChanged();
10871  return this;
10872  }
10886  bitField1_ = (bitField1_ & ~0x00000800);
10887  randomSeed_ = 1;
10888  onChanged();
10889  return this;
10890  }
10891 
10892  private boolean logSearchProgress_ ;
10900  public boolean hasLogSearchProgress() {
10901  return ((bitField1_ & 0x00001000) != 0);
10902  }
10910  public boolean getLogSearchProgress() {
10911  return logSearchProgress_;
10912  }
10920  public Builder setLogSearchProgress(boolean value) {
10921  bitField1_ |= 0x00001000;
10922  logSearchProgress_ = value;
10923  onChanged();
10924  return this;
10925  }
10934  bitField1_ = (bitField1_ & ~0x00001000);
10935  logSearchProgress_ = false;
10936  onChanged();
10937  return this;
10938  }
10939 
10940  private boolean usePbResolution_ ;
10951  public boolean hasUsePbResolution() {
10952  return ((bitField1_ & 0x00002000) != 0);
10953  }
10964  public boolean getUsePbResolution() {
10965  return usePbResolution_;
10966  }
10977  public Builder setUsePbResolution(boolean value) {
10978  bitField1_ |= 0x00002000;
10979  usePbResolution_ = value;
10980  onChanged();
10981  return this;
10982  }
10994  bitField1_ = (bitField1_ & ~0x00002000);
10995  usePbResolution_ = false;
10996  onChanged();
10997  return this;
10998  }
10999 
11000  private boolean minimizeReductionDuringPbResolution_ ;
11012  return ((bitField1_ & 0x00004000) != 0);
11013  }
11025  return minimizeReductionDuringPbResolution_;
11026  }
11038  bitField1_ |= 0x00004000;
11039  minimizeReductionDuringPbResolution_ = value;
11040  onChanged();
11041  return this;
11042  }
11054  bitField1_ = (bitField1_ & ~0x00004000);
11055  minimizeReductionDuringPbResolution_ = false;
11056  onChanged();
11057  return this;
11058  }
11059 
11060  private boolean countAssumptionLevelsInLbd_ = true;
11076  return ((bitField1_ & 0x00008000) != 0);
11077  }
11093  return countAssumptionLevelsInLbd_;
11094  }
11109  public Builder setCountAssumptionLevelsInLbd(boolean value) {
11110  bitField1_ |= 0x00008000;
11111  countAssumptionLevelsInLbd_ = value;
11112  onChanged();
11113  return this;
11114  }
11130  bitField1_ = (bitField1_ & ~0x00008000);
11131  countAssumptionLevelsInLbd_ = true;
11132  onChanged();
11133  return this;
11134  }
11135 
11136  private int presolveBveThreshold_ = 500;
11146  public boolean hasPresolveBveThreshold() {
11147  return ((bitField1_ & 0x00010000) != 0);
11148  }
11159  return presolveBveThreshold_;
11160  }
11170  public Builder setPresolveBveThreshold(int value) {
11171  bitField1_ |= 0x00010000;
11172  presolveBveThreshold_ = value;
11173  onChanged();
11174  return this;
11175  }
11186  bitField1_ = (bitField1_ & ~0x00010000);
11187  presolveBveThreshold_ = 500;
11188  onChanged();
11189  return this;
11190  }
11191 
11192  private int presolveBveClauseWeight_ = 3;
11201  public boolean hasPresolveBveClauseWeight() {
11202  return ((bitField1_ & 0x00020000) != 0);
11203  }
11213  return presolveBveClauseWeight_;
11214  }
11224  bitField1_ |= 0x00020000;
11225  presolveBveClauseWeight_ = value;
11226  onChanged();
11227  return this;
11228  }
11238  bitField1_ = (bitField1_ & ~0x00020000);
11239  presolveBveClauseWeight_ = 3;
11240  onChanged();
11241  return this;
11242  }
11243 
11244  private double presolveProbingDeterministicTimeLimit_ = 30D;
11254  return ((bitField1_ & 0x00040000) != 0);
11255  }
11265  return presolveProbingDeterministicTimeLimit_;
11266  }
11276  bitField1_ |= 0x00040000;
11277  presolveProbingDeterministicTimeLimit_ = value;
11278  onChanged();
11279  return this;
11280  }
11290  bitField1_ = (bitField1_ & ~0x00040000);
11291  presolveProbingDeterministicTimeLimit_ = 30D;
11292  onChanged();
11293  return this;
11294  }
11295 
11296  private boolean presolveBlockedClause_ = true;
11305  public boolean hasPresolveBlockedClause() {
11306  return ((bitField1_ & 0x00080000) != 0);
11307  }
11316  public boolean getPresolveBlockedClause() {
11317  return presolveBlockedClause_;
11318  }
11327  public Builder setPresolveBlockedClause(boolean value) {
11328  bitField1_ |= 0x00080000;
11329  presolveBlockedClause_ = value;
11330  onChanged();
11331  return this;
11332  }
11342  bitField1_ = (bitField1_ & ~0x00080000);
11343  presolveBlockedClause_ = true;
11344  onChanged();
11345  return this;
11346  }
11347 
11348  private boolean presolveUseBva_ = true;
11356  public boolean hasPresolveUseBva() {
11357  return ((bitField1_ & 0x00100000) != 0);
11358  }
11366  public boolean getPresolveUseBva() {
11367  return presolveUseBva_;
11368  }
11376  public Builder setPresolveUseBva(boolean value) {
11377  bitField1_ |= 0x00100000;
11378  presolveUseBva_ = value;
11379  onChanged();
11380  return this;
11381  }
11390  bitField1_ = (bitField1_ & ~0x00100000);
11391  presolveUseBva_ = true;
11392  onChanged();
11393  return this;
11394  }
11395 
11396  private int presolveBvaThreshold_ = 1;
11407  public boolean hasPresolveBvaThreshold() {
11408  return ((bitField1_ & 0x00200000) != 0);
11409  }
11421  return presolveBvaThreshold_;
11422  }
11433  public Builder setPresolveBvaThreshold(int value) {
11434  bitField1_ |= 0x00200000;
11435  presolveBvaThreshold_ = value;
11436  onChanged();
11437  return this;
11438  }
11450  bitField1_ = (bitField1_ & ~0x00200000);
11451  presolveBvaThreshold_ = 1;
11452  onChanged();
11453  return this;
11454  }
11455 
11456  private int maxPresolveIterations_ = 3;
11466  public boolean hasMaxPresolveIterations() {
11467  return ((bitField1_ & 0x00400000) != 0);
11468  }
11479  return maxPresolveIterations_;
11480  }
11490  public Builder setMaxPresolveIterations(int value) {
11491  bitField1_ |= 0x00400000;
11492  maxPresolveIterations_ = value;
11493  onChanged();
11494  return this;
11495  }
11506  bitField1_ = (bitField1_ & ~0x00400000);
11507  maxPresolveIterations_ = 3;
11508  onChanged();
11509  return this;
11510  }
11511 
11512  private boolean useOptimizationHints_ = true;
11523  public boolean hasUseOptimizationHints() {
11524  return ((bitField1_ & 0x00800000) != 0);
11525  }
11536  public boolean getUseOptimizationHints() {
11537  return useOptimizationHints_;
11538  }
11549  public Builder setUseOptimizationHints(boolean value) {
11550  bitField1_ |= 0x00800000;
11551  useOptimizationHints_ = value;
11552  onChanged();
11553  return this;
11554  }
11566  bitField1_ = (bitField1_ & ~0x00800000);
11567  useOptimizationHints_ = true;
11568  onChanged();
11569  return this;
11570  }
11571 
11572  private boolean minimizeCore_ = true;
11580  public boolean hasMinimizeCore() {
11581  return ((bitField1_ & 0x01000000) != 0);
11582  }
11590  public boolean getMinimizeCore() {
11591  return minimizeCore_;
11592  }
11600  public Builder setMinimizeCore(boolean value) {
11601  bitField1_ |= 0x01000000;
11602  minimizeCore_ = value;
11603  onChanged();
11604  return this;
11605  }
11614  bitField1_ = (bitField1_ & ~0x01000000);
11615  minimizeCore_ = true;
11616  onChanged();
11617  return this;
11618  }
11619 
11620  private boolean findMultipleCores_ = true;
11629  public boolean hasFindMultipleCores() {
11630  return ((bitField1_ & 0x02000000) != 0);
11631  }
11640  public boolean getFindMultipleCores() {
11641  return findMultipleCores_;
11642  }
11651  public Builder setFindMultipleCores(boolean value) {
11652  bitField1_ |= 0x02000000;
11653  findMultipleCores_ = value;
11654  onChanged();
11655  return this;
11656  }
11666  bitField1_ = (bitField1_ & ~0x02000000);
11667  findMultipleCores_ = true;
11668  onChanged();
11669  return this;
11670  }
11671 
11672  private boolean coverOptimization_ = true;
11681  public boolean hasCoverOptimization() {
11682  return ((bitField1_ & 0x04000000) != 0);
11683  }
11692  public boolean getCoverOptimization() {
11693  return coverOptimization_;
11694  }
11703  public Builder setCoverOptimization(boolean value) {
11704  bitField1_ |= 0x04000000;
11705  coverOptimization_ = value;
11706  onChanged();
11707  return this;
11708  }
11718  bitField1_ = (bitField1_ & ~0x04000000);
11719  coverOptimization_ = true;
11720  onChanged();
11721  return this;
11722  }
11723 
11724  private int maxSatAssumptionOrder_ = 0;
11728  public boolean hasMaxSatAssumptionOrder() {
11729  return ((bitField1_ & 0x08000000) != 0);
11730  }
11735  @SuppressWarnings("deprecation")
11738  }
11743  if (value == null) {
11744  throw new NullPointerException();
11745  }
11746  bitField1_ |= 0x08000000;
11747  maxSatAssumptionOrder_ = value.getNumber();
11748  onChanged();
11749  return this;
11750  }
11755  bitField1_ = (bitField1_ & ~0x08000000);
11756  maxSatAssumptionOrder_ = 0;
11757  onChanged();
11758  return this;
11759  }
11760 
11761  private boolean maxSatReverseAssumptionOrder_ ;
11771  return ((bitField1_ & 0x10000000) != 0);
11772  }
11782  return maxSatReverseAssumptionOrder_;
11783  }
11793  bitField1_ |= 0x10000000;
11794  maxSatReverseAssumptionOrder_ = value;
11795  onChanged();
11796  return this;
11797  }
11807  bitField1_ = (bitField1_ & ~0x10000000);
11808  maxSatReverseAssumptionOrder_ = false;
11809  onChanged();
11810  return this;
11811  }
11812 
11813  private int maxSatStratification_ = 1;
11817  public boolean hasMaxSatStratification() {
11818  return ((bitField1_ & 0x20000000) != 0);
11819  }
11824  @SuppressWarnings("deprecation")
11827  }
11832  if (value == null) {
11833  throw new NullPointerException();
11834  }
11835  bitField1_ |= 0x20000000;
11836  maxSatStratification_ = value.getNumber();
11837  onChanged();
11838  return this;
11839  }
11844  bitField1_ = (bitField1_ & ~0x20000000);
11845  maxSatStratification_ = 1;
11846  onChanged();
11847  return this;
11848  }
11849 
11850  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
11866  return ((bitField1_ & 0x40000000) != 0);
11867  }
11883  return usePrecedencesInDisjunctiveConstraint_;
11884  }
11900  bitField1_ |= 0x40000000;
11901  usePrecedencesInDisjunctiveConstraint_ = value;
11902  onChanged();
11903  return this;
11904  }
11920  bitField1_ = (bitField1_ & ~0x40000000);
11921  usePrecedencesInDisjunctiveConstraint_ = true;
11922  onChanged();
11923  return this;
11924  }
11925 
11926  private boolean useOverloadCheckerInCumulativeConstraint_ ;
11940  return ((bitField1_ & 0x80000000) != 0);
11941  }
11955  return useOverloadCheckerInCumulativeConstraint_;
11956  }
11970  bitField1_ |= 0x80000000;
11971  useOverloadCheckerInCumulativeConstraint_ = value;
11972  onChanged();
11973  return this;
11974  }
11988  bitField1_ = (bitField1_ & ~0x80000000);
11989  useOverloadCheckerInCumulativeConstraint_ = false;
11990  onChanged();
11991  return this;
11992  }
11993 
11994  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
12008  return ((bitField2_ & 0x00000001) != 0);
12009  }
12023  return useTimetableEdgeFindingInCumulativeConstraint_;
12024  }
12038  bitField2_ |= 0x00000001;
12039  useTimetableEdgeFindingInCumulativeConstraint_ = value;
12040  onChanged();
12041  return this;
12042  }
12056  bitField2_ = (bitField2_ & ~0x00000001);
12057  useTimetableEdgeFindingInCumulativeConstraint_ = false;
12058  onChanged();
12059  return this;
12060  }
12061 
12062  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
12078  return ((bitField2_ & 0x00000002) != 0);
12079  }
12095  return useDisjunctiveConstraintInCumulativeConstraint_;
12096  }
12112  bitField2_ |= 0x00000002;
12113  useDisjunctiveConstraintInCumulativeConstraint_ = value;
12114  onChanged();
12115  return this;
12116  }
12132  bitField2_ = (bitField2_ & ~0x00000002);
12133  useDisjunctiveConstraintInCumulativeConstraint_ = true;
12134  onChanged();
12135  return this;
12136  }
12137 
12138  private int linearizationLevel_ = 1;
12149  public boolean hasLinearizationLevel() {
12150  return ((bitField2_ & 0x00000004) != 0);
12151  }
12162  public int getLinearizationLevel() {
12163  return linearizationLevel_;
12164  }
12175  public Builder setLinearizationLevel(int value) {
12176  bitField2_ |= 0x00000004;
12177  linearizationLevel_ = value;
12178  onChanged();
12179  return this;
12180  }
12192  bitField2_ = (bitField2_ & ~0x00000004);
12193  linearizationLevel_ = 1;
12194  onChanged();
12195  return this;
12196  }
12197 
12198  private int booleanEncodingLevel_ = 1;
12207  public boolean hasBooleanEncodingLevel() {
12208  return ((bitField2_ & 0x00000008) != 0);
12209  }
12219  return booleanEncodingLevel_;
12220  }
12229  public Builder setBooleanEncodingLevel(int value) {
12230  bitField2_ |= 0x00000008;
12231  booleanEncodingLevel_ = value;
12232  onChanged();
12233  return this;
12234  }
12244  bitField2_ = (bitField2_ & ~0x00000008);
12245  booleanEncodingLevel_ = 1;
12246  onChanged();
12247  return this;
12248  }
12249 
12250  private int maxNumCuts_ = 5000;
12261  public boolean hasMaxNumCuts() {
12262  return ((bitField2_ & 0x00000010) != 0);
12263  }
12274  public int getMaxNumCuts() {
12275  return maxNumCuts_;
12276  }
12287  public Builder setMaxNumCuts(int value) {
12288  bitField2_ |= 0x00000010;
12289  maxNumCuts_ = value;
12290  onChanged();
12291  return this;
12292  }
12304  bitField2_ = (bitField2_ & ~0x00000010);
12305  maxNumCuts_ = 5000;
12306  onChanged();
12307  return this;
12308  }
12309 
12310  private boolean onlyAddCutsAtLevelZero_ ;
12319  public boolean hasOnlyAddCutsAtLevelZero() {
12320  return ((bitField2_ & 0x00000020) != 0);
12321  }
12330  public boolean getOnlyAddCutsAtLevelZero() {
12331  return onlyAddCutsAtLevelZero_;
12332  }
12341  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
12342  bitField2_ |= 0x00000020;
12343  onlyAddCutsAtLevelZero_ = value;
12344  onChanged();
12345  return this;
12346  }
12356  bitField2_ = (bitField2_ & ~0x00000020);
12357  onlyAddCutsAtLevelZero_ = false;
12358  onChanged();
12359  return this;
12360  }
12361 
12362  private boolean addKnapsackCuts_ ;
12372  public boolean hasAddKnapsackCuts() {
12373  return ((bitField2_ & 0x00000040) != 0);
12374  }
12384  public boolean getAddKnapsackCuts() {
12385  return addKnapsackCuts_;
12386  }
12396  public Builder setAddKnapsackCuts(boolean value) {
12397  bitField2_ |= 0x00000040;
12398  addKnapsackCuts_ = value;
12399  onChanged();
12400  return this;
12401  }
12412  bitField2_ = (bitField2_ & ~0x00000040);
12413  addKnapsackCuts_ = false;
12414  onChanged();
12415  return this;
12416  }
12417 
12418  private boolean addCgCuts_ ;
12427  public boolean hasAddCgCuts() {
12428  return ((bitField2_ & 0x00000080) != 0);
12429  }
12438  public boolean getAddCgCuts() {
12439  return addCgCuts_;
12440  }
12449  public Builder setAddCgCuts(boolean value) {
12450  bitField2_ |= 0x00000080;
12451  addCgCuts_ = value;
12452  onChanged();
12453  return this;
12454  }
12464  bitField2_ = (bitField2_ & ~0x00000080);
12465  addCgCuts_ = false;
12466  onChanged();
12467  return this;
12468  }
12469 
12470  private boolean addMirCuts_ = true;
12479  public boolean hasAddMirCuts() {
12480  return ((bitField2_ & 0x00000100) != 0);
12481  }
12490  public boolean getAddMirCuts() {
12491  return addMirCuts_;
12492  }
12501  public Builder setAddMirCuts(boolean value) {
12502  bitField2_ |= 0x00000100;
12503  addMirCuts_ = value;
12504  onChanged();
12505  return this;
12506  }
12516  bitField2_ = (bitField2_ & ~0x00000100);
12517  addMirCuts_ = true;
12518  onChanged();
12519  return this;
12520  }
12521 
12522  private boolean useMirRounding_ = true;
12532  public boolean hasUseMirRounding() {
12533  return ((bitField2_ & 0x00000200) != 0);
12534  }
12544  public boolean getUseMirRounding() {
12545  return useMirRounding_;
12546  }
12556  public Builder setUseMirRounding(boolean value) {
12557  bitField2_ |= 0x00000200;
12558  useMirRounding_ = value;
12559  onChanged();
12560  return this;
12561  }
12572  bitField2_ = (bitField2_ & ~0x00000200);
12573  useMirRounding_ = true;
12574  onChanged();
12575  return this;
12576  }
12577 
12578  private int maxIntegerRoundingScaling_ = 600;
12590  public boolean hasMaxIntegerRoundingScaling() {
12591  return ((bitField2_ & 0x00000400) != 0);
12592  }
12605  return maxIntegerRoundingScaling_;
12606  }
12619  bitField2_ |= 0x00000400;
12620  maxIntegerRoundingScaling_ = value;
12621  onChanged();
12622  return this;
12623  }
12636  bitField2_ = (bitField2_ & ~0x00000400);
12637  maxIntegerRoundingScaling_ = 600;
12638  onChanged();
12639  return this;
12640  }
12641 
12642  private boolean addLpConstraintsLazily_ = true;
12653  public boolean hasAddLpConstraintsLazily() {
12654  return ((bitField2_ & 0x00000800) != 0);
12655  }
12666  public boolean getAddLpConstraintsLazily() {
12667  return addLpConstraintsLazily_;
12668  }
12679  public Builder setAddLpConstraintsLazily(boolean value) {
12680  bitField2_ |= 0x00000800;
12681  addLpConstraintsLazily_ = value;
12682  onChanged();
12683  return this;
12684  }
12696  bitField2_ = (bitField2_ & ~0x00000800);
12697  addLpConstraintsLazily_ = true;
12698  onChanged();
12699  return this;
12700  }
12701 
12702  private double minOrthogonalityForLpConstraints_ ;
12715  return ((bitField2_ & 0x00001000) != 0);
12716  }
12729  return minOrthogonalityForLpConstraints_;
12730  }
12743  bitField2_ |= 0x00001000;
12744  minOrthogonalityForLpConstraints_ = value;
12745  onChanged();
12746  return this;
12747  }
12760  bitField2_ = (bitField2_ & ~0x00001000);
12761  minOrthogonalityForLpConstraints_ = 0D;
12762  onChanged();
12763  return this;
12764  }
12765 
12766  private long maxInactiveCount_ = 1000L;
12775  public boolean hasMaxInactiveCount() {
12776  return ((bitField2_ & 0x00002000) != 0);
12777  }
12786  public long getMaxInactiveCount() {
12787  return maxInactiveCount_;
12788  }
12797  public Builder setMaxInactiveCount(long value) {
12798  bitField2_ |= 0x00002000;
12799  maxInactiveCount_ = value;
12800  onChanged();
12801  return this;
12802  }
12812  bitField2_ = (bitField2_ & ~0x00002000);
12813  maxInactiveCount_ = 1000L;
12814  onChanged();
12815  return this;
12816  }
12817 
12818  private long constraintRemovalBatchSize_ = 100L;
12828  return ((bitField2_ & 0x00004000) != 0);
12829  }
12839  return constraintRemovalBatchSize_;
12840  }
12850  bitField2_ |= 0x00004000;
12851  constraintRemovalBatchSize_ = value;
12852  onChanged();
12853  return this;
12854  }
12864  bitField2_ = (bitField2_ & ~0x00004000);
12865  constraintRemovalBatchSize_ = 100L;
12866  onChanged();
12867  return this;
12868  }
12869 
12870  private int searchBranching_ = 0;
12874  public boolean hasSearchBranching() {
12875  return ((bitField2_ & 0x00008000) != 0);
12876  }
12881  @SuppressWarnings("deprecation")
12883  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
12884  }
12889  if (value == null) {
12890  throw new NullPointerException();
12891  }
12892  bitField2_ |= 0x00008000;
12893  searchBranching_ = value.getNumber();
12894  onChanged();
12895  return this;
12896  }
12901  bitField2_ = (bitField2_ & ~0x00008000);
12902  searchBranching_ = 0;
12903  onChanged();
12904  return this;
12905  }
12906 
12907  private boolean exploitIntegerLpSolution_ = true;
12918  public boolean hasExploitIntegerLpSolution() {
12919  return ((bitField2_ & 0x00010000) != 0);
12920  }
12931  public boolean getExploitIntegerLpSolution() {
12932  return exploitIntegerLpSolution_;
12933  }
12944  public Builder setExploitIntegerLpSolution(boolean value) {
12945  bitField2_ |= 0x00010000;
12946  exploitIntegerLpSolution_ = value;
12947  onChanged();
12948  return this;
12949  }
12961  bitField2_ = (bitField2_ & ~0x00010000);
12962  exploitIntegerLpSolution_ = true;
12963  onChanged();
12964  return this;
12965  }
12966 
12967  private boolean exploitAllLpSolution_ = true;
12977  public boolean hasExploitAllLpSolution() {
12978  return ((bitField2_ & 0x00020000) != 0);
12979  }
12989  public boolean getExploitAllLpSolution() {
12990  return exploitAllLpSolution_;
12991  }
13001  public Builder setExploitAllLpSolution(boolean value) {
13002  bitField2_ |= 0x00020000;
13003  exploitAllLpSolution_ = value;
13004  onChanged();
13005  return this;
13006  }
13017  bitField2_ = (bitField2_ & ~0x00020000);
13018  exploitAllLpSolution_ = true;
13019  onChanged();
13020  return this;
13021  }
13022 
13023  private boolean exploitBestSolution_ ;
13031  public boolean hasExploitBestSolution() {
13032  return ((bitField2_ & 0x00040000) != 0);
13033  }
13041  public boolean getExploitBestSolution() {
13042  return exploitBestSolution_;
13043  }
13051  public Builder setExploitBestSolution(boolean value) {
13052  bitField2_ |= 0x00040000;
13053  exploitBestSolution_ = value;
13054  onChanged();
13055  return this;
13056  }
13065  bitField2_ = (bitField2_ & ~0x00040000);
13066  exploitBestSolution_ = false;
13067  onChanged();
13068  return this;
13069  }
13070 
13071  private boolean exploitObjective_ = true;
13080  public boolean hasExploitObjective() {
13081  return ((bitField2_ & 0x00080000) != 0);
13082  }
13091  public boolean getExploitObjective() {
13092  return exploitObjective_;
13093  }
13102  public Builder setExploitObjective(boolean value) {
13103  bitField2_ |= 0x00080000;
13104  exploitObjective_ = value;
13105  onChanged();
13106  return this;
13107  }
13117  bitField2_ = (bitField2_ & ~0x00080000);
13118  exploitObjective_ = true;
13119  onChanged();
13120  return this;
13121  }
13122 
13123  private long pseudoCostReliabilityThreshold_ = 100L;
13133  return ((bitField2_ & 0x00100000) != 0);
13134  }
13144  return pseudoCostReliabilityThreshold_;
13145  }
13155  bitField2_ |= 0x00100000;
13156  pseudoCostReliabilityThreshold_ = value;
13157  onChanged();
13158  return this;
13159  }
13169  bitField2_ = (bitField2_ & ~0x00100000);
13170  pseudoCostReliabilityThreshold_ = 100L;
13171  onChanged();
13172  return this;
13173  }
13174 
13175  private boolean optimizeWithCore_ ;
13186  public boolean hasOptimizeWithCore() {
13187  return ((bitField2_ & 0x00200000) != 0);
13188  }
13199  public boolean getOptimizeWithCore() {
13200  return optimizeWithCore_;
13201  }
13212  public Builder setOptimizeWithCore(boolean value) {
13213  bitField2_ |= 0x00200000;
13214  optimizeWithCore_ = value;
13215  onChanged();
13216  return this;
13217  }
13229  bitField2_ = (bitField2_ & ~0x00200000);
13230  optimizeWithCore_ = false;
13231  onChanged();
13232  return this;
13233  }
13234 
13235  private int binarySearchNumConflicts_ = -1;
13246  public boolean hasBinarySearchNumConflicts() {
13247  return ((bitField2_ & 0x00400000) != 0);
13248  }
13260  return binarySearchNumConflicts_;
13261  }
13273  bitField2_ |= 0x00400000;
13274  binarySearchNumConflicts_ = value;
13275  onChanged();
13276  return this;
13277  }
13289  bitField2_ = (bitField2_ & ~0x00400000);
13290  binarySearchNumConflicts_ = -1;
13291  onChanged();
13292  return this;
13293  }
13294 
13295  private boolean optimizeWithMaxHs_ ;
13308  public boolean hasOptimizeWithMaxHs() {
13309  return ((bitField2_ & 0x00800000) != 0);
13310  }
13323  public boolean getOptimizeWithMaxHs() {
13324  return optimizeWithMaxHs_;
13325  }
13338  public Builder setOptimizeWithMaxHs(boolean value) {
13339  bitField2_ |= 0x00800000;
13340  optimizeWithMaxHs_ = value;
13341  onChanged();
13342  return this;
13343  }
13357  bitField2_ = (bitField2_ & ~0x00800000);
13358  optimizeWithMaxHs_ = false;
13359  onChanged();
13360  return this;
13361  }
13362 
13363  private boolean cpModelPresolve_ = true;
13371  public boolean hasCpModelPresolve() {
13372  return ((bitField2_ & 0x01000000) != 0);
13373  }
13381  public boolean getCpModelPresolve() {
13382  return cpModelPresolve_;
13383  }
13391  public Builder setCpModelPresolve(boolean value) {
13392  bitField2_ |= 0x01000000;
13393  cpModelPresolve_ = value;
13394  onChanged();
13395  return this;
13396  }
13405  bitField2_ = (bitField2_ & ~0x01000000);
13406  cpModelPresolve_ = true;
13407  onChanged();
13408  return this;
13409  }
13410 
13411  private int cpModelProbingLevel_ = 2;
13419  public boolean hasCpModelProbingLevel() {
13420  return ((bitField2_ & 0x02000000) != 0);
13421  }
13429  public int getCpModelProbingLevel() {
13430  return cpModelProbingLevel_;
13431  }
13439  public Builder setCpModelProbingLevel(int value) {
13440  bitField2_ |= 0x02000000;
13441  cpModelProbingLevel_ = value;
13442  onChanged();
13443  return this;
13444  }
13453  bitField2_ = (bitField2_ & ~0x02000000);
13454  cpModelProbingLevel_ = 2;
13455  onChanged();
13456  return this;
13457  }
13458 
13459  private boolean cpModelUseSatPresolve_ = true;
13467  public boolean hasCpModelUseSatPresolve() {
13468  return ((bitField2_ & 0x04000000) != 0);
13469  }
13477  public boolean getCpModelUseSatPresolve() {
13478  return cpModelUseSatPresolve_;
13479  }
13487  public Builder setCpModelUseSatPresolve(boolean value) {
13488  bitField2_ |= 0x04000000;
13489  cpModelUseSatPresolve_ = value;
13490  onChanged();
13491  return this;
13492  }
13501  bitField2_ = (bitField2_ & ~0x04000000);
13502  cpModelUseSatPresolve_ = true;
13503  onChanged();
13504  return this;
13505  }
13506 
13507  private boolean enumerateAllSolutions_ ;
13520  public boolean hasEnumerateAllSolutions() {
13521  return ((bitField2_ & 0x08000000) != 0);
13522  }
13535  public boolean getEnumerateAllSolutions() {
13536  return enumerateAllSolutions_;
13537  }
13550  public Builder setEnumerateAllSolutions(boolean value) {
13551  bitField2_ |= 0x08000000;
13552  enumerateAllSolutions_ = value;
13553  onChanged();
13554  return this;
13555  }
13569  bitField2_ = (bitField2_ & ~0x08000000);
13570  enumerateAllSolutions_ = false;
13571  onChanged();
13572  return this;
13573  }
13574 
13575  private boolean fillTightenedDomainsInResponse_ ;
13588  return ((bitField2_ & 0x10000000) != 0);
13589  }
13602  return fillTightenedDomainsInResponse_;
13603  }
13616  bitField2_ |= 0x10000000;
13617  fillTightenedDomainsInResponse_ = value;
13618  onChanged();
13619  return this;
13620  }
13633  bitField2_ = (bitField2_ & ~0x10000000);
13634  fillTightenedDomainsInResponse_ = false;
13635  onChanged();
13636  return this;
13637  }
13638 
13639  private boolean instantiateAllVariables_ = true;
13648  public boolean hasInstantiateAllVariables() {
13649  return ((bitField2_ & 0x20000000) != 0);
13650  }
13659  public boolean getInstantiateAllVariables() {
13660  return instantiateAllVariables_;
13661  }
13670  public Builder setInstantiateAllVariables(boolean value) {
13671  bitField2_ |= 0x20000000;
13672  instantiateAllVariables_ = value;
13673  onChanged();
13674  return this;
13675  }
13685  bitField2_ = (bitField2_ & ~0x20000000);
13686  instantiateAllVariables_ = true;
13687  onChanged();
13688  return this;
13689  }
13690 
13691  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
13703  return ((bitField2_ & 0x40000000) != 0);
13704  }
13716  return autoDetectGreaterThanAtLeastOneOf_;
13717  }
13729  bitField2_ |= 0x40000000;
13730  autoDetectGreaterThanAtLeastOneOf_ = value;
13731  onChanged();
13732  return this;
13733  }
13745  bitField2_ = (bitField2_ & ~0x40000000);
13746  autoDetectGreaterThanAtLeastOneOf_ = true;
13747  onChanged();
13748  return this;
13749  }
13750 
13751  private boolean stopAfterFirstSolution_ ;
13759  public boolean hasStopAfterFirstSolution() {
13760  return ((bitField2_ & 0x80000000) != 0);
13761  }
13769  public boolean getStopAfterFirstSolution() {
13770  return stopAfterFirstSolution_;
13771  }
13779  public Builder setStopAfterFirstSolution(boolean value) {
13780  bitField2_ |= 0x80000000;
13781  stopAfterFirstSolution_ = value;
13782  onChanged();
13783  return this;
13784  }
13793  bitField2_ = (bitField2_ & ~0x80000000);
13794  stopAfterFirstSolution_ = false;
13795  onChanged();
13796  return this;
13797  }
13798 
13799  private int numSearchWorkers_ = 1;
13808  public boolean hasNumSearchWorkers() {
13809  return ((bitField3_ & 0x00000001) != 0);
13810  }
13819  public int getNumSearchWorkers() {
13820  return numSearchWorkers_;
13821  }
13830  public Builder setNumSearchWorkers(int value) {
13831  bitField3_ |= 0x00000001;
13832  numSearchWorkers_ = value;
13833  onChanged();
13834  return this;
13835  }
13845  bitField3_ = (bitField3_ & ~0x00000001);
13846  numSearchWorkers_ = 1;
13847  onChanged();
13848  return this;
13849  }
13850 
13851  private boolean interleaveSearch_ ;
13862  public boolean hasInterleaveSearch() {
13863  return ((bitField3_ & 0x00000002) != 0);
13864  }
13875  public boolean getInterleaveSearch() {
13876  return interleaveSearch_;
13877  }
13888  public Builder setInterleaveSearch(boolean value) {
13889  bitField3_ |= 0x00000002;
13890  interleaveSearch_ = value;
13891  onChanged();
13892  return this;
13893  }
13905  bitField3_ = (bitField3_ & ~0x00000002);
13906  interleaveSearch_ = false;
13907  onChanged();
13908  return this;
13909  }
13910 
13911  private boolean deterministicParallelSearch_ ;
13922  return ((bitField3_ & 0x00000004) != 0);
13923  }
13934  return deterministicParallelSearch_;
13935  }
13945  public Builder setDeterministicParallelSearch(boolean value) {
13946  bitField3_ |= 0x00000004;
13947  deterministicParallelSearch_ = value;
13948  onChanged();
13949  return this;
13950  }
13961  bitField3_ = (bitField3_ & ~0x00000004);
13962  deterministicParallelSearch_ = false;
13963  onChanged();
13964  return this;
13965  }
13966 
13967  private boolean shareObjectiveBounds_ = true;
13975  public boolean hasShareObjectiveBounds() {
13976  return ((bitField3_ & 0x00000008) != 0);
13977  }
13985  public boolean getShareObjectiveBounds() {
13986  return shareObjectiveBounds_;
13987  }
13995  public Builder setShareObjectiveBounds(boolean value) {
13996  bitField3_ |= 0x00000008;
13997  shareObjectiveBounds_ = value;
13998  onChanged();
13999  return this;
14000  }
14009  bitField3_ = (bitField3_ & ~0x00000008);
14010  shareObjectiveBounds_ = true;
14011  onChanged();
14012  return this;
14013  }
14014 
14015  private boolean shareLevelZeroBounds_ = true;
14023  public boolean hasShareLevelZeroBounds() {
14024  return ((bitField3_ & 0x00000010) != 0);
14025  }
14033  public boolean getShareLevelZeroBounds() {
14034  return shareLevelZeroBounds_;
14035  }
14043  public Builder setShareLevelZeroBounds(boolean value) {
14044  bitField3_ |= 0x00000010;
14045  shareLevelZeroBounds_ = value;
14046  onChanged();
14047  return this;
14048  }
14057  bitField3_ = (bitField3_ & ~0x00000010);
14058  shareLevelZeroBounds_ = true;
14059  onChanged();
14060  return this;
14061  }
14062 
14063  private boolean useLnsOnly_ ;
14071  public boolean hasUseLnsOnly() {
14072  return ((bitField3_ & 0x00000020) != 0);
14073  }
14081  public boolean getUseLnsOnly() {
14082  return useLnsOnly_;
14083  }
14091  public Builder setUseLnsOnly(boolean value) {
14092  bitField3_ |= 0x00000020;
14093  useLnsOnly_ = value;
14094  onChanged();
14095  return this;
14096  }
14105  bitField3_ = (bitField3_ & ~0x00000020);
14106  useLnsOnly_ = false;
14107  onChanged();
14108  return this;
14109  }
14110 
14111  private boolean lnsFocusOnDecisionVariables_ ;
14116  return ((bitField3_ & 0x00000040) != 0);
14117  }
14122  return lnsFocusOnDecisionVariables_;
14123  }
14127  public Builder setLnsFocusOnDecisionVariables(boolean value) {
14128  bitField3_ |= 0x00000040;
14129  lnsFocusOnDecisionVariables_ = value;
14130  onChanged();
14131  return this;
14132  }
14137  bitField3_ = (bitField3_ & ~0x00000040);
14138  lnsFocusOnDecisionVariables_ = false;
14139  onChanged();
14140  return this;
14141  }
14142 
14143  private boolean useRinsLns_ = true;
14151  public boolean hasUseRinsLns() {
14152  return ((bitField3_ & 0x00000080) != 0);
14153  }
14161  public boolean getUseRinsLns() {
14162  return useRinsLns_;
14163  }
14171  public Builder setUseRinsLns(boolean value) {
14172  bitField3_ |= 0x00000080;
14173  useRinsLns_ = value;
14174  onChanged();
14175  return this;
14176  }
14185  bitField3_ = (bitField3_ & ~0x00000080);
14186  useRinsLns_ = true;
14187  onChanged();
14188  return this;
14189  }
14190 
14191  private boolean diversifyLnsParams_ ;
14199  public boolean hasDiversifyLnsParams() {
14200  return ((bitField3_ & 0x00000100) != 0);
14201  }
14209  public boolean getDiversifyLnsParams() {
14210  return diversifyLnsParams_;
14211  }
14219  public Builder setDiversifyLnsParams(boolean value) {
14220  bitField3_ |= 0x00000100;
14221  diversifyLnsParams_ = value;
14222  onChanged();
14223  return this;
14224  }
14233  bitField3_ = (bitField3_ & ~0x00000100);
14234  diversifyLnsParams_ = false;
14235  onChanged();
14236  return this;
14237  }
14238 
14239  private boolean randomizeSearch_ ;
14247  public boolean hasRandomizeSearch() {
14248  return ((bitField3_ & 0x00000200) != 0);
14249  }
14257  public boolean getRandomizeSearch() {
14258  return randomizeSearch_;
14259  }
14267  public Builder setRandomizeSearch(boolean value) {
14268  bitField3_ |= 0x00000200;
14269  randomizeSearch_ = value;
14270  onChanged();
14271  return this;
14272  }
14281  bitField3_ = (bitField3_ & ~0x00000200);
14282  randomizeSearch_ = false;
14283  onChanged();
14284  return this;
14285  }
14286 
14287  private long searchRandomizationTolerance_ ;
14302  return ((bitField3_ & 0x00000400) != 0);
14303  }
14318  return searchRandomizationTolerance_;
14319  }
14334  bitField3_ |= 0x00000400;
14335  searchRandomizationTolerance_ = value;
14336  onChanged();
14337  return this;
14338  }
14353  bitField3_ = (bitField3_ & ~0x00000400);
14354  searchRandomizationTolerance_ = 0L;
14355  onChanged();
14356  return this;
14357  }
14358 
14359  private boolean useOptionalVariables_ = true;
14369  public boolean hasUseOptionalVariables() {
14370  return ((bitField3_ & 0x00000800) != 0);
14371  }
14381  public boolean getUseOptionalVariables() {
14382  return useOptionalVariables_;
14383  }
14393  public Builder setUseOptionalVariables(boolean value) {
14394  bitField3_ |= 0x00000800;
14395  useOptionalVariables_ = value;
14396  onChanged();
14397  return this;
14398  }
14409  bitField3_ = (bitField3_ & ~0x00000800);
14410  useOptionalVariables_ = true;
14411  onChanged();
14412  return this;
14413  }
14414 
14415  private boolean useExactLpReason_ = true;
14426  public boolean hasUseExactLpReason() {
14427  return ((bitField3_ & 0x00001000) != 0);
14428  }
14439  public boolean getUseExactLpReason() {
14440  return useExactLpReason_;
14441  }
14452  public Builder setUseExactLpReason(boolean value) {
14453  bitField3_ |= 0x00001000;
14454  useExactLpReason_ = value;
14455  onChanged();
14456  return this;
14457  }
14469  bitField3_ = (bitField3_ & ~0x00001000);
14470  useExactLpReason_ = true;
14471  onChanged();
14472  return this;
14473  }
14474 
14475  private boolean useCombinedNoOverlap_ ;
14485  public boolean hasUseCombinedNoOverlap() {
14486  return ((bitField3_ & 0x00002000) != 0);
14487  }
14497  public boolean getUseCombinedNoOverlap() {
14498  return useCombinedNoOverlap_;
14499  }
14509  public Builder setUseCombinedNoOverlap(boolean value) {
14510  bitField3_ |= 0x00002000;
14511  useCombinedNoOverlap_ = value;
14512  onChanged();
14513  return this;
14514  }
14525  bitField3_ = (bitField3_ & ~0x00002000);
14526  useCombinedNoOverlap_ = false;
14527  onChanged();
14528  return this;
14529  }
14530 
14531  private double mipMaxBound_ = 10000000D;
14541  public boolean hasMipMaxBound() {
14542  return ((bitField3_ & 0x00004000) != 0);
14543  }
14553  public double getMipMaxBound() {
14554  return mipMaxBound_;
14555  }
14565  public Builder setMipMaxBound(double value) {
14566  bitField3_ |= 0x00004000;
14567  mipMaxBound_ = value;
14568  onChanged();
14569  return this;
14570  }
14581  bitField3_ = (bitField3_ & ~0x00004000);
14582  mipMaxBound_ = 10000000D;
14583  onChanged();
14584  return this;
14585  }
14586 
14587  private double mipVarScaling_ = 1D;
14597  public boolean hasMipVarScaling() {
14598  return ((bitField3_ & 0x00008000) != 0);
14599  }
14609  public double getMipVarScaling() {
14610  return mipVarScaling_;
14611  }
14621  public Builder setMipVarScaling(double value) {
14622  bitField3_ |= 0x00008000;
14623  mipVarScaling_ = value;
14624  onChanged();
14625  return this;
14626  }
14637  bitField3_ = (bitField3_ & ~0x00008000);
14638  mipVarScaling_ = 1D;
14639  onChanged();
14640  return this;
14641  }
14642 
14643  private double mipWantedPrecision_ = 1e-06D;
14659  public boolean hasMipWantedPrecision() {
14660  return ((bitField3_ & 0x00010000) != 0);
14661  }
14677  public double getMipWantedPrecision() {
14678  return mipWantedPrecision_;
14679  }
14695  public Builder setMipWantedPrecision(double value) {
14696  bitField3_ |= 0x00010000;
14697  mipWantedPrecision_ = value;
14698  onChanged();
14699  return this;
14700  }
14717  bitField3_ = (bitField3_ & ~0x00010000);
14718  mipWantedPrecision_ = 1e-06D;
14719  onChanged();
14720  return this;
14721  }
14722 
14723  private int mipMaxActivityExponent_ = 53;
14737  public boolean hasMipMaxActivityExponent() {
14738  return ((bitField3_ & 0x00020000) != 0);
14739  }
14754  return mipMaxActivityExponent_;
14755  }
14770  bitField3_ |= 0x00020000;
14771  mipMaxActivityExponent_ = value;
14772  onChanged();
14773  return this;
14774  }
14789  bitField3_ = (bitField3_ & ~0x00020000);
14790  mipMaxActivityExponent_ = 53;
14791  onChanged();
14792  return this;
14793  }
14794 
14795  private double mipCheckPrecision_ = 0.0001D;
14806  public boolean hasMipCheckPrecision() {
14807  return ((bitField3_ & 0x00040000) != 0);
14808  }
14819  public double getMipCheckPrecision() {
14820  return mipCheckPrecision_;
14821  }
14832  public Builder setMipCheckPrecision(double value) {
14833  bitField3_ |= 0x00040000;
14834  mipCheckPrecision_ = value;
14835  onChanged();
14836  return this;
14837  }
14849  bitField3_ = (bitField3_ & ~0x00040000);
14850  mipCheckPrecision_ = 0.0001D;
14851  onChanged();
14852  return this;
14853  }
14854 
14855  private boolean catchSigintSignal_ = true;
14865  public boolean hasCatchSigintSignal() {
14866  return ((bitField3_ & 0x00080000) != 0);
14867  }
14877  public boolean getCatchSigintSignal() {
14878  return catchSigintSignal_;
14879  }
14889  public Builder setCatchSigintSignal(boolean value) {
14890  bitField3_ |= 0x00080000;
14891  catchSigintSignal_ = value;
14892  onChanged();
14893  return this;
14894  }
14905  bitField3_ = (bitField3_ & ~0x00080000);
14906  catchSigintSignal_ = true;
14907  onChanged();
14908  return this;
14909  }
14910  @java.lang.Override
14912  final com.google.protobuf.UnknownFieldSet unknownFields) {
14913  return super.setUnknownFields(unknownFields);
14914  }
14915 
14916  @java.lang.Override
14918  final com.google.protobuf.UnknownFieldSet unknownFields) {
14919  return super.mergeUnknownFields(unknownFields);
14920  }
14921 
14922 
14923  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
14924  }
14925 
14926  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
14927  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
14928  static {
14929  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
14930  }
14931 
14933  return DEFAULT_INSTANCE;
14934  }
14935 
14936  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
14937  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
14938  @java.lang.Override
14939  public SatParameters parsePartialFrom(
14940  com.google.protobuf.CodedInputStream input,
14941  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14942  throws com.google.protobuf.InvalidProtocolBufferException {
14943  return new SatParameters(input, extensionRegistry);
14944  }
14945  };
14946 
14947  public static com.google.protobuf.Parser<SatParameters> parser() {
14948  return PARSER;
14949  }
14950 
14951  @java.lang.Override
14952  public com.google.protobuf.Parser<SatParameters> getParserForType() {
14953  return PARSER;
14954  }
14955 
14956  @java.lang.Override
14958  return DEFAULT_INSTANCE;
14959  }
14960 
14961 }
14962 
.lang.Override Builder newBuilderForType()
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder setGlucoseDecayIncrementPeriod(int value)
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder clearBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Deprecated static BinaryMinizationAlgorithm valueOf(int value)
static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER
.lang.Override final boolean isInitialized()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER
static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder clearMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
Builder clearMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMinimizeWithPropagationNumDecisions(int value)
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER
static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Deprecated static MaxSatAssumptionOrder valueOf(int value)
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder clearPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
EXPERIMENTAL_BINARY_MINIMIZATION
EXPERIMENTAL_BINARY_MINIMIZATION = 3;
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Deprecated static VariableOrder valueOf(int value)
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
static MaxSatAssumptionOrder forNumber(int value)
.lang.Deprecated static ClauseOrdering valueOf(int value)
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
Builder clearLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override Builder mergeFrom(com.google.protobuf.Message other)
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setPbCleanupRatio(double value)
optional double pb_cleanup_ratio = 47 [default = 0.5];
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder clearBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
Builder setGlucoseDecayIncrement(double value)
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setSubsumptionDuringConflictAnalysis(boolean value)
.lang.Deprecated static ClauseProtection valueOf(int value)
static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER
Builder setFillTightenedDomainsInResponse(boolean value)
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER
Builder clearMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override void writeTo(com.google.protobuf.CodedOutputStream output)
Builder setMaxClauseActivityValue(double value)
optional double max_clause_activity_value = 18 [default = 1e+20];
Builder setLnsFocusOnDecisionVariables(boolean value)
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder clearMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder clearGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
Builder setMinimizeReductionDuringPbResolution(boolean value)
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
Builder setUseOverloadCheckerInCumulativeConstraint(boolean value)
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
Builder clearGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
.lang.Override boolean equals(final java.lang.Object obj)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static ConflictMinimizationAlgorithm forNumber(int value)
Builder clearSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
.lang.Override final boolean isInitialized()
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static MaxSatStratificationAlgorithm forNumber(int value)
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override com.google.ortools.sat.SatParameters buildPartial()
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
boolean hasMaxClauseActivityValue()
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.io.InputStream input)
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int MINIMIZE_WITH_PROPAGATION_NUM_DECISIONS_FIELD_NUMBER
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override Builder toBuilder()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
static com.google.protobuf.Parser< SatParameters > parser()
static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER
BINARY_MINIMIZATION_WITH_REACHABILITY
BINARY_MINIMIZATION_WITH_REACHABILITY = 2;
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
Builder clearBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Deprecated static Polarity valueOf(int value)
Builder setBlockingRestartWindowSize(int value)
optional int32 blocking_restart_window_size = 65 [default = 5000];
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static BinaryMinizationAlgorithm forNumber(int value)
static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Deprecated static RestartAlgorithm valueOf(int value)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
static final int MINIMIZE_WITH_PROPAGATION_RESTART_PERIOD_FIELD_NUMBER
.lang.Override java.lang.Object newInstance(UnusedPrivateParameter unused)
Builder clearMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters build()
Builder setUseDisjunctiveConstraintInCumulativeConstraint(boolean value)
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
static final int MIP_WANTED_PRECISION_FIELD_NUMBER
static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER
static com.google.ortools.sat.SatParameters getDefaultInstance()
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER
.lang.Deprecated static ConflictMinimizationAlgorithm valueOf(int value)
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override com.google.protobuf.Parser< SatParameters > getParserForType()
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
Builder clearClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER
static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER
Builder setBlockingRestartMultiplier(double value)
optional double blocking_restart_multiplier = 66 [default = 1.4];
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setMaxVariableActivityValue(double value)
optional double max_variable_activity_value = 16 [default = 1e+100];
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
Builder clearMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder clearPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder clearClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
.lang.Deprecated static MaxSatStratificationAlgorithm valueOf(int value)
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setPresolveProbingDeterministicTimeLimit(double value)
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
Builder clearRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
.lang.Deprecated static SearchBranching valueOf(int value)
.lang.Deprecated static final com.google.protobuf.Parser< SatParameters > PARSER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setDefaultRestartAlgorithms(java.lang.String value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4;
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int USE_BLOCKING_RESTART_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder clearDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder clearInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
Builder setUseTimetableEdgeFindingInCumulativeConstraint(boolean value)
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder setRestartLbdAverageRatio(double value)
optional double restart_lbd_average_ratio = 71 [default = 1];