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  useOptimizationHints_ = true;
75  minimizeCore_ = true;
76  findMultipleCores_ = true;
77  coverOptimization_ = true;
78  maxSatAssumptionOrder_ = 0;
79  maxSatStratification_ = 1;
80  usePrecedencesInDisjunctiveConstraint_ = true;
81  useDisjunctiveConstraintInCumulativeConstraint_ = true;
82  linearizationLevel_ = 1;
83  booleanEncodingLevel_ = 1;
84  maxNumCuts_ = 5000;
85  addMirCuts_ = true;
86  useMirRounding_ = true;
87  maxIntegerRoundingScaling_ = 600;
88  addLpConstraintsLazily_ = true;
89  maxInactiveCount_ = 1000L;
90  constraintRemovalBatchSize_ = 100L;
91  searchBranching_ = 0;
92  exploitIntegerLpSolution_ = true;
93  exploitAllLpSolution_ = true;
94  exploitObjective_ = true;
95  pseudoCostReliabilityThreshold_ = 100L;
96  binarySearchNumConflicts_ = -1;
97  instantiateAllVariables_ = true;
98  autoDetectGreaterThanAtLeastOneOf_ = true;
99  numSearchWorkers_ = 1;
100  reduceMemoryUsageInInterleaveMode_ = true;
101  shareObjectiveBounds_ = true;
102  shareLevelZeroBounds_ = true;
103  useRinsLns_ = true;
104  useOptionalVariables_ = true;
105  useExactLpReason_ = true;
106  catchSigintSignal_ = true;
107  mipMaxBound_ = 10000000D;
108  mipVarScaling_ = 1D;
109  mipWantedPrecision_ = 1e-06D;
110  mipMaxActivityExponent_ = 53;
111  mipCheckPrecision_ = 0.0001D;
112  }
113 
114  @java.lang.Override
115  @SuppressWarnings({"unused"})
116  protected java.lang.Object newInstance(
117  UnusedPrivateParameter unused) {
118  return new SatParameters();
119  }
120 
121  @java.lang.Override
122  public final com.google.protobuf.UnknownFieldSet
124  return this.unknownFields;
125  }
126  private SatParameters(
127  com.google.protobuf.CodedInputStream input,
128  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
129  throws com.google.protobuf.InvalidProtocolBufferException {
130  this();
131  if (extensionRegistry == null) {
132  throw new java.lang.NullPointerException();
133  }
134  int mutable_bitField0_ = 0;
135  int mutable_bitField1_ = 0;
136  int mutable_bitField2_ = 0;
137  int mutable_bitField3_ = 0;
138  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
139  com.google.protobuf.UnknownFieldSet.newBuilder();
140  try {
141  boolean done = false;
142  while (!done) {
143  int tag = input.readTag();
144  switch (tag) {
145  case 0:
146  done = true;
147  break;
148  case 8: {
149  int rawValue = input.readEnum();
150  @SuppressWarnings("deprecation")
151  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
152  if (value == null) {
153  unknownFields.mergeVarintField(1, rawValue);
154  } else {
155  bitField0_ |= 0x00000001;
156  preferredVariableOrder_ = rawValue;
157  }
158  break;
159  }
160  case 16: {
161  int rawValue = input.readEnum();
162  @SuppressWarnings("deprecation")
163  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
164  if (value == null) {
165  unknownFields.mergeVarintField(2, rawValue);
166  } else {
167  bitField0_ |= 0x00000002;
168  initialPolarity_ = rawValue;
169  }
170  break;
171  }
172  case 32: {
173  int rawValue = input.readEnum();
174  @SuppressWarnings("deprecation")
175  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
176  if (value == null) {
177  unknownFields.mergeVarintField(4, rawValue);
178  } else {
179  bitField0_ |= 0x00000100;
180  minimizationAlgorithm_ = rawValue;
181  }
182  break;
183  }
184  case 88: {
185  bitField0_ |= 0x00000800;
186  clauseCleanupPeriod_ = input.readInt32();
187  break;
188  }
189  case 104: {
190  bitField0_ |= 0x00001000;
191  clauseCleanupTarget_ = input.readInt32();
192  break;
193  }
194  case 121: {
195  bitField0_ |= 0x00100000;
196  variableActivityDecay_ = input.readDouble();
197  break;
198  }
199  case 129: {
200  bitField0_ |= 0x00200000;
201  maxVariableActivityValue_ = input.readDouble();
202  break;
203  }
204  case 137: {
205  bitField0_ |= 0x02000000;
206  clauseActivityDecay_ = input.readDouble();
207  break;
208  }
209  case 145: {
210  bitField0_ |= 0x04000000;
211  maxClauseActivityValue_ = input.readDouble();
212  break;
213  }
214  case 177: {
215  bitField0_ |= 0x00400000;
216  glucoseMaxDecay_ = input.readDouble();
217  break;
218  }
219  case 185: {
220  bitField0_ |= 0x00800000;
221  glucoseDecayIncrement_ = input.readDouble();
222  break;
223  }
224  case 192: {
225  bitField0_ |= 0x01000000;
226  glucoseDecayIncrementPeriod_ = input.readInt32();
227  break;
228  }
229  case 240: {
230  bitField0_ |= 0x10000000;
231  restartPeriod_ = input.readInt32();
232  break;
233  }
234  case 248: {
235  bitField1_ |= 0x00000400;
236  randomSeed_ = input.readInt32();
237  break;
238  }
239  case 257: {
240  bitField0_ |= 0x00000010;
241  randomBranchesRatio_ = input.readDouble();
242  break;
243  }
244  case 264: {
245  bitField1_ |= 0x00000200;
246  treatBinaryClausesSeparately_ = input.readBool();
247  break;
248  }
249  case 272: {
250  int rawValue = input.readEnum();
251  @SuppressWarnings("deprecation")
252  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
253  if (value == null) {
254  unknownFields.mergeVarintField(34, rawValue);
255  } else {
256  bitField0_ |= 0x00000200;
257  binaryMinimizationAlgorithm_ = rawValue;
258  }
259  break;
260  }
261  case 280: {
262  bitField1_ |= 0x08000000;
263  useOptimizationHints_ = input.readBool();
264  break;
265  }
266  case 289: {
267  bitField1_ |= 0x00000020;
268  maxTimeInSeconds_ = input.readDouble();
269  break;
270  }
271  case 296: {
272  bitField1_ |= 0x00000080;
273  maxNumberOfConflicts_ = input.readInt64();
274  break;
275  }
276  case 320: {
277  bitField1_ |= 0x00000100;
278  maxMemoryInMb_ = input.readInt64();
279  break;
280  }
281  case 328: {
282  bitField1_ |= 0x00000800;
283  logSearchProgress_ = input.readBool();
284  break;
285  }
286  case 344: {
287  bitField1_ |= 0x00001000;
288  usePbResolution_ = input.readBool();
289  break;
290  }
291  case 352: {
292  bitField0_ |= 0x00000004;
293  usePhaseSaving_ = input.readBool();
294  break;
295  }
296  case 361: {
297  bitField0_ |= 0x00000008;
298  randomPolarityRatio_ = input.readDouble();
299  break;
300  }
301  case 368: {
302  bitField0_ |= 0x00010000;
303  pbCleanupIncrement_ = input.readInt32();
304  break;
305  }
306  case 377: {
307  bitField0_ |= 0x00020000;
308  pbCleanupRatio_ = input.readDouble();
309  break;
310  }
311  case 384: {
312  bitField1_ |= 0x00002000;
313  minimizeReductionDuringPbResolution_ = input.readBool();
314  break;
315  }
316  case 392: {
317  bitField1_ |= 0x00004000;
318  countAssumptionLevelsInLbd_ = input.readBool();
319  break;
320  }
321  case 400: {
322  bitField1_ |= 0x10000000;
323  minimizeCore_ = input.readBool();
324  break;
325  }
326  case 408: {
327  int rawValue = input.readEnum();
328  @SuppressWarnings("deprecation")
329  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
330  if (value == null) {
331  unknownFields.mergeVarintField(51, rawValue);
332  } else {
333  bitField1_ |= 0x80000000;
334  maxSatAssumptionOrder_ = rawValue;
335  }
336  break;
337  }
338  case 416: {
339  bitField2_ |= 0x00000001;
340  maxSatReverseAssumptionOrder_ = input.readBool();
341  break;
342  }
343  case 424: {
344  int rawValue = input.readEnum();
345  @SuppressWarnings("deprecation")
346  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
347  if (value == null) {
348  unknownFields.mergeVarintField(53, rawValue);
349  } else {
350  bitField2_ |= 0x00000002;
351  maxSatStratification_ = rawValue;
352  }
353  break;
354  }
355  case 432: {
356  bitField1_ |= 0x00008000;
357  presolveBveThreshold_ = input.readInt32();
358  break;
359  }
360  case 440: {
361  bitField1_ |= 0x00010000;
362  presolveBveClauseWeight_ = input.readInt32();
363  break;
364  }
365  case 448: {
366  bitField0_ |= 0x00000400;
367  subsumptionDuringConflictAnalysis_ = input.readBool();
368  break;
369  }
370  case 457: {
371  bitField1_ |= 0x00020000;
372  presolveProbingDeterministicTimeLimit_ = input.readDouble();
373  break;
374  }
375  case 464: {
376  int rawValue = input.readEnum();
377  @SuppressWarnings("deprecation")
378  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
379  if (value == null) {
380  unknownFields.mergeVarintField(58, rawValue);
381  } else {
382  bitField0_ |= 0x00002000;
383  clauseCleanupProtection_ = rawValue;
384  }
385  break;
386  }
387  case 472: {
388  bitField0_ |= 0x00004000;
389  clauseCleanupLbdBound_ = input.readInt32();
390  break;
391  }
392  case 480: {
393  int rawValue = input.readEnum();
394  @SuppressWarnings("deprecation")
395  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
396  if (value == null) {
397  unknownFields.mergeVarintField(60, rawValue);
398  } else {
399  bitField0_ |= 0x00008000;
400  clauseCleanupOrdering_ = rawValue;
401  }
402  break;
403  }
404  case 488: {
405  int rawValue = input.readEnum();
406  @SuppressWarnings("deprecation")
407  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
408  if (value == null) {
409  unknownFields.mergeVarintField(61, rawValue);
410  } else {
411  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
412  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
413  mutable_bitField0_ |= 0x08000000;
414  }
415  restartAlgorithms_.add(rawValue);
416  }
417  break;
418  }
419  case 490: {
420  int length = input.readRawVarint32();
421  int oldLimit = input.pushLimit(length);
422  while(input.getBytesUntilLimit() > 0) {
423  int rawValue = input.readEnum();
424  @SuppressWarnings("deprecation")
425  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
426  if (value == null) {
427  unknownFields.mergeVarintField(61, rawValue);
428  } else {
429  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
430  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
431  mutable_bitField0_ |= 0x08000000;
432  }
433  restartAlgorithms_.add(rawValue);
434  }
435  }
436  input.popLimit(oldLimit);
437  break;
438  }
439  case 496: {
440  bitField0_ |= 0x20000000;
441  restartRunningWindowSize_ = input.readInt32();
442  break;
443  }
444  case 505: {
445  bitField0_ |= 0x40000000;
446  restartDlAverageRatio_ = input.readDouble();
447  break;
448  }
449  case 512: {
450  bitField1_ |= 0x00000001;
451  useBlockingRestart_ = input.readBool();
452  break;
453  }
454  case 520: {
455  bitField1_ |= 0x00000002;
456  blockingRestartWindowSize_ = input.readInt32();
457  break;
458  }
459  case 529: {
460  bitField1_ |= 0x00000004;
461  blockingRestartMultiplier_ = input.readDouble();
462  break;
463  }
464  case 537: {
465  bitField1_ |= 0x00000040;
466  maxDeterministicTime_ = input.readDouble();
467  break;
468  }
469  case 544: {
470  bitField1_ |= 0x00000008;
471  numConflictsBeforeStrategyChanges_ = input.readInt32();
472  break;
473  }
474  case 553: {
475  bitField1_ |= 0x00000010;
476  strategyChangeIncreaseRatio_ = input.readDouble();
477  break;
478  }
479  case 562: {
480  com.google.protobuf.ByteString bs = input.readBytes();
481  bitField0_ |= 0x08000000;
482  defaultRestartAlgorithms_ = bs;
483  break;
484  }
485  case 569: {
486  bitField0_ |= 0x80000000;
487  restartLbdAverageRatio_ = input.readDouble();
488  break;
489  }
490  case 576: {
491  bitField1_ |= 0x00080000;
492  presolveUseBva_ = input.readBool();
493  break;
494  }
495  case 584: {
496  bitField1_ |= 0x00100000;
497  presolveBvaThreshold_ = input.readInt32();
498  break;
499  }
500  case 592: {
501  bitField2_ |= 0x00000004;
502  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
503  break;
504  }
505  case 600: {
506  bitField0_ |= 0x00000020;
507  useErwaHeuristic_ = input.readBool();
508  break;
509  }
510  case 609: {
511  bitField0_ |= 0x00000040;
512  initialVariablesActivity_ = input.readDouble();
513  break;
514  }
515  case 616: {
516  bitField0_ |= 0x00000080;
517  alsoBumpVariablesInConflictReasons_ = input.readBool();
518  break;
519  }
520  case 624: {
521  bitField2_ |= 0x00000008;
522  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
523  break;
524  }
525  case 632: {
526  bitField2_ |= 0x00000010;
527  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
528  break;
529  }
530  case 640: {
531  bitField2_ |= 0x00000020;
532  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
533  break;
534  }
535  case 656: {
536  int rawValue = input.readEnum();
537  @SuppressWarnings("deprecation")
538  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
539  if (value == null) {
540  unknownFields.mergeVarintField(82, rawValue);
541  } else {
542  bitField2_ |= 0x00080000;
543  searchBranching_ = rawValue;
544  }
545  break;
546  }
547  case 664: {
548  bitField2_ |= 0x04000000;
549  optimizeWithCore_ = input.readBool();
550  break;
551  }
552  case 672: {
553  bitField1_ |= 0x20000000;
554  findMultipleCores_ = input.readBool();
555  break;
556  }
557  case 680: {
558  bitField2_ |= 0x10000000;
559  optimizeWithMaxHs_ = input.readBool();
560  break;
561  }
562  case 688: {
563  bitField1_ |= 0x00400000;
564  cpModelPresolve_ = input.readBool();
565  break;
566  }
567  case 696: {
568  bitField2_ |= 0x20000000;
569  enumerateAllSolutions_ = input.readBool();
570  break;
571  }
572  case 704: {
573  bitField1_ |= 0x00040000;
574  presolveBlockedClause_ = input.readBool();
575  break;
576  }
577  case 712: {
578  bitField1_ |= 0x40000000;
579  coverOptimization_ = input.readBool();
580  break;
581  }
582  case 720: {
583  bitField2_ |= 0x00000040;
584  linearizationLevel_ = input.readInt32();
585  break;
586  }
587  case 728: {
588  bitField2_ |= 0x00000100;
589  maxNumCuts_ = input.readInt32();
590  break;
591  }
592  case 736: {
593  bitField2_ |= 0x00000200;
594  onlyAddCutsAtLevelZero_ = input.readBool();
595  break;
596  }
597  case 744: {
598  bitField1_ |= 0x01000000;
599  cpModelUseSatPresolve_ = input.readBool();
600  break;
601  }
602  case 752: {
603  bitField2_ |= 0x00100000;
604  exploitIntegerLpSolution_ = input.readBool();
605  break;
606  }
607  case 760: {
608  bitField3_ |= 0x00000001;
609  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
610  break;
611  }
612  case 768: {
613  bitField0_ |= 0x00040000;
614  minimizeWithPropagationRestartPeriod_ = input.readInt32();
615  break;
616  }
617  case 776: {
618  bitField0_ |= 0x00080000;
619  minimizeWithPropagationNumDecisions_ = input.readInt32();
620  break;
621  }
622  case 784: {
623  bitField3_ |= 0x00000002;
624  stopAfterFirstSolution_ = input.readBool();
625  break;
626  }
627  case 792: {
628  bitField2_ |= 0x08000000;
629  binarySearchNumConflicts_ = input.readInt32();
630  break;
631  }
632  case 800: {
633  bitField3_ |= 0x00000004;
634  numSearchWorkers_ = input.readInt32();
635  break;
636  }
637  case 808: {
638  bitField3_ |= 0x00000100;
639  useLnsOnly_ = input.readBool();
640  break;
641  }
642  case 824: {
643  bitField3_ |= 0x00001000;
644  randomizeSearch_ = input.readBool();
645  break;
646  }
647  case 832: {
648  bitField3_ |= 0x00002000;
649  searchRandomizationTolerance_ = input.readInt64();
650  break;
651  }
652  case 840: {
653  bitField3_ |= 0x00000200;
654  lnsFocusOnDecisionVariables_ = input.readBool();
655  break;
656  }
657  case 848: {
658  bitField2_ |= 0x80000000;
659  instantiateAllVariables_ = input.readBool();
660  break;
661  }
662  case 856: {
663  bitField2_ |= 0x00000080;
664  booleanEncodingLevel_ = input.readInt32();
665  break;
666  }
667  case 864: {
668  bitField3_ |= 0x00004000;
669  useOptionalVariables_ = input.readBool();
670  break;
671  }
672  case 872: {
673  bitField3_ |= 0x00008000;
674  useExactLpReason_ = input.readBool();
675  break;
676  }
677  case 880: {
678  bitField1_ |= 0x00800000;
679  cpModelProbingLevel_ = input.readInt32();
680  break;
681  }
682  case 888: {
683  bitField2_ |= 0x00000400;
684  addKnapsackCuts_ = input.readBool();
685  break;
686  }
687  case 896: {
688  bitField2_ |= 0x00008000;
689  addLpConstraintsLazily_ = input.readBool();
690  break;
691  }
692  case 904: {
693  bitField3_ |= 0x00000040;
694  shareObjectiveBounds_ = input.readBool();
695  break;
696  }
697  case 912: {
698  bitField3_ |= 0x00000080;
699  shareLevelZeroBounds_ = input.readBool();
700  break;
701  }
702  case 921: {
703  bitField2_ |= 0x00010000;
704  minOrthogonalityForLpConstraints_ = input.readDouble();
705  break;
706  }
707  case 928: {
708  bitField2_ |= 0x00200000;
709  exploitAllLpSolution_ = input.readBool();
710  break;
711  }
712  case 936: {
713  bitField2_ |= 0x00000800;
714  addCgCuts_ = input.readBool();
715  break;
716  }
717  case 944: {
718  bitField2_ |= 0x00002000;
719  useMirRounding_ = input.readBool();
720  break;
721  }
722  case 952: {
723  bitField2_ |= 0x00004000;
724  maxIntegerRoundingScaling_ = input.readInt32();
725  break;
726  }
727  case 960: {
728  bitField2_ |= 0x00001000;
729  addMirCuts_ = input.readBool();
730  break;
731  }
732  case 968: {
733  bitField2_ |= 0x00020000;
734  maxInactiveCount_ = input.readInt64();
735  break;
736  }
737  case 976: {
738  bitField2_ |= 0x00040000;
739  constraintRemovalBatchSize_ = input.readInt64();
740  break;
741  }
742  case 984: {
743  bitField2_ |= 0x02000000;
744  pseudoCostReliabilityThreshold_ = input.readInt64();
745  break;
746  }
747  case 993: {
748  bitField3_ |= 0x00080000;
749  mipMaxBound_ = input.readDouble();
750  break;
751  }
752  case 1001: {
753  bitField3_ |= 0x00100000;
754  mipVarScaling_ = input.readDouble();
755  break;
756  }
757  case 1009: {
758  bitField3_ |= 0x00200000;
759  mipWantedPrecision_ = input.readDouble();
760  break;
761  }
762  case 1016: {
763  bitField3_ |= 0x00400000;
764  mipMaxActivityExponent_ = input.readInt32();
765  break;
766  }
767  case 1025: {
768  bitField3_ |= 0x00800000;
769  mipCheckPrecision_ = input.readDouble();
770  break;
771  }
772  case 1032: {
773  bitField3_ |= 0x00000400;
774  useRinsLns_ = input.readBool();
775  break;
776  }
777  case 1040: {
778  bitField2_ |= 0x00400000;
779  exploitBestSolution_ = input.readBool();
780  break;
781  }
782  case 1048: {
783  bitField2_ |= 0x00800000;
784  exploitObjective_ = input.readBool();
785  break;
786  }
787  case 1056: {
788  bitField2_ |= 0x40000000;
789  fillTightenedDomainsInResponse_ = input.readBool();
790  break;
791  }
792  case 1064: {
793  bitField3_ |= 0x00020000;
794  useCombinedNoOverlap_ = input.readBool();
795  break;
796  }
797  case 1072: {
798  bitField3_ |= 0x00000020;
799  deterministicParallelSearch_ = input.readBool();
800  break;
801  }
802  case 1080: {
803  bitField3_ |= 0x00040000;
804  catchSigintSignal_ = input.readBool();
805  break;
806  }
807  case 1088: {
808  bitField3_ |= 0x00000008;
809  interleaveSearch_ = input.readBool();
810  break;
811  }
812  case 1096: {
813  bitField3_ |= 0x00000800;
814  diversifyLnsParams_ = input.readBool();
815  break;
816  }
817  case 1104: {
818  bitField1_ |= 0x00200000;
819  maxPresolveIterations_ = input.readInt32();
820  break;
821  }
822  case 1112: {
823  bitField3_ |= 0x00010000;
824  useBranchingInLp_ = input.readBool();
825  break;
826  }
827  case 1120: {
828  bitField1_ |= 0x02000000;
829  expandElementConstraints_ = input.readBool();
830  break;
831  }
832  case 1128: {
833  bitField3_ |= 0x00000010;
834  reduceMemoryUsageInInterleaveMode_ = input.readBool();
835  break;
836  }
837  case 1136: {
838  bitField2_ |= 0x01000000;
839  probingPeriodAtRoot_ = input.readInt64();
840  break;
841  }
842  case 1144: {
843  bitField1_ |= 0x04000000;
844  expandAutomatonConstraints_ = input.readBool();
845  break;
846  }
847  default: {
848  if (!parseUnknownField(
849  input, unknownFields, extensionRegistry, tag)) {
850  done = true;
851  }
852  break;
853  }
854  }
855  }
856  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
857  throw e.setUnfinishedMessage(this);
858  } catch (java.io.IOException e) {
859  throw new com.google.protobuf.InvalidProtocolBufferException(
860  e).setUnfinishedMessage(this);
861  } finally {
862  if (((mutable_bitField0_ & 0x08000000) != 0)) {
863  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
864  }
865  this.unknownFields = unknownFields.build();
866  makeExtensionsImmutable();
867  }
868  }
869  public static final com.google.protobuf.Descriptors.Descriptor
871  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
872  }
873 
874  @java.lang.Override
875  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
877  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
878  .ensureFieldAccessorsInitialized(
880  }
881 
890  public enum VariableOrder
891  implements com.google.protobuf.ProtocolMessageEnum {
908  ;
909 
917  public static final int IN_ORDER_VALUE = 0;
921  public static final int IN_REVERSE_ORDER_VALUE = 1;
925  public static final int IN_RANDOM_ORDER_VALUE = 2;
926 
927 
928  public final int getNumber() {
929  return value;
930  }
931 
935  @java.lang.Deprecated
936  public static VariableOrder valueOf(int value) {
937  return forNumber(value);
938  }
939 
940  public static VariableOrder forNumber(int value) {
941  switch (value) {
942  case 0: return IN_ORDER;
943  case 1: return IN_REVERSE_ORDER;
944  case 2: return IN_RANDOM_ORDER;
945  default: return null;
946  }
947  }
948 
949  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
951  return internalValueMap;
952  }
953  private static final com.google.protobuf.Internal.EnumLiteMap<
954  VariableOrder> internalValueMap =
955  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
956  public VariableOrder findValueByNumber(int number) {
957  return VariableOrder.forNumber(number);
958  }
959  };
960 
961  public final com.google.protobuf.Descriptors.EnumValueDescriptor
963  return getDescriptor().getValues().get(ordinal());
964  }
965  public final com.google.protobuf.Descriptors.EnumDescriptor
967  return getDescriptor();
968  }
969  public static final com.google.protobuf.Descriptors.EnumDescriptor
971  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
972  }
973 
974  private static final VariableOrder[] VALUES = values();
975 
976  public static VariableOrder valueOf(
977  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
978  if (desc.getType() != getDescriptor()) {
979  throw new java.lang.IllegalArgumentException(
980  "EnumValueDescriptor is not for this type.");
981  }
982  return VALUES[desc.getIndex()];
983  }
984 
985  private final int value;
986 
987  private VariableOrder(int value) {
988  this.value = value;
989  }
990 
991  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
992  }
993 
1005  public enum Polarity
1006  implements com.google.protobuf.ProtocolMessageEnum {
1038  ;
1039 
1043  public static final int POLARITY_TRUE_VALUE = 0;
1047  public static final int POLARITY_FALSE_VALUE = 1;
1051  public static final int POLARITY_RANDOM_VALUE = 2;
1062  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1070  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1071 
1072 
1073  public final int getNumber() {
1074  return value;
1075  }
1076 
1080  @java.lang.Deprecated
1081  public static Polarity valueOf(int value) {
1082  return forNumber(value);
1083  }
1084 
1085  public static Polarity forNumber(int value) {
1086  switch (value) {
1087  case 0: return POLARITY_TRUE;
1088  case 1: return POLARITY_FALSE;
1089  case 2: return POLARITY_RANDOM;
1090  case 3: return POLARITY_WEIGHTED_SIGN;
1091  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1092  default: return null;
1093  }
1094  }
1095 
1096  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1098  return internalValueMap;
1099  }
1100  private static final com.google.protobuf.Internal.EnumLiteMap<
1101  Polarity> internalValueMap =
1102  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1103  public Polarity findValueByNumber(int number) {
1104  return Polarity.forNumber(number);
1105  }
1106  };
1107 
1108  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1110  return getDescriptor().getValues().get(ordinal());
1111  }
1112  public final com.google.protobuf.Descriptors.EnumDescriptor
1114  return getDescriptor();
1115  }
1116  public static final com.google.protobuf.Descriptors.EnumDescriptor
1118  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1119  }
1120 
1121  private static final Polarity[] VALUES = values();
1122 
1123  public static Polarity valueOf(
1124  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1125  if (desc.getType() != getDescriptor()) {
1126  throw new java.lang.IllegalArgumentException(
1127  "EnumValueDescriptor is not for this type.");
1128  }
1129  return VALUES[desc.getIndex()];
1130  }
1131 
1132  private final int value;
1133 
1134  private Polarity(int value) {
1135  this.value = value;
1136  }
1137 
1138  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1139  }
1140 
1149  implements com.google.protobuf.ProtocolMessageEnum {
1153  NONE(0),
1166  ;
1167 
1171  public static final int NONE_VALUE = 0;
1175  public static final int SIMPLE_VALUE = 1;
1179  public static final int RECURSIVE_VALUE = 2;
1183  public static final int EXPERIMENTAL_VALUE = 3;
1184 
1185 
1186  public final int getNumber() {
1187  return value;
1188  }
1189 
1193  @java.lang.Deprecated
1194  public static ConflictMinimizationAlgorithm valueOf(int value) {
1195  return forNumber(value);
1196  }
1197 
1198  public static ConflictMinimizationAlgorithm forNumber(int value) {
1199  switch (value) {
1200  case 0: return NONE;
1201  case 1: return SIMPLE;
1202  case 2: return RECURSIVE;
1203  case 3: return EXPERIMENTAL;
1204  default: return null;
1205  }
1206  }
1207 
1208  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1210  return internalValueMap;
1211  }
1212  private static final com.google.protobuf.Internal.EnumLiteMap<
1213  ConflictMinimizationAlgorithm> internalValueMap =
1214  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1215  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1217  }
1218  };
1219 
1220  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1222  return getDescriptor().getValues().get(ordinal());
1223  }
1224  public final com.google.protobuf.Descriptors.EnumDescriptor
1226  return getDescriptor();
1227  }
1228  public static final com.google.protobuf.Descriptors.EnumDescriptor
1230  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1231  }
1232 
1233  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1234 
1236  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1237  if (desc.getType() != getDescriptor()) {
1238  throw new java.lang.IllegalArgumentException(
1239  "EnumValueDescriptor is not for this type.");
1240  }
1241  return VALUES[desc.getIndex()];
1242  }
1243 
1244  private final int value;
1245 
1246  private ConflictMinimizationAlgorithm(int value) {
1247  this.value = value;
1248  }
1249 
1250  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1251  }
1252 
1262  implements com.google.protobuf.ProtocolMessageEnum {
1283  ;
1284 
1288  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1292  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1296  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1300  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1304  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1305 
1306 
1307  public final int getNumber() {
1308  return value;
1309  }
1310 
1314  @java.lang.Deprecated
1315  public static BinaryMinizationAlgorithm valueOf(int value) {
1316  return forNumber(value);
1317  }
1318 
1319  public static BinaryMinizationAlgorithm forNumber(int value) {
1320  switch (value) {
1321  case 0: return NO_BINARY_MINIMIZATION;
1322  case 1: return BINARY_MINIMIZATION_FIRST;
1323  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1324  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1325  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1326  default: return null;
1327  }
1328  }
1329 
1330  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1332  return internalValueMap;
1333  }
1334  private static final com.google.protobuf.Internal.EnumLiteMap<
1335  BinaryMinizationAlgorithm> internalValueMap =
1336  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1337  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1338  return BinaryMinizationAlgorithm.forNumber(number);
1339  }
1340  };
1341 
1342  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1344  return getDescriptor().getValues().get(ordinal());
1345  }
1346  public final com.google.protobuf.Descriptors.EnumDescriptor
1348  return getDescriptor();
1349  }
1350  public static final com.google.protobuf.Descriptors.EnumDescriptor
1352  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1353  }
1354 
1355  private static final BinaryMinizationAlgorithm[] VALUES = values();
1356 
1358  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1359  if (desc.getType() != getDescriptor()) {
1360  throw new java.lang.IllegalArgumentException(
1361  "EnumValueDescriptor is not for this type.");
1362  }
1363  return VALUES[desc.getIndex()];
1364  }
1365 
1366  private final int value;
1367 
1368  private BinaryMinizationAlgorithm(int value) {
1369  this.value = value;
1370  }
1371 
1372  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1373  }
1374 
1384  public enum ClauseProtection
1385  implements com.google.protobuf.ProtocolMessageEnum {
1410  ;
1411 
1419  public static final int PROTECTION_NONE_VALUE = 0;
1427  public static final int PROTECTION_ALWAYS_VALUE = 1;
1435  public static final int PROTECTION_LBD_VALUE = 2;
1436 
1437 
1438  public final int getNumber() {
1439  return value;
1440  }
1441 
1445  @java.lang.Deprecated
1446  public static ClauseProtection valueOf(int value) {
1447  return forNumber(value);
1448  }
1449 
1450  public static ClauseProtection forNumber(int value) {
1451  switch (value) {
1452  case 0: return PROTECTION_NONE;
1453  case 1: return PROTECTION_ALWAYS;
1454  case 2: return PROTECTION_LBD;
1455  default: return null;
1456  }
1457  }
1458 
1459  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1461  return internalValueMap;
1462  }
1463  private static final com.google.protobuf.Internal.EnumLiteMap<
1464  ClauseProtection> internalValueMap =
1465  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1466  public ClauseProtection findValueByNumber(int number) {
1467  return ClauseProtection.forNumber(number);
1468  }
1469  };
1470 
1471  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1473  return getDescriptor().getValues().get(ordinal());
1474  }
1475  public final com.google.protobuf.Descriptors.EnumDescriptor
1477  return getDescriptor();
1478  }
1479  public static final com.google.protobuf.Descriptors.EnumDescriptor
1481  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1482  }
1483 
1484  private static final ClauseProtection[] VALUES = values();
1485 
1486  public static ClauseProtection valueOf(
1487  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1488  if (desc.getType() != getDescriptor()) {
1489  throw new java.lang.IllegalArgumentException(
1490  "EnumValueDescriptor is not for this type.");
1491  }
1492  return VALUES[desc.getIndex()];
1493  }
1494 
1495  private final int value;
1496 
1497  private ClauseProtection(int value) {
1498  this.value = value;
1499  }
1500 
1501  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1502  }
1503 
1512  public enum ClauseOrdering
1513  implements com.google.protobuf.ProtocolMessageEnum {
1530  ;
1531 
1539  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1547  public static final int CLAUSE_LBD_VALUE = 1;
1548 
1549 
1550  public final int getNumber() {
1551  return value;
1552  }
1553 
1557  @java.lang.Deprecated
1558  public static ClauseOrdering valueOf(int value) {
1559  return forNumber(value);
1560  }
1561 
1562  public static ClauseOrdering forNumber(int value) {
1563  switch (value) {
1564  case 0: return CLAUSE_ACTIVITY;
1565  case 1: return CLAUSE_LBD;
1566  default: return null;
1567  }
1568  }
1569 
1570  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1572  return internalValueMap;
1573  }
1574  private static final com.google.protobuf.Internal.EnumLiteMap<
1575  ClauseOrdering> internalValueMap =
1576  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1577  public ClauseOrdering findValueByNumber(int number) {
1578  return ClauseOrdering.forNumber(number);
1579  }
1580  };
1581 
1582  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1584  return getDescriptor().getValues().get(ordinal());
1585  }
1586  public final com.google.protobuf.Descriptors.EnumDescriptor
1588  return getDescriptor();
1589  }
1590  public static final com.google.protobuf.Descriptors.EnumDescriptor
1592  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1593  }
1594 
1595  private static final ClauseOrdering[] VALUES = values();
1596 
1597  public static ClauseOrdering valueOf(
1598  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1599  if (desc.getType() != getDescriptor()) {
1600  throw new java.lang.IllegalArgumentException(
1601  "EnumValueDescriptor is not for this type.");
1602  }
1603  return VALUES[desc.getIndex()];
1604  }
1605 
1606  private final int value;
1607 
1608  private ClauseOrdering(int value) {
1609  this.value = value;
1610  }
1611 
1612  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1613  }
1614 
1626  public enum RestartAlgorithm
1627  implements com.google.protobuf.ProtocolMessageEnum {
1664  ;
1665 
1669  public static final int NO_RESTART_VALUE = 0;
1677  public static final int LUBY_RESTART_VALUE = 1;
1685  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1693  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1701  public static final int FIXED_RESTART_VALUE = 4;
1702 
1703 
1704  public final int getNumber() {
1705  return value;
1706  }
1707 
1711  @java.lang.Deprecated
1712  public static RestartAlgorithm valueOf(int value) {
1713  return forNumber(value);
1714  }
1715 
1716  public static RestartAlgorithm forNumber(int value) {
1717  switch (value) {
1718  case 0: return NO_RESTART;
1719  case 1: return LUBY_RESTART;
1720  case 2: return DL_MOVING_AVERAGE_RESTART;
1721  case 3: return LBD_MOVING_AVERAGE_RESTART;
1722  case 4: return FIXED_RESTART;
1723  default: return null;
1724  }
1725  }
1726 
1727  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1729  return internalValueMap;
1730  }
1731  private static final com.google.protobuf.Internal.EnumLiteMap<
1732  RestartAlgorithm> internalValueMap =
1733  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1734  public RestartAlgorithm findValueByNumber(int number) {
1735  return RestartAlgorithm.forNumber(number);
1736  }
1737  };
1738 
1739  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1741  return getDescriptor().getValues().get(ordinal());
1742  }
1743  public final com.google.protobuf.Descriptors.EnumDescriptor
1745  return getDescriptor();
1746  }
1747  public static final com.google.protobuf.Descriptors.EnumDescriptor
1749  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1750  }
1751 
1752  private static final RestartAlgorithm[] VALUES = values();
1753 
1754  public static RestartAlgorithm valueOf(
1755  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1756  if (desc.getType() != getDescriptor()) {
1757  throw new java.lang.IllegalArgumentException(
1758  "EnumValueDescriptor is not for this type.");
1759  }
1760  return VALUES[desc.getIndex()];
1761  }
1762 
1763  private final int value;
1764 
1765  private RestartAlgorithm(int value) {
1766  this.value = value;
1767  }
1768 
1769  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1770  }
1771 
1780  implements com.google.protobuf.ProtocolMessageEnum {
1793  ;
1794 
1798  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1802  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1806  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1807 
1808 
1809  public final int getNumber() {
1810  return value;
1811  }
1812 
1816  @java.lang.Deprecated
1817  public static MaxSatAssumptionOrder valueOf(int value) {
1818  return forNumber(value);
1819  }
1820 
1821  public static MaxSatAssumptionOrder forNumber(int value) {
1822  switch (value) {
1823  case 0: return DEFAULT_ASSUMPTION_ORDER;
1824  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1825  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1826  default: return null;
1827  }
1828  }
1829 
1830  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1832  return internalValueMap;
1833  }
1834  private static final com.google.protobuf.Internal.EnumLiteMap<
1835  MaxSatAssumptionOrder> internalValueMap =
1836  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1837  public MaxSatAssumptionOrder findValueByNumber(int number) {
1838  return MaxSatAssumptionOrder.forNumber(number);
1839  }
1840  };
1841 
1842  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1844  return getDescriptor().getValues().get(ordinal());
1845  }
1846  public final com.google.protobuf.Descriptors.EnumDescriptor
1848  return getDescriptor();
1849  }
1850  public static final com.google.protobuf.Descriptors.EnumDescriptor
1852  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1853  }
1854 
1855  private static final MaxSatAssumptionOrder[] VALUES = values();
1856 
1858  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1859  if (desc.getType() != getDescriptor()) {
1860  throw new java.lang.IllegalArgumentException(
1861  "EnumValueDescriptor is not for this type.");
1862  }
1863  return VALUES[desc.getIndex()];
1864  }
1865 
1866  private final int value;
1867 
1868  private MaxSatAssumptionOrder(int value) {
1869  this.value = value;
1870  }
1871 
1872  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1873  }
1874 
1883  implements com.google.protobuf.ProtocolMessageEnum {
1912  ;
1913 
1921  public static final int STRATIFICATION_NONE_VALUE = 0;
1930  public static final int STRATIFICATION_DESCENT_VALUE = 1;
1941  public static final int STRATIFICATION_ASCENT_VALUE = 2;
1942 
1943 
1944  public final int getNumber() {
1945  return value;
1946  }
1947 
1951  @java.lang.Deprecated
1952  public static MaxSatStratificationAlgorithm valueOf(int value) {
1953  return forNumber(value);
1954  }
1955 
1956  public static MaxSatStratificationAlgorithm forNumber(int value) {
1957  switch (value) {
1958  case 0: return STRATIFICATION_NONE;
1959  case 1: return STRATIFICATION_DESCENT;
1960  case 2: return STRATIFICATION_ASCENT;
1961  default: return null;
1962  }
1963  }
1964 
1965  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
1967  return internalValueMap;
1968  }
1969  private static final com.google.protobuf.Internal.EnumLiteMap<
1970  MaxSatStratificationAlgorithm> internalValueMap =
1971  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
1972  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
1974  }
1975  };
1976 
1977  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1979  return getDescriptor().getValues().get(ordinal());
1980  }
1981  public final com.google.protobuf.Descriptors.EnumDescriptor
1983  return getDescriptor();
1984  }
1985  public static final com.google.protobuf.Descriptors.EnumDescriptor
1987  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
1988  }
1989 
1990  private static final MaxSatStratificationAlgorithm[] VALUES = values();
1991 
1993  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1994  if (desc.getType() != getDescriptor()) {
1995  throw new java.lang.IllegalArgumentException(
1996  "EnumValueDescriptor is not for this type.");
1997  }
1998  return VALUES[desc.getIndex()];
1999  }
2000 
2001  private final int value;
2002 
2003  private MaxSatStratificationAlgorithm(int value) {
2004  this.value = value;
2005  }
2006 
2007  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
2008  }
2009 
2017  public enum SearchBranching
2018  implements com.google.protobuf.ProtocolMessageEnum {
2086  ;
2087 
2096  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2106  public static final int FIXED_SEARCH_VALUE = 1;
2114  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2124  public static final int LP_SEARCH_VALUE = 3;
2134  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2144  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2154  public static final int HINT_SEARCH_VALUE = 6;
2155 
2156 
2157  public final int getNumber() {
2158  return value;
2159  }
2160 
2164  @java.lang.Deprecated
2165  public static SearchBranching valueOf(int value) {
2166  return forNumber(value);
2167  }
2168 
2169  public static SearchBranching forNumber(int value) {
2170  switch (value) {
2171  case 0: return AUTOMATIC_SEARCH;
2172  case 1: return FIXED_SEARCH;
2173  case 2: return PORTFOLIO_SEARCH;
2174  case 3: return LP_SEARCH;
2175  case 4: return PSEUDO_COST_SEARCH;
2176  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2177  case 6: return HINT_SEARCH;
2178  default: return null;
2179  }
2180  }
2181 
2182  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2184  return internalValueMap;
2185  }
2186  private static final com.google.protobuf.Internal.EnumLiteMap<
2187  SearchBranching> internalValueMap =
2188  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2189  public SearchBranching findValueByNumber(int number) {
2190  return SearchBranching.forNumber(number);
2191  }
2192  };
2193 
2194  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2196  return getDescriptor().getValues().get(ordinal());
2197  }
2198  public final com.google.protobuf.Descriptors.EnumDescriptor
2200  return getDescriptor();
2201  }
2202  public static final com.google.protobuf.Descriptors.EnumDescriptor
2204  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2205  }
2206 
2207  private static final SearchBranching[] VALUES = values();
2208 
2209  public static SearchBranching valueOf(
2210  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2211  if (desc.getType() != getDescriptor()) {
2212  throw new java.lang.IllegalArgumentException(
2213  "EnumValueDescriptor is not for this type.");
2214  }
2215  return VALUES[desc.getIndex()];
2216  }
2217 
2218  private final int value;
2219 
2220  private SearchBranching(int value) {
2221  this.value = value;
2222  }
2223 
2224  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2225  }
2226 
2227  private int bitField0_;
2228  private int bitField1_;
2229  private int bitField2_;
2230  private int bitField3_;
2231  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2232  private int preferredVariableOrder_;
2236  public boolean hasPreferredVariableOrder() {
2237  return ((bitField0_ & 0x00000001) != 0);
2238  }
2243  @SuppressWarnings("deprecation")
2245  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2246  }
2247 
2248  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2249  private int initialPolarity_;
2253  public boolean hasInitialPolarity() {
2254  return ((bitField0_ & 0x00000002) != 0);
2255  }
2260  @SuppressWarnings("deprecation")
2262  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2263  }
2264 
2265  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2266  private boolean usePhaseSaving_;
2280  public boolean hasUsePhaseSaving() {
2281  return ((bitField0_ & 0x00000004) != 0);
2282  }
2296  public boolean getUsePhaseSaving() {
2297  return usePhaseSaving_;
2298  }
2299 
2300  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2301  private double randomPolarityRatio_;
2313  public boolean hasRandomPolarityRatio() {
2314  return ((bitField0_ & 0x00000008) != 0);
2315  }
2327  public double getRandomPolarityRatio() {
2328  return randomPolarityRatio_;
2329  }
2330 
2331  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2332  private double randomBranchesRatio_;
2342  public boolean hasRandomBranchesRatio() {
2343  return ((bitField0_ & 0x00000010) != 0);
2344  }
2354  public double getRandomBranchesRatio() {
2355  return randomBranchesRatio_;
2356  }
2357 
2358  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2359  private boolean useErwaHeuristic_;
2369  public boolean hasUseErwaHeuristic() {
2370  return ((bitField0_ & 0x00000020) != 0);
2371  }
2381  public boolean getUseErwaHeuristic() {
2382  return useErwaHeuristic_;
2383  }
2384 
2385  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2386  private double initialVariablesActivity_;
2399  public boolean hasInitialVariablesActivity() {
2400  return ((bitField0_ & 0x00000040) != 0);
2401  }
2415  return initialVariablesActivity_;
2416  }
2417 
2419  private boolean alsoBumpVariablesInConflictReasons_;
2431  return ((bitField0_ & 0x00000080) != 0);
2432  }
2444  return alsoBumpVariablesInConflictReasons_;
2445  }
2446 
2447  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2448  private int minimizationAlgorithm_;
2452  public boolean hasMinimizationAlgorithm() {
2453  return ((bitField0_ & 0x00000100) != 0);
2454  }
2459  @SuppressWarnings("deprecation")
2461  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2462  }
2463 
2464  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2465  private int binaryMinimizationAlgorithm_;
2470  return ((bitField0_ & 0x00000200) != 0);
2471  }
2476  @SuppressWarnings("deprecation")
2479  }
2480 
2482  private boolean subsumptionDuringConflictAnalysis_;
2494  return ((bitField0_ & 0x00000400) != 0);
2495  }
2507  return subsumptionDuringConflictAnalysis_;
2508  }
2509 
2510  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2511  private int clauseCleanupPeriod_;
2519  public boolean hasClauseCleanupPeriod() {
2520  return ((bitField0_ & 0x00000800) != 0);
2521  }
2529  public int getClauseCleanupPeriod() {
2530  return clauseCleanupPeriod_;
2531  }
2532 
2533  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2534  private int clauseCleanupTarget_;
2543  public boolean hasClauseCleanupTarget() {
2544  return ((bitField0_ & 0x00001000) != 0);
2545  }
2554  public int getClauseCleanupTarget() {
2555  return clauseCleanupTarget_;
2556  }
2557 
2558  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2559  private int clauseCleanupProtection_;
2563  public boolean hasClauseCleanupProtection() {
2564  return ((bitField0_ & 0x00002000) != 0);
2565  }
2570  @SuppressWarnings("deprecation")
2572  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2573  }
2574 
2575  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2576  private int clauseCleanupLbdBound_;
2585  public boolean hasClauseCleanupLbdBound() {
2586  return ((bitField0_ & 0x00004000) != 0);
2587  }
2597  return clauseCleanupLbdBound_;
2598  }
2599 
2600  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2601  private int clauseCleanupOrdering_;
2605  public boolean hasClauseCleanupOrdering() {
2606  return ((bitField0_ & 0x00008000) != 0);
2607  }
2612  @SuppressWarnings("deprecation")
2614  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2615  }
2616 
2617  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2618  private int pbCleanupIncrement_;
2626  public boolean hasPbCleanupIncrement() {
2627  return ((bitField0_ & 0x00010000) != 0);
2628  }
2636  public int getPbCleanupIncrement() {
2637  return pbCleanupIncrement_;
2638  }
2639 
2640  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2641  private double pbCleanupRatio_;
2645  public boolean hasPbCleanupRatio() {
2646  return ((bitField0_ & 0x00020000) != 0);
2647  }
2651  public double getPbCleanupRatio() {
2652  return pbCleanupRatio_;
2653  }
2654 
2656  private int minimizeWithPropagationRestartPeriod_;
2675  return ((bitField0_ & 0x00040000) != 0);
2676  }
2695  return minimizeWithPropagationRestartPeriod_;
2696  }
2697 
2699  private int minimizeWithPropagationNumDecisions_;
2704  return ((bitField0_ & 0x00080000) != 0);
2705  }
2710  return minimizeWithPropagationNumDecisions_;
2711  }
2712 
2713  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2714  private double variableActivityDecay_;
2728  public boolean hasVariableActivityDecay() {
2729  return ((bitField0_ & 0x00100000) != 0);
2730  }
2744  public double getVariableActivityDecay() {
2745  return variableActivityDecay_;
2746  }
2747 
2748  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2749  private double maxVariableActivityValue_;
2753  public boolean hasMaxVariableActivityValue() {
2754  return ((bitField0_ & 0x00200000) != 0);
2755  }
2760  return maxVariableActivityValue_;
2761  }
2762 
2763  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2764  private double glucoseMaxDecay_;
2775  public boolean hasGlucoseMaxDecay() {
2776  return ((bitField0_ & 0x00400000) != 0);
2777  }
2788  public double getGlucoseMaxDecay() {
2789  return glucoseMaxDecay_;
2790  }
2791 
2792  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2793  private double glucoseDecayIncrement_;
2797  public boolean hasGlucoseDecayIncrement() {
2798  return ((bitField0_ & 0x00800000) != 0);
2799  }
2803  public double getGlucoseDecayIncrement() {
2804  return glucoseDecayIncrement_;
2805  }
2806 
2807  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
2808  private int glucoseDecayIncrementPeriod_;
2813  return ((bitField0_ & 0x01000000) != 0);
2814  }
2819  return glucoseDecayIncrementPeriod_;
2820  }
2821 
2822  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2823  private double clauseActivityDecay_;
2831  public boolean hasClauseActivityDecay() {
2832  return ((bitField0_ & 0x02000000) != 0);
2833  }
2841  public double getClauseActivityDecay() {
2842  return clauseActivityDecay_;
2843  }
2844 
2845  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2846  private double maxClauseActivityValue_;
2850  public boolean hasMaxClauseActivityValue() {
2851  return ((bitField0_ & 0x04000000) != 0);
2852  }
2856  public double getMaxClauseActivityValue() {
2857  return maxClauseActivityValue_;
2858  }
2859 
2860  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
2861  private java.util.List<java.lang.Integer> restartAlgorithms_;
2862  private static final com.google.protobuf.Internal.ListAdapter.Converter<
2863  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
2864  new com.google.protobuf.Internal.ListAdapter.Converter<
2865  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
2866  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
2867  @SuppressWarnings("deprecation")
2869  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
2870  }
2871  };
2887  return new com.google.protobuf.Internal.ListAdapter<
2888  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
2889  }
2905  return restartAlgorithms_.size();
2906  }
2922  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
2923  }
2924 
2925  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
2926  private volatile java.lang.Object defaultRestartAlgorithms_;
2930  public boolean hasDefaultRestartAlgorithms() {
2931  return ((bitField0_ & 0x08000000) != 0);
2932  }
2936  public java.lang.String getDefaultRestartAlgorithms() {
2937  java.lang.Object ref = defaultRestartAlgorithms_;
2938  if (ref instanceof java.lang.String) {
2939  return (java.lang.String) ref;
2940  } else {
2941  com.google.protobuf.ByteString bs =
2942  (com.google.protobuf.ByteString) ref;
2943  java.lang.String s = bs.toStringUtf8();
2944  if (bs.isValidUtf8()) {
2945  defaultRestartAlgorithms_ = s;
2946  }
2947  return s;
2948  }
2949  }
2953  public com.google.protobuf.ByteString
2955  java.lang.Object ref = defaultRestartAlgorithms_;
2956  if (ref instanceof java.lang.String) {
2957  com.google.protobuf.ByteString b =
2958  com.google.protobuf.ByteString.copyFromUtf8(
2959  (java.lang.String) ref);
2960  defaultRestartAlgorithms_ = b;
2961  return b;
2962  } else {
2963  return (com.google.protobuf.ByteString) ref;
2964  }
2965  }
2966 
2967  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
2968  private int restartPeriod_;
2977  public boolean hasRestartPeriod() {
2978  return ((bitField0_ & 0x10000000) != 0);
2979  }
2988  public int getRestartPeriod() {
2989  return restartPeriod_;
2990  }
2991 
2992  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
2993  private int restartRunningWindowSize_;
3001  public boolean hasRestartRunningWindowSize() {
3002  return ((bitField0_ & 0x20000000) != 0);
3003  }
3012  return restartRunningWindowSize_;
3013  }
3014 
3015  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
3016  private double restartDlAverageRatio_;
3025  public boolean hasRestartDlAverageRatio() {
3026  return ((bitField0_ & 0x40000000) != 0);
3027  }
3036  public double getRestartDlAverageRatio() {
3037  return restartDlAverageRatio_;
3038  }
3039 
3040  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
3041  private double restartLbdAverageRatio_;
3045  public boolean hasRestartLbdAverageRatio() {
3046  return ((bitField0_ & 0x80000000) != 0);
3047  }
3051  public double getRestartLbdAverageRatio() {
3052  return restartLbdAverageRatio_;
3053  }
3054 
3055  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3056  private boolean useBlockingRestart_;
3066  public boolean hasUseBlockingRestart() {
3067  return ((bitField1_ & 0x00000001) != 0);
3068  }
3078  public boolean getUseBlockingRestart() {
3079  return useBlockingRestart_;
3080  }
3081 
3082  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3083  private int blockingRestartWindowSize_;
3087  public boolean hasBlockingRestartWindowSize() {
3088  return ((bitField1_ & 0x00000002) != 0);
3089  }
3094  return blockingRestartWindowSize_;
3095  }
3096 
3097  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3098  private double blockingRestartMultiplier_;
3102  public boolean hasBlockingRestartMultiplier() {
3103  return ((bitField1_ & 0x00000004) != 0);
3104  }
3109  return blockingRestartMultiplier_;
3110  }
3111 
3113  private int numConflictsBeforeStrategyChanges_;
3124  return ((bitField1_ & 0x00000008) != 0);
3125  }
3136  return numConflictsBeforeStrategyChanges_;
3137  }
3138 
3139  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3140  private double strategyChangeIncreaseRatio_;
3150  return ((bitField1_ & 0x00000010) != 0);
3151  }
3161  return strategyChangeIncreaseRatio_;
3162  }
3163 
3164  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3165  private double maxTimeInSeconds_;
3175  public boolean hasMaxTimeInSeconds() {
3176  return ((bitField1_ & 0x00000020) != 0);
3177  }
3187  public double getMaxTimeInSeconds() {
3188  return maxTimeInSeconds_;
3189  }
3190 
3191  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3192  private double maxDeterministicTime_;
3204  public boolean hasMaxDeterministicTime() {
3205  return ((bitField1_ & 0x00000040) != 0);
3206  }
3218  public double getMaxDeterministicTime() {
3219  return maxDeterministicTime_;
3220  }
3221 
3222  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3223  private long maxNumberOfConflicts_;
3236  public boolean hasMaxNumberOfConflicts() {
3237  return ((bitField1_ & 0x00000080) != 0);
3238  }
3251  public long getMaxNumberOfConflicts() {
3252  return maxNumberOfConflicts_;
3253  }
3254 
3255  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3256  private long maxMemoryInMb_;
3267  public boolean hasMaxMemoryInMb() {
3268  return ((bitField1_ & 0x00000100) != 0);
3269  }
3280  public long getMaxMemoryInMb() {
3281  return maxMemoryInMb_;
3282  }
3283 
3284  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3285  private boolean treatBinaryClausesSeparately_;
3296  return ((bitField1_ & 0x00000200) != 0);
3297  }
3308  return treatBinaryClausesSeparately_;
3309  }
3310 
3311  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3312  private int randomSeed_;
3325  public boolean hasRandomSeed() {
3326  return ((bitField1_ & 0x00000400) != 0);
3327  }
3340  public int getRandomSeed() {
3341  return randomSeed_;
3342  }
3343 
3344  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3345  private boolean logSearchProgress_;
3353  public boolean hasLogSearchProgress() {
3354  return ((bitField1_ & 0x00000800) != 0);
3355  }
3363  public boolean getLogSearchProgress() {
3364  return logSearchProgress_;
3365  }
3366 
3367  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3368  private boolean usePbResolution_;
3379  public boolean hasUsePbResolution() {
3380  return ((bitField1_ & 0x00001000) != 0);
3381  }
3392  public boolean getUsePbResolution() {
3393  return usePbResolution_;
3394  }
3395 
3397  private boolean minimizeReductionDuringPbResolution_;
3409  return ((bitField1_ & 0x00002000) != 0);
3410  }
3422  return minimizeReductionDuringPbResolution_;
3423  }
3424 
3425  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
3426  private boolean countAssumptionLevelsInLbd_;
3442  return ((bitField1_ & 0x00004000) != 0);
3443  }
3459  return countAssumptionLevelsInLbd_;
3460  }
3461 
3462  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3463  private int presolveBveThreshold_;
3473  public boolean hasPresolveBveThreshold() {
3474  return ((bitField1_ & 0x00008000) != 0);
3475  }
3486  return presolveBveThreshold_;
3487  }
3488 
3489  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3490  private int presolveBveClauseWeight_;
3499  public boolean hasPresolveBveClauseWeight() {
3500  return ((bitField1_ & 0x00010000) != 0);
3501  }
3511  return presolveBveClauseWeight_;
3512  }
3513 
3515  private double presolveProbingDeterministicTimeLimit_;
3525  return ((bitField1_ & 0x00020000) != 0);
3526  }
3536  return presolveProbingDeterministicTimeLimit_;
3537  }
3538 
3539  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3540  private boolean presolveBlockedClause_;
3549  public boolean hasPresolveBlockedClause() {
3550  return ((bitField1_ & 0x00040000) != 0);
3551  }
3560  public boolean getPresolveBlockedClause() {
3561  return presolveBlockedClause_;
3562  }
3563 
3564  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
3565  private boolean presolveUseBva_;
3573  public boolean hasPresolveUseBva() {
3574  return ((bitField1_ & 0x00080000) != 0);
3575  }
3583  public boolean getPresolveUseBva() {
3584  return presolveUseBva_;
3585  }
3586 
3587  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
3588  private int presolveBvaThreshold_;
3599  public boolean hasPresolveBvaThreshold() {
3600  return ((bitField1_ & 0x00100000) != 0);
3601  }
3613  return presolveBvaThreshold_;
3614  }
3615 
3616  public static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER = 138;
3617  private int maxPresolveIterations_;
3627  public boolean hasMaxPresolveIterations() {
3628  return ((bitField1_ & 0x00200000) != 0);
3629  }
3640  return maxPresolveIterations_;
3641  }
3642 
3643  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
3644  private boolean cpModelPresolve_;
3652  public boolean hasCpModelPresolve() {
3653  return ((bitField1_ & 0x00400000) != 0);
3654  }
3662  public boolean getCpModelPresolve() {
3663  return cpModelPresolve_;
3664  }
3665 
3666  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
3667  private int cpModelProbingLevel_;
3675  public boolean hasCpModelProbingLevel() {
3676  return ((bitField1_ & 0x00800000) != 0);
3677  }
3685  public int getCpModelProbingLevel() {
3686  return cpModelProbingLevel_;
3687  }
3688 
3689  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
3690  private boolean cpModelUseSatPresolve_;
3698  public boolean hasCpModelUseSatPresolve() {
3699  return ((bitField1_ & 0x01000000) != 0);
3700  }
3708  public boolean getCpModelUseSatPresolve() {
3709  return cpModelUseSatPresolve_;
3710  }
3711 
3712  public static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER = 140;
3713  private boolean expandElementConstraints_;
3722  public boolean hasExpandElementConstraints() {
3723  return ((bitField1_ & 0x02000000) != 0);
3724  }
3733  public boolean getExpandElementConstraints() {
3734  return expandElementConstraints_;
3735  }
3736 
3737  public static final int EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER = 143;
3738  private boolean expandAutomatonConstraints_;
3747  return ((bitField1_ & 0x04000000) != 0);
3748  }
3757  return expandAutomatonConstraints_;
3758  }
3759 
3760  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
3761  private boolean useOptimizationHints_;
3772  public boolean hasUseOptimizationHints() {
3773  return ((bitField1_ & 0x08000000) != 0);
3774  }
3785  public boolean getUseOptimizationHints() {
3786  return useOptimizationHints_;
3787  }
3788 
3789  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
3790  private boolean minimizeCore_;
3798  public boolean hasMinimizeCore() {
3799  return ((bitField1_ & 0x10000000) != 0);
3800  }
3808  public boolean getMinimizeCore() {
3809  return minimizeCore_;
3810  }
3811 
3812  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
3813  private boolean findMultipleCores_;
3822  public boolean hasFindMultipleCores() {
3823  return ((bitField1_ & 0x20000000) != 0);
3824  }
3833  public boolean getFindMultipleCores() {
3834  return findMultipleCores_;
3835  }
3836 
3837  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
3838  private boolean coverOptimization_;
3847  public boolean hasCoverOptimization() {
3848  return ((bitField1_ & 0x40000000) != 0);
3849  }
3858  public boolean getCoverOptimization() {
3859  return coverOptimization_;
3860  }
3861 
3862  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
3863  private int maxSatAssumptionOrder_;
3867  public boolean hasMaxSatAssumptionOrder() {
3868  return ((bitField1_ & 0x80000000) != 0);
3869  }
3874  @SuppressWarnings("deprecation")
3877  }
3878 
3880  private boolean maxSatReverseAssumptionOrder_;
3890  return ((bitField2_ & 0x00000001) != 0);
3891  }
3901  return maxSatReverseAssumptionOrder_;
3902  }
3903 
3904  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
3905  private int maxSatStratification_;
3909  public boolean hasMaxSatStratification() {
3910  return ((bitField2_ & 0x00000002) != 0);
3911  }
3916  @SuppressWarnings("deprecation")
3919  }
3920 
3922  private boolean usePrecedencesInDisjunctiveConstraint_;
3938  return ((bitField2_ & 0x00000004) != 0);
3939  }
3955  return usePrecedencesInDisjunctiveConstraint_;
3956  }
3957 
3959  private boolean useOverloadCheckerInCumulativeConstraint_;
3973  return ((bitField2_ & 0x00000008) != 0);
3974  }
3988  return useOverloadCheckerInCumulativeConstraint_;
3989  }
3990 
3992  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
4006  return ((bitField2_ & 0x00000010) != 0);
4007  }
4021  return useTimetableEdgeFindingInCumulativeConstraint_;
4022  }
4023 
4025  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
4041  return ((bitField2_ & 0x00000020) != 0);
4042  }
4058  return useDisjunctiveConstraintInCumulativeConstraint_;
4059  }
4060 
4061  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
4062  private int linearizationLevel_;
4073  public boolean hasLinearizationLevel() {
4074  return ((bitField2_ & 0x00000040) != 0);
4075  }
4086  public int getLinearizationLevel() {
4087  return linearizationLevel_;
4088  }
4089 
4090  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
4091  private int booleanEncodingLevel_;
4100  public boolean hasBooleanEncodingLevel() {
4101  return ((bitField2_ & 0x00000080) != 0);
4102  }
4112  return booleanEncodingLevel_;
4113  }
4114 
4115  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
4116  private int maxNumCuts_;
4127  public boolean hasMaxNumCuts() {
4128  return ((bitField2_ & 0x00000100) != 0);
4129  }
4140  public int getMaxNumCuts() {
4141  return maxNumCuts_;
4142  }
4143 
4144  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
4145  private boolean onlyAddCutsAtLevelZero_;
4154  public boolean hasOnlyAddCutsAtLevelZero() {
4155  return ((bitField2_ & 0x00000200) != 0);
4156  }
4165  public boolean getOnlyAddCutsAtLevelZero() {
4166  return onlyAddCutsAtLevelZero_;
4167  }
4168 
4169  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
4170  private boolean addKnapsackCuts_;
4180  public boolean hasAddKnapsackCuts() {
4181  return ((bitField2_ & 0x00000400) != 0);
4182  }
4192  public boolean getAddKnapsackCuts() {
4193  return addKnapsackCuts_;
4194  }
4195 
4196  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
4197  private boolean addCgCuts_;
4206  public boolean hasAddCgCuts() {
4207  return ((bitField2_ & 0x00000800) != 0);
4208  }
4217  public boolean getAddCgCuts() {
4218  return addCgCuts_;
4219  }
4220 
4221  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
4222  private boolean addMirCuts_;
4231  public boolean hasAddMirCuts() {
4232  return ((bitField2_ & 0x00001000) != 0);
4233  }
4242  public boolean getAddMirCuts() {
4243  return addMirCuts_;
4244  }
4245 
4246  public static final int USE_MIR_ROUNDING_FIELD_NUMBER = 118;
4247  private boolean useMirRounding_;
4257  public boolean hasUseMirRounding() {
4258  return ((bitField2_ & 0x00002000) != 0);
4259  }
4269  public boolean getUseMirRounding() {
4270  return useMirRounding_;
4271  }
4272 
4273  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4274  private int maxIntegerRoundingScaling_;
4286  public boolean hasMaxIntegerRoundingScaling() {
4287  return ((bitField2_ & 0x00004000) != 0);
4288  }
4301  return maxIntegerRoundingScaling_;
4302  }
4303 
4304  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4305  private boolean addLpConstraintsLazily_;
4316  public boolean hasAddLpConstraintsLazily() {
4317  return ((bitField2_ & 0x00008000) != 0);
4318  }
4329  public boolean getAddLpConstraintsLazily() {
4330  return addLpConstraintsLazily_;
4331  }
4332 
4334  private double minOrthogonalityForLpConstraints_;
4347  return ((bitField2_ & 0x00010000) != 0);
4348  }
4361  return minOrthogonalityForLpConstraints_;
4362  }
4363 
4364  public static final int MAX_INACTIVE_COUNT_FIELD_NUMBER = 121;
4365  private long maxInactiveCount_;
4374  public boolean hasMaxInactiveCount() {
4375  return ((bitField2_ & 0x00020000) != 0);
4376  }
4385  public long getMaxInactiveCount() {
4386  return maxInactiveCount_;
4387  }
4388 
4389  public static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER = 122;
4390  private long constraintRemovalBatchSize_;
4400  return ((bitField2_ & 0x00040000) != 0);
4401  }
4411  return constraintRemovalBatchSize_;
4412  }
4413 
4414  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4415  private int searchBranching_;
4419  public boolean hasSearchBranching() {
4420  return ((bitField2_ & 0x00080000) != 0);
4421  }
4426  @SuppressWarnings("deprecation")
4428  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4429  }
4430 
4431  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4432  private boolean exploitIntegerLpSolution_;
4443  public boolean hasExploitIntegerLpSolution() {
4444  return ((bitField2_ & 0x00100000) != 0);
4445  }
4456  public boolean getExploitIntegerLpSolution() {
4457  return exploitIntegerLpSolution_;
4458  }
4459 
4460  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4461  private boolean exploitAllLpSolution_;
4471  public boolean hasExploitAllLpSolution() {
4472  return ((bitField2_ & 0x00200000) != 0);
4473  }
4483  public boolean getExploitAllLpSolution() {
4484  return exploitAllLpSolution_;
4485  }
4486 
4487  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4488  private boolean exploitBestSolution_;
4496  public boolean hasExploitBestSolution() {
4497  return ((bitField2_ & 0x00400000) != 0);
4498  }
4506  public boolean getExploitBestSolution() {
4507  return exploitBestSolution_;
4508  }
4509 
4510  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4511  private boolean exploitObjective_;
4520  public boolean hasExploitObjective() {
4521  return ((bitField2_ & 0x00800000) != 0);
4522  }
4531  public boolean getExploitObjective() {
4532  return exploitObjective_;
4533  }
4534 
4535  public static final int PROBING_PERIOD_AT_ROOT_FIELD_NUMBER = 142;
4536  private long probingPeriodAtRoot_;
4546  public boolean hasProbingPeriodAtRoot() {
4547  return ((bitField2_ & 0x01000000) != 0);
4548  }
4558  public long getProbingPeriodAtRoot() {
4559  return probingPeriodAtRoot_;
4560  }
4561 
4562  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4563  private long pseudoCostReliabilityThreshold_;
4573  return ((bitField2_ & 0x02000000) != 0);
4574  }
4584  return pseudoCostReliabilityThreshold_;
4585  }
4586 
4587  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4588  private boolean optimizeWithCore_;
4599  public boolean hasOptimizeWithCore() {
4600  return ((bitField2_ & 0x04000000) != 0);
4601  }
4612  public boolean getOptimizeWithCore() {
4613  return optimizeWithCore_;
4614  }
4615 
4616  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
4617  private int binarySearchNumConflicts_;
4628  public boolean hasBinarySearchNumConflicts() {
4629  return ((bitField2_ & 0x08000000) != 0);
4630  }
4642  return binarySearchNumConflicts_;
4643  }
4644 
4645  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
4646  private boolean optimizeWithMaxHs_;
4659  public boolean hasOptimizeWithMaxHs() {
4660  return ((bitField2_ & 0x10000000) != 0);
4661  }
4674  public boolean getOptimizeWithMaxHs() {
4675  return optimizeWithMaxHs_;
4676  }
4677 
4678  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
4679  private boolean enumerateAllSolutions_;
4692  public boolean hasEnumerateAllSolutions() {
4693  return ((bitField2_ & 0x20000000) != 0);
4694  }
4707  public boolean getEnumerateAllSolutions() {
4708  return enumerateAllSolutions_;
4709  }
4710 
4712  private boolean fillTightenedDomainsInResponse_;
4725  return ((bitField2_ & 0x40000000) != 0);
4726  }
4739  return fillTightenedDomainsInResponse_;
4740  }
4741 
4742  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
4743  private boolean instantiateAllVariables_;
4752  public boolean hasInstantiateAllVariables() {
4753  return ((bitField2_ & 0x80000000) != 0);
4754  }
4763  public boolean getInstantiateAllVariables() {
4764  return instantiateAllVariables_;
4765  }
4766 
4768  private boolean autoDetectGreaterThanAtLeastOneOf_;
4780  return ((bitField3_ & 0x00000001) != 0);
4781  }
4793  return autoDetectGreaterThanAtLeastOneOf_;
4794  }
4795 
4796  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
4797  private boolean stopAfterFirstSolution_;
4805  public boolean hasStopAfterFirstSolution() {
4806  return ((bitField3_ & 0x00000002) != 0);
4807  }
4815  public boolean getStopAfterFirstSolution() {
4816  return stopAfterFirstSolution_;
4817  }
4818 
4819  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
4820  private int numSearchWorkers_;
4829  public boolean hasNumSearchWorkers() {
4830  return ((bitField3_ & 0x00000004) != 0);
4831  }
4840  public int getNumSearchWorkers() {
4841  return numSearchWorkers_;
4842  }
4843 
4844  public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
4845  private boolean interleaveSearch_;
4856  public boolean hasInterleaveSearch() {
4857  return ((bitField3_ & 0x00000008) != 0);
4858  }
4869  public boolean getInterleaveSearch() {
4870  return interleaveSearch_;
4871  }
4872 
4874  private boolean reduceMemoryUsageInInterleaveMode_;
4883  return ((bitField3_ & 0x00000010) != 0);
4884  }
4893  return reduceMemoryUsageInInterleaveMode_;
4894  }
4895 
4896  public static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER = 134;
4897  private boolean deterministicParallelSearch_;
4908  return ((bitField3_ & 0x00000020) != 0);
4909  }
4920  return deterministicParallelSearch_;
4921  }
4922 
4923  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
4924  private boolean shareObjectiveBounds_;
4932  public boolean hasShareObjectiveBounds() {
4933  return ((bitField3_ & 0x00000040) != 0);
4934  }
4942  public boolean getShareObjectiveBounds() {
4943  return shareObjectiveBounds_;
4944  }
4945 
4946  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
4947  private boolean shareLevelZeroBounds_;
4955  public boolean hasShareLevelZeroBounds() {
4956  return ((bitField3_ & 0x00000080) != 0);
4957  }
4965  public boolean getShareLevelZeroBounds() {
4966  return shareLevelZeroBounds_;
4967  }
4968 
4969  public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
4970  private boolean useLnsOnly_;
4978  public boolean hasUseLnsOnly() {
4979  return ((bitField3_ & 0x00000100) != 0);
4980  }
4988  public boolean getUseLnsOnly() {
4989  return useLnsOnly_;
4990  }
4991 
4992  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
4993  private boolean lnsFocusOnDecisionVariables_;
4998  return ((bitField3_ & 0x00000200) != 0);
4999  }
5004  return lnsFocusOnDecisionVariables_;
5005  }
5006 
5007  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
5008  private boolean useRinsLns_;
5016  public boolean hasUseRinsLns() {
5017  return ((bitField3_ & 0x00000400) != 0);
5018  }
5026  public boolean getUseRinsLns() {
5027  return useRinsLns_;
5028  }
5029 
5030  public static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER = 137;
5031  private boolean diversifyLnsParams_;
5039  public boolean hasDiversifyLnsParams() {
5040  return ((bitField3_ & 0x00000800) != 0);
5041  }
5049  public boolean getDiversifyLnsParams() {
5050  return diversifyLnsParams_;
5051  }
5052 
5053  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
5054  private boolean randomizeSearch_;
5062  public boolean hasRandomizeSearch() {
5063  return ((bitField3_ & 0x00001000) != 0);
5064  }
5072  public boolean getRandomizeSearch() {
5073  return randomizeSearch_;
5074  }
5075 
5076  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
5077  private long searchRandomizationTolerance_;
5092  return ((bitField3_ & 0x00002000) != 0);
5093  }
5108  return searchRandomizationTolerance_;
5109  }
5110 
5111  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
5112  private boolean useOptionalVariables_;
5122  public boolean hasUseOptionalVariables() {
5123  return ((bitField3_ & 0x00004000) != 0);
5124  }
5134  public boolean getUseOptionalVariables() {
5135  return useOptionalVariables_;
5136  }
5137 
5138  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
5139  private boolean useExactLpReason_;
5150  public boolean hasUseExactLpReason() {
5151  return ((bitField3_ & 0x00008000) != 0);
5152  }
5163  public boolean getUseExactLpReason() {
5164  return useExactLpReason_;
5165  }
5166 
5167  public static final int USE_BRANCHING_IN_LP_FIELD_NUMBER = 139;
5168  private boolean useBranchingInLp_;
5178  public boolean hasUseBranchingInLp() {
5179  return ((bitField3_ & 0x00010000) != 0);
5180  }
5190  public boolean getUseBranchingInLp() {
5191  return useBranchingInLp_;
5192  }
5193 
5194  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
5195  private boolean useCombinedNoOverlap_;
5205  public boolean hasUseCombinedNoOverlap() {
5206  return ((bitField3_ & 0x00020000) != 0);
5207  }
5217  public boolean getUseCombinedNoOverlap() {
5218  return useCombinedNoOverlap_;
5219  }
5220 
5221  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
5222  private boolean catchSigintSignal_;
5232  public boolean hasCatchSigintSignal() {
5233  return ((bitField3_ & 0x00040000) != 0);
5234  }
5244  public boolean getCatchSigintSignal() {
5245  return catchSigintSignal_;
5246  }
5247 
5248  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
5249  private double mipMaxBound_;
5259  public boolean hasMipMaxBound() {
5260  return ((bitField3_ & 0x00080000) != 0);
5261  }
5271  public double getMipMaxBound() {
5272  return mipMaxBound_;
5273  }
5274 
5275  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
5276  private double mipVarScaling_;
5286  public boolean hasMipVarScaling() {
5287  return ((bitField3_ & 0x00100000) != 0);
5288  }
5298  public double getMipVarScaling() {
5299  return mipVarScaling_;
5300  }
5301 
5302  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
5303  private double mipWantedPrecision_;
5319  public boolean hasMipWantedPrecision() {
5320  return ((bitField3_ & 0x00200000) != 0);
5321  }
5337  public double getMipWantedPrecision() {
5338  return mipWantedPrecision_;
5339  }
5340 
5341  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5342  private int mipMaxActivityExponent_;
5356  public boolean hasMipMaxActivityExponent() {
5357  return ((bitField3_ & 0x00400000) != 0);
5358  }
5373  return mipMaxActivityExponent_;
5374  }
5375 
5376  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5377  private double mipCheckPrecision_;
5388  public boolean hasMipCheckPrecision() {
5389  return ((bitField3_ & 0x00800000) != 0);
5390  }
5401  public double getMipCheckPrecision() {
5402  return mipCheckPrecision_;
5403  }
5404 
5405  private byte memoizedIsInitialized = -1;
5406  @java.lang.Override
5407  public final boolean isInitialized() {
5408  byte isInitialized = memoizedIsInitialized;
5409  if (isInitialized == 1) return true;
5410  if (isInitialized == 0) return false;
5411 
5412  memoizedIsInitialized = 1;
5413  return true;
5414  }
5415 
5416  @java.lang.Override
5417  public void writeTo(com.google.protobuf.CodedOutputStream output)
5418  throws java.io.IOException {
5419  if (((bitField0_ & 0x00000001) != 0)) {
5420  output.writeEnum(1, preferredVariableOrder_);
5421  }
5422  if (((bitField0_ & 0x00000002) != 0)) {
5423  output.writeEnum(2, initialPolarity_);
5424  }
5425  if (((bitField0_ & 0x00000100) != 0)) {
5426  output.writeEnum(4, minimizationAlgorithm_);
5427  }
5428  if (((bitField0_ & 0x00000800) != 0)) {
5429  output.writeInt32(11, clauseCleanupPeriod_);
5430  }
5431  if (((bitField0_ & 0x00001000) != 0)) {
5432  output.writeInt32(13, clauseCleanupTarget_);
5433  }
5434  if (((bitField0_ & 0x00100000) != 0)) {
5435  output.writeDouble(15, variableActivityDecay_);
5436  }
5437  if (((bitField0_ & 0x00200000) != 0)) {
5438  output.writeDouble(16, maxVariableActivityValue_);
5439  }
5440  if (((bitField0_ & 0x02000000) != 0)) {
5441  output.writeDouble(17, clauseActivityDecay_);
5442  }
5443  if (((bitField0_ & 0x04000000) != 0)) {
5444  output.writeDouble(18, maxClauseActivityValue_);
5445  }
5446  if (((bitField0_ & 0x00400000) != 0)) {
5447  output.writeDouble(22, glucoseMaxDecay_);
5448  }
5449  if (((bitField0_ & 0x00800000) != 0)) {
5450  output.writeDouble(23, glucoseDecayIncrement_);
5451  }
5452  if (((bitField0_ & 0x01000000) != 0)) {
5453  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5454  }
5455  if (((bitField0_ & 0x10000000) != 0)) {
5456  output.writeInt32(30, restartPeriod_);
5457  }
5458  if (((bitField1_ & 0x00000400) != 0)) {
5459  output.writeInt32(31, randomSeed_);
5460  }
5461  if (((bitField0_ & 0x00000010) != 0)) {
5462  output.writeDouble(32, randomBranchesRatio_);
5463  }
5464  if (((bitField1_ & 0x00000200) != 0)) {
5465  output.writeBool(33, treatBinaryClausesSeparately_);
5466  }
5467  if (((bitField0_ & 0x00000200) != 0)) {
5468  output.writeEnum(34, binaryMinimizationAlgorithm_);
5469  }
5470  if (((bitField1_ & 0x08000000) != 0)) {
5471  output.writeBool(35, useOptimizationHints_);
5472  }
5473  if (((bitField1_ & 0x00000020) != 0)) {
5474  output.writeDouble(36, maxTimeInSeconds_);
5475  }
5476  if (((bitField1_ & 0x00000080) != 0)) {
5477  output.writeInt64(37, maxNumberOfConflicts_);
5478  }
5479  if (((bitField1_ & 0x00000100) != 0)) {
5480  output.writeInt64(40, maxMemoryInMb_);
5481  }
5482  if (((bitField1_ & 0x00000800) != 0)) {
5483  output.writeBool(41, logSearchProgress_);
5484  }
5485  if (((bitField1_ & 0x00001000) != 0)) {
5486  output.writeBool(43, usePbResolution_);
5487  }
5488  if (((bitField0_ & 0x00000004) != 0)) {
5489  output.writeBool(44, usePhaseSaving_);
5490  }
5491  if (((bitField0_ & 0x00000008) != 0)) {
5492  output.writeDouble(45, randomPolarityRatio_);
5493  }
5494  if (((bitField0_ & 0x00010000) != 0)) {
5495  output.writeInt32(46, pbCleanupIncrement_);
5496  }
5497  if (((bitField0_ & 0x00020000) != 0)) {
5498  output.writeDouble(47, pbCleanupRatio_);
5499  }
5500  if (((bitField1_ & 0x00002000) != 0)) {
5501  output.writeBool(48, minimizeReductionDuringPbResolution_);
5502  }
5503  if (((bitField1_ & 0x00004000) != 0)) {
5504  output.writeBool(49, countAssumptionLevelsInLbd_);
5505  }
5506  if (((bitField1_ & 0x10000000) != 0)) {
5507  output.writeBool(50, minimizeCore_);
5508  }
5509  if (((bitField1_ & 0x80000000) != 0)) {
5510  output.writeEnum(51, maxSatAssumptionOrder_);
5511  }
5512  if (((bitField2_ & 0x00000001) != 0)) {
5513  output.writeBool(52, maxSatReverseAssumptionOrder_);
5514  }
5515  if (((bitField2_ & 0x00000002) != 0)) {
5516  output.writeEnum(53, maxSatStratification_);
5517  }
5518  if (((bitField1_ & 0x00008000) != 0)) {
5519  output.writeInt32(54, presolveBveThreshold_);
5520  }
5521  if (((bitField1_ & 0x00010000) != 0)) {
5522  output.writeInt32(55, presolveBveClauseWeight_);
5523  }
5524  if (((bitField0_ & 0x00000400) != 0)) {
5525  output.writeBool(56, subsumptionDuringConflictAnalysis_);
5526  }
5527  if (((bitField1_ & 0x00020000) != 0)) {
5528  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
5529  }
5530  if (((bitField0_ & 0x00002000) != 0)) {
5531  output.writeEnum(58, clauseCleanupProtection_);
5532  }
5533  if (((bitField0_ & 0x00004000) != 0)) {
5534  output.writeInt32(59, clauseCleanupLbdBound_);
5535  }
5536  if (((bitField0_ & 0x00008000) != 0)) {
5537  output.writeEnum(60, clauseCleanupOrdering_);
5538  }
5539  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5540  output.writeEnum(61, restartAlgorithms_.get(i));
5541  }
5542  if (((bitField0_ & 0x20000000) != 0)) {
5543  output.writeInt32(62, restartRunningWindowSize_);
5544  }
5545  if (((bitField0_ & 0x40000000) != 0)) {
5546  output.writeDouble(63, restartDlAverageRatio_);
5547  }
5548  if (((bitField1_ & 0x00000001) != 0)) {
5549  output.writeBool(64, useBlockingRestart_);
5550  }
5551  if (((bitField1_ & 0x00000002) != 0)) {
5552  output.writeInt32(65, blockingRestartWindowSize_);
5553  }
5554  if (((bitField1_ & 0x00000004) != 0)) {
5555  output.writeDouble(66, blockingRestartMultiplier_);
5556  }
5557  if (((bitField1_ & 0x00000040) != 0)) {
5558  output.writeDouble(67, maxDeterministicTime_);
5559  }
5560  if (((bitField1_ & 0x00000008) != 0)) {
5561  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
5562  }
5563  if (((bitField1_ & 0x00000010) != 0)) {
5564  output.writeDouble(69, strategyChangeIncreaseRatio_);
5565  }
5566  if (((bitField0_ & 0x08000000) != 0)) {
5567  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
5568  }
5569  if (((bitField0_ & 0x80000000) != 0)) {
5570  output.writeDouble(71, restartLbdAverageRatio_);
5571  }
5572  if (((bitField1_ & 0x00080000) != 0)) {
5573  output.writeBool(72, presolveUseBva_);
5574  }
5575  if (((bitField1_ & 0x00100000) != 0)) {
5576  output.writeInt32(73, presolveBvaThreshold_);
5577  }
5578  if (((bitField2_ & 0x00000004) != 0)) {
5579  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
5580  }
5581  if (((bitField0_ & 0x00000020) != 0)) {
5582  output.writeBool(75, useErwaHeuristic_);
5583  }
5584  if (((bitField0_ & 0x00000040) != 0)) {
5585  output.writeDouble(76, initialVariablesActivity_);
5586  }
5587  if (((bitField0_ & 0x00000080) != 0)) {
5588  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
5589  }
5590  if (((bitField2_ & 0x00000008) != 0)) {
5591  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
5592  }
5593  if (((bitField2_ & 0x00000010) != 0)) {
5594  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
5595  }
5596  if (((bitField2_ & 0x00000020) != 0)) {
5597  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
5598  }
5599  if (((bitField2_ & 0x00080000) != 0)) {
5600  output.writeEnum(82, searchBranching_);
5601  }
5602  if (((bitField2_ & 0x04000000) != 0)) {
5603  output.writeBool(83, optimizeWithCore_);
5604  }
5605  if (((bitField1_ & 0x20000000) != 0)) {
5606  output.writeBool(84, findMultipleCores_);
5607  }
5608  if (((bitField2_ & 0x10000000) != 0)) {
5609  output.writeBool(85, optimizeWithMaxHs_);
5610  }
5611  if (((bitField1_ & 0x00400000) != 0)) {
5612  output.writeBool(86, cpModelPresolve_);
5613  }
5614  if (((bitField2_ & 0x20000000) != 0)) {
5615  output.writeBool(87, enumerateAllSolutions_);
5616  }
5617  if (((bitField1_ & 0x00040000) != 0)) {
5618  output.writeBool(88, presolveBlockedClause_);
5619  }
5620  if (((bitField1_ & 0x40000000) != 0)) {
5621  output.writeBool(89, coverOptimization_);
5622  }
5623  if (((bitField2_ & 0x00000040) != 0)) {
5624  output.writeInt32(90, linearizationLevel_);
5625  }
5626  if (((bitField2_ & 0x00000100) != 0)) {
5627  output.writeInt32(91, maxNumCuts_);
5628  }
5629  if (((bitField2_ & 0x00000200) != 0)) {
5630  output.writeBool(92, onlyAddCutsAtLevelZero_);
5631  }
5632  if (((bitField1_ & 0x01000000) != 0)) {
5633  output.writeBool(93, cpModelUseSatPresolve_);
5634  }
5635  if (((bitField2_ & 0x00100000) != 0)) {
5636  output.writeBool(94, exploitIntegerLpSolution_);
5637  }
5638  if (((bitField3_ & 0x00000001) != 0)) {
5639  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
5640  }
5641  if (((bitField0_ & 0x00040000) != 0)) {
5642  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
5643  }
5644  if (((bitField0_ & 0x00080000) != 0)) {
5645  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
5646  }
5647  if (((bitField3_ & 0x00000002) != 0)) {
5648  output.writeBool(98, stopAfterFirstSolution_);
5649  }
5650  if (((bitField2_ & 0x08000000) != 0)) {
5651  output.writeInt32(99, binarySearchNumConflicts_);
5652  }
5653  if (((bitField3_ & 0x00000004) != 0)) {
5654  output.writeInt32(100, numSearchWorkers_);
5655  }
5656  if (((bitField3_ & 0x00000100) != 0)) {
5657  output.writeBool(101, useLnsOnly_);
5658  }
5659  if (((bitField3_ & 0x00001000) != 0)) {
5660  output.writeBool(103, randomizeSearch_);
5661  }
5662  if (((bitField3_ & 0x00002000) != 0)) {
5663  output.writeInt64(104, searchRandomizationTolerance_);
5664  }
5665  if (((bitField3_ & 0x00000200) != 0)) {
5666  output.writeBool(105, lnsFocusOnDecisionVariables_);
5667  }
5668  if (((bitField2_ & 0x80000000) != 0)) {
5669  output.writeBool(106, instantiateAllVariables_);
5670  }
5671  if (((bitField2_ & 0x00000080) != 0)) {
5672  output.writeInt32(107, booleanEncodingLevel_);
5673  }
5674  if (((bitField3_ & 0x00004000) != 0)) {
5675  output.writeBool(108, useOptionalVariables_);
5676  }
5677  if (((bitField3_ & 0x00008000) != 0)) {
5678  output.writeBool(109, useExactLpReason_);
5679  }
5680  if (((bitField1_ & 0x00800000) != 0)) {
5681  output.writeInt32(110, cpModelProbingLevel_);
5682  }
5683  if (((bitField2_ & 0x00000400) != 0)) {
5684  output.writeBool(111, addKnapsackCuts_);
5685  }
5686  if (((bitField2_ & 0x00008000) != 0)) {
5687  output.writeBool(112, addLpConstraintsLazily_);
5688  }
5689  if (((bitField3_ & 0x00000040) != 0)) {
5690  output.writeBool(113, shareObjectiveBounds_);
5691  }
5692  if (((bitField3_ & 0x00000080) != 0)) {
5693  output.writeBool(114, shareLevelZeroBounds_);
5694  }
5695  if (((bitField2_ & 0x00010000) != 0)) {
5696  output.writeDouble(115, minOrthogonalityForLpConstraints_);
5697  }
5698  if (((bitField2_ & 0x00200000) != 0)) {
5699  output.writeBool(116, exploitAllLpSolution_);
5700  }
5701  if (((bitField2_ & 0x00000800) != 0)) {
5702  output.writeBool(117, addCgCuts_);
5703  }
5704  if (((bitField2_ & 0x00002000) != 0)) {
5705  output.writeBool(118, useMirRounding_);
5706  }
5707  if (((bitField2_ & 0x00004000) != 0)) {
5708  output.writeInt32(119, maxIntegerRoundingScaling_);
5709  }
5710  if (((bitField2_ & 0x00001000) != 0)) {
5711  output.writeBool(120, addMirCuts_);
5712  }
5713  if (((bitField2_ & 0x00020000) != 0)) {
5714  output.writeInt64(121, maxInactiveCount_);
5715  }
5716  if (((bitField2_ & 0x00040000) != 0)) {
5717  output.writeInt64(122, constraintRemovalBatchSize_);
5718  }
5719  if (((bitField2_ & 0x02000000) != 0)) {
5720  output.writeInt64(123, pseudoCostReliabilityThreshold_);
5721  }
5722  if (((bitField3_ & 0x00080000) != 0)) {
5723  output.writeDouble(124, mipMaxBound_);
5724  }
5725  if (((bitField3_ & 0x00100000) != 0)) {
5726  output.writeDouble(125, mipVarScaling_);
5727  }
5728  if (((bitField3_ & 0x00200000) != 0)) {
5729  output.writeDouble(126, mipWantedPrecision_);
5730  }
5731  if (((bitField3_ & 0x00400000) != 0)) {
5732  output.writeInt32(127, mipMaxActivityExponent_);
5733  }
5734  if (((bitField3_ & 0x00800000) != 0)) {
5735  output.writeDouble(128, mipCheckPrecision_);
5736  }
5737  if (((bitField3_ & 0x00000400) != 0)) {
5738  output.writeBool(129, useRinsLns_);
5739  }
5740  if (((bitField2_ & 0x00400000) != 0)) {
5741  output.writeBool(130, exploitBestSolution_);
5742  }
5743  if (((bitField2_ & 0x00800000) != 0)) {
5744  output.writeBool(131, exploitObjective_);
5745  }
5746  if (((bitField2_ & 0x40000000) != 0)) {
5747  output.writeBool(132, fillTightenedDomainsInResponse_);
5748  }
5749  if (((bitField3_ & 0x00020000) != 0)) {
5750  output.writeBool(133, useCombinedNoOverlap_);
5751  }
5752  if (((bitField3_ & 0x00000020) != 0)) {
5753  output.writeBool(134, deterministicParallelSearch_);
5754  }
5755  if (((bitField3_ & 0x00040000) != 0)) {
5756  output.writeBool(135, catchSigintSignal_);
5757  }
5758  if (((bitField3_ & 0x00000008) != 0)) {
5759  output.writeBool(136, interleaveSearch_);
5760  }
5761  if (((bitField3_ & 0x00000800) != 0)) {
5762  output.writeBool(137, diversifyLnsParams_);
5763  }
5764  if (((bitField1_ & 0x00200000) != 0)) {
5765  output.writeInt32(138, maxPresolveIterations_);
5766  }
5767  if (((bitField3_ & 0x00010000) != 0)) {
5768  output.writeBool(139, useBranchingInLp_);
5769  }
5770  if (((bitField1_ & 0x02000000) != 0)) {
5771  output.writeBool(140, expandElementConstraints_);
5772  }
5773  if (((bitField3_ & 0x00000010) != 0)) {
5774  output.writeBool(141, reduceMemoryUsageInInterleaveMode_);
5775  }
5776  if (((bitField2_ & 0x01000000) != 0)) {
5777  output.writeInt64(142, probingPeriodAtRoot_);
5778  }
5779  if (((bitField1_ & 0x04000000) != 0)) {
5780  output.writeBool(143, expandAutomatonConstraints_);
5781  }
5782  unknownFields.writeTo(output);
5783  }
5784 
5785  @java.lang.Override
5786  public int getSerializedSize() {
5787  int size = memoizedSize;
5788  if (size != -1) return size;
5789 
5790  size = 0;
5791  if (((bitField0_ & 0x00000001) != 0)) {
5792  size += com.google.protobuf.CodedOutputStream
5793  .computeEnumSize(1, preferredVariableOrder_);
5794  }
5795  if (((bitField0_ & 0x00000002) != 0)) {
5796  size += com.google.protobuf.CodedOutputStream
5797  .computeEnumSize(2, initialPolarity_);
5798  }
5799  if (((bitField0_ & 0x00000100) != 0)) {
5800  size += com.google.protobuf.CodedOutputStream
5801  .computeEnumSize(4, minimizationAlgorithm_);
5802  }
5803  if (((bitField0_ & 0x00000800) != 0)) {
5804  size += com.google.protobuf.CodedOutputStream
5805  .computeInt32Size(11, clauseCleanupPeriod_);
5806  }
5807  if (((bitField0_ & 0x00001000) != 0)) {
5808  size += com.google.protobuf.CodedOutputStream
5809  .computeInt32Size(13, clauseCleanupTarget_);
5810  }
5811  if (((bitField0_ & 0x00100000) != 0)) {
5812  size += com.google.protobuf.CodedOutputStream
5813  .computeDoubleSize(15, variableActivityDecay_);
5814  }
5815  if (((bitField0_ & 0x00200000) != 0)) {
5816  size += com.google.protobuf.CodedOutputStream
5817  .computeDoubleSize(16, maxVariableActivityValue_);
5818  }
5819  if (((bitField0_ & 0x02000000) != 0)) {
5820  size += com.google.protobuf.CodedOutputStream
5821  .computeDoubleSize(17, clauseActivityDecay_);
5822  }
5823  if (((bitField0_ & 0x04000000) != 0)) {
5824  size += com.google.protobuf.CodedOutputStream
5825  .computeDoubleSize(18, maxClauseActivityValue_);
5826  }
5827  if (((bitField0_ & 0x00400000) != 0)) {
5828  size += com.google.protobuf.CodedOutputStream
5829  .computeDoubleSize(22, glucoseMaxDecay_);
5830  }
5831  if (((bitField0_ & 0x00800000) != 0)) {
5832  size += com.google.protobuf.CodedOutputStream
5833  .computeDoubleSize(23, glucoseDecayIncrement_);
5834  }
5835  if (((bitField0_ & 0x01000000) != 0)) {
5836  size += com.google.protobuf.CodedOutputStream
5837  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
5838  }
5839  if (((bitField0_ & 0x10000000) != 0)) {
5840  size += com.google.protobuf.CodedOutputStream
5841  .computeInt32Size(30, restartPeriod_);
5842  }
5843  if (((bitField1_ & 0x00000400) != 0)) {
5844  size += com.google.protobuf.CodedOutputStream
5845  .computeInt32Size(31, randomSeed_);
5846  }
5847  if (((bitField0_ & 0x00000010) != 0)) {
5848  size += com.google.protobuf.CodedOutputStream
5849  .computeDoubleSize(32, randomBranchesRatio_);
5850  }
5851  if (((bitField1_ & 0x00000200) != 0)) {
5852  size += com.google.protobuf.CodedOutputStream
5853  .computeBoolSize(33, treatBinaryClausesSeparately_);
5854  }
5855  if (((bitField0_ & 0x00000200) != 0)) {
5856  size += com.google.protobuf.CodedOutputStream
5857  .computeEnumSize(34, binaryMinimizationAlgorithm_);
5858  }
5859  if (((bitField1_ & 0x08000000) != 0)) {
5860  size += com.google.protobuf.CodedOutputStream
5861  .computeBoolSize(35, useOptimizationHints_);
5862  }
5863  if (((bitField1_ & 0x00000020) != 0)) {
5864  size += com.google.protobuf.CodedOutputStream
5865  .computeDoubleSize(36, maxTimeInSeconds_);
5866  }
5867  if (((bitField1_ & 0x00000080) != 0)) {
5868  size += com.google.protobuf.CodedOutputStream
5869  .computeInt64Size(37, maxNumberOfConflicts_);
5870  }
5871  if (((bitField1_ & 0x00000100) != 0)) {
5872  size += com.google.protobuf.CodedOutputStream
5873  .computeInt64Size(40, maxMemoryInMb_);
5874  }
5875  if (((bitField1_ & 0x00000800) != 0)) {
5876  size += com.google.protobuf.CodedOutputStream
5877  .computeBoolSize(41, logSearchProgress_);
5878  }
5879  if (((bitField1_ & 0x00001000) != 0)) {
5880  size += com.google.protobuf.CodedOutputStream
5881  .computeBoolSize(43, usePbResolution_);
5882  }
5883  if (((bitField0_ & 0x00000004) != 0)) {
5884  size += com.google.protobuf.CodedOutputStream
5885  .computeBoolSize(44, usePhaseSaving_);
5886  }
5887  if (((bitField0_ & 0x00000008) != 0)) {
5888  size += com.google.protobuf.CodedOutputStream
5889  .computeDoubleSize(45, randomPolarityRatio_);
5890  }
5891  if (((bitField0_ & 0x00010000) != 0)) {
5892  size += com.google.protobuf.CodedOutputStream
5893  .computeInt32Size(46, pbCleanupIncrement_);
5894  }
5895  if (((bitField0_ & 0x00020000) != 0)) {
5896  size += com.google.protobuf.CodedOutputStream
5897  .computeDoubleSize(47, pbCleanupRatio_);
5898  }
5899  if (((bitField1_ & 0x00002000) != 0)) {
5900  size += com.google.protobuf.CodedOutputStream
5901  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
5902  }
5903  if (((bitField1_ & 0x00004000) != 0)) {
5904  size += com.google.protobuf.CodedOutputStream
5905  .computeBoolSize(49, countAssumptionLevelsInLbd_);
5906  }
5907  if (((bitField1_ & 0x10000000) != 0)) {
5908  size += com.google.protobuf.CodedOutputStream
5909  .computeBoolSize(50, minimizeCore_);
5910  }
5911  if (((bitField1_ & 0x80000000) != 0)) {
5912  size += com.google.protobuf.CodedOutputStream
5913  .computeEnumSize(51, maxSatAssumptionOrder_);
5914  }
5915  if (((bitField2_ & 0x00000001) != 0)) {
5916  size += com.google.protobuf.CodedOutputStream
5917  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
5918  }
5919  if (((bitField2_ & 0x00000002) != 0)) {
5920  size += com.google.protobuf.CodedOutputStream
5921  .computeEnumSize(53, maxSatStratification_);
5922  }
5923  if (((bitField1_ & 0x00008000) != 0)) {
5924  size += com.google.protobuf.CodedOutputStream
5925  .computeInt32Size(54, presolveBveThreshold_);
5926  }
5927  if (((bitField1_ & 0x00010000) != 0)) {
5928  size += com.google.protobuf.CodedOutputStream
5929  .computeInt32Size(55, presolveBveClauseWeight_);
5930  }
5931  if (((bitField0_ & 0x00000400) != 0)) {
5932  size += com.google.protobuf.CodedOutputStream
5933  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
5934  }
5935  if (((bitField1_ & 0x00020000) != 0)) {
5936  size += com.google.protobuf.CodedOutputStream
5937  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
5938  }
5939  if (((bitField0_ & 0x00002000) != 0)) {
5940  size += com.google.protobuf.CodedOutputStream
5941  .computeEnumSize(58, clauseCleanupProtection_);
5942  }
5943  if (((bitField0_ & 0x00004000) != 0)) {
5944  size += com.google.protobuf.CodedOutputStream
5945  .computeInt32Size(59, clauseCleanupLbdBound_);
5946  }
5947  if (((bitField0_ & 0x00008000) != 0)) {
5948  size += com.google.protobuf.CodedOutputStream
5949  .computeEnumSize(60, clauseCleanupOrdering_);
5950  }
5951  {
5952  int dataSize = 0;
5953  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5954  dataSize += com.google.protobuf.CodedOutputStream
5955  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
5956  }
5957  size += dataSize;
5958  size += 2 * restartAlgorithms_.size();
5959  }
5960  if (((bitField0_ & 0x20000000) != 0)) {
5961  size += com.google.protobuf.CodedOutputStream
5962  .computeInt32Size(62, restartRunningWindowSize_);
5963  }
5964  if (((bitField0_ & 0x40000000) != 0)) {
5965  size += com.google.protobuf.CodedOutputStream
5966  .computeDoubleSize(63, restartDlAverageRatio_);
5967  }
5968  if (((bitField1_ & 0x00000001) != 0)) {
5969  size += com.google.protobuf.CodedOutputStream
5970  .computeBoolSize(64, useBlockingRestart_);
5971  }
5972  if (((bitField1_ & 0x00000002) != 0)) {
5973  size += com.google.protobuf.CodedOutputStream
5974  .computeInt32Size(65, blockingRestartWindowSize_);
5975  }
5976  if (((bitField1_ & 0x00000004) != 0)) {
5977  size += com.google.protobuf.CodedOutputStream
5978  .computeDoubleSize(66, blockingRestartMultiplier_);
5979  }
5980  if (((bitField1_ & 0x00000040) != 0)) {
5981  size += com.google.protobuf.CodedOutputStream
5982  .computeDoubleSize(67, maxDeterministicTime_);
5983  }
5984  if (((bitField1_ & 0x00000008) != 0)) {
5985  size += com.google.protobuf.CodedOutputStream
5986  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
5987  }
5988  if (((bitField1_ & 0x00000010) != 0)) {
5989  size += com.google.protobuf.CodedOutputStream
5990  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
5991  }
5992  if (((bitField0_ & 0x08000000) != 0)) {
5993  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
5994  }
5995  if (((bitField0_ & 0x80000000) != 0)) {
5996  size += com.google.protobuf.CodedOutputStream
5997  .computeDoubleSize(71, restartLbdAverageRatio_);
5998  }
5999  if (((bitField1_ & 0x00080000) != 0)) {
6000  size += com.google.protobuf.CodedOutputStream
6001  .computeBoolSize(72, presolveUseBva_);
6002  }
6003  if (((bitField1_ & 0x00100000) != 0)) {
6004  size += com.google.protobuf.CodedOutputStream
6005  .computeInt32Size(73, presolveBvaThreshold_);
6006  }
6007  if (((bitField2_ & 0x00000004) != 0)) {
6008  size += com.google.protobuf.CodedOutputStream
6009  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
6010  }
6011  if (((bitField0_ & 0x00000020) != 0)) {
6012  size += com.google.protobuf.CodedOutputStream
6013  .computeBoolSize(75, useErwaHeuristic_);
6014  }
6015  if (((bitField0_ & 0x00000040) != 0)) {
6016  size += com.google.protobuf.CodedOutputStream
6017  .computeDoubleSize(76, initialVariablesActivity_);
6018  }
6019  if (((bitField0_ & 0x00000080) != 0)) {
6020  size += com.google.protobuf.CodedOutputStream
6021  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
6022  }
6023  if (((bitField2_ & 0x00000008) != 0)) {
6024  size += com.google.protobuf.CodedOutputStream
6025  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
6026  }
6027  if (((bitField2_ & 0x00000010) != 0)) {
6028  size += com.google.protobuf.CodedOutputStream
6029  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
6030  }
6031  if (((bitField2_ & 0x00000020) != 0)) {
6032  size += com.google.protobuf.CodedOutputStream
6033  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
6034  }
6035  if (((bitField2_ & 0x00080000) != 0)) {
6036  size += com.google.protobuf.CodedOutputStream
6037  .computeEnumSize(82, searchBranching_);
6038  }
6039  if (((bitField2_ & 0x04000000) != 0)) {
6040  size += com.google.protobuf.CodedOutputStream
6041  .computeBoolSize(83, optimizeWithCore_);
6042  }
6043  if (((bitField1_ & 0x20000000) != 0)) {
6044  size += com.google.protobuf.CodedOutputStream
6045  .computeBoolSize(84, findMultipleCores_);
6046  }
6047  if (((bitField2_ & 0x10000000) != 0)) {
6048  size += com.google.protobuf.CodedOutputStream
6049  .computeBoolSize(85, optimizeWithMaxHs_);
6050  }
6051  if (((bitField1_ & 0x00400000) != 0)) {
6052  size += com.google.protobuf.CodedOutputStream
6053  .computeBoolSize(86, cpModelPresolve_);
6054  }
6055  if (((bitField2_ & 0x20000000) != 0)) {
6056  size += com.google.protobuf.CodedOutputStream
6057  .computeBoolSize(87, enumerateAllSolutions_);
6058  }
6059  if (((bitField1_ & 0x00040000) != 0)) {
6060  size += com.google.protobuf.CodedOutputStream
6061  .computeBoolSize(88, presolveBlockedClause_);
6062  }
6063  if (((bitField1_ & 0x40000000) != 0)) {
6064  size += com.google.protobuf.CodedOutputStream
6065  .computeBoolSize(89, coverOptimization_);
6066  }
6067  if (((bitField2_ & 0x00000040) != 0)) {
6068  size += com.google.protobuf.CodedOutputStream
6069  .computeInt32Size(90, linearizationLevel_);
6070  }
6071  if (((bitField2_ & 0x00000100) != 0)) {
6072  size += com.google.protobuf.CodedOutputStream
6073  .computeInt32Size(91, maxNumCuts_);
6074  }
6075  if (((bitField2_ & 0x00000200) != 0)) {
6076  size += com.google.protobuf.CodedOutputStream
6077  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
6078  }
6079  if (((bitField1_ & 0x01000000) != 0)) {
6080  size += com.google.protobuf.CodedOutputStream
6081  .computeBoolSize(93, cpModelUseSatPresolve_);
6082  }
6083  if (((bitField2_ & 0x00100000) != 0)) {
6084  size += com.google.protobuf.CodedOutputStream
6085  .computeBoolSize(94, exploitIntegerLpSolution_);
6086  }
6087  if (((bitField3_ & 0x00000001) != 0)) {
6088  size += com.google.protobuf.CodedOutputStream
6089  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
6090  }
6091  if (((bitField0_ & 0x00040000) != 0)) {
6092  size += com.google.protobuf.CodedOutputStream
6093  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
6094  }
6095  if (((bitField0_ & 0x00080000) != 0)) {
6096  size += com.google.protobuf.CodedOutputStream
6097  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
6098  }
6099  if (((bitField3_ & 0x00000002) != 0)) {
6100  size += com.google.protobuf.CodedOutputStream
6101  .computeBoolSize(98, stopAfterFirstSolution_);
6102  }
6103  if (((bitField2_ & 0x08000000) != 0)) {
6104  size += com.google.protobuf.CodedOutputStream
6105  .computeInt32Size(99, binarySearchNumConflicts_);
6106  }
6107  if (((bitField3_ & 0x00000004) != 0)) {
6108  size += com.google.protobuf.CodedOutputStream
6109  .computeInt32Size(100, numSearchWorkers_);
6110  }
6111  if (((bitField3_ & 0x00000100) != 0)) {
6112  size += com.google.protobuf.CodedOutputStream
6113  .computeBoolSize(101, useLnsOnly_);
6114  }
6115  if (((bitField3_ & 0x00001000) != 0)) {
6116  size += com.google.protobuf.CodedOutputStream
6117  .computeBoolSize(103, randomizeSearch_);
6118  }
6119  if (((bitField3_ & 0x00002000) != 0)) {
6120  size += com.google.protobuf.CodedOutputStream
6121  .computeInt64Size(104, searchRandomizationTolerance_);
6122  }
6123  if (((bitField3_ & 0x00000200) != 0)) {
6124  size += com.google.protobuf.CodedOutputStream
6125  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
6126  }
6127  if (((bitField2_ & 0x80000000) != 0)) {
6128  size += com.google.protobuf.CodedOutputStream
6129  .computeBoolSize(106, instantiateAllVariables_);
6130  }
6131  if (((bitField2_ & 0x00000080) != 0)) {
6132  size += com.google.protobuf.CodedOutputStream
6133  .computeInt32Size(107, booleanEncodingLevel_);
6134  }
6135  if (((bitField3_ & 0x00004000) != 0)) {
6136  size += com.google.protobuf.CodedOutputStream
6137  .computeBoolSize(108, useOptionalVariables_);
6138  }
6139  if (((bitField3_ & 0x00008000) != 0)) {
6140  size += com.google.protobuf.CodedOutputStream
6141  .computeBoolSize(109, useExactLpReason_);
6142  }
6143  if (((bitField1_ & 0x00800000) != 0)) {
6144  size += com.google.protobuf.CodedOutputStream
6145  .computeInt32Size(110, cpModelProbingLevel_);
6146  }
6147  if (((bitField2_ & 0x00000400) != 0)) {
6148  size += com.google.protobuf.CodedOutputStream
6149  .computeBoolSize(111, addKnapsackCuts_);
6150  }
6151  if (((bitField2_ & 0x00008000) != 0)) {
6152  size += com.google.protobuf.CodedOutputStream
6153  .computeBoolSize(112, addLpConstraintsLazily_);
6154  }
6155  if (((bitField3_ & 0x00000040) != 0)) {
6156  size += com.google.protobuf.CodedOutputStream
6157  .computeBoolSize(113, shareObjectiveBounds_);
6158  }
6159  if (((bitField3_ & 0x00000080) != 0)) {
6160  size += com.google.protobuf.CodedOutputStream
6161  .computeBoolSize(114, shareLevelZeroBounds_);
6162  }
6163  if (((bitField2_ & 0x00010000) != 0)) {
6164  size += com.google.protobuf.CodedOutputStream
6165  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
6166  }
6167  if (((bitField2_ & 0x00200000) != 0)) {
6168  size += com.google.protobuf.CodedOutputStream
6169  .computeBoolSize(116, exploitAllLpSolution_);
6170  }
6171  if (((bitField2_ & 0x00000800) != 0)) {
6172  size += com.google.protobuf.CodedOutputStream
6173  .computeBoolSize(117, addCgCuts_);
6174  }
6175  if (((bitField2_ & 0x00002000) != 0)) {
6176  size += com.google.protobuf.CodedOutputStream
6177  .computeBoolSize(118, useMirRounding_);
6178  }
6179  if (((bitField2_ & 0x00004000) != 0)) {
6180  size += com.google.protobuf.CodedOutputStream
6181  .computeInt32Size(119, maxIntegerRoundingScaling_);
6182  }
6183  if (((bitField2_ & 0x00001000) != 0)) {
6184  size += com.google.protobuf.CodedOutputStream
6185  .computeBoolSize(120, addMirCuts_);
6186  }
6187  if (((bitField2_ & 0x00020000) != 0)) {
6188  size += com.google.protobuf.CodedOutputStream
6189  .computeInt64Size(121, maxInactiveCount_);
6190  }
6191  if (((bitField2_ & 0x00040000) != 0)) {
6192  size += com.google.protobuf.CodedOutputStream
6193  .computeInt64Size(122, constraintRemovalBatchSize_);
6194  }
6195  if (((bitField2_ & 0x02000000) != 0)) {
6196  size += com.google.protobuf.CodedOutputStream
6197  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
6198  }
6199  if (((bitField3_ & 0x00080000) != 0)) {
6200  size += com.google.protobuf.CodedOutputStream
6201  .computeDoubleSize(124, mipMaxBound_);
6202  }
6203  if (((bitField3_ & 0x00100000) != 0)) {
6204  size += com.google.protobuf.CodedOutputStream
6205  .computeDoubleSize(125, mipVarScaling_);
6206  }
6207  if (((bitField3_ & 0x00200000) != 0)) {
6208  size += com.google.protobuf.CodedOutputStream
6209  .computeDoubleSize(126, mipWantedPrecision_);
6210  }
6211  if (((bitField3_ & 0x00400000) != 0)) {
6212  size += com.google.protobuf.CodedOutputStream
6213  .computeInt32Size(127, mipMaxActivityExponent_);
6214  }
6215  if (((bitField3_ & 0x00800000) != 0)) {
6216  size += com.google.protobuf.CodedOutputStream
6217  .computeDoubleSize(128, mipCheckPrecision_);
6218  }
6219  if (((bitField3_ & 0x00000400) != 0)) {
6220  size += com.google.protobuf.CodedOutputStream
6221  .computeBoolSize(129, useRinsLns_);
6222  }
6223  if (((bitField2_ & 0x00400000) != 0)) {
6224  size += com.google.protobuf.CodedOutputStream
6225  .computeBoolSize(130, exploitBestSolution_);
6226  }
6227  if (((bitField2_ & 0x00800000) != 0)) {
6228  size += com.google.protobuf.CodedOutputStream
6229  .computeBoolSize(131, exploitObjective_);
6230  }
6231  if (((bitField2_ & 0x40000000) != 0)) {
6232  size += com.google.protobuf.CodedOutputStream
6233  .computeBoolSize(132, fillTightenedDomainsInResponse_);
6234  }
6235  if (((bitField3_ & 0x00020000) != 0)) {
6236  size += com.google.protobuf.CodedOutputStream
6237  .computeBoolSize(133, useCombinedNoOverlap_);
6238  }
6239  if (((bitField3_ & 0x00000020) != 0)) {
6240  size += com.google.protobuf.CodedOutputStream
6241  .computeBoolSize(134, deterministicParallelSearch_);
6242  }
6243  if (((bitField3_ & 0x00040000) != 0)) {
6244  size += com.google.protobuf.CodedOutputStream
6245  .computeBoolSize(135, catchSigintSignal_);
6246  }
6247  if (((bitField3_ & 0x00000008) != 0)) {
6248  size += com.google.protobuf.CodedOutputStream
6249  .computeBoolSize(136, interleaveSearch_);
6250  }
6251  if (((bitField3_ & 0x00000800) != 0)) {
6252  size += com.google.protobuf.CodedOutputStream
6253  .computeBoolSize(137, diversifyLnsParams_);
6254  }
6255  if (((bitField1_ & 0x00200000) != 0)) {
6256  size += com.google.protobuf.CodedOutputStream
6257  .computeInt32Size(138, maxPresolveIterations_);
6258  }
6259  if (((bitField3_ & 0x00010000) != 0)) {
6260  size += com.google.protobuf.CodedOutputStream
6261  .computeBoolSize(139, useBranchingInLp_);
6262  }
6263  if (((bitField1_ & 0x02000000) != 0)) {
6264  size += com.google.protobuf.CodedOutputStream
6265  .computeBoolSize(140, expandElementConstraints_);
6266  }
6267  if (((bitField3_ & 0x00000010) != 0)) {
6268  size += com.google.protobuf.CodedOutputStream
6269  .computeBoolSize(141, reduceMemoryUsageInInterleaveMode_);
6270  }
6271  if (((bitField2_ & 0x01000000) != 0)) {
6272  size += com.google.protobuf.CodedOutputStream
6273  .computeInt64Size(142, probingPeriodAtRoot_);
6274  }
6275  if (((bitField1_ & 0x04000000) != 0)) {
6276  size += com.google.protobuf.CodedOutputStream
6277  .computeBoolSize(143, expandAutomatonConstraints_);
6278  }
6279  size += unknownFields.getSerializedSize();
6280  memoizedSize = size;
6281  return size;
6282  }
6283 
6284  @java.lang.Override
6285  public boolean equals(final java.lang.Object obj) {
6286  if (obj == this) {
6287  return true;
6288  }
6289  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
6290  return super.equals(obj);
6291  }
6293 
6294  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
6295  if (hasPreferredVariableOrder()) {
6296  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
6297  }
6298  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
6299  if (hasInitialPolarity()) {
6300  if (initialPolarity_ != other.initialPolarity_) return false;
6301  }
6302  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
6303  if (hasUsePhaseSaving()) {
6304  if (getUsePhaseSaving()
6305  != other.getUsePhaseSaving()) return false;
6306  }
6307  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
6308  if (hasRandomPolarityRatio()) {
6309  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
6310  != java.lang.Double.doubleToLongBits(
6311  other.getRandomPolarityRatio())) return false;
6312  }
6313  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
6314  if (hasRandomBranchesRatio()) {
6315  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
6316  != java.lang.Double.doubleToLongBits(
6317  other.getRandomBranchesRatio())) return false;
6318  }
6319  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
6320  if (hasUseErwaHeuristic()) {
6321  if (getUseErwaHeuristic()
6322  != other.getUseErwaHeuristic()) return false;
6323  }
6324  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
6326  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
6327  != java.lang.Double.doubleToLongBits(
6328  other.getInitialVariablesActivity())) return false;
6329  }
6330  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
6333  != other.getAlsoBumpVariablesInConflictReasons()) return false;
6334  }
6335  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
6336  if (hasMinimizationAlgorithm()) {
6337  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
6338  }
6339  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
6341  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
6342  }
6343  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
6346  != other.getSubsumptionDuringConflictAnalysis()) return false;
6347  }
6348  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
6349  if (hasClauseCleanupPeriod()) {
6351  != other.getClauseCleanupPeriod()) return false;
6352  }
6353  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
6354  if (hasClauseCleanupTarget()) {
6356  != other.getClauseCleanupTarget()) return false;
6357  }
6358  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
6360  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
6361  }
6362  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
6363  if (hasClauseCleanupLbdBound()) {
6365  != other.getClauseCleanupLbdBound()) return false;
6366  }
6367  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
6368  if (hasClauseCleanupOrdering()) {
6369  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
6370  }
6371  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
6372  if (hasPbCleanupIncrement()) {
6373  if (getPbCleanupIncrement()
6374  != other.getPbCleanupIncrement()) return false;
6375  }
6376  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
6377  if (hasPbCleanupRatio()) {
6378  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
6379  != java.lang.Double.doubleToLongBits(
6380  other.getPbCleanupRatio())) return false;
6381  }
6382  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
6385  != other.getMinimizeWithPropagationRestartPeriod()) return false;
6386  }
6387  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
6390  != other.getMinimizeWithPropagationNumDecisions()) return false;
6391  }
6392  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
6393  if (hasVariableActivityDecay()) {
6394  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
6395  != java.lang.Double.doubleToLongBits(
6396  other.getVariableActivityDecay())) return false;
6397  }
6398  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6400  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6401  != java.lang.Double.doubleToLongBits(
6402  other.getMaxVariableActivityValue())) return false;
6403  }
6404  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6405  if (hasGlucoseMaxDecay()) {
6406  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6407  != java.lang.Double.doubleToLongBits(
6408  other.getGlucoseMaxDecay())) return false;
6409  }
6410  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
6411  if (hasGlucoseDecayIncrement()) {
6412  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
6413  != java.lang.Double.doubleToLongBits(
6414  other.getGlucoseDecayIncrement())) return false;
6415  }
6416  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
6419  != other.getGlucoseDecayIncrementPeriod()) return false;
6420  }
6421  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
6422  if (hasClauseActivityDecay()) {
6423  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
6424  != java.lang.Double.doubleToLongBits(
6425  other.getClauseActivityDecay())) return false;
6426  }
6427  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
6428  if (hasMaxClauseActivityValue()) {
6429  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
6430  != java.lang.Double.doubleToLongBits(
6431  other.getMaxClauseActivityValue())) return false;
6432  }
6433  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
6434  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
6437  .equals(other.getDefaultRestartAlgorithms())) return false;
6438  }
6439  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
6440  if (hasRestartPeriod()) {
6441  if (getRestartPeriod()
6442  != other.getRestartPeriod()) return false;
6443  }
6444  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
6447  != other.getRestartRunningWindowSize()) return false;
6448  }
6449  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
6450  if (hasRestartDlAverageRatio()) {
6451  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
6452  != java.lang.Double.doubleToLongBits(
6453  other.getRestartDlAverageRatio())) return false;
6454  }
6455  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
6456  if (hasRestartLbdAverageRatio()) {
6457  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
6458  != java.lang.Double.doubleToLongBits(
6459  other.getRestartLbdAverageRatio())) return false;
6460  }
6461  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
6462  if (hasUseBlockingRestart()) {
6463  if (getUseBlockingRestart()
6464  != other.getUseBlockingRestart()) return false;
6465  }
6466  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
6469  != other.getBlockingRestartWindowSize()) return false;
6470  }
6471  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
6473  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
6474  != java.lang.Double.doubleToLongBits(
6475  other.getBlockingRestartMultiplier())) return false;
6476  }
6477  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
6480  != other.getNumConflictsBeforeStrategyChanges()) return false;
6481  }
6482  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
6484  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
6485  != java.lang.Double.doubleToLongBits(
6486  other.getStrategyChangeIncreaseRatio())) return false;
6487  }
6488  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
6489  if (hasMaxTimeInSeconds()) {
6490  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
6491  != java.lang.Double.doubleToLongBits(
6492  other.getMaxTimeInSeconds())) return false;
6493  }
6494  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
6495  if (hasMaxDeterministicTime()) {
6496  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
6497  != java.lang.Double.doubleToLongBits(
6498  other.getMaxDeterministicTime())) return false;
6499  }
6500  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
6501  if (hasMaxNumberOfConflicts()) {
6503  != other.getMaxNumberOfConflicts()) return false;
6504  }
6505  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
6506  if (hasMaxMemoryInMb()) {
6507  if (getMaxMemoryInMb()
6508  != other.getMaxMemoryInMb()) return false;
6509  }
6510  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
6513  != other.getTreatBinaryClausesSeparately()) return false;
6514  }
6515  if (hasRandomSeed() != other.hasRandomSeed()) return false;
6516  if (hasRandomSeed()) {
6517  if (getRandomSeed()
6518  != other.getRandomSeed()) return false;
6519  }
6520  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
6521  if (hasLogSearchProgress()) {
6522  if (getLogSearchProgress()
6523  != other.getLogSearchProgress()) return false;
6524  }
6525  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
6526  if (hasUsePbResolution()) {
6527  if (getUsePbResolution()
6528  != other.getUsePbResolution()) return false;
6529  }
6530  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
6533  != other.getMinimizeReductionDuringPbResolution()) return false;
6534  }
6535  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
6538  != other.getCountAssumptionLevelsInLbd()) return false;
6539  }
6540  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
6541  if (hasPresolveBveThreshold()) {
6543  != other.getPresolveBveThreshold()) return false;
6544  }
6545  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
6548  != other.getPresolveBveClauseWeight()) return false;
6549  }
6550  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
6552  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
6553  != java.lang.Double.doubleToLongBits(
6554  other.getPresolveProbingDeterministicTimeLimit())) return false;
6555  }
6556  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
6557  if (hasPresolveBlockedClause()) {
6559  != other.getPresolveBlockedClause()) return false;
6560  }
6561  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
6562  if (hasPresolveUseBva()) {
6563  if (getPresolveUseBva()
6564  != other.getPresolveUseBva()) return false;
6565  }
6566  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
6567  if (hasPresolveBvaThreshold()) {
6569  != other.getPresolveBvaThreshold()) return false;
6570  }
6571  if (hasMaxPresolveIterations() != other.hasMaxPresolveIterations()) return false;
6572  if (hasMaxPresolveIterations()) {
6574  != other.getMaxPresolveIterations()) return false;
6575  }
6576  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
6577  if (hasCpModelPresolve()) {
6578  if (getCpModelPresolve()
6579  != other.getCpModelPresolve()) return false;
6580  }
6581  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
6582  if (hasCpModelProbingLevel()) {
6584  != other.getCpModelProbingLevel()) return false;
6585  }
6586  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
6587  if (hasCpModelUseSatPresolve()) {
6589  != other.getCpModelUseSatPresolve()) return false;
6590  }
6591  if (hasExpandElementConstraints() != other.hasExpandElementConstraints()) return false;
6594  != other.getExpandElementConstraints()) return false;
6595  }
6596  if (hasExpandAutomatonConstraints() != other.hasExpandAutomatonConstraints()) return false;
6599  != other.getExpandAutomatonConstraints()) return false;
6600  }
6601  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
6602  if (hasUseOptimizationHints()) {
6604  != other.getUseOptimizationHints()) return false;
6605  }
6606  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
6607  if (hasMinimizeCore()) {
6608  if (getMinimizeCore()
6609  != other.getMinimizeCore()) return false;
6610  }
6611  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
6612  if (hasFindMultipleCores()) {
6613  if (getFindMultipleCores()
6614  != other.getFindMultipleCores()) return false;
6615  }
6616  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
6617  if (hasCoverOptimization()) {
6618  if (getCoverOptimization()
6619  != other.getCoverOptimization()) return false;
6620  }
6621  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
6622  if (hasMaxSatAssumptionOrder()) {
6623  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
6624  }
6625  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
6628  != other.getMaxSatReverseAssumptionOrder()) return false;
6629  }
6630  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
6631  if (hasMaxSatStratification()) {
6632  if (maxSatStratification_ != other.maxSatStratification_) return false;
6633  }
6634  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
6637  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
6638  }
6639  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
6642  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
6643  }
6644  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6647  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6648  }
6649  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6652  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6653  }
6654  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
6655  if (hasLinearizationLevel()) {
6656  if (getLinearizationLevel()
6657  != other.getLinearizationLevel()) return false;
6658  }
6659  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
6660  if (hasBooleanEncodingLevel()) {
6662  != other.getBooleanEncodingLevel()) return false;
6663  }
6664  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
6665  if (hasMaxNumCuts()) {
6666  if (getMaxNumCuts()
6667  != other.getMaxNumCuts()) return false;
6668  }
6669  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
6670  if (hasOnlyAddCutsAtLevelZero()) {
6672  != other.getOnlyAddCutsAtLevelZero()) return false;
6673  }
6674  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
6675  if (hasAddKnapsackCuts()) {
6676  if (getAddKnapsackCuts()
6677  != other.getAddKnapsackCuts()) return false;
6678  }
6679  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
6680  if (hasAddCgCuts()) {
6681  if (getAddCgCuts()
6682  != other.getAddCgCuts()) return false;
6683  }
6684  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
6685  if (hasAddMirCuts()) {
6686  if (getAddMirCuts()
6687  != other.getAddMirCuts()) return false;
6688  }
6689  if (hasUseMirRounding() != other.hasUseMirRounding()) return false;
6690  if (hasUseMirRounding()) {
6691  if (getUseMirRounding()
6692  != other.getUseMirRounding()) return false;
6693  }
6694  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
6697  != other.getMaxIntegerRoundingScaling()) return false;
6698  }
6699  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
6700  if (hasAddLpConstraintsLazily()) {
6702  != other.getAddLpConstraintsLazily()) return false;
6703  }
6704  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
6706  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
6707  != java.lang.Double.doubleToLongBits(
6708  other.getMinOrthogonalityForLpConstraints())) return false;
6709  }
6710  if (hasMaxInactiveCount() != other.hasMaxInactiveCount()) return false;
6711  if (hasMaxInactiveCount()) {
6712  if (getMaxInactiveCount()
6713  != other.getMaxInactiveCount()) return false;
6714  }
6715  if (hasConstraintRemovalBatchSize() != other.hasConstraintRemovalBatchSize()) return false;
6718  != other.getConstraintRemovalBatchSize()) return false;
6719  }
6720  if (hasSearchBranching() != other.hasSearchBranching()) return false;
6721  if (hasSearchBranching()) {
6722  if (searchBranching_ != other.searchBranching_) return false;
6723  }
6724  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
6727  != other.getExploitIntegerLpSolution()) return false;
6728  }
6729  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
6730  if (hasExploitAllLpSolution()) {
6732  != other.getExploitAllLpSolution()) return false;
6733  }
6734  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
6735  if (hasExploitBestSolution()) {
6737  != other.getExploitBestSolution()) return false;
6738  }
6739  if (hasExploitObjective() != other.hasExploitObjective()) return false;
6740  if (hasExploitObjective()) {
6741  if (getExploitObjective()
6742  != other.getExploitObjective()) return false;
6743  }
6744  if (hasProbingPeriodAtRoot() != other.hasProbingPeriodAtRoot()) return false;
6745  if (hasProbingPeriodAtRoot()) {
6747  != other.getProbingPeriodAtRoot()) return false;
6748  }
6749  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
6752  != other.getPseudoCostReliabilityThreshold()) return false;
6753  }
6754  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
6755  if (hasOptimizeWithCore()) {
6756  if (getOptimizeWithCore()
6757  != other.getOptimizeWithCore()) return false;
6758  }
6759  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
6762  != other.getBinarySearchNumConflicts()) return false;
6763  }
6764  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
6765  if (hasOptimizeWithMaxHs()) {
6766  if (getOptimizeWithMaxHs()
6767  != other.getOptimizeWithMaxHs()) return false;
6768  }
6769  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
6770  if (hasEnumerateAllSolutions()) {
6772  != other.getEnumerateAllSolutions()) return false;
6773  }
6774  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
6777  != other.getFillTightenedDomainsInResponse()) return false;
6778  }
6779  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
6782  != other.getInstantiateAllVariables()) return false;
6783  }
6784  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
6787  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
6788  }
6789  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
6790  if (hasStopAfterFirstSolution()) {
6792  != other.getStopAfterFirstSolution()) return false;
6793  }
6794  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
6795  if (hasNumSearchWorkers()) {
6796  if (getNumSearchWorkers()
6797  != other.getNumSearchWorkers()) return false;
6798  }
6799  if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
6800  if (hasInterleaveSearch()) {
6801  if (getInterleaveSearch()
6802  != other.getInterleaveSearch()) return false;
6803  }
6804  if (hasReduceMemoryUsageInInterleaveMode() != other.hasReduceMemoryUsageInInterleaveMode()) return false;
6807  != other.getReduceMemoryUsageInInterleaveMode()) return false;
6808  }
6809  if (hasDeterministicParallelSearch() != other.hasDeterministicParallelSearch()) return false;
6812  != other.getDeterministicParallelSearch()) return false;
6813  }
6814  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
6815  if (hasShareObjectiveBounds()) {
6817  != other.getShareObjectiveBounds()) return false;
6818  }
6819  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
6820  if (hasShareLevelZeroBounds()) {
6822  != other.getShareLevelZeroBounds()) return false;
6823  }
6824  if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
6825  if (hasUseLnsOnly()) {
6826  if (getUseLnsOnly()
6827  != other.getUseLnsOnly()) return false;
6828  }
6829  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
6832  != other.getLnsFocusOnDecisionVariables()) return false;
6833  }
6834  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
6835  if (hasUseRinsLns()) {
6836  if (getUseRinsLns()
6837  != other.getUseRinsLns()) return false;
6838  }
6839  if (hasDiversifyLnsParams() != other.hasDiversifyLnsParams()) return false;
6840  if (hasDiversifyLnsParams()) {
6841  if (getDiversifyLnsParams()
6842  != other.getDiversifyLnsParams()) return false;
6843  }
6844  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
6845  if (hasRandomizeSearch()) {
6846  if (getRandomizeSearch()
6847  != other.getRandomizeSearch()) return false;
6848  }
6849  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
6852  != other.getSearchRandomizationTolerance()) return false;
6853  }
6854  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
6855  if (hasUseOptionalVariables()) {
6857  != other.getUseOptionalVariables()) return false;
6858  }
6859  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
6860  if (hasUseExactLpReason()) {
6861  if (getUseExactLpReason()
6862  != other.getUseExactLpReason()) return false;
6863  }
6864  if (hasUseBranchingInLp() != other.hasUseBranchingInLp()) return false;
6865  if (hasUseBranchingInLp()) {
6866  if (getUseBranchingInLp()
6867  != other.getUseBranchingInLp()) return false;
6868  }
6869  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
6870  if (hasUseCombinedNoOverlap()) {
6872  != other.getUseCombinedNoOverlap()) return false;
6873  }
6874  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
6875  if (hasCatchSigintSignal()) {
6876  if (getCatchSigintSignal()
6877  != other.getCatchSigintSignal()) return false;
6878  }
6879  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
6880  if (hasMipMaxBound()) {
6881  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
6882  != java.lang.Double.doubleToLongBits(
6883  other.getMipMaxBound())) return false;
6884  }
6885  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
6886  if (hasMipVarScaling()) {
6887  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
6888  != java.lang.Double.doubleToLongBits(
6889  other.getMipVarScaling())) return false;
6890  }
6891  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
6892  if (hasMipWantedPrecision()) {
6893  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
6894  != java.lang.Double.doubleToLongBits(
6895  other.getMipWantedPrecision())) return false;
6896  }
6897  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
6898  if (hasMipMaxActivityExponent()) {
6900  != other.getMipMaxActivityExponent()) return false;
6901  }
6902  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
6903  if (hasMipCheckPrecision()) {
6904  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
6905  != java.lang.Double.doubleToLongBits(
6906  other.getMipCheckPrecision())) return false;
6907  }
6908  if (!unknownFields.equals(other.unknownFields)) return false;
6909  return true;
6910  }
6911 
6912  @java.lang.Override
6913  public int hashCode() {
6914  if (memoizedHashCode != 0) {
6915  return memoizedHashCode;
6916  }
6917  int hash = 41;
6918  hash = (19 * hash) + getDescriptor().hashCode();
6919  if (hasPreferredVariableOrder()) {
6920  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
6921  hash = (53 * hash) + preferredVariableOrder_;
6922  }
6923  if (hasInitialPolarity()) {
6924  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
6925  hash = (53 * hash) + initialPolarity_;
6926  }
6927  if (hasUsePhaseSaving()) {
6928  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
6929  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6930  getUsePhaseSaving());
6931  }
6932  if (hasRandomPolarityRatio()) {
6933  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
6934  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6935  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
6936  }
6937  if (hasRandomBranchesRatio()) {
6938  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
6939  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6940  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
6941  }
6942  if (hasUseErwaHeuristic()) {
6943  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
6944  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6946  }
6948  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
6949  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6950  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
6951  }
6954  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6956  }
6957  if (hasMinimizationAlgorithm()) {
6958  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6959  hash = (53 * hash) + minimizationAlgorithm_;
6960  }
6962  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6963  hash = (53 * hash) + binaryMinimizationAlgorithm_;
6964  }
6967  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6969  }
6970  if (hasClauseCleanupPeriod()) {
6971  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
6972  hash = (53 * hash) + getClauseCleanupPeriod();
6973  }
6974  if (hasClauseCleanupTarget()) {
6975  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
6976  hash = (53 * hash) + getClauseCleanupTarget();
6977  }
6979  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
6980  hash = (53 * hash) + clauseCleanupProtection_;
6981  }
6982  if (hasClauseCleanupLbdBound()) {
6983  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
6984  hash = (53 * hash) + getClauseCleanupLbdBound();
6985  }
6986  if (hasClauseCleanupOrdering()) {
6987  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
6988  hash = (53 * hash) + clauseCleanupOrdering_;
6989  }
6990  if (hasPbCleanupIncrement()) {
6991  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
6992  hash = (53 * hash) + getPbCleanupIncrement();
6993  }
6994  if (hasPbCleanupRatio()) {
6995  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
6996  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6997  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
6998  }
7001  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
7002  }
7005  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
7006  }
7007  if (hasVariableActivityDecay()) {
7008  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
7009  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7010  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
7011  }
7013  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
7014  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7015  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
7016  }
7017  if (hasGlucoseMaxDecay()) {
7018  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
7019  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7020  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
7021  }
7022  if (hasGlucoseDecayIncrement()) {
7023  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
7024  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7025  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
7026  }
7028  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
7029  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
7030  }
7031  if (hasClauseActivityDecay()) {
7032  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
7033  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7034  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
7035  }
7036  if (hasMaxClauseActivityValue()) {
7037  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
7038  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7039  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
7040  }
7041  if (getRestartAlgorithmsCount() > 0) {
7042  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
7043  hash = (53 * hash) + restartAlgorithms_.hashCode();
7044  }
7046  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
7047  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
7048  }
7049  if (hasRestartPeriod()) {
7050  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
7051  hash = (53 * hash) + getRestartPeriod();
7052  }
7054  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
7055  hash = (53 * hash) + getRestartRunningWindowSize();
7056  }
7057  if (hasRestartDlAverageRatio()) {
7058  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
7059  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7060  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
7061  }
7062  if (hasRestartLbdAverageRatio()) {
7063  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
7064  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7065  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
7066  }
7067  if (hasUseBlockingRestart()) {
7068  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
7069  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7071  }
7073  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
7074  hash = (53 * hash) + getBlockingRestartWindowSize();
7075  }
7077  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
7078  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7079  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
7080  }
7083  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
7084  }
7086  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
7087  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7088  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
7089  }
7090  if (hasMaxTimeInSeconds()) {
7091  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
7092  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7093  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
7094  }
7095  if (hasMaxDeterministicTime()) {
7096  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
7097  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7098  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
7099  }
7100  if (hasMaxNumberOfConflicts()) {
7101  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
7102  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7104  }
7105  if (hasMaxMemoryInMb()) {
7106  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
7107  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7108  getMaxMemoryInMb());
7109  }
7111  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
7112  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7114  }
7115  if (hasRandomSeed()) {
7116  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
7117  hash = (53 * hash) + getRandomSeed();
7118  }
7119  if (hasLogSearchProgress()) {
7120  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
7121  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7123  }
7124  if (hasUsePbResolution()) {
7125  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
7126  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7127  getUsePbResolution());
7128  }
7131  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7133  }
7135  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
7136  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7138  }
7139  if (hasPresolveBveThreshold()) {
7140  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
7141  hash = (53 * hash) + getPresolveBveThreshold();
7142  }
7144  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
7145  hash = (53 * hash) + getPresolveBveClauseWeight();
7146  }
7149  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7150  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
7151  }
7152  if (hasPresolveBlockedClause()) {
7153  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
7154  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7156  }
7157  if (hasPresolveUseBva()) {
7158  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
7159  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7160  getPresolveUseBva());
7161  }
7162  if (hasPresolveBvaThreshold()) {
7163  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
7164  hash = (53 * hash) + getPresolveBvaThreshold();
7165  }
7166  if (hasMaxPresolveIterations()) {
7167  hash = (37 * hash) + MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER;
7168  hash = (53 * hash) + getMaxPresolveIterations();
7169  }
7170  if (hasCpModelPresolve()) {
7171  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
7172  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7173  getCpModelPresolve());
7174  }
7175  if (hasCpModelProbingLevel()) {
7176  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
7177  hash = (53 * hash) + getCpModelProbingLevel();
7178  }
7179  if (hasCpModelUseSatPresolve()) {
7180  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
7181  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7183  }
7185  hash = (37 * hash) + EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER;
7186  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7188  }
7190  hash = (37 * hash) + EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER;
7191  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7193  }
7194  if (hasUseOptimizationHints()) {
7195  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
7196  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7198  }
7199  if (hasMinimizeCore()) {
7200  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
7201  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7202  getMinimizeCore());
7203  }
7204  if (hasFindMultipleCores()) {
7205  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
7206  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7208  }
7209  if (hasCoverOptimization()) {
7210  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
7211  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7213  }
7214  if (hasMaxSatAssumptionOrder()) {
7215  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
7216  hash = (53 * hash) + maxSatAssumptionOrder_;
7217  }
7219  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
7220  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7222  }
7223  if (hasMaxSatStratification()) {
7224  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
7225  hash = (53 * hash) + maxSatStratification_;
7226  }
7229  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7231  }
7234  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7236  }
7239  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7241  }
7244  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7246  }
7247  if (hasLinearizationLevel()) {
7248  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
7249  hash = (53 * hash) + getLinearizationLevel();
7250  }
7251  if (hasBooleanEncodingLevel()) {
7252  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
7253  hash = (53 * hash) + getBooleanEncodingLevel();
7254  }
7255  if (hasMaxNumCuts()) {
7256  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
7257  hash = (53 * hash) + getMaxNumCuts();
7258  }
7259  if (hasOnlyAddCutsAtLevelZero()) {
7260  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
7261  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7263  }
7264  if (hasAddKnapsackCuts()) {
7265  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
7266  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7267  getAddKnapsackCuts());
7268  }
7269  if (hasAddCgCuts()) {
7270  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
7271  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7272  getAddCgCuts());
7273  }
7274  if (hasAddMirCuts()) {
7275  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
7276  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7277  getAddMirCuts());
7278  }
7279  if (hasUseMirRounding()) {
7280  hash = (37 * hash) + USE_MIR_ROUNDING_FIELD_NUMBER;
7281  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7282  getUseMirRounding());
7283  }
7285  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
7286  hash = (53 * hash) + getMaxIntegerRoundingScaling();
7287  }
7288  if (hasAddLpConstraintsLazily()) {
7289  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
7290  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7292  }
7295  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7296  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
7297  }
7298  if (hasMaxInactiveCount()) {
7299  hash = (37 * hash) + MAX_INACTIVE_COUNT_FIELD_NUMBER;
7300  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7302  }
7304  hash = (37 * hash) + CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER;
7305  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7307  }
7308  if (hasSearchBranching()) {
7309  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
7310  hash = (53 * hash) + searchBranching_;
7311  }
7313  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
7314  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7316  }
7317  if (hasExploitAllLpSolution()) {
7318  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
7319  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7321  }
7322  if (hasExploitBestSolution()) {
7323  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
7324  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7326  }
7327  if (hasExploitObjective()) {
7328  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
7329  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7331  }
7332  if (hasProbingPeriodAtRoot()) {
7333  hash = (37 * hash) + PROBING_PERIOD_AT_ROOT_FIELD_NUMBER;
7334  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7336  }
7339  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7341  }
7342  if (hasOptimizeWithCore()) {
7343  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
7344  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7346  }
7348  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
7349  hash = (53 * hash) + getBinarySearchNumConflicts();
7350  }
7351  if (hasOptimizeWithMaxHs()) {
7352  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
7353  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7355  }
7356  if (hasEnumerateAllSolutions()) {
7357  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
7358  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7360  }
7363  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7365  }
7367  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
7368  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7370  }
7373  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7375  }
7376  if (hasStopAfterFirstSolution()) {
7377  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
7378  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7380  }
7381  if (hasNumSearchWorkers()) {
7382  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
7383  hash = (53 * hash) + getNumSearchWorkers();
7384  }
7385  if (hasInterleaveSearch()) {
7386  hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
7387  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7389  }
7392  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7394  }
7396  hash = (37 * hash) + DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER;
7397  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7399  }
7400  if (hasShareObjectiveBounds()) {
7401  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
7402  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7404  }
7405  if (hasShareLevelZeroBounds()) {
7406  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
7407  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7409  }
7410  if (hasUseLnsOnly()) {
7411  hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
7412  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7413  getUseLnsOnly());
7414  }
7416  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
7417  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7419  }
7420  if (hasUseRinsLns()) {
7421  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
7422  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7423  getUseRinsLns());
7424  }
7425  if (hasDiversifyLnsParams()) {
7426  hash = (37 * hash) + DIVERSIFY_LNS_PARAMS_FIELD_NUMBER;
7427  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7429  }
7430  if (hasRandomizeSearch()) {
7431  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
7432  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7433  getRandomizeSearch());
7434  }
7436  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
7437  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7439  }
7440  if (hasUseOptionalVariables()) {
7441  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
7442  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7444  }
7445  if (hasUseExactLpReason()) {
7446  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
7447  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7449  }
7450  if (hasUseBranchingInLp()) {
7451  hash = (37 * hash) + USE_BRANCHING_IN_LP_FIELD_NUMBER;
7452  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7454  }
7455  if (hasUseCombinedNoOverlap()) {
7456  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
7457  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7459  }
7460  if (hasCatchSigintSignal()) {
7461  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
7462  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7464  }
7465  if (hasMipMaxBound()) {
7466  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
7467  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7468  java.lang.Double.doubleToLongBits(getMipMaxBound()));
7469  }
7470  if (hasMipVarScaling()) {
7471  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
7472  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7473  java.lang.Double.doubleToLongBits(getMipVarScaling()));
7474  }
7475  if (hasMipWantedPrecision()) {
7476  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
7477  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7478  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
7479  }
7480  if (hasMipMaxActivityExponent()) {
7481  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
7482  hash = (53 * hash) + getMipMaxActivityExponent();
7483  }
7484  if (hasMipCheckPrecision()) {
7485  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
7486  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7487  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
7488  }
7489  hash = (29 * hash) + unknownFields.hashCode();
7490  memoizedHashCode = hash;
7491  return hash;
7492  }
7493 
7495  java.nio.ByteBuffer data)
7496  throws com.google.protobuf.InvalidProtocolBufferException {
7497  return PARSER.parseFrom(data);
7498  }
7500  java.nio.ByteBuffer data,
7501  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7502  throws com.google.protobuf.InvalidProtocolBufferException {
7503  return PARSER.parseFrom(data, extensionRegistry);
7504  }
7506  com.google.protobuf.ByteString data)
7507  throws com.google.protobuf.InvalidProtocolBufferException {
7508  return PARSER.parseFrom(data);
7509  }
7511  com.google.protobuf.ByteString data,
7512  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7513  throws com.google.protobuf.InvalidProtocolBufferException {
7514  return PARSER.parseFrom(data, extensionRegistry);
7515  }
7516  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
7517  throws com.google.protobuf.InvalidProtocolBufferException {
7518  return PARSER.parseFrom(data);
7519  }
7521  byte[] data,
7522  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7523  throws com.google.protobuf.InvalidProtocolBufferException {
7524  return PARSER.parseFrom(data, extensionRegistry);
7525  }
7526  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
7527  throws java.io.IOException {
7528  return com.google.protobuf.GeneratedMessageV3
7529  .parseWithIOException(PARSER, input);
7530  }
7532  java.io.InputStream input,
7533  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7534  throws java.io.IOException {
7535  return com.google.protobuf.GeneratedMessageV3
7536  .parseWithIOException(PARSER, input, extensionRegistry);
7537  }
7538  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
7539  throws java.io.IOException {
7540  return com.google.protobuf.GeneratedMessageV3
7541  .parseDelimitedWithIOException(PARSER, input);
7542  }
7544  java.io.InputStream input,
7545  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7546  throws java.io.IOException {
7547  return com.google.protobuf.GeneratedMessageV3
7548  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7549  }
7551  com.google.protobuf.CodedInputStream input)
7552  throws java.io.IOException {
7553  return com.google.protobuf.GeneratedMessageV3
7554  .parseWithIOException(PARSER, input);
7555  }
7557  com.google.protobuf.CodedInputStream input,
7558  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7559  throws java.io.IOException {
7560  return com.google.protobuf.GeneratedMessageV3
7561  .parseWithIOException(PARSER, input, extensionRegistry);
7562  }
7563 
7564  @java.lang.Override
7565  public Builder newBuilderForType() { return newBuilder(); }
7566  public static Builder newBuilder() {
7567  return DEFAULT_INSTANCE.toBuilder();
7568  }
7569  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
7570  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7571  }
7572  @java.lang.Override
7573  public Builder toBuilder() {
7574  return this == DEFAULT_INSTANCE
7575  ? new Builder() : new Builder().mergeFrom(this);
7576  }
7577 
7578  @java.lang.Override
7580  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7581  Builder builder = new Builder(parent);
7582  return builder;
7583  }
7593  public static final class Builder extends
7594  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7595  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
7596  com.google.ortools.sat.SatParametersOrBuilder {
7597  public static final com.google.protobuf.Descriptors.Descriptor
7599  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7600  }
7601 
7602  @java.lang.Override
7603  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7605  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
7606  .ensureFieldAccessorsInitialized(
7608  }
7609 
7610  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
7611  private Builder() {
7612  maybeForceBuilderInitialization();
7613  }
7614 
7615  private Builder(
7616  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7617  super(parent);
7618  maybeForceBuilderInitialization();
7619  }
7620  private void maybeForceBuilderInitialization() {
7621  if (com.google.protobuf.GeneratedMessageV3
7622  .alwaysUseFieldBuilders) {
7623  }
7624  }
7625  @java.lang.Override
7626  public Builder clear() {
7627  super.clear();
7628  preferredVariableOrder_ = 0;
7629  bitField0_ = (bitField0_ & ~0x00000001);
7630  initialPolarity_ = 1;
7631  bitField0_ = (bitField0_ & ~0x00000002);
7632  usePhaseSaving_ = true;
7633  bitField0_ = (bitField0_ & ~0x00000004);
7634  randomPolarityRatio_ = 0D;
7635  bitField0_ = (bitField0_ & ~0x00000008);
7636  randomBranchesRatio_ = 0D;
7637  bitField0_ = (bitField0_ & ~0x00000010);
7638  useErwaHeuristic_ = false;
7639  bitField0_ = (bitField0_ & ~0x00000020);
7640  initialVariablesActivity_ = 0D;
7641  bitField0_ = (bitField0_ & ~0x00000040);
7642  alsoBumpVariablesInConflictReasons_ = false;
7643  bitField0_ = (bitField0_ & ~0x00000080);
7644  minimizationAlgorithm_ = 2;
7645  bitField0_ = (bitField0_ & ~0x00000100);
7646  binaryMinimizationAlgorithm_ = 1;
7647  bitField0_ = (bitField0_ & ~0x00000200);
7648  subsumptionDuringConflictAnalysis_ = true;
7649  bitField0_ = (bitField0_ & ~0x00000400);
7650  clauseCleanupPeriod_ = 10000;
7651  bitField0_ = (bitField0_ & ~0x00000800);
7652  clauseCleanupTarget_ = 10000;
7653  bitField0_ = (bitField0_ & ~0x00001000);
7654  clauseCleanupProtection_ = 0;
7655  bitField0_ = (bitField0_ & ~0x00002000);
7656  clauseCleanupLbdBound_ = 5;
7657  bitField0_ = (bitField0_ & ~0x00004000);
7658  clauseCleanupOrdering_ = 0;
7659  bitField0_ = (bitField0_ & ~0x00008000);
7660  pbCleanupIncrement_ = 200;
7661  bitField0_ = (bitField0_ & ~0x00010000);
7662  pbCleanupRatio_ = 0.5D;
7663  bitField0_ = (bitField0_ & ~0x00020000);
7664  minimizeWithPropagationRestartPeriod_ = 10;
7665  bitField0_ = (bitField0_ & ~0x00040000);
7666  minimizeWithPropagationNumDecisions_ = 1000;
7667  bitField0_ = (bitField0_ & ~0x00080000);
7668  variableActivityDecay_ = 0.8D;
7669  bitField0_ = (bitField0_ & ~0x00100000);
7670  maxVariableActivityValue_ = 1e+100D;
7671  bitField0_ = (bitField0_ & ~0x00200000);
7672  glucoseMaxDecay_ = 0.95D;
7673  bitField0_ = (bitField0_ & ~0x00400000);
7674  glucoseDecayIncrement_ = 0.01D;
7675  bitField0_ = (bitField0_ & ~0x00800000);
7676  glucoseDecayIncrementPeriod_ = 5000;
7677  bitField0_ = (bitField0_ & ~0x01000000);
7678  clauseActivityDecay_ = 0.999D;
7679  bitField0_ = (bitField0_ & ~0x02000000);
7680  maxClauseActivityValue_ = 1e+20D;
7681  bitField0_ = (bitField0_ & ~0x04000000);
7682  restartAlgorithms_ = java.util.Collections.emptyList();
7683  bitField0_ = (bitField0_ & ~0x08000000);
7684  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
7685  bitField0_ = (bitField0_ & ~0x10000000);
7686  restartPeriod_ = 50;
7687  bitField0_ = (bitField0_ & ~0x20000000);
7688  restartRunningWindowSize_ = 50;
7689  bitField0_ = (bitField0_ & ~0x40000000);
7690  restartDlAverageRatio_ = 1D;
7691  bitField0_ = (bitField0_ & ~0x80000000);
7692  restartLbdAverageRatio_ = 1D;
7693  bitField1_ = (bitField1_ & ~0x00000001);
7694  useBlockingRestart_ = false;
7695  bitField1_ = (bitField1_ & ~0x00000002);
7696  blockingRestartWindowSize_ = 5000;
7697  bitField1_ = (bitField1_ & ~0x00000004);
7698  blockingRestartMultiplier_ = 1.4D;
7699  bitField1_ = (bitField1_ & ~0x00000008);
7700  numConflictsBeforeStrategyChanges_ = 0;
7701  bitField1_ = (bitField1_ & ~0x00000010);
7702  strategyChangeIncreaseRatio_ = 0D;
7703  bitField1_ = (bitField1_ & ~0x00000020);
7704  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
7705  bitField1_ = (bitField1_ & ~0x00000040);
7706  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
7707  bitField1_ = (bitField1_ & ~0x00000080);
7708  maxNumberOfConflicts_ = 9223372036854775807L;
7709  bitField1_ = (bitField1_ & ~0x00000100);
7710  maxMemoryInMb_ = 10000L;
7711  bitField1_ = (bitField1_ & ~0x00000200);
7712  treatBinaryClausesSeparately_ = true;
7713  bitField1_ = (bitField1_ & ~0x00000400);
7714  randomSeed_ = 1;
7715  bitField1_ = (bitField1_ & ~0x00000800);
7716  logSearchProgress_ = false;
7717  bitField1_ = (bitField1_ & ~0x00001000);
7718  usePbResolution_ = false;
7719  bitField1_ = (bitField1_ & ~0x00002000);
7720  minimizeReductionDuringPbResolution_ = false;
7721  bitField1_ = (bitField1_ & ~0x00004000);
7722  countAssumptionLevelsInLbd_ = true;
7723  bitField1_ = (bitField1_ & ~0x00008000);
7724  presolveBveThreshold_ = 500;
7725  bitField1_ = (bitField1_ & ~0x00010000);
7726  presolveBveClauseWeight_ = 3;
7727  bitField1_ = (bitField1_ & ~0x00020000);
7728  presolveProbingDeterministicTimeLimit_ = 30D;
7729  bitField1_ = (bitField1_ & ~0x00040000);
7730  presolveBlockedClause_ = true;
7731  bitField1_ = (bitField1_ & ~0x00080000);
7732  presolveUseBva_ = true;
7733  bitField1_ = (bitField1_ & ~0x00100000);
7734  presolveBvaThreshold_ = 1;
7735  bitField1_ = (bitField1_ & ~0x00200000);
7736  maxPresolveIterations_ = 3;
7737  bitField1_ = (bitField1_ & ~0x00400000);
7738  cpModelPresolve_ = true;
7739  bitField1_ = (bitField1_ & ~0x00800000);
7740  cpModelProbingLevel_ = 2;
7741  bitField1_ = (bitField1_ & ~0x01000000);
7742  cpModelUseSatPresolve_ = true;
7743  bitField1_ = (bitField1_ & ~0x02000000);
7744  expandElementConstraints_ = true;
7745  bitField1_ = (bitField1_ & ~0x04000000);
7746  expandAutomatonConstraints_ = true;
7747  bitField1_ = (bitField1_ & ~0x08000000);
7748  useOptimizationHints_ = true;
7749  bitField1_ = (bitField1_ & ~0x10000000);
7750  minimizeCore_ = true;
7751  bitField1_ = (bitField1_ & ~0x20000000);
7752  findMultipleCores_ = true;
7753  bitField1_ = (bitField1_ & ~0x40000000);
7754  coverOptimization_ = true;
7755  bitField1_ = (bitField1_ & ~0x80000000);
7756  maxSatAssumptionOrder_ = 0;
7757  bitField2_ = (bitField2_ & ~0x00000001);
7758  maxSatReverseAssumptionOrder_ = false;
7759  bitField2_ = (bitField2_ & ~0x00000002);
7760  maxSatStratification_ = 1;
7761  bitField2_ = (bitField2_ & ~0x00000004);
7762  usePrecedencesInDisjunctiveConstraint_ = true;
7763  bitField2_ = (bitField2_ & ~0x00000008);
7764  useOverloadCheckerInCumulativeConstraint_ = false;
7765  bitField2_ = (bitField2_ & ~0x00000010);
7766  useTimetableEdgeFindingInCumulativeConstraint_ = false;
7767  bitField2_ = (bitField2_ & ~0x00000020);
7768  useDisjunctiveConstraintInCumulativeConstraint_ = true;
7769  bitField2_ = (bitField2_ & ~0x00000040);
7770  linearizationLevel_ = 1;
7771  bitField2_ = (bitField2_ & ~0x00000080);
7772  booleanEncodingLevel_ = 1;
7773  bitField2_ = (bitField2_ & ~0x00000100);
7774  maxNumCuts_ = 5000;
7775  bitField2_ = (bitField2_ & ~0x00000200);
7776  onlyAddCutsAtLevelZero_ = false;
7777  bitField2_ = (bitField2_ & ~0x00000400);
7778  addKnapsackCuts_ = false;
7779  bitField2_ = (bitField2_ & ~0x00000800);
7780  addCgCuts_ = false;
7781  bitField2_ = (bitField2_ & ~0x00001000);
7782  addMirCuts_ = true;
7783  bitField2_ = (bitField2_ & ~0x00002000);
7784  useMirRounding_ = true;
7785  bitField2_ = (bitField2_ & ~0x00004000);
7786  maxIntegerRoundingScaling_ = 600;
7787  bitField2_ = (bitField2_ & ~0x00008000);
7788  addLpConstraintsLazily_ = true;
7789  bitField2_ = (bitField2_ & ~0x00010000);
7790  minOrthogonalityForLpConstraints_ = 0D;
7791  bitField2_ = (bitField2_ & ~0x00020000);
7792  maxInactiveCount_ = 1000L;
7793  bitField2_ = (bitField2_ & ~0x00040000);
7794  constraintRemovalBatchSize_ = 100L;
7795  bitField2_ = (bitField2_ & ~0x00080000);
7796  searchBranching_ = 0;
7797  bitField2_ = (bitField2_ & ~0x00100000);
7798  exploitIntegerLpSolution_ = true;
7799  bitField2_ = (bitField2_ & ~0x00200000);
7800  exploitAllLpSolution_ = true;
7801  bitField2_ = (bitField2_ & ~0x00400000);
7802  exploitBestSolution_ = false;
7803  bitField2_ = (bitField2_ & ~0x00800000);
7804  exploitObjective_ = true;
7805  bitField2_ = (bitField2_ & ~0x01000000);
7806  probingPeriodAtRoot_ = 0L;
7807  bitField2_ = (bitField2_ & ~0x02000000);
7808  pseudoCostReliabilityThreshold_ = 100L;
7809  bitField2_ = (bitField2_ & ~0x04000000);
7810  optimizeWithCore_ = false;
7811  bitField2_ = (bitField2_ & ~0x08000000);
7812  binarySearchNumConflicts_ = -1;
7813  bitField2_ = (bitField2_ & ~0x10000000);
7814  optimizeWithMaxHs_ = false;
7815  bitField2_ = (bitField2_ & ~0x20000000);
7816  enumerateAllSolutions_ = false;
7817  bitField2_ = (bitField2_ & ~0x40000000);
7818  fillTightenedDomainsInResponse_ = false;
7819  bitField2_ = (bitField2_ & ~0x80000000);
7820  instantiateAllVariables_ = true;
7821  bitField3_ = (bitField3_ & ~0x00000001);
7822  autoDetectGreaterThanAtLeastOneOf_ = true;
7823  bitField3_ = (bitField3_ & ~0x00000002);
7824  stopAfterFirstSolution_ = false;
7825  bitField3_ = (bitField3_ & ~0x00000004);
7826  numSearchWorkers_ = 1;
7827  bitField3_ = (bitField3_ & ~0x00000008);
7828  interleaveSearch_ = false;
7829  bitField3_ = (bitField3_ & ~0x00000010);
7830  reduceMemoryUsageInInterleaveMode_ = true;
7831  bitField3_ = (bitField3_ & ~0x00000020);
7832  deterministicParallelSearch_ = false;
7833  bitField3_ = (bitField3_ & ~0x00000040);
7834  shareObjectiveBounds_ = true;
7835  bitField3_ = (bitField3_ & ~0x00000080);
7836  shareLevelZeroBounds_ = true;
7837  bitField3_ = (bitField3_ & ~0x00000100);
7838  useLnsOnly_ = false;
7839  bitField3_ = (bitField3_ & ~0x00000200);
7840  lnsFocusOnDecisionVariables_ = false;
7841  bitField3_ = (bitField3_ & ~0x00000400);
7842  useRinsLns_ = true;
7843  bitField3_ = (bitField3_ & ~0x00000800);
7844  diversifyLnsParams_ = false;
7845  bitField3_ = (bitField3_ & ~0x00001000);
7846  randomizeSearch_ = false;
7847  bitField3_ = (bitField3_ & ~0x00002000);
7848  searchRandomizationTolerance_ = 0L;
7849  bitField3_ = (bitField3_ & ~0x00004000);
7850  useOptionalVariables_ = true;
7851  bitField3_ = (bitField3_ & ~0x00008000);
7852  useExactLpReason_ = true;
7853  bitField3_ = (bitField3_ & ~0x00010000);
7854  useBranchingInLp_ = false;
7855  bitField3_ = (bitField3_ & ~0x00020000);
7856  useCombinedNoOverlap_ = false;
7857  bitField3_ = (bitField3_ & ~0x00040000);
7858  catchSigintSignal_ = true;
7859  bitField3_ = (bitField3_ & ~0x00080000);
7860  mipMaxBound_ = 10000000D;
7861  bitField3_ = (bitField3_ & ~0x00100000);
7862  mipVarScaling_ = 1D;
7863  bitField3_ = (bitField3_ & ~0x00200000);
7864  mipWantedPrecision_ = 1e-06D;
7865  bitField3_ = (bitField3_ & ~0x00400000);
7866  mipMaxActivityExponent_ = 53;
7867  bitField3_ = (bitField3_ & ~0x00800000);
7868  mipCheckPrecision_ = 0.0001D;
7869  bitField3_ = (bitField3_ & ~0x01000000);
7870  return this;
7871  }
7872 
7873  @java.lang.Override
7874  public com.google.protobuf.Descriptors.Descriptor
7876  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7877  }
7878 
7879  @java.lang.Override
7882  }
7883 
7884  @java.lang.Override
7887  if (!result.isInitialized()) {
7888  throw newUninitializedMessageException(result);
7889  }
7890  return result;
7891  }
7892 
7893  @java.lang.Override
7896  int from_bitField0_ = bitField0_;
7897  int from_bitField1_ = bitField1_;
7898  int from_bitField2_ = bitField2_;
7899  int from_bitField3_ = bitField3_;
7900  int to_bitField0_ = 0;
7901  int to_bitField1_ = 0;
7902  int to_bitField2_ = 0;
7903  int to_bitField3_ = 0;
7904  if (((from_bitField0_ & 0x00000001) != 0)) {
7905  to_bitField0_ |= 0x00000001;
7906  }
7907  result.preferredVariableOrder_ = preferredVariableOrder_;
7908  if (((from_bitField0_ & 0x00000002) != 0)) {
7909  to_bitField0_ |= 0x00000002;
7910  }
7911  result.initialPolarity_ = initialPolarity_;
7912  if (((from_bitField0_ & 0x00000004) != 0)) {
7913  to_bitField0_ |= 0x00000004;
7914  }
7915  result.usePhaseSaving_ = usePhaseSaving_;
7916  if (((from_bitField0_ & 0x00000008) != 0)) {
7917  result.randomPolarityRatio_ = randomPolarityRatio_;
7918  to_bitField0_ |= 0x00000008;
7919  }
7920  if (((from_bitField0_ & 0x00000010) != 0)) {
7921  result.randomBranchesRatio_ = randomBranchesRatio_;
7922  to_bitField0_ |= 0x00000010;
7923  }
7924  if (((from_bitField0_ & 0x00000020) != 0)) {
7925  result.useErwaHeuristic_ = useErwaHeuristic_;
7926  to_bitField0_ |= 0x00000020;
7927  }
7928  if (((from_bitField0_ & 0x00000040) != 0)) {
7929  result.initialVariablesActivity_ = initialVariablesActivity_;
7930  to_bitField0_ |= 0x00000040;
7931  }
7932  if (((from_bitField0_ & 0x00000080) != 0)) {
7933  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
7934  to_bitField0_ |= 0x00000080;
7935  }
7936  if (((from_bitField0_ & 0x00000100) != 0)) {
7937  to_bitField0_ |= 0x00000100;
7938  }
7939  result.minimizationAlgorithm_ = minimizationAlgorithm_;
7940  if (((from_bitField0_ & 0x00000200) != 0)) {
7941  to_bitField0_ |= 0x00000200;
7942  }
7943  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
7944  if (((from_bitField0_ & 0x00000400) != 0)) {
7945  to_bitField0_ |= 0x00000400;
7946  }
7947  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
7948  if (((from_bitField0_ & 0x00000800) != 0)) {
7949  to_bitField0_ |= 0x00000800;
7950  }
7951  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
7952  if (((from_bitField0_ & 0x00001000) != 0)) {
7953  to_bitField0_ |= 0x00001000;
7954  }
7955  result.clauseCleanupTarget_ = clauseCleanupTarget_;
7956  if (((from_bitField0_ & 0x00002000) != 0)) {
7957  to_bitField0_ |= 0x00002000;
7958  }
7959  result.clauseCleanupProtection_ = clauseCleanupProtection_;
7960  if (((from_bitField0_ & 0x00004000) != 0)) {
7961  to_bitField0_ |= 0x00004000;
7962  }
7963  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
7964  if (((from_bitField0_ & 0x00008000) != 0)) {
7965  to_bitField0_ |= 0x00008000;
7966  }
7967  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
7968  if (((from_bitField0_ & 0x00010000) != 0)) {
7969  to_bitField0_ |= 0x00010000;
7970  }
7971  result.pbCleanupIncrement_ = pbCleanupIncrement_;
7972  if (((from_bitField0_ & 0x00020000) != 0)) {
7973  to_bitField0_ |= 0x00020000;
7974  }
7975  result.pbCleanupRatio_ = pbCleanupRatio_;
7976  if (((from_bitField0_ & 0x00040000) != 0)) {
7977  to_bitField0_ |= 0x00040000;
7978  }
7979  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
7980  if (((from_bitField0_ & 0x00080000) != 0)) {
7981  to_bitField0_ |= 0x00080000;
7982  }
7983  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
7984  if (((from_bitField0_ & 0x00100000) != 0)) {
7985  to_bitField0_ |= 0x00100000;
7986  }
7987  result.variableActivityDecay_ = variableActivityDecay_;
7988  if (((from_bitField0_ & 0x00200000) != 0)) {
7989  to_bitField0_ |= 0x00200000;
7990  }
7991  result.maxVariableActivityValue_ = maxVariableActivityValue_;
7992  if (((from_bitField0_ & 0x00400000) != 0)) {
7993  to_bitField0_ |= 0x00400000;
7994  }
7995  result.glucoseMaxDecay_ = glucoseMaxDecay_;
7996  if (((from_bitField0_ & 0x00800000) != 0)) {
7997  to_bitField0_ |= 0x00800000;
7998  }
7999  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
8000  if (((from_bitField0_ & 0x01000000) != 0)) {
8001  to_bitField0_ |= 0x01000000;
8002  }
8003  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
8004  if (((from_bitField0_ & 0x02000000) != 0)) {
8005  to_bitField0_ |= 0x02000000;
8006  }
8007  result.clauseActivityDecay_ = clauseActivityDecay_;
8008  if (((from_bitField0_ & 0x04000000) != 0)) {
8009  to_bitField0_ |= 0x04000000;
8010  }
8011  result.maxClauseActivityValue_ = maxClauseActivityValue_;
8012  if (((bitField0_ & 0x08000000) != 0)) {
8013  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
8014  bitField0_ = (bitField0_ & ~0x08000000);
8015  }
8016  result.restartAlgorithms_ = restartAlgorithms_;
8017  if (((from_bitField0_ & 0x10000000) != 0)) {
8018  to_bitField0_ |= 0x08000000;
8019  }
8020  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
8021  if (((from_bitField0_ & 0x20000000) != 0)) {
8022  to_bitField0_ |= 0x10000000;
8023  }
8024  result.restartPeriod_ = restartPeriod_;
8025  if (((from_bitField0_ & 0x40000000) != 0)) {
8026  to_bitField0_ |= 0x20000000;
8027  }
8028  result.restartRunningWindowSize_ = restartRunningWindowSize_;
8029  if (((from_bitField0_ & 0x80000000) != 0)) {
8030  to_bitField0_ |= 0x40000000;
8031  }
8032  result.restartDlAverageRatio_ = restartDlAverageRatio_;
8033  if (((from_bitField1_ & 0x00000001) != 0)) {
8034  to_bitField0_ |= 0x80000000;
8035  }
8036  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
8037  if (((from_bitField1_ & 0x00000002) != 0)) {
8038  result.useBlockingRestart_ = useBlockingRestart_;
8039  to_bitField1_ |= 0x00000001;
8040  }
8041  if (((from_bitField1_ & 0x00000004) != 0)) {
8042  to_bitField1_ |= 0x00000002;
8043  }
8044  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
8045  if (((from_bitField1_ & 0x00000008) != 0)) {
8046  to_bitField1_ |= 0x00000004;
8047  }
8048  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
8049  if (((from_bitField1_ & 0x00000010) != 0)) {
8050  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
8051  to_bitField1_ |= 0x00000008;
8052  }
8053  if (((from_bitField1_ & 0x00000020) != 0)) {
8054  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
8055  to_bitField1_ |= 0x00000010;
8056  }
8057  if (((from_bitField1_ & 0x00000040) != 0)) {
8058  to_bitField1_ |= 0x00000020;
8059  }
8060  result.maxTimeInSeconds_ = maxTimeInSeconds_;
8061  if (((from_bitField1_ & 0x00000080) != 0)) {
8062  to_bitField1_ |= 0x00000040;
8063  }
8064  result.maxDeterministicTime_ = maxDeterministicTime_;
8065  if (((from_bitField1_ & 0x00000100) != 0)) {
8066  to_bitField1_ |= 0x00000080;
8067  }
8068  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
8069  if (((from_bitField1_ & 0x00000200) != 0)) {
8070  to_bitField1_ |= 0x00000100;
8071  }
8072  result.maxMemoryInMb_ = maxMemoryInMb_;
8073  if (((from_bitField1_ & 0x00000400) != 0)) {
8074  to_bitField1_ |= 0x00000200;
8075  }
8076  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
8077  if (((from_bitField1_ & 0x00000800) != 0)) {
8078  to_bitField1_ |= 0x00000400;
8079  }
8080  result.randomSeed_ = randomSeed_;
8081  if (((from_bitField1_ & 0x00001000) != 0)) {
8082  result.logSearchProgress_ = logSearchProgress_;
8083  to_bitField1_ |= 0x00000800;
8084  }
8085  if (((from_bitField1_ & 0x00002000) != 0)) {
8086  result.usePbResolution_ = usePbResolution_;
8087  to_bitField1_ |= 0x00001000;
8088  }
8089  if (((from_bitField1_ & 0x00004000) != 0)) {
8090  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
8091  to_bitField1_ |= 0x00002000;
8092  }
8093  if (((from_bitField1_ & 0x00008000) != 0)) {
8094  to_bitField1_ |= 0x00004000;
8095  }
8096  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
8097  if (((from_bitField1_ & 0x00010000) != 0)) {
8098  to_bitField1_ |= 0x00008000;
8099  }
8100  result.presolveBveThreshold_ = presolveBveThreshold_;
8101  if (((from_bitField1_ & 0x00020000) != 0)) {
8102  to_bitField1_ |= 0x00010000;
8103  }
8104  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
8105  if (((from_bitField1_ & 0x00040000) != 0)) {
8106  to_bitField1_ |= 0x00020000;
8107  }
8108  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
8109  if (((from_bitField1_ & 0x00080000) != 0)) {
8110  to_bitField1_ |= 0x00040000;
8111  }
8112  result.presolveBlockedClause_ = presolveBlockedClause_;
8113  if (((from_bitField1_ & 0x00100000) != 0)) {
8114  to_bitField1_ |= 0x00080000;
8115  }
8116  result.presolveUseBva_ = presolveUseBva_;
8117  if (((from_bitField1_ & 0x00200000) != 0)) {
8118  to_bitField1_ |= 0x00100000;
8119  }
8120  result.presolveBvaThreshold_ = presolveBvaThreshold_;
8121  if (((from_bitField1_ & 0x00400000) != 0)) {
8122  to_bitField1_ |= 0x00200000;
8123  }
8124  result.maxPresolveIterations_ = maxPresolveIterations_;
8125  if (((from_bitField1_ & 0x00800000) != 0)) {
8126  to_bitField1_ |= 0x00400000;
8127  }
8128  result.cpModelPresolve_ = cpModelPresolve_;
8129  if (((from_bitField1_ & 0x01000000) != 0)) {
8130  to_bitField1_ |= 0x00800000;
8131  }
8132  result.cpModelProbingLevel_ = cpModelProbingLevel_;
8133  if (((from_bitField1_ & 0x02000000) != 0)) {
8134  to_bitField1_ |= 0x01000000;
8135  }
8136  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
8137  if (((from_bitField1_ & 0x04000000) != 0)) {
8138  to_bitField1_ |= 0x02000000;
8139  }
8140  result.expandElementConstraints_ = expandElementConstraints_;
8141  if (((from_bitField1_ & 0x08000000) != 0)) {
8142  to_bitField1_ |= 0x04000000;
8143  }
8144  result.expandAutomatonConstraints_ = expandAutomatonConstraints_;
8145  if (((from_bitField1_ & 0x10000000) != 0)) {
8146  to_bitField1_ |= 0x08000000;
8147  }
8148  result.useOptimizationHints_ = useOptimizationHints_;
8149  if (((from_bitField1_ & 0x20000000) != 0)) {
8150  to_bitField1_ |= 0x10000000;
8151  }
8152  result.minimizeCore_ = minimizeCore_;
8153  if (((from_bitField1_ & 0x40000000) != 0)) {
8154  to_bitField1_ |= 0x20000000;
8155  }
8156  result.findMultipleCores_ = findMultipleCores_;
8157  if (((from_bitField1_ & 0x80000000) != 0)) {
8158  to_bitField1_ |= 0x40000000;
8159  }
8160  result.coverOptimization_ = coverOptimization_;
8161  if (((from_bitField2_ & 0x00000001) != 0)) {
8162  to_bitField1_ |= 0x80000000;
8163  }
8164  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
8165  if (((from_bitField2_ & 0x00000002) != 0)) {
8166  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
8167  to_bitField2_ |= 0x00000001;
8168  }
8169  if (((from_bitField2_ & 0x00000004) != 0)) {
8170  to_bitField2_ |= 0x00000002;
8171  }
8172  result.maxSatStratification_ = maxSatStratification_;
8173  if (((from_bitField2_ & 0x00000008) != 0)) {
8174  to_bitField2_ |= 0x00000004;
8175  }
8176  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
8177  if (((from_bitField2_ & 0x00000010) != 0)) {
8178  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
8179  to_bitField2_ |= 0x00000008;
8180  }
8181  if (((from_bitField2_ & 0x00000020) != 0)) {
8182  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
8183  to_bitField2_ |= 0x00000010;
8184  }
8185  if (((from_bitField2_ & 0x00000040) != 0)) {
8186  to_bitField2_ |= 0x00000020;
8187  }
8188  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
8189  if (((from_bitField2_ & 0x00000080) != 0)) {
8190  to_bitField2_ |= 0x00000040;
8191  }
8192  result.linearizationLevel_ = linearizationLevel_;
8193  if (((from_bitField2_ & 0x00000100) != 0)) {
8194  to_bitField2_ |= 0x00000080;
8195  }
8196  result.booleanEncodingLevel_ = booleanEncodingLevel_;
8197  if (((from_bitField2_ & 0x00000200) != 0)) {
8198  to_bitField2_ |= 0x00000100;
8199  }
8200  result.maxNumCuts_ = maxNumCuts_;
8201  if (((from_bitField2_ & 0x00000400) != 0)) {
8202  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
8203  to_bitField2_ |= 0x00000200;
8204  }
8205  if (((from_bitField2_ & 0x00000800) != 0)) {
8206  result.addKnapsackCuts_ = addKnapsackCuts_;
8207  to_bitField2_ |= 0x00000400;
8208  }
8209  if (((from_bitField2_ & 0x00001000) != 0)) {
8210  result.addCgCuts_ = addCgCuts_;
8211  to_bitField2_ |= 0x00000800;
8212  }
8213  if (((from_bitField2_ & 0x00002000) != 0)) {
8214  to_bitField2_ |= 0x00001000;
8215  }
8216  result.addMirCuts_ = addMirCuts_;
8217  if (((from_bitField2_ & 0x00004000) != 0)) {
8218  to_bitField2_ |= 0x00002000;
8219  }
8220  result.useMirRounding_ = useMirRounding_;
8221  if (((from_bitField2_ & 0x00008000) != 0)) {
8222  to_bitField2_ |= 0x00004000;
8223  }
8224  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
8225  if (((from_bitField2_ & 0x00010000) != 0)) {
8226  to_bitField2_ |= 0x00008000;
8227  }
8228  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
8229  if (((from_bitField2_ & 0x00020000) != 0)) {
8230  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
8231  to_bitField2_ |= 0x00010000;
8232  }
8233  if (((from_bitField2_ & 0x00040000) != 0)) {
8234  to_bitField2_ |= 0x00020000;
8235  }
8236  result.maxInactiveCount_ = maxInactiveCount_;
8237  if (((from_bitField2_ & 0x00080000) != 0)) {
8238  to_bitField2_ |= 0x00040000;
8239  }
8240  result.constraintRemovalBatchSize_ = constraintRemovalBatchSize_;
8241  if (((from_bitField2_ & 0x00100000) != 0)) {
8242  to_bitField2_ |= 0x00080000;
8243  }
8244  result.searchBranching_ = searchBranching_;
8245  if (((from_bitField2_ & 0x00200000) != 0)) {
8246  to_bitField2_ |= 0x00100000;
8247  }
8248  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
8249  if (((from_bitField2_ & 0x00400000) != 0)) {
8250  to_bitField2_ |= 0x00200000;
8251  }
8252  result.exploitAllLpSolution_ = exploitAllLpSolution_;
8253  if (((from_bitField2_ & 0x00800000) != 0)) {
8254  result.exploitBestSolution_ = exploitBestSolution_;
8255  to_bitField2_ |= 0x00400000;
8256  }
8257  if (((from_bitField2_ & 0x01000000) != 0)) {
8258  to_bitField2_ |= 0x00800000;
8259  }
8260  result.exploitObjective_ = exploitObjective_;
8261  if (((from_bitField2_ & 0x02000000) != 0)) {
8262  result.probingPeriodAtRoot_ = probingPeriodAtRoot_;
8263  to_bitField2_ |= 0x01000000;
8264  }
8265  if (((from_bitField2_ & 0x04000000) != 0)) {
8266  to_bitField2_ |= 0x02000000;
8267  }
8268  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
8269  if (((from_bitField2_ & 0x08000000) != 0)) {
8270  result.optimizeWithCore_ = optimizeWithCore_;
8271  to_bitField2_ |= 0x04000000;
8272  }
8273  if (((from_bitField2_ & 0x10000000) != 0)) {
8274  to_bitField2_ |= 0x08000000;
8275  }
8276  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
8277  if (((from_bitField2_ & 0x20000000) != 0)) {
8278  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
8279  to_bitField2_ |= 0x10000000;
8280  }
8281  if (((from_bitField2_ & 0x40000000) != 0)) {
8282  result.enumerateAllSolutions_ = enumerateAllSolutions_;
8283  to_bitField2_ |= 0x20000000;
8284  }
8285  if (((from_bitField2_ & 0x80000000) != 0)) {
8286  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
8287  to_bitField2_ |= 0x40000000;
8288  }
8289  if (((from_bitField3_ & 0x00000001) != 0)) {
8290  to_bitField2_ |= 0x80000000;
8291  }
8292  result.instantiateAllVariables_ = instantiateAllVariables_;
8293  if (((from_bitField3_ & 0x00000002) != 0)) {
8294  to_bitField3_ |= 0x00000001;
8295  }
8296  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
8297  if (((from_bitField3_ & 0x00000004) != 0)) {
8298  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
8299  to_bitField3_ |= 0x00000002;
8300  }
8301  if (((from_bitField3_ & 0x00000008) != 0)) {
8302  to_bitField3_ |= 0x00000004;
8303  }
8304  result.numSearchWorkers_ = numSearchWorkers_;
8305  if (((from_bitField3_ & 0x00000010) != 0)) {
8306  result.interleaveSearch_ = interleaveSearch_;
8307  to_bitField3_ |= 0x00000008;
8308  }
8309  if (((from_bitField3_ & 0x00000020) != 0)) {
8310  to_bitField3_ |= 0x00000010;
8311  }
8312  result.reduceMemoryUsageInInterleaveMode_ = reduceMemoryUsageInInterleaveMode_;
8313  if (((from_bitField3_ & 0x00000040) != 0)) {
8314  result.deterministicParallelSearch_ = deterministicParallelSearch_;
8315  to_bitField3_ |= 0x00000020;
8316  }
8317  if (((from_bitField3_ & 0x00000080) != 0)) {
8318  to_bitField3_ |= 0x00000040;
8319  }
8320  result.shareObjectiveBounds_ = shareObjectiveBounds_;
8321  if (((from_bitField3_ & 0x00000100) != 0)) {
8322  to_bitField3_ |= 0x00000080;
8323  }
8324  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
8325  if (((from_bitField3_ & 0x00000200) != 0)) {
8326  result.useLnsOnly_ = useLnsOnly_;
8327  to_bitField3_ |= 0x00000100;
8328  }
8329  if (((from_bitField3_ & 0x00000400) != 0)) {
8330  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
8331  to_bitField3_ |= 0x00000200;
8332  }
8333  if (((from_bitField3_ & 0x00000800) != 0)) {
8334  to_bitField3_ |= 0x00000400;
8335  }
8336  result.useRinsLns_ = useRinsLns_;
8337  if (((from_bitField3_ & 0x00001000) != 0)) {
8338  result.diversifyLnsParams_ = diversifyLnsParams_;
8339  to_bitField3_ |= 0x00000800;
8340  }
8341  if (((from_bitField3_ & 0x00002000) != 0)) {
8342  result.randomizeSearch_ = randomizeSearch_;
8343  to_bitField3_ |= 0x00001000;
8344  }
8345  if (((from_bitField3_ & 0x00004000) != 0)) {
8346  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
8347  to_bitField3_ |= 0x00002000;
8348  }
8349  if (((from_bitField3_ & 0x00008000) != 0)) {
8350  to_bitField3_ |= 0x00004000;
8351  }
8352  result.useOptionalVariables_ = useOptionalVariables_;
8353  if (((from_bitField3_ & 0x00010000) != 0)) {
8354  to_bitField3_ |= 0x00008000;
8355  }
8356  result.useExactLpReason_ = useExactLpReason_;
8357  if (((from_bitField3_ & 0x00020000) != 0)) {
8358  result.useBranchingInLp_ = useBranchingInLp_;
8359  to_bitField3_ |= 0x00010000;
8360  }
8361  if (((from_bitField3_ & 0x00040000) != 0)) {
8362  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
8363  to_bitField3_ |= 0x00020000;
8364  }
8365  if (((from_bitField3_ & 0x00080000) != 0)) {
8366  to_bitField3_ |= 0x00040000;
8367  }
8368  result.catchSigintSignal_ = catchSigintSignal_;
8369  if (((from_bitField3_ & 0x00100000) != 0)) {
8370  to_bitField3_ |= 0x00080000;
8371  }
8372  result.mipMaxBound_ = mipMaxBound_;
8373  if (((from_bitField3_ & 0x00200000) != 0)) {
8374  to_bitField3_ |= 0x00100000;
8375  }
8376  result.mipVarScaling_ = mipVarScaling_;
8377  if (((from_bitField3_ & 0x00400000) != 0)) {
8378  to_bitField3_ |= 0x00200000;
8379  }
8380  result.mipWantedPrecision_ = mipWantedPrecision_;
8381  if (((from_bitField3_ & 0x00800000) != 0)) {
8382  to_bitField3_ |= 0x00400000;
8383  }
8384  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
8385  if (((from_bitField3_ & 0x01000000) != 0)) {
8386  to_bitField3_ |= 0x00800000;
8387  }
8388  result.mipCheckPrecision_ = mipCheckPrecision_;
8389  result.bitField0_ = to_bitField0_;
8390  result.bitField1_ = to_bitField1_;
8391  result.bitField2_ = to_bitField2_;
8392  result.bitField3_ = to_bitField3_;
8393  onBuilt();
8394  return result;
8395  }
8396 
8397  @java.lang.Override
8398  public Builder clone() {
8399  return super.clone();
8400  }
8401  @java.lang.Override
8403  com.google.protobuf.Descriptors.FieldDescriptor field,
8404  java.lang.Object value) {
8405  return super.setField(field, value);
8406  }
8407  @java.lang.Override
8409  com.google.protobuf.Descriptors.FieldDescriptor field) {
8410  return super.clearField(field);
8411  }
8412  @java.lang.Override
8414  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
8415  return super.clearOneof(oneof);
8416  }
8417  @java.lang.Override
8419  com.google.protobuf.Descriptors.FieldDescriptor field,
8420  int index, java.lang.Object value) {
8421  return super.setRepeatedField(field, index, value);
8422  }
8423  @java.lang.Override
8425  com.google.protobuf.Descriptors.FieldDescriptor field,
8426  java.lang.Object value) {
8427  return super.addRepeatedField(field, value);
8428  }
8429  @java.lang.Override
8430  public Builder mergeFrom(com.google.protobuf.Message other) {
8431  if (other instanceof com.google.ortools.sat.SatParameters) {
8432  return mergeFrom((com.google.ortools.sat.SatParameters)other);
8433  } else {
8434  super.mergeFrom(other);
8435  return this;
8436  }
8437  }
8438 
8440  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
8441  if (other.hasPreferredVariableOrder()) {
8442  setPreferredVariableOrder(other.getPreferredVariableOrder());
8443  }
8444  if (other.hasInitialPolarity()) {
8445  setInitialPolarity(other.getInitialPolarity());
8446  }
8447  if (other.hasUsePhaseSaving()) {
8448  setUsePhaseSaving(other.getUsePhaseSaving());
8449  }
8450  if (other.hasRandomPolarityRatio()) {
8451  setRandomPolarityRatio(other.getRandomPolarityRatio());
8452  }
8453  if (other.hasRandomBranchesRatio()) {
8454  setRandomBranchesRatio(other.getRandomBranchesRatio());
8455  }
8456  if (other.hasUseErwaHeuristic()) {
8457  setUseErwaHeuristic(other.getUseErwaHeuristic());
8458  }
8459  if (other.hasInitialVariablesActivity()) {
8460  setInitialVariablesActivity(other.getInitialVariablesActivity());
8461  }
8462  if (other.hasAlsoBumpVariablesInConflictReasons()) {
8463  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
8464  }
8465  if (other.hasMinimizationAlgorithm()) {
8466  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
8467  }
8468  if (other.hasBinaryMinimizationAlgorithm()) {
8469  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
8470  }
8471  if (other.hasSubsumptionDuringConflictAnalysis()) {
8472  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
8473  }
8474  if (other.hasClauseCleanupPeriod()) {
8475  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
8476  }
8477  if (other.hasClauseCleanupTarget()) {
8478  setClauseCleanupTarget(other.getClauseCleanupTarget());
8479  }
8480  if (other.hasClauseCleanupProtection()) {
8481  setClauseCleanupProtection(other.getClauseCleanupProtection());
8482  }
8483  if (other.hasClauseCleanupLbdBound()) {
8484  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
8485  }
8486  if (other.hasClauseCleanupOrdering()) {
8487  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
8488  }
8489  if (other.hasPbCleanupIncrement()) {
8490  setPbCleanupIncrement(other.getPbCleanupIncrement());
8491  }
8492  if (other.hasPbCleanupRatio()) {
8493  setPbCleanupRatio(other.getPbCleanupRatio());
8494  }
8495  if (other.hasMinimizeWithPropagationRestartPeriod()) {
8496  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
8497  }
8498  if (other.hasMinimizeWithPropagationNumDecisions()) {
8499  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
8500  }
8501  if (other.hasVariableActivityDecay()) {
8502  setVariableActivityDecay(other.getVariableActivityDecay());
8503  }
8504  if (other.hasMaxVariableActivityValue()) {
8505  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
8506  }
8507  if (other.hasGlucoseMaxDecay()) {
8508  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
8509  }
8510  if (other.hasGlucoseDecayIncrement()) {
8511  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
8512  }
8513  if (other.hasGlucoseDecayIncrementPeriod()) {
8514  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
8515  }
8516  if (other.hasClauseActivityDecay()) {
8517  setClauseActivityDecay(other.getClauseActivityDecay());
8518  }
8519  if (other.hasMaxClauseActivityValue()) {
8520  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
8521  }
8522  if (!other.restartAlgorithms_.isEmpty()) {
8523  if (restartAlgorithms_.isEmpty()) {
8524  restartAlgorithms_ = other.restartAlgorithms_;
8525  bitField0_ = (bitField0_ & ~0x08000000);
8526  } else {
8527  ensureRestartAlgorithmsIsMutable();
8528  restartAlgorithms_.addAll(other.restartAlgorithms_);
8529  }
8530  onChanged();
8531  }
8532  if (other.hasDefaultRestartAlgorithms()) {
8533  bitField0_ |= 0x10000000;
8534  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
8535  onChanged();
8536  }
8537  if (other.hasRestartPeriod()) {
8538  setRestartPeriod(other.getRestartPeriod());
8539  }
8540  if (other.hasRestartRunningWindowSize()) {
8541  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
8542  }
8543  if (other.hasRestartDlAverageRatio()) {
8544  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
8545  }
8546  if (other.hasRestartLbdAverageRatio()) {
8547  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
8548  }
8549  if (other.hasUseBlockingRestart()) {
8550  setUseBlockingRestart(other.getUseBlockingRestart());
8551  }
8552  if (other.hasBlockingRestartWindowSize()) {
8553  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
8554  }
8555  if (other.hasBlockingRestartMultiplier()) {
8556  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
8557  }
8558  if (other.hasNumConflictsBeforeStrategyChanges()) {
8559  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
8560  }
8561  if (other.hasStrategyChangeIncreaseRatio()) {
8562  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
8563  }
8564  if (other.hasMaxTimeInSeconds()) {
8565  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
8566  }
8567  if (other.hasMaxDeterministicTime()) {
8568  setMaxDeterministicTime(other.getMaxDeterministicTime());
8569  }
8570  if (other.hasMaxNumberOfConflicts()) {
8571  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
8572  }
8573  if (other.hasMaxMemoryInMb()) {
8574  setMaxMemoryInMb(other.getMaxMemoryInMb());
8575  }
8576  if (other.hasTreatBinaryClausesSeparately()) {
8577  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
8578  }
8579  if (other.hasRandomSeed()) {
8580  setRandomSeed(other.getRandomSeed());
8581  }
8582  if (other.hasLogSearchProgress()) {
8583  setLogSearchProgress(other.getLogSearchProgress());
8584  }
8585  if (other.hasUsePbResolution()) {
8586  setUsePbResolution(other.getUsePbResolution());
8587  }
8588  if (other.hasMinimizeReductionDuringPbResolution()) {
8589  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
8590  }
8591  if (other.hasCountAssumptionLevelsInLbd()) {
8592  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
8593  }
8594  if (other.hasPresolveBveThreshold()) {
8595  setPresolveBveThreshold(other.getPresolveBveThreshold());
8596  }
8597  if (other.hasPresolveBveClauseWeight()) {
8598  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
8599  }
8600  if (other.hasPresolveProbingDeterministicTimeLimit()) {
8601  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
8602  }
8603  if (other.hasPresolveBlockedClause()) {
8604  setPresolveBlockedClause(other.getPresolveBlockedClause());
8605  }
8606  if (other.hasPresolveUseBva()) {
8607  setPresolveUseBva(other.getPresolveUseBva());
8608  }
8609  if (other.hasPresolveBvaThreshold()) {
8610  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
8611  }
8612  if (other.hasMaxPresolveIterations()) {
8613  setMaxPresolveIterations(other.getMaxPresolveIterations());
8614  }
8615  if (other.hasCpModelPresolve()) {
8616  setCpModelPresolve(other.getCpModelPresolve());
8617  }
8618  if (other.hasCpModelProbingLevel()) {
8619  setCpModelProbingLevel(other.getCpModelProbingLevel());
8620  }
8621  if (other.hasCpModelUseSatPresolve()) {
8622  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
8623  }
8624  if (other.hasExpandElementConstraints()) {
8625  setExpandElementConstraints(other.getExpandElementConstraints());
8626  }
8627  if (other.hasExpandAutomatonConstraints()) {
8628  setExpandAutomatonConstraints(other.getExpandAutomatonConstraints());
8629  }
8630  if (other.hasUseOptimizationHints()) {
8631  setUseOptimizationHints(other.getUseOptimizationHints());
8632  }
8633  if (other.hasMinimizeCore()) {
8634  setMinimizeCore(other.getMinimizeCore());
8635  }
8636  if (other.hasFindMultipleCores()) {
8637  setFindMultipleCores(other.getFindMultipleCores());
8638  }
8639  if (other.hasCoverOptimization()) {
8640  setCoverOptimization(other.getCoverOptimization());
8641  }
8642  if (other.hasMaxSatAssumptionOrder()) {
8643  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
8644  }
8645  if (other.hasMaxSatReverseAssumptionOrder()) {
8646  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
8647  }
8648  if (other.hasMaxSatStratification()) {
8649  setMaxSatStratification(other.getMaxSatStratification());
8650  }
8651  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
8652  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
8653  }
8654  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
8655  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
8656  }
8657  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
8658  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
8659  }
8660  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
8661  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
8662  }
8663  if (other.hasLinearizationLevel()) {
8664  setLinearizationLevel(other.getLinearizationLevel());
8665  }
8666  if (other.hasBooleanEncodingLevel()) {
8667  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
8668  }
8669  if (other.hasMaxNumCuts()) {
8670  setMaxNumCuts(other.getMaxNumCuts());
8671  }
8672  if (other.hasOnlyAddCutsAtLevelZero()) {
8673  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
8674  }
8675  if (other.hasAddKnapsackCuts()) {
8676  setAddKnapsackCuts(other.getAddKnapsackCuts());
8677  }
8678  if (other.hasAddCgCuts()) {
8679  setAddCgCuts(other.getAddCgCuts());
8680  }
8681  if (other.hasAddMirCuts()) {
8682  setAddMirCuts(other.getAddMirCuts());
8683  }
8684  if (other.hasUseMirRounding()) {
8685  setUseMirRounding(other.getUseMirRounding());
8686  }
8687  if (other.hasMaxIntegerRoundingScaling()) {
8688  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
8689  }
8690  if (other.hasAddLpConstraintsLazily()) {
8691  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
8692  }
8693  if (other.hasMinOrthogonalityForLpConstraints()) {
8694  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
8695  }
8696  if (other.hasMaxInactiveCount()) {
8697  setMaxInactiveCount(other.getMaxInactiveCount());
8698  }
8699  if (other.hasConstraintRemovalBatchSize()) {
8700  setConstraintRemovalBatchSize(other.getConstraintRemovalBatchSize());
8701  }
8702  if (other.hasSearchBranching()) {
8703  setSearchBranching(other.getSearchBranching());
8704  }
8705  if (other.hasExploitIntegerLpSolution()) {
8706  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
8707  }
8708  if (other.hasExploitAllLpSolution()) {
8709  setExploitAllLpSolution(other.getExploitAllLpSolution());
8710  }
8711  if (other.hasExploitBestSolution()) {
8712  setExploitBestSolution(other.getExploitBestSolution());
8713  }
8714  if (other.hasExploitObjective()) {
8715  setExploitObjective(other.getExploitObjective());
8716  }
8717  if (other.hasProbingPeriodAtRoot()) {
8718  setProbingPeriodAtRoot(other.getProbingPeriodAtRoot());
8719  }
8720  if (other.hasPseudoCostReliabilityThreshold()) {
8721  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
8722  }
8723  if (other.hasOptimizeWithCore()) {
8724  setOptimizeWithCore(other.getOptimizeWithCore());
8725  }
8726  if (other.hasBinarySearchNumConflicts()) {
8727  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
8728  }
8729  if (other.hasOptimizeWithMaxHs()) {
8730  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
8731  }
8732  if (other.hasEnumerateAllSolutions()) {
8733  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
8734  }
8735  if (other.hasFillTightenedDomainsInResponse()) {
8736  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
8737  }
8738  if (other.hasInstantiateAllVariables()) {
8739  setInstantiateAllVariables(other.getInstantiateAllVariables());
8740  }
8741  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
8742  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
8743  }
8744  if (other.hasStopAfterFirstSolution()) {
8745  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
8746  }
8747  if (other.hasNumSearchWorkers()) {
8748  setNumSearchWorkers(other.getNumSearchWorkers());
8749  }
8750  if (other.hasInterleaveSearch()) {
8751  setInterleaveSearch(other.getInterleaveSearch());
8752  }
8753  if (other.hasReduceMemoryUsageInInterleaveMode()) {
8754  setReduceMemoryUsageInInterleaveMode(other.getReduceMemoryUsageInInterleaveMode());
8755  }
8756  if (other.hasDeterministicParallelSearch()) {
8757  setDeterministicParallelSearch(other.getDeterministicParallelSearch());
8758  }
8759  if (other.hasShareObjectiveBounds()) {
8760  setShareObjectiveBounds(other.getShareObjectiveBounds());
8761  }
8762  if (other.hasShareLevelZeroBounds()) {
8763  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
8764  }
8765  if (other.hasUseLnsOnly()) {
8766  setUseLnsOnly(other.getUseLnsOnly());
8767  }
8768  if (other.hasLnsFocusOnDecisionVariables()) {
8769  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
8770  }
8771  if (other.hasUseRinsLns()) {
8772  setUseRinsLns(other.getUseRinsLns());
8773  }
8774  if (other.hasDiversifyLnsParams()) {
8775  setDiversifyLnsParams(other.getDiversifyLnsParams());
8776  }
8777  if (other.hasRandomizeSearch()) {
8778  setRandomizeSearch(other.getRandomizeSearch());
8779  }
8780  if (other.hasSearchRandomizationTolerance()) {
8781  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
8782  }
8783  if (other.hasUseOptionalVariables()) {
8784  setUseOptionalVariables(other.getUseOptionalVariables());
8785  }
8786  if (other.hasUseExactLpReason()) {
8787  setUseExactLpReason(other.getUseExactLpReason());
8788  }
8789  if (other.hasUseBranchingInLp()) {
8790  setUseBranchingInLp(other.getUseBranchingInLp());
8791  }
8792  if (other.hasUseCombinedNoOverlap()) {
8793  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
8794  }
8795  if (other.hasCatchSigintSignal()) {
8796  setCatchSigintSignal(other.getCatchSigintSignal());
8797  }
8798  if (other.hasMipMaxBound()) {
8799  setMipMaxBound(other.getMipMaxBound());
8800  }
8801  if (other.hasMipVarScaling()) {
8802  setMipVarScaling(other.getMipVarScaling());
8803  }
8804  if (other.hasMipWantedPrecision()) {
8805  setMipWantedPrecision(other.getMipWantedPrecision());
8806  }
8807  if (other.hasMipMaxActivityExponent()) {
8808  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
8809  }
8810  if (other.hasMipCheckPrecision()) {
8811  setMipCheckPrecision(other.getMipCheckPrecision());
8812  }
8813  this.mergeUnknownFields(other.unknownFields);
8814  onChanged();
8815  return this;
8816  }
8817 
8818  @java.lang.Override
8819  public final boolean isInitialized() {
8820  return true;
8821  }
8822 
8823  @java.lang.Override
8825  com.google.protobuf.CodedInputStream input,
8826  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8827  throws java.io.IOException {
8828  com.google.ortools.sat.SatParameters parsedMessage = null;
8829  try {
8830  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8831  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8832  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
8833  throw e.unwrapIOException();
8834  } finally {
8835  if (parsedMessage != null) {
8836  mergeFrom(parsedMessage);
8837  }
8838  }
8839  return this;
8840  }
8841  private int bitField0_;
8842  private int bitField1_;
8843  private int bitField2_;
8844  private int bitField3_;
8845 
8846  private int preferredVariableOrder_ = 0;
8850  public boolean hasPreferredVariableOrder() {
8851  return ((bitField0_ & 0x00000001) != 0);
8852  }
8857  @SuppressWarnings("deprecation")
8859  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
8860  }
8865  if (value == null) {
8866  throw new NullPointerException();
8867  }
8868  bitField0_ |= 0x00000001;
8869  preferredVariableOrder_ = value.getNumber();
8870  onChanged();
8871  return this;
8872  }
8877  bitField0_ = (bitField0_ & ~0x00000001);
8878  preferredVariableOrder_ = 0;
8879  onChanged();
8880  return this;
8881  }
8882 
8883  private int initialPolarity_ = 1;
8887  public boolean hasInitialPolarity() {
8888  return ((bitField0_ & 0x00000002) != 0);
8889  }
8894  @SuppressWarnings("deprecation")
8896  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
8897  }
8902  if (value == null) {
8903  throw new NullPointerException();
8904  }
8905  bitField0_ |= 0x00000002;
8906  initialPolarity_ = value.getNumber();
8907  onChanged();
8908  return this;
8909  }
8914  bitField0_ = (bitField0_ & ~0x00000002);
8915  initialPolarity_ = 1;
8916  onChanged();
8917  return this;
8918  }
8919 
8920  private boolean usePhaseSaving_ = true;
8934  public boolean hasUsePhaseSaving() {
8935  return ((bitField0_ & 0x00000004) != 0);
8936  }
8950  public boolean getUsePhaseSaving() {
8951  return usePhaseSaving_;
8952  }
8966  public Builder setUsePhaseSaving(boolean value) {
8967  bitField0_ |= 0x00000004;
8968  usePhaseSaving_ = value;
8969  onChanged();
8970  return this;
8971  }
8986  bitField0_ = (bitField0_ & ~0x00000004);
8987  usePhaseSaving_ = true;
8988  onChanged();
8989  return this;
8990  }
8991 
8992  private double randomPolarityRatio_ ;
9004  public boolean hasRandomPolarityRatio() {
9005  return ((bitField0_ & 0x00000008) != 0);
9006  }
9018  public double getRandomPolarityRatio() {
9019  return randomPolarityRatio_;
9020  }
9032  public Builder setRandomPolarityRatio(double value) {
9033  bitField0_ |= 0x00000008;
9034  randomPolarityRatio_ = value;
9035  onChanged();
9036  return this;
9037  }
9050  bitField0_ = (bitField0_ & ~0x00000008);
9051  randomPolarityRatio_ = 0D;
9052  onChanged();
9053  return this;
9054  }
9055 
9056  private double randomBranchesRatio_ ;
9066  public boolean hasRandomBranchesRatio() {
9067  return ((bitField0_ & 0x00000010) != 0);
9068  }
9078  public double getRandomBranchesRatio() {
9079  return randomBranchesRatio_;
9080  }
9090  public Builder setRandomBranchesRatio(double value) {
9091  bitField0_ |= 0x00000010;
9092  randomBranchesRatio_ = value;
9093  onChanged();
9094  return this;
9095  }
9106  bitField0_ = (bitField0_ & ~0x00000010);
9107  randomBranchesRatio_ = 0D;
9108  onChanged();
9109  return this;
9110  }
9111 
9112  private boolean useErwaHeuristic_ ;
9122  public boolean hasUseErwaHeuristic() {
9123  return ((bitField0_ & 0x00000020) != 0);
9124  }
9134  public boolean getUseErwaHeuristic() {
9135  return useErwaHeuristic_;
9136  }
9146  public Builder setUseErwaHeuristic(boolean value) {
9147  bitField0_ |= 0x00000020;
9148  useErwaHeuristic_ = value;
9149  onChanged();
9150  return this;
9151  }
9162  bitField0_ = (bitField0_ & ~0x00000020);
9163  useErwaHeuristic_ = false;
9164  onChanged();
9165  return this;
9166  }
9167 
9168  private double initialVariablesActivity_ ;
9181  public boolean hasInitialVariablesActivity() {
9182  return ((bitField0_ & 0x00000040) != 0);
9183  }
9197  return initialVariablesActivity_;
9198  }
9211  public Builder setInitialVariablesActivity(double value) {
9212  bitField0_ |= 0x00000040;
9213  initialVariablesActivity_ = value;
9214  onChanged();
9215  return this;
9216  }
9230  bitField0_ = (bitField0_ & ~0x00000040);
9231  initialVariablesActivity_ = 0D;
9232  onChanged();
9233  return this;
9234  }
9235 
9236  private boolean alsoBumpVariablesInConflictReasons_ ;
9248  return ((bitField0_ & 0x00000080) != 0);
9249  }
9261  return alsoBumpVariablesInConflictReasons_;
9262  }
9274  bitField0_ |= 0x00000080;
9275  alsoBumpVariablesInConflictReasons_ = value;
9276  onChanged();
9277  return this;
9278  }
9290  bitField0_ = (bitField0_ & ~0x00000080);
9291  alsoBumpVariablesInConflictReasons_ = false;
9292  onChanged();
9293  return this;
9294  }
9295 
9296  private int minimizationAlgorithm_ = 2;
9300  public boolean hasMinimizationAlgorithm() {
9301  return ((bitField0_ & 0x00000100) != 0);
9302  }
9307  @SuppressWarnings("deprecation")
9309  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
9310  }
9315  if (value == null) {
9316  throw new NullPointerException();
9317  }
9318  bitField0_ |= 0x00000100;
9319  minimizationAlgorithm_ = value.getNumber();
9320  onChanged();
9321  return this;
9322  }
9327  bitField0_ = (bitField0_ & ~0x00000100);
9328  minimizationAlgorithm_ = 2;
9329  onChanged();
9330  return this;
9331  }
9332 
9333  private int binaryMinimizationAlgorithm_ = 1;
9338  return ((bitField0_ & 0x00000200) != 0);
9339  }
9344  @SuppressWarnings("deprecation")
9347  }
9352  if (value == null) {
9353  throw new NullPointerException();
9354  }
9355  bitField0_ |= 0x00000200;
9356  binaryMinimizationAlgorithm_ = value.getNumber();
9357  onChanged();
9358  return this;
9359  }
9364  bitField0_ = (bitField0_ & ~0x00000200);
9365  binaryMinimizationAlgorithm_ = 1;
9366  onChanged();
9367  return this;
9368  }
9369 
9370  private boolean subsumptionDuringConflictAnalysis_ = true;
9382  return ((bitField0_ & 0x00000400) != 0);
9383  }
9395  return subsumptionDuringConflictAnalysis_;
9396  }
9408  bitField0_ |= 0x00000400;
9409  subsumptionDuringConflictAnalysis_ = value;
9410  onChanged();
9411  return this;
9412  }
9424  bitField0_ = (bitField0_ & ~0x00000400);
9425  subsumptionDuringConflictAnalysis_ = true;
9426  onChanged();
9427  return this;
9428  }
9429 
9430  private int clauseCleanupPeriod_ = 10000;
9438  public boolean hasClauseCleanupPeriod() {
9439  return ((bitField0_ & 0x00000800) != 0);
9440  }
9448  public int getClauseCleanupPeriod() {
9449  return clauseCleanupPeriod_;
9450  }
9458  public Builder setClauseCleanupPeriod(int value) {
9459  bitField0_ |= 0x00000800;
9460  clauseCleanupPeriod_ = value;
9461  onChanged();
9462  return this;
9463  }
9472  bitField0_ = (bitField0_ & ~0x00000800);
9473  clauseCleanupPeriod_ = 10000;
9474  onChanged();
9475  return this;
9476  }
9477 
9478  private int clauseCleanupTarget_ = 10000;
9487  public boolean hasClauseCleanupTarget() {
9488  return ((bitField0_ & 0x00001000) != 0);
9489  }
9498  public int getClauseCleanupTarget() {
9499  return clauseCleanupTarget_;
9500  }
9509  public Builder setClauseCleanupTarget(int value) {
9510  bitField0_ |= 0x00001000;
9511  clauseCleanupTarget_ = value;
9512  onChanged();
9513  return this;
9514  }
9524  bitField0_ = (bitField0_ & ~0x00001000);
9525  clauseCleanupTarget_ = 10000;
9526  onChanged();
9527  return this;
9528  }
9529 
9530  private int clauseCleanupProtection_ = 0;
9534  public boolean hasClauseCleanupProtection() {
9535  return ((bitField0_ & 0x00002000) != 0);
9536  }
9541  @SuppressWarnings("deprecation")
9543  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
9544  }
9549  if (value == null) {
9550  throw new NullPointerException();
9551  }
9552  bitField0_ |= 0x00002000;
9553  clauseCleanupProtection_ = value.getNumber();
9554  onChanged();
9555  return this;
9556  }
9561  bitField0_ = (bitField0_ & ~0x00002000);
9562  clauseCleanupProtection_ = 0;
9563  onChanged();
9564  return this;
9565  }
9566 
9567  private int clauseCleanupLbdBound_ = 5;
9576  public boolean hasClauseCleanupLbdBound() {
9577  return ((bitField0_ & 0x00004000) != 0);
9578  }
9588  return clauseCleanupLbdBound_;
9589  }
9598  public Builder setClauseCleanupLbdBound(int value) {
9599  bitField0_ |= 0x00004000;
9600  clauseCleanupLbdBound_ = value;
9601  onChanged();
9602  return this;
9603  }
9613  bitField0_ = (bitField0_ & ~0x00004000);
9614  clauseCleanupLbdBound_ = 5;
9615  onChanged();
9616  return this;
9617  }
9618 
9619  private int clauseCleanupOrdering_ = 0;
9623  public boolean hasClauseCleanupOrdering() {
9624  return ((bitField0_ & 0x00008000) != 0);
9625  }
9630  @SuppressWarnings("deprecation")
9632  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
9633  }
9638  if (value == null) {
9639  throw new NullPointerException();
9640  }
9641  bitField0_ |= 0x00008000;
9642  clauseCleanupOrdering_ = value.getNumber();
9643  onChanged();
9644  return this;
9645  }
9650  bitField0_ = (bitField0_ & ~0x00008000);
9651  clauseCleanupOrdering_ = 0;
9652  onChanged();
9653  return this;
9654  }
9655 
9656  private int pbCleanupIncrement_ = 200;
9664  public boolean hasPbCleanupIncrement() {
9665  return ((bitField0_ & 0x00010000) != 0);
9666  }
9674  public int getPbCleanupIncrement() {
9675  return pbCleanupIncrement_;
9676  }
9684  public Builder setPbCleanupIncrement(int value) {
9685  bitField0_ |= 0x00010000;
9686  pbCleanupIncrement_ = value;
9687  onChanged();
9688  return this;
9689  }
9698  bitField0_ = (bitField0_ & ~0x00010000);
9699  pbCleanupIncrement_ = 200;
9700  onChanged();
9701  return this;
9702  }
9703 
9704  private double pbCleanupRatio_ = 0.5D;
9708  public boolean hasPbCleanupRatio() {
9709  return ((bitField0_ & 0x00020000) != 0);
9710  }
9714  public double getPbCleanupRatio() {
9715  return pbCleanupRatio_;
9716  }
9720  public Builder setPbCleanupRatio(double value) {
9721  bitField0_ |= 0x00020000;
9722  pbCleanupRatio_ = value;
9723  onChanged();
9724  return this;
9725  }
9730  bitField0_ = (bitField0_ & ~0x00020000);
9731  pbCleanupRatio_ = 0.5D;
9732  onChanged();
9733  return this;
9734  }
9735 
9736  private int minimizeWithPropagationRestartPeriod_ = 10;
9755  return ((bitField0_ & 0x00040000) != 0);
9756  }
9775  return minimizeWithPropagationRestartPeriod_;
9776  }
9795  bitField0_ |= 0x00040000;
9796  minimizeWithPropagationRestartPeriod_ = value;
9797  onChanged();
9798  return this;
9799  }
9818  bitField0_ = (bitField0_ & ~0x00040000);
9819  minimizeWithPropagationRestartPeriod_ = 10;
9820  onChanged();
9821  return this;
9822  }
9823 
9824  private int minimizeWithPropagationNumDecisions_ = 1000;
9829  return ((bitField0_ & 0x00080000) != 0);
9830  }
9835  return minimizeWithPropagationNumDecisions_;
9836  }
9841  bitField0_ |= 0x00080000;
9842  minimizeWithPropagationNumDecisions_ = value;
9843  onChanged();
9844  return this;
9845  }
9850  bitField0_ = (bitField0_ & ~0x00080000);
9851  minimizeWithPropagationNumDecisions_ = 1000;
9852  onChanged();
9853  return this;
9854  }
9855 
9856  private double variableActivityDecay_ = 0.8D;
9870  public boolean hasVariableActivityDecay() {
9871  return ((bitField0_ & 0x00100000) != 0);
9872  }
9886  public double getVariableActivityDecay() {
9887  return variableActivityDecay_;
9888  }
9902  public Builder setVariableActivityDecay(double value) {
9903  bitField0_ |= 0x00100000;
9904  variableActivityDecay_ = value;
9905  onChanged();
9906  return this;
9907  }
9922  bitField0_ = (bitField0_ & ~0x00100000);
9923  variableActivityDecay_ = 0.8D;
9924  onChanged();
9925  return this;
9926  }
9927 
9928  private double maxVariableActivityValue_ = 1e+100D;
9932  public boolean hasMaxVariableActivityValue() {
9933  return ((bitField0_ & 0x00200000) != 0);
9934  }
9939  return maxVariableActivityValue_;
9940  }
9944  public Builder setMaxVariableActivityValue(double value) {
9945  bitField0_ |= 0x00200000;
9946  maxVariableActivityValue_ = value;
9947  onChanged();
9948  return this;
9949  }
9954  bitField0_ = (bitField0_ & ~0x00200000);
9955  maxVariableActivityValue_ = 1e+100D;
9956  onChanged();
9957  return this;
9958  }
9959 
9960  private double glucoseMaxDecay_ = 0.95D;
9971  public boolean hasGlucoseMaxDecay() {
9972  return ((bitField0_ & 0x00400000) != 0);
9973  }
9984  public double getGlucoseMaxDecay() {
9985  return glucoseMaxDecay_;
9986  }
9997  public Builder setGlucoseMaxDecay(double value) {
9998  bitField0_ |= 0x00400000;
9999  glucoseMaxDecay_ = value;
10000  onChanged();
10001  return this;
10002  }
10014  bitField0_ = (bitField0_ & ~0x00400000);
10015  glucoseMaxDecay_ = 0.95D;
10016  onChanged();
10017  return this;
10018  }
10019 
10020  private double glucoseDecayIncrement_ = 0.01D;
10024  public boolean hasGlucoseDecayIncrement() {
10025  return ((bitField0_ & 0x00800000) != 0);
10026  }
10030  public double getGlucoseDecayIncrement() {
10031  return glucoseDecayIncrement_;
10032  }
10036  public Builder setGlucoseDecayIncrement(double value) {
10037  bitField0_ |= 0x00800000;
10038  glucoseDecayIncrement_ = value;
10039  onChanged();
10040  return this;
10041  }
10046  bitField0_ = (bitField0_ & ~0x00800000);
10047  glucoseDecayIncrement_ = 0.01D;
10048  onChanged();
10049  return this;
10050  }
10051 
10052  private int glucoseDecayIncrementPeriod_ = 5000;
10057  return ((bitField0_ & 0x01000000) != 0);
10058  }
10063  return glucoseDecayIncrementPeriod_;
10064  }
10069  bitField0_ |= 0x01000000;
10070  glucoseDecayIncrementPeriod_ = value;
10071  onChanged();
10072  return this;
10073  }
10078  bitField0_ = (bitField0_ & ~0x01000000);
10079  glucoseDecayIncrementPeriod_ = 5000;
10080  onChanged();
10081  return this;
10082  }
10083 
10084  private double clauseActivityDecay_ = 0.999D;
10092  public boolean hasClauseActivityDecay() {
10093  return ((bitField0_ & 0x02000000) != 0);
10094  }
10102  public double getClauseActivityDecay() {
10103  return clauseActivityDecay_;
10104  }
10112  public Builder setClauseActivityDecay(double value) {
10113  bitField0_ |= 0x02000000;
10114  clauseActivityDecay_ = value;
10115  onChanged();
10116  return this;
10117  }
10126  bitField0_ = (bitField0_ & ~0x02000000);
10127  clauseActivityDecay_ = 0.999D;
10128  onChanged();
10129  return this;
10130  }
10131 
10132  private double maxClauseActivityValue_ = 1e+20D;
10136  public boolean hasMaxClauseActivityValue() {
10137  return ((bitField0_ & 0x04000000) != 0);
10138  }
10142  public double getMaxClauseActivityValue() {
10143  return maxClauseActivityValue_;
10144  }
10148  public Builder setMaxClauseActivityValue(double value) {
10149  bitField0_ |= 0x04000000;
10150  maxClauseActivityValue_ = value;
10151  onChanged();
10152  return this;
10153  }
10158  bitField0_ = (bitField0_ & ~0x04000000);
10159  maxClauseActivityValue_ = 1e+20D;
10160  onChanged();
10161  return this;
10162  }
10163 
10164  private java.util.List<java.lang.Integer> restartAlgorithms_ =
10165  java.util.Collections.emptyList();
10166  private void ensureRestartAlgorithmsIsMutable() {
10167  if (!((bitField0_ & 0x08000000) != 0)) {
10168  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
10169  bitField0_ |= 0x08000000;
10170  }
10171  }
10187  return new com.google.protobuf.Internal.ListAdapter<
10188  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
10189  }
10205  return restartAlgorithms_.size();
10206  }
10222  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
10223  }
10239  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
10240  if (value == null) {
10241  throw new NullPointerException();
10242  }
10243  ensureRestartAlgorithmsIsMutable();
10244  restartAlgorithms_.set(index, value.getNumber());
10245  onChanged();
10246  return this;
10247  }
10263  if (value == null) {
10264  throw new NullPointerException();
10265  }
10266  ensureRestartAlgorithmsIsMutable();
10267  restartAlgorithms_.add(value.getNumber());
10268  onChanged();
10269  return this;
10270  }
10286  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
10287  ensureRestartAlgorithmsIsMutable();
10288  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
10289  restartAlgorithms_.add(value.getNumber());
10290  }
10291  onChanged();
10292  return this;
10293  }
10309  restartAlgorithms_ = java.util.Collections.emptyList();
10310  bitField0_ = (bitField0_ & ~0x08000000);
10311  onChanged();
10312  return this;
10313  }
10314 
10315  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
10319  public boolean hasDefaultRestartAlgorithms() {
10320  return ((bitField0_ & 0x10000000) != 0);
10321  }
10325  public java.lang.String getDefaultRestartAlgorithms() {
10326  java.lang.Object ref = defaultRestartAlgorithms_;
10327  if (!(ref instanceof java.lang.String)) {
10328  com.google.protobuf.ByteString bs =
10329  (com.google.protobuf.ByteString) ref;
10330  java.lang.String s = bs.toStringUtf8();
10331  if (bs.isValidUtf8()) {
10332  defaultRestartAlgorithms_ = s;
10333  }
10334  return s;
10335  } else {
10336  return (java.lang.String) ref;
10337  }
10338  }
10342  public com.google.protobuf.ByteString
10344  java.lang.Object ref = defaultRestartAlgorithms_;
10345  if (ref instanceof String) {
10346  com.google.protobuf.ByteString b =
10347  com.google.protobuf.ByteString.copyFromUtf8(
10348  (java.lang.String) ref);
10349  defaultRestartAlgorithms_ = b;
10350  return b;
10351  } else {
10352  return (com.google.protobuf.ByteString) ref;
10353  }
10354  }
10359  java.lang.String value) {
10360  if (value == null) {
10361  throw new NullPointerException();
10362  }
10363  bitField0_ |= 0x10000000;
10364  defaultRestartAlgorithms_ = value;
10365  onChanged();
10366  return this;
10367  }
10372  bitField0_ = (bitField0_ & ~0x10000000);
10373  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
10374  onChanged();
10375  return this;
10376  }
10381  com.google.protobuf.ByteString value) {
10382  if (value == null) {
10383  throw new NullPointerException();
10384  }
10385  bitField0_ |= 0x10000000;
10386  defaultRestartAlgorithms_ = value;
10387  onChanged();
10388  return this;
10389  }
10390 
10391  private int restartPeriod_ = 50;
10400  public boolean hasRestartPeriod() {
10401  return ((bitField0_ & 0x20000000) != 0);
10402  }
10411  public int getRestartPeriod() {
10412  return restartPeriod_;
10413  }
10422  public Builder setRestartPeriod(int value) {
10423  bitField0_ |= 0x20000000;
10424  restartPeriod_ = value;
10425  onChanged();
10426  return this;
10427  }
10437  bitField0_ = (bitField0_ & ~0x20000000);
10438  restartPeriod_ = 50;
10439  onChanged();
10440  return this;
10441  }
10442 
10443  private int restartRunningWindowSize_ = 50;
10451  public boolean hasRestartRunningWindowSize() {
10452  return ((bitField0_ & 0x40000000) != 0);
10453  }
10462  return restartRunningWindowSize_;
10463  }
10472  bitField0_ |= 0x40000000;
10473  restartRunningWindowSize_ = value;
10474  onChanged();
10475  return this;
10476  }
10485  bitField0_ = (bitField0_ & ~0x40000000);
10486  restartRunningWindowSize_ = 50;
10487  onChanged();
10488  return this;
10489  }
10490 
10491  private double restartDlAverageRatio_ = 1D;
10500  public boolean hasRestartDlAverageRatio() {
10501  return ((bitField0_ & 0x80000000) != 0);
10502  }
10511  public double getRestartDlAverageRatio() {
10512  return restartDlAverageRatio_;
10513  }
10522  public Builder setRestartDlAverageRatio(double value) {
10523  bitField0_ |= 0x80000000;
10524  restartDlAverageRatio_ = value;
10525  onChanged();
10526  return this;
10527  }
10537  bitField0_ = (bitField0_ & ~0x80000000);
10538  restartDlAverageRatio_ = 1D;
10539  onChanged();
10540  return this;
10541  }
10542 
10543  private double restartLbdAverageRatio_ = 1D;
10547  public boolean hasRestartLbdAverageRatio() {
10548  return ((bitField1_ & 0x00000001) != 0);
10549  }
10553  public double getRestartLbdAverageRatio() {
10554  return restartLbdAverageRatio_;
10555  }
10559  public Builder setRestartLbdAverageRatio(double value) {
10560  bitField1_ |= 0x00000001;
10561  restartLbdAverageRatio_ = value;
10562  onChanged();
10563  return this;
10564  }
10569  bitField1_ = (bitField1_ & ~0x00000001);
10570  restartLbdAverageRatio_ = 1D;
10571  onChanged();
10572  return this;
10573  }
10574 
10575  private boolean useBlockingRestart_ ;
10585  public boolean hasUseBlockingRestart() {
10586  return ((bitField1_ & 0x00000002) != 0);
10587  }
10597  public boolean getUseBlockingRestart() {
10598  return useBlockingRestart_;
10599  }
10609  public Builder setUseBlockingRestart(boolean value) {
10610  bitField1_ |= 0x00000002;
10611  useBlockingRestart_ = value;
10612  onChanged();
10613  return this;
10614  }
10625  bitField1_ = (bitField1_ & ~0x00000002);
10626  useBlockingRestart_ = false;
10627  onChanged();
10628  return this;
10629  }
10630 
10631  private int blockingRestartWindowSize_ = 5000;
10635  public boolean hasBlockingRestartWindowSize() {
10636  return ((bitField1_ & 0x00000004) != 0);
10637  }
10642  return blockingRestartWindowSize_;
10643  }
10648  bitField1_ |= 0x00000004;
10649  blockingRestartWindowSize_ = value;
10650  onChanged();
10651  return this;
10652  }
10657  bitField1_ = (bitField1_ & ~0x00000004);
10658  blockingRestartWindowSize_ = 5000;
10659  onChanged();
10660  return this;
10661  }
10662 
10663  private double blockingRestartMultiplier_ = 1.4D;
10667  public boolean hasBlockingRestartMultiplier() {
10668  return ((bitField1_ & 0x00000008) != 0);
10669  }
10674  return blockingRestartMultiplier_;
10675  }
10679  public Builder setBlockingRestartMultiplier(double value) {
10680  bitField1_ |= 0x00000008;
10681  blockingRestartMultiplier_ = value;
10682  onChanged();
10683  return this;
10684  }
10689  bitField1_ = (bitField1_ & ~0x00000008);
10690  blockingRestartMultiplier_ = 1.4D;
10691  onChanged();
10692  return this;
10693  }
10694 
10695  private int numConflictsBeforeStrategyChanges_ ;
10706  return ((bitField1_ & 0x00000010) != 0);
10707  }
10718  return numConflictsBeforeStrategyChanges_;
10719  }
10730  bitField1_ |= 0x00000010;
10731  numConflictsBeforeStrategyChanges_ = value;
10732  onChanged();
10733  return this;
10734  }
10745  bitField1_ = (bitField1_ & ~0x00000010);
10746  numConflictsBeforeStrategyChanges_ = 0;
10747  onChanged();
10748  return this;
10749  }
10750 
10751  private double strategyChangeIncreaseRatio_ ;
10761  return ((bitField1_ & 0x00000020) != 0);
10762  }
10772  return strategyChangeIncreaseRatio_;
10773  }
10783  bitField1_ |= 0x00000020;
10784  strategyChangeIncreaseRatio_ = value;
10785  onChanged();
10786  return this;
10787  }
10797  bitField1_ = (bitField1_ & ~0x00000020);
10798  strategyChangeIncreaseRatio_ = 0D;
10799  onChanged();
10800  return this;
10801  }
10802 
10803  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10813  public boolean hasMaxTimeInSeconds() {
10814  return ((bitField1_ & 0x00000040) != 0);
10815  }
10825  public double getMaxTimeInSeconds() {
10826  return maxTimeInSeconds_;
10827  }
10837  public Builder setMaxTimeInSeconds(double value) {
10838  bitField1_ |= 0x00000040;
10839  maxTimeInSeconds_ = value;
10840  onChanged();
10841  return this;
10842  }
10853  bitField1_ = (bitField1_ & ~0x00000040);
10854  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10855  onChanged();
10856  return this;
10857  }
10858 
10859  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10871  public boolean hasMaxDeterministicTime() {
10872  return ((bitField1_ & 0x00000080) != 0);
10873  }
10885  public double getMaxDeterministicTime() {
10886  return maxDeterministicTime_;
10887  }
10899  public Builder setMaxDeterministicTime(double value) {
10900  bitField1_ |= 0x00000080;
10901  maxDeterministicTime_ = value;
10902  onChanged();
10903  return this;
10904  }
10917  bitField1_ = (bitField1_ & ~0x00000080);
10918  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10919  onChanged();
10920  return this;
10921  }
10922 
10923  private long maxNumberOfConflicts_ = 9223372036854775807L;
10936  public boolean hasMaxNumberOfConflicts() {
10937  return ((bitField1_ & 0x00000100) != 0);
10938  }
10951  public long getMaxNumberOfConflicts() {
10952  return maxNumberOfConflicts_;
10953  }
10966  public Builder setMaxNumberOfConflicts(long value) {
10967  bitField1_ |= 0x00000100;
10968  maxNumberOfConflicts_ = value;
10969  onChanged();
10970  return this;
10971  }
10985  bitField1_ = (bitField1_ & ~0x00000100);
10986  maxNumberOfConflicts_ = 9223372036854775807L;
10987  onChanged();
10988  return this;
10989  }
10990 
10991  private long maxMemoryInMb_ = 10000L;
11002  public boolean hasMaxMemoryInMb() {
11003  return ((bitField1_ & 0x00000200) != 0);
11004  }
11015  public long getMaxMemoryInMb() {
11016  return maxMemoryInMb_;
11017  }
11028  public Builder setMaxMemoryInMb(long value) {
11029  bitField1_ |= 0x00000200;
11030  maxMemoryInMb_ = value;
11031  onChanged();
11032  return this;
11033  }
11045  bitField1_ = (bitField1_ & ~0x00000200);
11046  maxMemoryInMb_ = 10000L;
11047  onChanged();
11048  return this;
11049  }
11050 
11051  private boolean treatBinaryClausesSeparately_ = true;
11062  return ((bitField1_ & 0x00000400) != 0);
11063  }
11074  return treatBinaryClausesSeparately_;
11075  }
11086  bitField1_ |= 0x00000400;
11087  treatBinaryClausesSeparately_ = value;
11088  onChanged();
11089  return this;
11090  }
11101  bitField1_ = (bitField1_ & ~0x00000400);
11102  treatBinaryClausesSeparately_ = true;
11103  onChanged();
11104  return this;
11105  }
11106 
11107  private int randomSeed_ = 1;
11120  public boolean hasRandomSeed() {
11121  return ((bitField1_ & 0x00000800) != 0);
11122  }
11135  public int getRandomSeed() {
11136  return randomSeed_;
11137  }
11150  public Builder setRandomSeed(int value) {
11151  bitField1_ |= 0x00000800;
11152  randomSeed_ = value;
11153  onChanged();
11154  return this;
11155  }
11169  bitField1_ = (bitField1_ & ~0x00000800);
11170  randomSeed_ = 1;
11171  onChanged();
11172  return this;
11173  }
11174 
11175  private boolean logSearchProgress_ ;
11183  public boolean hasLogSearchProgress() {
11184  return ((bitField1_ & 0x00001000) != 0);
11185  }
11193  public boolean getLogSearchProgress() {
11194  return logSearchProgress_;
11195  }
11203  public Builder setLogSearchProgress(boolean value) {
11204  bitField1_ |= 0x00001000;
11205  logSearchProgress_ = value;
11206  onChanged();
11207  return this;
11208  }
11217  bitField1_ = (bitField1_ & ~0x00001000);
11218  logSearchProgress_ = false;
11219  onChanged();
11220  return this;
11221  }
11222 
11223  private boolean usePbResolution_ ;
11234  public boolean hasUsePbResolution() {
11235  return ((bitField1_ & 0x00002000) != 0);
11236  }
11247  public boolean getUsePbResolution() {
11248  return usePbResolution_;
11249  }
11260  public Builder setUsePbResolution(boolean value) {
11261  bitField1_ |= 0x00002000;
11262  usePbResolution_ = value;
11263  onChanged();
11264  return this;
11265  }
11277  bitField1_ = (bitField1_ & ~0x00002000);
11278  usePbResolution_ = false;
11279  onChanged();
11280  return this;
11281  }
11282 
11283  private boolean minimizeReductionDuringPbResolution_ ;
11295  return ((bitField1_ & 0x00004000) != 0);
11296  }
11308  return minimizeReductionDuringPbResolution_;
11309  }
11321  bitField1_ |= 0x00004000;
11322  minimizeReductionDuringPbResolution_ = value;
11323  onChanged();
11324  return this;
11325  }
11337  bitField1_ = (bitField1_ & ~0x00004000);
11338  minimizeReductionDuringPbResolution_ = false;
11339  onChanged();
11340  return this;
11341  }
11342 
11343  private boolean countAssumptionLevelsInLbd_ = true;
11359  return ((bitField1_ & 0x00008000) != 0);
11360  }
11376  return countAssumptionLevelsInLbd_;
11377  }
11392  public Builder setCountAssumptionLevelsInLbd(boolean value) {
11393  bitField1_ |= 0x00008000;
11394  countAssumptionLevelsInLbd_ = value;
11395  onChanged();
11396  return this;
11397  }
11413  bitField1_ = (bitField1_ & ~0x00008000);
11414  countAssumptionLevelsInLbd_ = true;
11415  onChanged();
11416  return this;
11417  }
11418 
11419  private int presolveBveThreshold_ = 500;
11429  public boolean hasPresolveBveThreshold() {
11430  return ((bitField1_ & 0x00010000) != 0);
11431  }
11442  return presolveBveThreshold_;
11443  }
11453  public Builder setPresolveBveThreshold(int value) {
11454  bitField1_ |= 0x00010000;
11455  presolveBveThreshold_ = value;
11456  onChanged();
11457  return this;
11458  }
11469  bitField1_ = (bitField1_ & ~0x00010000);
11470  presolveBveThreshold_ = 500;
11471  onChanged();
11472  return this;
11473  }
11474 
11475  private int presolveBveClauseWeight_ = 3;
11484  public boolean hasPresolveBveClauseWeight() {
11485  return ((bitField1_ & 0x00020000) != 0);
11486  }
11496  return presolveBveClauseWeight_;
11497  }
11507  bitField1_ |= 0x00020000;
11508  presolveBveClauseWeight_ = value;
11509  onChanged();
11510  return this;
11511  }
11521  bitField1_ = (bitField1_ & ~0x00020000);
11522  presolveBveClauseWeight_ = 3;
11523  onChanged();
11524  return this;
11525  }
11526 
11527  private double presolveProbingDeterministicTimeLimit_ = 30D;
11537  return ((bitField1_ & 0x00040000) != 0);
11538  }
11548  return presolveProbingDeterministicTimeLimit_;
11549  }
11559  bitField1_ |= 0x00040000;
11560  presolveProbingDeterministicTimeLimit_ = value;
11561  onChanged();
11562  return this;
11563  }
11573  bitField1_ = (bitField1_ & ~0x00040000);
11574  presolveProbingDeterministicTimeLimit_ = 30D;
11575  onChanged();
11576  return this;
11577  }
11578 
11579  private boolean presolveBlockedClause_ = true;
11588  public boolean hasPresolveBlockedClause() {
11589  return ((bitField1_ & 0x00080000) != 0);
11590  }
11599  public boolean getPresolveBlockedClause() {
11600  return presolveBlockedClause_;
11601  }
11610  public Builder setPresolveBlockedClause(boolean value) {
11611  bitField1_ |= 0x00080000;
11612  presolveBlockedClause_ = value;
11613  onChanged();
11614  return this;
11615  }
11625  bitField1_ = (bitField1_ & ~0x00080000);
11626  presolveBlockedClause_ = true;
11627  onChanged();
11628  return this;
11629  }
11630 
11631  private boolean presolveUseBva_ = true;
11639  public boolean hasPresolveUseBva() {
11640  return ((bitField1_ & 0x00100000) != 0);
11641  }
11649  public boolean getPresolveUseBva() {
11650  return presolveUseBva_;
11651  }
11659  public Builder setPresolveUseBva(boolean value) {
11660  bitField1_ |= 0x00100000;
11661  presolveUseBva_ = value;
11662  onChanged();
11663  return this;
11664  }
11673  bitField1_ = (bitField1_ & ~0x00100000);
11674  presolveUseBva_ = true;
11675  onChanged();
11676  return this;
11677  }
11678 
11679  private int presolveBvaThreshold_ = 1;
11690  public boolean hasPresolveBvaThreshold() {
11691  return ((bitField1_ & 0x00200000) != 0);
11692  }
11704  return presolveBvaThreshold_;
11705  }
11716  public Builder setPresolveBvaThreshold(int value) {
11717  bitField1_ |= 0x00200000;
11718  presolveBvaThreshold_ = value;
11719  onChanged();
11720  return this;
11721  }
11733  bitField1_ = (bitField1_ & ~0x00200000);
11734  presolveBvaThreshold_ = 1;
11735  onChanged();
11736  return this;
11737  }
11738 
11739  private int maxPresolveIterations_ = 3;
11749  public boolean hasMaxPresolveIterations() {
11750  return ((bitField1_ & 0x00400000) != 0);
11751  }
11762  return maxPresolveIterations_;
11763  }
11773  public Builder setMaxPresolveIterations(int value) {
11774  bitField1_ |= 0x00400000;
11775  maxPresolveIterations_ = value;
11776  onChanged();
11777  return this;
11778  }
11789  bitField1_ = (bitField1_ & ~0x00400000);
11790  maxPresolveIterations_ = 3;
11791  onChanged();
11792  return this;
11793  }
11794 
11795  private boolean cpModelPresolve_ = true;
11803  public boolean hasCpModelPresolve() {
11804  return ((bitField1_ & 0x00800000) != 0);
11805  }
11813  public boolean getCpModelPresolve() {
11814  return cpModelPresolve_;
11815  }
11823  public Builder setCpModelPresolve(boolean value) {
11824  bitField1_ |= 0x00800000;
11825  cpModelPresolve_ = value;
11826  onChanged();
11827  return this;
11828  }
11837  bitField1_ = (bitField1_ & ~0x00800000);
11838  cpModelPresolve_ = true;
11839  onChanged();
11840  return this;
11841  }
11842 
11843  private int cpModelProbingLevel_ = 2;
11851  public boolean hasCpModelProbingLevel() {
11852  return ((bitField1_ & 0x01000000) != 0);
11853  }
11861  public int getCpModelProbingLevel() {
11862  return cpModelProbingLevel_;
11863  }
11871  public Builder setCpModelProbingLevel(int value) {
11872  bitField1_ |= 0x01000000;
11873  cpModelProbingLevel_ = value;
11874  onChanged();
11875  return this;
11876  }
11885  bitField1_ = (bitField1_ & ~0x01000000);
11886  cpModelProbingLevel_ = 2;
11887  onChanged();
11888  return this;
11889  }
11890 
11891  private boolean cpModelUseSatPresolve_ = true;
11899  public boolean hasCpModelUseSatPresolve() {
11900  return ((bitField1_ & 0x02000000) != 0);
11901  }
11909  public boolean getCpModelUseSatPresolve() {
11910  return cpModelUseSatPresolve_;
11911  }
11919  public Builder setCpModelUseSatPresolve(boolean value) {
11920  bitField1_ |= 0x02000000;
11921  cpModelUseSatPresolve_ = value;
11922  onChanged();
11923  return this;
11924  }
11933  bitField1_ = (bitField1_ & ~0x02000000);
11934  cpModelUseSatPresolve_ = true;
11935  onChanged();
11936  return this;
11937  }
11938 
11939  private boolean expandElementConstraints_ = true;
11948  public boolean hasExpandElementConstraints() {
11949  return ((bitField1_ & 0x04000000) != 0);
11950  }
11959  public boolean getExpandElementConstraints() {
11960  return expandElementConstraints_;
11961  }
11970  public Builder setExpandElementConstraints(boolean value) {
11971  bitField1_ |= 0x04000000;
11972  expandElementConstraints_ = value;
11973  onChanged();
11974  return this;
11975  }
11985  bitField1_ = (bitField1_ & ~0x04000000);
11986  expandElementConstraints_ = true;
11987  onChanged();
11988  return this;
11989  }
11990 
11991  private boolean expandAutomatonConstraints_ = true;
12000  return ((bitField1_ & 0x08000000) != 0);
12001  }
12010  return expandAutomatonConstraints_;
12011  }
12019  public Builder setExpandAutomatonConstraints(boolean value) {
12020  bitField1_ |= 0x08000000;
12021  expandAutomatonConstraints_ = value;
12022  onChanged();
12023  return this;
12024  }
12033  bitField1_ = (bitField1_ & ~0x08000000);
12034  expandAutomatonConstraints_ = true;
12035  onChanged();
12036  return this;
12037  }
12038 
12039  private boolean useOptimizationHints_ = true;
12050  public boolean hasUseOptimizationHints() {
12051  return ((bitField1_ & 0x10000000) != 0);
12052  }
12063  public boolean getUseOptimizationHints() {
12064  return useOptimizationHints_;
12065  }
12076  public Builder setUseOptimizationHints(boolean value) {
12077  bitField1_ |= 0x10000000;
12078  useOptimizationHints_ = value;
12079  onChanged();
12080  return this;
12081  }
12093  bitField1_ = (bitField1_ & ~0x10000000);
12094  useOptimizationHints_ = true;
12095  onChanged();
12096  return this;
12097  }
12098 
12099  private boolean minimizeCore_ = true;
12107  public boolean hasMinimizeCore() {
12108  return ((bitField1_ & 0x20000000) != 0);
12109  }
12117  public boolean getMinimizeCore() {
12118  return minimizeCore_;
12119  }
12127  public Builder setMinimizeCore(boolean value) {
12128  bitField1_ |= 0x20000000;
12129  minimizeCore_ = value;
12130  onChanged();
12131  return this;
12132  }
12141  bitField1_ = (bitField1_ & ~0x20000000);
12142  minimizeCore_ = true;
12143  onChanged();
12144  return this;
12145  }
12146 
12147  private boolean findMultipleCores_ = true;
12156  public boolean hasFindMultipleCores() {
12157  return ((bitField1_ & 0x40000000) != 0);
12158  }
12167  public boolean getFindMultipleCores() {
12168  return findMultipleCores_;
12169  }
12178  public Builder setFindMultipleCores(boolean value) {
12179  bitField1_ |= 0x40000000;
12180  findMultipleCores_ = value;
12181  onChanged();
12182  return this;
12183  }
12193  bitField1_ = (bitField1_ & ~0x40000000);
12194  findMultipleCores_ = true;
12195  onChanged();
12196  return this;
12197  }
12198 
12199  private boolean coverOptimization_ = true;
12208  public boolean hasCoverOptimization() {
12209  return ((bitField1_ & 0x80000000) != 0);
12210  }
12219  public boolean getCoverOptimization() {
12220  return coverOptimization_;
12221  }
12230  public Builder setCoverOptimization(boolean value) {
12231  bitField1_ |= 0x80000000;
12232  coverOptimization_ = value;
12233  onChanged();
12234  return this;
12235  }
12245  bitField1_ = (bitField1_ & ~0x80000000);
12246  coverOptimization_ = true;
12247  onChanged();
12248  return this;
12249  }
12250 
12251  private int maxSatAssumptionOrder_ = 0;
12255  public boolean hasMaxSatAssumptionOrder() {
12256  return ((bitField2_ & 0x00000001) != 0);
12257  }
12262  @SuppressWarnings("deprecation")
12265  }
12270  if (value == null) {
12271  throw new NullPointerException();
12272  }
12273  bitField2_ |= 0x00000001;
12274  maxSatAssumptionOrder_ = value.getNumber();
12275  onChanged();
12276  return this;
12277  }
12282  bitField2_ = (bitField2_ & ~0x00000001);
12283  maxSatAssumptionOrder_ = 0;
12284  onChanged();
12285  return this;
12286  }
12287 
12288  private boolean maxSatReverseAssumptionOrder_ ;
12298  return ((bitField2_ & 0x00000002) != 0);
12299  }
12309  return maxSatReverseAssumptionOrder_;
12310  }
12320  bitField2_ |= 0x00000002;
12321  maxSatReverseAssumptionOrder_ = value;
12322  onChanged();
12323  return this;
12324  }
12334  bitField2_ = (bitField2_ & ~0x00000002);
12335  maxSatReverseAssumptionOrder_ = false;
12336  onChanged();
12337  return this;
12338  }
12339 
12340  private int maxSatStratification_ = 1;
12344  public boolean hasMaxSatStratification() {
12345  return ((bitField2_ & 0x00000004) != 0);
12346  }
12351  @SuppressWarnings("deprecation")
12354  }
12359  if (value == null) {
12360  throw new NullPointerException();
12361  }
12362  bitField2_ |= 0x00000004;
12363  maxSatStratification_ = value.getNumber();
12364  onChanged();
12365  return this;
12366  }
12371  bitField2_ = (bitField2_ & ~0x00000004);
12372  maxSatStratification_ = 1;
12373  onChanged();
12374  return this;
12375  }
12376 
12377  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
12393  return ((bitField2_ & 0x00000008) != 0);
12394  }
12410  return usePrecedencesInDisjunctiveConstraint_;
12411  }
12427  bitField2_ |= 0x00000008;
12428  usePrecedencesInDisjunctiveConstraint_ = value;
12429  onChanged();
12430  return this;
12431  }
12447  bitField2_ = (bitField2_ & ~0x00000008);
12448  usePrecedencesInDisjunctiveConstraint_ = true;
12449  onChanged();
12450  return this;
12451  }
12452 
12453  private boolean useOverloadCheckerInCumulativeConstraint_ ;
12467  return ((bitField2_ & 0x00000010) != 0);
12468  }
12482  return useOverloadCheckerInCumulativeConstraint_;
12483  }
12497  bitField2_ |= 0x00000010;
12498  useOverloadCheckerInCumulativeConstraint_ = value;
12499  onChanged();
12500  return this;
12501  }
12515  bitField2_ = (bitField2_ & ~0x00000010);
12516  useOverloadCheckerInCumulativeConstraint_ = false;
12517  onChanged();
12518  return this;
12519  }
12520 
12521  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
12535  return ((bitField2_ & 0x00000020) != 0);
12536  }
12550  return useTimetableEdgeFindingInCumulativeConstraint_;
12551  }
12565  bitField2_ |= 0x00000020;
12566  useTimetableEdgeFindingInCumulativeConstraint_ = value;
12567  onChanged();
12568  return this;
12569  }
12583  bitField2_ = (bitField2_ & ~0x00000020);
12584  useTimetableEdgeFindingInCumulativeConstraint_ = false;
12585  onChanged();
12586  return this;
12587  }
12588 
12589  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
12605  return ((bitField2_ & 0x00000040) != 0);
12606  }
12622  return useDisjunctiveConstraintInCumulativeConstraint_;
12623  }
12639  bitField2_ |= 0x00000040;
12640  useDisjunctiveConstraintInCumulativeConstraint_ = value;
12641  onChanged();
12642  return this;
12643  }
12659  bitField2_ = (bitField2_ & ~0x00000040);
12660  useDisjunctiveConstraintInCumulativeConstraint_ = true;
12661  onChanged();
12662  return this;
12663  }
12664 
12665  private int linearizationLevel_ = 1;
12676  public boolean hasLinearizationLevel() {
12677  return ((bitField2_ & 0x00000080) != 0);
12678  }
12689  public int getLinearizationLevel() {
12690  return linearizationLevel_;
12691  }
12702  public Builder setLinearizationLevel(int value) {
12703  bitField2_ |= 0x00000080;
12704  linearizationLevel_ = value;
12705  onChanged();
12706  return this;
12707  }
12719  bitField2_ = (bitField2_ & ~0x00000080);
12720  linearizationLevel_ = 1;
12721  onChanged();
12722  return this;
12723  }
12724 
12725  private int booleanEncodingLevel_ = 1;
12734  public boolean hasBooleanEncodingLevel() {
12735  return ((bitField2_ & 0x00000100) != 0);
12736  }
12746  return booleanEncodingLevel_;
12747  }
12756  public Builder setBooleanEncodingLevel(int value) {
12757  bitField2_ |= 0x00000100;
12758  booleanEncodingLevel_ = value;
12759  onChanged();
12760  return this;
12761  }
12771  bitField2_ = (bitField2_ & ~0x00000100);
12772  booleanEncodingLevel_ = 1;
12773  onChanged();
12774  return this;
12775  }
12776 
12777  private int maxNumCuts_ = 5000;
12788  public boolean hasMaxNumCuts() {
12789  return ((bitField2_ & 0x00000200) != 0);
12790  }
12801  public int getMaxNumCuts() {
12802  return maxNumCuts_;
12803  }
12814  public Builder setMaxNumCuts(int value) {
12815  bitField2_ |= 0x00000200;
12816  maxNumCuts_ = value;
12817  onChanged();
12818  return this;
12819  }
12831  bitField2_ = (bitField2_ & ~0x00000200);
12832  maxNumCuts_ = 5000;
12833  onChanged();
12834  return this;
12835  }
12836 
12837  private boolean onlyAddCutsAtLevelZero_ ;
12846  public boolean hasOnlyAddCutsAtLevelZero() {
12847  return ((bitField2_ & 0x00000400) != 0);
12848  }
12857  public boolean getOnlyAddCutsAtLevelZero() {
12858  return onlyAddCutsAtLevelZero_;
12859  }
12868  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
12869  bitField2_ |= 0x00000400;
12870  onlyAddCutsAtLevelZero_ = value;
12871  onChanged();
12872  return this;
12873  }
12883  bitField2_ = (bitField2_ & ~0x00000400);
12884  onlyAddCutsAtLevelZero_ = false;
12885  onChanged();
12886  return this;
12887  }
12888 
12889  private boolean addKnapsackCuts_ ;
12899  public boolean hasAddKnapsackCuts() {
12900  return ((bitField2_ & 0x00000800) != 0);
12901  }
12911  public boolean getAddKnapsackCuts() {
12912  return addKnapsackCuts_;
12913  }
12923  public Builder setAddKnapsackCuts(boolean value) {
12924  bitField2_ |= 0x00000800;
12925  addKnapsackCuts_ = value;
12926  onChanged();
12927  return this;
12928  }
12939  bitField2_ = (bitField2_ & ~0x00000800);
12940  addKnapsackCuts_ = false;
12941  onChanged();
12942  return this;
12943  }
12944 
12945  private boolean addCgCuts_ ;
12954  public boolean hasAddCgCuts() {
12955  return ((bitField2_ & 0x00001000) != 0);
12956  }
12965  public boolean getAddCgCuts() {
12966  return addCgCuts_;
12967  }
12976  public Builder setAddCgCuts(boolean value) {
12977  bitField2_ |= 0x00001000;
12978  addCgCuts_ = value;
12979  onChanged();
12980  return this;
12981  }
12991  bitField2_ = (bitField2_ & ~0x00001000);
12992  addCgCuts_ = false;
12993  onChanged();
12994  return this;
12995  }
12996 
12997  private boolean addMirCuts_ = true;
13006  public boolean hasAddMirCuts() {
13007  return ((bitField2_ & 0x00002000) != 0);
13008  }
13017  public boolean getAddMirCuts() {
13018  return addMirCuts_;
13019  }
13028  public Builder setAddMirCuts(boolean value) {
13029  bitField2_ |= 0x00002000;
13030  addMirCuts_ = value;
13031  onChanged();
13032  return this;
13033  }
13043  bitField2_ = (bitField2_ & ~0x00002000);
13044  addMirCuts_ = true;
13045  onChanged();
13046  return this;
13047  }
13048 
13049  private boolean useMirRounding_ = true;
13059  public boolean hasUseMirRounding() {
13060  return ((bitField2_ & 0x00004000) != 0);
13061  }
13071  public boolean getUseMirRounding() {
13072  return useMirRounding_;
13073  }
13083  public Builder setUseMirRounding(boolean value) {
13084  bitField2_ |= 0x00004000;
13085  useMirRounding_ = value;
13086  onChanged();
13087  return this;
13088  }
13099  bitField2_ = (bitField2_ & ~0x00004000);
13100  useMirRounding_ = true;
13101  onChanged();
13102  return this;
13103  }
13104 
13105  private int maxIntegerRoundingScaling_ = 600;
13117  public boolean hasMaxIntegerRoundingScaling() {
13118  return ((bitField2_ & 0x00008000) != 0);
13119  }
13132  return maxIntegerRoundingScaling_;
13133  }
13146  bitField2_ |= 0x00008000;
13147  maxIntegerRoundingScaling_ = value;
13148  onChanged();
13149  return this;
13150  }
13163  bitField2_ = (bitField2_ & ~0x00008000);
13164  maxIntegerRoundingScaling_ = 600;
13165  onChanged();
13166  return this;
13167  }
13168 
13169  private boolean addLpConstraintsLazily_ = true;
13180  public boolean hasAddLpConstraintsLazily() {
13181  return ((bitField2_ & 0x00010000) != 0);
13182  }
13193  public boolean getAddLpConstraintsLazily() {
13194  return addLpConstraintsLazily_;
13195  }
13206  public Builder setAddLpConstraintsLazily(boolean value) {
13207  bitField2_ |= 0x00010000;
13208  addLpConstraintsLazily_ = value;
13209  onChanged();
13210  return this;
13211  }
13223  bitField2_ = (bitField2_ & ~0x00010000);
13224  addLpConstraintsLazily_ = true;
13225  onChanged();
13226  return this;
13227  }
13228 
13229  private double minOrthogonalityForLpConstraints_ ;
13242  return ((bitField2_ & 0x00020000) != 0);
13243  }
13256  return minOrthogonalityForLpConstraints_;
13257  }
13270  bitField2_ |= 0x00020000;
13271  minOrthogonalityForLpConstraints_ = value;
13272  onChanged();
13273  return this;
13274  }
13287  bitField2_ = (bitField2_ & ~0x00020000);
13288  minOrthogonalityForLpConstraints_ = 0D;
13289  onChanged();
13290  return this;
13291  }
13292 
13293  private long maxInactiveCount_ = 1000L;
13302  public boolean hasMaxInactiveCount() {
13303  return ((bitField2_ & 0x00040000) != 0);
13304  }
13313  public long getMaxInactiveCount() {
13314  return maxInactiveCount_;
13315  }
13324  public Builder setMaxInactiveCount(long value) {
13325  bitField2_ |= 0x00040000;
13326  maxInactiveCount_ = value;
13327  onChanged();
13328  return this;
13329  }
13339  bitField2_ = (bitField2_ & ~0x00040000);
13340  maxInactiveCount_ = 1000L;
13341  onChanged();
13342  return this;
13343  }
13344 
13345  private long constraintRemovalBatchSize_ = 100L;
13355  return ((bitField2_ & 0x00080000) != 0);
13356  }
13366  return constraintRemovalBatchSize_;
13367  }
13377  bitField2_ |= 0x00080000;
13378  constraintRemovalBatchSize_ = value;
13379  onChanged();
13380  return this;
13381  }
13391  bitField2_ = (bitField2_ & ~0x00080000);
13392  constraintRemovalBatchSize_ = 100L;
13393  onChanged();
13394  return this;
13395  }
13396 
13397  private int searchBranching_ = 0;
13401  public boolean hasSearchBranching() {
13402  return ((bitField2_ & 0x00100000) != 0);
13403  }
13408  @SuppressWarnings("deprecation")
13410  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
13411  }
13416  if (value == null) {
13417  throw new NullPointerException();
13418  }
13419  bitField2_ |= 0x00100000;
13420  searchBranching_ = value.getNumber();
13421  onChanged();
13422  return this;
13423  }
13428  bitField2_ = (bitField2_ & ~0x00100000);
13429  searchBranching_ = 0;
13430  onChanged();
13431  return this;
13432  }
13433 
13434  private boolean exploitIntegerLpSolution_ = true;
13445  public boolean hasExploitIntegerLpSolution() {
13446  return ((bitField2_ & 0x00200000) != 0);
13447  }
13458  public boolean getExploitIntegerLpSolution() {
13459  return exploitIntegerLpSolution_;
13460  }
13471  public Builder setExploitIntegerLpSolution(boolean value) {
13472  bitField2_ |= 0x00200000;
13473  exploitIntegerLpSolution_ = value;
13474  onChanged();
13475  return this;
13476  }
13488  bitField2_ = (bitField2_ & ~0x00200000);
13489  exploitIntegerLpSolution_ = true;
13490  onChanged();
13491  return this;
13492  }
13493 
13494  private boolean exploitAllLpSolution_ = true;
13504  public boolean hasExploitAllLpSolution() {
13505  return ((bitField2_ & 0x00400000) != 0);
13506  }
13516  public boolean getExploitAllLpSolution() {
13517  return exploitAllLpSolution_;
13518  }
13528  public Builder setExploitAllLpSolution(boolean value) {
13529  bitField2_ |= 0x00400000;
13530  exploitAllLpSolution_ = value;
13531  onChanged();
13532  return this;
13533  }
13544  bitField2_ = (bitField2_ & ~0x00400000);
13545  exploitAllLpSolution_ = true;
13546  onChanged();
13547  return this;
13548  }
13549 
13550  private boolean exploitBestSolution_ ;
13558  public boolean hasExploitBestSolution() {
13559  return ((bitField2_ & 0x00800000) != 0);
13560  }
13568  public boolean getExploitBestSolution() {
13569  return exploitBestSolution_;
13570  }
13578  public Builder setExploitBestSolution(boolean value) {
13579  bitField2_ |= 0x00800000;
13580  exploitBestSolution_ = value;
13581  onChanged();
13582  return this;
13583  }
13592  bitField2_ = (bitField2_ & ~0x00800000);
13593  exploitBestSolution_ = false;
13594  onChanged();
13595  return this;
13596  }
13597 
13598  private boolean exploitObjective_ = true;
13607  public boolean hasExploitObjective() {
13608  return ((bitField2_ & 0x01000000) != 0);
13609  }
13618  public boolean getExploitObjective() {
13619  return exploitObjective_;
13620  }
13629  public Builder setExploitObjective(boolean value) {
13630  bitField2_ |= 0x01000000;
13631  exploitObjective_ = value;
13632  onChanged();
13633  return this;
13634  }
13644  bitField2_ = (bitField2_ & ~0x01000000);
13645  exploitObjective_ = true;
13646  onChanged();
13647  return this;
13648  }
13649 
13650  private long probingPeriodAtRoot_ ;
13660  public boolean hasProbingPeriodAtRoot() {
13661  return ((bitField2_ & 0x02000000) != 0);
13662  }
13672  public long getProbingPeriodAtRoot() {
13673  return probingPeriodAtRoot_;
13674  }
13684  public Builder setProbingPeriodAtRoot(long value) {
13685  bitField2_ |= 0x02000000;
13686  probingPeriodAtRoot_ = value;
13687  onChanged();
13688  return this;
13689  }
13700  bitField2_ = (bitField2_ & ~0x02000000);
13701  probingPeriodAtRoot_ = 0L;
13702  onChanged();
13703  return this;
13704  }
13705 
13706  private long pseudoCostReliabilityThreshold_ = 100L;
13716  return ((bitField2_ & 0x04000000) != 0);
13717  }
13727  return pseudoCostReliabilityThreshold_;
13728  }
13738  bitField2_ |= 0x04000000;
13739  pseudoCostReliabilityThreshold_ = value;
13740  onChanged();
13741  return this;
13742  }
13752  bitField2_ = (bitField2_ & ~0x04000000);
13753  pseudoCostReliabilityThreshold_ = 100L;
13754  onChanged();
13755  return this;
13756  }
13757 
13758  private boolean optimizeWithCore_ ;
13769  public boolean hasOptimizeWithCore() {
13770  return ((bitField2_ & 0x08000000) != 0);
13771  }
13782  public boolean getOptimizeWithCore() {
13783  return optimizeWithCore_;
13784  }
13795  public Builder setOptimizeWithCore(boolean value) {
13796  bitField2_ |= 0x08000000;
13797  optimizeWithCore_ = value;
13798  onChanged();
13799  return this;
13800  }
13812  bitField2_ = (bitField2_ & ~0x08000000);
13813  optimizeWithCore_ = false;
13814  onChanged();
13815  return this;
13816  }
13817 
13818  private int binarySearchNumConflicts_ = -1;
13829  public boolean hasBinarySearchNumConflicts() {
13830  return ((bitField2_ & 0x10000000) != 0);
13831  }
13843  return binarySearchNumConflicts_;
13844  }
13856  bitField2_ |= 0x10000000;
13857  binarySearchNumConflicts_ = value;
13858  onChanged();
13859  return this;
13860  }
13872  bitField2_ = (bitField2_ & ~0x10000000);
13873  binarySearchNumConflicts_ = -1;
13874  onChanged();
13875  return this;
13876  }
13877 
13878  private boolean optimizeWithMaxHs_ ;
13891  public boolean hasOptimizeWithMaxHs() {
13892  return ((bitField2_ & 0x20000000) != 0);
13893  }
13906  public boolean getOptimizeWithMaxHs() {
13907  return optimizeWithMaxHs_;
13908  }
13921  public Builder setOptimizeWithMaxHs(boolean value) {
13922  bitField2_ |= 0x20000000;
13923  optimizeWithMaxHs_ = value;
13924  onChanged();
13925  return this;
13926  }
13940  bitField2_ = (bitField2_ & ~0x20000000);
13941  optimizeWithMaxHs_ = false;
13942  onChanged();
13943  return this;
13944  }
13945 
13946  private boolean enumerateAllSolutions_ ;
13959  public boolean hasEnumerateAllSolutions() {
13960  return ((bitField2_ & 0x40000000) != 0);
13961  }
13974  public boolean getEnumerateAllSolutions() {
13975  return enumerateAllSolutions_;
13976  }
13989  public Builder setEnumerateAllSolutions(boolean value) {
13990  bitField2_ |= 0x40000000;
13991  enumerateAllSolutions_ = value;
13992  onChanged();
13993  return this;
13994  }
14008  bitField2_ = (bitField2_ & ~0x40000000);
14009  enumerateAllSolutions_ = false;
14010  onChanged();
14011  return this;
14012  }
14013 
14014  private boolean fillTightenedDomainsInResponse_ ;
14027  return ((bitField2_ & 0x80000000) != 0);
14028  }
14041  return fillTightenedDomainsInResponse_;
14042  }
14055  bitField2_ |= 0x80000000;
14056  fillTightenedDomainsInResponse_ = value;
14057  onChanged();
14058  return this;
14059  }
14072  bitField2_ = (bitField2_ & ~0x80000000);
14073  fillTightenedDomainsInResponse_ = false;
14074  onChanged();
14075  return this;
14076  }
14077 
14078  private boolean instantiateAllVariables_ = true;
14087  public boolean hasInstantiateAllVariables() {
14088  return ((bitField3_ & 0x00000001) != 0);
14089  }
14098  public boolean getInstantiateAllVariables() {
14099  return instantiateAllVariables_;
14100  }
14109  public Builder setInstantiateAllVariables(boolean value) {
14110  bitField3_ |= 0x00000001;
14111  instantiateAllVariables_ = value;
14112  onChanged();
14113  return this;
14114  }
14124  bitField3_ = (bitField3_ & ~0x00000001);
14125  instantiateAllVariables_ = true;
14126  onChanged();
14127  return this;
14128  }
14129 
14130  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
14142  return ((bitField3_ & 0x00000002) != 0);
14143  }
14155  return autoDetectGreaterThanAtLeastOneOf_;
14156  }
14168  bitField3_ |= 0x00000002;
14169  autoDetectGreaterThanAtLeastOneOf_ = value;
14170  onChanged();
14171  return this;
14172  }
14184  bitField3_ = (bitField3_ & ~0x00000002);
14185  autoDetectGreaterThanAtLeastOneOf_ = true;
14186  onChanged();
14187  return this;
14188  }
14189 
14190  private boolean stopAfterFirstSolution_ ;
14198  public boolean hasStopAfterFirstSolution() {
14199  return ((bitField3_ & 0x00000004) != 0);
14200  }
14208  public boolean getStopAfterFirstSolution() {
14209  return stopAfterFirstSolution_;
14210  }
14218  public Builder setStopAfterFirstSolution(boolean value) {
14219  bitField3_ |= 0x00000004;
14220  stopAfterFirstSolution_ = value;
14221  onChanged();
14222  return this;
14223  }
14232  bitField3_ = (bitField3_ & ~0x00000004);
14233  stopAfterFirstSolution_ = false;
14234  onChanged();
14235  return this;
14236  }
14237 
14238  private int numSearchWorkers_ = 1;
14247  public boolean hasNumSearchWorkers() {
14248  return ((bitField3_ & 0x00000008) != 0);
14249  }
14258  public int getNumSearchWorkers() {
14259  return numSearchWorkers_;
14260  }
14269  public Builder setNumSearchWorkers(int value) {
14270  bitField3_ |= 0x00000008;
14271  numSearchWorkers_ = value;
14272  onChanged();
14273  return this;
14274  }
14284  bitField3_ = (bitField3_ & ~0x00000008);
14285  numSearchWorkers_ = 1;
14286  onChanged();
14287  return this;
14288  }
14289 
14290  private boolean interleaveSearch_ ;
14301  public boolean hasInterleaveSearch() {
14302  return ((bitField3_ & 0x00000010) != 0);
14303  }
14314  public boolean getInterleaveSearch() {
14315  return interleaveSearch_;
14316  }
14327  public Builder setInterleaveSearch(boolean value) {
14328  bitField3_ |= 0x00000010;
14329  interleaveSearch_ = value;
14330  onChanged();
14331  return this;
14332  }
14344  bitField3_ = (bitField3_ & ~0x00000010);
14345  interleaveSearch_ = false;
14346  onChanged();
14347  return this;
14348  }
14349 
14350  private boolean reduceMemoryUsageInInterleaveMode_ = true;
14359  return ((bitField3_ & 0x00000020) != 0);
14360  }
14369  return reduceMemoryUsageInInterleaveMode_;
14370  }
14379  bitField3_ |= 0x00000020;
14380  reduceMemoryUsageInInterleaveMode_ = value;
14381  onChanged();
14382  return this;
14383  }
14392  bitField3_ = (bitField3_ & ~0x00000020);
14393  reduceMemoryUsageInInterleaveMode_ = true;
14394  onChanged();
14395  return this;
14396  }
14397 
14398  private boolean deterministicParallelSearch_ ;
14409  return ((bitField3_ & 0x00000040) != 0);
14410  }
14421  return deterministicParallelSearch_;
14422  }
14432  public Builder setDeterministicParallelSearch(boolean value) {
14433  bitField3_ |= 0x00000040;
14434  deterministicParallelSearch_ = value;
14435  onChanged();
14436  return this;
14437  }
14448  bitField3_ = (bitField3_ & ~0x00000040);
14449  deterministicParallelSearch_ = false;
14450  onChanged();
14451  return this;
14452  }
14453 
14454  private boolean shareObjectiveBounds_ = true;
14462  public boolean hasShareObjectiveBounds() {
14463  return ((bitField3_ & 0x00000080) != 0);
14464  }
14472  public boolean getShareObjectiveBounds() {
14473  return shareObjectiveBounds_;
14474  }
14482  public Builder setShareObjectiveBounds(boolean value) {
14483  bitField3_ |= 0x00000080;
14484  shareObjectiveBounds_ = value;
14485  onChanged();
14486  return this;
14487  }
14496  bitField3_ = (bitField3_ & ~0x00000080);
14497  shareObjectiveBounds_ = true;
14498  onChanged();
14499  return this;
14500  }
14501 
14502  private boolean shareLevelZeroBounds_ = true;
14510  public boolean hasShareLevelZeroBounds() {
14511  return ((bitField3_ & 0x00000100) != 0);
14512  }
14520  public boolean getShareLevelZeroBounds() {
14521  return shareLevelZeroBounds_;
14522  }
14530  public Builder setShareLevelZeroBounds(boolean value) {
14531  bitField3_ |= 0x00000100;
14532  shareLevelZeroBounds_ = value;
14533  onChanged();
14534  return this;
14535  }
14544  bitField3_ = (bitField3_ & ~0x00000100);
14545  shareLevelZeroBounds_ = true;
14546  onChanged();
14547  return this;
14548  }
14549 
14550  private boolean useLnsOnly_ ;
14558  public boolean hasUseLnsOnly() {
14559  return ((bitField3_ & 0x00000200) != 0);
14560  }
14568  public boolean getUseLnsOnly() {
14569  return useLnsOnly_;
14570  }
14578  public Builder setUseLnsOnly(boolean value) {
14579  bitField3_ |= 0x00000200;
14580  useLnsOnly_ = value;
14581  onChanged();
14582  return this;
14583  }
14592  bitField3_ = (bitField3_ & ~0x00000200);
14593  useLnsOnly_ = false;
14594  onChanged();
14595  return this;
14596  }
14597 
14598  private boolean lnsFocusOnDecisionVariables_ ;
14603  return ((bitField3_ & 0x00000400) != 0);
14604  }
14609  return lnsFocusOnDecisionVariables_;
14610  }
14614  public Builder setLnsFocusOnDecisionVariables(boolean value) {
14615  bitField3_ |= 0x00000400;
14616  lnsFocusOnDecisionVariables_ = value;
14617  onChanged();
14618  return this;
14619  }
14624  bitField3_ = (bitField3_ & ~0x00000400);
14625  lnsFocusOnDecisionVariables_ = false;
14626  onChanged();
14627  return this;
14628  }
14629 
14630  private boolean useRinsLns_ = true;
14638  public boolean hasUseRinsLns() {
14639  return ((bitField3_ & 0x00000800) != 0);
14640  }
14648  public boolean getUseRinsLns() {
14649  return useRinsLns_;
14650  }
14658  public Builder setUseRinsLns(boolean value) {
14659  bitField3_ |= 0x00000800;
14660  useRinsLns_ = value;
14661  onChanged();
14662  return this;
14663  }
14672  bitField3_ = (bitField3_ & ~0x00000800);
14673  useRinsLns_ = true;
14674  onChanged();
14675  return this;
14676  }
14677 
14678  private boolean diversifyLnsParams_ ;
14686  public boolean hasDiversifyLnsParams() {
14687  return ((bitField3_ & 0x00001000) != 0);
14688  }
14696  public boolean getDiversifyLnsParams() {
14697  return diversifyLnsParams_;
14698  }
14706  public Builder setDiversifyLnsParams(boolean value) {
14707  bitField3_ |= 0x00001000;
14708  diversifyLnsParams_ = value;
14709  onChanged();
14710  return this;
14711  }
14720  bitField3_ = (bitField3_ & ~0x00001000);
14721  diversifyLnsParams_ = false;
14722  onChanged();
14723  return this;
14724  }
14725 
14726  private boolean randomizeSearch_ ;
14734  public boolean hasRandomizeSearch() {
14735  return ((bitField3_ & 0x00002000) != 0);
14736  }
14744  public boolean getRandomizeSearch() {
14745  return randomizeSearch_;
14746  }
14754  public Builder setRandomizeSearch(boolean value) {
14755  bitField3_ |= 0x00002000;
14756  randomizeSearch_ = value;
14757  onChanged();
14758  return this;
14759  }
14768  bitField3_ = (bitField3_ & ~0x00002000);
14769  randomizeSearch_ = false;
14770  onChanged();
14771  return this;
14772  }
14773 
14774  private long searchRandomizationTolerance_ ;
14789  return ((bitField3_ & 0x00004000) != 0);
14790  }
14805  return searchRandomizationTolerance_;
14806  }
14821  bitField3_ |= 0x00004000;
14822  searchRandomizationTolerance_ = value;
14823  onChanged();
14824  return this;
14825  }
14840  bitField3_ = (bitField3_ & ~0x00004000);
14841  searchRandomizationTolerance_ = 0L;
14842  onChanged();
14843  return this;
14844  }
14845 
14846  private boolean useOptionalVariables_ = true;
14856  public boolean hasUseOptionalVariables() {
14857  return ((bitField3_ & 0x00008000) != 0);
14858  }
14868  public boolean getUseOptionalVariables() {
14869  return useOptionalVariables_;
14870  }
14880  public Builder setUseOptionalVariables(boolean value) {
14881  bitField3_ |= 0x00008000;
14882  useOptionalVariables_ = value;
14883  onChanged();
14884  return this;
14885  }
14896  bitField3_ = (bitField3_ & ~0x00008000);
14897  useOptionalVariables_ = true;
14898  onChanged();
14899  return this;
14900  }
14901 
14902  private boolean useExactLpReason_ = true;
14913  public boolean hasUseExactLpReason() {
14914  return ((bitField3_ & 0x00010000) != 0);
14915  }
14926  public boolean getUseExactLpReason() {
14927  return useExactLpReason_;
14928  }
14939  public Builder setUseExactLpReason(boolean value) {
14940  bitField3_ |= 0x00010000;
14941  useExactLpReason_ = value;
14942  onChanged();
14943  return this;
14944  }
14956  bitField3_ = (bitField3_ & ~0x00010000);
14957  useExactLpReason_ = true;
14958  onChanged();
14959  return this;
14960  }
14961 
14962  private boolean useBranchingInLp_ ;
14972  public boolean hasUseBranchingInLp() {
14973  return ((bitField3_ & 0x00020000) != 0);
14974  }
14984  public boolean getUseBranchingInLp() {
14985  return useBranchingInLp_;
14986  }
14996  public Builder setUseBranchingInLp(boolean value) {
14997  bitField3_ |= 0x00020000;
14998  useBranchingInLp_ = value;
14999  onChanged();
15000  return this;
15001  }
15012  bitField3_ = (bitField3_ & ~0x00020000);
15013  useBranchingInLp_ = false;
15014  onChanged();
15015  return this;
15016  }
15017 
15018  private boolean useCombinedNoOverlap_ ;
15028  public boolean hasUseCombinedNoOverlap() {
15029  return ((bitField3_ & 0x00040000) != 0);
15030  }
15040  public boolean getUseCombinedNoOverlap() {
15041  return useCombinedNoOverlap_;
15042  }
15052  public Builder setUseCombinedNoOverlap(boolean value) {
15053  bitField3_ |= 0x00040000;
15054  useCombinedNoOverlap_ = value;
15055  onChanged();
15056  return this;
15057  }
15068  bitField3_ = (bitField3_ & ~0x00040000);
15069  useCombinedNoOverlap_ = false;
15070  onChanged();
15071  return this;
15072  }
15073 
15074  private boolean catchSigintSignal_ = true;
15084  public boolean hasCatchSigintSignal() {
15085  return ((bitField3_ & 0x00080000) != 0);
15086  }
15096  public boolean getCatchSigintSignal() {
15097  return catchSigintSignal_;
15098  }
15108  public Builder setCatchSigintSignal(boolean value) {
15109  bitField3_ |= 0x00080000;
15110  catchSigintSignal_ = value;
15111  onChanged();
15112  return this;
15113  }
15124  bitField3_ = (bitField3_ & ~0x00080000);
15125  catchSigintSignal_ = true;
15126  onChanged();
15127  return this;
15128  }
15129 
15130  private double mipMaxBound_ = 10000000D;
15140  public boolean hasMipMaxBound() {
15141  return ((bitField3_ & 0x00100000) != 0);
15142  }
15152  public double getMipMaxBound() {
15153  return mipMaxBound_;
15154  }
15164  public Builder setMipMaxBound(double value) {
15165  bitField3_ |= 0x00100000;
15166  mipMaxBound_ = value;
15167  onChanged();
15168  return this;
15169  }
15180  bitField3_ = (bitField3_ & ~0x00100000);
15181  mipMaxBound_ = 10000000D;
15182  onChanged();
15183  return this;
15184  }
15185 
15186  private double mipVarScaling_ = 1D;
15196  public boolean hasMipVarScaling() {
15197  return ((bitField3_ & 0x00200000) != 0);
15198  }
15208  public double getMipVarScaling() {
15209  return mipVarScaling_;
15210  }
15220  public Builder setMipVarScaling(double value) {
15221  bitField3_ |= 0x00200000;
15222  mipVarScaling_ = value;
15223  onChanged();
15224  return this;
15225  }
15236  bitField3_ = (bitField3_ & ~0x00200000);
15237  mipVarScaling_ = 1D;
15238  onChanged();
15239  return this;
15240  }
15241 
15242  private double mipWantedPrecision_ = 1e-06D;
15258  public boolean hasMipWantedPrecision() {
15259  return ((bitField3_ & 0x00400000) != 0);
15260  }
15276  public double getMipWantedPrecision() {
15277  return mipWantedPrecision_;
15278  }
15294  public Builder setMipWantedPrecision(double value) {
15295  bitField3_ |= 0x00400000;
15296  mipWantedPrecision_ = value;
15297  onChanged();
15298  return this;
15299  }
15316  bitField3_ = (bitField3_ & ~0x00400000);
15317  mipWantedPrecision_ = 1e-06D;
15318  onChanged();
15319  return this;
15320  }
15321 
15322  private int mipMaxActivityExponent_ = 53;
15336  public boolean hasMipMaxActivityExponent() {
15337  return ((bitField3_ & 0x00800000) != 0);
15338  }
15353  return mipMaxActivityExponent_;
15354  }
15369  bitField3_ |= 0x00800000;
15370  mipMaxActivityExponent_ = value;
15371  onChanged();
15372  return this;
15373  }
15388  bitField3_ = (bitField3_ & ~0x00800000);
15389  mipMaxActivityExponent_ = 53;
15390  onChanged();
15391  return this;
15392  }
15393 
15394  private double mipCheckPrecision_ = 0.0001D;
15405  public boolean hasMipCheckPrecision() {
15406  return ((bitField3_ & 0x01000000) != 0);
15407  }
15418  public double getMipCheckPrecision() {
15419  return mipCheckPrecision_;
15420  }
15431  public Builder setMipCheckPrecision(double value) {
15432  bitField3_ |= 0x01000000;
15433  mipCheckPrecision_ = value;
15434  onChanged();
15435  return this;
15436  }
15448  bitField3_ = (bitField3_ & ~0x01000000);
15449  mipCheckPrecision_ = 0.0001D;
15450  onChanged();
15451  return this;
15452  }
15453  @java.lang.Override
15455  final com.google.protobuf.UnknownFieldSet unknownFields) {
15456  return super.setUnknownFields(unknownFields);
15457  }
15458 
15459  @java.lang.Override
15461  final com.google.protobuf.UnknownFieldSet unknownFields) {
15462  return super.mergeUnknownFields(unknownFields);
15463  }
15464 
15465 
15466  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
15467  }
15468 
15469  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
15470  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
15471  static {
15472  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
15473  }
15474 
15476  return DEFAULT_INSTANCE;
15477  }
15478 
15479  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
15480  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
15481  @java.lang.Override
15482  public SatParameters parsePartialFrom(
15483  com.google.protobuf.CodedInputStream input,
15484  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15485  throws com.google.protobuf.InvalidProtocolBufferException {
15486  return new SatParameters(input, extensionRegistry);
15487  }
15488  };
15489 
15490  public static com.google.protobuf.Parser<SatParameters> parser() {
15491  return PARSER;
15492  }
15493 
15494  @java.lang.Override
15495  public com.google.protobuf.Parser<SatParameters> getParserForType() {
15496  return PARSER;
15497  }
15498 
15499  @java.lang.Override
15501  return DEFAULT_INSTANCE;
15502  }
15503 
15504 }
15505 
.lang.Override Builder newBuilderForType()
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder setGlucoseDecayIncrementPeriod(int value)
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder clearBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Deprecated static BinaryMinizationAlgorithm valueOf(int value)
static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER
.lang.Override final boolean isInitialized()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER
static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder clearMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
Builder clearMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMinimizeWithPropagationNumDecisions(int value)
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER
static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Deprecated static MaxSatAssumptionOrder valueOf(int value)
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder clearPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
EXPERIMENTAL_BINARY_MINIMIZATION
EXPERIMENTAL_BINARY_MINIMIZATION = 3;
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Deprecated static VariableOrder valueOf(int value)
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
static MaxSatAssumptionOrder forNumber(int value)
.lang.Deprecated static ClauseOrdering valueOf(int value)
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
Builder clearLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override Builder mergeFrom(com.google.protobuf.Message other)
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setPbCleanupRatio(double value)
optional double pb_cleanup_ratio = 47 [default = 0.5];
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder clearBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
Builder setGlucoseDecayIncrement(double value)
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setSubsumptionDuringConflictAnalysis(boolean value)
.lang.Deprecated static ClauseProtection valueOf(int value)
static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER
Builder setFillTightenedDomainsInResponse(boolean value)
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER
Builder clearMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override void writeTo(com.google.protobuf.CodedOutputStream output)
Builder setMaxClauseActivityValue(double value)
optional double max_clause_activity_value = 18 [default = 1e+20];
Builder setLnsFocusOnDecisionVariables(boolean value)
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder clearMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder clearGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
Builder setMinimizeReductionDuringPbResolution(boolean value)
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
Builder setUseOverloadCheckerInCumulativeConstraint(boolean value)
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
Builder clearGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
.lang.Override boolean equals(final java.lang.Object obj)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static ConflictMinimizationAlgorithm forNumber(int value)
Builder clearSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
.lang.Override final boolean isInitialized()
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static MaxSatStratificationAlgorithm forNumber(int value)
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override com.google.ortools.sat.SatParameters buildPartial()
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int MINIMIZE_WITH_PROPAGATION_NUM_DECISIONS_FIELD_NUMBER
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override Builder toBuilder()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
static com.google.protobuf.Parser< SatParameters > parser()
static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER
BINARY_MINIMIZATION_WITH_REACHABILITY
BINARY_MINIMIZATION_WITH_REACHABILITY = 2;
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
Builder clearBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Deprecated static Polarity valueOf(int value)
Builder setBlockingRestartWindowSize(int value)
optional int32 blocking_restart_window_size = 65 [default = 5000];
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static BinaryMinizationAlgorithm forNumber(int value)
static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER
static final int PROBING_PERIOD_AT_ROOT_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Deprecated static RestartAlgorithm valueOf(int value)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
static final int MINIMIZE_WITH_PROPAGATION_RESTART_PERIOD_FIELD_NUMBER
.lang.Override java.lang.Object newInstance(UnusedPrivateParameter unused)
static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER
Builder clearMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters build()
Builder setUseDisjunctiveConstraintInCumulativeConstraint(boolean value)
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
static final int MIP_WANTED_PRECISION_FIELD_NUMBER
static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER
static com.google.ortools.sat.SatParameters getDefaultInstance()
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER
.lang.Deprecated static ConflictMinimizationAlgorithm valueOf(int value)
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override com.google.protobuf.Parser< SatParameters > getParserForType()
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
Builder clearClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int REDUCE_MEMORY_USAGE_IN_INTERLEAVE_MODE_FIELD_NUMBER
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER
static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER
Builder setBlockingRestartMultiplier(double value)
optional double blocking_restart_multiplier = 66 [default = 1.4];
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setMaxVariableActivityValue(double value)
optional double max_variable_activity_value = 16 [default = 1e+100];
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
Builder clearMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder clearPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder clearClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
.lang.Deprecated static MaxSatStratificationAlgorithm valueOf(int value)
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setPresolveProbingDeterministicTimeLimit(double value)
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
Builder clearRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
Builder setReduceMemoryUsageInInterleaveMode(boolean value)
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
static final int EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
.lang.Deprecated static SearchBranching valueOf(int value)
.lang.Deprecated static final com.google.protobuf.Parser< SatParameters > PARSER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setDefaultRestartAlgorithms(java.lang.String value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4;
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int USE_BLOCKING_RESTART_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder clearDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder clearInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
Builder setUseTimetableEdgeFindingInCumulativeConstraint(boolean value)
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder setRestartLbdAverageRatio(double value)
optional double restart_lbd_average_ratio = 71 [default = 1];