Java Reference

Java Reference

SatParameters.java
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/sat/sat_parameters.proto
3 
4 package com.google.ortools.sat;
5 
15 public final class SatParameters extends
16  com.google.protobuf.GeneratedMessageV3 implements
17  // @@protoc_insertion_point(message_implements:operations_research.sat.SatParameters)
19 private static final long serialVersionUID = 0L;
20  // Use SatParameters.newBuilder() to construct.
21  private SatParameters(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
22  super(builder);
23  }
24  private SatParameters() {
25  preferredVariableOrder_ = 0;
26  initialPolarity_ = 1;
27  usePhaseSaving_ = true;
28  minimizationAlgorithm_ = 2;
29  binaryMinimizationAlgorithm_ = 1;
30  subsumptionDuringConflictAnalysis_ = true;
31  clauseCleanupPeriod_ = 10000;
32  clauseCleanupTarget_ = 10000;
33  clauseCleanupProtection_ = 0;
34  clauseCleanupLbdBound_ = 5;
35  clauseCleanupOrdering_ = 0;
36  pbCleanupIncrement_ = 200;
37  pbCleanupRatio_ = 0.5D;
38  minimizeWithPropagationRestartPeriod_ = 10;
39  minimizeWithPropagationNumDecisions_ = 1000;
40  variableActivityDecay_ = 0.8D;
41  maxVariableActivityValue_ = 1e+100D;
42  glucoseMaxDecay_ = 0.95D;
43  glucoseDecayIncrement_ = 0.01D;
44  glucoseDecayIncrementPeriod_ = 5000;
45  clauseActivityDecay_ = 0.999D;
46  maxClauseActivityValue_ = 1e+20D;
47  restartAlgorithms_ = java.util.Collections.emptyList();
48  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
49  restartPeriod_ = 50;
50  restartRunningWindowSize_ = 50;
51  restartDlAverageRatio_ = 1D;
52  restartLbdAverageRatio_ = 1D;
53  blockingRestartWindowSize_ = 5000;
54  blockingRestartMultiplier_ = 1.4D;
55  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
56  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
57  maxNumberOfConflicts_ = 9223372036854775807L;
58  maxMemoryInMb_ = 10000L;
59  treatBinaryClausesSeparately_ = true;
60  randomSeed_ = 1;
61  countAssumptionLevelsInLbd_ = true;
62  presolveBveThreshold_ = 500;
63  presolveBveClauseWeight_ = 3;
64  presolveProbingDeterministicTimeLimit_ = 30D;
65  presolveBlockedClause_ = true;
66  presolveUseBva_ = true;
67  presolveBvaThreshold_ = 1;
68  maxPresolveIterations_ = 3;
69  cpModelPresolve_ = true;
70  cpModelProbingLevel_ = 2;
71  cpModelUseSatPresolve_ = true;
72  expandElementConstraints_ = true;
73  expandAutomatonConstraints_ = true;
74  mergeNoOverlapWorkLimit_ = 1000000000000D;
75  mergeAtMostOneWorkLimit_ = 100000000D;
76  presolveSubstitutionLevel_ = 1;
77  useOptimizationHints_ = true;
78  minimizeCore_ = true;
79  findMultipleCores_ = true;
80  coverOptimization_ = true;
81  maxSatAssumptionOrder_ = 0;
82  maxSatStratification_ = 1;
83  usePrecedencesInDisjunctiveConstraint_ = true;
84  useDisjunctiveConstraintInCumulativeConstraint_ = true;
85  linearizationLevel_ = 1;
86  booleanEncodingLevel_ = 1;
87  maxNumCuts_ = 10000;
88  addCgCuts_ = true;
89  addMirCuts_ = true;
90  maxAllDiffCutSize_ = 7;
91  maxIntegerRoundingScaling_ = 600;
92  addLpConstraintsLazily_ = true;
93  maxConsecutiveInactiveCount_ = 100;
94  newConstraintsBatchSize_ = 50;
95  searchBranching_ = 0;
96  exploitIntegerLpSolution_ = true;
97  exploitAllLpSolution_ = true;
98  exploitObjective_ = true;
99  pseudoCostReliabilityThreshold_ = 100L;
100  binarySearchNumConflicts_ = -1;
101  instantiateAllVariables_ = true;
102  autoDetectGreaterThanAtLeastOneOf_ = true;
103  numSearchWorkers_ = 1;
104  reduceMemoryUsageInInterleaveMode_ = true;
105  shareObjectiveBounds_ = true;
106  shareLevelZeroBounds_ = true;
107  useRinsLns_ = true;
108  useOptionalVariables_ = true;
109  useExactLpReason_ = true;
110  catchSigintSignal_ = true;
111  useImpliedBounds_ = true;
112  mipMaxBound_ = 10000000D;
113  mipVarScaling_ = 1D;
114  mipWantedPrecision_ = 1e-06D;
115  mipMaxActivityExponent_ = 53;
116  mipCheckPrecision_ = 0.0001D;
117  }
118 
119  @java.lang.Override
120  @SuppressWarnings({"unused"})
121  protected java.lang.Object newInstance(
122  UnusedPrivateParameter unused) {
123  return new SatParameters();
124  }
125 
126  @java.lang.Override
127  public final com.google.protobuf.UnknownFieldSet
129  return this.unknownFields;
130  }
131  private SatParameters(
132  com.google.protobuf.CodedInputStream input,
133  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
134  throws com.google.protobuf.InvalidProtocolBufferException {
135  this();
136  if (extensionRegistry == null) {
137  throw new java.lang.NullPointerException();
138  }
139  int mutable_bitField0_ = 0;
140  int mutable_bitField1_ = 0;
141  int mutable_bitField2_ = 0;
142  int mutable_bitField3_ = 0;
143  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
144  com.google.protobuf.UnknownFieldSet.newBuilder();
145  try {
146  boolean done = false;
147  while (!done) {
148  int tag = input.readTag();
149  switch (tag) {
150  case 0:
151  done = true;
152  break;
153  case 8: {
154  int rawValue = input.readEnum();
155  @SuppressWarnings("deprecation")
156  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
157  if (value == null) {
158  unknownFields.mergeVarintField(1, rawValue);
159  } else {
160  bitField0_ |= 0x00000001;
161  preferredVariableOrder_ = rawValue;
162  }
163  break;
164  }
165  case 16: {
166  int rawValue = input.readEnum();
167  @SuppressWarnings("deprecation")
168  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
169  if (value == null) {
170  unknownFields.mergeVarintField(2, rawValue);
171  } else {
172  bitField0_ |= 0x00000002;
173  initialPolarity_ = rawValue;
174  }
175  break;
176  }
177  case 32: {
178  int rawValue = input.readEnum();
179  @SuppressWarnings("deprecation")
180  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
181  if (value == null) {
182  unknownFields.mergeVarintField(4, rawValue);
183  } else {
184  bitField0_ |= 0x00000100;
185  minimizationAlgorithm_ = rawValue;
186  }
187  break;
188  }
189  case 88: {
190  bitField0_ |= 0x00000800;
191  clauseCleanupPeriod_ = input.readInt32();
192  break;
193  }
194  case 104: {
195  bitField0_ |= 0x00001000;
196  clauseCleanupTarget_ = input.readInt32();
197  break;
198  }
199  case 121: {
200  bitField0_ |= 0x00100000;
201  variableActivityDecay_ = input.readDouble();
202  break;
203  }
204  case 129: {
205  bitField0_ |= 0x00200000;
206  maxVariableActivityValue_ = input.readDouble();
207  break;
208  }
209  case 137: {
210  bitField0_ |= 0x02000000;
211  clauseActivityDecay_ = input.readDouble();
212  break;
213  }
214  case 145: {
215  bitField0_ |= 0x04000000;
216  maxClauseActivityValue_ = input.readDouble();
217  break;
218  }
219  case 177: {
220  bitField0_ |= 0x00400000;
221  glucoseMaxDecay_ = input.readDouble();
222  break;
223  }
224  case 185: {
225  bitField0_ |= 0x00800000;
226  glucoseDecayIncrement_ = input.readDouble();
227  break;
228  }
229  case 192: {
230  bitField0_ |= 0x01000000;
231  glucoseDecayIncrementPeriod_ = input.readInt32();
232  break;
233  }
234  case 240: {
235  bitField0_ |= 0x10000000;
236  restartPeriod_ = input.readInt32();
237  break;
238  }
239  case 248: {
240  bitField1_ |= 0x00000400;
241  randomSeed_ = input.readInt32();
242  break;
243  }
244  case 257: {
245  bitField0_ |= 0x00000010;
246  randomBranchesRatio_ = input.readDouble();
247  break;
248  }
249  case 264: {
250  bitField1_ |= 0x00000200;
251  treatBinaryClausesSeparately_ = input.readBool();
252  break;
253  }
254  case 272: {
255  int rawValue = input.readEnum();
256  @SuppressWarnings("deprecation")
257  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
258  if (value == null) {
259  unknownFields.mergeVarintField(34, rawValue);
260  } else {
261  bitField0_ |= 0x00000200;
262  binaryMinimizationAlgorithm_ = rawValue;
263  }
264  break;
265  }
266  case 280: {
267  bitField1_ |= 0x80000000;
268  useOptimizationHints_ = input.readBool();
269  break;
270  }
271  case 289: {
272  bitField1_ |= 0x00000020;
273  maxTimeInSeconds_ = input.readDouble();
274  break;
275  }
276  case 296: {
277  bitField1_ |= 0x00000080;
278  maxNumberOfConflicts_ = input.readInt64();
279  break;
280  }
281  case 320: {
282  bitField1_ |= 0x00000100;
283  maxMemoryInMb_ = input.readInt64();
284  break;
285  }
286  case 328: {
287  bitField1_ |= 0x00000800;
288  logSearchProgress_ = input.readBool();
289  break;
290  }
291  case 344: {
292  bitField1_ |= 0x00001000;
293  usePbResolution_ = input.readBool();
294  break;
295  }
296  case 352: {
297  bitField0_ |= 0x00000004;
298  usePhaseSaving_ = input.readBool();
299  break;
300  }
301  case 361: {
302  bitField0_ |= 0x00000008;
303  randomPolarityRatio_ = input.readDouble();
304  break;
305  }
306  case 368: {
307  bitField0_ |= 0x00010000;
308  pbCleanupIncrement_ = input.readInt32();
309  break;
310  }
311  case 377: {
312  bitField0_ |= 0x00020000;
313  pbCleanupRatio_ = input.readDouble();
314  break;
315  }
316  case 384: {
317  bitField1_ |= 0x00002000;
318  minimizeReductionDuringPbResolution_ = input.readBool();
319  break;
320  }
321  case 392: {
322  bitField1_ |= 0x00004000;
323  countAssumptionLevelsInLbd_ = input.readBool();
324  break;
325  }
326  case 400: {
327  bitField2_ |= 0x00000001;
328  minimizeCore_ = input.readBool();
329  break;
330  }
331  case 408: {
332  int rawValue = input.readEnum();
333  @SuppressWarnings("deprecation")
334  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
335  if (value == null) {
336  unknownFields.mergeVarintField(51, rawValue);
337  } else {
338  bitField2_ |= 0x00000008;
339  maxSatAssumptionOrder_ = rawValue;
340  }
341  break;
342  }
343  case 416: {
344  bitField2_ |= 0x00000010;
345  maxSatReverseAssumptionOrder_ = input.readBool();
346  break;
347  }
348  case 424: {
349  int rawValue = input.readEnum();
350  @SuppressWarnings("deprecation")
351  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
352  if (value == null) {
353  unknownFields.mergeVarintField(53, rawValue);
354  } else {
355  bitField2_ |= 0x00000020;
356  maxSatStratification_ = rawValue;
357  }
358  break;
359  }
360  case 432: {
361  bitField1_ |= 0x00008000;
362  presolveBveThreshold_ = input.readInt32();
363  break;
364  }
365  case 440: {
366  bitField1_ |= 0x00010000;
367  presolveBveClauseWeight_ = input.readInt32();
368  break;
369  }
370  case 448: {
371  bitField0_ |= 0x00000400;
372  subsumptionDuringConflictAnalysis_ = input.readBool();
373  break;
374  }
375  case 457: {
376  bitField1_ |= 0x00020000;
377  presolveProbingDeterministicTimeLimit_ = input.readDouble();
378  break;
379  }
380  case 464: {
381  int rawValue = input.readEnum();
382  @SuppressWarnings("deprecation")
383  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
384  if (value == null) {
385  unknownFields.mergeVarintField(58, rawValue);
386  } else {
387  bitField0_ |= 0x00002000;
388  clauseCleanupProtection_ = rawValue;
389  }
390  break;
391  }
392  case 472: {
393  bitField0_ |= 0x00004000;
394  clauseCleanupLbdBound_ = input.readInt32();
395  break;
396  }
397  case 480: {
398  int rawValue = input.readEnum();
399  @SuppressWarnings("deprecation")
400  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
401  if (value == null) {
402  unknownFields.mergeVarintField(60, rawValue);
403  } else {
404  bitField0_ |= 0x00008000;
405  clauseCleanupOrdering_ = rawValue;
406  }
407  break;
408  }
409  case 488: {
410  int rawValue = input.readEnum();
411  @SuppressWarnings("deprecation")
412  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
413  if (value == null) {
414  unknownFields.mergeVarintField(61, rawValue);
415  } else {
416  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
417  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
418  mutable_bitField0_ |= 0x08000000;
419  }
420  restartAlgorithms_.add(rawValue);
421  }
422  break;
423  }
424  case 490: {
425  int length = input.readRawVarint32();
426  int oldLimit = input.pushLimit(length);
427  while(input.getBytesUntilLimit() > 0) {
428  int rawValue = input.readEnum();
429  @SuppressWarnings("deprecation")
430  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
431  if (value == null) {
432  unknownFields.mergeVarintField(61, rawValue);
433  } else {
434  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
435  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
436  mutable_bitField0_ |= 0x08000000;
437  }
438  restartAlgorithms_.add(rawValue);
439  }
440  }
441  input.popLimit(oldLimit);
442  break;
443  }
444  case 496: {
445  bitField0_ |= 0x20000000;
446  restartRunningWindowSize_ = input.readInt32();
447  break;
448  }
449  case 505: {
450  bitField0_ |= 0x40000000;
451  restartDlAverageRatio_ = input.readDouble();
452  break;
453  }
454  case 512: {
455  bitField1_ |= 0x00000001;
456  useBlockingRestart_ = input.readBool();
457  break;
458  }
459  case 520: {
460  bitField1_ |= 0x00000002;
461  blockingRestartWindowSize_ = input.readInt32();
462  break;
463  }
464  case 529: {
465  bitField1_ |= 0x00000004;
466  blockingRestartMultiplier_ = input.readDouble();
467  break;
468  }
469  case 537: {
470  bitField1_ |= 0x00000040;
471  maxDeterministicTime_ = input.readDouble();
472  break;
473  }
474  case 544: {
475  bitField1_ |= 0x00000008;
476  numConflictsBeforeStrategyChanges_ = input.readInt32();
477  break;
478  }
479  case 553: {
480  bitField1_ |= 0x00000010;
481  strategyChangeIncreaseRatio_ = input.readDouble();
482  break;
483  }
484  case 562: {
485  com.google.protobuf.ByteString bs = input.readBytes();
486  bitField0_ |= 0x08000000;
487  defaultRestartAlgorithms_ = bs;
488  break;
489  }
490  case 569: {
491  bitField0_ |= 0x80000000;
492  restartLbdAverageRatio_ = input.readDouble();
493  break;
494  }
495  case 576: {
496  bitField1_ |= 0x00080000;
497  presolveUseBva_ = input.readBool();
498  break;
499  }
500  case 584: {
501  bitField1_ |= 0x00100000;
502  presolveBvaThreshold_ = input.readInt32();
503  break;
504  }
505  case 592: {
506  bitField2_ |= 0x00000040;
507  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
508  break;
509  }
510  case 600: {
511  bitField0_ |= 0x00000020;
512  useErwaHeuristic_ = input.readBool();
513  break;
514  }
515  case 609: {
516  bitField0_ |= 0x00000040;
517  initialVariablesActivity_ = input.readDouble();
518  break;
519  }
520  case 616: {
521  bitField0_ |= 0x00000080;
522  alsoBumpVariablesInConflictReasons_ = input.readBool();
523  break;
524  }
525  case 624: {
526  bitField2_ |= 0x00000080;
527  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
528  break;
529  }
530  case 632: {
531  bitField2_ |= 0x00000100;
532  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
533  break;
534  }
535  case 640: {
536  bitField2_ |= 0x00000200;
537  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
538  break;
539  }
540  case 656: {
541  int rawValue = input.readEnum();
542  @SuppressWarnings("deprecation")
543  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
544  if (value == null) {
545  unknownFields.mergeVarintField(82, rawValue);
546  } else {
547  bitField2_ |= 0x00800000;
548  searchBranching_ = rawValue;
549  }
550  break;
551  }
552  case 664: {
553  bitField2_ |= 0x40000000;
554  optimizeWithCore_ = input.readBool();
555  break;
556  }
557  case 672: {
558  bitField2_ |= 0x00000002;
559  findMultipleCores_ = input.readBool();
560  break;
561  }
562  case 680: {
563  bitField3_ |= 0x00000001;
564  optimizeWithMaxHs_ = input.readBool();
565  break;
566  }
567  case 688: {
568  bitField1_ |= 0x00400000;
569  cpModelPresolve_ = input.readBool();
570  break;
571  }
572  case 696: {
573  bitField3_ |= 0x00000002;
574  enumerateAllSolutions_ = input.readBool();
575  break;
576  }
577  case 704: {
578  bitField1_ |= 0x00040000;
579  presolveBlockedClause_ = input.readBool();
580  break;
581  }
582  case 712: {
583  bitField2_ |= 0x00000004;
584  coverOptimization_ = input.readBool();
585  break;
586  }
587  case 720: {
588  bitField2_ |= 0x00000400;
589  linearizationLevel_ = input.readInt32();
590  break;
591  }
592  case 728: {
593  bitField2_ |= 0x00001000;
594  maxNumCuts_ = input.readInt32();
595  break;
596  }
597  case 736: {
598  bitField2_ |= 0x00002000;
599  onlyAddCutsAtLevelZero_ = input.readBool();
600  break;
601  }
602  case 744: {
603  bitField1_ |= 0x02000000;
604  cpModelUseSatPresolve_ = input.readBool();
605  break;
606  }
607  case 752: {
608  bitField2_ |= 0x01000000;
609  exploitIntegerLpSolution_ = input.readBool();
610  break;
611  }
612  case 760: {
613  bitField3_ |= 0x00000010;
614  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
615  break;
616  }
617  case 768: {
618  bitField0_ |= 0x00040000;
619  minimizeWithPropagationRestartPeriod_ = input.readInt32();
620  break;
621  }
622  case 776: {
623  bitField0_ |= 0x00080000;
624  minimizeWithPropagationNumDecisions_ = input.readInt32();
625  break;
626  }
627  case 784: {
628  bitField3_ |= 0x00000020;
629  stopAfterFirstSolution_ = input.readBool();
630  break;
631  }
632  case 792: {
633  bitField2_ |= 0x80000000;
634  binarySearchNumConflicts_ = input.readInt32();
635  break;
636  }
637  case 800: {
638  bitField3_ |= 0x00000080;
639  numSearchWorkers_ = input.readInt32();
640  break;
641  }
642  case 808: {
643  bitField3_ |= 0x00002000;
644  useLnsOnly_ = input.readBool();
645  break;
646  }
647  case 824: {
648  bitField3_ |= 0x00040000;
649  randomizeSearch_ = input.readBool();
650  break;
651  }
652  case 832: {
653  bitField3_ |= 0x00080000;
654  searchRandomizationTolerance_ = input.readInt64();
655  break;
656  }
657  case 840: {
658  bitField3_ |= 0x00004000;
659  lnsFocusOnDecisionVariables_ = input.readBool();
660  break;
661  }
662  case 848: {
663  bitField3_ |= 0x00000008;
664  instantiateAllVariables_ = input.readBool();
665  break;
666  }
667  case 856: {
668  bitField2_ |= 0x00000800;
669  booleanEncodingLevel_ = input.readInt32();
670  break;
671  }
672  case 864: {
673  bitField3_ |= 0x00100000;
674  useOptionalVariables_ = input.readBool();
675  break;
676  }
677  case 872: {
678  bitField3_ |= 0x00200000;
679  useExactLpReason_ = input.readBool();
680  break;
681  }
682  case 880: {
683  bitField1_ |= 0x01000000;
684  cpModelProbingLevel_ = input.readInt32();
685  break;
686  }
687  case 888: {
688  bitField2_ |= 0x00004000;
689  addKnapsackCuts_ = input.readBool();
690  break;
691  }
692  case 896: {
693  bitField2_ |= 0x00080000;
694  addLpConstraintsLazily_ = input.readBool();
695  break;
696  }
697  case 904: {
698  bitField3_ |= 0x00000800;
699  shareObjectiveBounds_ = input.readBool();
700  break;
701  }
702  case 912: {
703  bitField3_ |= 0x00001000;
704  shareLevelZeroBounds_ = input.readBool();
705  break;
706  }
707  case 921: {
708  bitField2_ |= 0x00100000;
709  minOrthogonalityForLpConstraints_ = input.readDouble();
710  break;
711  }
712  case 928: {
713  bitField2_ |= 0x02000000;
714  exploitAllLpSolution_ = input.readBool();
715  break;
716  }
717  case 936: {
718  bitField2_ |= 0x00008000;
719  addCgCuts_ = input.readBool();
720  break;
721  }
722  case 952: {
723  bitField2_ |= 0x00040000;
724  maxIntegerRoundingScaling_ = input.readInt32();
725  break;
726  }
727  case 960: {
728  bitField2_ |= 0x00010000;
729  addMirCuts_ = input.readBool();
730  break;
731  }
732  case 968: {
733  bitField2_ |= 0x00200000;
734  maxConsecutiveInactiveCount_ = input.readInt32();
735  break;
736  }
737  case 976: {
738  bitField2_ |= 0x00400000;
739  newConstraintsBatchSize_ = input.readInt32();
740  break;
741  }
742  case 984: {
743  bitField2_ |= 0x20000000;
744  pseudoCostReliabilityThreshold_ = input.readInt64();
745  break;
746  }
747  case 993: {
748  bitField3_ |= 0x04000000;
749  mipMaxBound_ = input.readDouble();
750  break;
751  }
752  case 1001: {
753  bitField3_ |= 0x08000000;
754  mipVarScaling_ = input.readDouble();
755  break;
756  }
757  case 1009: {
758  bitField3_ |= 0x10000000;
759  mipWantedPrecision_ = input.readDouble();
760  break;
761  }
762  case 1016: {
763  bitField3_ |= 0x20000000;
764  mipMaxActivityExponent_ = input.readInt32();
765  break;
766  }
767  case 1025: {
768  bitField3_ |= 0x40000000;
769  mipCheckPrecision_ = input.readDouble();
770  break;
771  }
772  case 1032: {
773  bitField3_ |= 0x00008000;
774  useRinsLns_ = input.readBool();
775  break;
776  }
777  case 1040: {
778  bitField2_ |= 0x04000000;
779  exploitBestSolution_ = input.readBool();
780  break;
781  }
782  case 1048: {
783  bitField2_ |= 0x08000000;
784  exploitObjective_ = input.readBool();
785  break;
786  }
787  case 1056: {
788  bitField3_ |= 0x00000004;
789  fillTightenedDomainsInResponse_ = input.readBool();
790  break;
791  }
792  case 1064: {
793  bitField3_ |= 0x00800000;
794  useCombinedNoOverlap_ = input.readBool();
795  break;
796  }
797  case 1072: {
798  bitField3_ |= 0x00000400;
799  deterministicParallelSearch_ = input.readBool();
800  break;
801  }
802  case 1080: {
803  bitField3_ |= 0x01000000;
804  catchSigintSignal_ = input.readBool();
805  break;
806  }
807  case 1088: {
808  bitField3_ |= 0x00000100;
809  interleaveSearch_ = input.readBool();
810  break;
811  }
812  case 1096: {
813  bitField3_ |= 0x00020000;
814  diversifyLnsParams_ = input.readBool();
815  break;
816  }
817  case 1104: {
818  bitField1_ |= 0x00200000;
819  maxPresolveIterations_ = input.readInt32();
820  break;
821  }
822  case 1112: {
823  bitField3_ |= 0x00400000;
824  useBranchingInLp_ = input.readBool();
825  break;
826  }
827  case 1120: {
828  bitField1_ |= 0x04000000;
829  expandElementConstraints_ = input.readBool();
830  break;
831  }
832  case 1128: {
833  bitField3_ |= 0x00000200;
834  reduceMemoryUsageInInterleaveMode_ = input.readBool();
835  break;
836  }
837  case 1136: {
838  bitField2_ |= 0x10000000;
839  probingPeriodAtRoot_ = input.readInt64();
840  break;
841  }
842  case 1144: {
843  bitField1_ |= 0x08000000;
844  expandAutomatonConstraints_ = input.readBool();
845  break;
846  }
847  case 1152: {
848  bitField3_ |= 0x02000000;
849  useImpliedBounds_ = input.readBool();
850  break;
851  }
852  case 1161: {
853  bitField1_ |= 0x10000000;
854  mergeNoOverlapWorkLimit_ = input.readDouble();
855  break;
856  }
857  case 1169: {
858  bitField1_ |= 0x20000000;
859  mergeAtMostOneWorkLimit_ = input.readDouble();
860  break;
861  }
862  case 1176: {
863  bitField1_ |= 0x40000000;
864  presolveSubstitutionLevel_ = input.readInt32();
865  break;
866  }
867  case 1184: {
868  bitField2_ |= 0x00020000;
869  maxAllDiffCutSize_ = input.readInt32();
870  break;
871  }
872  case 1192: {
873  bitField3_ |= 0x00000040;
874  stopAfterPresolve_ = input.readBool();
875  break;
876  }
877  case 1200: {
878  bitField3_ |= 0x00010000;
879  useRelaxationLns_ = input.readBool();
880  break;
881  }
882  case 1208: {
883  bitField1_ |= 0x00800000;
884  cpModelMaxNumPresolveOperations_ = input.readInt32();
885  break;
886  }
887  default: {
888  if (!parseUnknownField(
889  input, unknownFields, extensionRegistry, tag)) {
890  done = true;
891  }
892  break;
893  }
894  }
895  }
896  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
897  throw e.setUnfinishedMessage(this);
898  } catch (java.io.IOException e) {
899  throw new com.google.protobuf.InvalidProtocolBufferException(
900  e).setUnfinishedMessage(this);
901  } finally {
902  if (((mutable_bitField0_ & 0x08000000) != 0)) {
903  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
904  }
905  this.unknownFields = unknownFields.build();
906  makeExtensionsImmutable();
907  }
908  }
909  public static final com.google.protobuf.Descriptors.Descriptor
911  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
912  }
913 
914  @java.lang.Override
915  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
917  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
918  .ensureFieldAccessorsInitialized(
920  }
921 
930  public enum VariableOrder
931  implements com.google.protobuf.ProtocolMessageEnum {
948  ;
949 
957  public static final int IN_ORDER_VALUE = 0;
961  public static final int IN_REVERSE_ORDER_VALUE = 1;
965  public static final int IN_RANDOM_ORDER_VALUE = 2;
966 
967 
968  public final int getNumber() {
969  return value;
970  }
971 
977  @java.lang.Deprecated
978  public static VariableOrder valueOf(int value) {
979  return forNumber(value);
980  }
981 
986  public static VariableOrder forNumber(int value) {
987  switch (value) {
988  case 0: return IN_ORDER;
989  case 1: return IN_REVERSE_ORDER;
990  case 2: return IN_RANDOM_ORDER;
991  default: return null;
992  }
993  }
994 
995  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
997  return internalValueMap;
998  }
999  private static final com.google.protobuf.Internal.EnumLiteMap<
1000  VariableOrder> internalValueMap =
1001  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
1002  public VariableOrder findValueByNumber(int number) {
1003  return VariableOrder.forNumber(number);
1004  }
1005  };
1006 
1007  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1009  return getDescriptor().getValues().get(ordinal());
1010  }
1011  public final com.google.protobuf.Descriptors.EnumDescriptor
1013  return getDescriptor();
1014  }
1015  public static final com.google.protobuf.Descriptors.EnumDescriptor
1017  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
1018  }
1019 
1020  private static final VariableOrder[] VALUES = values();
1021 
1022  public static VariableOrder valueOf(
1023  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1024  if (desc.getType() != getDescriptor()) {
1025  throw new java.lang.IllegalArgumentException(
1026  "EnumValueDescriptor is not for this type.");
1027  }
1028  return VALUES[desc.getIndex()];
1029  }
1030 
1031  private final int value;
1032 
1033  private VariableOrder(int value) {
1034  this.value = value;
1035  }
1036 
1037  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
1038  }
1039 
1051  public enum Polarity
1052  implements com.google.protobuf.ProtocolMessageEnum {
1084  ;
1085 
1089  public static final int POLARITY_TRUE_VALUE = 0;
1093  public static final int POLARITY_FALSE_VALUE = 1;
1097  public static final int POLARITY_RANDOM_VALUE = 2;
1108  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1116  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1117 
1118 
1119  public final int getNumber() {
1120  return value;
1121  }
1122 
1128  @java.lang.Deprecated
1129  public static Polarity valueOf(int value) {
1130  return forNumber(value);
1131  }
1132 
1137  public static Polarity forNumber(int value) {
1138  switch (value) {
1139  case 0: return POLARITY_TRUE;
1140  case 1: return POLARITY_FALSE;
1141  case 2: return POLARITY_RANDOM;
1142  case 3: return POLARITY_WEIGHTED_SIGN;
1143  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1144  default: return null;
1145  }
1146  }
1147 
1148  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1150  return internalValueMap;
1151  }
1152  private static final com.google.protobuf.Internal.EnumLiteMap<
1153  Polarity> internalValueMap =
1154  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1155  public Polarity findValueByNumber(int number) {
1156  return Polarity.forNumber(number);
1157  }
1158  };
1159 
1160  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1162  return getDescriptor().getValues().get(ordinal());
1163  }
1164  public final com.google.protobuf.Descriptors.EnumDescriptor
1166  return getDescriptor();
1167  }
1168  public static final com.google.protobuf.Descriptors.EnumDescriptor
1170  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1171  }
1172 
1173  private static final Polarity[] VALUES = values();
1174 
1175  public static Polarity valueOf(
1176  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1177  if (desc.getType() != getDescriptor()) {
1178  throw new java.lang.IllegalArgumentException(
1179  "EnumValueDescriptor is not for this type.");
1180  }
1181  return VALUES[desc.getIndex()];
1182  }
1183 
1184  private final int value;
1185 
1186  private Polarity(int value) {
1187  this.value = value;
1188  }
1189 
1190  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1191  }
1192 
1201  implements com.google.protobuf.ProtocolMessageEnum {
1205  NONE(0),
1218  ;
1219 
1223  public static final int NONE_VALUE = 0;
1227  public static final int SIMPLE_VALUE = 1;
1231  public static final int RECURSIVE_VALUE = 2;
1235  public static final int EXPERIMENTAL_VALUE = 3;
1236 
1237 
1238  public final int getNumber() {
1239  return value;
1240  }
1241 
1247  @java.lang.Deprecated
1248  public static ConflictMinimizationAlgorithm valueOf(int value) {
1249  return forNumber(value);
1250  }
1251 
1256  public static ConflictMinimizationAlgorithm forNumber(int value) {
1257  switch (value) {
1258  case 0: return NONE;
1259  case 1: return SIMPLE;
1260  case 2: return RECURSIVE;
1261  case 3: return EXPERIMENTAL;
1262  default: return null;
1263  }
1264  }
1265 
1266  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1268  return internalValueMap;
1269  }
1270  private static final com.google.protobuf.Internal.EnumLiteMap<
1271  ConflictMinimizationAlgorithm> internalValueMap =
1272  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1273  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1275  }
1276  };
1277 
1278  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1280  return getDescriptor().getValues().get(ordinal());
1281  }
1282  public final com.google.protobuf.Descriptors.EnumDescriptor
1284  return getDescriptor();
1285  }
1286  public static final com.google.protobuf.Descriptors.EnumDescriptor
1288  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1289  }
1290 
1291  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1292 
1294  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1295  if (desc.getType() != getDescriptor()) {
1296  throw new java.lang.IllegalArgumentException(
1297  "EnumValueDescriptor is not for this type.");
1298  }
1299  return VALUES[desc.getIndex()];
1300  }
1301 
1302  private final int value;
1303 
1304  private ConflictMinimizationAlgorithm(int value) {
1305  this.value = value;
1306  }
1307 
1308  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1309  }
1310 
1320  implements com.google.protobuf.ProtocolMessageEnum {
1341  ;
1342 
1346  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1350  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1354  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1358  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1362  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1363 
1364 
1365  public final int getNumber() {
1366  return value;
1367  }
1368 
1374  @java.lang.Deprecated
1375  public static BinaryMinizationAlgorithm valueOf(int value) {
1376  return forNumber(value);
1377  }
1378 
1383  public static BinaryMinizationAlgorithm forNumber(int value) {
1384  switch (value) {
1385  case 0: return NO_BINARY_MINIMIZATION;
1386  case 1: return BINARY_MINIMIZATION_FIRST;
1387  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1388  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1389  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1390  default: return null;
1391  }
1392  }
1393 
1394  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1396  return internalValueMap;
1397  }
1398  private static final com.google.protobuf.Internal.EnumLiteMap<
1399  BinaryMinizationAlgorithm> internalValueMap =
1400  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1401  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1402  return BinaryMinizationAlgorithm.forNumber(number);
1403  }
1404  };
1405 
1406  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1408  return getDescriptor().getValues().get(ordinal());
1409  }
1410  public final com.google.protobuf.Descriptors.EnumDescriptor
1412  return getDescriptor();
1413  }
1414  public static final com.google.protobuf.Descriptors.EnumDescriptor
1416  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1417  }
1418 
1419  private static final BinaryMinizationAlgorithm[] VALUES = values();
1420 
1422  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1423  if (desc.getType() != getDescriptor()) {
1424  throw new java.lang.IllegalArgumentException(
1425  "EnumValueDescriptor is not for this type.");
1426  }
1427  return VALUES[desc.getIndex()];
1428  }
1429 
1430  private final int value;
1431 
1432  private BinaryMinizationAlgorithm(int value) {
1433  this.value = value;
1434  }
1435 
1436  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1437  }
1438 
1448  public enum ClauseProtection
1449  implements com.google.protobuf.ProtocolMessageEnum {
1474  ;
1475 
1483  public static final int PROTECTION_NONE_VALUE = 0;
1491  public static final int PROTECTION_ALWAYS_VALUE = 1;
1499  public static final int PROTECTION_LBD_VALUE = 2;
1500 
1501 
1502  public final int getNumber() {
1503  return value;
1504  }
1505 
1511  @java.lang.Deprecated
1512  public static ClauseProtection valueOf(int value) {
1513  return forNumber(value);
1514  }
1515 
1520  public static ClauseProtection forNumber(int value) {
1521  switch (value) {
1522  case 0: return PROTECTION_NONE;
1523  case 1: return PROTECTION_ALWAYS;
1524  case 2: return PROTECTION_LBD;
1525  default: return null;
1526  }
1527  }
1528 
1529  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1531  return internalValueMap;
1532  }
1533  private static final com.google.protobuf.Internal.EnumLiteMap<
1534  ClauseProtection> internalValueMap =
1535  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1536  public ClauseProtection findValueByNumber(int number) {
1537  return ClauseProtection.forNumber(number);
1538  }
1539  };
1540 
1541  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1543  return getDescriptor().getValues().get(ordinal());
1544  }
1545  public final com.google.protobuf.Descriptors.EnumDescriptor
1547  return getDescriptor();
1548  }
1549  public static final com.google.protobuf.Descriptors.EnumDescriptor
1551  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1552  }
1553 
1554  private static final ClauseProtection[] VALUES = values();
1555 
1556  public static ClauseProtection valueOf(
1557  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1558  if (desc.getType() != getDescriptor()) {
1559  throw new java.lang.IllegalArgumentException(
1560  "EnumValueDescriptor is not for this type.");
1561  }
1562  return VALUES[desc.getIndex()];
1563  }
1564 
1565  private final int value;
1566 
1567  private ClauseProtection(int value) {
1568  this.value = value;
1569  }
1570 
1571  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1572  }
1573 
1582  public enum ClauseOrdering
1583  implements com.google.protobuf.ProtocolMessageEnum {
1600  ;
1601 
1609  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1617  public static final int CLAUSE_LBD_VALUE = 1;
1618 
1619 
1620  public final int getNumber() {
1621  return value;
1622  }
1623 
1629  @java.lang.Deprecated
1630  public static ClauseOrdering valueOf(int value) {
1631  return forNumber(value);
1632  }
1633 
1638  public static ClauseOrdering forNumber(int value) {
1639  switch (value) {
1640  case 0: return CLAUSE_ACTIVITY;
1641  case 1: return CLAUSE_LBD;
1642  default: return null;
1643  }
1644  }
1645 
1646  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1648  return internalValueMap;
1649  }
1650  private static final com.google.protobuf.Internal.EnumLiteMap<
1651  ClauseOrdering> internalValueMap =
1652  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1653  public ClauseOrdering findValueByNumber(int number) {
1654  return ClauseOrdering.forNumber(number);
1655  }
1656  };
1657 
1658  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1660  return getDescriptor().getValues().get(ordinal());
1661  }
1662  public final com.google.protobuf.Descriptors.EnumDescriptor
1664  return getDescriptor();
1665  }
1666  public static final com.google.protobuf.Descriptors.EnumDescriptor
1668  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1669  }
1670 
1671  private static final ClauseOrdering[] VALUES = values();
1672 
1673  public static ClauseOrdering valueOf(
1674  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1675  if (desc.getType() != getDescriptor()) {
1676  throw new java.lang.IllegalArgumentException(
1677  "EnumValueDescriptor is not for this type.");
1678  }
1679  return VALUES[desc.getIndex()];
1680  }
1681 
1682  private final int value;
1683 
1684  private ClauseOrdering(int value) {
1685  this.value = value;
1686  }
1687 
1688  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1689  }
1690 
1702  public enum RestartAlgorithm
1703  implements com.google.protobuf.ProtocolMessageEnum {
1740  ;
1741 
1745  public static final int NO_RESTART_VALUE = 0;
1753  public static final int LUBY_RESTART_VALUE = 1;
1761  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1769  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1777  public static final int FIXED_RESTART_VALUE = 4;
1778 
1779 
1780  public final int getNumber() {
1781  return value;
1782  }
1783 
1789  @java.lang.Deprecated
1790  public static RestartAlgorithm valueOf(int value) {
1791  return forNumber(value);
1792  }
1793 
1798  public static RestartAlgorithm forNumber(int value) {
1799  switch (value) {
1800  case 0: return NO_RESTART;
1801  case 1: return LUBY_RESTART;
1802  case 2: return DL_MOVING_AVERAGE_RESTART;
1803  case 3: return LBD_MOVING_AVERAGE_RESTART;
1804  case 4: return FIXED_RESTART;
1805  default: return null;
1806  }
1807  }
1808 
1809  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1811  return internalValueMap;
1812  }
1813  private static final com.google.protobuf.Internal.EnumLiteMap<
1814  RestartAlgorithm> internalValueMap =
1815  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1816  public RestartAlgorithm findValueByNumber(int number) {
1817  return RestartAlgorithm.forNumber(number);
1818  }
1819  };
1820 
1821  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1823  return getDescriptor().getValues().get(ordinal());
1824  }
1825  public final com.google.protobuf.Descriptors.EnumDescriptor
1827  return getDescriptor();
1828  }
1829  public static final com.google.protobuf.Descriptors.EnumDescriptor
1831  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1832  }
1833 
1834  private static final RestartAlgorithm[] VALUES = values();
1835 
1836  public static RestartAlgorithm valueOf(
1837  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1838  if (desc.getType() != getDescriptor()) {
1839  throw new java.lang.IllegalArgumentException(
1840  "EnumValueDescriptor is not for this type.");
1841  }
1842  return VALUES[desc.getIndex()];
1843  }
1844 
1845  private final int value;
1846 
1847  private RestartAlgorithm(int value) {
1848  this.value = value;
1849  }
1850 
1851  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1852  }
1853 
1862  implements com.google.protobuf.ProtocolMessageEnum {
1875  ;
1876 
1880  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1884  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1888  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1889 
1890 
1891  public final int getNumber() {
1892  return value;
1893  }
1894 
1900  @java.lang.Deprecated
1901  public static MaxSatAssumptionOrder valueOf(int value) {
1902  return forNumber(value);
1903  }
1904 
1909  public static MaxSatAssumptionOrder forNumber(int value) {
1910  switch (value) {
1911  case 0: return DEFAULT_ASSUMPTION_ORDER;
1912  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1913  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1914  default: return null;
1915  }
1916  }
1917 
1918  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1920  return internalValueMap;
1921  }
1922  private static final com.google.protobuf.Internal.EnumLiteMap<
1923  MaxSatAssumptionOrder> internalValueMap =
1924  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1925  public MaxSatAssumptionOrder findValueByNumber(int number) {
1926  return MaxSatAssumptionOrder.forNumber(number);
1927  }
1928  };
1929 
1930  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1932  return getDescriptor().getValues().get(ordinal());
1933  }
1934  public final com.google.protobuf.Descriptors.EnumDescriptor
1936  return getDescriptor();
1937  }
1938  public static final com.google.protobuf.Descriptors.EnumDescriptor
1940  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1941  }
1942 
1943  private static final MaxSatAssumptionOrder[] VALUES = values();
1944 
1946  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1947  if (desc.getType() != getDescriptor()) {
1948  throw new java.lang.IllegalArgumentException(
1949  "EnumValueDescriptor is not for this type.");
1950  }
1951  return VALUES[desc.getIndex()];
1952  }
1953 
1954  private final int value;
1955 
1956  private MaxSatAssumptionOrder(int value) {
1957  this.value = value;
1958  }
1959 
1960  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1961  }
1962 
1971  implements com.google.protobuf.ProtocolMessageEnum {
2000  ;
2001 
2009  public static final int STRATIFICATION_NONE_VALUE = 0;
2018  public static final int STRATIFICATION_DESCENT_VALUE = 1;
2029  public static final int STRATIFICATION_ASCENT_VALUE = 2;
2030 
2031 
2032  public final int getNumber() {
2033  return value;
2034  }
2035 
2041  @java.lang.Deprecated
2042  public static MaxSatStratificationAlgorithm valueOf(int value) {
2043  return forNumber(value);
2044  }
2045 
2050  public static MaxSatStratificationAlgorithm forNumber(int value) {
2051  switch (value) {
2052  case 0: return STRATIFICATION_NONE;
2053  case 1: return STRATIFICATION_DESCENT;
2054  case 2: return STRATIFICATION_ASCENT;
2055  default: return null;
2056  }
2057  }
2058 
2059  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
2061  return internalValueMap;
2062  }
2063  private static final com.google.protobuf.Internal.EnumLiteMap<
2064  MaxSatStratificationAlgorithm> internalValueMap =
2065  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
2066  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
2068  }
2069  };
2070 
2071  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2073  return getDescriptor().getValues().get(ordinal());
2074  }
2075  public final com.google.protobuf.Descriptors.EnumDescriptor
2077  return getDescriptor();
2078  }
2079  public static final com.google.protobuf.Descriptors.EnumDescriptor
2081  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
2082  }
2083 
2084  private static final MaxSatStratificationAlgorithm[] VALUES = values();
2085 
2087  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2088  if (desc.getType() != getDescriptor()) {
2089  throw new java.lang.IllegalArgumentException(
2090  "EnumValueDescriptor is not for this type.");
2091  }
2092  return VALUES[desc.getIndex()];
2093  }
2094 
2095  private final int value;
2096 
2097  private MaxSatStratificationAlgorithm(int value) {
2098  this.value = value;
2099  }
2100 
2101  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
2102  }
2103 
2111  public enum SearchBranching
2112  implements com.google.protobuf.ProtocolMessageEnum {
2180  ;
2181 
2190  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2200  public static final int FIXED_SEARCH_VALUE = 1;
2208  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2218  public static final int LP_SEARCH_VALUE = 3;
2228  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2238  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2248  public static final int HINT_SEARCH_VALUE = 6;
2249 
2250 
2251  public final int getNumber() {
2252  return value;
2253  }
2254 
2260  @java.lang.Deprecated
2261  public static SearchBranching valueOf(int value) {
2262  return forNumber(value);
2263  }
2264 
2269  public static SearchBranching forNumber(int value) {
2270  switch (value) {
2271  case 0: return AUTOMATIC_SEARCH;
2272  case 1: return FIXED_SEARCH;
2273  case 2: return PORTFOLIO_SEARCH;
2274  case 3: return LP_SEARCH;
2275  case 4: return PSEUDO_COST_SEARCH;
2276  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2277  case 6: return HINT_SEARCH;
2278  default: return null;
2279  }
2280  }
2281 
2282  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2284  return internalValueMap;
2285  }
2286  private static final com.google.protobuf.Internal.EnumLiteMap<
2287  SearchBranching> internalValueMap =
2288  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2289  public SearchBranching findValueByNumber(int number) {
2290  return SearchBranching.forNumber(number);
2291  }
2292  };
2293 
2294  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2296  return getDescriptor().getValues().get(ordinal());
2297  }
2298  public final com.google.protobuf.Descriptors.EnumDescriptor
2300  return getDescriptor();
2301  }
2302  public static final com.google.protobuf.Descriptors.EnumDescriptor
2304  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2305  }
2306 
2307  private static final SearchBranching[] VALUES = values();
2308 
2309  public static SearchBranching valueOf(
2310  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2311  if (desc.getType() != getDescriptor()) {
2312  throw new java.lang.IllegalArgumentException(
2313  "EnumValueDescriptor is not for this type.");
2314  }
2315  return VALUES[desc.getIndex()];
2316  }
2317 
2318  private final int value;
2319 
2320  private SearchBranching(int value) {
2321  this.value = value;
2322  }
2323 
2324  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2325  }
2326 
2327  private int bitField0_;
2328  private int bitField1_;
2329  private int bitField2_;
2330  private int bitField3_;
2331  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2332  private int preferredVariableOrder_;
2337  public boolean hasPreferredVariableOrder() {
2338  return ((bitField0_ & 0x00000001) != 0);
2339  }
2345  @SuppressWarnings("deprecation")
2347  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2348  }
2349 
2350  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2351  private int initialPolarity_;
2356  public boolean hasInitialPolarity() {
2357  return ((bitField0_ & 0x00000002) != 0);
2358  }
2364  @SuppressWarnings("deprecation")
2366  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2367  }
2368 
2369  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2370  private boolean usePhaseSaving_;
2385  public boolean hasUsePhaseSaving() {
2386  return ((bitField0_ & 0x00000004) != 0);
2387  }
2402  public boolean getUsePhaseSaving() {
2403  return usePhaseSaving_;
2404  }
2405 
2406  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2407  private double randomPolarityRatio_;
2420  public boolean hasRandomPolarityRatio() {
2421  return ((bitField0_ & 0x00000008) != 0);
2422  }
2435  public double getRandomPolarityRatio() {
2436  return randomPolarityRatio_;
2437  }
2438 
2439  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2440  private double randomBranchesRatio_;
2451  public boolean hasRandomBranchesRatio() {
2452  return ((bitField0_ & 0x00000010) != 0);
2453  }
2464  public double getRandomBranchesRatio() {
2465  return randomBranchesRatio_;
2466  }
2467 
2468  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2469  private boolean useErwaHeuristic_;
2480  public boolean hasUseErwaHeuristic() {
2481  return ((bitField0_ & 0x00000020) != 0);
2482  }
2493  public boolean getUseErwaHeuristic() {
2494  return useErwaHeuristic_;
2495  }
2496 
2497  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2498  private double initialVariablesActivity_;
2512  public boolean hasInitialVariablesActivity() {
2513  return ((bitField0_ & 0x00000040) != 0);
2514  }
2529  return initialVariablesActivity_;
2530  }
2531 
2533  private boolean alsoBumpVariablesInConflictReasons_;
2546  return ((bitField0_ & 0x00000080) != 0);
2547  }
2560  return alsoBumpVariablesInConflictReasons_;
2561  }
2562 
2563  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2564  private int minimizationAlgorithm_;
2569  public boolean hasMinimizationAlgorithm() {
2570  return ((bitField0_ & 0x00000100) != 0);
2571  }
2577  @SuppressWarnings("deprecation")
2579  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2580  }
2581 
2582  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2583  private int binaryMinimizationAlgorithm_;
2589  return ((bitField0_ & 0x00000200) != 0);
2590  }
2596  @SuppressWarnings("deprecation")
2599  }
2600 
2602  private boolean subsumptionDuringConflictAnalysis_;
2615  return ((bitField0_ & 0x00000400) != 0);
2616  }
2629  return subsumptionDuringConflictAnalysis_;
2630  }
2631 
2632  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2633  private int clauseCleanupPeriod_;
2642  public boolean hasClauseCleanupPeriod() {
2643  return ((bitField0_ & 0x00000800) != 0);
2644  }
2653  public int getClauseCleanupPeriod() {
2654  return clauseCleanupPeriod_;
2655  }
2656 
2657  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2658  private int clauseCleanupTarget_;
2668  public boolean hasClauseCleanupTarget() {
2669  return ((bitField0_ & 0x00001000) != 0);
2670  }
2680  public int getClauseCleanupTarget() {
2681  return clauseCleanupTarget_;
2682  }
2683 
2684  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2685  private int clauseCleanupProtection_;
2690  public boolean hasClauseCleanupProtection() {
2691  return ((bitField0_ & 0x00002000) != 0);
2692  }
2698  @SuppressWarnings("deprecation")
2700  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2701  }
2702 
2703  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2704  private int clauseCleanupLbdBound_;
2714  public boolean hasClauseCleanupLbdBound() {
2715  return ((bitField0_ & 0x00004000) != 0);
2716  }
2727  return clauseCleanupLbdBound_;
2728  }
2729 
2730  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2731  private int clauseCleanupOrdering_;
2736  public boolean hasClauseCleanupOrdering() {
2737  return ((bitField0_ & 0x00008000) != 0);
2738  }
2744  @SuppressWarnings("deprecation")
2746  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2747  }
2748 
2749  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2750  private int pbCleanupIncrement_;
2759  public boolean hasPbCleanupIncrement() {
2760  return ((bitField0_ & 0x00010000) != 0);
2761  }
2770  public int getPbCleanupIncrement() {
2771  return pbCleanupIncrement_;
2772  }
2773 
2774  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2775  private double pbCleanupRatio_;
2780  public boolean hasPbCleanupRatio() {
2781  return ((bitField0_ & 0x00020000) != 0);
2782  }
2787  public double getPbCleanupRatio() {
2788  return pbCleanupRatio_;
2789  }
2790 
2792  private int minimizeWithPropagationRestartPeriod_;
2812  return ((bitField0_ & 0x00040000) != 0);
2813  }
2833  return minimizeWithPropagationRestartPeriod_;
2834  }
2835 
2837  private int minimizeWithPropagationNumDecisions_;
2843  return ((bitField0_ & 0x00080000) != 0);
2844  }
2850  return minimizeWithPropagationNumDecisions_;
2851  }
2852 
2853  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2854  private double variableActivityDecay_;
2869  public boolean hasVariableActivityDecay() {
2870  return ((bitField0_ & 0x00100000) != 0);
2871  }
2886  public double getVariableActivityDecay() {
2887  return variableActivityDecay_;
2888  }
2889 
2890  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2891  private double maxVariableActivityValue_;
2896  public boolean hasMaxVariableActivityValue() {
2897  return ((bitField0_ & 0x00200000) != 0);
2898  }
2904  return maxVariableActivityValue_;
2905  }
2906 
2907  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2908  private double glucoseMaxDecay_;
2920  public boolean hasGlucoseMaxDecay() {
2921  return ((bitField0_ & 0x00400000) != 0);
2922  }
2934  public double getGlucoseMaxDecay() {
2935  return glucoseMaxDecay_;
2936  }
2937 
2938  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2939  private double glucoseDecayIncrement_;
2944  public boolean hasGlucoseDecayIncrement() {
2945  return ((bitField0_ & 0x00800000) != 0);
2946  }
2951  public double getGlucoseDecayIncrement() {
2952  return glucoseDecayIncrement_;
2953  }
2954 
2955  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
2956  private int glucoseDecayIncrementPeriod_;
2962  return ((bitField0_ & 0x01000000) != 0);
2963  }
2969  return glucoseDecayIncrementPeriod_;
2970  }
2971 
2972  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2973  private double clauseActivityDecay_;
2982  public boolean hasClauseActivityDecay() {
2983  return ((bitField0_ & 0x02000000) != 0);
2984  }
2993  public double getClauseActivityDecay() {
2994  return clauseActivityDecay_;
2995  }
2996 
2997  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2998  private double maxClauseActivityValue_;
3003  public boolean hasMaxClauseActivityValue() {
3004  return ((bitField0_ & 0x04000000) != 0);
3005  }
3010  public double getMaxClauseActivityValue() {
3011  return maxClauseActivityValue_;
3012  }
3013 
3014  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
3015  private java.util.List<java.lang.Integer> restartAlgorithms_;
3016  private static final com.google.protobuf.Internal.ListAdapter.Converter<
3017  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
3018  new com.google.protobuf.Internal.ListAdapter.Converter<
3019  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
3020  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
3021  @SuppressWarnings("deprecation")
3023  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
3024  }
3025  };
3042  return new com.google.protobuf.Internal.ListAdapter<
3043  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
3044  }
3061  return restartAlgorithms_.size();
3062  }
3080  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
3081  }
3082 
3083  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
3084  private volatile java.lang.Object defaultRestartAlgorithms_;
3089  public boolean hasDefaultRestartAlgorithms() {
3090  return ((bitField0_ & 0x08000000) != 0);
3091  }
3096  public java.lang.String getDefaultRestartAlgorithms() {
3097  java.lang.Object ref = defaultRestartAlgorithms_;
3098  if (ref instanceof java.lang.String) {
3099  return (java.lang.String) ref;
3100  } else {
3101  com.google.protobuf.ByteString bs =
3102  (com.google.protobuf.ByteString) ref;
3103  java.lang.String s = bs.toStringUtf8();
3104  if (bs.isValidUtf8()) {
3105  defaultRestartAlgorithms_ = s;
3106  }
3107  return s;
3108  }
3109  }
3114  public com.google.protobuf.ByteString
3116  java.lang.Object ref = defaultRestartAlgorithms_;
3117  if (ref instanceof java.lang.String) {
3118  com.google.protobuf.ByteString b =
3119  com.google.protobuf.ByteString.copyFromUtf8(
3120  (java.lang.String) ref);
3121  defaultRestartAlgorithms_ = b;
3122  return b;
3123  } else {
3124  return (com.google.protobuf.ByteString) ref;
3125  }
3126  }
3127 
3128  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
3129  private int restartPeriod_;
3139  public boolean hasRestartPeriod() {
3140  return ((bitField0_ & 0x10000000) != 0);
3141  }
3151  public int getRestartPeriod() {
3152  return restartPeriod_;
3153  }
3154 
3155  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
3156  private int restartRunningWindowSize_;
3165  public boolean hasRestartRunningWindowSize() {
3166  return ((bitField0_ & 0x20000000) != 0);
3167  }
3177  return restartRunningWindowSize_;
3178  }
3179 
3180  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
3181  private double restartDlAverageRatio_;
3191  public boolean hasRestartDlAverageRatio() {
3192  return ((bitField0_ & 0x40000000) != 0);
3193  }
3203  public double getRestartDlAverageRatio() {
3204  return restartDlAverageRatio_;
3205  }
3206 
3207  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
3208  private double restartLbdAverageRatio_;
3213  public boolean hasRestartLbdAverageRatio() {
3214  return ((bitField0_ & 0x80000000) != 0);
3215  }
3220  public double getRestartLbdAverageRatio() {
3221  return restartLbdAverageRatio_;
3222  }
3223 
3224  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3225  private boolean useBlockingRestart_;
3236  public boolean hasUseBlockingRestart() {
3237  return ((bitField1_ & 0x00000001) != 0);
3238  }
3249  public boolean getUseBlockingRestart() {
3250  return useBlockingRestart_;
3251  }
3252 
3253  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3254  private int blockingRestartWindowSize_;
3259  public boolean hasBlockingRestartWindowSize() {
3260  return ((bitField1_ & 0x00000002) != 0);
3261  }
3267  return blockingRestartWindowSize_;
3268  }
3269 
3270  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3271  private double blockingRestartMultiplier_;
3276  public boolean hasBlockingRestartMultiplier() {
3277  return ((bitField1_ & 0x00000004) != 0);
3278  }
3284  return blockingRestartMultiplier_;
3285  }
3286 
3288  private int numConflictsBeforeStrategyChanges_;
3300  return ((bitField1_ & 0x00000008) != 0);
3301  }
3313  return numConflictsBeforeStrategyChanges_;
3314  }
3315 
3316  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3317  private double strategyChangeIncreaseRatio_;
3328  return ((bitField1_ & 0x00000010) != 0);
3329  }
3340  return strategyChangeIncreaseRatio_;
3341  }
3342 
3343  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3344  private double maxTimeInSeconds_;
3355  public boolean hasMaxTimeInSeconds() {
3356  return ((bitField1_ & 0x00000020) != 0);
3357  }
3368  public double getMaxTimeInSeconds() {
3369  return maxTimeInSeconds_;
3370  }
3371 
3372  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3373  private double maxDeterministicTime_;
3386  public boolean hasMaxDeterministicTime() {
3387  return ((bitField1_ & 0x00000040) != 0);
3388  }
3401  public double getMaxDeterministicTime() {
3402  return maxDeterministicTime_;
3403  }
3404 
3405  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3406  private long maxNumberOfConflicts_;
3420  public boolean hasMaxNumberOfConflicts() {
3421  return ((bitField1_ & 0x00000080) != 0);
3422  }
3436  public long getMaxNumberOfConflicts() {
3437  return maxNumberOfConflicts_;
3438  }
3439 
3440  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3441  private long maxMemoryInMb_;
3453  public boolean hasMaxMemoryInMb() {
3454  return ((bitField1_ & 0x00000100) != 0);
3455  }
3467  public long getMaxMemoryInMb() {
3468  return maxMemoryInMb_;
3469  }
3470 
3471  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3472  private boolean treatBinaryClausesSeparately_;
3484  return ((bitField1_ & 0x00000200) != 0);
3485  }
3497  return treatBinaryClausesSeparately_;
3498  }
3499 
3500  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3501  private int randomSeed_;
3515  public boolean hasRandomSeed() {
3516  return ((bitField1_ & 0x00000400) != 0);
3517  }
3531  public int getRandomSeed() {
3532  return randomSeed_;
3533  }
3534 
3535  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3536  private boolean logSearchProgress_;
3545  public boolean hasLogSearchProgress() {
3546  return ((bitField1_ & 0x00000800) != 0);
3547  }
3556  public boolean getLogSearchProgress() {
3557  return logSearchProgress_;
3558  }
3559 
3560  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3561  private boolean usePbResolution_;
3573  public boolean hasUsePbResolution() {
3574  return ((bitField1_ & 0x00001000) != 0);
3575  }
3587  public boolean getUsePbResolution() {
3588  return usePbResolution_;
3589  }
3590 
3592  private boolean minimizeReductionDuringPbResolution_;
3605  return ((bitField1_ & 0x00002000) != 0);
3606  }
3619  return minimizeReductionDuringPbResolution_;
3620  }
3621 
3622  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
3623  private boolean countAssumptionLevelsInLbd_;
3640  return ((bitField1_ & 0x00004000) != 0);
3641  }
3658  return countAssumptionLevelsInLbd_;
3659  }
3660 
3661  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3662  private int presolveBveThreshold_;
3673  public boolean hasPresolveBveThreshold() {
3674  return ((bitField1_ & 0x00008000) != 0);
3675  }
3687  return presolveBveThreshold_;
3688  }
3689 
3690  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3691  private int presolveBveClauseWeight_;
3701  public boolean hasPresolveBveClauseWeight() {
3702  return ((bitField1_ & 0x00010000) != 0);
3703  }
3714  return presolveBveClauseWeight_;
3715  }
3716 
3718  private double presolveProbingDeterministicTimeLimit_;
3729  return ((bitField1_ & 0x00020000) != 0);
3730  }
3741  return presolveProbingDeterministicTimeLimit_;
3742  }
3743 
3744  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3745  private boolean presolveBlockedClause_;
3755  public boolean hasPresolveBlockedClause() {
3756  return ((bitField1_ & 0x00040000) != 0);
3757  }
3767  public boolean getPresolveBlockedClause() {
3768  return presolveBlockedClause_;
3769  }
3770 
3771  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
3772  private boolean presolveUseBva_;
3781  public boolean hasPresolveUseBva() {
3782  return ((bitField1_ & 0x00080000) != 0);
3783  }
3792  public boolean getPresolveUseBva() {
3793  return presolveUseBva_;
3794  }
3795 
3796  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
3797  private int presolveBvaThreshold_;
3809  public boolean hasPresolveBvaThreshold() {
3810  return ((bitField1_ & 0x00100000) != 0);
3811  }
3824  return presolveBvaThreshold_;
3825  }
3826 
3827  public static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER = 138;
3828  private int maxPresolveIterations_;
3839  public boolean hasMaxPresolveIterations() {
3840  return ((bitField1_ & 0x00200000) != 0);
3841  }
3853  return maxPresolveIterations_;
3854  }
3855 
3856  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
3857  private boolean cpModelPresolve_;
3866  public boolean hasCpModelPresolve() {
3867  return ((bitField1_ & 0x00400000) != 0);
3868  }
3877  public boolean getCpModelPresolve() {
3878  return cpModelPresolve_;
3879  }
3880 
3882  private int cpModelMaxNumPresolveOperations_;
3893  return ((bitField1_ & 0x00800000) != 0);
3894  }
3905  return cpModelMaxNumPresolveOperations_;
3906  }
3907 
3908  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
3909  private int cpModelProbingLevel_;
3918  public boolean hasCpModelProbingLevel() {
3919  return ((bitField1_ & 0x01000000) != 0);
3920  }
3929  public int getCpModelProbingLevel() {
3930  return cpModelProbingLevel_;
3931  }
3932 
3933  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
3934  private boolean cpModelUseSatPresolve_;
3943  public boolean hasCpModelUseSatPresolve() {
3944  return ((bitField1_ & 0x02000000) != 0);
3945  }
3954  public boolean getCpModelUseSatPresolve() {
3955  return cpModelUseSatPresolve_;
3956  }
3957 
3958  public static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER = 140;
3959  private boolean expandElementConstraints_;
3969  public boolean hasExpandElementConstraints() {
3970  return ((bitField1_ & 0x04000000) != 0);
3971  }
3981  public boolean getExpandElementConstraints() {
3982  return expandElementConstraints_;
3983  }
3984 
3985  public static final int EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER = 143;
3986  private boolean expandAutomatonConstraints_;
3996  return ((bitField1_ & 0x08000000) != 0);
3997  }
4007  return expandAutomatonConstraints_;
4008  }
4009 
4010  public static final int MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER = 145;
4011  private double mergeNoOverlapWorkLimit_;
4024  public boolean hasMergeNoOverlapWorkLimit() {
4025  return ((bitField1_ & 0x10000000) != 0);
4026  }
4039  public double getMergeNoOverlapWorkLimit() {
4040  return mergeNoOverlapWorkLimit_;
4041  }
4042 
4043  public static final int MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER = 146;
4044  private double mergeAtMostOneWorkLimit_;
4049  public boolean hasMergeAtMostOneWorkLimit() {
4050  return ((bitField1_ & 0x20000000) != 0);
4051  }
4056  public double getMergeAtMostOneWorkLimit() {
4057  return mergeAtMostOneWorkLimit_;
4058  }
4059 
4060  public static final int PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER = 147;
4061  private int presolveSubstitutionLevel_;
4073  public boolean hasPresolveSubstitutionLevel() {
4074  return ((bitField1_ & 0x40000000) != 0);
4075  }
4088  return presolveSubstitutionLevel_;
4089  }
4090 
4091  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
4092  private boolean useOptimizationHints_;
4104  public boolean hasUseOptimizationHints() {
4105  return ((bitField1_ & 0x80000000) != 0);
4106  }
4118  public boolean getUseOptimizationHints() {
4119  return useOptimizationHints_;
4120  }
4121 
4122  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
4123  private boolean minimizeCore_;
4132  public boolean hasMinimizeCore() {
4133  return ((bitField2_ & 0x00000001) != 0);
4134  }
4143  public boolean getMinimizeCore() {
4144  return minimizeCore_;
4145  }
4146 
4147  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
4148  private boolean findMultipleCores_;
4158  public boolean hasFindMultipleCores() {
4159  return ((bitField2_ & 0x00000002) != 0);
4160  }
4170  public boolean getFindMultipleCores() {
4171  return findMultipleCores_;
4172  }
4173 
4174  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
4175  private boolean coverOptimization_;
4185  public boolean hasCoverOptimization() {
4186  return ((bitField2_ & 0x00000004) != 0);
4187  }
4197  public boolean getCoverOptimization() {
4198  return coverOptimization_;
4199  }
4200 
4201  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
4202  private int maxSatAssumptionOrder_;
4207  public boolean hasMaxSatAssumptionOrder() {
4208  return ((bitField2_ & 0x00000008) != 0);
4209  }
4215  @SuppressWarnings("deprecation")
4218  }
4219 
4221  private boolean maxSatReverseAssumptionOrder_;
4232  return ((bitField2_ & 0x00000010) != 0);
4233  }
4244  return maxSatReverseAssumptionOrder_;
4245  }
4246 
4247  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
4248  private int maxSatStratification_;
4253  public boolean hasMaxSatStratification() {
4254  return ((bitField2_ & 0x00000020) != 0);
4255  }
4261  @SuppressWarnings("deprecation")
4264  }
4265 
4267  private boolean usePrecedencesInDisjunctiveConstraint_;
4284  return ((bitField2_ & 0x00000040) != 0);
4285  }
4302  return usePrecedencesInDisjunctiveConstraint_;
4303  }
4304 
4306  private boolean useOverloadCheckerInCumulativeConstraint_;
4321  return ((bitField2_ & 0x00000080) != 0);
4322  }
4337  return useOverloadCheckerInCumulativeConstraint_;
4338  }
4339 
4341  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
4356  return ((bitField2_ & 0x00000100) != 0);
4357  }
4372  return useTimetableEdgeFindingInCumulativeConstraint_;
4373  }
4374 
4376  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
4393  return ((bitField2_ & 0x00000200) != 0);
4394  }
4411  return useDisjunctiveConstraintInCumulativeConstraint_;
4412  }
4413 
4414  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
4415  private int linearizationLevel_;
4427  public boolean hasLinearizationLevel() {
4428  return ((bitField2_ & 0x00000400) != 0);
4429  }
4441  public int getLinearizationLevel() {
4442  return linearizationLevel_;
4443  }
4444 
4445  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
4446  private int booleanEncodingLevel_;
4456  public boolean hasBooleanEncodingLevel() {
4457  return ((bitField2_ & 0x00000800) != 0);
4458  }
4469  return booleanEncodingLevel_;
4470  }
4471 
4472  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
4473  private int maxNumCuts_;
4485  public boolean hasMaxNumCuts() {
4486  return ((bitField2_ & 0x00001000) != 0);
4487  }
4499  public int getMaxNumCuts() {
4500  return maxNumCuts_;
4501  }
4502 
4503  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
4504  private boolean onlyAddCutsAtLevelZero_;
4514  public boolean hasOnlyAddCutsAtLevelZero() {
4515  return ((bitField2_ & 0x00002000) != 0);
4516  }
4526  public boolean getOnlyAddCutsAtLevelZero() {
4527  return onlyAddCutsAtLevelZero_;
4528  }
4529 
4530  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
4531  private boolean addKnapsackCuts_;
4542  public boolean hasAddKnapsackCuts() {
4543  return ((bitField2_ & 0x00004000) != 0);
4544  }
4555  public boolean getAddKnapsackCuts() {
4556  return addKnapsackCuts_;
4557  }
4558 
4559  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
4560  private boolean addCgCuts_;
4570  public boolean hasAddCgCuts() {
4571  return ((bitField2_ & 0x00008000) != 0);
4572  }
4582  public boolean getAddCgCuts() {
4583  return addCgCuts_;
4584  }
4585 
4586  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
4587  private boolean addMirCuts_;
4597  public boolean hasAddMirCuts() {
4598  return ((bitField2_ & 0x00010000) != 0);
4599  }
4609  public boolean getAddMirCuts() {
4610  return addMirCuts_;
4611  }
4612 
4613  public static final int MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER = 148;
4614  private int maxAllDiffCutSize_;
4625  public boolean hasMaxAllDiffCutSize() {
4626  return ((bitField2_ & 0x00020000) != 0);
4627  }
4638  public int getMaxAllDiffCutSize() {
4639  return maxAllDiffCutSize_;
4640  }
4641 
4642  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4643  private int maxIntegerRoundingScaling_;
4658  public boolean hasMaxIntegerRoundingScaling() {
4659  return ((bitField2_ & 0x00040000) != 0);
4660  }
4676  return maxIntegerRoundingScaling_;
4677  }
4678 
4679  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4680  private boolean addLpConstraintsLazily_;
4692  public boolean hasAddLpConstraintsLazily() {
4693  return ((bitField2_ & 0x00080000) != 0);
4694  }
4706  public boolean getAddLpConstraintsLazily() {
4707  return addLpConstraintsLazily_;
4708  }
4709 
4711  private double minOrthogonalityForLpConstraints_;
4725  return ((bitField2_ & 0x00100000) != 0);
4726  }
4740  return minOrthogonalityForLpConstraints_;
4741  }
4742 
4743  public static final int MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER = 121;
4744  private int maxConsecutiveInactiveCount_;
4756  return ((bitField2_ & 0x00200000) != 0);
4757  }
4769  return maxConsecutiveInactiveCount_;
4770  }
4771 
4772  public static final int NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER = 122;
4773  private int newConstraintsBatchSize_;
4783  public boolean hasNewConstraintsBatchSize() {
4784  return ((bitField2_ & 0x00400000) != 0);
4785  }
4796  return newConstraintsBatchSize_;
4797  }
4798 
4799  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4800  private int searchBranching_;
4805  public boolean hasSearchBranching() {
4806  return ((bitField2_ & 0x00800000) != 0);
4807  }
4813  @SuppressWarnings("deprecation")
4815  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4816  }
4817 
4818  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4819  private boolean exploitIntegerLpSolution_;
4831  public boolean hasExploitIntegerLpSolution() {
4832  return ((bitField2_ & 0x01000000) != 0);
4833  }
4845  public boolean getExploitIntegerLpSolution() {
4846  return exploitIntegerLpSolution_;
4847  }
4848 
4849  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4850  private boolean exploitAllLpSolution_;
4861  public boolean hasExploitAllLpSolution() {
4862  return ((bitField2_ & 0x02000000) != 0);
4863  }
4874  public boolean getExploitAllLpSolution() {
4875  return exploitAllLpSolution_;
4876  }
4877 
4878  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4879  private boolean exploitBestSolution_;
4888  public boolean hasExploitBestSolution() {
4889  return ((bitField2_ & 0x04000000) != 0);
4890  }
4899  public boolean getExploitBestSolution() {
4900  return exploitBestSolution_;
4901  }
4902 
4903  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4904  private boolean exploitObjective_;
4914  public boolean hasExploitObjective() {
4915  return ((bitField2_ & 0x08000000) != 0);
4916  }
4926  public boolean getExploitObjective() {
4927  return exploitObjective_;
4928  }
4929 
4930  public static final int PROBING_PERIOD_AT_ROOT_FIELD_NUMBER = 142;
4931  private long probingPeriodAtRoot_;
4942  public boolean hasProbingPeriodAtRoot() {
4943  return ((bitField2_ & 0x10000000) != 0);
4944  }
4955  public long getProbingPeriodAtRoot() {
4956  return probingPeriodAtRoot_;
4957  }
4958 
4959  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4960  private long pseudoCostReliabilityThreshold_;
4971  return ((bitField2_ & 0x20000000) != 0);
4972  }
4983  return pseudoCostReliabilityThreshold_;
4984  }
4985 
4986  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4987  private boolean optimizeWithCore_;
4999  public boolean hasOptimizeWithCore() {
5000  return ((bitField2_ & 0x40000000) != 0);
5001  }
5013  public boolean getOptimizeWithCore() {
5014  return optimizeWithCore_;
5015  }
5016 
5017  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
5018  private int binarySearchNumConflicts_;
5030  public boolean hasBinarySearchNumConflicts() {
5031  return ((bitField2_ & 0x80000000) != 0);
5032  }
5045  return binarySearchNumConflicts_;
5046  }
5047 
5048  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
5049  private boolean optimizeWithMaxHs_;
5063  public boolean hasOptimizeWithMaxHs() {
5064  return ((bitField3_ & 0x00000001) != 0);
5065  }
5079  public boolean getOptimizeWithMaxHs() {
5080  return optimizeWithMaxHs_;
5081  }
5082 
5083  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
5084  private boolean enumerateAllSolutions_;
5098  public boolean hasEnumerateAllSolutions() {
5099  return ((bitField3_ & 0x00000002) != 0);
5100  }
5114  public boolean getEnumerateAllSolutions() {
5115  return enumerateAllSolutions_;
5116  }
5117 
5119  private boolean fillTightenedDomainsInResponse_;
5133  return ((bitField3_ & 0x00000004) != 0);
5134  }
5148  return fillTightenedDomainsInResponse_;
5149  }
5150 
5151  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
5152  private boolean instantiateAllVariables_;
5162  public boolean hasInstantiateAllVariables() {
5163  return ((bitField3_ & 0x00000008) != 0);
5164  }
5174  public boolean getInstantiateAllVariables() {
5175  return instantiateAllVariables_;
5176  }
5177 
5179  private boolean autoDetectGreaterThanAtLeastOneOf_;
5192  return ((bitField3_ & 0x00000010) != 0);
5193  }
5206  return autoDetectGreaterThanAtLeastOneOf_;
5207  }
5208 
5209  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
5210  private boolean stopAfterFirstSolution_;
5219  public boolean hasStopAfterFirstSolution() {
5220  return ((bitField3_ & 0x00000020) != 0);
5221  }
5230  public boolean getStopAfterFirstSolution() {
5231  return stopAfterFirstSolution_;
5232  }
5233 
5234  public static final int STOP_AFTER_PRESOLVE_FIELD_NUMBER = 149;
5235  private boolean stopAfterPresolve_;
5245  public boolean hasStopAfterPresolve() {
5246  return ((bitField3_ & 0x00000040) != 0);
5247  }
5257  public boolean getStopAfterPresolve() {
5258  return stopAfterPresolve_;
5259  }
5260 
5261  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
5262  private int numSearchWorkers_;
5272  public boolean hasNumSearchWorkers() {
5273  return ((bitField3_ & 0x00000080) != 0);
5274  }
5284  public int getNumSearchWorkers() {
5285  return numSearchWorkers_;
5286  }
5287 
5288  public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
5289  private boolean interleaveSearch_;
5301  public boolean hasInterleaveSearch() {
5302  return ((bitField3_ & 0x00000100) != 0);
5303  }
5315  public boolean getInterleaveSearch() {
5316  return interleaveSearch_;
5317  }
5318 
5320  private boolean reduceMemoryUsageInInterleaveMode_;
5330  return ((bitField3_ & 0x00000200) != 0);
5331  }
5341  return reduceMemoryUsageInInterleaveMode_;
5342  }
5343 
5344  public static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER = 134;
5345  private boolean deterministicParallelSearch_;
5357  return ((bitField3_ & 0x00000400) != 0);
5358  }
5370  return deterministicParallelSearch_;
5371  }
5372 
5373  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
5374  private boolean shareObjectiveBounds_;
5383  public boolean hasShareObjectiveBounds() {
5384  return ((bitField3_ & 0x00000800) != 0);
5385  }
5394  public boolean getShareObjectiveBounds() {
5395  return shareObjectiveBounds_;
5396  }
5397 
5398  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
5399  private boolean shareLevelZeroBounds_;
5408  public boolean hasShareLevelZeroBounds() {
5409  return ((bitField3_ & 0x00001000) != 0);
5410  }
5419  public boolean getShareLevelZeroBounds() {
5420  return shareLevelZeroBounds_;
5421  }
5422 
5423  public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
5424  private boolean useLnsOnly_;
5433  public boolean hasUseLnsOnly() {
5434  return ((bitField3_ & 0x00002000) != 0);
5435  }
5444  public boolean getUseLnsOnly() {
5445  return useLnsOnly_;
5446  }
5447 
5448  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
5449  private boolean lnsFocusOnDecisionVariables_;
5455  return ((bitField3_ & 0x00004000) != 0);
5456  }
5462  return lnsFocusOnDecisionVariables_;
5463  }
5464 
5465  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
5466  private boolean useRinsLns_;
5475  public boolean hasUseRinsLns() {
5476  return ((bitField3_ & 0x00008000) != 0);
5477  }
5486  public boolean getUseRinsLns() {
5487  return useRinsLns_;
5488  }
5489 
5490  public static final int USE_RELAXATION_LNS_FIELD_NUMBER = 150;
5491  private boolean useRelaxationLns_;
5501  public boolean hasUseRelaxationLns() {
5502  return ((bitField3_ & 0x00010000) != 0);
5503  }
5513  public boolean getUseRelaxationLns() {
5514  return useRelaxationLns_;
5515  }
5516 
5517  public static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER = 137;
5518  private boolean diversifyLnsParams_;
5527  public boolean hasDiversifyLnsParams() {
5528  return ((bitField3_ & 0x00020000) != 0);
5529  }
5538  public boolean getDiversifyLnsParams() {
5539  return diversifyLnsParams_;
5540  }
5541 
5542  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
5543  private boolean randomizeSearch_;
5552  public boolean hasRandomizeSearch() {
5553  return ((bitField3_ & 0x00040000) != 0);
5554  }
5563  public boolean getRandomizeSearch() {
5564  return randomizeSearch_;
5565  }
5566 
5567  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
5568  private long searchRandomizationTolerance_;
5584  return ((bitField3_ & 0x00080000) != 0);
5585  }
5601  return searchRandomizationTolerance_;
5602  }
5603 
5604  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
5605  private boolean useOptionalVariables_;
5616  public boolean hasUseOptionalVariables() {
5617  return ((bitField3_ & 0x00100000) != 0);
5618  }
5629  public boolean getUseOptionalVariables() {
5630  return useOptionalVariables_;
5631  }
5632 
5633  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
5634  private boolean useExactLpReason_;
5646  public boolean hasUseExactLpReason() {
5647  return ((bitField3_ & 0x00200000) != 0);
5648  }
5660  public boolean getUseExactLpReason() {
5661  return useExactLpReason_;
5662  }
5663 
5664  public static final int USE_BRANCHING_IN_LP_FIELD_NUMBER = 139;
5665  private boolean useBranchingInLp_;
5676  public boolean hasUseBranchingInLp() {
5677  return ((bitField3_ & 0x00400000) != 0);
5678  }
5689  public boolean getUseBranchingInLp() {
5690  return useBranchingInLp_;
5691  }
5692 
5693  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
5694  private boolean useCombinedNoOverlap_;
5705  public boolean hasUseCombinedNoOverlap() {
5706  return ((bitField3_ & 0x00800000) != 0);
5707  }
5718  public boolean getUseCombinedNoOverlap() {
5719  return useCombinedNoOverlap_;
5720  }
5721 
5722  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
5723  private boolean catchSigintSignal_;
5734  public boolean hasCatchSigintSignal() {
5735  return ((bitField3_ & 0x01000000) != 0);
5736  }
5747  public boolean getCatchSigintSignal() {
5748  return catchSigintSignal_;
5749  }
5750 
5751  public static final int USE_IMPLIED_BOUNDS_FIELD_NUMBER = 144;
5752  private boolean useImpliedBounds_;
5763  public boolean hasUseImpliedBounds() {
5764  return ((bitField3_ & 0x02000000) != 0);
5765  }
5776  public boolean getUseImpliedBounds() {
5777  return useImpliedBounds_;
5778  }
5779 
5780  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
5781  private double mipMaxBound_;
5792  public boolean hasMipMaxBound() {
5793  return ((bitField3_ & 0x04000000) != 0);
5794  }
5805  public double getMipMaxBound() {
5806  return mipMaxBound_;
5807  }
5808 
5809  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
5810  private double mipVarScaling_;
5821  public boolean hasMipVarScaling() {
5822  return ((bitField3_ & 0x08000000) != 0);
5823  }
5834  public double getMipVarScaling() {
5835  return mipVarScaling_;
5836  }
5837 
5838  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
5839  private double mipWantedPrecision_;
5856  public boolean hasMipWantedPrecision() {
5857  return ((bitField3_ & 0x10000000) != 0);
5858  }
5875  public double getMipWantedPrecision() {
5876  return mipWantedPrecision_;
5877  }
5878 
5879  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5880  private int mipMaxActivityExponent_;
5895  public boolean hasMipMaxActivityExponent() {
5896  return ((bitField3_ & 0x20000000) != 0);
5897  }
5913  return mipMaxActivityExponent_;
5914  }
5915 
5916  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5917  private double mipCheckPrecision_;
5929  public boolean hasMipCheckPrecision() {
5930  return ((bitField3_ & 0x40000000) != 0);
5931  }
5943  public double getMipCheckPrecision() {
5944  return mipCheckPrecision_;
5945  }
5946 
5947  private byte memoizedIsInitialized = -1;
5948  @java.lang.Override
5949  public final boolean isInitialized() {
5950  byte isInitialized = memoizedIsInitialized;
5951  if (isInitialized == 1) return true;
5952  if (isInitialized == 0) return false;
5953 
5954  memoizedIsInitialized = 1;
5955  return true;
5956  }
5957 
5958  @java.lang.Override
5959  public void writeTo(com.google.protobuf.CodedOutputStream output)
5960  throws java.io.IOException {
5961  if (((bitField0_ & 0x00000001) != 0)) {
5962  output.writeEnum(1, preferredVariableOrder_);
5963  }
5964  if (((bitField0_ & 0x00000002) != 0)) {
5965  output.writeEnum(2, initialPolarity_);
5966  }
5967  if (((bitField0_ & 0x00000100) != 0)) {
5968  output.writeEnum(4, minimizationAlgorithm_);
5969  }
5970  if (((bitField0_ & 0x00000800) != 0)) {
5971  output.writeInt32(11, clauseCleanupPeriod_);
5972  }
5973  if (((bitField0_ & 0x00001000) != 0)) {
5974  output.writeInt32(13, clauseCleanupTarget_);
5975  }
5976  if (((bitField0_ & 0x00100000) != 0)) {
5977  output.writeDouble(15, variableActivityDecay_);
5978  }
5979  if (((bitField0_ & 0x00200000) != 0)) {
5980  output.writeDouble(16, maxVariableActivityValue_);
5981  }
5982  if (((bitField0_ & 0x02000000) != 0)) {
5983  output.writeDouble(17, clauseActivityDecay_);
5984  }
5985  if (((bitField0_ & 0x04000000) != 0)) {
5986  output.writeDouble(18, maxClauseActivityValue_);
5987  }
5988  if (((bitField0_ & 0x00400000) != 0)) {
5989  output.writeDouble(22, glucoseMaxDecay_);
5990  }
5991  if (((bitField0_ & 0x00800000) != 0)) {
5992  output.writeDouble(23, glucoseDecayIncrement_);
5993  }
5994  if (((bitField0_ & 0x01000000) != 0)) {
5995  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5996  }
5997  if (((bitField0_ & 0x10000000) != 0)) {
5998  output.writeInt32(30, restartPeriod_);
5999  }
6000  if (((bitField1_ & 0x00000400) != 0)) {
6001  output.writeInt32(31, randomSeed_);
6002  }
6003  if (((bitField0_ & 0x00000010) != 0)) {
6004  output.writeDouble(32, randomBranchesRatio_);
6005  }
6006  if (((bitField1_ & 0x00000200) != 0)) {
6007  output.writeBool(33, treatBinaryClausesSeparately_);
6008  }
6009  if (((bitField0_ & 0x00000200) != 0)) {
6010  output.writeEnum(34, binaryMinimizationAlgorithm_);
6011  }
6012  if (((bitField1_ & 0x80000000) != 0)) {
6013  output.writeBool(35, useOptimizationHints_);
6014  }
6015  if (((bitField1_ & 0x00000020) != 0)) {
6016  output.writeDouble(36, maxTimeInSeconds_);
6017  }
6018  if (((bitField1_ & 0x00000080) != 0)) {
6019  output.writeInt64(37, maxNumberOfConflicts_);
6020  }
6021  if (((bitField1_ & 0x00000100) != 0)) {
6022  output.writeInt64(40, maxMemoryInMb_);
6023  }
6024  if (((bitField1_ & 0x00000800) != 0)) {
6025  output.writeBool(41, logSearchProgress_);
6026  }
6027  if (((bitField1_ & 0x00001000) != 0)) {
6028  output.writeBool(43, usePbResolution_);
6029  }
6030  if (((bitField0_ & 0x00000004) != 0)) {
6031  output.writeBool(44, usePhaseSaving_);
6032  }
6033  if (((bitField0_ & 0x00000008) != 0)) {
6034  output.writeDouble(45, randomPolarityRatio_);
6035  }
6036  if (((bitField0_ & 0x00010000) != 0)) {
6037  output.writeInt32(46, pbCleanupIncrement_);
6038  }
6039  if (((bitField0_ & 0x00020000) != 0)) {
6040  output.writeDouble(47, pbCleanupRatio_);
6041  }
6042  if (((bitField1_ & 0x00002000) != 0)) {
6043  output.writeBool(48, minimizeReductionDuringPbResolution_);
6044  }
6045  if (((bitField1_ & 0x00004000) != 0)) {
6046  output.writeBool(49, countAssumptionLevelsInLbd_);
6047  }
6048  if (((bitField2_ & 0x00000001) != 0)) {
6049  output.writeBool(50, minimizeCore_);
6050  }
6051  if (((bitField2_ & 0x00000008) != 0)) {
6052  output.writeEnum(51, maxSatAssumptionOrder_);
6053  }
6054  if (((bitField2_ & 0x00000010) != 0)) {
6055  output.writeBool(52, maxSatReverseAssumptionOrder_);
6056  }
6057  if (((bitField2_ & 0x00000020) != 0)) {
6058  output.writeEnum(53, maxSatStratification_);
6059  }
6060  if (((bitField1_ & 0x00008000) != 0)) {
6061  output.writeInt32(54, presolveBveThreshold_);
6062  }
6063  if (((bitField1_ & 0x00010000) != 0)) {
6064  output.writeInt32(55, presolveBveClauseWeight_);
6065  }
6066  if (((bitField0_ & 0x00000400) != 0)) {
6067  output.writeBool(56, subsumptionDuringConflictAnalysis_);
6068  }
6069  if (((bitField1_ & 0x00020000) != 0)) {
6070  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
6071  }
6072  if (((bitField0_ & 0x00002000) != 0)) {
6073  output.writeEnum(58, clauseCleanupProtection_);
6074  }
6075  if (((bitField0_ & 0x00004000) != 0)) {
6076  output.writeInt32(59, clauseCleanupLbdBound_);
6077  }
6078  if (((bitField0_ & 0x00008000) != 0)) {
6079  output.writeEnum(60, clauseCleanupOrdering_);
6080  }
6081  for (int i = 0; i < restartAlgorithms_.size(); i++) {
6082  output.writeEnum(61, restartAlgorithms_.get(i));
6083  }
6084  if (((bitField0_ & 0x20000000) != 0)) {
6085  output.writeInt32(62, restartRunningWindowSize_);
6086  }
6087  if (((bitField0_ & 0x40000000) != 0)) {
6088  output.writeDouble(63, restartDlAverageRatio_);
6089  }
6090  if (((bitField1_ & 0x00000001) != 0)) {
6091  output.writeBool(64, useBlockingRestart_);
6092  }
6093  if (((bitField1_ & 0x00000002) != 0)) {
6094  output.writeInt32(65, blockingRestartWindowSize_);
6095  }
6096  if (((bitField1_ & 0x00000004) != 0)) {
6097  output.writeDouble(66, blockingRestartMultiplier_);
6098  }
6099  if (((bitField1_ & 0x00000040) != 0)) {
6100  output.writeDouble(67, maxDeterministicTime_);
6101  }
6102  if (((bitField1_ & 0x00000008) != 0)) {
6103  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
6104  }
6105  if (((bitField1_ & 0x00000010) != 0)) {
6106  output.writeDouble(69, strategyChangeIncreaseRatio_);
6107  }
6108  if (((bitField0_ & 0x08000000) != 0)) {
6109  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
6110  }
6111  if (((bitField0_ & 0x80000000) != 0)) {
6112  output.writeDouble(71, restartLbdAverageRatio_);
6113  }
6114  if (((bitField1_ & 0x00080000) != 0)) {
6115  output.writeBool(72, presolveUseBva_);
6116  }
6117  if (((bitField1_ & 0x00100000) != 0)) {
6118  output.writeInt32(73, presolveBvaThreshold_);
6119  }
6120  if (((bitField2_ & 0x00000040) != 0)) {
6121  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
6122  }
6123  if (((bitField0_ & 0x00000020) != 0)) {
6124  output.writeBool(75, useErwaHeuristic_);
6125  }
6126  if (((bitField0_ & 0x00000040) != 0)) {
6127  output.writeDouble(76, initialVariablesActivity_);
6128  }
6129  if (((bitField0_ & 0x00000080) != 0)) {
6130  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
6131  }
6132  if (((bitField2_ & 0x00000080) != 0)) {
6133  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
6134  }
6135  if (((bitField2_ & 0x00000100) != 0)) {
6136  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
6137  }
6138  if (((bitField2_ & 0x00000200) != 0)) {
6139  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
6140  }
6141  if (((bitField2_ & 0x00800000) != 0)) {
6142  output.writeEnum(82, searchBranching_);
6143  }
6144  if (((bitField2_ & 0x40000000) != 0)) {
6145  output.writeBool(83, optimizeWithCore_);
6146  }
6147  if (((bitField2_ & 0x00000002) != 0)) {
6148  output.writeBool(84, findMultipleCores_);
6149  }
6150  if (((bitField3_ & 0x00000001) != 0)) {
6151  output.writeBool(85, optimizeWithMaxHs_);
6152  }
6153  if (((bitField1_ & 0x00400000) != 0)) {
6154  output.writeBool(86, cpModelPresolve_);
6155  }
6156  if (((bitField3_ & 0x00000002) != 0)) {
6157  output.writeBool(87, enumerateAllSolutions_);
6158  }
6159  if (((bitField1_ & 0x00040000) != 0)) {
6160  output.writeBool(88, presolveBlockedClause_);
6161  }
6162  if (((bitField2_ & 0x00000004) != 0)) {
6163  output.writeBool(89, coverOptimization_);
6164  }
6165  if (((bitField2_ & 0x00000400) != 0)) {
6166  output.writeInt32(90, linearizationLevel_);
6167  }
6168  if (((bitField2_ & 0x00001000) != 0)) {
6169  output.writeInt32(91, maxNumCuts_);
6170  }
6171  if (((bitField2_ & 0x00002000) != 0)) {
6172  output.writeBool(92, onlyAddCutsAtLevelZero_);
6173  }
6174  if (((bitField1_ & 0x02000000) != 0)) {
6175  output.writeBool(93, cpModelUseSatPresolve_);
6176  }
6177  if (((bitField2_ & 0x01000000) != 0)) {
6178  output.writeBool(94, exploitIntegerLpSolution_);
6179  }
6180  if (((bitField3_ & 0x00000010) != 0)) {
6181  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
6182  }
6183  if (((bitField0_ & 0x00040000) != 0)) {
6184  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
6185  }
6186  if (((bitField0_ & 0x00080000) != 0)) {
6187  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
6188  }
6189  if (((bitField3_ & 0x00000020) != 0)) {
6190  output.writeBool(98, stopAfterFirstSolution_);
6191  }
6192  if (((bitField2_ & 0x80000000) != 0)) {
6193  output.writeInt32(99, binarySearchNumConflicts_);
6194  }
6195  if (((bitField3_ & 0x00000080) != 0)) {
6196  output.writeInt32(100, numSearchWorkers_);
6197  }
6198  if (((bitField3_ & 0x00002000) != 0)) {
6199  output.writeBool(101, useLnsOnly_);
6200  }
6201  if (((bitField3_ & 0x00040000) != 0)) {
6202  output.writeBool(103, randomizeSearch_);
6203  }
6204  if (((bitField3_ & 0x00080000) != 0)) {
6205  output.writeInt64(104, searchRandomizationTolerance_);
6206  }
6207  if (((bitField3_ & 0x00004000) != 0)) {
6208  output.writeBool(105, lnsFocusOnDecisionVariables_);
6209  }
6210  if (((bitField3_ & 0x00000008) != 0)) {
6211  output.writeBool(106, instantiateAllVariables_);
6212  }
6213  if (((bitField2_ & 0x00000800) != 0)) {
6214  output.writeInt32(107, booleanEncodingLevel_);
6215  }
6216  if (((bitField3_ & 0x00100000) != 0)) {
6217  output.writeBool(108, useOptionalVariables_);
6218  }
6219  if (((bitField3_ & 0x00200000) != 0)) {
6220  output.writeBool(109, useExactLpReason_);
6221  }
6222  if (((bitField1_ & 0x01000000) != 0)) {
6223  output.writeInt32(110, cpModelProbingLevel_);
6224  }
6225  if (((bitField2_ & 0x00004000) != 0)) {
6226  output.writeBool(111, addKnapsackCuts_);
6227  }
6228  if (((bitField2_ & 0x00080000) != 0)) {
6229  output.writeBool(112, addLpConstraintsLazily_);
6230  }
6231  if (((bitField3_ & 0x00000800) != 0)) {
6232  output.writeBool(113, shareObjectiveBounds_);
6233  }
6234  if (((bitField3_ & 0x00001000) != 0)) {
6235  output.writeBool(114, shareLevelZeroBounds_);
6236  }
6237  if (((bitField2_ & 0x00100000) != 0)) {
6238  output.writeDouble(115, minOrthogonalityForLpConstraints_);
6239  }
6240  if (((bitField2_ & 0x02000000) != 0)) {
6241  output.writeBool(116, exploitAllLpSolution_);
6242  }
6243  if (((bitField2_ & 0x00008000) != 0)) {
6244  output.writeBool(117, addCgCuts_);
6245  }
6246  if (((bitField2_ & 0x00040000) != 0)) {
6247  output.writeInt32(119, maxIntegerRoundingScaling_);
6248  }
6249  if (((bitField2_ & 0x00010000) != 0)) {
6250  output.writeBool(120, addMirCuts_);
6251  }
6252  if (((bitField2_ & 0x00200000) != 0)) {
6253  output.writeInt32(121, maxConsecutiveInactiveCount_);
6254  }
6255  if (((bitField2_ & 0x00400000) != 0)) {
6256  output.writeInt32(122, newConstraintsBatchSize_);
6257  }
6258  if (((bitField2_ & 0x20000000) != 0)) {
6259  output.writeInt64(123, pseudoCostReliabilityThreshold_);
6260  }
6261  if (((bitField3_ & 0x04000000) != 0)) {
6262  output.writeDouble(124, mipMaxBound_);
6263  }
6264  if (((bitField3_ & 0x08000000) != 0)) {
6265  output.writeDouble(125, mipVarScaling_);
6266  }
6267  if (((bitField3_ & 0x10000000) != 0)) {
6268  output.writeDouble(126, mipWantedPrecision_);
6269  }
6270  if (((bitField3_ & 0x20000000) != 0)) {
6271  output.writeInt32(127, mipMaxActivityExponent_);
6272  }
6273  if (((bitField3_ & 0x40000000) != 0)) {
6274  output.writeDouble(128, mipCheckPrecision_);
6275  }
6276  if (((bitField3_ & 0x00008000) != 0)) {
6277  output.writeBool(129, useRinsLns_);
6278  }
6279  if (((bitField2_ & 0x04000000) != 0)) {
6280  output.writeBool(130, exploitBestSolution_);
6281  }
6282  if (((bitField2_ & 0x08000000) != 0)) {
6283  output.writeBool(131, exploitObjective_);
6284  }
6285  if (((bitField3_ & 0x00000004) != 0)) {
6286  output.writeBool(132, fillTightenedDomainsInResponse_);
6287  }
6288  if (((bitField3_ & 0x00800000) != 0)) {
6289  output.writeBool(133, useCombinedNoOverlap_);
6290  }
6291  if (((bitField3_ & 0x00000400) != 0)) {
6292  output.writeBool(134, deterministicParallelSearch_);
6293  }
6294  if (((bitField3_ & 0x01000000) != 0)) {
6295  output.writeBool(135, catchSigintSignal_);
6296  }
6297  if (((bitField3_ & 0x00000100) != 0)) {
6298  output.writeBool(136, interleaveSearch_);
6299  }
6300  if (((bitField3_ & 0x00020000) != 0)) {
6301  output.writeBool(137, diversifyLnsParams_);
6302  }
6303  if (((bitField1_ & 0x00200000) != 0)) {
6304  output.writeInt32(138, maxPresolveIterations_);
6305  }
6306  if (((bitField3_ & 0x00400000) != 0)) {
6307  output.writeBool(139, useBranchingInLp_);
6308  }
6309  if (((bitField1_ & 0x04000000) != 0)) {
6310  output.writeBool(140, expandElementConstraints_);
6311  }
6312  if (((bitField3_ & 0x00000200) != 0)) {
6313  output.writeBool(141, reduceMemoryUsageInInterleaveMode_);
6314  }
6315  if (((bitField2_ & 0x10000000) != 0)) {
6316  output.writeInt64(142, probingPeriodAtRoot_);
6317  }
6318  if (((bitField1_ & 0x08000000) != 0)) {
6319  output.writeBool(143, expandAutomatonConstraints_);
6320  }
6321  if (((bitField3_ & 0x02000000) != 0)) {
6322  output.writeBool(144, useImpliedBounds_);
6323  }
6324  if (((bitField1_ & 0x10000000) != 0)) {
6325  output.writeDouble(145, mergeNoOverlapWorkLimit_);
6326  }
6327  if (((bitField1_ & 0x20000000) != 0)) {
6328  output.writeDouble(146, mergeAtMostOneWorkLimit_);
6329  }
6330  if (((bitField1_ & 0x40000000) != 0)) {
6331  output.writeInt32(147, presolveSubstitutionLevel_);
6332  }
6333  if (((bitField2_ & 0x00020000) != 0)) {
6334  output.writeInt32(148, maxAllDiffCutSize_);
6335  }
6336  if (((bitField3_ & 0x00000040) != 0)) {
6337  output.writeBool(149, stopAfterPresolve_);
6338  }
6339  if (((bitField3_ & 0x00010000) != 0)) {
6340  output.writeBool(150, useRelaxationLns_);
6341  }
6342  if (((bitField1_ & 0x00800000) != 0)) {
6343  output.writeInt32(151, cpModelMaxNumPresolveOperations_);
6344  }
6345  unknownFields.writeTo(output);
6346  }
6347 
6348  @java.lang.Override
6349  public int getSerializedSize() {
6350  int size = memoizedSize;
6351  if (size != -1) return size;
6352 
6353  size = 0;
6354  if (((bitField0_ & 0x00000001) != 0)) {
6355  size += com.google.protobuf.CodedOutputStream
6356  .computeEnumSize(1, preferredVariableOrder_);
6357  }
6358  if (((bitField0_ & 0x00000002) != 0)) {
6359  size += com.google.protobuf.CodedOutputStream
6360  .computeEnumSize(2, initialPolarity_);
6361  }
6362  if (((bitField0_ & 0x00000100) != 0)) {
6363  size += com.google.protobuf.CodedOutputStream
6364  .computeEnumSize(4, minimizationAlgorithm_);
6365  }
6366  if (((bitField0_ & 0x00000800) != 0)) {
6367  size += com.google.protobuf.CodedOutputStream
6368  .computeInt32Size(11, clauseCleanupPeriod_);
6369  }
6370  if (((bitField0_ & 0x00001000) != 0)) {
6371  size += com.google.protobuf.CodedOutputStream
6372  .computeInt32Size(13, clauseCleanupTarget_);
6373  }
6374  if (((bitField0_ & 0x00100000) != 0)) {
6375  size += com.google.protobuf.CodedOutputStream
6376  .computeDoubleSize(15, variableActivityDecay_);
6377  }
6378  if (((bitField0_ & 0x00200000) != 0)) {
6379  size += com.google.protobuf.CodedOutputStream
6380  .computeDoubleSize(16, maxVariableActivityValue_);
6381  }
6382  if (((bitField0_ & 0x02000000) != 0)) {
6383  size += com.google.protobuf.CodedOutputStream
6384  .computeDoubleSize(17, clauseActivityDecay_);
6385  }
6386  if (((bitField0_ & 0x04000000) != 0)) {
6387  size += com.google.protobuf.CodedOutputStream
6388  .computeDoubleSize(18, maxClauseActivityValue_);
6389  }
6390  if (((bitField0_ & 0x00400000) != 0)) {
6391  size += com.google.protobuf.CodedOutputStream
6392  .computeDoubleSize(22, glucoseMaxDecay_);
6393  }
6394  if (((bitField0_ & 0x00800000) != 0)) {
6395  size += com.google.protobuf.CodedOutputStream
6396  .computeDoubleSize(23, glucoseDecayIncrement_);
6397  }
6398  if (((bitField0_ & 0x01000000) != 0)) {
6399  size += com.google.protobuf.CodedOutputStream
6400  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
6401  }
6402  if (((bitField0_ & 0x10000000) != 0)) {
6403  size += com.google.protobuf.CodedOutputStream
6404  .computeInt32Size(30, restartPeriod_);
6405  }
6406  if (((bitField1_ & 0x00000400) != 0)) {
6407  size += com.google.protobuf.CodedOutputStream
6408  .computeInt32Size(31, randomSeed_);
6409  }
6410  if (((bitField0_ & 0x00000010) != 0)) {
6411  size += com.google.protobuf.CodedOutputStream
6412  .computeDoubleSize(32, randomBranchesRatio_);
6413  }
6414  if (((bitField1_ & 0x00000200) != 0)) {
6415  size += com.google.protobuf.CodedOutputStream
6416  .computeBoolSize(33, treatBinaryClausesSeparately_);
6417  }
6418  if (((bitField0_ & 0x00000200) != 0)) {
6419  size += com.google.protobuf.CodedOutputStream
6420  .computeEnumSize(34, binaryMinimizationAlgorithm_);
6421  }
6422  if (((bitField1_ & 0x80000000) != 0)) {
6423  size += com.google.protobuf.CodedOutputStream
6424  .computeBoolSize(35, useOptimizationHints_);
6425  }
6426  if (((bitField1_ & 0x00000020) != 0)) {
6427  size += com.google.protobuf.CodedOutputStream
6428  .computeDoubleSize(36, maxTimeInSeconds_);
6429  }
6430  if (((bitField1_ & 0x00000080) != 0)) {
6431  size += com.google.protobuf.CodedOutputStream
6432  .computeInt64Size(37, maxNumberOfConflicts_);
6433  }
6434  if (((bitField1_ & 0x00000100) != 0)) {
6435  size += com.google.protobuf.CodedOutputStream
6436  .computeInt64Size(40, maxMemoryInMb_);
6437  }
6438  if (((bitField1_ & 0x00000800) != 0)) {
6439  size += com.google.protobuf.CodedOutputStream
6440  .computeBoolSize(41, logSearchProgress_);
6441  }
6442  if (((bitField1_ & 0x00001000) != 0)) {
6443  size += com.google.protobuf.CodedOutputStream
6444  .computeBoolSize(43, usePbResolution_);
6445  }
6446  if (((bitField0_ & 0x00000004) != 0)) {
6447  size += com.google.protobuf.CodedOutputStream
6448  .computeBoolSize(44, usePhaseSaving_);
6449  }
6450  if (((bitField0_ & 0x00000008) != 0)) {
6451  size += com.google.protobuf.CodedOutputStream
6452  .computeDoubleSize(45, randomPolarityRatio_);
6453  }
6454  if (((bitField0_ & 0x00010000) != 0)) {
6455  size += com.google.protobuf.CodedOutputStream
6456  .computeInt32Size(46, pbCleanupIncrement_);
6457  }
6458  if (((bitField0_ & 0x00020000) != 0)) {
6459  size += com.google.protobuf.CodedOutputStream
6460  .computeDoubleSize(47, pbCleanupRatio_);
6461  }
6462  if (((bitField1_ & 0x00002000) != 0)) {
6463  size += com.google.protobuf.CodedOutputStream
6464  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
6465  }
6466  if (((bitField1_ & 0x00004000) != 0)) {
6467  size += com.google.protobuf.CodedOutputStream
6468  .computeBoolSize(49, countAssumptionLevelsInLbd_);
6469  }
6470  if (((bitField2_ & 0x00000001) != 0)) {
6471  size += com.google.protobuf.CodedOutputStream
6472  .computeBoolSize(50, minimizeCore_);
6473  }
6474  if (((bitField2_ & 0x00000008) != 0)) {
6475  size += com.google.protobuf.CodedOutputStream
6476  .computeEnumSize(51, maxSatAssumptionOrder_);
6477  }
6478  if (((bitField2_ & 0x00000010) != 0)) {
6479  size += com.google.protobuf.CodedOutputStream
6480  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
6481  }
6482  if (((bitField2_ & 0x00000020) != 0)) {
6483  size += com.google.protobuf.CodedOutputStream
6484  .computeEnumSize(53, maxSatStratification_);
6485  }
6486  if (((bitField1_ & 0x00008000) != 0)) {
6487  size += com.google.protobuf.CodedOutputStream
6488  .computeInt32Size(54, presolveBveThreshold_);
6489  }
6490  if (((bitField1_ & 0x00010000) != 0)) {
6491  size += com.google.protobuf.CodedOutputStream
6492  .computeInt32Size(55, presolveBveClauseWeight_);
6493  }
6494  if (((bitField0_ & 0x00000400) != 0)) {
6495  size += com.google.protobuf.CodedOutputStream
6496  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
6497  }
6498  if (((bitField1_ & 0x00020000) != 0)) {
6499  size += com.google.protobuf.CodedOutputStream
6500  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
6501  }
6502  if (((bitField0_ & 0x00002000) != 0)) {
6503  size += com.google.protobuf.CodedOutputStream
6504  .computeEnumSize(58, clauseCleanupProtection_);
6505  }
6506  if (((bitField0_ & 0x00004000) != 0)) {
6507  size += com.google.protobuf.CodedOutputStream
6508  .computeInt32Size(59, clauseCleanupLbdBound_);
6509  }
6510  if (((bitField0_ & 0x00008000) != 0)) {
6511  size += com.google.protobuf.CodedOutputStream
6512  .computeEnumSize(60, clauseCleanupOrdering_);
6513  }
6514  {
6515  int dataSize = 0;
6516  for (int i = 0; i < restartAlgorithms_.size(); i++) {
6517  dataSize += com.google.protobuf.CodedOutputStream
6518  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
6519  }
6520  size += dataSize;
6521  size += 2 * restartAlgorithms_.size();
6522  }
6523  if (((bitField0_ & 0x20000000) != 0)) {
6524  size += com.google.protobuf.CodedOutputStream
6525  .computeInt32Size(62, restartRunningWindowSize_);
6526  }
6527  if (((bitField0_ & 0x40000000) != 0)) {
6528  size += com.google.protobuf.CodedOutputStream
6529  .computeDoubleSize(63, restartDlAverageRatio_);
6530  }
6531  if (((bitField1_ & 0x00000001) != 0)) {
6532  size += com.google.protobuf.CodedOutputStream
6533  .computeBoolSize(64, useBlockingRestart_);
6534  }
6535  if (((bitField1_ & 0x00000002) != 0)) {
6536  size += com.google.protobuf.CodedOutputStream
6537  .computeInt32Size(65, blockingRestartWindowSize_);
6538  }
6539  if (((bitField1_ & 0x00000004) != 0)) {
6540  size += com.google.protobuf.CodedOutputStream
6541  .computeDoubleSize(66, blockingRestartMultiplier_);
6542  }
6543  if (((bitField1_ & 0x00000040) != 0)) {
6544  size += com.google.protobuf.CodedOutputStream
6545  .computeDoubleSize(67, maxDeterministicTime_);
6546  }
6547  if (((bitField1_ & 0x00000008) != 0)) {
6548  size += com.google.protobuf.CodedOutputStream
6549  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
6550  }
6551  if (((bitField1_ & 0x00000010) != 0)) {
6552  size += com.google.protobuf.CodedOutputStream
6553  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
6554  }
6555  if (((bitField0_ & 0x08000000) != 0)) {
6556  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
6557  }
6558  if (((bitField0_ & 0x80000000) != 0)) {
6559  size += com.google.protobuf.CodedOutputStream
6560  .computeDoubleSize(71, restartLbdAverageRatio_);
6561  }
6562  if (((bitField1_ & 0x00080000) != 0)) {
6563  size += com.google.protobuf.CodedOutputStream
6564  .computeBoolSize(72, presolveUseBva_);
6565  }
6566  if (((bitField1_ & 0x00100000) != 0)) {
6567  size += com.google.protobuf.CodedOutputStream
6568  .computeInt32Size(73, presolveBvaThreshold_);
6569  }
6570  if (((bitField2_ & 0x00000040) != 0)) {
6571  size += com.google.protobuf.CodedOutputStream
6572  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
6573  }
6574  if (((bitField0_ & 0x00000020) != 0)) {
6575  size += com.google.protobuf.CodedOutputStream
6576  .computeBoolSize(75, useErwaHeuristic_);
6577  }
6578  if (((bitField0_ & 0x00000040) != 0)) {
6579  size += com.google.protobuf.CodedOutputStream
6580  .computeDoubleSize(76, initialVariablesActivity_);
6581  }
6582  if (((bitField0_ & 0x00000080) != 0)) {
6583  size += com.google.protobuf.CodedOutputStream
6584  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
6585  }
6586  if (((bitField2_ & 0x00000080) != 0)) {
6587  size += com.google.protobuf.CodedOutputStream
6588  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
6589  }
6590  if (((bitField2_ & 0x00000100) != 0)) {
6591  size += com.google.protobuf.CodedOutputStream
6592  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
6593  }
6594  if (((bitField2_ & 0x00000200) != 0)) {
6595  size += com.google.protobuf.CodedOutputStream
6596  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
6597  }
6598  if (((bitField2_ & 0x00800000) != 0)) {
6599  size += com.google.protobuf.CodedOutputStream
6600  .computeEnumSize(82, searchBranching_);
6601  }
6602  if (((bitField2_ & 0x40000000) != 0)) {
6603  size += com.google.protobuf.CodedOutputStream
6604  .computeBoolSize(83, optimizeWithCore_);
6605  }
6606  if (((bitField2_ & 0x00000002) != 0)) {
6607  size += com.google.protobuf.CodedOutputStream
6608  .computeBoolSize(84, findMultipleCores_);
6609  }
6610  if (((bitField3_ & 0x00000001) != 0)) {
6611  size += com.google.protobuf.CodedOutputStream
6612  .computeBoolSize(85, optimizeWithMaxHs_);
6613  }
6614  if (((bitField1_ & 0x00400000) != 0)) {
6615  size += com.google.protobuf.CodedOutputStream
6616  .computeBoolSize(86, cpModelPresolve_);
6617  }
6618  if (((bitField3_ & 0x00000002) != 0)) {
6619  size += com.google.protobuf.CodedOutputStream
6620  .computeBoolSize(87, enumerateAllSolutions_);
6621  }
6622  if (((bitField1_ & 0x00040000) != 0)) {
6623  size += com.google.protobuf.CodedOutputStream
6624  .computeBoolSize(88, presolveBlockedClause_);
6625  }
6626  if (((bitField2_ & 0x00000004) != 0)) {
6627  size += com.google.protobuf.CodedOutputStream
6628  .computeBoolSize(89, coverOptimization_);
6629  }
6630  if (((bitField2_ & 0x00000400) != 0)) {
6631  size += com.google.protobuf.CodedOutputStream
6632  .computeInt32Size(90, linearizationLevel_);
6633  }
6634  if (((bitField2_ & 0x00001000) != 0)) {
6635  size += com.google.protobuf.CodedOutputStream
6636  .computeInt32Size(91, maxNumCuts_);
6637  }
6638  if (((bitField2_ & 0x00002000) != 0)) {
6639  size += com.google.protobuf.CodedOutputStream
6640  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
6641  }
6642  if (((bitField1_ & 0x02000000) != 0)) {
6643  size += com.google.protobuf.CodedOutputStream
6644  .computeBoolSize(93, cpModelUseSatPresolve_);
6645  }
6646  if (((bitField2_ & 0x01000000) != 0)) {
6647  size += com.google.protobuf.CodedOutputStream
6648  .computeBoolSize(94, exploitIntegerLpSolution_);
6649  }
6650  if (((bitField3_ & 0x00000010) != 0)) {
6651  size += com.google.protobuf.CodedOutputStream
6652  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
6653  }
6654  if (((bitField0_ & 0x00040000) != 0)) {
6655  size += com.google.protobuf.CodedOutputStream
6656  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
6657  }
6658  if (((bitField0_ & 0x00080000) != 0)) {
6659  size += com.google.protobuf.CodedOutputStream
6660  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
6661  }
6662  if (((bitField3_ & 0x00000020) != 0)) {
6663  size += com.google.protobuf.CodedOutputStream
6664  .computeBoolSize(98, stopAfterFirstSolution_);
6665  }
6666  if (((bitField2_ & 0x80000000) != 0)) {
6667  size += com.google.protobuf.CodedOutputStream
6668  .computeInt32Size(99, binarySearchNumConflicts_);
6669  }
6670  if (((bitField3_ & 0x00000080) != 0)) {
6671  size += com.google.protobuf.CodedOutputStream
6672  .computeInt32Size(100, numSearchWorkers_);
6673  }
6674  if (((bitField3_ & 0x00002000) != 0)) {
6675  size += com.google.protobuf.CodedOutputStream
6676  .computeBoolSize(101, useLnsOnly_);
6677  }
6678  if (((bitField3_ & 0x00040000) != 0)) {
6679  size += com.google.protobuf.CodedOutputStream
6680  .computeBoolSize(103, randomizeSearch_);
6681  }
6682  if (((bitField3_ & 0x00080000) != 0)) {
6683  size += com.google.protobuf.CodedOutputStream
6684  .computeInt64Size(104, searchRandomizationTolerance_);
6685  }
6686  if (((bitField3_ & 0x00004000) != 0)) {
6687  size += com.google.protobuf.CodedOutputStream
6688  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
6689  }
6690  if (((bitField3_ & 0x00000008) != 0)) {
6691  size += com.google.protobuf.CodedOutputStream
6692  .computeBoolSize(106, instantiateAllVariables_);
6693  }
6694  if (((bitField2_ & 0x00000800) != 0)) {
6695  size += com.google.protobuf.CodedOutputStream
6696  .computeInt32Size(107, booleanEncodingLevel_);
6697  }
6698  if (((bitField3_ & 0x00100000) != 0)) {
6699  size += com.google.protobuf.CodedOutputStream
6700  .computeBoolSize(108, useOptionalVariables_);
6701  }
6702  if (((bitField3_ & 0x00200000) != 0)) {
6703  size += com.google.protobuf.CodedOutputStream
6704  .computeBoolSize(109, useExactLpReason_);
6705  }
6706  if (((bitField1_ & 0x01000000) != 0)) {
6707  size += com.google.protobuf.CodedOutputStream
6708  .computeInt32Size(110, cpModelProbingLevel_);
6709  }
6710  if (((bitField2_ & 0x00004000) != 0)) {
6711  size += com.google.protobuf.CodedOutputStream
6712  .computeBoolSize(111, addKnapsackCuts_);
6713  }
6714  if (((bitField2_ & 0x00080000) != 0)) {
6715  size += com.google.protobuf.CodedOutputStream
6716  .computeBoolSize(112, addLpConstraintsLazily_);
6717  }
6718  if (((bitField3_ & 0x00000800) != 0)) {
6719  size += com.google.protobuf.CodedOutputStream
6720  .computeBoolSize(113, shareObjectiveBounds_);
6721  }
6722  if (((bitField3_ & 0x00001000) != 0)) {
6723  size += com.google.protobuf.CodedOutputStream
6724  .computeBoolSize(114, shareLevelZeroBounds_);
6725  }
6726  if (((bitField2_ & 0x00100000) != 0)) {
6727  size += com.google.protobuf.CodedOutputStream
6728  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
6729  }
6730  if (((bitField2_ & 0x02000000) != 0)) {
6731  size += com.google.protobuf.CodedOutputStream
6732  .computeBoolSize(116, exploitAllLpSolution_);
6733  }
6734  if (((bitField2_ & 0x00008000) != 0)) {
6735  size += com.google.protobuf.CodedOutputStream
6736  .computeBoolSize(117, addCgCuts_);
6737  }
6738  if (((bitField2_ & 0x00040000) != 0)) {
6739  size += com.google.protobuf.CodedOutputStream
6740  .computeInt32Size(119, maxIntegerRoundingScaling_);
6741  }
6742  if (((bitField2_ & 0x00010000) != 0)) {
6743  size += com.google.protobuf.CodedOutputStream
6744  .computeBoolSize(120, addMirCuts_);
6745  }
6746  if (((bitField2_ & 0x00200000) != 0)) {
6747  size += com.google.protobuf.CodedOutputStream
6748  .computeInt32Size(121, maxConsecutiveInactiveCount_);
6749  }
6750  if (((bitField2_ & 0x00400000) != 0)) {
6751  size += com.google.protobuf.CodedOutputStream
6752  .computeInt32Size(122, newConstraintsBatchSize_);
6753  }
6754  if (((bitField2_ & 0x20000000) != 0)) {
6755  size += com.google.protobuf.CodedOutputStream
6756  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
6757  }
6758  if (((bitField3_ & 0x04000000) != 0)) {
6759  size += com.google.protobuf.CodedOutputStream
6760  .computeDoubleSize(124, mipMaxBound_);
6761  }
6762  if (((bitField3_ & 0x08000000) != 0)) {
6763  size += com.google.protobuf.CodedOutputStream
6764  .computeDoubleSize(125, mipVarScaling_);
6765  }
6766  if (((bitField3_ & 0x10000000) != 0)) {
6767  size += com.google.protobuf.CodedOutputStream
6768  .computeDoubleSize(126, mipWantedPrecision_);
6769  }
6770  if (((bitField3_ & 0x20000000) != 0)) {
6771  size += com.google.protobuf.CodedOutputStream
6772  .computeInt32Size(127, mipMaxActivityExponent_);
6773  }
6774  if (((bitField3_ & 0x40000000) != 0)) {
6775  size += com.google.protobuf.CodedOutputStream
6776  .computeDoubleSize(128, mipCheckPrecision_);
6777  }
6778  if (((bitField3_ & 0x00008000) != 0)) {
6779  size += com.google.protobuf.CodedOutputStream
6780  .computeBoolSize(129, useRinsLns_);
6781  }
6782  if (((bitField2_ & 0x04000000) != 0)) {
6783  size += com.google.protobuf.CodedOutputStream
6784  .computeBoolSize(130, exploitBestSolution_);
6785  }
6786  if (((bitField2_ & 0x08000000) != 0)) {
6787  size += com.google.protobuf.CodedOutputStream
6788  .computeBoolSize(131, exploitObjective_);
6789  }
6790  if (((bitField3_ & 0x00000004) != 0)) {
6791  size += com.google.protobuf.CodedOutputStream
6792  .computeBoolSize(132, fillTightenedDomainsInResponse_);
6793  }
6794  if (((bitField3_ & 0x00800000) != 0)) {
6795  size += com.google.protobuf.CodedOutputStream
6796  .computeBoolSize(133, useCombinedNoOverlap_);
6797  }
6798  if (((bitField3_ & 0x00000400) != 0)) {
6799  size += com.google.protobuf.CodedOutputStream
6800  .computeBoolSize(134, deterministicParallelSearch_);
6801  }
6802  if (((bitField3_ & 0x01000000) != 0)) {
6803  size += com.google.protobuf.CodedOutputStream
6804  .computeBoolSize(135, catchSigintSignal_);
6805  }
6806  if (((bitField3_ & 0x00000100) != 0)) {
6807  size += com.google.protobuf.CodedOutputStream
6808  .computeBoolSize(136, interleaveSearch_);
6809  }
6810  if (((bitField3_ & 0x00020000) != 0)) {
6811  size += com.google.protobuf.CodedOutputStream
6812  .computeBoolSize(137, diversifyLnsParams_);
6813  }
6814  if (((bitField1_ & 0x00200000) != 0)) {
6815  size += com.google.protobuf.CodedOutputStream
6816  .computeInt32Size(138, maxPresolveIterations_);
6817  }
6818  if (((bitField3_ & 0x00400000) != 0)) {
6819  size += com.google.protobuf.CodedOutputStream
6820  .computeBoolSize(139, useBranchingInLp_);
6821  }
6822  if (((bitField1_ & 0x04000000) != 0)) {
6823  size += com.google.protobuf.CodedOutputStream
6824  .computeBoolSize(140, expandElementConstraints_);
6825  }
6826  if (((bitField3_ & 0x00000200) != 0)) {
6827  size += com.google.protobuf.CodedOutputStream
6828  .computeBoolSize(141, reduceMemoryUsageInInterleaveMode_);
6829  }
6830  if (((bitField2_ & 0x10000000) != 0)) {
6831  size += com.google.protobuf.CodedOutputStream
6832  .computeInt64Size(142, probingPeriodAtRoot_);
6833  }
6834  if (((bitField1_ & 0x08000000) != 0)) {
6835  size += com.google.protobuf.CodedOutputStream
6836  .computeBoolSize(143, expandAutomatonConstraints_);
6837  }
6838  if (((bitField3_ & 0x02000000) != 0)) {
6839  size += com.google.protobuf.CodedOutputStream
6840  .computeBoolSize(144, useImpliedBounds_);
6841  }
6842  if (((bitField1_ & 0x10000000) != 0)) {
6843  size += com.google.protobuf.CodedOutputStream
6844  .computeDoubleSize(145, mergeNoOverlapWorkLimit_);
6845  }
6846  if (((bitField1_ & 0x20000000) != 0)) {
6847  size += com.google.protobuf.CodedOutputStream
6848  .computeDoubleSize(146, mergeAtMostOneWorkLimit_);
6849  }
6850  if (((bitField1_ & 0x40000000) != 0)) {
6851  size += com.google.protobuf.CodedOutputStream
6852  .computeInt32Size(147, presolveSubstitutionLevel_);
6853  }
6854  if (((bitField2_ & 0x00020000) != 0)) {
6855  size += com.google.protobuf.CodedOutputStream
6856  .computeInt32Size(148, maxAllDiffCutSize_);
6857  }
6858  if (((bitField3_ & 0x00000040) != 0)) {
6859  size += com.google.protobuf.CodedOutputStream
6860  .computeBoolSize(149, stopAfterPresolve_);
6861  }
6862  if (((bitField3_ & 0x00010000) != 0)) {
6863  size += com.google.protobuf.CodedOutputStream
6864  .computeBoolSize(150, useRelaxationLns_);
6865  }
6866  if (((bitField1_ & 0x00800000) != 0)) {
6867  size += com.google.protobuf.CodedOutputStream
6868  .computeInt32Size(151, cpModelMaxNumPresolveOperations_);
6869  }
6870  size += unknownFields.getSerializedSize();
6871  memoizedSize = size;
6872  return size;
6873  }
6874 
6875  @java.lang.Override
6876  public boolean equals(final java.lang.Object obj) {
6877  if (obj == this) {
6878  return true;
6879  }
6880  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
6881  return super.equals(obj);
6882  }
6884 
6885  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
6886  if (hasPreferredVariableOrder()) {
6887  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
6888  }
6889  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
6890  if (hasInitialPolarity()) {
6891  if (initialPolarity_ != other.initialPolarity_) return false;
6892  }
6893  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
6894  if (hasUsePhaseSaving()) {
6895  if (getUsePhaseSaving()
6896  != other.getUsePhaseSaving()) return false;
6897  }
6898  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
6899  if (hasRandomPolarityRatio()) {
6900  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
6901  != java.lang.Double.doubleToLongBits(
6902  other.getRandomPolarityRatio())) return false;
6903  }
6904  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
6905  if (hasRandomBranchesRatio()) {
6906  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
6907  != java.lang.Double.doubleToLongBits(
6908  other.getRandomBranchesRatio())) return false;
6909  }
6910  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
6911  if (hasUseErwaHeuristic()) {
6912  if (getUseErwaHeuristic()
6913  != other.getUseErwaHeuristic()) return false;
6914  }
6915  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
6917  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
6918  != java.lang.Double.doubleToLongBits(
6919  other.getInitialVariablesActivity())) return false;
6920  }
6921  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
6924  != other.getAlsoBumpVariablesInConflictReasons()) return false;
6925  }
6926  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
6927  if (hasMinimizationAlgorithm()) {
6928  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
6929  }
6930  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
6932  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
6933  }
6934  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
6937  != other.getSubsumptionDuringConflictAnalysis()) return false;
6938  }
6939  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
6940  if (hasClauseCleanupPeriod()) {
6942  != other.getClauseCleanupPeriod()) return false;
6943  }
6944  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
6945  if (hasClauseCleanupTarget()) {
6947  != other.getClauseCleanupTarget()) return false;
6948  }
6949  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
6951  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
6952  }
6953  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
6954  if (hasClauseCleanupLbdBound()) {
6956  != other.getClauseCleanupLbdBound()) return false;
6957  }
6958  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
6959  if (hasClauseCleanupOrdering()) {
6960  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
6961  }
6962  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
6963  if (hasPbCleanupIncrement()) {
6964  if (getPbCleanupIncrement()
6965  != other.getPbCleanupIncrement()) return false;
6966  }
6967  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
6968  if (hasPbCleanupRatio()) {
6969  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
6970  != java.lang.Double.doubleToLongBits(
6971  other.getPbCleanupRatio())) return false;
6972  }
6973  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
6976  != other.getMinimizeWithPropagationRestartPeriod()) return false;
6977  }
6978  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
6981  != other.getMinimizeWithPropagationNumDecisions()) return false;
6982  }
6983  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
6984  if (hasVariableActivityDecay()) {
6985  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
6986  != java.lang.Double.doubleToLongBits(
6987  other.getVariableActivityDecay())) return false;
6988  }
6989  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6991  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6992  != java.lang.Double.doubleToLongBits(
6993  other.getMaxVariableActivityValue())) return false;
6994  }
6995  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6996  if (hasGlucoseMaxDecay()) {
6997  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6998  != java.lang.Double.doubleToLongBits(
6999  other.getGlucoseMaxDecay())) return false;
7000  }
7001  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
7002  if (hasGlucoseDecayIncrement()) {
7003  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
7004  != java.lang.Double.doubleToLongBits(
7005  other.getGlucoseDecayIncrement())) return false;
7006  }
7007  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
7010  != other.getGlucoseDecayIncrementPeriod()) return false;
7011  }
7012  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
7013  if (hasClauseActivityDecay()) {
7014  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
7015  != java.lang.Double.doubleToLongBits(
7016  other.getClauseActivityDecay())) return false;
7017  }
7018  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
7019  if (hasMaxClauseActivityValue()) {
7020  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
7021  != java.lang.Double.doubleToLongBits(
7022  other.getMaxClauseActivityValue())) return false;
7023  }
7024  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
7025  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
7028  .equals(other.getDefaultRestartAlgorithms())) return false;
7029  }
7030  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
7031  if (hasRestartPeriod()) {
7032  if (getRestartPeriod()
7033  != other.getRestartPeriod()) return false;
7034  }
7035  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
7038  != other.getRestartRunningWindowSize()) return false;
7039  }
7040  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
7041  if (hasRestartDlAverageRatio()) {
7042  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
7043  != java.lang.Double.doubleToLongBits(
7044  other.getRestartDlAverageRatio())) return false;
7045  }
7046  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
7047  if (hasRestartLbdAverageRatio()) {
7048  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
7049  != java.lang.Double.doubleToLongBits(
7050  other.getRestartLbdAverageRatio())) return false;
7051  }
7052  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
7053  if (hasUseBlockingRestart()) {
7054  if (getUseBlockingRestart()
7055  != other.getUseBlockingRestart()) return false;
7056  }
7057  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
7060  != other.getBlockingRestartWindowSize()) return false;
7061  }
7062  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
7064  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
7065  != java.lang.Double.doubleToLongBits(
7066  other.getBlockingRestartMultiplier())) return false;
7067  }
7068  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
7071  != other.getNumConflictsBeforeStrategyChanges()) return false;
7072  }
7073  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
7075  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
7076  != java.lang.Double.doubleToLongBits(
7077  other.getStrategyChangeIncreaseRatio())) return false;
7078  }
7079  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
7080  if (hasMaxTimeInSeconds()) {
7081  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
7082  != java.lang.Double.doubleToLongBits(
7083  other.getMaxTimeInSeconds())) return false;
7084  }
7085  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
7086  if (hasMaxDeterministicTime()) {
7087  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
7088  != java.lang.Double.doubleToLongBits(
7089  other.getMaxDeterministicTime())) return false;
7090  }
7091  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
7092  if (hasMaxNumberOfConflicts()) {
7094  != other.getMaxNumberOfConflicts()) return false;
7095  }
7096  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
7097  if (hasMaxMemoryInMb()) {
7098  if (getMaxMemoryInMb()
7099  != other.getMaxMemoryInMb()) return false;
7100  }
7101  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
7104  != other.getTreatBinaryClausesSeparately()) return false;
7105  }
7106  if (hasRandomSeed() != other.hasRandomSeed()) return false;
7107  if (hasRandomSeed()) {
7108  if (getRandomSeed()
7109  != other.getRandomSeed()) return false;
7110  }
7111  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
7112  if (hasLogSearchProgress()) {
7113  if (getLogSearchProgress()
7114  != other.getLogSearchProgress()) return false;
7115  }
7116  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
7117  if (hasUsePbResolution()) {
7118  if (getUsePbResolution()
7119  != other.getUsePbResolution()) return false;
7120  }
7121  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
7124  != other.getMinimizeReductionDuringPbResolution()) return false;
7125  }
7126  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
7129  != other.getCountAssumptionLevelsInLbd()) return false;
7130  }
7131  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
7132  if (hasPresolveBveThreshold()) {
7134  != other.getPresolveBveThreshold()) return false;
7135  }
7136  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
7139  != other.getPresolveBveClauseWeight()) return false;
7140  }
7141  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
7143  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
7144  != java.lang.Double.doubleToLongBits(
7145  other.getPresolveProbingDeterministicTimeLimit())) return false;
7146  }
7147  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
7148  if (hasPresolveBlockedClause()) {
7150  != other.getPresolveBlockedClause()) return false;
7151  }
7152  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
7153  if (hasPresolveUseBva()) {
7154  if (getPresolveUseBva()
7155  != other.getPresolveUseBva()) return false;
7156  }
7157  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
7158  if (hasPresolveBvaThreshold()) {
7160  != other.getPresolveBvaThreshold()) return false;
7161  }
7162  if (hasMaxPresolveIterations() != other.hasMaxPresolveIterations()) return false;
7163  if (hasMaxPresolveIterations()) {
7165  != other.getMaxPresolveIterations()) return false;
7166  }
7167  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
7168  if (hasCpModelPresolve()) {
7169  if (getCpModelPresolve()
7170  != other.getCpModelPresolve()) return false;
7171  }
7172  if (hasCpModelMaxNumPresolveOperations() != other.hasCpModelMaxNumPresolveOperations()) return false;
7175  != other.getCpModelMaxNumPresolveOperations()) return false;
7176  }
7177  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
7178  if (hasCpModelProbingLevel()) {
7180  != other.getCpModelProbingLevel()) return false;
7181  }
7182  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
7183  if (hasCpModelUseSatPresolve()) {
7185  != other.getCpModelUseSatPresolve()) return false;
7186  }
7187  if (hasExpandElementConstraints() != other.hasExpandElementConstraints()) return false;
7190  != other.getExpandElementConstraints()) return false;
7191  }
7192  if (hasExpandAutomatonConstraints() != other.hasExpandAutomatonConstraints()) return false;
7195  != other.getExpandAutomatonConstraints()) return false;
7196  }
7197  if (hasMergeNoOverlapWorkLimit() != other.hasMergeNoOverlapWorkLimit()) return false;
7199  if (java.lang.Double.doubleToLongBits(getMergeNoOverlapWorkLimit())
7200  != java.lang.Double.doubleToLongBits(
7201  other.getMergeNoOverlapWorkLimit())) return false;
7202  }
7203  if (hasMergeAtMostOneWorkLimit() != other.hasMergeAtMostOneWorkLimit()) return false;
7205  if (java.lang.Double.doubleToLongBits(getMergeAtMostOneWorkLimit())
7206  != java.lang.Double.doubleToLongBits(
7207  other.getMergeAtMostOneWorkLimit())) return false;
7208  }
7209  if (hasPresolveSubstitutionLevel() != other.hasPresolveSubstitutionLevel()) return false;
7212  != other.getPresolveSubstitutionLevel()) return false;
7213  }
7214  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
7215  if (hasUseOptimizationHints()) {
7217  != other.getUseOptimizationHints()) return false;
7218  }
7219  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
7220  if (hasMinimizeCore()) {
7221  if (getMinimizeCore()
7222  != other.getMinimizeCore()) return false;
7223  }
7224  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
7225  if (hasFindMultipleCores()) {
7226  if (getFindMultipleCores()
7227  != other.getFindMultipleCores()) return false;
7228  }
7229  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
7230  if (hasCoverOptimization()) {
7231  if (getCoverOptimization()
7232  != other.getCoverOptimization()) return false;
7233  }
7234  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
7235  if (hasMaxSatAssumptionOrder()) {
7236  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
7237  }
7238  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
7241  != other.getMaxSatReverseAssumptionOrder()) return false;
7242  }
7243  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
7244  if (hasMaxSatStratification()) {
7245  if (maxSatStratification_ != other.maxSatStratification_) return false;
7246  }
7247  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
7250  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
7251  }
7252  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
7255  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
7256  }
7257  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
7260  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
7261  }
7262  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
7265  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
7266  }
7267  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
7268  if (hasLinearizationLevel()) {
7269  if (getLinearizationLevel()
7270  != other.getLinearizationLevel()) return false;
7271  }
7272  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
7273  if (hasBooleanEncodingLevel()) {
7275  != other.getBooleanEncodingLevel()) return false;
7276  }
7277  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
7278  if (hasMaxNumCuts()) {
7279  if (getMaxNumCuts()
7280  != other.getMaxNumCuts()) return false;
7281  }
7282  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
7283  if (hasOnlyAddCutsAtLevelZero()) {
7285  != other.getOnlyAddCutsAtLevelZero()) return false;
7286  }
7287  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
7288  if (hasAddKnapsackCuts()) {
7289  if (getAddKnapsackCuts()
7290  != other.getAddKnapsackCuts()) return false;
7291  }
7292  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
7293  if (hasAddCgCuts()) {
7294  if (getAddCgCuts()
7295  != other.getAddCgCuts()) return false;
7296  }
7297  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
7298  if (hasAddMirCuts()) {
7299  if (getAddMirCuts()
7300  != other.getAddMirCuts()) return false;
7301  }
7302  if (hasMaxAllDiffCutSize() != other.hasMaxAllDiffCutSize()) return false;
7303  if (hasMaxAllDiffCutSize()) {
7304  if (getMaxAllDiffCutSize()
7305  != other.getMaxAllDiffCutSize()) return false;
7306  }
7307  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
7310  != other.getMaxIntegerRoundingScaling()) return false;
7311  }
7312  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
7313  if (hasAddLpConstraintsLazily()) {
7315  != other.getAddLpConstraintsLazily()) return false;
7316  }
7317  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
7319  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
7320  != java.lang.Double.doubleToLongBits(
7321  other.getMinOrthogonalityForLpConstraints())) return false;
7322  }
7323  if (hasMaxConsecutiveInactiveCount() != other.hasMaxConsecutiveInactiveCount()) return false;
7326  != other.getMaxConsecutiveInactiveCount()) return false;
7327  }
7328  if (hasNewConstraintsBatchSize() != other.hasNewConstraintsBatchSize()) return false;
7331  != other.getNewConstraintsBatchSize()) return false;
7332  }
7333  if (hasSearchBranching() != other.hasSearchBranching()) return false;
7334  if (hasSearchBranching()) {
7335  if (searchBranching_ != other.searchBranching_) return false;
7336  }
7337  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
7340  != other.getExploitIntegerLpSolution()) return false;
7341  }
7342  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
7343  if (hasExploitAllLpSolution()) {
7345  != other.getExploitAllLpSolution()) return false;
7346  }
7347  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
7348  if (hasExploitBestSolution()) {
7350  != other.getExploitBestSolution()) return false;
7351  }
7352  if (hasExploitObjective() != other.hasExploitObjective()) return false;
7353  if (hasExploitObjective()) {
7354  if (getExploitObjective()
7355  != other.getExploitObjective()) return false;
7356  }
7357  if (hasProbingPeriodAtRoot() != other.hasProbingPeriodAtRoot()) return false;
7358  if (hasProbingPeriodAtRoot()) {
7360  != other.getProbingPeriodAtRoot()) return false;
7361  }
7362  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
7365  != other.getPseudoCostReliabilityThreshold()) return false;
7366  }
7367  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
7368  if (hasOptimizeWithCore()) {
7369  if (getOptimizeWithCore()
7370  != other.getOptimizeWithCore()) return false;
7371  }
7372  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
7375  != other.getBinarySearchNumConflicts()) return false;
7376  }
7377  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
7378  if (hasOptimizeWithMaxHs()) {
7379  if (getOptimizeWithMaxHs()
7380  != other.getOptimizeWithMaxHs()) return false;
7381  }
7382  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
7383  if (hasEnumerateAllSolutions()) {
7385  != other.getEnumerateAllSolutions()) return false;
7386  }
7387  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
7390  != other.getFillTightenedDomainsInResponse()) return false;
7391  }
7392  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
7395  != other.getInstantiateAllVariables()) return false;
7396  }
7397  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
7400  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
7401  }
7402  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
7403  if (hasStopAfterFirstSolution()) {
7405  != other.getStopAfterFirstSolution()) return false;
7406  }
7407  if (hasStopAfterPresolve() != other.hasStopAfterPresolve()) return false;
7408  if (hasStopAfterPresolve()) {
7409  if (getStopAfterPresolve()
7410  != other.getStopAfterPresolve()) return false;
7411  }
7412  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
7413  if (hasNumSearchWorkers()) {
7414  if (getNumSearchWorkers()
7415  != other.getNumSearchWorkers()) return false;
7416  }
7417  if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
7418  if (hasInterleaveSearch()) {
7419  if (getInterleaveSearch()
7420  != other.getInterleaveSearch()) return false;
7421  }
7422  if (hasReduceMemoryUsageInInterleaveMode() != other.hasReduceMemoryUsageInInterleaveMode()) return false;
7425  != other.getReduceMemoryUsageInInterleaveMode()) return false;
7426  }
7427  if (hasDeterministicParallelSearch() != other.hasDeterministicParallelSearch()) return false;
7430  != other.getDeterministicParallelSearch()) return false;
7431  }
7432  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
7433  if (hasShareObjectiveBounds()) {
7435  != other.getShareObjectiveBounds()) return false;
7436  }
7437  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
7438  if (hasShareLevelZeroBounds()) {
7440  != other.getShareLevelZeroBounds()) return false;
7441  }
7442  if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
7443  if (hasUseLnsOnly()) {
7444  if (getUseLnsOnly()
7445  != other.getUseLnsOnly()) return false;
7446  }
7447  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
7450  != other.getLnsFocusOnDecisionVariables()) return false;
7451  }
7452  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
7453  if (hasUseRinsLns()) {
7454  if (getUseRinsLns()
7455  != other.getUseRinsLns()) return false;
7456  }
7457  if (hasUseRelaxationLns() != other.hasUseRelaxationLns()) return false;
7458  if (hasUseRelaxationLns()) {
7459  if (getUseRelaxationLns()
7460  != other.getUseRelaxationLns()) return false;
7461  }
7462  if (hasDiversifyLnsParams() != other.hasDiversifyLnsParams()) return false;
7463  if (hasDiversifyLnsParams()) {
7464  if (getDiversifyLnsParams()
7465  != other.getDiversifyLnsParams()) return false;
7466  }
7467  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
7468  if (hasRandomizeSearch()) {
7469  if (getRandomizeSearch()
7470  != other.getRandomizeSearch()) return false;
7471  }
7472  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
7475  != other.getSearchRandomizationTolerance()) return false;
7476  }
7477  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
7478  if (hasUseOptionalVariables()) {
7480  != other.getUseOptionalVariables()) return false;
7481  }
7482  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
7483  if (hasUseExactLpReason()) {
7484  if (getUseExactLpReason()
7485  != other.getUseExactLpReason()) return false;
7486  }
7487  if (hasUseBranchingInLp() != other.hasUseBranchingInLp()) return false;
7488  if (hasUseBranchingInLp()) {
7489  if (getUseBranchingInLp()
7490  != other.getUseBranchingInLp()) return false;
7491  }
7492  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
7493  if (hasUseCombinedNoOverlap()) {
7495  != other.getUseCombinedNoOverlap()) return false;
7496  }
7497  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
7498  if (hasCatchSigintSignal()) {
7499  if (getCatchSigintSignal()
7500  != other.getCatchSigintSignal()) return false;
7501  }
7502  if (hasUseImpliedBounds() != other.hasUseImpliedBounds()) return false;
7503  if (hasUseImpliedBounds()) {
7504  if (getUseImpliedBounds()
7505  != other.getUseImpliedBounds()) return false;
7506  }
7507  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
7508  if (hasMipMaxBound()) {
7509  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
7510  != java.lang.Double.doubleToLongBits(
7511  other.getMipMaxBound())) return false;
7512  }
7513  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
7514  if (hasMipVarScaling()) {
7515  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
7516  != java.lang.Double.doubleToLongBits(
7517  other.getMipVarScaling())) return false;
7518  }
7519  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
7520  if (hasMipWantedPrecision()) {
7521  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
7522  != java.lang.Double.doubleToLongBits(
7523  other.getMipWantedPrecision())) return false;
7524  }
7525  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
7526  if (hasMipMaxActivityExponent()) {
7528  != other.getMipMaxActivityExponent()) return false;
7529  }
7530  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
7531  if (hasMipCheckPrecision()) {
7532  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
7533  != java.lang.Double.doubleToLongBits(
7534  other.getMipCheckPrecision())) return false;
7535  }
7536  if (!unknownFields.equals(other.unknownFields)) return false;
7537  return true;
7538  }
7539 
7540  @java.lang.Override
7541  public int hashCode() {
7542  if (memoizedHashCode != 0) {
7543  return memoizedHashCode;
7544  }
7545  int hash = 41;
7546  hash = (19 * hash) + getDescriptor().hashCode();
7547  if (hasPreferredVariableOrder()) {
7548  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
7549  hash = (53 * hash) + preferredVariableOrder_;
7550  }
7551  if (hasInitialPolarity()) {
7552  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
7553  hash = (53 * hash) + initialPolarity_;
7554  }
7555  if (hasUsePhaseSaving()) {
7556  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
7557  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7558  getUsePhaseSaving());
7559  }
7560  if (hasRandomPolarityRatio()) {
7561  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
7562  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7563  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
7564  }
7565  if (hasRandomBranchesRatio()) {
7566  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
7567  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7568  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
7569  }
7570  if (hasUseErwaHeuristic()) {
7571  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
7572  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7574  }
7576  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
7577  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7578  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
7579  }
7582  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7584  }
7585  if (hasMinimizationAlgorithm()) {
7586  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
7587  hash = (53 * hash) + minimizationAlgorithm_;
7588  }
7590  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
7591  hash = (53 * hash) + binaryMinimizationAlgorithm_;
7592  }
7595  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7597  }
7598  if (hasClauseCleanupPeriod()) {
7599  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
7600  hash = (53 * hash) + getClauseCleanupPeriod();
7601  }
7602  if (hasClauseCleanupTarget()) {
7603  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
7604  hash = (53 * hash) + getClauseCleanupTarget();
7605  }
7607  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
7608  hash = (53 * hash) + clauseCleanupProtection_;
7609  }
7610  if (hasClauseCleanupLbdBound()) {
7611  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
7612  hash = (53 * hash) + getClauseCleanupLbdBound();
7613  }
7614  if (hasClauseCleanupOrdering()) {
7615  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
7616  hash = (53 * hash) + clauseCleanupOrdering_;
7617  }
7618  if (hasPbCleanupIncrement()) {
7619  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
7620  hash = (53 * hash) + getPbCleanupIncrement();
7621  }
7622  if (hasPbCleanupRatio()) {
7623  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
7624  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7625  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
7626  }
7629  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
7630  }
7633  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
7634  }
7635  if (hasVariableActivityDecay()) {
7636  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
7637  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7638  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
7639  }
7641  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
7642  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7643  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
7644  }
7645  if (hasGlucoseMaxDecay()) {
7646  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
7647  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7648  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
7649  }
7650  if (hasGlucoseDecayIncrement()) {
7651  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
7652  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7653  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
7654  }
7656  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
7657  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
7658  }
7659  if (hasClauseActivityDecay()) {
7660  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
7661  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7662  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
7663  }
7664  if (hasMaxClauseActivityValue()) {
7665  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
7666  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7667  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
7668  }
7669  if (getRestartAlgorithmsCount() > 0) {
7670  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
7671  hash = (53 * hash) + restartAlgorithms_.hashCode();
7672  }
7674  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
7675  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
7676  }
7677  if (hasRestartPeriod()) {
7678  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
7679  hash = (53 * hash) + getRestartPeriod();
7680  }
7682  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
7683  hash = (53 * hash) + getRestartRunningWindowSize();
7684  }
7685  if (hasRestartDlAverageRatio()) {
7686  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
7687  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7688  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
7689  }
7690  if (hasRestartLbdAverageRatio()) {
7691  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
7692  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7693  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
7694  }
7695  if (hasUseBlockingRestart()) {
7696  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
7697  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7699  }
7701  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
7702  hash = (53 * hash) + getBlockingRestartWindowSize();
7703  }
7705  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
7706  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7707  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
7708  }
7711  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
7712  }
7714  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
7715  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7716  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
7717  }
7718  if (hasMaxTimeInSeconds()) {
7719  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
7720  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7721  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
7722  }
7723  if (hasMaxDeterministicTime()) {
7724  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
7725  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7726  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
7727  }
7728  if (hasMaxNumberOfConflicts()) {
7729  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
7730  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7732  }
7733  if (hasMaxMemoryInMb()) {
7734  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
7735  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7736  getMaxMemoryInMb());
7737  }
7739  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
7740  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7742  }
7743  if (hasRandomSeed()) {
7744  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
7745  hash = (53 * hash) + getRandomSeed();
7746  }
7747  if (hasLogSearchProgress()) {
7748  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
7749  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7751  }
7752  if (hasUsePbResolution()) {
7753  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
7754  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7755  getUsePbResolution());
7756  }
7759  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7761  }
7763  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
7764  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7766  }
7767  if (hasPresolveBveThreshold()) {
7768  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
7769  hash = (53 * hash) + getPresolveBveThreshold();
7770  }
7772  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
7773  hash = (53 * hash) + getPresolveBveClauseWeight();
7774  }
7777  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7778  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
7779  }
7780  if (hasPresolveBlockedClause()) {
7781  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
7782  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7784  }
7785  if (hasPresolveUseBva()) {
7786  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
7787  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7788  getPresolveUseBva());
7789  }
7790  if (hasPresolveBvaThreshold()) {
7791  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
7792  hash = (53 * hash) + getPresolveBvaThreshold();
7793  }
7794  if (hasMaxPresolveIterations()) {
7795  hash = (37 * hash) + MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER;
7796  hash = (53 * hash) + getMaxPresolveIterations();
7797  }
7798  if (hasCpModelPresolve()) {
7799  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
7800  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7801  getCpModelPresolve());
7802  }
7805  hash = (53 * hash) + getCpModelMaxNumPresolveOperations();
7806  }
7807  if (hasCpModelProbingLevel()) {
7808  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
7809  hash = (53 * hash) + getCpModelProbingLevel();
7810  }
7811  if (hasCpModelUseSatPresolve()) {
7812  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
7813  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7815  }
7817  hash = (37 * hash) + EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER;
7818  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7820  }
7822  hash = (37 * hash) + EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER;
7823  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7825  }
7827  hash = (37 * hash) + MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER;
7828  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7829  java.lang.Double.doubleToLongBits(getMergeNoOverlapWorkLimit()));
7830  }
7832  hash = (37 * hash) + MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER;
7833  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7834  java.lang.Double.doubleToLongBits(getMergeAtMostOneWorkLimit()));
7835  }
7837  hash = (37 * hash) + PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER;
7838  hash = (53 * hash) + getPresolveSubstitutionLevel();
7839  }
7840  if (hasUseOptimizationHints()) {
7841  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
7842  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7844  }
7845  if (hasMinimizeCore()) {
7846  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
7847  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7848  getMinimizeCore());
7849  }
7850  if (hasFindMultipleCores()) {
7851  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
7852  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7854  }
7855  if (hasCoverOptimization()) {
7856  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
7857  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7859  }
7860  if (hasMaxSatAssumptionOrder()) {
7861  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
7862  hash = (53 * hash) + maxSatAssumptionOrder_;
7863  }
7865  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
7866  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7868  }
7869  if (hasMaxSatStratification()) {
7870  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
7871  hash = (53 * hash) + maxSatStratification_;
7872  }
7875  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7877  }
7880  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7882  }
7885  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7887  }
7890  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7892  }
7893  if (hasLinearizationLevel()) {
7894  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
7895  hash = (53 * hash) + getLinearizationLevel();
7896  }
7897  if (hasBooleanEncodingLevel()) {
7898  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
7899  hash = (53 * hash) + getBooleanEncodingLevel();
7900  }
7901  if (hasMaxNumCuts()) {
7902  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
7903  hash = (53 * hash) + getMaxNumCuts();
7904  }
7905  if (hasOnlyAddCutsAtLevelZero()) {
7906  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
7907  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7909  }
7910  if (hasAddKnapsackCuts()) {
7911  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
7912  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7913  getAddKnapsackCuts());
7914  }
7915  if (hasAddCgCuts()) {
7916  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
7917  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7918  getAddCgCuts());
7919  }
7920  if (hasAddMirCuts()) {
7921  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
7922  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7923  getAddMirCuts());
7924  }
7925  if (hasMaxAllDiffCutSize()) {
7926  hash = (37 * hash) + MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER;
7927  hash = (53 * hash) + getMaxAllDiffCutSize();
7928  }
7930  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
7931  hash = (53 * hash) + getMaxIntegerRoundingScaling();
7932  }
7933  if (hasAddLpConstraintsLazily()) {
7934  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
7935  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7937  }
7940  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7941  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
7942  }
7944  hash = (37 * hash) + MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER;
7945  hash = (53 * hash) + getMaxConsecutiveInactiveCount();
7946  }
7948  hash = (37 * hash) + NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER;
7949  hash = (53 * hash) + getNewConstraintsBatchSize();
7950  }
7951  if (hasSearchBranching()) {
7952  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
7953  hash = (53 * hash) + searchBranching_;
7954  }
7956  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
7957  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7959  }
7960  if (hasExploitAllLpSolution()) {
7961  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
7962  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7964  }
7965  if (hasExploitBestSolution()) {
7966  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
7967  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7969  }
7970  if (hasExploitObjective()) {
7971  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
7972  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7974  }
7975  if (hasProbingPeriodAtRoot()) {
7976  hash = (37 * hash) + PROBING_PERIOD_AT_ROOT_FIELD_NUMBER;
7977  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7979  }
7982  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7984  }
7985  if (hasOptimizeWithCore()) {
7986  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
7987  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7989  }
7991  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
7992  hash = (53 * hash) + getBinarySearchNumConflicts();
7993  }
7994  if (hasOptimizeWithMaxHs()) {
7995  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
7996  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7998  }
7999  if (hasEnumerateAllSolutions()) {
8000  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
8001  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8003  }
8006  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8008  }
8010  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
8011  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8013  }
8016  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8018  }
8019  if (hasStopAfterFirstSolution()) {
8020  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
8021  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8023  }
8024  if (hasStopAfterPresolve()) {
8025  hash = (37 * hash) + STOP_AFTER_PRESOLVE_FIELD_NUMBER;
8026  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8028  }
8029  if (hasNumSearchWorkers()) {
8030  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
8031  hash = (53 * hash) + getNumSearchWorkers();
8032  }
8033  if (hasInterleaveSearch()) {
8034  hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
8035  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8037  }
8040  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8042  }
8044  hash = (37 * hash) + DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER;
8045  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8047  }
8048  if (hasShareObjectiveBounds()) {
8049  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
8050  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8052  }
8053  if (hasShareLevelZeroBounds()) {
8054  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
8055  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8057  }
8058  if (hasUseLnsOnly()) {
8059  hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
8060  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8061  getUseLnsOnly());
8062  }
8064  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
8065  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8067  }
8068  if (hasUseRinsLns()) {
8069  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
8070  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8071  getUseRinsLns());
8072  }
8073  if (hasUseRelaxationLns()) {
8074  hash = (37 * hash) + USE_RELAXATION_LNS_FIELD_NUMBER;
8075  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8077  }
8078  if (hasDiversifyLnsParams()) {
8079  hash = (37 * hash) + DIVERSIFY_LNS_PARAMS_FIELD_NUMBER;
8080  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8082  }
8083  if (hasRandomizeSearch()) {
8084  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
8085  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8086  getRandomizeSearch());
8087  }
8089  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
8090  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8092  }
8093  if (hasUseOptionalVariables()) {
8094  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
8095  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8097  }
8098  if (hasUseExactLpReason()) {
8099  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
8100  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8102  }
8103  if (hasUseBranchingInLp()) {
8104  hash = (37 * hash) + USE_BRANCHING_IN_LP_FIELD_NUMBER;
8105  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8107  }
8108  if (hasUseCombinedNoOverlap()) {
8109  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
8110  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8112  }
8113  if (hasCatchSigintSignal()) {
8114  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
8115  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8117  }
8118  if (hasUseImpliedBounds()) {
8119  hash = (37 * hash) + USE_IMPLIED_BOUNDS_FIELD_NUMBER;
8120  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
8122  }
8123  if (hasMipMaxBound()) {
8124  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
8125  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8126  java.lang.Double.doubleToLongBits(getMipMaxBound()));
8127  }
8128  if (hasMipVarScaling()) {
8129  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
8130  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8131  java.lang.Double.doubleToLongBits(getMipVarScaling()));
8132  }
8133  if (hasMipWantedPrecision()) {
8134  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
8135  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8136  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
8137  }
8138  if (hasMipMaxActivityExponent()) {
8139  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
8140  hash = (53 * hash) + getMipMaxActivityExponent();
8141  }
8142  if (hasMipCheckPrecision()) {
8143  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
8144  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8145  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
8146  }
8147  hash = (29 * hash) + unknownFields.hashCode();
8148  memoizedHashCode = hash;
8149  return hash;
8150  }
8151 
8153  java.nio.ByteBuffer data)
8154  throws com.google.protobuf.InvalidProtocolBufferException {
8155  return PARSER.parseFrom(data);
8156  }
8158  java.nio.ByteBuffer data,
8159  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8160  throws com.google.protobuf.InvalidProtocolBufferException {
8161  return PARSER.parseFrom(data, extensionRegistry);
8162  }
8164  com.google.protobuf.ByteString data)
8165  throws com.google.protobuf.InvalidProtocolBufferException {
8166  return PARSER.parseFrom(data);
8167  }
8169  com.google.protobuf.ByteString data,
8170  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8171  throws com.google.protobuf.InvalidProtocolBufferException {
8172  return PARSER.parseFrom(data, extensionRegistry);
8173  }
8174  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
8175  throws com.google.protobuf.InvalidProtocolBufferException {
8176  return PARSER.parseFrom(data);
8177  }
8179  byte[] data,
8180  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8181  throws com.google.protobuf.InvalidProtocolBufferException {
8182  return PARSER.parseFrom(data, extensionRegistry);
8183  }
8184  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
8185  throws java.io.IOException {
8186  return com.google.protobuf.GeneratedMessageV3
8187  .parseWithIOException(PARSER, input);
8188  }
8190  java.io.InputStream input,
8191  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8192  throws java.io.IOException {
8193  return com.google.protobuf.GeneratedMessageV3
8194  .parseWithIOException(PARSER, input, extensionRegistry);
8195  }
8196  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
8197  throws java.io.IOException {
8198  return com.google.protobuf.GeneratedMessageV3
8199  .parseDelimitedWithIOException(PARSER, input);
8200  }
8202  java.io.InputStream input,
8203  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8204  throws java.io.IOException {
8205  return com.google.protobuf.GeneratedMessageV3
8206  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
8207  }
8209  com.google.protobuf.CodedInputStream input)
8210  throws java.io.IOException {
8211  return com.google.protobuf.GeneratedMessageV3
8212  .parseWithIOException(PARSER, input);
8213  }
8215  com.google.protobuf.CodedInputStream input,
8216  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8217  throws java.io.IOException {
8218  return com.google.protobuf.GeneratedMessageV3
8219  .parseWithIOException(PARSER, input, extensionRegistry);
8220  }
8221 
8222  @java.lang.Override
8223  public Builder newBuilderForType() { return newBuilder(); }
8224  public static Builder newBuilder() {
8225  return DEFAULT_INSTANCE.toBuilder();
8226  }
8227  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
8228  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
8229  }
8230  @java.lang.Override
8231  public Builder toBuilder() {
8232  return this == DEFAULT_INSTANCE
8233  ? new Builder() : new Builder().mergeFrom(this);
8234  }
8235 
8236  @java.lang.Override
8238  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
8239  Builder builder = new Builder(parent);
8240  return builder;
8241  }
8251  public static final class Builder extends
8252  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
8253  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
8254  com.google.ortools.sat.SatParametersOrBuilder {
8255  public static final com.google.protobuf.Descriptors.Descriptor
8257  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
8258  }
8259 
8260  @java.lang.Override
8261  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
8263  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
8264  .ensureFieldAccessorsInitialized(
8266  }
8267 
8268  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
8269  private Builder() {
8270  maybeForceBuilderInitialization();
8271  }
8272 
8273  private Builder(
8274  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
8275  super(parent);
8276  maybeForceBuilderInitialization();
8277  }
8278  private void maybeForceBuilderInitialization() {
8279  if (com.google.protobuf.GeneratedMessageV3
8280  .alwaysUseFieldBuilders) {
8281  }
8282  }
8283  @java.lang.Override
8284  public Builder clear() {
8285  super.clear();
8286  preferredVariableOrder_ = 0;
8287  bitField0_ = (bitField0_ & ~0x00000001);
8288  initialPolarity_ = 1;
8289  bitField0_ = (bitField0_ & ~0x00000002);
8290  usePhaseSaving_ = true;
8291  bitField0_ = (bitField0_ & ~0x00000004);
8292  randomPolarityRatio_ = 0D;
8293  bitField0_ = (bitField0_ & ~0x00000008);
8294  randomBranchesRatio_ = 0D;
8295  bitField0_ = (bitField0_ & ~0x00000010);
8296  useErwaHeuristic_ = false;
8297  bitField0_ = (bitField0_ & ~0x00000020);
8298  initialVariablesActivity_ = 0D;
8299  bitField0_ = (bitField0_ & ~0x00000040);
8300  alsoBumpVariablesInConflictReasons_ = false;
8301  bitField0_ = (bitField0_ & ~0x00000080);
8302  minimizationAlgorithm_ = 2;
8303  bitField0_ = (bitField0_ & ~0x00000100);
8304  binaryMinimizationAlgorithm_ = 1;
8305  bitField0_ = (bitField0_ & ~0x00000200);
8306  subsumptionDuringConflictAnalysis_ = true;
8307  bitField0_ = (bitField0_ & ~0x00000400);
8308  clauseCleanupPeriod_ = 10000;
8309  bitField0_ = (bitField0_ & ~0x00000800);
8310  clauseCleanupTarget_ = 10000;
8311  bitField0_ = (bitField0_ & ~0x00001000);
8312  clauseCleanupProtection_ = 0;
8313  bitField0_ = (bitField0_ & ~0x00002000);
8314  clauseCleanupLbdBound_ = 5;
8315  bitField0_ = (bitField0_ & ~0x00004000);
8316  clauseCleanupOrdering_ = 0;
8317  bitField0_ = (bitField0_ & ~0x00008000);
8318  pbCleanupIncrement_ = 200;
8319  bitField0_ = (bitField0_ & ~0x00010000);
8320  pbCleanupRatio_ = 0.5D;
8321  bitField0_ = (bitField0_ & ~0x00020000);
8322  minimizeWithPropagationRestartPeriod_ = 10;
8323  bitField0_ = (bitField0_ & ~0x00040000);
8324  minimizeWithPropagationNumDecisions_ = 1000;
8325  bitField0_ = (bitField0_ & ~0x00080000);
8326  variableActivityDecay_ = 0.8D;
8327  bitField0_ = (bitField0_ & ~0x00100000);
8328  maxVariableActivityValue_ = 1e+100D;
8329  bitField0_ = (bitField0_ & ~0x00200000);
8330  glucoseMaxDecay_ = 0.95D;
8331  bitField0_ = (bitField0_ & ~0x00400000);
8332  glucoseDecayIncrement_ = 0.01D;
8333  bitField0_ = (bitField0_ & ~0x00800000);
8334  glucoseDecayIncrementPeriod_ = 5000;
8335  bitField0_ = (bitField0_ & ~0x01000000);
8336  clauseActivityDecay_ = 0.999D;
8337  bitField0_ = (bitField0_ & ~0x02000000);
8338  maxClauseActivityValue_ = 1e+20D;
8339  bitField0_ = (bitField0_ & ~0x04000000);
8340  restartAlgorithms_ = java.util.Collections.emptyList();
8341  bitField0_ = (bitField0_ & ~0x08000000);
8342  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
8343  bitField0_ = (bitField0_ & ~0x10000000);
8344  restartPeriod_ = 50;
8345  bitField0_ = (bitField0_ & ~0x20000000);
8346  restartRunningWindowSize_ = 50;
8347  bitField0_ = (bitField0_ & ~0x40000000);
8348  restartDlAverageRatio_ = 1D;
8349  bitField0_ = (bitField0_ & ~0x80000000);
8350  restartLbdAverageRatio_ = 1D;
8351  bitField1_ = (bitField1_ & ~0x00000001);
8352  useBlockingRestart_ = false;
8353  bitField1_ = (bitField1_ & ~0x00000002);
8354  blockingRestartWindowSize_ = 5000;
8355  bitField1_ = (bitField1_ & ~0x00000004);
8356  blockingRestartMultiplier_ = 1.4D;
8357  bitField1_ = (bitField1_ & ~0x00000008);
8358  numConflictsBeforeStrategyChanges_ = 0;
8359  bitField1_ = (bitField1_ & ~0x00000010);
8360  strategyChangeIncreaseRatio_ = 0D;
8361  bitField1_ = (bitField1_ & ~0x00000020);
8362  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
8363  bitField1_ = (bitField1_ & ~0x00000040);
8364  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
8365  bitField1_ = (bitField1_ & ~0x00000080);
8366  maxNumberOfConflicts_ = 9223372036854775807L;
8367  bitField1_ = (bitField1_ & ~0x00000100);
8368  maxMemoryInMb_ = 10000L;
8369  bitField1_ = (bitField1_ & ~0x00000200);
8370  treatBinaryClausesSeparately_ = true;
8371  bitField1_ = (bitField1_ & ~0x00000400);
8372  randomSeed_ = 1;
8373  bitField1_ = (bitField1_ & ~0x00000800);
8374  logSearchProgress_ = false;
8375  bitField1_ = (bitField1_ & ~0x00001000);
8376  usePbResolution_ = false;
8377  bitField1_ = (bitField1_ & ~0x00002000);
8378  minimizeReductionDuringPbResolution_ = false;
8379  bitField1_ = (bitField1_ & ~0x00004000);
8380  countAssumptionLevelsInLbd_ = true;
8381  bitField1_ = (bitField1_ & ~0x00008000);
8382  presolveBveThreshold_ = 500;
8383  bitField1_ = (bitField1_ & ~0x00010000);
8384  presolveBveClauseWeight_ = 3;
8385  bitField1_ = (bitField1_ & ~0x00020000);
8386  presolveProbingDeterministicTimeLimit_ = 30D;
8387  bitField1_ = (bitField1_ & ~0x00040000);
8388  presolveBlockedClause_ = true;
8389  bitField1_ = (bitField1_ & ~0x00080000);
8390  presolveUseBva_ = true;
8391  bitField1_ = (bitField1_ & ~0x00100000);
8392  presolveBvaThreshold_ = 1;
8393  bitField1_ = (bitField1_ & ~0x00200000);
8394  maxPresolveIterations_ = 3;
8395  bitField1_ = (bitField1_ & ~0x00400000);
8396  cpModelPresolve_ = true;
8397  bitField1_ = (bitField1_ & ~0x00800000);
8398  cpModelMaxNumPresolveOperations_ = 0;
8399  bitField1_ = (bitField1_ & ~0x01000000);
8400  cpModelProbingLevel_ = 2;
8401  bitField1_ = (bitField1_ & ~0x02000000);
8402  cpModelUseSatPresolve_ = true;
8403  bitField1_ = (bitField1_ & ~0x04000000);
8404  expandElementConstraints_ = true;
8405  bitField1_ = (bitField1_ & ~0x08000000);
8406  expandAutomatonConstraints_ = true;
8407  bitField1_ = (bitField1_ & ~0x10000000);
8408  mergeNoOverlapWorkLimit_ = 1000000000000D;
8409  bitField1_ = (bitField1_ & ~0x20000000);
8410  mergeAtMostOneWorkLimit_ = 100000000D;
8411  bitField1_ = (bitField1_ & ~0x40000000);
8412  presolveSubstitutionLevel_ = 1;
8413  bitField1_ = (bitField1_ & ~0x80000000);
8414  useOptimizationHints_ = true;
8415  bitField2_ = (bitField2_ & ~0x00000001);
8416  minimizeCore_ = true;
8417  bitField2_ = (bitField2_ & ~0x00000002);
8418  findMultipleCores_ = true;
8419  bitField2_ = (bitField2_ & ~0x00000004);
8420  coverOptimization_ = true;
8421  bitField2_ = (bitField2_ & ~0x00000008);
8422  maxSatAssumptionOrder_ = 0;
8423  bitField2_ = (bitField2_ & ~0x00000010);
8424  maxSatReverseAssumptionOrder_ = false;
8425  bitField2_ = (bitField2_ & ~0x00000020);
8426  maxSatStratification_ = 1;
8427  bitField2_ = (bitField2_ & ~0x00000040);
8428  usePrecedencesInDisjunctiveConstraint_ = true;
8429  bitField2_ = (bitField2_ & ~0x00000080);
8430  useOverloadCheckerInCumulativeConstraint_ = false;
8431  bitField2_ = (bitField2_ & ~0x00000100);
8432  useTimetableEdgeFindingInCumulativeConstraint_ = false;
8433  bitField2_ = (bitField2_ & ~0x00000200);
8434  useDisjunctiveConstraintInCumulativeConstraint_ = true;
8435  bitField2_ = (bitField2_ & ~0x00000400);
8436  linearizationLevel_ = 1;
8437  bitField2_ = (bitField2_ & ~0x00000800);
8438  booleanEncodingLevel_ = 1;
8439  bitField2_ = (bitField2_ & ~0x00001000);
8440  maxNumCuts_ = 10000;
8441  bitField2_ = (bitField2_ & ~0x00002000);
8442  onlyAddCutsAtLevelZero_ = false;
8443  bitField2_ = (bitField2_ & ~0x00004000);
8444  addKnapsackCuts_ = false;
8445  bitField2_ = (bitField2_ & ~0x00008000);
8446  addCgCuts_ = true;
8447  bitField2_ = (bitField2_ & ~0x00010000);
8448  addMirCuts_ = true;
8449  bitField2_ = (bitField2_ & ~0x00020000);
8450  maxAllDiffCutSize_ = 7;
8451  bitField2_ = (bitField2_ & ~0x00040000);
8452  maxIntegerRoundingScaling_ = 600;
8453  bitField2_ = (bitField2_ & ~0x00080000);
8454  addLpConstraintsLazily_ = true;
8455  bitField2_ = (bitField2_ & ~0x00100000);
8456  minOrthogonalityForLpConstraints_ = 0D;
8457  bitField2_ = (bitField2_ & ~0x00200000);
8458  maxConsecutiveInactiveCount_ = 100;
8459  bitField2_ = (bitField2_ & ~0x00400000);
8460  newConstraintsBatchSize_ = 50;
8461  bitField2_ = (bitField2_ & ~0x00800000);
8462  searchBranching_ = 0;
8463  bitField2_ = (bitField2_ & ~0x01000000);
8464  exploitIntegerLpSolution_ = true;
8465  bitField2_ = (bitField2_ & ~0x02000000);
8466  exploitAllLpSolution_ = true;
8467  bitField2_ = (bitField2_ & ~0x04000000);
8468  exploitBestSolution_ = false;
8469  bitField2_ = (bitField2_ & ~0x08000000);
8470  exploitObjective_ = true;
8471  bitField2_ = (bitField2_ & ~0x10000000);
8472  probingPeriodAtRoot_ = 0L;
8473  bitField2_ = (bitField2_ & ~0x20000000);
8474  pseudoCostReliabilityThreshold_ = 100L;
8475  bitField2_ = (bitField2_ & ~0x40000000);
8476  optimizeWithCore_ = false;
8477  bitField2_ = (bitField2_ & ~0x80000000);
8478  binarySearchNumConflicts_ = -1;
8479  bitField3_ = (bitField3_ & ~0x00000001);
8480  optimizeWithMaxHs_ = false;
8481  bitField3_ = (bitField3_ & ~0x00000002);
8482  enumerateAllSolutions_ = false;
8483  bitField3_ = (bitField3_ & ~0x00000004);
8484  fillTightenedDomainsInResponse_ = false;
8485  bitField3_ = (bitField3_ & ~0x00000008);
8486  instantiateAllVariables_ = true;
8487  bitField3_ = (bitField3_ & ~0x00000010);
8488  autoDetectGreaterThanAtLeastOneOf_ = true;
8489  bitField3_ = (bitField3_ & ~0x00000020);
8490  stopAfterFirstSolution_ = false;
8491  bitField3_ = (bitField3_ & ~0x00000040);
8492  stopAfterPresolve_ = false;
8493  bitField3_ = (bitField3_ & ~0x00000080);
8494  numSearchWorkers_ = 1;
8495  bitField3_ = (bitField3_ & ~0x00000100);
8496  interleaveSearch_ = false;
8497  bitField3_ = (bitField3_ & ~0x00000200);
8498  reduceMemoryUsageInInterleaveMode_ = true;
8499  bitField3_ = (bitField3_ & ~0x00000400);
8500  deterministicParallelSearch_ = false;
8501  bitField3_ = (bitField3_ & ~0x00000800);
8502  shareObjectiveBounds_ = true;
8503  bitField3_ = (bitField3_ & ~0x00001000);
8504  shareLevelZeroBounds_ = true;
8505  bitField3_ = (bitField3_ & ~0x00002000);
8506  useLnsOnly_ = false;
8507  bitField3_ = (bitField3_ & ~0x00004000);
8508  lnsFocusOnDecisionVariables_ = false;
8509  bitField3_ = (bitField3_ & ~0x00008000);
8510  useRinsLns_ = true;
8511  bitField3_ = (bitField3_ & ~0x00010000);
8512  useRelaxationLns_ = false;
8513  bitField3_ = (bitField3_ & ~0x00020000);
8514  diversifyLnsParams_ = false;
8515  bitField3_ = (bitField3_ & ~0x00040000);
8516  randomizeSearch_ = false;
8517  bitField3_ = (bitField3_ & ~0x00080000);
8518  searchRandomizationTolerance_ = 0L;
8519  bitField3_ = (bitField3_ & ~0x00100000);
8520  useOptionalVariables_ = true;
8521  bitField3_ = (bitField3_ & ~0x00200000);
8522  useExactLpReason_ = true;
8523  bitField3_ = (bitField3_ & ~0x00400000);
8524  useBranchingInLp_ = false;
8525  bitField3_ = (bitField3_ & ~0x00800000);
8526  useCombinedNoOverlap_ = false;
8527  bitField3_ = (bitField3_ & ~0x01000000);
8528  catchSigintSignal_ = true;
8529  bitField3_ = (bitField3_ & ~0x02000000);
8530  useImpliedBounds_ = true;
8531  bitField3_ = (bitField3_ & ~0x04000000);
8532  mipMaxBound_ = 10000000D;
8533  bitField3_ = (bitField3_ & ~0x08000000);
8534  mipVarScaling_ = 1D;
8535  bitField3_ = (bitField3_ & ~0x10000000);
8536  mipWantedPrecision_ = 1e-06D;
8537  bitField3_ = (bitField3_ & ~0x20000000);
8538  mipMaxActivityExponent_ = 53;
8539  bitField3_ = (bitField3_ & ~0x40000000);
8540  mipCheckPrecision_ = 0.0001D;
8541  bitField3_ = (bitField3_ & ~0x80000000);
8542  return this;
8543  }
8544 
8545  @java.lang.Override
8546  public com.google.protobuf.Descriptors.Descriptor
8548  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
8549  }
8550 
8551  @java.lang.Override
8554  }
8555 
8556  @java.lang.Override
8559  if (!result.isInitialized()) {
8560  throw newUninitializedMessageException(result);
8561  }
8562  return result;
8563  }
8564 
8565  @java.lang.Override
8568  int from_bitField0_ = bitField0_;
8569  int from_bitField1_ = bitField1_;
8570  int from_bitField2_ = bitField2_;
8571  int from_bitField3_ = bitField3_;
8572  int to_bitField0_ = 0;
8573  int to_bitField1_ = 0;
8574  int to_bitField2_ = 0;
8575  int to_bitField3_ = 0;
8576  if (((from_bitField0_ & 0x00000001) != 0)) {
8577  to_bitField0_ |= 0x00000001;
8578  }
8579  result.preferredVariableOrder_ = preferredVariableOrder_;
8580  if (((from_bitField0_ & 0x00000002) != 0)) {
8581  to_bitField0_ |= 0x00000002;
8582  }
8583  result.initialPolarity_ = initialPolarity_;
8584  if (((from_bitField0_ & 0x00000004) != 0)) {
8585  to_bitField0_ |= 0x00000004;
8586  }
8587  result.usePhaseSaving_ = usePhaseSaving_;
8588  if (((from_bitField0_ & 0x00000008) != 0)) {
8589  result.randomPolarityRatio_ = randomPolarityRatio_;
8590  to_bitField0_ |= 0x00000008;
8591  }
8592  if (((from_bitField0_ & 0x00000010) != 0)) {
8593  result.randomBranchesRatio_ = randomBranchesRatio_;
8594  to_bitField0_ |= 0x00000010;
8595  }
8596  if (((from_bitField0_ & 0x00000020) != 0)) {
8597  result.useErwaHeuristic_ = useErwaHeuristic_;
8598  to_bitField0_ |= 0x00000020;
8599  }
8600  if (((from_bitField0_ & 0x00000040) != 0)) {
8601  result.initialVariablesActivity_ = initialVariablesActivity_;
8602  to_bitField0_ |= 0x00000040;
8603  }
8604  if (((from_bitField0_ & 0x00000080) != 0)) {
8605  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
8606  to_bitField0_ |= 0x00000080;
8607  }
8608  if (((from_bitField0_ & 0x00000100) != 0)) {
8609  to_bitField0_ |= 0x00000100;
8610  }
8611  result.minimizationAlgorithm_ = minimizationAlgorithm_;
8612  if (((from_bitField0_ & 0x00000200) != 0)) {
8613  to_bitField0_ |= 0x00000200;
8614  }
8615  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
8616  if (((from_bitField0_ & 0x00000400) != 0)) {
8617  to_bitField0_ |= 0x00000400;
8618  }
8619  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
8620  if (((from_bitField0_ & 0x00000800) != 0)) {
8621  to_bitField0_ |= 0x00000800;
8622  }
8623  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
8624  if (((from_bitField0_ & 0x00001000) != 0)) {
8625  to_bitField0_ |= 0x00001000;
8626  }
8627  result.clauseCleanupTarget_ = clauseCleanupTarget_;
8628  if (((from_bitField0_ & 0x00002000) != 0)) {
8629  to_bitField0_ |= 0x00002000;
8630  }
8631  result.clauseCleanupProtection_ = clauseCleanupProtection_;
8632  if (((from_bitField0_ & 0x00004000) != 0)) {
8633  to_bitField0_ |= 0x00004000;
8634  }
8635  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
8636  if (((from_bitField0_ & 0x00008000) != 0)) {
8637  to_bitField0_ |= 0x00008000;
8638  }
8639  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
8640  if (((from_bitField0_ & 0x00010000) != 0)) {
8641  to_bitField0_ |= 0x00010000;
8642  }
8643  result.pbCleanupIncrement_ = pbCleanupIncrement_;
8644  if (((from_bitField0_ & 0x00020000) != 0)) {
8645  to_bitField0_ |= 0x00020000;
8646  }
8647  result.pbCleanupRatio_ = pbCleanupRatio_;
8648  if (((from_bitField0_ & 0x00040000) != 0)) {
8649  to_bitField0_ |= 0x00040000;
8650  }
8651  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
8652  if (((from_bitField0_ & 0x00080000) != 0)) {
8653  to_bitField0_ |= 0x00080000;
8654  }
8655  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
8656  if (((from_bitField0_ & 0x00100000) != 0)) {
8657  to_bitField0_ |= 0x00100000;
8658  }
8659  result.variableActivityDecay_ = variableActivityDecay_;
8660  if (((from_bitField0_ & 0x00200000) != 0)) {
8661  to_bitField0_ |= 0x00200000;
8662  }
8663  result.maxVariableActivityValue_ = maxVariableActivityValue_;
8664  if (((from_bitField0_ & 0x00400000) != 0)) {
8665  to_bitField0_ |= 0x00400000;
8666  }
8667  result.glucoseMaxDecay_ = glucoseMaxDecay_;
8668  if (((from_bitField0_ & 0x00800000) != 0)) {
8669  to_bitField0_ |= 0x00800000;
8670  }
8671  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
8672  if (((from_bitField0_ & 0x01000000) != 0)) {
8673  to_bitField0_ |= 0x01000000;
8674  }
8675  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
8676  if (((from_bitField0_ & 0x02000000) != 0)) {
8677  to_bitField0_ |= 0x02000000;
8678  }
8679  result.clauseActivityDecay_ = clauseActivityDecay_;
8680  if (((from_bitField0_ & 0x04000000) != 0)) {
8681  to_bitField0_ |= 0x04000000;
8682  }
8683  result.maxClauseActivityValue_ = maxClauseActivityValue_;
8684  if (((bitField0_ & 0x08000000) != 0)) {
8685  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
8686  bitField0_ = (bitField0_ & ~0x08000000);
8687  }
8688  result.restartAlgorithms_ = restartAlgorithms_;
8689  if (((from_bitField0_ & 0x10000000) != 0)) {
8690  to_bitField0_ |= 0x08000000;
8691  }
8692  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
8693  if (((from_bitField0_ & 0x20000000) != 0)) {
8694  to_bitField0_ |= 0x10000000;
8695  }
8696  result.restartPeriod_ = restartPeriod_;
8697  if (((from_bitField0_ & 0x40000000) != 0)) {
8698  to_bitField0_ |= 0x20000000;
8699  }
8700  result.restartRunningWindowSize_ = restartRunningWindowSize_;
8701  if (((from_bitField0_ & 0x80000000) != 0)) {
8702  to_bitField0_ |= 0x40000000;
8703  }
8704  result.restartDlAverageRatio_ = restartDlAverageRatio_;
8705  if (((from_bitField1_ & 0x00000001) != 0)) {
8706  to_bitField0_ |= 0x80000000;
8707  }
8708  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
8709  if (((from_bitField1_ & 0x00000002) != 0)) {
8710  result.useBlockingRestart_ = useBlockingRestart_;
8711  to_bitField1_ |= 0x00000001;
8712  }
8713  if (((from_bitField1_ & 0x00000004) != 0)) {
8714  to_bitField1_ |= 0x00000002;
8715  }
8716  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
8717  if (((from_bitField1_ & 0x00000008) != 0)) {
8718  to_bitField1_ |= 0x00000004;
8719  }
8720  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
8721  if (((from_bitField1_ & 0x00000010) != 0)) {
8722  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
8723  to_bitField1_ |= 0x00000008;
8724  }
8725  if (((from_bitField1_ & 0x00000020) != 0)) {
8726  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
8727  to_bitField1_ |= 0x00000010;
8728  }
8729  if (((from_bitField1_ & 0x00000040) != 0)) {
8730  to_bitField1_ |= 0x00000020;
8731  }
8732  result.maxTimeInSeconds_ = maxTimeInSeconds_;
8733  if (((from_bitField1_ & 0x00000080) != 0)) {
8734  to_bitField1_ |= 0x00000040;
8735  }
8736  result.maxDeterministicTime_ = maxDeterministicTime_;
8737  if (((from_bitField1_ & 0x00000100) != 0)) {
8738  to_bitField1_ |= 0x00000080;
8739  }
8740  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
8741  if (((from_bitField1_ & 0x00000200) != 0)) {
8742  to_bitField1_ |= 0x00000100;
8743  }
8744  result.maxMemoryInMb_ = maxMemoryInMb_;
8745  if (((from_bitField1_ & 0x00000400) != 0)) {
8746  to_bitField1_ |= 0x00000200;
8747  }
8748  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
8749  if (((from_bitField1_ & 0x00000800) != 0)) {
8750  to_bitField1_ |= 0x00000400;
8751  }
8752  result.randomSeed_ = randomSeed_;
8753  if (((from_bitField1_ & 0x00001000) != 0)) {
8754  result.logSearchProgress_ = logSearchProgress_;
8755  to_bitField1_ |= 0x00000800;
8756  }
8757  if (((from_bitField1_ & 0x00002000) != 0)) {
8758  result.usePbResolution_ = usePbResolution_;
8759  to_bitField1_ |= 0x00001000;
8760  }
8761  if (((from_bitField1_ & 0x00004000) != 0)) {
8762  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
8763  to_bitField1_ |= 0x00002000;
8764  }
8765  if (((from_bitField1_ & 0x00008000) != 0)) {
8766  to_bitField1_ |= 0x00004000;
8767  }
8768  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
8769  if (((from_bitField1_ & 0x00010000) != 0)) {
8770  to_bitField1_ |= 0x00008000;
8771  }
8772  result.presolveBveThreshold_ = presolveBveThreshold_;
8773  if (((from_bitField1_ & 0x00020000) != 0)) {
8774  to_bitField1_ |= 0x00010000;
8775  }
8776  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
8777  if (((from_bitField1_ & 0x00040000) != 0)) {
8778  to_bitField1_ |= 0x00020000;
8779  }
8780  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
8781  if (((from_bitField1_ & 0x00080000) != 0)) {
8782  to_bitField1_ |= 0x00040000;
8783  }
8784  result.presolveBlockedClause_ = presolveBlockedClause_;
8785  if (((from_bitField1_ & 0x00100000) != 0)) {
8786  to_bitField1_ |= 0x00080000;
8787  }
8788  result.presolveUseBva_ = presolveUseBva_;
8789  if (((from_bitField1_ & 0x00200000) != 0)) {
8790  to_bitField1_ |= 0x00100000;
8791  }
8792  result.presolveBvaThreshold_ = presolveBvaThreshold_;
8793  if (((from_bitField1_ & 0x00400000) != 0)) {
8794  to_bitField1_ |= 0x00200000;
8795  }
8796  result.maxPresolveIterations_ = maxPresolveIterations_;
8797  if (((from_bitField1_ & 0x00800000) != 0)) {
8798  to_bitField1_ |= 0x00400000;
8799  }
8800  result.cpModelPresolve_ = cpModelPresolve_;
8801  if (((from_bitField1_ & 0x01000000) != 0)) {
8802  result.cpModelMaxNumPresolveOperations_ = cpModelMaxNumPresolveOperations_;
8803  to_bitField1_ |= 0x00800000;
8804  }
8805  if (((from_bitField1_ & 0x02000000) != 0)) {
8806  to_bitField1_ |= 0x01000000;
8807  }
8808  result.cpModelProbingLevel_ = cpModelProbingLevel_;
8809  if (((from_bitField1_ & 0x04000000) != 0)) {
8810  to_bitField1_ |= 0x02000000;
8811  }
8812  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
8813  if (((from_bitField1_ & 0x08000000) != 0)) {
8814  to_bitField1_ |= 0x04000000;
8815  }
8816  result.expandElementConstraints_ = expandElementConstraints_;
8817  if (((from_bitField1_ & 0x10000000) != 0)) {
8818  to_bitField1_ |= 0x08000000;
8819  }
8820  result.expandAutomatonConstraints_ = expandAutomatonConstraints_;
8821  if (((from_bitField1_ & 0x20000000) != 0)) {
8822  to_bitField1_ |= 0x10000000;
8823  }
8824  result.mergeNoOverlapWorkLimit_ = mergeNoOverlapWorkLimit_;
8825  if (((from_bitField1_ & 0x40000000) != 0)) {
8826  to_bitField1_ |= 0x20000000;
8827  }
8828  result.mergeAtMostOneWorkLimit_ = mergeAtMostOneWorkLimit_;
8829  if (((from_bitField1_ & 0x80000000) != 0)) {
8830  to_bitField1_ |= 0x40000000;
8831  }
8832  result.presolveSubstitutionLevel_ = presolveSubstitutionLevel_;
8833  if (((from_bitField2_ & 0x00000001) != 0)) {
8834  to_bitField1_ |= 0x80000000;
8835  }
8836  result.useOptimizationHints_ = useOptimizationHints_;
8837  if (((from_bitField2_ & 0x00000002) != 0)) {
8838  to_bitField2_ |= 0x00000001;
8839  }
8840  result.minimizeCore_ = minimizeCore_;
8841  if (((from_bitField2_ & 0x00000004) != 0)) {
8842  to_bitField2_ |= 0x00000002;
8843  }
8844  result.findMultipleCores_ = findMultipleCores_;
8845  if (((from_bitField2_ & 0x00000008) != 0)) {
8846  to_bitField2_ |= 0x00000004;
8847  }
8848  result.coverOptimization_ = coverOptimization_;
8849  if (((from_bitField2_ & 0x00000010) != 0)) {
8850  to_bitField2_ |= 0x00000008;
8851  }
8852  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
8853  if (((from_bitField2_ & 0x00000020) != 0)) {
8854  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
8855  to_bitField2_ |= 0x00000010;
8856  }
8857  if (((from_bitField2_ & 0x00000040) != 0)) {
8858  to_bitField2_ |= 0x00000020;
8859  }
8860  result.maxSatStratification_ = maxSatStratification_;
8861  if (((from_bitField2_ & 0x00000080) != 0)) {
8862  to_bitField2_ |= 0x00000040;
8863  }
8864  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
8865  if (((from_bitField2_ & 0x00000100) != 0)) {
8866  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
8867  to_bitField2_ |= 0x00000080;
8868  }
8869  if (((from_bitField2_ & 0x00000200) != 0)) {
8870  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
8871  to_bitField2_ |= 0x00000100;
8872  }
8873  if (((from_bitField2_ & 0x00000400) != 0)) {
8874  to_bitField2_ |= 0x00000200;
8875  }
8876  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
8877  if (((from_bitField2_ & 0x00000800) != 0)) {
8878  to_bitField2_ |= 0x00000400;
8879  }
8880  result.linearizationLevel_ = linearizationLevel_;
8881  if (((from_bitField2_ & 0x00001000) != 0)) {
8882  to_bitField2_ |= 0x00000800;
8883  }
8884  result.booleanEncodingLevel_ = booleanEncodingLevel_;
8885  if (((from_bitField2_ & 0x00002000) != 0)) {
8886  to_bitField2_ |= 0x00001000;
8887  }
8888  result.maxNumCuts_ = maxNumCuts_;
8889  if (((from_bitField2_ & 0x00004000) != 0)) {
8890  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
8891  to_bitField2_ |= 0x00002000;
8892  }
8893  if (((from_bitField2_ & 0x00008000) != 0)) {
8894  result.addKnapsackCuts_ = addKnapsackCuts_;
8895  to_bitField2_ |= 0x00004000;
8896  }
8897  if (((from_bitField2_ & 0x00010000) != 0)) {
8898  to_bitField2_ |= 0x00008000;
8899  }
8900  result.addCgCuts_ = addCgCuts_;
8901  if (((from_bitField2_ & 0x00020000) != 0)) {
8902  to_bitField2_ |= 0x00010000;
8903  }
8904  result.addMirCuts_ = addMirCuts_;
8905  if (((from_bitField2_ & 0x00040000) != 0)) {
8906  to_bitField2_ |= 0x00020000;
8907  }
8908  result.maxAllDiffCutSize_ = maxAllDiffCutSize_;
8909  if (((from_bitField2_ & 0x00080000) != 0)) {
8910  to_bitField2_ |= 0x00040000;
8911  }
8912  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
8913  if (((from_bitField2_ & 0x00100000) != 0)) {
8914  to_bitField2_ |= 0x00080000;
8915  }
8916  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
8917  if (((from_bitField2_ & 0x00200000) != 0)) {
8918  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
8919  to_bitField2_ |= 0x00100000;
8920  }
8921  if (((from_bitField2_ & 0x00400000) != 0)) {
8922  to_bitField2_ |= 0x00200000;
8923  }
8924  result.maxConsecutiveInactiveCount_ = maxConsecutiveInactiveCount_;
8925  if (((from_bitField2_ & 0x00800000) != 0)) {
8926  to_bitField2_ |= 0x00400000;
8927  }
8928  result.newConstraintsBatchSize_ = newConstraintsBatchSize_;
8929  if (((from_bitField2_ & 0x01000000) != 0)) {
8930  to_bitField2_ |= 0x00800000;
8931  }
8932  result.searchBranching_ = searchBranching_;
8933  if (((from_bitField2_ & 0x02000000) != 0)) {
8934  to_bitField2_ |= 0x01000000;
8935  }
8936  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
8937  if (((from_bitField2_ & 0x04000000) != 0)) {
8938  to_bitField2_ |= 0x02000000;
8939  }
8940  result.exploitAllLpSolution_ = exploitAllLpSolution_;
8941  if (((from_bitField2_ & 0x08000000) != 0)) {
8942  result.exploitBestSolution_ = exploitBestSolution_;
8943  to_bitField2_ |= 0x04000000;
8944  }
8945  if (((from_bitField2_ & 0x10000000) != 0)) {
8946  to_bitField2_ |= 0x08000000;
8947  }
8948  result.exploitObjective_ = exploitObjective_;
8949  if (((from_bitField2_ & 0x20000000) != 0)) {
8950  result.probingPeriodAtRoot_ = probingPeriodAtRoot_;
8951  to_bitField2_ |= 0x10000000;
8952  }
8953  if (((from_bitField2_ & 0x40000000) != 0)) {
8954  to_bitField2_ |= 0x20000000;
8955  }
8956  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
8957  if (((from_bitField2_ & 0x80000000) != 0)) {
8958  result.optimizeWithCore_ = optimizeWithCore_;
8959  to_bitField2_ |= 0x40000000;
8960  }
8961  if (((from_bitField3_ & 0x00000001) != 0)) {
8962  to_bitField2_ |= 0x80000000;
8963  }
8964  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
8965  if (((from_bitField3_ & 0x00000002) != 0)) {
8966  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
8967  to_bitField3_ |= 0x00000001;
8968  }
8969  if (((from_bitField3_ & 0x00000004) != 0)) {
8970  result.enumerateAllSolutions_ = enumerateAllSolutions_;
8971  to_bitField3_ |= 0x00000002;
8972  }
8973  if (((from_bitField3_ & 0x00000008) != 0)) {
8974  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
8975  to_bitField3_ |= 0x00000004;
8976  }
8977  if (((from_bitField3_ & 0x00000010) != 0)) {
8978  to_bitField3_ |= 0x00000008;
8979  }
8980  result.instantiateAllVariables_ = instantiateAllVariables_;
8981  if (((from_bitField3_ & 0x00000020) != 0)) {
8982  to_bitField3_ |= 0x00000010;
8983  }
8984  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
8985  if (((from_bitField3_ & 0x00000040) != 0)) {
8986  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
8987  to_bitField3_ |= 0x00000020;
8988  }
8989  if (((from_bitField3_ & 0x00000080) != 0)) {
8990  result.stopAfterPresolve_ = stopAfterPresolve_;
8991  to_bitField3_ |= 0x00000040;
8992  }
8993  if (((from_bitField3_ & 0x00000100) != 0)) {
8994  to_bitField3_ |= 0x00000080;
8995  }
8996  result.numSearchWorkers_ = numSearchWorkers_;
8997  if (((from_bitField3_ & 0x00000200) != 0)) {
8998  result.interleaveSearch_ = interleaveSearch_;
8999  to_bitField3_ |= 0x00000100;
9000  }
9001  if (((from_bitField3_ & 0x00000400) != 0)) {
9002  to_bitField3_ |= 0x00000200;
9003  }
9004  result.reduceMemoryUsageInInterleaveMode_ = reduceMemoryUsageInInterleaveMode_;
9005  if (((from_bitField3_ & 0x00000800) != 0)) {
9006  result.deterministicParallelSearch_ = deterministicParallelSearch_;
9007  to_bitField3_ |= 0x00000400;
9008  }
9009  if (((from_bitField3_ & 0x00001000) != 0)) {
9010  to_bitField3_ |= 0x00000800;
9011  }
9012  result.shareObjectiveBounds_ = shareObjectiveBounds_;
9013  if (((from_bitField3_ & 0x00002000) != 0)) {
9014  to_bitField3_ |= 0x00001000;
9015  }
9016  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
9017  if (((from_bitField3_ & 0x00004000) != 0)) {
9018  result.useLnsOnly_ = useLnsOnly_;
9019  to_bitField3_ |= 0x00002000;
9020  }
9021  if (((from_bitField3_ & 0x00008000) != 0)) {
9022  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
9023  to_bitField3_ |= 0x00004000;
9024  }
9025  if (((from_bitField3_ & 0x00010000) != 0)) {
9026  to_bitField3_ |= 0x00008000;
9027  }
9028  result.useRinsLns_ = useRinsLns_;
9029  if (((from_bitField3_ & 0x00020000) != 0)) {
9030  result.useRelaxationLns_ = useRelaxationLns_;
9031  to_bitField3_ |= 0x00010000;
9032  }
9033  if (((from_bitField3_ & 0x00040000) != 0)) {
9034  result.diversifyLnsParams_ = diversifyLnsParams_;
9035  to_bitField3_ |= 0x00020000;
9036  }
9037  if (((from_bitField3_ & 0x00080000) != 0)) {
9038  result.randomizeSearch_ = randomizeSearch_;
9039  to_bitField3_ |= 0x00040000;
9040  }
9041  if (((from_bitField3_ & 0x00100000) != 0)) {
9042  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
9043  to_bitField3_ |= 0x00080000;
9044  }
9045  if (((from_bitField3_ & 0x00200000) != 0)) {
9046  to_bitField3_ |= 0x00100000;
9047  }
9048  result.useOptionalVariables_ = useOptionalVariables_;
9049  if (((from_bitField3_ & 0x00400000) != 0)) {
9050  to_bitField3_ |= 0x00200000;
9051  }
9052  result.useExactLpReason_ = useExactLpReason_;
9053  if (((from_bitField3_ & 0x00800000) != 0)) {
9054  result.useBranchingInLp_ = useBranchingInLp_;
9055  to_bitField3_ |= 0x00400000;
9056  }
9057  if (((from_bitField3_ & 0x01000000) != 0)) {
9058  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
9059  to_bitField3_ |= 0x00800000;
9060  }
9061  if (((from_bitField3_ & 0x02000000) != 0)) {
9062  to_bitField3_ |= 0x01000000;
9063  }
9064  result.catchSigintSignal_ = catchSigintSignal_;
9065  if (((from_bitField3_ & 0x04000000) != 0)) {
9066  to_bitField3_ |= 0x02000000;
9067  }
9068  result.useImpliedBounds_ = useImpliedBounds_;
9069  if (((from_bitField3_ & 0x08000000) != 0)) {
9070  to_bitField3_ |= 0x04000000;
9071  }
9072  result.mipMaxBound_ = mipMaxBound_;
9073  if (((from_bitField3_ & 0x10000000) != 0)) {
9074  to_bitField3_ |= 0x08000000;
9075  }
9076  result.mipVarScaling_ = mipVarScaling_;
9077  if (((from_bitField3_ & 0x20000000) != 0)) {
9078  to_bitField3_ |= 0x10000000;
9079  }
9080  result.mipWantedPrecision_ = mipWantedPrecision_;
9081  if (((from_bitField3_ & 0x40000000) != 0)) {
9082  to_bitField3_ |= 0x20000000;
9083  }
9084  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
9085  if (((from_bitField3_ & 0x80000000) != 0)) {
9086  to_bitField3_ |= 0x40000000;
9087  }
9088  result.mipCheckPrecision_ = mipCheckPrecision_;
9089  result.bitField0_ = to_bitField0_;
9090  result.bitField1_ = to_bitField1_;
9091  result.bitField2_ = to_bitField2_;
9092  result.bitField3_ = to_bitField3_;
9093  onBuilt();
9094  return result;
9095  }
9096 
9097  @java.lang.Override
9098  public Builder clone() {
9099  return super.clone();
9100  }
9101  @java.lang.Override
9103  com.google.protobuf.Descriptors.FieldDescriptor field,
9104  java.lang.Object value) {
9105  return super.setField(field, value);
9106  }
9107  @java.lang.Override
9109  com.google.protobuf.Descriptors.FieldDescriptor field) {
9110  return super.clearField(field);
9111  }
9112  @java.lang.Override
9114  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
9115  return super.clearOneof(oneof);
9116  }
9117  @java.lang.Override
9119  com.google.protobuf.Descriptors.FieldDescriptor field,
9120  int index, java.lang.Object value) {
9121  return super.setRepeatedField(field, index, value);
9122  }
9123  @java.lang.Override
9125  com.google.protobuf.Descriptors.FieldDescriptor field,
9126  java.lang.Object value) {
9127  return super.addRepeatedField(field, value);
9128  }
9129  @java.lang.Override
9130  public Builder mergeFrom(com.google.protobuf.Message other) {
9131  if (other instanceof com.google.ortools.sat.SatParameters) {
9132  return mergeFrom((com.google.ortools.sat.SatParameters)other);
9133  } else {
9134  super.mergeFrom(other);
9135  return this;
9136  }
9137  }
9138 
9140  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
9141  if (other.hasPreferredVariableOrder()) {
9142  setPreferredVariableOrder(other.getPreferredVariableOrder());
9143  }
9144  if (other.hasInitialPolarity()) {
9145  setInitialPolarity(other.getInitialPolarity());
9146  }
9147  if (other.hasUsePhaseSaving()) {
9148  setUsePhaseSaving(other.getUsePhaseSaving());
9149  }
9150  if (other.hasRandomPolarityRatio()) {
9151  setRandomPolarityRatio(other.getRandomPolarityRatio());
9152  }
9153  if (other.hasRandomBranchesRatio()) {
9154  setRandomBranchesRatio(other.getRandomBranchesRatio());
9155  }
9156  if (other.hasUseErwaHeuristic()) {
9157  setUseErwaHeuristic(other.getUseErwaHeuristic());
9158  }
9159  if (other.hasInitialVariablesActivity()) {
9160  setInitialVariablesActivity(other.getInitialVariablesActivity());
9161  }
9162  if (other.hasAlsoBumpVariablesInConflictReasons()) {
9163  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
9164  }
9165  if (other.hasMinimizationAlgorithm()) {
9166  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
9167  }
9168  if (other.hasBinaryMinimizationAlgorithm()) {
9169  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
9170  }
9171  if (other.hasSubsumptionDuringConflictAnalysis()) {
9172  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
9173  }
9174  if (other.hasClauseCleanupPeriod()) {
9175  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
9176  }
9177  if (other.hasClauseCleanupTarget()) {
9178  setClauseCleanupTarget(other.getClauseCleanupTarget());
9179  }
9180  if (other.hasClauseCleanupProtection()) {
9181  setClauseCleanupProtection(other.getClauseCleanupProtection());
9182  }
9183  if (other.hasClauseCleanupLbdBound()) {
9184  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
9185  }
9186  if (other.hasClauseCleanupOrdering()) {
9187  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
9188  }
9189  if (other.hasPbCleanupIncrement()) {
9190  setPbCleanupIncrement(other.getPbCleanupIncrement());
9191  }
9192  if (other.hasPbCleanupRatio()) {
9193  setPbCleanupRatio(other.getPbCleanupRatio());
9194  }
9195  if (other.hasMinimizeWithPropagationRestartPeriod()) {
9196  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
9197  }
9198  if (other.hasMinimizeWithPropagationNumDecisions()) {
9199  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
9200  }
9201  if (other.hasVariableActivityDecay()) {
9202  setVariableActivityDecay(other.getVariableActivityDecay());
9203  }
9204  if (other.hasMaxVariableActivityValue()) {
9205  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
9206  }
9207  if (other.hasGlucoseMaxDecay()) {
9208  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
9209  }
9210  if (other.hasGlucoseDecayIncrement()) {
9211  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
9212  }
9213  if (other.hasGlucoseDecayIncrementPeriod()) {
9214  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
9215  }
9216  if (other.hasClauseActivityDecay()) {
9217  setClauseActivityDecay(other.getClauseActivityDecay());
9218  }
9219  if (other.hasMaxClauseActivityValue()) {
9220  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
9221  }
9222  if (!other.restartAlgorithms_.isEmpty()) {
9223  if (restartAlgorithms_.isEmpty()) {
9224  restartAlgorithms_ = other.restartAlgorithms_;
9225  bitField0_ = (bitField0_ & ~0x08000000);
9226  } else {
9227  ensureRestartAlgorithmsIsMutable();
9228  restartAlgorithms_.addAll(other.restartAlgorithms_);
9229  }
9230  onChanged();
9231  }
9232  if (other.hasDefaultRestartAlgorithms()) {
9233  bitField0_ |= 0x10000000;
9234  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
9235  onChanged();
9236  }
9237  if (other.hasRestartPeriod()) {
9238  setRestartPeriod(other.getRestartPeriod());
9239  }
9240  if (other.hasRestartRunningWindowSize()) {
9241  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
9242  }
9243  if (other.hasRestartDlAverageRatio()) {
9244  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
9245  }
9246  if (other.hasRestartLbdAverageRatio()) {
9247  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
9248  }
9249  if (other.hasUseBlockingRestart()) {
9250  setUseBlockingRestart(other.getUseBlockingRestart());
9251  }
9252  if (other.hasBlockingRestartWindowSize()) {
9253  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
9254  }
9255  if (other.hasBlockingRestartMultiplier()) {
9256  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
9257  }
9258  if (other.hasNumConflictsBeforeStrategyChanges()) {
9259  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
9260  }
9261  if (other.hasStrategyChangeIncreaseRatio()) {
9262  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
9263  }
9264  if (other.hasMaxTimeInSeconds()) {
9265  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
9266  }
9267  if (other.hasMaxDeterministicTime()) {
9268  setMaxDeterministicTime(other.getMaxDeterministicTime());
9269  }
9270  if (other.hasMaxNumberOfConflicts()) {
9271  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
9272  }
9273  if (other.hasMaxMemoryInMb()) {
9274  setMaxMemoryInMb(other.getMaxMemoryInMb());
9275  }
9276  if (other.hasTreatBinaryClausesSeparately()) {
9277  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
9278  }
9279  if (other.hasRandomSeed()) {
9280  setRandomSeed(other.getRandomSeed());
9281  }
9282  if (other.hasLogSearchProgress()) {
9283  setLogSearchProgress(other.getLogSearchProgress());
9284  }
9285  if (other.hasUsePbResolution()) {
9286  setUsePbResolution(other.getUsePbResolution());
9287  }
9288  if (other.hasMinimizeReductionDuringPbResolution()) {
9289  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
9290  }
9291  if (other.hasCountAssumptionLevelsInLbd()) {
9292  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
9293  }
9294  if (other.hasPresolveBveThreshold()) {
9295  setPresolveBveThreshold(other.getPresolveBveThreshold());
9296  }
9297  if (other.hasPresolveBveClauseWeight()) {
9298  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
9299  }
9300  if (other.hasPresolveProbingDeterministicTimeLimit()) {
9301  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
9302  }
9303  if (other.hasPresolveBlockedClause()) {
9304  setPresolveBlockedClause(other.getPresolveBlockedClause());
9305  }
9306  if (other.hasPresolveUseBva()) {
9307  setPresolveUseBva(other.getPresolveUseBva());
9308  }
9309  if (other.hasPresolveBvaThreshold()) {
9310  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
9311  }
9312  if (other.hasMaxPresolveIterations()) {
9313  setMaxPresolveIterations(other.getMaxPresolveIterations());
9314  }
9315  if (other.hasCpModelPresolve()) {
9316  setCpModelPresolve(other.getCpModelPresolve());
9317  }
9318  if (other.hasCpModelMaxNumPresolveOperations()) {
9319  setCpModelMaxNumPresolveOperations(other.getCpModelMaxNumPresolveOperations());
9320  }
9321  if (other.hasCpModelProbingLevel()) {
9322  setCpModelProbingLevel(other.getCpModelProbingLevel());
9323  }
9324  if (other.hasCpModelUseSatPresolve()) {
9325  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
9326  }
9327  if (other.hasExpandElementConstraints()) {
9328  setExpandElementConstraints(other.getExpandElementConstraints());
9329  }
9330  if (other.hasExpandAutomatonConstraints()) {
9331  setExpandAutomatonConstraints(other.getExpandAutomatonConstraints());
9332  }
9333  if (other.hasMergeNoOverlapWorkLimit()) {
9334  setMergeNoOverlapWorkLimit(other.getMergeNoOverlapWorkLimit());
9335  }
9336  if (other.hasMergeAtMostOneWorkLimit()) {
9337  setMergeAtMostOneWorkLimit(other.getMergeAtMostOneWorkLimit());
9338  }
9339  if (other.hasPresolveSubstitutionLevel()) {
9340  setPresolveSubstitutionLevel(other.getPresolveSubstitutionLevel());
9341  }
9342  if (other.hasUseOptimizationHints()) {
9343  setUseOptimizationHints(other.getUseOptimizationHints());
9344  }
9345  if (other.hasMinimizeCore()) {
9346  setMinimizeCore(other.getMinimizeCore());
9347  }
9348  if (other.hasFindMultipleCores()) {
9349  setFindMultipleCores(other.getFindMultipleCores());
9350  }
9351  if (other.hasCoverOptimization()) {
9352  setCoverOptimization(other.getCoverOptimization());
9353  }
9354  if (other.hasMaxSatAssumptionOrder()) {
9355  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
9356  }
9357  if (other.hasMaxSatReverseAssumptionOrder()) {
9358  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
9359  }
9360  if (other.hasMaxSatStratification()) {
9361  setMaxSatStratification(other.getMaxSatStratification());
9362  }
9363  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
9364  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
9365  }
9366  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
9367  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
9368  }
9369  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
9370  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
9371  }
9372  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
9373  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
9374  }
9375  if (other.hasLinearizationLevel()) {
9376  setLinearizationLevel(other.getLinearizationLevel());
9377  }
9378  if (other.hasBooleanEncodingLevel()) {
9379  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
9380  }
9381  if (other.hasMaxNumCuts()) {
9382  setMaxNumCuts(other.getMaxNumCuts());
9383  }
9384  if (other.hasOnlyAddCutsAtLevelZero()) {
9385  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
9386  }
9387  if (other.hasAddKnapsackCuts()) {
9388  setAddKnapsackCuts(other.getAddKnapsackCuts());
9389  }
9390  if (other.hasAddCgCuts()) {
9391  setAddCgCuts(other.getAddCgCuts());
9392  }
9393  if (other.hasAddMirCuts()) {
9394  setAddMirCuts(other.getAddMirCuts());
9395  }
9396  if (other.hasMaxAllDiffCutSize()) {
9397  setMaxAllDiffCutSize(other.getMaxAllDiffCutSize());
9398  }
9399  if (other.hasMaxIntegerRoundingScaling()) {
9400  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
9401  }
9402  if (other.hasAddLpConstraintsLazily()) {
9403  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
9404  }
9405  if (other.hasMinOrthogonalityForLpConstraints()) {
9406  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
9407  }
9408  if (other.hasMaxConsecutiveInactiveCount()) {
9409  setMaxConsecutiveInactiveCount(other.getMaxConsecutiveInactiveCount());
9410  }
9411  if (other.hasNewConstraintsBatchSize()) {
9412  setNewConstraintsBatchSize(other.getNewConstraintsBatchSize());
9413  }
9414  if (other.hasSearchBranching()) {
9415  setSearchBranching(other.getSearchBranching());
9416  }
9417  if (other.hasExploitIntegerLpSolution()) {
9418  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
9419  }
9420  if (other.hasExploitAllLpSolution()) {
9421  setExploitAllLpSolution(other.getExploitAllLpSolution());
9422  }
9423  if (other.hasExploitBestSolution()) {
9424  setExploitBestSolution(other.getExploitBestSolution());
9425  }
9426  if (other.hasExploitObjective()) {
9427  setExploitObjective(other.getExploitObjective());
9428  }
9429  if (other.hasProbingPeriodAtRoot()) {
9430  setProbingPeriodAtRoot(other.getProbingPeriodAtRoot());
9431  }
9432  if (other.hasPseudoCostReliabilityThreshold()) {
9433  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
9434  }
9435  if (other.hasOptimizeWithCore()) {
9436  setOptimizeWithCore(other.getOptimizeWithCore());
9437  }
9438  if (other.hasBinarySearchNumConflicts()) {
9439  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
9440  }
9441  if (other.hasOptimizeWithMaxHs()) {
9442  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
9443  }
9444  if (other.hasEnumerateAllSolutions()) {
9445  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
9446  }
9447  if (other.hasFillTightenedDomainsInResponse()) {
9448  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
9449  }
9450  if (other.hasInstantiateAllVariables()) {
9451  setInstantiateAllVariables(other.getInstantiateAllVariables());
9452  }
9453  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
9454  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
9455  }
9456  if (other.hasStopAfterFirstSolution()) {
9457  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
9458  }
9459  if (other.hasStopAfterPresolve()) {
9460  setStopAfterPresolve(other.getStopAfterPresolve());
9461  }
9462  if (other.hasNumSearchWorkers()) {
9463  setNumSearchWorkers(other.getNumSearchWorkers());
9464  }
9465  if (other.hasInterleaveSearch()) {
9466  setInterleaveSearch(other.getInterleaveSearch());
9467  }
9468  if (other.hasReduceMemoryUsageInInterleaveMode()) {
9469  setReduceMemoryUsageInInterleaveMode(other.getReduceMemoryUsageInInterleaveMode());
9470  }
9471  if (other.hasDeterministicParallelSearch()) {
9472  setDeterministicParallelSearch(other.getDeterministicParallelSearch());
9473  }
9474  if (other.hasShareObjectiveBounds()) {
9475  setShareObjectiveBounds(other.getShareObjectiveBounds());
9476  }
9477  if (other.hasShareLevelZeroBounds()) {
9478  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
9479  }
9480  if (other.hasUseLnsOnly()) {
9481  setUseLnsOnly(other.getUseLnsOnly());
9482  }
9483  if (other.hasLnsFocusOnDecisionVariables()) {
9484  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
9485  }
9486  if (other.hasUseRinsLns()) {
9487  setUseRinsLns(other.getUseRinsLns());
9488  }
9489  if (other.hasUseRelaxationLns()) {
9490  setUseRelaxationLns(other.getUseRelaxationLns());
9491  }
9492  if (other.hasDiversifyLnsParams()) {
9493  setDiversifyLnsParams(other.getDiversifyLnsParams());
9494  }
9495  if (other.hasRandomizeSearch()) {
9496  setRandomizeSearch(other.getRandomizeSearch());
9497  }
9498  if (other.hasSearchRandomizationTolerance()) {
9499  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
9500  }
9501  if (other.hasUseOptionalVariables()) {
9502  setUseOptionalVariables(other.getUseOptionalVariables());
9503  }
9504  if (other.hasUseExactLpReason()) {
9505  setUseExactLpReason(other.getUseExactLpReason());
9506  }
9507  if (other.hasUseBranchingInLp()) {
9508  setUseBranchingInLp(other.getUseBranchingInLp());
9509  }
9510  if (other.hasUseCombinedNoOverlap()) {
9511  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
9512  }
9513  if (other.hasCatchSigintSignal()) {
9514  setCatchSigintSignal(other.getCatchSigintSignal());
9515  }
9516  if (other.hasUseImpliedBounds()) {
9517  setUseImpliedBounds(other.getUseImpliedBounds());
9518  }
9519  if (other.hasMipMaxBound()) {
9520  setMipMaxBound(other.getMipMaxBound());
9521  }
9522  if (other.hasMipVarScaling()) {
9523  setMipVarScaling(other.getMipVarScaling());
9524  }
9525  if (other.hasMipWantedPrecision()) {
9526  setMipWantedPrecision(other.getMipWantedPrecision());
9527  }
9528  if (other.hasMipMaxActivityExponent()) {
9529  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
9530  }
9531  if (other.hasMipCheckPrecision()) {
9532  setMipCheckPrecision(other.getMipCheckPrecision());
9533  }
9534  this.mergeUnknownFields(other.unknownFields);
9535  onChanged();
9536  return this;
9537  }
9538 
9539  @java.lang.Override
9540  public final boolean isInitialized() {
9541  return true;
9542  }
9543 
9544  @java.lang.Override
9546  com.google.protobuf.CodedInputStream input,
9547  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9548  throws java.io.IOException {
9549  com.google.ortools.sat.SatParameters parsedMessage = null;
9550  try {
9551  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
9552  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9553  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
9554  throw e.unwrapIOException();
9555  } finally {
9556  if (parsedMessage != null) {
9557  mergeFrom(parsedMessage);
9558  }
9559  }
9560  return this;
9561  }
9562  private int bitField0_;
9563  private int bitField1_;
9564  private int bitField2_;
9565  private int bitField3_;
9566 
9567  private int preferredVariableOrder_ = 0;
9572  public boolean hasPreferredVariableOrder() {
9573  return ((bitField0_ & 0x00000001) != 0);
9574  }
9580  @SuppressWarnings("deprecation")
9582  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
9583  }
9590  if (value == null) {
9591  throw new NullPointerException();
9592  }
9593  bitField0_ |= 0x00000001;
9594  preferredVariableOrder_ = value.getNumber();
9595  onChanged();
9596  return this;
9597  }
9603  bitField0_ = (bitField0_ & ~0x00000001);
9604  preferredVariableOrder_ = 0;
9605  onChanged();
9606  return this;
9607  }
9608 
9609  private int initialPolarity_ = 1;
9614  public boolean hasInitialPolarity() {
9615  return ((bitField0_ & 0x00000002) != 0);
9616  }
9622  @SuppressWarnings("deprecation")
9624  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
9625  }
9632  if (value == null) {
9633  throw new NullPointerException();
9634  }
9635  bitField0_ |= 0x00000002;
9636  initialPolarity_ = value.getNumber();
9637  onChanged();
9638  return this;
9639  }
9645  bitField0_ = (bitField0_ & ~0x00000002);
9646  initialPolarity_ = 1;
9647  onChanged();
9648  return this;
9649  }
9650 
9651  private boolean usePhaseSaving_ = true;
9666  public boolean hasUsePhaseSaving() {
9667  return ((bitField0_ & 0x00000004) != 0);
9668  }
9683  public boolean getUsePhaseSaving() {
9684  return usePhaseSaving_;
9685  }
9701  public Builder setUsePhaseSaving(boolean value) {
9702  bitField0_ |= 0x00000004;
9703  usePhaseSaving_ = value;
9704  onChanged();
9705  return this;
9706  }
9722  bitField0_ = (bitField0_ & ~0x00000004);
9723  usePhaseSaving_ = true;
9724  onChanged();
9725  return this;
9726  }
9727 
9728  private double randomPolarityRatio_ ;
9741  public boolean hasRandomPolarityRatio() {
9742  return ((bitField0_ & 0x00000008) != 0);
9743  }
9756  public double getRandomPolarityRatio() {
9757  return randomPolarityRatio_;
9758  }
9772  public Builder setRandomPolarityRatio(double value) {
9773  bitField0_ |= 0x00000008;
9774  randomPolarityRatio_ = value;
9775  onChanged();
9776  return this;
9777  }
9791  bitField0_ = (bitField0_ & ~0x00000008);
9792  randomPolarityRatio_ = 0D;
9793  onChanged();
9794  return this;
9795  }
9796 
9797  private double randomBranchesRatio_ ;
9808  public boolean hasRandomBranchesRatio() {
9809  return ((bitField0_ & 0x00000010) != 0);
9810  }
9821  public double getRandomBranchesRatio() {
9822  return randomBranchesRatio_;
9823  }
9835  public Builder setRandomBranchesRatio(double value) {
9836  bitField0_ |= 0x00000010;
9837  randomBranchesRatio_ = value;
9838  onChanged();
9839  return this;
9840  }
9852  bitField0_ = (bitField0_ & ~0x00000010);
9853  randomBranchesRatio_ = 0D;
9854  onChanged();
9855  return this;
9856  }
9857 
9858  private boolean useErwaHeuristic_ ;
9869  public boolean hasUseErwaHeuristic() {
9870  return ((bitField0_ & 0x00000020) != 0);
9871  }
9882  public boolean getUseErwaHeuristic() {
9883  return useErwaHeuristic_;
9884  }
9896  public Builder setUseErwaHeuristic(boolean value) {
9897  bitField0_ |= 0x00000020;
9898  useErwaHeuristic_ = value;
9899  onChanged();
9900  return this;
9901  }
9913  bitField0_ = (bitField0_ & ~0x00000020);
9914  useErwaHeuristic_ = false;
9915  onChanged();
9916  return this;
9917  }
9918 
9919  private double initialVariablesActivity_ ;
9933  public boolean hasInitialVariablesActivity() {
9934  return ((bitField0_ & 0x00000040) != 0);
9935  }
9950  return initialVariablesActivity_;
9951  }
9966  public Builder setInitialVariablesActivity(double value) {
9967  bitField0_ |= 0x00000040;
9968  initialVariablesActivity_ = value;
9969  onChanged();
9970  return this;
9971  }
9986  bitField0_ = (bitField0_ & ~0x00000040);
9987  initialVariablesActivity_ = 0D;
9988  onChanged();
9989  return this;
9990  }
9991 
9992  private boolean alsoBumpVariablesInConflictReasons_ ;
10005  return ((bitField0_ & 0x00000080) != 0);
10006  }
10019  return alsoBumpVariablesInConflictReasons_;
10020  }
10034  bitField0_ |= 0x00000080;
10035  alsoBumpVariablesInConflictReasons_ = value;
10036  onChanged();
10037  return this;
10038  }
10051  bitField0_ = (bitField0_ & ~0x00000080);
10052  alsoBumpVariablesInConflictReasons_ = false;
10053  onChanged();
10054  return this;
10055  }
10056 
10057  private int minimizationAlgorithm_ = 2;
10062  public boolean hasMinimizationAlgorithm() {
10063  return ((bitField0_ & 0x00000100) != 0);
10064  }
10070  @SuppressWarnings("deprecation")
10072  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
10073  }
10080  if (value == null) {
10081  throw new NullPointerException();
10082  }
10083  bitField0_ |= 0x00000100;
10084  minimizationAlgorithm_ = value.getNumber();
10085  onChanged();
10086  return this;
10087  }
10093  bitField0_ = (bitField0_ & ~0x00000100);
10094  minimizationAlgorithm_ = 2;
10095  onChanged();
10096  return this;
10097  }
10098 
10099  private int binaryMinimizationAlgorithm_ = 1;
10105  return ((bitField0_ & 0x00000200) != 0);
10106  }
10112  @SuppressWarnings("deprecation")
10115  }
10122  if (value == null) {
10123  throw new NullPointerException();
10124  }
10125  bitField0_ |= 0x00000200;
10126  binaryMinimizationAlgorithm_ = value.getNumber();
10127  onChanged();
10128  return this;
10129  }
10135  bitField0_ = (bitField0_ & ~0x00000200);
10136  binaryMinimizationAlgorithm_ = 1;
10137  onChanged();
10138  return this;
10139  }
10140 
10141  private boolean subsumptionDuringConflictAnalysis_ = true;
10154  return ((bitField0_ & 0x00000400) != 0);
10155  }
10168  return subsumptionDuringConflictAnalysis_;
10169  }
10183  bitField0_ |= 0x00000400;
10184  subsumptionDuringConflictAnalysis_ = value;
10185  onChanged();
10186  return this;
10187  }
10200  bitField0_ = (bitField0_ & ~0x00000400);
10201  subsumptionDuringConflictAnalysis_ = true;
10202  onChanged();
10203  return this;
10204  }
10205 
10206  private int clauseCleanupPeriod_ = 10000;
10215  public boolean hasClauseCleanupPeriod() {
10216  return ((bitField0_ & 0x00000800) != 0);
10217  }
10226  public int getClauseCleanupPeriod() {
10227  return clauseCleanupPeriod_;
10228  }
10238  public Builder setClauseCleanupPeriod(int value) {
10239  bitField0_ |= 0x00000800;
10240  clauseCleanupPeriod_ = value;
10241  onChanged();
10242  return this;
10243  }
10253  bitField0_ = (bitField0_ & ~0x00000800);
10254  clauseCleanupPeriod_ = 10000;
10255  onChanged();
10256  return this;
10257  }
10258 
10259  private int clauseCleanupTarget_ = 10000;
10269  public boolean hasClauseCleanupTarget() {
10270  return ((bitField0_ & 0x00001000) != 0);
10271  }
10281  public int getClauseCleanupTarget() {
10282  return clauseCleanupTarget_;
10283  }
10294  public Builder setClauseCleanupTarget(int value) {
10295  bitField0_ |= 0x00001000;
10296  clauseCleanupTarget_ = value;
10297  onChanged();
10298  return this;
10299  }
10310  bitField0_ = (bitField0_ & ~0x00001000);
10311  clauseCleanupTarget_ = 10000;
10312  onChanged();
10313  return this;
10314  }
10315 
10316  private int clauseCleanupProtection_ = 0;
10321  public boolean hasClauseCleanupProtection() {
10322  return ((bitField0_ & 0x00002000) != 0);
10323  }
10329  @SuppressWarnings("deprecation")
10331  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
10332  }
10339  if (value == null) {
10340  throw new NullPointerException();
10341  }
10342  bitField0_ |= 0x00002000;
10343  clauseCleanupProtection_ = value.getNumber();
10344  onChanged();
10345  return this;
10346  }
10352  bitField0_ = (bitField0_ & ~0x00002000);
10353  clauseCleanupProtection_ = 0;
10354  onChanged();
10355  return this;
10356  }
10357 
10358  private int clauseCleanupLbdBound_ = 5;
10368  public boolean hasClauseCleanupLbdBound() {
10369  return ((bitField0_ & 0x00004000) != 0);
10370  }
10381  return clauseCleanupLbdBound_;
10382  }
10393  public Builder setClauseCleanupLbdBound(int value) {
10394  bitField0_ |= 0x00004000;
10395  clauseCleanupLbdBound_ = value;
10396  onChanged();
10397  return this;
10398  }
10409  bitField0_ = (bitField0_ & ~0x00004000);
10410  clauseCleanupLbdBound_ = 5;
10411  onChanged();
10412  return this;
10413  }
10414 
10415  private int clauseCleanupOrdering_ = 0;
10420  public boolean hasClauseCleanupOrdering() {
10421  return ((bitField0_ & 0x00008000) != 0);
10422  }
10428  @SuppressWarnings("deprecation")
10430  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
10431  }
10438  if (value == null) {
10439  throw new NullPointerException();
10440  }
10441  bitField0_ |= 0x00008000;
10442  clauseCleanupOrdering_ = value.getNumber();
10443  onChanged();
10444  return this;
10445  }
10451  bitField0_ = (bitField0_ & ~0x00008000);
10452  clauseCleanupOrdering_ = 0;
10453  onChanged();
10454  return this;
10455  }
10456 
10457  private int pbCleanupIncrement_ = 200;
10466  public boolean hasPbCleanupIncrement() {
10467  return ((bitField0_ & 0x00010000) != 0);
10468  }
10477  public int getPbCleanupIncrement() {
10478  return pbCleanupIncrement_;
10479  }
10489  public Builder setPbCleanupIncrement(int value) {
10490  bitField0_ |= 0x00010000;
10491  pbCleanupIncrement_ = value;
10492  onChanged();
10493  return this;
10494  }
10504  bitField0_ = (bitField0_ & ~0x00010000);
10505  pbCleanupIncrement_ = 200;
10506  onChanged();
10507  return this;
10508  }
10509 
10510  private double pbCleanupRatio_ = 0.5D;
10515  public boolean hasPbCleanupRatio() {
10516  return ((bitField0_ & 0x00020000) != 0);
10517  }
10522  public double getPbCleanupRatio() {
10523  return pbCleanupRatio_;
10524  }
10530  public Builder setPbCleanupRatio(double value) {
10531  bitField0_ |= 0x00020000;
10532  pbCleanupRatio_ = value;
10533  onChanged();
10534  return this;
10535  }
10541  bitField0_ = (bitField0_ & ~0x00020000);
10542  pbCleanupRatio_ = 0.5D;
10543  onChanged();
10544  return this;
10545  }
10546 
10547  private int minimizeWithPropagationRestartPeriod_ = 10;
10567  return ((bitField0_ & 0x00040000) != 0);
10568  }
10588  return minimizeWithPropagationRestartPeriod_;
10589  }
10610  bitField0_ |= 0x00040000;
10611  minimizeWithPropagationRestartPeriod_ = value;
10612  onChanged();
10613  return this;
10614  }
10634  bitField0_ = (bitField0_ & ~0x00040000);
10635  minimizeWithPropagationRestartPeriod_ = 10;
10636  onChanged();
10637  return this;
10638  }
10639 
10640  private int minimizeWithPropagationNumDecisions_ = 1000;
10646  return ((bitField0_ & 0x00080000) != 0);
10647  }
10653  return minimizeWithPropagationNumDecisions_;
10654  }
10661  bitField0_ |= 0x00080000;
10662  minimizeWithPropagationNumDecisions_ = value;
10663  onChanged();
10664  return this;
10665  }
10671  bitField0_ = (bitField0_ & ~0x00080000);
10672  minimizeWithPropagationNumDecisions_ = 1000;
10673  onChanged();
10674  return this;
10675  }
10676 
10677  private double variableActivityDecay_ = 0.8D;
10692  public boolean hasVariableActivityDecay() {
10693  return ((bitField0_ & 0x00100000) != 0);
10694  }
10709  public double getVariableActivityDecay() {
10710  return variableActivityDecay_;
10711  }
10727  public Builder setVariableActivityDecay(double value) {
10728  bitField0_ |= 0x00100000;
10729  variableActivityDecay_ = value;
10730  onChanged();
10731  return this;
10732  }
10748  bitField0_ = (bitField0_ & ~0x00100000);
10749  variableActivityDecay_ = 0.8D;
10750  onChanged();
10751  return this;
10752  }
10753 
10754  private double maxVariableActivityValue_ = 1e+100D;
10759  public boolean hasMaxVariableActivityValue() {
10760  return ((bitField0_ & 0x00200000) != 0);
10761  }
10767  return maxVariableActivityValue_;
10768  }
10774  public Builder setMaxVariableActivityValue(double value) {
10775  bitField0_ |= 0x00200000;
10776  maxVariableActivityValue_ = value;
10777  onChanged();
10778  return this;
10779  }
10785  bitField0_ = (bitField0_ & ~0x00200000);
10786  maxVariableActivityValue_ = 1e+100D;
10787  onChanged();
10788  return this;
10789  }
10790 
10791  private double glucoseMaxDecay_ = 0.95D;
10803  public boolean hasGlucoseMaxDecay() {
10804  return ((bitField0_ & 0x00400000) != 0);
10805  }
10817  public double getGlucoseMaxDecay() {
10818  return glucoseMaxDecay_;
10819  }
10832  public Builder setGlucoseMaxDecay(double value) {
10833  bitField0_ |= 0x00400000;
10834  glucoseMaxDecay_ = value;
10835  onChanged();
10836  return this;
10837  }
10850  bitField0_ = (bitField0_ & ~0x00400000);
10851  glucoseMaxDecay_ = 0.95D;
10852  onChanged();
10853  return this;
10854  }
10855 
10856  private double glucoseDecayIncrement_ = 0.01D;
10861  public boolean hasGlucoseDecayIncrement() {
10862  return ((bitField0_ & 0x00800000) != 0);
10863  }
10868  public double getGlucoseDecayIncrement() {
10869  return glucoseDecayIncrement_;
10870  }
10876  public Builder setGlucoseDecayIncrement(double value) {
10877  bitField0_ |= 0x00800000;
10878  glucoseDecayIncrement_ = value;
10879  onChanged();
10880  return this;
10881  }
10887  bitField0_ = (bitField0_ & ~0x00800000);
10888  glucoseDecayIncrement_ = 0.01D;
10889  onChanged();
10890  return this;
10891  }
10892 
10893  private int glucoseDecayIncrementPeriod_ = 5000;
10899  return ((bitField0_ & 0x01000000) != 0);
10900  }
10906  return glucoseDecayIncrementPeriod_;
10907  }
10914  bitField0_ |= 0x01000000;
10915  glucoseDecayIncrementPeriod_ = value;
10916  onChanged();
10917  return this;
10918  }
10924  bitField0_ = (bitField0_ & ~0x01000000);
10925  glucoseDecayIncrementPeriod_ = 5000;
10926  onChanged();
10927  return this;
10928  }
10929 
10930  private double clauseActivityDecay_ = 0.999D;
10939  public boolean hasClauseActivityDecay() {
10940  return ((bitField0_ & 0x02000000) != 0);
10941  }
10950  public double getClauseActivityDecay() {
10951  return clauseActivityDecay_;
10952  }
10962  public Builder setClauseActivityDecay(double value) {
10963  bitField0_ |= 0x02000000;
10964  clauseActivityDecay_ = value;
10965  onChanged();
10966  return this;
10967  }
10977  bitField0_ = (bitField0_ & ~0x02000000);
10978  clauseActivityDecay_ = 0.999D;
10979  onChanged();
10980  return this;
10981  }
10982 
10983  private double maxClauseActivityValue_ = 1e+20D;
10988  public boolean hasMaxClauseActivityValue() {
10989  return ((bitField0_ & 0x04000000) != 0);
10990  }
10995  public double getMaxClauseActivityValue() {
10996  return maxClauseActivityValue_;
10997  }
11003  public Builder setMaxClauseActivityValue(double value) {
11004  bitField0_ |= 0x04000000;
11005  maxClauseActivityValue_ = value;
11006  onChanged();
11007  return this;
11008  }
11014  bitField0_ = (bitField0_ & ~0x04000000);
11015  maxClauseActivityValue_ = 1e+20D;
11016  onChanged();
11017  return this;
11018  }
11019 
11020  private java.util.List<java.lang.Integer> restartAlgorithms_ =
11021  java.util.Collections.emptyList();
11022  private void ensureRestartAlgorithmsIsMutable() {
11023  if (!((bitField0_ & 0x08000000) != 0)) {
11024  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
11025  bitField0_ |= 0x08000000;
11026  }
11027  }
11044  return new com.google.protobuf.Internal.ListAdapter<
11045  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
11046  }
11063  return restartAlgorithms_.size();
11064  }
11082  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
11083  }
11102  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
11103  if (value == null) {
11104  throw new NullPointerException();
11105  }
11106  ensureRestartAlgorithmsIsMutable();
11107  restartAlgorithms_.set(index, value.getNumber());
11108  onChanged();
11109  return this;
11110  }
11128  if (value == null) {
11129  throw new NullPointerException();
11130  }
11131  ensureRestartAlgorithmsIsMutable();
11132  restartAlgorithms_.add(value.getNumber());
11133  onChanged();
11134  return this;
11135  }
11153  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
11154  ensureRestartAlgorithmsIsMutable();
11155  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
11156  restartAlgorithms_.add(value.getNumber());
11157  }
11158  onChanged();
11159  return this;
11160  }
11177  restartAlgorithms_ = java.util.Collections.emptyList();
11178  bitField0_ = (bitField0_ & ~0x08000000);
11179  onChanged();
11180  return this;
11181  }
11182 
11183  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
11188  public boolean hasDefaultRestartAlgorithms() {
11189  return ((bitField0_ & 0x10000000) != 0);
11190  }
11195  public java.lang.String getDefaultRestartAlgorithms() {
11196  java.lang.Object ref = defaultRestartAlgorithms_;
11197  if (!(ref instanceof java.lang.String)) {
11198  com.google.protobuf.ByteString bs =
11199  (com.google.protobuf.ByteString) ref;
11200  java.lang.String s = bs.toStringUtf8();
11201  if (bs.isValidUtf8()) {
11202  defaultRestartAlgorithms_ = s;
11203  }
11204  return s;
11205  } else {
11206  return (java.lang.String) ref;
11207  }
11208  }
11213  public com.google.protobuf.ByteString
11215  java.lang.Object ref = defaultRestartAlgorithms_;
11216  if (ref instanceof String) {
11217  com.google.protobuf.ByteString b =
11218  com.google.protobuf.ByteString.copyFromUtf8(
11219  (java.lang.String) ref);
11220  defaultRestartAlgorithms_ = b;
11221  return b;
11222  } else {
11223  return (com.google.protobuf.ByteString) ref;
11224  }
11225  }
11232  java.lang.String value) {
11233  if (value == null) {
11234  throw new NullPointerException();
11235  }
11236  bitField0_ |= 0x10000000;
11237  defaultRestartAlgorithms_ = value;
11238  onChanged();
11239  return this;
11240  }
11246  bitField0_ = (bitField0_ & ~0x10000000);
11247  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
11248  onChanged();
11249  return this;
11250  }
11257  com.google.protobuf.ByteString value) {
11258  if (value == null) {
11259  throw new NullPointerException();
11260  }
11261  bitField0_ |= 0x10000000;
11262  defaultRestartAlgorithms_ = value;
11263  onChanged();
11264  return this;
11265  }
11266 
11267  private int restartPeriod_ = 50;
11277  public boolean hasRestartPeriod() {
11278  return ((bitField0_ & 0x20000000) != 0);
11279  }
11289  public int getRestartPeriod() {
11290  return restartPeriod_;
11291  }
11302  public Builder setRestartPeriod(int value) {
11303  bitField0_ |= 0x20000000;
11304  restartPeriod_ = value;
11305  onChanged();
11306  return this;
11307  }
11318  bitField0_ = (bitField0_ & ~0x20000000);
11319  restartPeriod_ = 50;
11320  onChanged();
11321  return this;
11322  }
11323 
11324  private int restartRunningWindowSize_ = 50;
11333  public boolean hasRestartRunningWindowSize() {
11334  return ((bitField0_ & 0x40000000) != 0);
11335  }
11345  return restartRunningWindowSize_;
11346  }
11357  bitField0_ |= 0x40000000;
11358  restartRunningWindowSize_ = value;
11359  onChanged();
11360  return this;
11361  }
11371  bitField0_ = (bitField0_ & ~0x40000000);
11372  restartRunningWindowSize_ = 50;
11373  onChanged();
11374  return this;
11375  }
11376 
11377  private double restartDlAverageRatio_ = 1D;
11387  public boolean hasRestartDlAverageRatio() {
11388  return ((bitField0_ & 0x80000000) != 0);
11389  }
11399  public double getRestartDlAverageRatio() {
11400  return restartDlAverageRatio_;
11401  }
11412  public Builder setRestartDlAverageRatio(double value) {
11413  bitField0_ |= 0x80000000;
11414  restartDlAverageRatio_ = value;
11415  onChanged();
11416  return this;
11417  }
11428  bitField0_ = (bitField0_ & ~0x80000000);
11429  restartDlAverageRatio_ = 1D;
11430  onChanged();
11431  return this;
11432  }
11433 
11434  private double restartLbdAverageRatio_ = 1D;
11439  public boolean hasRestartLbdAverageRatio() {
11440  return ((bitField1_ & 0x00000001) != 0);
11441  }
11446  public double getRestartLbdAverageRatio() {
11447  return restartLbdAverageRatio_;
11448  }
11454  public Builder setRestartLbdAverageRatio(double value) {
11455  bitField1_ |= 0x00000001;
11456  restartLbdAverageRatio_ = value;
11457  onChanged();
11458  return this;
11459  }
11465  bitField1_ = (bitField1_ & ~0x00000001);
11466  restartLbdAverageRatio_ = 1D;
11467  onChanged();
11468  return this;
11469  }
11470 
11471  private boolean useBlockingRestart_ ;
11482  public boolean hasUseBlockingRestart() {
11483  return ((bitField1_ & 0x00000002) != 0);
11484  }
11495  public boolean getUseBlockingRestart() {
11496  return useBlockingRestart_;
11497  }
11509  public Builder setUseBlockingRestart(boolean value) {
11510  bitField1_ |= 0x00000002;
11511  useBlockingRestart_ = value;
11512  onChanged();
11513  return this;
11514  }
11526  bitField1_ = (bitField1_ & ~0x00000002);
11527  useBlockingRestart_ = false;
11528  onChanged();
11529  return this;
11530  }
11531 
11532  private int blockingRestartWindowSize_ = 5000;
11537  public boolean hasBlockingRestartWindowSize() {
11538  return ((bitField1_ & 0x00000004) != 0);
11539  }
11545  return blockingRestartWindowSize_;
11546  }
11553  bitField1_ |= 0x00000004;
11554  blockingRestartWindowSize_ = value;
11555  onChanged();
11556  return this;
11557  }
11563  bitField1_ = (bitField1_ & ~0x00000004);
11564  blockingRestartWindowSize_ = 5000;
11565  onChanged();
11566  return this;
11567  }
11568 
11569  private double blockingRestartMultiplier_ = 1.4D;
11574  public boolean hasBlockingRestartMultiplier() {
11575  return ((bitField1_ & 0x00000008) != 0);
11576  }
11582  return blockingRestartMultiplier_;
11583  }
11589  public Builder setBlockingRestartMultiplier(double value) {
11590  bitField1_ |= 0x00000008;
11591  blockingRestartMultiplier_ = value;
11592  onChanged();
11593  return this;
11594  }
11600  bitField1_ = (bitField1_ & ~0x00000008);
11601  blockingRestartMultiplier_ = 1.4D;
11602  onChanged();
11603  return this;
11604  }
11605 
11606  private int numConflictsBeforeStrategyChanges_ ;
11618  return ((bitField1_ & 0x00000010) != 0);
11619  }
11631  return numConflictsBeforeStrategyChanges_;
11632  }
11645  bitField1_ |= 0x00000010;
11646  numConflictsBeforeStrategyChanges_ = value;
11647  onChanged();
11648  return this;
11649  }
11661  bitField1_ = (bitField1_ & ~0x00000010);
11662  numConflictsBeforeStrategyChanges_ = 0;
11663  onChanged();
11664  return this;
11665  }
11666 
11667  private double strategyChangeIncreaseRatio_ ;
11678  return ((bitField1_ & 0x00000020) != 0);
11679  }
11690  return strategyChangeIncreaseRatio_;
11691  }
11703  bitField1_ |= 0x00000020;
11704  strategyChangeIncreaseRatio_ = value;
11705  onChanged();
11706  return this;
11707  }
11718  bitField1_ = (bitField1_ & ~0x00000020);
11719  strategyChangeIncreaseRatio_ = 0D;
11720  onChanged();
11721  return this;
11722  }
11723 
11724  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
11735  public boolean hasMaxTimeInSeconds() {
11736  return ((bitField1_ & 0x00000040) != 0);
11737  }
11748  public double getMaxTimeInSeconds() {
11749  return maxTimeInSeconds_;
11750  }
11762  public Builder setMaxTimeInSeconds(double value) {
11763  bitField1_ |= 0x00000040;
11764  maxTimeInSeconds_ = value;
11765  onChanged();
11766  return this;
11767  }
11779  bitField1_ = (bitField1_ & ~0x00000040);
11780  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
11781  onChanged();
11782  return this;
11783  }
11784 
11785  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
11798  public boolean hasMaxDeterministicTime() {
11799  return ((bitField1_ & 0x00000080) != 0);
11800  }
11813  public double getMaxDeterministicTime() {
11814  return maxDeterministicTime_;
11815  }
11829  public Builder setMaxDeterministicTime(double value) {
11830  bitField1_ |= 0x00000080;
11831  maxDeterministicTime_ = value;
11832  onChanged();
11833  return this;
11834  }
11848  bitField1_ = (bitField1_ & ~0x00000080);
11849  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
11850  onChanged();
11851  return this;
11852  }
11853 
11854  private long maxNumberOfConflicts_ = 9223372036854775807L;
11868  public boolean hasMaxNumberOfConflicts() {
11869  return ((bitField1_ & 0x00000100) != 0);
11870  }
11884  public long getMaxNumberOfConflicts() {
11885  return maxNumberOfConflicts_;
11886  }
11901  public Builder setMaxNumberOfConflicts(long value) {
11902  bitField1_ |= 0x00000100;
11903  maxNumberOfConflicts_ = value;
11904  onChanged();
11905  return this;
11906  }
11921  bitField1_ = (bitField1_ & ~0x00000100);
11922  maxNumberOfConflicts_ = 9223372036854775807L;
11923  onChanged();
11924  return this;
11925  }
11926 
11927  private long maxMemoryInMb_ = 10000L;
11939  public boolean hasMaxMemoryInMb() {
11940  return ((bitField1_ & 0x00000200) != 0);
11941  }
11953  public long getMaxMemoryInMb() {
11954  return maxMemoryInMb_;
11955  }
11968  public Builder setMaxMemoryInMb(long value) {
11969  bitField1_ |= 0x00000200;
11970  maxMemoryInMb_ = value;
11971  onChanged();
11972  return this;
11973  }
11986  bitField1_ = (bitField1_ & ~0x00000200);
11987  maxMemoryInMb_ = 10000L;
11988  onChanged();
11989  return this;
11990  }
11991 
11992  private boolean treatBinaryClausesSeparately_ = true;
12004  return ((bitField1_ & 0x00000400) != 0);
12005  }
12017  return treatBinaryClausesSeparately_;
12018  }
12031  bitField1_ |= 0x00000400;
12032  treatBinaryClausesSeparately_ = value;
12033  onChanged();
12034  return this;
12035  }
12047  bitField1_ = (bitField1_ & ~0x00000400);
12048  treatBinaryClausesSeparately_ = true;
12049  onChanged();
12050  return this;
12051  }
12052 
12053  private int randomSeed_ = 1;
12067  public boolean hasRandomSeed() {
12068  return ((bitField1_ & 0x00000800) != 0);
12069  }
12083  public int getRandomSeed() {
12084  return randomSeed_;
12085  }
12100  public Builder setRandomSeed(int value) {
12101  bitField1_ |= 0x00000800;
12102  randomSeed_ = value;
12103  onChanged();
12104  return this;
12105  }
12120  bitField1_ = (bitField1_ & ~0x00000800);
12121  randomSeed_ = 1;
12122  onChanged();
12123  return this;
12124  }
12125 
12126  private boolean logSearchProgress_ ;
12135  public boolean hasLogSearchProgress() {
12136  return ((bitField1_ & 0x00001000) != 0);
12137  }
12146  public boolean getLogSearchProgress() {
12147  return logSearchProgress_;
12148  }
12158  public Builder setLogSearchProgress(boolean value) {
12159  bitField1_ |= 0x00001000;
12160  logSearchProgress_ = value;
12161  onChanged();
12162  return this;
12163  }
12173  bitField1_ = (bitField1_ & ~0x00001000);
12174  logSearchProgress_ = false;
12175  onChanged();
12176  return this;
12177  }
12178 
12179  private boolean usePbResolution_ ;
12191  public boolean hasUsePbResolution() {
12192  return ((bitField1_ & 0x00002000) != 0);
12193  }
12205  public boolean getUsePbResolution() {
12206  return usePbResolution_;
12207  }
12220  public Builder setUsePbResolution(boolean value) {
12221  bitField1_ |= 0x00002000;
12222  usePbResolution_ = value;
12223  onChanged();
12224  return this;
12225  }
12238  bitField1_ = (bitField1_ & ~0x00002000);
12239  usePbResolution_ = false;
12240  onChanged();
12241  return this;
12242  }
12243 
12244  private boolean minimizeReductionDuringPbResolution_ ;
12257  return ((bitField1_ & 0x00004000) != 0);
12258  }
12271  return minimizeReductionDuringPbResolution_;
12272  }
12286  bitField1_ |= 0x00004000;
12287  minimizeReductionDuringPbResolution_ = value;
12288  onChanged();
12289  return this;
12290  }
12303  bitField1_ = (bitField1_ & ~0x00004000);
12304  minimizeReductionDuringPbResolution_ = false;
12305  onChanged();
12306  return this;
12307  }
12308 
12309  private boolean countAssumptionLevelsInLbd_ = true;
12326  return ((bitField1_ & 0x00008000) != 0);
12327  }
12344  return countAssumptionLevelsInLbd_;
12345  }
12362  public Builder setCountAssumptionLevelsInLbd(boolean value) {
12363  bitField1_ |= 0x00008000;
12364  countAssumptionLevelsInLbd_ = value;
12365  onChanged();
12366  return this;
12367  }
12384  bitField1_ = (bitField1_ & ~0x00008000);
12385  countAssumptionLevelsInLbd_ = true;
12386  onChanged();
12387  return this;
12388  }
12389 
12390  private int presolveBveThreshold_ = 500;
12401  public boolean hasPresolveBveThreshold() {
12402  return ((bitField1_ & 0x00010000) != 0);
12403  }
12415  return presolveBveThreshold_;
12416  }
12428  public Builder setPresolveBveThreshold(int value) {
12429  bitField1_ |= 0x00010000;
12430  presolveBveThreshold_ = value;
12431  onChanged();
12432  return this;
12433  }
12445  bitField1_ = (bitField1_ & ~0x00010000);
12446  presolveBveThreshold_ = 500;
12447  onChanged();
12448  return this;
12449  }
12450 
12451  private int presolveBveClauseWeight_ = 3;
12461  public boolean hasPresolveBveClauseWeight() {
12462  return ((bitField1_ & 0x00020000) != 0);
12463  }
12474  return presolveBveClauseWeight_;
12475  }
12487  bitField1_ |= 0x00020000;
12488  presolveBveClauseWeight_ = value;
12489  onChanged();
12490  return this;
12491  }
12502  bitField1_ = (bitField1_ & ~0x00020000);
12503  presolveBveClauseWeight_ = 3;
12504  onChanged();
12505  return this;
12506  }
12507 
12508  private double presolveProbingDeterministicTimeLimit_ = 30D;
12519  return ((bitField1_ & 0x00040000) != 0);
12520  }
12531  return presolveProbingDeterministicTimeLimit_;
12532  }
12544  bitField1_ |= 0x00040000;
12545  presolveProbingDeterministicTimeLimit_ = value;
12546  onChanged();
12547  return this;
12548  }
12559  bitField1_ = (bitField1_ & ~0x00040000);
12560  presolveProbingDeterministicTimeLimit_ = 30D;
12561  onChanged();
12562  return this;
12563  }
12564 
12565  private boolean presolveBlockedClause_ = true;
12575  public boolean hasPresolveBlockedClause() {
12576  return ((bitField1_ & 0x00080000) != 0);
12577  }
12587  public boolean getPresolveBlockedClause() {
12588  return presolveBlockedClause_;
12589  }
12600  public Builder setPresolveBlockedClause(boolean value) {
12601  bitField1_ |= 0x00080000;
12602  presolveBlockedClause_ = value;
12603  onChanged();
12604  return this;
12605  }
12616  bitField1_ = (bitField1_ & ~0x00080000);
12617  presolveBlockedClause_ = true;
12618  onChanged();
12619  return this;
12620  }
12621 
12622  private boolean presolveUseBva_ = true;
12631  public boolean hasPresolveUseBva() {
12632  return ((bitField1_ & 0x00100000) != 0);
12633  }
12642  public boolean getPresolveUseBva() {
12643  return presolveUseBva_;
12644  }
12654  public Builder setPresolveUseBva(boolean value) {
12655  bitField1_ |= 0x00100000;
12656  presolveUseBva_ = value;
12657  onChanged();
12658  return this;
12659  }
12669  bitField1_ = (bitField1_ & ~0x00100000);
12670  presolveUseBva_ = true;
12671  onChanged();
12672  return this;
12673  }
12674 
12675  private int presolveBvaThreshold_ = 1;
12687  public boolean hasPresolveBvaThreshold() {
12688  return ((bitField1_ & 0x00200000) != 0);
12689  }
12702  return presolveBvaThreshold_;
12703  }
12716  public Builder setPresolveBvaThreshold(int value) {
12717  bitField1_ |= 0x00200000;
12718  presolveBvaThreshold_ = value;
12719  onChanged();
12720  return this;
12721  }
12734  bitField1_ = (bitField1_ & ~0x00200000);
12735  presolveBvaThreshold_ = 1;
12736  onChanged();
12737  return this;
12738  }
12739 
12740  private int maxPresolveIterations_ = 3;
12751  public boolean hasMaxPresolveIterations() {
12752  return ((bitField1_ & 0x00400000) != 0);
12753  }
12765  return maxPresolveIterations_;
12766  }
12778  public Builder setMaxPresolveIterations(int value) {
12779  bitField1_ |= 0x00400000;
12780  maxPresolveIterations_ = value;
12781  onChanged();
12782  return this;
12783  }
12795  bitField1_ = (bitField1_ & ~0x00400000);
12796  maxPresolveIterations_ = 3;
12797  onChanged();
12798  return this;
12799  }
12800 
12801  private boolean cpModelPresolve_ = true;
12810  public boolean hasCpModelPresolve() {
12811  return ((bitField1_ & 0x00800000) != 0);
12812  }
12821  public boolean getCpModelPresolve() {
12822  return cpModelPresolve_;
12823  }
12833  public Builder setCpModelPresolve(boolean value) {
12834  bitField1_ |= 0x00800000;
12835  cpModelPresolve_ = value;
12836  onChanged();
12837  return this;
12838  }
12848  bitField1_ = (bitField1_ & ~0x00800000);
12849  cpModelPresolve_ = true;
12850  onChanged();
12851  return this;
12852  }
12853 
12854  private int cpModelMaxNumPresolveOperations_ ;
12865  return ((bitField1_ & 0x01000000) != 0);
12866  }
12877  return cpModelMaxNumPresolveOperations_;
12878  }
12890  bitField1_ |= 0x01000000;
12891  cpModelMaxNumPresolveOperations_ = value;
12892  onChanged();
12893  return this;
12894  }
12905  bitField1_ = (bitField1_ & ~0x01000000);
12906  cpModelMaxNumPresolveOperations_ = 0;
12907  onChanged();
12908  return this;
12909  }
12910 
12911  private int cpModelProbingLevel_ = 2;
12920  public boolean hasCpModelProbingLevel() {
12921  return ((bitField1_ & 0x02000000) != 0);
12922  }
12931  public int getCpModelProbingLevel() {
12932  return cpModelProbingLevel_;
12933  }
12943  public Builder setCpModelProbingLevel(int value) {
12944  bitField1_ |= 0x02000000;
12945  cpModelProbingLevel_ = value;
12946  onChanged();
12947  return this;
12948  }
12958  bitField1_ = (bitField1_ & ~0x02000000);
12959  cpModelProbingLevel_ = 2;
12960  onChanged();
12961  return this;
12962  }
12963 
12964  private boolean cpModelUseSatPresolve_ = true;
12973  public boolean hasCpModelUseSatPresolve() {
12974  return ((bitField1_ & 0x04000000) != 0);
12975  }
12984  public boolean getCpModelUseSatPresolve() {
12985  return cpModelUseSatPresolve_;
12986  }
12996  public Builder setCpModelUseSatPresolve(boolean value) {
12997  bitField1_ |= 0x04000000;
12998  cpModelUseSatPresolve_ = value;
12999  onChanged();
13000  return this;
13001  }
13011  bitField1_ = (bitField1_ & ~0x04000000);
13012  cpModelUseSatPresolve_ = true;
13013  onChanged();
13014  return this;
13015  }
13016 
13017  private boolean expandElementConstraints_ = true;
13027  public boolean hasExpandElementConstraints() {
13028  return ((bitField1_ & 0x08000000) != 0);
13029  }
13039  public boolean getExpandElementConstraints() {
13040  return expandElementConstraints_;
13041  }
13052  public Builder setExpandElementConstraints(boolean value) {
13053  bitField1_ |= 0x08000000;
13054  expandElementConstraints_ = value;
13055  onChanged();
13056  return this;
13057  }
13068  bitField1_ = (bitField1_ & ~0x08000000);
13069  expandElementConstraints_ = true;
13070  onChanged();
13071  return this;
13072  }
13073 
13074  private boolean expandAutomatonConstraints_ = true;
13084  return ((bitField1_ & 0x10000000) != 0);
13085  }
13095  return expandAutomatonConstraints_;
13096  }
13106  public Builder setExpandAutomatonConstraints(boolean value) {
13107  bitField1_ |= 0x10000000;
13108  expandAutomatonConstraints_ = value;
13109  onChanged();
13110  return this;
13111  }
13121  bitField1_ = (bitField1_ & ~0x10000000);
13122  expandAutomatonConstraints_ = true;
13123  onChanged();
13124  return this;
13125  }
13126 
13127  private double mergeNoOverlapWorkLimit_ = 1000000000000D;
13140  public boolean hasMergeNoOverlapWorkLimit() {
13141  return ((bitField1_ & 0x20000000) != 0);
13142  }
13155  public double getMergeNoOverlapWorkLimit() {
13156  return mergeNoOverlapWorkLimit_;
13157  }
13171  public Builder setMergeNoOverlapWorkLimit(double value) {
13172  bitField1_ |= 0x20000000;
13173  mergeNoOverlapWorkLimit_ = value;
13174  onChanged();
13175  return this;
13176  }
13190  bitField1_ = (bitField1_ & ~0x20000000);
13191  mergeNoOverlapWorkLimit_ = 1000000000000D;
13192  onChanged();
13193  return this;
13194  }
13195 
13196  private double mergeAtMostOneWorkLimit_ = 100000000D;
13201  public boolean hasMergeAtMostOneWorkLimit() {
13202  return ((bitField1_ & 0x40000000) != 0);
13203  }
13208  public double getMergeAtMostOneWorkLimit() {
13209  return mergeAtMostOneWorkLimit_;
13210  }
13216  public Builder setMergeAtMostOneWorkLimit(double value) {
13217  bitField1_ |= 0x40000000;
13218  mergeAtMostOneWorkLimit_ = value;
13219  onChanged();
13220  return this;
13221  }
13227  bitField1_ = (bitField1_ & ~0x40000000);
13228  mergeAtMostOneWorkLimit_ = 100000000D;
13229  onChanged();
13230  return this;
13231  }
13232 
13233  private int presolveSubstitutionLevel_ = 1;
13245  public boolean hasPresolveSubstitutionLevel() {
13246  return ((bitField1_ & 0x80000000) != 0);
13247  }
13260  return presolveSubstitutionLevel_;
13261  }
13275  bitField1_ |= 0x80000000;
13276  presolveSubstitutionLevel_ = value;
13277  onChanged();
13278  return this;
13279  }
13292  bitField1_ = (bitField1_ & ~0x80000000);
13293  presolveSubstitutionLevel_ = 1;
13294  onChanged();
13295  return this;
13296  }
13297 
13298  private boolean useOptimizationHints_ = true;
13310  public boolean hasUseOptimizationHints() {
13311  return ((bitField2_ & 0x00000001) != 0);
13312  }
13324  public boolean getUseOptimizationHints() {
13325  return useOptimizationHints_;
13326  }
13339  public Builder setUseOptimizationHints(boolean value) {
13340  bitField2_ |= 0x00000001;
13341  useOptimizationHints_ = value;
13342  onChanged();
13343  return this;
13344  }
13357  bitField2_ = (bitField2_ & ~0x00000001);
13358  useOptimizationHints_ = true;
13359  onChanged();
13360  return this;
13361  }
13362 
13363  private boolean minimizeCore_ = true;
13372  public boolean hasMinimizeCore() {
13373  return ((bitField2_ & 0x00000002) != 0);
13374  }
13383  public boolean getMinimizeCore() {
13384  return minimizeCore_;
13385  }
13395  public Builder setMinimizeCore(boolean value) {
13396  bitField2_ |= 0x00000002;
13397  minimizeCore_ = value;
13398  onChanged();
13399  return this;
13400  }
13410  bitField2_ = (bitField2_ & ~0x00000002);
13411  minimizeCore_ = true;
13412  onChanged();
13413  return this;
13414  }
13415 
13416  private boolean findMultipleCores_ = true;
13426  public boolean hasFindMultipleCores() {
13427  return ((bitField2_ & 0x00000004) != 0);
13428  }
13438  public boolean getFindMultipleCores() {
13439  return findMultipleCores_;
13440  }
13451  public Builder setFindMultipleCores(boolean value) {
13452  bitField2_ |= 0x00000004;
13453  findMultipleCores_ = value;
13454  onChanged();
13455  return this;
13456  }
13467  bitField2_ = (bitField2_ & ~0x00000004);
13468  findMultipleCores_ = true;
13469  onChanged();
13470  return this;
13471  }
13472 
13473  private boolean coverOptimization_ = true;
13483  public boolean hasCoverOptimization() {
13484  return ((bitField2_ & 0x00000008) != 0);
13485  }
13495  public boolean getCoverOptimization() {
13496  return coverOptimization_;
13497  }
13508  public Builder setCoverOptimization(boolean value) {
13509  bitField2_ |= 0x00000008;
13510  coverOptimization_ = value;
13511  onChanged();
13512  return this;
13513  }
13524  bitField2_ = (bitField2_ & ~0x00000008);
13525  coverOptimization_ = true;
13526  onChanged();
13527  return this;
13528  }
13529 
13530  private int maxSatAssumptionOrder_ = 0;
13535  public boolean hasMaxSatAssumptionOrder() {
13536  return ((bitField2_ & 0x00000010) != 0);
13537  }
13543  @SuppressWarnings("deprecation")
13546  }
13553  if (value == null) {
13554  throw new NullPointerException();
13555  }
13556  bitField2_ |= 0x00000010;
13557  maxSatAssumptionOrder_ = value.getNumber();
13558  onChanged();
13559  return this;
13560  }
13566  bitField2_ = (bitField2_ & ~0x00000010);
13567  maxSatAssumptionOrder_ = 0;
13568  onChanged();
13569  return this;
13570  }
13571 
13572  private boolean maxSatReverseAssumptionOrder_ ;
13583  return ((bitField2_ & 0x00000020) != 0);
13584  }
13595  return maxSatReverseAssumptionOrder_;
13596  }
13608  bitField2_ |= 0x00000020;
13609  maxSatReverseAssumptionOrder_ = value;
13610  onChanged();
13611  return this;
13612  }
13623  bitField2_ = (bitField2_ & ~0x00000020);
13624  maxSatReverseAssumptionOrder_ = false;
13625  onChanged();
13626  return this;
13627  }
13628 
13629  private int maxSatStratification_ = 1;
13634  public boolean hasMaxSatStratification() {
13635  return ((bitField2_ & 0x00000040) != 0);
13636  }
13642  @SuppressWarnings("deprecation")
13645  }
13652  if (value == null) {
13653  throw new NullPointerException();
13654  }
13655  bitField2_ |= 0x00000040;
13656  maxSatStratification_ = value.getNumber();
13657  onChanged();
13658  return this;
13659  }
13665  bitField2_ = (bitField2_ & ~0x00000040);
13666  maxSatStratification_ = 1;
13667  onChanged();
13668  return this;
13669  }
13670 
13671  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
13688  return ((bitField2_ & 0x00000080) != 0);
13689  }
13706  return usePrecedencesInDisjunctiveConstraint_;
13707  }
13725  bitField2_ |= 0x00000080;
13726  usePrecedencesInDisjunctiveConstraint_ = value;
13727  onChanged();
13728  return this;
13729  }
13746  bitField2_ = (bitField2_ & ~0x00000080);
13747  usePrecedencesInDisjunctiveConstraint_ = true;
13748  onChanged();
13749  return this;
13750  }
13751 
13752  private boolean useOverloadCheckerInCumulativeConstraint_ ;
13767  return ((bitField2_ & 0x00000100) != 0);
13768  }
13783  return useOverloadCheckerInCumulativeConstraint_;
13784  }
13800  bitField2_ |= 0x00000100;
13801  useOverloadCheckerInCumulativeConstraint_ = value;
13802  onChanged();
13803  return this;
13804  }
13819  bitField2_ = (bitField2_ & ~0x00000100);
13820  useOverloadCheckerInCumulativeConstraint_ = false;
13821  onChanged();
13822  return this;
13823  }
13824 
13825  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
13840  return ((bitField2_ & 0x00000200) != 0);
13841  }
13856  return useTimetableEdgeFindingInCumulativeConstraint_;
13857  }
13873  bitField2_ |= 0x00000200;
13874  useTimetableEdgeFindingInCumulativeConstraint_ = value;
13875  onChanged();
13876  return this;
13877  }
13892  bitField2_ = (bitField2_ & ~0x00000200);
13893  useTimetableEdgeFindingInCumulativeConstraint_ = false;
13894  onChanged();
13895  return this;
13896  }
13897 
13898  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
13915  return ((bitField2_ & 0x00000400) != 0);
13916  }
13933  return useDisjunctiveConstraintInCumulativeConstraint_;
13934  }
13952  bitField2_ |= 0x00000400;
13953  useDisjunctiveConstraintInCumulativeConstraint_ = value;
13954  onChanged();
13955  return this;
13956  }
13973  bitField2_ = (bitField2_ & ~0x00000400);
13974  useDisjunctiveConstraintInCumulativeConstraint_ = true;
13975  onChanged();
13976  return this;
13977  }
13978 
13979  private int linearizationLevel_ = 1;
13991  public boolean hasLinearizationLevel() {
13992  return ((bitField2_ & 0x00000800) != 0);
13993  }
14005  public int getLinearizationLevel() {
14006  return linearizationLevel_;
14007  }
14020  public Builder setLinearizationLevel(int value) {
14021  bitField2_ |= 0x00000800;
14022  linearizationLevel_ = value;
14023  onChanged();
14024  return this;
14025  }
14038  bitField2_ = (bitField2_ & ~0x00000800);
14039  linearizationLevel_ = 1;
14040  onChanged();
14041  return this;
14042  }
14043 
14044  private int booleanEncodingLevel_ = 1;
14054  public boolean hasBooleanEncodingLevel() {
14055  return ((bitField2_ & 0x00001000) != 0);
14056  }
14067  return booleanEncodingLevel_;
14068  }
14079  public Builder setBooleanEncodingLevel(int value) {
14080  bitField2_ |= 0x00001000;
14081  booleanEncodingLevel_ = value;
14082  onChanged();
14083  return this;
14084  }
14095  bitField2_ = (bitField2_ & ~0x00001000);
14096  booleanEncodingLevel_ = 1;
14097  onChanged();
14098  return this;
14099  }
14100 
14101  private int maxNumCuts_ = 10000;
14113  public boolean hasMaxNumCuts() {
14114  return ((bitField2_ & 0x00002000) != 0);
14115  }
14127  public int getMaxNumCuts() {
14128  return maxNumCuts_;
14129  }
14142  public Builder setMaxNumCuts(int value) {
14143  bitField2_ |= 0x00002000;
14144  maxNumCuts_ = value;
14145  onChanged();
14146  return this;
14147  }
14160  bitField2_ = (bitField2_ & ~0x00002000);
14161  maxNumCuts_ = 10000;
14162  onChanged();
14163  return this;
14164  }
14165 
14166  private boolean onlyAddCutsAtLevelZero_ ;
14176  public boolean hasOnlyAddCutsAtLevelZero() {
14177  return ((bitField2_ & 0x00004000) != 0);
14178  }
14188  public boolean getOnlyAddCutsAtLevelZero() {
14189  return onlyAddCutsAtLevelZero_;
14190  }
14201  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
14202  bitField2_ |= 0x00004000;
14203  onlyAddCutsAtLevelZero_ = value;
14204  onChanged();
14205  return this;
14206  }
14217  bitField2_ = (bitField2_ & ~0x00004000);
14218  onlyAddCutsAtLevelZero_ = false;
14219  onChanged();
14220  return this;
14221  }
14222 
14223  private boolean addKnapsackCuts_ ;
14234  public boolean hasAddKnapsackCuts() {
14235  return ((bitField2_ & 0x00008000) != 0);
14236  }
14247  public boolean getAddKnapsackCuts() {
14248  return addKnapsackCuts_;
14249  }
14261  public Builder setAddKnapsackCuts(boolean value) {
14262  bitField2_ |= 0x00008000;
14263  addKnapsackCuts_ = value;
14264  onChanged();
14265  return this;
14266  }
14278  bitField2_ = (bitField2_ & ~0x00008000);
14279  addKnapsackCuts_ = false;
14280  onChanged();
14281  return this;
14282  }
14283 
14284  private boolean addCgCuts_ = true;
14294  public boolean hasAddCgCuts() {
14295  return ((bitField2_ & 0x00010000) != 0);
14296  }
14306  public boolean getAddCgCuts() {
14307  return addCgCuts_;
14308  }
14319  public Builder setAddCgCuts(boolean value) {
14320  bitField2_ |= 0x00010000;
14321  addCgCuts_ = value;
14322  onChanged();
14323  return this;
14324  }
14335  bitField2_ = (bitField2_ & ~0x00010000);
14336  addCgCuts_ = true;
14337  onChanged();
14338  return this;
14339  }
14340 
14341  private boolean addMirCuts_ = true;
14351  public boolean hasAddMirCuts() {
14352  return ((bitField2_ & 0x00020000) != 0);
14353  }
14363  public boolean getAddMirCuts() {
14364  return addMirCuts_;
14365  }
14376  public Builder setAddMirCuts(boolean value) {
14377  bitField2_ |= 0x00020000;
14378  addMirCuts_ = value;
14379  onChanged();
14380  return this;
14381  }
14392  bitField2_ = (bitField2_ & ~0x00020000);
14393  addMirCuts_ = true;
14394  onChanged();
14395  return this;
14396  }
14397 
14398  private int maxAllDiffCutSize_ = 7;
14409  public boolean hasMaxAllDiffCutSize() {
14410  return ((bitField2_ & 0x00040000) != 0);
14411  }
14422  public int getMaxAllDiffCutSize() {
14423  return maxAllDiffCutSize_;
14424  }
14436  public Builder setMaxAllDiffCutSize(int value) {
14437  bitField2_ |= 0x00040000;
14438  maxAllDiffCutSize_ = value;
14439  onChanged();
14440  return this;
14441  }
14453  bitField2_ = (bitField2_ & ~0x00040000);
14454  maxAllDiffCutSize_ = 7;
14455  onChanged();
14456  return this;
14457  }
14458 
14459  private int maxIntegerRoundingScaling_ = 600;
14474  public boolean hasMaxIntegerRoundingScaling() {
14475  return ((bitField2_ & 0x00080000) != 0);
14476  }
14492  return maxIntegerRoundingScaling_;
14493  }
14510  bitField2_ |= 0x00080000;
14511  maxIntegerRoundingScaling_ = value;
14512  onChanged();
14513  return this;
14514  }
14530  bitField2_ = (bitField2_ & ~0x00080000);
14531  maxIntegerRoundingScaling_ = 600;
14532  onChanged();
14533  return this;
14534  }
14535 
14536  private boolean addLpConstraintsLazily_ = true;
14548  public boolean hasAddLpConstraintsLazily() {
14549  return ((bitField2_ & 0x00100000) != 0);
14550  }
14562  public boolean getAddLpConstraintsLazily() {
14563  return addLpConstraintsLazily_;
14564  }
14577  public Builder setAddLpConstraintsLazily(boolean value) {
14578  bitField2_ |= 0x00100000;
14579  addLpConstraintsLazily_ = value;
14580  onChanged();
14581  return this;
14582  }
14595  bitField2_ = (bitField2_ & ~0x00100000);
14596  addLpConstraintsLazily_ = true;
14597  onChanged();
14598  return this;
14599  }
14600 
14601  private double minOrthogonalityForLpConstraints_ ;
14615  return ((bitField2_ & 0x00200000) != 0);
14616  }
14630  return minOrthogonalityForLpConstraints_;
14631  }
14646  bitField2_ |= 0x00200000;
14647  minOrthogonalityForLpConstraints_ = value;
14648  onChanged();
14649  return this;
14650  }
14664  bitField2_ = (bitField2_ & ~0x00200000);
14665  minOrthogonalityForLpConstraints_ = 0D;
14666  onChanged();
14667  return this;
14668  }
14669 
14670  private int maxConsecutiveInactiveCount_ = 100;
14682  return ((bitField2_ & 0x00400000) != 0);
14683  }
14695  return maxConsecutiveInactiveCount_;
14696  }
14709  bitField2_ |= 0x00400000;
14710  maxConsecutiveInactiveCount_ = value;
14711  onChanged();
14712  return this;
14713  }
14725  bitField2_ = (bitField2_ & ~0x00400000);
14726  maxConsecutiveInactiveCount_ = 100;
14727  onChanged();
14728  return this;
14729  }
14730 
14731  private int newConstraintsBatchSize_ = 50;
14741  public boolean hasNewConstraintsBatchSize() {
14742  return ((bitField2_ & 0x00800000) != 0);
14743  }
14754  return newConstraintsBatchSize_;
14755  }
14767  bitField2_ |= 0x00800000;
14768  newConstraintsBatchSize_ = value;
14769  onChanged();
14770  return this;
14771  }
14782  bitField2_ = (bitField2_ & ~0x00800000);
14783  newConstraintsBatchSize_ = 50;
14784  onChanged();
14785  return this;
14786  }
14787 
14788  private int searchBranching_ = 0;
14793  public boolean hasSearchBranching() {
14794  return ((bitField2_ & 0x01000000) != 0);
14795  }
14801  @SuppressWarnings("deprecation")
14803  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
14804  }
14811  if (value == null) {
14812  throw new NullPointerException();
14813  }
14814  bitField2_ |= 0x01000000;
14815  searchBranching_ = value.getNumber();
14816  onChanged();
14817  return this;
14818  }
14824  bitField2_ = (bitField2_ & ~0x01000000);
14825  searchBranching_ = 0;
14826  onChanged();
14827  return this;
14828  }
14829 
14830  private boolean exploitIntegerLpSolution_ = true;
14842  public boolean hasExploitIntegerLpSolution() {
14843  return ((bitField2_ & 0x02000000) != 0);
14844  }
14856  public boolean getExploitIntegerLpSolution() {
14857  return exploitIntegerLpSolution_;
14858  }
14871  public Builder setExploitIntegerLpSolution(boolean value) {
14872  bitField2_ |= 0x02000000;
14873  exploitIntegerLpSolution_ = value;
14874  onChanged();
14875  return this;
14876  }
14889  bitField2_ = (bitField2_ & ~0x02000000);
14890  exploitIntegerLpSolution_ = true;
14891  onChanged();
14892  return this;
14893  }
14894 
14895  private boolean exploitAllLpSolution_ = true;
14906  public boolean hasExploitAllLpSolution() {
14907  return ((bitField2_ & 0x04000000) != 0);
14908  }
14919  public boolean getExploitAllLpSolution() {
14920  return exploitAllLpSolution_;
14921  }
14933  public Builder setExploitAllLpSolution(boolean value) {
14934  bitField2_ |= 0x04000000;
14935  exploitAllLpSolution_ = value;
14936  onChanged();
14937  return this;
14938  }
14950  bitField2_ = (bitField2_ & ~0x04000000);
14951  exploitAllLpSolution_ = true;
14952  onChanged();
14953  return this;
14954  }
14955 
14956  private boolean exploitBestSolution_ ;
14965  public boolean hasExploitBestSolution() {
14966  return ((bitField2_ & 0x08000000) != 0);
14967  }
14976  public boolean getExploitBestSolution() {
14977  return exploitBestSolution_;
14978  }
14988  public Builder setExploitBestSolution(boolean value) {
14989  bitField2_ |= 0x08000000;
14990  exploitBestSolution_ = value;
14991  onChanged();
14992  return this;
14993  }
15003  bitField2_ = (bitField2_ & ~0x08000000);
15004  exploitBestSolution_ = false;
15005  onChanged();
15006  return this;
15007  }
15008 
15009  private boolean exploitObjective_ = true;
15019  public boolean hasExploitObjective() {
15020  return ((bitField2_ & 0x10000000) != 0);
15021  }
15031  public boolean getExploitObjective() {
15032  return exploitObjective_;
15033  }
15044  public Builder setExploitObjective(boolean value) {
15045  bitField2_ |= 0x10000000;
15046  exploitObjective_ = value;
15047  onChanged();
15048  return this;
15049  }
15060  bitField2_ = (bitField2_ & ~0x10000000);
15061  exploitObjective_ = true;
15062  onChanged();
15063  return this;
15064  }
15065 
15066  private long probingPeriodAtRoot_ ;
15077  public boolean hasProbingPeriodAtRoot() {
15078  return ((bitField2_ & 0x20000000) != 0);
15079  }
15090  public long getProbingPeriodAtRoot() {
15091  return probingPeriodAtRoot_;
15092  }
15104  public Builder setProbingPeriodAtRoot(long value) {
15105  bitField2_ |= 0x20000000;
15106  probingPeriodAtRoot_ = value;
15107  onChanged();
15108  return this;
15109  }
15121  bitField2_ = (bitField2_ & ~0x20000000);
15122  probingPeriodAtRoot_ = 0L;
15123  onChanged();
15124  return this;
15125  }
15126 
15127  private long pseudoCostReliabilityThreshold_ = 100L;
15138  return ((bitField2_ & 0x40000000) != 0);
15139  }
15150  return pseudoCostReliabilityThreshold_;
15151  }
15163  bitField2_ |= 0x40000000;
15164  pseudoCostReliabilityThreshold_ = value;
15165  onChanged();
15166  return this;
15167  }
15178  bitField2_ = (bitField2_ & ~0x40000000);
15179  pseudoCostReliabilityThreshold_ = 100L;
15180  onChanged();
15181  return this;
15182  }
15183 
15184  private boolean optimizeWithCore_ ;
15196  public boolean hasOptimizeWithCore() {
15197  return ((bitField2_ & 0x80000000) != 0);
15198  }
15210  public boolean getOptimizeWithCore() {
15211  return optimizeWithCore_;
15212  }
15225  public Builder setOptimizeWithCore(boolean value) {
15226  bitField2_ |= 0x80000000;
15227  optimizeWithCore_ = value;
15228  onChanged();
15229  return this;
15230  }
15243  bitField2_ = (bitField2_ & ~0x80000000);
15244  optimizeWithCore_ = false;
15245  onChanged();
15246  return this;
15247  }
15248 
15249  private int binarySearchNumConflicts_ = -1;
15261  public boolean hasBinarySearchNumConflicts() {
15262  return ((bitField3_ & 0x00000001) != 0);
15263  }
15276  return binarySearchNumConflicts_;
15277  }
15291  bitField3_ |= 0x00000001;
15292  binarySearchNumConflicts_ = value;
15293  onChanged();
15294  return this;
15295  }
15308  bitField3_ = (bitField3_ & ~0x00000001);
15309  binarySearchNumConflicts_ = -1;
15310  onChanged();
15311  return this;
15312  }
15313 
15314  private boolean optimizeWithMaxHs_ ;
15328  public boolean hasOptimizeWithMaxHs() {
15329  return ((bitField3_ & 0x00000002) != 0);
15330  }
15344  public boolean getOptimizeWithMaxHs() {
15345  return optimizeWithMaxHs_;
15346  }
15361  public Builder setOptimizeWithMaxHs(boolean value) {
15362  bitField3_ |= 0x00000002;
15363  optimizeWithMaxHs_ = value;
15364  onChanged();
15365  return this;
15366  }
15381  bitField3_ = (bitField3_ & ~0x00000002);
15382  optimizeWithMaxHs_ = false;
15383  onChanged();
15384  return this;
15385  }
15386 
15387  private boolean enumerateAllSolutions_ ;
15401  public boolean hasEnumerateAllSolutions() {
15402  return ((bitField3_ & 0x00000004) != 0);
15403  }
15417  public boolean getEnumerateAllSolutions() {
15418  return enumerateAllSolutions_;
15419  }
15434  public Builder setEnumerateAllSolutions(boolean value) {
15435  bitField3_ |= 0x00000004;
15436  enumerateAllSolutions_ = value;
15437  onChanged();
15438  return this;
15439  }
15454  bitField3_ = (bitField3_ & ~0x00000004);
15455  enumerateAllSolutions_ = false;
15456  onChanged();
15457  return this;
15458  }
15459 
15460  private boolean fillTightenedDomainsInResponse_ ;
15474  return ((bitField3_ & 0x00000008) != 0);
15475  }
15489  return fillTightenedDomainsInResponse_;
15490  }
15505  bitField3_ |= 0x00000008;
15506  fillTightenedDomainsInResponse_ = value;
15507  onChanged();
15508  return this;
15509  }
15523  bitField3_ = (bitField3_ & ~0x00000008);
15524  fillTightenedDomainsInResponse_ = false;
15525  onChanged();
15526  return this;
15527  }
15528 
15529  private boolean instantiateAllVariables_ = true;
15539  public boolean hasInstantiateAllVariables() {
15540  return ((bitField3_ & 0x00000010) != 0);
15541  }
15551  public boolean getInstantiateAllVariables() {
15552  return instantiateAllVariables_;
15553  }
15564  public Builder setInstantiateAllVariables(boolean value) {
15565  bitField3_ |= 0x00000010;
15566  instantiateAllVariables_ = value;
15567  onChanged();
15568  return this;
15569  }
15580  bitField3_ = (bitField3_ & ~0x00000010);
15581  instantiateAllVariables_ = true;
15582  onChanged();
15583  return this;
15584  }
15585 
15586  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
15599  return ((bitField3_ & 0x00000020) != 0);
15600  }
15613  return autoDetectGreaterThanAtLeastOneOf_;
15614  }
15628  bitField3_ |= 0x00000020;
15629  autoDetectGreaterThanAtLeastOneOf_ = value;
15630  onChanged();
15631  return this;
15632  }
15645  bitField3_ = (bitField3_ & ~0x00000020);
15646  autoDetectGreaterThanAtLeastOneOf_ = true;
15647  onChanged();
15648  return this;
15649  }
15650 
15651  private boolean stopAfterFirstSolution_ ;
15660  public boolean hasStopAfterFirstSolution() {
15661  return ((bitField3_ & 0x00000040) != 0);
15662  }
15671  public boolean getStopAfterFirstSolution() {
15672  return stopAfterFirstSolution_;
15673  }
15683  public Builder setStopAfterFirstSolution(boolean value) {
15684  bitField3_ |= 0x00000040;
15685  stopAfterFirstSolution_ = value;
15686  onChanged();
15687  return this;
15688  }
15698  bitField3_ = (bitField3_ & ~0x00000040);
15699  stopAfterFirstSolution_ = false;
15700  onChanged();
15701  return this;
15702  }
15703 
15704  private boolean stopAfterPresolve_ ;
15714  public boolean hasStopAfterPresolve() {
15715  return ((bitField3_ & 0x00000080) != 0);
15716  }
15726  public boolean getStopAfterPresolve() {
15727  return stopAfterPresolve_;
15728  }
15739  public Builder setStopAfterPresolve(boolean value) {
15740  bitField3_ |= 0x00000080;
15741  stopAfterPresolve_ = value;
15742  onChanged();
15743  return this;
15744  }
15755  bitField3_ = (bitField3_ & ~0x00000080);
15756  stopAfterPresolve_ = false;
15757  onChanged();
15758  return this;
15759  }
15760 
15761  private int numSearchWorkers_ = 1;
15771  public boolean hasNumSearchWorkers() {
15772  return ((bitField3_ & 0x00000100) != 0);
15773  }
15783  public int getNumSearchWorkers() {
15784  return numSearchWorkers_;
15785  }
15796  public Builder setNumSearchWorkers(int value) {
15797  bitField3_ |= 0x00000100;
15798  numSearchWorkers_ = value;
15799  onChanged();
15800  return this;
15801  }
15812  bitField3_ = (bitField3_ & ~0x00000100);
15813  numSearchWorkers_ = 1;
15814  onChanged();
15815  return this;
15816  }
15817 
15818  private boolean interleaveSearch_ ;
15830  public boolean hasInterleaveSearch() {
15831  return ((bitField3_ & 0x00000200) != 0);
15832  }
15844  public boolean getInterleaveSearch() {
15845  return interleaveSearch_;
15846  }
15859  public Builder setInterleaveSearch(boolean value) {
15860  bitField3_ |= 0x00000200;
15861  interleaveSearch_ = value;
15862  onChanged();
15863  return this;
15864  }
15877  bitField3_ = (bitField3_ & ~0x00000200);
15878  interleaveSearch_ = false;
15879  onChanged();
15880  return this;
15881  }
15882 
15883  private boolean reduceMemoryUsageInInterleaveMode_ = true;
15893  return ((bitField3_ & 0x00000400) != 0);
15894  }
15904  return reduceMemoryUsageInInterleaveMode_;
15905  }
15916  bitField3_ |= 0x00000400;
15917  reduceMemoryUsageInInterleaveMode_ = value;
15918  onChanged();
15919  return this;
15920  }
15930  bitField3_ = (bitField3_ & ~0x00000400);
15931  reduceMemoryUsageInInterleaveMode_ = true;
15932  onChanged();
15933  return this;
15934  }
15935 
15936  private boolean deterministicParallelSearch_ ;
15948  return ((bitField3_ & 0x00000800) != 0);
15949  }
15961  return deterministicParallelSearch_;
15962  }
15974  public Builder setDeterministicParallelSearch(boolean value) {
15975  bitField3_ |= 0x00000800;
15976  deterministicParallelSearch_ = value;
15977  onChanged();
15978  return this;
15979  }
15991  bitField3_ = (bitField3_ & ~0x00000800);
15992  deterministicParallelSearch_ = false;
15993  onChanged();
15994  return this;
15995  }
15996 
15997  private boolean shareObjectiveBounds_ = true;
16006  public boolean hasShareObjectiveBounds() {
16007  return ((bitField3_ & 0x00001000) != 0);
16008  }
16017  public boolean getShareObjectiveBounds() {
16018  return shareObjectiveBounds_;
16019  }
16029  public Builder setShareObjectiveBounds(boolean value) {
16030  bitField3_ |= 0x00001000;
16031  shareObjectiveBounds_ = value;
16032  onChanged();
16033  return this;
16034  }
16044  bitField3_ = (bitField3_ & ~0x00001000);
16045  shareObjectiveBounds_ = true;
16046  onChanged();
16047  return this;
16048  }
16049 
16050  private boolean shareLevelZeroBounds_ = true;
16059  public boolean hasShareLevelZeroBounds() {
16060  return ((bitField3_ & 0x00002000) != 0);
16061  }
16070  public boolean getShareLevelZeroBounds() {
16071  return shareLevelZeroBounds_;
16072  }
16082  public Builder setShareLevelZeroBounds(boolean value) {
16083  bitField3_ |= 0x00002000;
16084  shareLevelZeroBounds_ = value;
16085  onChanged();
16086  return this;
16087  }
16097  bitField3_ = (bitField3_ & ~0x00002000);
16098  shareLevelZeroBounds_ = true;
16099  onChanged();
16100  return this;
16101  }
16102 
16103  private boolean useLnsOnly_ ;
16112  public boolean hasUseLnsOnly() {
16113  return ((bitField3_ & 0x00004000) != 0);
16114  }
16123  public boolean getUseLnsOnly() {
16124  return useLnsOnly_;
16125  }
16135  public Builder setUseLnsOnly(boolean value) {
16136  bitField3_ |= 0x00004000;
16137  useLnsOnly_ = value;
16138  onChanged();
16139  return this;
16140  }
16150  bitField3_ = (bitField3_ & ~0x00004000);
16151  useLnsOnly_ = false;
16152  onChanged();
16153  return this;
16154  }
16155 
16156  private boolean lnsFocusOnDecisionVariables_ ;
16162  return ((bitField3_ & 0x00008000) != 0);
16163  }
16169  return lnsFocusOnDecisionVariables_;
16170  }
16176  public Builder setLnsFocusOnDecisionVariables(boolean value) {
16177  bitField3_ |= 0x00008000;
16178  lnsFocusOnDecisionVariables_ = value;
16179  onChanged();
16180  return this;
16181  }
16187  bitField3_ = (bitField3_ & ~0x00008000);
16188  lnsFocusOnDecisionVariables_ = false;
16189  onChanged();
16190  return this;
16191  }
16192 
16193  private boolean useRinsLns_ = true;
16202  public boolean hasUseRinsLns() {
16203  return ((bitField3_ & 0x00010000) != 0);
16204  }
16213  public boolean getUseRinsLns() {
16214  return useRinsLns_;
16215  }
16225  public Builder setUseRinsLns(boolean value) {
16226  bitField3_ |= 0x00010000;
16227  useRinsLns_ = value;
16228  onChanged();
16229  return this;
16230  }
16240  bitField3_ = (bitField3_ & ~0x00010000);
16241  useRinsLns_ = true;
16242  onChanged();
16243  return this;
16244  }
16245 
16246  private boolean useRelaxationLns_ ;
16256  public boolean hasUseRelaxationLns() {
16257  return ((bitField3_ & 0x00020000) != 0);
16258  }
16268  public boolean getUseRelaxationLns() {
16269  return useRelaxationLns_;
16270  }
16281  public Builder setUseRelaxationLns(boolean value) {
16282  bitField3_ |= 0x00020000;
16283  useRelaxationLns_ = value;
16284  onChanged();
16285  return this;
16286  }
16297  bitField3_ = (bitField3_ & ~0x00020000);
16298  useRelaxationLns_ = false;
16299  onChanged();
16300  return this;
16301  }
16302 
16303  private boolean diversifyLnsParams_ ;
16312  public boolean hasDiversifyLnsParams() {
16313  return ((bitField3_ & 0x00040000) != 0);
16314  }
16323  public boolean getDiversifyLnsParams() {
16324  return diversifyLnsParams_;
16325  }
16335  public Builder setDiversifyLnsParams(boolean value) {
16336  bitField3_ |= 0x00040000;
16337  diversifyLnsParams_ = value;
16338  onChanged();
16339  return this;
16340  }
16350  bitField3_ = (bitField3_ & ~0x00040000);
16351  diversifyLnsParams_ = false;
16352  onChanged();
16353  return this;
16354  }
16355 
16356  private boolean randomizeSearch_ ;
16365  public boolean hasRandomizeSearch() {
16366  return ((bitField3_ & 0x00080000) != 0);
16367  }
16376  public boolean getRandomizeSearch() {
16377  return randomizeSearch_;
16378  }
16388  public Builder setRandomizeSearch(boolean value) {
16389  bitField3_ |= 0x00080000;
16390  randomizeSearch_ = value;
16391  onChanged();
16392  return this;
16393  }
16403  bitField3_ = (bitField3_ & ~0x00080000);
16404  randomizeSearch_ = false;
16405  onChanged();
16406  return this;
16407  }
16408 
16409  private long searchRandomizationTolerance_ ;
16425  return ((bitField3_ & 0x00100000) != 0);
16426  }
16442  return searchRandomizationTolerance_;
16443  }
16460  bitField3_ |= 0x00100000;
16461  searchRandomizationTolerance_ = value;
16462  onChanged();
16463  return this;
16464  }
16480  bitField3_ = (bitField3_ & ~0x00100000);
16481  searchRandomizationTolerance_ = 0L;
16482  onChanged();
16483  return this;
16484  }
16485 
16486  private boolean useOptionalVariables_ = true;
16497  public boolean hasUseOptionalVariables() {
16498  return ((bitField3_ & 0x00200000) != 0);
16499  }
16510  public boolean getUseOptionalVariables() {
16511  return useOptionalVariables_;
16512  }
16524  public Builder setUseOptionalVariables(boolean value) {
16525  bitField3_ |= 0x00200000;
16526  useOptionalVariables_ = value;
16527  onChanged();
16528  return this;
16529  }
16541  bitField3_ = (bitField3_ & ~0x00200000);
16542  useOptionalVariables_ = true;
16543  onChanged();
16544  return this;
16545  }
16546 
16547  private boolean useExactLpReason_ = true;
16559  public boolean hasUseExactLpReason() {
16560  return ((bitField3_ & 0x00400000) != 0);
16561  }
16573  public boolean getUseExactLpReason() {
16574  return useExactLpReason_;
16575  }
16588  public Builder setUseExactLpReason(boolean value) {
16589  bitField3_ |= 0x00400000;
16590  useExactLpReason_ = value;
16591  onChanged();
16592  return this;
16593  }
16606  bitField3_ = (bitField3_ & ~0x00400000);
16607  useExactLpReason_ = true;
16608  onChanged();
16609  return this;
16610  }
16611 
16612  private boolean useBranchingInLp_ ;
16623  public boolean hasUseBranchingInLp() {
16624  return ((bitField3_ & 0x00800000) != 0);
16625  }
16636  public boolean getUseBranchingInLp() {
16637  return useBranchingInLp_;
16638  }
16650  public Builder setUseBranchingInLp(boolean value) {
16651  bitField3_ |= 0x00800000;
16652  useBranchingInLp_ = value;
16653  onChanged();
16654  return this;
16655  }
16667  bitField3_ = (bitField3_ & ~0x00800000);
16668  useBranchingInLp_ = false;
16669  onChanged();
16670  return this;
16671  }
16672 
16673  private boolean useCombinedNoOverlap_ ;
16684  public boolean hasUseCombinedNoOverlap() {
16685  return ((bitField3_ & 0x01000000) != 0);
16686  }
16697  public boolean getUseCombinedNoOverlap() {
16698  return useCombinedNoOverlap_;
16699  }
16711  public Builder setUseCombinedNoOverlap(boolean value) {
16712  bitField3_ |= 0x01000000;
16713  useCombinedNoOverlap_ = value;
16714  onChanged();
16715  return this;
16716  }
16728  bitField3_ = (bitField3_ & ~0x01000000);
16729  useCombinedNoOverlap_ = false;
16730  onChanged();
16731  return this;
16732  }
16733 
16734  private boolean catchSigintSignal_ = true;
16745  public boolean hasCatchSigintSignal() {
16746  return ((bitField3_ & 0x02000000) != 0);
16747  }
16758  public boolean getCatchSigintSignal() {
16759  return catchSigintSignal_;
16760  }
16772  public Builder setCatchSigintSignal(boolean value) {
16773  bitField3_ |= 0x02000000;
16774  catchSigintSignal_ = value;
16775  onChanged();
16776  return this;
16777  }
16789  bitField3_ = (bitField3_ & ~0x02000000);
16790  catchSigintSignal_ = true;
16791  onChanged();
16792  return this;
16793  }
16794 
16795  private boolean useImpliedBounds_ = true;
16806  public boolean hasUseImpliedBounds() {
16807  return ((bitField3_ & 0x04000000) != 0);
16808  }
16819  public boolean getUseImpliedBounds() {
16820  return useImpliedBounds_;
16821  }
16833  public Builder setUseImpliedBounds(boolean value) {
16834  bitField3_ |= 0x04000000;
16835  useImpliedBounds_ = value;
16836  onChanged();
16837  return this;
16838  }
16850  bitField3_ = (bitField3_ & ~0x04000000);
16851  useImpliedBounds_ = true;
16852  onChanged();
16853  return this;
16854  }
16855 
16856  private double mipMaxBound_ = 10000000D;
16867  public boolean hasMipMaxBound() {
16868  return ((bitField3_ & 0x08000000) != 0);
16869  }
16880  public double getMipMaxBound() {
16881  return mipMaxBound_;
16882  }
16894  public Builder setMipMaxBound(double value) {
16895  bitField3_ |= 0x08000000;
16896  mipMaxBound_ = value;
16897  onChanged();
16898  return this;
16899  }
16911  bitField3_ = (bitField3_ & ~0x08000000);
16912  mipMaxBound_ = 10000000D;
16913  onChanged();
16914  return this;
16915  }
16916 
16917  private double mipVarScaling_ = 1D;
16928  public boolean hasMipVarScaling() {
16929  return ((bitField3_ & 0x10000000) != 0);
16930  }
16941  public double getMipVarScaling() {
16942  return mipVarScaling_;
16943  }
16955  public Builder setMipVarScaling(double value) {
16956  bitField3_ |= 0x10000000;
16957  mipVarScaling_ = value;
16958  onChanged();
16959  return this;
16960  }
16972  bitField3_ = (bitField3_ & ~0x10000000);
16973  mipVarScaling_ = 1D;
16974  onChanged();
16975  return this;
16976  }
16977 
16978  private double mipWantedPrecision_ = 1e-06D;
16995  public boolean hasMipWantedPrecision() {
16996  return ((bitField3_ & 0x20000000) != 0);
16997  }
17014  public double getMipWantedPrecision() {
17015  return mipWantedPrecision_;
17016  }
17034  public Builder setMipWantedPrecision(double value) {
17035  bitField3_ |= 0x20000000;
17036  mipWantedPrecision_ = value;
17037  onChanged();
17038  return this;
17039  }
17057  bitField3_ = (bitField3_ & ~0x20000000);
17058  mipWantedPrecision_ = 1e-06D;
17059  onChanged();
17060  return this;
17061  }
17062 
17063  private int mipMaxActivityExponent_ = 53;
17078  public boolean hasMipMaxActivityExponent() {
17079  return ((bitField3_ & 0x40000000) != 0);
17080  }
17096  return mipMaxActivityExponent_;
17097  }
17114  bitField3_ |= 0x40000000;
17115  mipMaxActivityExponent_ = value;
17116  onChanged();
17117  return this;
17118  }
17134  bitField3_ = (bitField3_ & ~0x40000000);
17135  mipMaxActivityExponent_ = 53;
17136  onChanged();
17137  return this;
17138  }
17139 
17140  private double mipCheckPrecision_ = 0.0001D;
17152  public boolean hasMipCheckPrecision() {
17153  return ((bitField3_ & 0x80000000) != 0);
17154  }
17166  public double getMipCheckPrecision() {
17167  return mipCheckPrecision_;
17168  }
17181  public Builder setMipCheckPrecision(double value) {
17182  bitField3_ |= 0x80000000;
17183  mipCheckPrecision_ = value;
17184  onChanged();
17185  return this;
17186  }
17199  bitField3_ = (bitField3_ & ~0x80000000);
17200  mipCheckPrecision_ = 0.0001D;
17201  onChanged();
17202  return this;
17203  }
17204  @java.lang.Override
17206  final com.google.protobuf.UnknownFieldSet unknownFields) {
17207  return super.setUnknownFields(unknownFields);
17208  }
17209 
17210  @java.lang.Override
17212  final com.google.protobuf.UnknownFieldSet unknownFields) {
17213  return super.mergeUnknownFields(unknownFields);
17214  }
17215 
17216 
17217  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
17218  }
17219 
17220  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
17221  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
17222  static {
17223  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
17224  }
17225 
17227  return DEFAULT_INSTANCE;
17228  }
17229 
17230  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
17231  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
17232  @java.lang.Override
17233  public SatParameters parsePartialFrom(
17234  com.google.protobuf.CodedInputStream input,
17235  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17236  throws com.google.protobuf.InvalidProtocolBufferException {
17237  return new SatParameters(input, extensionRegistry);
17238  }
17239  };
17240 
17241  public static com.google.protobuf.Parser<SatParameters> parser() {
17242  return PARSER;
17243  }
17244 
17245  @java.lang.Override
17246  public com.google.protobuf.Parser<SatParameters> getParserForType() {
17247  return PARSER;
17248  }
17249 
17250  @java.lang.Override
17252  return DEFAULT_INSTANCE;
17253  }
17254 
17255 }
17256 
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER
static final int REDUCE_MEMORY_USAGE_IN_INTERLEAVE_MODE_FIELD_NUMBER
.lang.Override final boolean isInitialized()
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
boolean getDiversifyLnsParams()
static final int USE_RINS_LNS_FIELD_NUMBER
boolean getUseExactLpReason()
boolean hasMaxPresolveIterations()
static ClauseProtection forNumber(int value)
boolean hasProbingPeriodAtRoot()
Builder setMaxMemoryInMb(long value)
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasClauseCleanupPeriod()
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
boolean hasSearchRandomizationTolerance()
Builder setUsePhaseSaving(boolean value)
boolean hasMipMaxBound()
NO_BINARY_MINIMIZATION
NO_BINARY_MINIMIZATION = 0;
Builder clearExpandAutomatonConstraints()
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
Builder clearMinOrthogonalityForLpConstraints()
boolean hasLogSearchProgress()
final int getNumber()
static BinaryMinizationAlgorithm forNumber(int value)
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder setDiversifyLnsParams(boolean value)
.lang.Override void writeTo(com.google.protobuf.CodedOutputStream output)
Builder clearClauseCleanupTarget()
boolean hasUseTimetableEdgeFindingInCumulativeConstraint()
Builder clearAddCgCuts()
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
boolean hasMinimizeWithPropagationRestartPeriod()
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
boolean hasAlsoBumpVariablesInConflictReasons()
boolean getInstantiateAllVariables()
int getPresolveBveClauseWeight()
boolean getOnlyAddCutsAtLevelZero()
Builder setPseudoCostReliabilityThreshold(long value)
static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER
boolean hasOptimizeWithMaxHs()
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMergeNoOverlapWorkLimit(double value)
static final int ADD_MIR_CUTS_FIELD_NUMBER
Builder setUseRinsLns(boolean value)
Builder clearMipVarScaling()
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
boolean getMinimizeReductionDuringPbResolution()
int getMinimizeWithPropagationRestartPeriod()
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasUseRelaxationLns()
boolean hasAddLpConstraintsLazily()
Builder setNumSearchWorkers(int value)
Builder clearUseRinsLns()
static final int FIND_MULTIPLE_CORES_FIELD_NUMBER
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
IN_REVERSE_ORDER
IN_REVERSE_ORDER = 1;
Builder clearVariableActivityDecay()
boolean hasPresolveSubstitutionLevel()
boolean hasAddLpConstraintsLazily()
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER
boolean getTreatBinaryClausesSeparately()
boolean hasUseDisjunctiveConstraintInCumulativeConstraint()
boolean hasClauseCleanupTarget()
boolean getMinimizeReductionDuringPbResolution()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
static final int RANDOM_SEED_FIELD_NUMBER
POLARITY_TRUE
POLARITY_TRUE = 0;
boolean hasCatchSigintSignal()
boolean hasProbingPeriodAtRoot()
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
boolean getInstantiateAllVariables()
boolean hasFillTightenedDomainsInResponse()
Builder clearUseLnsOnly()
Builder clearGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setInterleaveSearch(boolean value)
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean getAddKnapsackCuts()
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasOptimizeWithCore()
static final int CP_MODEL_PRESOLVE_FIELD_NUMBER
boolean hasMipVarScaling()
PSEUDO_COST_SEARCH
static VariableOrder forNumber(int value)
boolean hasRestartRunningWindowSize()
Builder clearReduceMemoryUsageInInterleaveMode()
Builder setAddLpConstraintsLazily(boolean value)
Builder setMinimizeWithPropagationRestartPeriod(int value)
Builder clearShareObjectiveBounds()
boolean hasUsePhaseSaving()
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
boolean getMinimizeCore()
boolean hasMinOrthogonalityForLpConstraints()
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
Builder clearMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
SIMPLE
SIMPLE = 1;
Builder setBooleanEncodingLevel(int value)
boolean hasMaxTimeInSeconds()
double getMipVarScaling()
Builder setPresolveBvaThreshold(int value)
double getRandomPolarityRatio()
boolean getAddCgCuts()
final int getNumber()
boolean getAlsoBumpVariablesInConflictReasons()
static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER
boolean hasLinearizationLevel()
Builder clearClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
int getMinimizeWithPropagationRestartPeriod()
static final int COVER_OPTIMIZATION_FIELD_NUMBER
boolean hasMipCheckPrecision()
final int getNumber()
Builder setMaxIntegerRoundingScaling(int value)
Builder setDeterministicParallelSearch(boolean value)
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
boolean hasUseOverloadCheckerInCumulativeConstraint()
boolean getDiversifyLnsParams()
Builder clearRestartRunningWindowSize()
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
boolean hasRandomBranchesRatio()
static final int MIP_CHECK_PRECISION_FIELD_NUMBER
boolean getUseCombinedNoOverlap()
Builder setAddKnapsackCuts(boolean value)
int getPresolveSubstitutionLevel()
boolean hasEnumerateAllSolutions()
static final int RANDOMIZE_SEARCH_FIELD_NUMBER
EXPERIMENTAL_BINARY_MINIMIZATION
EXPERIMENTAL_BINARY_MINIMIZATION = 3;
boolean hasCpModelProbingLevel()
int getPresolveSubstitutionLevel()
boolean getInterleaveSearch()
boolean hasUsePbResolution()
POLARITY_RANDOM
POLARITY_RANDOM = 2;
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder setCpModelMaxNumPresolveOperations(int value)
STRATIFICATION_ASCENT
final int getNumber()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasFindMultipleCores()
Builder clearRestartPeriod()
Builder setExploitAllLpSolution(boolean value)
Builder setMaxSatReverseAssumptionOrder(boolean value)
Builder setCpModelUseSatPresolve(boolean value)
long getProbingPeriodAtRoot()
final int getNumber()
boolean getShareObjectiveBounds()
boolean getRandomizeSearch()
Builder clearRestartAlgorithms()
Builder setMipMaxActivityExponent(int value)
double getMipMaxBound()
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasMaxDeterministicTime()
boolean hasDeterministicParallelSearch()
Builder clearBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
Builder clearNewConstraintsBatchSize()
boolean getUseLnsOnly()
boolean hasBinarySearchNumConflicts()
.lang.Override Builder clear()
static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER
boolean hasMaxNumberOfConflicts()
Builder clearLogSearchProgress()
boolean getOptimizeWithMaxHs()
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
boolean hasExploitIntegerLpSolution()
boolean hasCpModelMaxNumPresolveOperations()
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean getUseExactLpReason()
boolean hasVariableActivityDecay()
boolean hasExploitAllLpSolution()
Builder clearDiversifyLnsParams()
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasAddMirCuts()
boolean hasPresolveProbingDeterministicTimeLimit()
boolean hasClauseCleanupLbdBound()
boolean hasMaxConsecutiveInactiveCount()
boolean getMinimizeCore()
boolean getUsePhaseSaving()
boolean hasUseExactLpReason()
double getGlucoseMaxDecay()
double getMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
boolean getStopAfterPresolve()
Builder clearMinimizeWithPropagationRestartPeriod()
Builder clearMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder setSearchRandomizationTolerance(long value)
boolean hasUsePrecedencesInDisjunctiveConstraint()
static final int INTERLEAVE_SEARCH_FIELD_NUMBER
boolean getSubsumptionDuringConflictAnalysis()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder setLnsFocusOnDecisionVariables(boolean value)
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasAddKnapsackCuts()
static final int RESTART_ALGORITHMS_FIELD_NUMBER
boolean getCountAssumptionLevelsInLbd()
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean hasUseOptimizationHints()
Builder setReduceMemoryUsageInInterleaveMode(boolean value)
boolean getFillTightenedDomainsInResponse()
.lang.Deprecated static ClauseOrdering valueOf(int value)
static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER
Builder setOptimizeWithCore(boolean value)
boolean hasPresolveBlockedClause()
boolean hasUseExactLpReason()
Builder setUseImpliedBounds(boolean value)
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
boolean getShareLevelZeroBounds()
Builder setMaxConsecutiveInactiveCount(int value)
boolean getCountAssumptionLevelsInLbd()
static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER
static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER
Builder clearUseOptimizationHints()
Builder clearMaxMemoryInMb()
static final int EXPAND_AUTOMATON_CONSTRAINTS_FIELD_NUMBER
boolean hasTreatBinaryClausesSeparately()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder clearPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasPresolveBlockedClause()
int getPresolveBveThreshold()
boolean hasMinOrthogonalityForLpConstraints()
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
double getMipCheckPrecision()
int getClauseCleanupTarget()
boolean hasInstantiateAllVariables()
boolean getUsePrecedencesInDisjunctiveConstraint()
Builder setPresolveSubstitutionLevel(int value)
Builder clearMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Builder setAddMirCuts(boolean value)
static final int MIP_VAR_SCALING_FIELD_NUMBER
Builder clearUseOverloadCheckerInCumulativeConstraint()
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
boolean hasUseBlockingRestart()
.lang.Deprecated static BinaryMinizationAlgorithm valueOf(int value)
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
Builder setStopAfterFirstSolution(boolean value)
boolean getUseTimetableEdgeFindingInCumulativeConstraint()
CLAUSE_ACTIVITY
ORDER_ASSUMPTION_BY_WEIGHT
ORDER_ASSUMPTION_BY_WEIGHT = 2;
Builder clearMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
int getCpModelMaxNumPresolveOperations()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
int getPresolveBveClauseWeight()
boolean hasStopAfterFirstSolution()
boolean hasMaxTimeInSeconds()
boolean hasUseOptionalVariables()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER
PROTECTION_LBD
static final int MINIMIZE_CORE_FIELD_NUMBER
Builder clearMaxNumberOfConflicts()
static final int USE_BRANCHING_IN_LP_FIELD_NUMBER
boolean hasPresolveBvaThreshold()
static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasInterleaveSearch()
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
static MaxSatAssumptionOrder forNumber(int value)
Builder setPbCleanupIncrement(int value)
static final int MINIMIZE_WITH_PROPAGATION_NUM_DECISIONS_FIELD_NUMBER
boolean getStopAfterFirstSolution()
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean getAddLpConstraintsLazily()
boolean hasUseCombinedNoOverlap()
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
PORTFOLIO_SEARCH
boolean hasShareLevelZeroBounds()
boolean hasMipWantedPrecision()
boolean hasMaxMemoryInMb()
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
final int getNumber()
boolean getUseOptimizationHints()
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder clearCoverOptimization()
static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER
boolean hasNumConflictsBeforeStrategyChanges()
boolean hasCpModelProbingLevel()
Builder clearBinarySearchNumConflicts()
Builder setMaxNumCuts(int value)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
boolean hasDiversifyLnsParams()
static RestartAlgorithm forNumber(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasGlucoseMaxDecay()
boolean getLogSearchProgress()
Builder setFindMultipleCores(boolean value)
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasClauseCleanupLbdBound()
boolean getExpandElementConstraints()
static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER
boolean hasUsePrecedencesInDisjunctiveConstraint()
int getMaxAllDiffCutSize()
Builder setGlucoseDecayIncrement(double value)
optional double glucose_decay_increment = 23 [default = 0.01];
.lang.Deprecated static ClauseProtection valueOf(int value)
int getLinearizationLevel()
Builder setRestartDlAverageRatio(double value)
.lang.Override int hashCode()
boolean hasRestartRunningWindowSize()
Builder clearExploitAllLpSolution()
boolean getTreatBinaryClausesSeparately()
Builder clearInitialVariablesActivity()
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean getUseLnsOnly()
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
int getClauseCleanupTarget()
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
Builder setMaxDeterministicTime(double value)
final int getNumber()
boolean getCpModelPresolve()
Builder clearOnlyAddCutsAtLevelZero()
int getClauseCleanupPeriod()
int getClauseCleanupPeriod()
Builder setExpandAutomatonConstraints(boolean value)
boolean getExpandElementConstraints()
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
boolean hasMaxNumberOfConflicts()
static final int MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER
AUTOMATIC_SEARCH
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean getStopAfterFirstSolution()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasMaxMemoryInMb()
boolean hasUseOverloadCheckerInCumulativeConstraint()
boolean getUseOptionalVariables()
Builder setMaxVariableActivityValue(double value)
optional double max_variable_activity_value = 16 [default = 1e+100];
boolean getUseBlockingRestart()
boolean getUseRinsLns()
boolean getUseRelaxationLns()
Builder clearUseTimetableEdgeFindingInCumulativeConstraint()
boolean hasAddCgCuts()
Builder clearMaxAllDiffCutSize()
double getInitialVariablesActivity()
IN_RANDOM_ORDER
IN_RANDOM_ORDER = 2;
Builder clearExploitIntegerLpSolution()
Builder clearLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasUsePbResolution()
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean getDeterministicParallelSearch()
boolean getUseOptimizationHints()
BINARY_MINIMIZATION_WITH_REACHABILITY
BINARY_MINIMIZATION_WITH_REACHABILITY = 2;
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
boolean getUseRinsLns()
.lang.Override Builder clone()
static Builder newBuilder()
boolean hasAutoDetectGreaterThanAtLeastOneOf()
LBD_MOVING_AVERAGE_RESTART
.lang.Override Builder toBuilder()
Builder clearMipCheckPrecision()
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
boolean getUseImpliedBounds()
int getPbCleanupIncrement()
boolean hasUseOptimizationHints()
boolean getCpModelUseSatPresolve()
boolean getUseErwaHeuristic()
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
boolean hasVariableActivityDecay()
double getMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
int getPresolveBvaThreshold()
Builder setCountAssumptionLevelsInLbd(boolean value)
boolean hasPresolveProbingDeterministicTimeLimit()
boolean hasExploitBestSolution()
double getPresolveProbingDeterministicTimeLimit()
int getMipMaxActivityExponent()
boolean hasAutoDetectGreaterThanAtLeastOneOf()
Builder setNumConflictsBeforeStrategyChanges(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
static final int CP_MODEL_MAX_NUM_PRESOLVE_OPERATIONS_FIELD_NUMBER
Builder clearRandomBranchesRatio()
boolean getStopAfterPresolve()
Builder setOptimizeWithMaxHs(boolean value)
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean hasEnumerateAllSolutions()
boolean hasMergeNoOverlapWorkLimit()
Builder clearRandomSeed()
boolean getFillTightenedDomainsInResponse()
boolean getUseBranchingInLp()
boolean getOptimizeWithMaxHs()
boolean hasExploitIntegerLpSolution()
Builder setMipCheckPrecision(double value)
Builder setMinimizeCore(boolean value)
Builder clearUseDisjunctiveConstraintInCumulativeConstraint()
Builder setStopAfterPresolve(boolean value)
Builder setUseLnsOnly(boolean value)
boolean hasRandomBranchesRatio()
Builder clearUseCombinedNoOverlap()
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
boolean hasPresolveUseBva()
boolean hasInstantiateAllVariables()
static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER
boolean getOptimizeWithCore()
double getMaxTimeInSeconds()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean getLogSearchProgress()
.lang.Override com.google.ortools.sat.SatParameters buildPartial()
boolean getExpandAutomatonConstraints()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Parser< SatParameters > parser()
static ConflictMinimizationAlgorithm forNumber(int value)
.lang.Override final boolean isInitialized()
boolean hasPresolveSubstitutionLevel()
Builder setUseBranchingInLp(boolean value)
int getClauseCleanupLbdBound()
boolean hasPseudoCostReliabilityThreshold()
boolean getUseCombinedNoOverlap()
Builder setStrategyChangeIncreaseRatio(double value)
boolean getEnumerateAllSolutions()
boolean hasExploitObjective()
Builder clearMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
double getMergeNoOverlapWorkLimit()
boolean hasPresolveUseBva()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasUseRinsLns()
FIXED_RESTART
Builder clearStrategyChangeIncreaseRatio()
boolean hasOnlyAddCutsAtLevelZero()
Builder clearMaxNumCuts()
CLAUSE_LBD
boolean getUseBranchingInLp()
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override com.google.ortools.sat.SatParameters build()
int getRestartAlgorithmsCount()
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean getPresolveUseBva()
Builder clearMaxIntegerRoundingScaling()
boolean hasRestartDlAverageRatio()
boolean hasMaxIntegerRoundingScaling()
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
Builder setInstantiateAllVariables(boolean value)
boolean hasStopAfterFirstSolution()
boolean getPresolveUseBva()
static final int PRESOLVE_USE_BVA_FIELD_NUMBER
double getMipWantedPrecision()
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean hasNewConstraintsBatchSize()
boolean hasMinimizeWithPropagationRestartPeriod()
Builder clearSearchRandomizationTolerance()
Builder setPresolveBlockedClause(boolean value)
Builder clearMaxTimeInSeconds()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
Builder setMaxPresolveIterations(int value)
Builder setEnumerateAllSolutions(boolean value)
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
boolean getOnlyAddCutsAtLevelZero()
Builder clearPseudoCostReliabilityThreshold()
boolean hasMinimizeReductionDuringPbResolution()
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean hasExpandAutomatonConstraints()
boolean hasUseBranchingInLp()
Builder clearExpandElementConstraints()
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
boolean hasCpModelPresolve()
boolean getUseImpliedBounds()
.lang.Deprecated static MaxSatStratificationAlgorithm valueOf(int value)
double getRestartDlAverageRatio()
Builder clearCpModelProbingLevel()
double getRandomBranchesRatio()
boolean hasUseErwaHeuristic()
boolean hasMipMaxActivityExponent()
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
int getCpModelProbingLevel()
double getMaxTimeInSeconds()
double getMinOrthogonalityForLpConstraints()
boolean hasMaxSatReverseAssumptionOrder()
boolean hasClauseActivityDecay()
boolean hasUseImpliedBounds()
static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER
boolean hasStopAfterPresolve()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMaxNumberOfConflicts(long value)
double getRandomBranchesRatio()
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
boolean getMaxSatReverseAssumptionOrder()
Builder setDefaultRestartAlgorithms(java.lang.String value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder clearAddLpConstraintsLazily()
double getRestartDlAverageRatio()
Builder clearDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasUseOptionalVariables()
.lang.Override java.lang.Object newInstance(UnusedPrivateParameter unused)
boolean hasNumSearchWorkers()
boolean hasSubsumptionDuringConflictAnalysis()
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
boolean hasUseErwaHeuristic()
Builder setUseTimetableEdgeFindingInCumulativeConstraint(boolean value)
boolean hasUseTimetableEdgeFindingInCumulativeConstraint()
boolean hasInitialVariablesActivity()
boolean hasRestartPeriod()
long getPseudoCostReliabilityThreshold()
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
Builder setUsePbResolution(boolean value)
boolean hasMipWantedPrecision()
boolean hasMaxAllDiffCutSize()
Builder clearNumSearchWorkers()
Builder setGlucoseDecayIncrementPeriod(int value)
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder clearUsePrecedencesInDisjunctiveConstraint()
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean getFindMultipleCores()
boolean getExploitBestSolution()
Builder setClauseCleanupPeriod(int value)
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
boolean hasStrategyChangeIncreaseRatio()
Builder setTreatBinaryClausesSeparately(boolean value)
Builder clearFindMultipleCores()
boolean hasUseImpliedBounds()
boolean hasMipVarScaling()
static final int MIP_WANTED_PRECISION_FIELD_NUMBER
boolean getUseOverloadCheckerInCumulativeConstraint()
POLARITY_REVERSE_WEIGHTED_SIGN
boolean hasBooleanEncodingLevel()
IN_ORDER
static final int STOP_AFTER_PRESOLVE_FIELD_NUMBER
static final int MIP_MAX_BOUND_FIELD_NUMBER
boolean getFindMultipleCores()
boolean hasExpandElementConstraints()
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
boolean hasCatchSigintSignal()
boolean getShareLevelZeroBounds()
int getLinearizationLevel()
Builder setPbCleanupRatio(double value)
optional double pb_cleanup_ratio = 47 [default = 0.5];
boolean hasClauseCleanupTarget()
static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER
boolean hasAlsoBumpVariablesInConflictReasons()
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
Builder clearMipWantedPrecision()
Builder setInitialVariablesActivity(double value)
Builder clearBooleanEncodingLevel()
boolean hasShareLevelZeroBounds()
Builder clearSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
double getMinOrthogonalityForLpConstraints()
int getRandomSeed()
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean hasUseBranchingInLp()
DEFAULT_ASSUMPTION_ORDER
DEFAULT_ASSUMPTION_ORDER = 0;
boolean getAddLpConstraintsLazily()
Builder setUseDisjunctiveConstraintInCumulativeConstraint(boolean value)
boolean hasRandomPolarityRatio()
.lang.Override Builder mergeFrom(com.google.protobuf.Message other)
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
int getCpModelProbingLevel()
Builder setBlockingRestartMultiplier(double value)
optional double blocking_restart_multiplier = 66 [default = 1.4];
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static ClauseOrdering forNumber(int value)
Builder setSubsumptionDuringConflictAnalysis(boolean value)
long getSearchRandomizationTolerance()
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
boolean hasNumConflictsBeforeStrategyChanges()
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
boolean hasCpModelUseSatPresolve()
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
static MaxSatStratificationAlgorithm forNumber(int value)
boolean hasPbCleanupIncrement()
boolean hasCpModelMaxNumPresolveOperations()
Builder clearStopAfterPresolve()
boolean hasOptimizeWithMaxHs()
boolean hasReduceMemoryUsageInInterleaveMode()
static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER
static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER
Builder setRestartLbdAverageRatio(double value)
optional double restart_lbd_average_ratio = 71 [default = 1];
boolean hasInterleaveSearch()
Builder setCoverOptimization(boolean value)
Builder setExpandElementConstraints(boolean value)
Builder clearUseBlockingRestart()
double getVariableActivityDecay()
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
boolean getCatchSigintSignal()
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
POLARITY_WEIGHTED_SIGN
Builder setPresolveProbingDeterministicTimeLimit(double value)
static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER
Builder clearOptimizeWithMaxHs()
Builder clearEnumerateAllSolutions()
boolean hasLogSearchProgress()
double getPresolveProbingDeterministicTimeLimit()
Builder setProbingPeriodAtRoot(long value)
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean getEnumerateAllSolutions()
double getRandomPolarityRatio()
int getNumSearchWorkers()
double getMipVarScaling()
Builder clearBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
boolean getExpandAutomatonConstraints()
Builder clearMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
boolean hasMipMaxBound()
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean hasTreatBinaryClausesSeparately()
Builder clearGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER
Builder setUseExactLpReason(boolean value)
int getNumConflictsBeforeStrategyChanges()
static final int MAX_NUM_CUTS_FIELD_NUMBER
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
Builder setShareLevelZeroBounds(boolean value)
double getVariableActivityDecay()
int getMaxPresolveIterations()
Builder clearPresolveProbingDeterministicTimeLimit()
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean getSubsumptionDuringConflictAnalysis()
Builder setPresolveBveThreshold(int value)
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
int getNumSearchWorkers()
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
static final int USE_LNS_ONLY_FIELD_NUMBER
Builder setRestartRunningWindowSize(int value)
boolean hasUseLnsOnly()
Builder setMinimizeWithPropagationNumDecisions(int value)
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean getUseErwaHeuristic()
boolean getExploitIntegerLpSolution()
int getPresolveBveThreshold()
static final int MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
.lang.Deprecated static SearchBranching valueOf(int value)
boolean getCoverOptimization()
final int getNumber()
Builder setMaxTimeInSeconds(double value)
Builder setRandomizeSearch(boolean value)
Builder clearNumConflictsBeforeStrategyChanges()
Builder clearRandomPolarityRatio()
.lang.Deprecated static VariableOrder valueOf(int value)
boolean getExploitObjective()
static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER
Builder setLinearizationLevel(int value)
boolean hasMaxNumCuts()
boolean hasUseDisjunctiveConstraintInCumulativeConstraint()
int getNewConstraintsBatchSize()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
Builder setUseOptimizationHints(boolean value)
Builder clearRandomizeSearch()
Builder setExploitIntegerLpSolution(boolean value)
boolean hasMaxSatReverseAssumptionOrder()
boolean hasMipCheckPrecision()
boolean getUseBlockingRestart()
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
int getRandomSeed()
boolean hasMinimizeReductionDuringPbResolution()
Builder setAddCgCuts(boolean value)
boolean hasBooleanEncodingLevel()
Builder clearUseOptionalVariables()
int getBooleanEncodingLevel()
boolean hasAddMirCuts()
int getRestartPeriod()
boolean getUseDisjunctiveConstraintInCumulativeConstraint()
Builder setMinOrthogonalityForLpConstraints(double value)
boolean getExploitBestSolution()
long getMaxMemoryInMb()
boolean getUseTimetableEdgeFindingInCumulativeConstraint()
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
int getPbCleanupIncrement()
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
long getProbingPeriodAtRoot()
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
Builder clearAddKnapsackCuts()
boolean getUseDisjunctiveConstraintInCumulativeConstraint()
Builder setBlockingRestartWindowSize(int value)
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasFillTightenedDomainsInResponse()
boolean hasPresolveBveThreshold()
boolean hasDiversifyLnsParams()
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
boolean hasRestartPeriod()
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean getUsePrecedencesInDisjunctiveConstraint()
boolean hasShareObjectiveBounds()
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
Builder setShareObjectiveBounds(boolean value)
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasCountAssumptionLevelsInLbd()
int getMaxNumCuts()
Builder clearUsePhaseSaving()
static final int PROBING_PERIOD_AT_ROOT_FIELD_NUMBER
static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
.lang.Override boolean equals(final java.lang.Object obj)
Builder setClauseActivityDecay(double value)
boolean getUsePbResolution()
boolean getUseOptionalVariables()
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
boolean hasLinearizationLevel()
static final int RESTART_PERIOD_FIELD_NUMBER
Builder clearUsePbResolution()
boolean hasMergeNoOverlapWorkLimit()
boolean hasUseLnsOnly()
boolean hasMaxAllDiffCutSize()
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
int getCpModelMaxNumPresolveOperations()
boolean getReduceMemoryUsageInInterleaveMode()
Builder clearAutoDetectGreaterThanAtLeastOneOf()
static final int PB_CLEANUP_RATIO_FIELD_NUMBER
Builder clearOptimizeWithCore()
boolean hasPresolveBveClauseWeight()
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
Builder clearUseExactLpReason()
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
Builder clearMipMaxBound()
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
boolean getExploitAllLpSolution()
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
long getMaxNumberOfConflicts()
final int getNumber()
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
boolean hasRestartDlAverageRatio()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
boolean hasUseRinsLns()
int getBinarySearchNumConflicts()
boolean hasOptimizeWithCore()
Builder setMipWantedPrecision(double value)
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasMaxIntegerRoundingScaling()
Builder setUseOverloadCheckerInCumulativeConstraint(boolean value)
Builder setNewConstraintsBatchSize(int value)
boolean hasExploitObjective()
.lang.Deprecated static final com.google.protobuf.Parser< SatParameters > PARSER
.lang.Override com.google.protobuf.Parser< SatParameters > getParserForType()
double getMipMaxBound()
Builder clearMaxDeterministicTime()
boolean getShareObjectiveBounds()
Builder setRandomBranchesRatio(double value)
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
boolean hasCountAssumptionLevelsInLbd()
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
boolean hasExploitBestSolution()
boolean getAutoDetectGreaterThanAtLeastOneOf()
boolean hasPresolveBveClauseWeight()
boolean getReduceMemoryUsageInInterleaveMode()
Builder clearInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
POLARITY_FALSE
POLARITY_FALSE = 1;
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
static final int USE_PB_RESOLUTION_FIELD_NUMBER
double getMaxDeterministicTime()
boolean hasExpandAutomatonConstraints()
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
PROTECTION_ALWAYS
Builder setMaxAllDiffCutSize(int value)
boolean hasMaxPresolveIterations()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasCoverOptimization()
Builder clearPresolveSubstitutionLevel()
Builder clearStopAfterFirstSolution()
int getMaxConsecutiveInactiveCount()
boolean getAddMirCuts()
Builder clearAddMirCuts()
int getRestartAlgorithmsCount()
Builder clearPresolveBvaThreshold()
Builder setCpModelProbingLevel(int value)
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
Builder setClauseCleanupTarget(int value)
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
NONE
NONE = 0;
static final int ADD_CG_CUTS_FIELD_NUMBER
boolean hasPresolveBvaThreshold()
Builder clearUseImpliedBounds()
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
HINT_SEARCH
static final int SEARCH_BRANCHING_FIELD_NUMBER
Builder setLogSearchProgress(boolean value)
Builder clearPresolveBveClauseWeight()
Builder setUseErwaHeuristic(boolean value)
boolean hasMinimizeCore()
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder clearGlucoseMaxDecay()
int getMaxIntegerRoundingScaling()
int getMaxPresolveIterations()
.lang.Deprecated static ConflictMinimizationAlgorithm valueOf(int value)
Builder clearCpModelMaxNumPresolveOperations()
boolean hasCpModelPresolve()
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
Builder clearMinimizeCore()
.lang.Deprecated static RestartAlgorithm valueOf(int value)
Builder clearRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
boolean hasExploitAllLpSolution()
boolean hasBinarySearchNumConflicts()
boolean hasDeterministicParallelSearch()
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
Builder clearUseErwaHeuristic()
Builder clearClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
boolean hasNumSearchWorkers()
static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER
boolean getOptimizeWithCore()
Builder clearUseRelaxationLns()
int getMipMaxActivityExponent()
Builder clearExploitObjective()
Builder setOnlyAddCutsAtLevelZero(boolean value)
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder clearMaxSatReverseAssumptionOrder()
boolean getDeterministicParallelSearch()
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
BINARY_MINIMIZATION_FIRST
BINARY_MINIMIZATION_FIRST = 1;
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
boolean getExploitAllLpSolution()
Builder clearInterleaveSearch()
boolean getUsePhaseSaving()
ORDER_ASSUMPTION_BY_DEPTH
ORDER_ASSUMPTION_BY_DEPTH = 1;
Builder clearPresolveBlockedClause()
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder setPresolveBveClauseWeight(int value)
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
Builder setUseCombinedNoOverlap(boolean value)
boolean hasClauseCleanupPeriod()
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
boolean hasSearchRandomizationTolerance()
static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER
double getMergeNoOverlapWorkLimit()
int getMaxIntegerRoundingScaling()
double getStrategyChangeIncreaseRatio()
STRATIFICATION_DESCENT
double getInitialVariablesActivity()
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
final int getNumber()
Builder setMipVarScaling(double value)
Builder setUseRelaxationLns(boolean value)
Builder setBinarySearchNumConflicts(int value)
boolean hasMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
boolean hasUseCombinedNoOverlap()
static final int MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER
boolean hasRandomPolarityRatio()
static final int USE_IMPLIED_BOUNDS_FIELD_NUMBER
static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER
boolean getCoverOptimization()
static final int NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER
boolean getExploitIntegerLpSolution()
boolean getAddCgCuts()
Builder clearRestartDlAverageRatio()
Builder clearCatchSigintSignal()
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder clearPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4;
boolean hasAddKnapsackCuts()
boolean getUsePbResolution()
int getNumConflictsBeforeStrategyChanges()
int getRestartRunningWindowSize()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
.lang.Deprecated static Polarity valueOf(int value)
boolean hasStopAfterPresolve()
boolean getAutoDetectGreaterThanAtLeastOneOf()
boolean getCpModelUseSatPresolve()
.lang.Override int getSerializedSize()
Builder clearSubsumptionDuringConflictAnalysis()
Builder clearUseBranchingInLp()
boolean hasPresolveBveThreshold()
Builder setPresolveUseBva(boolean value)
long getPseudoCostReliabilityThreshold()
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
Builder clearCpModelPresolve()
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
PORTFOLIO_WITH_QUICK_RESTART_SEARCH
EXPERIMENTAL
EXPERIMENTAL = 3;
boolean getInterleaveSearch()
Builder clearAlsoBumpVariablesInConflictReasons()
boolean hasMinimizeCore()
static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER
DL_MOVING_AVERAGE_RESTART
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Builder clearMaxConsecutiveInactiveCount()
boolean hasSubsumptionDuringConflictAnalysis()
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
boolean hasMaxDeterministicTime()
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearClauseCleanupPeriod()
double getMipWantedPrecision()
Builder clearPresolveBveThreshold()
boolean hasGlucoseMaxDecay()
Builder clearMipMaxActivityExponent()
static SearchBranching forNumber(int value)
int getMaxConsecutiveInactiveCount()
Builder setMergeAtMostOneWorkLimit(double value)
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
static final int USE_RELAXATION_LNS_FIELD_NUMBER
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasCoverOptimization()
Builder setMaxClauseActivityValue(double value)
optional double max_clause_activity_value = 18 [default = 1e+20];
int getRestartPeriod()
double getClauseActivityDecay()
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int USE_EXACT_LP_REASON_FIELD_NUMBER
static final int INITIAL_POLARITY_FIELD_NUMBER
RECURSIVE
RECURSIVE = 2;
Builder clearLinearizationLevel()
Builder setMipMaxBound(double value)
boolean hasClauseActivityDecay()
double getClauseActivityDecay()
static Polarity forNumber(int value)
Builder setRandomPolarityRatio(double value)
boolean hasExpandElementConstraints()
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
STRATIFICATION_NONE
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder clearInstantiateAllVariables()
boolean hasInitialVariablesActivity()
boolean hasUseRelaxationLns()
PROTECTION_NONE
Builder clearShareLevelZeroBounds()
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
Builder setClauseCleanupLbdBound(int value)
boolean hasUsePhaseSaving()
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
static final int NUM_SEARCH_WORKERS_FIELD_NUMBER
Builder setRestartPeriod(int value)
Builder clearCpModelUseSatPresolve()
int getPresolveBvaThreshold()
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
Builder setVariableActivityDecay(double value)
Builder setCpModelPresolve(boolean value)
NO_RESTART
NO_RESTART = 0;
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
Builder setRandomSeed(int value)
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder clearTreatBinaryClausesSeparately()
static final int PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
boolean hasShareObjectiveBounds()
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
boolean hasMaxConsecutiveInactiveCount()
static final int USE_PHASE_SAVING_FIELD_NUMBER
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
boolean hasMaxNumCuts()
Builder clearPbCleanupIncrement()
Builder setExploitBestSolution(boolean value)
Builder clearMergeNoOverlapWorkLimit()
boolean hasReduceMemoryUsageInInterleaveMode()
boolean hasStrategyChangeIncreaseRatio()
FIXED_SEARCH
static final int MINIMIZE_WITH_PROPAGATION_RESTART_PERIOD_FIELD_NUMBER
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean hasMergeAtMostOneWorkLimit()
optional double merge_at_most_one_work_limit = 146 [default = 100000000];
static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER
static final int LINEARIZATION_LEVEL_FIELD_NUMBER
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.ortools.sat.SatParameters getDefaultInstance()
boolean getUseRelaxationLns()
boolean hasFindMultipleCores()
int getMaxNumCuts()
Builder setMinimizeReductionDuringPbResolution(boolean value)
boolean getPresolveBlockedClause()
int getRestartRunningWindowSize()
.lang.Deprecated static MaxSatAssumptionOrder valueOf(int value)
boolean getPresolveBlockedClause()
static final int USE_BLOCKING_RESTART_FIELD_NUMBER
Builder setUseOptionalVariables(boolean value)
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasUseBlockingRestart()
LUBY_RESTART
double getMaxDeterministicTime()
Builder clearProbingPeriodAtRoot()
double getGlucoseMaxDecay()
.lang.Override Builder newBuilderForType()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
boolean hasMipMaxActivityExponent()
boolean hasRandomSeed()
Builder clearPresolveUseBva()
boolean hasOnlyAddCutsAtLevelZero()
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
double getStrategyChangeIncreaseRatio()
LP_SEARCH
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
Builder clearDeterministicParallelSearch()
boolean getUseOverloadCheckerInCumulativeConstraint()
Builder setCatchSigintSignal(boolean value)
Builder clearExploitBestSolution()
static final int MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
Builder setExploitObjective(boolean value)
static final int MAX_MEMORY_IN_MB_FIELD_NUMBER
int getMaxAllDiffCutSize()
boolean hasAddCgCuts()
boolean hasNewConstraintsBatchSize()
boolean getRandomizeSearch()
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder clearBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
Builder clearMinimizeReductionDuringPbResolution()
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
long getMaxMemoryInMb()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean hasCpModelUseSatPresolve()
boolean getExploitObjective()
int getNewConstraintsBatchSize()
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean getAlsoBumpVariablesInConflictReasons()
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
long getSearchRandomizationTolerance()
boolean getAddKnapsackCuts()
long getMaxNumberOfConflicts()
Builder clearMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
boolean hasRandomizeSearch()
Builder clearFillTightenedDomainsInResponse()
boolean getCatchSigintSignal()
boolean getCpModelPresolve()
Builder clearClauseCleanupLbdBound()
boolean hasPseudoCostReliabilityThreshold()
Builder setFillTightenedDomainsInResponse(boolean value)
Builder setUseBlockingRestart(boolean value)
int getBinarySearchNumConflicts()
int getBooleanEncodingLevel()
double getMipCheckPrecision()
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean hasPbCleanupIncrement()
Builder clearMaxPresolveIterations()
boolean getAddMirCuts()
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasRandomizeSearch()
static final int USE_ERWA_HEURISTIC_FIELD_NUMBER
Builder clearCountAssumptionLevelsInLbd()
Builder setGlucoseMaxDecay(double value)
Builder clearClauseActivityDecay()
static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER
int getClauseCleanupLbdBound()
boolean getMaxSatReverseAssumptionOrder()
boolean hasRandomSeed()
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...