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  useOptimizationHints_ = true;
70  minimizeCore_ = true;
71  findMultipleCores_ = true;
72  coverOptimization_ = true;
73  maxSatAssumptionOrder_ = 0;
74  maxSatStratification_ = 1;
75  usePrecedencesInDisjunctiveConstraint_ = true;
76  useDisjunctiveConstraintInCumulativeConstraint_ = true;
77  linearizationLevel_ = 1;
78  booleanEncodingLevel_ = 1;
79  maxNumCuts_ = 5000;
80  addMirCuts_ = true;
81  useMirRounding_ = true;
82  maxIntegerRoundingScaling_ = 600;
83  addLpConstraintsLazily_ = true;
84  maxInactiveCount_ = 1000L;
85  constraintRemovalBatchSize_ = 100L;
86  searchBranching_ = 0;
87  exploitIntegerLpSolution_ = true;
88  exploitAllLpSolution_ = true;
89  exploitObjective_ = true;
90  pseudoCostReliabilityThreshold_ = 100L;
91  binarySearchNumConflicts_ = -1;
92  cpModelPresolve_ = true;
93  cpModelProbingLevel_ = 2;
94  cpModelUseSatPresolve_ = true;
95  instantiateAllVariables_ = true;
96  autoDetectGreaterThanAtLeastOneOf_ = true;
97  numSearchWorkers_ = 1;
98  shareObjectiveBounds_ = true;
99  shareLevelZeroBounds_ = true;
100  useRinsLns_ = true;
101  useOptionalVariables_ = true;
102  useExactLpReason_ = true;
103  mipMaxBound_ = 10000000D;
104  mipVarScaling_ = 1D;
105  mipWantedPrecision_ = 1e-06D;
106  mipMaxActivityExponent_ = 53;
107  mipCheckPrecision_ = 0.0001D;
108  catchSigintSignal_ = true;
109  }
110 
111  @java.lang.Override
112  @SuppressWarnings({"unused"})
113  protected java.lang.Object newInstance(
114  UnusedPrivateParameter unused) {
115  return new SatParameters();
116  }
117 
118  @java.lang.Override
119  public final com.google.protobuf.UnknownFieldSet
121  return this.unknownFields;
122  }
123  private SatParameters(
124  com.google.protobuf.CodedInputStream input,
125  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
126  throws com.google.protobuf.InvalidProtocolBufferException {
127  this();
128  if (extensionRegistry == null) {
129  throw new java.lang.NullPointerException();
130  }
131  int mutable_bitField0_ = 0;
132  int mutable_bitField1_ = 0;
133  int mutable_bitField2_ = 0;
134  int mutable_bitField3_ = 0;
135  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
136  com.google.protobuf.UnknownFieldSet.newBuilder();
137  try {
138  boolean done = false;
139  while (!done) {
140  int tag = input.readTag();
141  switch (tag) {
142  case 0:
143  done = true;
144  break;
145  case 8: {
146  int rawValue = input.readEnum();
147  @SuppressWarnings("deprecation")
148  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
149  if (value == null) {
150  unknownFields.mergeVarintField(1, rawValue);
151  } else {
152  bitField0_ |= 0x00000001;
153  preferredVariableOrder_ = rawValue;
154  }
155  break;
156  }
157  case 16: {
158  int rawValue = input.readEnum();
159  @SuppressWarnings("deprecation")
160  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
161  if (value == null) {
162  unknownFields.mergeVarintField(2, rawValue);
163  } else {
164  bitField0_ |= 0x00000002;
165  initialPolarity_ = rawValue;
166  }
167  break;
168  }
169  case 32: {
170  int rawValue = input.readEnum();
171  @SuppressWarnings("deprecation")
172  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
173  if (value == null) {
174  unknownFields.mergeVarintField(4, rawValue);
175  } else {
176  bitField0_ |= 0x00000100;
177  minimizationAlgorithm_ = rawValue;
178  }
179  break;
180  }
181  case 88: {
182  bitField0_ |= 0x00000800;
183  clauseCleanupPeriod_ = input.readInt32();
184  break;
185  }
186  case 104: {
187  bitField0_ |= 0x00001000;
188  clauseCleanupTarget_ = input.readInt32();
189  break;
190  }
191  case 121: {
192  bitField0_ |= 0x00100000;
193  variableActivityDecay_ = input.readDouble();
194  break;
195  }
196  case 129: {
197  bitField0_ |= 0x00200000;
198  maxVariableActivityValue_ = input.readDouble();
199  break;
200  }
201  case 137: {
202  bitField0_ |= 0x02000000;
203  clauseActivityDecay_ = input.readDouble();
204  break;
205  }
206  case 145: {
207  bitField0_ |= 0x04000000;
208  maxClauseActivityValue_ = input.readDouble();
209  break;
210  }
211  case 177: {
212  bitField0_ |= 0x00400000;
213  glucoseMaxDecay_ = input.readDouble();
214  break;
215  }
216  case 185: {
217  bitField0_ |= 0x00800000;
218  glucoseDecayIncrement_ = input.readDouble();
219  break;
220  }
221  case 192: {
222  bitField0_ |= 0x01000000;
223  glucoseDecayIncrementPeriod_ = input.readInt32();
224  break;
225  }
226  case 240: {
227  bitField0_ |= 0x10000000;
228  restartPeriod_ = input.readInt32();
229  break;
230  }
231  case 248: {
232  bitField1_ |= 0x00000400;
233  randomSeed_ = input.readInt32();
234  break;
235  }
236  case 257: {
237  bitField0_ |= 0x00000010;
238  randomBranchesRatio_ = input.readDouble();
239  break;
240  }
241  case 264: {
242  bitField1_ |= 0x00000200;
243  treatBinaryClausesSeparately_ = input.readBool();
244  break;
245  }
246  case 272: {
247  int rawValue = input.readEnum();
248  @SuppressWarnings("deprecation")
249  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
250  if (value == null) {
251  unknownFields.mergeVarintField(34, rawValue);
252  } else {
253  bitField0_ |= 0x00000200;
254  binaryMinimizationAlgorithm_ = rawValue;
255  }
256  break;
257  }
258  case 280: {
259  bitField1_ |= 0x00400000;
260  useOptimizationHints_ = input.readBool();
261  break;
262  }
263  case 289: {
264  bitField1_ |= 0x00000020;
265  maxTimeInSeconds_ = input.readDouble();
266  break;
267  }
268  case 296: {
269  bitField1_ |= 0x00000080;
270  maxNumberOfConflicts_ = input.readInt64();
271  break;
272  }
273  case 320: {
274  bitField1_ |= 0x00000100;
275  maxMemoryInMb_ = input.readInt64();
276  break;
277  }
278  case 328: {
279  bitField1_ |= 0x00000800;
280  logSearchProgress_ = input.readBool();
281  break;
282  }
283  case 344: {
284  bitField1_ |= 0x00001000;
285  usePbResolution_ = input.readBool();
286  break;
287  }
288  case 352: {
289  bitField0_ |= 0x00000004;
290  usePhaseSaving_ = input.readBool();
291  break;
292  }
293  case 361: {
294  bitField0_ |= 0x00000008;
295  randomPolarityRatio_ = input.readDouble();
296  break;
297  }
298  case 368: {
299  bitField0_ |= 0x00010000;
300  pbCleanupIncrement_ = input.readInt32();
301  break;
302  }
303  case 377: {
304  bitField0_ |= 0x00020000;
305  pbCleanupRatio_ = input.readDouble();
306  break;
307  }
308  case 384: {
309  bitField1_ |= 0x00002000;
310  minimizeReductionDuringPbResolution_ = input.readBool();
311  break;
312  }
313  case 392: {
314  bitField1_ |= 0x00004000;
315  countAssumptionLevelsInLbd_ = input.readBool();
316  break;
317  }
318  case 400: {
319  bitField1_ |= 0x00800000;
320  minimizeCore_ = input.readBool();
321  break;
322  }
323  case 408: {
324  int rawValue = input.readEnum();
325  @SuppressWarnings("deprecation")
326  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
327  if (value == null) {
328  unknownFields.mergeVarintField(51, rawValue);
329  } else {
330  bitField1_ |= 0x04000000;
331  maxSatAssumptionOrder_ = rawValue;
332  }
333  break;
334  }
335  case 416: {
336  bitField1_ |= 0x08000000;
337  maxSatReverseAssumptionOrder_ = input.readBool();
338  break;
339  }
340  case 424: {
341  int rawValue = input.readEnum();
342  @SuppressWarnings("deprecation")
343  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
344  if (value == null) {
345  unknownFields.mergeVarintField(53, rawValue);
346  } else {
347  bitField1_ |= 0x10000000;
348  maxSatStratification_ = rawValue;
349  }
350  break;
351  }
352  case 432: {
353  bitField1_ |= 0x00008000;
354  presolveBveThreshold_ = input.readInt32();
355  break;
356  }
357  case 440: {
358  bitField1_ |= 0x00010000;
359  presolveBveClauseWeight_ = input.readInt32();
360  break;
361  }
362  case 448: {
363  bitField0_ |= 0x00000400;
364  subsumptionDuringConflictAnalysis_ = input.readBool();
365  break;
366  }
367  case 457: {
368  bitField1_ |= 0x00020000;
369  presolveProbingDeterministicTimeLimit_ = input.readDouble();
370  break;
371  }
372  case 464: {
373  int rawValue = input.readEnum();
374  @SuppressWarnings("deprecation")
375  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
376  if (value == null) {
377  unknownFields.mergeVarintField(58, rawValue);
378  } else {
379  bitField0_ |= 0x00002000;
380  clauseCleanupProtection_ = rawValue;
381  }
382  break;
383  }
384  case 472: {
385  bitField0_ |= 0x00004000;
386  clauseCleanupLbdBound_ = input.readInt32();
387  break;
388  }
389  case 480: {
390  int rawValue = input.readEnum();
391  @SuppressWarnings("deprecation")
392  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
393  if (value == null) {
394  unknownFields.mergeVarintField(60, rawValue);
395  } else {
396  bitField0_ |= 0x00008000;
397  clauseCleanupOrdering_ = rawValue;
398  }
399  break;
400  }
401  case 488: {
402  int rawValue = input.readEnum();
403  @SuppressWarnings("deprecation")
404  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
405  if (value == null) {
406  unknownFields.mergeVarintField(61, rawValue);
407  } else {
408  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
409  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
410  mutable_bitField0_ |= 0x08000000;
411  }
412  restartAlgorithms_.add(rawValue);
413  }
414  break;
415  }
416  case 490: {
417  int length = input.readRawVarint32();
418  int oldLimit = input.pushLimit(length);
419  while(input.getBytesUntilLimit() > 0) {
420  int rawValue = input.readEnum();
421  @SuppressWarnings("deprecation")
422  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
423  if (value == null) {
424  unknownFields.mergeVarintField(61, rawValue);
425  } else {
426  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
427  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
428  mutable_bitField0_ |= 0x08000000;
429  }
430  restartAlgorithms_.add(rawValue);
431  }
432  }
433  input.popLimit(oldLimit);
434  break;
435  }
436  case 496: {
437  bitField0_ |= 0x20000000;
438  restartRunningWindowSize_ = input.readInt32();
439  break;
440  }
441  case 505: {
442  bitField0_ |= 0x40000000;
443  restartDlAverageRatio_ = input.readDouble();
444  break;
445  }
446  case 512: {
447  bitField1_ |= 0x00000001;
448  useBlockingRestart_ = input.readBool();
449  break;
450  }
451  case 520: {
452  bitField1_ |= 0x00000002;
453  blockingRestartWindowSize_ = input.readInt32();
454  break;
455  }
456  case 529: {
457  bitField1_ |= 0x00000004;
458  blockingRestartMultiplier_ = input.readDouble();
459  break;
460  }
461  case 537: {
462  bitField1_ |= 0x00000040;
463  maxDeterministicTime_ = input.readDouble();
464  break;
465  }
466  case 544: {
467  bitField1_ |= 0x00000008;
468  numConflictsBeforeStrategyChanges_ = input.readInt32();
469  break;
470  }
471  case 553: {
472  bitField1_ |= 0x00000010;
473  strategyChangeIncreaseRatio_ = input.readDouble();
474  break;
475  }
476  case 562: {
477  com.google.protobuf.ByteString bs = input.readBytes();
478  bitField0_ |= 0x08000000;
479  defaultRestartAlgorithms_ = bs;
480  break;
481  }
482  case 569: {
483  bitField0_ |= 0x80000000;
484  restartLbdAverageRatio_ = input.readDouble();
485  break;
486  }
487  case 576: {
488  bitField1_ |= 0x00080000;
489  presolveUseBva_ = input.readBool();
490  break;
491  }
492  case 584: {
493  bitField1_ |= 0x00100000;
494  presolveBvaThreshold_ = input.readInt32();
495  break;
496  }
497  case 592: {
498  bitField1_ |= 0x20000000;
499  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
500  break;
501  }
502  case 600: {
503  bitField0_ |= 0x00000020;
504  useErwaHeuristic_ = input.readBool();
505  break;
506  }
507  case 609: {
508  bitField0_ |= 0x00000040;
509  initialVariablesActivity_ = input.readDouble();
510  break;
511  }
512  case 616: {
513  bitField0_ |= 0x00000080;
514  alsoBumpVariablesInConflictReasons_ = input.readBool();
515  break;
516  }
517  case 624: {
518  bitField1_ |= 0x40000000;
519  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
520  break;
521  }
522  case 632: {
523  bitField1_ |= 0x80000000;
524  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
525  break;
526  }
527  case 640: {
528  bitField2_ |= 0x00000001;
529  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
530  break;
531  }
532  case 656: {
533  int rawValue = input.readEnum();
534  @SuppressWarnings("deprecation")
535  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
536  if (value == null) {
537  unknownFields.mergeVarintField(82, rawValue);
538  } else {
539  bitField2_ |= 0x00004000;
540  searchBranching_ = rawValue;
541  }
542  break;
543  }
544  case 664: {
545  bitField2_ |= 0x00100000;
546  optimizeWithCore_ = input.readBool();
547  break;
548  }
549  case 672: {
550  bitField1_ |= 0x01000000;
551  findMultipleCores_ = input.readBool();
552  break;
553  }
554  case 680: {
555  bitField2_ |= 0x00400000;
556  optimizeWithMaxHs_ = input.readBool();
557  break;
558  }
559  case 688: {
560  bitField2_ |= 0x00800000;
561  cpModelPresolve_ = input.readBool();
562  break;
563  }
564  case 696: {
565  bitField2_ |= 0x04000000;
566  enumerateAllSolutions_ = input.readBool();
567  break;
568  }
569  case 704: {
570  bitField1_ |= 0x00040000;
571  presolveBlockedClause_ = input.readBool();
572  break;
573  }
574  case 712: {
575  bitField1_ |= 0x02000000;
576  coverOptimization_ = input.readBool();
577  break;
578  }
579  case 720: {
580  bitField2_ |= 0x00000002;
581  linearizationLevel_ = input.readInt32();
582  break;
583  }
584  case 728: {
585  bitField2_ |= 0x00000008;
586  maxNumCuts_ = input.readInt32();
587  break;
588  }
589  case 736: {
590  bitField2_ |= 0x00000010;
591  onlyAddCutsAtLevelZero_ = input.readBool();
592  break;
593  }
594  case 744: {
595  bitField2_ |= 0x02000000;
596  cpModelUseSatPresolve_ = input.readBool();
597  break;
598  }
599  case 752: {
600  bitField2_ |= 0x00008000;
601  exploitIntegerLpSolution_ = input.readBool();
602  break;
603  }
604  case 760: {
605  bitField2_ |= 0x20000000;
606  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
607  break;
608  }
609  case 768: {
610  bitField0_ |= 0x00040000;
611  minimizeWithPropagationRestartPeriod_ = input.readInt32();
612  break;
613  }
614  case 776: {
615  bitField0_ |= 0x00080000;
616  minimizeWithPropagationNumDecisions_ = input.readInt32();
617  break;
618  }
619  case 784: {
620  bitField2_ |= 0x40000000;
621  stopAfterFirstSolution_ = input.readBool();
622  break;
623  }
624  case 792: {
625  bitField2_ |= 0x00200000;
626  binarySearchNumConflicts_ = input.readInt32();
627  break;
628  }
629  case 800: {
630  bitField2_ |= 0x80000000;
631  numSearchWorkers_ = input.readInt32();
632  break;
633  }
634  case 808: {
635  bitField3_ |= 0x00000010;
636  useLnsOnly_ = input.readBool();
637  break;
638  }
639  case 824: {
640  bitField3_ |= 0x00000100;
641  randomizeSearch_ = input.readBool();
642  break;
643  }
644  case 832: {
645  bitField3_ |= 0x00000200;
646  searchRandomizationTolerance_ = input.readInt64();
647  break;
648  }
649  case 840: {
650  bitField3_ |= 0x00000020;
651  lnsFocusOnDecisionVariables_ = input.readBool();
652  break;
653  }
654  case 848: {
655  bitField2_ |= 0x10000000;
656  instantiateAllVariables_ = input.readBool();
657  break;
658  }
659  case 856: {
660  bitField2_ |= 0x00000004;
661  booleanEncodingLevel_ = input.readInt32();
662  break;
663  }
664  case 864: {
665  bitField3_ |= 0x00000400;
666  useOptionalVariables_ = input.readBool();
667  break;
668  }
669  case 872: {
670  bitField3_ |= 0x00000800;
671  useExactLpReason_ = input.readBool();
672  break;
673  }
674  case 880: {
675  bitField2_ |= 0x01000000;
676  cpModelProbingLevel_ = input.readInt32();
677  break;
678  }
679  case 888: {
680  bitField2_ |= 0x00000020;
681  addKnapsackCuts_ = input.readBool();
682  break;
683  }
684  case 896: {
685  bitField2_ |= 0x00000400;
686  addLpConstraintsLazily_ = input.readBool();
687  break;
688  }
689  case 904: {
690  bitField3_ |= 0x00000004;
691  shareObjectiveBounds_ = input.readBool();
692  break;
693  }
694  case 912: {
695  bitField3_ |= 0x00000008;
696  shareLevelZeroBounds_ = input.readBool();
697  break;
698  }
699  case 921: {
700  bitField2_ |= 0x00000800;
701  minOrthogonalityForLpConstraints_ = input.readDouble();
702  break;
703  }
704  case 928: {
705  bitField2_ |= 0x00010000;
706  exploitAllLpSolution_ = input.readBool();
707  break;
708  }
709  case 936: {
710  bitField2_ |= 0x00000040;
711  addCgCuts_ = input.readBool();
712  break;
713  }
714  case 944: {
715  bitField2_ |= 0x00000100;
716  useMirRounding_ = input.readBool();
717  break;
718  }
719  case 952: {
720  bitField2_ |= 0x00000200;
721  maxIntegerRoundingScaling_ = input.readInt32();
722  break;
723  }
724  case 960: {
725  bitField2_ |= 0x00000080;
726  addMirCuts_ = input.readBool();
727  break;
728  }
729  case 968: {
730  bitField2_ |= 0x00001000;
731  maxInactiveCount_ = input.readInt64();
732  break;
733  }
734  case 976: {
735  bitField2_ |= 0x00002000;
736  constraintRemovalBatchSize_ = input.readInt64();
737  break;
738  }
739  case 984: {
740  bitField2_ |= 0x00080000;
741  pseudoCostReliabilityThreshold_ = input.readInt64();
742  break;
743  }
744  case 993: {
745  bitField3_ |= 0x00004000;
746  mipMaxBound_ = input.readDouble();
747  break;
748  }
749  case 1001: {
750  bitField3_ |= 0x00008000;
751  mipVarScaling_ = input.readDouble();
752  break;
753  }
754  case 1009: {
755  bitField3_ |= 0x00010000;
756  mipWantedPrecision_ = input.readDouble();
757  break;
758  }
759  case 1016: {
760  bitField3_ |= 0x00020000;
761  mipMaxActivityExponent_ = input.readInt32();
762  break;
763  }
764  case 1025: {
765  bitField3_ |= 0x00040000;
766  mipCheckPrecision_ = input.readDouble();
767  break;
768  }
769  case 1032: {
770  bitField3_ |= 0x00000040;
771  useRinsLns_ = input.readBool();
772  break;
773  }
774  case 1040: {
775  bitField2_ |= 0x00020000;
776  exploitBestSolution_ = input.readBool();
777  break;
778  }
779  case 1048: {
780  bitField2_ |= 0x00040000;
781  exploitObjective_ = input.readBool();
782  break;
783  }
784  case 1056: {
785  bitField2_ |= 0x08000000;
786  fillTightenedDomainsInResponse_ = input.readBool();
787  break;
788  }
789  case 1064: {
790  bitField3_ |= 0x00002000;
791  useCombinedNoOverlap_ = input.readBool();
792  break;
793  }
794  case 1072: {
795  bitField3_ |= 0x00000002;
796  deterministicParallelSearch_ = input.readBool();
797  break;
798  }
799  case 1080: {
800  bitField3_ |= 0x00080000;
801  catchSigintSignal_ = input.readBool();
802  break;
803  }
804  case 1088: {
805  bitField3_ |= 0x00000001;
806  interleaveSearch_ = input.readBool();
807  break;
808  }
809  case 1096: {
810  bitField3_ |= 0x00000080;
811  diversifyLnsParams_ = input.readBool();
812  break;
813  }
814  case 1104: {
815  bitField1_ |= 0x00200000;
816  maxPresolveIterations_ = input.readInt32();
817  break;
818  }
819  case 1112: {
820  bitField3_ |= 0x00001000;
821  useBranchingInLp_ = input.readBool();
822  break;
823  }
824  default: {
825  if (!parseUnknownField(
826  input, unknownFields, extensionRegistry, tag)) {
827  done = true;
828  }
829  break;
830  }
831  }
832  }
833  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
834  throw e.setUnfinishedMessage(this);
835  } catch (java.io.IOException e) {
836  throw new com.google.protobuf.InvalidProtocolBufferException(
837  e).setUnfinishedMessage(this);
838  } finally {
839  if (((mutable_bitField0_ & 0x08000000) != 0)) {
840  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
841  }
842  this.unknownFields = unknownFields.build();
843  makeExtensionsImmutable();
844  }
845  }
846  public static final com.google.protobuf.Descriptors.Descriptor
848  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
849  }
850 
851  @java.lang.Override
852  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
854  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
855  .ensureFieldAccessorsInitialized(
857  }
858 
867  public enum VariableOrder
868  implements com.google.protobuf.ProtocolMessageEnum {
885  ;
886 
894  public static final int IN_ORDER_VALUE = 0;
898  public static final int IN_REVERSE_ORDER_VALUE = 1;
902  public static final int IN_RANDOM_ORDER_VALUE = 2;
903 
904 
905  public final int getNumber() {
906  return value;
907  }
908 
912  @java.lang.Deprecated
913  public static VariableOrder valueOf(int value) {
914  return forNumber(value);
915  }
916 
917  public static VariableOrder forNumber(int value) {
918  switch (value) {
919  case 0: return IN_ORDER;
920  case 1: return IN_REVERSE_ORDER;
921  case 2: return IN_RANDOM_ORDER;
922  default: return null;
923  }
924  }
925 
926  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
928  return internalValueMap;
929  }
930  private static final com.google.protobuf.Internal.EnumLiteMap<
931  VariableOrder> internalValueMap =
932  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
933  public VariableOrder findValueByNumber(int number) {
934  return VariableOrder.forNumber(number);
935  }
936  };
937 
938  public final com.google.protobuf.Descriptors.EnumValueDescriptor
940  return getDescriptor().getValues().get(ordinal());
941  }
942  public final com.google.protobuf.Descriptors.EnumDescriptor
944  return getDescriptor();
945  }
946  public static final com.google.protobuf.Descriptors.EnumDescriptor
948  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
949  }
950 
951  private static final VariableOrder[] VALUES = values();
952 
953  public static VariableOrder valueOf(
954  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
955  if (desc.getType() != getDescriptor()) {
956  throw new java.lang.IllegalArgumentException(
957  "EnumValueDescriptor is not for this type.");
958  }
959  return VALUES[desc.getIndex()];
960  }
961 
962  private final int value;
963 
964  private VariableOrder(int value) {
965  this.value = value;
966  }
967 
968  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
969  }
970 
982  public enum Polarity
983  implements com.google.protobuf.ProtocolMessageEnum {
1015  ;
1016 
1020  public static final int POLARITY_TRUE_VALUE = 0;
1024  public static final int POLARITY_FALSE_VALUE = 1;
1028  public static final int POLARITY_RANDOM_VALUE = 2;
1039  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1047  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1048 
1049 
1050  public final int getNumber() {
1051  return value;
1052  }
1053 
1057  @java.lang.Deprecated
1058  public static Polarity valueOf(int value) {
1059  return forNumber(value);
1060  }
1061 
1062  public static Polarity forNumber(int value) {
1063  switch (value) {
1064  case 0: return POLARITY_TRUE;
1065  case 1: return POLARITY_FALSE;
1066  case 2: return POLARITY_RANDOM;
1067  case 3: return POLARITY_WEIGHTED_SIGN;
1068  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1069  default: return null;
1070  }
1071  }
1072 
1073  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1075  return internalValueMap;
1076  }
1077  private static final com.google.protobuf.Internal.EnumLiteMap<
1078  Polarity> internalValueMap =
1079  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1080  public Polarity findValueByNumber(int number) {
1081  return Polarity.forNumber(number);
1082  }
1083  };
1084 
1085  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1087  return getDescriptor().getValues().get(ordinal());
1088  }
1089  public final com.google.protobuf.Descriptors.EnumDescriptor
1091  return getDescriptor();
1092  }
1093  public static final com.google.protobuf.Descriptors.EnumDescriptor
1095  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1096  }
1097 
1098  private static final Polarity[] VALUES = values();
1099 
1100  public static Polarity valueOf(
1101  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1102  if (desc.getType() != getDescriptor()) {
1103  throw new java.lang.IllegalArgumentException(
1104  "EnumValueDescriptor is not for this type.");
1105  }
1106  return VALUES[desc.getIndex()];
1107  }
1108 
1109  private final int value;
1110 
1111  private Polarity(int value) {
1112  this.value = value;
1113  }
1114 
1115  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1116  }
1117 
1126  implements com.google.protobuf.ProtocolMessageEnum {
1130  NONE(0),
1143  ;
1144 
1148  public static final int NONE_VALUE = 0;
1152  public static final int SIMPLE_VALUE = 1;
1156  public static final int RECURSIVE_VALUE = 2;
1160  public static final int EXPERIMENTAL_VALUE = 3;
1161 
1162 
1163  public final int getNumber() {
1164  return value;
1165  }
1166 
1170  @java.lang.Deprecated
1171  public static ConflictMinimizationAlgorithm valueOf(int value) {
1172  return forNumber(value);
1173  }
1174 
1175  public static ConflictMinimizationAlgorithm forNumber(int value) {
1176  switch (value) {
1177  case 0: return NONE;
1178  case 1: return SIMPLE;
1179  case 2: return RECURSIVE;
1180  case 3: return EXPERIMENTAL;
1181  default: return null;
1182  }
1183  }
1184 
1185  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1187  return internalValueMap;
1188  }
1189  private static final com.google.protobuf.Internal.EnumLiteMap<
1190  ConflictMinimizationAlgorithm> internalValueMap =
1191  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1192  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1194  }
1195  };
1196 
1197  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1199  return getDescriptor().getValues().get(ordinal());
1200  }
1201  public final com.google.protobuf.Descriptors.EnumDescriptor
1203  return getDescriptor();
1204  }
1205  public static final com.google.protobuf.Descriptors.EnumDescriptor
1207  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1208  }
1209 
1210  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1211 
1213  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1214  if (desc.getType() != getDescriptor()) {
1215  throw new java.lang.IllegalArgumentException(
1216  "EnumValueDescriptor is not for this type.");
1217  }
1218  return VALUES[desc.getIndex()];
1219  }
1220 
1221  private final int value;
1222 
1223  private ConflictMinimizationAlgorithm(int value) {
1224  this.value = value;
1225  }
1226 
1227  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1228  }
1229 
1239  implements com.google.protobuf.ProtocolMessageEnum {
1260  ;
1261 
1265  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1269  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1273  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1277  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1281  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1282 
1283 
1284  public final int getNumber() {
1285  return value;
1286  }
1287 
1291  @java.lang.Deprecated
1292  public static BinaryMinizationAlgorithm valueOf(int value) {
1293  return forNumber(value);
1294  }
1295 
1296  public static BinaryMinizationAlgorithm forNumber(int value) {
1297  switch (value) {
1298  case 0: return NO_BINARY_MINIMIZATION;
1299  case 1: return BINARY_MINIMIZATION_FIRST;
1300  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1301  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1302  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1303  default: return null;
1304  }
1305  }
1306 
1307  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1309  return internalValueMap;
1310  }
1311  private static final com.google.protobuf.Internal.EnumLiteMap<
1312  BinaryMinizationAlgorithm> internalValueMap =
1313  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1314  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1315  return BinaryMinizationAlgorithm.forNumber(number);
1316  }
1317  };
1318 
1319  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1321  return getDescriptor().getValues().get(ordinal());
1322  }
1323  public final com.google.protobuf.Descriptors.EnumDescriptor
1325  return getDescriptor();
1326  }
1327  public static final com.google.protobuf.Descriptors.EnumDescriptor
1329  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1330  }
1331 
1332  private static final BinaryMinizationAlgorithm[] VALUES = values();
1333 
1335  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1336  if (desc.getType() != getDescriptor()) {
1337  throw new java.lang.IllegalArgumentException(
1338  "EnumValueDescriptor is not for this type.");
1339  }
1340  return VALUES[desc.getIndex()];
1341  }
1342 
1343  private final int value;
1344 
1345  private BinaryMinizationAlgorithm(int value) {
1346  this.value = value;
1347  }
1348 
1349  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1350  }
1351 
1361  public enum ClauseProtection
1362  implements com.google.protobuf.ProtocolMessageEnum {
1387  ;
1388 
1396  public static final int PROTECTION_NONE_VALUE = 0;
1404  public static final int PROTECTION_ALWAYS_VALUE = 1;
1412  public static final int PROTECTION_LBD_VALUE = 2;
1413 
1414 
1415  public final int getNumber() {
1416  return value;
1417  }
1418 
1422  @java.lang.Deprecated
1423  public static ClauseProtection valueOf(int value) {
1424  return forNumber(value);
1425  }
1426 
1427  public static ClauseProtection forNumber(int value) {
1428  switch (value) {
1429  case 0: return PROTECTION_NONE;
1430  case 1: return PROTECTION_ALWAYS;
1431  case 2: return PROTECTION_LBD;
1432  default: return null;
1433  }
1434  }
1435 
1436  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1438  return internalValueMap;
1439  }
1440  private static final com.google.protobuf.Internal.EnumLiteMap<
1441  ClauseProtection> internalValueMap =
1442  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1443  public ClauseProtection findValueByNumber(int number) {
1444  return ClauseProtection.forNumber(number);
1445  }
1446  };
1447 
1448  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1450  return getDescriptor().getValues().get(ordinal());
1451  }
1452  public final com.google.protobuf.Descriptors.EnumDescriptor
1454  return getDescriptor();
1455  }
1456  public static final com.google.protobuf.Descriptors.EnumDescriptor
1458  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1459  }
1460 
1461  private static final ClauseProtection[] VALUES = values();
1462 
1463  public static ClauseProtection valueOf(
1464  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1465  if (desc.getType() != getDescriptor()) {
1466  throw new java.lang.IllegalArgumentException(
1467  "EnumValueDescriptor is not for this type.");
1468  }
1469  return VALUES[desc.getIndex()];
1470  }
1471 
1472  private final int value;
1473 
1474  private ClauseProtection(int value) {
1475  this.value = value;
1476  }
1477 
1478  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1479  }
1480 
1489  public enum ClauseOrdering
1490  implements com.google.protobuf.ProtocolMessageEnum {
1507  ;
1508 
1516  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1524  public static final int CLAUSE_LBD_VALUE = 1;
1525 
1526 
1527  public final int getNumber() {
1528  return value;
1529  }
1530 
1534  @java.lang.Deprecated
1535  public static ClauseOrdering valueOf(int value) {
1536  return forNumber(value);
1537  }
1538 
1539  public static ClauseOrdering forNumber(int value) {
1540  switch (value) {
1541  case 0: return CLAUSE_ACTIVITY;
1542  case 1: return CLAUSE_LBD;
1543  default: return null;
1544  }
1545  }
1546 
1547  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1549  return internalValueMap;
1550  }
1551  private static final com.google.protobuf.Internal.EnumLiteMap<
1552  ClauseOrdering> internalValueMap =
1553  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1554  public ClauseOrdering findValueByNumber(int number) {
1555  return ClauseOrdering.forNumber(number);
1556  }
1557  };
1558 
1559  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1561  return getDescriptor().getValues().get(ordinal());
1562  }
1563  public final com.google.protobuf.Descriptors.EnumDescriptor
1565  return getDescriptor();
1566  }
1567  public static final com.google.protobuf.Descriptors.EnumDescriptor
1569  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1570  }
1571 
1572  private static final ClauseOrdering[] VALUES = values();
1573 
1574  public static ClauseOrdering valueOf(
1575  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1576  if (desc.getType() != getDescriptor()) {
1577  throw new java.lang.IllegalArgumentException(
1578  "EnumValueDescriptor is not for this type.");
1579  }
1580  return VALUES[desc.getIndex()];
1581  }
1582 
1583  private final int value;
1584 
1585  private ClauseOrdering(int value) {
1586  this.value = value;
1587  }
1588 
1589  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1590  }
1591 
1603  public enum RestartAlgorithm
1604  implements com.google.protobuf.ProtocolMessageEnum {
1641  ;
1642 
1646  public static final int NO_RESTART_VALUE = 0;
1654  public static final int LUBY_RESTART_VALUE = 1;
1662  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1670  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1678  public static final int FIXED_RESTART_VALUE = 4;
1679 
1680 
1681  public final int getNumber() {
1682  return value;
1683  }
1684 
1688  @java.lang.Deprecated
1689  public static RestartAlgorithm valueOf(int value) {
1690  return forNumber(value);
1691  }
1692 
1693  public static RestartAlgorithm forNumber(int value) {
1694  switch (value) {
1695  case 0: return NO_RESTART;
1696  case 1: return LUBY_RESTART;
1697  case 2: return DL_MOVING_AVERAGE_RESTART;
1698  case 3: return LBD_MOVING_AVERAGE_RESTART;
1699  case 4: return FIXED_RESTART;
1700  default: return null;
1701  }
1702  }
1703 
1704  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1706  return internalValueMap;
1707  }
1708  private static final com.google.protobuf.Internal.EnumLiteMap<
1709  RestartAlgorithm> internalValueMap =
1710  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1711  public RestartAlgorithm findValueByNumber(int number) {
1712  return RestartAlgorithm.forNumber(number);
1713  }
1714  };
1715 
1716  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1718  return getDescriptor().getValues().get(ordinal());
1719  }
1720  public final com.google.protobuf.Descriptors.EnumDescriptor
1722  return getDescriptor();
1723  }
1724  public static final com.google.protobuf.Descriptors.EnumDescriptor
1726  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1727  }
1728 
1729  private static final RestartAlgorithm[] VALUES = values();
1730 
1731  public static RestartAlgorithm valueOf(
1732  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1733  if (desc.getType() != getDescriptor()) {
1734  throw new java.lang.IllegalArgumentException(
1735  "EnumValueDescriptor is not for this type.");
1736  }
1737  return VALUES[desc.getIndex()];
1738  }
1739 
1740  private final int value;
1741 
1742  private RestartAlgorithm(int value) {
1743  this.value = value;
1744  }
1745 
1746  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1747  }
1748 
1757  implements com.google.protobuf.ProtocolMessageEnum {
1770  ;
1771 
1775  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1779  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1783  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1784 
1785 
1786  public final int getNumber() {
1787  return value;
1788  }
1789 
1793  @java.lang.Deprecated
1794  public static MaxSatAssumptionOrder valueOf(int value) {
1795  return forNumber(value);
1796  }
1797 
1798  public static MaxSatAssumptionOrder forNumber(int value) {
1799  switch (value) {
1800  case 0: return DEFAULT_ASSUMPTION_ORDER;
1801  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1802  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1803  default: return null;
1804  }
1805  }
1806 
1807  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1809  return internalValueMap;
1810  }
1811  private static final com.google.protobuf.Internal.EnumLiteMap<
1812  MaxSatAssumptionOrder> internalValueMap =
1813  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1814  public MaxSatAssumptionOrder findValueByNumber(int number) {
1815  return MaxSatAssumptionOrder.forNumber(number);
1816  }
1817  };
1818 
1819  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1821  return getDescriptor().getValues().get(ordinal());
1822  }
1823  public final com.google.protobuf.Descriptors.EnumDescriptor
1825  return getDescriptor();
1826  }
1827  public static final com.google.protobuf.Descriptors.EnumDescriptor
1829  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1830  }
1831 
1832  private static final MaxSatAssumptionOrder[] VALUES = values();
1833 
1835  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1836  if (desc.getType() != getDescriptor()) {
1837  throw new java.lang.IllegalArgumentException(
1838  "EnumValueDescriptor is not for this type.");
1839  }
1840  return VALUES[desc.getIndex()];
1841  }
1842 
1843  private final int value;
1844 
1845  private MaxSatAssumptionOrder(int value) {
1846  this.value = value;
1847  }
1848 
1849  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1850  }
1851 
1860  implements com.google.protobuf.ProtocolMessageEnum {
1889  ;
1890 
1898  public static final int STRATIFICATION_NONE_VALUE = 0;
1907  public static final int STRATIFICATION_DESCENT_VALUE = 1;
1918  public static final int STRATIFICATION_ASCENT_VALUE = 2;
1919 
1920 
1921  public final int getNumber() {
1922  return value;
1923  }
1924 
1928  @java.lang.Deprecated
1929  public static MaxSatStratificationAlgorithm valueOf(int value) {
1930  return forNumber(value);
1931  }
1932 
1933  public static MaxSatStratificationAlgorithm forNumber(int value) {
1934  switch (value) {
1935  case 0: return STRATIFICATION_NONE;
1936  case 1: return STRATIFICATION_DESCENT;
1937  case 2: return STRATIFICATION_ASCENT;
1938  default: return null;
1939  }
1940  }
1941 
1942  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
1944  return internalValueMap;
1945  }
1946  private static final com.google.protobuf.Internal.EnumLiteMap<
1947  MaxSatStratificationAlgorithm> internalValueMap =
1948  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
1949  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
1951  }
1952  };
1953 
1954  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1956  return getDescriptor().getValues().get(ordinal());
1957  }
1958  public final com.google.protobuf.Descriptors.EnumDescriptor
1960  return getDescriptor();
1961  }
1962  public static final com.google.protobuf.Descriptors.EnumDescriptor
1964  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
1965  }
1966 
1967  private static final MaxSatStratificationAlgorithm[] VALUES = values();
1968 
1970  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1971  if (desc.getType() != getDescriptor()) {
1972  throw new java.lang.IllegalArgumentException(
1973  "EnumValueDescriptor is not for this type.");
1974  }
1975  return VALUES[desc.getIndex()];
1976  }
1977 
1978  private final int value;
1979 
1980  private MaxSatStratificationAlgorithm(int value) {
1981  this.value = value;
1982  }
1983 
1984  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
1985  }
1986 
1994  public enum SearchBranching
1995  implements com.google.protobuf.ProtocolMessageEnum {
2063  ;
2064 
2073  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2083  public static final int FIXED_SEARCH_VALUE = 1;
2091  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2101  public static final int LP_SEARCH_VALUE = 3;
2111  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2121  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2131  public static final int HINT_SEARCH_VALUE = 6;
2132 
2133 
2134  public final int getNumber() {
2135  return value;
2136  }
2137 
2141  @java.lang.Deprecated
2142  public static SearchBranching valueOf(int value) {
2143  return forNumber(value);
2144  }
2145 
2146  public static SearchBranching forNumber(int value) {
2147  switch (value) {
2148  case 0: return AUTOMATIC_SEARCH;
2149  case 1: return FIXED_SEARCH;
2150  case 2: return PORTFOLIO_SEARCH;
2151  case 3: return LP_SEARCH;
2152  case 4: return PSEUDO_COST_SEARCH;
2153  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2154  case 6: return HINT_SEARCH;
2155  default: return null;
2156  }
2157  }
2158 
2159  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2161  return internalValueMap;
2162  }
2163  private static final com.google.protobuf.Internal.EnumLiteMap<
2164  SearchBranching> internalValueMap =
2165  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2166  public SearchBranching findValueByNumber(int number) {
2167  return SearchBranching.forNumber(number);
2168  }
2169  };
2170 
2171  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2173  return getDescriptor().getValues().get(ordinal());
2174  }
2175  public final com.google.protobuf.Descriptors.EnumDescriptor
2177  return getDescriptor();
2178  }
2179  public static final com.google.protobuf.Descriptors.EnumDescriptor
2181  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2182  }
2183 
2184  private static final SearchBranching[] VALUES = values();
2185 
2186  public static SearchBranching valueOf(
2187  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2188  if (desc.getType() != getDescriptor()) {
2189  throw new java.lang.IllegalArgumentException(
2190  "EnumValueDescriptor is not for this type.");
2191  }
2192  return VALUES[desc.getIndex()];
2193  }
2194 
2195  private final int value;
2196 
2197  private SearchBranching(int value) {
2198  this.value = value;
2199  }
2200 
2201  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2202  }
2203 
2204  private int bitField0_;
2205  private int bitField1_;
2206  private int bitField2_;
2207  private int bitField3_;
2208  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2209  private int preferredVariableOrder_;
2213  public boolean hasPreferredVariableOrder() {
2214  return ((bitField0_ & 0x00000001) != 0);
2215  }
2220  @SuppressWarnings("deprecation")
2222  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2223  }
2224 
2225  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2226  private int initialPolarity_;
2230  public boolean hasInitialPolarity() {
2231  return ((bitField0_ & 0x00000002) != 0);
2232  }
2237  @SuppressWarnings("deprecation")
2239  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2240  }
2241 
2242  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2243  private boolean usePhaseSaving_;
2257  public boolean hasUsePhaseSaving() {
2258  return ((bitField0_ & 0x00000004) != 0);
2259  }
2273  public boolean getUsePhaseSaving() {
2274  return usePhaseSaving_;
2275  }
2276 
2277  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2278  private double randomPolarityRatio_;
2290  public boolean hasRandomPolarityRatio() {
2291  return ((bitField0_ & 0x00000008) != 0);
2292  }
2304  public double getRandomPolarityRatio() {
2305  return randomPolarityRatio_;
2306  }
2307 
2308  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2309  private double randomBranchesRatio_;
2319  public boolean hasRandomBranchesRatio() {
2320  return ((bitField0_ & 0x00000010) != 0);
2321  }
2331  public double getRandomBranchesRatio() {
2332  return randomBranchesRatio_;
2333  }
2334 
2335  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2336  private boolean useErwaHeuristic_;
2346  public boolean hasUseErwaHeuristic() {
2347  return ((bitField0_ & 0x00000020) != 0);
2348  }
2358  public boolean getUseErwaHeuristic() {
2359  return useErwaHeuristic_;
2360  }
2361 
2362  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2363  private double initialVariablesActivity_;
2376  public boolean hasInitialVariablesActivity() {
2377  return ((bitField0_ & 0x00000040) != 0);
2378  }
2392  return initialVariablesActivity_;
2393  }
2394 
2396  private boolean alsoBumpVariablesInConflictReasons_;
2408  return ((bitField0_ & 0x00000080) != 0);
2409  }
2421  return alsoBumpVariablesInConflictReasons_;
2422  }
2423 
2424  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2425  private int minimizationAlgorithm_;
2429  public boolean hasMinimizationAlgorithm() {
2430  return ((bitField0_ & 0x00000100) != 0);
2431  }
2436  @SuppressWarnings("deprecation")
2438  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2439  }
2440 
2441  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2442  private int binaryMinimizationAlgorithm_;
2447  return ((bitField0_ & 0x00000200) != 0);
2448  }
2453  @SuppressWarnings("deprecation")
2456  }
2457 
2459  private boolean subsumptionDuringConflictAnalysis_;
2471  return ((bitField0_ & 0x00000400) != 0);
2472  }
2484  return subsumptionDuringConflictAnalysis_;
2485  }
2486 
2487  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2488  private int clauseCleanupPeriod_;
2496  public boolean hasClauseCleanupPeriod() {
2497  return ((bitField0_ & 0x00000800) != 0);
2498  }
2506  public int getClauseCleanupPeriod() {
2507  return clauseCleanupPeriod_;
2508  }
2509 
2510  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2511  private int clauseCleanupTarget_;
2520  public boolean hasClauseCleanupTarget() {
2521  return ((bitField0_ & 0x00001000) != 0);
2522  }
2531  public int getClauseCleanupTarget() {
2532  return clauseCleanupTarget_;
2533  }
2534 
2535  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2536  private int clauseCleanupProtection_;
2540  public boolean hasClauseCleanupProtection() {
2541  return ((bitField0_ & 0x00002000) != 0);
2542  }
2547  @SuppressWarnings("deprecation")
2549  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2550  }
2551 
2552  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2553  private int clauseCleanupLbdBound_;
2562  public boolean hasClauseCleanupLbdBound() {
2563  return ((bitField0_ & 0x00004000) != 0);
2564  }
2574  return clauseCleanupLbdBound_;
2575  }
2576 
2577  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2578  private int clauseCleanupOrdering_;
2582  public boolean hasClauseCleanupOrdering() {
2583  return ((bitField0_ & 0x00008000) != 0);
2584  }
2589  @SuppressWarnings("deprecation")
2591  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2592  }
2593 
2594  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2595  private int pbCleanupIncrement_;
2603  public boolean hasPbCleanupIncrement() {
2604  return ((bitField0_ & 0x00010000) != 0);
2605  }
2613  public int getPbCleanupIncrement() {
2614  return pbCleanupIncrement_;
2615  }
2616 
2617  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2618  private double pbCleanupRatio_;
2622  public boolean hasPbCleanupRatio() {
2623  return ((bitField0_ & 0x00020000) != 0);
2624  }
2628  public double getPbCleanupRatio() {
2629  return pbCleanupRatio_;
2630  }
2631 
2633  private int minimizeWithPropagationRestartPeriod_;
2652  return ((bitField0_ & 0x00040000) != 0);
2653  }
2672  return minimizeWithPropagationRestartPeriod_;
2673  }
2674 
2676  private int minimizeWithPropagationNumDecisions_;
2681  return ((bitField0_ & 0x00080000) != 0);
2682  }
2687  return minimizeWithPropagationNumDecisions_;
2688  }
2689 
2690  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2691  private double variableActivityDecay_;
2705  public boolean hasVariableActivityDecay() {
2706  return ((bitField0_ & 0x00100000) != 0);
2707  }
2721  public double getVariableActivityDecay() {
2722  return variableActivityDecay_;
2723  }
2724 
2725  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2726  private double maxVariableActivityValue_;
2730  public boolean hasMaxVariableActivityValue() {
2731  return ((bitField0_ & 0x00200000) != 0);
2732  }
2737  return maxVariableActivityValue_;
2738  }
2739 
2740  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2741  private double glucoseMaxDecay_;
2752  public boolean hasGlucoseMaxDecay() {
2753  return ((bitField0_ & 0x00400000) != 0);
2754  }
2765  public double getGlucoseMaxDecay() {
2766  return glucoseMaxDecay_;
2767  }
2768 
2769  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2770  private double glucoseDecayIncrement_;
2774  public boolean hasGlucoseDecayIncrement() {
2775  return ((bitField0_ & 0x00800000) != 0);
2776  }
2780  public double getGlucoseDecayIncrement() {
2781  return glucoseDecayIncrement_;
2782  }
2783 
2784  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
2785  private int glucoseDecayIncrementPeriod_;
2790  return ((bitField0_ & 0x01000000) != 0);
2791  }
2796  return glucoseDecayIncrementPeriod_;
2797  }
2798 
2799  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2800  private double clauseActivityDecay_;
2808  public boolean hasClauseActivityDecay() {
2809  return ((bitField0_ & 0x02000000) != 0);
2810  }
2818  public double getClauseActivityDecay() {
2819  return clauseActivityDecay_;
2820  }
2821 
2822  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2823  private double maxClauseActivityValue_;
2827  public boolean hasMaxClauseActivityValue() {
2828  return ((bitField0_ & 0x04000000) != 0);
2829  }
2833  public double getMaxClauseActivityValue() {
2834  return maxClauseActivityValue_;
2835  }
2836 
2837  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
2838  private java.util.List<java.lang.Integer> restartAlgorithms_;
2839  private static final com.google.protobuf.Internal.ListAdapter.Converter<
2840  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
2841  new com.google.protobuf.Internal.ListAdapter.Converter<
2842  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
2843  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
2844  @SuppressWarnings("deprecation")
2846  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
2847  }
2848  };
2864  return new com.google.protobuf.Internal.ListAdapter<
2865  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
2866  }
2882  return restartAlgorithms_.size();
2883  }
2899  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
2900  }
2901 
2902  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
2903  private volatile java.lang.Object defaultRestartAlgorithms_;
2907  public boolean hasDefaultRestartAlgorithms() {
2908  return ((bitField0_ & 0x08000000) != 0);
2909  }
2913  public java.lang.String getDefaultRestartAlgorithms() {
2914  java.lang.Object ref = defaultRestartAlgorithms_;
2915  if (ref instanceof java.lang.String) {
2916  return (java.lang.String) ref;
2917  } else {
2918  com.google.protobuf.ByteString bs =
2919  (com.google.protobuf.ByteString) ref;
2920  java.lang.String s = bs.toStringUtf8();
2921  if (bs.isValidUtf8()) {
2922  defaultRestartAlgorithms_ = s;
2923  }
2924  return s;
2925  }
2926  }
2930  public com.google.protobuf.ByteString
2932  java.lang.Object ref = defaultRestartAlgorithms_;
2933  if (ref instanceof java.lang.String) {
2934  com.google.protobuf.ByteString b =
2935  com.google.protobuf.ByteString.copyFromUtf8(
2936  (java.lang.String) ref);
2937  defaultRestartAlgorithms_ = b;
2938  return b;
2939  } else {
2940  return (com.google.protobuf.ByteString) ref;
2941  }
2942  }
2943 
2944  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
2945  private int restartPeriod_;
2954  public boolean hasRestartPeriod() {
2955  return ((bitField0_ & 0x10000000) != 0);
2956  }
2965  public int getRestartPeriod() {
2966  return restartPeriod_;
2967  }
2968 
2969  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
2970  private int restartRunningWindowSize_;
2978  public boolean hasRestartRunningWindowSize() {
2979  return ((bitField0_ & 0x20000000) != 0);
2980  }
2989  return restartRunningWindowSize_;
2990  }
2991 
2992  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
2993  private double restartDlAverageRatio_;
3002  public boolean hasRestartDlAverageRatio() {
3003  return ((bitField0_ & 0x40000000) != 0);
3004  }
3013  public double getRestartDlAverageRatio() {
3014  return restartDlAverageRatio_;
3015  }
3016 
3017  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
3018  private double restartLbdAverageRatio_;
3022  public boolean hasRestartLbdAverageRatio() {
3023  return ((bitField0_ & 0x80000000) != 0);
3024  }
3028  public double getRestartLbdAverageRatio() {
3029  return restartLbdAverageRatio_;
3030  }
3031 
3032  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3033  private boolean useBlockingRestart_;
3043  public boolean hasUseBlockingRestart() {
3044  return ((bitField1_ & 0x00000001) != 0);
3045  }
3055  public boolean getUseBlockingRestart() {
3056  return useBlockingRestart_;
3057  }
3058 
3059  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3060  private int blockingRestartWindowSize_;
3064  public boolean hasBlockingRestartWindowSize() {
3065  return ((bitField1_ & 0x00000002) != 0);
3066  }
3071  return blockingRestartWindowSize_;
3072  }
3073 
3074  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3075  private double blockingRestartMultiplier_;
3079  public boolean hasBlockingRestartMultiplier() {
3080  return ((bitField1_ & 0x00000004) != 0);
3081  }
3086  return blockingRestartMultiplier_;
3087  }
3088 
3090  private int numConflictsBeforeStrategyChanges_;
3101  return ((bitField1_ & 0x00000008) != 0);
3102  }
3113  return numConflictsBeforeStrategyChanges_;
3114  }
3115 
3116  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3117  private double strategyChangeIncreaseRatio_;
3127  return ((bitField1_ & 0x00000010) != 0);
3128  }
3138  return strategyChangeIncreaseRatio_;
3139  }
3140 
3141  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3142  private double maxTimeInSeconds_;
3152  public boolean hasMaxTimeInSeconds() {
3153  return ((bitField1_ & 0x00000020) != 0);
3154  }
3164  public double getMaxTimeInSeconds() {
3165  return maxTimeInSeconds_;
3166  }
3167 
3168  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3169  private double maxDeterministicTime_;
3181  public boolean hasMaxDeterministicTime() {
3182  return ((bitField1_ & 0x00000040) != 0);
3183  }
3195  public double getMaxDeterministicTime() {
3196  return maxDeterministicTime_;
3197  }
3198 
3199  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3200  private long maxNumberOfConflicts_;
3213  public boolean hasMaxNumberOfConflicts() {
3214  return ((bitField1_ & 0x00000080) != 0);
3215  }
3228  public long getMaxNumberOfConflicts() {
3229  return maxNumberOfConflicts_;
3230  }
3231 
3232  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3233  private long maxMemoryInMb_;
3244  public boolean hasMaxMemoryInMb() {
3245  return ((bitField1_ & 0x00000100) != 0);
3246  }
3257  public long getMaxMemoryInMb() {
3258  return maxMemoryInMb_;
3259  }
3260 
3261  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3262  private boolean treatBinaryClausesSeparately_;
3273  return ((bitField1_ & 0x00000200) != 0);
3274  }
3285  return treatBinaryClausesSeparately_;
3286  }
3287 
3288  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3289  private int randomSeed_;
3302  public boolean hasRandomSeed() {
3303  return ((bitField1_ & 0x00000400) != 0);
3304  }
3317  public int getRandomSeed() {
3318  return randomSeed_;
3319  }
3320 
3321  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3322  private boolean logSearchProgress_;
3330  public boolean hasLogSearchProgress() {
3331  return ((bitField1_ & 0x00000800) != 0);
3332  }
3340  public boolean getLogSearchProgress() {
3341  return logSearchProgress_;
3342  }
3343 
3344  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3345  private boolean usePbResolution_;
3356  public boolean hasUsePbResolution() {
3357  return ((bitField1_ & 0x00001000) != 0);
3358  }
3369  public boolean getUsePbResolution() {
3370  return usePbResolution_;
3371  }
3372 
3374  private boolean minimizeReductionDuringPbResolution_;
3386  return ((bitField1_ & 0x00002000) != 0);
3387  }
3399  return minimizeReductionDuringPbResolution_;
3400  }
3401 
3402  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
3403  private boolean countAssumptionLevelsInLbd_;
3419  return ((bitField1_ & 0x00004000) != 0);
3420  }
3436  return countAssumptionLevelsInLbd_;
3437  }
3438 
3439  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3440  private int presolveBveThreshold_;
3450  public boolean hasPresolveBveThreshold() {
3451  return ((bitField1_ & 0x00008000) != 0);
3452  }
3463  return presolveBveThreshold_;
3464  }
3465 
3466  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3467  private int presolveBveClauseWeight_;
3476  public boolean hasPresolveBveClauseWeight() {
3477  return ((bitField1_ & 0x00010000) != 0);
3478  }
3488  return presolveBveClauseWeight_;
3489  }
3490 
3492  private double presolveProbingDeterministicTimeLimit_;
3502  return ((bitField1_ & 0x00020000) != 0);
3503  }
3513  return presolveProbingDeterministicTimeLimit_;
3514  }
3515 
3516  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3517  private boolean presolveBlockedClause_;
3526  public boolean hasPresolveBlockedClause() {
3527  return ((bitField1_ & 0x00040000) != 0);
3528  }
3537  public boolean getPresolveBlockedClause() {
3538  return presolveBlockedClause_;
3539  }
3540 
3541  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
3542  private boolean presolveUseBva_;
3550  public boolean hasPresolveUseBva() {
3551  return ((bitField1_ & 0x00080000) != 0);
3552  }
3560  public boolean getPresolveUseBva() {
3561  return presolveUseBva_;
3562  }
3563 
3564  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
3565  private int presolveBvaThreshold_;
3576  public boolean hasPresolveBvaThreshold() {
3577  return ((bitField1_ & 0x00100000) != 0);
3578  }
3590  return presolveBvaThreshold_;
3591  }
3592 
3593  public static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER = 138;
3594  private int maxPresolveIterations_;
3604  public boolean hasMaxPresolveIterations() {
3605  return ((bitField1_ & 0x00200000) != 0);
3606  }
3617  return maxPresolveIterations_;
3618  }
3619 
3620  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
3621  private boolean useOptimizationHints_;
3632  public boolean hasUseOptimizationHints() {
3633  return ((bitField1_ & 0x00400000) != 0);
3634  }
3645  public boolean getUseOptimizationHints() {
3646  return useOptimizationHints_;
3647  }
3648 
3649  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
3650  private boolean minimizeCore_;
3658  public boolean hasMinimizeCore() {
3659  return ((bitField1_ & 0x00800000) != 0);
3660  }
3668  public boolean getMinimizeCore() {
3669  return minimizeCore_;
3670  }
3671 
3672  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
3673  private boolean findMultipleCores_;
3682  public boolean hasFindMultipleCores() {
3683  return ((bitField1_ & 0x01000000) != 0);
3684  }
3693  public boolean getFindMultipleCores() {
3694  return findMultipleCores_;
3695  }
3696 
3697  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
3698  private boolean coverOptimization_;
3707  public boolean hasCoverOptimization() {
3708  return ((bitField1_ & 0x02000000) != 0);
3709  }
3718  public boolean getCoverOptimization() {
3719  return coverOptimization_;
3720  }
3721 
3722  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
3723  private int maxSatAssumptionOrder_;
3727  public boolean hasMaxSatAssumptionOrder() {
3728  return ((bitField1_ & 0x04000000) != 0);
3729  }
3734  @SuppressWarnings("deprecation")
3737  }
3738 
3740  private boolean maxSatReverseAssumptionOrder_;
3750  return ((bitField1_ & 0x08000000) != 0);
3751  }
3761  return maxSatReverseAssumptionOrder_;
3762  }
3763 
3764  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
3765  private int maxSatStratification_;
3769  public boolean hasMaxSatStratification() {
3770  return ((bitField1_ & 0x10000000) != 0);
3771  }
3776  @SuppressWarnings("deprecation")
3779  }
3780 
3782  private boolean usePrecedencesInDisjunctiveConstraint_;
3798  return ((bitField1_ & 0x20000000) != 0);
3799  }
3815  return usePrecedencesInDisjunctiveConstraint_;
3816  }
3817 
3819  private boolean useOverloadCheckerInCumulativeConstraint_;
3833  return ((bitField1_ & 0x40000000) != 0);
3834  }
3848  return useOverloadCheckerInCumulativeConstraint_;
3849  }
3850 
3852  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
3866  return ((bitField1_ & 0x80000000) != 0);
3867  }
3881  return useTimetableEdgeFindingInCumulativeConstraint_;
3882  }
3883 
3885  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
3901  return ((bitField2_ & 0x00000001) != 0);
3902  }
3918  return useDisjunctiveConstraintInCumulativeConstraint_;
3919  }
3920 
3921  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
3922  private int linearizationLevel_;
3933  public boolean hasLinearizationLevel() {
3934  return ((bitField2_ & 0x00000002) != 0);
3935  }
3946  public int getLinearizationLevel() {
3947  return linearizationLevel_;
3948  }
3949 
3950  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
3951  private int booleanEncodingLevel_;
3960  public boolean hasBooleanEncodingLevel() {
3961  return ((bitField2_ & 0x00000004) != 0);
3962  }
3972  return booleanEncodingLevel_;
3973  }
3974 
3975  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
3976  private int maxNumCuts_;
3987  public boolean hasMaxNumCuts() {
3988  return ((bitField2_ & 0x00000008) != 0);
3989  }
4000  public int getMaxNumCuts() {
4001  return maxNumCuts_;
4002  }
4003 
4004  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
4005  private boolean onlyAddCutsAtLevelZero_;
4014  public boolean hasOnlyAddCutsAtLevelZero() {
4015  return ((bitField2_ & 0x00000010) != 0);
4016  }
4025  public boolean getOnlyAddCutsAtLevelZero() {
4026  return onlyAddCutsAtLevelZero_;
4027  }
4028 
4029  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
4030  private boolean addKnapsackCuts_;
4040  public boolean hasAddKnapsackCuts() {
4041  return ((bitField2_ & 0x00000020) != 0);
4042  }
4052  public boolean getAddKnapsackCuts() {
4053  return addKnapsackCuts_;
4054  }
4055 
4056  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
4057  private boolean addCgCuts_;
4066  public boolean hasAddCgCuts() {
4067  return ((bitField2_ & 0x00000040) != 0);
4068  }
4077  public boolean getAddCgCuts() {
4078  return addCgCuts_;
4079  }
4080 
4081  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
4082  private boolean addMirCuts_;
4091  public boolean hasAddMirCuts() {
4092  return ((bitField2_ & 0x00000080) != 0);
4093  }
4102  public boolean getAddMirCuts() {
4103  return addMirCuts_;
4104  }
4105 
4106  public static final int USE_MIR_ROUNDING_FIELD_NUMBER = 118;
4107  private boolean useMirRounding_;
4117  public boolean hasUseMirRounding() {
4118  return ((bitField2_ & 0x00000100) != 0);
4119  }
4129  public boolean getUseMirRounding() {
4130  return useMirRounding_;
4131  }
4132 
4133  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4134  private int maxIntegerRoundingScaling_;
4146  public boolean hasMaxIntegerRoundingScaling() {
4147  return ((bitField2_ & 0x00000200) != 0);
4148  }
4161  return maxIntegerRoundingScaling_;
4162  }
4163 
4164  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4165  private boolean addLpConstraintsLazily_;
4176  public boolean hasAddLpConstraintsLazily() {
4177  return ((bitField2_ & 0x00000400) != 0);
4178  }
4189  public boolean getAddLpConstraintsLazily() {
4190  return addLpConstraintsLazily_;
4191  }
4192 
4194  private double minOrthogonalityForLpConstraints_;
4207  return ((bitField2_ & 0x00000800) != 0);
4208  }
4221  return minOrthogonalityForLpConstraints_;
4222  }
4223 
4224  public static final int MAX_INACTIVE_COUNT_FIELD_NUMBER = 121;
4225  private long maxInactiveCount_;
4234  public boolean hasMaxInactiveCount() {
4235  return ((bitField2_ & 0x00001000) != 0);
4236  }
4245  public long getMaxInactiveCount() {
4246  return maxInactiveCount_;
4247  }
4248 
4249  public static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER = 122;
4250  private long constraintRemovalBatchSize_;
4260  return ((bitField2_ & 0x00002000) != 0);
4261  }
4271  return constraintRemovalBatchSize_;
4272  }
4273 
4274  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4275  private int searchBranching_;
4279  public boolean hasSearchBranching() {
4280  return ((bitField2_ & 0x00004000) != 0);
4281  }
4286  @SuppressWarnings("deprecation")
4288  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4289  }
4290 
4291  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4292  private boolean exploitIntegerLpSolution_;
4303  public boolean hasExploitIntegerLpSolution() {
4304  return ((bitField2_ & 0x00008000) != 0);
4305  }
4316  public boolean getExploitIntegerLpSolution() {
4317  return exploitIntegerLpSolution_;
4318  }
4319 
4320  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4321  private boolean exploitAllLpSolution_;
4331  public boolean hasExploitAllLpSolution() {
4332  return ((bitField2_ & 0x00010000) != 0);
4333  }
4343  public boolean getExploitAllLpSolution() {
4344  return exploitAllLpSolution_;
4345  }
4346 
4347  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4348  private boolean exploitBestSolution_;
4356  public boolean hasExploitBestSolution() {
4357  return ((bitField2_ & 0x00020000) != 0);
4358  }
4366  public boolean getExploitBestSolution() {
4367  return exploitBestSolution_;
4368  }
4369 
4370  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4371  private boolean exploitObjective_;
4380  public boolean hasExploitObjective() {
4381  return ((bitField2_ & 0x00040000) != 0);
4382  }
4391  public boolean getExploitObjective() {
4392  return exploitObjective_;
4393  }
4394 
4395  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4396  private long pseudoCostReliabilityThreshold_;
4406  return ((bitField2_ & 0x00080000) != 0);
4407  }
4417  return pseudoCostReliabilityThreshold_;
4418  }
4419 
4420  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4421  private boolean optimizeWithCore_;
4432  public boolean hasOptimizeWithCore() {
4433  return ((bitField2_ & 0x00100000) != 0);
4434  }
4445  public boolean getOptimizeWithCore() {
4446  return optimizeWithCore_;
4447  }
4448 
4449  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
4450  private int binarySearchNumConflicts_;
4461  public boolean hasBinarySearchNumConflicts() {
4462  return ((bitField2_ & 0x00200000) != 0);
4463  }
4475  return binarySearchNumConflicts_;
4476  }
4477 
4478  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
4479  private boolean optimizeWithMaxHs_;
4492  public boolean hasOptimizeWithMaxHs() {
4493  return ((bitField2_ & 0x00400000) != 0);
4494  }
4507  public boolean getOptimizeWithMaxHs() {
4508  return optimizeWithMaxHs_;
4509  }
4510 
4511  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
4512  private boolean cpModelPresolve_;
4520  public boolean hasCpModelPresolve() {
4521  return ((bitField2_ & 0x00800000) != 0);
4522  }
4530  public boolean getCpModelPresolve() {
4531  return cpModelPresolve_;
4532  }
4533 
4534  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
4535  private int cpModelProbingLevel_;
4543  public boolean hasCpModelProbingLevel() {
4544  return ((bitField2_ & 0x01000000) != 0);
4545  }
4553  public int getCpModelProbingLevel() {
4554  return cpModelProbingLevel_;
4555  }
4556 
4557  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
4558  private boolean cpModelUseSatPresolve_;
4566  public boolean hasCpModelUseSatPresolve() {
4567  return ((bitField2_ & 0x02000000) != 0);
4568  }
4576  public boolean getCpModelUseSatPresolve() {
4577  return cpModelUseSatPresolve_;
4578  }
4579 
4580  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
4581  private boolean enumerateAllSolutions_;
4594  public boolean hasEnumerateAllSolutions() {
4595  return ((bitField2_ & 0x04000000) != 0);
4596  }
4609  public boolean getEnumerateAllSolutions() {
4610  return enumerateAllSolutions_;
4611  }
4612 
4614  private boolean fillTightenedDomainsInResponse_;
4627  return ((bitField2_ & 0x08000000) != 0);
4628  }
4641  return fillTightenedDomainsInResponse_;
4642  }
4643 
4644  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
4645  private boolean instantiateAllVariables_;
4654  public boolean hasInstantiateAllVariables() {
4655  return ((bitField2_ & 0x10000000) != 0);
4656  }
4665  public boolean getInstantiateAllVariables() {
4666  return instantiateAllVariables_;
4667  }
4668 
4670  private boolean autoDetectGreaterThanAtLeastOneOf_;
4682  return ((bitField2_ & 0x20000000) != 0);
4683  }
4695  return autoDetectGreaterThanAtLeastOneOf_;
4696  }
4697 
4698  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
4699  private boolean stopAfterFirstSolution_;
4707  public boolean hasStopAfterFirstSolution() {
4708  return ((bitField2_ & 0x40000000) != 0);
4709  }
4717  public boolean getStopAfterFirstSolution() {
4718  return stopAfterFirstSolution_;
4719  }
4720 
4721  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
4722  private int numSearchWorkers_;
4731  public boolean hasNumSearchWorkers() {
4732  return ((bitField2_ & 0x80000000) != 0);
4733  }
4742  public int getNumSearchWorkers() {
4743  return numSearchWorkers_;
4744  }
4745 
4746  public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
4747  private boolean interleaveSearch_;
4758  public boolean hasInterleaveSearch() {
4759  return ((bitField3_ & 0x00000001) != 0);
4760  }
4771  public boolean getInterleaveSearch() {
4772  return interleaveSearch_;
4773  }
4774 
4775  public static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER = 134;
4776  private boolean deterministicParallelSearch_;
4787  return ((bitField3_ & 0x00000002) != 0);
4788  }
4799  return deterministicParallelSearch_;
4800  }
4801 
4802  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
4803  private boolean shareObjectiveBounds_;
4811  public boolean hasShareObjectiveBounds() {
4812  return ((bitField3_ & 0x00000004) != 0);
4813  }
4821  public boolean getShareObjectiveBounds() {
4822  return shareObjectiveBounds_;
4823  }
4824 
4825  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
4826  private boolean shareLevelZeroBounds_;
4834  public boolean hasShareLevelZeroBounds() {
4835  return ((bitField3_ & 0x00000008) != 0);
4836  }
4844  public boolean getShareLevelZeroBounds() {
4845  return shareLevelZeroBounds_;
4846  }
4847 
4848  public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
4849  private boolean useLnsOnly_;
4857  public boolean hasUseLnsOnly() {
4858  return ((bitField3_ & 0x00000010) != 0);
4859  }
4867  public boolean getUseLnsOnly() {
4868  return useLnsOnly_;
4869  }
4870 
4871  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
4872  private boolean lnsFocusOnDecisionVariables_;
4877  return ((bitField3_ & 0x00000020) != 0);
4878  }
4883  return lnsFocusOnDecisionVariables_;
4884  }
4885 
4886  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
4887  private boolean useRinsLns_;
4895  public boolean hasUseRinsLns() {
4896  return ((bitField3_ & 0x00000040) != 0);
4897  }
4905  public boolean getUseRinsLns() {
4906  return useRinsLns_;
4907  }
4908 
4909  public static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER = 137;
4910  private boolean diversifyLnsParams_;
4918  public boolean hasDiversifyLnsParams() {
4919  return ((bitField3_ & 0x00000080) != 0);
4920  }
4928  public boolean getDiversifyLnsParams() {
4929  return diversifyLnsParams_;
4930  }
4931 
4932  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
4933  private boolean randomizeSearch_;
4941  public boolean hasRandomizeSearch() {
4942  return ((bitField3_ & 0x00000100) != 0);
4943  }
4951  public boolean getRandomizeSearch() {
4952  return randomizeSearch_;
4953  }
4954 
4955  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
4956  private long searchRandomizationTolerance_;
4971  return ((bitField3_ & 0x00000200) != 0);
4972  }
4987  return searchRandomizationTolerance_;
4988  }
4989 
4990  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
4991  private boolean useOptionalVariables_;
5001  public boolean hasUseOptionalVariables() {
5002  return ((bitField3_ & 0x00000400) != 0);
5003  }
5013  public boolean getUseOptionalVariables() {
5014  return useOptionalVariables_;
5015  }
5016 
5017  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
5018  private boolean useExactLpReason_;
5029  public boolean hasUseExactLpReason() {
5030  return ((bitField3_ & 0x00000800) != 0);
5031  }
5042  public boolean getUseExactLpReason() {
5043  return useExactLpReason_;
5044  }
5045 
5046  public static final int USE_BRANCHING_IN_LP_FIELD_NUMBER = 139;
5047  private boolean useBranchingInLp_;
5057  public boolean hasUseBranchingInLp() {
5058  return ((bitField3_ & 0x00001000) != 0);
5059  }
5069  public boolean getUseBranchingInLp() {
5070  return useBranchingInLp_;
5071  }
5072 
5073  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
5074  private boolean useCombinedNoOverlap_;
5084  public boolean hasUseCombinedNoOverlap() {
5085  return ((bitField3_ & 0x00002000) != 0);
5086  }
5096  public boolean getUseCombinedNoOverlap() {
5097  return useCombinedNoOverlap_;
5098  }
5099 
5100  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
5101  private double mipMaxBound_;
5111  public boolean hasMipMaxBound() {
5112  return ((bitField3_ & 0x00004000) != 0);
5113  }
5123  public double getMipMaxBound() {
5124  return mipMaxBound_;
5125  }
5126 
5127  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
5128  private double mipVarScaling_;
5138  public boolean hasMipVarScaling() {
5139  return ((bitField3_ & 0x00008000) != 0);
5140  }
5150  public double getMipVarScaling() {
5151  return mipVarScaling_;
5152  }
5153 
5154  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
5155  private double mipWantedPrecision_;
5171  public boolean hasMipWantedPrecision() {
5172  return ((bitField3_ & 0x00010000) != 0);
5173  }
5189  public double getMipWantedPrecision() {
5190  return mipWantedPrecision_;
5191  }
5192 
5193  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5194  private int mipMaxActivityExponent_;
5208  public boolean hasMipMaxActivityExponent() {
5209  return ((bitField3_ & 0x00020000) != 0);
5210  }
5225  return mipMaxActivityExponent_;
5226  }
5227 
5228  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5229  private double mipCheckPrecision_;
5240  public boolean hasMipCheckPrecision() {
5241  return ((bitField3_ & 0x00040000) != 0);
5242  }
5253  public double getMipCheckPrecision() {
5254  return mipCheckPrecision_;
5255  }
5256 
5257  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
5258  private boolean catchSigintSignal_;
5268  public boolean hasCatchSigintSignal() {
5269  return ((bitField3_ & 0x00080000) != 0);
5270  }
5280  public boolean getCatchSigintSignal() {
5281  return catchSigintSignal_;
5282  }
5283 
5284  private byte memoizedIsInitialized = -1;
5285  @java.lang.Override
5286  public final boolean isInitialized() {
5287  byte isInitialized = memoizedIsInitialized;
5288  if (isInitialized == 1) return true;
5289  if (isInitialized == 0) return false;
5290 
5291  memoizedIsInitialized = 1;
5292  return true;
5293  }
5294 
5295  @java.lang.Override
5296  public void writeTo(com.google.protobuf.CodedOutputStream output)
5297  throws java.io.IOException {
5298  if (((bitField0_ & 0x00000001) != 0)) {
5299  output.writeEnum(1, preferredVariableOrder_);
5300  }
5301  if (((bitField0_ & 0x00000002) != 0)) {
5302  output.writeEnum(2, initialPolarity_);
5303  }
5304  if (((bitField0_ & 0x00000100) != 0)) {
5305  output.writeEnum(4, minimizationAlgorithm_);
5306  }
5307  if (((bitField0_ & 0x00000800) != 0)) {
5308  output.writeInt32(11, clauseCleanupPeriod_);
5309  }
5310  if (((bitField0_ & 0x00001000) != 0)) {
5311  output.writeInt32(13, clauseCleanupTarget_);
5312  }
5313  if (((bitField0_ & 0x00100000) != 0)) {
5314  output.writeDouble(15, variableActivityDecay_);
5315  }
5316  if (((bitField0_ & 0x00200000) != 0)) {
5317  output.writeDouble(16, maxVariableActivityValue_);
5318  }
5319  if (((bitField0_ & 0x02000000) != 0)) {
5320  output.writeDouble(17, clauseActivityDecay_);
5321  }
5322  if (((bitField0_ & 0x04000000) != 0)) {
5323  output.writeDouble(18, maxClauseActivityValue_);
5324  }
5325  if (((bitField0_ & 0x00400000) != 0)) {
5326  output.writeDouble(22, glucoseMaxDecay_);
5327  }
5328  if (((bitField0_ & 0x00800000) != 0)) {
5329  output.writeDouble(23, glucoseDecayIncrement_);
5330  }
5331  if (((bitField0_ & 0x01000000) != 0)) {
5332  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5333  }
5334  if (((bitField0_ & 0x10000000) != 0)) {
5335  output.writeInt32(30, restartPeriod_);
5336  }
5337  if (((bitField1_ & 0x00000400) != 0)) {
5338  output.writeInt32(31, randomSeed_);
5339  }
5340  if (((bitField0_ & 0x00000010) != 0)) {
5341  output.writeDouble(32, randomBranchesRatio_);
5342  }
5343  if (((bitField1_ & 0x00000200) != 0)) {
5344  output.writeBool(33, treatBinaryClausesSeparately_);
5345  }
5346  if (((bitField0_ & 0x00000200) != 0)) {
5347  output.writeEnum(34, binaryMinimizationAlgorithm_);
5348  }
5349  if (((bitField1_ & 0x00400000) != 0)) {
5350  output.writeBool(35, useOptimizationHints_);
5351  }
5352  if (((bitField1_ & 0x00000020) != 0)) {
5353  output.writeDouble(36, maxTimeInSeconds_);
5354  }
5355  if (((bitField1_ & 0x00000080) != 0)) {
5356  output.writeInt64(37, maxNumberOfConflicts_);
5357  }
5358  if (((bitField1_ & 0x00000100) != 0)) {
5359  output.writeInt64(40, maxMemoryInMb_);
5360  }
5361  if (((bitField1_ & 0x00000800) != 0)) {
5362  output.writeBool(41, logSearchProgress_);
5363  }
5364  if (((bitField1_ & 0x00001000) != 0)) {
5365  output.writeBool(43, usePbResolution_);
5366  }
5367  if (((bitField0_ & 0x00000004) != 0)) {
5368  output.writeBool(44, usePhaseSaving_);
5369  }
5370  if (((bitField0_ & 0x00000008) != 0)) {
5371  output.writeDouble(45, randomPolarityRatio_);
5372  }
5373  if (((bitField0_ & 0x00010000) != 0)) {
5374  output.writeInt32(46, pbCleanupIncrement_);
5375  }
5376  if (((bitField0_ & 0x00020000) != 0)) {
5377  output.writeDouble(47, pbCleanupRatio_);
5378  }
5379  if (((bitField1_ & 0x00002000) != 0)) {
5380  output.writeBool(48, minimizeReductionDuringPbResolution_);
5381  }
5382  if (((bitField1_ & 0x00004000) != 0)) {
5383  output.writeBool(49, countAssumptionLevelsInLbd_);
5384  }
5385  if (((bitField1_ & 0x00800000) != 0)) {
5386  output.writeBool(50, minimizeCore_);
5387  }
5388  if (((bitField1_ & 0x04000000) != 0)) {
5389  output.writeEnum(51, maxSatAssumptionOrder_);
5390  }
5391  if (((bitField1_ & 0x08000000) != 0)) {
5392  output.writeBool(52, maxSatReverseAssumptionOrder_);
5393  }
5394  if (((bitField1_ & 0x10000000) != 0)) {
5395  output.writeEnum(53, maxSatStratification_);
5396  }
5397  if (((bitField1_ & 0x00008000) != 0)) {
5398  output.writeInt32(54, presolveBveThreshold_);
5399  }
5400  if (((bitField1_ & 0x00010000) != 0)) {
5401  output.writeInt32(55, presolveBveClauseWeight_);
5402  }
5403  if (((bitField0_ & 0x00000400) != 0)) {
5404  output.writeBool(56, subsumptionDuringConflictAnalysis_);
5405  }
5406  if (((bitField1_ & 0x00020000) != 0)) {
5407  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
5408  }
5409  if (((bitField0_ & 0x00002000) != 0)) {
5410  output.writeEnum(58, clauseCleanupProtection_);
5411  }
5412  if (((bitField0_ & 0x00004000) != 0)) {
5413  output.writeInt32(59, clauseCleanupLbdBound_);
5414  }
5415  if (((bitField0_ & 0x00008000) != 0)) {
5416  output.writeEnum(60, clauseCleanupOrdering_);
5417  }
5418  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5419  output.writeEnum(61, restartAlgorithms_.get(i));
5420  }
5421  if (((bitField0_ & 0x20000000) != 0)) {
5422  output.writeInt32(62, restartRunningWindowSize_);
5423  }
5424  if (((bitField0_ & 0x40000000) != 0)) {
5425  output.writeDouble(63, restartDlAverageRatio_);
5426  }
5427  if (((bitField1_ & 0x00000001) != 0)) {
5428  output.writeBool(64, useBlockingRestart_);
5429  }
5430  if (((bitField1_ & 0x00000002) != 0)) {
5431  output.writeInt32(65, blockingRestartWindowSize_);
5432  }
5433  if (((bitField1_ & 0x00000004) != 0)) {
5434  output.writeDouble(66, blockingRestartMultiplier_);
5435  }
5436  if (((bitField1_ & 0x00000040) != 0)) {
5437  output.writeDouble(67, maxDeterministicTime_);
5438  }
5439  if (((bitField1_ & 0x00000008) != 0)) {
5440  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
5441  }
5442  if (((bitField1_ & 0x00000010) != 0)) {
5443  output.writeDouble(69, strategyChangeIncreaseRatio_);
5444  }
5445  if (((bitField0_ & 0x08000000) != 0)) {
5446  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
5447  }
5448  if (((bitField0_ & 0x80000000) != 0)) {
5449  output.writeDouble(71, restartLbdAverageRatio_);
5450  }
5451  if (((bitField1_ & 0x00080000) != 0)) {
5452  output.writeBool(72, presolveUseBva_);
5453  }
5454  if (((bitField1_ & 0x00100000) != 0)) {
5455  output.writeInt32(73, presolveBvaThreshold_);
5456  }
5457  if (((bitField1_ & 0x20000000) != 0)) {
5458  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
5459  }
5460  if (((bitField0_ & 0x00000020) != 0)) {
5461  output.writeBool(75, useErwaHeuristic_);
5462  }
5463  if (((bitField0_ & 0x00000040) != 0)) {
5464  output.writeDouble(76, initialVariablesActivity_);
5465  }
5466  if (((bitField0_ & 0x00000080) != 0)) {
5467  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
5468  }
5469  if (((bitField1_ & 0x40000000) != 0)) {
5470  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
5471  }
5472  if (((bitField1_ & 0x80000000) != 0)) {
5473  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
5474  }
5475  if (((bitField2_ & 0x00000001) != 0)) {
5476  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
5477  }
5478  if (((bitField2_ & 0x00004000) != 0)) {
5479  output.writeEnum(82, searchBranching_);
5480  }
5481  if (((bitField2_ & 0x00100000) != 0)) {
5482  output.writeBool(83, optimizeWithCore_);
5483  }
5484  if (((bitField1_ & 0x01000000) != 0)) {
5485  output.writeBool(84, findMultipleCores_);
5486  }
5487  if (((bitField2_ & 0x00400000) != 0)) {
5488  output.writeBool(85, optimizeWithMaxHs_);
5489  }
5490  if (((bitField2_ & 0x00800000) != 0)) {
5491  output.writeBool(86, cpModelPresolve_);
5492  }
5493  if (((bitField2_ & 0x04000000) != 0)) {
5494  output.writeBool(87, enumerateAllSolutions_);
5495  }
5496  if (((bitField1_ & 0x00040000) != 0)) {
5497  output.writeBool(88, presolveBlockedClause_);
5498  }
5499  if (((bitField1_ & 0x02000000) != 0)) {
5500  output.writeBool(89, coverOptimization_);
5501  }
5502  if (((bitField2_ & 0x00000002) != 0)) {
5503  output.writeInt32(90, linearizationLevel_);
5504  }
5505  if (((bitField2_ & 0x00000008) != 0)) {
5506  output.writeInt32(91, maxNumCuts_);
5507  }
5508  if (((bitField2_ & 0x00000010) != 0)) {
5509  output.writeBool(92, onlyAddCutsAtLevelZero_);
5510  }
5511  if (((bitField2_ & 0x02000000) != 0)) {
5512  output.writeBool(93, cpModelUseSatPresolve_);
5513  }
5514  if (((bitField2_ & 0x00008000) != 0)) {
5515  output.writeBool(94, exploitIntegerLpSolution_);
5516  }
5517  if (((bitField2_ & 0x20000000) != 0)) {
5518  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
5519  }
5520  if (((bitField0_ & 0x00040000) != 0)) {
5521  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
5522  }
5523  if (((bitField0_ & 0x00080000) != 0)) {
5524  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
5525  }
5526  if (((bitField2_ & 0x40000000) != 0)) {
5527  output.writeBool(98, stopAfterFirstSolution_);
5528  }
5529  if (((bitField2_ & 0x00200000) != 0)) {
5530  output.writeInt32(99, binarySearchNumConflicts_);
5531  }
5532  if (((bitField2_ & 0x80000000) != 0)) {
5533  output.writeInt32(100, numSearchWorkers_);
5534  }
5535  if (((bitField3_ & 0x00000010) != 0)) {
5536  output.writeBool(101, useLnsOnly_);
5537  }
5538  if (((bitField3_ & 0x00000100) != 0)) {
5539  output.writeBool(103, randomizeSearch_);
5540  }
5541  if (((bitField3_ & 0x00000200) != 0)) {
5542  output.writeInt64(104, searchRandomizationTolerance_);
5543  }
5544  if (((bitField3_ & 0x00000020) != 0)) {
5545  output.writeBool(105, lnsFocusOnDecisionVariables_);
5546  }
5547  if (((bitField2_ & 0x10000000) != 0)) {
5548  output.writeBool(106, instantiateAllVariables_);
5549  }
5550  if (((bitField2_ & 0x00000004) != 0)) {
5551  output.writeInt32(107, booleanEncodingLevel_);
5552  }
5553  if (((bitField3_ & 0x00000400) != 0)) {
5554  output.writeBool(108, useOptionalVariables_);
5555  }
5556  if (((bitField3_ & 0x00000800) != 0)) {
5557  output.writeBool(109, useExactLpReason_);
5558  }
5559  if (((bitField2_ & 0x01000000) != 0)) {
5560  output.writeInt32(110, cpModelProbingLevel_);
5561  }
5562  if (((bitField2_ & 0x00000020) != 0)) {
5563  output.writeBool(111, addKnapsackCuts_);
5564  }
5565  if (((bitField2_ & 0x00000400) != 0)) {
5566  output.writeBool(112, addLpConstraintsLazily_);
5567  }
5568  if (((bitField3_ & 0x00000004) != 0)) {
5569  output.writeBool(113, shareObjectiveBounds_);
5570  }
5571  if (((bitField3_ & 0x00000008) != 0)) {
5572  output.writeBool(114, shareLevelZeroBounds_);
5573  }
5574  if (((bitField2_ & 0x00000800) != 0)) {
5575  output.writeDouble(115, minOrthogonalityForLpConstraints_);
5576  }
5577  if (((bitField2_ & 0x00010000) != 0)) {
5578  output.writeBool(116, exploitAllLpSolution_);
5579  }
5580  if (((bitField2_ & 0x00000040) != 0)) {
5581  output.writeBool(117, addCgCuts_);
5582  }
5583  if (((bitField2_ & 0x00000100) != 0)) {
5584  output.writeBool(118, useMirRounding_);
5585  }
5586  if (((bitField2_ & 0x00000200) != 0)) {
5587  output.writeInt32(119, maxIntegerRoundingScaling_);
5588  }
5589  if (((bitField2_ & 0x00000080) != 0)) {
5590  output.writeBool(120, addMirCuts_);
5591  }
5592  if (((bitField2_ & 0x00001000) != 0)) {
5593  output.writeInt64(121, maxInactiveCount_);
5594  }
5595  if (((bitField2_ & 0x00002000) != 0)) {
5596  output.writeInt64(122, constraintRemovalBatchSize_);
5597  }
5598  if (((bitField2_ & 0x00080000) != 0)) {
5599  output.writeInt64(123, pseudoCostReliabilityThreshold_);
5600  }
5601  if (((bitField3_ & 0x00004000) != 0)) {
5602  output.writeDouble(124, mipMaxBound_);
5603  }
5604  if (((bitField3_ & 0x00008000) != 0)) {
5605  output.writeDouble(125, mipVarScaling_);
5606  }
5607  if (((bitField3_ & 0x00010000) != 0)) {
5608  output.writeDouble(126, mipWantedPrecision_);
5609  }
5610  if (((bitField3_ & 0x00020000) != 0)) {
5611  output.writeInt32(127, mipMaxActivityExponent_);
5612  }
5613  if (((bitField3_ & 0x00040000) != 0)) {
5614  output.writeDouble(128, mipCheckPrecision_);
5615  }
5616  if (((bitField3_ & 0x00000040) != 0)) {
5617  output.writeBool(129, useRinsLns_);
5618  }
5619  if (((bitField2_ & 0x00020000) != 0)) {
5620  output.writeBool(130, exploitBestSolution_);
5621  }
5622  if (((bitField2_ & 0x00040000) != 0)) {
5623  output.writeBool(131, exploitObjective_);
5624  }
5625  if (((bitField2_ & 0x08000000) != 0)) {
5626  output.writeBool(132, fillTightenedDomainsInResponse_);
5627  }
5628  if (((bitField3_ & 0x00002000) != 0)) {
5629  output.writeBool(133, useCombinedNoOverlap_);
5630  }
5631  if (((bitField3_ & 0x00000002) != 0)) {
5632  output.writeBool(134, deterministicParallelSearch_);
5633  }
5634  if (((bitField3_ & 0x00080000) != 0)) {
5635  output.writeBool(135, catchSigintSignal_);
5636  }
5637  if (((bitField3_ & 0x00000001) != 0)) {
5638  output.writeBool(136, interleaveSearch_);
5639  }
5640  if (((bitField3_ & 0x00000080) != 0)) {
5641  output.writeBool(137, diversifyLnsParams_);
5642  }
5643  if (((bitField1_ & 0x00200000) != 0)) {
5644  output.writeInt32(138, maxPresolveIterations_);
5645  }
5646  if (((bitField3_ & 0x00001000) != 0)) {
5647  output.writeBool(139, useBranchingInLp_);
5648  }
5649  unknownFields.writeTo(output);
5650  }
5651 
5652  @java.lang.Override
5653  public int getSerializedSize() {
5654  int size = memoizedSize;
5655  if (size != -1) return size;
5656 
5657  size = 0;
5658  if (((bitField0_ & 0x00000001) != 0)) {
5659  size += com.google.protobuf.CodedOutputStream
5660  .computeEnumSize(1, preferredVariableOrder_);
5661  }
5662  if (((bitField0_ & 0x00000002) != 0)) {
5663  size += com.google.protobuf.CodedOutputStream
5664  .computeEnumSize(2, initialPolarity_);
5665  }
5666  if (((bitField0_ & 0x00000100) != 0)) {
5667  size += com.google.protobuf.CodedOutputStream
5668  .computeEnumSize(4, minimizationAlgorithm_);
5669  }
5670  if (((bitField0_ & 0x00000800) != 0)) {
5671  size += com.google.protobuf.CodedOutputStream
5672  .computeInt32Size(11, clauseCleanupPeriod_);
5673  }
5674  if (((bitField0_ & 0x00001000) != 0)) {
5675  size += com.google.protobuf.CodedOutputStream
5676  .computeInt32Size(13, clauseCleanupTarget_);
5677  }
5678  if (((bitField0_ & 0x00100000) != 0)) {
5679  size += com.google.protobuf.CodedOutputStream
5680  .computeDoubleSize(15, variableActivityDecay_);
5681  }
5682  if (((bitField0_ & 0x00200000) != 0)) {
5683  size += com.google.protobuf.CodedOutputStream
5684  .computeDoubleSize(16, maxVariableActivityValue_);
5685  }
5686  if (((bitField0_ & 0x02000000) != 0)) {
5687  size += com.google.protobuf.CodedOutputStream
5688  .computeDoubleSize(17, clauseActivityDecay_);
5689  }
5690  if (((bitField0_ & 0x04000000) != 0)) {
5691  size += com.google.protobuf.CodedOutputStream
5692  .computeDoubleSize(18, maxClauseActivityValue_);
5693  }
5694  if (((bitField0_ & 0x00400000) != 0)) {
5695  size += com.google.protobuf.CodedOutputStream
5696  .computeDoubleSize(22, glucoseMaxDecay_);
5697  }
5698  if (((bitField0_ & 0x00800000) != 0)) {
5699  size += com.google.protobuf.CodedOutputStream
5700  .computeDoubleSize(23, glucoseDecayIncrement_);
5701  }
5702  if (((bitField0_ & 0x01000000) != 0)) {
5703  size += com.google.protobuf.CodedOutputStream
5704  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
5705  }
5706  if (((bitField0_ & 0x10000000) != 0)) {
5707  size += com.google.protobuf.CodedOutputStream
5708  .computeInt32Size(30, restartPeriod_);
5709  }
5710  if (((bitField1_ & 0x00000400) != 0)) {
5711  size += com.google.protobuf.CodedOutputStream
5712  .computeInt32Size(31, randomSeed_);
5713  }
5714  if (((bitField0_ & 0x00000010) != 0)) {
5715  size += com.google.protobuf.CodedOutputStream
5716  .computeDoubleSize(32, randomBranchesRatio_);
5717  }
5718  if (((bitField1_ & 0x00000200) != 0)) {
5719  size += com.google.protobuf.CodedOutputStream
5720  .computeBoolSize(33, treatBinaryClausesSeparately_);
5721  }
5722  if (((bitField0_ & 0x00000200) != 0)) {
5723  size += com.google.protobuf.CodedOutputStream
5724  .computeEnumSize(34, binaryMinimizationAlgorithm_);
5725  }
5726  if (((bitField1_ & 0x00400000) != 0)) {
5727  size += com.google.protobuf.CodedOutputStream
5728  .computeBoolSize(35, useOptimizationHints_);
5729  }
5730  if (((bitField1_ & 0x00000020) != 0)) {
5731  size += com.google.protobuf.CodedOutputStream
5732  .computeDoubleSize(36, maxTimeInSeconds_);
5733  }
5734  if (((bitField1_ & 0x00000080) != 0)) {
5735  size += com.google.protobuf.CodedOutputStream
5736  .computeInt64Size(37, maxNumberOfConflicts_);
5737  }
5738  if (((bitField1_ & 0x00000100) != 0)) {
5739  size += com.google.protobuf.CodedOutputStream
5740  .computeInt64Size(40, maxMemoryInMb_);
5741  }
5742  if (((bitField1_ & 0x00000800) != 0)) {
5743  size += com.google.protobuf.CodedOutputStream
5744  .computeBoolSize(41, logSearchProgress_);
5745  }
5746  if (((bitField1_ & 0x00001000) != 0)) {
5747  size += com.google.protobuf.CodedOutputStream
5748  .computeBoolSize(43, usePbResolution_);
5749  }
5750  if (((bitField0_ & 0x00000004) != 0)) {
5751  size += com.google.protobuf.CodedOutputStream
5752  .computeBoolSize(44, usePhaseSaving_);
5753  }
5754  if (((bitField0_ & 0x00000008) != 0)) {
5755  size += com.google.protobuf.CodedOutputStream
5756  .computeDoubleSize(45, randomPolarityRatio_);
5757  }
5758  if (((bitField0_ & 0x00010000) != 0)) {
5759  size += com.google.protobuf.CodedOutputStream
5760  .computeInt32Size(46, pbCleanupIncrement_);
5761  }
5762  if (((bitField0_ & 0x00020000) != 0)) {
5763  size += com.google.protobuf.CodedOutputStream
5764  .computeDoubleSize(47, pbCleanupRatio_);
5765  }
5766  if (((bitField1_ & 0x00002000) != 0)) {
5767  size += com.google.protobuf.CodedOutputStream
5768  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
5769  }
5770  if (((bitField1_ & 0x00004000) != 0)) {
5771  size += com.google.protobuf.CodedOutputStream
5772  .computeBoolSize(49, countAssumptionLevelsInLbd_);
5773  }
5774  if (((bitField1_ & 0x00800000) != 0)) {
5775  size += com.google.protobuf.CodedOutputStream
5776  .computeBoolSize(50, minimizeCore_);
5777  }
5778  if (((bitField1_ & 0x04000000) != 0)) {
5779  size += com.google.protobuf.CodedOutputStream
5780  .computeEnumSize(51, maxSatAssumptionOrder_);
5781  }
5782  if (((bitField1_ & 0x08000000) != 0)) {
5783  size += com.google.protobuf.CodedOutputStream
5784  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
5785  }
5786  if (((bitField1_ & 0x10000000) != 0)) {
5787  size += com.google.protobuf.CodedOutputStream
5788  .computeEnumSize(53, maxSatStratification_);
5789  }
5790  if (((bitField1_ & 0x00008000) != 0)) {
5791  size += com.google.protobuf.CodedOutputStream
5792  .computeInt32Size(54, presolveBveThreshold_);
5793  }
5794  if (((bitField1_ & 0x00010000) != 0)) {
5795  size += com.google.protobuf.CodedOutputStream
5796  .computeInt32Size(55, presolveBveClauseWeight_);
5797  }
5798  if (((bitField0_ & 0x00000400) != 0)) {
5799  size += com.google.protobuf.CodedOutputStream
5800  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
5801  }
5802  if (((bitField1_ & 0x00020000) != 0)) {
5803  size += com.google.protobuf.CodedOutputStream
5804  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
5805  }
5806  if (((bitField0_ & 0x00002000) != 0)) {
5807  size += com.google.protobuf.CodedOutputStream
5808  .computeEnumSize(58, clauseCleanupProtection_);
5809  }
5810  if (((bitField0_ & 0x00004000) != 0)) {
5811  size += com.google.protobuf.CodedOutputStream
5812  .computeInt32Size(59, clauseCleanupLbdBound_);
5813  }
5814  if (((bitField0_ & 0x00008000) != 0)) {
5815  size += com.google.protobuf.CodedOutputStream
5816  .computeEnumSize(60, clauseCleanupOrdering_);
5817  }
5818  {
5819  int dataSize = 0;
5820  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5821  dataSize += com.google.protobuf.CodedOutputStream
5822  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
5823  }
5824  size += dataSize;
5825  size += 2 * restartAlgorithms_.size();
5826  }
5827  if (((bitField0_ & 0x20000000) != 0)) {
5828  size += com.google.protobuf.CodedOutputStream
5829  .computeInt32Size(62, restartRunningWindowSize_);
5830  }
5831  if (((bitField0_ & 0x40000000) != 0)) {
5832  size += com.google.protobuf.CodedOutputStream
5833  .computeDoubleSize(63, restartDlAverageRatio_);
5834  }
5835  if (((bitField1_ & 0x00000001) != 0)) {
5836  size += com.google.protobuf.CodedOutputStream
5837  .computeBoolSize(64, useBlockingRestart_);
5838  }
5839  if (((bitField1_ & 0x00000002) != 0)) {
5840  size += com.google.protobuf.CodedOutputStream
5841  .computeInt32Size(65, blockingRestartWindowSize_);
5842  }
5843  if (((bitField1_ & 0x00000004) != 0)) {
5844  size += com.google.protobuf.CodedOutputStream
5845  .computeDoubleSize(66, blockingRestartMultiplier_);
5846  }
5847  if (((bitField1_ & 0x00000040) != 0)) {
5848  size += com.google.protobuf.CodedOutputStream
5849  .computeDoubleSize(67, maxDeterministicTime_);
5850  }
5851  if (((bitField1_ & 0x00000008) != 0)) {
5852  size += com.google.protobuf.CodedOutputStream
5853  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
5854  }
5855  if (((bitField1_ & 0x00000010) != 0)) {
5856  size += com.google.protobuf.CodedOutputStream
5857  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
5858  }
5859  if (((bitField0_ & 0x08000000) != 0)) {
5860  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
5861  }
5862  if (((bitField0_ & 0x80000000) != 0)) {
5863  size += com.google.protobuf.CodedOutputStream
5864  .computeDoubleSize(71, restartLbdAverageRatio_);
5865  }
5866  if (((bitField1_ & 0x00080000) != 0)) {
5867  size += com.google.protobuf.CodedOutputStream
5868  .computeBoolSize(72, presolveUseBva_);
5869  }
5870  if (((bitField1_ & 0x00100000) != 0)) {
5871  size += com.google.protobuf.CodedOutputStream
5872  .computeInt32Size(73, presolveBvaThreshold_);
5873  }
5874  if (((bitField1_ & 0x20000000) != 0)) {
5875  size += com.google.protobuf.CodedOutputStream
5876  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
5877  }
5878  if (((bitField0_ & 0x00000020) != 0)) {
5879  size += com.google.protobuf.CodedOutputStream
5880  .computeBoolSize(75, useErwaHeuristic_);
5881  }
5882  if (((bitField0_ & 0x00000040) != 0)) {
5883  size += com.google.protobuf.CodedOutputStream
5884  .computeDoubleSize(76, initialVariablesActivity_);
5885  }
5886  if (((bitField0_ & 0x00000080) != 0)) {
5887  size += com.google.protobuf.CodedOutputStream
5888  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
5889  }
5890  if (((bitField1_ & 0x40000000) != 0)) {
5891  size += com.google.protobuf.CodedOutputStream
5892  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
5893  }
5894  if (((bitField1_ & 0x80000000) != 0)) {
5895  size += com.google.protobuf.CodedOutputStream
5896  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
5897  }
5898  if (((bitField2_ & 0x00000001) != 0)) {
5899  size += com.google.protobuf.CodedOutputStream
5900  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
5901  }
5902  if (((bitField2_ & 0x00004000) != 0)) {
5903  size += com.google.protobuf.CodedOutputStream
5904  .computeEnumSize(82, searchBranching_);
5905  }
5906  if (((bitField2_ & 0x00100000) != 0)) {
5907  size += com.google.protobuf.CodedOutputStream
5908  .computeBoolSize(83, optimizeWithCore_);
5909  }
5910  if (((bitField1_ & 0x01000000) != 0)) {
5911  size += com.google.protobuf.CodedOutputStream
5912  .computeBoolSize(84, findMultipleCores_);
5913  }
5914  if (((bitField2_ & 0x00400000) != 0)) {
5915  size += com.google.protobuf.CodedOutputStream
5916  .computeBoolSize(85, optimizeWithMaxHs_);
5917  }
5918  if (((bitField2_ & 0x00800000) != 0)) {
5919  size += com.google.protobuf.CodedOutputStream
5920  .computeBoolSize(86, cpModelPresolve_);
5921  }
5922  if (((bitField2_ & 0x04000000) != 0)) {
5923  size += com.google.protobuf.CodedOutputStream
5924  .computeBoolSize(87, enumerateAllSolutions_);
5925  }
5926  if (((bitField1_ & 0x00040000) != 0)) {
5927  size += com.google.protobuf.CodedOutputStream
5928  .computeBoolSize(88, presolveBlockedClause_);
5929  }
5930  if (((bitField1_ & 0x02000000) != 0)) {
5931  size += com.google.protobuf.CodedOutputStream
5932  .computeBoolSize(89, coverOptimization_);
5933  }
5934  if (((bitField2_ & 0x00000002) != 0)) {
5935  size += com.google.protobuf.CodedOutputStream
5936  .computeInt32Size(90, linearizationLevel_);
5937  }
5938  if (((bitField2_ & 0x00000008) != 0)) {
5939  size += com.google.protobuf.CodedOutputStream
5940  .computeInt32Size(91, maxNumCuts_);
5941  }
5942  if (((bitField2_ & 0x00000010) != 0)) {
5943  size += com.google.protobuf.CodedOutputStream
5944  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
5945  }
5946  if (((bitField2_ & 0x02000000) != 0)) {
5947  size += com.google.protobuf.CodedOutputStream
5948  .computeBoolSize(93, cpModelUseSatPresolve_);
5949  }
5950  if (((bitField2_ & 0x00008000) != 0)) {
5951  size += com.google.protobuf.CodedOutputStream
5952  .computeBoolSize(94, exploitIntegerLpSolution_);
5953  }
5954  if (((bitField2_ & 0x20000000) != 0)) {
5955  size += com.google.protobuf.CodedOutputStream
5956  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
5957  }
5958  if (((bitField0_ & 0x00040000) != 0)) {
5959  size += com.google.protobuf.CodedOutputStream
5960  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
5961  }
5962  if (((bitField0_ & 0x00080000) != 0)) {
5963  size += com.google.protobuf.CodedOutputStream
5964  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
5965  }
5966  if (((bitField2_ & 0x40000000) != 0)) {
5967  size += com.google.protobuf.CodedOutputStream
5968  .computeBoolSize(98, stopAfterFirstSolution_);
5969  }
5970  if (((bitField2_ & 0x00200000) != 0)) {
5971  size += com.google.protobuf.CodedOutputStream
5972  .computeInt32Size(99, binarySearchNumConflicts_);
5973  }
5974  if (((bitField2_ & 0x80000000) != 0)) {
5975  size += com.google.protobuf.CodedOutputStream
5976  .computeInt32Size(100, numSearchWorkers_);
5977  }
5978  if (((bitField3_ & 0x00000010) != 0)) {
5979  size += com.google.protobuf.CodedOutputStream
5980  .computeBoolSize(101, useLnsOnly_);
5981  }
5982  if (((bitField3_ & 0x00000100) != 0)) {
5983  size += com.google.protobuf.CodedOutputStream
5984  .computeBoolSize(103, randomizeSearch_);
5985  }
5986  if (((bitField3_ & 0x00000200) != 0)) {
5987  size += com.google.protobuf.CodedOutputStream
5988  .computeInt64Size(104, searchRandomizationTolerance_);
5989  }
5990  if (((bitField3_ & 0x00000020) != 0)) {
5991  size += com.google.protobuf.CodedOutputStream
5992  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
5993  }
5994  if (((bitField2_ & 0x10000000) != 0)) {
5995  size += com.google.protobuf.CodedOutputStream
5996  .computeBoolSize(106, instantiateAllVariables_);
5997  }
5998  if (((bitField2_ & 0x00000004) != 0)) {
5999  size += com.google.protobuf.CodedOutputStream
6000  .computeInt32Size(107, booleanEncodingLevel_);
6001  }
6002  if (((bitField3_ & 0x00000400) != 0)) {
6003  size += com.google.protobuf.CodedOutputStream
6004  .computeBoolSize(108, useOptionalVariables_);
6005  }
6006  if (((bitField3_ & 0x00000800) != 0)) {
6007  size += com.google.protobuf.CodedOutputStream
6008  .computeBoolSize(109, useExactLpReason_);
6009  }
6010  if (((bitField2_ & 0x01000000) != 0)) {
6011  size += com.google.protobuf.CodedOutputStream
6012  .computeInt32Size(110, cpModelProbingLevel_);
6013  }
6014  if (((bitField2_ & 0x00000020) != 0)) {
6015  size += com.google.protobuf.CodedOutputStream
6016  .computeBoolSize(111, addKnapsackCuts_);
6017  }
6018  if (((bitField2_ & 0x00000400) != 0)) {
6019  size += com.google.protobuf.CodedOutputStream
6020  .computeBoolSize(112, addLpConstraintsLazily_);
6021  }
6022  if (((bitField3_ & 0x00000004) != 0)) {
6023  size += com.google.protobuf.CodedOutputStream
6024  .computeBoolSize(113, shareObjectiveBounds_);
6025  }
6026  if (((bitField3_ & 0x00000008) != 0)) {
6027  size += com.google.protobuf.CodedOutputStream
6028  .computeBoolSize(114, shareLevelZeroBounds_);
6029  }
6030  if (((bitField2_ & 0x00000800) != 0)) {
6031  size += com.google.protobuf.CodedOutputStream
6032  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
6033  }
6034  if (((bitField2_ & 0x00010000) != 0)) {
6035  size += com.google.protobuf.CodedOutputStream
6036  .computeBoolSize(116, exploitAllLpSolution_);
6037  }
6038  if (((bitField2_ & 0x00000040) != 0)) {
6039  size += com.google.protobuf.CodedOutputStream
6040  .computeBoolSize(117, addCgCuts_);
6041  }
6042  if (((bitField2_ & 0x00000100) != 0)) {
6043  size += com.google.protobuf.CodedOutputStream
6044  .computeBoolSize(118, useMirRounding_);
6045  }
6046  if (((bitField2_ & 0x00000200) != 0)) {
6047  size += com.google.protobuf.CodedOutputStream
6048  .computeInt32Size(119, maxIntegerRoundingScaling_);
6049  }
6050  if (((bitField2_ & 0x00000080) != 0)) {
6051  size += com.google.protobuf.CodedOutputStream
6052  .computeBoolSize(120, addMirCuts_);
6053  }
6054  if (((bitField2_ & 0x00001000) != 0)) {
6055  size += com.google.protobuf.CodedOutputStream
6056  .computeInt64Size(121, maxInactiveCount_);
6057  }
6058  if (((bitField2_ & 0x00002000) != 0)) {
6059  size += com.google.protobuf.CodedOutputStream
6060  .computeInt64Size(122, constraintRemovalBatchSize_);
6061  }
6062  if (((bitField2_ & 0x00080000) != 0)) {
6063  size += com.google.protobuf.CodedOutputStream
6064  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
6065  }
6066  if (((bitField3_ & 0x00004000) != 0)) {
6067  size += com.google.protobuf.CodedOutputStream
6068  .computeDoubleSize(124, mipMaxBound_);
6069  }
6070  if (((bitField3_ & 0x00008000) != 0)) {
6071  size += com.google.protobuf.CodedOutputStream
6072  .computeDoubleSize(125, mipVarScaling_);
6073  }
6074  if (((bitField3_ & 0x00010000) != 0)) {
6075  size += com.google.protobuf.CodedOutputStream
6076  .computeDoubleSize(126, mipWantedPrecision_);
6077  }
6078  if (((bitField3_ & 0x00020000) != 0)) {
6079  size += com.google.protobuf.CodedOutputStream
6080  .computeInt32Size(127, mipMaxActivityExponent_);
6081  }
6082  if (((bitField3_ & 0x00040000) != 0)) {
6083  size += com.google.protobuf.CodedOutputStream
6084  .computeDoubleSize(128, mipCheckPrecision_);
6085  }
6086  if (((bitField3_ & 0x00000040) != 0)) {
6087  size += com.google.protobuf.CodedOutputStream
6088  .computeBoolSize(129, useRinsLns_);
6089  }
6090  if (((bitField2_ & 0x00020000) != 0)) {
6091  size += com.google.protobuf.CodedOutputStream
6092  .computeBoolSize(130, exploitBestSolution_);
6093  }
6094  if (((bitField2_ & 0x00040000) != 0)) {
6095  size += com.google.protobuf.CodedOutputStream
6096  .computeBoolSize(131, exploitObjective_);
6097  }
6098  if (((bitField2_ & 0x08000000) != 0)) {
6099  size += com.google.protobuf.CodedOutputStream
6100  .computeBoolSize(132, fillTightenedDomainsInResponse_);
6101  }
6102  if (((bitField3_ & 0x00002000) != 0)) {
6103  size += com.google.protobuf.CodedOutputStream
6104  .computeBoolSize(133, useCombinedNoOverlap_);
6105  }
6106  if (((bitField3_ & 0x00000002) != 0)) {
6107  size += com.google.protobuf.CodedOutputStream
6108  .computeBoolSize(134, deterministicParallelSearch_);
6109  }
6110  if (((bitField3_ & 0x00080000) != 0)) {
6111  size += com.google.protobuf.CodedOutputStream
6112  .computeBoolSize(135, catchSigintSignal_);
6113  }
6114  if (((bitField3_ & 0x00000001) != 0)) {
6115  size += com.google.protobuf.CodedOutputStream
6116  .computeBoolSize(136, interleaveSearch_);
6117  }
6118  if (((bitField3_ & 0x00000080) != 0)) {
6119  size += com.google.protobuf.CodedOutputStream
6120  .computeBoolSize(137, diversifyLnsParams_);
6121  }
6122  if (((bitField1_ & 0x00200000) != 0)) {
6123  size += com.google.protobuf.CodedOutputStream
6124  .computeInt32Size(138, maxPresolveIterations_);
6125  }
6126  if (((bitField3_ & 0x00001000) != 0)) {
6127  size += com.google.protobuf.CodedOutputStream
6128  .computeBoolSize(139, useBranchingInLp_);
6129  }
6130  size += unknownFields.getSerializedSize();
6131  memoizedSize = size;
6132  return size;
6133  }
6134 
6135  @java.lang.Override
6136  public boolean equals(final java.lang.Object obj) {
6137  if (obj == this) {
6138  return true;
6139  }
6140  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
6141  return super.equals(obj);
6142  }
6144 
6145  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
6146  if (hasPreferredVariableOrder()) {
6147  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
6148  }
6149  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
6150  if (hasInitialPolarity()) {
6151  if (initialPolarity_ != other.initialPolarity_) return false;
6152  }
6153  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
6154  if (hasUsePhaseSaving()) {
6155  if (getUsePhaseSaving()
6156  != other.getUsePhaseSaving()) return false;
6157  }
6158  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
6159  if (hasRandomPolarityRatio()) {
6160  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
6161  != java.lang.Double.doubleToLongBits(
6162  other.getRandomPolarityRatio())) return false;
6163  }
6164  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
6165  if (hasRandomBranchesRatio()) {
6166  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
6167  != java.lang.Double.doubleToLongBits(
6168  other.getRandomBranchesRatio())) return false;
6169  }
6170  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
6171  if (hasUseErwaHeuristic()) {
6172  if (getUseErwaHeuristic()
6173  != other.getUseErwaHeuristic()) return false;
6174  }
6175  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
6177  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
6178  != java.lang.Double.doubleToLongBits(
6179  other.getInitialVariablesActivity())) return false;
6180  }
6181  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
6184  != other.getAlsoBumpVariablesInConflictReasons()) return false;
6185  }
6186  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
6187  if (hasMinimizationAlgorithm()) {
6188  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
6189  }
6190  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
6192  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
6193  }
6194  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
6197  != other.getSubsumptionDuringConflictAnalysis()) return false;
6198  }
6199  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
6200  if (hasClauseCleanupPeriod()) {
6202  != other.getClauseCleanupPeriod()) return false;
6203  }
6204  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
6205  if (hasClauseCleanupTarget()) {
6207  != other.getClauseCleanupTarget()) return false;
6208  }
6209  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
6211  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
6212  }
6213  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
6214  if (hasClauseCleanupLbdBound()) {
6216  != other.getClauseCleanupLbdBound()) return false;
6217  }
6218  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
6219  if (hasClauseCleanupOrdering()) {
6220  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
6221  }
6222  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
6223  if (hasPbCleanupIncrement()) {
6224  if (getPbCleanupIncrement()
6225  != other.getPbCleanupIncrement()) return false;
6226  }
6227  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
6228  if (hasPbCleanupRatio()) {
6229  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
6230  != java.lang.Double.doubleToLongBits(
6231  other.getPbCleanupRatio())) return false;
6232  }
6233  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
6236  != other.getMinimizeWithPropagationRestartPeriod()) return false;
6237  }
6238  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
6241  != other.getMinimizeWithPropagationNumDecisions()) return false;
6242  }
6243  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
6244  if (hasVariableActivityDecay()) {
6245  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
6246  != java.lang.Double.doubleToLongBits(
6247  other.getVariableActivityDecay())) return false;
6248  }
6249  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6251  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6252  != java.lang.Double.doubleToLongBits(
6253  other.getMaxVariableActivityValue())) return false;
6254  }
6255  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6256  if (hasGlucoseMaxDecay()) {
6257  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6258  != java.lang.Double.doubleToLongBits(
6259  other.getGlucoseMaxDecay())) return false;
6260  }
6261  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
6262  if (hasGlucoseDecayIncrement()) {
6263  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
6264  != java.lang.Double.doubleToLongBits(
6265  other.getGlucoseDecayIncrement())) return false;
6266  }
6267  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
6270  != other.getGlucoseDecayIncrementPeriod()) return false;
6271  }
6272  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
6273  if (hasClauseActivityDecay()) {
6274  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
6275  != java.lang.Double.doubleToLongBits(
6276  other.getClauseActivityDecay())) return false;
6277  }
6278  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
6279  if (hasMaxClauseActivityValue()) {
6280  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
6281  != java.lang.Double.doubleToLongBits(
6282  other.getMaxClauseActivityValue())) return false;
6283  }
6284  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
6285  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
6288  .equals(other.getDefaultRestartAlgorithms())) return false;
6289  }
6290  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
6291  if (hasRestartPeriod()) {
6292  if (getRestartPeriod()
6293  != other.getRestartPeriod()) return false;
6294  }
6295  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
6298  != other.getRestartRunningWindowSize()) return false;
6299  }
6300  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
6301  if (hasRestartDlAverageRatio()) {
6302  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
6303  != java.lang.Double.doubleToLongBits(
6304  other.getRestartDlAverageRatio())) return false;
6305  }
6306  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
6307  if (hasRestartLbdAverageRatio()) {
6308  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
6309  != java.lang.Double.doubleToLongBits(
6310  other.getRestartLbdAverageRatio())) return false;
6311  }
6312  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
6313  if (hasUseBlockingRestart()) {
6314  if (getUseBlockingRestart()
6315  != other.getUseBlockingRestart()) return false;
6316  }
6317  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
6320  != other.getBlockingRestartWindowSize()) return false;
6321  }
6322  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
6324  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
6325  != java.lang.Double.doubleToLongBits(
6326  other.getBlockingRestartMultiplier())) return false;
6327  }
6328  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
6331  != other.getNumConflictsBeforeStrategyChanges()) return false;
6332  }
6333  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
6335  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
6336  != java.lang.Double.doubleToLongBits(
6337  other.getStrategyChangeIncreaseRatio())) return false;
6338  }
6339  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
6340  if (hasMaxTimeInSeconds()) {
6341  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
6342  != java.lang.Double.doubleToLongBits(
6343  other.getMaxTimeInSeconds())) return false;
6344  }
6345  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
6346  if (hasMaxDeterministicTime()) {
6347  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
6348  != java.lang.Double.doubleToLongBits(
6349  other.getMaxDeterministicTime())) return false;
6350  }
6351  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
6352  if (hasMaxNumberOfConflicts()) {
6354  != other.getMaxNumberOfConflicts()) return false;
6355  }
6356  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
6357  if (hasMaxMemoryInMb()) {
6358  if (getMaxMemoryInMb()
6359  != other.getMaxMemoryInMb()) return false;
6360  }
6361  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
6364  != other.getTreatBinaryClausesSeparately()) return false;
6365  }
6366  if (hasRandomSeed() != other.hasRandomSeed()) return false;
6367  if (hasRandomSeed()) {
6368  if (getRandomSeed()
6369  != other.getRandomSeed()) return false;
6370  }
6371  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
6372  if (hasLogSearchProgress()) {
6373  if (getLogSearchProgress()
6374  != other.getLogSearchProgress()) return false;
6375  }
6376  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
6377  if (hasUsePbResolution()) {
6378  if (getUsePbResolution()
6379  != other.getUsePbResolution()) return false;
6380  }
6381  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
6384  != other.getMinimizeReductionDuringPbResolution()) return false;
6385  }
6386  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
6389  != other.getCountAssumptionLevelsInLbd()) return false;
6390  }
6391  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
6392  if (hasPresolveBveThreshold()) {
6394  != other.getPresolveBveThreshold()) return false;
6395  }
6396  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
6399  != other.getPresolveBveClauseWeight()) return false;
6400  }
6401  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
6403  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
6404  != java.lang.Double.doubleToLongBits(
6405  other.getPresolveProbingDeterministicTimeLimit())) return false;
6406  }
6407  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
6408  if (hasPresolveBlockedClause()) {
6410  != other.getPresolveBlockedClause()) return false;
6411  }
6412  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
6413  if (hasPresolveUseBva()) {
6414  if (getPresolveUseBva()
6415  != other.getPresolveUseBva()) return false;
6416  }
6417  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
6418  if (hasPresolveBvaThreshold()) {
6420  != other.getPresolveBvaThreshold()) return false;
6421  }
6422  if (hasMaxPresolveIterations() != other.hasMaxPresolveIterations()) return false;
6423  if (hasMaxPresolveIterations()) {
6425  != other.getMaxPresolveIterations()) return false;
6426  }
6427  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
6428  if (hasUseOptimizationHints()) {
6430  != other.getUseOptimizationHints()) return false;
6431  }
6432  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
6433  if (hasMinimizeCore()) {
6434  if (getMinimizeCore()
6435  != other.getMinimizeCore()) return false;
6436  }
6437  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
6438  if (hasFindMultipleCores()) {
6439  if (getFindMultipleCores()
6440  != other.getFindMultipleCores()) return false;
6441  }
6442  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
6443  if (hasCoverOptimization()) {
6444  if (getCoverOptimization()
6445  != other.getCoverOptimization()) return false;
6446  }
6447  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
6448  if (hasMaxSatAssumptionOrder()) {
6449  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
6450  }
6451  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
6454  != other.getMaxSatReverseAssumptionOrder()) return false;
6455  }
6456  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
6457  if (hasMaxSatStratification()) {
6458  if (maxSatStratification_ != other.maxSatStratification_) return false;
6459  }
6460  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
6463  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
6464  }
6465  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
6468  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
6469  }
6470  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6473  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6474  }
6475  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6478  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6479  }
6480  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
6481  if (hasLinearizationLevel()) {
6482  if (getLinearizationLevel()
6483  != other.getLinearizationLevel()) return false;
6484  }
6485  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
6486  if (hasBooleanEncodingLevel()) {
6488  != other.getBooleanEncodingLevel()) return false;
6489  }
6490  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
6491  if (hasMaxNumCuts()) {
6492  if (getMaxNumCuts()
6493  != other.getMaxNumCuts()) return false;
6494  }
6495  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
6496  if (hasOnlyAddCutsAtLevelZero()) {
6498  != other.getOnlyAddCutsAtLevelZero()) return false;
6499  }
6500  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
6501  if (hasAddKnapsackCuts()) {
6502  if (getAddKnapsackCuts()
6503  != other.getAddKnapsackCuts()) return false;
6504  }
6505  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
6506  if (hasAddCgCuts()) {
6507  if (getAddCgCuts()
6508  != other.getAddCgCuts()) return false;
6509  }
6510  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
6511  if (hasAddMirCuts()) {
6512  if (getAddMirCuts()
6513  != other.getAddMirCuts()) return false;
6514  }
6515  if (hasUseMirRounding() != other.hasUseMirRounding()) return false;
6516  if (hasUseMirRounding()) {
6517  if (getUseMirRounding()
6518  != other.getUseMirRounding()) return false;
6519  }
6520  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
6523  != other.getMaxIntegerRoundingScaling()) return false;
6524  }
6525  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
6526  if (hasAddLpConstraintsLazily()) {
6528  != other.getAddLpConstraintsLazily()) return false;
6529  }
6530  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
6532  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
6533  != java.lang.Double.doubleToLongBits(
6534  other.getMinOrthogonalityForLpConstraints())) return false;
6535  }
6536  if (hasMaxInactiveCount() != other.hasMaxInactiveCount()) return false;
6537  if (hasMaxInactiveCount()) {
6538  if (getMaxInactiveCount()
6539  != other.getMaxInactiveCount()) return false;
6540  }
6541  if (hasConstraintRemovalBatchSize() != other.hasConstraintRemovalBatchSize()) return false;
6544  != other.getConstraintRemovalBatchSize()) return false;
6545  }
6546  if (hasSearchBranching() != other.hasSearchBranching()) return false;
6547  if (hasSearchBranching()) {
6548  if (searchBranching_ != other.searchBranching_) return false;
6549  }
6550  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
6553  != other.getExploitIntegerLpSolution()) return false;
6554  }
6555  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
6556  if (hasExploitAllLpSolution()) {
6558  != other.getExploitAllLpSolution()) return false;
6559  }
6560  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
6561  if (hasExploitBestSolution()) {
6563  != other.getExploitBestSolution()) return false;
6564  }
6565  if (hasExploitObjective() != other.hasExploitObjective()) return false;
6566  if (hasExploitObjective()) {
6567  if (getExploitObjective()
6568  != other.getExploitObjective()) return false;
6569  }
6570  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
6573  != other.getPseudoCostReliabilityThreshold()) return false;
6574  }
6575  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
6576  if (hasOptimizeWithCore()) {
6577  if (getOptimizeWithCore()
6578  != other.getOptimizeWithCore()) return false;
6579  }
6580  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
6583  != other.getBinarySearchNumConflicts()) return false;
6584  }
6585  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
6586  if (hasOptimizeWithMaxHs()) {
6587  if (getOptimizeWithMaxHs()
6588  != other.getOptimizeWithMaxHs()) return false;
6589  }
6590  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
6591  if (hasCpModelPresolve()) {
6592  if (getCpModelPresolve()
6593  != other.getCpModelPresolve()) return false;
6594  }
6595  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
6596  if (hasCpModelProbingLevel()) {
6598  != other.getCpModelProbingLevel()) return false;
6599  }
6600  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
6601  if (hasCpModelUseSatPresolve()) {
6603  != other.getCpModelUseSatPresolve()) return false;
6604  }
6605  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
6606  if (hasEnumerateAllSolutions()) {
6608  != other.getEnumerateAllSolutions()) return false;
6609  }
6610  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
6613  != other.getFillTightenedDomainsInResponse()) return false;
6614  }
6615  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
6618  != other.getInstantiateAllVariables()) return false;
6619  }
6620  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
6623  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
6624  }
6625  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
6626  if (hasStopAfterFirstSolution()) {
6628  != other.getStopAfterFirstSolution()) return false;
6629  }
6630  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
6631  if (hasNumSearchWorkers()) {
6632  if (getNumSearchWorkers()
6633  != other.getNumSearchWorkers()) return false;
6634  }
6635  if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
6636  if (hasInterleaveSearch()) {
6637  if (getInterleaveSearch()
6638  != other.getInterleaveSearch()) return false;
6639  }
6640  if (hasDeterministicParallelSearch() != other.hasDeterministicParallelSearch()) return false;
6643  != other.getDeterministicParallelSearch()) return false;
6644  }
6645  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
6646  if (hasShareObjectiveBounds()) {
6648  != other.getShareObjectiveBounds()) return false;
6649  }
6650  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
6651  if (hasShareLevelZeroBounds()) {
6653  != other.getShareLevelZeroBounds()) return false;
6654  }
6655  if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
6656  if (hasUseLnsOnly()) {
6657  if (getUseLnsOnly()
6658  != other.getUseLnsOnly()) return false;
6659  }
6660  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
6663  != other.getLnsFocusOnDecisionVariables()) return false;
6664  }
6665  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
6666  if (hasUseRinsLns()) {
6667  if (getUseRinsLns()
6668  != other.getUseRinsLns()) return false;
6669  }
6670  if (hasDiversifyLnsParams() != other.hasDiversifyLnsParams()) return false;
6671  if (hasDiversifyLnsParams()) {
6672  if (getDiversifyLnsParams()
6673  != other.getDiversifyLnsParams()) return false;
6674  }
6675  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
6676  if (hasRandomizeSearch()) {
6677  if (getRandomizeSearch()
6678  != other.getRandomizeSearch()) return false;
6679  }
6680  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
6683  != other.getSearchRandomizationTolerance()) return false;
6684  }
6685  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
6686  if (hasUseOptionalVariables()) {
6688  != other.getUseOptionalVariables()) return false;
6689  }
6690  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
6691  if (hasUseExactLpReason()) {
6692  if (getUseExactLpReason()
6693  != other.getUseExactLpReason()) return false;
6694  }
6695  if (hasUseBranchingInLp() != other.hasUseBranchingInLp()) return false;
6696  if (hasUseBranchingInLp()) {
6697  if (getUseBranchingInLp()
6698  != other.getUseBranchingInLp()) return false;
6699  }
6700  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
6701  if (hasUseCombinedNoOverlap()) {
6703  != other.getUseCombinedNoOverlap()) return false;
6704  }
6705  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
6706  if (hasMipMaxBound()) {
6707  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
6708  != java.lang.Double.doubleToLongBits(
6709  other.getMipMaxBound())) return false;
6710  }
6711  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
6712  if (hasMipVarScaling()) {
6713  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
6714  != java.lang.Double.doubleToLongBits(
6715  other.getMipVarScaling())) return false;
6716  }
6717  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
6718  if (hasMipWantedPrecision()) {
6719  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
6720  != java.lang.Double.doubleToLongBits(
6721  other.getMipWantedPrecision())) return false;
6722  }
6723  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
6724  if (hasMipMaxActivityExponent()) {
6726  != other.getMipMaxActivityExponent()) return false;
6727  }
6728  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
6729  if (hasMipCheckPrecision()) {
6730  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
6731  != java.lang.Double.doubleToLongBits(
6732  other.getMipCheckPrecision())) return false;
6733  }
6734  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
6735  if (hasCatchSigintSignal()) {
6736  if (getCatchSigintSignal()
6737  != other.getCatchSigintSignal()) return false;
6738  }
6739  if (!unknownFields.equals(other.unknownFields)) return false;
6740  return true;
6741  }
6742 
6743  @java.lang.Override
6744  public int hashCode() {
6745  if (memoizedHashCode != 0) {
6746  return memoizedHashCode;
6747  }
6748  int hash = 41;
6749  hash = (19 * hash) + getDescriptor().hashCode();
6750  if (hasPreferredVariableOrder()) {
6751  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
6752  hash = (53 * hash) + preferredVariableOrder_;
6753  }
6754  if (hasInitialPolarity()) {
6755  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
6756  hash = (53 * hash) + initialPolarity_;
6757  }
6758  if (hasUsePhaseSaving()) {
6759  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
6760  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6761  getUsePhaseSaving());
6762  }
6763  if (hasRandomPolarityRatio()) {
6764  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
6765  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6766  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
6767  }
6768  if (hasRandomBranchesRatio()) {
6769  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
6770  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6771  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
6772  }
6773  if (hasUseErwaHeuristic()) {
6774  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
6775  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6777  }
6779  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
6780  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6781  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
6782  }
6785  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6787  }
6788  if (hasMinimizationAlgorithm()) {
6789  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6790  hash = (53 * hash) + minimizationAlgorithm_;
6791  }
6793  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6794  hash = (53 * hash) + binaryMinimizationAlgorithm_;
6795  }
6798  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6800  }
6801  if (hasClauseCleanupPeriod()) {
6802  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
6803  hash = (53 * hash) + getClauseCleanupPeriod();
6804  }
6805  if (hasClauseCleanupTarget()) {
6806  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
6807  hash = (53 * hash) + getClauseCleanupTarget();
6808  }
6810  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
6811  hash = (53 * hash) + clauseCleanupProtection_;
6812  }
6813  if (hasClauseCleanupLbdBound()) {
6814  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
6815  hash = (53 * hash) + getClauseCleanupLbdBound();
6816  }
6817  if (hasClauseCleanupOrdering()) {
6818  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
6819  hash = (53 * hash) + clauseCleanupOrdering_;
6820  }
6821  if (hasPbCleanupIncrement()) {
6822  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
6823  hash = (53 * hash) + getPbCleanupIncrement();
6824  }
6825  if (hasPbCleanupRatio()) {
6826  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
6827  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6828  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
6829  }
6832  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
6833  }
6836  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
6837  }
6838  if (hasVariableActivityDecay()) {
6839  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
6840  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6841  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
6842  }
6844  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
6845  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6846  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
6847  }
6848  if (hasGlucoseMaxDecay()) {
6849  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
6850  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6851  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
6852  }
6853  if (hasGlucoseDecayIncrement()) {
6854  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
6855  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6856  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
6857  }
6859  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
6860  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
6861  }
6862  if (hasClauseActivityDecay()) {
6863  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
6864  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6865  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
6866  }
6867  if (hasMaxClauseActivityValue()) {
6868  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
6869  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6870  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
6871  }
6872  if (getRestartAlgorithmsCount() > 0) {
6873  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
6874  hash = (53 * hash) + restartAlgorithms_.hashCode();
6875  }
6877  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
6878  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
6879  }
6880  if (hasRestartPeriod()) {
6881  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
6882  hash = (53 * hash) + getRestartPeriod();
6883  }
6885  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
6886  hash = (53 * hash) + getRestartRunningWindowSize();
6887  }
6888  if (hasRestartDlAverageRatio()) {
6889  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
6890  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6891  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
6892  }
6893  if (hasRestartLbdAverageRatio()) {
6894  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
6895  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6896  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
6897  }
6898  if (hasUseBlockingRestart()) {
6899  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
6900  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6902  }
6904  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
6905  hash = (53 * hash) + getBlockingRestartWindowSize();
6906  }
6908  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
6909  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6910  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
6911  }
6914  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
6915  }
6917  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
6918  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6919  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
6920  }
6921  if (hasMaxTimeInSeconds()) {
6922  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
6923  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6924  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
6925  }
6926  if (hasMaxDeterministicTime()) {
6927  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
6928  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6929  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
6930  }
6931  if (hasMaxNumberOfConflicts()) {
6932  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
6933  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6935  }
6936  if (hasMaxMemoryInMb()) {
6937  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
6938  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6939  getMaxMemoryInMb());
6940  }
6942  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
6943  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6945  }
6946  if (hasRandomSeed()) {
6947  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
6948  hash = (53 * hash) + getRandomSeed();
6949  }
6950  if (hasLogSearchProgress()) {
6951  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
6952  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6954  }
6955  if (hasUsePbResolution()) {
6956  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
6957  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6958  getUsePbResolution());
6959  }
6962  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6964  }
6966  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
6967  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6969  }
6970  if (hasPresolveBveThreshold()) {
6971  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
6972  hash = (53 * hash) + getPresolveBveThreshold();
6973  }
6975  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
6976  hash = (53 * hash) + getPresolveBveClauseWeight();
6977  }
6980  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6981  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
6982  }
6983  if (hasPresolveBlockedClause()) {
6984  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
6985  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6987  }
6988  if (hasPresolveUseBva()) {
6989  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
6990  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6991  getPresolveUseBva());
6992  }
6993  if (hasPresolveBvaThreshold()) {
6994  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
6995  hash = (53 * hash) + getPresolveBvaThreshold();
6996  }
6997  if (hasMaxPresolveIterations()) {
6998  hash = (37 * hash) + MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER;
6999  hash = (53 * hash) + getMaxPresolveIterations();
7000  }
7001  if (hasUseOptimizationHints()) {
7002  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
7003  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7005  }
7006  if (hasMinimizeCore()) {
7007  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
7008  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7009  getMinimizeCore());
7010  }
7011  if (hasFindMultipleCores()) {
7012  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
7013  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7015  }
7016  if (hasCoverOptimization()) {
7017  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
7018  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7020  }
7021  if (hasMaxSatAssumptionOrder()) {
7022  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
7023  hash = (53 * hash) + maxSatAssumptionOrder_;
7024  }
7026  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
7027  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7029  }
7030  if (hasMaxSatStratification()) {
7031  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
7032  hash = (53 * hash) + maxSatStratification_;
7033  }
7036  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7038  }
7041  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7043  }
7046  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7048  }
7051  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7053  }
7054  if (hasLinearizationLevel()) {
7055  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
7056  hash = (53 * hash) + getLinearizationLevel();
7057  }
7058  if (hasBooleanEncodingLevel()) {
7059  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
7060  hash = (53 * hash) + getBooleanEncodingLevel();
7061  }
7062  if (hasMaxNumCuts()) {
7063  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
7064  hash = (53 * hash) + getMaxNumCuts();
7065  }
7066  if (hasOnlyAddCutsAtLevelZero()) {
7067  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
7068  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7070  }
7071  if (hasAddKnapsackCuts()) {
7072  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
7073  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7074  getAddKnapsackCuts());
7075  }
7076  if (hasAddCgCuts()) {
7077  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
7078  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7079  getAddCgCuts());
7080  }
7081  if (hasAddMirCuts()) {
7082  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
7083  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7084  getAddMirCuts());
7085  }
7086  if (hasUseMirRounding()) {
7087  hash = (37 * hash) + USE_MIR_ROUNDING_FIELD_NUMBER;
7088  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7089  getUseMirRounding());
7090  }
7092  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
7093  hash = (53 * hash) + getMaxIntegerRoundingScaling();
7094  }
7095  if (hasAddLpConstraintsLazily()) {
7096  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
7097  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7099  }
7102  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7103  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
7104  }
7105  if (hasMaxInactiveCount()) {
7106  hash = (37 * hash) + MAX_INACTIVE_COUNT_FIELD_NUMBER;
7107  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7109  }
7111  hash = (37 * hash) + CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER;
7112  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7114  }
7115  if (hasSearchBranching()) {
7116  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
7117  hash = (53 * hash) + searchBranching_;
7118  }
7120  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
7121  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7123  }
7124  if (hasExploitAllLpSolution()) {
7125  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
7126  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7128  }
7129  if (hasExploitBestSolution()) {
7130  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
7131  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7133  }
7134  if (hasExploitObjective()) {
7135  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
7136  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7138  }
7141  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7143  }
7144  if (hasOptimizeWithCore()) {
7145  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
7146  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7148  }
7150  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
7151  hash = (53 * hash) + getBinarySearchNumConflicts();
7152  }
7153  if (hasOptimizeWithMaxHs()) {
7154  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
7155  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7157  }
7158  if (hasCpModelPresolve()) {
7159  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
7160  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7161  getCpModelPresolve());
7162  }
7163  if (hasCpModelProbingLevel()) {
7164  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
7165  hash = (53 * hash) + getCpModelProbingLevel();
7166  }
7167  if (hasCpModelUseSatPresolve()) {
7168  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
7169  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7171  }
7172  if (hasEnumerateAllSolutions()) {
7173  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
7174  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7176  }
7179  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7181  }
7183  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
7184  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7186  }
7189  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7191  }
7192  if (hasStopAfterFirstSolution()) {
7193  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
7194  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7196  }
7197  if (hasNumSearchWorkers()) {
7198  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
7199  hash = (53 * hash) + getNumSearchWorkers();
7200  }
7201  if (hasInterleaveSearch()) {
7202  hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
7203  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7205  }
7207  hash = (37 * hash) + DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER;
7208  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7210  }
7211  if (hasShareObjectiveBounds()) {
7212  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
7213  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7215  }
7216  if (hasShareLevelZeroBounds()) {
7217  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
7218  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7220  }
7221  if (hasUseLnsOnly()) {
7222  hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
7223  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7224  getUseLnsOnly());
7225  }
7227  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
7228  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7230  }
7231  if (hasUseRinsLns()) {
7232  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
7233  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7234  getUseRinsLns());
7235  }
7236  if (hasDiversifyLnsParams()) {
7237  hash = (37 * hash) + DIVERSIFY_LNS_PARAMS_FIELD_NUMBER;
7238  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7240  }
7241  if (hasRandomizeSearch()) {
7242  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
7243  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7244  getRandomizeSearch());
7245  }
7247  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
7248  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7250  }
7251  if (hasUseOptionalVariables()) {
7252  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
7253  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7255  }
7256  if (hasUseExactLpReason()) {
7257  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
7258  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7260  }
7261  if (hasUseBranchingInLp()) {
7262  hash = (37 * hash) + USE_BRANCHING_IN_LP_FIELD_NUMBER;
7263  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7265  }
7266  if (hasUseCombinedNoOverlap()) {
7267  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
7268  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7270  }
7271  if (hasMipMaxBound()) {
7272  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
7273  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7274  java.lang.Double.doubleToLongBits(getMipMaxBound()));
7275  }
7276  if (hasMipVarScaling()) {
7277  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
7278  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7279  java.lang.Double.doubleToLongBits(getMipVarScaling()));
7280  }
7281  if (hasMipWantedPrecision()) {
7282  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
7283  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7284  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
7285  }
7286  if (hasMipMaxActivityExponent()) {
7287  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
7288  hash = (53 * hash) + getMipMaxActivityExponent();
7289  }
7290  if (hasMipCheckPrecision()) {
7291  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
7292  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7293  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
7294  }
7295  if (hasCatchSigintSignal()) {
7296  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
7297  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7299  }
7300  hash = (29 * hash) + unknownFields.hashCode();
7301  memoizedHashCode = hash;
7302  return hash;
7303  }
7304 
7306  java.nio.ByteBuffer data)
7307  throws com.google.protobuf.InvalidProtocolBufferException {
7308  return PARSER.parseFrom(data);
7309  }
7311  java.nio.ByteBuffer data,
7312  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7313  throws com.google.protobuf.InvalidProtocolBufferException {
7314  return PARSER.parseFrom(data, extensionRegistry);
7315  }
7317  com.google.protobuf.ByteString data)
7318  throws com.google.protobuf.InvalidProtocolBufferException {
7319  return PARSER.parseFrom(data);
7320  }
7322  com.google.protobuf.ByteString data,
7323  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7324  throws com.google.protobuf.InvalidProtocolBufferException {
7325  return PARSER.parseFrom(data, extensionRegistry);
7326  }
7327  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
7328  throws com.google.protobuf.InvalidProtocolBufferException {
7329  return PARSER.parseFrom(data);
7330  }
7332  byte[] data,
7333  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7334  throws com.google.protobuf.InvalidProtocolBufferException {
7335  return PARSER.parseFrom(data, extensionRegistry);
7336  }
7337  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
7338  throws java.io.IOException {
7339  return com.google.protobuf.GeneratedMessageV3
7340  .parseWithIOException(PARSER, input);
7341  }
7343  java.io.InputStream input,
7344  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7345  throws java.io.IOException {
7346  return com.google.protobuf.GeneratedMessageV3
7347  .parseWithIOException(PARSER, input, extensionRegistry);
7348  }
7349  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
7350  throws java.io.IOException {
7351  return com.google.protobuf.GeneratedMessageV3
7352  .parseDelimitedWithIOException(PARSER, input);
7353  }
7355  java.io.InputStream input,
7356  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7357  throws java.io.IOException {
7358  return com.google.protobuf.GeneratedMessageV3
7359  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7360  }
7362  com.google.protobuf.CodedInputStream input)
7363  throws java.io.IOException {
7364  return com.google.protobuf.GeneratedMessageV3
7365  .parseWithIOException(PARSER, input);
7366  }
7368  com.google.protobuf.CodedInputStream input,
7369  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7370  throws java.io.IOException {
7371  return com.google.protobuf.GeneratedMessageV3
7372  .parseWithIOException(PARSER, input, extensionRegistry);
7373  }
7374 
7375  @java.lang.Override
7376  public Builder newBuilderForType() { return newBuilder(); }
7377  public static Builder newBuilder() {
7378  return DEFAULT_INSTANCE.toBuilder();
7379  }
7380  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
7381  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7382  }
7383  @java.lang.Override
7384  public Builder toBuilder() {
7385  return this == DEFAULT_INSTANCE
7386  ? new Builder() : new Builder().mergeFrom(this);
7387  }
7388 
7389  @java.lang.Override
7391  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7392  Builder builder = new Builder(parent);
7393  return builder;
7394  }
7404  public static final class Builder extends
7405  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7406  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
7407  com.google.ortools.sat.SatParametersOrBuilder {
7408  public static final com.google.protobuf.Descriptors.Descriptor
7410  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7411  }
7412 
7413  @java.lang.Override
7414  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7416  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
7417  .ensureFieldAccessorsInitialized(
7419  }
7420 
7421  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
7422  private Builder() {
7423  maybeForceBuilderInitialization();
7424  }
7425 
7426  private Builder(
7427  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7428  super(parent);
7429  maybeForceBuilderInitialization();
7430  }
7431  private void maybeForceBuilderInitialization() {
7432  if (com.google.protobuf.GeneratedMessageV3
7433  .alwaysUseFieldBuilders) {
7434  }
7435  }
7436  @java.lang.Override
7437  public Builder clear() {
7438  super.clear();
7439  preferredVariableOrder_ = 0;
7440  bitField0_ = (bitField0_ & ~0x00000001);
7441  initialPolarity_ = 1;
7442  bitField0_ = (bitField0_ & ~0x00000002);
7443  usePhaseSaving_ = true;
7444  bitField0_ = (bitField0_ & ~0x00000004);
7445  randomPolarityRatio_ = 0D;
7446  bitField0_ = (bitField0_ & ~0x00000008);
7447  randomBranchesRatio_ = 0D;
7448  bitField0_ = (bitField0_ & ~0x00000010);
7449  useErwaHeuristic_ = false;
7450  bitField0_ = (bitField0_ & ~0x00000020);
7451  initialVariablesActivity_ = 0D;
7452  bitField0_ = (bitField0_ & ~0x00000040);
7453  alsoBumpVariablesInConflictReasons_ = false;
7454  bitField0_ = (bitField0_ & ~0x00000080);
7455  minimizationAlgorithm_ = 2;
7456  bitField0_ = (bitField0_ & ~0x00000100);
7457  binaryMinimizationAlgorithm_ = 1;
7458  bitField0_ = (bitField0_ & ~0x00000200);
7459  subsumptionDuringConflictAnalysis_ = true;
7460  bitField0_ = (bitField0_ & ~0x00000400);
7461  clauseCleanupPeriod_ = 10000;
7462  bitField0_ = (bitField0_ & ~0x00000800);
7463  clauseCleanupTarget_ = 10000;
7464  bitField0_ = (bitField0_ & ~0x00001000);
7465  clauseCleanupProtection_ = 0;
7466  bitField0_ = (bitField0_ & ~0x00002000);
7467  clauseCleanupLbdBound_ = 5;
7468  bitField0_ = (bitField0_ & ~0x00004000);
7469  clauseCleanupOrdering_ = 0;
7470  bitField0_ = (bitField0_ & ~0x00008000);
7471  pbCleanupIncrement_ = 200;
7472  bitField0_ = (bitField0_ & ~0x00010000);
7473  pbCleanupRatio_ = 0.5D;
7474  bitField0_ = (bitField0_ & ~0x00020000);
7475  minimizeWithPropagationRestartPeriod_ = 10;
7476  bitField0_ = (bitField0_ & ~0x00040000);
7477  minimizeWithPropagationNumDecisions_ = 1000;
7478  bitField0_ = (bitField0_ & ~0x00080000);
7479  variableActivityDecay_ = 0.8D;
7480  bitField0_ = (bitField0_ & ~0x00100000);
7481  maxVariableActivityValue_ = 1e+100D;
7482  bitField0_ = (bitField0_ & ~0x00200000);
7483  glucoseMaxDecay_ = 0.95D;
7484  bitField0_ = (bitField0_ & ~0x00400000);
7485  glucoseDecayIncrement_ = 0.01D;
7486  bitField0_ = (bitField0_ & ~0x00800000);
7487  glucoseDecayIncrementPeriod_ = 5000;
7488  bitField0_ = (bitField0_ & ~0x01000000);
7489  clauseActivityDecay_ = 0.999D;
7490  bitField0_ = (bitField0_ & ~0x02000000);
7491  maxClauseActivityValue_ = 1e+20D;
7492  bitField0_ = (bitField0_ & ~0x04000000);
7493  restartAlgorithms_ = java.util.Collections.emptyList();
7494  bitField0_ = (bitField0_ & ~0x08000000);
7495  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
7496  bitField0_ = (bitField0_ & ~0x10000000);
7497  restartPeriod_ = 50;
7498  bitField0_ = (bitField0_ & ~0x20000000);
7499  restartRunningWindowSize_ = 50;
7500  bitField0_ = (bitField0_ & ~0x40000000);
7501  restartDlAverageRatio_ = 1D;
7502  bitField0_ = (bitField0_ & ~0x80000000);
7503  restartLbdAverageRatio_ = 1D;
7504  bitField1_ = (bitField1_ & ~0x00000001);
7505  useBlockingRestart_ = false;
7506  bitField1_ = (bitField1_ & ~0x00000002);
7507  blockingRestartWindowSize_ = 5000;
7508  bitField1_ = (bitField1_ & ~0x00000004);
7509  blockingRestartMultiplier_ = 1.4D;
7510  bitField1_ = (bitField1_ & ~0x00000008);
7511  numConflictsBeforeStrategyChanges_ = 0;
7512  bitField1_ = (bitField1_ & ~0x00000010);
7513  strategyChangeIncreaseRatio_ = 0D;
7514  bitField1_ = (bitField1_ & ~0x00000020);
7515  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
7516  bitField1_ = (bitField1_ & ~0x00000040);
7517  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
7518  bitField1_ = (bitField1_ & ~0x00000080);
7519  maxNumberOfConflicts_ = 9223372036854775807L;
7520  bitField1_ = (bitField1_ & ~0x00000100);
7521  maxMemoryInMb_ = 10000L;
7522  bitField1_ = (bitField1_ & ~0x00000200);
7523  treatBinaryClausesSeparately_ = true;
7524  bitField1_ = (bitField1_ & ~0x00000400);
7525  randomSeed_ = 1;
7526  bitField1_ = (bitField1_ & ~0x00000800);
7527  logSearchProgress_ = false;
7528  bitField1_ = (bitField1_ & ~0x00001000);
7529  usePbResolution_ = false;
7530  bitField1_ = (bitField1_ & ~0x00002000);
7531  minimizeReductionDuringPbResolution_ = false;
7532  bitField1_ = (bitField1_ & ~0x00004000);
7533  countAssumptionLevelsInLbd_ = true;
7534  bitField1_ = (bitField1_ & ~0x00008000);
7535  presolveBveThreshold_ = 500;
7536  bitField1_ = (bitField1_ & ~0x00010000);
7537  presolveBveClauseWeight_ = 3;
7538  bitField1_ = (bitField1_ & ~0x00020000);
7539  presolveProbingDeterministicTimeLimit_ = 30D;
7540  bitField1_ = (bitField1_ & ~0x00040000);
7541  presolveBlockedClause_ = true;
7542  bitField1_ = (bitField1_ & ~0x00080000);
7543  presolveUseBva_ = true;
7544  bitField1_ = (bitField1_ & ~0x00100000);
7545  presolveBvaThreshold_ = 1;
7546  bitField1_ = (bitField1_ & ~0x00200000);
7547  maxPresolveIterations_ = 3;
7548  bitField1_ = (bitField1_ & ~0x00400000);
7549  useOptimizationHints_ = true;
7550  bitField1_ = (bitField1_ & ~0x00800000);
7551  minimizeCore_ = true;
7552  bitField1_ = (bitField1_ & ~0x01000000);
7553  findMultipleCores_ = true;
7554  bitField1_ = (bitField1_ & ~0x02000000);
7555  coverOptimization_ = true;
7556  bitField1_ = (bitField1_ & ~0x04000000);
7557  maxSatAssumptionOrder_ = 0;
7558  bitField1_ = (bitField1_ & ~0x08000000);
7559  maxSatReverseAssumptionOrder_ = false;
7560  bitField1_ = (bitField1_ & ~0x10000000);
7561  maxSatStratification_ = 1;
7562  bitField1_ = (bitField1_ & ~0x20000000);
7563  usePrecedencesInDisjunctiveConstraint_ = true;
7564  bitField1_ = (bitField1_ & ~0x40000000);
7565  useOverloadCheckerInCumulativeConstraint_ = false;
7566  bitField1_ = (bitField1_ & ~0x80000000);
7567  useTimetableEdgeFindingInCumulativeConstraint_ = false;
7568  bitField2_ = (bitField2_ & ~0x00000001);
7569  useDisjunctiveConstraintInCumulativeConstraint_ = true;
7570  bitField2_ = (bitField2_ & ~0x00000002);
7571  linearizationLevel_ = 1;
7572  bitField2_ = (bitField2_ & ~0x00000004);
7573  booleanEncodingLevel_ = 1;
7574  bitField2_ = (bitField2_ & ~0x00000008);
7575  maxNumCuts_ = 5000;
7576  bitField2_ = (bitField2_ & ~0x00000010);
7577  onlyAddCutsAtLevelZero_ = false;
7578  bitField2_ = (bitField2_ & ~0x00000020);
7579  addKnapsackCuts_ = false;
7580  bitField2_ = (bitField2_ & ~0x00000040);
7581  addCgCuts_ = false;
7582  bitField2_ = (bitField2_ & ~0x00000080);
7583  addMirCuts_ = true;
7584  bitField2_ = (bitField2_ & ~0x00000100);
7585  useMirRounding_ = true;
7586  bitField2_ = (bitField2_ & ~0x00000200);
7587  maxIntegerRoundingScaling_ = 600;
7588  bitField2_ = (bitField2_ & ~0x00000400);
7589  addLpConstraintsLazily_ = true;
7590  bitField2_ = (bitField2_ & ~0x00000800);
7591  minOrthogonalityForLpConstraints_ = 0D;
7592  bitField2_ = (bitField2_ & ~0x00001000);
7593  maxInactiveCount_ = 1000L;
7594  bitField2_ = (bitField2_ & ~0x00002000);
7595  constraintRemovalBatchSize_ = 100L;
7596  bitField2_ = (bitField2_ & ~0x00004000);
7597  searchBranching_ = 0;
7598  bitField2_ = (bitField2_ & ~0x00008000);
7599  exploitIntegerLpSolution_ = true;
7600  bitField2_ = (bitField2_ & ~0x00010000);
7601  exploitAllLpSolution_ = true;
7602  bitField2_ = (bitField2_ & ~0x00020000);
7603  exploitBestSolution_ = false;
7604  bitField2_ = (bitField2_ & ~0x00040000);
7605  exploitObjective_ = true;
7606  bitField2_ = (bitField2_ & ~0x00080000);
7607  pseudoCostReliabilityThreshold_ = 100L;
7608  bitField2_ = (bitField2_ & ~0x00100000);
7609  optimizeWithCore_ = false;
7610  bitField2_ = (bitField2_ & ~0x00200000);
7611  binarySearchNumConflicts_ = -1;
7612  bitField2_ = (bitField2_ & ~0x00400000);
7613  optimizeWithMaxHs_ = false;
7614  bitField2_ = (bitField2_ & ~0x00800000);
7615  cpModelPresolve_ = true;
7616  bitField2_ = (bitField2_ & ~0x01000000);
7617  cpModelProbingLevel_ = 2;
7618  bitField2_ = (bitField2_ & ~0x02000000);
7619  cpModelUseSatPresolve_ = true;
7620  bitField2_ = (bitField2_ & ~0x04000000);
7621  enumerateAllSolutions_ = false;
7622  bitField2_ = (bitField2_ & ~0x08000000);
7623  fillTightenedDomainsInResponse_ = false;
7624  bitField2_ = (bitField2_ & ~0x10000000);
7625  instantiateAllVariables_ = true;
7626  bitField2_ = (bitField2_ & ~0x20000000);
7627  autoDetectGreaterThanAtLeastOneOf_ = true;
7628  bitField2_ = (bitField2_ & ~0x40000000);
7629  stopAfterFirstSolution_ = false;
7630  bitField2_ = (bitField2_ & ~0x80000000);
7631  numSearchWorkers_ = 1;
7632  bitField3_ = (bitField3_ & ~0x00000001);
7633  interleaveSearch_ = false;
7634  bitField3_ = (bitField3_ & ~0x00000002);
7635  deterministicParallelSearch_ = false;
7636  bitField3_ = (bitField3_ & ~0x00000004);
7637  shareObjectiveBounds_ = true;
7638  bitField3_ = (bitField3_ & ~0x00000008);
7639  shareLevelZeroBounds_ = true;
7640  bitField3_ = (bitField3_ & ~0x00000010);
7641  useLnsOnly_ = false;
7642  bitField3_ = (bitField3_ & ~0x00000020);
7643  lnsFocusOnDecisionVariables_ = false;
7644  bitField3_ = (bitField3_ & ~0x00000040);
7645  useRinsLns_ = true;
7646  bitField3_ = (bitField3_ & ~0x00000080);
7647  diversifyLnsParams_ = false;
7648  bitField3_ = (bitField3_ & ~0x00000100);
7649  randomizeSearch_ = false;
7650  bitField3_ = (bitField3_ & ~0x00000200);
7651  searchRandomizationTolerance_ = 0L;
7652  bitField3_ = (bitField3_ & ~0x00000400);
7653  useOptionalVariables_ = true;
7654  bitField3_ = (bitField3_ & ~0x00000800);
7655  useExactLpReason_ = true;
7656  bitField3_ = (bitField3_ & ~0x00001000);
7657  useBranchingInLp_ = false;
7658  bitField3_ = (bitField3_ & ~0x00002000);
7659  useCombinedNoOverlap_ = false;
7660  bitField3_ = (bitField3_ & ~0x00004000);
7661  mipMaxBound_ = 10000000D;
7662  bitField3_ = (bitField3_ & ~0x00008000);
7663  mipVarScaling_ = 1D;
7664  bitField3_ = (bitField3_ & ~0x00010000);
7665  mipWantedPrecision_ = 1e-06D;
7666  bitField3_ = (bitField3_ & ~0x00020000);
7667  mipMaxActivityExponent_ = 53;
7668  bitField3_ = (bitField3_ & ~0x00040000);
7669  mipCheckPrecision_ = 0.0001D;
7670  bitField3_ = (bitField3_ & ~0x00080000);
7671  catchSigintSignal_ = true;
7672  bitField3_ = (bitField3_ & ~0x00100000);
7673  return this;
7674  }
7675 
7676  @java.lang.Override
7677  public com.google.protobuf.Descriptors.Descriptor
7679  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7680  }
7681 
7682  @java.lang.Override
7685  }
7686 
7687  @java.lang.Override
7690  if (!result.isInitialized()) {
7691  throw newUninitializedMessageException(result);
7692  }
7693  return result;
7694  }
7695 
7696  @java.lang.Override
7699  int from_bitField0_ = bitField0_;
7700  int from_bitField1_ = bitField1_;
7701  int from_bitField2_ = bitField2_;
7702  int from_bitField3_ = bitField3_;
7703  int to_bitField0_ = 0;
7704  int to_bitField1_ = 0;
7705  int to_bitField2_ = 0;
7706  int to_bitField3_ = 0;
7707  if (((from_bitField0_ & 0x00000001) != 0)) {
7708  to_bitField0_ |= 0x00000001;
7709  }
7710  result.preferredVariableOrder_ = preferredVariableOrder_;
7711  if (((from_bitField0_ & 0x00000002) != 0)) {
7712  to_bitField0_ |= 0x00000002;
7713  }
7714  result.initialPolarity_ = initialPolarity_;
7715  if (((from_bitField0_ & 0x00000004) != 0)) {
7716  to_bitField0_ |= 0x00000004;
7717  }
7718  result.usePhaseSaving_ = usePhaseSaving_;
7719  if (((from_bitField0_ & 0x00000008) != 0)) {
7720  result.randomPolarityRatio_ = randomPolarityRatio_;
7721  to_bitField0_ |= 0x00000008;
7722  }
7723  if (((from_bitField0_ & 0x00000010) != 0)) {
7724  result.randomBranchesRatio_ = randomBranchesRatio_;
7725  to_bitField0_ |= 0x00000010;
7726  }
7727  if (((from_bitField0_ & 0x00000020) != 0)) {
7728  result.useErwaHeuristic_ = useErwaHeuristic_;
7729  to_bitField0_ |= 0x00000020;
7730  }
7731  if (((from_bitField0_ & 0x00000040) != 0)) {
7732  result.initialVariablesActivity_ = initialVariablesActivity_;
7733  to_bitField0_ |= 0x00000040;
7734  }
7735  if (((from_bitField0_ & 0x00000080) != 0)) {
7736  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
7737  to_bitField0_ |= 0x00000080;
7738  }
7739  if (((from_bitField0_ & 0x00000100) != 0)) {
7740  to_bitField0_ |= 0x00000100;
7741  }
7742  result.minimizationAlgorithm_ = minimizationAlgorithm_;
7743  if (((from_bitField0_ & 0x00000200) != 0)) {
7744  to_bitField0_ |= 0x00000200;
7745  }
7746  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
7747  if (((from_bitField0_ & 0x00000400) != 0)) {
7748  to_bitField0_ |= 0x00000400;
7749  }
7750  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
7751  if (((from_bitField0_ & 0x00000800) != 0)) {
7752  to_bitField0_ |= 0x00000800;
7753  }
7754  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
7755  if (((from_bitField0_ & 0x00001000) != 0)) {
7756  to_bitField0_ |= 0x00001000;
7757  }
7758  result.clauseCleanupTarget_ = clauseCleanupTarget_;
7759  if (((from_bitField0_ & 0x00002000) != 0)) {
7760  to_bitField0_ |= 0x00002000;
7761  }
7762  result.clauseCleanupProtection_ = clauseCleanupProtection_;
7763  if (((from_bitField0_ & 0x00004000) != 0)) {
7764  to_bitField0_ |= 0x00004000;
7765  }
7766  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
7767  if (((from_bitField0_ & 0x00008000) != 0)) {
7768  to_bitField0_ |= 0x00008000;
7769  }
7770  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
7771  if (((from_bitField0_ & 0x00010000) != 0)) {
7772  to_bitField0_ |= 0x00010000;
7773  }
7774  result.pbCleanupIncrement_ = pbCleanupIncrement_;
7775  if (((from_bitField0_ & 0x00020000) != 0)) {
7776  to_bitField0_ |= 0x00020000;
7777  }
7778  result.pbCleanupRatio_ = pbCleanupRatio_;
7779  if (((from_bitField0_ & 0x00040000) != 0)) {
7780  to_bitField0_ |= 0x00040000;
7781  }
7782  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
7783  if (((from_bitField0_ & 0x00080000) != 0)) {
7784  to_bitField0_ |= 0x00080000;
7785  }
7786  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
7787  if (((from_bitField0_ & 0x00100000) != 0)) {
7788  to_bitField0_ |= 0x00100000;
7789  }
7790  result.variableActivityDecay_ = variableActivityDecay_;
7791  if (((from_bitField0_ & 0x00200000) != 0)) {
7792  to_bitField0_ |= 0x00200000;
7793  }
7794  result.maxVariableActivityValue_ = maxVariableActivityValue_;
7795  if (((from_bitField0_ & 0x00400000) != 0)) {
7796  to_bitField0_ |= 0x00400000;
7797  }
7798  result.glucoseMaxDecay_ = glucoseMaxDecay_;
7799  if (((from_bitField0_ & 0x00800000) != 0)) {
7800  to_bitField0_ |= 0x00800000;
7801  }
7802  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
7803  if (((from_bitField0_ & 0x01000000) != 0)) {
7804  to_bitField0_ |= 0x01000000;
7805  }
7806  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
7807  if (((from_bitField0_ & 0x02000000) != 0)) {
7808  to_bitField0_ |= 0x02000000;
7809  }
7810  result.clauseActivityDecay_ = clauseActivityDecay_;
7811  if (((from_bitField0_ & 0x04000000) != 0)) {
7812  to_bitField0_ |= 0x04000000;
7813  }
7814  result.maxClauseActivityValue_ = maxClauseActivityValue_;
7815  if (((bitField0_ & 0x08000000) != 0)) {
7816  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
7817  bitField0_ = (bitField0_ & ~0x08000000);
7818  }
7819  result.restartAlgorithms_ = restartAlgorithms_;
7820  if (((from_bitField0_ & 0x10000000) != 0)) {
7821  to_bitField0_ |= 0x08000000;
7822  }
7823  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
7824  if (((from_bitField0_ & 0x20000000) != 0)) {
7825  to_bitField0_ |= 0x10000000;
7826  }
7827  result.restartPeriod_ = restartPeriod_;
7828  if (((from_bitField0_ & 0x40000000) != 0)) {
7829  to_bitField0_ |= 0x20000000;
7830  }
7831  result.restartRunningWindowSize_ = restartRunningWindowSize_;
7832  if (((from_bitField0_ & 0x80000000) != 0)) {
7833  to_bitField0_ |= 0x40000000;
7834  }
7835  result.restartDlAverageRatio_ = restartDlAverageRatio_;
7836  if (((from_bitField1_ & 0x00000001) != 0)) {
7837  to_bitField0_ |= 0x80000000;
7838  }
7839  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
7840  if (((from_bitField1_ & 0x00000002) != 0)) {
7841  result.useBlockingRestart_ = useBlockingRestart_;
7842  to_bitField1_ |= 0x00000001;
7843  }
7844  if (((from_bitField1_ & 0x00000004) != 0)) {
7845  to_bitField1_ |= 0x00000002;
7846  }
7847  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
7848  if (((from_bitField1_ & 0x00000008) != 0)) {
7849  to_bitField1_ |= 0x00000004;
7850  }
7851  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
7852  if (((from_bitField1_ & 0x00000010) != 0)) {
7853  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
7854  to_bitField1_ |= 0x00000008;
7855  }
7856  if (((from_bitField1_ & 0x00000020) != 0)) {
7857  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
7858  to_bitField1_ |= 0x00000010;
7859  }
7860  if (((from_bitField1_ & 0x00000040) != 0)) {
7861  to_bitField1_ |= 0x00000020;
7862  }
7863  result.maxTimeInSeconds_ = maxTimeInSeconds_;
7864  if (((from_bitField1_ & 0x00000080) != 0)) {
7865  to_bitField1_ |= 0x00000040;
7866  }
7867  result.maxDeterministicTime_ = maxDeterministicTime_;
7868  if (((from_bitField1_ & 0x00000100) != 0)) {
7869  to_bitField1_ |= 0x00000080;
7870  }
7871  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
7872  if (((from_bitField1_ & 0x00000200) != 0)) {
7873  to_bitField1_ |= 0x00000100;
7874  }
7875  result.maxMemoryInMb_ = maxMemoryInMb_;
7876  if (((from_bitField1_ & 0x00000400) != 0)) {
7877  to_bitField1_ |= 0x00000200;
7878  }
7879  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
7880  if (((from_bitField1_ & 0x00000800) != 0)) {
7881  to_bitField1_ |= 0x00000400;
7882  }
7883  result.randomSeed_ = randomSeed_;
7884  if (((from_bitField1_ & 0x00001000) != 0)) {
7885  result.logSearchProgress_ = logSearchProgress_;
7886  to_bitField1_ |= 0x00000800;
7887  }
7888  if (((from_bitField1_ & 0x00002000) != 0)) {
7889  result.usePbResolution_ = usePbResolution_;
7890  to_bitField1_ |= 0x00001000;
7891  }
7892  if (((from_bitField1_ & 0x00004000) != 0)) {
7893  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
7894  to_bitField1_ |= 0x00002000;
7895  }
7896  if (((from_bitField1_ & 0x00008000) != 0)) {
7897  to_bitField1_ |= 0x00004000;
7898  }
7899  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
7900  if (((from_bitField1_ & 0x00010000) != 0)) {
7901  to_bitField1_ |= 0x00008000;
7902  }
7903  result.presolveBveThreshold_ = presolveBveThreshold_;
7904  if (((from_bitField1_ & 0x00020000) != 0)) {
7905  to_bitField1_ |= 0x00010000;
7906  }
7907  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
7908  if (((from_bitField1_ & 0x00040000) != 0)) {
7909  to_bitField1_ |= 0x00020000;
7910  }
7911  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
7912  if (((from_bitField1_ & 0x00080000) != 0)) {
7913  to_bitField1_ |= 0x00040000;
7914  }
7915  result.presolveBlockedClause_ = presolveBlockedClause_;
7916  if (((from_bitField1_ & 0x00100000) != 0)) {
7917  to_bitField1_ |= 0x00080000;
7918  }
7919  result.presolveUseBva_ = presolveUseBva_;
7920  if (((from_bitField1_ & 0x00200000) != 0)) {
7921  to_bitField1_ |= 0x00100000;
7922  }
7923  result.presolveBvaThreshold_ = presolveBvaThreshold_;
7924  if (((from_bitField1_ & 0x00400000) != 0)) {
7925  to_bitField1_ |= 0x00200000;
7926  }
7927  result.maxPresolveIterations_ = maxPresolveIterations_;
7928  if (((from_bitField1_ & 0x00800000) != 0)) {
7929  to_bitField1_ |= 0x00400000;
7930  }
7931  result.useOptimizationHints_ = useOptimizationHints_;
7932  if (((from_bitField1_ & 0x01000000) != 0)) {
7933  to_bitField1_ |= 0x00800000;
7934  }
7935  result.minimizeCore_ = minimizeCore_;
7936  if (((from_bitField1_ & 0x02000000) != 0)) {
7937  to_bitField1_ |= 0x01000000;
7938  }
7939  result.findMultipleCores_ = findMultipleCores_;
7940  if (((from_bitField1_ & 0x04000000) != 0)) {
7941  to_bitField1_ |= 0x02000000;
7942  }
7943  result.coverOptimization_ = coverOptimization_;
7944  if (((from_bitField1_ & 0x08000000) != 0)) {
7945  to_bitField1_ |= 0x04000000;
7946  }
7947  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
7948  if (((from_bitField1_ & 0x10000000) != 0)) {
7949  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
7950  to_bitField1_ |= 0x08000000;
7951  }
7952  if (((from_bitField1_ & 0x20000000) != 0)) {
7953  to_bitField1_ |= 0x10000000;
7954  }
7955  result.maxSatStratification_ = maxSatStratification_;
7956  if (((from_bitField1_ & 0x40000000) != 0)) {
7957  to_bitField1_ |= 0x20000000;
7958  }
7959  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
7960  if (((from_bitField1_ & 0x80000000) != 0)) {
7961  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
7962  to_bitField1_ |= 0x40000000;
7963  }
7964  if (((from_bitField2_ & 0x00000001) != 0)) {
7965  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
7966  to_bitField1_ |= 0x80000000;
7967  }
7968  if (((from_bitField2_ & 0x00000002) != 0)) {
7969  to_bitField2_ |= 0x00000001;
7970  }
7971  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
7972  if (((from_bitField2_ & 0x00000004) != 0)) {
7973  to_bitField2_ |= 0x00000002;
7974  }
7975  result.linearizationLevel_ = linearizationLevel_;
7976  if (((from_bitField2_ & 0x00000008) != 0)) {
7977  to_bitField2_ |= 0x00000004;
7978  }
7979  result.booleanEncodingLevel_ = booleanEncodingLevel_;
7980  if (((from_bitField2_ & 0x00000010) != 0)) {
7981  to_bitField2_ |= 0x00000008;
7982  }
7983  result.maxNumCuts_ = maxNumCuts_;
7984  if (((from_bitField2_ & 0x00000020) != 0)) {
7985  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
7986  to_bitField2_ |= 0x00000010;
7987  }
7988  if (((from_bitField2_ & 0x00000040) != 0)) {
7989  result.addKnapsackCuts_ = addKnapsackCuts_;
7990  to_bitField2_ |= 0x00000020;
7991  }
7992  if (((from_bitField2_ & 0x00000080) != 0)) {
7993  result.addCgCuts_ = addCgCuts_;
7994  to_bitField2_ |= 0x00000040;
7995  }
7996  if (((from_bitField2_ & 0x00000100) != 0)) {
7997  to_bitField2_ |= 0x00000080;
7998  }
7999  result.addMirCuts_ = addMirCuts_;
8000  if (((from_bitField2_ & 0x00000200) != 0)) {
8001  to_bitField2_ |= 0x00000100;
8002  }
8003  result.useMirRounding_ = useMirRounding_;
8004  if (((from_bitField2_ & 0x00000400) != 0)) {
8005  to_bitField2_ |= 0x00000200;
8006  }
8007  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
8008  if (((from_bitField2_ & 0x00000800) != 0)) {
8009  to_bitField2_ |= 0x00000400;
8010  }
8011  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
8012  if (((from_bitField2_ & 0x00001000) != 0)) {
8013  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
8014  to_bitField2_ |= 0x00000800;
8015  }
8016  if (((from_bitField2_ & 0x00002000) != 0)) {
8017  to_bitField2_ |= 0x00001000;
8018  }
8019  result.maxInactiveCount_ = maxInactiveCount_;
8020  if (((from_bitField2_ & 0x00004000) != 0)) {
8021  to_bitField2_ |= 0x00002000;
8022  }
8023  result.constraintRemovalBatchSize_ = constraintRemovalBatchSize_;
8024  if (((from_bitField2_ & 0x00008000) != 0)) {
8025  to_bitField2_ |= 0x00004000;
8026  }
8027  result.searchBranching_ = searchBranching_;
8028  if (((from_bitField2_ & 0x00010000) != 0)) {
8029  to_bitField2_ |= 0x00008000;
8030  }
8031  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
8032  if (((from_bitField2_ & 0x00020000) != 0)) {
8033  to_bitField2_ |= 0x00010000;
8034  }
8035  result.exploitAllLpSolution_ = exploitAllLpSolution_;
8036  if (((from_bitField2_ & 0x00040000) != 0)) {
8037  result.exploitBestSolution_ = exploitBestSolution_;
8038  to_bitField2_ |= 0x00020000;
8039  }
8040  if (((from_bitField2_ & 0x00080000) != 0)) {
8041  to_bitField2_ |= 0x00040000;
8042  }
8043  result.exploitObjective_ = exploitObjective_;
8044  if (((from_bitField2_ & 0x00100000) != 0)) {
8045  to_bitField2_ |= 0x00080000;
8046  }
8047  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
8048  if (((from_bitField2_ & 0x00200000) != 0)) {
8049  result.optimizeWithCore_ = optimizeWithCore_;
8050  to_bitField2_ |= 0x00100000;
8051  }
8052  if (((from_bitField2_ & 0x00400000) != 0)) {
8053  to_bitField2_ |= 0x00200000;
8054  }
8055  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
8056  if (((from_bitField2_ & 0x00800000) != 0)) {
8057  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
8058  to_bitField2_ |= 0x00400000;
8059  }
8060  if (((from_bitField2_ & 0x01000000) != 0)) {
8061  to_bitField2_ |= 0x00800000;
8062  }
8063  result.cpModelPresolve_ = cpModelPresolve_;
8064  if (((from_bitField2_ & 0x02000000) != 0)) {
8065  to_bitField2_ |= 0x01000000;
8066  }
8067  result.cpModelProbingLevel_ = cpModelProbingLevel_;
8068  if (((from_bitField2_ & 0x04000000) != 0)) {
8069  to_bitField2_ |= 0x02000000;
8070  }
8071  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
8072  if (((from_bitField2_ & 0x08000000) != 0)) {
8073  result.enumerateAllSolutions_ = enumerateAllSolutions_;
8074  to_bitField2_ |= 0x04000000;
8075  }
8076  if (((from_bitField2_ & 0x10000000) != 0)) {
8077  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
8078  to_bitField2_ |= 0x08000000;
8079  }
8080  if (((from_bitField2_ & 0x20000000) != 0)) {
8081  to_bitField2_ |= 0x10000000;
8082  }
8083  result.instantiateAllVariables_ = instantiateAllVariables_;
8084  if (((from_bitField2_ & 0x40000000) != 0)) {
8085  to_bitField2_ |= 0x20000000;
8086  }
8087  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
8088  if (((from_bitField2_ & 0x80000000) != 0)) {
8089  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
8090  to_bitField2_ |= 0x40000000;
8091  }
8092  if (((from_bitField3_ & 0x00000001) != 0)) {
8093  to_bitField2_ |= 0x80000000;
8094  }
8095  result.numSearchWorkers_ = numSearchWorkers_;
8096  if (((from_bitField3_ & 0x00000002) != 0)) {
8097  result.interleaveSearch_ = interleaveSearch_;
8098  to_bitField3_ |= 0x00000001;
8099  }
8100  if (((from_bitField3_ & 0x00000004) != 0)) {
8101  result.deterministicParallelSearch_ = deterministicParallelSearch_;
8102  to_bitField3_ |= 0x00000002;
8103  }
8104  if (((from_bitField3_ & 0x00000008) != 0)) {
8105  to_bitField3_ |= 0x00000004;
8106  }
8107  result.shareObjectiveBounds_ = shareObjectiveBounds_;
8108  if (((from_bitField3_ & 0x00000010) != 0)) {
8109  to_bitField3_ |= 0x00000008;
8110  }
8111  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
8112  if (((from_bitField3_ & 0x00000020) != 0)) {
8113  result.useLnsOnly_ = useLnsOnly_;
8114  to_bitField3_ |= 0x00000010;
8115  }
8116  if (((from_bitField3_ & 0x00000040) != 0)) {
8117  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
8118  to_bitField3_ |= 0x00000020;
8119  }
8120  if (((from_bitField3_ & 0x00000080) != 0)) {
8121  to_bitField3_ |= 0x00000040;
8122  }
8123  result.useRinsLns_ = useRinsLns_;
8124  if (((from_bitField3_ & 0x00000100) != 0)) {
8125  result.diversifyLnsParams_ = diversifyLnsParams_;
8126  to_bitField3_ |= 0x00000080;
8127  }
8128  if (((from_bitField3_ & 0x00000200) != 0)) {
8129  result.randomizeSearch_ = randomizeSearch_;
8130  to_bitField3_ |= 0x00000100;
8131  }
8132  if (((from_bitField3_ & 0x00000400) != 0)) {
8133  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
8134  to_bitField3_ |= 0x00000200;
8135  }
8136  if (((from_bitField3_ & 0x00000800) != 0)) {
8137  to_bitField3_ |= 0x00000400;
8138  }
8139  result.useOptionalVariables_ = useOptionalVariables_;
8140  if (((from_bitField3_ & 0x00001000) != 0)) {
8141  to_bitField3_ |= 0x00000800;
8142  }
8143  result.useExactLpReason_ = useExactLpReason_;
8144  if (((from_bitField3_ & 0x00002000) != 0)) {
8145  result.useBranchingInLp_ = useBranchingInLp_;
8146  to_bitField3_ |= 0x00001000;
8147  }
8148  if (((from_bitField3_ & 0x00004000) != 0)) {
8149  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
8150  to_bitField3_ |= 0x00002000;
8151  }
8152  if (((from_bitField3_ & 0x00008000) != 0)) {
8153  to_bitField3_ |= 0x00004000;
8154  }
8155  result.mipMaxBound_ = mipMaxBound_;
8156  if (((from_bitField3_ & 0x00010000) != 0)) {
8157  to_bitField3_ |= 0x00008000;
8158  }
8159  result.mipVarScaling_ = mipVarScaling_;
8160  if (((from_bitField3_ & 0x00020000) != 0)) {
8161  to_bitField3_ |= 0x00010000;
8162  }
8163  result.mipWantedPrecision_ = mipWantedPrecision_;
8164  if (((from_bitField3_ & 0x00040000) != 0)) {
8165  to_bitField3_ |= 0x00020000;
8166  }
8167  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
8168  if (((from_bitField3_ & 0x00080000) != 0)) {
8169  to_bitField3_ |= 0x00040000;
8170  }
8171  result.mipCheckPrecision_ = mipCheckPrecision_;
8172  if (((from_bitField3_ & 0x00100000) != 0)) {
8173  to_bitField3_ |= 0x00080000;
8174  }
8175  result.catchSigintSignal_ = catchSigintSignal_;
8176  result.bitField0_ = to_bitField0_;
8177  result.bitField1_ = to_bitField1_;
8178  result.bitField2_ = to_bitField2_;
8179  result.bitField3_ = to_bitField3_;
8180  onBuilt();
8181  return result;
8182  }
8183 
8184  @java.lang.Override
8185  public Builder clone() {
8186  return super.clone();
8187  }
8188  @java.lang.Override
8190  com.google.protobuf.Descriptors.FieldDescriptor field,
8191  java.lang.Object value) {
8192  return super.setField(field, value);
8193  }
8194  @java.lang.Override
8196  com.google.protobuf.Descriptors.FieldDescriptor field) {
8197  return super.clearField(field);
8198  }
8199  @java.lang.Override
8201  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
8202  return super.clearOneof(oneof);
8203  }
8204  @java.lang.Override
8206  com.google.protobuf.Descriptors.FieldDescriptor field,
8207  int index, java.lang.Object value) {
8208  return super.setRepeatedField(field, index, value);
8209  }
8210  @java.lang.Override
8212  com.google.protobuf.Descriptors.FieldDescriptor field,
8213  java.lang.Object value) {
8214  return super.addRepeatedField(field, value);
8215  }
8216  @java.lang.Override
8217  public Builder mergeFrom(com.google.protobuf.Message other) {
8218  if (other instanceof com.google.ortools.sat.SatParameters) {
8219  return mergeFrom((com.google.ortools.sat.SatParameters)other);
8220  } else {
8221  super.mergeFrom(other);
8222  return this;
8223  }
8224  }
8225 
8227  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
8228  if (other.hasPreferredVariableOrder()) {
8229  setPreferredVariableOrder(other.getPreferredVariableOrder());
8230  }
8231  if (other.hasInitialPolarity()) {
8232  setInitialPolarity(other.getInitialPolarity());
8233  }
8234  if (other.hasUsePhaseSaving()) {
8235  setUsePhaseSaving(other.getUsePhaseSaving());
8236  }
8237  if (other.hasRandomPolarityRatio()) {
8238  setRandomPolarityRatio(other.getRandomPolarityRatio());
8239  }
8240  if (other.hasRandomBranchesRatio()) {
8241  setRandomBranchesRatio(other.getRandomBranchesRatio());
8242  }
8243  if (other.hasUseErwaHeuristic()) {
8244  setUseErwaHeuristic(other.getUseErwaHeuristic());
8245  }
8246  if (other.hasInitialVariablesActivity()) {
8247  setInitialVariablesActivity(other.getInitialVariablesActivity());
8248  }
8249  if (other.hasAlsoBumpVariablesInConflictReasons()) {
8250  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
8251  }
8252  if (other.hasMinimizationAlgorithm()) {
8253  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
8254  }
8255  if (other.hasBinaryMinimizationAlgorithm()) {
8256  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
8257  }
8258  if (other.hasSubsumptionDuringConflictAnalysis()) {
8259  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
8260  }
8261  if (other.hasClauseCleanupPeriod()) {
8262  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
8263  }
8264  if (other.hasClauseCleanupTarget()) {
8265  setClauseCleanupTarget(other.getClauseCleanupTarget());
8266  }
8267  if (other.hasClauseCleanupProtection()) {
8268  setClauseCleanupProtection(other.getClauseCleanupProtection());
8269  }
8270  if (other.hasClauseCleanupLbdBound()) {
8271  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
8272  }
8273  if (other.hasClauseCleanupOrdering()) {
8274  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
8275  }
8276  if (other.hasPbCleanupIncrement()) {
8277  setPbCleanupIncrement(other.getPbCleanupIncrement());
8278  }
8279  if (other.hasPbCleanupRatio()) {
8280  setPbCleanupRatio(other.getPbCleanupRatio());
8281  }
8282  if (other.hasMinimizeWithPropagationRestartPeriod()) {
8283  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
8284  }
8285  if (other.hasMinimizeWithPropagationNumDecisions()) {
8286  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
8287  }
8288  if (other.hasVariableActivityDecay()) {
8289  setVariableActivityDecay(other.getVariableActivityDecay());
8290  }
8291  if (other.hasMaxVariableActivityValue()) {
8292  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
8293  }
8294  if (other.hasGlucoseMaxDecay()) {
8295  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
8296  }
8297  if (other.hasGlucoseDecayIncrement()) {
8298  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
8299  }
8300  if (other.hasGlucoseDecayIncrementPeriod()) {
8301  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
8302  }
8303  if (other.hasClauseActivityDecay()) {
8304  setClauseActivityDecay(other.getClauseActivityDecay());
8305  }
8306  if (other.hasMaxClauseActivityValue()) {
8307  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
8308  }
8309  if (!other.restartAlgorithms_.isEmpty()) {
8310  if (restartAlgorithms_.isEmpty()) {
8311  restartAlgorithms_ = other.restartAlgorithms_;
8312  bitField0_ = (bitField0_ & ~0x08000000);
8313  } else {
8314  ensureRestartAlgorithmsIsMutable();
8315  restartAlgorithms_.addAll(other.restartAlgorithms_);
8316  }
8317  onChanged();
8318  }
8319  if (other.hasDefaultRestartAlgorithms()) {
8320  bitField0_ |= 0x10000000;
8321  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
8322  onChanged();
8323  }
8324  if (other.hasRestartPeriod()) {
8325  setRestartPeriod(other.getRestartPeriod());
8326  }
8327  if (other.hasRestartRunningWindowSize()) {
8328  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
8329  }
8330  if (other.hasRestartDlAverageRatio()) {
8331  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
8332  }
8333  if (other.hasRestartLbdAverageRatio()) {
8334  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
8335  }
8336  if (other.hasUseBlockingRestart()) {
8337  setUseBlockingRestart(other.getUseBlockingRestart());
8338  }
8339  if (other.hasBlockingRestartWindowSize()) {
8340  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
8341  }
8342  if (other.hasBlockingRestartMultiplier()) {
8343  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
8344  }
8345  if (other.hasNumConflictsBeforeStrategyChanges()) {
8346  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
8347  }
8348  if (other.hasStrategyChangeIncreaseRatio()) {
8349  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
8350  }
8351  if (other.hasMaxTimeInSeconds()) {
8352  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
8353  }
8354  if (other.hasMaxDeterministicTime()) {
8355  setMaxDeterministicTime(other.getMaxDeterministicTime());
8356  }
8357  if (other.hasMaxNumberOfConflicts()) {
8358  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
8359  }
8360  if (other.hasMaxMemoryInMb()) {
8361  setMaxMemoryInMb(other.getMaxMemoryInMb());
8362  }
8363  if (other.hasTreatBinaryClausesSeparately()) {
8364  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
8365  }
8366  if (other.hasRandomSeed()) {
8367  setRandomSeed(other.getRandomSeed());
8368  }
8369  if (other.hasLogSearchProgress()) {
8370  setLogSearchProgress(other.getLogSearchProgress());
8371  }
8372  if (other.hasUsePbResolution()) {
8373  setUsePbResolution(other.getUsePbResolution());
8374  }
8375  if (other.hasMinimizeReductionDuringPbResolution()) {
8376  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
8377  }
8378  if (other.hasCountAssumptionLevelsInLbd()) {
8379  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
8380  }
8381  if (other.hasPresolveBveThreshold()) {
8382  setPresolveBveThreshold(other.getPresolveBveThreshold());
8383  }
8384  if (other.hasPresolveBveClauseWeight()) {
8385  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
8386  }
8387  if (other.hasPresolveProbingDeterministicTimeLimit()) {
8388  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
8389  }
8390  if (other.hasPresolveBlockedClause()) {
8391  setPresolveBlockedClause(other.getPresolveBlockedClause());
8392  }
8393  if (other.hasPresolveUseBva()) {
8394  setPresolveUseBva(other.getPresolveUseBva());
8395  }
8396  if (other.hasPresolveBvaThreshold()) {
8397  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
8398  }
8399  if (other.hasMaxPresolveIterations()) {
8400  setMaxPresolveIterations(other.getMaxPresolveIterations());
8401  }
8402  if (other.hasUseOptimizationHints()) {
8403  setUseOptimizationHints(other.getUseOptimizationHints());
8404  }
8405  if (other.hasMinimizeCore()) {
8406  setMinimizeCore(other.getMinimizeCore());
8407  }
8408  if (other.hasFindMultipleCores()) {
8409  setFindMultipleCores(other.getFindMultipleCores());
8410  }
8411  if (other.hasCoverOptimization()) {
8412  setCoverOptimization(other.getCoverOptimization());
8413  }
8414  if (other.hasMaxSatAssumptionOrder()) {
8415  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
8416  }
8417  if (other.hasMaxSatReverseAssumptionOrder()) {
8418  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
8419  }
8420  if (other.hasMaxSatStratification()) {
8421  setMaxSatStratification(other.getMaxSatStratification());
8422  }
8423  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
8424  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
8425  }
8426  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
8427  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
8428  }
8429  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
8430  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
8431  }
8432  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
8433  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
8434  }
8435  if (other.hasLinearizationLevel()) {
8436  setLinearizationLevel(other.getLinearizationLevel());
8437  }
8438  if (other.hasBooleanEncodingLevel()) {
8439  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
8440  }
8441  if (other.hasMaxNumCuts()) {
8442  setMaxNumCuts(other.getMaxNumCuts());
8443  }
8444  if (other.hasOnlyAddCutsAtLevelZero()) {
8445  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
8446  }
8447  if (other.hasAddKnapsackCuts()) {
8448  setAddKnapsackCuts(other.getAddKnapsackCuts());
8449  }
8450  if (other.hasAddCgCuts()) {
8451  setAddCgCuts(other.getAddCgCuts());
8452  }
8453  if (other.hasAddMirCuts()) {
8454  setAddMirCuts(other.getAddMirCuts());
8455  }
8456  if (other.hasUseMirRounding()) {
8457  setUseMirRounding(other.getUseMirRounding());
8458  }
8459  if (other.hasMaxIntegerRoundingScaling()) {
8460  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
8461  }
8462  if (other.hasAddLpConstraintsLazily()) {
8463  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
8464  }
8465  if (other.hasMinOrthogonalityForLpConstraints()) {
8466  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
8467  }
8468  if (other.hasMaxInactiveCount()) {
8469  setMaxInactiveCount(other.getMaxInactiveCount());
8470  }
8471  if (other.hasConstraintRemovalBatchSize()) {
8472  setConstraintRemovalBatchSize(other.getConstraintRemovalBatchSize());
8473  }
8474  if (other.hasSearchBranching()) {
8475  setSearchBranching(other.getSearchBranching());
8476  }
8477  if (other.hasExploitIntegerLpSolution()) {
8478  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
8479  }
8480  if (other.hasExploitAllLpSolution()) {
8481  setExploitAllLpSolution(other.getExploitAllLpSolution());
8482  }
8483  if (other.hasExploitBestSolution()) {
8484  setExploitBestSolution(other.getExploitBestSolution());
8485  }
8486  if (other.hasExploitObjective()) {
8487  setExploitObjective(other.getExploitObjective());
8488  }
8489  if (other.hasPseudoCostReliabilityThreshold()) {
8490  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
8491  }
8492  if (other.hasOptimizeWithCore()) {
8493  setOptimizeWithCore(other.getOptimizeWithCore());
8494  }
8495  if (other.hasBinarySearchNumConflicts()) {
8496  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
8497  }
8498  if (other.hasOptimizeWithMaxHs()) {
8499  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
8500  }
8501  if (other.hasCpModelPresolve()) {
8502  setCpModelPresolve(other.getCpModelPresolve());
8503  }
8504  if (other.hasCpModelProbingLevel()) {
8505  setCpModelProbingLevel(other.getCpModelProbingLevel());
8506  }
8507  if (other.hasCpModelUseSatPresolve()) {
8508  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
8509  }
8510  if (other.hasEnumerateAllSolutions()) {
8511  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
8512  }
8513  if (other.hasFillTightenedDomainsInResponse()) {
8514  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
8515  }
8516  if (other.hasInstantiateAllVariables()) {
8517  setInstantiateAllVariables(other.getInstantiateAllVariables());
8518  }
8519  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
8520  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
8521  }
8522  if (other.hasStopAfterFirstSolution()) {
8523  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
8524  }
8525  if (other.hasNumSearchWorkers()) {
8526  setNumSearchWorkers(other.getNumSearchWorkers());
8527  }
8528  if (other.hasInterleaveSearch()) {
8529  setInterleaveSearch(other.getInterleaveSearch());
8530  }
8531  if (other.hasDeterministicParallelSearch()) {
8532  setDeterministicParallelSearch(other.getDeterministicParallelSearch());
8533  }
8534  if (other.hasShareObjectiveBounds()) {
8535  setShareObjectiveBounds(other.getShareObjectiveBounds());
8536  }
8537  if (other.hasShareLevelZeroBounds()) {
8538  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
8539  }
8540  if (other.hasUseLnsOnly()) {
8541  setUseLnsOnly(other.getUseLnsOnly());
8542  }
8543  if (other.hasLnsFocusOnDecisionVariables()) {
8544  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
8545  }
8546  if (other.hasUseRinsLns()) {
8547  setUseRinsLns(other.getUseRinsLns());
8548  }
8549  if (other.hasDiversifyLnsParams()) {
8550  setDiversifyLnsParams(other.getDiversifyLnsParams());
8551  }
8552  if (other.hasRandomizeSearch()) {
8553  setRandomizeSearch(other.getRandomizeSearch());
8554  }
8555  if (other.hasSearchRandomizationTolerance()) {
8556  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
8557  }
8558  if (other.hasUseOptionalVariables()) {
8559  setUseOptionalVariables(other.getUseOptionalVariables());
8560  }
8561  if (other.hasUseExactLpReason()) {
8562  setUseExactLpReason(other.getUseExactLpReason());
8563  }
8564  if (other.hasUseBranchingInLp()) {
8565  setUseBranchingInLp(other.getUseBranchingInLp());
8566  }
8567  if (other.hasUseCombinedNoOverlap()) {
8568  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
8569  }
8570  if (other.hasMipMaxBound()) {
8571  setMipMaxBound(other.getMipMaxBound());
8572  }
8573  if (other.hasMipVarScaling()) {
8574  setMipVarScaling(other.getMipVarScaling());
8575  }
8576  if (other.hasMipWantedPrecision()) {
8577  setMipWantedPrecision(other.getMipWantedPrecision());
8578  }
8579  if (other.hasMipMaxActivityExponent()) {
8580  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
8581  }
8582  if (other.hasMipCheckPrecision()) {
8583  setMipCheckPrecision(other.getMipCheckPrecision());
8584  }
8585  if (other.hasCatchSigintSignal()) {
8586  setCatchSigintSignal(other.getCatchSigintSignal());
8587  }
8588  this.mergeUnknownFields(other.unknownFields);
8589  onChanged();
8590  return this;
8591  }
8592 
8593  @java.lang.Override
8594  public final boolean isInitialized() {
8595  return true;
8596  }
8597 
8598  @java.lang.Override
8600  com.google.protobuf.CodedInputStream input,
8601  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8602  throws java.io.IOException {
8603  com.google.ortools.sat.SatParameters parsedMessage = null;
8604  try {
8605  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8606  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8607  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
8608  throw e.unwrapIOException();
8609  } finally {
8610  if (parsedMessage != null) {
8611  mergeFrom(parsedMessage);
8612  }
8613  }
8614  return this;
8615  }
8616  private int bitField0_;
8617  private int bitField1_;
8618  private int bitField2_;
8619  private int bitField3_;
8620 
8621  private int preferredVariableOrder_ = 0;
8625  public boolean hasPreferredVariableOrder() {
8626  return ((bitField0_ & 0x00000001) != 0);
8627  }
8632  @SuppressWarnings("deprecation")
8634  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
8635  }
8640  if (value == null) {
8641  throw new NullPointerException();
8642  }
8643  bitField0_ |= 0x00000001;
8644  preferredVariableOrder_ = value.getNumber();
8645  onChanged();
8646  return this;
8647  }
8652  bitField0_ = (bitField0_ & ~0x00000001);
8653  preferredVariableOrder_ = 0;
8654  onChanged();
8655  return this;
8656  }
8657 
8658  private int initialPolarity_ = 1;
8662  public boolean hasInitialPolarity() {
8663  return ((bitField0_ & 0x00000002) != 0);
8664  }
8669  @SuppressWarnings("deprecation")
8671  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
8672  }
8677  if (value == null) {
8678  throw new NullPointerException();
8679  }
8680  bitField0_ |= 0x00000002;
8681  initialPolarity_ = value.getNumber();
8682  onChanged();
8683  return this;
8684  }
8689  bitField0_ = (bitField0_ & ~0x00000002);
8690  initialPolarity_ = 1;
8691  onChanged();
8692  return this;
8693  }
8694 
8695  private boolean usePhaseSaving_ = true;
8709  public boolean hasUsePhaseSaving() {
8710  return ((bitField0_ & 0x00000004) != 0);
8711  }
8725  public boolean getUsePhaseSaving() {
8726  return usePhaseSaving_;
8727  }
8741  public Builder setUsePhaseSaving(boolean value) {
8742  bitField0_ |= 0x00000004;
8743  usePhaseSaving_ = value;
8744  onChanged();
8745  return this;
8746  }
8761  bitField0_ = (bitField0_ & ~0x00000004);
8762  usePhaseSaving_ = true;
8763  onChanged();
8764  return this;
8765  }
8766 
8767  private double randomPolarityRatio_ ;
8779  public boolean hasRandomPolarityRatio() {
8780  return ((bitField0_ & 0x00000008) != 0);
8781  }
8793  public double getRandomPolarityRatio() {
8794  return randomPolarityRatio_;
8795  }
8807  public Builder setRandomPolarityRatio(double value) {
8808  bitField0_ |= 0x00000008;
8809  randomPolarityRatio_ = value;
8810  onChanged();
8811  return this;
8812  }
8825  bitField0_ = (bitField0_ & ~0x00000008);
8826  randomPolarityRatio_ = 0D;
8827  onChanged();
8828  return this;
8829  }
8830 
8831  private double randomBranchesRatio_ ;
8841  public boolean hasRandomBranchesRatio() {
8842  return ((bitField0_ & 0x00000010) != 0);
8843  }
8853  public double getRandomBranchesRatio() {
8854  return randomBranchesRatio_;
8855  }
8865  public Builder setRandomBranchesRatio(double value) {
8866  bitField0_ |= 0x00000010;
8867  randomBranchesRatio_ = value;
8868  onChanged();
8869  return this;
8870  }
8881  bitField0_ = (bitField0_ & ~0x00000010);
8882  randomBranchesRatio_ = 0D;
8883  onChanged();
8884  return this;
8885  }
8886 
8887  private boolean useErwaHeuristic_ ;
8897  public boolean hasUseErwaHeuristic() {
8898  return ((bitField0_ & 0x00000020) != 0);
8899  }
8909  public boolean getUseErwaHeuristic() {
8910  return useErwaHeuristic_;
8911  }
8921  public Builder setUseErwaHeuristic(boolean value) {
8922  bitField0_ |= 0x00000020;
8923  useErwaHeuristic_ = value;
8924  onChanged();
8925  return this;
8926  }
8937  bitField0_ = (bitField0_ & ~0x00000020);
8938  useErwaHeuristic_ = false;
8939  onChanged();
8940  return this;
8941  }
8942 
8943  private double initialVariablesActivity_ ;
8956  public boolean hasInitialVariablesActivity() {
8957  return ((bitField0_ & 0x00000040) != 0);
8958  }
8972  return initialVariablesActivity_;
8973  }
8986  public Builder setInitialVariablesActivity(double value) {
8987  bitField0_ |= 0x00000040;
8988  initialVariablesActivity_ = value;
8989  onChanged();
8990  return this;
8991  }
9005  bitField0_ = (bitField0_ & ~0x00000040);
9006  initialVariablesActivity_ = 0D;
9007  onChanged();
9008  return this;
9009  }
9010 
9011  private boolean alsoBumpVariablesInConflictReasons_ ;
9023  return ((bitField0_ & 0x00000080) != 0);
9024  }
9036  return alsoBumpVariablesInConflictReasons_;
9037  }
9049  bitField0_ |= 0x00000080;
9050  alsoBumpVariablesInConflictReasons_ = value;
9051  onChanged();
9052  return this;
9053  }
9065  bitField0_ = (bitField0_ & ~0x00000080);
9066  alsoBumpVariablesInConflictReasons_ = false;
9067  onChanged();
9068  return this;
9069  }
9070 
9071  private int minimizationAlgorithm_ = 2;
9075  public boolean hasMinimizationAlgorithm() {
9076  return ((bitField0_ & 0x00000100) != 0);
9077  }
9082  @SuppressWarnings("deprecation")
9084  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
9085  }
9090  if (value == null) {
9091  throw new NullPointerException();
9092  }
9093  bitField0_ |= 0x00000100;
9094  minimizationAlgorithm_ = value.getNumber();
9095  onChanged();
9096  return this;
9097  }
9102  bitField0_ = (bitField0_ & ~0x00000100);
9103  minimizationAlgorithm_ = 2;
9104  onChanged();
9105  return this;
9106  }
9107 
9108  private int binaryMinimizationAlgorithm_ = 1;
9113  return ((bitField0_ & 0x00000200) != 0);
9114  }
9119  @SuppressWarnings("deprecation")
9122  }
9127  if (value == null) {
9128  throw new NullPointerException();
9129  }
9130  bitField0_ |= 0x00000200;
9131  binaryMinimizationAlgorithm_ = value.getNumber();
9132  onChanged();
9133  return this;
9134  }
9139  bitField0_ = (bitField0_ & ~0x00000200);
9140  binaryMinimizationAlgorithm_ = 1;
9141  onChanged();
9142  return this;
9143  }
9144 
9145  private boolean subsumptionDuringConflictAnalysis_ = true;
9157  return ((bitField0_ & 0x00000400) != 0);
9158  }
9170  return subsumptionDuringConflictAnalysis_;
9171  }
9183  bitField0_ |= 0x00000400;
9184  subsumptionDuringConflictAnalysis_ = value;
9185  onChanged();
9186  return this;
9187  }
9199  bitField0_ = (bitField0_ & ~0x00000400);
9200  subsumptionDuringConflictAnalysis_ = true;
9201  onChanged();
9202  return this;
9203  }
9204 
9205  private int clauseCleanupPeriod_ = 10000;
9213  public boolean hasClauseCleanupPeriod() {
9214  return ((bitField0_ & 0x00000800) != 0);
9215  }
9223  public int getClauseCleanupPeriod() {
9224  return clauseCleanupPeriod_;
9225  }
9233  public Builder setClauseCleanupPeriod(int value) {
9234  bitField0_ |= 0x00000800;
9235  clauseCleanupPeriod_ = value;
9236  onChanged();
9237  return this;
9238  }
9247  bitField0_ = (bitField0_ & ~0x00000800);
9248  clauseCleanupPeriod_ = 10000;
9249  onChanged();
9250  return this;
9251  }
9252 
9253  private int clauseCleanupTarget_ = 10000;
9262  public boolean hasClauseCleanupTarget() {
9263  return ((bitField0_ & 0x00001000) != 0);
9264  }
9273  public int getClauseCleanupTarget() {
9274  return clauseCleanupTarget_;
9275  }
9284  public Builder setClauseCleanupTarget(int value) {
9285  bitField0_ |= 0x00001000;
9286  clauseCleanupTarget_ = value;
9287  onChanged();
9288  return this;
9289  }
9299  bitField0_ = (bitField0_ & ~0x00001000);
9300  clauseCleanupTarget_ = 10000;
9301  onChanged();
9302  return this;
9303  }
9304 
9305  private int clauseCleanupProtection_ = 0;
9309  public boolean hasClauseCleanupProtection() {
9310  return ((bitField0_ & 0x00002000) != 0);
9311  }
9316  @SuppressWarnings("deprecation")
9318  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
9319  }
9324  if (value == null) {
9325  throw new NullPointerException();
9326  }
9327  bitField0_ |= 0x00002000;
9328  clauseCleanupProtection_ = value.getNumber();
9329  onChanged();
9330  return this;
9331  }
9336  bitField0_ = (bitField0_ & ~0x00002000);
9337  clauseCleanupProtection_ = 0;
9338  onChanged();
9339  return this;
9340  }
9341 
9342  private int clauseCleanupLbdBound_ = 5;
9351  public boolean hasClauseCleanupLbdBound() {
9352  return ((bitField0_ & 0x00004000) != 0);
9353  }
9363  return clauseCleanupLbdBound_;
9364  }
9373  public Builder setClauseCleanupLbdBound(int value) {
9374  bitField0_ |= 0x00004000;
9375  clauseCleanupLbdBound_ = value;
9376  onChanged();
9377  return this;
9378  }
9388  bitField0_ = (bitField0_ & ~0x00004000);
9389  clauseCleanupLbdBound_ = 5;
9390  onChanged();
9391  return this;
9392  }
9393 
9394  private int clauseCleanupOrdering_ = 0;
9398  public boolean hasClauseCleanupOrdering() {
9399  return ((bitField0_ & 0x00008000) != 0);
9400  }
9405  @SuppressWarnings("deprecation")
9407  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
9408  }
9413  if (value == null) {
9414  throw new NullPointerException();
9415  }
9416  bitField0_ |= 0x00008000;
9417  clauseCleanupOrdering_ = value.getNumber();
9418  onChanged();
9419  return this;
9420  }
9425  bitField0_ = (bitField0_ & ~0x00008000);
9426  clauseCleanupOrdering_ = 0;
9427  onChanged();
9428  return this;
9429  }
9430 
9431  private int pbCleanupIncrement_ = 200;
9439  public boolean hasPbCleanupIncrement() {
9440  return ((bitField0_ & 0x00010000) != 0);
9441  }
9449  public int getPbCleanupIncrement() {
9450  return pbCleanupIncrement_;
9451  }
9459  public Builder setPbCleanupIncrement(int value) {
9460  bitField0_ |= 0x00010000;
9461  pbCleanupIncrement_ = value;
9462  onChanged();
9463  return this;
9464  }
9473  bitField0_ = (bitField0_ & ~0x00010000);
9474  pbCleanupIncrement_ = 200;
9475  onChanged();
9476  return this;
9477  }
9478 
9479  private double pbCleanupRatio_ = 0.5D;
9483  public boolean hasPbCleanupRatio() {
9484  return ((bitField0_ & 0x00020000) != 0);
9485  }
9489  public double getPbCleanupRatio() {
9490  return pbCleanupRatio_;
9491  }
9495  public Builder setPbCleanupRatio(double value) {
9496  bitField0_ |= 0x00020000;
9497  pbCleanupRatio_ = value;
9498  onChanged();
9499  return this;
9500  }
9505  bitField0_ = (bitField0_ & ~0x00020000);
9506  pbCleanupRatio_ = 0.5D;
9507  onChanged();
9508  return this;
9509  }
9510 
9511  private int minimizeWithPropagationRestartPeriod_ = 10;
9530  return ((bitField0_ & 0x00040000) != 0);
9531  }
9550  return minimizeWithPropagationRestartPeriod_;
9551  }
9570  bitField0_ |= 0x00040000;
9571  minimizeWithPropagationRestartPeriod_ = value;
9572  onChanged();
9573  return this;
9574  }
9593  bitField0_ = (bitField0_ & ~0x00040000);
9594  minimizeWithPropagationRestartPeriod_ = 10;
9595  onChanged();
9596  return this;
9597  }
9598 
9599  private int minimizeWithPropagationNumDecisions_ = 1000;
9604  return ((bitField0_ & 0x00080000) != 0);
9605  }
9610  return minimizeWithPropagationNumDecisions_;
9611  }
9616  bitField0_ |= 0x00080000;
9617  minimizeWithPropagationNumDecisions_ = value;
9618  onChanged();
9619  return this;
9620  }
9625  bitField0_ = (bitField0_ & ~0x00080000);
9626  minimizeWithPropagationNumDecisions_ = 1000;
9627  onChanged();
9628  return this;
9629  }
9630 
9631  private double variableActivityDecay_ = 0.8D;
9645  public boolean hasVariableActivityDecay() {
9646  return ((bitField0_ & 0x00100000) != 0);
9647  }
9661  public double getVariableActivityDecay() {
9662  return variableActivityDecay_;
9663  }
9677  public Builder setVariableActivityDecay(double value) {
9678  bitField0_ |= 0x00100000;
9679  variableActivityDecay_ = value;
9680  onChanged();
9681  return this;
9682  }
9697  bitField0_ = (bitField0_ & ~0x00100000);
9698  variableActivityDecay_ = 0.8D;
9699  onChanged();
9700  return this;
9701  }
9702 
9703  private double maxVariableActivityValue_ = 1e+100D;
9707  public boolean hasMaxVariableActivityValue() {
9708  return ((bitField0_ & 0x00200000) != 0);
9709  }
9714  return maxVariableActivityValue_;
9715  }
9719  public Builder setMaxVariableActivityValue(double value) {
9720  bitField0_ |= 0x00200000;
9721  maxVariableActivityValue_ = value;
9722  onChanged();
9723  return this;
9724  }
9729  bitField0_ = (bitField0_ & ~0x00200000);
9730  maxVariableActivityValue_ = 1e+100D;
9731  onChanged();
9732  return this;
9733  }
9734 
9735  private double glucoseMaxDecay_ = 0.95D;
9746  public boolean hasGlucoseMaxDecay() {
9747  return ((bitField0_ & 0x00400000) != 0);
9748  }
9759  public double getGlucoseMaxDecay() {
9760  return glucoseMaxDecay_;
9761  }
9772  public Builder setGlucoseMaxDecay(double value) {
9773  bitField0_ |= 0x00400000;
9774  glucoseMaxDecay_ = value;
9775  onChanged();
9776  return this;
9777  }
9789  bitField0_ = (bitField0_ & ~0x00400000);
9790  glucoseMaxDecay_ = 0.95D;
9791  onChanged();
9792  return this;
9793  }
9794 
9795  private double glucoseDecayIncrement_ = 0.01D;
9799  public boolean hasGlucoseDecayIncrement() {
9800  return ((bitField0_ & 0x00800000) != 0);
9801  }
9805  public double getGlucoseDecayIncrement() {
9806  return glucoseDecayIncrement_;
9807  }
9811  public Builder setGlucoseDecayIncrement(double value) {
9812  bitField0_ |= 0x00800000;
9813  glucoseDecayIncrement_ = value;
9814  onChanged();
9815  return this;
9816  }
9821  bitField0_ = (bitField0_ & ~0x00800000);
9822  glucoseDecayIncrement_ = 0.01D;
9823  onChanged();
9824  return this;
9825  }
9826 
9827  private int glucoseDecayIncrementPeriod_ = 5000;
9832  return ((bitField0_ & 0x01000000) != 0);
9833  }
9838  return glucoseDecayIncrementPeriod_;
9839  }
9844  bitField0_ |= 0x01000000;
9845  glucoseDecayIncrementPeriod_ = value;
9846  onChanged();
9847  return this;
9848  }
9853  bitField0_ = (bitField0_ & ~0x01000000);
9854  glucoseDecayIncrementPeriod_ = 5000;
9855  onChanged();
9856  return this;
9857  }
9858 
9859  private double clauseActivityDecay_ = 0.999D;
9867  public boolean hasClauseActivityDecay() {
9868  return ((bitField0_ & 0x02000000) != 0);
9869  }
9877  public double getClauseActivityDecay() {
9878  return clauseActivityDecay_;
9879  }
9887  public Builder setClauseActivityDecay(double value) {
9888  bitField0_ |= 0x02000000;
9889  clauseActivityDecay_ = value;
9890  onChanged();
9891  return this;
9892  }
9901  bitField0_ = (bitField0_ & ~0x02000000);
9902  clauseActivityDecay_ = 0.999D;
9903  onChanged();
9904  return this;
9905  }
9906 
9907  private double maxClauseActivityValue_ = 1e+20D;
9911  public boolean hasMaxClauseActivityValue() {
9912  return ((bitField0_ & 0x04000000) != 0);
9913  }
9917  public double getMaxClauseActivityValue() {
9918  return maxClauseActivityValue_;
9919  }
9923  public Builder setMaxClauseActivityValue(double value) {
9924  bitField0_ |= 0x04000000;
9925  maxClauseActivityValue_ = value;
9926  onChanged();
9927  return this;
9928  }
9933  bitField0_ = (bitField0_ & ~0x04000000);
9934  maxClauseActivityValue_ = 1e+20D;
9935  onChanged();
9936  return this;
9937  }
9938 
9939  private java.util.List<java.lang.Integer> restartAlgorithms_ =
9940  java.util.Collections.emptyList();
9941  private void ensureRestartAlgorithmsIsMutable() {
9942  if (!((bitField0_ & 0x08000000) != 0)) {
9943  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
9944  bitField0_ |= 0x08000000;
9945  }
9946  }
9962  return new com.google.protobuf.Internal.ListAdapter<
9963  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
9964  }
9980  return restartAlgorithms_.size();
9981  }
9997  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
9998  }
10014  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
10015  if (value == null) {
10016  throw new NullPointerException();
10017  }
10018  ensureRestartAlgorithmsIsMutable();
10019  restartAlgorithms_.set(index, value.getNumber());
10020  onChanged();
10021  return this;
10022  }
10038  if (value == null) {
10039  throw new NullPointerException();
10040  }
10041  ensureRestartAlgorithmsIsMutable();
10042  restartAlgorithms_.add(value.getNumber());
10043  onChanged();
10044  return this;
10045  }
10061  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
10062  ensureRestartAlgorithmsIsMutable();
10063  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
10064  restartAlgorithms_.add(value.getNumber());
10065  }
10066  onChanged();
10067  return this;
10068  }
10084  restartAlgorithms_ = java.util.Collections.emptyList();
10085  bitField0_ = (bitField0_ & ~0x08000000);
10086  onChanged();
10087  return this;
10088  }
10089 
10090  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
10094  public boolean hasDefaultRestartAlgorithms() {
10095  return ((bitField0_ & 0x10000000) != 0);
10096  }
10100  public java.lang.String getDefaultRestartAlgorithms() {
10101  java.lang.Object ref = defaultRestartAlgorithms_;
10102  if (!(ref instanceof java.lang.String)) {
10103  com.google.protobuf.ByteString bs =
10104  (com.google.protobuf.ByteString) ref;
10105  java.lang.String s = bs.toStringUtf8();
10106  if (bs.isValidUtf8()) {
10107  defaultRestartAlgorithms_ = s;
10108  }
10109  return s;
10110  } else {
10111  return (java.lang.String) ref;
10112  }
10113  }
10117  public com.google.protobuf.ByteString
10119  java.lang.Object ref = defaultRestartAlgorithms_;
10120  if (ref instanceof String) {
10121  com.google.protobuf.ByteString b =
10122  com.google.protobuf.ByteString.copyFromUtf8(
10123  (java.lang.String) ref);
10124  defaultRestartAlgorithms_ = b;
10125  return b;
10126  } else {
10127  return (com.google.protobuf.ByteString) ref;
10128  }
10129  }
10134  java.lang.String value) {
10135  if (value == null) {
10136  throw new NullPointerException();
10137  }
10138  bitField0_ |= 0x10000000;
10139  defaultRestartAlgorithms_ = value;
10140  onChanged();
10141  return this;
10142  }
10147  bitField0_ = (bitField0_ & ~0x10000000);
10148  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
10149  onChanged();
10150  return this;
10151  }
10156  com.google.protobuf.ByteString value) {
10157  if (value == null) {
10158  throw new NullPointerException();
10159  }
10160  bitField0_ |= 0x10000000;
10161  defaultRestartAlgorithms_ = value;
10162  onChanged();
10163  return this;
10164  }
10165 
10166  private int restartPeriod_ = 50;
10175  public boolean hasRestartPeriod() {
10176  return ((bitField0_ & 0x20000000) != 0);
10177  }
10186  public int getRestartPeriod() {
10187  return restartPeriod_;
10188  }
10197  public Builder setRestartPeriod(int value) {
10198  bitField0_ |= 0x20000000;
10199  restartPeriod_ = value;
10200  onChanged();
10201  return this;
10202  }
10212  bitField0_ = (bitField0_ & ~0x20000000);
10213  restartPeriod_ = 50;
10214  onChanged();
10215  return this;
10216  }
10217 
10218  private int restartRunningWindowSize_ = 50;
10226  public boolean hasRestartRunningWindowSize() {
10227  return ((bitField0_ & 0x40000000) != 0);
10228  }
10237  return restartRunningWindowSize_;
10238  }
10247  bitField0_ |= 0x40000000;
10248  restartRunningWindowSize_ = value;
10249  onChanged();
10250  return this;
10251  }
10260  bitField0_ = (bitField0_ & ~0x40000000);
10261  restartRunningWindowSize_ = 50;
10262  onChanged();
10263  return this;
10264  }
10265 
10266  private double restartDlAverageRatio_ = 1D;
10275  public boolean hasRestartDlAverageRatio() {
10276  return ((bitField0_ & 0x80000000) != 0);
10277  }
10286  public double getRestartDlAverageRatio() {
10287  return restartDlAverageRatio_;
10288  }
10297  public Builder setRestartDlAverageRatio(double value) {
10298  bitField0_ |= 0x80000000;
10299  restartDlAverageRatio_ = value;
10300  onChanged();
10301  return this;
10302  }
10312  bitField0_ = (bitField0_ & ~0x80000000);
10313  restartDlAverageRatio_ = 1D;
10314  onChanged();
10315  return this;
10316  }
10317 
10318  private double restartLbdAverageRatio_ = 1D;
10322  public boolean hasRestartLbdAverageRatio() {
10323  return ((bitField1_ & 0x00000001) != 0);
10324  }
10328  public double getRestartLbdAverageRatio() {
10329  return restartLbdAverageRatio_;
10330  }
10334  public Builder setRestartLbdAverageRatio(double value) {
10335  bitField1_ |= 0x00000001;
10336  restartLbdAverageRatio_ = value;
10337  onChanged();
10338  return this;
10339  }
10344  bitField1_ = (bitField1_ & ~0x00000001);
10345  restartLbdAverageRatio_ = 1D;
10346  onChanged();
10347  return this;
10348  }
10349 
10350  private boolean useBlockingRestart_ ;
10360  public boolean hasUseBlockingRestart() {
10361  return ((bitField1_ & 0x00000002) != 0);
10362  }
10372  public boolean getUseBlockingRestart() {
10373  return useBlockingRestart_;
10374  }
10384  public Builder setUseBlockingRestart(boolean value) {
10385  bitField1_ |= 0x00000002;
10386  useBlockingRestart_ = value;
10387  onChanged();
10388  return this;
10389  }
10400  bitField1_ = (bitField1_ & ~0x00000002);
10401  useBlockingRestart_ = false;
10402  onChanged();
10403  return this;
10404  }
10405 
10406  private int blockingRestartWindowSize_ = 5000;
10410  public boolean hasBlockingRestartWindowSize() {
10411  return ((bitField1_ & 0x00000004) != 0);
10412  }
10417  return blockingRestartWindowSize_;
10418  }
10423  bitField1_ |= 0x00000004;
10424  blockingRestartWindowSize_ = value;
10425  onChanged();
10426  return this;
10427  }
10432  bitField1_ = (bitField1_ & ~0x00000004);
10433  blockingRestartWindowSize_ = 5000;
10434  onChanged();
10435  return this;
10436  }
10437 
10438  private double blockingRestartMultiplier_ = 1.4D;
10442  public boolean hasBlockingRestartMultiplier() {
10443  return ((bitField1_ & 0x00000008) != 0);
10444  }
10449  return blockingRestartMultiplier_;
10450  }
10454  public Builder setBlockingRestartMultiplier(double value) {
10455  bitField1_ |= 0x00000008;
10456  blockingRestartMultiplier_ = value;
10457  onChanged();
10458  return this;
10459  }
10464  bitField1_ = (bitField1_ & ~0x00000008);
10465  blockingRestartMultiplier_ = 1.4D;
10466  onChanged();
10467  return this;
10468  }
10469 
10470  private int numConflictsBeforeStrategyChanges_ ;
10481  return ((bitField1_ & 0x00000010) != 0);
10482  }
10493  return numConflictsBeforeStrategyChanges_;
10494  }
10505  bitField1_ |= 0x00000010;
10506  numConflictsBeforeStrategyChanges_ = value;
10507  onChanged();
10508  return this;
10509  }
10520  bitField1_ = (bitField1_ & ~0x00000010);
10521  numConflictsBeforeStrategyChanges_ = 0;
10522  onChanged();
10523  return this;
10524  }
10525 
10526  private double strategyChangeIncreaseRatio_ ;
10536  return ((bitField1_ & 0x00000020) != 0);
10537  }
10547  return strategyChangeIncreaseRatio_;
10548  }
10558  bitField1_ |= 0x00000020;
10559  strategyChangeIncreaseRatio_ = value;
10560  onChanged();
10561  return this;
10562  }
10572  bitField1_ = (bitField1_ & ~0x00000020);
10573  strategyChangeIncreaseRatio_ = 0D;
10574  onChanged();
10575  return this;
10576  }
10577 
10578  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10588  public boolean hasMaxTimeInSeconds() {
10589  return ((bitField1_ & 0x00000040) != 0);
10590  }
10600  public double getMaxTimeInSeconds() {
10601  return maxTimeInSeconds_;
10602  }
10612  public Builder setMaxTimeInSeconds(double value) {
10613  bitField1_ |= 0x00000040;
10614  maxTimeInSeconds_ = value;
10615  onChanged();
10616  return this;
10617  }
10628  bitField1_ = (bitField1_ & ~0x00000040);
10629  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10630  onChanged();
10631  return this;
10632  }
10633 
10634  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10646  public boolean hasMaxDeterministicTime() {
10647  return ((bitField1_ & 0x00000080) != 0);
10648  }
10660  public double getMaxDeterministicTime() {
10661  return maxDeterministicTime_;
10662  }
10674  public Builder setMaxDeterministicTime(double value) {
10675  bitField1_ |= 0x00000080;
10676  maxDeterministicTime_ = value;
10677  onChanged();
10678  return this;
10679  }
10692  bitField1_ = (bitField1_ & ~0x00000080);
10693  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10694  onChanged();
10695  return this;
10696  }
10697 
10698  private long maxNumberOfConflicts_ = 9223372036854775807L;
10711  public boolean hasMaxNumberOfConflicts() {
10712  return ((bitField1_ & 0x00000100) != 0);
10713  }
10726  public long getMaxNumberOfConflicts() {
10727  return maxNumberOfConflicts_;
10728  }
10741  public Builder setMaxNumberOfConflicts(long value) {
10742  bitField1_ |= 0x00000100;
10743  maxNumberOfConflicts_ = value;
10744  onChanged();
10745  return this;
10746  }
10760  bitField1_ = (bitField1_ & ~0x00000100);
10761  maxNumberOfConflicts_ = 9223372036854775807L;
10762  onChanged();
10763  return this;
10764  }
10765 
10766  private long maxMemoryInMb_ = 10000L;
10777  public boolean hasMaxMemoryInMb() {
10778  return ((bitField1_ & 0x00000200) != 0);
10779  }
10790  public long getMaxMemoryInMb() {
10791  return maxMemoryInMb_;
10792  }
10803  public Builder setMaxMemoryInMb(long value) {
10804  bitField1_ |= 0x00000200;
10805  maxMemoryInMb_ = value;
10806  onChanged();
10807  return this;
10808  }
10820  bitField1_ = (bitField1_ & ~0x00000200);
10821  maxMemoryInMb_ = 10000L;
10822  onChanged();
10823  return this;
10824  }
10825 
10826  private boolean treatBinaryClausesSeparately_ = true;
10837  return ((bitField1_ & 0x00000400) != 0);
10838  }
10849  return treatBinaryClausesSeparately_;
10850  }
10861  bitField1_ |= 0x00000400;
10862  treatBinaryClausesSeparately_ = value;
10863  onChanged();
10864  return this;
10865  }
10876  bitField1_ = (bitField1_ & ~0x00000400);
10877  treatBinaryClausesSeparately_ = true;
10878  onChanged();
10879  return this;
10880  }
10881 
10882  private int randomSeed_ = 1;
10895  public boolean hasRandomSeed() {
10896  return ((bitField1_ & 0x00000800) != 0);
10897  }
10910  public int getRandomSeed() {
10911  return randomSeed_;
10912  }
10925  public Builder setRandomSeed(int value) {
10926  bitField1_ |= 0x00000800;
10927  randomSeed_ = value;
10928  onChanged();
10929  return this;
10930  }
10944  bitField1_ = (bitField1_ & ~0x00000800);
10945  randomSeed_ = 1;
10946  onChanged();
10947  return this;
10948  }
10949 
10950  private boolean logSearchProgress_ ;
10958  public boolean hasLogSearchProgress() {
10959  return ((bitField1_ & 0x00001000) != 0);
10960  }
10968  public boolean getLogSearchProgress() {
10969  return logSearchProgress_;
10970  }
10978  public Builder setLogSearchProgress(boolean value) {
10979  bitField1_ |= 0x00001000;
10980  logSearchProgress_ = value;
10981  onChanged();
10982  return this;
10983  }
10992  bitField1_ = (bitField1_ & ~0x00001000);
10993  logSearchProgress_ = false;
10994  onChanged();
10995  return this;
10996  }
10997 
10998  private boolean usePbResolution_ ;
11009  public boolean hasUsePbResolution() {
11010  return ((bitField1_ & 0x00002000) != 0);
11011  }
11022  public boolean getUsePbResolution() {
11023  return usePbResolution_;
11024  }
11035  public Builder setUsePbResolution(boolean value) {
11036  bitField1_ |= 0x00002000;
11037  usePbResolution_ = value;
11038  onChanged();
11039  return this;
11040  }
11052  bitField1_ = (bitField1_ & ~0x00002000);
11053  usePbResolution_ = false;
11054  onChanged();
11055  return this;
11056  }
11057 
11058  private boolean minimizeReductionDuringPbResolution_ ;
11070  return ((bitField1_ & 0x00004000) != 0);
11071  }
11083  return minimizeReductionDuringPbResolution_;
11084  }
11096  bitField1_ |= 0x00004000;
11097  minimizeReductionDuringPbResolution_ = value;
11098  onChanged();
11099  return this;
11100  }
11112  bitField1_ = (bitField1_ & ~0x00004000);
11113  minimizeReductionDuringPbResolution_ = false;
11114  onChanged();
11115  return this;
11116  }
11117 
11118  private boolean countAssumptionLevelsInLbd_ = true;
11134  return ((bitField1_ & 0x00008000) != 0);
11135  }
11151  return countAssumptionLevelsInLbd_;
11152  }
11167  public Builder setCountAssumptionLevelsInLbd(boolean value) {
11168  bitField1_ |= 0x00008000;
11169  countAssumptionLevelsInLbd_ = value;
11170  onChanged();
11171  return this;
11172  }
11188  bitField1_ = (bitField1_ & ~0x00008000);
11189  countAssumptionLevelsInLbd_ = true;
11190  onChanged();
11191  return this;
11192  }
11193 
11194  private int presolveBveThreshold_ = 500;
11204  public boolean hasPresolveBveThreshold() {
11205  return ((bitField1_ & 0x00010000) != 0);
11206  }
11217  return presolveBveThreshold_;
11218  }
11228  public Builder setPresolveBveThreshold(int value) {
11229  bitField1_ |= 0x00010000;
11230  presolveBveThreshold_ = value;
11231  onChanged();
11232  return this;
11233  }
11244  bitField1_ = (bitField1_ & ~0x00010000);
11245  presolveBveThreshold_ = 500;
11246  onChanged();
11247  return this;
11248  }
11249 
11250  private int presolveBveClauseWeight_ = 3;
11259  public boolean hasPresolveBveClauseWeight() {
11260  return ((bitField1_ & 0x00020000) != 0);
11261  }
11271  return presolveBveClauseWeight_;
11272  }
11282  bitField1_ |= 0x00020000;
11283  presolveBveClauseWeight_ = value;
11284  onChanged();
11285  return this;
11286  }
11296  bitField1_ = (bitField1_ & ~0x00020000);
11297  presolveBveClauseWeight_ = 3;
11298  onChanged();
11299  return this;
11300  }
11301 
11302  private double presolveProbingDeterministicTimeLimit_ = 30D;
11312  return ((bitField1_ & 0x00040000) != 0);
11313  }
11323  return presolveProbingDeterministicTimeLimit_;
11324  }
11334  bitField1_ |= 0x00040000;
11335  presolveProbingDeterministicTimeLimit_ = value;
11336  onChanged();
11337  return this;
11338  }
11348  bitField1_ = (bitField1_ & ~0x00040000);
11349  presolveProbingDeterministicTimeLimit_ = 30D;
11350  onChanged();
11351  return this;
11352  }
11353 
11354  private boolean presolveBlockedClause_ = true;
11363  public boolean hasPresolveBlockedClause() {
11364  return ((bitField1_ & 0x00080000) != 0);
11365  }
11374  public boolean getPresolveBlockedClause() {
11375  return presolveBlockedClause_;
11376  }
11385  public Builder setPresolveBlockedClause(boolean value) {
11386  bitField1_ |= 0x00080000;
11387  presolveBlockedClause_ = value;
11388  onChanged();
11389  return this;
11390  }
11400  bitField1_ = (bitField1_ & ~0x00080000);
11401  presolveBlockedClause_ = true;
11402  onChanged();
11403  return this;
11404  }
11405 
11406  private boolean presolveUseBva_ = true;
11414  public boolean hasPresolveUseBva() {
11415  return ((bitField1_ & 0x00100000) != 0);
11416  }
11424  public boolean getPresolveUseBva() {
11425  return presolveUseBva_;
11426  }
11434  public Builder setPresolveUseBva(boolean value) {
11435  bitField1_ |= 0x00100000;
11436  presolveUseBva_ = value;
11437  onChanged();
11438  return this;
11439  }
11448  bitField1_ = (bitField1_ & ~0x00100000);
11449  presolveUseBva_ = true;
11450  onChanged();
11451  return this;
11452  }
11453 
11454  private int presolveBvaThreshold_ = 1;
11465  public boolean hasPresolveBvaThreshold() {
11466  return ((bitField1_ & 0x00200000) != 0);
11467  }
11479  return presolveBvaThreshold_;
11480  }
11491  public Builder setPresolveBvaThreshold(int value) {
11492  bitField1_ |= 0x00200000;
11493  presolveBvaThreshold_ = value;
11494  onChanged();
11495  return this;
11496  }
11508  bitField1_ = (bitField1_ & ~0x00200000);
11509  presolveBvaThreshold_ = 1;
11510  onChanged();
11511  return this;
11512  }
11513 
11514  private int maxPresolveIterations_ = 3;
11524  public boolean hasMaxPresolveIterations() {
11525  return ((bitField1_ & 0x00400000) != 0);
11526  }
11537  return maxPresolveIterations_;
11538  }
11548  public Builder setMaxPresolveIterations(int value) {
11549  bitField1_ |= 0x00400000;
11550  maxPresolveIterations_ = value;
11551  onChanged();
11552  return this;
11553  }
11564  bitField1_ = (bitField1_ & ~0x00400000);
11565  maxPresolveIterations_ = 3;
11566  onChanged();
11567  return this;
11568  }
11569 
11570  private boolean useOptimizationHints_ = true;
11581  public boolean hasUseOptimizationHints() {
11582  return ((bitField1_ & 0x00800000) != 0);
11583  }
11594  public boolean getUseOptimizationHints() {
11595  return useOptimizationHints_;
11596  }
11607  public Builder setUseOptimizationHints(boolean value) {
11608  bitField1_ |= 0x00800000;
11609  useOptimizationHints_ = value;
11610  onChanged();
11611  return this;
11612  }
11624  bitField1_ = (bitField1_ & ~0x00800000);
11625  useOptimizationHints_ = true;
11626  onChanged();
11627  return this;
11628  }
11629 
11630  private boolean minimizeCore_ = true;
11638  public boolean hasMinimizeCore() {
11639  return ((bitField1_ & 0x01000000) != 0);
11640  }
11648  public boolean getMinimizeCore() {
11649  return minimizeCore_;
11650  }
11658  public Builder setMinimizeCore(boolean value) {
11659  bitField1_ |= 0x01000000;
11660  minimizeCore_ = value;
11661  onChanged();
11662  return this;
11663  }
11672  bitField1_ = (bitField1_ & ~0x01000000);
11673  minimizeCore_ = true;
11674  onChanged();
11675  return this;
11676  }
11677 
11678  private boolean findMultipleCores_ = true;
11687  public boolean hasFindMultipleCores() {
11688  return ((bitField1_ & 0x02000000) != 0);
11689  }
11698  public boolean getFindMultipleCores() {
11699  return findMultipleCores_;
11700  }
11709  public Builder setFindMultipleCores(boolean value) {
11710  bitField1_ |= 0x02000000;
11711  findMultipleCores_ = value;
11712  onChanged();
11713  return this;
11714  }
11724  bitField1_ = (bitField1_ & ~0x02000000);
11725  findMultipleCores_ = true;
11726  onChanged();
11727  return this;
11728  }
11729 
11730  private boolean coverOptimization_ = true;
11739  public boolean hasCoverOptimization() {
11740  return ((bitField1_ & 0x04000000) != 0);
11741  }
11750  public boolean getCoverOptimization() {
11751  return coverOptimization_;
11752  }
11761  public Builder setCoverOptimization(boolean value) {
11762  bitField1_ |= 0x04000000;
11763  coverOptimization_ = value;
11764  onChanged();
11765  return this;
11766  }
11776  bitField1_ = (bitField1_ & ~0x04000000);
11777  coverOptimization_ = true;
11778  onChanged();
11779  return this;
11780  }
11781 
11782  private int maxSatAssumptionOrder_ = 0;
11786  public boolean hasMaxSatAssumptionOrder() {
11787  return ((bitField1_ & 0x08000000) != 0);
11788  }
11793  @SuppressWarnings("deprecation")
11796  }
11801  if (value == null) {
11802  throw new NullPointerException();
11803  }
11804  bitField1_ |= 0x08000000;
11805  maxSatAssumptionOrder_ = value.getNumber();
11806  onChanged();
11807  return this;
11808  }
11813  bitField1_ = (bitField1_ & ~0x08000000);
11814  maxSatAssumptionOrder_ = 0;
11815  onChanged();
11816  return this;
11817  }
11818 
11819  private boolean maxSatReverseAssumptionOrder_ ;
11829  return ((bitField1_ & 0x10000000) != 0);
11830  }
11840  return maxSatReverseAssumptionOrder_;
11841  }
11851  bitField1_ |= 0x10000000;
11852  maxSatReverseAssumptionOrder_ = value;
11853  onChanged();
11854  return this;
11855  }
11865  bitField1_ = (bitField1_ & ~0x10000000);
11866  maxSatReverseAssumptionOrder_ = false;
11867  onChanged();
11868  return this;
11869  }
11870 
11871  private int maxSatStratification_ = 1;
11875  public boolean hasMaxSatStratification() {
11876  return ((bitField1_ & 0x20000000) != 0);
11877  }
11882  @SuppressWarnings("deprecation")
11885  }
11890  if (value == null) {
11891  throw new NullPointerException();
11892  }
11893  bitField1_ |= 0x20000000;
11894  maxSatStratification_ = value.getNumber();
11895  onChanged();
11896  return this;
11897  }
11902  bitField1_ = (bitField1_ & ~0x20000000);
11903  maxSatStratification_ = 1;
11904  onChanged();
11905  return this;
11906  }
11907 
11908  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
11924  return ((bitField1_ & 0x40000000) != 0);
11925  }
11941  return usePrecedencesInDisjunctiveConstraint_;
11942  }
11958  bitField1_ |= 0x40000000;
11959  usePrecedencesInDisjunctiveConstraint_ = value;
11960  onChanged();
11961  return this;
11962  }
11978  bitField1_ = (bitField1_ & ~0x40000000);
11979  usePrecedencesInDisjunctiveConstraint_ = true;
11980  onChanged();
11981  return this;
11982  }
11983 
11984  private boolean useOverloadCheckerInCumulativeConstraint_ ;
11998  return ((bitField1_ & 0x80000000) != 0);
11999  }
12013  return useOverloadCheckerInCumulativeConstraint_;
12014  }
12028  bitField1_ |= 0x80000000;
12029  useOverloadCheckerInCumulativeConstraint_ = value;
12030  onChanged();
12031  return this;
12032  }
12046  bitField1_ = (bitField1_ & ~0x80000000);
12047  useOverloadCheckerInCumulativeConstraint_ = false;
12048  onChanged();
12049  return this;
12050  }
12051 
12052  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
12066  return ((bitField2_ & 0x00000001) != 0);
12067  }
12081  return useTimetableEdgeFindingInCumulativeConstraint_;
12082  }
12096  bitField2_ |= 0x00000001;
12097  useTimetableEdgeFindingInCumulativeConstraint_ = value;
12098  onChanged();
12099  return this;
12100  }
12114  bitField2_ = (bitField2_ & ~0x00000001);
12115  useTimetableEdgeFindingInCumulativeConstraint_ = false;
12116  onChanged();
12117  return this;
12118  }
12119 
12120  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
12136  return ((bitField2_ & 0x00000002) != 0);
12137  }
12153  return useDisjunctiveConstraintInCumulativeConstraint_;
12154  }
12170  bitField2_ |= 0x00000002;
12171  useDisjunctiveConstraintInCumulativeConstraint_ = value;
12172  onChanged();
12173  return this;
12174  }
12190  bitField2_ = (bitField2_ & ~0x00000002);
12191  useDisjunctiveConstraintInCumulativeConstraint_ = true;
12192  onChanged();
12193  return this;
12194  }
12195 
12196  private int linearizationLevel_ = 1;
12207  public boolean hasLinearizationLevel() {
12208  return ((bitField2_ & 0x00000004) != 0);
12209  }
12220  public int getLinearizationLevel() {
12221  return linearizationLevel_;
12222  }
12233  public Builder setLinearizationLevel(int value) {
12234  bitField2_ |= 0x00000004;
12235  linearizationLevel_ = value;
12236  onChanged();
12237  return this;
12238  }
12250  bitField2_ = (bitField2_ & ~0x00000004);
12251  linearizationLevel_ = 1;
12252  onChanged();
12253  return this;
12254  }
12255 
12256  private int booleanEncodingLevel_ = 1;
12265  public boolean hasBooleanEncodingLevel() {
12266  return ((bitField2_ & 0x00000008) != 0);
12267  }
12277  return booleanEncodingLevel_;
12278  }
12287  public Builder setBooleanEncodingLevel(int value) {
12288  bitField2_ |= 0x00000008;
12289  booleanEncodingLevel_ = value;
12290  onChanged();
12291  return this;
12292  }
12302  bitField2_ = (bitField2_ & ~0x00000008);
12303  booleanEncodingLevel_ = 1;
12304  onChanged();
12305  return this;
12306  }
12307 
12308  private int maxNumCuts_ = 5000;
12319  public boolean hasMaxNumCuts() {
12320  return ((bitField2_ & 0x00000010) != 0);
12321  }
12332  public int getMaxNumCuts() {
12333  return maxNumCuts_;
12334  }
12345  public Builder setMaxNumCuts(int value) {
12346  bitField2_ |= 0x00000010;
12347  maxNumCuts_ = value;
12348  onChanged();
12349  return this;
12350  }
12362  bitField2_ = (bitField2_ & ~0x00000010);
12363  maxNumCuts_ = 5000;
12364  onChanged();
12365  return this;
12366  }
12367 
12368  private boolean onlyAddCutsAtLevelZero_ ;
12377  public boolean hasOnlyAddCutsAtLevelZero() {
12378  return ((bitField2_ & 0x00000020) != 0);
12379  }
12388  public boolean getOnlyAddCutsAtLevelZero() {
12389  return onlyAddCutsAtLevelZero_;
12390  }
12399  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
12400  bitField2_ |= 0x00000020;
12401  onlyAddCutsAtLevelZero_ = value;
12402  onChanged();
12403  return this;
12404  }
12414  bitField2_ = (bitField2_ & ~0x00000020);
12415  onlyAddCutsAtLevelZero_ = false;
12416  onChanged();
12417  return this;
12418  }
12419 
12420  private boolean addKnapsackCuts_ ;
12430  public boolean hasAddKnapsackCuts() {
12431  return ((bitField2_ & 0x00000040) != 0);
12432  }
12442  public boolean getAddKnapsackCuts() {
12443  return addKnapsackCuts_;
12444  }
12454  public Builder setAddKnapsackCuts(boolean value) {
12455  bitField2_ |= 0x00000040;
12456  addKnapsackCuts_ = value;
12457  onChanged();
12458  return this;
12459  }
12470  bitField2_ = (bitField2_ & ~0x00000040);
12471  addKnapsackCuts_ = false;
12472  onChanged();
12473  return this;
12474  }
12475 
12476  private boolean addCgCuts_ ;
12485  public boolean hasAddCgCuts() {
12486  return ((bitField2_ & 0x00000080) != 0);
12487  }
12496  public boolean getAddCgCuts() {
12497  return addCgCuts_;
12498  }
12507  public Builder setAddCgCuts(boolean value) {
12508  bitField2_ |= 0x00000080;
12509  addCgCuts_ = value;
12510  onChanged();
12511  return this;
12512  }
12522  bitField2_ = (bitField2_ & ~0x00000080);
12523  addCgCuts_ = false;
12524  onChanged();
12525  return this;
12526  }
12527 
12528  private boolean addMirCuts_ = true;
12537  public boolean hasAddMirCuts() {
12538  return ((bitField2_ & 0x00000100) != 0);
12539  }
12548  public boolean getAddMirCuts() {
12549  return addMirCuts_;
12550  }
12559  public Builder setAddMirCuts(boolean value) {
12560  bitField2_ |= 0x00000100;
12561  addMirCuts_ = value;
12562  onChanged();
12563  return this;
12564  }
12574  bitField2_ = (bitField2_ & ~0x00000100);
12575  addMirCuts_ = true;
12576  onChanged();
12577  return this;
12578  }
12579 
12580  private boolean useMirRounding_ = true;
12590  public boolean hasUseMirRounding() {
12591  return ((bitField2_ & 0x00000200) != 0);
12592  }
12602  public boolean getUseMirRounding() {
12603  return useMirRounding_;
12604  }
12614  public Builder setUseMirRounding(boolean value) {
12615  bitField2_ |= 0x00000200;
12616  useMirRounding_ = value;
12617  onChanged();
12618  return this;
12619  }
12630  bitField2_ = (bitField2_ & ~0x00000200);
12631  useMirRounding_ = true;
12632  onChanged();
12633  return this;
12634  }
12635 
12636  private int maxIntegerRoundingScaling_ = 600;
12648  public boolean hasMaxIntegerRoundingScaling() {
12649  return ((bitField2_ & 0x00000400) != 0);
12650  }
12663  return maxIntegerRoundingScaling_;
12664  }
12677  bitField2_ |= 0x00000400;
12678  maxIntegerRoundingScaling_ = value;
12679  onChanged();
12680  return this;
12681  }
12694  bitField2_ = (bitField2_ & ~0x00000400);
12695  maxIntegerRoundingScaling_ = 600;
12696  onChanged();
12697  return this;
12698  }
12699 
12700  private boolean addLpConstraintsLazily_ = true;
12711  public boolean hasAddLpConstraintsLazily() {
12712  return ((bitField2_ & 0x00000800) != 0);
12713  }
12724  public boolean getAddLpConstraintsLazily() {
12725  return addLpConstraintsLazily_;
12726  }
12737  public Builder setAddLpConstraintsLazily(boolean value) {
12738  bitField2_ |= 0x00000800;
12739  addLpConstraintsLazily_ = value;
12740  onChanged();
12741  return this;
12742  }
12754  bitField2_ = (bitField2_ & ~0x00000800);
12755  addLpConstraintsLazily_ = true;
12756  onChanged();
12757  return this;
12758  }
12759 
12760  private double minOrthogonalityForLpConstraints_ ;
12773  return ((bitField2_ & 0x00001000) != 0);
12774  }
12787  return minOrthogonalityForLpConstraints_;
12788  }
12801  bitField2_ |= 0x00001000;
12802  minOrthogonalityForLpConstraints_ = value;
12803  onChanged();
12804  return this;
12805  }
12818  bitField2_ = (bitField2_ & ~0x00001000);
12819  minOrthogonalityForLpConstraints_ = 0D;
12820  onChanged();
12821  return this;
12822  }
12823 
12824  private long maxInactiveCount_ = 1000L;
12833  public boolean hasMaxInactiveCount() {
12834  return ((bitField2_ & 0x00002000) != 0);
12835  }
12844  public long getMaxInactiveCount() {
12845  return maxInactiveCount_;
12846  }
12855  public Builder setMaxInactiveCount(long value) {
12856  bitField2_ |= 0x00002000;
12857  maxInactiveCount_ = value;
12858  onChanged();
12859  return this;
12860  }
12870  bitField2_ = (bitField2_ & ~0x00002000);
12871  maxInactiveCount_ = 1000L;
12872  onChanged();
12873  return this;
12874  }
12875 
12876  private long constraintRemovalBatchSize_ = 100L;
12886  return ((bitField2_ & 0x00004000) != 0);
12887  }
12897  return constraintRemovalBatchSize_;
12898  }
12908  bitField2_ |= 0x00004000;
12909  constraintRemovalBatchSize_ = value;
12910  onChanged();
12911  return this;
12912  }
12922  bitField2_ = (bitField2_ & ~0x00004000);
12923  constraintRemovalBatchSize_ = 100L;
12924  onChanged();
12925  return this;
12926  }
12927 
12928  private int searchBranching_ = 0;
12932  public boolean hasSearchBranching() {
12933  return ((bitField2_ & 0x00008000) != 0);
12934  }
12939  @SuppressWarnings("deprecation")
12941  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
12942  }
12947  if (value == null) {
12948  throw new NullPointerException();
12949  }
12950  bitField2_ |= 0x00008000;
12951  searchBranching_ = value.getNumber();
12952  onChanged();
12953  return this;
12954  }
12959  bitField2_ = (bitField2_ & ~0x00008000);
12960  searchBranching_ = 0;
12961  onChanged();
12962  return this;
12963  }
12964 
12965  private boolean exploitIntegerLpSolution_ = true;
12976  public boolean hasExploitIntegerLpSolution() {
12977  return ((bitField2_ & 0x00010000) != 0);
12978  }
12989  public boolean getExploitIntegerLpSolution() {
12990  return exploitIntegerLpSolution_;
12991  }
13002  public Builder setExploitIntegerLpSolution(boolean value) {
13003  bitField2_ |= 0x00010000;
13004  exploitIntegerLpSolution_ = value;
13005  onChanged();
13006  return this;
13007  }
13019  bitField2_ = (bitField2_ & ~0x00010000);
13020  exploitIntegerLpSolution_ = true;
13021  onChanged();
13022  return this;
13023  }
13024 
13025  private boolean exploitAllLpSolution_ = true;
13035  public boolean hasExploitAllLpSolution() {
13036  return ((bitField2_ & 0x00020000) != 0);
13037  }
13047  public boolean getExploitAllLpSolution() {
13048  return exploitAllLpSolution_;
13049  }
13059  public Builder setExploitAllLpSolution(boolean value) {
13060  bitField2_ |= 0x00020000;
13061  exploitAllLpSolution_ = value;
13062  onChanged();
13063  return this;
13064  }
13075  bitField2_ = (bitField2_ & ~0x00020000);
13076  exploitAllLpSolution_ = true;
13077  onChanged();
13078  return this;
13079  }
13080 
13081  private boolean exploitBestSolution_ ;
13089  public boolean hasExploitBestSolution() {
13090  return ((bitField2_ & 0x00040000) != 0);
13091  }
13099  public boolean getExploitBestSolution() {
13100  return exploitBestSolution_;
13101  }
13109  public Builder setExploitBestSolution(boolean value) {
13110  bitField2_ |= 0x00040000;
13111  exploitBestSolution_ = value;
13112  onChanged();
13113  return this;
13114  }
13123  bitField2_ = (bitField2_ & ~0x00040000);
13124  exploitBestSolution_ = false;
13125  onChanged();
13126  return this;
13127  }
13128 
13129  private boolean exploitObjective_ = true;
13138  public boolean hasExploitObjective() {
13139  return ((bitField2_ & 0x00080000) != 0);
13140  }
13149  public boolean getExploitObjective() {
13150  return exploitObjective_;
13151  }
13160  public Builder setExploitObjective(boolean value) {
13161  bitField2_ |= 0x00080000;
13162  exploitObjective_ = value;
13163  onChanged();
13164  return this;
13165  }
13175  bitField2_ = (bitField2_ & ~0x00080000);
13176  exploitObjective_ = true;
13177  onChanged();
13178  return this;
13179  }
13180 
13181  private long pseudoCostReliabilityThreshold_ = 100L;
13191  return ((bitField2_ & 0x00100000) != 0);
13192  }
13202  return pseudoCostReliabilityThreshold_;
13203  }
13213  bitField2_ |= 0x00100000;
13214  pseudoCostReliabilityThreshold_ = value;
13215  onChanged();
13216  return this;
13217  }
13227  bitField2_ = (bitField2_ & ~0x00100000);
13228  pseudoCostReliabilityThreshold_ = 100L;
13229  onChanged();
13230  return this;
13231  }
13232 
13233  private boolean optimizeWithCore_ ;
13244  public boolean hasOptimizeWithCore() {
13245  return ((bitField2_ & 0x00200000) != 0);
13246  }
13257  public boolean getOptimizeWithCore() {
13258  return optimizeWithCore_;
13259  }
13270  public Builder setOptimizeWithCore(boolean value) {
13271  bitField2_ |= 0x00200000;
13272  optimizeWithCore_ = value;
13273  onChanged();
13274  return this;
13275  }
13287  bitField2_ = (bitField2_ & ~0x00200000);
13288  optimizeWithCore_ = false;
13289  onChanged();
13290  return this;
13291  }
13292 
13293  private int binarySearchNumConflicts_ = -1;
13304  public boolean hasBinarySearchNumConflicts() {
13305  return ((bitField2_ & 0x00400000) != 0);
13306  }
13318  return binarySearchNumConflicts_;
13319  }
13331  bitField2_ |= 0x00400000;
13332  binarySearchNumConflicts_ = value;
13333  onChanged();
13334  return this;
13335  }
13347  bitField2_ = (bitField2_ & ~0x00400000);
13348  binarySearchNumConflicts_ = -1;
13349  onChanged();
13350  return this;
13351  }
13352 
13353  private boolean optimizeWithMaxHs_ ;
13366  public boolean hasOptimizeWithMaxHs() {
13367  return ((bitField2_ & 0x00800000) != 0);
13368  }
13381  public boolean getOptimizeWithMaxHs() {
13382  return optimizeWithMaxHs_;
13383  }
13396  public Builder setOptimizeWithMaxHs(boolean value) {
13397  bitField2_ |= 0x00800000;
13398  optimizeWithMaxHs_ = value;
13399  onChanged();
13400  return this;
13401  }
13415  bitField2_ = (bitField2_ & ~0x00800000);
13416  optimizeWithMaxHs_ = false;
13417  onChanged();
13418  return this;
13419  }
13420 
13421  private boolean cpModelPresolve_ = true;
13429  public boolean hasCpModelPresolve() {
13430  return ((bitField2_ & 0x01000000) != 0);
13431  }
13439  public boolean getCpModelPresolve() {
13440  return cpModelPresolve_;
13441  }
13449  public Builder setCpModelPresolve(boolean value) {
13450  bitField2_ |= 0x01000000;
13451  cpModelPresolve_ = value;
13452  onChanged();
13453  return this;
13454  }
13463  bitField2_ = (bitField2_ & ~0x01000000);
13464  cpModelPresolve_ = true;
13465  onChanged();
13466  return this;
13467  }
13468 
13469  private int cpModelProbingLevel_ = 2;
13477  public boolean hasCpModelProbingLevel() {
13478  return ((bitField2_ & 0x02000000) != 0);
13479  }
13487  public int getCpModelProbingLevel() {
13488  return cpModelProbingLevel_;
13489  }
13497  public Builder setCpModelProbingLevel(int value) {
13498  bitField2_ |= 0x02000000;
13499  cpModelProbingLevel_ = value;
13500  onChanged();
13501  return this;
13502  }
13511  bitField2_ = (bitField2_ & ~0x02000000);
13512  cpModelProbingLevel_ = 2;
13513  onChanged();
13514  return this;
13515  }
13516 
13517  private boolean cpModelUseSatPresolve_ = true;
13525  public boolean hasCpModelUseSatPresolve() {
13526  return ((bitField2_ & 0x04000000) != 0);
13527  }
13535  public boolean getCpModelUseSatPresolve() {
13536  return cpModelUseSatPresolve_;
13537  }
13545  public Builder setCpModelUseSatPresolve(boolean value) {
13546  bitField2_ |= 0x04000000;
13547  cpModelUseSatPresolve_ = value;
13548  onChanged();
13549  return this;
13550  }
13559  bitField2_ = (bitField2_ & ~0x04000000);
13560  cpModelUseSatPresolve_ = true;
13561  onChanged();
13562  return this;
13563  }
13564 
13565  private boolean enumerateAllSolutions_ ;
13578  public boolean hasEnumerateAllSolutions() {
13579  return ((bitField2_ & 0x08000000) != 0);
13580  }
13593  public boolean getEnumerateAllSolutions() {
13594  return enumerateAllSolutions_;
13595  }
13608  public Builder setEnumerateAllSolutions(boolean value) {
13609  bitField2_ |= 0x08000000;
13610  enumerateAllSolutions_ = value;
13611  onChanged();
13612  return this;
13613  }
13627  bitField2_ = (bitField2_ & ~0x08000000);
13628  enumerateAllSolutions_ = false;
13629  onChanged();
13630  return this;
13631  }
13632 
13633  private boolean fillTightenedDomainsInResponse_ ;
13646  return ((bitField2_ & 0x10000000) != 0);
13647  }
13660  return fillTightenedDomainsInResponse_;
13661  }
13674  bitField2_ |= 0x10000000;
13675  fillTightenedDomainsInResponse_ = value;
13676  onChanged();
13677  return this;
13678  }
13691  bitField2_ = (bitField2_ & ~0x10000000);
13692  fillTightenedDomainsInResponse_ = false;
13693  onChanged();
13694  return this;
13695  }
13696 
13697  private boolean instantiateAllVariables_ = true;
13706  public boolean hasInstantiateAllVariables() {
13707  return ((bitField2_ & 0x20000000) != 0);
13708  }
13717  public boolean getInstantiateAllVariables() {
13718  return instantiateAllVariables_;
13719  }
13728  public Builder setInstantiateAllVariables(boolean value) {
13729  bitField2_ |= 0x20000000;
13730  instantiateAllVariables_ = value;
13731  onChanged();
13732  return this;
13733  }
13743  bitField2_ = (bitField2_ & ~0x20000000);
13744  instantiateAllVariables_ = true;
13745  onChanged();
13746  return this;
13747  }
13748 
13749  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
13761  return ((bitField2_ & 0x40000000) != 0);
13762  }
13774  return autoDetectGreaterThanAtLeastOneOf_;
13775  }
13787  bitField2_ |= 0x40000000;
13788  autoDetectGreaterThanAtLeastOneOf_ = value;
13789  onChanged();
13790  return this;
13791  }
13803  bitField2_ = (bitField2_ & ~0x40000000);
13804  autoDetectGreaterThanAtLeastOneOf_ = true;
13805  onChanged();
13806  return this;
13807  }
13808 
13809  private boolean stopAfterFirstSolution_ ;
13817  public boolean hasStopAfterFirstSolution() {
13818  return ((bitField2_ & 0x80000000) != 0);
13819  }
13827  public boolean getStopAfterFirstSolution() {
13828  return stopAfterFirstSolution_;
13829  }
13837  public Builder setStopAfterFirstSolution(boolean value) {
13838  bitField2_ |= 0x80000000;
13839  stopAfterFirstSolution_ = value;
13840  onChanged();
13841  return this;
13842  }
13851  bitField2_ = (bitField2_ & ~0x80000000);
13852  stopAfterFirstSolution_ = false;
13853  onChanged();
13854  return this;
13855  }
13856 
13857  private int numSearchWorkers_ = 1;
13866  public boolean hasNumSearchWorkers() {
13867  return ((bitField3_ & 0x00000001) != 0);
13868  }
13877  public int getNumSearchWorkers() {
13878  return numSearchWorkers_;
13879  }
13888  public Builder setNumSearchWorkers(int value) {
13889  bitField3_ |= 0x00000001;
13890  numSearchWorkers_ = value;
13891  onChanged();
13892  return this;
13893  }
13903  bitField3_ = (bitField3_ & ~0x00000001);
13904  numSearchWorkers_ = 1;
13905  onChanged();
13906  return this;
13907  }
13908 
13909  private boolean interleaveSearch_ ;
13920  public boolean hasInterleaveSearch() {
13921  return ((bitField3_ & 0x00000002) != 0);
13922  }
13933  public boolean getInterleaveSearch() {
13934  return interleaveSearch_;
13935  }
13946  public Builder setInterleaveSearch(boolean value) {
13947  bitField3_ |= 0x00000002;
13948  interleaveSearch_ = value;
13949  onChanged();
13950  return this;
13951  }
13963  bitField3_ = (bitField3_ & ~0x00000002);
13964  interleaveSearch_ = false;
13965  onChanged();
13966  return this;
13967  }
13968 
13969  private boolean deterministicParallelSearch_ ;
13980  return ((bitField3_ & 0x00000004) != 0);
13981  }
13992  return deterministicParallelSearch_;
13993  }
14003  public Builder setDeterministicParallelSearch(boolean value) {
14004  bitField3_ |= 0x00000004;
14005  deterministicParallelSearch_ = value;
14006  onChanged();
14007  return this;
14008  }
14019  bitField3_ = (bitField3_ & ~0x00000004);
14020  deterministicParallelSearch_ = false;
14021  onChanged();
14022  return this;
14023  }
14024 
14025  private boolean shareObjectiveBounds_ = true;
14033  public boolean hasShareObjectiveBounds() {
14034  return ((bitField3_ & 0x00000008) != 0);
14035  }
14043  public boolean getShareObjectiveBounds() {
14044  return shareObjectiveBounds_;
14045  }
14053  public Builder setShareObjectiveBounds(boolean value) {
14054  bitField3_ |= 0x00000008;
14055  shareObjectiveBounds_ = value;
14056  onChanged();
14057  return this;
14058  }
14067  bitField3_ = (bitField3_ & ~0x00000008);
14068  shareObjectiveBounds_ = true;
14069  onChanged();
14070  return this;
14071  }
14072 
14073  private boolean shareLevelZeroBounds_ = true;
14081  public boolean hasShareLevelZeroBounds() {
14082  return ((bitField3_ & 0x00000010) != 0);
14083  }
14091  public boolean getShareLevelZeroBounds() {
14092  return shareLevelZeroBounds_;
14093  }
14101  public Builder setShareLevelZeroBounds(boolean value) {
14102  bitField3_ |= 0x00000010;
14103  shareLevelZeroBounds_ = value;
14104  onChanged();
14105  return this;
14106  }
14115  bitField3_ = (bitField3_ & ~0x00000010);
14116  shareLevelZeroBounds_ = true;
14117  onChanged();
14118  return this;
14119  }
14120 
14121  private boolean useLnsOnly_ ;
14129  public boolean hasUseLnsOnly() {
14130  return ((bitField3_ & 0x00000020) != 0);
14131  }
14139  public boolean getUseLnsOnly() {
14140  return useLnsOnly_;
14141  }
14149  public Builder setUseLnsOnly(boolean value) {
14150  bitField3_ |= 0x00000020;
14151  useLnsOnly_ = value;
14152  onChanged();
14153  return this;
14154  }
14163  bitField3_ = (bitField3_ & ~0x00000020);
14164  useLnsOnly_ = false;
14165  onChanged();
14166  return this;
14167  }
14168 
14169  private boolean lnsFocusOnDecisionVariables_ ;
14174  return ((bitField3_ & 0x00000040) != 0);
14175  }
14180  return lnsFocusOnDecisionVariables_;
14181  }
14185  public Builder setLnsFocusOnDecisionVariables(boolean value) {
14186  bitField3_ |= 0x00000040;
14187  lnsFocusOnDecisionVariables_ = value;
14188  onChanged();
14189  return this;
14190  }
14195  bitField3_ = (bitField3_ & ~0x00000040);
14196  lnsFocusOnDecisionVariables_ = false;
14197  onChanged();
14198  return this;
14199  }
14200 
14201  private boolean useRinsLns_ = true;
14209  public boolean hasUseRinsLns() {
14210  return ((bitField3_ & 0x00000080) != 0);
14211  }
14219  public boolean getUseRinsLns() {
14220  return useRinsLns_;
14221  }
14229  public Builder setUseRinsLns(boolean value) {
14230  bitField3_ |= 0x00000080;
14231  useRinsLns_ = value;
14232  onChanged();
14233  return this;
14234  }
14243  bitField3_ = (bitField3_ & ~0x00000080);
14244  useRinsLns_ = true;
14245  onChanged();
14246  return this;
14247  }
14248 
14249  private boolean diversifyLnsParams_ ;
14257  public boolean hasDiversifyLnsParams() {
14258  return ((bitField3_ & 0x00000100) != 0);
14259  }
14267  public boolean getDiversifyLnsParams() {
14268  return diversifyLnsParams_;
14269  }
14277  public Builder setDiversifyLnsParams(boolean value) {
14278  bitField3_ |= 0x00000100;
14279  diversifyLnsParams_ = value;
14280  onChanged();
14281  return this;
14282  }
14291  bitField3_ = (bitField3_ & ~0x00000100);
14292  diversifyLnsParams_ = false;
14293  onChanged();
14294  return this;
14295  }
14296 
14297  private boolean randomizeSearch_ ;
14305  public boolean hasRandomizeSearch() {
14306  return ((bitField3_ & 0x00000200) != 0);
14307  }
14315  public boolean getRandomizeSearch() {
14316  return randomizeSearch_;
14317  }
14325  public Builder setRandomizeSearch(boolean value) {
14326  bitField3_ |= 0x00000200;
14327  randomizeSearch_ = value;
14328  onChanged();
14329  return this;
14330  }
14339  bitField3_ = (bitField3_ & ~0x00000200);
14340  randomizeSearch_ = false;
14341  onChanged();
14342  return this;
14343  }
14344 
14345  private long searchRandomizationTolerance_ ;
14360  return ((bitField3_ & 0x00000400) != 0);
14361  }
14376  return searchRandomizationTolerance_;
14377  }
14392  bitField3_ |= 0x00000400;
14393  searchRandomizationTolerance_ = value;
14394  onChanged();
14395  return this;
14396  }
14411  bitField3_ = (bitField3_ & ~0x00000400);
14412  searchRandomizationTolerance_ = 0L;
14413  onChanged();
14414  return this;
14415  }
14416 
14417  private boolean useOptionalVariables_ = true;
14427  public boolean hasUseOptionalVariables() {
14428  return ((bitField3_ & 0x00000800) != 0);
14429  }
14439  public boolean getUseOptionalVariables() {
14440  return useOptionalVariables_;
14441  }
14451  public Builder setUseOptionalVariables(boolean value) {
14452  bitField3_ |= 0x00000800;
14453  useOptionalVariables_ = value;
14454  onChanged();
14455  return this;
14456  }
14467  bitField3_ = (bitField3_ & ~0x00000800);
14468  useOptionalVariables_ = true;
14469  onChanged();
14470  return this;
14471  }
14472 
14473  private boolean useExactLpReason_ = true;
14484  public boolean hasUseExactLpReason() {
14485  return ((bitField3_ & 0x00001000) != 0);
14486  }
14497  public boolean getUseExactLpReason() {
14498  return useExactLpReason_;
14499  }
14510  public Builder setUseExactLpReason(boolean value) {
14511  bitField3_ |= 0x00001000;
14512  useExactLpReason_ = value;
14513  onChanged();
14514  return this;
14515  }
14527  bitField3_ = (bitField3_ & ~0x00001000);
14528  useExactLpReason_ = true;
14529  onChanged();
14530  return this;
14531  }
14532 
14533  private boolean useBranchingInLp_ ;
14543  public boolean hasUseBranchingInLp() {
14544  return ((bitField3_ & 0x00002000) != 0);
14545  }
14555  public boolean getUseBranchingInLp() {
14556  return useBranchingInLp_;
14557  }
14567  public Builder setUseBranchingInLp(boolean value) {
14568  bitField3_ |= 0x00002000;
14569  useBranchingInLp_ = value;
14570  onChanged();
14571  return this;
14572  }
14583  bitField3_ = (bitField3_ & ~0x00002000);
14584  useBranchingInLp_ = false;
14585  onChanged();
14586  return this;
14587  }
14588 
14589  private boolean useCombinedNoOverlap_ ;
14599  public boolean hasUseCombinedNoOverlap() {
14600  return ((bitField3_ & 0x00004000) != 0);
14601  }
14611  public boolean getUseCombinedNoOverlap() {
14612  return useCombinedNoOverlap_;
14613  }
14623  public Builder setUseCombinedNoOverlap(boolean value) {
14624  bitField3_ |= 0x00004000;
14625  useCombinedNoOverlap_ = value;
14626  onChanged();
14627  return this;
14628  }
14639  bitField3_ = (bitField3_ & ~0x00004000);
14640  useCombinedNoOverlap_ = false;
14641  onChanged();
14642  return this;
14643  }
14644 
14645  private double mipMaxBound_ = 10000000D;
14655  public boolean hasMipMaxBound() {
14656  return ((bitField3_ & 0x00008000) != 0);
14657  }
14667  public double getMipMaxBound() {
14668  return mipMaxBound_;
14669  }
14679  public Builder setMipMaxBound(double value) {
14680  bitField3_ |= 0x00008000;
14681  mipMaxBound_ = value;
14682  onChanged();
14683  return this;
14684  }
14695  bitField3_ = (bitField3_ & ~0x00008000);
14696  mipMaxBound_ = 10000000D;
14697  onChanged();
14698  return this;
14699  }
14700 
14701  private double mipVarScaling_ = 1D;
14711  public boolean hasMipVarScaling() {
14712  return ((bitField3_ & 0x00010000) != 0);
14713  }
14723  public double getMipVarScaling() {
14724  return mipVarScaling_;
14725  }
14735  public Builder setMipVarScaling(double value) {
14736  bitField3_ |= 0x00010000;
14737  mipVarScaling_ = value;
14738  onChanged();
14739  return this;
14740  }
14751  bitField3_ = (bitField3_ & ~0x00010000);
14752  mipVarScaling_ = 1D;
14753  onChanged();
14754  return this;
14755  }
14756 
14757  private double mipWantedPrecision_ = 1e-06D;
14773  public boolean hasMipWantedPrecision() {
14774  return ((bitField3_ & 0x00020000) != 0);
14775  }
14791  public double getMipWantedPrecision() {
14792  return mipWantedPrecision_;
14793  }
14809  public Builder setMipWantedPrecision(double value) {
14810  bitField3_ |= 0x00020000;
14811  mipWantedPrecision_ = value;
14812  onChanged();
14813  return this;
14814  }
14831  bitField3_ = (bitField3_ & ~0x00020000);
14832  mipWantedPrecision_ = 1e-06D;
14833  onChanged();
14834  return this;
14835  }
14836 
14837  private int mipMaxActivityExponent_ = 53;
14851  public boolean hasMipMaxActivityExponent() {
14852  return ((bitField3_ & 0x00040000) != 0);
14853  }
14868  return mipMaxActivityExponent_;
14869  }
14884  bitField3_ |= 0x00040000;
14885  mipMaxActivityExponent_ = value;
14886  onChanged();
14887  return this;
14888  }
14903  bitField3_ = (bitField3_ & ~0x00040000);
14904  mipMaxActivityExponent_ = 53;
14905  onChanged();
14906  return this;
14907  }
14908 
14909  private double mipCheckPrecision_ = 0.0001D;
14920  public boolean hasMipCheckPrecision() {
14921  return ((bitField3_ & 0x00080000) != 0);
14922  }
14933  public double getMipCheckPrecision() {
14934  return mipCheckPrecision_;
14935  }
14946  public Builder setMipCheckPrecision(double value) {
14947  bitField3_ |= 0x00080000;
14948  mipCheckPrecision_ = value;
14949  onChanged();
14950  return this;
14951  }
14963  bitField3_ = (bitField3_ & ~0x00080000);
14964  mipCheckPrecision_ = 0.0001D;
14965  onChanged();
14966  return this;
14967  }
14968 
14969  private boolean catchSigintSignal_ = true;
14979  public boolean hasCatchSigintSignal() {
14980  return ((bitField3_ & 0x00100000) != 0);
14981  }
14991  public boolean getCatchSigintSignal() {
14992  return catchSigintSignal_;
14993  }
15003  public Builder setCatchSigintSignal(boolean value) {
15004  bitField3_ |= 0x00100000;
15005  catchSigintSignal_ = value;
15006  onChanged();
15007  return this;
15008  }
15019  bitField3_ = (bitField3_ & ~0x00100000);
15020  catchSigintSignal_ = true;
15021  onChanged();
15022  return this;
15023  }
15024  @java.lang.Override
15026  final com.google.protobuf.UnknownFieldSet unknownFields) {
15027  return super.setUnknownFields(unknownFields);
15028  }
15029 
15030  @java.lang.Override
15032  final com.google.protobuf.UnknownFieldSet unknownFields) {
15033  return super.mergeUnknownFields(unknownFields);
15034  }
15035 
15036 
15037  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
15038  }
15039 
15040  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
15041  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
15042  static {
15043  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
15044  }
15045 
15047  return DEFAULT_INSTANCE;
15048  }
15049 
15050  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
15051  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
15052  @java.lang.Override
15053  public SatParameters parsePartialFrom(
15054  com.google.protobuf.CodedInputStream input,
15055  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15056  throws com.google.protobuf.InvalidProtocolBufferException {
15057  return new SatParameters(input, extensionRegistry);
15058  }
15059  };
15060 
15061  public static com.google.protobuf.Parser<SatParameters> parser() {
15062  return PARSER;
15063  }
15064 
15065  @java.lang.Override
15066  public com.google.protobuf.Parser<SatParameters> getParserForType() {
15067  return PARSER;
15068  }
15069 
15070  @java.lang.Override
15072  return DEFAULT_INSTANCE;
15073  }
15074 
15075 }
15076 
.lang.Override Builder newBuilderForType()
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder setGlucoseDecayIncrementPeriod(int value)
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder clearBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Deprecated static BinaryMinizationAlgorithm valueOf(int value)
static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER
.lang.Override final boolean isInitialized()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER
static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder clearMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
Builder clearMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMinimizeWithPropagationNumDecisions(int value)
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER
static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Deprecated static MaxSatAssumptionOrder valueOf(int value)
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder clearPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
EXPERIMENTAL_BINARY_MINIMIZATION
EXPERIMENTAL_BINARY_MINIMIZATION = 3;
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Deprecated static VariableOrder valueOf(int value)
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
static MaxSatAssumptionOrder forNumber(int value)
.lang.Deprecated static ClauseOrdering valueOf(int value)
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
Builder clearLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override Builder mergeFrom(com.google.protobuf.Message other)
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setPbCleanupRatio(double value)
optional double pb_cleanup_ratio = 47 [default = 0.5];
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder clearBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
Builder setGlucoseDecayIncrement(double value)
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setSubsumptionDuringConflictAnalysis(boolean value)
.lang.Deprecated static ClauseProtection valueOf(int value)
static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER
Builder setFillTightenedDomainsInResponse(boolean value)
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER
Builder clearMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override void writeTo(com.google.protobuf.CodedOutputStream output)
Builder setMaxClauseActivityValue(double value)
optional double max_clause_activity_value = 18 [default = 1e+20];
Builder setLnsFocusOnDecisionVariables(boolean value)
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder clearMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder clearGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
Builder setMinimizeReductionDuringPbResolution(boolean value)
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
Builder setUseOverloadCheckerInCumulativeConstraint(boolean value)
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
Builder clearGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
.lang.Override boolean equals(final java.lang.Object obj)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static ConflictMinimizationAlgorithm forNumber(int value)
Builder clearSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
.lang.Override final boolean isInitialized()
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static MaxSatStratificationAlgorithm forNumber(int value)
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override com.google.ortools.sat.SatParameters buildPartial()
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int MINIMIZE_WITH_PROPAGATION_NUM_DECISIONS_FIELD_NUMBER
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override Builder toBuilder()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
static com.google.protobuf.Parser< SatParameters > parser()
static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER
BINARY_MINIMIZATION_WITH_REACHABILITY
BINARY_MINIMIZATION_WITH_REACHABILITY = 2;
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
Builder clearBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Deprecated static Polarity valueOf(int value)
Builder setBlockingRestartWindowSize(int value)
optional int32 blocking_restart_window_size = 65 [default = 5000];
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static BinaryMinizationAlgorithm forNumber(int value)
static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Deprecated static RestartAlgorithm valueOf(int value)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
static final int MINIMIZE_WITH_PROPAGATION_RESTART_PERIOD_FIELD_NUMBER
.lang.Override java.lang.Object newInstance(UnusedPrivateParameter unused)
Builder clearMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters build()
Builder setUseDisjunctiveConstraintInCumulativeConstraint(boolean value)
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
static final int MIP_WANTED_PRECISION_FIELD_NUMBER
static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER
static com.google.ortools.sat.SatParameters getDefaultInstance()
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER
.lang.Deprecated static ConflictMinimizationAlgorithm valueOf(int value)
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override com.google.protobuf.Parser< SatParameters > getParserForType()
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
Builder clearClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER
static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER
Builder setBlockingRestartMultiplier(double value)
optional double blocking_restart_multiplier = 66 [default = 1.4];
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setMaxVariableActivityValue(double value)
optional double max_variable_activity_value = 16 [default = 1e+100];
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
Builder clearMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder clearPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder clearClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
.lang.Deprecated static MaxSatStratificationAlgorithm valueOf(int value)
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setPresolveProbingDeterministicTimeLimit(double value)
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
Builder clearRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
.lang.Deprecated static SearchBranching valueOf(int value)
.lang.Deprecated static final com.google.protobuf.Parser< SatParameters > PARSER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setDefaultRestartAlgorithms(java.lang.String value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4;
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int USE_BLOCKING_RESTART_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder clearDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder clearInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
Builder setUseTimetableEdgeFindingInCumulativeConstraint(boolean value)
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder setRestartLbdAverageRatio(double value)
optional double restart_lbd_average_ratio = 71 [default = 1];