Java Reference

Java Reference

SatParameters.java
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/sat/sat_parameters.proto
3 
4 package com.google.ortools.sat;
5 
15 public final class SatParameters extends
16  com.google.protobuf.GeneratedMessageV3 implements
17  // @@protoc_insertion_point(message_implements:operations_research.sat.SatParameters)
19 private static final long serialVersionUID = 0L;
20  // Use SatParameters.newBuilder() to construct.
21  private SatParameters(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
22  super(builder);
23  }
24  private SatParameters() {
25  preferredVariableOrder_ = 0;
26  initialPolarity_ = 1;
27  usePhaseSaving_ = true;
28  minimizationAlgorithm_ = 2;
29  binaryMinimizationAlgorithm_ = 1;
30  subsumptionDuringConflictAnalysis_ = true;
31  clauseCleanupPeriod_ = 10000;
32  clauseCleanupTarget_ = 10000;
33  clauseCleanupProtection_ = 0;
34  clauseCleanupLbdBound_ = 5;
35  clauseCleanupOrdering_ = 0;
36  pbCleanupIncrement_ = 200;
37  pbCleanupRatio_ = 0.5D;
38  minimizeWithPropagationRestartPeriod_ = 10;
39  minimizeWithPropagationNumDecisions_ = 1000;
40  variableActivityDecay_ = 0.8D;
41  maxVariableActivityValue_ = 1e+100D;
42  glucoseMaxDecay_ = 0.95D;
43  glucoseDecayIncrement_ = 0.01D;
44  glucoseDecayIncrementPeriod_ = 5000;
45  clauseActivityDecay_ = 0.999D;
46  maxClauseActivityValue_ = 1e+20D;
47  restartAlgorithms_ = java.util.Collections.emptyList();
48  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
49  restartPeriod_ = 50;
50  restartRunningWindowSize_ = 50;
51  restartDlAverageRatio_ = 1D;
52  restartLbdAverageRatio_ = 1D;
53  blockingRestartWindowSize_ = 5000;
54  blockingRestartMultiplier_ = 1.4D;
55  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
56  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
57  maxNumberOfConflicts_ = 9223372036854775807L;
58  maxMemoryInMb_ = 10000L;
59  treatBinaryClausesSeparately_ = true;
60  randomSeed_ = 1;
61  countAssumptionLevelsInLbd_ = true;
62  presolveBveThreshold_ = 500;
63  presolveBveClauseWeight_ = 3;
64  presolveProbingDeterministicTimeLimit_ = 30D;
65  presolveBlockedClause_ = true;
66  presolveUseBva_ = true;
67  presolveBvaThreshold_ = 1;
68  maxPresolveIterations_ = 3;
69  cpModelPresolve_ = true;
70  cpModelProbingLevel_ = 2;
71  cpModelUseSatPresolve_ = true;
72  expandElementConstraints_ = true;
73  expandAutomatonConstraints_ = true;
74  mergeNoOverlapWorkLimit_ = 1000000000000D;
75  mergeAtMostOneWorkLimit_ = 100000000D;
76  presolveSubstitutionLevel_ = 1;
77  useOptimizationHints_ = true;
78  minimizeCore_ = true;
79  findMultipleCores_ = true;
80  coverOptimization_ = true;
81  maxSatAssumptionOrder_ = 0;
82  maxSatStratification_ = 1;
83  usePrecedencesInDisjunctiveConstraint_ = true;
84  useDisjunctiveConstraintInCumulativeConstraint_ = true;
85  linearizationLevel_ = 1;
86  booleanEncodingLevel_ = 1;
87  maxNumCuts_ = 5000;
88  addMirCuts_ = true;
89  maxAllDiffCutSize_ = 7;
90  useMirRounding_ = true;
91  maxIntegerRoundingScaling_ = 600;
92  addLpConstraintsLazily_ = true;
93  maxConsecutiveInactiveCount_ = 100;
94  newConstraintsBatchSize_ = 50;
95  searchBranching_ = 0;
96  exploitIntegerLpSolution_ = true;
97  exploitAllLpSolution_ = true;
98  exploitObjective_ = true;
99  pseudoCostReliabilityThreshold_ = 100L;
100  binarySearchNumConflicts_ = -1;
101  instantiateAllVariables_ = true;
102  autoDetectGreaterThanAtLeastOneOf_ = true;
103  numSearchWorkers_ = 1;
104  reduceMemoryUsageInInterleaveMode_ = true;
105  shareObjectiveBounds_ = true;
106  shareLevelZeroBounds_ = true;
107  useRinsLns_ = true;
108  useOptionalVariables_ = true;
109  useExactLpReason_ = true;
110  catchSigintSignal_ = true;
111  mipMaxBound_ = 10000000D;
112  mipVarScaling_ = 1D;
113  mipWantedPrecision_ = 1e-06D;
114  mipMaxActivityExponent_ = 53;
115  mipCheckPrecision_ = 0.0001D;
116  }
117 
118  @java.lang.Override
119  @SuppressWarnings({"unused"})
120  protected java.lang.Object newInstance(
121  UnusedPrivateParameter unused) {
122  return new SatParameters();
123  }
124 
125  @java.lang.Override
126  public final com.google.protobuf.UnknownFieldSet
128  return this.unknownFields;
129  }
130  private SatParameters(
131  com.google.protobuf.CodedInputStream input,
132  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
133  throws com.google.protobuf.InvalidProtocolBufferException {
134  this();
135  if (extensionRegistry == null) {
136  throw new java.lang.NullPointerException();
137  }
138  int mutable_bitField0_ = 0;
139  int mutable_bitField1_ = 0;
140  int mutable_bitField2_ = 0;
141  int mutable_bitField3_ = 0;
142  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
143  com.google.protobuf.UnknownFieldSet.newBuilder();
144  try {
145  boolean done = false;
146  while (!done) {
147  int tag = input.readTag();
148  switch (tag) {
149  case 0:
150  done = true;
151  break;
152  case 8: {
153  int rawValue = input.readEnum();
154  @SuppressWarnings("deprecation")
155  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
156  if (value == null) {
157  unknownFields.mergeVarintField(1, rawValue);
158  } else {
159  bitField0_ |= 0x00000001;
160  preferredVariableOrder_ = rawValue;
161  }
162  break;
163  }
164  case 16: {
165  int rawValue = input.readEnum();
166  @SuppressWarnings("deprecation")
167  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
168  if (value == null) {
169  unknownFields.mergeVarintField(2, rawValue);
170  } else {
171  bitField0_ |= 0x00000002;
172  initialPolarity_ = rawValue;
173  }
174  break;
175  }
176  case 32: {
177  int rawValue = input.readEnum();
178  @SuppressWarnings("deprecation")
179  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
180  if (value == null) {
181  unknownFields.mergeVarintField(4, rawValue);
182  } else {
183  bitField0_ |= 0x00000100;
184  minimizationAlgorithm_ = rawValue;
185  }
186  break;
187  }
188  case 88: {
189  bitField0_ |= 0x00000800;
190  clauseCleanupPeriod_ = input.readInt32();
191  break;
192  }
193  case 104: {
194  bitField0_ |= 0x00001000;
195  clauseCleanupTarget_ = input.readInt32();
196  break;
197  }
198  case 121: {
199  bitField0_ |= 0x00100000;
200  variableActivityDecay_ = input.readDouble();
201  break;
202  }
203  case 129: {
204  bitField0_ |= 0x00200000;
205  maxVariableActivityValue_ = input.readDouble();
206  break;
207  }
208  case 137: {
209  bitField0_ |= 0x02000000;
210  clauseActivityDecay_ = input.readDouble();
211  break;
212  }
213  case 145: {
214  bitField0_ |= 0x04000000;
215  maxClauseActivityValue_ = input.readDouble();
216  break;
217  }
218  case 177: {
219  bitField0_ |= 0x00400000;
220  glucoseMaxDecay_ = input.readDouble();
221  break;
222  }
223  case 185: {
224  bitField0_ |= 0x00800000;
225  glucoseDecayIncrement_ = input.readDouble();
226  break;
227  }
228  case 192: {
229  bitField0_ |= 0x01000000;
230  glucoseDecayIncrementPeriod_ = input.readInt32();
231  break;
232  }
233  case 240: {
234  bitField0_ |= 0x10000000;
235  restartPeriod_ = input.readInt32();
236  break;
237  }
238  case 248: {
239  bitField1_ |= 0x00000400;
240  randomSeed_ = input.readInt32();
241  break;
242  }
243  case 257: {
244  bitField0_ |= 0x00000010;
245  randomBranchesRatio_ = input.readDouble();
246  break;
247  }
248  case 264: {
249  bitField1_ |= 0x00000200;
250  treatBinaryClausesSeparately_ = input.readBool();
251  break;
252  }
253  case 272: {
254  int rawValue = input.readEnum();
255  @SuppressWarnings("deprecation")
256  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
257  if (value == null) {
258  unknownFields.mergeVarintField(34, rawValue);
259  } else {
260  bitField0_ |= 0x00000200;
261  binaryMinimizationAlgorithm_ = rawValue;
262  }
263  break;
264  }
265  case 280: {
266  bitField1_ |= 0x40000000;
267  useOptimizationHints_ = input.readBool();
268  break;
269  }
270  case 289: {
271  bitField1_ |= 0x00000020;
272  maxTimeInSeconds_ = input.readDouble();
273  break;
274  }
275  case 296: {
276  bitField1_ |= 0x00000080;
277  maxNumberOfConflicts_ = input.readInt64();
278  break;
279  }
280  case 320: {
281  bitField1_ |= 0x00000100;
282  maxMemoryInMb_ = input.readInt64();
283  break;
284  }
285  case 328: {
286  bitField1_ |= 0x00000800;
287  logSearchProgress_ = input.readBool();
288  break;
289  }
290  case 344: {
291  bitField1_ |= 0x00001000;
292  usePbResolution_ = input.readBool();
293  break;
294  }
295  case 352: {
296  bitField0_ |= 0x00000004;
297  usePhaseSaving_ = input.readBool();
298  break;
299  }
300  case 361: {
301  bitField0_ |= 0x00000008;
302  randomPolarityRatio_ = input.readDouble();
303  break;
304  }
305  case 368: {
306  bitField0_ |= 0x00010000;
307  pbCleanupIncrement_ = input.readInt32();
308  break;
309  }
310  case 377: {
311  bitField0_ |= 0x00020000;
312  pbCleanupRatio_ = input.readDouble();
313  break;
314  }
315  case 384: {
316  bitField1_ |= 0x00002000;
317  minimizeReductionDuringPbResolution_ = input.readBool();
318  break;
319  }
320  case 392: {
321  bitField1_ |= 0x00004000;
322  countAssumptionLevelsInLbd_ = input.readBool();
323  break;
324  }
325  case 400: {
326  bitField1_ |= 0x80000000;
327  minimizeCore_ = input.readBool();
328  break;
329  }
330  case 408: {
331  int rawValue = input.readEnum();
332  @SuppressWarnings("deprecation")
333  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
334  if (value == null) {
335  unknownFields.mergeVarintField(51, rawValue);
336  } else {
337  bitField2_ |= 0x00000004;
338  maxSatAssumptionOrder_ = rawValue;
339  }
340  break;
341  }
342  case 416: {
343  bitField2_ |= 0x00000008;
344  maxSatReverseAssumptionOrder_ = input.readBool();
345  break;
346  }
347  case 424: {
348  int rawValue = input.readEnum();
349  @SuppressWarnings("deprecation")
350  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
351  if (value == null) {
352  unknownFields.mergeVarintField(53, rawValue);
353  } else {
354  bitField2_ |= 0x00000010;
355  maxSatStratification_ = rawValue;
356  }
357  break;
358  }
359  case 432: {
360  bitField1_ |= 0x00008000;
361  presolveBveThreshold_ = input.readInt32();
362  break;
363  }
364  case 440: {
365  bitField1_ |= 0x00010000;
366  presolveBveClauseWeight_ = input.readInt32();
367  break;
368  }
369  case 448: {
370  bitField0_ |= 0x00000400;
371  subsumptionDuringConflictAnalysis_ = input.readBool();
372  break;
373  }
374  case 457: {
375  bitField1_ |= 0x00020000;
376  presolveProbingDeterministicTimeLimit_ = input.readDouble();
377  break;
378  }
379  case 464: {
380  int rawValue = input.readEnum();
381  @SuppressWarnings("deprecation")
382  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
383  if (value == null) {
384  unknownFields.mergeVarintField(58, rawValue);
385  } else {
386  bitField0_ |= 0x00002000;
387  clauseCleanupProtection_ = rawValue;
388  }
389  break;
390  }
391  case 472: {
392  bitField0_ |= 0x00004000;
393  clauseCleanupLbdBound_ = input.readInt32();
394  break;
395  }
396  case 480: {
397  int rawValue = input.readEnum();
398  @SuppressWarnings("deprecation")
399  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
400  if (value == null) {
401  unknownFields.mergeVarintField(60, rawValue);
402  } else {
403  bitField0_ |= 0x00008000;
404  clauseCleanupOrdering_ = rawValue;
405  }
406  break;
407  }
408  case 488: {
409  int rawValue = input.readEnum();
410  @SuppressWarnings("deprecation")
411  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
412  if (value == null) {
413  unknownFields.mergeVarintField(61, rawValue);
414  } else {
415  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
416  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
417  mutable_bitField0_ |= 0x08000000;
418  }
419  restartAlgorithms_.add(rawValue);
420  }
421  break;
422  }
423  case 490: {
424  int length = input.readRawVarint32();
425  int oldLimit = input.pushLimit(length);
426  while(input.getBytesUntilLimit() > 0) {
427  int rawValue = input.readEnum();
428  @SuppressWarnings("deprecation")
429  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
430  if (value == null) {
431  unknownFields.mergeVarintField(61, rawValue);
432  } else {
433  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
434  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
435  mutable_bitField0_ |= 0x08000000;
436  }
437  restartAlgorithms_.add(rawValue);
438  }
439  }
440  input.popLimit(oldLimit);
441  break;
442  }
443  case 496: {
444  bitField0_ |= 0x20000000;
445  restartRunningWindowSize_ = input.readInt32();
446  break;
447  }
448  case 505: {
449  bitField0_ |= 0x40000000;
450  restartDlAverageRatio_ = input.readDouble();
451  break;
452  }
453  case 512: {
454  bitField1_ |= 0x00000001;
455  useBlockingRestart_ = input.readBool();
456  break;
457  }
458  case 520: {
459  bitField1_ |= 0x00000002;
460  blockingRestartWindowSize_ = input.readInt32();
461  break;
462  }
463  case 529: {
464  bitField1_ |= 0x00000004;
465  blockingRestartMultiplier_ = input.readDouble();
466  break;
467  }
468  case 537: {
469  bitField1_ |= 0x00000040;
470  maxDeterministicTime_ = input.readDouble();
471  break;
472  }
473  case 544: {
474  bitField1_ |= 0x00000008;
475  numConflictsBeforeStrategyChanges_ = input.readInt32();
476  break;
477  }
478  case 553: {
479  bitField1_ |= 0x00000010;
480  strategyChangeIncreaseRatio_ = input.readDouble();
481  break;
482  }
483  case 562: {
484  com.google.protobuf.ByteString bs = input.readBytes();
485  bitField0_ |= 0x08000000;
486  defaultRestartAlgorithms_ = bs;
487  break;
488  }
489  case 569: {
490  bitField0_ |= 0x80000000;
491  restartLbdAverageRatio_ = input.readDouble();
492  break;
493  }
494  case 576: {
495  bitField1_ |= 0x00080000;
496  presolveUseBva_ = input.readBool();
497  break;
498  }
499  case 584: {
500  bitField1_ |= 0x00100000;
501  presolveBvaThreshold_ = input.readInt32();
502  break;
503  }
504  case 592: {
505  bitField2_ |= 0x00000020;
506  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
507  break;
508  }
509  case 600: {
510  bitField0_ |= 0x00000020;
511  useErwaHeuristic_ = input.readBool();
512  break;
513  }
514  case 609: {
515  bitField0_ |= 0x00000040;
516  initialVariablesActivity_ = input.readDouble();
517  break;
518  }
519  case 616: {
520  bitField0_ |= 0x00000080;
521  alsoBumpVariablesInConflictReasons_ = input.readBool();
522  break;
523  }
524  case 624: {
525  bitField2_ |= 0x00000040;
526  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
527  break;
528  }
529  case 632: {
530  bitField2_ |= 0x00000080;
531  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
532  break;
533  }
534  case 640: {
535  bitField2_ |= 0x00000100;
536  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
537  break;
538  }
539  case 656: {
540  int rawValue = input.readEnum();
541  @SuppressWarnings("deprecation")
542  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
543  if (value == null) {
544  unknownFields.mergeVarintField(82, rawValue);
545  } else {
546  bitField2_ |= 0x00800000;
547  searchBranching_ = rawValue;
548  }
549  break;
550  }
551  case 664: {
552  bitField2_ |= 0x40000000;
553  optimizeWithCore_ = input.readBool();
554  break;
555  }
556  case 672: {
557  bitField2_ |= 0x00000001;
558  findMultipleCores_ = input.readBool();
559  break;
560  }
561  case 680: {
562  bitField3_ |= 0x00000001;
563  optimizeWithMaxHs_ = input.readBool();
564  break;
565  }
566  case 688: {
567  bitField1_ |= 0x00400000;
568  cpModelPresolve_ = input.readBool();
569  break;
570  }
571  case 696: {
572  bitField3_ |= 0x00000002;
573  enumerateAllSolutions_ = input.readBool();
574  break;
575  }
576  case 704: {
577  bitField1_ |= 0x00040000;
578  presolveBlockedClause_ = input.readBool();
579  break;
580  }
581  case 712: {
582  bitField2_ |= 0x00000002;
583  coverOptimization_ = input.readBool();
584  break;
585  }
586  case 720: {
587  bitField2_ |= 0x00000200;
588  linearizationLevel_ = input.readInt32();
589  break;
590  }
591  case 728: {
592  bitField2_ |= 0x00000800;
593  maxNumCuts_ = input.readInt32();
594  break;
595  }
596  case 736: {
597  bitField2_ |= 0x00001000;
598  onlyAddCutsAtLevelZero_ = input.readBool();
599  break;
600  }
601  case 744: {
602  bitField1_ |= 0x01000000;
603  cpModelUseSatPresolve_ = input.readBool();
604  break;
605  }
606  case 752: {
607  bitField2_ |= 0x01000000;
608  exploitIntegerLpSolution_ = input.readBool();
609  break;
610  }
611  case 760: {
612  bitField3_ |= 0x00000010;
613  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
614  break;
615  }
616  case 768: {
617  bitField0_ |= 0x00040000;
618  minimizeWithPropagationRestartPeriod_ = input.readInt32();
619  break;
620  }
621  case 776: {
622  bitField0_ |= 0x00080000;
623  minimizeWithPropagationNumDecisions_ = input.readInt32();
624  break;
625  }
626  case 784: {
627  bitField3_ |= 0x00000020;
628  stopAfterFirstSolution_ = input.readBool();
629  break;
630  }
631  case 792: {
632  bitField2_ |= 0x80000000;
633  binarySearchNumConflicts_ = input.readInt32();
634  break;
635  }
636  case 800: {
637  bitField3_ |= 0x00000080;
638  numSearchWorkers_ = input.readInt32();
639  break;
640  }
641  case 808: {
642  bitField3_ |= 0x00002000;
643  useLnsOnly_ = input.readBool();
644  break;
645  }
646  case 824: {
647  bitField3_ |= 0x00040000;
648  randomizeSearch_ = input.readBool();
649  break;
650  }
651  case 832: {
652  bitField3_ |= 0x00080000;
653  searchRandomizationTolerance_ = input.readInt64();
654  break;
655  }
656  case 840: {
657  bitField3_ |= 0x00004000;
658  lnsFocusOnDecisionVariables_ = input.readBool();
659  break;
660  }
661  case 848: {
662  bitField3_ |= 0x00000008;
663  instantiateAllVariables_ = input.readBool();
664  break;
665  }
666  case 856: {
667  bitField2_ |= 0x00000400;
668  booleanEncodingLevel_ = input.readInt32();
669  break;
670  }
671  case 864: {
672  bitField3_ |= 0x00100000;
673  useOptionalVariables_ = input.readBool();
674  break;
675  }
676  case 872: {
677  bitField3_ |= 0x00200000;
678  useExactLpReason_ = input.readBool();
679  break;
680  }
681  case 880: {
682  bitField1_ |= 0x00800000;
683  cpModelProbingLevel_ = input.readInt32();
684  break;
685  }
686  case 888: {
687  bitField2_ |= 0x00002000;
688  addKnapsackCuts_ = input.readBool();
689  break;
690  }
691  case 896: {
692  bitField2_ |= 0x00080000;
693  addLpConstraintsLazily_ = input.readBool();
694  break;
695  }
696  case 904: {
697  bitField3_ |= 0x00000800;
698  shareObjectiveBounds_ = input.readBool();
699  break;
700  }
701  case 912: {
702  bitField3_ |= 0x00001000;
703  shareLevelZeroBounds_ = input.readBool();
704  break;
705  }
706  case 921: {
707  bitField2_ |= 0x00100000;
708  minOrthogonalityForLpConstraints_ = input.readDouble();
709  break;
710  }
711  case 928: {
712  bitField2_ |= 0x02000000;
713  exploitAllLpSolution_ = input.readBool();
714  break;
715  }
716  case 936: {
717  bitField2_ |= 0x00004000;
718  addCgCuts_ = input.readBool();
719  break;
720  }
721  case 944: {
722  bitField2_ |= 0x00020000;
723  useMirRounding_ = input.readBool();
724  break;
725  }
726  case 952: {
727  bitField2_ |= 0x00040000;
728  maxIntegerRoundingScaling_ = input.readInt32();
729  break;
730  }
731  case 960: {
732  bitField2_ |= 0x00008000;
733  addMirCuts_ = input.readBool();
734  break;
735  }
736  case 968: {
737  bitField2_ |= 0x00200000;
738  maxConsecutiveInactiveCount_ = input.readInt32();
739  break;
740  }
741  case 976: {
742  bitField2_ |= 0x00400000;
743  newConstraintsBatchSize_ = input.readInt32();
744  break;
745  }
746  case 984: {
747  bitField2_ |= 0x20000000;
748  pseudoCostReliabilityThreshold_ = input.readInt64();
749  break;
750  }
751  case 993: {
752  bitField3_ |= 0x04000000;
753  mipMaxBound_ = input.readDouble();
754  break;
755  }
756  case 1001: {
757  bitField3_ |= 0x08000000;
758  mipVarScaling_ = input.readDouble();
759  break;
760  }
761  case 1009: {
762  bitField3_ |= 0x10000000;
763  mipWantedPrecision_ = input.readDouble();
764  break;
765  }
766  case 1016: {
767  bitField3_ |= 0x20000000;
768  mipMaxActivityExponent_ = input.readInt32();
769  break;
770  }
771  case 1025: {
772  bitField3_ |= 0x40000000;
773  mipCheckPrecision_ = input.readDouble();
774  break;
775  }
776  case 1032: {
777  bitField3_ |= 0x00008000;
778  useRinsLns_ = input.readBool();
779  break;
780  }
781  case 1040: {
782  bitField2_ |= 0x04000000;
783  exploitBestSolution_ = input.readBool();
784  break;
785  }
786  case 1048: {
787  bitField2_ |= 0x08000000;
788  exploitObjective_ = input.readBool();
789  break;
790  }
791  case 1056: {
792  bitField3_ |= 0x00000004;
793  fillTightenedDomainsInResponse_ = input.readBool();
794  break;
795  }
796  case 1064: {
797  bitField3_ |= 0x00800000;
798  useCombinedNoOverlap_ = input.readBool();
799  break;
800  }
801  case 1072: {
802  bitField3_ |= 0x00000400;
803  deterministicParallelSearch_ = input.readBool();
804  break;
805  }
806  case 1080: {
807  bitField3_ |= 0x01000000;
808  catchSigintSignal_ = input.readBool();
809  break;
810  }
811  case 1088: {
812  bitField3_ |= 0x00000100;
813  interleaveSearch_ = input.readBool();
814  break;
815  }
816  case 1096: {
817  bitField3_ |= 0x00020000;
818  diversifyLnsParams_ = input.readBool();
819  break;
820  }
821  case 1104: {
822  bitField1_ |= 0x00200000;
823  maxPresolveIterations_ = input.readInt32();
824  break;
825  }
826  case 1112: {
827  bitField3_ |= 0x00400000;
828  useBranchingInLp_ = input.readBool();
829  break;
830  }
831  case 1120: {
832  bitField1_ |= 0x02000000;
833  expandElementConstraints_ = input.readBool();
834  break;
835  }
836  case 1128: {
837  bitField3_ |= 0x00000200;
838  reduceMemoryUsageInInterleaveMode_ = input.readBool();
839  break;
840  }
841  case 1136: {
842  bitField2_ |= 0x10000000;
843  probingPeriodAtRoot_ = input.readInt64();
844  break;
845  }
846  case 1144: {
847  bitField1_ |= 0x04000000;
848  expandAutomatonConstraints_ = input.readBool();
849  break;
850  }
851  case 1152: {
852  bitField3_ |= 0x02000000;
853  useImpliedBounds_ = input.readBool();
854  break;
855  }
856  case 1161: {
857  bitField1_ |= 0x08000000;
858  mergeNoOverlapWorkLimit_ = input.readDouble();
859  break;
860  }
861  case 1169: {
862  bitField1_ |= 0x10000000;
863  mergeAtMostOneWorkLimit_ = input.readDouble();
864  break;
865  }
866  case 1176: {
867  bitField1_ |= 0x20000000;
868  presolveSubstitutionLevel_ = input.readInt32();
869  break;
870  }
871  case 1184: {
872  bitField2_ |= 0x00010000;
873  maxAllDiffCutSize_ = input.readInt32();
874  break;
875  }
876  case 1192: {
877  bitField3_ |= 0x00000040;
878  stopAfterPresolve_ = input.readBool();
879  break;
880  }
881  case 1200: {
882  bitField3_ |= 0x00010000;
883  useRelaxationLns_ = input.readBool();
884  break;
885  }
886  default: {
887  if (!parseUnknownField(
888  input, unknownFields, extensionRegistry, tag)) {
889  done = true;
890  }
891  break;
892  }
893  }
894  }
895  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
896  throw e.setUnfinishedMessage(this);
897  } catch (java.io.IOException e) {
898  throw new com.google.protobuf.InvalidProtocolBufferException(
899  e).setUnfinishedMessage(this);
900  } finally {
901  if (((mutable_bitField0_ & 0x08000000) != 0)) {
902  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
903  }
904  this.unknownFields = unknownFields.build();
905  makeExtensionsImmutable();
906  }
907  }
908  public static final com.google.protobuf.Descriptors.Descriptor
910  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
911  }
912 
913  @java.lang.Override
914  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
916  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
917  .ensureFieldAccessorsInitialized(
919  }
920 
929  public enum VariableOrder
930  implements com.google.protobuf.ProtocolMessageEnum {
947  ;
948 
956  public static final int IN_ORDER_VALUE = 0;
960  public static final int IN_REVERSE_ORDER_VALUE = 1;
964  public static final int IN_RANDOM_ORDER_VALUE = 2;
965 
966 
967  public final int getNumber() {
968  return value;
969  }
970 
976  @java.lang.Deprecated
977  public static VariableOrder valueOf(int value) {
978  return forNumber(value);
979  }
980 
985  public static VariableOrder forNumber(int value) {
986  switch (value) {
987  case 0: return IN_ORDER;
988  case 1: return IN_REVERSE_ORDER;
989  case 2: return IN_RANDOM_ORDER;
990  default: return null;
991  }
992  }
993 
994  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
996  return internalValueMap;
997  }
998  private static final com.google.protobuf.Internal.EnumLiteMap<
999  VariableOrder> internalValueMap =
1000  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
1001  public VariableOrder findValueByNumber(int number) {
1002  return VariableOrder.forNumber(number);
1003  }
1004  };
1005 
1006  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1008  return getDescriptor().getValues().get(ordinal());
1009  }
1010  public final com.google.protobuf.Descriptors.EnumDescriptor
1012  return getDescriptor();
1013  }
1014  public static final com.google.protobuf.Descriptors.EnumDescriptor
1016  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
1017  }
1018 
1019  private static final VariableOrder[] VALUES = values();
1020 
1021  public static VariableOrder valueOf(
1022  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1023  if (desc.getType() != getDescriptor()) {
1024  throw new java.lang.IllegalArgumentException(
1025  "EnumValueDescriptor is not for this type.");
1026  }
1027  return VALUES[desc.getIndex()];
1028  }
1029 
1030  private final int value;
1031 
1032  private VariableOrder(int value) {
1033  this.value = value;
1034  }
1035 
1036  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
1037  }
1038 
1050  public enum Polarity
1051  implements com.google.protobuf.ProtocolMessageEnum {
1083  ;
1084 
1088  public static final int POLARITY_TRUE_VALUE = 0;
1092  public static final int POLARITY_FALSE_VALUE = 1;
1096  public static final int POLARITY_RANDOM_VALUE = 2;
1107  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1115  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1116 
1117 
1118  public final int getNumber() {
1119  return value;
1120  }
1121 
1127  @java.lang.Deprecated
1128  public static Polarity valueOf(int value) {
1129  return forNumber(value);
1130  }
1131 
1136  public static Polarity forNumber(int value) {
1137  switch (value) {
1138  case 0: return POLARITY_TRUE;
1139  case 1: return POLARITY_FALSE;
1140  case 2: return POLARITY_RANDOM;
1141  case 3: return POLARITY_WEIGHTED_SIGN;
1142  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1143  default: return null;
1144  }
1145  }
1146 
1147  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1149  return internalValueMap;
1150  }
1151  private static final com.google.protobuf.Internal.EnumLiteMap<
1152  Polarity> internalValueMap =
1153  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1154  public Polarity findValueByNumber(int number) {
1155  return Polarity.forNumber(number);
1156  }
1157  };
1158 
1159  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1161  return getDescriptor().getValues().get(ordinal());
1162  }
1163  public final com.google.protobuf.Descriptors.EnumDescriptor
1165  return getDescriptor();
1166  }
1167  public static final com.google.protobuf.Descriptors.EnumDescriptor
1169  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1170  }
1171 
1172  private static final Polarity[] VALUES = values();
1173 
1174  public static Polarity valueOf(
1175  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1176  if (desc.getType() != getDescriptor()) {
1177  throw new java.lang.IllegalArgumentException(
1178  "EnumValueDescriptor is not for this type.");
1179  }
1180  return VALUES[desc.getIndex()];
1181  }
1182 
1183  private final int value;
1184 
1185  private Polarity(int value) {
1186  this.value = value;
1187  }
1188 
1189  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1190  }
1191 
1200  implements com.google.protobuf.ProtocolMessageEnum {
1204  NONE(0),
1217  ;
1218 
1222  public static final int NONE_VALUE = 0;
1226  public static final int SIMPLE_VALUE = 1;
1230  public static final int RECURSIVE_VALUE = 2;
1234  public static final int EXPERIMENTAL_VALUE = 3;
1235 
1236 
1237  public final int getNumber() {
1238  return value;
1239  }
1240 
1246  @java.lang.Deprecated
1247  public static ConflictMinimizationAlgorithm valueOf(int value) {
1248  return forNumber(value);
1249  }
1250 
1255  public static ConflictMinimizationAlgorithm forNumber(int value) {
1256  switch (value) {
1257  case 0: return NONE;
1258  case 1: return SIMPLE;
1259  case 2: return RECURSIVE;
1260  case 3: return EXPERIMENTAL;
1261  default: return null;
1262  }
1263  }
1264 
1265  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1267  return internalValueMap;
1268  }
1269  private static final com.google.protobuf.Internal.EnumLiteMap<
1270  ConflictMinimizationAlgorithm> internalValueMap =
1271  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1272  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1274  }
1275  };
1276 
1277  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1279  return getDescriptor().getValues().get(ordinal());
1280  }
1281  public final com.google.protobuf.Descriptors.EnumDescriptor
1283  return getDescriptor();
1284  }
1285  public static final com.google.protobuf.Descriptors.EnumDescriptor
1287  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1288  }
1289 
1290  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1291 
1293  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1294  if (desc.getType() != getDescriptor()) {
1295  throw new java.lang.IllegalArgumentException(
1296  "EnumValueDescriptor is not for this type.");
1297  }
1298  return VALUES[desc.getIndex()];
1299  }
1300 
1301  private final int value;
1302 
1303  private ConflictMinimizationAlgorithm(int value) {
1304  this.value = value;
1305  }
1306 
1307  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1308  }
1309 
1319  implements com.google.protobuf.ProtocolMessageEnum {
1340  ;
1341 
1345  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1349  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1353  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1357  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1361  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1362 
1363 
1364  public final int getNumber() {
1365  return value;
1366  }
1367 
1373  @java.lang.Deprecated
1374  public static BinaryMinizationAlgorithm valueOf(int value) {
1375  return forNumber(value);
1376  }
1377 
1382  public static BinaryMinizationAlgorithm forNumber(int value) {
1383  switch (value) {
1384  case 0: return NO_BINARY_MINIMIZATION;
1385  case 1: return BINARY_MINIMIZATION_FIRST;
1386  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1387  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1388  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1389  default: return null;
1390  }
1391  }
1392 
1393  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1395  return internalValueMap;
1396  }
1397  private static final com.google.protobuf.Internal.EnumLiteMap<
1398  BinaryMinizationAlgorithm> internalValueMap =
1399  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1400  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1401  return BinaryMinizationAlgorithm.forNumber(number);
1402  }
1403  };
1404 
1405  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1407  return getDescriptor().getValues().get(ordinal());
1408  }
1409  public final com.google.protobuf.Descriptors.EnumDescriptor
1411  return getDescriptor();
1412  }
1413  public static final com.google.protobuf.Descriptors.EnumDescriptor
1415  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1416  }
1417 
1418  private static final BinaryMinizationAlgorithm[] VALUES = values();
1419 
1421  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1422  if (desc.getType() != getDescriptor()) {
1423  throw new java.lang.IllegalArgumentException(
1424  "EnumValueDescriptor is not for this type.");
1425  }
1426  return VALUES[desc.getIndex()];
1427  }
1428 
1429  private final int value;
1430 
1431  private BinaryMinizationAlgorithm(int value) {
1432  this.value = value;
1433  }
1434 
1435  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1436  }
1437 
1447  public enum ClauseProtection
1448  implements com.google.protobuf.ProtocolMessageEnum {
1473  ;
1474 
1482  public static final int PROTECTION_NONE_VALUE = 0;
1490  public static final int PROTECTION_ALWAYS_VALUE = 1;
1498  public static final int PROTECTION_LBD_VALUE = 2;
1499 
1500 
1501  public final int getNumber() {
1502  return value;
1503  }
1504 
1510  @java.lang.Deprecated
1511  public static ClauseProtection valueOf(int value) {
1512  return forNumber(value);
1513  }
1514 
1519  public static ClauseProtection forNumber(int value) {
1520  switch (value) {
1521  case 0: return PROTECTION_NONE;
1522  case 1: return PROTECTION_ALWAYS;
1523  case 2: return PROTECTION_LBD;
1524  default: return null;
1525  }
1526  }
1527 
1528  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1530  return internalValueMap;
1531  }
1532  private static final com.google.protobuf.Internal.EnumLiteMap<
1533  ClauseProtection> internalValueMap =
1534  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1535  public ClauseProtection findValueByNumber(int number) {
1536  return ClauseProtection.forNumber(number);
1537  }
1538  };
1539 
1540  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1542  return getDescriptor().getValues().get(ordinal());
1543  }
1544  public final com.google.protobuf.Descriptors.EnumDescriptor
1546  return getDescriptor();
1547  }
1548  public static final com.google.protobuf.Descriptors.EnumDescriptor
1550  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1551  }
1552 
1553  private static final ClauseProtection[] VALUES = values();
1554 
1555  public static ClauseProtection valueOf(
1556  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1557  if (desc.getType() != getDescriptor()) {
1558  throw new java.lang.IllegalArgumentException(
1559  "EnumValueDescriptor is not for this type.");
1560  }
1561  return VALUES[desc.getIndex()];
1562  }
1563 
1564  private final int value;
1565 
1566  private ClauseProtection(int value) {
1567  this.value = value;
1568  }
1569 
1570  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1571  }
1572 
1581  public enum ClauseOrdering
1582  implements com.google.protobuf.ProtocolMessageEnum {
1599  ;
1600 
1608  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1616  public static final int CLAUSE_LBD_VALUE = 1;
1617 
1618 
1619  public final int getNumber() {
1620  return value;
1621  }
1622 
1628  @java.lang.Deprecated
1629  public static ClauseOrdering valueOf(int value) {
1630  return forNumber(value);
1631  }
1632 
1637  public static ClauseOrdering forNumber(int value) {
1638  switch (value) {
1639  case 0: return CLAUSE_ACTIVITY;
1640  case 1: return CLAUSE_LBD;
1641  default: return null;
1642  }
1643  }
1644 
1645  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1647  return internalValueMap;
1648  }
1649  private static final com.google.protobuf.Internal.EnumLiteMap<
1650  ClauseOrdering> internalValueMap =
1651  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1652  public ClauseOrdering findValueByNumber(int number) {
1653  return ClauseOrdering.forNumber(number);
1654  }
1655  };
1656 
1657  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1659  return getDescriptor().getValues().get(ordinal());
1660  }
1661  public final com.google.protobuf.Descriptors.EnumDescriptor
1663  return getDescriptor();
1664  }
1665  public static final com.google.protobuf.Descriptors.EnumDescriptor
1667  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1668  }
1669 
1670  private static final ClauseOrdering[] VALUES = values();
1671 
1672  public static ClauseOrdering valueOf(
1673  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1674  if (desc.getType() != getDescriptor()) {
1675  throw new java.lang.IllegalArgumentException(
1676  "EnumValueDescriptor is not for this type.");
1677  }
1678  return VALUES[desc.getIndex()];
1679  }
1680 
1681  private final int value;
1682 
1683  private ClauseOrdering(int value) {
1684  this.value = value;
1685  }
1686 
1687  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1688  }
1689 
1701  public enum RestartAlgorithm
1702  implements com.google.protobuf.ProtocolMessageEnum {
1739  ;
1740 
1744  public static final int NO_RESTART_VALUE = 0;
1752  public static final int LUBY_RESTART_VALUE = 1;
1760  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1768  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1776  public static final int FIXED_RESTART_VALUE = 4;
1777 
1778 
1779  public final int getNumber() {
1780  return value;
1781  }
1782 
1788  @java.lang.Deprecated
1789  public static RestartAlgorithm valueOf(int value) {
1790  return forNumber(value);
1791  }
1792 
1797  public static RestartAlgorithm forNumber(int value) {
1798  switch (value) {
1799  case 0: return NO_RESTART;
1800  case 1: return LUBY_RESTART;
1801  case 2: return DL_MOVING_AVERAGE_RESTART;
1802  case 3: return LBD_MOVING_AVERAGE_RESTART;
1803  case 4: return FIXED_RESTART;
1804  default: return null;
1805  }
1806  }
1807 
1808  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1810  return internalValueMap;
1811  }
1812  private static final com.google.protobuf.Internal.EnumLiteMap<
1813  RestartAlgorithm> internalValueMap =
1814  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1815  public RestartAlgorithm findValueByNumber(int number) {
1816  return RestartAlgorithm.forNumber(number);
1817  }
1818  };
1819 
1820  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1822  return getDescriptor().getValues().get(ordinal());
1823  }
1824  public final com.google.protobuf.Descriptors.EnumDescriptor
1826  return getDescriptor();
1827  }
1828  public static final com.google.protobuf.Descriptors.EnumDescriptor
1830  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1831  }
1832 
1833  private static final RestartAlgorithm[] VALUES = values();
1834 
1835  public static RestartAlgorithm valueOf(
1836  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1837  if (desc.getType() != getDescriptor()) {
1838  throw new java.lang.IllegalArgumentException(
1839  "EnumValueDescriptor is not for this type.");
1840  }
1841  return VALUES[desc.getIndex()];
1842  }
1843 
1844  private final int value;
1845 
1846  private RestartAlgorithm(int value) {
1847  this.value = value;
1848  }
1849 
1850  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1851  }
1852 
1861  implements com.google.protobuf.ProtocolMessageEnum {
1874  ;
1875 
1879  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1883  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1887  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1888 
1889 
1890  public final int getNumber() {
1891  return value;
1892  }
1893 
1899  @java.lang.Deprecated
1900  public static MaxSatAssumptionOrder valueOf(int value) {
1901  return forNumber(value);
1902  }
1903 
1908  public static MaxSatAssumptionOrder forNumber(int value) {
1909  switch (value) {
1910  case 0: return DEFAULT_ASSUMPTION_ORDER;
1911  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1912  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1913  default: return null;
1914  }
1915  }
1916 
1917  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1919  return internalValueMap;
1920  }
1921  private static final com.google.protobuf.Internal.EnumLiteMap<
1922  MaxSatAssumptionOrder> internalValueMap =
1923  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1924  public MaxSatAssumptionOrder findValueByNumber(int number) {
1925  return MaxSatAssumptionOrder.forNumber(number);
1926  }
1927  };
1928 
1929  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1931  return getDescriptor().getValues().get(ordinal());
1932  }
1933  public final com.google.protobuf.Descriptors.EnumDescriptor
1935  return getDescriptor();
1936  }
1937  public static final com.google.protobuf.Descriptors.EnumDescriptor
1939  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1940  }
1941 
1942  private static final MaxSatAssumptionOrder[] VALUES = values();
1943 
1945  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1946  if (desc.getType() != getDescriptor()) {
1947  throw new java.lang.IllegalArgumentException(
1948  "EnumValueDescriptor is not for this type.");
1949  }
1950  return VALUES[desc.getIndex()];
1951  }
1952 
1953  private final int value;
1954 
1955  private MaxSatAssumptionOrder(int value) {
1956  this.value = value;
1957  }
1958 
1959  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1960  }
1961 
1970  implements com.google.protobuf.ProtocolMessageEnum {
1999  ;
2000 
2008  public static final int STRATIFICATION_NONE_VALUE = 0;
2017  public static final int STRATIFICATION_DESCENT_VALUE = 1;
2028  public static final int STRATIFICATION_ASCENT_VALUE = 2;
2029 
2030 
2031  public final int getNumber() {
2032  return value;
2033  }
2034 
2040  @java.lang.Deprecated
2041  public static MaxSatStratificationAlgorithm valueOf(int value) {
2042  return forNumber(value);
2043  }
2044 
2049  public static MaxSatStratificationAlgorithm forNumber(int value) {
2050  switch (value) {
2051  case 0: return STRATIFICATION_NONE;
2052  case 1: return STRATIFICATION_DESCENT;
2053  case 2: return STRATIFICATION_ASCENT;
2054  default: return null;
2055  }
2056  }
2057 
2058  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
2060  return internalValueMap;
2061  }
2062  private static final com.google.protobuf.Internal.EnumLiteMap<
2063  MaxSatStratificationAlgorithm> internalValueMap =
2064  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
2065  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
2067  }
2068  };
2069 
2070  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2072  return getDescriptor().getValues().get(ordinal());
2073  }
2074  public final com.google.protobuf.Descriptors.EnumDescriptor
2076  return getDescriptor();
2077  }
2078  public static final com.google.protobuf.Descriptors.EnumDescriptor
2080  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
2081  }
2082 
2083  private static final MaxSatStratificationAlgorithm[] VALUES = values();
2084 
2086  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2087  if (desc.getType() != getDescriptor()) {
2088  throw new java.lang.IllegalArgumentException(
2089  "EnumValueDescriptor is not for this type.");
2090  }
2091  return VALUES[desc.getIndex()];
2092  }
2093 
2094  private final int value;
2095 
2096  private MaxSatStratificationAlgorithm(int value) {
2097  this.value = value;
2098  }
2099 
2100  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
2101  }
2102 
2110  public enum SearchBranching
2111  implements com.google.protobuf.ProtocolMessageEnum {
2179  ;
2180 
2189  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2199  public static final int FIXED_SEARCH_VALUE = 1;
2207  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2217  public static final int LP_SEARCH_VALUE = 3;
2227  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2237  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2247  public static final int HINT_SEARCH_VALUE = 6;
2248 
2249 
2250  public final int getNumber() {
2251  return value;
2252  }
2253 
2259  @java.lang.Deprecated
2260  public static SearchBranching valueOf(int value) {
2261  return forNumber(value);
2262  }
2263 
2268  public static SearchBranching forNumber(int value) {
2269  switch (value) {
2270  case 0: return AUTOMATIC_SEARCH;
2271  case 1: return FIXED_SEARCH;
2272  case 2: return PORTFOLIO_SEARCH;
2273  case 3: return LP_SEARCH;
2274  case 4: return PSEUDO_COST_SEARCH;
2275  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2276  case 6: return HINT_SEARCH;
2277  default: return null;
2278  }
2279  }
2280 
2281  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2283  return internalValueMap;
2284  }
2285  private static final com.google.protobuf.Internal.EnumLiteMap<
2286  SearchBranching> internalValueMap =
2287  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2288  public SearchBranching findValueByNumber(int number) {
2289  return SearchBranching.forNumber(number);
2290  }
2291  };
2292 
2293  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2295  return getDescriptor().getValues().get(ordinal());
2296  }
2297  public final com.google.protobuf.Descriptors.EnumDescriptor
2299  return getDescriptor();
2300  }
2301  public static final com.google.protobuf.Descriptors.EnumDescriptor
2303  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2304  }
2305 
2306  private static final SearchBranching[] VALUES = values();
2307 
2308  public static SearchBranching valueOf(
2309  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2310  if (desc.getType() != getDescriptor()) {
2311  throw new java.lang.IllegalArgumentException(
2312  "EnumValueDescriptor is not for this type.");
2313  }
2314  return VALUES[desc.getIndex()];
2315  }
2316 
2317  private final int value;
2318 
2319  private SearchBranching(int value) {
2320  this.value = value;
2321  }
2322 
2323  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2324  }
2325 
2326  private int bitField0_;
2327  private int bitField1_;
2328  private int bitField2_;
2329  private int bitField3_;
2330  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2331  private int preferredVariableOrder_;
2336  public boolean hasPreferredVariableOrder() {
2337  return ((bitField0_ & 0x00000001) != 0);
2338  }
2344  @SuppressWarnings("deprecation")
2346  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2347  }
2348 
2349  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2350  private int initialPolarity_;
2355  public boolean hasInitialPolarity() {
2356  return ((bitField0_ & 0x00000002) != 0);
2357  }
2363  @SuppressWarnings("deprecation")
2365  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2366  }
2367 
2368  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2369  private boolean usePhaseSaving_;
2384  public boolean hasUsePhaseSaving() {
2385  return ((bitField0_ & 0x00000004) != 0);
2386  }
2401  public boolean getUsePhaseSaving() {
2402  return usePhaseSaving_;
2403  }
2404 
2405  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2406  private double randomPolarityRatio_;
2419  public boolean hasRandomPolarityRatio() {
2420  return ((bitField0_ & 0x00000008) != 0);
2421  }
2434  public double getRandomPolarityRatio() {
2435  return randomPolarityRatio_;
2436  }
2437 
2438  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2439  private double randomBranchesRatio_;
2450  public boolean hasRandomBranchesRatio() {
2451  return ((bitField0_ & 0x00000010) != 0);
2452  }
2463  public double getRandomBranchesRatio() {
2464  return randomBranchesRatio_;
2465  }
2466 
2467  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2468  private boolean useErwaHeuristic_;
2479  public boolean hasUseErwaHeuristic() {
2480  return ((bitField0_ & 0x00000020) != 0);
2481  }
2492  public boolean getUseErwaHeuristic() {
2493  return useErwaHeuristic_;
2494  }
2495 
2496  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2497  private double initialVariablesActivity_;
2511  public boolean hasInitialVariablesActivity() {
2512  return ((bitField0_ & 0x00000040) != 0);
2513  }
2528  return initialVariablesActivity_;
2529  }
2530 
2532  private boolean alsoBumpVariablesInConflictReasons_;
2545  return ((bitField0_ & 0x00000080) != 0);
2546  }
2559  return alsoBumpVariablesInConflictReasons_;
2560  }
2561 
2562  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2563  private int minimizationAlgorithm_;
2568  public boolean hasMinimizationAlgorithm() {
2569  return ((bitField0_ & 0x00000100) != 0);
2570  }
2576  @SuppressWarnings("deprecation")
2578  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2579  }
2580 
2581  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2582  private int binaryMinimizationAlgorithm_;
2588  return ((bitField0_ & 0x00000200) != 0);
2589  }
2595  @SuppressWarnings("deprecation")
2598  }
2599 
2601  private boolean subsumptionDuringConflictAnalysis_;
2614  return ((bitField0_ & 0x00000400) != 0);
2615  }
2628  return subsumptionDuringConflictAnalysis_;
2629  }
2630 
2631  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2632  private int clauseCleanupPeriod_;
2641  public boolean hasClauseCleanupPeriod() {
2642  return ((bitField0_ & 0x00000800) != 0);
2643  }
2652  public int getClauseCleanupPeriod() {
2653  return clauseCleanupPeriod_;
2654  }
2655 
2656  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2657  private int clauseCleanupTarget_;
2667  public boolean hasClauseCleanupTarget() {
2668  return ((bitField0_ & 0x00001000) != 0);
2669  }
2679  public int getClauseCleanupTarget() {
2680  return clauseCleanupTarget_;
2681  }
2682 
2683  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2684  private int clauseCleanupProtection_;
2689  public boolean hasClauseCleanupProtection() {
2690  return ((bitField0_ & 0x00002000) != 0);
2691  }
2697  @SuppressWarnings("deprecation")
2699  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2700  }
2701 
2702  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2703  private int clauseCleanupLbdBound_;
2713  public boolean hasClauseCleanupLbdBound() {
2714  return ((bitField0_ & 0x00004000) != 0);
2715  }
2726  return clauseCleanupLbdBound_;
2727  }
2728 
2729  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2730  private int clauseCleanupOrdering_;
2735  public boolean hasClauseCleanupOrdering() {
2736  return ((bitField0_ & 0x00008000) != 0);
2737  }
2743  @SuppressWarnings("deprecation")
2745  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2746  }
2747 
2748  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2749  private int pbCleanupIncrement_;
2758  public boolean hasPbCleanupIncrement() {
2759  return ((bitField0_ & 0x00010000) != 0);
2760  }
2769  public int getPbCleanupIncrement() {
2770  return pbCleanupIncrement_;
2771  }
2772 
2773  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2774  private double pbCleanupRatio_;
2779  public boolean hasPbCleanupRatio() {
2780  return ((bitField0_ & 0x00020000) != 0);
2781  }
2786  public double getPbCleanupRatio() {
2787  return pbCleanupRatio_;
2788  }
2789 
2791  private int minimizeWithPropagationRestartPeriod_;
2811  return ((bitField0_ & 0x00040000) != 0);
2812  }
2832  return minimizeWithPropagationRestartPeriod_;
2833  }
2834 
2836  private int minimizeWithPropagationNumDecisions_;
2842  return ((bitField0_ & 0x00080000) != 0);
2843  }
2849  return minimizeWithPropagationNumDecisions_;
2850  }
2851 
2852  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2853  private double variableActivityDecay_;
2868  public boolean hasVariableActivityDecay() {
2869  return ((bitField0_ & 0x00100000) != 0);
2870  }
2885  public double getVariableActivityDecay() {
2886  return variableActivityDecay_;
2887  }
2888 
2889  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2890  private double maxVariableActivityValue_;
2895  public boolean hasMaxVariableActivityValue() {
2896  return ((bitField0_ & 0x00200000) != 0);
2897  }
2903  return maxVariableActivityValue_;
2904  }
2905 
2906  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2907  private double glucoseMaxDecay_;
2919  public boolean hasGlucoseMaxDecay() {
2920  return ((bitField0_ & 0x00400000) != 0);
2921  }
2933  public double getGlucoseMaxDecay() {
2934  return glucoseMaxDecay_;
2935  }
2936 
2937  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2938  private double glucoseDecayIncrement_;
2943  public boolean hasGlucoseDecayIncrement() {
2944  return ((bitField0_ & 0x00800000) != 0);
2945  }
2950  public double getGlucoseDecayIncrement() {
2951  return glucoseDecayIncrement_;
2952  }
2953 
2954  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
2955  private int glucoseDecayIncrementPeriod_;
2961  return ((bitField0_ & 0x01000000) != 0);
2962  }
2968  return glucoseDecayIncrementPeriod_;
2969  }
2970 
2971  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2972  private double clauseActivityDecay_;
2981  public boolean hasClauseActivityDecay() {
2982  return ((bitField0_ & 0x02000000) != 0);
2983  }
2992  public double getClauseActivityDecay() {
2993  return clauseActivityDecay_;
2994  }
2995 
2996  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2997  private double maxClauseActivityValue_;
3002  public boolean hasMaxClauseActivityValue() {
3003  return ((bitField0_ & 0x04000000) != 0);
3004  }
3009  public double getMaxClauseActivityValue() {
3010  return maxClauseActivityValue_;
3011  }
3012 
3013  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
3014  private java.util.List<java.lang.Integer> restartAlgorithms_;
3015  private static final com.google.protobuf.Internal.ListAdapter.Converter<
3016  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
3017  new com.google.protobuf.Internal.ListAdapter.Converter<
3018  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
3019  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
3020  @SuppressWarnings("deprecation")
3022  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
3023  }
3024  };
3041  return new com.google.protobuf.Internal.ListAdapter<
3042  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
3043  }
3060  return restartAlgorithms_.size();
3061  }
3079  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
3080  }
3081 
3082  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
3083  private volatile java.lang.Object defaultRestartAlgorithms_;
3088  public boolean hasDefaultRestartAlgorithms() {
3089  return ((bitField0_ & 0x08000000) != 0);
3090  }
3095  public java.lang.String getDefaultRestartAlgorithms() {
3096  java.lang.Object ref = defaultRestartAlgorithms_;
3097  if (ref instanceof java.lang.String) {
3098  return (java.lang.String) ref;
3099  } else {
3100  com.google.protobuf.ByteString bs =
3101  (com.google.protobuf.ByteString) ref;
3102  java.lang.String s = bs.toStringUtf8();
3103  if (bs.isValidUtf8()) {
3104  defaultRestartAlgorithms_ = s;
3105  }
3106  return s;
3107  }
3108  }
3113  public com.google.protobuf.ByteString
3115  java.lang.Object ref = defaultRestartAlgorithms_;
3116  if (ref instanceof java.lang.String) {
3117  com.google.protobuf.ByteString b =
3118  com.google.protobuf.ByteString.copyFromUtf8(
3119  (java.lang.String) ref);
3120  defaultRestartAlgorithms_ = b;
3121  return b;
3122  } else {
3123  return (com.google.protobuf.ByteString) ref;
3124  }
3125  }
3126 
3127  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
3128  private int restartPeriod_;
3138  public boolean hasRestartPeriod() {
3139  return ((bitField0_ & 0x10000000) != 0);
3140  }
3150  public int getRestartPeriod() {
3151  return restartPeriod_;
3152  }
3153 
3154  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
3155  private int restartRunningWindowSize_;
3164  public boolean hasRestartRunningWindowSize() {
3165  return ((bitField0_ & 0x20000000) != 0);
3166  }
3176  return restartRunningWindowSize_;
3177  }
3178 
3179  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
3180  private double restartDlAverageRatio_;
3190  public boolean hasRestartDlAverageRatio() {
3191  return ((bitField0_ & 0x40000000) != 0);
3192  }
3202  public double getRestartDlAverageRatio() {
3203  return restartDlAverageRatio_;
3204  }
3205 
3206  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
3207  private double restartLbdAverageRatio_;
3212  public boolean hasRestartLbdAverageRatio() {
3213  return ((bitField0_ & 0x80000000) != 0);
3214  }
3219  public double getRestartLbdAverageRatio() {
3220  return restartLbdAverageRatio_;
3221  }
3222 
3223  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3224  private boolean useBlockingRestart_;
3235  public boolean hasUseBlockingRestart() {
3236  return ((bitField1_ & 0x00000001) != 0);
3237  }
3248  public boolean getUseBlockingRestart() {
3249  return useBlockingRestart_;
3250  }
3251 
3252  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3253  private int blockingRestartWindowSize_;
3258  public boolean hasBlockingRestartWindowSize() {
3259  return ((bitField1_ & 0x00000002) != 0);
3260  }
3266  return blockingRestartWindowSize_;
3267  }
3268 
3269  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3270  private double blockingRestartMultiplier_;
3275  public boolean hasBlockingRestartMultiplier() {
3276  return ((bitField1_ & 0x00000004) != 0);
3277  }
3283  return blockingRestartMultiplier_;
3284  }
3285 
3287  private int numConflictsBeforeStrategyChanges_;
3299  return ((bitField1_ & 0x00000008) != 0);
3300  }
3312  return numConflictsBeforeStrategyChanges_;
3313  }
3314 
3315  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3316  private double strategyChangeIncreaseRatio_;
3327  return ((bitField1_ & 0x00000010) != 0);
3328  }
3339  return strategyChangeIncreaseRatio_;
3340  }
3341 
3342  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3343  private double maxTimeInSeconds_;
3354  public boolean hasMaxTimeInSeconds() {
3355  return ((bitField1_ & 0x00000020) != 0);
3356  }
3367  public double getMaxTimeInSeconds() {
3368  return maxTimeInSeconds_;
3369  }
3370 
3371  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3372  private double maxDeterministicTime_;
3385  public boolean hasMaxDeterministicTime() {
3386  return ((bitField1_ & 0x00000040) != 0);
3387  }
3400  public double getMaxDeterministicTime() {
3401  return maxDeterministicTime_;
3402  }
3403 
3404  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3405  private long maxNumberOfConflicts_;
3419  public boolean hasMaxNumberOfConflicts() {
3420  return ((bitField1_ & 0x00000080) != 0);
3421  }
3435  public long getMaxNumberOfConflicts() {
3436  return maxNumberOfConflicts_;
3437  }
3438 
3439  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3440  private long maxMemoryInMb_;
3452  public boolean hasMaxMemoryInMb() {
3453  return ((bitField1_ & 0x00000100) != 0);
3454  }
3466  public long getMaxMemoryInMb() {
3467  return maxMemoryInMb_;
3468  }
3469 
3470  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3471  private boolean treatBinaryClausesSeparately_;
3483  return ((bitField1_ & 0x00000200) != 0);
3484  }
3496  return treatBinaryClausesSeparately_;
3497  }
3498 
3499  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3500  private int randomSeed_;
3514  public boolean hasRandomSeed() {
3515  return ((bitField1_ & 0x00000400) != 0);
3516  }
3530  public int getRandomSeed() {
3531  return randomSeed_;
3532  }
3533 
3534  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3535  private boolean logSearchProgress_;
3544  public boolean hasLogSearchProgress() {
3545  return ((bitField1_ & 0x00000800) != 0);
3546  }
3555  public boolean getLogSearchProgress() {
3556  return logSearchProgress_;
3557  }
3558 
3559  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3560  private boolean usePbResolution_;
3572  public boolean hasUsePbResolution() {
3573  return ((bitField1_ & 0x00001000) != 0);
3574  }
3586  public boolean getUsePbResolution() {
3587  return usePbResolution_;
3588  }
3589 
3591  private boolean minimizeReductionDuringPbResolution_;
3604  return ((bitField1_ & 0x00002000) != 0);
3605  }
3618  return minimizeReductionDuringPbResolution_;
3619  }
3620 
3621  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
3622  private boolean countAssumptionLevelsInLbd_;
3639  return ((bitField1_ & 0x00004000) != 0);
3640  }
3657  return countAssumptionLevelsInLbd_;
3658  }
3659 
3660  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3661  private int presolveBveThreshold_;
3672  public boolean hasPresolveBveThreshold() {
3673  return ((bitField1_ & 0x00008000) != 0);
3674  }
3686  return presolveBveThreshold_;
3687  }
3688 
3689  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3690  private int presolveBveClauseWeight_;
3700  public boolean hasPresolveBveClauseWeight() {
3701  return ((bitField1_ & 0x00010000) != 0);
3702  }
3713  return presolveBveClauseWeight_;
3714  }
3715 
3717  private double presolveProbingDeterministicTimeLimit_;
3728  return ((bitField1_ & 0x00020000) != 0);
3729  }
3740  return presolveProbingDeterministicTimeLimit_;
3741  }
3742 
3743  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3744  private boolean presolveBlockedClause_;
3754  public boolean hasPresolveBlockedClause() {
3755  return ((bitField1_ & 0x00040000) != 0);
3756  }
3766  public boolean getPresolveBlockedClause() {
3767  return presolveBlockedClause_;
3768  }
3769 
3770  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
3771  private boolean presolveUseBva_;
3780  public boolean hasPresolveUseBva() {
3781  return ((bitField1_ & 0x00080000) != 0);
3782  }
3791  public boolean getPresolveUseBva() {
3792  return presolveUseBva_;
3793  }
3794 
3795  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
3796  private int presolveBvaThreshold_;
3808  public boolean hasPresolveBvaThreshold() {
3809  return ((bitField1_ & 0x00100000) != 0);
3810  }
3823  return presolveBvaThreshold_;
3824  }
3825 
3826  public static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER = 138;
3827  private int maxPresolveIterations_;
3838  public boolean hasMaxPresolveIterations() {
3839  return ((bitField1_ & 0x00200000) != 0);
3840  }
3852  return maxPresolveIterations_;
3853  }
3854 
3855  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
3856  private boolean cpModelPresolve_;
3865  public boolean hasCpModelPresolve() {
3866  return ((bitField1_ & 0x00400000) != 0);
3867  }
3876  public boolean getCpModelPresolve() {
3877  return cpModelPresolve_;
3878  }
3879 
3880  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
3881  private int cpModelProbingLevel_;
3890  public boolean hasCpModelProbingLevel() {
3891  return ((bitField1_ & 0x00800000) != 0);
3892  }
3901  public int getCpModelProbingLevel() {
3902  return cpModelProbingLevel_;
3903  }
3904 
3905  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
3906  private boolean cpModelUseSatPresolve_;
3915  public boolean hasCpModelUseSatPresolve() {
3916  return ((bitField1_ & 0x01000000) != 0);
3917  }
3926  public boolean getCpModelUseSatPresolve() {
3927  return cpModelUseSatPresolve_;
3928  }
3929 
3930  public static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER = 140;
3931  private boolean expandElementConstraints_;
3941  public boolean hasExpandElementConstraints() {
3942  return ((bitField1_ & 0x02000000) != 0);
3943  }
3953  public boolean getExpandElementConstraints() {
3954  return expandElementConstraints_;
3955  }
3956 
3957  public static final int EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER = 143;
3958  private boolean expandAutomatonConstraints_;
3968  return ((bitField1_ & 0x04000000) != 0);
3969  }
3979  return expandAutomatonConstraints_;
3980  }
3981 
3982  public static final int MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER = 145;
3983  private double mergeNoOverlapWorkLimit_;
3996  public boolean hasMergeNoOverlapWorkLimit() {
3997  return ((bitField1_ & 0x08000000) != 0);
3998  }
4011  public double getMergeNoOverlapWorkLimit() {
4012  return mergeNoOverlapWorkLimit_;
4013  }
4014 
4015  public static final int MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER = 146;
4016  private double mergeAtMostOneWorkLimit_;
4021  public boolean hasMergeAtMostOneWorkLimit() {
4022  return ((bitField1_ & 0x10000000) != 0);
4023  }
4028  public double getMergeAtMostOneWorkLimit() {
4029  return mergeAtMostOneWorkLimit_;
4030  }
4031 
4032  public static final int PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER = 147;
4033  private int presolveSubstitutionLevel_;
4045  public boolean hasPresolveSubstitutionLevel() {
4046  return ((bitField1_ & 0x20000000) != 0);
4047  }
4060  return presolveSubstitutionLevel_;
4061  }
4062 
4063  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
4064  private boolean useOptimizationHints_;
4076  public boolean hasUseOptimizationHints() {
4077  return ((bitField1_ & 0x40000000) != 0);
4078  }
4090  public boolean getUseOptimizationHints() {
4091  return useOptimizationHints_;
4092  }
4093 
4094  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
4095  private boolean minimizeCore_;
4104  public boolean hasMinimizeCore() {
4105  return ((bitField1_ & 0x80000000) != 0);
4106  }
4115  public boolean getMinimizeCore() {
4116  return minimizeCore_;
4117  }
4118 
4119  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
4120  private boolean findMultipleCores_;
4130  public boolean hasFindMultipleCores() {
4131  return ((bitField2_ & 0x00000001) != 0);
4132  }
4142  public boolean getFindMultipleCores() {
4143  return findMultipleCores_;
4144  }
4145 
4146  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
4147  private boolean coverOptimization_;
4157  public boolean hasCoverOptimization() {
4158  return ((bitField2_ & 0x00000002) != 0);
4159  }
4169  public boolean getCoverOptimization() {
4170  return coverOptimization_;
4171  }
4172 
4173  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
4174  private int maxSatAssumptionOrder_;
4179  public boolean hasMaxSatAssumptionOrder() {
4180  return ((bitField2_ & 0x00000004) != 0);
4181  }
4187  @SuppressWarnings("deprecation")
4190  }
4191 
4193  private boolean maxSatReverseAssumptionOrder_;
4204  return ((bitField2_ & 0x00000008) != 0);
4205  }
4216  return maxSatReverseAssumptionOrder_;
4217  }
4218 
4219  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
4220  private int maxSatStratification_;
4225  public boolean hasMaxSatStratification() {
4226  return ((bitField2_ & 0x00000010) != 0);
4227  }
4233  @SuppressWarnings("deprecation")
4236  }
4237 
4239  private boolean usePrecedencesInDisjunctiveConstraint_;
4256  return ((bitField2_ & 0x00000020) != 0);
4257  }
4274  return usePrecedencesInDisjunctiveConstraint_;
4275  }
4276 
4278  private boolean useOverloadCheckerInCumulativeConstraint_;
4293  return ((bitField2_ & 0x00000040) != 0);
4294  }
4309  return useOverloadCheckerInCumulativeConstraint_;
4310  }
4311 
4313  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
4328  return ((bitField2_ & 0x00000080) != 0);
4329  }
4344  return useTimetableEdgeFindingInCumulativeConstraint_;
4345  }
4346 
4348  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
4365  return ((bitField2_ & 0x00000100) != 0);
4366  }
4383  return useDisjunctiveConstraintInCumulativeConstraint_;
4384  }
4385 
4386  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
4387  private int linearizationLevel_;
4399  public boolean hasLinearizationLevel() {
4400  return ((bitField2_ & 0x00000200) != 0);
4401  }
4413  public int getLinearizationLevel() {
4414  return linearizationLevel_;
4415  }
4416 
4417  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
4418  private int booleanEncodingLevel_;
4428  public boolean hasBooleanEncodingLevel() {
4429  return ((bitField2_ & 0x00000400) != 0);
4430  }
4441  return booleanEncodingLevel_;
4442  }
4443 
4444  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
4445  private int maxNumCuts_;
4457  public boolean hasMaxNumCuts() {
4458  return ((bitField2_ & 0x00000800) != 0);
4459  }
4471  public int getMaxNumCuts() {
4472  return maxNumCuts_;
4473  }
4474 
4475  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
4476  private boolean onlyAddCutsAtLevelZero_;
4486  public boolean hasOnlyAddCutsAtLevelZero() {
4487  return ((bitField2_ & 0x00001000) != 0);
4488  }
4498  public boolean getOnlyAddCutsAtLevelZero() {
4499  return onlyAddCutsAtLevelZero_;
4500  }
4501 
4502  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
4503  private boolean addKnapsackCuts_;
4514  public boolean hasAddKnapsackCuts() {
4515  return ((bitField2_ & 0x00002000) != 0);
4516  }
4527  public boolean getAddKnapsackCuts() {
4528  return addKnapsackCuts_;
4529  }
4530 
4531  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
4532  private boolean addCgCuts_;
4542  public boolean hasAddCgCuts() {
4543  return ((bitField2_ & 0x00004000) != 0);
4544  }
4554  public boolean getAddCgCuts() {
4555  return addCgCuts_;
4556  }
4557 
4558  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
4559  private boolean addMirCuts_;
4569  public boolean hasAddMirCuts() {
4570  return ((bitField2_ & 0x00008000) != 0);
4571  }
4581  public boolean getAddMirCuts() {
4582  return addMirCuts_;
4583  }
4584 
4585  public static final int MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER = 148;
4586  private int maxAllDiffCutSize_;
4597  public boolean hasMaxAllDiffCutSize() {
4598  return ((bitField2_ & 0x00010000) != 0);
4599  }
4610  public int getMaxAllDiffCutSize() {
4611  return maxAllDiffCutSize_;
4612  }
4613 
4614  public static final int USE_MIR_ROUNDING_FIELD_NUMBER = 118;
4615  private boolean useMirRounding_;
4626  public boolean hasUseMirRounding() {
4627  return ((bitField2_ & 0x00020000) != 0);
4628  }
4639  public boolean getUseMirRounding() {
4640  return useMirRounding_;
4641  }
4642 
4643  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4644  private int maxIntegerRoundingScaling_;
4657  public boolean hasMaxIntegerRoundingScaling() {
4658  return ((bitField2_ & 0x00040000) != 0);
4659  }
4673  return maxIntegerRoundingScaling_;
4674  }
4675 
4676  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4677  private boolean addLpConstraintsLazily_;
4689  public boolean hasAddLpConstraintsLazily() {
4690  return ((bitField2_ & 0x00080000) != 0);
4691  }
4703  public boolean getAddLpConstraintsLazily() {
4704  return addLpConstraintsLazily_;
4705  }
4706 
4708  private double minOrthogonalityForLpConstraints_;
4722  return ((bitField2_ & 0x00100000) != 0);
4723  }
4737  return minOrthogonalityForLpConstraints_;
4738  }
4739 
4740  public static final int MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER = 121;
4741  private int maxConsecutiveInactiveCount_;
4753  return ((bitField2_ & 0x00200000) != 0);
4754  }
4766  return maxConsecutiveInactiveCount_;
4767  }
4768 
4769  public static final int NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER = 122;
4770  private int newConstraintsBatchSize_;
4780  public boolean hasNewConstraintsBatchSize() {
4781  return ((bitField2_ & 0x00400000) != 0);
4782  }
4793  return newConstraintsBatchSize_;
4794  }
4795 
4796  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4797  private int searchBranching_;
4802  public boolean hasSearchBranching() {
4803  return ((bitField2_ & 0x00800000) != 0);
4804  }
4810  @SuppressWarnings("deprecation")
4812  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4813  }
4814 
4815  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4816  private boolean exploitIntegerLpSolution_;
4828  public boolean hasExploitIntegerLpSolution() {
4829  return ((bitField2_ & 0x01000000) != 0);
4830  }
4842  public boolean getExploitIntegerLpSolution() {
4843  return exploitIntegerLpSolution_;
4844  }
4845 
4846  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4847  private boolean exploitAllLpSolution_;
4858  public boolean hasExploitAllLpSolution() {
4859  return ((bitField2_ & 0x02000000) != 0);
4860  }
4871  public boolean getExploitAllLpSolution() {
4872  return exploitAllLpSolution_;
4873  }
4874 
4875  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4876  private boolean exploitBestSolution_;
4885  public boolean hasExploitBestSolution() {
4886  return ((bitField2_ & 0x04000000) != 0);
4887  }
4896  public boolean getExploitBestSolution() {
4897  return exploitBestSolution_;
4898  }
4899 
4900  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4901  private boolean exploitObjective_;
4911  public boolean hasExploitObjective() {
4912  return ((bitField2_ & 0x08000000) != 0);
4913  }
4923  public boolean getExploitObjective() {
4924  return exploitObjective_;
4925  }
4926 
4927  public static final int PROBING_PERIOD_AT_ROOT_FIELD_NUMBER = 142;
4928  private long probingPeriodAtRoot_;
4939  public boolean hasProbingPeriodAtRoot() {
4940  return ((bitField2_ & 0x10000000) != 0);
4941  }
4952  public long getProbingPeriodAtRoot() {
4953  return probingPeriodAtRoot_;
4954  }
4955 
4956  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4957  private long pseudoCostReliabilityThreshold_;
4968  return ((bitField2_ & 0x20000000) != 0);
4969  }
4980  return pseudoCostReliabilityThreshold_;
4981  }
4982 
4983  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4984  private boolean optimizeWithCore_;
4996  public boolean hasOptimizeWithCore() {
4997  return ((bitField2_ & 0x40000000) != 0);
4998  }
5010  public boolean getOptimizeWithCore() {
5011  return optimizeWithCore_;
5012  }
5013 
5014  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
5015  private int binarySearchNumConflicts_;
5027  public boolean hasBinarySearchNumConflicts() {
5028  return ((bitField2_ & 0x80000000) != 0);
5029  }
5042  return binarySearchNumConflicts_;
5043  }
5044 
5045  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
5046  private boolean optimizeWithMaxHs_;
5060  public boolean hasOptimizeWithMaxHs() {
5061  return ((bitField3_ & 0x00000001) != 0);
5062  }
5076  public boolean getOptimizeWithMaxHs() {
5077  return optimizeWithMaxHs_;
5078  }
5079 
5080  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
5081  private boolean enumerateAllSolutions_;
5095  public boolean hasEnumerateAllSolutions() {
5096  return ((bitField3_ & 0x00000002) != 0);
5097  }
5111  public boolean getEnumerateAllSolutions() {
5112  return enumerateAllSolutions_;
5113  }
5114 
5116  private boolean fillTightenedDomainsInResponse_;
5130  return ((bitField3_ & 0x00000004) != 0);
5131  }
5145  return fillTightenedDomainsInResponse_;
5146  }
5147 
5148  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
5149  private boolean instantiateAllVariables_;
5159  public boolean hasInstantiateAllVariables() {
5160  return ((bitField3_ & 0x00000008) != 0);
5161  }
5171  public boolean getInstantiateAllVariables() {
5172  return instantiateAllVariables_;
5173  }
5174 
5176  private boolean autoDetectGreaterThanAtLeastOneOf_;
5189  return ((bitField3_ & 0x00000010) != 0);
5190  }
5203  return autoDetectGreaterThanAtLeastOneOf_;
5204  }
5205 
5206  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
5207  private boolean stopAfterFirstSolution_;
5216  public boolean hasStopAfterFirstSolution() {
5217  return ((bitField3_ & 0x00000020) != 0);
5218  }
5227  public boolean getStopAfterFirstSolution() {
5228  return stopAfterFirstSolution_;
5229  }
5230 
5231  public static final int STOP_AFTER_PRESOLVE_FIELD_NUMBER = 149;
5232  private boolean stopAfterPresolve_;
5242  public boolean hasStopAfterPresolve() {
5243  return ((bitField3_ & 0x00000040) != 0);
5244  }
5254  public boolean getStopAfterPresolve() {
5255  return stopAfterPresolve_;
5256  }
5257 
5258  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
5259  private int numSearchWorkers_;
5269  public boolean hasNumSearchWorkers() {
5270  return ((bitField3_ & 0x00000080) != 0);
5271  }
5281  public int getNumSearchWorkers() {
5282  return numSearchWorkers_;
5283  }
5284 
5285  public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
5286  private boolean interleaveSearch_;
5298  public boolean hasInterleaveSearch() {
5299  return ((bitField3_ & 0x00000100) != 0);
5300  }
5312  public boolean getInterleaveSearch() {
5313  return interleaveSearch_;
5314  }
5315 
5317  private boolean reduceMemoryUsageInInterleaveMode_;
5327  return ((bitField3_ & 0x00000200) != 0);
5328  }
5338  return reduceMemoryUsageInInterleaveMode_;
5339  }
5340 
5341  public static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER = 134;
5342  private boolean deterministicParallelSearch_;
5354  return ((bitField3_ & 0x00000400) != 0);
5355  }
5367  return deterministicParallelSearch_;
5368  }
5369 
5370  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
5371  private boolean shareObjectiveBounds_;
5380  public boolean hasShareObjectiveBounds() {
5381  return ((bitField3_ & 0x00000800) != 0);
5382  }
5391  public boolean getShareObjectiveBounds() {
5392  return shareObjectiveBounds_;
5393  }
5394 
5395  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
5396  private boolean shareLevelZeroBounds_;
5405  public boolean hasShareLevelZeroBounds() {
5406  return ((bitField3_ & 0x00001000) != 0);
5407  }
5416  public boolean getShareLevelZeroBounds() {
5417  return shareLevelZeroBounds_;
5418  }
5419 
5420  public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
5421  private boolean useLnsOnly_;
5430  public boolean hasUseLnsOnly() {
5431  return ((bitField3_ & 0x00002000) != 0);
5432  }
5441  public boolean getUseLnsOnly() {
5442  return useLnsOnly_;
5443  }
5444 
5445  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
5446  private boolean lnsFocusOnDecisionVariables_;
5452  return ((bitField3_ & 0x00004000) != 0);
5453  }
5459  return lnsFocusOnDecisionVariables_;
5460  }
5461 
5462  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
5463  private boolean useRinsLns_;
5472  public boolean hasUseRinsLns() {
5473  return ((bitField3_ & 0x00008000) != 0);
5474  }
5483  public boolean getUseRinsLns() {
5484  return useRinsLns_;
5485  }
5486 
5487  public static final int USE_RELAXATION_LNS_FIELD_NUMBER = 150;
5488  private boolean useRelaxationLns_;
5498  public boolean hasUseRelaxationLns() {
5499  return ((bitField3_ & 0x00010000) != 0);
5500  }
5510  public boolean getUseRelaxationLns() {
5511  return useRelaxationLns_;
5512  }
5513 
5514  public static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER = 137;
5515  private boolean diversifyLnsParams_;
5524  public boolean hasDiversifyLnsParams() {
5525  return ((bitField3_ & 0x00020000) != 0);
5526  }
5535  public boolean getDiversifyLnsParams() {
5536  return diversifyLnsParams_;
5537  }
5538 
5539  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
5540  private boolean randomizeSearch_;
5549  public boolean hasRandomizeSearch() {
5550  return ((bitField3_ & 0x00040000) != 0);
5551  }
5560  public boolean getRandomizeSearch() {
5561  return randomizeSearch_;
5562  }
5563 
5564  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
5565  private long searchRandomizationTolerance_;
5581  return ((bitField3_ & 0x00080000) != 0);
5582  }
5598  return searchRandomizationTolerance_;
5599  }
5600 
5601  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
5602  private boolean useOptionalVariables_;
5613  public boolean hasUseOptionalVariables() {
5614  return ((bitField3_ & 0x00100000) != 0);
5615  }
5626  public boolean getUseOptionalVariables() {
5627  return useOptionalVariables_;
5628  }
5629 
5630  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
5631  private boolean useExactLpReason_;
5643  public boolean hasUseExactLpReason() {
5644  return ((bitField3_ & 0x00200000) != 0);
5645  }
5657  public boolean getUseExactLpReason() {
5658  return useExactLpReason_;
5659  }
5660 
5661  public static final int USE_BRANCHING_IN_LP_FIELD_NUMBER = 139;
5662  private boolean useBranchingInLp_;
5673  public boolean hasUseBranchingInLp() {
5674  return ((bitField3_ & 0x00400000) != 0);
5675  }
5686  public boolean getUseBranchingInLp() {
5687  return useBranchingInLp_;
5688  }
5689 
5690  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
5691  private boolean useCombinedNoOverlap_;
5702  public boolean hasUseCombinedNoOverlap() {
5703  return ((bitField3_ & 0x00800000) != 0);
5704  }
5715  public boolean getUseCombinedNoOverlap() {
5716  return useCombinedNoOverlap_;
5717  }
5718 
5719  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
5720  private boolean catchSigintSignal_;
5731  public boolean hasCatchSigintSignal() {
5732  return ((bitField3_ & 0x01000000) != 0);
5733  }
5744  public boolean getCatchSigintSignal() {
5745  return catchSigintSignal_;
5746  }
5747 
5748  public static final int USE_IMPLIED_BOUNDS_FIELD_NUMBER = 144;
5749  private boolean useImpliedBounds_;
5760  public boolean hasUseImpliedBounds() {
5761  return ((bitField3_ & 0x02000000) != 0);
5762  }
5773  public boolean getUseImpliedBounds() {
5774  return useImpliedBounds_;
5775  }
5776 
5777  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
5778  private double mipMaxBound_;
5789  public boolean hasMipMaxBound() {
5790  return ((bitField3_ & 0x04000000) != 0);
5791  }
5802  public double getMipMaxBound() {
5803  return mipMaxBound_;
5804  }
5805 
5806  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
5807  private double mipVarScaling_;
5818  public boolean hasMipVarScaling() {
5819  return ((bitField3_ & 0x08000000) != 0);
5820  }
5831  public double getMipVarScaling() {
5832  return mipVarScaling_;
5833  }
5834 
5835  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
5836  private double mipWantedPrecision_;
5853  public boolean hasMipWantedPrecision() {
5854  return ((bitField3_ & 0x10000000) != 0);
5855  }
5872  public double getMipWantedPrecision() {
5873  return mipWantedPrecision_;
5874  }
5875 
5876  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5877  private int mipMaxActivityExponent_;
5892  public boolean hasMipMaxActivityExponent() {
5893  return ((bitField3_ & 0x20000000) != 0);
5894  }
5910  return mipMaxActivityExponent_;
5911  }
5912 
5913  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5914  private double mipCheckPrecision_;
5926  public boolean hasMipCheckPrecision() {
5927  return ((bitField3_ & 0x40000000) != 0);
5928  }
5940  public double getMipCheckPrecision() {
5941  return mipCheckPrecision_;
5942  }
5943 
5944  private byte memoizedIsInitialized = -1;
5945  @java.lang.Override
5946  public final boolean isInitialized() {
5947  byte isInitialized = memoizedIsInitialized;
5948  if (isInitialized == 1) return true;
5949  if (isInitialized == 0) return false;
5950 
5951  memoizedIsInitialized = 1;
5952  return true;
5953  }
5954 
5955  @java.lang.Override
5956  public void writeTo(com.google.protobuf.CodedOutputStream output)
5957  throws java.io.IOException {
5958  if (((bitField0_ & 0x00000001) != 0)) {
5959  output.writeEnum(1, preferredVariableOrder_);
5960  }
5961  if (((bitField0_ & 0x00000002) != 0)) {
5962  output.writeEnum(2, initialPolarity_);
5963  }
5964  if (((bitField0_ & 0x00000100) != 0)) {
5965  output.writeEnum(4, minimizationAlgorithm_);
5966  }
5967  if (((bitField0_ & 0x00000800) != 0)) {
5968  output.writeInt32(11, clauseCleanupPeriod_);
5969  }
5970  if (((bitField0_ & 0x00001000) != 0)) {
5971  output.writeInt32(13, clauseCleanupTarget_);
5972  }
5973  if (((bitField0_ & 0x00100000) != 0)) {
5974  output.writeDouble(15, variableActivityDecay_);
5975  }
5976  if (((bitField0_ & 0x00200000) != 0)) {
5977  output.writeDouble(16, maxVariableActivityValue_);
5978  }
5979  if (((bitField0_ & 0x02000000) != 0)) {
5980  output.writeDouble(17, clauseActivityDecay_);
5981  }
5982  if (((bitField0_ & 0x04000000) != 0)) {
5983  output.writeDouble(18, maxClauseActivityValue_);
5984  }
5985  if (((bitField0_ & 0x00400000) != 0)) {
5986  output.writeDouble(22, glucoseMaxDecay_);
5987  }
5988  if (((bitField0_ & 0x00800000) != 0)) {
5989  output.writeDouble(23, glucoseDecayIncrement_);
5990  }
5991  if (((bitField0_ & 0x01000000) != 0)) {
5992  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5993  }
5994  if (((bitField0_ & 0x10000000) != 0)) {
5995  output.writeInt32(30, restartPeriod_);
5996  }
5997  if (((bitField1_ & 0x00000400) != 0)) {
5998  output.writeInt32(31, randomSeed_);
5999  }
6000  if (((bitField0_ & 0x00000010) != 0)) {
6001  output.writeDouble(32, randomBranchesRatio_);
6002  }
6003  if (((bitField1_ & 0x00000200) != 0)) {
6004  output.writeBool(33, treatBinaryClausesSeparately_);
6005  }
6006  if (((bitField0_ & 0x00000200) != 0)) {
6007  output.writeEnum(34, binaryMinimizationAlgorithm_);
6008  }
6009  if (((bitField1_ & 0x40000000) != 0)) {
6010  output.writeBool(35, useOptimizationHints_);
6011  }
6012  if (((bitField1_ & 0x00000020) != 0)) {
6013  output.writeDouble(36, maxTimeInSeconds_);
6014  }
6015  if (((bitField1_ & 0x00000080) != 0)) {
6016  output.writeInt64(37, maxNumberOfConflicts_);
6017  }
6018  if (((bitField1_ & 0x00000100) != 0)) {
6019  output.writeInt64(40, maxMemoryInMb_);
6020  }
6021  if (((bitField1_ & 0x00000800) != 0)) {
6022  output.writeBool(41, logSearchProgress_);
6023  }
6024  if (((bitField1_ & 0x00001000) != 0)) {
6025  output.writeBool(43, usePbResolution_);
6026  }
6027  if (((bitField0_ & 0x00000004) != 0)) {
6028  output.writeBool(44, usePhaseSaving_);
6029  }
6030  if (((bitField0_ & 0x00000008) != 0)) {
6031  output.writeDouble(45, randomPolarityRatio_);
6032  }
6033  if (((bitField0_ & 0x00010000) != 0)) {
6034  output.writeInt32(46, pbCleanupIncrement_);
6035  }
6036  if (((bitField0_ & 0x00020000) != 0)) {
6037  output.writeDouble(47, pbCleanupRatio_);
6038  }
6039  if (((bitField1_ & 0x00002000) != 0)) {
6040  output.writeBool(48, minimizeReductionDuringPbResolution_);
6041  }
6042  if (((bitField1_ & 0x00004000) != 0)) {
6043  output.writeBool(49, countAssumptionLevelsInLbd_);
6044  }
6045  if (((bitField1_ & 0x80000000) != 0)) {
6046  output.writeBool(50, minimizeCore_);
6047  }
6048  if (((bitField2_ & 0x00000004) != 0)) {
6049  output.writeEnum(51, maxSatAssumptionOrder_);
6050  }
6051  if (((bitField2_ & 0x00000008) != 0)) {
6052  output.writeBool(52, maxSatReverseAssumptionOrder_);
6053  }
6054  if (((bitField2_ & 0x00000010) != 0)) {
6055  output.writeEnum(53, maxSatStratification_);
6056  }
6057  if (((bitField1_ & 0x00008000) != 0)) {
6058  output.writeInt32(54, presolveBveThreshold_);
6059  }
6060  if (((bitField1_ & 0x00010000) != 0)) {
6061  output.writeInt32(55, presolveBveClauseWeight_);
6062  }
6063  if (((bitField0_ & 0x00000400) != 0)) {
6064  output.writeBool(56, subsumptionDuringConflictAnalysis_);
6065  }
6066  if (((bitField1_ & 0x00020000) != 0)) {
6067  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
6068  }
6069  if (((bitField0_ & 0x00002000) != 0)) {
6070  output.writeEnum(58, clauseCleanupProtection_);
6071  }
6072  if (((bitField0_ & 0x00004000) != 0)) {
6073  output.writeInt32(59, clauseCleanupLbdBound_);
6074  }
6075  if (((bitField0_ & 0x00008000) != 0)) {
6076  output.writeEnum(60, clauseCleanupOrdering_);
6077  }
6078  for (int i = 0; i < restartAlgorithms_.size(); i++) {
6079  output.writeEnum(61, restartAlgorithms_.get(i));
6080  }
6081  if (((bitField0_ & 0x20000000) != 0)) {
6082  output.writeInt32(62, restartRunningWindowSize_);
6083  }
6084  if (((bitField0_ & 0x40000000) != 0)) {
6085  output.writeDouble(63, restartDlAverageRatio_);
6086  }
6087  if (((bitField1_ & 0x00000001) != 0)) {
6088  output.writeBool(64, useBlockingRestart_);
6089  }
6090  if (((bitField1_ & 0x00000002) != 0)) {
6091  output.writeInt32(65, blockingRestartWindowSize_);
6092  }
6093  if (((bitField1_ & 0x00000004) != 0)) {
6094  output.writeDouble(66, blockingRestartMultiplier_);
6095  }
6096  if (((bitField1_ & 0x00000040) != 0)) {
6097  output.writeDouble(67, maxDeterministicTime_);
6098  }
6099  if (((bitField1_ & 0x00000008) != 0)) {
6100  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
6101  }
6102  if (((bitField1_ & 0x00000010) != 0)) {
6103  output.writeDouble(69, strategyChangeIncreaseRatio_);
6104  }
6105  if (((bitField0_ & 0x08000000) != 0)) {
6106  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
6107  }
6108  if (((bitField0_ & 0x80000000) != 0)) {
6109  output.writeDouble(71, restartLbdAverageRatio_);
6110  }
6111  if (((bitField1_ & 0x00080000) != 0)) {
6112  output.writeBool(72, presolveUseBva_);
6113  }
6114  if (((bitField1_ & 0x00100000) != 0)) {
6115  output.writeInt32(73, presolveBvaThreshold_);
6116  }
6117  if (((bitField2_ & 0x00000020) != 0)) {
6118  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
6119  }
6120  if (((bitField0_ & 0x00000020) != 0)) {
6121  output.writeBool(75, useErwaHeuristic_);
6122  }
6123  if (((bitField0_ & 0x00000040) != 0)) {
6124  output.writeDouble(76, initialVariablesActivity_);
6125  }
6126  if (((bitField0_ & 0x00000080) != 0)) {
6127  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
6128  }
6129  if (((bitField2_ & 0x00000040) != 0)) {
6130  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
6131  }
6132  if (((bitField2_ & 0x00000080) != 0)) {
6133  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
6134  }
6135  if (((bitField2_ & 0x00000100) != 0)) {
6136  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
6137  }
6138  if (((bitField2_ & 0x00800000) != 0)) {
6139  output.writeEnum(82, searchBranching_);
6140  }
6141  if (((bitField2_ & 0x40000000) != 0)) {
6142  output.writeBool(83, optimizeWithCore_);
6143  }
6144  if (((bitField2_ & 0x00000001) != 0)) {
6145  output.writeBool(84, findMultipleCores_);
6146  }
6147  if (((bitField3_ & 0x00000001) != 0)) {
6148  output.writeBool(85, optimizeWithMaxHs_);
6149  }
6150  if (((bitField1_ & 0x00400000) != 0)) {
6151  output.writeBool(86, cpModelPresolve_);
6152  }
6153  if (((bitField3_ & 0x00000002) != 0)) {
6154  output.writeBool(87, enumerateAllSolutions_);
6155  }
6156  if (((bitField1_ & 0x00040000) != 0)) {
6157  output.writeBool(88, presolveBlockedClause_);
6158  }
6159  if (((bitField2_ & 0x00000002) != 0)) {
6160  output.writeBool(89, coverOptimization_);
6161  }
6162  if (((bitField2_ & 0x00000200) != 0)) {
6163  output.writeInt32(90, linearizationLevel_);
6164  }
6165  if (((bitField2_ & 0x00000800) != 0)) {
6166  output.writeInt32(91, maxNumCuts_);
6167  }
6168  if (((bitField2_ & 0x00001000) != 0)) {
6169  output.writeBool(92, onlyAddCutsAtLevelZero_);
6170  }
6171  if (((bitField1_ & 0x01000000) != 0)) {
6172  output.writeBool(93, cpModelUseSatPresolve_);
6173  }
6174  if (((bitField2_ & 0x01000000) != 0)) {
6175  output.writeBool(94, exploitIntegerLpSolution_);
6176  }
6177  if (((bitField3_ & 0x00000010) != 0)) {
6178  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
6179  }
6180  if (((bitField0_ & 0x00040000) != 0)) {
6181  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
6182  }
6183  if (((bitField0_ & 0x00080000) != 0)) {
6184  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
6185  }
6186  if (((bitField3_ & 0x00000020) != 0)) {
6187  output.writeBool(98, stopAfterFirstSolution_);
6188  }
6189  if (((bitField2_ & 0x80000000) != 0)) {
6190  output.writeInt32(99, binarySearchNumConflicts_);
6191  }
6192  if (((bitField3_ & 0x00000080) != 0)) {
6193  output.writeInt32(100, numSearchWorkers_);
6194  }
6195  if (((bitField3_ & 0x00002000) != 0)) {
6196  output.writeBool(101, useLnsOnly_);
6197  }
6198  if (((bitField3_ & 0x00040000) != 0)) {
6199  output.writeBool(103, randomizeSearch_);
6200  }
6201  if (((bitField3_ & 0x00080000) != 0)) {
6202  output.writeInt64(104, searchRandomizationTolerance_);
6203  }
6204  if (((bitField3_ & 0x00004000) != 0)) {
6205  output.writeBool(105, lnsFocusOnDecisionVariables_);
6206  }
6207  if (((bitField3_ & 0x00000008) != 0)) {
6208  output.writeBool(106, instantiateAllVariables_);
6209  }
6210  if (((bitField2_ & 0x00000400) != 0)) {
6211  output.writeInt32(107, booleanEncodingLevel_);
6212  }
6213  if (((bitField3_ & 0x00100000) != 0)) {
6214  output.writeBool(108, useOptionalVariables_);
6215  }
6216  if (((bitField3_ & 0x00200000) != 0)) {
6217  output.writeBool(109, useExactLpReason_);
6218  }
6219  if (((bitField1_ & 0x00800000) != 0)) {
6220  output.writeInt32(110, cpModelProbingLevel_);
6221  }
6222  if (((bitField2_ & 0x00002000) != 0)) {
6223  output.writeBool(111, addKnapsackCuts_);
6224  }
6225  if (((bitField2_ & 0x00080000) != 0)) {
6226  output.writeBool(112, addLpConstraintsLazily_);
6227  }
6228  if (((bitField3_ & 0x00000800) != 0)) {
6229  output.writeBool(113, shareObjectiveBounds_);
6230  }
6231  if (((bitField3_ & 0x00001000) != 0)) {
6232  output.writeBool(114, shareLevelZeroBounds_);
6233  }
6234  if (((bitField2_ & 0x00100000) != 0)) {
6235  output.writeDouble(115, minOrthogonalityForLpConstraints_);
6236  }
6237  if (((bitField2_ & 0x02000000) != 0)) {
6238  output.writeBool(116, exploitAllLpSolution_);
6239  }
6240  if (((bitField2_ & 0x00004000) != 0)) {
6241  output.writeBool(117, addCgCuts_);
6242  }
6243  if (((bitField2_ & 0x00020000) != 0)) {
6244  output.writeBool(118, useMirRounding_);
6245  }
6246  if (((bitField2_ & 0x00040000) != 0)) {
6247  output.writeInt32(119, maxIntegerRoundingScaling_);
6248  }
6249  if (((bitField2_ & 0x00008000) != 0)) {
6250  output.writeBool(120, addMirCuts_);
6251  }
6252  if (((bitField2_ & 0x00200000) != 0)) {
6253  output.writeInt32(121, maxConsecutiveInactiveCount_);
6254  }
6255  if (((bitField2_ & 0x00400000) != 0)) {
6256  output.writeInt32(122, newConstraintsBatchSize_);
6257  }
6258  if (((bitField2_ & 0x20000000) != 0)) {
6259  output.writeInt64(123, pseudoCostReliabilityThreshold_);
6260  }
6261  if (((bitField3_ & 0x04000000) != 0)) {
6262  output.writeDouble(124, mipMaxBound_);
6263  }
6264  if (((bitField3_ & 0x08000000) != 0)) {
6265  output.writeDouble(125, mipVarScaling_);
6266  }
6267  if (((bitField3_ & 0x10000000) != 0)) {
6268  output.writeDouble(126, mipWantedPrecision_);
6269  }
6270  if (((bitField3_ & 0x20000000) != 0)) {
6271  output.writeInt32(127, mipMaxActivityExponent_);
6272  }
6273  if (((bitField3_ & 0x40000000) != 0)) {
6274  output.writeDouble(128, mipCheckPrecision_);
6275  }
6276  if (((bitField3_ & 0x00008000) != 0)) {
6277  output.writeBool(129, useRinsLns_);
6278  }
6279  if (((bitField2_ & 0x04000000) != 0)) {
6280  output.writeBool(130, exploitBestSolution_);
6281  }
6282  if (((bitField2_ & 0x08000000) != 0)) {
6283  output.writeBool(131, exploitObjective_);
6284  }
6285  if (((bitField3_ & 0x00000004) != 0)) {
6286  output.writeBool(132, fillTightenedDomainsInResponse_);
6287  }
6288  if (((bitField3_ & 0x00800000) != 0)) {
6289  output.writeBool(133, useCombinedNoOverlap_);
6290  }
6291  if (((bitField3_ & 0x00000400) != 0)) {
6292  output.writeBool(134, deterministicParallelSearch_);
6293  }
6294  if (((bitField3_ & 0x01000000) != 0)) {
6295  output.writeBool(135, catchSigintSignal_);
6296  }
6297  if (((bitField3_ & 0x00000100) != 0)) {
6298  output.writeBool(136, interleaveSearch_);
6299  }
6300  if (((bitField3_ & 0x00020000) != 0)) {
6301  output.writeBool(137, diversifyLnsParams_);
6302  }
6303  if (((bitField1_ & 0x00200000) != 0)) {
6304  output.writeInt32(138, maxPresolveIterations_);
6305  }
6306  if (((bitField3_ & 0x00400000) != 0)) {
6307  output.writeBool(139, useBranchingInLp_);
6308  }
6309  if (((bitField1_ & 0x02000000) != 0)) {
6310  output.writeBool(140, expandElementConstraints_);
6311  }
6312  if (((bitField3_ & 0x00000200) != 0)) {
6313  output.writeBool(141, reduceMemoryUsageInInterleaveMode_);
6314  }
6315  if (((bitField2_ & 0x10000000) != 0)) {
6316  output.writeInt64(142, probingPeriodAtRoot_);
6317  }
6318  if (((bitField1_ & 0x04000000) != 0)) {
6319  output.writeBool(143, expandAutomatonConstraints_);
6320  }
6321  if (((bitField3_ & 0x02000000) != 0)) {
6322  output.writeBool(144, useImpliedBounds_);
6323  }
6324  if (((bitField1_ & 0x08000000) != 0)) {
6325  output.writeDouble(145, mergeNoOverlapWorkLimit_);
6326  }
6327  if (((bitField1_ & 0x10000000) != 0)) {
6328  output.writeDouble(146, mergeAtMostOneWorkLimit_);
6329  }
6330  if (((bitField1_ & 0x20000000) != 0)) {
6331  output.writeInt32(147, presolveSubstitutionLevel_);
6332  }
6333  if (((bitField2_ & 0x00010000) != 0)) {
6334  output.writeInt32(148, maxAllDiffCutSize_);
6335  }
6336  if (((bitField3_ & 0x00000040) != 0)) {
6337  output.writeBool(149, stopAfterPresolve_);
6338  }
6339  if (((bitField3_ & 0x00010000) != 0)) {
6340  output.writeBool(150, useRelaxationLns_);
6341  }
6342  unknownFields.writeTo(output);
6343  }
6344 
6345  @java.lang.Override
6346  public int getSerializedSize() {
6347  int size = memoizedSize;
6348  if (size != -1) return size;
6349 
6350  size = 0;
6351  if (((bitField0_ & 0x00000001) != 0)) {
6352  size += com.google.protobuf.CodedOutputStream
6353  .computeEnumSize(1, preferredVariableOrder_);
6354  }
6355  if (((bitField0_ & 0x00000002) != 0)) {
6356  size += com.google.protobuf.CodedOutputStream
6357  .computeEnumSize(2, initialPolarity_);
6358  }
6359  if (((bitField0_ & 0x00000100) != 0)) {
6360  size += com.google.protobuf.CodedOutputStream
6361  .computeEnumSize(4, minimizationAlgorithm_);
6362  }
6363  if (((bitField0_ & 0x00000800) != 0)) {
6364  size += com.google.protobuf.CodedOutputStream
6365  .computeInt32Size(11, clauseCleanupPeriod_);
6366  }
6367  if (((bitField0_ & 0x00001000) != 0)) {
6368  size += com.google.protobuf.CodedOutputStream
6369  .computeInt32Size(13, clauseCleanupTarget_);
6370  }
6371  if (((bitField0_ & 0x00100000) != 0)) {
6372  size += com.google.protobuf.CodedOutputStream
6373  .computeDoubleSize(15, variableActivityDecay_);
6374  }
6375  if (((bitField0_ & 0x00200000) != 0)) {
6376  size += com.google.protobuf.CodedOutputStream
6377  .computeDoubleSize(16, maxVariableActivityValue_);
6378  }
6379  if (((bitField0_ & 0x02000000) != 0)) {
6380  size += com.google.protobuf.CodedOutputStream
6381  .computeDoubleSize(17, clauseActivityDecay_);
6382  }
6383  if (((bitField0_ & 0x04000000) != 0)) {
6384  size += com.google.protobuf.CodedOutputStream
6385  .computeDoubleSize(18, maxClauseActivityValue_);
6386  }
6387  if (((bitField0_ & 0x00400000) != 0)) {
6388  size += com.google.protobuf.CodedOutputStream
6389  .computeDoubleSize(22, glucoseMaxDecay_);
6390  }
6391  if (((bitField0_ & 0x00800000) != 0)) {
6392  size += com.google.protobuf.CodedOutputStream
6393  .computeDoubleSize(23, glucoseDecayIncrement_);
6394  }
6395  if (((bitField0_ & 0x01000000) != 0)) {
6396  size += com.google.protobuf.CodedOutputStream
6397  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
6398  }
6399  if (((bitField0_ & 0x10000000) != 0)) {
6400  size += com.google.protobuf.CodedOutputStream
6401  .computeInt32Size(30, restartPeriod_);
6402  }
6403  if (((bitField1_ & 0x00000400) != 0)) {
6404  size += com.google.protobuf.CodedOutputStream
6405  .computeInt32Size(31, randomSeed_);
6406  }
6407  if (((bitField0_ & 0x00000010) != 0)) {
6408  size += com.google.protobuf.CodedOutputStream
6409  .computeDoubleSize(32, randomBranchesRatio_);
6410  }
6411  if (((bitField1_ & 0x00000200) != 0)) {
6412  size += com.google.protobuf.CodedOutputStream
6413  .computeBoolSize(33, treatBinaryClausesSeparately_);
6414  }
6415  if (((bitField0_ & 0x00000200) != 0)) {
6416  size += com.google.protobuf.CodedOutputStream
6417  .computeEnumSize(34, binaryMinimizationAlgorithm_);
6418  }
6419  if (((bitField1_ & 0x40000000) != 0)) {
6420  size += com.google.protobuf.CodedOutputStream
6421  .computeBoolSize(35, useOptimizationHints_);
6422  }
6423  if (((bitField1_ & 0x00000020) != 0)) {
6424  size += com.google.protobuf.CodedOutputStream
6425  .computeDoubleSize(36, maxTimeInSeconds_);
6426  }
6427  if (((bitField1_ & 0x00000080) != 0)) {
6428  size += com.google.protobuf.CodedOutputStream
6429  .computeInt64Size(37, maxNumberOfConflicts_);
6430  }
6431  if (((bitField1_ & 0x00000100) != 0)) {
6432  size += com.google.protobuf.CodedOutputStream
6433  .computeInt64Size(40, maxMemoryInMb_);
6434  }
6435  if (((bitField1_ & 0x00000800) != 0)) {
6436  size += com.google.protobuf.CodedOutputStream
6437  .computeBoolSize(41, logSearchProgress_);
6438  }
6439  if (((bitField1_ & 0x00001000) != 0)) {
6440  size += com.google.protobuf.CodedOutputStream
6441  .computeBoolSize(43, usePbResolution_);
6442  }
6443  if (((bitField0_ & 0x00000004) != 0)) {
6444  size += com.google.protobuf.CodedOutputStream
6445  .computeBoolSize(44, usePhaseSaving_);
6446  }
6447  if (((bitField0_ & 0x00000008) != 0)) {
6448  size += com.google.protobuf.CodedOutputStream
6449  .computeDoubleSize(45, randomPolarityRatio_);
6450  }
6451  if (((bitField0_ & 0x00010000) != 0)) {
6452  size += com.google.protobuf.CodedOutputStream
6453  .computeInt32Size(46, pbCleanupIncrement_);
6454  }
6455  if (((bitField0_ & 0x00020000) != 0)) {
6456  size += com.google.protobuf.CodedOutputStream
6457  .computeDoubleSize(47, pbCleanupRatio_);
6458  }
6459  if (((bitField1_ & 0x00002000) != 0)) {
6460  size += com.google.protobuf.CodedOutputStream
6461  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
6462  }
6463  if (((bitField1_ & 0x00004000) != 0)) {
6464  size += com.google.protobuf.CodedOutputStream
6465  .computeBoolSize(49, countAssumptionLevelsInLbd_);
6466  }
6467  if (((bitField1_ & 0x80000000) != 0)) {
6468  size += com.google.protobuf.CodedOutputStream
6469  .computeBoolSize(50, minimizeCore_);
6470  }
6471  if (((bitField2_ & 0x00000004) != 0)) {
6472  size += com.google.protobuf.CodedOutputStream
6473  .computeEnumSize(51, maxSatAssumptionOrder_);
6474  }
6475  if (((bitField2_ & 0x00000008) != 0)) {
6476  size += com.google.protobuf.CodedOutputStream
6477  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
6478  }
6479  if (((bitField2_ & 0x00000010) != 0)) {
6480  size += com.google.protobuf.CodedOutputStream
6481  .computeEnumSize(53, maxSatStratification_);
6482  }
6483  if (((bitField1_ & 0x00008000) != 0)) {
6484  size += com.google.protobuf.CodedOutputStream
6485  .computeInt32Size(54, presolveBveThreshold_);
6486  }
6487  if (((bitField1_ & 0x00010000) != 0)) {
6488  size += com.google.protobuf.CodedOutputStream
6489  .computeInt32Size(55, presolveBveClauseWeight_);
6490  }
6491  if (((bitField0_ & 0x00000400) != 0)) {
6492  size += com.google.protobuf.CodedOutputStream
6493  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
6494  }
6495  if (((bitField1_ & 0x00020000) != 0)) {
6496  size += com.google.protobuf.CodedOutputStream
6497  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
6498  }
6499  if (((bitField0_ & 0x00002000) != 0)) {
6500  size += com.google.protobuf.CodedOutputStream
6501  .computeEnumSize(58, clauseCleanupProtection_);
6502  }
6503  if (((bitField0_ & 0x00004000) != 0)) {
6504  size += com.google.protobuf.CodedOutputStream
6505  .computeInt32Size(59, clauseCleanupLbdBound_);
6506  }
6507  if (((bitField0_ & 0x00008000) != 0)) {
6508  size += com.google.protobuf.CodedOutputStream
6509  .computeEnumSize(60, clauseCleanupOrdering_);
6510  }
6511  {
6512  int dataSize = 0;
6513  for (int i = 0; i < restartAlgorithms_.size(); i++) {
6514  dataSize += com.google.protobuf.CodedOutputStream
6515  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
6516  }
6517  size += dataSize;
6518  size += 2 * restartAlgorithms_.size();
6519  }
6520  if (((bitField0_ & 0x20000000) != 0)) {
6521  size += com.google.protobuf.CodedOutputStream
6522  .computeInt32Size(62, restartRunningWindowSize_);
6523  }
6524  if (((bitField0_ & 0x40000000) != 0)) {
6525  size += com.google.protobuf.CodedOutputStream
6526  .computeDoubleSize(63, restartDlAverageRatio_);
6527  }
6528  if (((bitField1_ & 0x00000001) != 0)) {
6529  size += com.google.protobuf.CodedOutputStream
6530  .computeBoolSize(64, useBlockingRestart_);
6531  }
6532  if (((bitField1_ & 0x00000002) != 0)) {
6533  size += com.google.protobuf.CodedOutputStream
6534  .computeInt32Size(65, blockingRestartWindowSize_);
6535  }
6536  if (((bitField1_ & 0x00000004) != 0)) {
6537  size += com.google.protobuf.CodedOutputStream
6538  .computeDoubleSize(66, blockingRestartMultiplier_);
6539  }
6540  if (((bitField1_ & 0x00000040) != 0)) {
6541  size += com.google.protobuf.CodedOutputStream
6542  .computeDoubleSize(67, maxDeterministicTime_);
6543  }
6544  if (((bitField1_ & 0x00000008) != 0)) {
6545  size += com.google.protobuf.CodedOutputStream
6546  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
6547  }
6548  if (((bitField1_ & 0x00000010) != 0)) {
6549  size += com.google.protobuf.CodedOutputStream
6550  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
6551  }
6552  if (((bitField0_ & 0x08000000) != 0)) {
6553  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
6554  }
6555  if (((bitField0_ & 0x80000000) != 0)) {
6556  size += com.google.protobuf.CodedOutputStream
6557  .computeDoubleSize(71, restartLbdAverageRatio_);
6558  }
6559  if (((bitField1_ & 0x00080000) != 0)) {
6560  size += com.google.protobuf.CodedOutputStream
6561  .computeBoolSize(72, presolveUseBva_);
6562  }
6563  if (((bitField1_ & 0x00100000) != 0)) {
6564  size += com.google.protobuf.CodedOutputStream
6565  .computeInt32Size(73, presolveBvaThreshold_);
6566  }
6567  if (((bitField2_ & 0x00000020) != 0)) {
6568  size += com.google.protobuf.CodedOutputStream
6569  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
6570  }
6571  if (((bitField0_ & 0x00000020) != 0)) {
6572  size += com.google.protobuf.CodedOutputStream
6573  .computeBoolSize(75, useErwaHeuristic_);
6574  }
6575  if (((bitField0_ & 0x00000040) != 0)) {
6576  size += com.google.protobuf.CodedOutputStream
6577  .computeDoubleSize(76, initialVariablesActivity_);
6578  }
6579  if (((bitField0_ & 0x00000080) != 0)) {
6580  size += com.google.protobuf.CodedOutputStream
6581  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
6582  }
6583  if (((bitField2_ & 0x00000040) != 0)) {
6584  size += com.google.protobuf.CodedOutputStream
6585  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
6586  }
6587  if (((bitField2_ & 0x00000080) != 0)) {
6588  size += com.google.protobuf.CodedOutputStream
6589  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
6590  }
6591  if (((bitField2_ & 0x00000100) != 0)) {
6592  size += com.google.protobuf.CodedOutputStream
6593  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
6594  }
6595  if (((bitField2_ & 0x00800000) != 0)) {
6596  size += com.google.protobuf.CodedOutputStream
6597  .computeEnumSize(82, searchBranching_);
6598  }
6599  if (((bitField2_ & 0x40000000) != 0)) {
6600  size += com.google.protobuf.CodedOutputStream
6601  .computeBoolSize(83, optimizeWithCore_);
6602  }
6603  if (((bitField2_ & 0x00000001) != 0)) {
6604  size += com.google.protobuf.CodedOutputStream
6605  .computeBoolSize(84, findMultipleCores_);
6606  }
6607  if (((bitField3_ & 0x00000001) != 0)) {
6608  size += com.google.protobuf.CodedOutputStream
6609  .computeBoolSize(85, optimizeWithMaxHs_);
6610  }
6611  if (((bitField1_ & 0x00400000) != 0)) {
6612  size += com.google.protobuf.CodedOutputStream
6613  .computeBoolSize(86, cpModelPresolve_);
6614  }
6615  if (((bitField3_ & 0x00000002) != 0)) {
6616  size += com.google.protobuf.CodedOutputStream
6617  .computeBoolSize(87, enumerateAllSolutions_);
6618  }
6619  if (((bitField1_ & 0x00040000) != 0)) {
6620  size += com.google.protobuf.CodedOutputStream
6621  .computeBoolSize(88, presolveBlockedClause_);
6622  }
6623  if (((bitField2_ & 0x00000002) != 0)) {
6624  size += com.google.protobuf.CodedOutputStream
6625  .computeBoolSize(89, coverOptimization_);
6626  }
6627  if (((bitField2_ & 0x00000200) != 0)) {
6628  size += com.google.protobuf.CodedOutputStream
6629  .computeInt32Size(90, linearizationLevel_);
6630  }
6631  if (((bitField2_ & 0x00000800) != 0)) {
6632  size += com.google.protobuf.CodedOutputStream
6633  .computeInt32Size(91, maxNumCuts_);
6634  }
6635  if (((bitField2_ & 0x00001000) != 0)) {
6636  size += com.google.protobuf.CodedOutputStream
6637  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
6638  }
6639  if (((bitField1_ & 0x01000000) != 0)) {
6640  size += com.google.protobuf.CodedOutputStream
6641  .computeBoolSize(93, cpModelUseSatPresolve_);
6642  }
6643  if (((bitField2_ & 0x01000000) != 0)) {
6644  size += com.google.protobuf.CodedOutputStream
6645  .computeBoolSize(94, exploitIntegerLpSolution_);
6646  }
6647  if (((bitField3_ & 0x00000010) != 0)) {
6648  size += com.google.protobuf.CodedOutputStream
6649  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
6650  }
6651  if (((bitField0_ & 0x00040000) != 0)) {
6652  size += com.google.protobuf.CodedOutputStream
6653  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
6654  }
6655  if (((bitField0_ & 0x00080000) != 0)) {
6656  size += com.google.protobuf.CodedOutputStream
6657  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
6658  }
6659  if (((bitField3_ & 0x00000020) != 0)) {
6660  size += com.google.protobuf.CodedOutputStream
6661  .computeBoolSize(98, stopAfterFirstSolution_);
6662  }
6663  if (((bitField2_ & 0x80000000) != 0)) {
6664  size += com.google.protobuf.CodedOutputStream
6665  .computeInt32Size(99, binarySearchNumConflicts_);
6666  }
6667  if (((bitField3_ & 0x00000080) != 0)) {
6668  size += com.google.protobuf.CodedOutputStream
6669  .computeInt32Size(100, numSearchWorkers_);
6670  }
6671  if (((bitField3_ & 0x00002000) != 0)) {
6672  size += com.google.protobuf.CodedOutputStream
6673  .computeBoolSize(101, useLnsOnly_);
6674  }
6675  if (((bitField3_ & 0x00040000) != 0)) {
6676  size += com.google.protobuf.CodedOutputStream
6677  .computeBoolSize(103, randomizeSearch_);
6678  }
6679  if (((bitField3_ & 0x00080000) != 0)) {
6680  size += com.google.protobuf.CodedOutputStream
6681  .computeInt64Size(104, searchRandomizationTolerance_);
6682  }
6683  if (((bitField3_ & 0x00004000) != 0)) {
6684  size += com.google.protobuf.CodedOutputStream
6685  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
6686  }
6687  if (((bitField3_ & 0x00000008) != 0)) {
6688  size += com.google.protobuf.CodedOutputStream
6689  .computeBoolSize(106, instantiateAllVariables_);
6690  }
6691  if (((bitField2_ & 0x00000400) != 0)) {
6692  size += com.google.protobuf.CodedOutputStream
6693  .computeInt32Size(107, booleanEncodingLevel_);
6694  }
6695  if (((bitField3_ & 0x00100000) != 0)) {
6696  size += com.google.protobuf.CodedOutputStream
6697  .computeBoolSize(108, useOptionalVariables_);
6698  }
6699  if (((bitField3_ & 0x00200000) != 0)) {
6700  size += com.google.protobuf.CodedOutputStream
6701  .computeBoolSize(109, useExactLpReason_);
6702  }
6703  if (((bitField1_ & 0x00800000) != 0)) {
6704  size += com.google.protobuf.CodedOutputStream
6705  .computeInt32Size(110, cpModelProbingLevel_);
6706  }
6707  if (((bitField2_ & 0x00002000) != 0)) {
6708  size += com.google.protobuf.CodedOutputStream
6709  .computeBoolSize(111, addKnapsackCuts_);
6710  }
6711  if (((bitField2_ & 0x00080000) != 0)) {
6712  size += com.google.protobuf.CodedOutputStream
6713  .computeBoolSize(112, addLpConstraintsLazily_);
6714  }
6715  if (((bitField3_ & 0x00000800) != 0)) {
6716  size += com.google.protobuf.CodedOutputStream
6717  .computeBoolSize(113, shareObjectiveBounds_);
6718  }
6719  if (((bitField3_ & 0x00001000) != 0)) {
6720  size += com.google.protobuf.CodedOutputStream
6721  .computeBoolSize(114, shareLevelZeroBounds_);
6722  }
6723  if (((bitField2_ & 0x00100000) != 0)) {
6724  size += com.google.protobuf.CodedOutputStream
6725  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
6726  }
6727  if (((bitField2_ & 0x02000000) != 0)) {
6728  size += com.google.protobuf.CodedOutputStream
6729  .computeBoolSize(116, exploitAllLpSolution_);
6730  }
6731  if (((bitField2_ & 0x00004000) != 0)) {
6732  size += com.google.protobuf.CodedOutputStream
6733  .computeBoolSize(117, addCgCuts_);
6734  }
6735  if (((bitField2_ & 0x00020000) != 0)) {
6736  size += com.google.protobuf.CodedOutputStream
6737  .computeBoolSize(118, useMirRounding_);
6738  }
6739  if (((bitField2_ & 0x00040000) != 0)) {
6740  size += com.google.protobuf.CodedOutputStream
6741  .computeInt32Size(119, maxIntegerRoundingScaling_);
6742  }
6743  if (((bitField2_ & 0x00008000) != 0)) {
6744  size += com.google.protobuf.CodedOutputStream
6745  .computeBoolSize(120, addMirCuts_);
6746  }
6747  if (((bitField2_ & 0x00200000) != 0)) {
6748  size += com.google.protobuf.CodedOutputStream
6749  .computeInt32Size(121, maxConsecutiveInactiveCount_);
6750  }
6751  if (((bitField2_ & 0x00400000) != 0)) {
6752  size += com.google.protobuf.CodedOutputStream
6753  .computeInt32Size(122, newConstraintsBatchSize_);
6754  }
6755  if (((bitField2_ & 0x20000000) != 0)) {
6756  size += com.google.protobuf.CodedOutputStream
6757  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
6758  }
6759  if (((bitField3_ & 0x04000000) != 0)) {
6760  size += com.google.protobuf.CodedOutputStream
6761  .computeDoubleSize(124, mipMaxBound_);
6762  }
6763  if (((bitField3_ & 0x08000000) != 0)) {
6764  size += com.google.protobuf.CodedOutputStream
6765  .computeDoubleSize(125, mipVarScaling_);
6766  }
6767  if (((bitField3_ & 0x10000000) != 0)) {
6768  size += com.google.protobuf.CodedOutputStream
6769  .computeDoubleSize(126, mipWantedPrecision_);
6770  }
6771  if (((bitField3_ & 0x20000000) != 0)) {
6772  size += com.google.protobuf.CodedOutputStream
6773  .computeInt32Size(127, mipMaxActivityExponent_);
6774  }
6775  if (((bitField3_ & 0x40000000) != 0)) {
6776  size += com.google.protobuf.CodedOutputStream
6777  .computeDoubleSize(128, mipCheckPrecision_);
6778  }
6779  if (((bitField3_ & 0x00008000) != 0)) {
6780  size += com.google.protobuf.CodedOutputStream
6781  .computeBoolSize(129, useRinsLns_);
6782  }
6783  if (((bitField2_ & 0x04000000) != 0)) {
6784  size += com.google.protobuf.CodedOutputStream
6785  .computeBoolSize(130, exploitBestSolution_);
6786  }
6787  if (((bitField2_ & 0x08000000) != 0)) {
6788  size += com.google.protobuf.CodedOutputStream
6789  .computeBoolSize(131, exploitObjective_);
6790  }
6791  if (((bitField3_ & 0x00000004) != 0)) {
6792  size += com.google.protobuf.CodedOutputStream
6793  .computeBoolSize(132, fillTightenedDomainsInResponse_);
6794  }
6795  if (((bitField3_ & 0x00800000) != 0)) {
6796  size += com.google.protobuf.CodedOutputStream
6797  .computeBoolSize(133, useCombinedNoOverlap_);
6798  }
6799  if (((bitField3_ & 0x00000400) != 0)) {
6800  size += com.google.protobuf.CodedOutputStream
6801  .computeBoolSize(134, deterministicParallelSearch_);
6802  }
6803  if (((bitField3_ & 0x01000000) != 0)) {
6804  size += com.google.protobuf.CodedOutputStream
6805  .computeBoolSize(135, catchSigintSignal_);
6806  }
6807  if (((bitField3_ & 0x00000100) != 0)) {
6808  size += com.google.protobuf.CodedOutputStream
6809  .computeBoolSize(136, interleaveSearch_);
6810  }
6811  if (((bitField3_ & 0x00020000) != 0)) {
6812  size += com.google.protobuf.CodedOutputStream
6813  .computeBoolSize(137, diversifyLnsParams_);
6814  }
6815  if (((bitField1_ & 0x00200000) != 0)) {
6816  size += com.google.protobuf.CodedOutputStream
6817  .computeInt32Size(138, maxPresolveIterations_);
6818  }
6819  if (((bitField3_ & 0x00400000) != 0)) {
6820  size += com.google.protobuf.CodedOutputStream
6821  .computeBoolSize(139, useBranchingInLp_);
6822  }
6823  if (((bitField1_ & 0x02000000) != 0)) {
6824  size += com.google.protobuf.CodedOutputStream
6825  .computeBoolSize(140, expandElementConstraints_);
6826  }
6827  if (((bitField3_ & 0x00000200) != 0)) {
6828  size += com.google.protobuf.CodedOutputStream
6829  .computeBoolSize(141, reduceMemoryUsageInInterleaveMode_);
6830  }
6831  if (((bitField2_ & 0x10000000) != 0)) {
6832  size += com.google.protobuf.CodedOutputStream
6833  .computeInt64Size(142, probingPeriodAtRoot_);
6834  }
6835  if (((bitField1_ & 0x04000000) != 0)) {
6836  size += com.google.protobuf.CodedOutputStream
6837  .computeBoolSize(143, expandAutomatonConstraints_);
6838  }
6839  if (((bitField3_ & 0x02000000) != 0)) {
6840  size += com.google.protobuf.CodedOutputStream
6841  .computeBoolSize(144, useImpliedBounds_);
6842  }
6843  if (((bitField1_ & 0x08000000) != 0)) {
6844  size += com.google.protobuf.CodedOutputStream
6845  .computeDoubleSize(145, mergeNoOverlapWorkLimit_);
6846  }
6847  if (((bitField1_ & 0x10000000) != 0)) {
6848  size += com.google.protobuf.CodedOutputStream
6849  .computeDoubleSize(146, mergeAtMostOneWorkLimit_);
6850  }
6851  if (((bitField1_ & 0x20000000) != 0)) {
6852  size += com.google.protobuf.CodedOutputStream
6853  .computeInt32Size(147, presolveSubstitutionLevel_);
6854  }
6855  if (((bitField2_ & 0x00010000) != 0)) {
6856  size += com.google.protobuf.CodedOutputStream
6857  .computeInt32Size(148, maxAllDiffCutSize_);
6858  }
6859  if (((bitField3_ & 0x00000040) != 0)) {
6860  size += com.google.protobuf.CodedOutputStream
6861  .computeBoolSize(149, stopAfterPresolve_);
6862  }
6863  if (((bitField3_ & 0x00010000) != 0)) {
6864  size += com.google.protobuf.CodedOutputStream
6865  .computeBoolSize(150, useRelaxationLns_);
6866  }
6867  size += unknownFields.getSerializedSize();
6868  memoizedSize = size;
6869  return size;
6870  }
6871 
6872  @java.lang.Override
6873  public boolean equals(final java.lang.Object obj) {
6874  if (obj == this) {
6875  return true;
6876  }
6877  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
6878  return super.equals(obj);
6879  }
6881 
6882  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
6883  if (hasPreferredVariableOrder()) {
6884  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
6885  }
6886  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
6887  if (hasInitialPolarity()) {
6888  if (initialPolarity_ != other.initialPolarity_) return false;
6889  }
6890  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
6891  if (hasUsePhaseSaving()) {
6892  if (getUsePhaseSaving()
6893  != other.getUsePhaseSaving()) return false;
6894  }
6895  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
6896  if (hasRandomPolarityRatio()) {
6897  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
6898  != java.lang.Double.doubleToLongBits(
6899  other.getRandomPolarityRatio())) return false;
6900  }
6901  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
6902  if (hasRandomBranchesRatio()) {
6903  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
6904  != java.lang.Double.doubleToLongBits(
6905  other.getRandomBranchesRatio())) return false;
6906  }
6907  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
6908  if (hasUseErwaHeuristic()) {
6909  if (getUseErwaHeuristic()
6910  != other.getUseErwaHeuristic()) return false;
6911  }
6912  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
6914  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
6915  != java.lang.Double.doubleToLongBits(
6916  other.getInitialVariablesActivity())) return false;
6917  }
6918  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
6921  != other.getAlsoBumpVariablesInConflictReasons()) return false;
6922  }
6923  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
6924  if (hasMinimizationAlgorithm()) {
6925  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
6926  }
6927  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
6929  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
6930  }
6931  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
6934  != other.getSubsumptionDuringConflictAnalysis()) return false;
6935  }
6936  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
6937  if (hasClauseCleanupPeriod()) {
6939  != other.getClauseCleanupPeriod()) return false;
6940  }
6941  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
6942  if (hasClauseCleanupTarget()) {
6944  != other.getClauseCleanupTarget()) return false;
6945  }
6946  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
6948  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
6949  }
6950  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
6951  if (hasClauseCleanupLbdBound()) {
6953  != other.getClauseCleanupLbdBound()) return false;
6954  }
6955  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
6956  if (hasClauseCleanupOrdering()) {
6957  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
6958  }
6959  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
6960  if (hasPbCleanupIncrement()) {
6961  if (getPbCleanupIncrement()
6962  != other.getPbCleanupIncrement()) return false;
6963  }
6964  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
6965  if (hasPbCleanupRatio()) {
6966  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
6967  != java.lang.Double.doubleToLongBits(
6968  other.getPbCleanupRatio())) return false;
6969  }
6970  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
6973  != other.getMinimizeWithPropagationRestartPeriod()) return false;
6974  }
6975  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
6978  != other.getMinimizeWithPropagationNumDecisions()) return false;
6979  }
6980  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
6981  if (hasVariableActivityDecay()) {
6982  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
6983  != java.lang.Double.doubleToLongBits(
6984  other.getVariableActivityDecay())) return false;
6985  }
6986  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6988  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6989  != java.lang.Double.doubleToLongBits(
6990  other.getMaxVariableActivityValue())) return false;
6991  }
6992  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6993  if (hasGlucoseMaxDecay()) {
6994  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6995  != java.lang.Double.doubleToLongBits(
6996  other.getGlucoseMaxDecay())) return false;
6997  }
6998  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
6999  if (hasGlucoseDecayIncrement()) {
7000  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
7001  != java.lang.Double.doubleToLongBits(
7002  other.getGlucoseDecayIncrement())) return false;
7003  }
7004  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
7007  != other.getGlucoseDecayIncrementPeriod()) return false;
7008  }
7009  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
7010  if (hasClauseActivityDecay()) {
7011  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
7012  != java.lang.Double.doubleToLongBits(
7013  other.getClauseActivityDecay())) return false;
7014  }
7015  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
7016  if (hasMaxClauseActivityValue()) {
7017  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
7018  != java.lang.Double.doubleToLongBits(
7019  other.getMaxClauseActivityValue())) return false;
7020  }
7021  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
7022  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
7025  .equals(other.getDefaultRestartAlgorithms())) return false;
7026  }
7027  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
7028  if (hasRestartPeriod()) {
7029  if (getRestartPeriod()
7030  != other.getRestartPeriod()) return false;
7031  }
7032  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
7035  != other.getRestartRunningWindowSize()) return false;
7036  }
7037  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
7038  if (hasRestartDlAverageRatio()) {
7039  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
7040  != java.lang.Double.doubleToLongBits(
7041  other.getRestartDlAverageRatio())) return false;
7042  }
7043  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
7044  if (hasRestartLbdAverageRatio()) {
7045  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
7046  != java.lang.Double.doubleToLongBits(
7047  other.getRestartLbdAverageRatio())) return false;
7048  }
7049  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
7050  if (hasUseBlockingRestart()) {
7051  if (getUseBlockingRestart()
7052  != other.getUseBlockingRestart()) return false;
7053  }
7054  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
7057  != other.getBlockingRestartWindowSize()) return false;
7058  }
7059  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
7061  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
7062  != java.lang.Double.doubleToLongBits(
7063  other.getBlockingRestartMultiplier())) return false;
7064  }
7065  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
7068  != other.getNumConflictsBeforeStrategyChanges()) return false;
7069  }
7070  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
7072  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
7073  != java.lang.Double.doubleToLongBits(
7074  other.getStrategyChangeIncreaseRatio())) return false;
7075  }
7076  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
7077  if (hasMaxTimeInSeconds()) {
7078  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
7079  != java.lang.Double.doubleToLongBits(
7080  other.getMaxTimeInSeconds())) return false;
7081  }
7082  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
7083  if (hasMaxDeterministicTime()) {
7084  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
7085  != java.lang.Double.doubleToLongBits(
7086  other.getMaxDeterministicTime())) return false;
7087  }
7088  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
7089  if (hasMaxNumberOfConflicts()) {
7091  != other.getMaxNumberOfConflicts()) return false;
7092  }
7093  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
7094  if (hasMaxMemoryInMb()) {
7095  if (getMaxMemoryInMb()
7096  != other.getMaxMemoryInMb()) return false;
7097  }
7098  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
7101  != other.getTreatBinaryClausesSeparately()) return false;
7102  }
7103  if (hasRandomSeed() != other.hasRandomSeed()) return false;
7104  if (hasRandomSeed()) {
7105  if (getRandomSeed()
7106  != other.getRandomSeed()) return false;
7107  }
7108  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
7109  if (hasLogSearchProgress()) {
7110  if (getLogSearchProgress()
7111  != other.getLogSearchProgress()) return false;
7112  }
7113  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
7114  if (hasUsePbResolution()) {
7115  if (getUsePbResolution()
7116  != other.getUsePbResolution()) return false;
7117  }
7118  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
7121  != other.getMinimizeReductionDuringPbResolution()) return false;
7122  }
7123  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
7126  != other.getCountAssumptionLevelsInLbd()) return false;
7127  }
7128  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
7129  if (hasPresolveBveThreshold()) {
7131  != other.getPresolveBveThreshold()) return false;
7132  }
7133  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
7136  != other.getPresolveBveClauseWeight()) return false;
7137  }
7138  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
7140  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
7141  != java.lang.Double.doubleToLongBits(
7142  other.getPresolveProbingDeterministicTimeLimit())) return false;
7143  }
7144  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
7145  if (hasPresolveBlockedClause()) {
7147  != other.getPresolveBlockedClause()) return false;
7148  }
7149  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
7150  if (hasPresolveUseBva()) {
7151  if (getPresolveUseBva()
7152  != other.getPresolveUseBva()) return false;
7153  }
7154  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
7155  if (hasPresolveBvaThreshold()) {
7157  != other.getPresolveBvaThreshold()) return false;
7158  }
7159  if (hasMaxPresolveIterations() != other.hasMaxPresolveIterations()) return false;
7160  if (hasMaxPresolveIterations()) {
7162  != other.getMaxPresolveIterations()) return false;
7163  }
7164  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
7165  if (hasCpModelPresolve()) {
7166  if (getCpModelPresolve()
7167  != other.getCpModelPresolve()) return false;
7168  }
7169  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
7170  if (hasCpModelProbingLevel()) {
7172  != other.getCpModelProbingLevel()) return false;
7173  }
7174  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
7175  if (hasCpModelUseSatPresolve()) {
7177  != other.getCpModelUseSatPresolve()) return false;
7178  }
7179  if (hasExpandElementConstraints() != other.hasExpandElementConstraints()) return false;
7182  != other.getExpandElementConstraints()) return false;
7183  }
7184  if (hasExpandAutomatonConstraints() != other.hasExpandAutomatonConstraints()) return false;
7187  != other.getExpandAutomatonConstraints()) return false;
7188  }
7189  if (hasMergeNoOverlapWorkLimit() != other.hasMergeNoOverlapWorkLimit()) return false;
7191  if (java.lang.Double.doubleToLongBits(getMergeNoOverlapWorkLimit())
7192  != java.lang.Double.doubleToLongBits(
7193  other.getMergeNoOverlapWorkLimit())) return false;
7194  }
7195  if (hasMergeAtMostOneWorkLimit() != other.hasMergeAtMostOneWorkLimit()) return false;
7197  if (java.lang.Double.doubleToLongBits(getMergeAtMostOneWorkLimit())
7198  != java.lang.Double.doubleToLongBits(
7199  other.getMergeAtMostOneWorkLimit())) return false;
7200  }
7201  if (hasPresolveSubstitutionLevel() != other.hasPresolveSubstitutionLevel()) return false;
7204  != other.getPresolveSubstitutionLevel()) return false;
7205  }
7206  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
7207  if (hasUseOptimizationHints()) {
7209  != other.getUseOptimizationHints()) return false;
7210  }
7211  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
7212  if (hasMinimizeCore()) {
7213  if (getMinimizeCore()
7214  != other.getMinimizeCore()) return false;
7215  }
7216  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
7217  if (hasFindMultipleCores()) {
7218  if (getFindMultipleCores()
7219  != other.getFindMultipleCores()) return false;
7220  }
7221  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
7222  if (hasCoverOptimization()) {
7223  if (getCoverOptimization()
7224  != other.getCoverOptimization()) return false;
7225  }
7226  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
7227  if (hasMaxSatAssumptionOrder()) {
7228  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
7229  }
7230  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
7233  != other.getMaxSatReverseAssumptionOrder()) return false;
7234  }
7235  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
7236  if (hasMaxSatStratification()) {
7237  if (maxSatStratification_ != other.maxSatStratification_) return false;
7238  }
7239  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
7242  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
7243  }
7244  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
7247  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
7248  }
7249  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
7252  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
7253  }
7254  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
7257  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
7258  }
7259  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
7260  if (hasLinearizationLevel()) {
7261  if (getLinearizationLevel()
7262  != other.getLinearizationLevel()) return false;
7263  }
7264  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
7265  if (hasBooleanEncodingLevel()) {
7267  != other.getBooleanEncodingLevel()) return false;
7268  }
7269  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
7270  if (hasMaxNumCuts()) {
7271  if (getMaxNumCuts()
7272  != other.getMaxNumCuts()) return false;
7273  }
7274  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
7275  if (hasOnlyAddCutsAtLevelZero()) {
7277  != other.getOnlyAddCutsAtLevelZero()) return false;
7278  }
7279  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
7280  if (hasAddKnapsackCuts()) {
7281  if (getAddKnapsackCuts()
7282  != other.getAddKnapsackCuts()) return false;
7283  }
7284  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
7285  if (hasAddCgCuts()) {
7286  if (getAddCgCuts()
7287  != other.getAddCgCuts()) return false;
7288  }
7289  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
7290  if (hasAddMirCuts()) {
7291  if (getAddMirCuts()
7292  != other.getAddMirCuts()) return false;
7293  }
7294  if (hasMaxAllDiffCutSize() != other.hasMaxAllDiffCutSize()) return false;
7295  if (hasMaxAllDiffCutSize()) {
7296  if (getMaxAllDiffCutSize()
7297  != other.getMaxAllDiffCutSize()) return false;
7298  }
7299  if (hasUseMirRounding() != other.hasUseMirRounding()) return false;
7300  if (hasUseMirRounding()) {
7301  if (getUseMirRounding()
7302  != other.getUseMirRounding()) return false;
7303  }
7304  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
7307  != other.getMaxIntegerRoundingScaling()) return false;
7308  }
7309  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
7310  if (hasAddLpConstraintsLazily()) {
7312  != other.getAddLpConstraintsLazily()) return false;
7313  }
7314  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
7316  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
7317  != java.lang.Double.doubleToLongBits(
7318  other.getMinOrthogonalityForLpConstraints())) return false;
7319  }
7320  if (hasMaxConsecutiveInactiveCount() != other.hasMaxConsecutiveInactiveCount()) return false;
7323  != other.getMaxConsecutiveInactiveCount()) return false;
7324  }
7325  if (hasNewConstraintsBatchSize() != other.hasNewConstraintsBatchSize()) return false;
7328  != other.getNewConstraintsBatchSize()) return false;
7329  }
7330  if (hasSearchBranching() != other.hasSearchBranching()) return false;
7331  if (hasSearchBranching()) {
7332  if (searchBranching_ != other.searchBranching_) return false;
7333  }
7334  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
7337  != other.getExploitIntegerLpSolution()) return false;
7338  }
7339  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
7340  if (hasExploitAllLpSolution()) {
7342  != other.getExploitAllLpSolution()) return false;
7343  }
7344  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
7345  if (hasExploitBestSolution()) {
7347  != other.getExploitBestSolution()) return false;
7348  }
7349  if (hasExploitObjective() != other.hasExploitObjective()) return false;
7350  if (hasExploitObjective()) {
7351  if (getExploitObjective()
7352  != other.getExploitObjective()) return false;
7353  }
7354  if (hasProbingPeriodAtRoot() != other.hasProbingPeriodAtRoot()) return false;
7355  if (hasProbingPeriodAtRoot()) {
7357  != other.getProbingPeriodAtRoot()) return false;
7358  }
7359  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
7362  != other.getPseudoCostReliabilityThreshold()) return false;
7363  }
7364  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
7365  if (hasOptimizeWithCore()) {
7366  if (getOptimizeWithCore()
7367  != other.getOptimizeWithCore()) return false;
7368  }
7369  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
7372  != other.getBinarySearchNumConflicts()) return false;
7373  }
7374  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
7375  if (hasOptimizeWithMaxHs()) {
7376  if (getOptimizeWithMaxHs()
7377  != other.getOptimizeWithMaxHs()) return false;
7378  }
7379  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
7380  if (hasEnumerateAllSolutions()) {
7382  != other.getEnumerateAllSolutions()) return false;
7383  }
7384  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
7387  != other.getFillTightenedDomainsInResponse()) return false;
7388  }
7389  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
7392  != other.getInstantiateAllVariables()) return false;
7393  }
7394  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
7397  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
7398  }
7399  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
7400  if (hasStopAfterFirstSolution()) {
7402  != other.getStopAfterFirstSolution()) return false;
7403  }
7404  if (hasStopAfterPresolve() != other.hasStopAfterPresolve()) return false;
7405  if (hasStopAfterPresolve()) {
7406  if (getStopAfterPresolve()
7407  != other.getStopAfterPresolve()) return false;
7408  }
7409  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
7410  if (hasNumSearchWorkers()) {
7411  if (getNumSearchWorkers()
7412  != other.getNumSearchWorkers()) return false;
7413  }
7414  if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
7415  if (hasInterleaveSearch()) {
7416  if (getInterleaveSearch()
7417  != other.getInterleaveSearch()) return false;
7418  }
7419  if (hasReduceMemoryUsageInInterleaveMode() != other.hasReduceMemoryUsageInInterleaveMode()) return false;
7422  != other.getReduceMemoryUsageInInterleaveMode()) return false;
7423  }
7424  if (hasDeterministicParallelSearch() != other.hasDeterministicParallelSearch()) return false;
7427  != other.getDeterministicParallelSearch()) return false;
7428  }
7429  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
7430  if (hasShareObjectiveBounds()) {
7432  != other.getShareObjectiveBounds()) return false;
7433  }
7434  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
7435  if (hasShareLevelZeroBounds()) {
7437  != other.getShareLevelZeroBounds()) return false;
7438  }
7439  if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
7440  if (hasUseLnsOnly()) {
7441  if (getUseLnsOnly()
7442  != other.getUseLnsOnly()) return false;
7443  }
7444  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
7447  != other.getLnsFocusOnDecisionVariables()) return false;
7448  }
7449  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
7450  if (hasUseRinsLns()) {
7451  if (getUseRinsLns()
7452  != other.getUseRinsLns()) return false;
7453  }
7454  if (hasUseRelaxationLns() != other.hasUseRelaxationLns()) return false;
7455  if (hasUseRelaxationLns()) {
7456  if (getUseRelaxationLns()
7457  != other.getUseRelaxationLns()) return false;
7458  }
7459  if (hasDiversifyLnsParams() != other.hasDiversifyLnsParams()) return false;
7460  if (hasDiversifyLnsParams()) {
7461  if (getDiversifyLnsParams()
7462  != other.getDiversifyLnsParams()) return false;
7463  }
7464  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
7465  if (hasRandomizeSearch()) {
7466  if (getRandomizeSearch()
7467  != other.getRandomizeSearch()) return false;
7468  }
7469  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
7472  != other.getSearchRandomizationTolerance()) return false;
7473  }
7474  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
7475  if (hasUseOptionalVariables()) {
7477  != other.getUseOptionalVariables()) return false;
7478  }
7479  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
7480  if (hasUseExactLpReason()) {
7481  if (getUseExactLpReason()
7482  != other.getUseExactLpReason()) return false;
7483  }
7484  if (hasUseBranchingInLp() != other.hasUseBranchingInLp()) return false;
7485  if (hasUseBranchingInLp()) {
7486  if (getUseBranchingInLp()
7487  != other.getUseBranchingInLp()) return false;
7488  }
7489  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
7490  if (hasUseCombinedNoOverlap()) {
7492  != other.getUseCombinedNoOverlap()) return false;
7493  }
7494  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
7495  if (hasCatchSigintSignal()) {
7496  if (getCatchSigintSignal()
7497  != other.getCatchSigintSignal()) return false;
7498  }
7499  if (hasUseImpliedBounds() != other.hasUseImpliedBounds()) return false;
7500  if (hasUseImpliedBounds()) {
7501  if (getUseImpliedBounds()
7502  != other.getUseImpliedBounds()) return false;
7503  }
7504  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
7505  if (hasMipMaxBound()) {
7506  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
7507  != java.lang.Double.doubleToLongBits(
7508  other.getMipMaxBound())) return false;
7509  }
7510  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
7511  if (hasMipVarScaling()) {
7512  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
7513  != java.lang.Double.doubleToLongBits(
7514  other.getMipVarScaling())) return false;
7515  }
7516  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
7517  if (hasMipWantedPrecision()) {
7518  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
7519  != java.lang.Double.doubleToLongBits(
7520  other.getMipWantedPrecision())) return false;
7521  }
7522  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
7523  if (hasMipMaxActivityExponent()) {
7525  != other.getMipMaxActivityExponent()) return false;
7526  }
7527  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
7528  if (hasMipCheckPrecision()) {
7529  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
7530  != java.lang.Double.doubleToLongBits(
7531  other.getMipCheckPrecision())) return false;
7532  }
7533  if (!unknownFields.equals(other.unknownFields)) return false;
7534  return true;
7535  }
7536 
7537  @java.lang.Override
7538  public int hashCode() {
7539  if (memoizedHashCode != 0) {
7540  return memoizedHashCode;
7541  }
7542  int hash = 41;
7543  hash = (19 * hash) + getDescriptor().hashCode();
7544  if (hasPreferredVariableOrder()) {
7545  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
7546  hash = (53 * hash) + preferredVariableOrder_;
7547  }
7548  if (hasInitialPolarity()) {
7549  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
7550  hash = (53 * hash) + initialPolarity_;
7551  }
7552  if (hasUsePhaseSaving()) {
7553  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
7554  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7555  getUsePhaseSaving());
7556  }
7557  if (hasRandomPolarityRatio()) {
7558  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
7559  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7560  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
7561  }
7562  if (hasRandomBranchesRatio()) {
7563  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
7564  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7565  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
7566  }
7567  if (hasUseErwaHeuristic()) {
7568  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
7569  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7571  }
7573  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
7574  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7575  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
7576  }
7579  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7581  }
7582  if (hasMinimizationAlgorithm()) {
7583  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
7584  hash = (53 * hash) + minimizationAlgorithm_;
7585  }
7587  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
7588  hash = (53 * hash) + binaryMinimizationAlgorithm_;
7589  }
7592  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7594  }
7595  if (hasClauseCleanupPeriod()) {
7596  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
7597  hash = (53 * hash) + getClauseCleanupPeriod();
7598  }
7599  if (hasClauseCleanupTarget()) {
7600  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
7601  hash = (53 * hash) + getClauseCleanupTarget();
7602  }
7604  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
7605  hash = (53 * hash) + clauseCleanupProtection_;
7606  }
7607  if (hasClauseCleanupLbdBound()) {
7608  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
7609  hash = (53 * hash) + getClauseCleanupLbdBound();
7610  }
7611  if (hasClauseCleanupOrdering()) {
7612  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
7613  hash = (53 * hash) + clauseCleanupOrdering_;
7614  }
7615  if (hasPbCleanupIncrement()) {
7616  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
7617  hash = (53 * hash) + getPbCleanupIncrement();
7618  }
7619  if (hasPbCleanupRatio()) {
7620  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
7621  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7622  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
7623  }
7626  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
7627  }
7630  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
7631  }
7632  if (hasVariableActivityDecay()) {
7633  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
7634  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7635  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
7636  }
7638  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
7639  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7640  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
7641  }
7642  if (hasGlucoseMaxDecay()) {
7643  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
7644  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7645  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
7646  }
7647  if (hasGlucoseDecayIncrement()) {
7648  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
7649  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7650  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
7651  }
7653  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
7654  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
7655  }
7656  if (hasClauseActivityDecay()) {
7657  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
7658  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7659  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
7660  }
7661  if (hasMaxClauseActivityValue()) {
7662  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
7663  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7664  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
7665  }
7666  if (getRestartAlgorithmsCount() > 0) {
7667  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
7668  hash = (53 * hash) + restartAlgorithms_.hashCode();
7669  }
7671  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
7672  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
7673  }
7674  if (hasRestartPeriod()) {
7675  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
7676  hash = (53 * hash) + getRestartPeriod();
7677  }
7679  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
7680  hash = (53 * hash) + getRestartRunningWindowSize();
7681  }
7682  if (hasRestartDlAverageRatio()) {
7683  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
7684  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7685  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
7686  }
7687  if (hasRestartLbdAverageRatio()) {
7688  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
7689  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7690  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
7691  }
7692  if (hasUseBlockingRestart()) {
7693  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
7694  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7696  }
7698  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
7699  hash = (53 * hash) + getBlockingRestartWindowSize();
7700  }
7702  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
7703  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7704  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
7705  }
7708  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
7709  }
7711  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
7712  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7713  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
7714  }
7715  if (hasMaxTimeInSeconds()) {
7716  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
7717  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7718  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
7719  }
7720  if (hasMaxDeterministicTime()) {
7721  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
7722  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7723  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
7724  }
7725  if (hasMaxNumberOfConflicts()) {
7726  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
7727  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7729  }
7730  if (hasMaxMemoryInMb()) {
7731  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
7732  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7733  getMaxMemoryInMb());
7734  }
7736  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
7737  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7739  }
7740  if (hasRandomSeed()) {
7741  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
7742  hash = (53 * hash) + getRandomSeed();
7743  }
7744  if (hasLogSearchProgress()) {
7745  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
7746  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7748  }
7749  if (hasUsePbResolution()) {
7750  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
7751  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7752  getUsePbResolution());
7753  }
7756  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7758  }
7760  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
7761  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7763  }
7764  if (hasPresolveBveThreshold()) {
7765  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
7766  hash = (53 * hash) + getPresolveBveThreshold();
7767  }
7769  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
7770  hash = (53 * hash) + getPresolveBveClauseWeight();
7771  }
7774  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7775  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
7776  }
7777  if (hasPresolveBlockedClause()) {
7778  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
7779  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7781  }
7782  if (hasPresolveUseBva()) {
7783  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
7784  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7785  getPresolveUseBva());
7786  }
7787  if (hasPresolveBvaThreshold()) {
7788  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
7789  hash = (53 * hash) + getPresolveBvaThreshold();
7790  }
7791  if (hasMaxPresolveIterations()) {
7792  hash = (37 * hash) + MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER;
7793  hash = (53 * hash) + getMaxPresolveIterations();
7794  }
7795  if (hasCpModelPresolve()) {
7796  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
7797  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7798  getCpModelPresolve());
7799  }
7800  if (hasCpModelProbingLevel()) {
7801  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
7802  hash = (53 * hash) + getCpModelProbingLevel();
7803  }
7804  if (hasCpModelUseSatPresolve()) {
7805  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
7806  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7808  }
7810  hash = (37 * hash) + EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER;
7811  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7813  }
7815  hash = (37 * hash) + EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER;
7816  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7818  }
7820  hash = (37 * hash) + MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER;
7821  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7822  java.lang.Double.doubleToLongBits(getMergeNoOverlapWorkLimit()));
7823  }
7825  hash = (37 * hash) + MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER;
7826  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7827  java.lang.Double.doubleToLongBits(getMergeAtMostOneWorkLimit()));
7828  }
7830  hash = (37 * hash) + PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER;
7831  hash = (53 * hash) + getPresolveSubstitutionLevel();
7832  }
7833  if (hasUseOptimizationHints()) {
7834  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
7835  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7837  }
7838  if (hasMinimizeCore()) {
7839  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
7840  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7841  getMinimizeCore());
7842  }
7843  if (hasFindMultipleCores()) {
7844  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
7845  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7847  }
7848  if (hasCoverOptimization()) {
7849  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
7850  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7852  }
7853  if (hasMaxSatAssumptionOrder()) {
7854  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
7855  hash = (53 * hash) + maxSatAssumptionOrder_;
7856  }
7858  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
7859  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7861  }
7862  if (hasMaxSatStratification()) {
7863  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
7864  hash = (53 * hash) + maxSatStratification_;
7865  }
7868  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7870  }
7873  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7875  }
7878  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7880  }
7883  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7885  }
7886  if (hasLinearizationLevel()) {
7887  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
7888  hash = (53 * hash) + getLinearizationLevel();
7889  }
7890  if (hasBooleanEncodingLevel()) {
7891  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
7892  hash = (53 * hash) + getBooleanEncodingLevel();
7893  }
7894  if (hasMaxNumCuts()) {
7895  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
7896  hash = (53 * hash) + getMaxNumCuts();
7897  }
7898  if (hasOnlyAddCutsAtLevelZero()) {
7899  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
7900  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7902  }
7903  if (hasAddKnapsackCuts()) {
7904  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
7905  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7906  getAddKnapsackCuts());
7907  }
7908  if (hasAddCgCuts()) {
7909  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
7910  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7911  getAddCgCuts());
7912  }
7913  if (hasAddMirCuts()) {
7914  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
7915  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7916  getAddMirCuts());
7917  }
7918  if (hasMaxAllDiffCutSize()) {
7919  hash = (37 * hash) + MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER;
7920  hash = (53 * hash) + getMaxAllDiffCutSize();
7921  }
7922  if (hasUseMirRounding()) {
7923  hash = (37 * hash) + USE_MIR_ROUNDING_FIELD_NUMBER;
7924  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7925  getUseMirRounding());
7926  }
7928  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
7929  hash = (53 * hash) + getMaxIntegerRoundingScaling();
7930  }
7931  if (hasAddLpConstraintsLazily()) {
7932  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
7933  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7935  }
7938  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7939  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
7940  }
7942  hash = (37 * hash) + MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER;
7943  hash = (53 * hash) + getMaxConsecutiveInactiveCount();
7944  }
7946  hash = (37 * hash) + NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER;
7947  hash = (53 * hash) + getNewConstraintsBatchSize();
7948  }
7949  if (hasSearchBranching()) {
7950  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
7951  hash = (53 * hash) + searchBranching_;
7952  }
7954  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
7955  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7957  }
7958  if (hasExploitAllLpSolution()) {
7959  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
7960  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7962  }
7963  if (hasExploitBestSolution()) {
7964  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
7965  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7967  }
7968  if (hasExploitObjective()) {
7969  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
7970  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7972  }
7973  if (hasProbingPeriodAtRoot()) {
7974  hash = (37 * hash) + PROBING_PERIOD_AT_ROOT_FIELD_NUMBER;
7975  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7977  }
7980  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7982  }
7983  if (hasOptimizeWithCore()) {
7984  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
7985  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7987  }
7989  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
7990  hash = (53 * hash) + getBinarySearchNumConflicts();
7991  }
7992  if (hasOptimizeWithMaxHs()) {
7993  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
7994  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7996  }
7997  if (hasEnumerateAllSolutions()) {
7998  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
7999  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8001  }
8004  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8006  }
8008  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
8009  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8011  }
8014  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8016  }
8017  if (hasStopAfterFirstSolution()) {
8018  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
8019  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8021  }
8022  if (hasStopAfterPresolve()) {
8023  hash = (37 * hash) + STOP_AFTER_PRESOLVE_FIELD_NUMBER;
8024  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8026  }
8027  if (hasNumSearchWorkers()) {
8028  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
8029  hash = (53 * hash) + getNumSearchWorkers();
8030  }
8031  if (hasInterleaveSearch()) {
8032  hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
8033  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8035  }
8038  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8040  }
8042  hash = (37 * hash) + DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER;
8043  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8045  }
8046  if (hasShareObjectiveBounds()) {
8047  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
8048  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8050  }
8051  if (hasShareLevelZeroBounds()) {
8052  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
8053  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8055  }
8056  if (hasUseLnsOnly()) {
8057  hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
8058  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8059  getUseLnsOnly());
8060  }
8062  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
8063  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8065  }
8066  if (hasUseRinsLns()) {
8067  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
8068  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8069  getUseRinsLns());
8070  }
8071  if (hasUseRelaxationLns()) {
8072  hash = (37 * hash) + USE_RELAXATION_LNS_FIELD_NUMBER;
8073  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8075  }
8076  if (hasDiversifyLnsParams()) {
8077  hash = (37 * hash) + DIVERSIFY_LNS_PARAMS_FIELD_NUMBER;
8078  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8080  }
8081  if (hasRandomizeSearch()) {
8082  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
8083  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8084  getRandomizeSearch());
8085  }
8087  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
8088  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8090  }
8091  if (hasUseOptionalVariables()) {
8092  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
8093  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8095  }
8096  if (hasUseExactLpReason()) {
8097  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
8098  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8100  }
8101  if (hasUseBranchingInLp()) {
8102  hash = (37 * hash) + USE_BRANCHING_IN_LP_FIELD_NUMBER;
8103  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8105  }
8106  if (hasUseCombinedNoOverlap()) {
8107  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
8108  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8110  }
8111  if (hasCatchSigintSignal()) {
8112  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
8113  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8115  }
8116  if (hasUseImpliedBounds()) {
8117  hash = (37 * hash) + USE_IMPLIED_BOUNDS_FIELD_NUMBER;
8118  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8120  }
8121  if (hasMipMaxBound()) {
8122  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
8123  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8124  java.lang.Double.doubleToLongBits(getMipMaxBound()));
8125  }
8126  if (hasMipVarScaling()) {
8127  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
8128  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8129  java.lang.Double.doubleToLongBits(getMipVarScaling()));
8130  }
8131  if (hasMipWantedPrecision()) {
8132  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
8133  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8134  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
8135  }
8136  if (hasMipMaxActivityExponent()) {
8137  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
8138  hash = (53 * hash) + getMipMaxActivityExponent();
8139  }
8140  if (hasMipCheckPrecision()) {
8141  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
8142  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8143  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
8144  }
8145  hash = (29 * hash) + unknownFields.hashCode();
8146  memoizedHashCode = hash;
8147  return hash;
8148  }
8149 
8151  java.nio.ByteBuffer data)
8152  throws com.google.protobuf.InvalidProtocolBufferException {
8153  return PARSER.parseFrom(data);
8154  }
8156  java.nio.ByteBuffer data,
8157  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8158  throws com.google.protobuf.InvalidProtocolBufferException {
8159  return PARSER.parseFrom(data, extensionRegistry);
8160  }
8162  com.google.protobuf.ByteString data)
8163  throws com.google.protobuf.InvalidProtocolBufferException {
8164  return PARSER.parseFrom(data);
8165  }
8167  com.google.protobuf.ByteString data,
8168  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8169  throws com.google.protobuf.InvalidProtocolBufferException {
8170  return PARSER.parseFrom(data, extensionRegistry);
8171  }
8172  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
8173  throws com.google.protobuf.InvalidProtocolBufferException {
8174  return PARSER.parseFrom(data);
8175  }
8177  byte[] data,
8178  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8179  throws com.google.protobuf.InvalidProtocolBufferException {
8180  return PARSER.parseFrom(data, extensionRegistry);
8181  }
8182  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
8183  throws java.io.IOException {
8184  return com.google.protobuf.GeneratedMessageV3
8185  .parseWithIOException(PARSER, input);
8186  }
8188  java.io.InputStream input,
8189  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8190  throws java.io.IOException {
8191  return com.google.protobuf.GeneratedMessageV3
8192  .parseWithIOException(PARSER, input, extensionRegistry);
8193  }
8194  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
8195  throws java.io.IOException {
8196  return com.google.protobuf.GeneratedMessageV3
8197  .parseDelimitedWithIOException(PARSER, input);
8198  }
8200  java.io.InputStream input,
8201  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8202  throws java.io.IOException {
8203  return com.google.protobuf.GeneratedMessageV3
8204  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
8205  }
8207  com.google.protobuf.CodedInputStream input)
8208  throws java.io.IOException {
8209  return com.google.protobuf.GeneratedMessageV3
8210  .parseWithIOException(PARSER, input);
8211  }
8213  com.google.protobuf.CodedInputStream input,
8214  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8215  throws java.io.IOException {
8216  return com.google.protobuf.GeneratedMessageV3
8217  .parseWithIOException(PARSER, input, extensionRegistry);
8218  }
8219 
8220  @java.lang.Override
8221  public Builder newBuilderForType() { return newBuilder(); }
8222  public static Builder newBuilder() {
8223  return DEFAULT_INSTANCE.toBuilder();
8224  }
8225  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
8226  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
8227  }
8228  @java.lang.Override
8229  public Builder toBuilder() {
8230  return this == DEFAULT_INSTANCE
8231  ? new Builder() : new Builder().mergeFrom(this);
8232  }
8233 
8234  @java.lang.Override
8236  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
8237  Builder builder = new Builder(parent);
8238  return builder;
8239  }
8249  public static final class Builder extends
8250  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
8251  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
8252  com.google.ortools.sat.SatParametersOrBuilder {
8253  public static final com.google.protobuf.Descriptors.Descriptor
8255  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
8256  }
8257 
8258  @java.lang.Override
8259  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
8261  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
8262  .ensureFieldAccessorsInitialized(
8264  }
8265 
8266  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
8267  private Builder() {
8268  maybeForceBuilderInitialization();
8269  }
8270 
8271  private Builder(
8272  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
8273  super(parent);
8274  maybeForceBuilderInitialization();
8275  }
8276  private void maybeForceBuilderInitialization() {
8277  if (com.google.protobuf.GeneratedMessageV3
8278  .alwaysUseFieldBuilders) {
8279  }
8280  }
8281  @java.lang.Override
8282  public Builder clear() {
8283  super.clear();
8284  preferredVariableOrder_ = 0;
8285  bitField0_ = (bitField0_ & ~0x00000001);
8286  initialPolarity_ = 1;
8287  bitField0_ = (bitField0_ & ~0x00000002);
8288  usePhaseSaving_ = true;
8289  bitField0_ = (bitField0_ & ~0x00000004);
8290  randomPolarityRatio_ = 0D;
8291  bitField0_ = (bitField0_ & ~0x00000008);
8292  randomBranchesRatio_ = 0D;
8293  bitField0_ = (bitField0_ & ~0x00000010);
8294  useErwaHeuristic_ = false;
8295  bitField0_ = (bitField0_ & ~0x00000020);
8296  initialVariablesActivity_ = 0D;
8297  bitField0_ = (bitField0_ & ~0x00000040);
8298  alsoBumpVariablesInConflictReasons_ = false;
8299  bitField0_ = (bitField0_ & ~0x00000080);
8300  minimizationAlgorithm_ = 2;
8301  bitField0_ = (bitField0_ & ~0x00000100);
8302  binaryMinimizationAlgorithm_ = 1;
8303  bitField0_ = (bitField0_ & ~0x00000200);
8304  subsumptionDuringConflictAnalysis_ = true;
8305  bitField0_ = (bitField0_ & ~0x00000400);
8306  clauseCleanupPeriod_ = 10000;
8307  bitField0_ = (bitField0_ & ~0x00000800);
8308  clauseCleanupTarget_ = 10000;
8309  bitField0_ = (bitField0_ & ~0x00001000);
8310  clauseCleanupProtection_ = 0;
8311  bitField0_ = (bitField0_ & ~0x00002000);
8312  clauseCleanupLbdBound_ = 5;
8313  bitField0_ = (bitField0_ & ~0x00004000);
8314  clauseCleanupOrdering_ = 0;
8315  bitField0_ = (bitField0_ & ~0x00008000);
8316  pbCleanupIncrement_ = 200;
8317  bitField0_ = (bitField0_ & ~0x00010000);
8318  pbCleanupRatio_ = 0.5D;
8319  bitField0_ = (bitField0_ & ~0x00020000);
8320  minimizeWithPropagationRestartPeriod_ = 10;
8321  bitField0_ = (bitField0_ & ~0x00040000);
8322  minimizeWithPropagationNumDecisions_ = 1000;
8323  bitField0_ = (bitField0_ & ~0x00080000);
8324  variableActivityDecay_ = 0.8D;
8325  bitField0_ = (bitField0_ & ~0x00100000);
8326  maxVariableActivityValue_ = 1e+100D;
8327  bitField0_ = (bitField0_ & ~0x00200000);
8328  glucoseMaxDecay_ = 0.95D;
8329  bitField0_ = (bitField0_ & ~0x00400000);
8330  glucoseDecayIncrement_ = 0.01D;
8331  bitField0_ = (bitField0_ & ~0x00800000);
8332  glucoseDecayIncrementPeriod_ = 5000;
8333  bitField0_ = (bitField0_ & ~0x01000000);
8334  clauseActivityDecay_ = 0.999D;
8335  bitField0_ = (bitField0_ & ~0x02000000);
8336  maxClauseActivityValue_ = 1e+20D;
8337  bitField0_ = (bitField0_ & ~0x04000000);
8338  restartAlgorithms_ = java.util.Collections.emptyList();
8339  bitField0_ = (bitField0_ & ~0x08000000);
8340  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
8341  bitField0_ = (bitField0_ & ~0x10000000);
8342  restartPeriod_ = 50;
8343  bitField0_ = (bitField0_ & ~0x20000000);
8344  restartRunningWindowSize_ = 50;
8345  bitField0_ = (bitField0_ & ~0x40000000);
8346  restartDlAverageRatio_ = 1D;
8347  bitField0_ = (bitField0_ & ~0x80000000);
8348  restartLbdAverageRatio_ = 1D;
8349  bitField1_ = (bitField1_ & ~0x00000001);
8350  useBlockingRestart_ = false;
8351  bitField1_ = (bitField1_ & ~0x00000002);
8352  blockingRestartWindowSize_ = 5000;
8353  bitField1_ = (bitField1_ & ~0x00000004);
8354  blockingRestartMultiplier_ = 1.4D;
8355  bitField1_ = (bitField1_ & ~0x00000008);
8356  numConflictsBeforeStrategyChanges_ = 0;
8357  bitField1_ = (bitField1_ & ~0x00000010);
8358  strategyChangeIncreaseRatio_ = 0D;
8359  bitField1_ = (bitField1_ & ~0x00000020);
8360  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
8361  bitField1_ = (bitField1_ & ~0x00000040);
8362  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
8363  bitField1_ = (bitField1_ & ~0x00000080);
8364  maxNumberOfConflicts_ = 9223372036854775807L;
8365  bitField1_ = (bitField1_ & ~0x00000100);
8366  maxMemoryInMb_ = 10000L;
8367  bitField1_ = (bitField1_ & ~0x00000200);
8368  treatBinaryClausesSeparately_ = true;
8369  bitField1_ = (bitField1_ & ~0x00000400);
8370  randomSeed_ = 1;
8371  bitField1_ = (bitField1_ & ~0x00000800);
8372  logSearchProgress_ = false;
8373  bitField1_ = (bitField1_ & ~0x00001000);
8374  usePbResolution_ = false;
8375  bitField1_ = (bitField1_ & ~0x00002000);
8376  minimizeReductionDuringPbResolution_ = false;
8377  bitField1_ = (bitField1_ & ~0x00004000);
8378  countAssumptionLevelsInLbd_ = true;
8379  bitField1_ = (bitField1_ & ~0x00008000);
8380  presolveBveThreshold_ = 500;
8381  bitField1_ = (bitField1_ & ~0x00010000);
8382  presolveBveClauseWeight_ = 3;
8383  bitField1_ = (bitField1_ & ~0x00020000);
8384  presolveProbingDeterministicTimeLimit_ = 30D;
8385  bitField1_ = (bitField1_ & ~0x00040000);
8386  presolveBlockedClause_ = true;
8387  bitField1_ = (bitField1_ & ~0x00080000);
8388  presolveUseBva_ = true;
8389  bitField1_ = (bitField1_ & ~0x00100000);
8390  presolveBvaThreshold_ = 1;
8391  bitField1_ = (bitField1_ & ~0x00200000);
8392  maxPresolveIterations_ = 3;
8393  bitField1_ = (bitField1_ & ~0x00400000);
8394  cpModelPresolve_ = true;
8395  bitField1_ = (bitField1_ & ~0x00800000);
8396  cpModelProbingLevel_ = 2;
8397  bitField1_ = (bitField1_ & ~0x01000000);
8398  cpModelUseSatPresolve_ = true;
8399  bitField1_ = (bitField1_ & ~0x02000000);
8400  expandElementConstraints_ = true;
8401  bitField1_ = (bitField1_ & ~0x04000000);
8402  expandAutomatonConstraints_ = true;
8403  bitField1_ = (bitField1_ & ~0x08000000);
8404  mergeNoOverlapWorkLimit_ = 1000000000000D;
8405  bitField1_ = (bitField1_ & ~0x10000000);
8406  mergeAtMostOneWorkLimit_ = 100000000D;
8407  bitField1_ = (bitField1_ & ~0x20000000);
8408  presolveSubstitutionLevel_ = 1;
8409  bitField1_ = (bitField1_ & ~0x40000000);
8410  useOptimizationHints_ = true;
8411  bitField1_ = (bitField1_ & ~0x80000000);
8412  minimizeCore_ = true;
8413  bitField2_ = (bitField2_ & ~0x00000001);
8414  findMultipleCores_ = true;
8415  bitField2_ = (bitField2_ & ~0x00000002);
8416  coverOptimization_ = true;
8417  bitField2_ = (bitField2_ & ~0x00000004);
8418  maxSatAssumptionOrder_ = 0;
8419  bitField2_ = (bitField2_ & ~0x00000008);
8420  maxSatReverseAssumptionOrder_ = false;
8421  bitField2_ = (bitField2_ & ~0x00000010);
8422  maxSatStratification_ = 1;
8423  bitField2_ = (bitField2_ & ~0x00000020);
8424  usePrecedencesInDisjunctiveConstraint_ = true;
8425  bitField2_ = (bitField2_ & ~0x00000040);
8426  useOverloadCheckerInCumulativeConstraint_ = false;
8427  bitField2_ = (bitField2_ & ~0x00000080);
8428  useTimetableEdgeFindingInCumulativeConstraint_ = false;
8429  bitField2_ = (bitField2_ & ~0x00000100);
8430  useDisjunctiveConstraintInCumulativeConstraint_ = true;
8431  bitField2_ = (bitField2_ & ~0x00000200);
8432  linearizationLevel_ = 1;
8433  bitField2_ = (bitField2_ & ~0x00000400);
8434  booleanEncodingLevel_ = 1;
8435  bitField2_ = (bitField2_ & ~0x00000800);
8436  maxNumCuts_ = 5000;
8437  bitField2_ = (bitField2_ & ~0x00001000);
8438  onlyAddCutsAtLevelZero_ = false;
8439  bitField2_ = (bitField2_ & ~0x00002000);
8440  addKnapsackCuts_ = false;
8441  bitField2_ = (bitField2_ & ~0x00004000);
8442  addCgCuts_ = false;
8443  bitField2_ = (bitField2_ & ~0x00008000);
8444  addMirCuts_ = true;
8445  bitField2_ = (bitField2_ & ~0x00010000);
8446  maxAllDiffCutSize_ = 7;
8447  bitField2_ = (bitField2_ & ~0x00020000);
8448  useMirRounding_ = true;
8449  bitField2_ = (bitField2_ & ~0x00040000);
8450  maxIntegerRoundingScaling_ = 600;
8451  bitField2_ = (bitField2_ & ~0x00080000);
8452  addLpConstraintsLazily_ = true;
8453  bitField2_ = (bitField2_ & ~0x00100000);
8454  minOrthogonalityForLpConstraints_ = 0D;
8455  bitField2_ = (bitField2_ & ~0x00200000);
8456  maxConsecutiveInactiveCount_ = 100;
8457  bitField2_ = (bitField2_ & ~0x00400000);
8458  newConstraintsBatchSize_ = 50;
8459  bitField2_ = (bitField2_ & ~0x00800000);
8460  searchBranching_ = 0;
8461  bitField2_ = (bitField2_ & ~0x01000000);
8462  exploitIntegerLpSolution_ = true;
8463  bitField2_ = (bitField2_ & ~0x02000000);
8464  exploitAllLpSolution_ = true;
8465  bitField2_ = (bitField2_ & ~0x04000000);
8466  exploitBestSolution_ = false;
8467  bitField2_ = (bitField2_ & ~0x08000000);
8468  exploitObjective_ = true;
8469  bitField2_ = (bitField2_ & ~0x10000000);
8470  probingPeriodAtRoot_ = 0L;
8471  bitField2_ = (bitField2_ & ~0x20000000);
8472  pseudoCostReliabilityThreshold_ = 100L;
8473  bitField2_ = (bitField2_ & ~0x40000000);
8474  optimizeWithCore_ = false;
8475  bitField2_ = (bitField2_ & ~0x80000000);
8476  binarySearchNumConflicts_ = -1;
8477  bitField3_ = (bitField3_ & ~0x00000001);
8478  optimizeWithMaxHs_ = false;
8479  bitField3_ = (bitField3_ & ~0x00000002);
8480  enumerateAllSolutions_ = false;
8481  bitField3_ = (bitField3_ & ~0x00000004);
8482  fillTightenedDomainsInResponse_ = false;
8483  bitField3_ = (bitField3_ & ~0x00000008);
8484  instantiateAllVariables_ = true;
8485  bitField3_ = (bitField3_ & ~0x00000010);
8486  autoDetectGreaterThanAtLeastOneOf_ = true;
8487  bitField3_ = (bitField3_ & ~0x00000020);
8488  stopAfterFirstSolution_ = false;
8489  bitField3_ = (bitField3_ & ~0x00000040);
8490  stopAfterPresolve_ = false;
8491  bitField3_ = (bitField3_ & ~0x00000080);
8492  numSearchWorkers_ = 1;
8493  bitField3_ = (bitField3_ & ~0x00000100);
8494  interleaveSearch_ = false;
8495  bitField3_ = (bitField3_ & ~0x00000200);
8496  reduceMemoryUsageInInterleaveMode_ = true;
8497  bitField3_ = (bitField3_ & ~0x00000400);
8498  deterministicParallelSearch_ = false;
8499  bitField3_ = (bitField3_ & ~0x00000800);
8500  shareObjectiveBounds_ = true;
8501  bitField3_ = (bitField3_ & ~0x00001000);
8502  shareLevelZeroBounds_ = true;
8503  bitField3_ = (bitField3_ & ~0x00002000);
8504  useLnsOnly_ = false;
8505  bitField3_ = (bitField3_ & ~0x00004000);
8506  lnsFocusOnDecisionVariables_ = false;
8507  bitField3_ = (bitField3_ & ~0x00008000);
8508  useRinsLns_ = true;
8509  bitField3_ = (bitField3_ & ~0x00010000);
8510  useRelaxationLns_ = false;
8511  bitField3_ = (bitField3_ & ~0x00020000);
8512  diversifyLnsParams_ = false;
8513  bitField3_ = (bitField3_ & ~0x00040000);
8514  randomizeSearch_ = false;
8515  bitField3_ = (bitField3_ & ~0x00080000);
8516  searchRandomizationTolerance_ = 0L;
8517  bitField3_ = (bitField3_ & ~0x00100000);
8518  useOptionalVariables_ = true;
8519  bitField3_ = (bitField3_ & ~0x00200000);
8520  useExactLpReason_ = true;
8521  bitField3_ = (bitField3_ & ~0x00400000);
8522  useBranchingInLp_ = false;
8523  bitField3_ = (bitField3_ & ~0x00800000);
8524  useCombinedNoOverlap_ = false;
8525  bitField3_ = (bitField3_ & ~0x01000000);
8526  catchSigintSignal_ = true;
8527  bitField3_ = (bitField3_ & ~0x02000000);
8528  useImpliedBounds_ = false;
8529  bitField3_ = (bitField3_ & ~0x04000000);
8530  mipMaxBound_ = 10000000D;
8531  bitField3_ = (bitField3_ & ~0x08000000);
8532  mipVarScaling_ = 1D;
8533  bitField3_ = (bitField3_ & ~0x10000000);
8534  mipWantedPrecision_ = 1e-06D;
8535  bitField3_ = (bitField3_ & ~0x20000000);
8536  mipMaxActivityExponent_ = 53;
8537  bitField3_ = (bitField3_ & ~0x40000000);
8538  mipCheckPrecision_ = 0.0001D;
8539  bitField3_ = (bitField3_ & ~0x80000000);
8540  return this;
8541  }
8542 
8543  @java.lang.Override
8544  public com.google.protobuf.Descriptors.Descriptor
8546  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
8547  }
8548 
8549  @java.lang.Override
8552  }
8553 
8554  @java.lang.Override
8557  if (!result.isInitialized()) {
8558  throw newUninitializedMessageException(result);
8559  }
8560  return result;
8561  }
8562 
8563  @java.lang.Override
8566  int from_bitField0_ = bitField0_;
8567  int from_bitField1_ = bitField1_;
8568  int from_bitField2_ = bitField2_;
8569  int from_bitField3_ = bitField3_;
8570  int to_bitField0_ = 0;
8571  int to_bitField1_ = 0;
8572  int to_bitField2_ = 0;
8573  int to_bitField3_ = 0;
8574  if (((from_bitField0_ & 0x00000001) != 0)) {
8575  to_bitField0_ |= 0x00000001;
8576  }
8577  result.preferredVariableOrder_ = preferredVariableOrder_;
8578  if (((from_bitField0_ & 0x00000002) != 0)) {
8579  to_bitField0_ |= 0x00000002;
8580  }
8581  result.initialPolarity_ = initialPolarity_;
8582  if (((from_bitField0_ & 0x00000004) != 0)) {
8583  to_bitField0_ |= 0x00000004;
8584  }
8585  result.usePhaseSaving_ = usePhaseSaving_;
8586  if (((from_bitField0_ & 0x00000008) != 0)) {
8587  result.randomPolarityRatio_ = randomPolarityRatio_;
8588  to_bitField0_ |= 0x00000008;
8589  }
8590  if (((from_bitField0_ & 0x00000010) != 0)) {
8591  result.randomBranchesRatio_ = randomBranchesRatio_;
8592  to_bitField0_ |= 0x00000010;
8593  }
8594  if (((from_bitField0_ & 0x00000020) != 0)) {
8595  result.useErwaHeuristic_ = useErwaHeuristic_;
8596  to_bitField0_ |= 0x00000020;
8597  }
8598  if (((from_bitField0_ & 0x00000040) != 0)) {
8599  result.initialVariablesActivity_ = initialVariablesActivity_;
8600  to_bitField0_ |= 0x00000040;
8601  }
8602  if (((from_bitField0_ & 0x00000080) != 0)) {
8603  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
8604  to_bitField0_ |= 0x00000080;
8605  }
8606  if (((from_bitField0_ & 0x00000100) != 0)) {
8607  to_bitField0_ |= 0x00000100;
8608  }
8609  result.minimizationAlgorithm_ = minimizationAlgorithm_;
8610  if (((from_bitField0_ & 0x00000200) != 0)) {
8611  to_bitField0_ |= 0x00000200;
8612  }
8613  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
8614  if (((from_bitField0_ & 0x00000400) != 0)) {
8615  to_bitField0_ |= 0x00000400;
8616  }
8617  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
8618  if (((from_bitField0_ & 0x00000800) != 0)) {
8619  to_bitField0_ |= 0x00000800;
8620  }
8621  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
8622  if (((from_bitField0_ & 0x00001000) != 0)) {
8623  to_bitField0_ |= 0x00001000;
8624  }
8625  result.clauseCleanupTarget_ = clauseCleanupTarget_;
8626  if (((from_bitField0_ & 0x00002000) != 0)) {
8627  to_bitField0_ |= 0x00002000;
8628  }
8629  result.clauseCleanupProtection_ = clauseCleanupProtection_;
8630  if (((from_bitField0_ & 0x00004000) != 0)) {
8631  to_bitField0_ |= 0x00004000;
8632  }
8633  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
8634  if (((from_bitField0_ & 0x00008000) != 0)) {
8635  to_bitField0_ |= 0x00008000;
8636  }
8637  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
8638  if (((from_bitField0_ & 0x00010000) != 0)) {
8639  to_bitField0_ |= 0x00010000;
8640  }
8641  result.pbCleanupIncrement_ = pbCleanupIncrement_;
8642  if (((from_bitField0_ & 0x00020000) != 0)) {
8643  to_bitField0_ |= 0x00020000;
8644  }
8645  result.pbCleanupRatio_ = pbCleanupRatio_;
8646  if (((from_bitField0_ & 0x00040000) != 0)) {
8647  to_bitField0_ |= 0x00040000;
8648  }
8649  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
8650  if (((from_bitField0_ & 0x00080000) != 0)) {
8651  to_bitField0_ |= 0x00080000;
8652  }
8653  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
8654  if (((from_bitField0_ & 0x00100000) != 0)) {
8655  to_bitField0_ |= 0x00100000;
8656  }
8657  result.variableActivityDecay_ = variableActivityDecay_;
8658  if (((from_bitField0_ & 0x00200000) != 0)) {
8659  to_bitField0_ |= 0x00200000;
8660  }
8661  result.maxVariableActivityValue_ = maxVariableActivityValue_;
8662  if (((from_bitField0_ & 0x00400000) != 0)) {
8663  to_bitField0_ |= 0x00400000;
8664  }
8665  result.glucoseMaxDecay_ = glucoseMaxDecay_;
8666  if (((from_bitField0_ & 0x00800000) != 0)) {
8667  to_bitField0_ |= 0x00800000;
8668  }
8669  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
8670  if (((from_bitField0_ & 0x01000000) != 0)) {
8671  to_bitField0_ |= 0x01000000;
8672  }
8673  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
8674  if (((from_bitField0_ & 0x02000000) != 0)) {
8675  to_bitField0_ |= 0x02000000;
8676  }
8677  result.clauseActivityDecay_ = clauseActivityDecay_;
8678  if (((from_bitField0_ & 0x04000000) != 0)) {
8679  to_bitField0_ |= 0x04000000;
8680  }
8681  result.maxClauseActivityValue_ = maxClauseActivityValue_;
8682  if (((bitField0_ & 0x08000000) != 0)) {
8683  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
8684  bitField0_ = (bitField0_ & ~0x08000000);
8685  }
8686  result.restartAlgorithms_ = restartAlgorithms_;
8687  if (((from_bitField0_ & 0x10000000) != 0)) {
8688  to_bitField0_ |= 0x08000000;
8689  }
8690  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
8691  if (((from_bitField0_ & 0x20000000) != 0)) {
8692  to_bitField0_ |= 0x10000000;
8693  }
8694  result.restartPeriod_ = restartPeriod_;
8695  if (((from_bitField0_ & 0x40000000) != 0)) {
8696  to_bitField0_ |= 0x20000000;
8697  }
8698  result.restartRunningWindowSize_ = restartRunningWindowSize_;
8699  if (((from_bitField0_ & 0x80000000) != 0)) {
8700  to_bitField0_ |= 0x40000000;
8701  }
8702  result.restartDlAverageRatio_ = restartDlAverageRatio_;
8703  if (((from_bitField1_ & 0x00000001) != 0)) {
8704  to_bitField0_ |= 0x80000000;
8705  }
8706  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
8707  if (((from_bitField1_ & 0x00000002) != 0)) {
8708  result.useBlockingRestart_ = useBlockingRestart_;
8709  to_bitField1_ |= 0x00000001;
8710  }
8711  if (((from_bitField1_ & 0x00000004) != 0)) {
8712  to_bitField1_ |= 0x00000002;
8713  }
8714  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
8715  if (((from_bitField1_ & 0x00000008) != 0)) {
8716  to_bitField1_ |= 0x00000004;
8717  }
8718  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
8719  if (((from_bitField1_ & 0x00000010) != 0)) {
8720  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
8721  to_bitField1_ |= 0x00000008;
8722  }
8723  if (((from_bitField1_ & 0x00000020) != 0)) {
8724  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
8725  to_bitField1_ |= 0x00000010;
8726  }
8727  if (((from_bitField1_ & 0x00000040) != 0)) {
8728  to_bitField1_ |= 0x00000020;
8729  }
8730  result.maxTimeInSeconds_ = maxTimeInSeconds_;
8731  if (((from_bitField1_ & 0x00000080) != 0)) {
8732  to_bitField1_ |= 0x00000040;
8733  }
8734  result.maxDeterministicTime_ = maxDeterministicTime_;
8735  if (((from_bitField1_ & 0x00000100) != 0)) {
8736  to_bitField1_ |= 0x00000080;
8737  }
8738  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
8739  if (((from_bitField1_ & 0x00000200) != 0)) {
8740  to_bitField1_ |= 0x00000100;
8741  }
8742  result.maxMemoryInMb_ = maxMemoryInMb_;
8743  if (((from_bitField1_ & 0x00000400) != 0)) {
8744  to_bitField1_ |= 0x00000200;
8745  }
8746  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
8747  if (((from_bitField1_ & 0x00000800) != 0)) {
8748  to_bitField1_ |= 0x00000400;
8749  }
8750  result.randomSeed_ = randomSeed_;
8751  if (((from_bitField1_ & 0x00001000) != 0)) {
8752  result.logSearchProgress_ = logSearchProgress_;
8753  to_bitField1_ |= 0x00000800;
8754  }
8755  if (((from_bitField1_ & 0x00002000) != 0)) {
8756  result.usePbResolution_ = usePbResolution_;
8757  to_bitField1_ |= 0x00001000;
8758  }
8759  if (((from_bitField1_ & 0x00004000) != 0)) {
8760  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
8761  to_bitField1_ |= 0x00002000;
8762  }
8763  if (((from_bitField1_ & 0x00008000) != 0)) {
8764  to_bitField1_ |= 0x00004000;
8765  }
8766  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
8767  if (((from_bitField1_ & 0x00010000) != 0)) {
8768  to_bitField1_ |= 0x00008000;
8769  }
8770  result.presolveBveThreshold_ = presolveBveThreshold_;
8771  if (((from_bitField1_ & 0x00020000) != 0)) {
8772  to_bitField1_ |= 0x00010000;
8773  }
8774  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
8775  if (((from_bitField1_ & 0x00040000) != 0)) {
8776  to_bitField1_ |= 0x00020000;
8777  }
8778  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
8779  if (((from_bitField1_ & 0x00080000) != 0)) {
8780  to_bitField1_ |= 0x00040000;
8781  }
8782  result.presolveBlockedClause_ = presolveBlockedClause_;
8783  if (((from_bitField1_ & 0x00100000) != 0)) {
8784  to_bitField1_ |= 0x00080000;
8785  }
8786  result.presolveUseBva_ = presolveUseBva_;
8787  if (((from_bitField1_ & 0x00200000) != 0)) {
8788  to_bitField1_ |= 0x00100000;
8789  }
8790  result.presolveBvaThreshold_ = presolveBvaThreshold_;
8791  if (((from_bitField1_ & 0x00400000) != 0)) {
8792  to_bitField1_ |= 0x00200000;
8793  }
8794  result.maxPresolveIterations_ = maxPresolveIterations_;
8795  if (((from_bitField1_ & 0x00800000) != 0)) {
8796  to_bitField1_ |= 0x00400000;
8797  }
8798  result.cpModelPresolve_ = cpModelPresolve_;
8799  if (((from_bitField1_ & 0x01000000) != 0)) {
8800  to_bitField1_ |= 0x00800000;
8801  }
8802  result.cpModelProbingLevel_ = cpModelProbingLevel_;
8803  if (((from_bitField1_ & 0x02000000) != 0)) {
8804  to_bitField1_ |= 0x01000000;
8805  }
8806  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
8807  if (((from_bitField1_ & 0x04000000) != 0)) {
8808  to_bitField1_ |= 0x02000000;
8809  }
8810  result.expandElementConstraints_ = expandElementConstraints_;
8811  if (((from_bitField1_ & 0x08000000) != 0)) {
8812  to_bitField1_ |= 0x04000000;
8813  }
8814  result.expandAutomatonConstraints_ = expandAutomatonConstraints_;
8815  if (((from_bitField1_ & 0x10000000) != 0)) {
8816  to_bitField1_ |= 0x08000000;
8817  }
8818  result.mergeNoOverlapWorkLimit_ = mergeNoOverlapWorkLimit_;
8819  if (((from_bitField1_ & 0x20000000) != 0)) {
8820  to_bitField1_ |= 0x10000000;
8821  }
8822  result.mergeAtMostOneWorkLimit_ = mergeAtMostOneWorkLimit_;
8823  if (((from_bitField1_ & 0x40000000) != 0)) {
8824  to_bitField1_ |= 0x20000000;
8825  }
8826  result.presolveSubstitutionLevel_ = presolveSubstitutionLevel_;
8827  if (((from_bitField1_ & 0x80000000) != 0)) {
8828  to_bitField1_ |= 0x40000000;
8829  }
8830  result.useOptimizationHints_ = useOptimizationHints_;
8831  if (((from_bitField2_ & 0x00000001) != 0)) {
8832  to_bitField1_ |= 0x80000000;
8833  }
8834  result.minimizeCore_ = minimizeCore_;
8835  if (((from_bitField2_ & 0x00000002) != 0)) {
8836  to_bitField2_ |= 0x00000001;
8837  }
8838  result.findMultipleCores_ = findMultipleCores_;
8839  if (((from_bitField2_ & 0x00000004) != 0)) {
8840  to_bitField2_ |= 0x00000002;
8841  }
8842  result.coverOptimization_ = coverOptimization_;
8843  if (((from_bitField2_ & 0x00000008) != 0)) {
8844  to_bitField2_ |= 0x00000004;
8845  }
8846  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
8847  if (((from_bitField2_ & 0x00000010) != 0)) {
8848  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
8849  to_bitField2_ |= 0x00000008;
8850  }
8851  if (((from_bitField2_ & 0x00000020) != 0)) {
8852  to_bitField2_ |= 0x00000010;
8853  }
8854  result.maxSatStratification_ = maxSatStratification_;
8855  if (((from_bitField2_ & 0x00000040) != 0)) {
8856  to_bitField2_ |= 0x00000020;
8857  }
8858  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
8859  if (((from_bitField2_ & 0x00000080) != 0)) {
8860  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
8861  to_bitField2_ |= 0x00000040;
8862  }
8863  if (((from_bitField2_ & 0x00000100) != 0)) {
8864  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
8865  to_bitField2_ |= 0x00000080;
8866  }
8867  if (((from_bitField2_ & 0x00000200) != 0)) {
8868  to_bitField2_ |= 0x00000100;
8869  }
8870  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
8871  if (((from_bitField2_ & 0x00000400) != 0)) {
8872  to_bitField2_ |= 0x00000200;
8873  }
8874  result.linearizationLevel_ = linearizationLevel_;
8875  if (((from_bitField2_ & 0x00000800) != 0)) {
8876  to_bitField2_ |= 0x00000400;
8877  }
8878  result.booleanEncodingLevel_ = booleanEncodingLevel_;
8879  if (((from_bitField2_ & 0x00001000) != 0)) {
8880  to_bitField2_ |= 0x00000800;
8881  }
8882  result.maxNumCuts_ = maxNumCuts_;
8883  if (((from_bitField2_ & 0x00002000) != 0)) {
8884  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
8885  to_bitField2_ |= 0x00001000;
8886  }
8887  if (((from_bitField2_ & 0x00004000) != 0)) {
8888  result.addKnapsackCuts_ = addKnapsackCuts_;
8889  to_bitField2_ |= 0x00002000;
8890  }
8891  if (((from_bitField2_ & 0x00008000) != 0)) {
8892  result.addCgCuts_ = addCgCuts_;
8893  to_bitField2_ |= 0x00004000;
8894  }
8895  if (((from_bitField2_ & 0x00010000) != 0)) {
8896  to_bitField2_ |= 0x00008000;
8897  }
8898  result.addMirCuts_ = addMirCuts_;
8899  if (((from_bitField2_ & 0x00020000) != 0)) {
8900  to_bitField2_ |= 0x00010000;
8901  }
8902  result.maxAllDiffCutSize_ = maxAllDiffCutSize_;
8903  if (((from_bitField2_ & 0x00040000) != 0)) {
8904  to_bitField2_ |= 0x00020000;
8905  }
8906  result.useMirRounding_ = useMirRounding_;
8907  if (((from_bitField2_ & 0x00080000) != 0)) {
8908  to_bitField2_ |= 0x00040000;
8909  }
8910  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
8911  if (((from_bitField2_ & 0x00100000) != 0)) {
8912  to_bitField2_ |= 0x00080000;
8913  }
8914  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
8915  if (((from_bitField2_ & 0x00200000) != 0)) {
8916  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
8917  to_bitField2_ |= 0x00100000;
8918  }
8919  if (((from_bitField2_ & 0x00400000) != 0)) {
8920  to_bitField2_ |= 0x00200000;
8921  }
8922  result.maxConsecutiveInactiveCount_ = maxConsecutiveInactiveCount_;
8923  if (((from_bitField2_ & 0x00800000) != 0)) {
8924  to_bitField2_ |= 0x00400000;
8925  }
8926  result.newConstraintsBatchSize_ = newConstraintsBatchSize_;
8927  if (((from_bitField2_ & 0x01000000) != 0)) {
8928  to_bitField2_ |= 0x00800000;
8929  }
8930  result.searchBranching_ = searchBranching_;
8931  if (((from_bitField2_ & 0x02000000) != 0)) {
8932  to_bitField2_ |= 0x01000000;
8933  }
8934  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
8935  if (((from_bitField2_ & 0x04000000) != 0)) {
8936  to_bitField2_ |= 0x02000000;
8937  }
8938  result.exploitAllLpSolution_ = exploitAllLpSolution_;
8939  if (((from_bitField2_ & 0x08000000) != 0)) {
8940  result.exploitBestSolution_ = exploitBestSolution_;
8941  to_bitField2_ |= 0x04000000;
8942  }
8943  if (((from_bitField2_ & 0x10000000) != 0)) {
8944  to_bitField2_ |= 0x08000000;
8945  }
8946  result.exploitObjective_ = exploitObjective_;
8947  if (((from_bitField2_ & 0x20000000) != 0)) {
8948  result.probingPeriodAtRoot_ = probingPeriodAtRoot_;
8949  to_bitField2_ |= 0x10000000;
8950  }
8951  if (((from_bitField2_ & 0x40000000) != 0)) {
8952  to_bitField2_ |= 0x20000000;
8953  }
8954  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
8955  if (((from_bitField2_ & 0x80000000) != 0)) {
8956  result.optimizeWithCore_ = optimizeWithCore_;
8957  to_bitField2_ |= 0x40000000;
8958  }
8959  if (((from_bitField3_ & 0x00000001) != 0)) {
8960  to_bitField2_ |= 0x80000000;
8961  }
8962  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
8963  if (((from_bitField3_ & 0x00000002) != 0)) {
8964  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
8965  to_bitField3_ |= 0x00000001;
8966  }
8967  if (((from_bitField3_ & 0x00000004) != 0)) {
8968  result.enumerateAllSolutions_ = enumerateAllSolutions_;
8969  to_bitField3_ |= 0x00000002;
8970  }
8971  if (((from_bitField3_ & 0x00000008) != 0)) {
8972  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
8973  to_bitField3_ |= 0x00000004;
8974  }
8975  if (((from_bitField3_ & 0x00000010) != 0)) {
8976  to_bitField3_ |= 0x00000008;
8977  }
8978  result.instantiateAllVariables_ = instantiateAllVariables_;
8979  if (((from_bitField3_ & 0x00000020) != 0)) {
8980  to_bitField3_ |= 0x00000010;
8981  }
8982  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
8983  if (((from_bitField3_ & 0x00000040) != 0)) {
8984  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
8985  to_bitField3_ |= 0x00000020;
8986  }
8987  if (((from_bitField3_ & 0x00000080) != 0)) {
8988  result.stopAfterPresolve_ = stopAfterPresolve_;
8989  to_bitField3_ |= 0x00000040;
8990  }
8991  if (((from_bitField3_ & 0x00000100) != 0)) {
8992  to_bitField3_ |= 0x00000080;
8993  }
8994  result.numSearchWorkers_ = numSearchWorkers_;
8995  if (((from_bitField3_ & 0x00000200) != 0)) {
8996  result.interleaveSearch_ = interleaveSearch_;
8997  to_bitField3_ |= 0x00000100;
8998  }
8999  if (((from_bitField3_ & 0x00000400) != 0)) {
9000  to_bitField3_ |= 0x00000200;
9001  }
9002  result.reduceMemoryUsageInInterleaveMode_ = reduceMemoryUsageInInterleaveMode_;
9003  if (((from_bitField3_ & 0x00000800) != 0)) {
9004  result.deterministicParallelSearch_ = deterministicParallelSearch_;
9005  to_bitField3_ |= 0x00000400;
9006  }
9007  if (((from_bitField3_ & 0x00001000) != 0)) {
9008  to_bitField3_ |= 0x00000800;
9009  }
9010  result.shareObjectiveBounds_ = shareObjectiveBounds_;
9011  if (((from_bitField3_ & 0x00002000) != 0)) {
9012  to_bitField3_ |= 0x00001000;
9013  }
9014  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
9015  if (((from_bitField3_ & 0x00004000) != 0)) {
9016  result.useLnsOnly_ = useLnsOnly_;
9017  to_bitField3_ |= 0x00002000;
9018  }
9019  if (((from_bitField3_ & 0x00008000) != 0)) {
9020  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
9021  to_bitField3_ |= 0x00004000;
9022  }
9023  if (((from_bitField3_ & 0x00010000) != 0)) {
9024  to_bitField3_ |= 0x00008000;
9025  }
9026  result.useRinsLns_ = useRinsLns_;
9027  if (((from_bitField3_ & 0x00020000) != 0)) {
9028  result.useRelaxationLns_ = useRelaxationLns_;
9029  to_bitField3_ |= 0x00010000;
9030  }
9031  if (((from_bitField3_ & 0x00040000) != 0)) {
9032  result.diversifyLnsParams_ = diversifyLnsParams_;
9033  to_bitField3_ |= 0x00020000;
9034  }
9035  if (((from_bitField3_ & 0x00080000) != 0)) {
9036  result.randomizeSearch_ = randomizeSearch_;
9037  to_bitField3_ |= 0x00040000;
9038  }
9039  if (((from_bitField3_ & 0x00100000) != 0)) {
9040  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
9041  to_bitField3_ |= 0x00080000;
9042  }
9043  if (((from_bitField3_ & 0x00200000) != 0)) {
9044  to_bitField3_ |= 0x00100000;
9045  }
9046  result.useOptionalVariables_ = useOptionalVariables_;
9047  if (((from_bitField3_ & 0x00400000) != 0)) {
9048  to_bitField3_ |= 0x00200000;
9049  }
9050  result.useExactLpReason_ = useExactLpReason_;
9051  if (((from_bitField3_ & 0x00800000) != 0)) {
9052  result.useBranchingInLp_ = useBranchingInLp_;
9053  to_bitField3_ |= 0x00400000;
9054  }
9055  if (((from_bitField3_ & 0x01000000) != 0)) {
9056  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
9057  to_bitField3_ |= 0x00800000;
9058  }
9059  if (((from_bitField3_ & 0x02000000) != 0)) {
9060  to_bitField3_ |= 0x01000000;
9061  }
9062  result.catchSigintSignal_ = catchSigintSignal_;
9063  if (((from_bitField3_ & 0x04000000) != 0)) {
9064  result.useImpliedBounds_ = useImpliedBounds_;
9065  to_bitField3_ |= 0x02000000;
9066  }
9067  if (((from_bitField3_ & 0x08000000) != 0)) {
9068  to_bitField3_ |= 0x04000000;
9069  }
9070  result.mipMaxBound_ = mipMaxBound_;
9071  if (((from_bitField3_ & 0x10000000) != 0)) {
9072  to_bitField3_ |= 0x08000000;
9073  }
9074  result.mipVarScaling_ = mipVarScaling_;
9075  if (((from_bitField3_ & 0x20000000) != 0)) {
9076  to_bitField3_ |= 0x10000000;
9077  }
9078  result.mipWantedPrecision_ = mipWantedPrecision_;
9079  if (((from_bitField3_ & 0x40000000) != 0)) {
9080  to_bitField3_ |= 0x20000000;
9081  }
9082  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
9083  if (((from_bitField3_ & 0x80000000) != 0)) {
9084  to_bitField3_ |= 0x40000000;
9085  }
9086  result.mipCheckPrecision_ = mipCheckPrecision_;
9087  result.bitField0_ = to_bitField0_;
9088  result.bitField1_ = to_bitField1_;
9089  result.bitField2_ = to_bitField2_;
9090  result.bitField3_ = to_bitField3_;
9091  onBuilt();
9092  return result;
9093  }
9094 
9095  @java.lang.Override
9096  public Builder clone() {
9097  return super.clone();
9098  }
9099  @java.lang.Override
9101  com.google.protobuf.Descriptors.FieldDescriptor field,
9102  java.lang.Object value) {
9103  return super.setField(field, value);
9104  }
9105  @java.lang.Override
9107  com.google.protobuf.Descriptors.FieldDescriptor field) {
9108  return super.clearField(field);
9109  }
9110  @java.lang.Override
9112  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
9113  return super.clearOneof(oneof);
9114  }
9115  @java.lang.Override
9117  com.google.protobuf.Descriptors.FieldDescriptor field,
9118  int index, java.lang.Object value) {
9119  return super.setRepeatedField(field, index, value);
9120  }
9121  @java.lang.Override
9123  com.google.protobuf.Descriptors.FieldDescriptor field,
9124  java.lang.Object value) {
9125  return super.addRepeatedField(field, value);
9126  }
9127  @java.lang.Override
9128  public Builder mergeFrom(com.google.protobuf.Message other) {
9129  if (other instanceof com.google.ortools.sat.SatParameters) {
9130  return mergeFrom((com.google.ortools.sat.SatParameters)other);
9131  } else {
9132  super.mergeFrom(other);
9133  return this;
9134  }
9135  }
9136 
9138  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
9139  if (other.hasPreferredVariableOrder()) {
9140  setPreferredVariableOrder(other.getPreferredVariableOrder());
9141  }
9142  if (other.hasInitialPolarity()) {
9143  setInitialPolarity(other.getInitialPolarity());
9144  }
9145  if (other.hasUsePhaseSaving()) {
9146  setUsePhaseSaving(other.getUsePhaseSaving());
9147  }
9148  if (other.hasRandomPolarityRatio()) {
9149  setRandomPolarityRatio(other.getRandomPolarityRatio());
9150  }
9151  if (other.hasRandomBranchesRatio()) {
9152  setRandomBranchesRatio(other.getRandomBranchesRatio());
9153  }
9154  if (other.hasUseErwaHeuristic()) {
9155  setUseErwaHeuristic(other.getUseErwaHeuristic());
9156  }
9157  if (other.hasInitialVariablesActivity()) {
9158  setInitialVariablesActivity(other.getInitialVariablesActivity());
9159  }
9160  if (other.hasAlsoBumpVariablesInConflictReasons()) {
9161  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
9162  }
9163  if (other.hasMinimizationAlgorithm()) {
9164  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
9165  }
9166  if (other.hasBinaryMinimizationAlgorithm()) {
9167  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
9168  }
9169  if (other.hasSubsumptionDuringConflictAnalysis()) {
9170  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
9171  }
9172  if (other.hasClauseCleanupPeriod()) {
9173  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
9174  }
9175  if (other.hasClauseCleanupTarget()) {
9176  setClauseCleanupTarget(other.getClauseCleanupTarget());
9177  }
9178  if (other.hasClauseCleanupProtection()) {
9179  setClauseCleanupProtection(other.getClauseCleanupProtection());
9180  }
9181  if (other.hasClauseCleanupLbdBound()) {
9182  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
9183  }
9184  if (other.hasClauseCleanupOrdering()) {
9185  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
9186  }
9187  if (other.hasPbCleanupIncrement()) {
9188  setPbCleanupIncrement(other.getPbCleanupIncrement());
9189  }
9190  if (other.hasPbCleanupRatio()) {
9191  setPbCleanupRatio(other.getPbCleanupRatio());
9192  }
9193  if (other.hasMinimizeWithPropagationRestartPeriod()) {
9194  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
9195  }
9196  if (other.hasMinimizeWithPropagationNumDecisions()) {
9197  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
9198  }
9199  if (other.hasVariableActivityDecay()) {
9200  setVariableActivityDecay(other.getVariableActivityDecay());
9201  }
9202  if (other.hasMaxVariableActivityValue()) {
9203  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
9204  }
9205  if (other.hasGlucoseMaxDecay()) {
9206  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
9207  }
9208  if (other.hasGlucoseDecayIncrement()) {
9209  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
9210  }
9211  if (other.hasGlucoseDecayIncrementPeriod()) {
9212  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
9213  }
9214  if (other.hasClauseActivityDecay()) {
9215  setClauseActivityDecay(other.getClauseActivityDecay());
9216  }
9217  if (other.hasMaxClauseActivityValue()) {
9218  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
9219  }
9220  if (!other.restartAlgorithms_.isEmpty()) {
9221  if (restartAlgorithms_.isEmpty()) {
9222  restartAlgorithms_ = other.restartAlgorithms_;
9223  bitField0_ = (bitField0_ & ~0x08000000);
9224  } else {
9225  ensureRestartAlgorithmsIsMutable();
9226  restartAlgorithms_.addAll(other.restartAlgorithms_);
9227  }
9228  onChanged();
9229  }
9230  if (other.hasDefaultRestartAlgorithms()) {
9231  bitField0_ |= 0x10000000;
9232  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
9233  onChanged();
9234  }
9235  if (other.hasRestartPeriod()) {
9236  setRestartPeriod(other.getRestartPeriod());
9237  }
9238  if (other.hasRestartRunningWindowSize()) {
9239  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
9240  }
9241  if (other.hasRestartDlAverageRatio()) {
9242  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
9243  }
9244  if (other.hasRestartLbdAverageRatio()) {
9245  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
9246  }
9247  if (other.hasUseBlockingRestart()) {
9248  setUseBlockingRestart(other.getUseBlockingRestart());
9249  }
9250  if (other.hasBlockingRestartWindowSize()) {
9251  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
9252  }
9253  if (other.hasBlockingRestartMultiplier()) {
9254  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
9255  }
9256  if (other.hasNumConflictsBeforeStrategyChanges()) {
9257  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
9258  }
9259  if (other.hasStrategyChangeIncreaseRatio()) {
9260  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
9261  }
9262  if (other.hasMaxTimeInSeconds()) {
9263  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
9264  }
9265  if (other.hasMaxDeterministicTime()) {
9266  setMaxDeterministicTime(other.getMaxDeterministicTime());
9267  }
9268  if (other.hasMaxNumberOfConflicts()) {
9269  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
9270  }
9271  if (other.hasMaxMemoryInMb()) {
9272  setMaxMemoryInMb(other.getMaxMemoryInMb());
9273  }
9274  if (other.hasTreatBinaryClausesSeparately()) {
9275  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
9276  }
9277  if (other.hasRandomSeed()) {
9278  setRandomSeed(other.getRandomSeed());
9279  }
9280  if (other.hasLogSearchProgress()) {
9281  setLogSearchProgress(other.getLogSearchProgress());
9282  }
9283  if (other.hasUsePbResolution()) {
9284  setUsePbResolution(other.getUsePbResolution());
9285  }
9286  if (other.hasMinimizeReductionDuringPbResolution()) {
9287  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
9288  }
9289  if (other.hasCountAssumptionLevelsInLbd()) {
9290  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
9291  }
9292  if (other.hasPresolveBveThreshold()) {
9293  setPresolveBveThreshold(other.getPresolveBveThreshold());
9294  }
9295  if (other.hasPresolveBveClauseWeight()) {
9296  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
9297  }
9298  if (other.hasPresolveProbingDeterministicTimeLimit()) {
9299  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
9300  }
9301  if (other.hasPresolveBlockedClause()) {
9302  setPresolveBlockedClause(other.getPresolveBlockedClause());
9303  }
9304  if (other.hasPresolveUseBva()) {
9305  setPresolveUseBva(other.getPresolveUseBva());
9306  }
9307  if (other.hasPresolveBvaThreshold()) {
9308  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
9309  }
9310  if (other.hasMaxPresolveIterations()) {
9311  setMaxPresolveIterations(other.getMaxPresolveIterations());
9312  }
9313  if (other.hasCpModelPresolve()) {
9314  setCpModelPresolve(other.getCpModelPresolve());
9315  }
9316  if (other.hasCpModelProbingLevel()) {
9317  setCpModelProbingLevel(other.getCpModelProbingLevel());
9318  }
9319  if (other.hasCpModelUseSatPresolve()) {
9320  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
9321  }
9322  if (other.hasExpandElementConstraints()) {
9323  setExpandElementConstraints(other.getExpandElementConstraints());
9324  }
9325  if (other.hasExpandAutomatonConstraints()) {
9326  setExpandAutomatonConstraints(other.getExpandAutomatonConstraints());
9327  }
9328  if (other.hasMergeNoOverlapWorkLimit()) {
9329  setMergeNoOverlapWorkLimit(other.getMergeNoOverlapWorkLimit());
9330  }
9331  if (other.hasMergeAtMostOneWorkLimit()) {
9332  setMergeAtMostOneWorkLimit(other.getMergeAtMostOneWorkLimit());
9333  }
9334  if (other.hasPresolveSubstitutionLevel()) {
9335  setPresolveSubstitutionLevel(other.getPresolveSubstitutionLevel());
9336  }
9337  if (other.hasUseOptimizationHints()) {
9338  setUseOptimizationHints(other.getUseOptimizationHints());
9339  }
9340  if (other.hasMinimizeCore()) {
9341  setMinimizeCore(other.getMinimizeCore());
9342  }
9343  if (other.hasFindMultipleCores()) {
9344  setFindMultipleCores(other.getFindMultipleCores());
9345  }
9346  if (other.hasCoverOptimization()) {
9347  setCoverOptimization(other.getCoverOptimization());
9348  }
9349  if (other.hasMaxSatAssumptionOrder()) {
9350  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
9351  }
9352  if (other.hasMaxSatReverseAssumptionOrder()) {
9353  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
9354  }
9355  if (other.hasMaxSatStratification()) {
9356  setMaxSatStratification(other.getMaxSatStratification());
9357  }
9358  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
9359  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
9360  }
9361  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
9362  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
9363  }
9364  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
9365  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
9366  }
9367  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
9368  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
9369  }
9370  if (other.hasLinearizationLevel()) {
9371  setLinearizationLevel(other.getLinearizationLevel());
9372  }
9373  if (other.hasBooleanEncodingLevel()) {
9374  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
9375  }
9376  if (other.hasMaxNumCuts()) {
9377  setMaxNumCuts(other.getMaxNumCuts());
9378  }
9379  if (other.hasOnlyAddCutsAtLevelZero()) {
9380  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
9381  }
9382  if (other.hasAddKnapsackCuts()) {
9383  setAddKnapsackCuts(other.getAddKnapsackCuts());
9384  }
9385  if (other.hasAddCgCuts()) {
9386  setAddCgCuts(other.getAddCgCuts());
9387  }
9388  if (other.hasAddMirCuts()) {
9389  setAddMirCuts(other.getAddMirCuts());
9390  }
9391  if (other.hasMaxAllDiffCutSize()) {
9392  setMaxAllDiffCutSize(other.getMaxAllDiffCutSize());
9393  }
9394  if (other.hasUseMirRounding()) {
9395  setUseMirRounding(other.getUseMirRounding());
9396  }
9397  if (other.hasMaxIntegerRoundingScaling()) {
9398  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
9399  }
9400  if (other.hasAddLpConstraintsLazily()) {
9401  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
9402  }
9403  if (other.hasMinOrthogonalityForLpConstraints()) {
9404  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
9405  }
9406  if (other.hasMaxConsecutiveInactiveCount()) {
9407  setMaxConsecutiveInactiveCount(other.getMaxConsecutiveInactiveCount());
9408  }
9409  if (other.hasNewConstraintsBatchSize()) {
9410  setNewConstraintsBatchSize(other.getNewConstraintsBatchSize());
9411  }
9412  if (other.hasSearchBranching()) {
9413  setSearchBranching(other.getSearchBranching());
9414  }
9415  if (other.hasExploitIntegerLpSolution()) {
9416  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
9417  }
9418  if (other.hasExploitAllLpSolution()) {
9419  setExploitAllLpSolution(other.getExploitAllLpSolution());
9420  }
9421  if (other.hasExploitBestSolution()) {
9422  setExploitBestSolution(other.getExploitBestSolution());
9423  }
9424  if (other.hasExploitObjective()) {
9425  setExploitObjective(other.getExploitObjective());
9426  }
9427  if (other.hasProbingPeriodAtRoot()) {
9428  setProbingPeriodAtRoot(other.getProbingPeriodAtRoot());
9429  }
9430  if (other.hasPseudoCostReliabilityThreshold()) {
9431  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
9432  }
9433  if (other.hasOptimizeWithCore()) {
9434  setOptimizeWithCore(other.getOptimizeWithCore());
9435  }
9436  if (other.hasBinarySearchNumConflicts()) {
9437  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
9438  }
9439  if (other.hasOptimizeWithMaxHs()) {
9440  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
9441  }
9442  if (other.hasEnumerateAllSolutions()) {
9443  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
9444  }
9445  if (other.hasFillTightenedDomainsInResponse()) {
9446  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
9447  }
9448  if (other.hasInstantiateAllVariables()) {
9449  setInstantiateAllVariables(other.getInstantiateAllVariables());
9450  }
9451  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
9452  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
9453  }
9454  if (other.hasStopAfterFirstSolution()) {
9455  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
9456  }
9457  if (other.hasStopAfterPresolve()) {
9458  setStopAfterPresolve(other.getStopAfterPresolve());
9459  }
9460  if (other.hasNumSearchWorkers()) {
9461  setNumSearchWorkers(other.getNumSearchWorkers());
9462  }
9463  if (other.hasInterleaveSearch()) {
9464  setInterleaveSearch(other.getInterleaveSearch());
9465  }
9466  if (other.hasReduceMemoryUsageInInterleaveMode()) {
9467  setReduceMemoryUsageInInterleaveMode(other.getReduceMemoryUsageInInterleaveMode());
9468  }
9469  if (other.hasDeterministicParallelSearch()) {
9470  setDeterministicParallelSearch(other.getDeterministicParallelSearch());
9471  }
9472  if (other.hasShareObjectiveBounds()) {
9473  setShareObjectiveBounds(other.getShareObjectiveBounds());
9474  }
9475  if (other.hasShareLevelZeroBounds()) {
9476  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
9477  }
9478  if (other.hasUseLnsOnly()) {
9479  setUseLnsOnly(other.getUseLnsOnly());
9480  }
9481  if (other.hasLnsFocusOnDecisionVariables()) {
9482  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
9483  }
9484  if (other.hasUseRinsLns()) {
9485  setUseRinsLns(other.getUseRinsLns());
9486  }
9487  if (other.hasUseRelaxationLns()) {
9488  setUseRelaxationLns(other.getUseRelaxationLns());
9489  }
9490  if (other.hasDiversifyLnsParams()) {
9491  setDiversifyLnsParams(other.getDiversifyLnsParams());
9492  }
9493  if (other.hasRandomizeSearch()) {
9494  setRandomizeSearch(other.getRandomizeSearch());
9495  }
9496  if (other.hasSearchRandomizationTolerance()) {
9497  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
9498  }
9499  if (other.hasUseOptionalVariables()) {
9500  setUseOptionalVariables(other.getUseOptionalVariables());
9501  }
9502  if (other.hasUseExactLpReason()) {
9503  setUseExactLpReason(other.getUseExactLpReason());
9504  }
9505  if (other.hasUseBranchingInLp()) {
9506  setUseBranchingInLp(other.getUseBranchingInLp());
9507  }
9508  if (other.hasUseCombinedNoOverlap()) {
9509  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
9510  }
9511  if (other.hasCatchSigintSignal()) {
9512  setCatchSigintSignal(other.getCatchSigintSignal());
9513  }
9514  if (other.hasUseImpliedBounds()) {
9515  setUseImpliedBounds(other.getUseImpliedBounds());
9516  }
9517  if (other.hasMipMaxBound()) {
9518  setMipMaxBound(other.getMipMaxBound());
9519  }
9520  if (other.hasMipVarScaling()) {
9521  setMipVarScaling(other.getMipVarScaling());
9522  }
9523  if (other.hasMipWantedPrecision()) {
9524  setMipWantedPrecision(other.getMipWantedPrecision());
9525  }
9526  if (other.hasMipMaxActivityExponent()) {
9527  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
9528  }
9529  if (other.hasMipCheckPrecision()) {
9530  setMipCheckPrecision(other.getMipCheckPrecision());
9531  }
9532  this.mergeUnknownFields(other.unknownFields);
9533  onChanged();
9534  return this;
9535  }
9536 
9537  @java.lang.Override
9538  public final boolean isInitialized() {
9539  return true;
9540  }
9541 
9542  @java.lang.Override
9544  com.google.protobuf.CodedInputStream input,
9545  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9546  throws java.io.IOException {
9547  com.google.ortools.sat.SatParameters parsedMessage = null;
9548  try {
9549  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
9550  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9551  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
9552  throw e.unwrapIOException();
9553  } finally {
9554  if (parsedMessage != null) {
9555  mergeFrom(parsedMessage);
9556  }
9557  }
9558  return this;
9559  }
9560  private int bitField0_;
9561  private int bitField1_;
9562  private int bitField2_;
9563  private int bitField3_;
9564 
9565  private int preferredVariableOrder_ = 0;
9570  public boolean hasPreferredVariableOrder() {
9571  return ((bitField0_ & 0x00000001) != 0);
9572  }
9578  @SuppressWarnings("deprecation")
9580  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
9581  }
9588  if (value == null) {
9589  throw new NullPointerException();
9590  }
9591  bitField0_ |= 0x00000001;
9592  preferredVariableOrder_ = value.getNumber();
9593  onChanged();
9594  return this;
9595  }
9601  bitField0_ = (bitField0_ & ~0x00000001);
9602  preferredVariableOrder_ = 0;
9603  onChanged();
9604  return this;
9605  }
9606 
9607  private int initialPolarity_ = 1;
9612  public boolean hasInitialPolarity() {
9613  return ((bitField0_ & 0x00000002) != 0);
9614  }
9620  @SuppressWarnings("deprecation")
9622  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
9623  }
9630  if (value == null) {
9631  throw new NullPointerException();
9632  }
9633  bitField0_ |= 0x00000002;
9634  initialPolarity_ = value.getNumber();
9635  onChanged();
9636  return this;
9637  }
9643  bitField0_ = (bitField0_ & ~0x00000002);
9644  initialPolarity_ = 1;
9645  onChanged();
9646  return this;
9647  }
9648 
9649  private boolean usePhaseSaving_ = true;
9664  public boolean hasUsePhaseSaving() {
9665  return ((bitField0_ & 0x00000004) != 0);
9666  }
9681  public boolean getUsePhaseSaving() {
9682  return usePhaseSaving_;
9683  }
9699  public Builder setUsePhaseSaving(boolean value) {
9700  bitField0_ |= 0x00000004;
9701  usePhaseSaving_ = value;
9702  onChanged();
9703  return this;
9704  }
9720  bitField0_ = (bitField0_ & ~0x00000004);
9721  usePhaseSaving_ = true;
9722  onChanged();
9723  return this;
9724  }
9725 
9726  private double randomPolarityRatio_ ;
9739  public boolean hasRandomPolarityRatio() {
9740  return ((bitField0_ & 0x00000008) != 0);
9741  }
9754  public double getRandomPolarityRatio() {
9755  return randomPolarityRatio_;
9756  }
9770  public Builder setRandomPolarityRatio(double value) {
9771  bitField0_ |= 0x00000008;
9772  randomPolarityRatio_ = value;
9773  onChanged();
9774  return this;
9775  }
9789  bitField0_ = (bitField0_ & ~0x00000008);
9790  randomPolarityRatio_ = 0D;
9791  onChanged();
9792  return this;
9793  }
9794 
9795  private double randomBranchesRatio_ ;
9806  public boolean hasRandomBranchesRatio() {
9807  return ((bitField0_ & 0x00000010) != 0);
9808  }
9819  public double getRandomBranchesRatio() {
9820  return randomBranchesRatio_;
9821  }
9833  public Builder setRandomBranchesRatio(double value) {
9834  bitField0_ |= 0x00000010;
9835  randomBranchesRatio_ = value;
9836  onChanged();
9837  return this;
9838  }
9850  bitField0_ = (bitField0_ & ~0x00000010);
9851  randomBranchesRatio_ = 0D;
9852  onChanged();
9853  return this;
9854  }
9855 
9856  private boolean useErwaHeuristic_ ;
9867  public boolean hasUseErwaHeuristic() {
9868  return ((bitField0_ & 0x00000020) != 0);
9869  }
9880  public boolean getUseErwaHeuristic() {
9881  return useErwaHeuristic_;
9882  }
9894  public Builder setUseErwaHeuristic(boolean value) {
9895  bitField0_ |= 0x00000020;
9896  useErwaHeuristic_ = value;
9897  onChanged();
9898  return this;
9899  }
9911  bitField0_ = (bitField0_ & ~0x00000020);
9912  useErwaHeuristic_ = false;
9913  onChanged();
9914  return this;
9915  }
9916 
9917  private double initialVariablesActivity_ ;
9931  public boolean hasInitialVariablesActivity() {
9932  return ((bitField0_ & 0x00000040) != 0);
9933  }
9948  return initialVariablesActivity_;
9949  }
9964  public Builder setInitialVariablesActivity(double value) {
9965  bitField0_ |= 0x00000040;
9966  initialVariablesActivity_ = value;
9967  onChanged();
9968  return this;
9969  }
9984  bitField0_ = (bitField0_ & ~0x00000040);
9985  initialVariablesActivity_ = 0D;
9986  onChanged();
9987  return this;
9988  }
9989 
9990  private boolean alsoBumpVariablesInConflictReasons_ ;
10003  return ((bitField0_ & 0x00000080) != 0);
10004  }
10017  return alsoBumpVariablesInConflictReasons_;
10018  }
10032  bitField0_ |= 0x00000080;
10033  alsoBumpVariablesInConflictReasons_ = value;
10034  onChanged();
10035  return this;
10036  }
10049  bitField0_ = (bitField0_ & ~0x00000080);
10050  alsoBumpVariablesInConflictReasons_ = false;
10051  onChanged();
10052  return this;
10053  }
10054 
10055  private int minimizationAlgorithm_ = 2;
10060  public boolean hasMinimizationAlgorithm() {
10061  return ((bitField0_ & 0x00000100) != 0);
10062  }
10068  @SuppressWarnings("deprecation")
10070  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
10071  }
10078  if (value == null) {
10079  throw new NullPointerException();
10080  }
10081  bitField0_ |= 0x00000100;
10082  minimizationAlgorithm_ = value.getNumber();
10083  onChanged();
10084  return this;
10085  }
10091  bitField0_ = (bitField0_ & ~0x00000100);
10092  minimizationAlgorithm_ = 2;
10093  onChanged();
10094  return this;
10095  }
10096 
10097  private int binaryMinimizationAlgorithm_ = 1;
10103  return ((bitField0_ & 0x00000200) != 0);
10104  }
10110  @SuppressWarnings("deprecation")
10113  }
10120  if (value == null) {
10121  throw new NullPointerException();
10122  }
10123  bitField0_ |= 0x00000200;
10124  binaryMinimizationAlgorithm_ = value.getNumber();
10125  onChanged();
10126  return this;
10127  }
10133  bitField0_ = (bitField0_ & ~0x00000200);
10134  binaryMinimizationAlgorithm_ = 1;
10135  onChanged();
10136  return this;
10137  }
10138 
10139  private boolean subsumptionDuringConflictAnalysis_ = true;
10152  return ((bitField0_ & 0x00000400) != 0);
10153  }
10166  return subsumptionDuringConflictAnalysis_;
10167  }
10181  bitField0_ |= 0x00000400;
10182  subsumptionDuringConflictAnalysis_ = value;
10183  onChanged();
10184  return this;
10185  }
10198  bitField0_ = (bitField0_ & ~0x00000400);
10199  subsumptionDuringConflictAnalysis_ = true;
10200  onChanged();
10201  return this;
10202  }
10203 
10204  private int clauseCleanupPeriod_ = 10000;
10213  public boolean hasClauseCleanupPeriod() {
10214  return ((bitField0_ & 0x00000800) != 0);
10215  }
10224  public int getClauseCleanupPeriod() {
10225  return clauseCleanupPeriod_;
10226  }
10236  public Builder setClauseCleanupPeriod(int value) {
10237  bitField0_ |= 0x00000800;
10238  clauseCleanupPeriod_ = value;
10239  onChanged();
10240  return this;
10241  }
10251  bitField0_ = (bitField0_ & ~0x00000800);
10252  clauseCleanupPeriod_ = 10000;
10253  onChanged();
10254  return this;
10255  }
10256 
10257  private int clauseCleanupTarget_ = 10000;
10267  public boolean hasClauseCleanupTarget() {
10268  return ((bitField0_ & 0x00001000) != 0);
10269  }
10279  public int getClauseCleanupTarget() {
10280  return clauseCleanupTarget_;
10281  }
10292  public Builder setClauseCleanupTarget(int value) {
10293  bitField0_ |= 0x00001000;
10294  clauseCleanupTarget_ = value;
10295  onChanged();
10296  return this;
10297  }
10308  bitField0_ = (bitField0_ & ~0x00001000);
10309  clauseCleanupTarget_ = 10000;
10310  onChanged();
10311  return this;
10312  }
10313 
10314  private int clauseCleanupProtection_ = 0;
10319  public boolean hasClauseCleanupProtection() {
10320  return ((bitField0_ & 0x00002000) != 0);
10321  }
10327  @SuppressWarnings("deprecation")
10329  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
10330  }
10337  if (value == null) {
10338  throw new NullPointerException();
10339  }
10340  bitField0_ |= 0x00002000;
10341  clauseCleanupProtection_ = value.getNumber();
10342  onChanged();
10343  return this;
10344  }
10350  bitField0_ = (bitField0_ & ~0x00002000);
10351  clauseCleanupProtection_ = 0;
10352  onChanged();
10353  return this;
10354  }
10355 
10356  private int clauseCleanupLbdBound_ = 5;
10366  public boolean hasClauseCleanupLbdBound() {
10367  return ((bitField0_ & 0x00004000) != 0);
10368  }
10379  return clauseCleanupLbdBound_;
10380  }
10391  public Builder setClauseCleanupLbdBound(int value) {
10392  bitField0_ |= 0x00004000;
10393  clauseCleanupLbdBound_ = value;
10394  onChanged();
10395  return this;
10396  }
10407  bitField0_ = (bitField0_ & ~0x00004000);
10408  clauseCleanupLbdBound_ = 5;
10409  onChanged();
10410  return this;
10411  }
10412 
10413  private int clauseCleanupOrdering_ = 0;
10418  public boolean hasClauseCleanupOrdering() {
10419  return ((bitField0_ & 0x00008000) != 0);
10420  }
10426  @SuppressWarnings("deprecation")
10428  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
10429  }
10436  if (value == null) {
10437  throw new NullPointerException();
10438  }
10439  bitField0_ |= 0x00008000;
10440  clauseCleanupOrdering_ = value.getNumber();
10441  onChanged();
10442  return this;
10443  }
10449  bitField0_ = (bitField0_ & ~0x00008000);
10450  clauseCleanupOrdering_ = 0;
10451  onChanged();
10452  return this;
10453  }
10454 
10455  private int pbCleanupIncrement_ = 200;
10464  public boolean hasPbCleanupIncrement() {
10465  return ((bitField0_ & 0x00010000) != 0);
10466  }
10475  public int getPbCleanupIncrement() {
10476  return pbCleanupIncrement_;
10477  }
10487  public Builder setPbCleanupIncrement(int value) {
10488  bitField0_ |= 0x00010000;
10489  pbCleanupIncrement_ = value;
10490  onChanged();
10491  return this;
10492  }
10502  bitField0_ = (bitField0_ & ~0x00010000);
10503  pbCleanupIncrement_ = 200;
10504  onChanged();
10505  return this;
10506  }
10507 
10508  private double pbCleanupRatio_ = 0.5D;
10513  public boolean hasPbCleanupRatio() {
10514  return ((bitField0_ & 0x00020000) != 0);
10515  }
10520  public double getPbCleanupRatio() {
10521  return pbCleanupRatio_;
10522  }
10528  public Builder setPbCleanupRatio(double value) {
10529  bitField0_ |= 0x00020000;
10530  pbCleanupRatio_ = value;
10531  onChanged();
10532  return this;
10533  }
10539  bitField0_ = (bitField0_ & ~0x00020000);
10540  pbCleanupRatio_ = 0.5D;
10541  onChanged();
10542  return this;
10543  }
10544 
10545  private int minimizeWithPropagationRestartPeriod_ = 10;
10565  return ((bitField0_ & 0x00040000) != 0);
10566  }
10586  return minimizeWithPropagationRestartPeriod_;
10587  }
10608  bitField0_ |= 0x00040000;
10609  minimizeWithPropagationRestartPeriod_ = value;
10610  onChanged();
10611  return this;
10612  }
10632  bitField0_ = (bitField0_ & ~0x00040000);
10633  minimizeWithPropagationRestartPeriod_ = 10;
10634  onChanged();
10635  return this;
10636  }
10637 
10638  private int minimizeWithPropagationNumDecisions_ = 1000;
10644  return ((bitField0_ & 0x00080000) != 0);
10645  }
10651  return minimizeWithPropagationNumDecisions_;
10652  }
10659  bitField0_ |= 0x00080000;
10660  minimizeWithPropagationNumDecisions_ = value;
10661  onChanged();
10662  return this;
10663  }
10669  bitField0_ = (bitField0_ & ~0x00080000);
10670  minimizeWithPropagationNumDecisions_ = 1000;
10671  onChanged();
10672  return this;
10673  }
10674 
10675  private double variableActivityDecay_ = 0.8D;
10690  public boolean hasVariableActivityDecay() {
10691  return ((bitField0_ & 0x00100000) != 0);
10692  }
10707  public double getVariableActivityDecay() {
10708  return variableActivityDecay_;
10709  }
10725  public Builder setVariableActivityDecay(double value) {
10726  bitField0_ |= 0x00100000;
10727  variableActivityDecay_ = value;
10728  onChanged();
10729  return this;
10730  }
10746  bitField0_ = (bitField0_ & ~0x00100000);
10747  variableActivityDecay_ = 0.8D;
10748  onChanged();
10749  return this;
10750  }
10751 
10752  private double maxVariableActivityValue_ = 1e+100D;
10757  public boolean hasMaxVariableActivityValue() {
10758  return ((bitField0_ & 0x00200000) != 0);
10759  }
10765  return maxVariableActivityValue_;
10766  }
10772  public Builder setMaxVariableActivityValue(double value) {
10773  bitField0_ |= 0x00200000;
10774  maxVariableActivityValue_ = value;
10775  onChanged();
10776  return this;
10777  }
10783  bitField0_ = (bitField0_ & ~0x00200000);
10784  maxVariableActivityValue_ = 1e+100D;
10785  onChanged();
10786  return this;
10787  }
10788 
10789  private double glucoseMaxDecay_ = 0.95D;
10801  public boolean hasGlucoseMaxDecay() {
10802  return ((bitField0_ & 0x00400000) != 0);
10803  }
10815  public double getGlucoseMaxDecay() {
10816  return glucoseMaxDecay_;
10817  }
10830  public Builder setGlucoseMaxDecay(double value) {
10831  bitField0_ |= 0x00400000;
10832  glucoseMaxDecay_ = value;
10833  onChanged();
10834  return this;
10835  }
10848  bitField0_ = (bitField0_ & ~0x00400000);
10849  glucoseMaxDecay_ = 0.95D;
10850  onChanged();
10851  return this;
10852  }
10853 
10854  private double glucoseDecayIncrement_ = 0.01D;
10859  public boolean hasGlucoseDecayIncrement() {
10860  return ((bitField0_ & 0x00800000) != 0);
10861  }
10866  public double getGlucoseDecayIncrement() {
10867  return glucoseDecayIncrement_;
10868  }
10874  public Builder setGlucoseDecayIncrement(double value) {
10875  bitField0_ |= 0x00800000;
10876  glucoseDecayIncrement_ = value;
10877  onChanged();
10878  return this;
10879  }
10885  bitField0_ = (bitField0_ & ~0x00800000);
10886  glucoseDecayIncrement_ = 0.01D;
10887  onChanged();
10888  return this;
10889  }
10890 
10891  private int glucoseDecayIncrementPeriod_ = 5000;
10897  return ((bitField0_ & 0x01000000) != 0);
10898  }
10904  return glucoseDecayIncrementPeriod_;
10905  }
10912  bitField0_ |= 0x01000000;
10913  glucoseDecayIncrementPeriod_ = value;
10914  onChanged();
10915  return this;
10916  }
10922  bitField0_ = (bitField0_ & ~0x01000000);
10923  glucoseDecayIncrementPeriod_ = 5000;
10924  onChanged();
10925  return this;
10926  }
10927 
10928  private double clauseActivityDecay_ = 0.999D;
10937  public boolean hasClauseActivityDecay() {
10938  return ((bitField0_ & 0x02000000) != 0);
10939  }
10948  public double getClauseActivityDecay() {
10949  return clauseActivityDecay_;
10950  }
10960  public Builder setClauseActivityDecay(double value) {
10961  bitField0_ |= 0x02000000;
10962  clauseActivityDecay_ = value;
10963  onChanged();
10964  return this;
10965  }
10975  bitField0_ = (bitField0_ & ~0x02000000);
10976  clauseActivityDecay_ = 0.999D;
10977  onChanged();
10978  return this;
10979  }
10980 
10981  private double maxClauseActivityValue_ = 1e+20D;
10986  public boolean hasMaxClauseActivityValue() {
10987  return ((bitField0_ & 0x04000000) != 0);
10988  }
10993  public double getMaxClauseActivityValue() {
10994  return maxClauseActivityValue_;
10995  }
11001  public Builder setMaxClauseActivityValue(double value) {
11002  bitField0_ |= 0x04000000;
11003  maxClauseActivityValue_ = value;
11004  onChanged();
11005  return this;
11006  }
11012  bitField0_ = (bitField0_ & ~0x04000000);
11013  maxClauseActivityValue_ = 1e+20D;
11014  onChanged();
11015  return this;
11016  }
11017 
11018  private java.util.List<java.lang.Integer> restartAlgorithms_ =
11019  java.util.Collections.emptyList();
11020  private void ensureRestartAlgorithmsIsMutable() {
11021  if (!((bitField0_ & 0x08000000) != 0)) {
11022  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
11023  bitField0_ |= 0x08000000;
11024  }
11025  }
11042  return new com.google.protobuf.Internal.ListAdapter<
11043  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
11044  }
11061  return restartAlgorithms_.size();
11062  }
11080  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
11081  }
11100  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
11101  if (value == null) {
11102  throw new NullPointerException();
11103  }
11104  ensureRestartAlgorithmsIsMutable();
11105  restartAlgorithms_.set(index, value.getNumber());
11106  onChanged();
11107  return this;
11108  }
11126  if (value == null) {
11127  throw new NullPointerException();
11128  }
11129  ensureRestartAlgorithmsIsMutable();
11130  restartAlgorithms_.add(value.getNumber());
11131  onChanged();
11132  return this;
11133  }
11151  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
11152  ensureRestartAlgorithmsIsMutable();
11153  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
11154  restartAlgorithms_.add(value.getNumber());
11155  }
11156  onChanged();
11157  return this;
11158  }
11175  restartAlgorithms_ = java.util.Collections.emptyList();
11176  bitField0_ = (bitField0_ & ~0x08000000);
11177  onChanged();
11178  return this;
11179  }
11180 
11181  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
11186  public boolean hasDefaultRestartAlgorithms() {
11187  return ((bitField0_ & 0x10000000) != 0);
11188  }
11193  public java.lang.String getDefaultRestartAlgorithms() {
11194  java.lang.Object ref = defaultRestartAlgorithms_;
11195  if (!(ref instanceof java.lang.String)) {
11196  com.google.protobuf.ByteString bs =
11197  (com.google.protobuf.ByteString) ref;
11198  java.lang.String s = bs.toStringUtf8();
11199  if (bs.isValidUtf8()) {
11200  defaultRestartAlgorithms_ = s;
11201  }
11202  return s;
11203  } else {
11204  return (java.lang.String) ref;
11205  }
11206  }
11211  public com.google.protobuf.ByteString
11213  java.lang.Object ref = defaultRestartAlgorithms_;
11214  if (ref instanceof String) {
11215  com.google.protobuf.ByteString b =
11216  com.google.protobuf.ByteString.copyFromUtf8(
11217  (java.lang.String) ref);
11218  defaultRestartAlgorithms_ = b;
11219  return b;
11220  } else {
11221  return (com.google.protobuf.ByteString) ref;
11222  }
11223  }
11230  java.lang.String value) {
11231  if (value == null) {
11232  throw new NullPointerException();
11233  }
11234  bitField0_ |= 0x10000000;
11235  defaultRestartAlgorithms_ = value;
11236  onChanged();
11237  return this;
11238  }
11244  bitField0_ = (bitField0_ & ~0x10000000);
11245  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
11246  onChanged();
11247  return this;
11248  }
11255  com.google.protobuf.ByteString value) {
11256  if (value == null) {
11257  throw new NullPointerException();
11258  }
11259  bitField0_ |= 0x10000000;
11260  defaultRestartAlgorithms_ = value;
11261  onChanged();
11262  return this;
11263  }
11264 
11265  private int restartPeriod_ = 50;
11275  public boolean hasRestartPeriod() {
11276  return ((bitField0_ & 0x20000000) != 0);
11277  }
11287  public int getRestartPeriod() {
11288  return restartPeriod_;
11289  }
11300  public Builder setRestartPeriod(int value) {
11301  bitField0_ |= 0x20000000;
11302  restartPeriod_ = value;
11303  onChanged();
11304  return this;
11305  }
11316  bitField0_ = (bitField0_ & ~0x20000000);
11317  restartPeriod_ = 50;
11318  onChanged();
11319  return this;
11320  }
11321 
11322  private int restartRunningWindowSize_ = 50;
11331  public boolean hasRestartRunningWindowSize() {
11332  return ((bitField0_ & 0x40000000) != 0);
11333  }
11343  return restartRunningWindowSize_;
11344  }
11355  bitField0_ |= 0x40000000;
11356  restartRunningWindowSize_ = value;
11357  onChanged();
11358  return this;
11359  }
11369  bitField0_ = (bitField0_ & ~0x40000000);
11370  restartRunningWindowSize_ = 50;
11371  onChanged();
11372  return this;
11373  }
11374 
11375  private double restartDlAverageRatio_ = 1D;
11385  public boolean hasRestartDlAverageRatio() {
11386  return ((bitField0_ & 0x80000000) != 0);
11387  }
11397  public double getRestartDlAverageRatio() {
11398  return restartDlAverageRatio_;
11399  }
11410  public Builder setRestartDlAverageRatio(double value) {
11411  bitField0_ |= 0x80000000;
11412  restartDlAverageRatio_ = value;
11413  onChanged();
11414  return this;
11415  }
11426  bitField0_ = (bitField0_ & ~0x80000000);
11427  restartDlAverageRatio_ = 1D;
11428  onChanged();
11429  return this;
11430  }
11431 
11432  private double restartLbdAverageRatio_ = 1D;
11437  public boolean hasRestartLbdAverageRatio() {
11438  return ((bitField1_ & 0x00000001) != 0);
11439  }
11444  public double getRestartLbdAverageRatio() {
11445  return restartLbdAverageRatio_;
11446  }
11452  public Builder setRestartLbdAverageRatio(double value) {
11453  bitField1_ |= 0x00000001;
11454  restartLbdAverageRatio_ = value;
11455  onChanged();
11456  return this;
11457  }
11463  bitField1_ = (bitField1_ & ~0x00000001);
11464  restartLbdAverageRatio_ = 1D;
11465  onChanged();
11466  return this;
11467  }
11468 
11469  private boolean useBlockingRestart_ ;
11480  public boolean hasUseBlockingRestart() {
11481  return ((bitField1_ & 0x00000002) != 0);
11482  }
11493  public boolean getUseBlockingRestart() {
11494  return useBlockingRestart_;
11495  }
11507  public Builder setUseBlockingRestart(boolean value) {
11508  bitField1_ |= 0x00000002;
11509  useBlockingRestart_ = value;
11510  onChanged();
11511  return this;
11512  }
11524  bitField1_ = (bitField1_ & ~0x00000002);
11525  useBlockingRestart_ = false;
11526  onChanged();
11527  return this;
11528  }
11529 
11530  private int blockingRestartWindowSize_ = 5000;
11535  public boolean hasBlockingRestartWindowSize() {
11536  return ((bitField1_ & 0x00000004) != 0);
11537  }
11543  return blockingRestartWindowSize_;
11544  }
11551  bitField1_ |= 0x00000004;
11552  blockingRestartWindowSize_ = value;
11553  onChanged();
11554  return this;
11555  }
11561  bitField1_ = (bitField1_ & ~0x00000004);
11562  blockingRestartWindowSize_ = 5000;
11563  onChanged();
11564  return this;
11565  }
11566 
11567  private double blockingRestartMultiplier_ = 1.4D;
11572  public boolean hasBlockingRestartMultiplier() {
11573  return ((bitField1_ & 0x00000008) != 0);
11574  }
11580  return blockingRestartMultiplier_;
11581  }
11587  public Builder setBlockingRestartMultiplier(double value) {
11588  bitField1_ |= 0x00000008;
11589  blockingRestartMultiplier_ = value;
11590  onChanged();
11591  return this;
11592  }
11598  bitField1_ = (bitField1_ & ~0x00000008);
11599  blockingRestartMultiplier_ = 1.4D;
11600  onChanged();
11601  return this;
11602  }
11603 
11604  private int numConflictsBeforeStrategyChanges_ ;
11616  return ((bitField1_ & 0x00000010) != 0);
11617  }
11629  return numConflictsBeforeStrategyChanges_;
11630  }
11643  bitField1_ |= 0x00000010;
11644  numConflictsBeforeStrategyChanges_ = value;
11645  onChanged();
11646  return this;
11647  }
11659  bitField1_ = (bitField1_ & ~0x00000010);
11660  numConflictsBeforeStrategyChanges_ = 0;
11661  onChanged();
11662  return this;
11663  }
11664 
11665  private double strategyChangeIncreaseRatio_ ;
11676  return ((bitField1_ & 0x00000020) != 0);
11677  }
11688  return strategyChangeIncreaseRatio_;
11689  }
11701  bitField1_ |= 0x00000020;
11702  strategyChangeIncreaseRatio_ = value;
11703  onChanged();
11704  return this;
11705  }
11716  bitField1_ = (bitField1_ & ~0x00000020);
11717  strategyChangeIncreaseRatio_ = 0D;
11718  onChanged();
11719  return this;
11720  }
11721 
11722  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
11733  public boolean hasMaxTimeInSeconds() {
11734  return ((bitField1_ & 0x00000040) != 0);
11735  }
11746  public double getMaxTimeInSeconds() {
11747  return maxTimeInSeconds_;
11748  }
11760  public Builder setMaxTimeInSeconds(double value) {
11761  bitField1_ |= 0x00000040;
11762  maxTimeInSeconds_ = value;
11763  onChanged();
11764  return this;
11765  }
11777  bitField1_ = (bitField1_ & ~0x00000040);
11778  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
11779  onChanged();
11780  return this;
11781  }
11782 
11783  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
11796  public boolean hasMaxDeterministicTime() {
11797  return ((bitField1_ & 0x00000080) != 0);
11798  }
11811  public double getMaxDeterministicTime() {
11812  return maxDeterministicTime_;
11813  }
11827  public Builder setMaxDeterministicTime(double value) {
11828  bitField1_ |= 0x00000080;
11829  maxDeterministicTime_ = value;
11830  onChanged();
11831  return this;
11832  }
11846  bitField1_ = (bitField1_ & ~0x00000080);
11847  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
11848  onChanged();
11849  return this;
11850  }
11851 
11852  private long maxNumberOfConflicts_ = 9223372036854775807L;
11866  public boolean hasMaxNumberOfConflicts() {
11867  return ((bitField1_ & 0x00000100) != 0);
11868  }
11882  public long getMaxNumberOfConflicts() {
11883  return maxNumberOfConflicts_;
11884  }
11899  public Builder setMaxNumberOfConflicts(long value) {
11900  bitField1_ |= 0x00000100;
11901  maxNumberOfConflicts_ = value;
11902  onChanged();
11903  return this;
11904  }
11919  bitField1_ = (bitField1_ & ~0x00000100);
11920  maxNumberOfConflicts_ = 9223372036854775807L;
11921  onChanged();
11922  return this;
11923  }
11924 
11925  private long maxMemoryInMb_ = 10000L;
11937  public boolean hasMaxMemoryInMb() {
11938  return ((bitField1_ & 0x00000200) != 0);
11939  }
11951  public long getMaxMemoryInMb() {
11952  return maxMemoryInMb_;
11953  }
11966  public Builder setMaxMemoryInMb(long value) {
11967  bitField1_ |= 0x00000200;
11968  maxMemoryInMb_ = value;
11969  onChanged();
11970  return this;
11971  }
11984  bitField1_ = (bitField1_ & ~0x00000200);
11985  maxMemoryInMb_ = 10000L;
11986  onChanged();
11987  return this;
11988  }
11989 
11990  private boolean treatBinaryClausesSeparately_ = true;
12002  return ((bitField1_ & 0x00000400) != 0);
12003  }
12015  return treatBinaryClausesSeparately_;
12016  }
12029  bitField1_ |= 0x00000400;
12030  treatBinaryClausesSeparately_ = value;
12031  onChanged();
12032  return this;
12033  }
12045  bitField1_ = (bitField1_ & ~0x00000400);
12046  treatBinaryClausesSeparately_ = true;
12047  onChanged();
12048  return this;
12049  }
12050 
12051  private int randomSeed_ = 1;
12065  public boolean hasRandomSeed() {
12066  return ((bitField1_ & 0x00000800) != 0);
12067  }
12081  public int getRandomSeed() {
12082  return randomSeed_;
12083  }
12098  public Builder setRandomSeed(int value) {
12099  bitField1_ |= 0x00000800;
12100  randomSeed_ = value;
12101  onChanged();
12102  return this;
12103  }
12118  bitField1_ = (bitField1_ & ~0x00000800);
12119  randomSeed_ = 1;
12120  onChanged();
12121  return this;
12122  }
12123 
12124  private boolean logSearchProgress_ ;
12133  public boolean hasLogSearchProgress() {
12134  return ((bitField1_ & 0x00001000) != 0);
12135  }
12144  public boolean getLogSearchProgress() {
12145  return logSearchProgress_;
12146  }
12156  public Builder setLogSearchProgress(boolean value) {
12157  bitField1_ |= 0x00001000;
12158  logSearchProgress_ = value;
12159  onChanged();
12160  return this;
12161  }
12171  bitField1_ = (bitField1_ & ~0x00001000);
12172  logSearchProgress_ = false;
12173  onChanged();
12174  return this;
12175  }
12176 
12177  private boolean usePbResolution_ ;
12189  public boolean hasUsePbResolution() {
12190  return ((bitField1_ & 0x00002000) != 0);
12191  }
12203  public boolean getUsePbResolution() {
12204  return usePbResolution_;
12205  }
12218  public Builder setUsePbResolution(boolean value) {
12219  bitField1_ |= 0x00002000;
12220  usePbResolution_ = value;
12221  onChanged();
12222  return this;
12223  }
12236  bitField1_ = (bitField1_ & ~0x00002000);
12237  usePbResolution_ = false;
12238  onChanged();
12239  return this;
12240  }
12241 
12242  private boolean minimizeReductionDuringPbResolution_ ;
12255  return ((bitField1_ & 0x00004000) != 0);
12256  }
12269  return minimizeReductionDuringPbResolution_;
12270  }
12284  bitField1_ |= 0x00004000;
12285  minimizeReductionDuringPbResolution_ = value;
12286  onChanged();
12287  return this;
12288  }
12301  bitField1_ = (bitField1_ & ~0x00004000);
12302  minimizeReductionDuringPbResolution_ = false;
12303  onChanged();
12304  return this;
12305  }
12306 
12307  private boolean countAssumptionLevelsInLbd_ = true;
12324  return ((bitField1_ & 0x00008000) != 0);
12325  }
12342  return countAssumptionLevelsInLbd_;
12343  }
12360  public Builder setCountAssumptionLevelsInLbd(boolean value) {
12361  bitField1_ |= 0x00008000;
12362  countAssumptionLevelsInLbd_ = value;
12363  onChanged();
12364  return this;
12365  }
12382  bitField1_ = (bitField1_ & ~0x00008000);
12383  countAssumptionLevelsInLbd_ = true;
12384  onChanged();
12385  return this;
12386  }
12387 
12388  private int presolveBveThreshold_ = 500;
12399  public boolean hasPresolveBveThreshold() {
12400  return ((bitField1_ & 0x00010000) != 0);
12401  }
12413  return presolveBveThreshold_;
12414  }
12426  public Builder setPresolveBveThreshold(int value) {
12427  bitField1_ |= 0x00010000;
12428  presolveBveThreshold_ = value;
12429  onChanged();
12430  return this;
12431  }
12443  bitField1_ = (bitField1_ & ~0x00010000);
12444  presolveBveThreshold_ = 500;
12445  onChanged();
12446  return this;
12447  }
12448 
12449  private int presolveBveClauseWeight_ = 3;
12459  public boolean hasPresolveBveClauseWeight() {
12460  return ((bitField1_ & 0x00020000) != 0);
12461  }
12472  return presolveBveClauseWeight_;
12473  }
12485  bitField1_ |= 0x00020000;
12486  presolveBveClauseWeight_ = value;
12487  onChanged();
12488  return this;
12489  }
12500  bitField1_ = (bitField1_ & ~0x00020000);
12501  presolveBveClauseWeight_ = 3;
12502  onChanged();
12503  return this;
12504  }
12505 
12506  private double presolveProbingDeterministicTimeLimit_ = 30D;
12517  return ((bitField1_ & 0x00040000) != 0);
12518  }
12529  return presolveProbingDeterministicTimeLimit_;
12530  }
12542  bitField1_ |= 0x00040000;
12543  presolveProbingDeterministicTimeLimit_ = value;
12544  onChanged();
12545  return this;
12546  }
12557  bitField1_ = (bitField1_ & ~0x00040000);
12558  presolveProbingDeterministicTimeLimit_ = 30D;
12559  onChanged();
12560  return this;
12561  }
12562 
12563  private boolean presolveBlockedClause_ = true;
12573  public boolean hasPresolveBlockedClause() {
12574  return ((bitField1_ & 0x00080000) != 0);
12575  }
12585  public boolean getPresolveBlockedClause() {
12586  return presolveBlockedClause_;
12587  }
12598  public Builder setPresolveBlockedClause(boolean value) {
12599  bitField1_ |= 0x00080000;
12600  presolveBlockedClause_ = value;
12601  onChanged();
12602  return this;
12603  }
12614  bitField1_ = (bitField1_ & ~0x00080000);
12615  presolveBlockedClause_ = true;
12616  onChanged();
12617  return this;
12618  }
12619 
12620  private boolean presolveUseBva_ = true;
12629  public boolean hasPresolveUseBva() {
12630  return ((bitField1_ & 0x00100000) != 0);
12631  }
12640  public boolean getPresolveUseBva() {
12641  return presolveUseBva_;
12642  }
12652  public Builder setPresolveUseBva(boolean value) {
12653  bitField1_ |= 0x00100000;
12654  presolveUseBva_ = value;
12655  onChanged();
12656  return this;
12657  }
12667  bitField1_ = (bitField1_ & ~0x00100000);
12668  presolveUseBva_ = true;
12669  onChanged();
12670  return this;
12671  }
12672 
12673  private int presolveBvaThreshold_ = 1;
12685  public boolean hasPresolveBvaThreshold() {
12686  return ((bitField1_ & 0x00200000) != 0);
12687  }
12700  return presolveBvaThreshold_;
12701  }
12714  public Builder setPresolveBvaThreshold(int value) {
12715  bitField1_ |= 0x00200000;
12716  presolveBvaThreshold_ = value;
12717  onChanged();
12718  return this;
12719  }
12732  bitField1_ = (bitField1_ & ~0x00200000);
12733  presolveBvaThreshold_ = 1;
12734  onChanged();
12735  return this;
12736  }
12737 
12738  private int maxPresolveIterations_ = 3;
12749  public boolean hasMaxPresolveIterations() {
12750  return ((bitField1_ & 0x00400000) != 0);
12751  }
12763  return maxPresolveIterations_;
12764  }
12776  public Builder setMaxPresolveIterations(int value) {
12777  bitField1_ |= 0x00400000;
12778  maxPresolveIterations_ = value;
12779  onChanged();
12780  return this;
12781  }
12793  bitField1_ = (bitField1_ & ~0x00400000);
12794  maxPresolveIterations_ = 3;
12795  onChanged();
12796  return this;
12797  }
12798 
12799  private boolean cpModelPresolve_ = true;
12808  public boolean hasCpModelPresolve() {
12809  return ((bitField1_ & 0x00800000) != 0);
12810  }
12819  public boolean getCpModelPresolve() {
12820  return cpModelPresolve_;
12821  }
12831  public Builder setCpModelPresolve(boolean value) {
12832  bitField1_ |= 0x00800000;
12833  cpModelPresolve_ = value;
12834  onChanged();
12835  return this;
12836  }
12846  bitField1_ = (bitField1_ & ~0x00800000);
12847  cpModelPresolve_ = true;
12848  onChanged();
12849  return this;
12850  }
12851 
12852  private int cpModelProbingLevel_ = 2;
12861  public boolean hasCpModelProbingLevel() {
12862  return ((bitField1_ & 0x01000000) != 0);
12863  }
12872  public int getCpModelProbingLevel() {
12873  return cpModelProbingLevel_;
12874  }
12884  public Builder setCpModelProbingLevel(int value) {
12885  bitField1_ |= 0x01000000;
12886  cpModelProbingLevel_ = value;
12887  onChanged();
12888  return this;
12889  }
12899  bitField1_ = (bitField1_ & ~0x01000000);
12900  cpModelProbingLevel_ = 2;
12901  onChanged();
12902  return this;
12903  }
12904 
12905  private boolean cpModelUseSatPresolve_ = true;
12914  public boolean hasCpModelUseSatPresolve() {
12915  return ((bitField1_ & 0x02000000) != 0);
12916  }
12925  public boolean getCpModelUseSatPresolve() {
12926  return cpModelUseSatPresolve_;
12927  }
12937  public Builder setCpModelUseSatPresolve(boolean value) {
12938  bitField1_ |= 0x02000000;
12939  cpModelUseSatPresolve_ = value;
12940  onChanged();
12941  return this;
12942  }
12952  bitField1_ = (bitField1_ & ~0x02000000);
12953  cpModelUseSatPresolve_ = true;
12954  onChanged();
12955  return this;
12956  }
12957 
12958  private boolean expandElementConstraints_ = true;
12968  public boolean hasExpandElementConstraints() {
12969  return ((bitField1_ & 0x04000000) != 0);
12970  }
12980  public boolean getExpandElementConstraints() {
12981  return expandElementConstraints_;
12982  }
12993  public Builder setExpandElementConstraints(boolean value) {
12994  bitField1_ |= 0x04000000;
12995  expandElementConstraints_ = value;
12996  onChanged();
12997  return this;
12998  }
13009  bitField1_ = (bitField1_ & ~0x04000000);
13010  expandElementConstraints_ = true;
13011  onChanged();
13012  return this;
13013  }
13014 
13015  private boolean expandAutomatonConstraints_ = true;
13025  return ((bitField1_ & 0x08000000) != 0);
13026  }
13036  return expandAutomatonConstraints_;
13037  }
13047  public Builder setExpandAutomatonConstraints(boolean value) {
13048  bitField1_ |= 0x08000000;
13049  expandAutomatonConstraints_ = value;
13050  onChanged();
13051  return this;
13052  }
13062  bitField1_ = (bitField1_ & ~0x08000000);
13063  expandAutomatonConstraints_ = true;
13064  onChanged();
13065  return this;
13066  }
13067 
13068  private double mergeNoOverlapWorkLimit_ = 1000000000000D;
13081  public boolean hasMergeNoOverlapWorkLimit() {
13082  return ((bitField1_ & 0x10000000) != 0);
13083  }
13096  public double getMergeNoOverlapWorkLimit() {
13097  return mergeNoOverlapWorkLimit_;
13098  }
13112  public Builder setMergeNoOverlapWorkLimit(double value) {
13113  bitField1_ |= 0x10000000;
13114  mergeNoOverlapWorkLimit_ = value;
13115  onChanged();
13116  return this;
13117  }
13131  bitField1_ = (bitField1_ & ~0x10000000);
13132  mergeNoOverlapWorkLimit_ = 1000000000000D;
13133  onChanged();
13134  return this;
13135  }
13136 
13137  private double mergeAtMostOneWorkLimit_ = 100000000D;
13142  public boolean hasMergeAtMostOneWorkLimit() {
13143  return ((bitField1_ & 0x20000000) != 0);
13144  }
13149  public double getMergeAtMostOneWorkLimit() {
13150  return mergeAtMostOneWorkLimit_;
13151  }
13157  public Builder setMergeAtMostOneWorkLimit(double value) {
13158  bitField1_ |= 0x20000000;
13159  mergeAtMostOneWorkLimit_ = value;
13160  onChanged();
13161  return this;
13162  }
13168  bitField1_ = (bitField1_ & ~0x20000000);
13169  mergeAtMostOneWorkLimit_ = 100000000D;
13170  onChanged();
13171  return this;
13172  }
13173 
13174  private int presolveSubstitutionLevel_ = 1;
13186  public boolean hasPresolveSubstitutionLevel() {
13187  return ((bitField1_ & 0x40000000) != 0);
13188  }
13201  return presolveSubstitutionLevel_;
13202  }
13216  bitField1_ |= 0x40000000;
13217  presolveSubstitutionLevel_ = value;
13218  onChanged();
13219  return this;
13220  }
13233  bitField1_ = (bitField1_ & ~0x40000000);
13234  presolveSubstitutionLevel_ = 1;
13235  onChanged();
13236  return this;
13237  }
13238 
13239  private boolean useOptimizationHints_ = true;
13251  public boolean hasUseOptimizationHints() {
13252  return ((bitField1_ & 0x80000000) != 0);
13253  }
13265  public boolean getUseOptimizationHints() {
13266  return useOptimizationHints_;
13267  }
13280  public Builder setUseOptimizationHints(boolean value) {
13281  bitField1_ |= 0x80000000;
13282  useOptimizationHints_ = value;
13283  onChanged();
13284  return this;
13285  }
13298  bitField1_ = (bitField1_ & ~0x80000000);
13299  useOptimizationHints_ = true;
13300  onChanged();
13301  return this;
13302  }
13303 
13304  private boolean minimizeCore_ = true;
13313  public boolean hasMinimizeCore() {
13314  return ((bitField2_ & 0x00000001) != 0);
13315  }
13324  public boolean getMinimizeCore() {
13325  return minimizeCore_;
13326  }
13336  public Builder setMinimizeCore(boolean value) {
13337  bitField2_ |= 0x00000001;
13338  minimizeCore_ = value;
13339  onChanged();
13340  return this;
13341  }
13351  bitField2_ = (bitField2_ & ~0x00000001);
13352  minimizeCore_ = true;
13353  onChanged();
13354  return this;
13355  }
13356 
13357  private boolean findMultipleCores_ = true;
13367  public boolean hasFindMultipleCores() {
13368  return ((bitField2_ & 0x00000002) != 0);
13369  }
13379  public boolean getFindMultipleCores() {
13380  return findMultipleCores_;
13381  }
13392  public Builder setFindMultipleCores(boolean value) {
13393  bitField2_ |= 0x00000002;
13394  findMultipleCores_ = value;
13395  onChanged();
13396  return this;
13397  }
13408  bitField2_ = (bitField2_ & ~0x00000002);
13409  findMultipleCores_ = true;
13410  onChanged();
13411  return this;
13412  }
13413 
13414  private boolean coverOptimization_ = true;
13424  public boolean hasCoverOptimization() {
13425  return ((bitField2_ & 0x00000004) != 0);
13426  }
13436  public boolean getCoverOptimization() {
13437  return coverOptimization_;
13438  }
13449  public Builder setCoverOptimization(boolean value) {
13450  bitField2_ |= 0x00000004;
13451  coverOptimization_ = value;
13452  onChanged();
13453  return this;
13454  }
13465  bitField2_ = (bitField2_ & ~0x00000004);
13466  coverOptimization_ = true;
13467  onChanged();
13468  return this;
13469  }
13470 
13471  private int maxSatAssumptionOrder_ = 0;
13476  public boolean hasMaxSatAssumptionOrder() {
13477  return ((bitField2_ & 0x00000008) != 0);
13478  }
13484  @SuppressWarnings("deprecation")
13487  }
13494  if (value == null) {
13495  throw new NullPointerException();
13496  }
13497  bitField2_ |= 0x00000008;
13498  maxSatAssumptionOrder_ = value.getNumber();
13499  onChanged();
13500  return this;
13501  }
13507  bitField2_ = (bitField2_ & ~0x00000008);
13508  maxSatAssumptionOrder_ = 0;
13509  onChanged();
13510  return this;
13511  }
13512 
13513  private boolean maxSatReverseAssumptionOrder_ ;
13524  return ((bitField2_ & 0x00000010) != 0);
13525  }
13536  return maxSatReverseAssumptionOrder_;
13537  }
13549  bitField2_ |= 0x00000010;
13550  maxSatReverseAssumptionOrder_ = value;
13551  onChanged();
13552  return this;
13553  }
13564  bitField2_ = (bitField2_ & ~0x00000010);
13565  maxSatReverseAssumptionOrder_ = false;
13566  onChanged();
13567  return this;
13568  }
13569 
13570  private int maxSatStratification_ = 1;
13575  public boolean hasMaxSatStratification() {
13576  return ((bitField2_ & 0x00000020) != 0);
13577  }
13583  @SuppressWarnings("deprecation")
13586  }
13593  if (value == null) {
13594  throw new NullPointerException();
13595  }
13596  bitField2_ |= 0x00000020;
13597  maxSatStratification_ = value.getNumber();
13598  onChanged();
13599  return this;
13600  }
13606  bitField2_ = (bitField2_ & ~0x00000020);
13607  maxSatStratification_ = 1;
13608  onChanged();
13609  return this;
13610  }
13611 
13612  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
13629  return ((bitField2_ & 0x00000040) != 0);
13630  }
13647  return usePrecedencesInDisjunctiveConstraint_;
13648  }
13666  bitField2_ |= 0x00000040;
13667  usePrecedencesInDisjunctiveConstraint_ = value;
13668  onChanged();
13669  return this;
13670  }
13687  bitField2_ = (bitField2_ & ~0x00000040);
13688  usePrecedencesInDisjunctiveConstraint_ = true;
13689  onChanged();
13690  return this;
13691  }
13692 
13693  private boolean useOverloadCheckerInCumulativeConstraint_ ;
13708  return ((bitField2_ & 0x00000080) != 0);
13709  }
13724  return useOverloadCheckerInCumulativeConstraint_;
13725  }
13741  bitField2_ |= 0x00000080;
13742  useOverloadCheckerInCumulativeConstraint_ = value;
13743  onChanged();
13744  return this;
13745  }
13760  bitField2_ = (bitField2_ & ~0x00000080);
13761  useOverloadCheckerInCumulativeConstraint_ = false;
13762  onChanged();
13763  return this;
13764  }
13765 
13766  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
13781  return ((bitField2_ & 0x00000100) != 0);
13782  }
13797  return useTimetableEdgeFindingInCumulativeConstraint_;
13798  }
13814  bitField2_ |= 0x00000100;
13815  useTimetableEdgeFindingInCumulativeConstraint_ = value;
13816  onChanged();
13817  return this;
13818  }
13833  bitField2_ = (bitField2_ & ~0x00000100);
13834  useTimetableEdgeFindingInCumulativeConstraint_ = false;
13835  onChanged();
13836  return this;
13837  }
13838 
13839  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
13856  return ((bitField2_ & 0x00000200) != 0);
13857  }
13874  return useDisjunctiveConstraintInCumulativeConstraint_;
13875  }
13893  bitField2_ |= 0x00000200;
13894  useDisjunctiveConstraintInCumulativeConstraint_ = value;
13895  onChanged();
13896  return this;
13897  }
13914  bitField2_ = (bitField2_ & ~0x00000200);
13915  useDisjunctiveConstraintInCumulativeConstraint_ = true;
13916  onChanged();
13917  return this;
13918  }
13919 
13920  private int linearizationLevel_ = 1;
13932  public boolean hasLinearizationLevel() {
13933  return ((bitField2_ & 0x00000400) != 0);
13934  }
13946  public int getLinearizationLevel() {
13947  return linearizationLevel_;
13948  }
13961  public Builder setLinearizationLevel(int value) {
13962  bitField2_ |= 0x00000400;
13963  linearizationLevel_ = value;
13964  onChanged();
13965  return this;
13966  }
13979  bitField2_ = (bitField2_ & ~0x00000400);
13980  linearizationLevel_ = 1;
13981  onChanged();
13982  return this;
13983  }
13984 
13985  private int booleanEncodingLevel_ = 1;
13995  public boolean hasBooleanEncodingLevel() {
13996  return ((bitField2_ & 0x00000800) != 0);
13997  }
14008  return booleanEncodingLevel_;
14009  }
14020  public Builder setBooleanEncodingLevel(int value) {
14021  bitField2_ |= 0x00000800;
14022  booleanEncodingLevel_ = value;
14023  onChanged();
14024  return this;
14025  }
14036  bitField2_ = (bitField2_ & ~0x00000800);
14037  booleanEncodingLevel_ = 1;
14038  onChanged();
14039  return this;
14040  }
14041 
14042  private int maxNumCuts_ = 5000;
14054  public boolean hasMaxNumCuts() {
14055  return ((bitField2_ & 0x00001000) != 0);
14056  }
14068  public int getMaxNumCuts() {
14069  return maxNumCuts_;
14070  }
14083  public Builder setMaxNumCuts(int value) {
14084  bitField2_ |= 0x00001000;
14085  maxNumCuts_ = value;
14086  onChanged();
14087  return this;
14088  }
14101  bitField2_ = (bitField2_ & ~0x00001000);
14102  maxNumCuts_ = 5000;
14103  onChanged();
14104  return this;
14105  }
14106 
14107  private boolean onlyAddCutsAtLevelZero_ ;
14117  public boolean hasOnlyAddCutsAtLevelZero() {
14118  return ((bitField2_ & 0x00002000) != 0);
14119  }
14129  public boolean getOnlyAddCutsAtLevelZero() {
14130  return onlyAddCutsAtLevelZero_;
14131  }
14142  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
14143  bitField2_ |= 0x00002000;
14144  onlyAddCutsAtLevelZero_ = value;
14145  onChanged();
14146  return this;
14147  }
14158  bitField2_ = (bitField2_ & ~0x00002000);
14159  onlyAddCutsAtLevelZero_ = false;
14160  onChanged();
14161  return this;
14162  }
14163 
14164  private boolean addKnapsackCuts_ ;
14175  public boolean hasAddKnapsackCuts() {
14176  return ((bitField2_ & 0x00004000) != 0);
14177  }
14188  public boolean getAddKnapsackCuts() {
14189  return addKnapsackCuts_;
14190  }
14202  public Builder setAddKnapsackCuts(boolean value) {
14203  bitField2_ |= 0x00004000;
14204  addKnapsackCuts_ = value;
14205  onChanged();
14206  return this;
14207  }
14219  bitField2_ = (bitField2_ & ~0x00004000);
14220  addKnapsackCuts_ = false;
14221  onChanged();
14222  return this;
14223  }
14224 
14225  private boolean addCgCuts_ ;
14235  public boolean hasAddCgCuts() {
14236  return ((bitField2_ & 0x00008000) != 0);
14237  }
14247  public boolean getAddCgCuts() {
14248  return addCgCuts_;
14249  }
14260  public Builder setAddCgCuts(boolean value) {
14261  bitField2_ |= 0x00008000;
14262  addCgCuts_ = value;
14263  onChanged();
14264  return this;
14265  }
14276  bitField2_ = (bitField2_ & ~0x00008000);
14277  addCgCuts_ = false;
14278  onChanged();
14279  return this;
14280  }
14281 
14282  private boolean addMirCuts_ = true;
14292  public boolean hasAddMirCuts() {
14293  return ((bitField2_ & 0x00010000) != 0);
14294  }
14304  public boolean getAddMirCuts() {
14305  return addMirCuts_;
14306  }
14317  public Builder setAddMirCuts(boolean value) {
14318  bitField2_ |= 0x00010000;
14319  addMirCuts_ = value;
14320  onChanged();
14321  return this;
14322  }
14333  bitField2_ = (bitField2_ & ~0x00010000);
14334  addMirCuts_ = true;
14335  onChanged();
14336  return this;
14337  }
14338 
14339  private int maxAllDiffCutSize_ = 7;
14350  public boolean hasMaxAllDiffCutSize() {
14351  return ((bitField2_ & 0x00020000) != 0);
14352  }
14363  public int getMaxAllDiffCutSize() {
14364  return maxAllDiffCutSize_;
14365  }
14377  public Builder setMaxAllDiffCutSize(int value) {
14378  bitField2_ |= 0x00020000;
14379  maxAllDiffCutSize_ = value;
14380  onChanged();
14381  return this;
14382  }
14394  bitField2_ = (bitField2_ & ~0x00020000);
14395  maxAllDiffCutSize_ = 7;
14396  onChanged();
14397  return this;
14398  }
14399 
14400  private boolean useMirRounding_ = true;
14411  public boolean hasUseMirRounding() {
14412  return ((bitField2_ & 0x00040000) != 0);
14413  }
14424  public boolean getUseMirRounding() {
14425  return useMirRounding_;
14426  }
14438  public Builder setUseMirRounding(boolean value) {
14439  bitField2_ |= 0x00040000;
14440  useMirRounding_ = value;
14441  onChanged();
14442  return this;
14443  }
14455  bitField2_ = (bitField2_ & ~0x00040000);
14456  useMirRounding_ = true;
14457  onChanged();
14458  return this;
14459  }
14460 
14461  private int maxIntegerRoundingScaling_ = 600;
14474  public boolean hasMaxIntegerRoundingScaling() {
14475  return ((bitField2_ & 0x00080000) != 0);
14476  }
14490  return maxIntegerRoundingScaling_;
14491  }
14506  bitField2_ |= 0x00080000;
14507  maxIntegerRoundingScaling_ = value;
14508  onChanged();
14509  return this;
14510  }
14524  bitField2_ = (bitField2_ & ~0x00080000);
14525  maxIntegerRoundingScaling_ = 600;
14526  onChanged();
14527  return this;
14528  }
14529 
14530  private boolean addLpConstraintsLazily_ = true;
14542  public boolean hasAddLpConstraintsLazily() {
14543  return ((bitField2_ & 0x00100000) != 0);
14544  }
14556  public boolean getAddLpConstraintsLazily() {
14557  return addLpConstraintsLazily_;
14558  }
14571  public Builder setAddLpConstraintsLazily(boolean value) {
14572  bitField2_ |= 0x00100000;
14573  addLpConstraintsLazily_ = value;
14574  onChanged();
14575  return this;
14576  }
14589  bitField2_ = (bitField2_ & ~0x00100000);
14590  addLpConstraintsLazily_ = true;
14591  onChanged();
14592  return this;
14593  }
14594 
14595  private double minOrthogonalityForLpConstraints_ ;
14609  return ((bitField2_ & 0x00200000) != 0);
14610  }
14624  return minOrthogonalityForLpConstraints_;
14625  }
14640  bitField2_ |= 0x00200000;
14641  minOrthogonalityForLpConstraints_ = value;
14642  onChanged();
14643  return this;
14644  }
14658  bitField2_ = (bitField2_ & ~0x00200000);
14659  minOrthogonalityForLpConstraints_ = 0D;
14660  onChanged();
14661  return this;
14662  }
14663 
14664  private int maxConsecutiveInactiveCount_ = 100;
14676  return ((bitField2_ & 0x00400000) != 0);
14677  }
14689  return maxConsecutiveInactiveCount_;
14690  }
14703  bitField2_ |= 0x00400000;
14704  maxConsecutiveInactiveCount_ = value;
14705  onChanged();
14706  return this;
14707  }
14719  bitField2_ = (bitField2_ & ~0x00400000);
14720  maxConsecutiveInactiveCount_ = 100;
14721  onChanged();
14722  return this;
14723  }
14724 
14725  private int newConstraintsBatchSize_ = 50;
14735  public boolean hasNewConstraintsBatchSize() {
14736  return ((bitField2_ & 0x00800000) != 0);
14737  }
14748  return newConstraintsBatchSize_;
14749  }
14761  bitField2_ |= 0x00800000;
14762  newConstraintsBatchSize_ = value;
14763  onChanged();
14764  return this;
14765  }
14776  bitField2_ = (bitField2_ & ~0x00800000);
14777  newConstraintsBatchSize_ = 50;
14778  onChanged();
14779  return this;
14780  }
14781 
14782  private int searchBranching_ = 0;
14787  public boolean hasSearchBranching() {
14788  return ((bitField2_ & 0x01000000) != 0);
14789  }
14795  @SuppressWarnings("deprecation")
14797  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
14798  }
14805  if (value == null) {
14806  throw new NullPointerException();
14807  }
14808  bitField2_ |= 0x01000000;
14809  searchBranching_ = value.getNumber();
14810  onChanged();
14811  return this;
14812  }
14818  bitField2_ = (bitField2_ & ~0x01000000);
14819  searchBranching_ = 0;
14820  onChanged();
14821  return this;
14822  }
14823 
14824  private boolean exploitIntegerLpSolution_ = true;
14836  public boolean hasExploitIntegerLpSolution() {
14837  return ((bitField2_ & 0x02000000) != 0);
14838  }
14850  public boolean getExploitIntegerLpSolution() {
14851  return exploitIntegerLpSolution_;
14852  }
14865  public Builder setExploitIntegerLpSolution(boolean value) {
14866  bitField2_ |= 0x02000000;
14867  exploitIntegerLpSolution_ = value;
14868  onChanged();
14869  return this;
14870  }
14883  bitField2_ = (bitField2_ & ~0x02000000);
14884  exploitIntegerLpSolution_ = true;
14885  onChanged();
14886  return this;
14887  }
14888 
14889  private boolean exploitAllLpSolution_ = true;
14900  public boolean hasExploitAllLpSolution() {
14901  return ((bitField2_ & 0x04000000) != 0);
14902  }
14913  public boolean getExploitAllLpSolution() {
14914  return exploitAllLpSolution_;
14915  }
14927  public Builder setExploitAllLpSolution(boolean value) {
14928  bitField2_ |= 0x04000000;
14929  exploitAllLpSolution_ = value;
14930  onChanged();
14931  return this;
14932  }
14944  bitField2_ = (bitField2_ & ~0x04000000);
14945  exploitAllLpSolution_ = true;
14946  onChanged();
14947  return this;
14948  }
14949 
14950  private boolean exploitBestSolution_ ;
14959  public boolean hasExploitBestSolution() {
14960  return ((bitField2_ & 0x08000000) != 0);
14961  }
14970  public boolean getExploitBestSolution() {
14971  return exploitBestSolution_;
14972  }
14982  public Builder setExploitBestSolution(boolean value) {
14983  bitField2_ |= 0x08000000;
14984  exploitBestSolution_ = value;
14985  onChanged();
14986  return this;
14987  }
14997  bitField2_ = (bitField2_ & ~0x08000000);
14998  exploitBestSolution_ = false;
14999  onChanged();
15000  return this;
15001  }
15002 
15003  private boolean exploitObjective_ = true;
15013  public boolean hasExploitObjective() {
15014  return ((bitField2_ & 0x10000000) != 0);
15015  }
15025  public boolean getExploitObjective() {
15026  return exploitObjective_;
15027  }
15038  public Builder setExploitObjective(boolean value) {
15039  bitField2_ |= 0x10000000;
15040  exploitObjective_ = value;
15041  onChanged();
15042  return this;
15043  }
15054  bitField2_ = (bitField2_ & ~0x10000000);
15055  exploitObjective_ = true;
15056  onChanged();
15057  return this;
15058  }
15059 
15060  private long probingPeriodAtRoot_ ;
15071  public boolean hasProbingPeriodAtRoot() {
15072  return ((bitField2_ & 0x20000000) != 0);
15073  }
15084  public long getProbingPeriodAtRoot() {
15085  return probingPeriodAtRoot_;
15086  }
15098  public Builder setProbingPeriodAtRoot(long value) {
15099  bitField2_ |= 0x20000000;
15100  probingPeriodAtRoot_ = value;
15101  onChanged();
15102  return this;
15103  }
15115  bitField2_ = (bitField2_ & ~0x20000000);
15116  probingPeriodAtRoot_ = 0L;
15117  onChanged();
15118  return this;
15119  }
15120 
15121  private long pseudoCostReliabilityThreshold_ = 100L;
15132  return ((bitField2_ & 0x40000000) != 0);
15133  }
15144  return pseudoCostReliabilityThreshold_;
15145  }
15157  bitField2_ |= 0x40000000;
15158  pseudoCostReliabilityThreshold_ = value;
15159  onChanged();
15160  return this;
15161  }
15172  bitField2_ = (bitField2_ & ~0x40000000);
15173  pseudoCostReliabilityThreshold_ = 100L;
15174  onChanged();
15175  return this;
15176  }
15177 
15178  private boolean optimizeWithCore_ ;
15190  public boolean hasOptimizeWithCore() {
15191  return ((bitField2_ & 0x80000000) != 0);
15192  }
15204  public boolean getOptimizeWithCore() {
15205  return optimizeWithCore_;
15206  }
15219  public Builder setOptimizeWithCore(boolean value) {
15220  bitField2_ |= 0x80000000;
15221  optimizeWithCore_ = value;
15222  onChanged();
15223  return this;
15224  }
15237  bitField2_ = (bitField2_ & ~0x80000000);
15238  optimizeWithCore_ = false;
15239  onChanged();
15240  return this;
15241  }
15242 
15243  private int binarySearchNumConflicts_ = -1;
15255  public boolean hasBinarySearchNumConflicts() {
15256  return ((bitField3_ & 0x00000001) != 0);
15257  }
15270  return binarySearchNumConflicts_;
15271  }
15285  bitField3_ |= 0x00000001;
15286  binarySearchNumConflicts_ = value;
15287  onChanged();
15288  return this;
15289  }
15302  bitField3_ = (bitField3_ & ~0x00000001);
15303  binarySearchNumConflicts_ = -1;
15304  onChanged();
15305  return this;
15306  }
15307 
15308  private boolean optimizeWithMaxHs_ ;
15322  public boolean hasOptimizeWithMaxHs() {
15323  return ((bitField3_ & 0x00000002) != 0);
15324  }
15338  public boolean getOptimizeWithMaxHs() {
15339  return optimizeWithMaxHs_;
15340  }
15355  public Builder setOptimizeWithMaxHs(boolean value) {
15356  bitField3_ |= 0x00000002;
15357  optimizeWithMaxHs_ = value;
15358  onChanged();
15359  return this;
15360  }
15375  bitField3_ = (bitField3_ & ~0x00000002);
15376  optimizeWithMaxHs_ = false;
15377  onChanged();
15378  return this;
15379  }
15380 
15381  private boolean enumerateAllSolutions_ ;
15395  public boolean hasEnumerateAllSolutions() {
15396  return ((bitField3_ & 0x00000004) != 0);
15397  }
15411  public boolean getEnumerateAllSolutions() {
15412  return enumerateAllSolutions_;
15413  }
15428  public Builder setEnumerateAllSolutions(boolean value) {
15429  bitField3_ |= 0x00000004;
15430  enumerateAllSolutions_ = value;
15431  onChanged();
15432  return this;
15433  }
15448  bitField3_ = (bitField3_ & ~0x00000004);
15449  enumerateAllSolutions_ = false;
15450  onChanged();
15451  return this;
15452  }
15453 
15454  private boolean fillTightenedDomainsInResponse_ ;
15468  return ((bitField3_ & 0x00000008) != 0);
15469  }
15483  return fillTightenedDomainsInResponse_;
15484  }
15499  bitField3_ |= 0x00000008;
15500  fillTightenedDomainsInResponse_ = value;
15501  onChanged();
15502  return this;
15503  }
15517  bitField3_ = (bitField3_ & ~0x00000008);
15518  fillTightenedDomainsInResponse_ = false;
15519  onChanged();
15520  return this;
15521  }
15522 
15523  private boolean instantiateAllVariables_ = true;
15533  public boolean hasInstantiateAllVariables() {
15534  return ((bitField3_ & 0x00000010) != 0);
15535  }
15545  public boolean getInstantiateAllVariables() {
15546  return instantiateAllVariables_;
15547  }
15558  public Builder setInstantiateAllVariables(boolean value) {
15559  bitField3_ |= 0x00000010;
15560  instantiateAllVariables_ = value;
15561  onChanged();
15562  return this;
15563  }
15574  bitField3_ = (bitField3_ & ~0x00000010);
15575  instantiateAllVariables_ = true;
15576  onChanged();
15577  return this;
15578  }
15579 
15580  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
15593  return ((bitField3_ & 0x00000020) != 0);
15594  }
15607  return autoDetectGreaterThanAtLeastOneOf_;
15608  }
15622  bitField3_ |= 0x00000020;
15623  autoDetectGreaterThanAtLeastOneOf_ = value;
15624  onChanged();
15625  return this;
15626  }
15639  bitField3_ = (bitField3_ & ~0x00000020);
15640  autoDetectGreaterThanAtLeastOneOf_ = true;
15641  onChanged();
15642  return this;
15643  }
15644 
15645  private boolean stopAfterFirstSolution_ ;
15654  public boolean hasStopAfterFirstSolution() {
15655  return ((bitField3_ & 0x00000040) != 0);
15656  }
15665  public boolean getStopAfterFirstSolution() {
15666  return stopAfterFirstSolution_;
15667  }
15677  public Builder setStopAfterFirstSolution(boolean value) {
15678  bitField3_ |= 0x00000040;
15679  stopAfterFirstSolution_ = value;
15680  onChanged();
15681  return this;
15682  }
15692  bitField3_ = (bitField3_ & ~0x00000040);
15693  stopAfterFirstSolution_ = false;
15694  onChanged();
15695  return this;
15696  }
15697 
15698  private boolean stopAfterPresolve_ ;
15708  public boolean hasStopAfterPresolve() {
15709  return ((bitField3_ & 0x00000080) != 0);
15710  }
15720  public boolean getStopAfterPresolve() {
15721  return stopAfterPresolve_;
15722  }
15733  public Builder setStopAfterPresolve(boolean value) {
15734  bitField3_ |= 0x00000080;
15735  stopAfterPresolve_ = value;
15736  onChanged();
15737  return this;
15738  }
15749  bitField3_ = (bitField3_ & ~0x00000080);
15750  stopAfterPresolve_ = false;
15751  onChanged();
15752  return this;
15753  }
15754 
15755  private int numSearchWorkers_ = 1;
15765  public boolean hasNumSearchWorkers() {
15766  return ((bitField3_ & 0x00000100) != 0);
15767  }
15777  public int getNumSearchWorkers() {
15778  return numSearchWorkers_;
15779  }
15790  public Builder setNumSearchWorkers(int value) {
15791  bitField3_ |= 0x00000100;
15792  numSearchWorkers_ = value;
15793  onChanged();
15794  return this;
15795  }
15806  bitField3_ = (bitField3_ & ~0x00000100);
15807  numSearchWorkers_ = 1;
15808  onChanged();
15809  return this;
15810  }
15811 
15812  private boolean interleaveSearch_ ;
15824  public boolean hasInterleaveSearch() {
15825  return ((bitField3_ & 0x00000200) != 0);
15826  }
15838  public boolean getInterleaveSearch() {
15839  return interleaveSearch_;
15840  }
15853  public Builder setInterleaveSearch(boolean value) {
15854  bitField3_ |= 0x00000200;
15855  interleaveSearch_ = value;
15856  onChanged();
15857  return this;
15858  }
15871  bitField3_ = (bitField3_ & ~0x00000200);
15872  interleaveSearch_ = false;
15873  onChanged();
15874  return this;
15875  }
15876 
15877  private boolean reduceMemoryUsageInInterleaveMode_ = true;
15887  return ((bitField3_ & 0x00000400) != 0);
15888  }
15898  return reduceMemoryUsageInInterleaveMode_;
15899  }
15910  bitField3_ |= 0x00000400;
15911  reduceMemoryUsageInInterleaveMode_ = value;
15912  onChanged();
15913  return this;
15914  }
15924  bitField3_ = (bitField3_ & ~0x00000400);
15925  reduceMemoryUsageInInterleaveMode_ = true;
15926  onChanged();
15927  return this;
15928  }
15929 
15930  private boolean deterministicParallelSearch_ ;
15942  return ((bitField3_ & 0x00000800) != 0);
15943  }
15955  return deterministicParallelSearch_;
15956  }
15968  public Builder setDeterministicParallelSearch(boolean value) {
15969  bitField3_ |= 0x00000800;
15970  deterministicParallelSearch_ = value;
15971  onChanged();
15972  return this;
15973  }
15985  bitField3_ = (bitField3_ & ~0x00000800);
15986  deterministicParallelSearch_ = false;
15987  onChanged();
15988  return this;
15989  }
15990 
15991  private boolean shareObjectiveBounds_ = true;
16000  public boolean hasShareObjectiveBounds() {
16001  return ((bitField3_ & 0x00001000) != 0);
16002  }
16011  public boolean getShareObjectiveBounds() {
16012  return shareObjectiveBounds_;
16013  }
16023  public Builder setShareObjectiveBounds(boolean value) {
16024  bitField3_ |= 0x00001000;
16025  shareObjectiveBounds_ = value;
16026  onChanged();
16027  return this;
16028  }
16038  bitField3_ = (bitField3_ & ~0x00001000);
16039  shareObjectiveBounds_ = true;
16040  onChanged();
16041  return this;
16042  }
16043 
16044  private boolean shareLevelZeroBounds_ = true;
16053  public boolean hasShareLevelZeroBounds() {
16054  return ((bitField3_ & 0x00002000) != 0);
16055  }
16064  public boolean getShareLevelZeroBounds() {
16065  return shareLevelZeroBounds_;
16066  }
16076  public Builder setShareLevelZeroBounds(boolean value) {
16077  bitField3_ |= 0x00002000;
16078  shareLevelZeroBounds_ = value;
16079  onChanged();
16080  return this;
16081  }
16091  bitField3_ = (bitField3_ & ~0x00002000);
16092  shareLevelZeroBounds_ = true;
16093  onChanged();
16094  return this;
16095  }
16096 
16097  private boolean useLnsOnly_ ;
16106  public boolean hasUseLnsOnly() {
16107  return ((bitField3_ & 0x00004000) != 0);
16108  }
16117  public boolean getUseLnsOnly() {
16118  return useLnsOnly_;
16119  }
16129  public Builder setUseLnsOnly(boolean value) {
16130  bitField3_ |= 0x00004000;
16131  useLnsOnly_ = value;
16132  onChanged();
16133  return this;
16134  }
16144  bitField3_ = (bitField3_ & ~0x00004000);
16145  useLnsOnly_ = false;
16146  onChanged();
16147  return this;
16148  }
16149 
16150  private boolean lnsFocusOnDecisionVariables_ ;
16156  return ((bitField3_ & 0x00008000) != 0);
16157  }
16163  return lnsFocusOnDecisionVariables_;
16164  }
16170  public Builder setLnsFocusOnDecisionVariables(boolean value) {
16171  bitField3_ |= 0x00008000;
16172  lnsFocusOnDecisionVariables_ = value;
16173  onChanged();
16174  return this;
16175  }
16181  bitField3_ = (bitField3_ & ~0x00008000);
16182  lnsFocusOnDecisionVariables_ = false;
16183  onChanged();
16184  return this;
16185  }
16186 
16187  private boolean useRinsLns_ = true;
16196  public boolean hasUseRinsLns() {
16197  return ((bitField3_ & 0x00010000) != 0);
16198  }
16207  public boolean getUseRinsLns() {
16208  return useRinsLns_;
16209  }
16219  public Builder setUseRinsLns(boolean value) {
16220  bitField3_ |= 0x00010000;
16221  useRinsLns_ = value;
16222  onChanged();
16223  return this;
16224  }
16234  bitField3_ = (bitField3_ & ~0x00010000);
16235  useRinsLns_ = true;
16236  onChanged();
16237  return this;
16238  }
16239 
16240  private boolean useRelaxationLns_ ;
16250  public boolean hasUseRelaxationLns() {
16251  return ((bitField3_ & 0x00020000) != 0);
16252  }
16262  public boolean getUseRelaxationLns() {
16263  return useRelaxationLns_;
16264  }
16275  public Builder setUseRelaxationLns(boolean value) {
16276  bitField3_ |= 0x00020000;
16277  useRelaxationLns_ = value;
16278  onChanged();
16279  return this;
16280  }
16291  bitField3_ = (bitField3_ & ~0x00020000);
16292  useRelaxationLns_ = false;
16293  onChanged();
16294  return this;
16295  }
16296 
16297  private boolean diversifyLnsParams_ ;
16306  public boolean hasDiversifyLnsParams() {
16307  return ((bitField3_ & 0x00040000) != 0);
16308  }
16317  public boolean getDiversifyLnsParams() {
16318  return diversifyLnsParams_;
16319  }
16329  public Builder setDiversifyLnsParams(boolean value) {
16330  bitField3_ |= 0x00040000;
16331  diversifyLnsParams_ = value;
16332  onChanged();
16333  return this;
16334  }
16344  bitField3_ = (bitField3_ & ~0x00040000);
16345  diversifyLnsParams_ = false;
16346  onChanged();
16347  return this;
16348  }
16349 
16350  private boolean randomizeSearch_ ;
16359  public boolean hasRandomizeSearch() {
16360  return ((bitField3_ & 0x00080000) != 0);
16361  }
16370  public boolean getRandomizeSearch() {
16371  return randomizeSearch_;
16372  }
16382  public Builder setRandomizeSearch(boolean value) {
16383  bitField3_ |= 0x00080000;
16384  randomizeSearch_ = value;
16385  onChanged();
16386  return this;
16387  }
16397  bitField3_ = (bitField3_ & ~0x00080000);
16398  randomizeSearch_ = false;
16399  onChanged();
16400  return this;
16401  }
16402 
16403  private long searchRandomizationTolerance_ ;
16419  return ((bitField3_ & 0x00100000) != 0);
16420  }
16436  return searchRandomizationTolerance_;
16437  }
16454  bitField3_ |= 0x00100000;
16455  searchRandomizationTolerance_ = value;
16456  onChanged();
16457  return this;
16458  }
16474  bitField3_ = (bitField3_ & ~0x00100000);
16475  searchRandomizationTolerance_ = 0L;
16476  onChanged();
16477  return this;
16478  }
16479 
16480  private boolean useOptionalVariables_ = true;
16491  public boolean hasUseOptionalVariables() {
16492  return ((bitField3_ & 0x00200000) != 0);
16493  }
16504  public boolean getUseOptionalVariables() {
16505  return useOptionalVariables_;
16506  }
16518  public Builder setUseOptionalVariables(boolean value) {
16519  bitField3_ |= 0x00200000;
16520  useOptionalVariables_ = value;
16521  onChanged();
16522  return this;
16523  }
16535  bitField3_ = (bitField3_ & ~0x00200000);
16536  useOptionalVariables_ = true;
16537  onChanged();
16538  return this;
16539  }
16540 
16541  private boolean useExactLpReason_ = true;
16553  public boolean hasUseExactLpReason() {
16554  return ((bitField3_ & 0x00400000) != 0);
16555  }
16567  public boolean getUseExactLpReason() {
16568  return useExactLpReason_;
16569  }
16582  public Builder setUseExactLpReason(boolean value) {
16583  bitField3_ |= 0x00400000;
16584  useExactLpReason_ = value;
16585  onChanged();
16586  return this;
16587  }
16600  bitField3_ = (bitField3_ & ~0x00400000);
16601  useExactLpReason_ = true;
16602  onChanged();
16603  return this;
16604  }
16605 
16606  private boolean useBranchingInLp_ ;
16617  public boolean hasUseBranchingInLp() {
16618  return ((bitField3_ & 0x00800000) != 0);
16619  }
16630  public boolean getUseBranchingInLp() {
16631  return useBranchingInLp_;
16632  }
16644  public Builder setUseBranchingInLp(boolean value) {
16645  bitField3_ |= 0x00800000;
16646  useBranchingInLp_ = value;
16647  onChanged();
16648  return this;
16649  }
16661  bitField3_ = (bitField3_ & ~0x00800000);
16662  useBranchingInLp_ = false;
16663  onChanged();
16664  return this;
16665  }
16666 
16667  private boolean useCombinedNoOverlap_ ;
16678  public boolean hasUseCombinedNoOverlap() {
16679  return ((bitField3_ & 0x01000000) != 0);
16680  }
16691  public boolean getUseCombinedNoOverlap() {
16692  return useCombinedNoOverlap_;
16693  }
16705  public Builder setUseCombinedNoOverlap(boolean value) {
16706  bitField3_ |= 0x01000000;
16707  useCombinedNoOverlap_ = value;
16708  onChanged();
16709  return this;
16710  }
16722  bitField3_ = (bitField3_ & ~0x01000000);
16723  useCombinedNoOverlap_ = false;
16724  onChanged();
16725  return this;
16726  }
16727 
16728  private boolean catchSigintSignal_ = true;
16739  public boolean hasCatchSigintSignal() {
16740  return ((bitField3_ & 0x02000000) != 0);
16741  }
16752  public boolean getCatchSigintSignal() {
16753  return catchSigintSignal_;
16754  }
16766  public Builder setCatchSigintSignal(boolean value) {
16767  bitField3_ |= 0x02000000;
16768  catchSigintSignal_ = value;
16769  onChanged();
16770  return this;
16771  }
16783  bitField3_ = (bitField3_ & ~0x02000000);
16784  catchSigintSignal_ = true;
16785  onChanged();
16786  return this;
16787  }
16788 
16789  private boolean useImpliedBounds_ ;
16800  public boolean hasUseImpliedBounds() {
16801  return ((bitField3_ & 0x04000000) != 0);
16802  }
16813  public boolean getUseImpliedBounds() {
16814  return useImpliedBounds_;
16815  }
16827  public Builder setUseImpliedBounds(boolean value) {
16828  bitField3_ |= 0x04000000;
16829  useImpliedBounds_ = value;
16830  onChanged();
16831  return this;
16832  }
16844  bitField3_ = (bitField3_ & ~0x04000000);
16845  useImpliedBounds_ = false;
16846  onChanged();
16847  return this;
16848  }
16849 
16850  private double mipMaxBound_ = 10000000D;
16861  public boolean hasMipMaxBound() {
16862  return ((bitField3_ & 0x08000000) != 0);
16863  }
16874  public double getMipMaxBound() {
16875  return mipMaxBound_;
16876  }
16888  public Builder setMipMaxBound(double value) {
16889  bitField3_ |= 0x08000000;
16890  mipMaxBound_ = value;
16891  onChanged();
16892  return this;
16893  }
16905  bitField3_ = (bitField3_ & ~0x08000000);
16906  mipMaxBound_ = 10000000D;
16907  onChanged();
16908  return this;
16909  }
16910 
16911  private double mipVarScaling_ = 1D;
16922  public boolean hasMipVarScaling() {
16923  return ((bitField3_ & 0x10000000) != 0);
16924  }
16935  public double getMipVarScaling() {
16936  return mipVarScaling_;
16937  }
16949  public Builder setMipVarScaling(double value) {
16950  bitField3_ |= 0x10000000;
16951  mipVarScaling_ = value;
16952  onChanged();
16953  return this;
16954  }
16966  bitField3_ = (bitField3_ & ~0x10000000);
16967  mipVarScaling_ = 1D;
16968  onChanged();
16969  return this;
16970  }
16971 
16972  private double mipWantedPrecision_ = 1e-06D;
16989  public boolean hasMipWantedPrecision() {
16990  return ((bitField3_ & 0x20000000) != 0);
16991  }
17008  public double getMipWantedPrecision() {
17009  return mipWantedPrecision_;
17010  }
17028  public Builder setMipWantedPrecision(double value) {
17029  bitField3_ |= 0x20000000;
17030  mipWantedPrecision_ = value;
17031  onChanged();
17032  return this;
17033  }
17051  bitField3_ = (bitField3_ & ~0x20000000);
17052  mipWantedPrecision_ = 1e-06D;
17053  onChanged();
17054  return this;
17055  }
17056 
17057  private int mipMaxActivityExponent_ = 53;
17072  public boolean hasMipMaxActivityExponent() {
17073  return ((bitField3_ & 0x40000000) != 0);
17074  }
17090  return mipMaxActivityExponent_;
17091  }
17108  bitField3_ |= 0x40000000;
17109  mipMaxActivityExponent_ = value;
17110  onChanged();
17111  return this;
17112  }
17128  bitField3_ = (bitField3_ & ~0x40000000);
17129  mipMaxActivityExponent_ = 53;
17130  onChanged();
17131  return this;
17132  }
17133 
17134  private double mipCheckPrecision_ = 0.0001D;
17146  public boolean hasMipCheckPrecision() {
17147  return ((bitField3_ & 0x80000000) != 0);
17148  }
17160  public double getMipCheckPrecision() {
17161  return mipCheckPrecision_;
17162  }
17175  public Builder setMipCheckPrecision(double value) {
17176  bitField3_ |= 0x80000000;
17177  mipCheckPrecision_ = value;
17178  onChanged();
17179  return this;
17180  }
17193  bitField3_ = (bitField3_ & ~0x80000000);
17194  mipCheckPrecision_ = 0.0001D;
17195  onChanged();
17196  return this;
17197  }
17198  @java.lang.Override
17200  final com.google.protobuf.UnknownFieldSet unknownFields) {
17201  return super.setUnknownFields(unknownFields);
17202  }
17203 
17204  @java.lang.Override
17206  final com.google.protobuf.UnknownFieldSet unknownFields) {
17207  return super.mergeUnknownFields(unknownFields);
17208  }
17209 
17210 
17211  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
17212  }
17213 
17214  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
17215  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
17216  static {
17217  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
17218  }
17219 
17221  return DEFAULT_INSTANCE;
17222  }
17223 
17224  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
17225  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
17226  @java.lang.Override
17227  public SatParameters parsePartialFrom(
17228  com.google.protobuf.CodedInputStream input,
17229  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17230  throws com.google.protobuf.InvalidProtocolBufferException {
17231  return new SatParameters(input, extensionRegistry);
17232  }
17233  };
17234 
17235  public static com.google.protobuf.Parser<SatParameters> parser() {
17236  return PARSER;
17237  }
17238 
17239  @java.lang.Override
17240  public com.google.protobuf.Parser<SatParameters> getParserForType() {
17241  return PARSER;
17242  }
17243 
17244  @java.lang.Override
17246  return DEFAULT_INSTANCE;
17247  }
17248 
17249 }
17250 
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER
static final int REDUCE_MEMORY_USAGE_IN_INTERLEAVE_MODE_FIELD_NUMBER
.lang.Override final boolean isInitialized()
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
boolean getDiversifyLnsParams()
static final int USE_RINS_LNS_FIELD_NUMBER
boolean getUseExactLpReason()
boolean hasMaxPresolveIterations()
static ClauseProtection forNumber(int value)
boolean hasProbingPeriodAtRoot()
Builder setMaxMemoryInMb(long value)
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasClauseCleanupPeriod()
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
boolean hasSearchRandomizationTolerance()
Builder setUsePhaseSaving(boolean value)
boolean hasMipMaxBound()
NO_BINARY_MINIMIZATION
NO_BINARY_MINIMIZATION = 0;
Builder clearExpandAutomatonConstraints()
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
Builder clearMinOrthogonalityForLpConstraints()
boolean hasLogSearchProgress()
final int getNumber()
static BinaryMinizationAlgorithm forNumber(int value)
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder setDiversifyLnsParams(boolean value)
.lang.Override void writeTo(com.google.protobuf.CodedOutputStream output)
Builder clearClauseCleanupTarget()
boolean hasUseTimetableEdgeFindingInCumulativeConstraint()
Builder clearAddCgCuts()
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int USE_MIR_ROUNDING_FIELD_NUMBER
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
boolean hasMinimizeWithPropagationRestartPeriod()
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
boolean hasAlsoBumpVariablesInConflictReasons()
boolean getInstantiateAllVariables()
int getPresolveBveClauseWeight()
boolean getOnlyAddCutsAtLevelZero()
Builder setPseudoCostReliabilityThreshold(long value)
static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER
boolean hasOptimizeWithMaxHs()
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMergeNoOverlapWorkLimit(double value)
static final int ADD_MIR_CUTS_FIELD_NUMBER
Builder setUseRinsLns(boolean value)
Builder clearMipVarScaling()
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
boolean getMinimizeReductionDuringPbResolution()
int getMinimizeWithPropagationRestartPeriod()
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasUseRelaxationLns()
boolean hasAddLpConstraintsLazily()
Builder setNumSearchWorkers(int value)
Builder clearUseRinsLns()
static final int FIND_MULTIPLE_CORES_FIELD_NUMBER
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
IN_REVERSE_ORDER
IN_REVERSE_ORDER = 1;
Builder clearVariableActivityDecay()
boolean hasPresolveSubstitutionLevel()
boolean hasAddLpConstraintsLazily()
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER
boolean getTreatBinaryClausesSeparately()
boolean hasUseDisjunctiveConstraintInCumulativeConstraint()
boolean hasClauseCleanupTarget()
boolean getMinimizeReductionDuringPbResolution()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
static final int RANDOM_SEED_FIELD_NUMBER
POLARITY_TRUE
POLARITY_TRUE = 0;
boolean hasCatchSigintSignal()
boolean hasProbingPeriodAtRoot()
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
boolean getInstantiateAllVariables()
boolean hasFillTightenedDomainsInResponse()
Builder clearUseLnsOnly()
Builder clearGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setInterleaveSearch(boolean value)
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean getAddKnapsackCuts()
boolean getUseMirRounding()
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasOptimizeWithCore()
static final int CP_MODEL_PRESOLVE_FIELD_NUMBER
boolean hasMipVarScaling()
PSEUDO_COST_SEARCH
static VariableOrder forNumber(int value)
boolean hasRestartRunningWindowSize()
Builder clearReduceMemoryUsageInInterleaveMode()
Builder setAddLpConstraintsLazily(boolean value)
Builder setMinimizeWithPropagationRestartPeriod(int value)
Builder clearShareObjectiveBounds()
boolean hasUsePhaseSaving()
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
boolean getMinimizeCore()
boolean hasMinOrthogonalityForLpConstraints()
boolean hasUseMirRounding()
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
Builder clearMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
SIMPLE
SIMPLE = 1;
Builder setBooleanEncodingLevel(int value)
boolean hasMaxTimeInSeconds()
double getMipVarScaling()
Builder setPresolveBvaThreshold(int value)
double getRandomPolarityRatio()
boolean getAddCgCuts()
final int getNumber()
boolean getAlsoBumpVariablesInConflictReasons()
static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER
boolean hasLinearizationLevel()
Builder clearClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
int getMinimizeWithPropagationRestartPeriod()
static final int COVER_OPTIMIZATION_FIELD_NUMBER
boolean hasMipCheckPrecision()
final int getNumber()
Builder setMaxIntegerRoundingScaling(int value)
Builder setDeterministicParallelSearch(boolean value)
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
boolean hasUseOverloadCheckerInCumulativeConstraint()
boolean getDiversifyLnsParams()
Builder clearRestartRunningWindowSize()
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
boolean hasRandomBranchesRatio()
static final int MIP_CHECK_PRECISION_FIELD_NUMBER
boolean getUseCombinedNoOverlap()
Builder setAddKnapsackCuts(boolean value)
int getPresolveSubstitutionLevel()
boolean hasEnumerateAllSolutions()
static final int RANDOMIZE_SEARCH_FIELD_NUMBER
EXPERIMENTAL_BINARY_MINIMIZATION
EXPERIMENTAL_BINARY_MINIMIZATION = 3;
boolean hasCpModelProbingLevel()
int getPresolveSubstitutionLevel()
boolean getInterleaveSearch()
boolean hasUsePbResolution()
POLARITY_RANDOM
POLARITY_RANDOM = 2;
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
STRATIFICATION_ASCENT
final int getNumber()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasFindMultipleCores()
Builder clearRestartPeriod()
Builder setExploitAllLpSolution(boolean value)
Builder setMaxSatReverseAssumptionOrder(boolean value)
Builder setCpModelUseSatPresolve(boolean value)
long getProbingPeriodAtRoot()
final int getNumber()
boolean getShareObjectiveBounds()
boolean getRandomizeSearch()
Builder clearRestartAlgorithms()
Builder setMipMaxActivityExponent(int value)
double getMipMaxBound()
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasMaxDeterministicTime()
boolean hasDeterministicParallelSearch()
Builder clearBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
Builder clearNewConstraintsBatchSize()
boolean getUseLnsOnly()
boolean hasBinarySearchNumConflicts()
.lang.Override Builder clear()
static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER
boolean hasMaxNumberOfConflicts()
Builder clearLogSearchProgress()
boolean getOptimizeWithMaxHs()
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
boolean hasExploitIntegerLpSolution()
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean getUseExactLpReason()
boolean hasVariableActivityDecay()
boolean hasExploitAllLpSolution()
Builder clearDiversifyLnsParams()
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasAddMirCuts()
boolean hasPresolveProbingDeterministicTimeLimit()
boolean hasClauseCleanupLbdBound()
boolean hasMaxConsecutiveInactiveCount()
boolean getMinimizeCore()
boolean getUsePhaseSaving()
boolean hasUseExactLpReason()
double getGlucoseMaxDecay()
double getMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
boolean getStopAfterPresolve()
Builder clearMinimizeWithPropagationRestartPeriod()
Builder clearMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder setSearchRandomizationTolerance(long value)
boolean hasUsePrecedencesInDisjunctiveConstraint()
static final int INTERLEAVE_SEARCH_FIELD_NUMBER
boolean getSubsumptionDuringConflictAnalysis()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder setLnsFocusOnDecisionVariables(boolean value)
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasAddKnapsackCuts()
static final int RESTART_ALGORITHMS_FIELD_NUMBER
boolean getCountAssumptionLevelsInLbd()
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean hasUseOptimizationHints()
Builder setReduceMemoryUsageInInterleaveMode(boolean value)
boolean getFillTightenedDomainsInResponse()
.lang.Deprecated static ClauseOrdering valueOf(int value)
static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER
Builder setOptimizeWithCore(boolean value)
boolean hasPresolveBlockedClause()
boolean hasUseExactLpReason()
Builder setUseImpliedBounds(boolean value)
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
boolean getShareLevelZeroBounds()
Builder setMaxConsecutiveInactiveCount(int value)
boolean getCountAssumptionLevelsInLbd()
static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER
static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER
Builder clearUseOptimizationHints()
Builder clearMaxMemoryInMb()
static final int EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER
boolean hasTreatBinaryClausesSeparately()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder clearPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasPresolveBlockedClause()
int getPresolveBveThreshold()
boolean hasMinOrthogonalityForLpConstraints()
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
double getMipCheckPrecision()
int getClauseCleanupTarget()
boolean hasInstantiateAllVariables()
boolean getUsePrecedencesInDisjunctiveConstraint()
Builder setPresolveSubstitutionLevel(int value)
Builder clearMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Builder setAddMirCuts(boolean value)
static final int MIP_VAR_SCALING_FIELD_NUMBER
Builder clearUseOverloadCheckerInCumulativeConstraint()
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
boolean hasUseBlockingRestart()
.lang.Deprecated static BinaryMinizationAlgorithm valueOf(int value)
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
Builder setStopAfterFirstSolution(boolean value)
boolean getUseTimetableEdgeFindingInCumulativeConstraint()
CLAUSE_ACTIVITY
ORDER_ASSUMPTION_BY_WEIGHT
ORDER_ASSUMPTION_BY_WEIGHT = 2;
Builder clearMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
int getPresolveBveClauseWeight()
boolean hasStopAfterFirstSolution()
boolean hasMaxTimeInSeconds()
boolean hasUseOptionalVariables()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER
PROTECTION_LBD
static final int MINIMIZE_CORE_FIELD_NUMBER
Builder clearMaxNumberOfConflicts()
static final int USE_BRANCHING_IN_LP_FIELD_NUMBER
boolean hasPresolveBvaThreshold()
static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasInterleaveSearch()
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
static MaxSatAssumptionOrder forNumber(int value)
Builder setPbCleanupIncrement(int value)
static final int MINIMIZE_WITH_PROPAGATION_NUM_DECISIONS_FIELD_NUMBER
boolean getStopAfterFirstSolution()
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean getAddLpConstraintsLazily()
boolean hasUseCombinedNoOverlap()
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
PORTFOLIO_SEARCH
boolean hasShareLevelZeroBounds()
boolean hasMipWantedPrecision()
boolean hasMaxMemoryInMb()
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
final int getNumber()
boolean getUseOptimizationHints()
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder clearCoverOptimization()
static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER
boolean hasNumConflictsBeforeStrategyChanges()
boolean hasCpModelProbingLevel()
Builder clearBinarySearchNumConflicts()
Builder setMaxNumCuts(int value)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
boolean hasDiversifyLnsParams()
static RestartAlgorithm forNumber(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasGlucoseMaxDecay()
boolean getLogSearchProgress()
Builder setFindMultipleCores(boolean value)
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasClauseCleanupLbdBound()
boolean getExpandElementConstraints()
static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER
boolean hasUsePrecedencesInDisjunctiveConstraint()
int getMaxAllDiffCutSize()
Builder setGlucoseDecayIncrement(double value)
optional double glucose_decay_increment = 23 [default = 0.01];
.lang.Deprecated static ClauseProtection valueOf(int value)
int getLinearizationLevel()
Builder setRestartDlAverageRatio(double value)
.lang.Override int hashCode()
boolean hasRestartRunningWindowSize()
Builder clearExploitAllLpSolution()
boolean getTreatBinaryClausesSeparately()
Builder clearInitialVariablesActivity()
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean getUseLnsOnly()
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
int getClauseCleanupTarget()
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
Builder setMaxDeterministicTime(double value)
final int getNumber()
boolean getCpModelPresolve()
Builder clearOnlyAddCutsAtLevelZero()
int getClauseCleanupPeriod()
int getClauseCleanupPeriod()
Builder setExpandAutomatonConstraints(boolean value)
boolean getExpandElementConstraints()
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
boolean hasMaxNumberOfConflicts()
static final int MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER
AUTOMATIC_SEARCH
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean getStopAfterFirstSolution()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasMaxMemoryInMb()
boolean hasUseOverloadCheckerInCumulativeConstraint()
boolean getUseOptionalVariables()
Builder setMaxVariableActivityValue(double value)
optional double max_variable_activity_value = 16 [default = 1e+100];
boolean getUseBlockingRestart()
boolean getUseRinsLns()
boolean getUseRelaxationLns()
Builder clearUseTimetableEdgeFindingInCumulativeConstraint()
boolean hasAddCgCuts()
Builder clearMaxAllDiffCutSize()
double getInitialVariablesActivity()
IN_RANDOM_ORDER
IN_RANDOM_ORDER = 2;
Builder clearExploitIntegerLpSolution()
Builder clearLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasUsePbResolution()
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean getDeterministicParallelSearch()
boolean getUseOptimizationHints()
BINARY_MINIMIZATION_WITH_REACHABILITY
BINARY_MINIMIZATION_WITH_REACHABILITY = 2;
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
boolean getUseRinsLns()
.lang.Override Builder clone()
static Builder newBuilder()
boolean hasAutoDetectGreaterThanAtLeastOneOf()
LBD_MOVING_AVERAGE_RESTART
.lang.Override Builder toBuilder()
Builder clearMipCheckPrecision()
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
boolean getUseImpliedBounds()
int getPbCleanupIncrement()
boolean hasUseOptimizationHints()
boolean getCpModelUseSatPresolve()
boolean getUseErwaHeuristic()
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
boolean hasVariableActivityDecay()
double getMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
int getPresolveBvaThreshold()
Builder setCountAssumptionLevelsInLbd(boolean value)
boolean hasPresolveProbingDeterministicTimeLimit()
boolean hasExploitBestSolution()
double getPresolveProbingDeterministicTimeLimit()
int getMipMaxActivityExponent()
boolean hasAutoDetectGreaterThanAtLeastOneOf()
Builder setNumConflictsBeforeStrategyChanges(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
Builder clearRandomBranchesRatio()
boolean getStopAfterPresolve()
Builder setOptimizeWithMaxHs(boolean value)
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean hasEnumerateAllSolutions()
boolean hasMergeNoOverlapWorkLimit()
Builder clearRandomSeed()
boolean getFillTightenedDomainsInResponse()
boolean getUseBranchingInLp()
boolean getOptimizeWithMaxHs()
boolean hasExploitIntegerLpSolution()
Builder setMipCheckPrecision(double value)
Builder setMinimizeCore(boolean value)
Builder clearUseDisjunctiveConstraintInCumulativeConstraint()
Builder setStopAfterPresolve(boolean value)
Builder setUseLnsOnly(boolean value)
boolean hasRandomBranchesRatio()
Builder clearUseCombinedNoOverlap()
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
boolean hasPresolveUseBva()
boolean hasInstantiateAllVariables()
static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER
boolean getOptimizeWithCore()
double getMaxTimeInSeconds()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean getLogSearchProgress()
.lang.Override com.google.ortools.sat.SatParameters buildPartial()
boolean getExpandAutomatonConstraints()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Parser< SatParameters > parser()
static ConflictMinimizationAlgorithm forNumber(int value)
.lang.Override final boolean isInitialized()
boolean hasPresolveSubstitutionLevel()
Builder setUseBranchingInLp(boolean value)
int getClauseCleanupLbdBound()
boolean hasPseudoCostReliabilityThreshold()
boolean getUseCombinedNoOverlap()
Builder setStrategyChangeIncreaseRatio(double value)
boolean getEnumerateAllSolutions()
boolean hasExploitObjective()
Builder clearMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
double getMergeNoOverlapWorkLimit()
boolean hasPresolveUseBva()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasUseRinsLns()
FIXED_RESTART
Builder clearStrategyChangeIncreaseRatio()
boolean hasOnlyAddCutsAtLevelZero()
Builder clearMaxNumCuts()
CLAUSE_LBD
boolean getUseBranchingInLp()
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override com.google.ortools.sat.SatParameters build()
int getRestartAlgorithmsCount()
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean getPresolveUseBva()
Builder clearMaxIntegerRoundingScaling()
boolean hasRestartDlAverageRatio()
boolean hasMaxIntegerRoundingScaling()
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
Builder setInstantiateAllVariables(boolean value)
boolean hasStopAfterFirstSolution()
boolean getPresolveUseBva()
static final int PRESOLVE_USE_BVA_FIELD_NUMBER
double getMipWantedPrecision()
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean hasNewConstraintsBatchSize()
boolean hasMinimizeWithPropagationRestartPeriod()
Builder clearSearchRandomizationTolerance()
Builder setPresolveBlockedClause(boolean value)
Builder clearMaxTimeInSeconds()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
Builder setMaxPresolveIterations(int value)
Builder setEnumerateAllSolutions(boolean value)
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
boolean getOnlyAddCutsAtLevelZero()
Builder clearPseudoCostReliabilityThreshold()
boolean hasMinimizeReductionDuringPbResolution()
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean hasExpandAutomatonConstraints()
boolean hasUseBranchingInLp()
Builder clearExpandElementConstraints()
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
boolean hasCpModelPresolve()
boolean getUseImpliedBounds()
.lang.Deprecated static MaxSatStratificationAlgorithm valueOf(int value)
double getRestartDlAverageRatio()
Builder clearCpModelProbingLevel()
double getRandomBranchesRatio()
boolean hasUseErwaHeuristic()
boolean hasMipMaxActivityExponent()
boolean hasUseMirRounding()
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
int getCpModelProbingLevel()
double getMaxTimeInSeconds()
double getMinOrthogonalityForLpConstraints()
boolean hasMaxSatReverseAssumptionOrder()
boolean hasClauseActivityDecay()
boolean hasUseImpliedBounds()
static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER
boolean hasStopAfterPresolve()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMaxNumberOfConflicts(long value)
double getRandomBranchesRatio()
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
boolean getMaxSatReverseAssumptionOrder()
Builder setDefaultRestartAlgorithms(java.lang.String value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder clearAddLpConstraintsLazily()
double getRestartDlAverageRatio()
Builder clearDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasUseOptionalVariables()
.lang.Override java.lang.Object newInstance(UnusedPrivateParameter unused)
boolean hasNumSearchWorkers()
boolean hasSubsumptionDuringConflictAnalysis()
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
boolean hasUseErwaHeuristic()
Builder setUseTimetableEdgeFindingInCumulativeConstraint(boolean value)
boolean hasUseTimetableEdgeFindingInCumulativeConstraint()
boolean hasInitialVariablesActivity()
boolean hasRestartPeriod()
long getPseudoCostReliabilityThreshold()
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
Builder setUsePbResolution(boolean value)
boolean hasMipWantedPrecision()
boolean hasMaxAllDiffCutSize()
Builder clearNumSearchWorkers()
Builder setGlucoseDecayIncrementPeriod(int value)
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder clearUsePrecedencesInDisjunctiveConstraint()
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean getFindMultipleCores()
boolean getExploitBestSolution()
Builder setClauseCleanupPeriod(int value)
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
boolean hasStrategyChangeIncreaseRatio()
Builder setTreatBinaryClausesSeparately(boolean value)
Builder clearFindMultipleCores()
boolean hasUseImpliedBounds()
boolean hasMipVarScaling()
static final int MIP_WANTED_PRECISION_FIELD_NUMBER
boolean getUseOverloadCheckerInCumulativeConstraint()
POLARITY_REVERSE_WEIGHTED_SIGN
boolean hasBooleanEncodingLevel()
IN_ORDER
static final int STOP_AFTER_PRESOLVE_FIELD_NUMBER
static final int MIP_MAX_BOUND_FIELD_NUMBER
boolean getFindMultipleCores()
boolean hasExpandElementConstraints()
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
boolean hasCatchSigintSignal()
boolean getShareLevelZeroBounds()
int getLinearizationLevel()
Builder setPbCleanupRatio(double value)
optional double pb_cleanup_ratio = 47 [default = 0.5];
boolean hasClauseCleanupTarget()
static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER
boolean hasAlsoBumpVariablesInConflictReasons()
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
Builder clearMipWantedPrecision()
Builder setInitialVariablesActivity(double value)
Builder clearBooleanEncodingLevel()
boolean hasShareLevelZeroBounds()
Builder clearSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
double getMinOrthogonalityForLpConstraints()
int getRandomSeed()
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean hasUseBranchingInLp()
DEFAULT_ASSUMPTION_ORDER
DEFAULT_ASSUMPTION_ORDER = 0;
boolean getAddLpConstraintsLazily()
Builder setUseDisjunctiveConstraintInCumulativeConstraint(boolean value)
boolean hasRandomPolarityRatio()
.lang.Override Builder mergeFrom(com.google.protobuf.Message other)
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
int getCpModelProbingLevel()
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 ...
static ClauseOrdering forNumber(int value)
Builder setSubsumptionDuringConflictAnalysis(boolean value)
long getSearchRandomizationTolerance()
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
boolean hasNumConflictsBeforeStrategyChanges()
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
boolean hasCpModelUseSatPresolve()
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
static MaxSatStratificationAlgorithm forNumber(int value)
boolean hasPbCleanupIncrement()
Builder clearStopAfterPresolve()
boolean hasOptimizeWithMaxHs()
boolean hasReduceMemoryUsageInInterleaveMode()
static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER
static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER
Builder setRestartLbdAverageRatio(double value)
optional double restart_lbd_average_ratio = 71 [default = 1];
boolean hasInterleaveSearch()
Builder setCoverOptimization(boolean value)
Builder setExpandElementConstraints(boolean value)
Builder clearUseBlockingRestart()
double getVariableActivityDecay()
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
boolean getCatchSigintSignal()
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
POLARITY_WEIGHTED_SIGN
Builder setPresolveProbingDeterministicTimeLimit(double value)
static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER
Builder clearOptimizeWithMaxHs()
Builder clearEnumerateAllSolutions()
boolean hasLogSearchProgress()
double getPresolveProbingDeterministicTimeLimit()
Builder setProbingPeriodAtRoot(long value)
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean getEnumerateAllSolutions()
double getRandomPolarityRatio()
int getNumSearchWorkers()
double getMipVarScaling()
Builder clearBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
boolean getExpandAutomatonConstraints()
Builder clearMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
boolean hasMipMaxBound()
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean hasTreatBinaryClausesSeparately()
Builder clearGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER
Builder setUseExactLpReason(boolean value)
int getNumConflictsBeforeStrategyChanges()
static final int MAX_NUM_CUTS_FIELD_NUMBER
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
Builder setShareLevelZeroBounds(boolean value)
double getVariableActivityDecay()
int getMaxPresolveIterations()
Builder clearPresolveProbingDeterministicTimeLimit()
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean getSubsumptionDuringConflictAnalysis()
Builder setPresolveBveThreshold(int value)
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
int getNumSearchWorkers()
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
static final int USE_LNS_ONLY_FIELD_NUMBER
Builder setRestartRunningWindowSize(int value)
boolean hasUseLnsOnly()
Builder setMinimizeWithPropagationNumDecisions(int value)
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean getUseErwaHeuristic()
boolean getExploitIntegerLpSolution()
int getPresolveBveThreshold()
static final int MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
.lang.Deprecated static SearchBranching valueOf(int value)
boolean getCoverOptimization()
final int getNumber()
Builder setMaxTimeInSeconds(double value)
Builder setRandomizeSearch(boolean value)
Builder clearNumConflictsBeforeStrategyChanges()
Builder clearRandomPolarityRatio()
.lang.Deprecated static VariableOrder valueOf(int value)
boolean getExploitObjective()
static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER
Builder setLinearizationLevel(int value)
boolean hasMaxNumCuts()
boolean hasUseDisjunctiveConstraintInCumulativeConstraint()
int getNewConstraintsBatchSize()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
Builder setUseOptimizationHints(boolean value)
Builder clearRandomizeSearch()
Builder setExploitIntegerLpSolution(boolean value)
boolean hasMaxSatReverseAssumptionOrder()
boolean hasMipCheckPrecision()
boolean getUseBlockingRestart()
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
int getRandomSeed()
boolean hasMinimizeReductionDuringPbResolution()
Builder setAddCgCuts(boolean value)
boolean hasBooleanEncodingLevel()
Builder clearUseOptionalVariables()
int getBooleanEncodingLevel()
boolean hasAddMirCuts()
int getRestartPeriod()
boolean getUseDisjunctiveConstraintInCumulativeConstraint()
Builder setMinOrthogonalityForLpConstraints(double value)
boolean getExploitBestSolution()
long getMaxMemoryInMb()
boolean getUseTimetableEdgeFindingInCumulativeConstraint()
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
int getPbCleanupIncrement()
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
long getProbingPeriodAtRoot()
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
Builder clearAddKnapsackCuts()
boolean getUseDisjunctiveConstraintInCumulativeConstraint()
Builder setBlockingRestartWindowSize(int value)
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasFillTightenedDomainsInResponse()
boolean hasPresolveBveThreshold()
boolean hasDiversifyLnsParams()
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
boolean hasRestartPeriod()
Builder clearUseMirRounding()
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean getUsePrecedencesInDisjunctiveConstraint()
boolean hasShareObjectiveBounds()
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
Builder setShareObjectiveBounds(boolean value)
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasCountAssumptionLevelsInLbd()
int getMaxNumCuts()
Builder clearUsePhaseSaving()
static final int PROBING_PERIOD_AT_ROOT_FIELD_NUMBER
static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
.lang.Override boolean equals(final java.lang.Object obj)
Builder setClauseActivityDecay(double value)
boolean getUsePbResolution()
boolean getUseOptionalVariables()
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
boolean getUseMirRounding()
boolean hasLinearizationLevel()
static final int RESTART_PERIOD_FIELD_NUMBER
Builder clearUsePbResolution()
boolean hasMergeNoOverlapWorkLimit()
boolean hasUseLnsOnly()
boolean hasMaxAllDiffCutSize()
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
boolean getReduceMemoryUsageInInterleaveMode()
Builder clearAutoDetectGreaterThanAtLeastOneOf()
Builder setUseMirRounding(boolean value)
static final int PB_CLEANUP_RATIO_FIELD_NUMBER
Builder clearOptimizeWithCore()
boolean hasPresolveBveClauseWeight()
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
Builder clearUseExactLpReason()
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
Builder clearMipMaxBound()
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
boolean getExploitAllLpSolution()
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
long getMaxNumberOfConflicts()
final int getNumber()
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
boolean hasRestartDlAverageRatio()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
boolean hasUseRinsLns()
int getBinarySearchNumConflicts()
boolean hasOptimizeWithCore()
Builder setMipWantedPrecision(double value)
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasMaxIntegerRoundingScaling()
Builder setUseOverloadCheckerInCumulativeConstraint(boolean value)
Builder setNewConstraintsBatchSize(int value)
boolean hasExploitObjective()
.lang.Deprecated static final com.google.protobuf.Parser< SatParameters > PARSER
.lang.Override com.google.protobuf.Parser< SatParameters > getParserForType()
double getMipMaxBound()
Builder clearMaxDeterministicTime()
boolean getShareObjectiveBounds()
Builder setRandomBranchesRatio(double value)
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
boolean hasCountAssumptionLevelsInLbd()
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
boolean hasExploitBestSolution()
boolean getAutoDetectGreaterThanAtLeastOneOf()
boolean hasPresolveBveClauseWeight()
boolean getReduceMemoryUsageInInterleaveMode()
Builder clearInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
POLARITY_FALSE
POLARITY_FALSE = 1;
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
static final int USE_PB_RESOLUTION_FIELD_NUMBER
double getMaxDeterministicTime()
boolean hasExpandAutomatonConstraints()
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
PROTECTION_ALWAYS
Builder setMaxAllDiffCutSize(int value)
boolean hasMaxPresolveIterations()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasCoverOptimization()
Builder clearPresolveSubstitutionLevel()
Builder clearStopAfterFirstSolution()
int getMaxConsecutiveInactiveCount()
boolean getAddMirCuts()
Builder clearAddMirCuts()
int getRestartAlgorithmsCount()
Builder clearPresolveBvaThreshold()
Builder setCpModelProbingLevel(int value)
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
Builder setClauseCleanupTarget(int value)
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
NONE
NONE = 0;
static final int ADD_CG_CUTS_FIELD_NUMBER
boolean hasPresolveBvaThreshold()
Builder clearUseImpliedBounds()
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
HINT_SEARCH
static final int SEARCH_BRANCHING_FIELD_NUMBER
Builder setLogSearchProgress(boolean value)
Builder clearPresolveBveClauseWeight()
Builder setUseErwaHeuristic(boolean value)
boolean hasMinimizeCore()
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder clearGlucoseMaxDecay()
int getMaxIntegerRoundingScaling()
int getMaxPresolveIterations()
.lang.Deprecated static ConflictMinimizationAlgorithm valueOf(int value)
boolean hasCpModelPresolve()
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
Builder clearMinimizeCore()
.lang.Deprecated static RestartAlgorithm valueOf(int value)
Builder clearRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
boolean hasExploitAllLpSolution()
boolean hasBinarySearchNumConflicts()
boolean hasDeterministicParallelSearch()
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
Builder clearUseErwaHeuristic()
Builder clearClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
boolean hasNumSearchWorkers()
static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER
boolean getOptimizeWithCore()
Builder clearUseRelaxationLns()
int getMipMaxActivityExponent()
Builder clearExploitObjective()
Builder setOnlyAddCutsAtLevelZero(boolean value)
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder clearMaxSatReverseAssumptionOrder()
boolean getDeterministicParallelSearch()
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
BINARY_MINIMIZATION_FIRST
BINARY_MINIMIZATION_FIRST = 1;
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
boolean getExploitAllLpSolution()
Builder clearInterleaveSearch()
boolean getUsePhaseSaving()
ORDER_ASSUMPTION_BY_DEPTH
ORDER_ASSUMPTION_BY_DEPTH = 1;
Builder clearPresolveBlockedClause()
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder setPresolveBveClauseWeight(int value)
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
Builder setUseCombinedNoOverlap(boolean value)
boolean hasClauseCleanupPeriod()
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
boolean hasSearchRandomizationTolerance()
static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER
double getMergeNoOverlapWorkLimit()
int getMaxIntegerRoundingScaling()
double getStrategyChangeIncreaseRatio()
STRATIFICATION_DESCENT
double getInitialVariablesActivity()
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
final int getNumber()
Builder setMipVarScaling(double value)
Builder setUseRelaxationLns(boolean value)
Builder setBinarySearchNumConflicts(int value)
boolean hasMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
boolean hasUseCombinedNoOverlap()
static final int MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER
boolean hasRandomPolarityRatio()
static final int USE_IMPLIED_BOUNDS_FIELD_NUMBER
static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER
boolean getCoverOptimization()
static final int NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER
boolean getExploitIntegerLpSolution()
boolean getAddCgCuts()
Builder clearRestartDlAverageRatio()
Builder clearCatchSigintSignal()
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder clearPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4;
boolean hasAddKnapsackCuts()
boolean getUsePbResolution()
int getNumConflictsBeforeStrategyChanges()
int getRestartRunningWindowSize()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
.lang.Deprecated static Polarity valueOf(int value)
boolean hasStopAfterPresolve()
boolean getAutoDetectGreaterThanAtLeastOneOf()
boolean getCpModelUseSatPresolve()
.lang.Override int getSerializedSize()
Builder clearSubsumptionDuringConflictAnalysis()
Builder clearUseBranchingInLp()
boolean hasPresolveBveThreshold()
Builder setPresolveUseBva(boolean value)
long getPseudoCostReliabilityThreshold()
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
Builder clearCpModelPresolve()
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
PORTFOLIO_WITH_QUICK_RESTART_SEARCH
EXPERIMENTAL
EXPERIMENTAL = 3;
boolean getInterleaveSearch()
Builder clearAlsoBumpVariablesInConflictReasons()
boolean hasMinimizeCore()
static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER
DL_MOVING_AVERAGE_RESTART
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Builder clearMaxConsecutiveInactiveCount()
boolean hasSubsumptionDuringConflictAnalysis()
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
boolean hasMaxDeterministicTime()
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearClauseCleanupPeriod()
double getMipWantedPrecision()
Builder clearPresolveBveThreshold()
boolean hasGlucoseMaxDecay()
Builder clearMipMaxActivityExponent()
static SearchBranching forNumber(int value)
int getMaxConsecutiveInactiveCount()
Builder setMergeAtMostOneWorkLimit(double value)
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
static final int USE_RELAXATION_LNS_FIELD_NUMBER
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasCoverOptimization()
Builder setMaxClauseActivityValue(double value)
optional double max_clause_activity_value = 18 [default = 1e+20];
int getRestartPeriod()
double getClauseActivityDecay()
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int USE_EXACT_LP_REASON_FIELD_NUMBER
static final int INITIAL_POLARITY_FIELD_NUMBER
RECURSIVE
RECURSIVE = 2;
Builder clearLinearizationLevel()
Builder setMipMaxBound(double value)
boolean hasClauseActivityDecay()
double getClauseActivityDecay()
static Polarity forNumber(int value)
Builder setRandomPolarityRatio(double value)
boolean hasExpandElementConstraints()
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
STRATIFICATION_NONE
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder clearInstantiateAllVariables()
boolean hasInitialVariablesActivity()
boolean hasUseRelaxationLns()
PROTECTION_NONE
Builder clearShareLevelZeroBounds()
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
Builder setClauseCleanupLbdBound(int value)
boolean hasUsePhaseSaving()
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
static final int NUM_SEARCH_WORKERS_FIELD_NUMBER
Builder setRestartPeriod(int value)
Builder clearCpModelUseSatPresolve()
int getPresolveBvaThreshold()
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
Builder setVariableActivityDecay(double value)
Builder setCpModelPresolve(boolean value)
NO_RESTART
NO_RESTART = 0;
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
Builder setRandomSeed(int value)
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder clearTreatBinaryClausesSeparately()
static final int PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
boolean hasShareObjectiveBounds()
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
boolean hasMaxConsecutiveInactiveCount()
static final int USE_PHASE_SAVING_FIELD_NUMBER
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
boolean hasMaxNumCuts()
Builder clearPbCleanupIncrement()
Builder setExploitBestSolution(boolean value)
Builder clearMergeNoOverlapWorkLimit()
boolean hasReduceMemoryUsageInInterleaveMode()
boolean hasStrategyChangeIncreaseRatio()
FIXED_SEARCH
static final int MINIMIZE_WITH_PROPAGATION_RESTART_PERIOD_FIELD_NUMBER
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean hasMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER
static final int LINEARIZATION_LEVEL_FIELD_NUMBER
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.ortools.sat.SatParameters getDefaultInstance()
boolean getUseRelaxationLns()
boolean hasFindMultipleCores()
int getMaxNumCuts()
Builder setMinimizeReductionDuringPbResolution(boolean value)
boolean getPresolveBlockedClause()
int getRestartRunningWindowSize()
.lang.Deprecated static MaxSatAssumptionOrder valueOf(int value)
boolean getPresolveBlockedClause()
static final int USE_BLOCKING_RESTART_FIELD_NUMBER
Builder setUseOptionalVariables(boolean value)
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasUseBlockingRestart()
LUBY_RESTART
double getMaxDeterministicTime()
Builder clearProbingPeriodAtRoot()
double getGlucoseMaxDecay()
.lang.Override Builder newBuilderForType()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
boolean hasMipMaxActivityExponent()
boolean hasRandomSeed()
Builder clearPresolveUseBva()
boolean hasOnlyAddCutsAtLevelZero()
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
double getStrategyChangeIncreaseRatio()
LP_SEARCH
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
Builder clearDeterministicParallelSearch()
boolean getUseOverloadCheckerInCumulativeConstraint()
Builder setCatchSigintSignal(boolean value)
Builder clearExploitBestSolution()
static final int MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
Builder setExploitObjective(boolean value)
static final int MAX_MEMORY_IN_MB_FIELD_NUMBER
int getMaxAllDiffCutSize()
boolean hasAddCgCuts()
boolean hasNewConstraintsBatchSize()
boolean getRandomizeSearch()
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder clearBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
Builder clearMinimizeReductionDuringPbResolution()
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
long getMaxMemoryInMb()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean hasCpModelUseSatPresolve()
boolean getExploitObjective()
int getNewConstraintsBatchSize()
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean getAlsoBumpVariablesInConflictReasons()
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
long getSearchRandomizationTolerance()
boolean getAddKnapsackCuts()
long getMaxNumberOfConflicts()
Builder clearMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
boolean hasRandomizeSearch()
Builder clearFillTightenedDomainsInResponse()
boolean getCatchSigintSignal()
boolean getCpModelPresolve()
Builder clearClauseCleanupLbdBound()
boolean hasPseudoCostReliabilityThreshold()
Builder setFillTightenedDomainsInResponse(boolean value)
Builder setUseBlockingRestart(boolean value)
int getBinarySearchNumConflicts()
int getBooleanEncodingLevel()
double getMipCheckPrecision()
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean hasPbCleanupIncrement()
Builder clearMaxPresolveIterations()
boolean getAddMirCuts()
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasRandomizeSearch()
static final int USE_ERWA_HEURISTIC_FIELD_NUMBER
Builder clearCountAssumptionLevelsInLbd()
Builder setGlucoseMaxDecay(double value)
Builder clearClauseActivityDecay()
static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER
int getClauseCleanupLbdBound()
boolean getMaxSatReverseAssumptionOrder()
boolean hasRandomSeed()
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...