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  useOptimizationHints_ = true;
69  minimizeCore_ = true;
70  findMultipleCores_ = true;
71  coverOptimization_ = true;
72  maxSatAssumptionOrder_ = 0;
73  maxSatStratification_ = 1;
74  usePrecedencesInDisjunctiveConstraint_ = true;
75  useDisjunctiveConstraintInCumulativeConstraint_ = true;
76  linearizationLevel_ = 1;
77  booleanEncodingLevel_ = 1;
78  maxNumCuts_ = 1000;
79  addMirCuts_ = true;
80  useMirRounding_ = true;
81  maxIntegerRoundingScaling_ = 600;
82  addLpConstraintsLazily_ = true;
83  maxInactiveCount_ = 1000L;
84  constraintRemovalBatchSize_ = 100L;
85  searchBranching_ = 0;
86  exploitIntegerLpSolution_ = true;
87  exploitAllLpSolution_ = true;
88  exploitObjective_ = true;
89  pseudoCostReliabilityThreshold_ = 100L;
90  binarySearchNumConflicts_ = -1;
91  cpModelPresolve_ = true;
92  cpModelProbingLevel_ = 2;
93  cpModelUseSatPresolve_ = true;
94  instantiateAllVariables_ = true;
95  autoDetectGreaterThanAtLeastOneOf_ = true;
96  numSearchWorkers_ = 1;
97  shareObjectiveBounds_ = true;
98  shareLevelZeroBounds_ = true;
99  useRinsLns_ = true;
100  useOptionalVariables_ = true;
101  useExactLpReason_ = true;
102  mipMaxBound_ = 10000000D;
103  mipVarScaling_ = 1D;
104  mipWantedPrecision_ = 1e-06D;
105  mipMaxActivityExponent_ = 53;
106  mipCheckPrecision_ = 0.0001D;
107  catchSigintSignal_ = true;
108  }
109 
110  @java.lang.Override
111  @SuppressWarnings({"unused"})
112  protected java.lang.Object newInstance(
113  UnusedPrivateParameter unused) {
114  return new SatParameters();
115  }
116 
117  @java.lang.Override
118  public final com.google.protobuf.UnknownFieldSet
120  return this.unknownFields;
121  }
122  private SatParameters(
123  com.google.protobuf.CodedInputStream input,
124  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
125  throws com.google.protobuf.InvalidProtocolBufferException {
126  this();
127  if (extensionRegistry == null) {
128  throw new java.lang.NullPointerException();
129  }
130  int mutable_bitField0_ = 0;
131  int mutable_bitField1_ = 0;
132  int mutable_bitField2_ = 0;
133  int mutable_bitField3_ = 0;
134  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
135  com.google.protobuf.UnknownFieldSet.newBuilder();
136  try {
137  boolean done = false;
138  while (!done) {
139  int tag = input.readTag();
140  switch (tag) {
141  case 0:
142  done = true;
143  break;
144  case 8: {
145  int rawValue = input.readEnum();
146  @SuppressWarnings("deprecation")
147  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
148  if (value == null) {
149  unknownFields.mergeVarintField(1, rawValue);
150  } else {
151  bitField0_ |= 0x00000001;
152  preferredVariableOrder_ = rawValue;
153  }
154  break;
155  }
156  case 16: {
157  int rawValue = input.readEnum();
158  @SuppressWarnings("deprecation")
159  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
160  if (value == null) {
161  unknownFields.mergeVarintField(2, rawValue);
162  } else {
163  bitField0_ |= 0x00000002;
164  initialPolarity_ = rawValue;
165  }
166  break;
167  }
168  case 32: {
169  int rawValue = input.readEnum();
170  @SuppressWarnings("deprecation")
171  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
172  if (value == null) {
173  unknownFields.mergeVarintField(4, rawValue);
174  } else {
175  bitField0_ |= 0x00000100;
176  minimizationAlgorithm_ = rawValue;
177  }
178  break;
179  }
180  case 88: {
181  bitField0_ |= 0x00000800;
182  clauseCleanupPeriod_ = input.readInt32();
183  break;
184  }
185  case 104: {
186  bitField0_ |= 0x00001000;
187  clauseCleanupTarget_ = input.readInt32();
188  break;
189  }
190  case 121: {
191  bitField0_ |= 0x00100000;
192  variableActivityDecay_ = input.readDouble();
193  break;
194  }
195  case 129: {
196  bitField0_ |= 0x00200000;
197  maxVariableActivityValue_ = input.readDouble();
198  break;
199  }
200  case 137: {
201  bitField0_ |= 0x02000000;
202  clauseActivityDecay_ = input.readDouble();
203  break;
204  }
205  case 145: {
206  bitField0_ |= 0x04000000;
207  maxClauseActivityValue_ = input.readDouble();
208  break;
209  }
210  case 177: {
211  bitField0_ |= 0x00400000;
212  glucoseMaxDecay_ = input.readDouble();
213  break;
214  }
215  case 185: {
216  bitField0_ |= 0x00800000;
217  glucoseDecayIncrement_ = input.readDouble();
218  break;
219  }
220  case 192: {
221  bitField0_ |= 0x01000000;
222  glucoseDecayIncrementPeriod_ = input.readInt32();
223  break;
224  }
225  case 240: {
226  bitField0_ |= 0x10000000;
227  restartPeriod_ = input.readInt32();
228  break;
229  }
230  case 248: {
231  bitField1_ |= 0x00000400;
232  randomSeed_ = input.readInt32();
233  break;
234  }
235  case 257: {
236  bitField0_ |= 0x00000010;
237  randomBranchesRatio_ = input.readDouble();
238  break;
239  }
240  case 264: {
241  bitField1_ |= 0x00000200;
242  treatBinaryClausesSeparately_ = input.readBool();
243  break;
244  }
245  case 272: {
246  int rawValue = input.readEnum();
247  @SuppressWarnings("deprecation")
248  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
249  if (value == null) {
250  unknownFields.mergeVarintField(34, rawValue);
251  } else {
252  bitField0_ |= 0x00000200;
253  binaryMinimizationAlgorithm_ = rawValue;
254  }
255  break;
256  }
257  case 280: {
258  bitField1_ |= 0x00200000;
259  useOptimizationHints_ = input.readBool();
260  break;
261  }
262  case 289: {
263  bitField1_ |= 0x00000020;
264  maxTimeInSeconds_ = input.readDouble();
265  break;
266  }
267  case 296: {
268  bitField1_ |= 0x00000080;
269  maxNumberOfConflicts_ = input.readInt64();
270  break;
271  }
272  case 320: {
273  bitField1_ |= 0x00000100;
274  maxMemoryInMb_ = input.readInt64();
275  break;
276  }
277  case 328: {
278  bitField1_ |= 0x00000800;
279  logSearchProgress_ = input.readBool();
280  break;
281  }
282  case 344: {
283  bitField1_ |= 0x00001000;
284  usePbResolution_ = input.readBool();
285  break;
286  }
287  case 352: {
288  bitField0_ |= 0x00000004;
289  usePhaseSaving_ = input.readBool();
290  break;
291  }
292  case 361: {
293  bitField0_ |= 0x00000008;
294  randomPolarityRatio_ = input.readDouble();
295  break;
296  }
297  case 368: {
298  bitField0_ |= 0x00010000;
299  pbCleanupIncrement_ = input.readInt32();
300  break;
301  }
302  case 377: {
303  bitField0_ |= 0x00020000;
304  pbCleanupRatio_ = input.readDouble();
305  break;
306  }
307  case 384: {
308  bitField1_ |= 0x00002000;
309  minimizeReductionDuringPbResolution_ = input.readBool();
310  break;
311  }
312  case 392: {
313  bitField1_ |= 0x00004000;
314  countAssumptionLevelsInLbd_ = input.readBool();
315  break;
316  }
317  case 400: {
318  bitField1_ |= 0x00400000;
319  minimizeCore_ = input.readBool();
320  break;
321  }
322  case 408: {
323  int rawValue = input.readEnum();
324  @SuppressWarnings("deprecation")
325  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
326  if (value == null) {
327  unknownFields.mergeVarintField(51, rawValue);
328  } else {
329  bitField1_ |= 0x02000000;
330  maxSatAssumptionOrder_ = rawValue;
331  }
332  break;
333  }
334  case 416: {
335  bitField1_ |= 0x04000000;
336  maxSatReverseAssumptionOrder_ = input.readBool();
337  break;
338  }
339  case 424: {
340  int rawValue = input.readEnum();
341  @SuppressWarnings("deprecation")
342  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
343  if (value == null) {
344  unknownFields.mergeVarintField(53, rawValue);
345  } else {
346  bitField1_ |= 0x08000000;
347  maxSatStratification_ = rawValue;
348  }
349  break;
350  }
351  case 432: {
352  bitField1_ |= 0x00008000;
353  presolveBveThreshold_ = input.readInt32();
354  break;
355  }
356  case 440: {
357  bitField1_ |= 0x00010000;
358  presolveBveClauseWeight_ = input.readInt32();
359  break;
360  }
361  case 448: {
362  bitField0_ |= 0x00000400;
363  subsumptionDuringConflictAnalysis_ = input.readBool();
364  break;
365  }
366  case 457: {
367  bitField1_ |= 0x00020000;
368  presolveProbingDeterministicTimeLimit_ = input.readDouble();
369  break;
370  }
371  case 464: {
372  int rawValue = input.readEnum();
373  @SuppressWarnings("deprecation")
374  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
375  if (value == null) {
376  unknownFields.mergeVarintField(58, rawValue);
377  } else {
378  bitField0_ |= 0x00002000;
379  clauseCleanupProtection_ = rawValue;
380  }
381  break;
382  }
383  case 472: {
384  bitField0_ |= 0x00004000;
385  clauseCleanupLbdBound_ = input.readInt32();
386  break;
387  }
388  case 480: {
389  int rawValue = input.readEnum();
390  @SuppressWarnings("deprecation")
391  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
392  if (value == null) {
393  unknownFields.mergeVarintField(60, rawValue);
394  } else {
395  bitField0_ |= 0x00008000;
396  clauseCleanupOrdering_ = rawValue;
397  }
398  break;
399  }
400  case 488: {
401  int rawValue = input.readEnum();
402  @SuppressWarnings("deprecation")
403  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
404  if (value == null) {
405  unknownFields.mergeVarintField(61, rawValue);
406  } else {
407  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
408  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
409  mutable_bitField0_ |= 0x08000000;
410  }
411  restartAlgorithms_.add(rawValue);
412  }
413  break;
414  }
415  case 490: {
416  int length = input.readRawVarint32();
417  int oldLimit = input.pushLimit(length);
418  while(input.getBytesUntilLimit() > 0) {
419  int rawValue = input.readEnum();
420  @SuppressWarnings("deprecation")
421  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
422  if (value == null) {
423  unknownFields.mergeVarintField(61, rawValue);
424  } else {
425  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
426  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
427  mutable_bitField0_ |= 0x08000000;
428  }
429  restartAlgorithms_.add(rawValue);
430  }
431  }
432  input.popLimit(oldLimit);
433  break;
434  }
435  case 496: {
436  bitField0_ |= 0x20000000;
437  restartRunningWindowSize_ = input.readInt32();
438  break;
439  }
440  case 505: {
441  bitField0_ |= 0x40000000;
442  restartDlAverageRatio_ = input.readDouble();
443  break;
444  }
445  case 512: {
446  bitField1_ |= 0x00000001;
447  useBlockingRestart_ = input.readBool();
448  break;
449  }
450  case 520: {
451  bitField1_ |= 0x00000002;
452  blockingRestartWindowSize_ = input.readInt32();
453  break;
454  }
455  case 529: {
456  bitField1_ |= 0x00000004;
457  blockingRestartMultiplier_ = input.readDouble();
458  break;
459  }
460  case 537: {
461  bitField1_ |= 0x00000040;
462  maxDeterministicTime_ = input.readDouble();
463  break;
464  }
465  case 544: {
466  bitField1_ |= 0x00000008;
467  numConflictsBeforeStrategyChanges_ = input.readInt32();
468  break;
469  }
470  case 553: {
471  bitField1_ |= 0x00000010;
472  strategyChangeIncreaseRatio_ = input.readDouble();
473  break;
474  }
475  case 562: {
476  com.google.protobuf.ByteString bs = input.readBytes();
477  bitField0_ |= 0x08000000;
478  defaultRestartAlgorithms_ = bs;
479  break;
480  }
481  case 569: {
482  bitField0_ |= 0x80000000;
483  restartLbdAverageRatio_ = input.readDouble();
484  break;
485  }
486  case 576: {
487  bitField1_ |= 0x00080000;
488  presolveUseBva_ = input.readBool();
489  break;
490  }
491  case 584: {
492  bitField1_ |= 0x00100000;
493  presolveBvaThreshold_ = input.readInt32();
494  break;
495  }
496  case 592: {
497  bitField1_ |= 0x10000000;
498  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
499  break;
500  }
501  case 600: {
502  bitField0_ |= 0x00000020;
503  useErwaHeuristic_ = input.readBool();
504  break;
505  }
506  case 609: {
507  bitField0_ |= 0x00000040;
508  initialVariablesActivity_ = input.readDouble();
509  break;
510  }
511  case 616: {
512  bitField0_ |= 0x00000080;
513  alsoBumpVariablesInConflictReasons_ = input.readBool();
514  break;
515  }
516  case 624: {
517  bitField1_ |= 0x20000000;
518  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
519  break;
520  }
521  case 632: {
522  bitField1_ |= 0x40000000;
523  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
524  break;
525  }
526  case 640: {
527  bitField1_ |= 0x80000000;
528  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
529  break;
530  }
531  case 656: {
532  int rawValue = input.readEnum();
533  @SuppressWarnings("deprecation")
534  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
535  if (value == null) {
536  unknownFields.mergeVarintField(82, rawValue);
537  } else {
538  bitField2_ |= 0x00002000;
539  searchBranching_ = rawValue;
540  }
541  break;
542  }
543  case 664: {
544  bitField2_ |= 0x00080000;
545  optimizeWithCore_ = input.readBool();
546  break;
547  }
548  case 672: {
549  bitField1_ |= 0x00800000;
550  findMultipleCores_ = input.readBool();
551  break;
552  }
553  case 680: {
554  bitField2_ |= 0x00200000;
555  optimizeWithMaxHs_ = input.readBool();
556  break;
557  }
558  case 688: {
559  bitField2_ |= 0x00400000;
560  cpModelPresolve_ = input.readBool();
561  break;
562  }
563  case 696: {
564  bitField2_ |= 0x02000000;
565  enumerateAllSolutions_ = input.readBool();
566  break;
567  }
568  case 704: {
569  bitField1_ |= 0x00040000;
570  presolveBlockedClause_ = input.readBool();
571  break;
572  }
573  case 712: {
574  bitField1_ |= 0x01000000;
575  coverOptimization_ = input.readBool();
576  break;
577  }
578  case 720: {
579  bitField2_ |= 0x00000001;
580  linearizationLevel_ = input.readInt32();
581  break;
582  }
583  case 728: {
584  bitField2_ |= 0x00000004;
585  maxNumCuts_ = input.readInt32();
586  break;
587  }
588  case 736: {
589  bitField2_ |= 0x00000008;
590  onlyAddCutsAtLevelZero_ = input.readBool();
591  break;
592  }
593  case 744: {
594  bitField2_ |= 0x01000000;
595  cpModelUseSatPresolve_ = input.readBool();
596  break;
597  }
598  case 752: {
599  bitField2_ |= 0x00004000;
600  exploitIntegerLpSolution_ = input.readBool();
601  break;
602  }
603  case 760: {
604  bitField2_ |= 0x10000000;
605  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
606  break;
607  }
608  case 768: {
609  bitField0_ |= 0x00040000;
610  minimizeWithPropagationRestartPeriod_ = input.readInt32();
611  break;
612  }
613  case 776: {
614  bitField0_ |= 0x00080000;
615  minimizeWithPropagationNumDecisions_ = input.readInt32();
616  break;
617  }
618  case 784: {
619  bitField2_ |= 0x20000000;
620  stopAfterFirstSolution_ = input.readBool();
621  break;
622  }
623  case 792: {
624  bitField2_ |= 0x00100000;
625  binarySearchNumConflicts_ = input.readInt32();
626  break;
627  }
628  case 800: {
629  bitField2_ |= 0x40000000;
630  numSearchWorkers_ = input.readInt32();
631  break;
632  }
633  case 808: {
634  bitField3_ |= 0x00000008;
635  useLnsOnly_ = input.readBool();
636  break;
637  }
638  case 824: {
639  bitField3_ |= 0x00000040;
640  randomizeSearch_ = input.readBool();
641  break;
642  }
643  case 832: {
644  bitField3_ |= 0x00000080;
645  searchRandomizationTolerance_ = input.readInt64();
646  break;
647  }
648  case 840: {
649  bitField3_ |= 0x00000010;
650  lnsFocusOnDecisionVariables_ = input.readBool();
651  break;
652  }
653  case 848: {
654  bitField2_ |= 0x08000000;
655  instantiateAllVariables_ = input.readBool();
656  break;
657  }
658  case 856: {
659  bitField2_ |= 0x00000002;
660  booleanEncodingLevel_ = input.readInt32();
661  break;
662  }
663  case 864: {
664  bitField3_ |= 0x00000100;
665  useOptionalVariables_ = input.readBool();
666  break;
667  }
668  case 872: {
669  bitField3_ |= 0x00000200;
670  useExactLpReason_ = input.readBool();
671  break;
672  }
673  case 880: {
674  bitField2_ |= 0x00800000;
675  cpModelProbingLevel_ = input.readInt32();
676  break;
677  }
678  case 888: {
679  bitField2_ |= 0x00000010;
680  addKnapsackCuts_ = input.readBool();
681  break;
682  }
683  case 896: {
684  bitField2_ |= 0x00000200;
685  addLpConstraintsLazily_ = input.readBool();
686  break;
687  }
688  case 904: {
689  bitField3_ |= 0x00000002;
690  shareObjectiveBounds_ = input.readBool();
691  break;
692  }
693  case 912: {
694  bitField3_ |= 0x00000004;
695  shareLevelZeroBounds_ = input.readBool();
696  break;
697  }
698  case 921: {
699  bitField2_ |= 0x00000400;
700  minOrthogonalityForLpConstraints_ = input.readDouble();
701  break;
702  }
703  case 928: {
704  bitField2_ |= 0x00008000;
705  exploitAllLpSolution_ = input.readBool();
706  break;
707  }
708  case 936: {
709  bitField2_ |= 0x00000020;
710  addCgCuts_ = input.readBool();
711  break;
712  }
713  case 944: {
714  bitField2_ |= 0x00000080;
715  useMirRounding_ = input.readBool();
716  break;
717  }
718  case 952: {
719  bitField2_ |= 0x00000100;
720  maxIntegerRoundingScaling_ = input.readInt32();
721  break;
722  }
723  case 960: {
724  bitField2_ |= 0x00000040;
725  addMirCuts_ = input.readBool();
726  break;
727  }
728  case 968: {
729  bitField2_ |= 0x00000800;
730  maxInactiveCount_ = input.readInt64();
731  break;
732  }
733  case 976: {
734  bitField2_ |= 0x00001000;
735  constraintRemovalBatchSize_ = input.readInt64();
736  break;
737  }
738  case 984: {
739  bitField2_ |= 0x00040000;
740  pseudoCostReliabilityThreshold_ = input.readInt64();
741  break;
742  }
743  case 993: {
744  bitField3_ |= 0x00000800;
745  mipMaxBound_ = input.readDouble();
746  break;
747  }
748  case 1001: {
749  bitField3_ |= 0x00001000;
750  mipVarScaling_ = input.readDouble();
751  break;
752  }
753  case 1009: {
754  bitField3_ |= 0x00002000;
755  mipWantedPrecision_ = input.readDouble();
756  break;
757  }
758  case 1016: {
759  bitField3_ |= 0x00004000;
760  mipMaxActivityExponent_ = input.readInt32();
761  break;
762  }
763  case 1025: {
764  bitField3_ |= 0x00008000;
765  mipCheckPrecision_ = input.readDouble();
766  break;
767  }
768  case 1032: {
769  bitField3_ |= 0x00000020;
770  useRinsLns_ = input.readBool();
771  break;
772  }
773  case 1040: {
774  bitField2_ |= 0x00010000;
775  exploitBestSolution_ = input.readBool();
776  break;
777  }
778  case 1048: {
779  bitField2_ |= 0x00020000;
780  exploitObjective_ = input.readBool();
781  break;
782  }
783  case 1056: {
784  bitField2_ |= 0x04000000;
785  fillTightenedDomainsInResponse_ = input.readBool();
786  break;
787  }
788  case 1064: {
789  bitField3_ |= 0x00000400;
790  useCombinedNoOverlap_ = input.readBool();
791  break;
792  }
793  case 1072: {
794  bitField3_ |= 0x00000001;
795  deterministicParallelSearch_ = input.readBool();
796  break;
797  }
798  case 1080: {
799  bitField3_ |= 0x00010000;
800  catchSigintSignal_ = input.readBool();
801  break;
802  }
803  case 1088: {
804  bitField2_ |= 0x80000000;
805  interleaveSearch_ = input.readBool();
806  break;
807  }
808  default: {
809  if (!parseUnknownField(
810  input, unknownFields, extensionRegistry, tag)) {
811  done = true;
812  }
813  break;
814  }
815  }
816  }
817  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
818  throw e.setUnfinishedMessage(this);
819  } catch (java.io.IOException e) {
820  throw new com.google.protobuf.InvalidProtocolBufferException(
821  e).setUnfinishedMessage(this);
822  } finally {
823  if (((mutable_bitField0_ & 0x08000000) != 0)) {
824  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
825  }
826  this.unknownFields = unknownFields.build();
827  makeExtensionsImmutable();
828  }
829  }
830  public static final com.google.protobuf.Descriptors.Descriptor
832  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
833  }
834 
835  @java.lang.Override
836  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
838  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
839  .ensureFieldAccessorsInitialized(
841  }
842 
851  public enum VariableOrder
852  implements com.google.protobuf.ProtocolMessageEnum {
869  ;
870 
878  public static final int IN_ORDER_VALUE = 0;
882  public static final int IN_REVERSE_ORDER_VALUE = 1;
886  public static final int IN_RANDOM_ORDER_VALUE = 2;
887 
888 
889  public final int getNumber() {
890  return value;
891  }
892 
896  @java.lang.Deprecated
897  public static VariableOrder valueOf(int value) {
898  return forNumber(value);
899  }
900 
901  public static VariableOrder forNumber(int value) {
902  switch (value) {
903  case 0: return IN_ORDER;
904  case 1: return IN_REVERSE_ORDER;
905  case 2: return IN_RANDOM_ORDER;
906  default: return null;
907  }
908  }
909 
910  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
912  return internalValueMap;
913  }
914  private static final com.google.protobuf.Internal.EnumLiteMap<
915  VariableOrder> internalValueMap =
916  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
917  public VariableOrder findValueByNumber(int number) {
918  return VariableOrder.forNumber(number);
919  }
920  };
921 
922  public final com.google.protobuf.Descriptors.EnumValueDescriptor
924  return getDescriptor().getValues().get(ordinal());
925  }
926  public final com.google.protobuf.Descriptors.EnumDescriptor
928  return getDescriptor();
929  }
930  public static final com.google.protobuf.Descriptors.EnumDescriptor
932  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
933  }
934 
935  private static final VariableOrder[] VALUES = values();
936 
937  public static VariableOrder valueOf(
938  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
939  if (desc.getType() != getDescriptor()) {
940  throw new java.lang.IllegalArgumentException(
941  "EnumValueDescriptor is not for this type.");
942  }
943  return VALUES[desc.getIndex()];
944  }
945 
946  private final int value;
947 
948  private VariableOrder(int value) {
949  this.value = value;
950  }
951 
952  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
953  }
954 
966  public enum Polarity
967  implements com.google.protobuf.ProtocolMessageEnum {
999  ;
1000 
1004  public static final int POLARITY_TRUE_VALUE = 0;
1008  public static final int POLARITY_FALSE_VALUE = 1;
1012  public static final int POLARITY_RANDOM_VALUE = 2;
1023  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1031  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1032 
1033 
1034  public final int getNumber() {
1035  return value;
1036  }
1037 
1041  @java.lang.Deprecated
1042  public static Polarity valueOf(int value) {
1043  return forNumber(value);
1044  }
1045 
1046  public static Polarity forNumber(int value) {
1047  switch (value) {
1048  case 0: return POLARITY_TRUE;
1049  case 1: return POLARITY_FALSE;
1050  case 2: return POLARITY_RANDOM;
1051  case 3: return POLARITY_WEIGHTED_SIGN;
1052  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1053  default: return null;
1054  }
1055  }
1056 
1057  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1059  return internalValueMap;
1060  }
1061  private static final com.google.protobuf.Internal.EnumLiteMap<
1062  Polarity> internalValueMap =
1063  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1064  public Polarity findValueByNumber(int number) {
1065  return Polarity.forNumber(number);
1066  }
1067  };
1068 
1069  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1071  return getDescriptor().getValues().get(ordinal());
1072  }
1073  public final com.google.protobuf.Descriptors.EnumDescriptor
1075  return getDescriptor();
1076  }
1077  public static final com.google.protobuf.Descriptors.EnumDescriptor
1079  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1080  }
1081 
1082  private static final Polarity[] VALUES = values();
1083 
1084  public static Polarity valueOf(
1085  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1086  if (desc.getType() != getDescriptor()) {
1087  throw new java.lang.IllegalArgumentException(
1088  "EnumValueDescriptor is not for this type.");
1089  }
1090  return VALUES[desc.getIndex()];
1091  }
1092 
1093  private final int value;
1094 
1095  private Polarity(int value) {
1096  this.value = value;
1097  }
1098 
1099  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1100  }
1101 
1110  implements com.google.protobuf.ProtocolMessageEnum {
1114  NONE(0),
1127  ;
1128 
1132  public static final int NONE_VALUE = 0;
1136  public static final int SIMPLE_VALUE = 1;
1140  public static final int RECURSIVE_VALUE = 2;
1144  public static final int EXPERIMENTAL_VALUE = 3;
1145 
1146 
1147  public final int getNumber() {
1148  return value;
1149  }
1150 
1154  @java.lang.Deprecated
1155  public static ConflictMinimizationAlgorithm valueOf(int value) {
1156  return forNumber(value);
1157  }
1158 
1159  public static ConflictMinimizationAlgorithm forNumber(int value) {
1160  switch (value) {
1161  case 0: return NONE;
1162  case 1: return SIMPLE;
1163  case 2: return RECURSIVE;
1164  case 3: return EXPERIMENTAL;
1165  default: return null;
1166  }
1167  }
1168 
1169  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1171  return internalValueMap;
1172  }
1173  private static final com.google.protobuf.Internal.EnumLiteMap<
1174  ConflictMinimizationAlgorithm> internalValueMap =
1175  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1176  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1178  }
1179  };
1180 
1181  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1183  return getDescriptor().getValues().get(ordinal());
1184  }
1185  public final com.google.protobuf.Descriptors.EnumDescriptor
1187  return getDescriptor();
1188  }
1189  public static final com.google.protobuf.Descriptors.EnumDescriptor
1191  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1192  }
1193 
1194  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1195 
1197  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1198  if (desc.getType() != getDescriptor()) {
1199  throw new java.lang.IllegalArgumentException(
1200  "EnumValueDescriptor is not for this type.");
1201  }
1202  return VALUES[desc.getIndex()];
1203  }
1204 
1205  private final int value;
1206 
1207  private ConflictMinimizationAlgorithm(int value) {
1208  this.value = value;
1209  }
1210 
1211  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1212  }
1213 
1223  implements com.google.protobuf.ProtocolMessageEnum {
1244  ;
1245 
1249  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1253  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1257  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1261  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1265  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1266 
1267 
1268  public final int getNumber() {
1269  return value;
1270  }
1271 
1275  @java.lang.Deprecated
1276  public static BinaryMinizationAlgorithm valueOf(int value) {
1277  return forNumber(value);
1278  }
1279 
1280  public static BinaryMinizationAlgorithm forNumber(int value) {
1281  switch (value) {
1282  case 0: return NO_BINARY_MINIMIZATION;
1283  case 1: return BINARY_MINIMIZATION_FIRST;
1284  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1285  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1286  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1287  default: return null;
1288  }
1289  }
1290 
1291  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1293  return internalValueMap;
1294  }
1295  private static final com.google.protobuf.Internal.EnumLiteMap<
1296  BinaryMinizationAlgorithm> internalValueMap =
1297  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1298  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1299  return BinaryMinizationAlgorithm.forNumber(number);
1300  }
1301  };
1302 
1303  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1305  return getDescriptor().getValues().get(ordinal());
1306  }
1307  public final com.google.protobuf.Descriptors.EnumDescriptor
1309  return getDescriptor();
1310  }
1311  public static final com.google.protobuf.Descriptors.EnumDescriptor
1313  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1314  }
1315 
1316  private static final BinaryMinizationAlgorithm[] VALUES = values();
1317 
1319  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1320  if (desc.getType() != getDescriptor()) {
1321  throw new java.lang.IllegalArgumentException(
1322  "EnumValueDescriptor is not for this type.");
1323  }
1324  return VALUES[desc.getIndex()];
1325  }
1326 
1327  private final int value;
1328 
1329  private BinaryMinizationAlgorithm(int value) {
1330  this.value = value;
1331  }
1332 
1333  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1334  }
1335 
1345  public enum ClauseProtection
1346  implements com.google.protobuf.ProtocolMessageEnum {
1371  ;
1372 
1380  public static final int PROTECTION_NONE_VALUE = 0;
1388  public static final int PROTECTION_ALWAYS_VALUE = 1;
1396  public static final int PROTECTION_LBD_VALUE = 2;
1397 
1398 
1399  public final int getNumber() {
1400  return value;
1401  }
1402 
1406  @java.lang.Deprecated
1407  public static ClauseProtection valueOf(int value) {
1408  return forNumber(value);
1409  }
1410 
1411  public static ClauseProtection forNumber(int value) {
1412  switch (value) {
1413  case 0: return PROTECTION_NONE;
1414  case 1: return PROTECTION_ALWAYS;
1415  case 2: return PROTECTION_LBD;
1416  default: return null;
1417  }
1418  }
1419 
1420  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1422  return internalValueMap;
1423  }
1424  private static final com.google.protobuf.Internal.EnumLiteMap<
1425  ClauseProtection> internalValueMap =
1426  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1427  public ClauseProtection findValueByNumber(int number) {
1428  return ClauseProtection.forNumber(number);
1429  }
1430  };
1431 
1432  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1434  return getDescriptor().getValues().get(ordinal());
1435  }
1436  public final com.google.protobuf.Descriptors.EnumDescriptor
1438  return getDescriptor();
1439  }
1440  public static final com.google.protobuf.Descriptors.EnumDescriptor
1442  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1443  }
1444 
1445  private static final ClauseProtection[] VALUES = values();
1446 
1447  public static ClauseProtection valueOf(
1448  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1449  if (desc.getType() != getDescriptor()) {
1450  throw new java.lang.IllegalArgumentException(
1451  "EnumValueDescriptor is not for this type.");
1452  }
1453  return VALUES[desc.getIndex()];
1454  }
1455 
1456  private final int value;
1457 
1458  private ClauseProtection(int value) {
1459  this.value = value;
1460  }
1461 
1462  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1463  }
1464 
1473  public enum ClauseOrdering
1474  implements com.google.protobuf.ProtocolMessageEnum {
1491  ;
1492 
1500  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1508  public static final int CLAUSE_LBD_VALUE = 1;
1509 
1510 
1511  public final int getNumber() {
1512  return value;
1513  }
1514 
1518  @java.lang.Deprecated
1519  public static ClauseOrdering valueOf(int value) {
1520  return forNumber(value);
1521  }
1522 
1523  public static ClauseOrdering forNumber(int value) {
1524  switch (value) {
1525  case 0: return CLAUSE_ACTIVITY;
1526  case 1: return CLAUSE_LBD;
1527  default: return null;
1528  }
1529  }
1530 
1531  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1533  return internalValueMap;
1534  }
1535  private static final com.google.protobuf.Internal.EnumLiteMap<
1536  ClauseOrdering> internalValueMap =
1537  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1538  public ClauseOrdering findValueByNumber(int number) {
1539  return ClauseOrdering.forNumber(number);
1540  }
1541  };
1542 
1543  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1545  return getDescriptor().getValues().get(ordinal());
1546  }
1547  public final com.google.protobuf.Descriptors.EnumDescriptor
1549  return getDescriptor();
1550  }
1551  public static final com.google.protobuf.Descriptors.EnumDescriptor
1553  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1554  }
1555 
1556  private static final ClauseOrdering[] VALUES = values();
1557 
1558  public static ClauseOrdering valueOf(
1559  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1560  if (desc.getType() != getDescriptor()) {
1561  throw new java.lang.IllegalArgumentException(
1562  "EnumValueDescriptor is not for this type.");
1563  }
1564  return VALUES[desc.getIndex()];
1565  }
1566 
1567  private final int value;
1568 
1569  private ClauseOrdering(int value) {
1570  this.value = value;
1571  }
1572 
1573  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1574  }
1575 
1587  public enum RestartAlgorithm
1588  implements com.google.protobuf.ProtocolMessageEnum {
1625  ;
1626 
1630  public static final int NO_RESTART_VALUE = 0;
1638  public static final int LUBY_RESTART_VALUE = 1;
1646  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1654  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1662  public static final int FIXED_RESTART_VALUE = 4;
1663 
1664 
1665  public final int getNumber() {
1666  return value;
1667  }
1668 
1672  @java.lang.Deprecated
1673  public static RestartAlgorithm valueOf(int value) {
1674  return forNumber(value);
1675  }
1676 
1677  public static RestartAlgorithm forNumber(int value) {
1678  switch (value) {
1679  case 0: return NO_RESTART;
1680  case 1: return LUBY_RESTART;
1681  case 2: return DL_MOVING_AVERAGE_RESTART;
1682  case 3: return LBD_MOVING_AVERAGE_RESTART;
1683  case 4: return FIXED_RESTART;
1684  default: return null;
1685  }
1686  }
1687 
1688  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1690  return internalValueMap;
1691  }
1692  private static final com.google.protobuf.Internal.EnumLiteMap<
1693  RestartAlgorithm> internalValueMap =
1694  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1695  public RestartAlgorithm findValueByNumber(int number) {
1696  return RestartAlgorithm.forNumber(number);
1697  }
1698  };
1699 
1700  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1702  return getDescriptor().getValues().get(ordinal());
1703  }
1704  public final com.google.protobuf.Descriptors.EnumDescriptor
1706  return getDescriptor();
1707  }
1708  public static final com.google.protobuf.Descriptors.EnumDescriptor
1710  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1711  }
1712 
1713  private static final RestartAlgorithm[] VALUES = values();
1714 
1715  public static RestartAlgorithm valueOf(
1716  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1717  if (desc.getType() != getDescriptor()) {
1718  throw new java.lang.IllegalArgumentException(
1719  "EnumValueDescriptor is not for this type.");
1720  }
1721  return VALUES[desc.getIndex()];
1722  }
1723 
1724  private final int value;
1725 
1726  private RestartAlgorithm(int value) {
1727  this.value = value;
1728  }
1729 
1730  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1731  }
1732 
1741  implements com.google.protobuf.ProtocolMessageEnum {
1754  ;
1755 
1759  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1763  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1767  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1768 
1769 
1770  public final int getNumber() {
1771  return value;
1772  }
1773 
1777  @java.lang.Deprecated
1778  public static MaxSatAssumptionOrder valueOf(int value) {
1779  return forNumber(value);
1780  }
1781 
1782  public static MaxSatAssumptionOrder forNumber(int value) {
1783  switch (value) {
1784  case 0: return DEFAULT_ASSUMPTION_ORDER;
1785  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1786  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1787  default: return null;
1788  }
1789  }
1790 
1791  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1793  return internalValueMap;
1794  }
1795  private static final com.google.protobuf.Internal.EnumLiteMap<
1796  MaxSatAssumptionOrder> internalValueMap =
1797  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1798  public MaxSatAssumptionOrder findValueByNumber(int number) {
1799  return MaxSatAssumptionOrder.forNumber(number);
1800  }
1801  };
1802 
1803  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1805  return getDescriptor().getValues().get(ordinal());
1806  }
1807  public final com.google.protobuf.Descriptors.EnumDescriptor
1809  return getDescriptor();
1810  }
1811  public static final com.google.protobuf.Descriptors.EnumDescriptor
1813  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1814  }
1815 
1816  private static final MaxSatAssumptionOrder[] VALUES = values();
1817 
1819  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1820  if (desc.getType() != getDescriptor()) {
1821  throw new java.lang.IllegalArgumentException(
1822  "EnumValueDescriptor is not for this type.");
1823  }
1824  return VALUES[desc.getIndex()];
1825  }
1826 
1827  private final int value;
1828 
1829  private MaxSatAssumptionOrder(int value) {
1830  this.value = value;
1831  }
1832 
1833  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1834  }
1835 
1844  implements com.google.protobuf.ProtocolMessageEnum {
1873  ;
1874 
1882  public static final int STRATIFICATION_NONE_VALUE = 0;
1891  public static final int STRATIFICATION_DESCENT_VALUE = 1;
1902  public static final int STRATIFICATION_ASCENT_VALUE = 2;
1903 
1904 
1905  public final int getNumber() {
1906  return value;
1907  }
1908 
1912  @java.lang.Deprecated
1913  public static MaxSatStratificationAlgorithm valueOf(int value) {
1914  return forNumber(value);
1915  }
1916 
1917  public static MaxSatStratificationAlgorithm forNumber(int value) {
1918  switch (value) {
1919  case 0: return STRATIFICATION_NONE;
1920  case 1: return STRATIFICATION_DESCENT;
1921  case 2: return STRATIFICATION_ASCENT;
1922  default: return null;
1923  }
1924  }
1925 
1926  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
1928  return internalValueMap;
1929  }
1930  private static final com.google.protobuf.Internal.EnumLiteMap<
1931  MaxSatStratificationAlgorithm> internalValueMap =
1932  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
1933  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
1935  }
1936  };
1937 
1938  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1940  return getDescriptor().getValues().get(ordinal());
1941  }
1942  public final com.google.protobuf.Descriptors.EnumDescriptor
1944  return getDescriptor();
1945  }
1946  public static final com.google.protobuf.Descriptors.EnumDescriptor
1948  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
1949  }
1950 
1951  private static final MaxSatStratificationAlgorithm[] VALUES = values();
1952 
1954  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1955  if (desc.getType() != getDescriptor()) {
1956  throw new java.lang.IllegalArgumentException(
1957  "EnumValueDescriptor is not for this type.");
1958  }
1959  return VALUES[desc.getIndex()];
1960  }
1961 
1962  private final int value;
1963 
1964  private MaxSatStratificationAlgorithm(int value) {
1965  this.value = value;
1966  }
1967 
1968  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
1969  }
1970 
1978  public enum SearchBranching
1979  implements com.google.protobuf.ProtocolMessageEnum {
2047  ;
2048 
2057  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2067  public static final int FIXED_SEARCH_VALUE = 1;
2075  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2085  public static final int LP_SEARCH_VALUE = 3;
2095  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2105  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2115  public static final int HINT_SEARCH_VALUE = 6;
2116 
2117 
2118  public final int getNumber() {
2119  return value;
2120  }
2121 
2125  @java.lang.Deprecated
2126  public static SearchBranching valueOf(int value) {
2127  return forNumber(value);
2128  }
2129 
2130  public static SearchBranching forNumber(int value) {
2131  switch (value) {
2132  case 0: return AUTOMATIC_SEARCH;
2133  case 1: return FIXED_SEARCH;
2134  case 2: return PORTFOLIO_SEARCH;
2135  case 3: return LP_SEARCH;
2136  case 4: return PSEUDO_COST_SEARCH;
2137  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2138  case 6: return HINT_SEARCH;
2139  default: return null;
2140  }
2141  }
2142 
2143  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2145  return internalValueMap;
2146  }
2147  private static final com.google.protobuf.Internal.EnumLiteMap<
2148  SearchBranching> internalValueMap =
2149  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2150  public SearchBranching findValueByNumber(int number) {
2151  return SearchBranching.forNumber(number);
2152  }
2153  };
2154 
2155  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2157  return getDescriptor().getValues().get(ordinal());
2158  }
2159  public final com.google.protobuf.Descriptors.EnumDescriptor
2161  return getDescriptor();
2162  }
2163  public static final com.google.protobuf.Descriptors.EnumDescriptor
2165  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2166  }
2167 
2168  private static final SearchBranching[] VALUES = values();
2169 
2170  public static SearchBranching valueOf(
2171  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2172  if (desc.getType() != getDescriptor()) {
2173  throw new java.lang.IllegalArgumentException(
2174  "EnumValueDescriptor is not for this type.");
2175  }
2176  return VALUES[desc.getIndex()];
2177  }
2178 
2179  private final int value;
2180 
2181  private SearchBranching(int value) {
2182  this.value = value;
2183  }
2184 
2185  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2186  }
2187 
2188  private int bitField0_;
2189  private int bitField1_;
2190  private int bitField2_;
2191  private int bitField3_;
2192  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2193  private int preferredVariableOrder_;
2197  public boolean hasPreferredVariableOrder() {
2198  return ((bitField0_ & 0x00000001) != 0);
2199  }
2204  @SuppressWarnings("deprecation")
2206  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2207  }
2208 
2209  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2210  private int initialPolarity_;
2214  public boolean hasInitialPolarity() {
2215  return ((bitField0_ & 0x00000002) != 0);
2216  }
2221  @SuppressWarnings("deprecation")
2223  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2224  }
2225 
2226  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2227  private boolean usePhaseSaving_;
2241  public boolean hasUsePhaseSaving() {
2242  return ((bitField0_ & 0x00000004) != 0);
2243  }
2257  public boolean getUsePhaseSaving() {
2258  return usePhaseSaving_;
2259  }
2260 
2261  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2262  private double randomPolarityRatio_;
2274  public boolean hasRandomPolarityRatio() {
2275  return ((bitField0_ & 0x00000008) != 0);
2276  }
2288  public double getRandomPolarityRatio() {
2289  return randomPolarityRatio_;
2290  }
2291 
2292  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2293  private double randomBranchesRatio_;
2303  public boolean hasRandomBranchesRatio() {
2304  return ((bitField0_ & 0x00000010) != 0);
2305  }
2315  public double getRandomBranchesRatio() {
2316  return randomBranchesRatio_;
2317  }
2318 
2319  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2320  private boolean useErwaHeuristic_;
2330  public boolean hasUseErwaHeuristic() {
2331  return ((bitField0_ & 0x00000020) != 0);
2332  }
2342  public boolean getUseErwaHeuristic() {
2343  return useErwaHeuristic_;
2344  }
2345 
2346  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2347  private double initialVariablesActivity_;
2360  public boolean hasInitialVariablesActivity() {
2361  return ((bitField0_ & 0x00000040) != 0);
2362  }
2376  return initialVariablesActivity_;
2377  }
2378 
2380  private boolean alsoBumpVariablesInConflictReasons_;
2392  return ((bitField0_ & 0x00000080) != 0);
2393  }
2405  return alsoBumpVariablesInConflictReasons_;
2406  }
2407 
2408  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2409  private int minimizationAlgorithm_;
2413  public boolean hasMinimizationAlgorithm() {
2414  return ((bitField0_ & 0x00000100) != 0);
2415  }
2420  @SuppressWarnings("deprecation")
2422  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2423  }
2424 
2425  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2426  private int binaryMinimizationAlgorithm_;
2431  return ((bitField0_ & 0x00000200) != 0);
2432  }
2437  @SuppressWarnings("deprecation")
2440  }
2441 
2443  private boolean subsumptionDuringConflictAnalysis_;
2455  return ((bitField0_ & 0x00000400) != 0);
2456  }
2468  return subsumptionDuringConflictAnalysis_;
2469  }
2470 
2471  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2472  private int clauseCleanupPeriod_;
2480  public boolean hasClauseCleanupPeriod() {
2481  return ((bitField0_ & 0x00000800) != 0);
2482  }
2490  public int getClauseCleanupPeriod() {
2491  return clauseCleanupPeriod_;
2492  }
2493 
2494  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2495  private int clauseCleanupTarget_;
2504  public boolean hasClauseCleanupTarget() {
2505  return ((bitField0_ & 0x00001000) != 0);
2506  }
2515  public int getClauseCleanupTarget() {
2516  return clauseCleanupTarget_;
2517  }
2518 
2519  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2520  private int clauseCleanupProtection_;
2524  public boolean hasClauseCleanupProtection() {
2525  return ((bitField0_ & 0x00002000) != 0);
2526  }
2531  @SuppressWarnings("deprecation")
2533  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2534  }
2535 
2536  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2537  private int clauseCleanupLbdBound_;
2546  public boolean hasClauseCleanupLbdBound() {
2547  return ((bitField0_ & 0x00004000) != 0);
2548  }
2558  return clauseCleanupLbdBound_;
2559  }
2560 
2561  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2562  private int clauseCleanupOrdering_;
2566  public boolean hasClauseCleanupOrdering() {
2567  return ((bitField0_ & 0x00008000) != 0);
2568  }
2573  @SuppressWarnings("deprecation")
2575  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2576  }
2577 
2578  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2579  private int pbCleanupIncrement_;
2587  public boolean hasPbCleanupIncrement() {
2588  return ((bitField0_ & 0x00010000) != 0);
2589  }
2597  public int getPbCleanupIncrement() {
2598  return pbCleanupIncrement_;
2599  }
2600 
2601  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2602  private double pbCleanupRatio_;
2606  public boolean hasPbCleanupRatio() {
2607  return ((bitField0_ & 0x00020000) != 0);
2608  }
2612  public double getPbCleanupRatio() {
2613  return pbCleanupRatio_;
2614  }
2615 
2617  private int minimizeWithPropagationRestartPeriod_;
2636  return ((bitField0_ & 0x00040000) != 0);
2637  }
2656  return minimizeWithPropagationRestartPeriod_;
2657  }
2658 
2660  private int minimizeWithPropagationNumDecisions_;
2665  return ((bitField0_ & 0x00080000) != 0);
2666  }
2671  return minimizeWithPropagationNumDecisions_;
2672  }
2673 
2674  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2675  private double variableActivityDecay_;
2689  public boolean hasVariableActivityDecay() {
2690  return ((bitField0_ & 0x00100000) != 0);
2691  }
2705  public double getVariableActivityDecay() {
2706  return variableActivityDecay_;
2707  }
2708 
2709  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2710  private double maxVariableActivityValue_;
2714  public boolean hasMaxVariableActivityValue() {
2715  return ((bitField0_ & 0x00200000) != 0);
2716  }
2721  return maxVariableActivityValue_;
2722  }
2723 
2724  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2725  private double glucoseMaxDecay_;
2736  public boolean hasGlucoseMaxDecay() {
2737  return ((bitField0_ & 0x00400000) != 0);
2738  }
2749  public double getGlucoseMaxDecay() {
2750  return glucoseMaxDecay_;
2751  }
2752 
2753  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2754  private double glucoseDecayIncrement_;
2758  public boolean hasGlucoseDecayIncrement() {
2759  return ((bitField0_ & 0x00800000) != 0);
2760  }
2764  public double getGlucoseDecayIncrement() {
2765  return glucoseDecayIncrement_;
2766  }
2767 
2768  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
2769  private int glucoseDecayIncrementPeriod_;
2774  return ((bitField0_ & 0x01000000) != 0);
2775  }
2780  return glucoseDecayIncrementPeriod_;
2781  }
2782 
2783  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2784  private double clauseActivityDecay_;
2792  public boolean hasClauseActivityDecay() {
2793  return ((bitField0_ & 0x02000000) != 0);
2794  }
2802  public double getClauseActivityDecay() {
2803  return clauseActivityDecay_;
2804  }
2805 
2806  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2807  private double maxClauseActivityValue_;
2811  public boolean hasMaxClauseActivityValue() {
2812  return ((bitField0_ & 0x04000000) != 0);
2813  }
2817  public double getMaxClauseActivityValue() {
2818  return maxClauseActivityValue_;
2819  }
2820 
2821  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
2822  private java.util.List<java.lang.Integer> restartAlgorithms_;
2823  private static final com.google.protobuf.Internal.ListAdapter.Converter<
2824  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
2825  new com.google.protobuf.Internal.ListAdapter.Converter<
2826  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
2827  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
2828  @SuppressWarnings("deprecation")
2830  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
2831  }
2832  };
2848  return new com.google.protobuf.Internal.ListAdapter<
2849  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
2850  }
2866  return restartAlgorithms_.size();
2867  }
2883  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
2884  }
2885 
2886  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
2887  private volatile java.lang.Object defaultRestartAlgorithms_;
2891  public boolean hasDefaultRestartAlgorithms() {
2892  return ((bitField0_ & 0x08000000) != 0);
2893  }
2897  public java.lang.String getDefaultRestartAlgorithms() {
2898  java.lang.Object ref = defaultRestartAlgorithms_;
2899  if (ref instanceof java.lang.String) {
2900  return (java.lang.String) ref;
2901  } else {
2902  com.google.protobuf.ByteString bs =
2903  (com.google.protobuf.ByteString) ref;
2904  java.lang.String s = bs.toStringUtf8();
2905  if (bs.isValidUtf8()) {
2906  defaultRestartAlgorithms_ = s;
2907  }
2908  return s;
2909  }
2910  }
2914  public com.google.protobuf.ByteString
2916  java.lang.Object ref = defaultRestartAlgorithms_;
2917  if (ref instanceof java.lang.String) {
2918  com.google.protobuf.ByteString b =
2919  com.google.protobuf.ByteString.copyFromUtf8(
2920  (java.lang.String) ref);
2921  defaultRestartAlgorithms_ = b;
2922  return b;
2923  } else {
2924  return (com.google.protobuf.ByteString) ref;
2925  }
2926  }
2927 
2928  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
2929  private int restartPeriod_;
2938  public boolean hasRestartPeriod() {
2939  return ((bitField0_ & 0x10000000) != 0);
2940  }
2949  public int getRestartPeriod() {
2950  return restartPeriod_;
2951  }
2952 
2953  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
2954  private int restartRunningWindowSize_;
2962  public boolean hasRestartRunningWindowSize() {
2963  return ((bitField0_ & 0x20000000) != 0);
2964  }
2973  return restartRunningWindowSize_;
2974  }
2975 
2976  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
2977  private double restartDlAverageRatio_;
2986  public boolean hasRestartDlAverageRatio() {
2987  return ((bitField0_ & 0x40000000) != 0);
2988  }
2997  public double getRestartDlAverageRatio() {
2998  return restartDlAverageRatio_;
2999  }
3000 
3001  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
3002  private double restartLbdAverageRatio_;
3006  public boolean hasRestartLbdAverageRatio() {
3007  return ((bitField0_ & 0x80000000) != 0);
3008  }
3012  public double getRestartLbdAverageRatio() {
3013  return restartLbdAverageRatio_;
3014  }
3015 
3016  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3017  private boolean useBlockingRestart_;
3027  public boolean hasUseBlockingRestart() {
3028  return ((bitField1_ & 0x00000001) != 0);
3029  }
3039  public boolean getUseBlockingRestart() {
3040  return useBlockingRestart_;
3041  }
3042 
3043  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3044  private int blockingRestartWindowSize_;
3048  public boolean hasBlockingRestartWindowSize() {
3049  return ((bitField1_ & 0x00000002) != 0);
3050  }
3055  return blockingRestartWindowSize_;
3056  }
3057 
3058  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3059  private double blockingRestartMultiplier_;
3063  public boolean hasBlockingRestartMultiplier() {
3064  return ((bitField1_ & 0x00000004) != 0);
3065  }
3070  return blockingRestartMultiplier_;
3071  }
3072 
3074  private int numConflictsBeforeStrategyChanges_;
3085  return ((bitField1_ & 0x00000008) != 0);
3086  }
3097  return numConflictsBeforeStrategyChanges_;
3098  }
3099 
3100  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3101  private double strategyChangeIncreaseRatio_;
3111  return ((bitField1_ & 0x00000010) != 0);
3112  }
3122  return strategyChangeIncreaseRatio_;
3123  }
3124 
3125  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3126  private double maxTimeInSeconds_;
3136  public boolean hasMaxTimeInSeconds() {
3137  return ((bitField1_ & 0x00000020) != 0);
3138  }
3148  public double getMaxTimeInSeconds() {
3149  return maxTimeInSeconds_;
3150  }
3151 
3152  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3153  private double maxDeterministicTime_;
3165  public boolean hasMaxDeterministicTime() {
3166  return ((bitField1_ & 0x00000040) != 0);
3167  }
3179  public double getMaxDeterministicTime() {
3180  return maxDeterministicTime_;
3181  }
3182 
3183  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3184  private long maxNumberOfConflicts_;
3197  public boolean hasMaxNumberOfConflicts() {
3198  return ((bitField1_ & 0x00000080) != 0);
3199  }
3212  public long getMaxNumberOfConflicts() {
3213  return maxNumberOfConflicts_;
3214  }
3215 
3216  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3217  private long maxMemoryInMb_;
3228  public boolean hasMaxMemoryInMb() {
3229  return ((bitField1_ & 0x00000100) != 0);
3230  }
3241  public long getMaxMemoryInMb() {
3242  return maxMemoryInMb_;
3243  }
3244 
3245  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3246  private boolean treatBinaryClausesSeparately_;
3257  return ((bitField1_ & 0x00000200) != 0);
3258  }
3269  return treatBinaryClausesSeparately_;
3270  }
3271 
3272  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3273  private int randomSeed_;
3286  public boolean hasRandomSeed() {
3287  return ((bitField1_ & 0x00000400) != 0);
3288  }
3301  public int getRandomSeed() {
3302  return randomSeed_;
3303  }
3304 
3305  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3306  private boolean logSearchProgress_;
3314  public boolean hasLogSearchProgress() {
3315  return ((bitField1_ & 0x00000800) != 0);
3316  }
3324  public boolean getLogSearchProgress() {
3325  return logSearchProgress_;
3326  }
3327 
3328  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3329  private boolean usePbResolution_;
3340  public boolean hasUsePbResolution() {
3341  return ((bitField1_ & 0x00001000) != 0);
3342  }
3353  public boolean getUsePbResolution() {
3354  return usePbResolution_;
3355  }
3356 
3358  private boolean minimizeReductionDuringPbResolution_;
3370  return ((bitField1_ & 0x00002000) != 0);
3371  }
3383  return minimizeReductionDuringPbResolution_;
3384  }
3385 
3386  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
3387  private boolean countAssumptionLevelsInLbd_;
3403  return ((bitField1_ & 0x00004000) != 0);
3404  }
3420  return countAssumptionLevelsInLbd_;
3421  }
3422 
3423  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3424  private int presolveBveThreshold_;
3434  public boolean hasPresolveBveThreshold() {
3435  return ((bitField1_ & 0x00008000) != 0);
3436  }
3447  return presolveBveThreshold_;
3448  }
3449 
3450  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3451  private int presolveBveClauseWeight_;
3460  public boolean hasPresolveBveClauseWeight() {
3461  return ((bitField1_ & 0x00010000) != 0);
3462  }
3472  return presolveBveClauseWeight_;
3473  }
3474 
3476  private double presolveProbingDeterministicTimeLimit_;
3486  return ((bitField1_ & 0x00020000) != 0);
3487  }
3497  return presolveProbingDeterministicTimeLimit_;
3498  }
3499 
3500  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3501  private boolean presolveBlockedClause_;
3510  public boolean hasPresolveBlockedClause() {
3511  return ((bitField1_ & 0x00040000) != 0);
3512  }
3521  public boolean getPresolveBlockedClause() {
3522  return presolveBlockedClause_;
3523  }
3524 
3525  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
3526  private boolean presolveUseBva_;
3534  public boolean hasPresolveUseBva() {
3535  return ((bitField1_ & 0x00080000) != 0);
3536  }
3544  public boolean getPresolveUseBva() {
3545  return presolveUseBva_;
3546  }
3547 
3548  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
3549  private int presolveBvaThreshold_;
3560  public boolean hasPresolveBvaThreshold() {
3561  return ((bitField1_ & 0x00100000) != 0);
3562  }
3574  return presolveBvaThreshold_;
3575  }
3576 
3577  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
3578  private boolean useOptimizationHints_;
3589  public boolean hasUseOptimizationHints() {
3590  return ((bitField1_ & 0x00200000) != 0);
3591  }
3602  public boolean getUseOptimizationHints() {
3603  return useOptimizationHints_;
3604  }
3605 
3606  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
3607  private boolean minimizeCore_;
3615  public boolean hasMinimizeCore() {
3616  return ((bitField1_ & 0x00400000) != 0);
3617  }
3625  public boolean getMinimizeCore() {
3626  return minimizeCore_;
3627  }
3628 
3629  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
3630  private boolean findMultipleCores_;
3639  public boolean hasFindMultipleCores() {
3640  return ((bitField1_ & 0x00800000) != 0);
3641  }
3650  public boolean getFindMultipleCores() {
3651  return findMultipleCores_;
3652  }
3653 
3654  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
3655  private boolean coverOptimization_;
3664  public boolean hasCoverOptimization() {
3665  return ((bitField1_ & 0x01000000) != 0);
3666  }
3675  public boolean getCoverOptimization() {
3676  return coverOptimization_;
3677  }
3678 
3679  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
3680  private int maxSatAssumptionOrder_;
3684  public boolean hasMaxSatAssumptionOrder() {
3685  return ((bitField1_ & 0x02000000) != 0);
3686  }
3691  @SuppressWarnings("deprecation")
3694  }
3695 
3697  private boolean maxSatReverseAssumptionOrder_;
3707  return ((bitField1_ & 0x04000000) != 0);
3708  }
3718  return maxSatReverseAssumptionOrder_;
3719  }
3720 
3721  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
3722  private int maxSatStratification_;
3726  public boolean hasMaxSatStratification() {
3727  return ((bitField1_ & 0x08000000) != 0);
3728  }
3733  @SuppressWarnings("deprecation")
3736  }
3737 
3739  private boolean usePrecedencesInDisjunctiveConstraint_;
3755  return ((bitField1_ & 0x10000000) != 0);
3756  }
3772  return usePrecedencesInDisjunctiveConstraint_;
3773  }
3774 
3776  private boolean useOverloadCheckerInCumulativeConstraint_;
3790  return ((bitField1_ & 0x20000000) != 0);
3791  }
3805  return useOverloadCheckerInCumulativeConstraint_;
3806  }
3807 
3809  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
3823  return ((bitField1_ & 0x40000000) != 0);
3824  }
3838  return useTimetableEdgeFindingInCumulativeConstraint_;
3839  }
3840 
3842  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
3858  return ((bitField1_ & 0x80000000) != 0);
3859  }
3875  return useDisjunctiveConstraintInCumulativeConstraint_;
3876  }
3877 
3878  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
3879  private int linearizationLevel_;
3890  public boolean hasLinearizationLevel() {
3891  return ((bitField2_ & 0x00000001) != 0);
3892  }
3903  public int getLinearizationLevel() {
3904  return linearizationLevel_;
3905  }
3906 
3907  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
3908  private int booleanEncodingLevel_;
3917  public boolean hasBooleanEncodingLevel() {
3918  return ((bitField2_ & 0x00000002) != 0);
3919  }
3929  return booleanEncodingLevel_;
3930  }
3931 
3932  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
3933  private int maxNumCuts_;
3942  public boolean hasMaxNumCuts() {
3943  return ((bitField2_ & 0x00000004) != 0);
3944  }
3953  public int getMaxNumCuts() {
3954  return maxNumCuts_;
3955  }
3956 
3957  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
3958  private boolean onlyAddCutsAtLevelZero_;
3967  public boolean hasOnlyAddCutsAtLevelZero() {
3968  return ((bitField2_ & 0x00000008) != 0);
3969  }
3978  public boolean getOnlyAddCutsAtLevelZero() {
3979  return onlyAddCutsAtLevelZero_;
3980  }
3981 
3982  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
3983  private boolean addKnapsackCuts_;
3993  public boolean hasAddKnapsackCuts() {
3994  return ((bitField2_ & 0x00000010) != 0);
3995  }
4005  public boolean getAddKnapsackCuts() {
4006  return addKnapsackCuts_;
4007  }
4008 
4009  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
4010  private boolean addCgCuts_;
4019  public boolean hasAddCgCuts() {
4020  return ((bitField2_ & 0x00000020) != 0);
4021  }
4030  public boolean getAddCgCuts() {
4031  return addCgCuts_;
4032  }
4033 
4034  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
4035  private boolean addMirCuts_;
4044  public boolean hasAddMirCuts() {
4045  return ((bitField2_ & 0x00000040) != 0);
4046  }
4055  public boolean getAddMirCuts() {
4056  return addMirCuts_;
4057  }
4058 
4059  public static final int USE_MIR_ROUNDING_FIELD_NUMBER = 118;
4060  private boolean useMirRounding_;
4070  public boolean hasUseMirRounding() {
4071  return ((bitField2_ & 0x00000080) != 0);
4072  }
4082  public boolean getUseMirRounding() {
4083  return useMirRounding_;
4084  }
4085 
4086  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4087  private int maxIntegerRoundingScaling_;
4099  public boolean hasMaxIntegerRoundingScaling() {
4100  return ((bitField2_ & 0x00000100) != 0);
4101  }
4114  return maxIntegerRoundingScaling_;
4115  }
4116 
4117  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4118  private boolean addLpConstraintsLazily_;
4129  public boolean hasAddLpConstraintsLazily() {
4130  return ((bitField2_ & 0x00000200) != 0);
4131  }
4142  public boolean getAddLpConstraintsLazily() {
4143  return addLpConstraintsLazily_;
4144  }
4145 
4147  private double minOrthogonalityForLpConstraints_;
4160  return ((bitField2_ & 0x00000400) != 0);
4161  }
4174  return minOrthogonalityForLpConstraints_;
4175  }
4176 
4177  public static final int MAX_INACTIVE_COUNT_FIELD_NUMBER = 121;
4178  private long maxInactiveCount_;
4187  public boolean hasMaxInactiveCount() {
4188  return ((bitField2_ & 0x00000800) != 0);
4189  }
4198  public long getMaxInactiveCount() {
4199  return maxInactiveCount_;
4200  }
4201 
4202  public static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER = 122;
4203  private long constraintRemovalBatchSize_;
4213  return ((bitField2_ & 0x00001000) != 0);
4214  }
4224  return constraintRemovalBatchSize_;
4225  }
4226 
4227  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4228  private int searchBranching_;
4232  public boolean hasSearchBranching() {
4233  return ((bitField2_ & 0x00002000) != 0);
4234  }
4239  @SuppressWarnings("deprecation")
4241  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4242  }
4243 
4244  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4245  private boolean exploitIntegerLpSolution_;
4256  public boolean hasExploitIntegerLpSolution() {
4257  return ((bitField2_ & 0x00004000) != 0);
4258  }
4269  public boolean getExploitIntegerLpSolution() {
4270  return exploitIntegerLpSolution_;
4271  }
4272 
4273  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4274  private boolean exploitAllLpSolution_;
4284  public boolean hasExploitAllLpSolution() {
4285  return ((bitField2_ & 0x00008000) != 0);
4286  }
4296  public boolean getExploitAllLpSolution() {
4297  return exploitAllLpSolution_;
4298  }
4299 
4300  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4301  private boolean exploitBestSolution_;
4309  public boolean hasExploitBestSolution() {
4310  return ((bitField2_ & 0x00010000) != 0);
4311  }
4319  public boolean getExploitBestSolution() {
4320  return exploitBestSolution_;
4321  }
4322 
4323  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4324  private boolean exploitObjective_;
4333  public boolean hasExploitObjective() {
4334  return ((bitField2_ & 0x00020000) != 0);
4335  }
4344  public boolean getExploitObjective() {
4345  return exploitObjective_;
4346  }
4347 
4348  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4349  private long pseudoCostReliabilityThreshold_;
4359  return ((bitField2_ & 0x00040000) != 0);
4360  }
4370  return pseudoCostReliabilityThreshold_;
4371  }
4372 
4373  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4374  private boolean optimizeWithCore_;
4385  public boolean hasOptimizeWithCore() {
4386  return ((bitField2_ & 0x00080000) != 0);
4387  }
4398  public boolean getOptimizeWithCore() {
4399  return optimizeWithCore_;
4400  }
4401 
4402  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
4403  private int binarySearchNumConflicts_;
4414  public boolean hasBinarySearchNumConflicts() {
4415  return ((bitField2_ & 0x00100000) != 0);
4416  }
4428  return binarySearchNumConflicts_;
4429  }
4430 
4431  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
4432  private boolean optimizeWithMaxHs_;
4445  public boolean hasOptimizeWithMaxHs() {
4446  return ((bitField2_ & 0x00200000) != 0);
4447  }
4460  public boolean getOptimizeWithMaxHs() {
4461  return optimizeWithMaxHs_;
4462  }
4463 
4464  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
4465  private boolean cpModelPresolve_;
4473  public boolean hasCpModelPresolve() {
4474  return ((bitField2_ & 0x00400000) != 0);
4475  }
4483  public boolean getCpModelPresolve() {
4484  return cpModelPresolve_;
4485  }
4486 
4487  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
4488  private int cpModelProbingLevel_;
4496  public boolean hasCpModelProbingLevel() {
4497  return ((bitField2_ & 0x00800000) != 0);
4498  }
4506  public int getCpModelProbingLevel() {
4507  return cpModelProbingLevel_;
4508  }
4509 
4510  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
4511  private boolean cpModelUseSatPresolve_;
4519  public boolean hasCpModelUseSatPresolve() {
4520  return ((bitField2_ & 0x01000000) != 0);
4521  }
4529  public boolean getCpModelUseSatPresolve() {
4530  return cpModelUseSatPresolve_;
4531  }
4532 
4533  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
4534  private boolean enumerateAllSolutions_;
4547  public boolean hasEnumerateAllSolutions() {
4548  return ((bitField2_ & 0x02000000) != 0);
4549  }
4562  public boolean getEnumerateAllSolutions() {
4563  return enumerateAllSolutions_;
4564  }
4565 
4567  private boolean fillTightenedDomainsInResponse_;
4580  return ((bitField2_ & 0x04000000) != 0);
4581  }
4594  return fillTightenedDomainsInResponse_;
4595  }
4596 
4597  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
4598  private boolean instantiateAllVariables_;
4607  public boolean hasInstantiateAllVariables() {
4608  return ((bitField2_ & 0x08000000) != 0);
4609  }
4618  public boolean getInstantiateAllVariables() {
4619  return instantiateAllVariables_;
4620  }
4621 
4623  private boolean autoDetectGreaterThanAtLeastOneOf_;
4635  return ((bitField2_ & 0x10000000) != 0);
4636  }
4648  return autoDetectGreaterThanAtLeastOneOf_;
4649  }
4650 
4651  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
4652  private boolean stopAfterFirstSolution_;
4660  public boolean hasStopAfterFirstSolution() {
4661  return ((bitField2_ & 0x20000000) != 0);
4662  }
4670  public boolean getStopAfterFirstSolution() {
4671  return stopAfterFirstSolution_;
4672  }
4673 
4674  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
4675  private int numSearchWorkers_;
4684  public boolean hasNumSearchWorkers() {
4685  return ((bitField2_ & 0x40000000) != 0);
4686  }
4695  public int getNumSearchWorkers() {
4696  return numSearchWorkers_;
4697  }
4698 
4699  public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
4700  private boolean interleaveSearch_;
4711  public boolean hasInterleaveSearch() {
4712  return ((bitField2_ & 0x80000000) != 0);
4713  }
4724  public boolean getInterleaveSearch() {
4725  return interleaveSearch_;
4726  }
4727 
4728  public static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER = 134;
4729  private boolean deterministicParallelSearch_;
4740  return ((bitField3_ & 0x00000001) != 0);
4741  }
4752  return deterministicParallelSearch_;
4753  }
4754 
4755  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
4756  private boolean shareObjectiveBounds_;
4764  public boolean hasShareObjectiveBounds() {
4765  return ((bitField3_ & 0x00000002) != 0);
4766  }
4774  public boolean getShareObjectiveBounds() {
4775  return shareObjectiveBounds_;
4776  }
4777 
4778  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
4779  private boolean shareLevelZeroBounds_;
4787  public boolean hasShareLevelZeroBounds() {
4788  return ((bitField3_ & 0x00000004) != 0);
4789  }
4797  public boolean getShareLevelZeroBounds() {
4798  return shareLevelZeroBounds_;
4799  }
4800 
4801  public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
4802  private boolean useLnsOnly_;
4810  public boolean hasUseLnsOnly() {
4811  return ((bitField3_ & 0x00000008) != 0);
4812  }
4820  public boolean getUseLnsOnly() {
4821  return useLnsOnly_;
4822  }
4823 
4824  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
4825  private boolean lnsFocusOnDecisionVariables_;
4830  return ((bitField3_ & 0x00000010) != 0);
4831  }
4836  return lnsFocusOnDecisionVariables_;
4837  }
4838 
4839  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
4840  private boolean useRinsLns_;
4848  public boolean hasUseRinsLns() {
4849  return ((bitField3_ & 0x00000020) != 0);
4850  }
4858  public boolean getUseRinsLns() {
4859  return useRinsLns_;
4860  }
4861 
4862  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
4863  private boolean randomizeSearch_;
4871  public boolean hasRandomizeSearch() {
4872  return ((bitField3_ & 0x00000040) != 0);
4873  }
4881  public boolean getRandomizeSearch() {
4882  return randomizeSearch_;
4883  }
4884 
4885  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
4886  private long searchRandomizationTolerance_;
4901  return ((bitField3_ & 0x00000080) != 0);
4902  }
4917  return searchRandomizationTolerance_;
4918  }
4919 
4920  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
4921  private boolean useOptionalVariables_;
4931  public boolean hasUseOptionalVariables() {
4932  return ((bitField3_ & 0x00000100) != 0);
4933  }
4943  public boolean getUseOptionalVariables() {
4944  return useOptionalVariables_;
4945  }
4946 
4947  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
4948  private boolean useExactLpReason_;
4959  public boolean hasUseExactLpReason() {
4960  return ((bitField3_ & 0x00000200) != 0);
4961  }
4972  public boolean getUseExactLpReason() {
4973  return useExactLpReason_;
4974  }
4975 
4976  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
4977  private boolean useCombinedNoOverlap_;
4987  public boolean hasUseCombinedNoOverlap() {
4988  return ((bitField3_ & 0x00000400) != 0);
4989  }
4999  public boolean getUseCombinedNoOverlap() {
5000  return useCombinedNoOverlap_;
5001  }
5002 
5003  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
5004  private double mipMaxBound_;
5014  public boolean hasMipMaxBound() {
5015  return ((bitField3_ & 0x00000800) != 0);
5016  }
5026  public double getMipMaxBound() {
5027  return mipMaxBound_;
5028  }
5029 
5030  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
5031  private double mipVarScaling_;
5041  public boolean hasMipVarScaling() {
5042  return ((bitField3_ & 0x00001000) != 0);
5043  }
5053  public double getMipVarScaling() {
5054  return mipVarScaling_;
5055  }
5056 
5057  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
5058  private double mipWantedPrecision_;
5074  public boolean hasMipWantedPrecision() {
5075  return ((bitField3_ & 0x00002000) != 0);
5076  }
5092  public double getMipWantedPrecision() {
5093  return mipWantedPrecision_;
5094  }
5095 
5096  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5097  private int mipMaxActivityExponent_;
5111  public boolean hasMipMaxActivityExponent() {
5112  return ((bitField3_ & 0x00004000) != 0);
5113  }
5128  return mipMaxActivityExponent_;
5129  }
5130 
5131  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5132  private double mipCheckPrecision_;
5143  public boolean hasMipCheckPrecision() {
5144  return ((bitField3_ & 0x00008000) != 0);
5145  }
5156  public double getMipCheckPrecision() {
5157  return mipCheckPrecision_;
5158  }
5159 
5160  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
5161  private boolean catchSigintSignal_;
5171  public boolean hasCatchSigintSignal() {
5172  return ((bitField3_ & 0x00010000) != 0);
5173  }
5183  public boolean getCatchSigintSignal() {
5184  return catchSigintSignal_;
5185  }
5186 
5187  private byte memoizedIsInitialized = -1;
5188  @java.lang.Override
5189  public final boolean isInitialized() {
5190  byte isInitialized = memoizedIsInitialized;
5191  if (isInitialized == 1) return true;
5192  if (isInitialized == 0) return false;
5193 
5194  memoizedIsInitialized = 1;
5195  return true;
5196  }
5197 
5198  @java.lang.Override
5199  public void writeTo(com.google.protobuf.CodedOutputStream output)
5200  throws java.io.IOException {
5201  if (((bitField0_ & 0x00000001) != 0)) {
5202  output.writeEnum(1, preferredVariableOrder_);
5203  }
5204  if (((bitField0_ & 0x00000002) != 0)) {
5205  output.writeEnum(2, initialPolarity_);
5206  }
5207  if (((bitField0_ & 0x00000100) != 0)) {
5208  output.writeEnum(4, minimizationAlgorithm_);
5209  }
5210  if (((bitField0_ & 0x00000800) != 0)) {
5211  output.writeInt32(11, clauseCleanupPeriod_);
5212  }
5213  if (((bitField0_ & 0x00001000) != 0)) {
5214  output.writeInt32(13, clauseCleanupTarget_);
5215  }
5216  if (((bitField0_ & 0x00100000) != 0)) {
5217  output.writeDouble(15, variableActivityDecay_);
5218  }
5219  if (((bitField0_ & 0x00200000) != 0)) {
5220  output.writeDouble(16, maxVariableActivityValue_);
5221  }
5222  if (((bitField0_ & 0x02000000) != 0)) {
5223  output.writeDouble(17, clauseActivityDecay_);
5224  }
5225  if (((bitField0_ & 0x04000000) != 0)) {
5226  output.writeDouble(18, maxClauseActivityValue_);
5227  }
5228  if (((bitField0_ & 0x00400000) != 0)) {
5229  output.writeDouble(22, glucoseMaxDecay_);
5230  }
5231  if (((bitField0_ & 0x00800000) != 0)) {
5232  output.writeDouble(23, glucoseDecayIncrement_);
5233  }
5234  if (((bitField0_ & 0x01000000) != 0)) {
5235  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5236  }
5237  if (((bitField0_ & 0x10000000) != 0)) {
5238  output.writeInt32(30, restartPeriod_);
5239  }
5240  if (((bitField1_ & 0x00000400) != 0)) {
5241  output.writeInt32(31, randomSeed_);
5242  }
5243  if (((bitField0_ & 0x00000010) != 0)) {
5244  output.writeDouble(32, randomBranchesRatio_);
5245  }
5246  if (((bitField1_ & 0x00000200) != 0)) {
5247  output.writeBool(33, treatBinaryClausesSeparately_);
5248  }
5249  if (((bitField0_ & 0x00000200) != 0)) {
5250  output.writeEnum(34, binaryMinimizationAlgorithm_);
5251  }
5252  if (((bitField1_ & 0x00200000) != 0)) {
5253  output.writeBool(35, useOptimizationHints_);
5254  }
5255  if (((bitField1_ & 0x00000020) != 0)) {
5256  output.writeDouble(36, maxTimeInSeconds_);
5257  }
5258  if (((bitField1_ & 0x00000080) != 0)) {
5259  output.writeInt64(37, maxNumberOfConflicts_);
5260  }
5261  if (((bitField1_ & 0x00000100) != 0)) {
5262  output.writeInt64(40, maxMemoryInMb_);
5263  }
5264  if (((bitField1_ & 0x00000800) != 0)) {
5265  output.writeBool(41, logSearchProgress_);
5266  }
5267  if (((bitField1_ & 0x00001000) != 0)) {
5268  output.writeBool(43, usePbResolution_);
5269  }
5270  if (((bitField0_ & 0x00000004) != 0)) {
5271  output.writeBool(44, usePhaseSaving_);
5272  }
5273  if (((bitField0_ & 0x00000008) != 0)) {
5274  output.writeDouble(45, randomPolarityRatio_);
5275  }
5276  if (((bitField0_ & 0x00010000) != 0)) {
5277  output.writeInt32(46, pbCleanupIncrement_);
5278  }
5279  if (((bitField0_ & 0x00020000) != 0)) {
5280  output.writeDouble(47, pbCleanupRatio_);
5281  }
5282  if (((bitField1_ & 0x00002000) != 0)) {
5283  output.writeBool(48, minimizeReductionDuringPbResolution_);
5284  }
5285  if (((bitField1_ & 0x00004000) != 0)) {
5286  output.writeBool(49, countAssumptionLevelsInLbd_);
5287  }
5288  if (((bitField1_ & 0x00400000) != 0)) {
5289  output.writeBool(50, minimizeCore_);
5290  }
5291  if (((bitField1_ & 0x02000000) != 0)) {
5292  output.writeEnum(51, maxSatAssumptionOrder_);
5293  }
5294  if (((bitField1_ & 0x04000000) != 0)) {
5295  output.writeBool(52, maxSatReverseAssumptionOrder_);
5296  }
5297  if (((bitField1_ & 0x08000000) != 0)) {
5298  output.writeEnum(53, maxSatStratification_);
5299  }
5300  if (((bitField1_ & 0x00008000) != 0)) {
5301  output.writeInt32(54, presolveBveThreshold_);
5302  }
5303  if (((bitField1_ & 0x00010000) != 0)) {
5304  output.writeInt32(55, presolveBveClauseWeight_);
5305  }
5306  if (((bitField0_ & 0x00000400) != 0)) {
5307  output.writeBool(56, subsumptionDuringConflictAnalysis_);
5308  }
5309  if (((bitField1_ & 0x00020000) != 0)) {
5310  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
5311  }
5312  if (((bitField0_ & 0x00002000) != 0)) {
5313  output.writeEnum(58, clauseCleanupProtection_);
5314  }
5315  if (((bitField0_ & 0x00004000) != 0)) {
5316  output.writeInt32(59, clauseCleanupLbdBound_);
5317  }
5318  if (((bitField0_ & 0x00008000) != 0)) {
5319  output.writeEnum(60, clauseCleanupOrdering_);
5320  }
5321  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5322  output.writeEnum(61, restartAlgorithms_.get(i));
5323  }
5324  if (((bitField0_ & 0x20000000) != 0)) {
5325  output.writeInt32(62, restartRunningWindowSize_);
5326  }
5327  if (((bitField0_ & 0x40000000) != 0)) {
5328  output.writeDouble(63, restartDlAverageRatio_);
5329  }
5330  if (((bitField1_ & 0x00000001) != 0)) {
5331  output.writeBool(64, useBlockingRestart_);
5332  }
5333  if (((bitField1_ & 0x00000002) != 0)) {
5334  output.writeInt32(65, blockingRestartWindowSize_);
5335  }
5336  if (((bitField1_ & 0x00000004) != 0)) {
5337  output.writeDouble(66, blockingRestartMultiplier_);
5338  }
5339  if (((bitField1_ & 0x00000040) != 0)) {
5340  output.writeDouble(67, maxDeterministicTime_);
5341  }
5342  if (((bitField1_ & 0x00000008) != 0)) {
5343  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
5344  }
5345  if (((bitField1_ & 0x00000010) != 0)) {
5346  output.writeDouble(69, strategyChangeIncreaseRatio_);
5347  }
5348  if (((bitField0_ & 0x08000000) != 0)) {
5349  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
5350  }
5351  if (((bitField0_ & 0x80000000) != 0)) {
5352  output.writeDouble(71, restartLbdAverageRatio_);
5353  }
5354  if (((bitField1_ & 0x00080000) != 0)) {
5355  output.writeBool(72, presolveUseBva_);
5356  }
5357  if (((bitField1_ & 0x00100000) != 0)) {
5358  output.writeInt32(73, presolveBvaThreshold_);
5359  }
5360  if (((bitField1_ & 0x10000000) != 0)) {
5361  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
5362  }
5363  if (((bitField0_ & 0x00000020) != 0)) {
5364  output.writeBool(75, useErwaHeuristic_);
5365  }
5366  if (((bitField0_ & 0x00000040) != 0)) {
5367  output.writeDouble(76, initialVariablesActivity_);
5368  }
5369  if (((bitField0_ & 0x00000080) != 0)) {
5370  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
5371  }
5372  if (((bitField1_ & 0x20000000) != 0)) {
5373  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
5374  }
5375  if (((bitField1_ & 0x40000000) != 0)) {
5376  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
5377  }
5378  if (((bitField1_ & 0x80000000) != 0)) {
5379  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
5380  }
5381  if (((bitField2_ & 0x00002000) != 0)) {
5382  output.writeEnum(82, searchBranching_);
5383  }
5384  if (((bitField2_ & 0x00080000) != 0)) {
5385  output.writeBool(83, optimizeWithCore_);
5386  }
5387  if (((bitField1_ & 0x00800000) != 0)) {
5388  output.writeBool(84, findMultipleCores_);
5389  }
5390  if (((bitField2_ & 0x00200000) != 0)) {
5391  output.writeBool(85, optimizeWithMaxHs_);
5392  }
5393  if (((bitField2_ & 0x00400000) != 0)) {
5394  output.writeBool(86, cpModelPresolve_);
5395  }
5396  if (((bitField2_ & 0x02000000) != 0)) {
5397  output.writeBool(87, enumerateAllSolutions_);
5398  }
5399  if (((bitField1_ & 0x00040000) != 0)) {
5400  output.writeBool(88, presolveBlockedClause_);
5401  }
5402  if (((bitField1_ & 0x01000000) != 0)) {
5403  output.writeBool(89, coverOptimization_);
5404  }
5405  if (((bitField2_ & 0x00000001) != 0)) {
5406  output.writeInt32(90, linearizationLevel_);
5407  }
5408  if (((bitField2_ & 0x00000004) != 0)) {
5409  output.writeInt32(91, maxNumCuts_);
5410  }
5411  if (((bitField2_ & 0x00000008) != 0)) {
5412  output.writeBool(92, onlyAddCutsAtLevelZero_);
5413  }
5414  if (((bitField2_ & 0x01000000) != 0)) {
5415  output.writeBool(93, cpModelUseSatPresolve_);
5416  }
5417  if (((bitField2_ & 0x00004000) != 0)) {
5418  output.writeBool(94, exploitIntegerLpSolution_);
5419  }
5420  if (((bitField2_ & 0x10000000) != 0)) {
5421  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
5422  }
5423  if (((bitField0_ & 0x00040000) != 0)) {
5424  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
5425  }
5426  if (((bitField0_ & 0x00080000) != 0)) {
5427  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
5428  }
5429  if (((bitField2_ & 0x20000000) != 0)) {
5430  output.writeBool(98, stopAfterFirstSolution_);
5431  }
5432  if (((bitField2_ & 0x00100000) != 0)) {
5433  output.writeInt32(99, binarySearchNumConflicts_);
5434  }
5435  if (((bitField2_ & 0x40000000) != 0)) {
5436  output.writeInt32(100, numSearchWorkers_);
5437  }
5438  if (((bitField3_ & 0x00000008) != 0)) {
5439  output.writeBool(101, useLnsOnly_);
5440  }
5441  if (((bitField3_ & 0x00000040) != 0)) {
5442  output.writeBool(103, randomizeSearch_);
5443  }
5444  if (((bitField3_ & 0x00000080) != 0)) {
5445  output.writeInt64(104, searchRandomizationTolerance_);
5446  }
5447  if (((bitField3_ & 0x00000010) != 0)) {
5448  output.writeBool(105, lnsFocusOnDecisionVariables_);
5449  }
5450  if (((bitField2_ & 0x08000000) != 0)) {
5451  output.writeBool(106, instantiateAllVariables_);
5452  }
5453  if (((bitField2_ & 0x00000002) != 0)) {
5454  output.writeInt32(107, booleanEncodingLevel_);
5455  }
5456  if (((bitField3_ & 0x00000100) != 0)) {
5457  output.writeBool(108, useOptionalVariables_);
5458  }
5459  if (((bitField3_ & 0x00000200) != 0)) {
5460  output.writeBool(109, useExactLpReason_);
5461  }
5462  if (((bitField2_ & 0x00800000) != 0)) {
5463  output.writeInt32(110, cpModelProbingLevel_);
5464  }
5465  if (((bitField2_ & 0x00000010) != 0)) {
5466  output.writeBool(111, addKnapsackCuts_);
5467  }
5468  if (((bitField2_ & 0x00000200) != 0)) {
5469  output.writeBool(112, addLpConstraintsLazily_);
5470  }
5471  if (((bitField3_ & 0x00000002) != 0)) {
5472  output.writeBool(113, shareObjectiveBounds_);
5473  }
5474  if (((bitField3_ & 0x00000004) != 0)) {
5475  output.writeBool(114, shareLevelZeroBounds_);
5476  }
5477  if (((bitField2_ & 0x00000400) != 0)) {
5478  output.writeDouble(115, minOrthogonalityForLpConstraints_);
5479  }
5480  if (((bitField2_ & 0x00008000) != 0)) {
5481  output.writeBool(116, exploitAllLpSolution_);
5482  }
5483  if (((bitField2_ & 0x00000020) != 0)) {
5484  output.writeBool(117, addCgCuts_);
5485  }
5486  if (((bitField2_ & 0x00000080) != 0)) {
5487  output.writeBool(118, useMirRounding_);
5488  }
5489  if (((bitField2_ & 0x00000100) != 0)) {
5490  output.writeInt32(119, maxIntegerRoundingScaling_);
5491  }
5492  if (((bitField2_ & 0x00000040) != 0)) {
5493  output.writeBool(120, addMirCuts_);
5494  }
5495  if (((bitField2_ & 0x00000800) != 0)) {
5496  output.writeInt64(121, maxInactiveCount_);
5497  }
5498  if (((bitField2_ & 0x00001000) != 0)) {
5499  output.writeInt64(122, constraintRemovalBatchSize_);
5500  }
5501  if (((bitField2_ & 0x00040000) != 0)) {
5502  output.writeInt64(123, pseudoCostReliabilityThreshold_);
5503  }
5504  if (((bitField3_ & 0x00000800) != 0)) {
5505  output.writeDouble(124, mipMaxBound_);
5506  }
5507  if (((bitField3_ & 0x00001000) != 0)) {
5508  output.writeDouble(125, mipVarScaling_);
5509  }
5510  if (((bitField3_ & 0x00002000) != 0)) {
5511  output.writeDouble(126, mipWantedPrecision_);
5512  }
5513  if (((bitField3_ & 0x00004000) != 0)) {
5514  output.writeInt32(127, mipMaxActivityExponent_);
5515  }
5516  if (((bitField3_ & 0x00008000) != 0)) {
5517  output.writeDouble(128, mipCheckPrecision_);
5518  }
5519  if (((bitField3_ & 0x00000020) != 0)) {
5520  output.writeBool(129, useRinsLns_);
5521  }
5522  if (((bitField2_ & 0x00010000) != 0)) {
5523  output.writeBool(130, exploitBestSolution_);
5524  }
5525  if (((bitField2_ & 0x00020000) != 0)) {
5526  output.writeBool(131, exploitObjective_);
5527  }
5528  if (((bitField2_ & 0x04000000) != 0)) {
5529  output.writeBool(132, fillTightenedDomainsInResponse_);
5530  }
5531  if (((bitField3_ & 0x00000400) != 0)) {
5532  output.writeBool(133, useCombinedNoOverlap_);
5533  }
5534  if (((bitField3_ & 0x00000001) != 0)) {
5535  output.writeBool(134, deterministicParallelSearch_);
5536  }
5537  if (((bitField3_ & 0x00010000) != 0)) {
5538  output.writeBool(135, catchSigintSignal_);
5539  }
5540  if (((bitField2_ & 0x80000000) != 0)) {
5541  output.writeBool(136, interleaveSearch_);
5542  }
5543  unknownFields.writeTo(output);
5544  }
5545 
5546  @java.lang.Override
5547  public int getSerializedSize() {
5548  int size = memoizedSize;
5549  if (size != -1) return size;
5550 
5551  size = 0;
5552  if (((bitField0_ & 0x00000001) != 0)) {
5553  size += com.google.protobuf.CodedOutputStream
5554  .computeEnumSize(1, preferredVariableOrder_);
5555  }
5556  if (((bitField0_ & 0x00000002) != 0)) {
5557  size += com.google.protobuf.CodedOutputStream
5558  .computeEnumSize(2, initialPolarity_);
5559  }
5560  if (((bitField0_ & 0x00000100) != 0)) {
5561  size += com.google.protobuf.CodedOutputStream
5562  .computeEnumSize(4, minimizationAlgorithm_);
5563  }
5564  if (((bitField0_ & 0x00000800) != 0)) {
5565  size += com.google.protobuf.CodedOutputStream
5566  .computeInt32Size(11, clauseCleanupPeriod_);
5567  }
5568  if (((bitField0_ & 0x00001000) != 0)) {
5569  size += com.google.protobuf.CodedOutputStream
5570  .computeInt32Size(13, clauseCleanupTarget_);
5571  }
5572  if (((bitField0_ & 0x00100000) != 0)) {
5573  size += com.google.protobuf.CodedOutputStream
5574  .computeDoubleSize(15, variableActivityDecay_);
5575  }
5576  if (((bitField0_ & 0x00200000) != 0)) {
5577  size += com.google.protobuf.CodedOutputStream
5578  .computeDoubleSize(16, maxVariableActivityValue_);
5579  }
5580  if (((bitField0_ & 0x02000000) != 0)) {
5581  size += com.google.protobuf.CodedOutputStream
5582  .computeDoubleSize(17, clauseActivityDecay_);
5583  }
5584  if (((bitField0_ & 0x04000000) != 0)) {
5585  size += com.google.protobuf.CodedOutputStream
5586  .computeDoubleSize(18, maxClauseActivityValue_);
5587  }
5588  if (((bitField0_ & 0x00400000) != 0)) {
5589  size += com.google.protobuf.CodedOutputStream
5590  .computeDoubleSize(22, glucoseMaxDecay_);
5591  }
5592  if (((bitField0_ & 0x00800000) != 0)) {
5593  size += com.google.protobuf.CodedOutputStream
5594  .computeDoubleSize(23, glucoseDecayIncrement_);
5595  }
5596  if (((bitField0_ & 0x01000000) != 0)) {
5597  size += com.google.protobuf.CodedOutputStream
5598  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
5599  }
5600  if (((bitField0_ & 0x10000000) != 0)) {
5601  size += com.google.protobuf.CodedOutputStream
5602  .computeInt32Size(30, restartPeriod_);
5603  }
5604  if (((bitField1_ & 0x00000400) != 0)) {
5605  size += com.google.protobuf.CodedOutputStream
5606  .computeInt32Size(31, randomSeed_);
5607  }
5608  if (((bitField0_ & 0x00000010) != 0)) {
5609  size += com.google.protobuf.CodedOutputStream
5610  .computeDoubleSize(32, randomBranchesRatio_);
5611  }
5612  if (((bitField1_ & 0x00000200) != 0)) {
5613  size += com.google.protobuf.CodedOutputStream
5614  .computeBoolSize(33, treatBinaryClausesSeparately_);
5615  }
5616  if (((bitField0_ & 0x00000200) != 0)) {
5617  size += com.google.protobuf.CodedOutputStream
5618  .computeEnumSize(34, binaryMinimizationAlgorithm_);
5619  }
5620  if (((bitField1_ & 0x00200000) != 0)) {
5621  size += com.google.protobuf.CodedOutputStream
5622  .computeBoolSize(35, useOptimizationHints_);
5623  }
5624  if (((bitField1_ & 0x00000020) != 0)) {
5625  size += com.google.protobuf.CodedOutputStream
5626  .computeDoubleSize(36, maxTimeInSeconds_);
5627  }
5628  if (((bitField1_ & 0x00000080) != 0)) {
5629  size += com.google.protobuf.CodedOutputStream
5630  .computeInt64Size(37, maxNumberOfConflicts_);
5631  }
5632  if (((bitField1_ & 0x00000100) != 0)) {
5633  size += com.google.protobuf.CodedOutputStream
5634  .computeInt64Size(40, maxMemoryInMb_);
5635  }
5636  if (((bitField1_ & 0x00000800) != 0)) {
5637  size += com.google.protobuf.CodedOutputStream
5638  .computeBoolSize(41, logSearchProgress_);
5639  }
5640  if (((bitField1_ & 0x00001000) != 0)) {
5641  size += com.google.protobuf.CodedOutputStream
5642  .computeBoolSize(43, usePbResolution_);
5643  }
5644  if (((bitField0_ & 0x00000004) != 0)) {
5645  size += com.google.protobuf.CodedOutputStream
5646  .computeBoolSize(44, usePhaseSaving_);
5647  }
5648  if (((bitField0_ & 0x00000008) != 0)) {
5649  size += com.google.protobuf.CodedOutputStream
5650  .computeDoubleSize(45, randomPolarityRatio_);
5651  }
5652  if (((bitField0_ & 0x00010000) != 0)) {
5653  size += com.google.protobuf.CodedOutputStream
5654  .computeInt32Size(46, pbCleanupIncrement_);
5655  }
5656  if (((bitField0_ & 0x00020000) != 0)) {
5657  size += com.google.protobuf.CodedOutputStream
5658  .computeDoubleSize(47, pbCleanupRatio_);
5659  }
5660  if (((bitField1_ & 0x00002000) != 0)) {
5661  size += com.google.protobuf.CodedOutputStream
5662  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
5663  }
5664  if (((bitField1_ & 0x00004000) != 0)) {
5665  size += com.google.protobuf.CodedOutputStream
5666  .computeBoolSize(49, countAssumptionLevelsInLbd_);
5667  }
5668  if (((bitField1_ & 0x00400000) != 0)) {
5669  size += com.google.protobuf.CodedOutputStream
5670  .computeBoolSize(50, minimizeCore_);
5671  }
5672  if (((bitField1_ & 0x02000000) != 0)) {
5673  size += com.google.protobuf.CodedOutputStream
5674  .computeEnumSize(51, maxSatAssumptionOrder_);
5675  }
5676  if (((bitField1_ & 0x04000000) != 0)) {
5677  size += com.google.protobuf.CodedOutputStream
5678  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
5679  }
5680  if (((bitField1_ & 0x08000000) != 0)) {
5681  size += com.google.protobuf.CodedOutputStream
5682  .computeEnumSize(53, maxSatStratification_);
5683  }
5684  if (((bitField1_ & 0x00008000) != 0)) {
5685  size += com.google.protobuf.CodedOutputStream
5686  .computeInt32Size(54, presolveBveThreshold_);
5687  }
5688  if (((bitField1_ & 0x00010000) != 0)) {
5689  size += com.google.protobuf.CodedOutputStream
5690  .computeInt32Size(55, presolveBveClauseWeight_);
5691  }
5692  if (((bitField0_ & 0x00000400) != 0)) {
5693  size += com.google.protobuf.CodedOutputStream
5694  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
5695  }
5696  if (((bitField1_ & 0x00020000) != 0)) {
5697  size += com.google.protobuf.CodedOutputStream
5698  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
5699  }
5700  if (((bitField0_ & 0x00002000) != 0)) {
5701  size += com.google.protobuf.CodedOutputStream
5702  .computeEnumSize(58, clauseCleanupProtection_);
5703  }
5704  if (((bitField0_ & 0x00004000) != 0)) {
5705  size += com.google.protobuf.CodedOutputStream
5706  .computeInt32Size(59, clauseCleanupLbdBound_);
5707  }
5708  if (((bitField0_ & 0x00008000) != 0)) {
5709  size += com.google.protobuf.CodedOutputStream
5710  .computeEnumSize(60, clauseCleanupOrdering_);
5711  }
5712  {
5713  int dataSize = 0;
5714  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5715  dataSize += com.google.protobuf.CodedOutputStream
5716  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
5717  }
5718  size += dataSize;
5719  size += 2 * restartAlgorithms_.size();
5720  }
5721  if (((bitField0_ & 0x20000000) != 0)) {
5722  size += com.google.protobuf.CodedOutputStream
5723  .computeInt32Size(62, restartRunningWindowSize_);
5724  }
5725  if (((bitField0_ & 0x40000000) != 0)) {
5726  size += com.google.protobuf.CodedOutputStream
5727  .computeDoubleSize(63, restartDlAverageRatio_);
5728  }
5729  if (((bitField1_ & 0x00000001) != 0)) {
5730  size += com.google.protobuf.CodedOutputStream
5731  .computeBoolSize(64, useBlockingRestart_);
5732  }
5733  if (((bitField1_ & 0x00000002) != 0)) {
5734  size += com.google.protobuf.CodedOutputStream
5735  .computeInt32Size(65, blockingRestartWindowSize_);
5736  }
5737  if (((bitField1_ & 0x00000004) != 0)) {
5738  size += com.google.protobuf.CodedOutputStream
5739  .computeDoubleSize(66, blockingRestartMultiplier_);
5740  }
5741  if (((bitField1_ & 0x00000040) != 0)) {
5742  size += com.google.protobuf.CodedOutputStream
5743  .computeDoubleSize(67, maxDeterministicTime_);
5744  }
5745  if (((bitField1_ & 0x00000008) != 0)) {
5746  size += com.google.protobuf.CodedOutputStream
5747  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
5748  }
5749  if (((bitField1_ & 0x00000010) != 0)) {
5750  size += com.google.protobuf.CodedOutputStream
5751  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
5752  }
5753  if (((bitField0_ & 0x08000000) != 0)) {
5754  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
5755  }
5756  if (((bitField0_ & 0x80000000) != 0)) {
5757  size += com.google.protobuf.CodedOutputStream
5758  .computeDoubleSize(71, restartLbdAverageRatio_);
5759  }
5760  if (((bitField1_ & 0x00080000) != 0)) {
5761  size += com.google.protobuf.CodedOutputStream
5762  .computeBoolSize(72, presolveUseBva_);
5763  }
5764  if (((bitField1_ & 0x00100000) != 0)) {
5765  size += com.google.protobuf.CodedOutputStream
5766  .computeInt32Size(73, presolveBvaThreshold_);
5767  }
5768  if (((bitField1_ & 0x10000000) != 0)) {
5769  size += com.google.protobuf.CodedOutputStream
5770  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
5771  }
5772  if (((bitField0_ & 0x00000020) != 0)) {
5773  size += com.google.protobuf.CodedOutputStream
5774  .computeBoolSize(75, useErwaHeuristic_);
5775  }
5776  if (((bitField0_ & 0x00000040) != 0)) {
5777  size += com.google.protobuf.CodedOutputStream
5778  .computeDoubleSize(76, initialVariablesActivity_);
5779  }
5780  if (((bitField0_ & 0x00000080) != 0)) {
5781  size += com.google.protobuf.CodedOutputStream
5782  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
5783  }
5784  if (((bitField1_ & 0x20000000) != 0)) {
5785  size += com.google.protobuf.CodedOutputStream
5786  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
5787  }
5788  if (((bitField1_ & 0x40000000) != 0)) {
5789  size += com.google.protobuf.CodedOutputStream
5790  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
5791  }
5792  if (((bitField1_ & 0x80000000) != 0)) {
5793  size += com.google.protobuf.CodedOutputStream
5794  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
5795  }
5796  if (((bitField2_ & 0x00002000) != 0)) {
5797  size += com.google.protobuf.CodedOutputStream
5798  .computeEnumSize(82, searchBranching_);
5799  }
5800  if (((bitField2_ & 0x00080000) != 0)) {
5801  size += com.google.protobuf.CodedOutputStream
5802  .computeBoolSize(83, optimizeWithCore_);
5803  }
5804  if (((bitField1_ & 0x00800000) != 0)) {
5805  size += com.google.protobuf.CodedOutputStream
5806  .computeBoolSize(84, findMultipleCores_);
5807  }
5808  if (((bitField2_ & 0x00200000) != 0)) {
5809  size += com.google.protobuf.CodedOutputStream
5810  .computeBoolSize(85, optimizeWithMaxHs_);
5811  }
5812  if (((bitField2_ & 0x00400000) != 0)) {
5813  size += com.google.protobuf.CodedOutputStream
5814  .computeBoolSize(86, cpModelPresolve_);
5815  }
5816  if (((bitField2_ & 0x02000000) != 0)) {
5817  size += com.google.protobuf.CodedOutputStream
5818  .computeBoolSize(87, enumerateAllSolutions_);
5819  }
5820  if (((bitField1_ & 0x00040000) != 0)) {
5821  size += com.google.protobuf.CodedOutputStream
5822  .computeBoolSize(88, presolveBlockedClause_);
5823  }
5824  if (((bitField1_ & 0x01000000) != 0)) {
5825  size += com.google.protobuf.CodedOutputStream
5826  .computeBoolSize(89, coverOptimization_);
5827  }
5828  if (((bitField2_ & 0x00000001) != 0)) {
5829  size += com.google.protobuf.CodedOutputStream
5830  .computeInt32Size(90, linearizationLevel_);
5831  }
5832  if (((bitField2_ & 0x00000004) != 0)) {
5833  size += com.google.protobuf.CodedOutputStream
5834  .computeInt32Size(91, maxNumCuts_);
5835  }
5836  if (((bitField2_ & 0x00000008) != 0)) {
5837  size += com.google.protobuf.CodedOutputStream
5838  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
5839  }
5840  if (((bitField2_ & 0x01000000) != 0)) {
5841  size += com.google.protobuf.CodedOutputStream
5842  .computeBoolSize(93, cpModelUseSatPresolve_);
5843  }
5844  if (((bitField2_ & 0x00004000) != 0)) {
5845  size += com.google.protobuf.CodedOutputStream
5846  .computeBoolSize(94, exploitIntegerLpSolution_);
5847  }
5848  if (((bitField2_ & 0x10000000) != 0)) {
5849  size += com.google.protobuf.CodedOutputStream
5850  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
5851  }
5852  if (((bitField0_ & 0x00040000) != 0)) {
5853  size += com.google.protobuf.CodedOutputStream
5854  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
5855  }
5856  if (((bitField0_ & 0x00080000) != 0)) {
5857  size += com.google.protobuf.CodedOutputStream
5858  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
5859  }
5860  if (((bitField2_ & 0x20000000) != 0)) {
5861  size += com.google.protobuf.CodedOutputStream
5862  .computeBoolSize(98, stopAfterFirstSolution_);
5863  }
5864  if (((bitField2_ & 0x00100000) != 0)) {
5865  size += com.google.protobuf.CodedOutputStream
5866  .computeInt32Size(99, binarySearchNumConflicts_);
5867  }
5868  if (((bitField2_ & 0x40000000) != 0)) {
5869  size += com.google.protobuf.CodedOutputStream
5870  .computeInt32Size(100, numSearchWorkers_);
5871  }
5872  if (((bitField3_ & 0x00000008) != 0)) {
5873  size += com.google.protobuf.CodedOutputStream
5874  .computeBoolSize(101, useLnsOnly_);
5875  }
5876  if (((bitField3_ & 0x00000040) != 0)) {
5877  size += com.google.protobuf.CodedOutputStream
5878  .computeBoolSize(103, randomizeSearch_);
5879  }
5880  if (((bitField3_ & 0x00000080) != 0)) {
5881  size += com.google.protobuf.CodedOutputStream
5882  .computeInt64Size(104, searchRandomizationTolerance_);
5883  }
5884  if (((bitField3_ & 0x00000010) != 0)) {
5885  size += com.google.protobuf.CodedOutputStream
5886  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
5887  }
5888  if (((bitField2_ & 0x08000000) != 0)) {
5889  size += com.google.protobuf.CodedOutputStream
5890  .computeBoolSize(106, instantiateAllVariables_);
5891  }
5892  if (((bitField2_ & 0x00000002) != 0)) {
5893  size += com.google.protobuf.CodedOutputStream
5894  .computeInt32Size(107, booleanEncodingLevel_);
5895  }
5896  if (((bitField3_ & 0x00000100) != 0)) {
5897  size += com.google.protobuf.CodedOutputStream
5898  .computeBoolSize(108, useOptionalVariables_);
5899  }
5900  if (((bitField3_ & 0x00000200) != 0)) {
5901  size += com.google.protobuf.CodedOutputStream
5902  .computeBoolSize(109, useExactLpReason_);
5903  }
5904  if (((bitField2_ & 0x00800000) != 0)) {
5905  size += com.google.protobuf.CodedOutputStream
5906  .computeInt32Size(110, cpModelProbingLevel_);
5907  }
5908  if (((bitField2_ & 0x00000010) != 0)) {
5909  size += com.google.protobuf.CodedOutputStream
5910  .computeBoolSize(111, addKnapsackCuts_);
5911  }
5912  if (((bitField2_ & 0x00000200) != 0)) {
5913  size += com.google.protobuf.CodedOutputStream
5914  .computeBoolSize(112, addLpConstraintsLazily_);
5915  }
5916  if (((bitField3_ & 0x00000002) != 0)) {
5917  size += com.google.protobuf.CodedOutputStream
5918  .computeBoolSize(113, shareObjectiveBounds_);
5919  }
5920  if (((bitField3_ & 0x00000004) != 0)) {
5921  size += com.google.protobuf.CodedOutputStream
5922  .computeBoolSize(114, shareLevelZeroBounds_);
5923  }
5924  if (((bitField2_ & 0x00000400) != 0)) {
5925  size += com.google.protobuf.CodedOutputStream
5926  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
5927  }
5928  if (((bitField2_ & 0x00008000) != 0)) {
5929  size += com.google.protobuf.CodedOutputStream
5930  .computeBoolSize(116, exploitAllLpSolution_);
5931  }
5932  if (((bitField2_ & 0x00000020) != 0)) {
5933  size += com.google.protobuf.CodedOutputStream
5934  .computeBoolSize(117, addCgCuts_);
5935  }
5936  if (((bitField2_ & 0x00000080) != 0)) {
5937  size += com.google.protobuf.CodedOutputStream
5938  .computeBoolSize(118, useMirRounding_);
5939  }
5940  if (((bitField2_ & 0x00000100) != 0)) {
5941  size += com.google.protobuf.CodedOutputStream
5942  .computeInt32Size(119, maxIntegerRoundingScaling_);
5943  }
5944  if (((bitField2_ & 0x00000040) != 0)) {
5945  size += com.google.protobuf.CodedOutputStream
5946  .computeBoolSize(120, addMirCuts_);
5947  }
5948  if (((bitField2_ & 0x00000800) != 0)) {
5949  size += com.google.protobuf.CodedOutputStream
5950  .computeInt64Size(121, maxInactiveCount_);
5951  }
5952  if (((bitField2_ & 0x00001000) != 0)) {
5953  size += com.google.protobuf.CodedOutputStream
5954  .computeInt64Size(122, constraintRemovalBatchSize_);
5955  }
5956  if (((bitField2_ & 0x00040000) != 0)) {
5957  size += com.google.protobuf.CodedOutputStream
5958  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
5959  }
5960  if (((bitField3_ & 0x00000800) != 0)) {
5961  size += com.google.protobuf.CodedOutputStream
5962  .computeDoubleSize(124, mipMaxBound_);
5963  }
5964  if (((bitField3_ & 0x00001000) != 0)) {
5965  size += com.google.protobuf.CodedOutputStream
5966  .computeDoubleSize(125, mipVarScaling_);
5967  }
5968  if (((bitField3_ & 0x00002000) != 0)) {
5969  size += com.google.protobuf.CodedOutputStream
5970  .computeDoubleSize(126, mipWantedPrecision_);
5971  }
5972  if (((bitField3_ & 0x00004000) != 0)) {
5973  size += com.google.protobuf.CodedOutputStream
5974  .computeInt32Size(127, mipMaxActivityExponent_);
5975  }
5976  if (((bitField3_ & 0x00008000) != 0)) {
5977  size += com.google.protobuf.CodedOutputStream
5978  .computeDoubleSize(128, mipCheckPrecision_);
5979  }
5980  if (((bitField3_ & 0x00000020) != 0)) {
5981  size += com.google.protobuf.CodedOutputStream
5982  .computeBoolSize(129, useRinsLns_);
5983  }
5984  if (((bitField2_ & 0x00010000) != 0)) {
5985  size += com.google.protobuf.CodedOutputStream
5986  .computeBoolSize(130, exploitBestSolution_);
5987  }
5988  if (((bitField2_ & 0x00020000) != 0)) {
5989  size += com.google.protobuf.CodedOutputStream
5990  .computeBoolSize(131, exploitObjective_);
5991  }
5992  if (((bitField2_ & 0x04000000) != 0)) {
5993  size += com.google.protobuf.CodedOutputStream
5994  .computeBoolSize(132, fillTightenedDomainsInResponse_);
5995  }
5996  if (((bitField3_ & 0x00000400) != 0)) {
5997  size += com.google.protobuf.CodedOutputStream
5998  .computeBoolSize(133, useCombinedNoOverlap_);
5999  }
6000  if (((bitField3_ & 0x00000001) != 0)) {
6001  size += com.google.protobuf.CodedOutputStream
6002  .computeBoolSize(134, deterministicParallelSearch_);
6003  }
6004  if (((bitField3_ & 0x00010000) != 0)) {
6005  size += com.google.protobuf.CodedOutputStream
6006  .computeBoolSize(135, catchSigintSignal_);
6007  }
6008  if (((bitField2_ & 0x80000000) != 0)) {
6009  size += com.google.protobuf.CodedOutputStream
6010  .computeBoolSize(136, interleaveSearch_);
6011  }
6012  size += unknownFields.getSerializedSize();
6013  memoizedSize = size;
6014  return size;
6015  }
6016 
6017  @java.lang.Override
6018  public boolean equals(final java.lang.Object obj) {
6019  if (obj == this) {
6020  return true;
6021  }
6022  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
6023  return super.equals(obj);
6024  }
6026 
6027  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
6028  if (hasPreferredVariableOrder()) {
6029  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
6030  }
6031  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
6032  if (hasInitialPolarity()) {
6033  if (initialPolarity_ != other.initialPolarity_) return false;
6034  }
6035  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
6036  if (hasUsePhaseSaving()) {
6037  if (getUsePhaseSaving()
6038  != other.getUsePhaseSaving()) return false;
6039  }
6040  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
6041  if (hasRandomPolarityRatio()) {
6042  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
6043  != java.lang.Double.doubleToLongBits(
6044  other.getRandomPolarityRatio())) return false;
6045  }
6046  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
6047  if (hasRandomBranchesRatio()) {
6048  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
6049  != java.lang.Double.doubleToLongBits(
6050  other.getRandomBranchesRatio())) return false;
6051  }
6052  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
6053  if (hasUseErwaHeuristic()) {
6054  if (getUseErwaHeuristic()
6055  != other.getUseErwaHeuristic()) return false;
6056  }
6057  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
6059  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
6060  != java.lang.Double.doubleToLongBits(
6061  other.getInitialVariablesActivity())) return false;
6062  }
6063  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
6066  != other.getAlsoBumpVariablesInConflictReasons()) return false;
6067  }
6068  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
6069  if (hasMinimizationAlgorithm()) {
6070  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
6071  }
6072  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
6074  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
6075  }
6076  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
6079  != other.getSubsumptionDuringConflictAnalysis()) return false;
6080  }
6081  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
6082  if (hasClauseCleanupPeriod()) {
6084  != other.getClauseCleanupPeriod()) return false;
6085  }
6086  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
6087  if (hasClauseCleanupTarget()) {
6089  != other.getClauseCleanupTarget()) return false;
6090  }
6091  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
6093  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
6094  }
6095  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
6096  if (hasClauseCleanupLbdBound()) {
6098  != other.getClauseCleanupLbdBound()) return false;
6099  }
6100  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
6101  if (hasClauseCleanupOrdering()) {
6102  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
6103  }
6104  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
6105  if (hasPbCleanupIncrement()) {
6106  if (getPbCleanupIncrement()
6107  != other.getPbCleanupIncrement()) return false;
6108  }
6109  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
6110  if (hasPbCleanupRatio()) {
6111  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
6112  != java.lang.Double.doubleToLongBits(
6113  other.getPbCleanupRatio())) return false;
6114  }
6115  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
6118  != other.getMinimizeWithPropagationRestartPeriod()) return false;
6119  }
6120  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
6123  != other.getMinimizeWithPropagationNumDecisions()) return false;
6124  }
6125  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
6126  if (hasVariableActivityDecay()) {
6127  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
6128  != java.lang.Double.doubleToLongBits(
6129  other.getVariableActivityDecay())) return false;
6130  }
6131  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6133  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6134  != java.lang.Double.doubleToLongBits(
6135  other.getMaxVariableActivityValue())) return false;
6136  }
6137  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6138  if (hasGlucoseMaxDecay()) {
6139  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6140  != java.lang.Double.doubleToLongBits(
6141  other.getGlucoseMaxDecay())) return false;
6142  }
6143  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
6144  if (hasGlucoseDecayIncrement()) {
6145  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
6146  != java.lang.Double.doubleToLongBits(
6147  other.getGlucoseDecayIncrement())) return false;
6148  }
6149  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
6152  != other.getGlucoseDecayIncrementPeriod()) return false;
6153  }
6154  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
6155  if (hasClauseActivityDecay()) {
6156  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
6157  != java.lang.Double.doubleToLongBits(
6158  other.getClauseActivityDecay())) return false;
6159  }
6160  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
6161  if (hasMaxClauseActivityValue()) {
6162  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
6163  != java.lang.Double.doubleToLongBits(
6164  other.getMaxClauseActivityValue())) return false;
6165  }
6166  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
6167  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
6170  .equals(other.getDefaultRestartAlgorithms())) return false;
6171  }
6172  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
6173  if (hasRestartPeriod()) {
6174  if (getRestartPeriod()
6175  != other.getRestartPeriod()) return false;
6176  }
6177  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
6180  != other.getRestartRunningWindowSize()) return false;
6181  }
6182  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
6183  if (hasRestartDlAverageRatio()) {
6184  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
6185  != java.lang.Double.doubleToLongBits(
6186  other.getRestartDlAverageRatio())) return false;
6187  }
6188  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
6189  if (hasRestartLbdAverageRatio()) {
6190  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
6191  != java.lang.Double.doubleToLongBits(
6192  other.getRestartLbdAverageRatio())) return false;
6193  }
6194  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
6195  if (hasUseBlockingRestart()) {
6196  if (getUseBlockingRestart()
6197  != other.getUseBlockingRestart()) return false;
6198  }
6199  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
6202  != other.getBlockingRestartWindowSize()) return false;
6203  }
6204  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
6206  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
6207  != java.lang.Double.doubleToLongBits(
6208  other.getBlockingRestartMultiplier())) return false;
6209  }
6210  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
6213  != other.getNumConflictsBeforeStrategyChanges()) return false;
6214  }
6215  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
6217  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
6218  != java.lang.Double.doubleToLongBits(
6219  other.getStrategyChangeIncreaseRatio())) return false;
6220  }
6221  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
6222  if (hasMaxTimeInSeconds()) {
6223  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
6224  != java.lang.Double.doubleToLongBits(
6225  other.getMaxTimeInSeconds())) return false;
6226  }
6227  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
6228  if (hasMaxDeterministicTime()) {
6229  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
6230  != java.lang.Double.doubleToLongBits(
6231  other.getMaxDeterministicTime())) return false;
6232  }
6233  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
6234  if (hasMaxNumberOfConflicts()) {
6236  != other.getMaxNumberOfConflicts()) return false;
6237  }
6238  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
6239  if (hasMaxMemoryInMb()) {
6240  if (getMaxMemoryInMb()
6241  != other.getMaxMemoryInMb()) return false;
6242  }
6243  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
6246  != other.getTreatBinaryClausesSeparately()) return false;
6247  }
6248  if (hasRandomSeed() != other.hasRandomSeed()) return false;
6249  if (hasRandomSeed()) {
6250  if (getRandomSeed()
6251  != other.getRandomSeed()) return false;
6252  }
6253  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
6254  if (hasLogSearchProgress()) {
6255  if (getLogSearchProgress()
6256  != other.getLogSearchProgress()) return false;
6257  }
6258  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
6259  if (hasUsePbResolution()) {
6260  if (getUsePbResolution()
6261  != other.getUsePbResolution()) return false;
6262  }
6263  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
6266  != other.getMinimizeReductionDuringPbResolution()) return false;
6267  }
6268  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
6271  != other.getCountAssumptionLevelsInLbd()) return false;
6272  }
6273  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
6274  if (hasPresolveBveThreshold()) {
6276  != other.getPresolveBveThreshold()) return false;
6277  }
6278  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
6281  != other.getPresolveBveClauseWeight()) return false;
6282  }
6283  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
6285  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
6286  != java.lang.Double.doubleToLongBits(
6287  other.getPresolveProbingDeterministicTimeLimit())) return false;
6288  }
6289  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
6290  if (hasPresolveBlockedClause()) {
6292  != other.getPresolveBlockedClause()) return false;
6293  }
6294  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
6295  if (hasPresolveUseBva()) {
6296  if (getPresolveUseBva()
6297  != other.getPresolveUseBva()) return false;
6298  }
6299  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
6300  if (hasPresolveBvaThreshold()) {
6302  != other.getPresolveBvaThreshold()) return false;
6303  }
6304  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
6305  if (hasUseOptimizationHints()) {
6307  != other.getUseOptimizationHints()) return false;
6308  }
6309  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
6310  if (hasMinimizeCore()) {
6311  if (getMinimizeCore()
6312  != other.getMinimizeCore()) return false;
6313  }
6314  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
6315  if (hasFindMultipleCores()) {
6316  if (getFindMultipleCores()
6317  != other.getFindMultipleCores()) return false;
6318  }
6319  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
6320  if (hasCoverOptimization()) {
6321  if (getCoverOptimization()
6322  != other.getCoverOptimization()) return false;
6323  }
6324  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
6325  if (hasMaxSatAssumptionOrder()) {
6326  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
6327  }
6328  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
6331  != other.getMaxSatReverseAssumptionOrder()) return false;
6332  }
6333  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
6334  if (hasMaxSatStratification()) {
6335  if (maxSatStratification_ != other.maxSatStratification_) return false;
6336  }
6337  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
6340  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
6341  }
6342  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
6345  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
6346  }
6347  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6350  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6351  }
6352  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6355  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6356  }
6357  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
6358  if (hasLinearizationLevel()) {
6359  if (getLinearizationLevel()
6360  != other.getLinearizationLevel()) return false;
6361  }
6362  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
6363  if (hasBooleanEncodingLevel()) {
6365  != other.getBooleanEncodingLevel()) return false;
6366  }
6367  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
6368  if (hasMaxNumCuts()) {
6369  if (getMaxNumCuts()
6370  != other.getMaxNumCuts()) return false;
6371  }
6372  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
6373  if (hasOnlyAddCutsAtLevelZero()) {
6375  != other.getOnlyAddCutsAtLevelZero()) return false;
6376  }
6377  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
6378  if (hasAddKnapsackCuts()) {
6379  if (getAddKnapsackCuts()
6380  != other.getAddKnapsackCuts()) return false;
6381  }
6382  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
6383  if (hasAddCgCuts()) {
6384  if (getAddCgCuts()
6385  != other.getAddCgCuts()) return false;
6386  }
6387  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
6388  if (hasAddMirCuts()) {
6389  if (getAddMirCuts()
6390  != other.getAddMirCuts()) return false;
6391  }
6392  if (hasUseMirRounding() != other.hasUseMirRounding()) return false;
6393  if (hasUseMirRounding()) {
6394  if (getUseMirRounding()
6395  != other.getUseMirRounding()) return false;
6396  }
6397  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
6400  != other.getMaxIntegerRoundingScaling()) return false;
6401  }
6402  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
6403  if (hasAddLpConstraintsLazily()) {
6405  != other.getAddLpConstraintsLazily()) return false;
6406  }
6407  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
6409  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
6410  != java.lang.Double.doubleToLongBits(
6411  other.getMinOrthogonalityForLpConstraints())) return false;
6412  }
6413  if (hasMaxInactiveCount() != other.hasMaxInactiveCount()) return false;
6414  if (hasMaxInactiveCount()) {
6415  if (getMaxInactiveCount()
6416  != other.getMaxInactiveCount()) return false;
6417  }
6418  if (hasConstraintRemovalBatchSize() != other.hasConstraintRemovalBatchSize()) return false;
6421  != other.getConstraintRemovalBatchSize()) return false;
6422  }
6423  if (hasSearchBranching() != other.hasSearchBranching()) return false;
6424  if (hasSearchBranching()) {
6425  if (searchBranching_ != other.searchBranching_) return false;
6426  }
6427  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
6430  != other.getExploitIntegerLpSolution()) return false;
6431  }
6432  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
6433  if (hasExploitAllLpSolution()) {
6435  != other.getExploitAllLpSolution()) return false;
6436  }
6437  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
6438  if (hasExploitBestSolution()) {
6440  != other.getExploitBestSolution()) return false;
6441  }
6442  if (hasExploitObjective() != other.hasExploitObjective()) return false;
6443  if (hasExploitObjective()) {
6444  if (getExploitObjective()
6445  != other.getExploitObjective()) return false;
6446  }
6447  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
6450  != other.getPseudoCostReliabilityThreshold()) return false;
6451  }
6452  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
6453  if (hasOptimizeWithCore()) {
6454  if (getOptimizeWithCore()
6455  != other.getOptimizeWithCore()) return false;
6456  }
6457  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
6460  != other.getBinarySearchNumConflicts()) return false;
6461  }
6462  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
6463  if (hasOptimizeWithMaxHs()) {
6464  if (getOptimizeWithMaxHs()
6465  != other.getOptimizeWithMaxHs()) return false;
6466  }
6467  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
6468  if (hasCpModelPresolve()) {
6469  if (getCpModelPresolve()
6470  != other.getCpModelPresolve()) return false;
6471  }
6472  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
6473  if (hasCpModelProbingLevel()) {
6475  != other.getCpModelProbingLevel()) return false;
6476  }
6477  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
6478  if (hasCpModelUseSatPresolve()) {
6480  != other.getCpModelUseSatPresolve()) return false;
6481  }
6482  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
6483  if (hasEnumerateAllSolutions()) {
6485  != other.getEnumerateAllSolutions()) return false;
6486  }
6487  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
6490  != other.getFillTightenedDomainsInResponse()) return false;
6491  }
6492  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
6495  != other.getInstantiateAllVariables()) return false;
6496  }
6497  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
6500  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
6501  }
6502  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
6503  if (hasStopAfterFirstSolution()) {
6505  != other.getStopAfterFirstSolution()) return false;
6506  }
6507  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
6508  if (hasNumSearchWorkers()) {
6509  if (getNumSearchWorkers()
6510  != other.getNumSearchWorkers()) return false;
6511  }
6512  if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
6513  if (hasInterleaveSearch()) {
6514  if (getInterleaveSearch()
6515  != other.getInterleaveSearch()) return false;
6516  }
6517  if (hasDeterministicParallelSearch() != other.hasDeterministicParallelSearch()) return false;
6520  != other.getDeterministicParallelSearch()) return false;
6521  }
6522  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
6523  if (hasShareObjectiveBounds()) {
6525  != other.getShareObjectiveBounds()) return false;
6526  }
6527  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
6528  if (hasShareLevelZeroBounds()) {
6530  != other.getShareLevelZeroBounds()) return false;
6531  }
6532  if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
6533  if (hasUseLnsOnly()) {
6534  if (getUseLnsOnly()
6535  != other.getUseLnsOnly()) return false;
6536  }
6537  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
6540  != other.getLnsFocusOnDecisionVariables()) return false;
6541  }
6542  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
6543  if (hasUseRinsLns()) {
6544  if (getUseRinsLns()
6545  != other.getUseRinsLns()) return false;
6546  }
6547  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
6548  if (hasRandomizeSearch()) {
6549  if (getRandomizeSearch()
6550  != other.getRandomizeSearch()) return false;
6551  }
6552  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
6555  != other.getSearchRandomizationTolerance()) return false;
6556  }
6557  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
6558  if (hasUseOptionalVariables()) {
6560  != other.getUseOptionalVariables()) return false;
6561  }
6562  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
6563  if (hasUseExactLpReason()) {
6564  if (getUseExactLpReason()
6565  != other.getUseExactLpReason()) return false;
6566  }
6567  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
6568  if (hasUseCombinedNoOverlap()) {
6570  != other.getUseCombinedNoOverlap()) return false;
6571  }
6572  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
6573  if (hasMipMaxBound()) {
6574  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
6575  != java.lang.Double.doubleToLongBits(
6576  other.getMipMaxBound())) return false;
6577  }
6578  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
6579  if (hasMipVarScaling()) {
6580  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
6581  != java.lang.Double.doubleToLongBits(
6582  other.getMipVarScaling())) return false;
6583  }
6584  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
6585  if (hasMipWantedPrecision()) {
6586  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
6587  != java.lang.Double.doubleToLongBits(
6588  other.getMipWantedPrecision())) return false;
6589  }
6590  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
6591  if (hasMipMaxActivityExponent()) {
6593  != other.getMipMaxActivityExponent()) return false;
6594  }
6595  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
6596  if (hasMipCheckPrecision()) {
6597  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
6598  != java.lang.Double.doubleToLongBits(
6599  other.getMipCheckPrecision())) return false;
6600  }
6601  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
6602  if (hasCatchSigintSignal()) {
6603  if (getCatchSigintSignal()
6604  != other.getCatchSigintSignal()) return false;
6605  }
6606  if (!unknownFields.equals(other.unknownFields)) return false;
6607  return true;
6608  }
6609 
6610  @java.lang.Override
6611  public int hashCode() {
6612  if (memoizedHashCode != 0) {
6613  return memoizedHashCode;
6614  }
6615  int hash = 41;
6616  hash = (19 * hash) + getDescriptor().hashCode();
6617  if (hasPreferredVariableOrder()) {
6618  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
6619  hash = (53 * hash) + preferredVariableOrder_;
6620  }
6621  if (hasInitialPolarity()) {
6622  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
6623  hash = (53 * hash) + initialPolarity_;
6624  }
6625  if (hasUsePhaseSaving()) {
6626  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
6627  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6628  getUsePhaseSaving());
6629  }
6630  if (hasRandomPolarityRatio()) {
6631  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
6632  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6633  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
6634  }
6635  if (hasRandomBranchesRatio()) {
6636  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
6637  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6638  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
6639  }
6640  if (hasUseErwaHeuristic()) {
6641  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
6642  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6644  }
6646  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
6647  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6648  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
6649  }
6652  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6654  }
6655  if (hasMinimizationAlgorithm()) {
6656  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6657  hash = (53 * hash) + minimizationAlgorithm_;
6658  }
6660  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6661  hash = (53 * hash) + binaryMinimizationAlgorithm_;
6662  }
6665  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6667  }
6668  if (hasClauseCleanupPeriod()) {
6669  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
6670  hash = (53 * hash) + getClauseCleanupPeriod();
6671  }
6672  if (hasClauseCleanupTarget()) {
6673  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
6674  hash = (53 * hash) + getClauseCleanupTarget();
6675  }
6677  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
6678  hash = (53 * hash) + clauseCleanupProtection_;
6679  }
6680  if (hasClauseCleanupLbdBound()) {
6681  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
6682  hash = (53 * hash) + getClauseCleanupLbdBound();
6683  }
6684  if (hasClauseCleanupOrdering()) {
6685  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
6686  hash = (53 * hash) + clauseCleanupOrdering_;
6687  }
6688  if (hasPbCleanupIncrement()) {
6689  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
6690  hash = (53 * hash) + getPbCleanupIncrement();
6691  }
6692  if (hasPbCleanupRatio()) {
6693  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
6694  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6695  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
6696  }
6699  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
6700  }
6703  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
6704  }
6705  if (hasVariableActivityDecay()) {
6706  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
6707  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6708  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
6709  }
6711  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
6712  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6713  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
6714  }
6715  if (hasGlucoseMaxDecay()) {
6716  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
6717  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6718  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
6719  }
6720  if (hasGlucoseDecayIncrement()) {
6721  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
6722  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6723  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
6724  }
6726  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
6727  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
6728  }
6729  if (hasClauseActivityDecay()) {
6730  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
6731  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6732  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
6733  }
6734  if (hasMaxClauseActivityValue()) {
6735  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
6736  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6737  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
6738  }
6739  if (getRestartAlgorithmsCount() > 0) {
6740  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
6741  hash = (53 * hash) + restartAlgorithms_.hashCode();
6742  }
6744  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
6745  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
6746  }
6747  if (hasRestartPeriod()) {
6748  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
6749  hash = (53 * hash) + getRestartPeriod();
6750  }
6752  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
6753  hash = (53 * hash) + getRestartRunningWindowSize();
6754  }
6755  if (hasRestartDlAverageRatio()) {
6756  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
6757  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6758  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
6759  }
6760  if (hasRestartLbdAverageRatio()) {
6761  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
6762  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6763  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
6764  }
6765  if (hasUseBlockingRestart()) {
6766  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
6767  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6769  }
6771  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
6772  hash = (53 * hash) + getBlockingRestartWindowSize();
6773  }
6775  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
6776  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6777  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
6778  }
6781  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
6782  }
6784  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
6785  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6786  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
6787  }
6788  if (hasMaxTimeInSeconds()) {
6789  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
6790  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6791  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
6792  }
6793  if (hasMaxDeterministicTime()) {
6794  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
6795  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6796  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
6797  }
6798  if (hasMaxNumberOfConflicts()) {
6799  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
6800  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6802  }
6803  if (hasMaxMemoryInMb()) {
6804  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
6805  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6806  getMaxMemoryInMb());
6807  }
6809  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
6810  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6812  }
6813  if (hasRandomSeed()) {
6814  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
6815  hash = (53 * hash) + getRandomSeed();
6816  }
6817  if (hasLogSearchProgress()) {
6818  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
6819  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6821  }
6822  if (hasUsePbResolution()) {
6823  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
6824  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6825  getUsePbResolution());
6826  }
6829  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6831  }
6833  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
6834  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6836  }
6837  if (hasPresolveBveThreshold()) {
6838  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
6839  hash = (53 * hash) + getPresolveBveThreshold();
6840  }
6842  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
6843  hash = (53 * hash) + getPresolveBveClauseWeight();
6844  }
6847  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6848  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
6849  }
6850  if (hasPresolveBlockedClause()) {
6851  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
6852  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6854  }
6855  if (hasPresolveUseBva()) {
6856  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
6857  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6858  getPresolveUseBva());
6859  }
6860  if (hasPresolveBvaThreshold()) {
6861  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
6862  hash = (53 * hash) + getPresolveBvaThreshold();
6863  }
6864  if (hasUseOptimizationHints()) {
6865  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
6866  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6868  }
6869  if (hasMinimizeCore()) {
6870  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
6871  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6872  getMinimizeCore());
6873  }
6874  if (hasFindMultipleCores()) {
6875  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
6876  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6878  }
6879  if (hasCoverOptimization()) {
6880  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
6881  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6883  }
6884  if (hasMaxSatAssumptionOrder()) {
6885  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
6886  hash = (53 * hash) + maxSatAssumptionOrder_;
6887  }
6889  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
6890  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6892  }
6893  if (hasMaxSatStratification()) {
6894  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
6895  hash = (53 * hash) + maxSatStratification_;
6896  }
6899  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6901  }
6904  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6906  }
6909  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6911  }
6914  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6916  }
6917  if (hasLinearizationLevel()) {
6918  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
6919  hash = (53 * hash) + getLinearizationLevel();
6920  }
6921  if (hasBooleanEncodingLevel()) {
6922  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
6923  hash = (53 * hash) + getBooleanEncodingLevel();
6924  }
6925  if (hasMaxNumCuts()) {
6926  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
6927  hash = (53 * hash) + getMaxNumCuts();
6928  }
6929  if (hasOnlyAddCutsAtLevelZero()) {
6930  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
6931  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6933  }
6934  if (hasAddKnapsackCuts()) {
6935  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
6936  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6937  getAddKnapsackCuts());
6938  }
6939  if (hasAddCgCuts()) {
6940  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
6941  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6942  getAddCgCuts());
6943  }
6944  if (hasAddMirCuts()) {
6945  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
6946  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6947  getAddMirCuts());
6948  }
6949  if (hasUseMirRounding()) {
6950  hash = (37 * hash) + USE_MIR_ROUNDING_FIELD_NUMBER;
6951  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6952  getUseMirRounding());
6953  }
6955  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
6956  hash = (53 * hash) + getMaxIntegerRoundingScaling();
6957  }
6958  if (hasAddLpConstraintsLazily()) {
6959  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
6960  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6962  }
6965  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6966  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
6967  }
6968  if (hasMaxInactiveCount()) {
6969  hash = (37 * hash) + MAX_INACTIVE_COUNT_FIELD_NUMBER;
6970  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6972  }
6974  hash = (37 * hash) + CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER;
6975  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6977  }
6978  if (hasSearchBranching()) {
6979  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
6980  hash = (53 * hash) + searchBranching_;
6981  }
6983  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
6984  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6986  }
6987  if (hasExploitAllLpSolution()) {
6988  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
6989  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6991  }
6992  if (hasExploitBestSolution()) {
6993  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
6994  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6996  }
6997  if (hasExploitObjective()) {
6998  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
6999  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7001  }
7004  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7006  }
7007  if (hasOptimizeWithCore()) {
7008  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
7009  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7011  }
7013  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
7014  hash = (53 * hash) + getBinarySearchNumConflicts();
7015  }
7016  if (hasOptimizeWithMaxHs()) {
7017  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
7018  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7020  }
7021  if (hasCpModelPresolve()) {
7022  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
7023  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7024  getCpModelPresolve());
7025  }
7026  if (hasCpModelProbingLevel()) {
7027  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
7028  hash = (53 * hash) + getCpModelProbingLevel();
7029  }
7030  if (hasCpModelUseSatPresolve()) {
7031  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
7032  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7034  }
7035  if (hasEnumerateAllSolutions()) {
7036  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
7037  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7039  }
7042  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7044  }
7046  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
7047  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7049  }
7052  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7054  }
7055  if (hasStopAfterFirstSolution()) {
7056  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
7057  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7059  }
7060  if (hasNumSearchWorkers()) {
7061  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
7062  hash = (53 * hash) + getNumSearchWorkers();
7063  }
7064  if (hasInterleaveSearch()) {
7065  hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
7066  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7068  }
7070  hash = (37 * hash) + DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER;
7071  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7073  }
7074  if (hasShareObjectiveBounds()) {
7075  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
7076  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7078  }
7079  if (hasShareLevelZeroBounds()) {
7080  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
7081  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7083  }
7084  if (hasUseLnsOnly()) {
7085  hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
7086  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7087  getUseLnsOnly());
7088  }
7090  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
7091  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7093  }
7094  if (hasUseRinsLns()) {
7095  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
7096  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7097  getUseRinsLns());
7098  }
7099  if (hasRandomizeSearch()) {
7100  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
7101  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7102  getRandomizeSearch());
7103  }
7105  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
7106  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7108  }
7109  if (hasUseOptionalVariables()) {
7110  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
7111  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7113  }
7114  if (hasUseExactLpReason()) {
7115  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
7116  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7118  }
7119  if (hasUseCombinedNoOverlap()) {
7120  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
7121  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7123  }
7124  if (hasMipMaxBound()) {
7125  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
7126  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7127  java.lang.Double.doubleToLongBits(getMipMaxBound()));
7128  }
7129  if (hasMipVarScaling()) {
7130  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
7131  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7132  java.lang.Double.doubleToLongBits(getMipVarScaling()));
7133  }
7134  if (hasMipWantedPrecision()) {
7135  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
7136  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7137  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
7138  }
7139  if (hasMipMaxActivityExponent()) {
7140  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
7141  hash = (53 * hash) + getMipMaxActivityExponent();
7142  }
7143  if (hasMipCheckPrecision()) {
7144  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
7145  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7146  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
7147  }
7148  if (hasCatchSigintSignal()) {
7149  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
7150  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7152  }
7153  hash = (29 * hash) + unknownFields.hashCode();
7154  memoizedHashCode = hash;
7155  return hash;
7156  }
7157 
7159  java.nio.ByteBuffer data)
7160  throws com.google.protobuf.InvalidProtocolBufferException {
7161  return PARSER.parseFrom(data);
7162  }
7164  java.nio.ByteBuffer data,
7165  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7166  throws com.google.protobuf.InvalidProtocolBufferException {
7167  return PARSER.parseFrom(data, extensionRegistry);
7168  }
7170  com.google.protobuf.ByteString data)
7171  throws com.google.protobuf.InvalidProtocolBufferException {
7172  return PARSER.parseFrom(data);
7173  }
7175  com.google.protobuf.ByteString data,
7176  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7177  throws com.google.protobuf.InvalidProtocolBufferException {
7178  return PARSER.parseFrom(data, extensionRegistry);
7179  }
7180  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
7181  throws com.google.protobuf.InvalidProtocolBufferException {
7182  return PARSER.parseFrom(data);
7183  }
7185  byte[] data,
7186  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7187  throws com.google.protobuf.InvalidProtocolBufferException {
7188  return PARSER.parseFrom(data, extensionRegistry);
7189  }
7190  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
7191  throws java.io.IOException {
7192  return com.google.protobuf.GeneratedMessageV3
7193  .parseWithIOException(PARSER, input);
7194  }
7196  java.io.InputStream input,
7197  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7198  throws java.io.IOException {
7199  return com.google.protobuf.GeneratedMessageV3
7200  .parseWithIOException(PARSER, input, extensionRegistry);
7201  }
7202  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
7203  throws java.io.IOException {
7204  return com.google.protobuf.GeneratedMessageV3
7205  .parseDelimitedWithIOException(PARSER, input);
7206  }
7208  java.io.InputStream input,
7209  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7210  throws java.io.IOException {
7211  return com.google.protobuf.GeneratedMessageV3
7212  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7213  }
7215  com.google.protobuf.CodedInputStream input)
7216  throws java.io.IOException {
7217  return com.google.protobuf.GeneratedMessageV3
7218  .parseWithIOException(PARSER, input);
7219  }
7221  com.google.protobuf.CodedInputStream input,
7222  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7223  throws java.io.IOException {
7224  return com.google.protobuf.GeneratedMessageV3
7225  .parseWithIOException(PARSER, input, extensionRegistry);
7226  }
7227 
7228  @java.lang.Override
7229  public Builder newBuilderForType() { return newBuilder(); }
7230  public static Builder newBuilder() {
7231  return DEFAULT_INSTANCE.toBuilder();
7232  }
7233  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
7234  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7235  }
7236  @java.lang.Override
7237  public Builder toBuilder() {
7238  return this == DEFAULT_INSTANCE
7239  ? new Builder() : new Builder().mergeFrom(this);
7240  }
7241 
7242  @java.lang.Override
7244  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7245  Builder builder = new Builder(parent);
7246  return builder;
7247  }
7257  public static final class Builder extends
7258  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7259  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
7260  com.google.ortools.sat.SatParametersOrBuilder {
7261  public static final com.google.protobuf.Descriptors.Descriptor
7263  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7264  }
7265 
7266  @java.lang.Override
7267  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7269  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
7270  .ensureFieldAccessorsInitialized(
7272  }
7273 
7274  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
7275  private Builder() {
7276  maybeForceBuilderInitialization();
7277  }
7278 
7279  private Builder(
7280  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7281  super(parent);
7282  maybeForceBuilderInitialization();
7283  }
7284  private void maybeForceBuilderInitialization() {
7285  if (com.google.protobuf.GeneratedMessageV3
7286  .alwaysUseFieldBuilders) {
7287  }
7288  }
7289  @java.lang.Override
7290  public Builder clear() {
7291  super.clear();
7292  preferredVariableOrder_ = 0;
7293  bitField0_ = (bitField0_ & ~0x00000001);
7294  initialPolarity_ = 1;
7295  bitField0_ = (bitField0_ & ~0x00000002);
7296  usePhaseSaving_ = true;
7297  bitField0_ = (bitField0_ & ~0x00000004);
7298  randomPolarityRatio_ = 0D;
7299  bitField0_ = (bitField0_ & ~0x00000008);
7300  randomBranchesRatio_ = 0D;
7301  bitField0_ = (bitField0_ & ~0x00000010);
7302  useErwaHeuristic_ = false;
7303  bitField0_ = (bitField0_ & ~0x00000020);
7304  initialVariablesActivity_ = 0D;
7305  bitField0_ = (bitField0_ & ~0x00000040);
7306  alsoBumpVariablesInConflictReasons_ = false;
7307  bitField0_ = (bitField0_ & ~0x00000080);
7308  minimizationAlgorithm_ = 2;
7309  bitField0_ = (bitField0_ & ~0x00000100);
7310  binaryMinimizationAlgorithm_ = 1;
7311  bitField0_ = (bitField0_ & ~0x00000200);
7312  subsumptionDuringConflictAnalysis_ = true;
7313  bitField0_ = (bitField0_ & ~0x00000400);
7314  clauseCleanupPeriod_ = 10000;
7315  bitField0_ = (bitField0_ & ~0x00000800);
7316  clauseCleanupTarget_ = 10000;
7317  bitField0_ = (bitField0_ & ~0x00001000);
7318  clauseCleanupProtection_ = 0;
7319  bitField0_ = (bitField0_ & ~0x00002000);
7320  clauseCleanupLbdBound_ = 5;
7321  bitField0_ = (bitField0_ & ~0x00004000);
7322  clauseCleanupOrdering_ = 0;
7323  bitField0_ = (bitField0_ & ~0x00008000);
7324  pbCleanupIncrement_ = 200;
7325  bitField0_ = (bitField0_ & ~0x00010000);
7326  pbCleanupRatio_ = 0.5D;
7327  bitField0_ = (bitField0_ & ~0x00020000);
7328  minimizeWithPropagationRestartPeriod_ = 10;
7329  bitField0_ = (bitField0_ & ~0x00040000);
7330  minimizeWithPropagationNumDecisions_ = 1000;
7331  bitField0_ = (bitField0_ & ~0x00080000);
7332  variableActivityDecay_ = 0.8D;
7333  bitField0_ = (bitField0_ & ~0x00100000);
7334  maxVariableActivityValue_ = 1e+100D;
7335  bitField0_ = (bitField0_ & ~0x00200000);
7336  glucoseMaxDecay_ = 0.95D;
7337  bitField0_ = (bitField0_ & ~0x00400000);
7338  glucoseDecayIncrement_ = 0.01D;
7339  bitField0_ = (bitField0_ & ~0x00800000);
7340  glucoseDecayIncrementPeriod_ = 5000;
7341  bitField0_ = (bitField0_ & ~0x01000000);
7342  clauseActivityDecay_ = 0.999D;
7343  bitField0_ = (bitField0_ & ~0x02000000);
7344  maxClauseActivityValue_ = 1e+20D;
7345  bitField0_ = (bitField0_ & ~0x04000000);
7346  restartAlgorithms_ = java.util.Collections.emptyList();
7347  bitField0_ = (bitField0_ & ~0x08000000);
7348  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
7349  bitField0_ = (bitField0_ & ~0x10000000);
7350  restartPeriod_ = 50;
7351  bitField0_ = (bitField0_ & ~0x20000000);
7352  restartRunningWindowSize_ = 50;
7353  bitField0_ = (bitField0_ & ~0x40000000);
7354  restartDlAverageRatio_ = 1D;
7355  bitField0_ = (bitField0_ & ~0x80000000);
7356  restartLbdAverageRatio_ = 1D;
7357  bitField1_ = (bitField1_ & ~0x00000001);
7358  useBlockingRestart_ = false;
7359  bitField1_ = (bitField1_ & ~0x00000002);
7360  blockingRestartWindowSize_ = 5000;
7361  bitField1_ = (bitField1_ & ~0x00000004);
7362  blockingRestartMultiplier_ = 1.4D;
7363  bitField1_ = (bitField1_ & ~0x00000008);
7364  numConflictsBeforeStrategyChanges_ = 0;
7365  bitField1_ = (bitField1_ & ~0x00000010);
7366  strategyChangeIncreaseRatio_ = 0D;
7367  bitField1_ = (bitField1_ & ~0x00000020);
7368  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
7369  bitField1_ = (bitField1_ & ~0x00000040);
7370  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
7371  bitField1_ = (bitField1_ & ~0x00000080);
7372  maxNumberOfConflicts_ = 9223372036854775807L;
7373  bitField1_ = (bitField1_ & ~0x00000100);
7374  maxMemoryInMb_ = 10000L;
7375  bitField1_ = (bitField1_ & ~0x00000200);
7376  treatBinaryClausesSeparately_ = true;
7377  bitField1_ = (bitField1_ & ~0x00000400);
7378  randomSeed_ = 1;
7379  bitField1_ = (bitField1_ & ~0x00000800);
7380  logSearchProgress_ = false;
7381  bitField1_ = (bitField1_ & ~0x00001000);
7382  usePbResolution_ = false;
7383  bitField1_ = (bitField1_ & ~0x00002000);
7384  minimizeReductionDuringPbResolution_ = false;
7385  bitField1_ = (bitField1_ & ~0x00004000);
7386  countAssumptionLevelsInLbd_ = true;
7387  bitField1_ = (bitField1_ & ~0x00008000);
7388  presolveBveThreshold_ = 500;
7389  bitField1_ = (bitField1_ & ~0x00010000);
7390  presolveBveClauseWeight_ = 3;
7391  bitField1_ = (bitField1_ & ~0x00020000);
7392  presolveProbingDeterministicTimeLimit_ = 30D;
7393  bitField1_ = (bitField1_ & ~0x00040000);
7394  presolveBlockedClause_ = true;
7395  bitField1_ = (bitField1_ & ~0x00080000);
7396  presolveUseBva_ = true;
7397  bitField1_ = (bitField1_ & ~0x00100000);
7398  presolveBvaThreshold_ = 1;
7399  bitField1_ = (bitField1_ & ~0x00200000);
7400  useOptimizationHints_ = true;
7401  bitField1_ = (bitField1_ & ~0x00400000);
7402  minimizeCore_ = true;
7403  bitField1_ = (bitField1_ & ~0x00800000);
7404  findMultipleCores_ = true;
7405  bitField1_ = (bitField1_ & ~0x01000000);
7406  coverOptimization_ = true;
7407  bitField1_ = (bitField1_ & ~0x02000000);
7408  maxSatAssumptionOrder_ = 0;
7409  bitField1_ = (bitField1_ & ~0x04000000);
7410  maxSatReverseAssumptionOrder_ = false;
7411  bitField1_ = (bitField1_ & ~0x08000000);
7412  maxSatStratification_ = 1;
7413  bitField1_ = (bitField1_ & ~0x10000000);
7414  usePrecedencesInDisjunctiveConstraint_ = true;
7415  bitField1_ = (bitField1_ & ~0x20000000);
7416  useOverloadCheckerInCumulativeConstraint_ = false;
7417  bitField1_ = (bitField1_ & ~0x40000000);
7418  useTimetableEdgeFindingInCumulativeConstraint_ = false;
7419  bitField1_ = (bitField1_ & ~0x80000000);
7420  useDisjunctiveConstraintInCumulativeConstraint_ = true;
7421  bitField2_ = (bitField2_ & ~0x00000001);
7422  linearizationLevel_ = 1;
7423  bitField2_ = (bitField2_ & ~0x00000002);
7424  booleanEncodingLevel_ = 1;
7425  bitField2_ = (bitField2_ & ~0x00000004);
7426  maxNumCuts_ = 1000;
7427  bitField2_ = (bitField2_ & ~0x00000008);
7428  onlyAddCutsAtLevelZero_ = false;
7429  bitField2_ = (bitField2_ & ~0x00000010);
7430  addKnapsackCuts_ = false;
7431  bitField2_ = (bitField2_ & ~0x00000020);
7432  addCgCuts_ = false;
7433  bitField2_ = (bitField2_ & ~0x00000040);
7434  addMirCuts_ = true;
7435  bitField2_ = (bitField2_ & ~0x00000080);
7436  useMirRounding_ = true;
7437  bitField2_ = (bitField2_ & ~0x00000100);
7438  maxIntegerRoundingScaling_ = 600;
7439  bitField2_ = (bitField2_ & ~0x00000200);
7440  addLpConstraintsLazily_ = true;
7441  bitField2_ = (bitField2_ & ~0x00000400);
7442  minOrthogonalityForLpConstraints_ = 0D;
7443  bitField2_ = (bitField2_ & ~0x00000800);
7444  maxInactiveCount_ = 1000L;
7445  bitField2_ = (bitField2_ & ~0x00001000);
7446  constraintRemovalBatchSize_ = 100L;
7447  bitField2_ = (bitField2_ & ~0x00002000);
7448  searchBranching_ = 0;
7449  bitField2_ = (bitField2_ & ~0x00004000);
7450  exploitIntegerLpSolution_ = true;
7451  bitField2_ = (bitField2_ & ~0x00008000);
7452  exploitAllLpSolution_ = true;
7453  bitField2_ = (bitField2_ & ~0x00010000);
7454  exploitBestSolution_ = false;
7455  bitField2_ = (bitField2_ & ~0x00020000);
7456  exploitObjective_ = true;
7457  bitField2_ = (bitField2_ & ~0x00040000);
7458  pseudoCostReliabilityThreshold_ = 100L;
7459  bitField2_ = (bitField2_ & ~0x00080000);
7460  optimizeWithCore_ = false;
7461  bitField2_ = (bitField2_ & ~0x00100000);
7462  binarySearchNumConflicts_ = -1;
7463  bitField2_ = (bitField2_ & ~0x00200000);
7464  optimizeWithMaxHs_ = false;
7465  bitField2_ = (bitField2_ & ~0x00400000);
7466  cpModelPresolve_ = true;
7467  bitField2_ = (bitField2_ & ~0x00800000);
7468  cpModelProbingLevel_ = 2;
7469  bitField2_ = (bitField2_ & ~0x01000000);
7470  cpModelUseSatPresolve_ = true;
7471  bitField2_ = (bitField2_ & ~0x02000000);
7472  enumerateAllSolutions_ = false;
7473  bitField2_ = (bitField2_ & ~0x04000000);
7474  fillTightenedDomainsInResponse_ = false;
7475  bitField2_ = (bitField2_ & ~0x08000000);
7476  instantiateAllVariables_ = true;
7477  bitField2_ = (bitField2_ & ~0x10000000);
7478  autoDetectGreaterThanAtLeastOneOf_ = true;
7479  bitField2_ = (bitField2_ & ~0x20000000);
7480  stopAfterFirstSolution_ = false;
7481  bitField2_ = (bitField2_ & ~0x40000000);
7482  numSearchWorkers_ = 1;
7483  bitField2_ = (bitField2_ & ~0x80000000);
7484  interleaveSearch_ = false;
7485  bitField3_ = (bitField3_ & ~0x00000001);
7486  deterministicParallelSearch_ = false;
7487  bitField3_ = (bitField3_ & ~0x00000002);
7488  shareObjectiveBounds_ = true;
7489  bitField3_ = (bitField3_ & ~0x00000004);
7490  shareLevelZeroBounds_ = true;
7491  bitField3_ = (bitField3_ & ~0x00000008);
7492  useLnsOnly_ = false;
7493  bitField3_ = (bitField3_ & ~0x00000010);
7494  lnsFocusOnDecisionVariables_ = false;
7495  bitField3_ = (bitField3_ & ~0x00000020);
7496  useRinsLns_ = true;
7497  bitField3_ = (bitField3_ & ~0x00000040);
7498  randomizeSearch_ = false;
7499  bitField3_ = (bitField3_ & ~0x00000080);
7500  searchRandomizationTolerance_ = 0L;
7501  bitField3_ = (bitField3_ & ~0x00000100);
7502  useOptionalVariables_ = true;
7503  bitField3_ = (bitField3_ & ~0x00000200);
7504  useExactLpReason_ = true;
7505  bitField3_ = (bitField3_ & ~0x00000400);
7506  useCombinedNoOverlap_ = false;
7507  bitField3_ = (bitField3_ & ~0x00000800);
7508  mipMaxBound_ = 10000000D;
7509  bitField3_ = (bitField3_ & ~0x00001000);
7510  mipVarScaling_ = 1D;
7511  bitField3_ = (bitField3_ & ~0x00002000);
7512  mipWantedPrecision_ = 1e-06D;
7513  bitField3_ = (bitField3_ & ~0x00004000);
7514  mipMaxActivityExponent_ = 53;
7515  bitField3_ = (bitField3_ & ~0x00008000);
7516  mipCheckPrecision_ = 0.0001D;
7517  bitField3_ = (bitField3_ & ~0x00010000);
7518  catchSigintSignal_ = true;
7519  bitField3_ = (bitField3_ & ~0x00020000);
7520  return this;
7521  }
7522 
7523  @java.lang.Override
7524  public com.google.protobuf.Descriptors.Descriptor
7526  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7527  }
7528 
7529  @java.lang.Override
7532  }
7533 
7534  @java.lang.Override
7537  if (!result.isInitialized()) {
7538  throw newUninitializedMessageException(result);
7539  }
7540  return result;
7541  }
7542 
7543  @java.lang.Override
7546  int from_bitField0_ = bitField0_;
7547  int from_bitField1_ = bitField1_;
7548  int from_bitField2_ = bitField2_;
7549  int from_bitField3_ = bitField3_;
7550  int to_bitField0_ = 0;
7551  int to_bitField1_ = 0;
7552  int to_bitField2_ = 0;
7553  int to_bitField3_ = 0;
7554  if (((from_bitField0_ & 0x00000001) != 0)) {
7555  to_bitField0_ |= 0x00000001;
7556  }
7557  result.preferredVariableOrder_ = preferredVariableOrder_;
7558  if (((from_bitField0_ & 0x00000002) != 0)) {
7559  to_bitField0_ |= 0x00000002;
7560  }
7561  result.initialPolarity_ = initialPolarity_;
7562  if (((from_bitField0_ & 0x00000004) != 0)) {
7563  to_bitField0_ |= 0x00000004;
7564  }
7565  result.usePhaseSaving_ = usePhaseSaving_;
7566  if (((from_bitField0_ & 0x00000008) != 0)) {
7567  result.randomPolarityRatio_ = randomPolarityRatio_;
7568  to_bitField0_ |= 0x00000008;
7569  }
7570  if (((from_bitField0_ & 0x00000010) != 0)) {
7571  result.randomBranchesRatio_ = randomBranchesRatio_;
7572  to_bitField0_ |= 0x00000010;
7573  }
7574  if (((from_bitField0_ & 0x00000020) != 0)) {
7575  result.useErwaHeuristic_ = useErwaHeuristic_;
7576  to_bitField0_ |= 0x00000020;
7577  }
7578  if (((from_bitField0_ & 0x00000040) != 0)) {
7579  result.initialVariablesActivity_ = initialVariablesActivity_;
7580  to_bitField0_ |= 0x00000040;
7581  }
7582  if (((from_bitField0_ & 0x00000080) != 0)) {
7583  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
7584  to_bitField0_ |= 0x00000080;
7585  }
7586  if (((from_bitField0_ & 0x00000100) != 0)) {
7587  to_bitField0_ |= 0x00000100;
7588  }
7589  result.minimizationAlgorithm_ = minimizationAlgorithm_;
7590  if (((from_bitField0_ & 0x00000200) != 0)) {
7591  to_bitField0_ |= 0x00000200;
7592  }
7593  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
7594  if (((from_bitField0_ & 0x00000400) != 0)) {
7595  to_bitField0_ |= 0x00000400;
7596  }
7597  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
7598  if (((from_bitField0_ & 0x00000800) != 0)) {
7599  to_bitField0_ |= 0x00000800;
7600  }
7601  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
7602  if (((from_bitField0_ & 0x00001000) != 0)) {
7603  to_bitField0_ |= 0x00001000;
7604  }
7605  result.clauseCleanupTarget_ = clauseCleanupTarget_;
7606  if (((from_bitField0_ & 0x00002000) != 0)) {
7607  to_bitField0_ |= 0x00002000;
7608  }
7609  result.clauseCleanupProtection_ = clauseCleanupProtection_;
7610  if (((from_bitField0_ & 0x00004000) != 0)) {
7611  to_bitField0_ |= 0x00004000;
7612  }
7613  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
7614  if (((from_bitField0_ & 0x00008000) != 0)) {
7615  to_bitField0_ |= 0x00008000;
7616  }
7617  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
7618  if (((from_bitField0_ & 0x00010000) != 0)) {
7619  to_bitField0_ |= 0x00010000;
7620  }
7621  result.pbCleanupIncrement_ = pbCleanupIncrement_;
7622  if (((from_bitField0_ & 0x00020000) != 0)) {
7623  to_bitField0_ |= 0x00020000;
7624  }
7625  result.pbCleanupRatio_ = pbCleanupRatio_;
7626  if (((from_bitField0_ & 0x00040000) != 0)) {
7627  to_bitField0_ |= 0x00040000;
7628  }
7629  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
7630  if (((from_bitField0_ & 0x00080000) != 0)) {
7631  to_bitField0_ |= 0x00080000;
7632  }
7633  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
7634  if (((from_bitField0_ & 0x00100000) != 0)) {
7635  to_bitField0_ |= 0x00100000;
7636  }
7637  result.variableActivityDecay_ = variableActivityDecay_;
7638  if (((from_bitField0_ & 0x00200000) != 0)) {
7639  to_bitField0_ |= 0x00200000;
7640  }
7641  result.maxVariableActivityValue_ = maxVariableActivityValue_;
7642  if (((from_bitField0_ & 0x00400000) != 0)) {
7643  to_bitField0_ |= 0x00400000;
7644  }
7645  result.glucoseMaxDecay_ = glucoseMaxDecay_;
7646  if (((from_bitField0_ & 0x00800000) != 0)) {
7647  to_bitField0_ |= 0x00800000;
7648  }
7649  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
7650  if (((from_bitField0_ & 0x01000000) != 0)) {
7651  to_bitField0_ |= 0x01000000;
7652  }
7653  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
7654  if (((from_bitField0_ & 0x02000000) != 0)) {
7655  to_bitField0_ |= 0x02000000;
7656  }
7657  result.clauseActivityDecay_ = clauseActivityDecay_;
7658  if (((from_bitField0_ & 0x04000000) != 0)) {
7659  to_bitField0_ |= 0x04000000;
7660  }
7661  result.maxClauseActivityValue_ = maxClauseActivityValue_;
7662  if (((bitField0_ & 0x08000000) != 0)) {
7663  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
7664  bitField0_ = (bitField0_ & ~0x08000000);
7665  }
7666  result.restartAlgorithms_ = restartAlgorithms_;
7667  if (((from_bitField0_ & 0x10000000) != 0)) {
7668  to_bitField0_ |= 0x08000000;
7669  }
7670  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
7671  if (((from_bitField0_ & 0x20000000) != 0)) {
7672  to_bitField0_ |= 0x10000000;
7673  }
7674  result.restartPeriod_ = restartPeriod_;
7675  if (((from_bitField0_ & 0x40000000) != 0)) {
7676  to_bitField0_ |= 0x20000000;
7677  }
7678  result.restartRunningWindowSize_ = restartRunningWindowSize_;
7679  if (((from_bitField0_ & 0x80000000) != 0)) {
7680  to_bitField0_ |= 0x40000000;
7681  }
7682  result.restartDlAverageRatio_ = restartDlAverageRatio_;
7683  if (((from_bitField1_ & 0x00000001) != 0)) {
7684  to_bitField0_ |= 0x80000000;
7685  }
7686  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
7687  if (((from_bitField1_ & 0x00000002) != 0)) {
7688  result.useBlockingRestart_ = useBlockingRestart_;
7689  to_bitField1_ |= 0x00000001;
7690  }
7691  if (((from_bitField1_ & 0x00000004) != 0)) {
7692  to_bitField1_ |= 0x00000002;
7693  }
7694  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
7695  if (((from_bitField1_ & 0x00000008) != 0)) {
7696  to_bitField1_ |= 0x00000004;
7697  }
7698  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
7699  if (((from_bitField1_ & 0x00000010) != 0)) {
7700  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
7701  to_bitField1_ |= 0x00000008;
7702  }
7703  if (((from_bitField1_ & 0x00000020) != 0)) {
7704  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
7705  to_bitField1_ |= 0x00000010;
7706  }
7707  if (((from_bitField1_ & 0x00000040) != 0)) {
7708  to_bitField1_ |= 0x00000020;
7709  }
7710  result.maxTimeInSeconds_ = maxTimeInSeconds_;
7711  if (((from_bitField1_ & 0x00000080) != 0)) {
7712  to_bitField1_ |= 0x00000040;
7713  }
7714  result.maxDeterministicTime_ = maxDeterministicTime_;
7715  if (((from_bitField1_ & 0x00000100) != 0)) {
7716  to_bitField1_ |= 0x00000080;
7717  }
7718  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
7719  if (((from_bitField1_ & 0x00000200) != 0)) {
7720  to_bitField1_ |= 0x00000100;
7721  }
7722  result.maxMemoryInMb_ = maxMemoryInMb_;
7723  if (((from_bitField1_ & 0x00000400) != 0)) {
7724  to_bitField1_ |= 0x00000200;
7725  }
7726  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
7727  if (((from_bitField1_ & 0x00000800) != 0)) {
7728  to_bitField1_ |= 0x00000400;
7729  }
7730  result.randomSeed_ = randomSeed_;
7731  if (((from_bitField1_ & 0x00001000) != 0)) {
7732  result.logSearchProgress_ = logSearchProgress_;
7733  to_bitField1_ |= 0x00000800;
7734  }
7735  if (((from_bitField1_ & 0x00002000) != 0)) {
7736  result.usePbResolution_ = usePbResolution_;
7737  to_bitField1_ |= 0x00001000;
7738  }
7739  if (((from_bitField1_ & 0x00004000) != 0)) {
7740  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
7741  to_bitField1_ |= 0x00002000;
7742  }
7743  if (((from_bitField1_ & 0x00008000) != 0)) {
7744  to_bitField1_ |= 0x00004000;
7745  }
7746  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
7747  if (((from_bitField1_ & 0x00010000) != 0)) {
7748  to_bitField1_ |= 0x00008000;
7749  }
7750  result.presolveBveThreshold_ = presolveBveThreshold_;
7751  if (((from_bitField1_ & 0x00020000) != 0)) {
7752  to_bitField1_ |= 0x00010000;
7753  }
7754  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
7755  if (((from_bitField1_ & 0x00040000) != 0)) {
7756  to_bitField1_ |= 0x00020000;
7757  }
7758  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
7759  if (((from_bitField1_ & 0x00080000) != 0)) {
7760  to_bitField1_ |= 0x00040000;
7761  }
7762  result.presolveBlockedClause_ = presolveBlockedClause_;
7763  if (((from_bitField1_ & 0x00100000) != 0)) {
7764  to_bitField1_ |= 0x00080000;
7765  }
7766  result.presolveUseBva_ = presolveUseBva_;
7767  if (((from_bitField1_ & 0x00200000) != 0)) {
7768  to_bitField1_ |= 0x00100000;
7769  }
7770  result.presolveBvaThreshold_ = presolveBvaThreshold_;
7771  if (((from_bitField1_ & 0x00400000) != 0)) {
7772  to_bitField1_ |= 0x00200000;
7773  }
7774  result.useOptimizationHints_ = useOptimizationHints_;
7775  if (((from_bitField1_ & 0x00800000) != 0)) {
7776  to_bitField1_ |= 0x00400000;
7777  }
7778  result.minimizeCore_ = minimizeCore_;
7779  if (((from_bitField1_ & 0x01000000) != 0)) {
7780  to_bitField1_ |= 0x00800000;
7781  }
7782  result.findMultipleCores_ = findMultipleCores_;
7783  if (((from_bitField1_ & 0x02000000) != 0)) {
7784  to_bitField1_ |= 0x01000000;
7785  }
7786  result.coverOptimization_ = coverOptimization_;
7787  if (((from_bitField1_ & 0x04000000) != 0)) {
7788  to_bitField1_ |= 0x02000000;
7789  }
7790  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
7791  if (((from_bitField1_ & 0x08000000) != 0)) {
7792  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
7793  to_bitField1_ |= 0x04000000;
7794  }
7795  if (((from_bitField1_ & 0x10000000) != 0)) {
7796  to_bitField1_ |= 0x08000000;
7797  }
7798  result.maxSatStratification_ = maxSatStratification_;
7799  if (((from_bitField1_ & 0x20000000) != 0)) {
7800  to_bitField1_ |= 0x10000000;
7801  }
7802  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
7803  if (((from_bitField1_ & 0x40000000) != 0)) {
7804  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
7805  to_bitField1_ |= 0x20000000;
7806  }
7807  if (((from_bitField1_ & 0x80000000) != 0)) {
7808  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
7809  to_bitField1_ |= 0x40000000;
7810  }
7811  if (((from_bitField2_ & 0x00000001) != 0)) {
7812  to_bitField1_ |= 0x80000000;
7813  }
7814  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
7815  if (((from_bitField2_ & 0x00000002) != 0)) {
7816  to_bitField2_ |= 0x00000001;
7817  }
7818  result.linearizationLevel_ = linearizationLevel_;
7819  if (((from_bitField2_ & 0x00000004) != 0)) {
7820  to_bitField2_ |= 0x00000002;
7821  }
7822  result.booleanEncodingLevel_ = booleanEncodingLevel_;
7823  if (((from_bitField2_ & 0x00000008) != 0)) {
7824  to_bitField2_ |= 0x00000004;
7825  }
7826  result.maxNumCuts_ = maxNumCuts_;
7827  if (((from_bitField2_ & 0x00000010) != 0)) {
7828  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
7829  to_bitField2_ |= 0x00000008;
7830  }
7831  if (((from_bitField2_ & 0x00000020) != 0)) {
7832  result.addKnapsackCuts_ = addKnapsackCuts_;
7833  to_bitField2_ |= 0x00000010;
7834  }
7835  if (((from_bitField2_ & 0x00000040) != 0)) {
7836  result.addCgCuts_ = addCgCuts_;
7837  to_bitField2_ |= 0x00000020;
7838  }
7839  if (((from_bitField2_ & 0x00000080) != 0)) {
7840  to_bitField2_ |= 0x00000040;
7841  }
7842  result.addMirCuts_ = addMirCuts_;
7843  if (((from_bitField2_ & 0x00000100) != 0)) {
7844  to_bitField2_ |= 0x00000080;
7845  }
7846  result.useMirRounding_ = useMirRounding_;
7847  if (((from_bitField2_ & 0x00000200) != 0)) {
7848  to_bitField2_ |= 0x00000100;
7849  }
7850  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
7851  if (((from_bitField2_ & 0x00000400) != 0)) {
7852  to_bitField2_ |= 0x00000200;
7853  }
7854  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
7855  if (((from_bitField2_ & 0x00000800) != 0)) {
7856  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
7857  to_bitField2_ |= 0x00000400;
7858  }
7859  if (((from_bitField2_ & 0x00001000) != 0)) {
7860  to_bitField2_ |= 0x00000800;
7861  }
7862  result.maxInactiveCount_ = maxInactiveCount_;
7863  if (((from_bitField2_ & 0x00002000) != 0)) {
7864  to_bitField2_ |= 0x00001000;
7865  }
7866  result.constraintRemovalBatchSize_ = constraintRemovalBatchSize_;
7867  if (((from_bitField2_ & 0x00004000) != 0)) {
7868  to_bitField2_ |= 0x00002000;
7869  }
7870  result.searchBranching_ = searchBranching_;
7871  if (((from_bitField2_ & 0x00008000) != 0)) {
7872  to_bitField2_ |= 0x00004000;
7873  }
7874  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
7875  if (((from_bitField2_ & 0x00010000) != 0)) {
7876  to_bitField2_ |= 0x00008000;
7877  }
7878  result.exploitAllLpSolution_ = exploitAllLpSolution_;
7879  if (((from_bitField2_ & 0x00020000) != 0)) {
7880  result.exploitBestSolution_ = exploitBestSolution_;
7881  to_bitField2_ |= 0x00010000;
7882  }
7883  if (((from_bitField2_ & 0x00040000) != 0)) {
7884  to_bitField2_ |= 0x00020000;
7885  }
7886  result.exploitObjective_ = exploitObjective_;
7887  if (((from_bitField2_ & 0x00080000) != 0)) {
7888  to_bitField2_ |= 0x00040000;
7889  }
7890  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
7891  if (((from_bitField2_ & 0x00100000) != 0)) {
7892  result.optimizeWithCore_ = optimizeWithCore_;
7893  to_bitField2_ |= 0x00080000;
7894  }
7895  if (((from_bitField2_ & 0x00200000) != 0)) {
7896  to_bitField2_ |= 0x00100000;
7897  }
7898  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
7899  if (((from_bitField2_ & 0x00400000) != 0)) {
7900  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
7901  to_bitField2_ |= 0x00200000;
7902  }
7903  if (((from_bitField2_ & 0x00800000) != 0)) {
7904  to_bitField2_ |= 0x00400000;
7905  }
7906  result.cpModelPresolve_ = cpModelPresolve_;
7907  if (((from_bitField2_ & 0x01000000) != 0)) {
7908  to_bitField2_ |= 0x00800000;
7909  }
7910  result.cpModelProbingLevel_ = cpModelProbingLevel_;
7911  if (((from_bitField2_ & 0x02000000) != 0)) {
7912  to_bitField2_ |= 0x01000000;
7913  }
7914  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
7915  if (((from_bitField2_ & 0x04000000) != 0)) {
7916  result.enumerateAllSolutions_ = enumerateAllSolutions_;
7917  to_bitField2_ |= 0x02000000;
7918  }
7919  if (((from_bitField2_ & 0x08000000) != 0)) {
7920  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
7921  to_bitField2_ |= 0x04000000;
7922  }
7923  if (((from_bitField2_ & 0x10000000) != 0)) {
7924  to_bitField2_ |= 0x08000000;
7925  }
7926  result.instantiateAllVariables_ = instantiateAllVariables_;
7927  if (((from_bitField2_ & 0x20000000) != 0)) {
7928  to_bitField2_ |= 0x10000000;
7929  }
7930  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
7931  if (((from_bitField2_ & 0x40000000) != 0)) {
7932  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
7933  to_bitField2_ |= 0x20000000;
7934  }
7935  if (((from_bitField2_ & 0x80000000) != 0)) {
7936  to_bitField2_ |= 0x40000000;
7937  }
7938  result.numSearchWorkers_ = numSearchWorkers_;
7939  if (((from_bitField3_ & 0x00000001) != 0)) {
7940  result.interleaveSearch_ = interleaveSearch_;
7941  to_bitField2_ |= 0x80000000;
7942  }
7943  if (((from_bitField3_ & 0x00000002) != 0)) {
7944  result.deterministicParallelSearch_ = deterministicParallelSearch_;
7945  to_bitField3_ |= 0x00000001;
7946  }
7947  if (((from_bitField3_ & 0x00000004) != 0)) {
7948  to_bitField3_ |= 0x00000002;
7949  }
7950  result.shareObjectiveBounds_ = shareObjectiveBounds_;
7951  if (((from_bitField3_ & 0x00000008) != 0)) {
7952  to_bitField3_ |= 0x00000004;
7953  }
7954  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
7955  if (((from_bitField3_ & 0x00000010) != 0)) {
7956  result.useLnsOnly_ = useLnsOnly_;
7957  to_bitField3_ |= 0x00000008;
7958  }
7959  if (((from_bitField3_ & 0x00000020) != 0)) {
7960  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
7961  to_bitField3_ |= 0x00000010;
7962  }
7963  if (((from_bitField3_ & 0x00000040) != 0)) {
7964  to_bitField3_ |= 0x00000020;
7965  }
7966  result.useRinsLns_ = useRinsLns_;
7967  if (((from_bitField3_ & 0x00000080) != 0)) {
7968  result.randomizeSearch_ = randomizeSearch_;
7969  to_bitField3_ |= 0x00000040;
7970  }
7971  if (((from_bitField3_ & 0x00000100) != 0)) {
7972  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
7973  to_bitField3_ |= 0x00000080;
7974  }
7975  if (((from_bitField3_ & 0x00000200) != 0)) {
7976  to_bitField3_ |= 0x00000100;
7977  }
7978  result.useOptionalVariables_ = useOptionalVariables_;
7979  if (((from_bitField3_ & 0x00000400) != 0)) {
7980  to_bitField3_ |= 0x00000200;
7981  }
7982  result.useExactLpReason_ = useExactLpReason_;
7983  if (((from_bitField3_ & 0x00000800) != 0)) {
7984  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
7985  to_bitField3_ |= 0x00000400;
7986  }
7987  if (((from_bitField3_ & 0x00001000) != 0)) {
7988  to_bitField3_ |= 0x00000800;
7989  }
7990  result.mipMaxBound_ = mipMaxBound_;
7991  if (((from_bitField3_ & 0x00002000) != 0)) {
7992  to_bitField3_ |= 0x00001000;
7993  }
7994  result.mipVarScaling_ = mipVarScaling_;
7995  if (((from_bitField3_ & 0x00004000) != 0)) {
7996  to_bitField3_ |= 0x00002000;
7997  }
7998  result.mipWantedPrecision_ = mipWantedPrecision_;
7999  if (((from_bitField3_ & 0x00008000) != 0)) {
8000  to_bitField3_ |= 0x00004000;
8001  }
8002  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
8003  if (((from_bitField3_ & 0x00010000) != 0)) {
8004  to_bitField3_ |= 0x00008000;
8005  }
8006  result.mipCheckPrecision_ = mipCheckPrecision_;
8007  if (((from_bitField3_ & 0x00020000) != 0)) {
8008  to_bitField3_ |= 0x00010000;
8009  }
8010  result.catchSigintSignal_ = catchSigintSignal_;
8011  result.bitField0_ = to_bitField0_;
8012  result.bitField1_ = to_bitField1_;
8013  result.bitField2_ = to_bitField2_;
8014  result.bitField3_ = to_bitField3_;
8015  onBuilt();
8016  return result;
8017  }
8018 
8019  @java.lang.Override
8020  public Builder clone() {
8021  return super.clone();
8022  }
8023  @java.lang.Override
8025  com.google.protobuf.Descriptors.FieldDescriptor field,
8026  java.lang.Object value) {
8027  return super.setField(field, value);
8028  }
8029  @java.lang.Override
8031  com.google.protobuf.Descriptors.FieldDescriptor field) {
8032  return super.clearField(field);
8033  }
8034  @java.lang.Override
8036  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
8037  return super.clearOneof(oneof);
8038  }
8039  @java.lang.Override
8041  com.google.protobuf.Descriptors.FieldDescriptor field,
8042  int index, java.lang.Object value) {
8043  return super.setRepeatedField(field, index, value);
8044  }
8045  @java.lang.Override
8047  com.google.protobuf.Descriptors.FieldDescriptor field,
8048  java.lang.Object value) {
8049  return super.addRepeatedField(field, value);
8050  }
8051  @java.lang.Override
8052  public Builder mergeFrom(com.google.protobuf.Message other) {
8053  if (other instanceof com.google.ortools.sat.SatParameters) {
8054  return mergeFrom((com.google.ortools.sat.SatParameters)other);
8055  } else {
8056  super.mergeFrom(other);
8057  return this;
8058  }
8059  }
8060 
8062  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
8063  if (other.hasPreferredVariableOrder()) {
8064  setPreferredVariableOrder(other.getPreferredVariableOrder());
8065  }
8066  if (other.hasInitialPolarity()) {
8067  setInitialPolarity(other.getInitialPolarity());
8068  }
8069  if (other.hasUsePhaseSaving()) {
8070  setUsePhaseSaving(other.getUsePhaseSaving());
8071  }
8072  if (other.hasRandomPolarityRatio()) {
8073  setRandomPolarityRatio(other.getRandomPolarityRatio());
8074  }
8075  if (other.hasRandomBranchesRatio()) {
8076  setRandomBranchesRatio(other.getRandomBranchesRatio());
8077  }
8078  if (other.hasUseErwaHeuristic()) {
8079  setUseErwaHeuristic(other.getUseErwaHeuristic());
8080  }
8081  if (other.hasInitialVariablesActivity()) {
8082  setInitialVariablesActivity(other.getInitialVariablesActivity());
8083  }
8084  if (other.hasAlsoBumpVariablesInConflictReasons()) {
8085  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
8086  }
8087  if (other.hasMinimizationAlgorithm()) {
8088  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
8089  }
8090  if (other.hasBinaryMinimizationAlgorithm()) {
8091  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
8092  }
8093  if (other.hasSubsumptionDuringConflictAnalysis()) {
8094  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
8095  }
8096  if (other.hasClauseCleanupPeriod()) {
8097  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
8098  }
8099  if (other.hasClauseCleanupTarget()) {
8100  setClauseCleanupTarget(other.getClauseCleanupTarget());
8101  }
8102  if (other.hasClauseCleanupProtection()) {
8103  setClauseCleanupProtection(other.getClauseCleanupProtection());
8104  }
8105  if (other.hasClauseCleanupLbdBound()) {
8106  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
8107  }
8108  if (other.hasClauseCleanupOrdering()) {
8109  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
8110  }
8111  if (other.hasPbCleanupIncrement()) {
8112  setPbCleanupIncrement(other.getPbCleanupIncrement());
8113  }
8114  if (other.hasPbCleanupRatio()) {
8115  setPbCleanupRatio(other.getPbCleanupRatio());
8116  }
8117  if (other.hasMinimizeWithPropagationRestartPeriod()) {
8118  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
8119  }
8120  if (other.hasMinimizeWithPropagationNumDecisions()) {
8121  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
8122  }
8123  if (other.hasVariableActivityDecay()) {
8124  setVariableActivityDecay(other.getVariableActivityDecay());
8125  }
8126  if (other.hasMaxVariableActivityValue()) {
8127  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
8128  }
8129  if (other.hasGlucoseMaxDecay()) {
8130  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
8131  }
8132  if (other.hasGlucoseDecayIncrement()) {
8133  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
8134  }
8135  if (other.hasGlucoseDecayIncrementPeriod()) {
8136  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
8137  }
8138  if (other.hasClauseActivityDecay()) {
8139  setClauseActivityDecay(other.getClauseActivityDecay());
8140  }
8141  if (other.hasMaxClauseActivityValue()) {
8142  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
8143  }
8144  if (!other.restartAlgorithms_.isEmpty()) {
8145  if (restartAlgorithms_.isEmpty()) {
8146  restartAlgorithms_ = other.restartAlgorithms_;
8147  bitField0_ = (bitField0_ & ~0x08000000);
8148  } else {
8149  ensureRestartAlgorithmsIsMutable();
8150  restartAlgorithms_.addAll(other.restartAlgorithms_);
8151  }
8152  onChanged();
8153  }
8154  if (other.hasDefaultRestartAlgorithms()) {
8155  bitField0_ |= 0x10000000;
8156  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
8157  onChanged();
8158  }
8159  if (other.hasRestartPeriod()) {
8160  setRestartPeriod(other.getRestartPeriod());
8161  }
8162  if (other.hasRestartRunningWindowSize()) {
8163  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
8164  }
8165  if (other.hasRestartDlAverageRatio()) {
8166  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
8167  }
8168  if (other.hasRestartLbdAverageRatio()) {
8169  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
8170  }
8171  if (other.hasUseBlockingRestart()) {
8172  setUseBlockingRestart(other.getUseBlockingRestart());
8173  }
8174  if (other.hasBlockingRestartWindowSize()) {
8175  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
8176  }
8177  if (other.hasBlockingRestartMultiplier()) {
8178  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
8179  }
8180  if (other.hasNumConflictsBeforeStrategyChanges()) {
8181  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
8182  }
8183  if (other.hasStrategyChangeIncreaseRatio()) {
8184  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
8185  }
8186  if (other.hasMaxTimeInSeconds()) {
8187  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
8188  }
8189  if (other.hasMaxDeterministicTime()) {
8190  setMaxDeterministicTime(other.getMaxDeterministicTime());
8191  }
8192  if (other.hasMaxNumberOfConflicts()) {
8193  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
8194  }
8195  if (other.hasMaxMemoryInMb()) {
8196  setMaxMemoryInMb(other.getMaxMemoryInMb());
8197  }
8198  if (other.hasTreatBinaryClausesSeparately()) {
8199  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
8200  }
8201  if (other.hasRandomSeed()) {
8202  setRandomSeed(other.getRandomSeed());
8203  }
8204  if (other.hasLogSearchProgress()) {
8205  setLogSearchProgress(other.getLogSearchProgress());
8206  }
8207  if (other.hasUsePbResolution()) {
8208  setUsePbResolution(other.getUsePbResolution());
8209  }
8210  if (other.hasMinimizeReductionDuringPbResolution()) {
8211  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
8212  }
8213  if (other.hasCountAssumptionLevelsInLbd()) {
8214  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
8215  }
8216  if (other.hasPresolveBveThreshold()) {
8217  setPresolveBveThreshold(other.getPresolveBveThreshold());
8218  }
8219  if (other.hasPresolveBveClauseWeight()) {
8220  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
8221  }
8222  if (other.hasPresolveProbingDeterministicTimeLimit()) {
8223  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
8224  }
8225  if (other.hasPresolveBlockedClause()) {
8226  setPresolveBlockedClause(other.getPresolveBlockedClause());
8227  }
8228  if (other.hasPresolveUseBva()) {
8229  setPresolveUseBva(other.getPresolveUseBva());
8230  }
8231  if (other.hasPresolveBvaThreshold()) {
8232  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
8233  }
8234  if (other.hasUseOptimizationHints()) {
8235  setUseOptimizationHints(other.getUseOptimizationHints());
8236  }
8237  if (other.hasMinimizeCore()) {
8238  setMinimizeCore(other.getMinimizeCore());
8239  }
8240  if (other.hasFindMultipleCores()) {
8241  setFindMultipleCores(other.getFindMultipleCores());
8242  }
8243  if (other.hasCoverOptimization()) {
8244  setCoverOptimization(other.getCoverOptimization());
8245  }
8246  if (other.hasMaxSatAssumptionOrder()) {
8247  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
8248  }
8249  if (other.hasMaxSatReverseAssumptionOrder()) {
8250  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
8251  }
8252  if (other.hasMaxSatStratification()) {
8253  setMaxSatStratification(other.getMaxSatStratification());
8254  }
8255  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
8256  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
8257  }
8258  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
8259  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
8260  }
8261  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
8262  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
8263  }
8264  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
8265  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
8266  }
8267  if (other.hasLinearizationLevel()) {
8268  setLinearizationLevel(other.getLinearizationLevel());
8269  }
8270  if (other.hasBooleanEncodingLevel()) {
8271  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
8272  }
8273  if (other.hasMaxNumCuts()) {
8274  setMaxNumCuts(other.getMaxNumCuts());
8275  }
8276  if (other.hasOnlyAddCutsAtLevelZero()) {
8277  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
8278  }
8279  if (other.hasAddKnapsackCuts()) {
8280  setAddKnapsackCuts(other.getAddKnapsackCuts());
8281  }
8282  if (other.hasAddCgCuts()) {
8283  setAddCgCuts(other.getAddCgCuts());
8284  }
8285  if (other.hasAddMirCuts()) {
8286  setAddMirCuts(other.getAddMirCuts());
8287  }
8288  if (other.hasUseMirRounding()) {
8289  setUseMirRounding(other.getUseMirRounding());
8290  }
8291  if (other.hasMaxIntegerRoundingScaling()) {
8292  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
8293  }
8294  if (other.hasAddLpConstraintsLazily()) {
8295  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
8296  }
8297  if (other.hasMinOrthogonalityForLpConstraints()) {
8298  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
8299  }
8300  if (other.hasMaxInactiveCount()) {
8301  setMaxInactiveCount(other.getMaxInactiveCount());
8302  }
8303  if (other.hasConstraintRemovalBatchSize()) {
8304  setConstraintRemovalBatchSize(other.getConstraintRemovalBatchSize());
8305  }
8306  if (other.hasSearchBranching()) {
8307  setSearchBranching(other.getSearchBranching());
8308  }
8309  if (other.hasExploitIntegerLpSolution()) {
8310  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
8311  }
8312  if (other.hasExploitAllLpSolution()) {
8313  setExploitAllLpSolution(other.getExploitAllLpSolution());
8314  }
8315  if (other.hasExploitBestSolution()) {
8316  setExploitBestSolution(other.getExploitBestSolution());
8317  }
8318  if (other.hasExploitObjective()) {
8319  setExploitObjective(other.getExploitObjective());
8320  }
8321  if (other.hasPseudoCostReliabilityThreshold()) {
8322  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
8323  }
8324  if (other.hasOptimizeWithCore()) {
8325  setOptimizeWithCore(other.getOptimizeWithCore());
8326  }
8327  if (other.hasBinarySearchNumConflicts()) {
8328  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
8329  }
8330  if (other.hasOptimizeWithMaxHs()) {
8331  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
8332  }
8333  if (other.hasCpModelPresolve()) {
8334  setCpModelPresolve(other.getCpModelPresolve());
8335  }
8336  if (other.hasCpModelProbingLevel()) {
8337  setCpModelProbingLevel(other.getCpModelProbingLevel());
8338  }
8339  if (other.hasCpModelUseSatPresolve()) {
8340  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
8341  }
8342  if (other.hasEnumerateAllSolutions()) {
8343  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
8344  }
8345  if (other.hasFillTightenedDomainsInResponse()) {
8346  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
8347  }
8348  if (other.hasInstantiateAllVariables()) {
8349  setInstantiateAllVariables(other.getInstantiateAllVariables());
8350  }
8351  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
8352  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
8353  }
8354  if (other.hasStopAfterFirstSolution()) {
8355  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
8356  }
8357  if (other.hasNumSearchWorkers()) {
8358  setNumSearchWorkers(other.getNumSearchWorkers());
8359  }
8360  if (other.hasInterleaveSearch()) {
8361  setInterleaveSearch(other.getInterleaveSearch());
8362  }
8363  if (other.hasDeterministicParallelSearch()) {
8364  setDeterministicParallelSearch(other.getDeterministicParallelSearch());
8365  }
8366  if (other.hasShareObjectiveBounds()) {
8367  setShareObjectiveBounds(other.getShareObjectiveBounds());
8368  }
8369  if (other.hasShareLevelZeroBounds()) {
8370  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
8371  }
8372  if (other.hasUseLnsOnly()) {
8373  setUseLnsOnly(other.getUseLnsOnly());
8374  }
8375  if (other.hasLnsFocusOnDecisionVariables()) {
8376  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
8377  }
8378  if (other.hasUseRinsLns()) {
8379  setUseRinsLns(other.getUseRinsLns());
8380  }
8381  if (other.hasRandomizeSearch()) {
8382  setRandomizeSearch(other.getRandomizeSearch());
8383  }
8384  if (other.hasSearchRandomizationTolerance()) {
8385  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
8386  }
8387  if (other.hasUseOptionalVariables()) {
8388  setUseOptionalVariables(other.getUseOptionalVariables());
8389  }
8390  if (other.hasUseExactLpReason()) {
8391  setUseExactLpReason(other.getUseExactLpReason());
8392  }
8393  if (other.hasUseCombinedNoOverlap()) {
8394  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
8395  }
8396  if (other.hasMipMaxBound()) {
8397  setMipMaxBound(other.getMipMaxBound());
8398  }
8399  if (other.hasMipVarScaling()) {
8400  setMipVarScaling(other.getMipVarScaling());
8401  }
8402  if (other.hasMipWantedPrecision()) {
8403  setMipWantedPrecision(other.getMipWantedPrecision());
8404  }
8405  if (other.hasMipMaxActivityExponent()) {
8406  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
8407  }
8408  if (other.hasMipCheckPrecision()) {
8409  setMipCheckPrecision(other.getMipCheckPrecision());
8410  }
8411  if (other.hasCatchSigintSignal()) {
8412  setCatchSigintSignal(other.getCatchSigintSignal());
8413  }
8414  this.mergeUnknownFields(other.unknownFields);
8415  onChanged();
8416  return this;
8417  }
8418 
8419  @java.lang.Override
8420  public final boolean isInitialized() {
8421  return true;
8422  }
8423 
8424  @java.lang.Override
8426  com.google.protobuf.CodedInputStream input,
8427  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8428  throws java.io.IOException {
8429  com.google.ortools.sat.SatParameters parsedMessage = null;
8430  try {
8431  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8432  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8433  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
8434  throw e.unwrapIOException();
8435  } finally {
8436  if (parsedMessage != null) {
8437  mergeFrom(parsedMessage);
8438  }
8439  }
8440  return this;
8441  }
8442  private int bitField0_;
8443  private int bitField1_;
8444  private int bitField2_;
8445  private int bitField3_;
8446 
8447  private int preferredVariableOrder_ = 0;
8451  public boolean hasPreferredVariableOrder() {
8452  return ((bitField0_ & 0x00000001) != 0);
8453  }
8458  @SuppressWarnings("deprecation")
8460  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
8461  }
8466  if (value == null) {
8467  throw new NullPointerException();
8468  }
8469  bitField0_ |= 0x00000001;
8470  preferredVariableOrder_ = value.getNumber();
8471  onChanged();
8472  return this;
8473  }
8478  bitField0_ = (bitField0_ & ~0x00000001);
8479  preferredVariableOrder_ = 0;
8480  onChanged();
8481  return this;
8482  }
8483 
8484  private int initialPolarity_ = 1;
8488  public boolean hasInitialPolarity() {
8489  return ((bitField0_ & 0x00000002) != 0);
8490  }
8495  @SuppressWarnings("deprecation")
8497  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
8498  }
8503  if (value == null) {
8504  throw new NullPointerException();
8505  }
8506  bitField0_ |= 0x00000002;
8507  initialPolarity_ = value.getNumber();
8508  onChanged();
8509  return this;
8510  }
8515  bitField0_ = (bitField0_ & ~0x00000002);
8516  initialPolarity_ = 1;
8517  onChanged();
8518  return this;
8519  }
8520 
8521  private boolean usePhaseSaving_ = true;
8535  public boolean hasUsePhaseSaving() {
8536  return ((bitField0_ & 0x00000004) != 0);
8537  }
8551  public boolean getUsePhaseSaving() {
8552  return usePhaseSaving_;
8553  }
8567  public Builder setUsePhaseSaving(boolean value) {
8568  bitField0_ |= 0x00000004;
8569  usePhaseSaving_ = value;
8570  onChanged();
8571  return this;
8572  }
8587  bitField0_ = (bitField0_ & ~0x00000004);
8588  usePhaseSaving_ = true;
8589  onChanged();
8590  return this;
8591  }
8592 
8593  private double randomPolarityRatio_ ;
8605  public boolean hasRandomPolarityRatio() {
8606  return ((bitField0_ & 0x00000008) != 0);
8607  }
8619  public double getRandomPolarityRatio() {
8620  return randomPolarityRatio_;
8621  }
8633  public Builder setRandomPolarityRatio(double value) {
8634  bitField0_ |= 0x00000008;
8635  randomPolarityRatio_ = value;
8636  onChanged();
8637  return this;
8638  }
8651  bitField0_ = (bitField0_ & ~0x00000008);
8652  randomPolarityRatio_ = 0D;
8653  onChanged();
8654  return this;
8655  }
8656 
8657  private double randomBranchesRatio_ ;
8667  public boolean hasRandomBranchesRatio() {
8668  return ((bitField0_ & 0x00000010) != 0);
8669  }
8679  public double getRandomBranchesRatio() {
8680  return randomBranchesRatio_;
8681  }
8691  public Builder setRandomBranchesRatio(double value) {
8692  bitField0_ |= 0x00000010;
8693  randomBranchesRatio_ = value;
8694  onChanged();
8695  return this;
8696  }
8707  bitField0_ = (bitField0_ & ~0x00000010);
8708  randomBranchesRatio_ = 0D;
8709  onChanged();
8710  return this;
8711  }
8712 
8713  private boolean useErwaHeuristic_ ;
8723  public boolean hasUseErwaHeuristic() {
8724  return ((bitField0_ & 0x00000020) != 0);
8725  }
8735  public boolean getUseErwaHeuristic() {
8736  return useErwaHeuristic_;
8737  }
8747  public Builder setUseErwaHeuristic(boolean value) {
8748  bitField0_ |= 0x00000020;
8749  useErwaHeuristic_ = value;
8750  onChanged();
8751  return this;
8752  }
8763  bitField0_ = (bitField0_ & ~0x00000020);
8764  useErwaHeuristic_ = false;
8765  onChanged();
8766  return this;
8767  }
8768 
8769  private double initialVariablesActivity_ ;
8782  public boolean hasInitialVariablesActivity() {
8783  return ((bitField0_ & 0x00000040) != 0);
8784  }
8798  return initialVariablesActivity_;
8799  }
8812  public Builder setInitialVariablesActivity(double value) {
8813  bitField0_ |= 0x00000040;
8814  initialVariablesActivity_ = value;
8815  onChanged();
8816  return this;
8817  }
8831  bitField0_ = (bitField0_ & ~0x00000040);
8832  initialVariablesActivity_ = 0D;
8833  onChanged();
8834  return this;
8835  }
8836 
8837  private boolean alsoBumpVariablesInConflictReasons_ ;
8849  return ((bitField0_ & 0x00000080) != 0);
8850  }
8862  return alsoBumpVariablesInConflictReasons_;
8863  }
8875  bitField0_ |= 0x00000080;
8876  alsoBumpVariablesInConflictReasons_ = value;
8877  onChanged();
8878  return this;
8879  }
8891  bitField0_ = (bitField0_ & ~0x00000080);
8892  alsoBumpVariablesInConflictReasons_ = false;
8893  onChanged();
8894  return this;
8895  }
8896 
8897  private int minimizationAlgorithm_ = 2;
8901  public boolean hasMinimizationAlgorithm() {
8902  return ((bitField0_ & 0x00000100) != 0);
8903  }
8908  @SuppressWarnings("deprecation")
8910  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
8911  }
8916  if (value == null) {
8917  throw new NullPointerException();
8918  }
8919  bitField0_ |= 0x00000100;
8920  minimizationAlgorithm_ = value.getNumber();
8921  onChanged();
8922  return this;
8923  }
8928  bitField0_ = (bitField0_ & ~0x00000100);
8929  minimizationAlgorithm_ = 2;
8930  onChanged();
8931  return this;
8932  }
8933 
8934  private int binaryMinimizationAlgorithm_ = 1;
8939  return ((bitField0_ & 0x00000200) != 0);
8940  }
8945  @SuppressWarnings("deprecation")
8948  }
8953  if (value == null) {
8954  throw new NullPointerException();
8955  }
8956  bitField0_ |= 0x00000200;
8957  binaryMinimizationAlgorithm_ = value.getNumber();
8958  onChanged();
8959  return this;
8960  }
8965  bitField0_ = (bitField0_ & ~0x00000200);
8966  binaryMinimizationAlgorithm_ = 1;
8967  onChanged();
8968  return this;
8969  }
8970 
8971  private boolean subsumptionDuringConflictAnalysis_ = true;
8983  return ((bitField0_ & 0x00000400) != 0);
8984  }
8996  return subsumptionDuringConflictAnalysis_;
8997  }
9009  bitField0_ |= 0x00000400;
9010  subsumptionDuringConflictAnalysis_ = value;
9011  onChanged();
9012  return this;
9013  }
9025  bitField0_ = (bitField0_ & ~0x00000400);
9026  subsumptionDuringConflictAnalysis_ = true;
9027  onChanged();
9028  return this;
9029  }
9030 
9031  private int clauseCleanupPeriod_ = 10000;
9039  public boolean hasClauseCleanupPeriod() {
9040  return ((bitField0_ & 0x00000800) != 0);
9041  }
9049  public int getClauseCleanupPeriod() {
9050  return clauseCleanupPeriod_;
9051  }
9059  public Builder setClauseCleanupPeriod(int value) {
9060  bitField0_ |= 0x00000800;
9061  clauseCleanupPeriod_ = value;
9062  onChanged();
9063  return this;
9064  }
9073  bitField0_ = (bitField0_ & ~0x00000800);
9074  clauseCleanupPeriod_ = 10000;
9075  onChanged();
9076  return this;
9077  }
9078 
9079  private int clauseCleanupTarget_ = 10000;
9088  public boolean hasClauseCleanupTarget() {
9089  return ((bitField0_ & 0x00001000) != 0);
9090  }
9099  public int getClauseCleanupTarget() {
9100  return clauseCleanupTarget_;
9101  }
9110  public Builder setClauseCleanupTarget(int value) {
9111  bitField0_ |= 0x00001000;
9112  clauseCleanupTarget_ = value;
9113  onChanged();
9114  return this;
9115  }
9125  bitField0_ = (bitField0_ & ~0x00001000);
9126  clauseCleanupTarget_ = 10000;
9127  onChanged();
9128  return this;
9129  }
9130 
9131  private int clauseCleanupProtection_ = 0;
9135  public boolean hasClauseCleanupProtection() {
9136  return ((bitField0_ & 0x00002000) != 0);
9137  }
9142  @SuppressWarnings("deprecation")
9144  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
9145  }
9150  if (value == null) {
9151  throw new NullPointerException();
9152  }
9153  bitField0_ |= 0x00002000;
9154  clauseCleanupProtection_ = value.getNumber();
9155  onChanged();
9156  return this;
9157  }
9162  bitField0_ = (bitField0_ & ~0x00002000);
9163  clauseCleanupProtection_ = 0;
9164  onChanged();
9165  return this;
9166  }
9167 
9168  private int clauseCleanupLbdBound_ = 5;
9177  public boolean hasClauseCleanupLbdBound() {
9178  return ((bitField0_ & 0x00004000) != 0);
9179  }
9189  return clauseCleanupLbdBound_;
9190  }
9199  public Builder setClauseCleanupLbdBound(int value) {
9200  bitField0_ |= 0x00004000;
9201  clauseCleanupLbdBound_ = value;
9202  onChanged();
9203  return this;
9204  }
9214  bitField0_ = (bitField0_ & ~0x00004000);
9215  clauseCleanupLbdBound_ = 5;
9216  onChanged();
9217  return this;
9218  }
9219 
9220  private int clauseCleanupOrdering_ = 0;
9224  public boolean hasClauseCleanupOrdering() {
9225  return ((bitField0_ & 0x00008000) != 0);
9226  }
9231  @SuppressWarnings("deprecation")
9233  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
9234  }
9239  if (value == null) {
9240  throw new NullPointerException();
9241  }
9242  bitField0_ |= 0x00008000;
9243  clauseCleanupOrdering_ = value.getNumber();
9244  onChanged();
9245  return this;
9246  }
9251  bitField0_ = (bitField0_ & ~0x00008000);
9252  clauseCleanupOrdering_ = 0;
9253  onChanged();
9254  return this;
9255  }
9256 
9257  private int pbCleanupIncrement_ = 200;
9265  public boolean hasPbCleanupIncrement() {
9266  return ((bitField0_ & 0x00010000) != 0);
9267  }
9275  public int getPbCleanupIncrement() {
9276  return pbCleanupIncrement_;
9277  }
9285  public Builder setPbCleanupIncrement(int value) {
9286  bitField0_ |= 0x00010000;
9287  pbCleanupIncrement_ = value;
9288  onChanged();
9289  return this;
9290  }
9299  bitField0_ = (bitField0_ & ~0x00010000);
9300  pbCleanupIncrement_ = 200;
9301  onChanged();
9302  return this;
9303  }
9304 
9305  private double pbCleanupRatio_ = 0.5D;
9309  public boolean hasPbCleanupRatio() {
9310  return ((bitField0_ & 0x00020000) != 0);
9311  }
9315  public double getPbCleanupRatio() {
9316  return pbCleanupRatio_;
9317  }
9321  public Builder setPbCleanupRatio(double value) {
9322  bitField0_ |= 0x00020000;
9323  pbCleanupRatio_ = value;
9324  onChanged();
9325  return this;
9326  }
9331  bitField0_ = (bitField0_ & ~0x00020000);
9332  pbCleanupRatio_ = 0.5D;
9333  onChanged();
9334  return this;
9335  }
9336 
9337  private int minimizeWithPropagationRestartPeriod_ = 10;
9356  return ((bitField0_ & 0x00040000) != 0);
9357  }
9376  return minimizeWithPropagationRestartPeriod_;
9377  }
9396  bitField0_ |= 0x00040000;
9397  minimizeWithPropagationRestartPeriod_ = value;
9398  onChanged();
9399  return this;
9400  }
9419  bitField0_ = (bitField0_ & ~0x00040000);
9420  minimizeWithPropagationRestartPeriod_ = 10;
9421  onChanged();
9422  return this;
9423  }
9424 
9425  private int minimizeWithPropagationNumDecisions_ = 1000;
9430  return ((bitField0_ & 0x00080000) != 0);
9431  }
9436  return minimizeWithPropagationNumDecisions_;
9437  }
9442  bitField0_ |= 0x00080000;
9443  minimizeWithPropagationNumDecisions_ = value;
9444  onChanged();
9445  return this;
9446  }
9451  bitField0_ = (bitField0_ & ~0x00080000);
9452  minimizeWithPropagationNumDecisions_ = 1000;
9453  onChanged();
9454  return this;
9455  }
9456 
9457  private double variableActivityDecay_ = 0.8D;
9471  public boolean hasVariableActivityDecay() {
9472  return ((bitField0_ & 0x00100000) != 0);
9473  }
9487  public double getVariableActivityDecay() {
9488  return variableActivityDecay_;
9489  }
9503  public Builder setVariableActivityDecay(double value) {
9504  bitField0_ |= 0x00100000;
9505  variableActivityDecay_ = value;
9506  onChanged();
9507  return this;
9508  }
9523  bitField0_ = (bitField0_ & ~0x00100000);
9524  variableActivityDecay_ = 0.8D;
9525  onChanged();
9526  return this;
9527  }
9528 
9529  private double maxVariableActivityValue_ = 1e+100D;
9533  public boolean hasMaxVariableActivityValue() {
9534  return ((bitField0_ & 0x00200000) != 0);
9535  }
9540  return maxVariableActivityValue_;
9541  }
9545  public Builder setMaxVariableActivityValue(double value) {
9546  bitField0_ |= 0x00200000;
9547  maxVariableActivityValue_ = value;
9548  onChanged();
9549  return this;
9550  }
9555  bitField0_ = (bitField0_ & ~0x00200000);
9556  maxVariableActivityValue_ = 1e+100D;
9557  onChanged();
9558  return this;
9559  }
9560 
9561  private double glucoseMaxDecay_ = 0.95D;
9572  public boolean hasGlucoseMaxDecay() {
9573  return ((bitField0_ & 0x00400000) != 0);
9574  }
9585  public double getGlucoseMaxDecay() {
9586  return glucoseMaxDecay_;
9587  }
9598  public Builder setGlucoseMaxDecay(double value) {
9599  bitField0_ |= 0x00400000;
9600  glucoseMaxDecay_ = value;
9601  onChanged();
9602  return this;
9603  }
9615  bitField0_ = (bitField0_ & ~0x00400000);
9616  glucoseMaxDecay_ = 0.95D;
9617  onChanged();
9618  return this;
9619  }
9620 
9621  private double glucoseDecayIncrement_ = 0.01D;
9625  public boolean hasGlucoseDecayIncrement() {
9626  return ((bitField0_ & 0x00800000) != 0);
9627  }
9631  public double getGlucoseDecayIncrement() {
9632  return glucoseDecayIncrement_;
9633  }
9637  public Builder setGlucoseDecayIncrement(double value) {
9638  bitField0_ |= 0x00800000;
9639  glucoseDecayIncrement_ = value;
9640  onChanged();
9641  return this;
9642  }
9647  bitField0_ = (bitField0_ & ~0x00800000);
9648  glucoseDecayIncrement_ = 0.01D;
9649  onChanged();
9650  return this;
9651  }
9652 
9653  private int glucoseDecayIncrementPeriod_ = 5000;
9658  return ((bitField0_ & 0x01000000) != 0);
9659  }
9664  return glucoseDecayIncrementPeriod_;
9665  }
9670  bitField0_ |= 0x01000000;
9671  glucoseDecayIncrementPeriod_ = value;
9672  onChanged();
9673  return this;
9674  }
9679  bitField0_ = (bitField0_ & ~0x01000000);
9680  glucoseDecayIncrementPeriod_ = 5000;
9681  onChanged();
9682  return this;
9683  }
9684 
9685  private double clauseActivityDecay_ = 0.999D;
9693  public boolean hasClauseActivityDecay() {
9694  return ((bitField0_ & 0x02000000) != 0);
9695  }
9703  public double getClauseActivityDecay() {
9704  return clauseActivityDecay_;
9705  }
9713  public Builder setClauseActivityDecay(double value) {
9714  bitField0_ |= 0x02000000;
9715  clauseActivityDecay_ = value;
9716  onChanged();
9717  return this;
9718  }
9727  bitField0_ = (bitField0_ & ~0x02000000);
9728  clauseActivityDecay_ = 0.999D;
9729  onChanged();
9730  return this;
9731  }
9732 
9733  private double maxClauseActivityValue_ = 1e+20D;
9737  public boolean hasMaxClauseActivityValue() {
9738  return ((bitField0_ & 0x04000000) != 0);
9739  }
9743  public double getMaxClauseActivityValue() {
9744  return maxClauseActivityValue_;
9745  }
9749  public Builder setMaxClauseActivityValue(double value) {
9750  bitField0_ |= 0x04000000;
9751  maxClauseActivityValue_ = value;
9752  onChanged();
9753  return this;
9754  }
9759  bitField0_ = (bitField0_ & ~0x04000000);
9760  maxClauseActivityValue_ = 1e+20D;
9761  onChanged();
9762  return this;
9763  }
9764 
9765  private java.util.List<java.lang.Integer> restartAlgorithms_ =
9766  java.util.Collections.emptyList();
9767  private void ensureRestartAlgorithmsIsMutable() {
9768  if (!((bitField0_ & 0x08000000) != 0)) {
9769  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
9770  bitField0_ |= 0x08000000;
9771  }
9772  }
9788  return new com.google.protobuf.Internal.ListAdapter<
9789  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
9790  }
9806  return restartAlgorithms_.size();
9807  }
9823  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
9824  }
9840  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
9841  if (value == null) {
9842  throw new NullPointerException();
9843  }
9844  ensureRestartAlgorithmsIsMutable();
9845  restartAlgorithms_.set(index, value.getNumber());
9846  onChanged();
9847  return this;
9848  }
9864  if (value == null) {
9865  throw new NullPointerException();
9866  }
9867  ensureRestartAlgorithmsIsMutable();
9868  restartAlgorithms_.add(value.getNumber());
9869  onChanged();
9870  return this;
9871  }
9887  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
9888  ensureRestartAlgorithmsIsMutable();
9889  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
9890  restartAlgorithms_.add(value.getNumber());
9891  }
9892  onChanged();
9893  return this;
9894  }
9910  restartAlgorithms_ = java.util.Collections.emptyList();
9911  bitField0_ = (bitField0_ & ~0x08000000);
9912  onChanged();
9913  return this;
9914  }
9915 
9916  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
9920  public boolean hasDefaultRestartAlgorithms() {
9921  return ((bitField0_ & 0x10000000) != 0);
9922  }
9926  public java.lang.String getDefaultRestartAlgorithms() {
9927  java.lang.Object ref = defaultRestartAlgorithms_;
9928  if (!(ref instanceof java.lang.String)) {
9929  com.google.protobuf.ByteString bs =
9930  (com.google.protobuf.ByteString) ref;
9931  java.lang.String s = bs.toStringUtf8();
9932  if (bs.isValidUtf8()) {
9933  defaultRestartAlgorithms_ = s;
9934  }
9935  return s;
9936  } else {
9937  return (java.lang.String) ref;
9938  }
9939  }
9943  public com.google.protobuf.ByteString
9945  java.lang.Object ref = defaultRestartAlgorithms_;
9946  if (ref instanceof String) {
9947  com.google.protobuf.ByteString b =
9948  com.google.protobuf.ByteString.copyFromUtf8(
9949  (java.lang.String) ref);
9950  defaultRestartAlgorithms_ = b;
9951  return b;
9952  } else {
9953  return (com.google.protobuf.ByteString) ref;
9954  }
9955  }
9960  java.lang.String value) {
9961  if (value == null) {
9962  throw new NullPointerException();
9963  }
9964  bitField0_ |= 0x10000000;
9965  defaultRestartAlgorithms_ = value;
9966  onChanged();
9967  return this;
9968  }
9973  bitField0_ = (bitField0_ & ~0x10000000);
9974  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
9975  onChanged();
9976  return this;
9977  }
9982  com.google.protobuf.ByteString value) {
9983  if (value == null) {
9984  throw new NullPointerException();
9985  }
9986  bitField0_ |= 0x10000000;
9987  defaultRestartAlgorithms_ = value;
9988  onChanged();
9989  return this;
9990  }
9991 
9992  private int restartPeriod_ = 50;
10001  public boolean hasRestartPeriod() {
10002  return ((bitField0_ & 0x20000000) != 0);
10003  }
10012  public int getRestartPeriod() {
10013  return restartPeriod_;
10014  }
10023  public Builder setRestartPeriod(int value) {
10024  bitField0_ |= 0x20000000;
10025  restartPeriod_ = value;
10026  onChanged();
10027  return this;
10028  }
10038  bitField0_ = (bitField0_ & ~0x20000000);
10039  restartPeriod_ = 50;
10040  onChanged();
10041  return this;
10042  }
10043 
10044  private int restartRunningWindowSize_ = 50;
10052  public boolean hasRestartRunningWindowSize() {
10053  return ((bitField0_ & 0x40000000) != 0);
10054  }
10063  return restartRunningWindowSize_;
10064  }
10073  bitField0_ |= 0x40000000;
10074  restartRunningWindowSize_ = value;
10075  onChanged();
10076  return this;
10077  }
10086  bitField0_ = (bitField0_ & ~0x40000000);
10087  restartRunningWindowSize_ = 50;
10088  onChanged();
10089  return this;
10090  }
10091 
10092  private double restartDlAverageRatio_ = 1D;
10101  public boolean hasRestartDlAverageRatio() {
10102  return ((bitField0_ & 0x80000000) != 0);
10103  }
10112  public double getRestartDlAverageRatio() {
10113  return restartDlAverageRatio_;
10114  }
10123  public Builder setRestartDlAverageRatio(double value) {
10124  bitField0_ |= 0x80000000;
10125  restartDlAverageRatio_ = value;
10126  onChanged();
10127  return this;
10128  }
10138  bitField0_ = (bitField0_ & ~0x80000000);
10139  restartDlAverageRatio_ = 1D;
10140  onChanged();
10141  return this;
10142  }
10143 
10144  private double restartLbdAverageRatio_ = 1D;
10148  public boolean hasRestartLbdAverageRatio() {
10149  return ((bitField1_ & 0x00000001) != 0);
10150  }
10154  public double getRestartLbdAverageRatio() {
10155  return restartLbdAverageRatio_;
10156  }
10160  public Builder setRestartLbdAverageRatio(double value) {
10161  bitField1_ |= 0x00000001;
10162  restartLbdAverageRatio_ = value;
10163  onChanged();
10164  return this;
10165  }
10170  bitField1_ = (bitField1_ & ~0x00000001);
10171  restartLbdAverageRatio_ = 1D;
10172  onChanged();
10173  return this;
10174  }
10175 
10176  private boolean useBlockingRestart_ ;
10186  public boolean hasUseBlockingRestart() {
10187  return ((bitField1_ & 0x00000002) != 0);
10188  }
10198  public boolean getUseBlockingRestart() {
10199  return useBlockingRestart_;
10200  }
10210  public Builder setUseBlockingRestart(boolean value) {
10211  bitField1_ |= 0x00000002;
10212  useBlockingRestart_ = value;
10213  onChanged();
10214  return this;
10215  }
10226  bitField1_ = (bitField1_ & ~0x00000002);
10227  useBlockingRestart_ = false;
10228  onChanged();
10229  return this;
10230  }
10231 
10232  private int blockingRestartWindowSize_ = 5000;
10236  public boolean hasBlockingRestartWindowSize() {
10237  return ((bitField1_ & 0x00000004) != 0);
10238  }
10243  return blockingRestartWindowSize_;
10244  }
10249  bitField1_ |= 0x00000004;
10250  blockingRestartWindowSize_ = value;
10251  onChanged();
10252  return this;
10253  }
10258  bitField1_ = (bitField1_ & ~0x00000004);
10259  blockingRestartWindowSize_ = 5000;
10260  onChanged();
10261  return this;
10262  }
10263 
10264  private double blockingRestartMultiplier_ = 1.4D;
10268  public boolean hasBlockingRestartMultiplier() {
10269  return ((bitField1_ & 0x00000008) != 0);
10270  }
10275  return blockingRestartMultiplier_;
10276  }
10280  public Builder setBlockingRestartMultiplier(double value) {
10281  bitField1_ |= 0x00000008;
10282  blockingRestartMultiplier_ = value;
10283  onChanged();
10284  return this;
10285  }
10290  bitField1_ = (bitField1_ & ~0x00000008);
10291  blockingRestartMultiplier_ = 1.4D;
10292  onChanged();
10293  return this;
10294  }
10295 
10296  private int numConflictsBeforeStrategyChanges_ ;
10307  return ((bitField1_ & 0x00000010) != 0);
10308  }
10319  return numConflictsBeforeStrategyChanges_;
10320  }
10331  bitField1_ |= 0x00000010;
10332  numConflictsBeforeStrategyChanges_ = value;
10333  onChanged();
10334  return this;
10335  }
10346  bitField1_ = (bitField1_ & ~0x00000010);
10347  numConflictsBeforeStrategyChanges_ = 0;
10348  onChanged();
10349  return this;
10350  }
10351 
10352  private double strategyChangeIncreaseRatio_ ;
10362  return ((bitField1_ & 0x00000020) != 0);
10363  }
10373  return strategyChangeIncreaseRatio_;
10374  }
10384  bitField1_ |= 0x00000020;
10385  strategyChangeIncreaseRatio_ = value;
10386  onChanged();
10387  return this;
10388  }
10398  bitField1_ = (bitField1_ & ~0x00000020);
10399  strategyChangeIncreaseRatio_ = 0D;
10400  onChanged();
10401  return this;
10402  }
10403 
10404  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10414  public boolean hasMaxTimeInSeconds() {
10415  return ((bitField1_ & 0x00000040) != 0);
10416  }
10426  public double getMaxTimeInSeconds() {
10427  return maxTimeInSeconds_;
10428  }
10438  public Builder setMaxTimeInSeconds(double value) {
10439  bitField1_ |= 0x00000040;
10440  maxTimeInSeconds_ = value;
10441  onChanged();
10442  return this;
10443  }
10454  bitField1_ = (bitField1_ & ~0x00000040);
10455  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10456  onChanged();
10457  return this;
10458  }
10459 
10460  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10472  public boolean hasMaxDeterministicTime() {
10473  return ((bitField1_ & 0x00000080) != 0);
10474  }
10486  public double getMaxDeterministicTime() {
10487  return maxDeterministicTime_;
10488  }
10500  public Builder setMaxDeterministicTime(double value) {
10501  bitField1_ |= 0x00000080;
10502  maxDeterministicTime_ = value;
10503  onChanged();
10504  return this;
10505  }
10518  bitField1_ = (bitField1_ & ~0x00000080);
10519  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10520  onChanged();
10521  return this;
10522  }
10523 
10524  private long maxNumberOfConflicts_ = 9223372036854775807L;
10537  public boolean hasMaxNumberOfConflicts() {
10538  return ((bitField1_ & 0x00000100) != 0);
10539  }
10552  public long getMaxNumberOfConflicts() {
10553  return maxNumberOfConflicts_;
10554  }
10567  public Builder setMaxNumberOfConflicts(long value) {
10568  bitField1_ |= 0x00000100;
10569  maxNumberOfConflicts_ = value;
10570  onChanged();
10571  return this;
10572  }
10586  bitField1_ = (bitField1_ & ~0x00000100);
10587  maxNumberOfConflicts_ = 9223372036854775807L;
10588  onChanged();
10589  return this;
10590  }
10591 
10592  private long maxMemoryInMb_ = 10000L;
10603  public boolean hasMaxMemoryInMb() {
10604  return ((bitField1_ & 0x00000200) != 0);
10605  }
10616  public long getMaxMemoryInMb() {
10617  return maxMemoryInMb_;
10618  }
10629  public Builder setMaxMemoryInMb(long value) {
10630  bitField1_ |= 0x00000200;
10631  maxMemoryInMb_ = value;
10632  onChanged();
10633  return this;
10634  }
10646  bitField1_ = (bitField1_ & ~0x00000200);
10647  maxMemoryInMb_ = 10000L;
10648  onChanged();
10649  return this;
10650  }
10651 
10652  private boolean treatBinaryClausesSeparately_ = true;
10663  return ((bitField1_ & 0x00000400) != 0);
10664  }
10675  return treatBinaryClausesSeparately_;
10676  }
10687  bitField1_ |= 0x00000400;
10688  treatBinaryClausesSeparately_ = value;
10689  onChanged();
10690  return this;
10691  }
10702  bitField1_ = (bitField1_ & ~0x00000400);
10703  treatBinaryClausesSeparately_ = true;
10704  onChanged();
10705  return this;
10706  }
10707 
10708  private int randomSeed_ = 1;
10721  public boolean hasRandomSeed() {
10722  return ((bitField1_ & 0x00000800) != 0);
10723  }
10736  public int getRandomSeed() {
10737  return randomSeed_;
10738  }
10751  public Builder setRandomSeed(int value) {
10752  bitField1_ |= 0x00000800;
10753  randomSeed_ = value;
10754  onChanged();
10755  return this;
10756  }
10770  bitField1_ = (bitField1_ & ~0x00000800);
10771  randomSeed_ = 1;
10772  onChanged();
10773  return this;
10774  }
10775 
10776  private boolean logSearchProgress_ ;
10784  public boolean hasLogSearchProgress() {
10785  return ((bitField1_ & 0x00001000) != 0);
10786  }
10794  public boolean getLogSearchProgress() {
10795  return logSearchProgress_;
10796  }
10804  public Builder setLogSearchProgress(boolean value) {
10805  bitField1_ |= 0x00001000;
10806  logSearchProgress_ = value;
10807  onChanged();
10808  return this;
10809  }
10818  bitField1_ = (bitField1_ & ~0x00001000);
10819  logSearchProgress_ = false;
10820  onChanged();
10821  return this;
10822  }
10823 
10824  private boolean usePbResolution_ ;
10835  public boolean hasUsePbResolution() {
10836  return ((bitField1_ & 0x00002000) != 0);
10837  }
10848  public boolean getUsePbResolution() {
10849  return usePbResolution_;
10850  }
10861  public Builder setUsePbResolution(boolean value) {
10862  bitField1_ |= 0x00002000;
10863  usePbResolution_ = value;
10864  onChanged();
10865  return this;
10866  }
10878  bitField1_ = (bitField1_ & ~0x00002000);
10879  usePbResolution_ = false;
10880  onChanged();
10881  return this;
10882  }
10883 
10884  private boolean minimizeReductionDuringPbResolution_ ;
10896  return ((bitField1_ & 0x00004000) != 0);
10897  }
10909  return minimizeReductionDuringPbResolution_;
10910  }
10922  bitField1_ |= 0x00004000;
10923  minimizeReductionDuringPbResolution_ = value;
10924  onChanged();
10925  return this;
10926  }
10938  bitField1_ = (bitField1_ & ~0x00004000);
10939  minimizeReductionDuringPbResolution_ = false;
10940  onChanged();
10941  return this;
10942  }
10943 
10944  private boolean countAssumptionLevelsInLbd_ = true;
10960  return ((bitField1_ & 0x00008000) != 0);
10961  }
10977  return countAssumptionLevelsInLbd_;
10978  }
10993  public Builder setCountAssumptionLevelsInLbd(boolean value) {
10994  bitField1_ |= 0x00008000;
10995  countAssumptionLevelsInLbd_ = value;
10996  onChanged();
10997  return this;
10998  }
11014  bitField1_ = (bitField1_ & ~0x00008000);
11015  countAssumptionLevelsInLbd_ = true;
11016  onChanged();
11017  return this;
11018  }
11019 
11020  private int presolveBveThreshold_ = 500;
11030  public boolean hasPresolveBveThreshold() {
11031  return ((bitField1_ & 0x00010000) != 0);
11032  }
11043  return presolveBveThreshold_;
11044  }
11054  public Builder setPresolveBveThreshold(int value) {
11055  bitField1_ |= 0x00010000;
11056  presolveBveThreshold_ = value;
11057  onChanged();
11058  return this;
11059  }
11070  bitField1_ = (bitField1_ & ~0x00010000);
11071  presolveBveThreshold_ = 500;
11072  onChanged();
11073  return this;
11074  }
11075 
11076  private int presolveBveClauseWeight_ = 3;
11085  public boolean hasPresolveBveClauseWeight() {
11086  return ((bitField1_ & 0x00020000) != 0);
11087  }
11097  return presolveBveClauseWeight_;
11098  }
11108  bitField1_ |= 0x00020000;
11109  presolveBveClauseWeight_ = value;
11110  onChanged();
11111  return this;
11112  }
11122  bitField1_ = (bitField1_ & ~0x00020000);
11123  presolveBveClauseWeight_ = 3;
11124  onChanged();
11125  return this;
11126  }
11127 
11128  private double presolveProbingDeterministicTimeLimit_ = 30D;
11138  return ((bitField1_ & 0x00040000) != 0);
11139  }
11149  return presolveProbingDeterministicTimeLimit_;
11150  }
11160  bitField1_ |= 0x00040000;
11161  presolveProbingDeterministicTimeLimit_ = value;
11162  onChanged();
11163  return this;
11164  }
11174  bitField1_ = (bitField1_ & ~0x00040000);
11175  presolveProbingDeterministicTimeLimit_ = 30D;
11176  onChanged();
11177  return this;
11178  }
11179 
11180  private boolean presolveBlockedClause_ = true;
11189  public boolean hasPresolveBlockedClause() {
11190  return ((bitField1_ & 0x00080000) != 0);
11191  }
11200  public boolean getPresolveBlockedClause() {
11201  return presolveBlockedClause_;
11202  }
11211  public Builder setPresolveBlockedClause(boolean value) {
11212  bitField1_ |= 0x00080000;
11213  presolveBlockedClause_ = value;
11214  onChanged();
11215  return this;
11216  }
11226  bitField1_ = (bitField1_ & ~0x00080000);
11227  presolveBlockedClause_ = true;
11228  onChanged();
11229  return this;
11230  }
11231 
11232  private boolean presolveUseBva_ = true;
11240  public boolean hasPresolveUseBva() {
11241  return ((bitField1_ & 0x00100000) != 0);
11242  }
11250  public boolean getPresolveUseBva() {
11251  return presolveUseBva_;
11252  }
11260  public Builder setPresolveUseBva(boolean value) {
11261  bitField1_ |= 0x00100000;
11262  presolveUseBva_ = value;
11263  onChanged();
11264  return this;
11265  }
11274  bitField1_ = (bitField1_ & ~0x00100000);
11275  presolveUseBva_ = true;
11276  onChanged();
11277  return this;
11278  }
11279 
11280  private int presolveBvaThreshold_ = 1;
11291  public boolean hasPresolveBvaThreshold() {
11292  return ((bitField1_ & 0x00200000) != 0);
11293  }
11305  return presolveBvaThreshold_;
11306  }
11317  public Builder setPresolveBvaThreshold(int value) {
11318  bitField1_ |= 0x00200000;
11319  presolveBvaThreshold_ = value;
11320  onChanged();
11321  return this;
11322  }
11334  bitField1_ = (bitField1_ & ~0x00200000);
11335  presolveBvaThreshold_ = 1;
11336  onChanged();
11337  return this;
11338  }
11339 
11340  private boolean useOptimizationHints_ = true;
11351  public boolean hasUseOptimizationHints() {
11352  return ((bitField1_ & 0x00400000) != 0);
11353  }
11364  public boolean getUseOptimizationHints() {
11365  return useOptimizationHints_;
11366  }
11377  public Builder setUseOptimizationHints(boolean value) {
11378  bitField1_ |= 0x00400000;
11379  useOptimizationHints_ = value;
11380  onChanged();
11381  return this;
11382  }
11394  bitField1_ = (bitField1_ & ~0x00400000);
11395  useOptimizationHints_ = true;
11396  onChanged();
11397  return this;
11398  }
11399 
11400  private boolean minimizeCore_ = true;
11408  public boolean hasMinimizeCore() {
11409  return ((bitField1_ & 0x00800000) != 0);
11410  }
11418  public boolean getMinimizeCore() {
11419  return minimizeCore_;
11420  }
11428  public Builder setMinimizeCore(boolean value) {
11429  bitField1_ |= 0x00800000;
11430  minimizeCore_ = value;
11431  onChanged();
11432  return this;
11433  }
11442  bitField1_ = (bitField1_ & ~0x00800000);
11443  minimizeCore_ = true;
11444  onChanged();
11445  return this;
11446  }
11447 
11448  private boolean findMultipleCores_ = true;
11457  public boolean hasFindMultipleCores() {
11458  return ((bitField1_ & 0x01000000) != 0);
11459  }
11468  public boolean getFindMultipleCores() {
11469  return findMultipleCores_;
11470  }
11479  public Builder setFindMultipleCores(boolean value) {
11480  bitField1_ |= 0x01000000;
11481  findMultipleCores_ = value;
11482  onChanged();
11483  return this;
11484  }
11494  bitField1_ = (bitField1_ & ~0x01000000);
11495  findMultipleCores_ = true;
11496  onChanged();
11497  return this;
11498  }
11499 
11500  private boolean coverOptimization_ = true;
11509  public boolean hasCoverOptimization() {
11510  return ((bitField1_ & 0x02000000) != 0);
11511  }
11520  public boolean getCoverOptimization() {
11521  return coverOptimization_;
11522  }
11531  public Builder setCoverOptimization(boolean value) {
11532  bitField1_ |= 0x02000000;
11533  coverOptimization_ = value;
11534  onChanged();
11535  return this;
11536  }
11546  bitField1_ = (bitField1_ & ~0x02000000);
11547  coverOptimization_ = true;
11548  onChanged();
11549  return this;
11550  }
11551 
11552  private int maxSatAssumptionOrder_ = 0;
11556  public boolean hasMaxSatAssumptionOrder() {
11557  return ((bitField1_ & 0x04000000) != 0);
11558  }
11563  @SuppressWarnings("deprecation")
11566  }
11571  if (value == null) {
11572  throw new NullPointerException();
11573  }
11574  bitField1_ |= 0x04000000;
11575  maxSatAssumptionOrder_ = value.getNumber();
11576  onChanged();
11577  return this;
11578  }
11583  bitField1_ = (bitField1_ & ~0x04000000);
11584  maxSatAssumptionOrder_ = 0;
11585  onChanged();
11586  return this;
11587  }
11588 
11589  private boolean maxSatReverseAssumptionOrder_ ;
11599  return ((bitField1_ & 0x08000000) != 0);
11600  }
11610  return maxSatReverseAssumptionOrder_;
11611  }
11621  bitField1_ |= 0x08000000;
11622  maxSatReverseAssumptionOrder_ = value;
11623  onChanged();
11624  return this;
11625  }
11635  bitField1_ = (bitField1_ & ~0x08000000);
11636  maxSatReverseAssumptionOrder_ = false;
11637  onChanged();
11638  return this;
11639  }
11640 
11641  private int maxSatStratification_ = 1;
11645  public boolean hasMaxSatStratification() {
11646  return ((bitField1_ & 0x10000000) != 0);
11647  }
11652  @SuppressWarnings("deprecation")
11655  }
11660  if (value == null) {
11661  throw new NullPointerException();
11662  }
11663  bitField1_ |= 0x10000000;
11664  maxSatStratification_ = value.getNumber();
11665  onChanged();
11666  return this;
11667  }
11672  bitField1_ = (bitField1_ & ~0x10000000);
11673  maxSatStratification_ = 1;
11674  onChanged();
11675  return this;
11676  }
11677 
11678  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
11694  return ((bitField1_ & 0x20000000) != 0);
11695  }
11711  return usePrecedencesInDisjunctiveConstraint_;
11712  }
11728  bitField1_ |= 0x20000000;
11729  usePrecedencesInDisjunctiveConstraint_ = value;
11730  onChanged();
11731  return this;
11732  }
11748  bitField1_ = (bitField1_ & ~0x20000000);
11749  usePrecedencesInDisjunctiveConstraint_ = true;
11750  onChanged();
11751  return this;
11752  }
11753 
11754  private boolean useOverloadCheckerInCumulativeConstraint_ ;
11768  return ((bitField1_ & 0x40000000) != 0);
11769  }
11783  return useOverloadCheckerInCumulativeConstraint_;
11784  }
11798  bitField1_ |= 0x40000000;
11799  useOverloadCheckerInCumulativeConstraint_ = value;
11800  onChanged();
11801  return this;
11802  }
11816  bitField1_ = (bitField1_ & ~0x40000000);
11817  useOverloadCheckerInCumulativeConstraint_ = false;
11818  onChanged();
11819  return this;
11820  }
11821 
11822  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
11836  return ((bitField1_ & 0x80000000) != 0);
11837  }
11851  return useTimetableEdgeFindingInCumulativeConstraint_;
11852  }
11866  bitField1_ |= 0x80000000;
11867  useTimetableEdgeFindingInCumulativeConstraint_ = value;
11868  onChanged();
11869  return this;
11870  }
11884  bitField1_ = (bitField1_ & ~0x80000000);
11885  useTimetableEdgeFindingInCumulativeConstraint_ = false;
11886  onChanged();
11887  return this;
11888  }
11889 
11890  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
11906  return ((bitField2_ & 0x00000001) != 0);
11907  }
11923  return useDisjunctiveConstraintInCumulativeConstraint_;
11924  }
11940  bitField2_ |= 0x00000001;
11941  useDisjunctiveConstraintInCumulativeConstraint_ = value;
11942  onChanged();
11943  return this;
11944  }
11960  bitField2_ = (bitField2_ & ~0x00000001);
11961  useDisjunctiveConstraintInCumulativeConstraint_ = true;
11962  onChanged();
11963  return this;
11964  }
11965 
11966  private int linearizationLevel_ = 1;
11977  public boolean hasLinearizationLevel() {
11978  return ((bitField2_ & 0x00000002) != 0);
11979  }
11990  public int getLinearizationLevel() {
11991  return linearizationLevel_;
11992  }
12003  public Builder setLinearizationLevel(int value) {
12004  bitField2_ |= 0x00000002;
12005  linearizationLevel_ = value;
12006  onChanged();
12007  return this;
12008  }
12020  bitField2_ = (bitField2_ & ~0x00000002);
12021  linearizationLevel_ = 1;
12022  onChanged();
12023  return this;
12024  }
12025 
12026  private int booleanEncodingLevel_ = 1;
12035  public boolean hasBooleanEncodingLevel() {
12036  return ((bitField2_ & 0x00000004) != 0);
12037  }
12047  return booleanEncodingLevel_;
12048  }
12057  public Builder setBooleanEncodingLevel(int value) {
12058  bitField2_ |= 0x00000004;
12059  booleanEncodingLevel_ = value;
12060  onChanged();
12061  return this;
12062  }
12072  bitField2_ = (bitField2_ & ~0x00000004);
12073  booleanEncodingLevel_ = 1;
12074  onChanged();
12075  return this;
12076  }
12077 
12078  private int maxNumCuts_ = 1000;
12087  public boolean hasMaxNumCuts() {
12088  return ((bitField2_ & 0x00000008) != 0);
12089  }
12098  public int getMaxNumCuts() {
12099  return maxNumCuts_;
12100  }
12109  public Builder setMaxNumCuts(int value) {
12110  bitField2_ |= 0x00000008;
12111  maxNumCuts_ = value;
12112  onChanged();
12113  return this;
12114  }
12124  bitField2_ = (bitField2_ & ~0x00000008);
12125  maxNumCuts_ = 1000;
12126  onChanged();
12127  return this;
12128  }
12129 
12130  private boolean onlyAddCutsAtLevelZero_ ;
12139  public boolean hasOnlyAddCutsAtLevelZero() {
12140  return ((bitField2_ & 0x00000010) != 0);
12141  }
12150  public boolean getOnlyAddCutsAtLevelZero() {
12151  return onlyAddCutsAtLevelZero_;
12152  }
12161  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
12162  bitField2_ |= 0x00000010;
12163  onlyAddCutsAtLevelZero_ = value;
12164  onChanged();
12165  return this;
12166  }
12176  bitField2_ = (bitField2_ & ~0x00000010);
12177  onlyAddCutsAtLevelZero_ = false;
12178  onChanged();
12179  return this;
12180  }
12181 
12182  private boolean addKnapsackCuts_ ;
12192  public boolean hasAddKnapsackCuts() {
12193  return ((bitField2_ & 0x00000020) != 0);
12194  }
12204  public boolean getAddKnapsackCuts() {
12205  return addKnapsackCuts_;
12206  }
12216  public Builder setAddKnapsackCuts(boolean value) {
12217  bitField2_ |= 0x00000020;
12218  addKnapsackCuts_ = value;
12219  onChanged();
12220  return this;
12221  }
12232  bitField2_ = (bitField2_ & ~0x00000020);
12233  addKnapsackCuts_ = false;
12234  onChanged();
12235  return this;
12236  }
12237 
12238  private boolean addCgCuts_ ;
12247  public boolean hasAddCgCuts() {
12248  return ((bitField2_ & 0x00000040) != 0);
12249  }
12258  public boolean getAddCgCuts() {
12259  return addCgCuts_;
12260  }
12269  public Builder setAddCgCuts(boolean value) {
12270  bitField2_ |= 0x00000040;
12271  addCgCuts_ = value;
12272  onChanged();
12273  return this;
12274  }
12284  bitField2_ = (bitField2_ & ~0x00000040);
12285  addCgCuts_ = false;
12286  onChanged();
12287  return this;
12288  }
12289 
12290  private boolean addMirCuts_ = true;
12299  public boolean hasAddMirCuts() {
12300  return ((bitField2_ & 0x00000080) != 0);
12301  }
12310  public boolean getAddMirCuts() {
12311  return addMirCuts_;
12312  }
12321  public Builder setAddMirCuts(boolean value) {
12322  bitField2_ |= 0x00000080;
12323  addMirCuts_ = value;
12324  onChanged();
12325  return this;
12326  }
12336  bitField2_ = (bitField2_ & ~0x00000080);
12337  addMirCuts_ = true;
12338  onChanged();
12339  return this;
12340  }
12341 
12342  private boolean useMirRounding_ = true;
12352  public boolean hasUseMirRounding() {
12353  return ((bitField2_ & 0x00000100) != 0);
12354  }
12364  public boolean getUseMirRounding() {
12365  return useMirRounding_;
12366  }
12376  public Builder setUseMirRounding(boolean value) {
12377  bitField2_ |= 0x00000100;
12378  useMirRounding_ = value;
12379  onChanged();
12380  return this;
12381  }
12392  bitField2_ = (bitField2_ & ~0x00000100);
12393  useMirRounding_ = true;
12394  onChanged();
12395  return this;
12396  }
12397 
12398  private int maxIntegerRoundingScaling_ = 600;
12410  public boolean hasMaxIntegerRoundingScaling() {
12411  return ((bitField2_ & 0x00000200) != 0);
12412  }
12425  return maxIntegerRoundingScaling_;
12426  }
12439  bitField2_ |= 0x00000200;
12440  maxIntegerRoundingScaling_ = value;
12441  onChanged();
12442  return this;
12443  }
12456  bitField2_ = (bitField2_ & ~0x00000200);
12457  maxIntegerRoundingScaling_ = 600;
12458  onChanged();
12459  return this;
12460  }
12461 
12462  private boolean addLpConstraintsLazily_ = true;
12473  public boolean hasAddLpConstraintsLazily() {
12474  return ((bitField2_ & 0x00000400) != 0);
12475  }
12486  public boolean getAddLpConstraintsLazily() {
12487  return addLpConstraintsLazily_;
12488  }
12499  public Builder setAddLpConstraintsLazily(boolean value) {
12500  bitField2_ |= 0x00000400;
12501  addLpConstraintsLazily_ = value;
12502  onChanged();
12503  return this;
12504  }
12516  bitField2_ = (bitField2_ & ~0x00000400);
12517  addLpConstraintsLazily_ = true;
12518  onChanged();
12519  return this;
12520  }
12521 
12522  private double minOrthogonalityForLpConstraints_ ;
12535  return ((bitField2_ & 0x00000800) != 0);
12536  }
12549  return minOrthogonalityForLpConstraints_;
12550  }
12563  bitField2_ |= 0x00000800;
12564  minOrthogonalityForLpConstraints_ = value;
12565  onChanged();
12566  return this;
12567  }
12580  bitField2_ = (bitField2_ & ~0x00000800);
12581  minOrthogonalityForLpConstraints_ = 0D;
12582  onChanged();
12583  return this;
12584  }
12585 
12586  private long maxInactiveCount_ = 1000L;
12595  public boolean hasMaxInactiveCount() {
12596  return ((bitField2_ & 0x00001000) != 0);
12597  }
12606  public long getMaxInactiveCount() {
12607  return maxInactiveCount_;
12608  }
12617  public Builder setMaxInactiveCount(long value) {
12618  bitField2_ |= 0x00001000;
12619  maxInactiveCount_ = value;
12620  onChanged();
12621  return this;
12622  }
12632  bitField2_ = (bitField2_ & ~0x00001000);
12633  maxInactiveCount_ = 1000L;
12634  onChanged();
12635  return this;
12636  }
12637 
12638  private long constraintRemovalBatchSize_ = 100L;
12648  return ((bitField2_ & 0x00002000) != 0);
12649  }
12659  return constraintRemovalBatchSize_;
12660  }
12670  bitField2_ |= 0x00002000;
12671  constraintRemovalBatchSize_ = value;
12672  onChanged();
12673  return this;
12674  }
12684  bitField2_ = (bitField2_ & ~0x00002000);
12685  constraintRemovalBatchSize_ = 100L;
12686  onChanged();
12687  return this;
12688  }
12689 
12690  private int searchBranching_ = 0;
12694  public boolean hasSearchBranching() {
12695  return ((bitField2_ & 0x00004000) != 0);
12696  }
12701  @SuppressWarnings("deprecation")
12703  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
12704  }
12709  if (value == null) {
12710  throw new NullPointerException();
12711  }
12712  bitField2_ |= 0x00004000;
12713  searchBranching_ = value.getNumber();
12714  onChanged();
12715  return this;
12716  }
12721  bitField2_ = (bitField2_ & ~0x00004000);
12722  searchBranching_ = 0;
12723  onChanged();
12724  return this;
12725  }
12726 
12727  private boolean exploitIntegerLpSolution_ = true;
12738  public boolean hasExploitIntegerLpSolution() {
12739  return ((bitField2_ & 0x00008000) != 0);
12740  }
12751  public boolean getExploitIntegerLpSolution() {
12752  return exploitIntegerLpSolution_;
12753  }
12764  public Builder setExploitIntegerLpSolution(boolean value) {
12765  bitField2_ |= 0x00008000;
12766  exploitIntegerLpSolution_ = value;
12767  onChanged();
12768  return this;
12769  }
12781  bitField2_ = (bitField2_ & ~0x00008000);
12782  exploitIntegerLpSolution_ = true;
12783  onChanged();
12784  return this;
12785  }
12786 
12787  private boolean exploitAllLpSolution_ = true;
12797  public boolean hasExploitAllLpSolution() {
12798  return ((bitField2_ & 0x00010000) != 0);
12799  }
12809  public boolean getExploitAllLpSolution() {
12810  return exploitAllLpSolution_;
12811  }
12821  public Builder setExploitAllLpSolution(boolean value) {
12822  bitField2_ |= 0x00010000;
12823  exploitAllLpSolution_ = value;
12824  onChanged();
12825  return this;
12826  }
12837  bitField2_ = (bitField2_ & ~0x00010000);
12838  exploitAllLpSolution_ = true;
12839  onChanged();
12840  return this;
12841  }
12842 
12843  private boolean exploitBestSolution_ ;
12851  public boolean hasExploitBestSolution() {
12852  return ((bitField2_ & 0x00020000) != 0);
12853  }
12861  public boolean getExploitBestSolution() {
12862  return exploitBestSolution_;
12863  }
12871  public Builder setExploitBestSolution(boolean value) {
12872  bitField2_ |= 0x00020000;
12873  exploitBestSolution_ = value;
12874  onChanged();
12875  return this;
12876  }
12885  bitField2_ = (bitField2_ & ~0x00020000);
12886  exploitBestSolution_ = false;
12887  onChanged();
12888  return this;
12889  }
12890 
12891  private boolean exploitObjective_ = true;
12900  public boolean hasExploitObjective() {
12901  return ((bitField2_ & 0x00040000) != 0);
12902  }
12911  public boolean getExploitObjective() {
12912  return exploitObjective_;
12913  }
12922  public Builder setExploitObjective(boolean value) {
12923  bitField2_ |= 0x00040000;
12924  exploitObjective_ = value;
12925  onChanged();
12926  return this;
12927  }
12937  bitField2_ = (bitField2_ & ~0x00040000);
12938  exploitObjective_ = true;
12939  onChanged();
12940  return this;
12941  }
12942 
12943  private long pseudoCostReliabilityThreshold_ = 100L;
12953  return ((bitField2_ & 0x00080000) != 0);
12954  }
12964  return pseudoCostReliabilityThreshold_;
12965  }
12975  bitField2_ |= 0x00080000;
12976  pseudoCostReliabilityThreshold_ = value;
12977  onChanged();
12978  return this;
12979  }
12989  bitField2_ = (bitField2_ & ~0x00080000);
12990  pseudoCostReliabilityThreshold_ = 100L;
12991  onChanged();
12992  return this;
12993  }
12994 
12995  private boolean optimizeWithCore_ ;
13006  public boolean hasOptimizeWithCore() {
13007  return ((bitField2_ & 0x00100000) != 0);
13008  }
13019  public boolean getOptimizeWithCore() {
13020  return optimizeWithCore_;
13021  }
13032  public Builder setOptimizeWithCore(boolean value) {
13033  bitField2_ |= 0x00100000;
13034  optimizeWithCore_ = value;
13035  onChanged();
13036  return this;
13037  }
13049  bitField2_ = (bitField2_ & ~0x00100000);
13050  optimizeWithCore_ = false;
13051  onChanged();
13052  return this;
13053  }
13054 
13055  private int binarySearchNumConflicts_ = -1;
13066  public boolean hasBinarySearchNumConflicts() {
13067  return ((bitField2_ & 0x00200000) != 0);
13068  }
13080  return binarySearchNumConflicts_;
13081  }
13093  bitField2_ |= 0x00200000;
13094  binarySearchNumConflicts_ = value;
13095  onChanged();
13096  return this;
13097  }
13109  bitField2_ = (bitField2_ & ~0x00200000);
13110  binarySearchNumConflicts_ = -1;
13111  onChanged();
13112  return this;
13113  }
13114 
13115  private boolean optimizeWithMaxHs_ ;
13128  public boolean hasOptimizeWithMaxHs() {
13129  return ((bitField2_ & 0x00400000) != 0);
13130  }
13143  public boolean getOptimizeWithMaxHs() {
13144  return optimizeWithMaxHs_;
13145  }
13158  public Builder setOptimizeWithMaxHs(boolean value) {
13159  bitField2_ |= 0x00400000;
13160  optimizeWithMaxHs_ = value;
13161  onChanged();
13162  return this;
13163  }
13177  bitField2_ = (bitField2_ & ~0x00400000);
13178  optimizeWithMaxHs_ = false;
13179  onChanged();
13180  return this;
13181  }
13182 
13183  private boolean cpModelPresolve_ = true;
13191  public boolean hasCpModelPresolve() {
13192  return ((bitField2_ & 0x00800000) != 0);
13193  }
13201  public boolean getCpModelPresolve() {
13202  return cpModelPresolve_;
13203  }
13211  public Builder setCpModelPresolve(boolean value) {
13212  bitField2_ |= 0x00800000;
13213  cpModelPresolve_ = value;
13214  onChanged();
13215  return this;
13216  }
13225  bitField2_ = (bitField2_ & ~0x00800000);
13226  cpModelPresolve_ = true;
13227  onChanged();
13228  return this;
13229  }
13230 
13231  private int cpModelProbingLevel_ = 2;
13239  public boolean hasCpModelProbingLevel() {
13240  return ((bitField2_ & 0x01000000) != 0);
13241  }
13249  public int getCpModelProbingLevel() {
13250  return cpModelProbingLevel_;
13251  }
13259  public Builder setCpModelProbingLevel(int value) {
13260  bitField2_ |= 0x01000000;
13261  cpModelProbingLevel_ = value;
13262  onChanged();
13263  return this;
13264  }
13273  bitField2_ = (bitField2_ & ~0x01000000);
13274  cpModelProbingLevel_ = 2;
13275  onChanged();
13276  return this;
13277  }
13278 
13279  private boolean cpModelUseSatPresolve_ = true;
13287  public boolean hasCpModelUseSatPresolve() {
13288  return ((bitField2_ & 0x02000000) != 0);
13289  }
13297  public boolean getCpModelUseSatPresolve() {
13298  return cpModelUseSatPresolve_;
13299  }
13307  public Builder setCpModelUseSatPresolve(boolean value) {
13308  bitField2_ |= 0x02000000;
13309  cpModelUseSatPresolve_ = value;
13310  onChanged();
13311  return this;
13312  }
13321  bitField2_ = (bitField2_ & ~0x02000000);
13322  cpModelUseSatPresolve_ = true;
13323  onChanged();
13324  return this;
13325  }
13326 
13327  private boolean enumerateAllSolutions_ ;
13340  public boolean hasEnumerateAllSolutions() {
13341  return ((bitField2_ & 0x04000000) != 0);
13342  }
13355  public boolean getEnumerateAllSolutions() {
13356  return enumerateAllSolutions_;
13357  }
13370  public Builder setEnumerateAllSolutions(boolean value) {
13371  bitField2_ |= 0x04000000;
13372  enumerateAllSolutions_ = value;
13373  onChanged();
13374  return this;
13375  }
13389  bitField2_ = (bitField2_ & ~0x04000000);
13390  enumerateAllSolutions_ = false;
13391  onChanged();
13392  return this;
13393  }
13394 
13395  private boolean fillTightenedDomainsInResponse_ ;
13408  return ((bitField2_ & 0x08000000) != 0);
13409  }
13422  return fillTightenedDomainsInResponse_;
13423  }
13436  bitField2_ |= 0x08000000;
13437  fillTightenedDomainsInResponse_ = value;
13438  onChanged();
13439  return this;
13440  }
13453  bitField2_ = (bitField2_ & ~0x08000000);
13454  fillTightenedDomainsInResponse_ = false;
13455  onChanged();
13456  return this;
13457  }
13458 
13459  private boolean instantiateAllVariables_ = true;
13468  public boolean hasInstantiateAllVariables() {
13469  return ((bitField2_ & 0x10000000) != 0);
13470  }
13479  public boolean getInstantiateAllVariables() {
13480  return instantiateAllVariables_;
13481  }
13490  public Builder setInstantiateAllVariables(boolean value) {
13491  bitField2_ |= 0x10000000;
13492  instantiateAllVariables_ = value;
13493  onChanged();
13494  return this;
13495  }
13505  bitField2_ = (bitField2_ & ~0x10000000);
13506  instantiateAllVariables_ = true;
13507  onChanged();
13508  return this;
13509  }
13510 
13511  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
13523  return ((bitField2_ & 0x20000000) != 0);
13524  }
13536  return autoDetectGreaterThanAtLeastOneOf_;
13537  }
13549  bitField2_ |= 0x20000000;
13550  autoDetectGreaterThanAtLeastOneOf_ = value;
13551  onChanged();
13552  return this;
13553  }
13565  bitField2_ = (bitField2_ & ~0x20000000);
13566  autoDetectGreaterThanAtLeastOneOf_ = true;
13567  onChanged();
13568  return this;
13569  }
13570 
13571  private boolean stopAfterFirstSolution_ ;
13579  public boolean hasStopAfterFirstSolution() {
13580  return ((bitField2_ & 0x40000000) != 0);
13581  }
13589  public boolean getStopAfterFirstSolution() {
13590  return stopAfterFirstSolution_;
13591  }
13599  public Builder setStopAfterFirstSolution(boolean value) {
13600  bitField2_ |= 0x40000000;
13601  stopAfterFirstSolution_ = value;
13602  onChanged();
13603  return this;
13604  }
13613  bitField2_ = (bitField2_ & ~0x40000000);
13614  stopAfterFirstSolution_ = false;
13615  onChanged();
13616  return this;
13617  }
13618 
13619  private int numSearchWorkers_ = 1;
13628  public boolean hasNumSearchWorkers() {
13629  return ((bitField2_ & 0x80000000) != 0);
13630  }
13639  public int getNumSearchWorkers() {
13640  return numSearchWorkers_;
13641  }
13650  public Builder setNumSearchWorkers(int value) {
13651  bitField2_ |= 0x80000000;
13652  numSearchWorkers_ = value;
13653  onChanged();
13654  return this;
13655  }
13665  bitField2_ = (bitField2_ & ~0x80000000);
13666  numSearchWorkers_ = 1;
13667  onChanged();
13668  return this;
13669  }
13670 
13671  private boolean interleaveSearch_ ;
13682  public boolean hasInterleaveSearch() {
13683  return ((bitField3_ & 0x00000001) != 0);
13684  }
13695  public boolean getInterleaveSearch() {
13696  return interleaveSearch_;
13697  }
13708  public Builder setInterleaveSearch(boolean value) {
13709  bitField3_ |= 0x00000001;
13710  interleaveSearch_ = value;
13711  onChanged();
13712  return this;
13713  }
13725  bitField3_ = (bitField3_ & ~0x00000001);
13726  interleaveSearch_ = false;
13727  onChanged();
13728  return this;
13729  }
13730 
13731  private boolean deterministicParallelSearch_ ;
13742  return ((bitField3_ & 0x00000002) != 0);
13743  }
13754  return deterministicParallelSearch_;
13755  }
13765  public Builder setDeterministicParallelSearch(boolean value) {
13766  bitField3_ |= 0x00000002;
13767  deterministicParallelSearch_ = value;
13768  onChanged();
13769  return this;
13770  }
13781  bitField3_ = (bitField3_ & ~0x00000002);
13782  deterministicParallelSearch_ = false;
13783  onChanged();
13784  return this;
13785  }
13786 
13787  private boolean shareObjectiveBounds_ = true;
13795  public boolean hasShareObjectiveBounds() {
13796  return ((bitField3_ & 0x00000004) != 0);
13797  }
13805  public boolean getShareObjectiveBounds() {
13806  return shareObjectiveBounds_;
13807  }
13815  public Builder setShareObjectiveBounds(boolean value) {
13816  bitField3_ |= 0x00000004;
13817  shareObjectiveBounds_ = value;
13818  onChanged();
13819  return this;
13820  }
13829  bitField3_ = (bitField3_ & ~0x00000004);
13830  shareObjectiveBounds_ = true;
13831  onChanged();
13832  return this;
13833  }
13834 
13835  private boolean shareLevelZeroBounds_ = true;
13843  public boolean hasShareLevelZeroBounds() {
13844  return ((bitField3_ & 0x00000008) != 0);
13845  }
13853  public boolean getShareLevelZeroBounds() {
13854  return shareLevelZeroBounds_;
13855  }
13863  public Builder setShareLevelZeroBounds(boolean value) {
13864  bitField3_ |= 0x00000008;
13865  shareLevelZeroBounds_ = value;
13866  onChanged();
13867  return this;
13868  }
13877  bitField3_ = (bitField3_ & ~0x00000008);
13878  shareLevelZeroBounds_ = true;
13879  onChanged();
13880  return this;
13881  }
13882 
13883  private boolean useLnsOnly_ ;
13891  public boolean hasUseLnsOnly() {
13892  return ((bitField3_ & 0x00000010) != 0);
13893  }
13901  public boolean getUseLnsOnly() {
13902  return useLnsOnly_;
13903  }
13911  public Builder setUseLnsOnly(boolean value) {
13912  bitField3_ |= 0x00000010;
13913  useLnsOnly_ = value;
13914  onChanged();
13915  return this;
13916  }
13925  bitField3_ = (bitField3_ & ~0x00000010);
13926  useLnsOnly_ = false;
13927  onChanged();
13928  return this;
13929  }
13930 
13931  private boolean lnsFocusOnDecisionVariables_ ;
13936  return ((bitField3_ & 0x00000020) != 0);
13937  }
13942  return lnsFocusOnDecisionVariables_;
13943  }
13947  public Builder setLnsFocusOnDecisionVariables(boolean value) {
13948  bitField3_ |= 0x00000020;
13949  lnsFocusOnDecisionVariables_ = value;
13950  onChanged();
13951  return this;
13952  }
13957  bitField3_ = (bitField3_ & ~0x00000020);
13958  lnsFocusOnDecisionVariables_ = false;
13959  onChanged();
13960  return this;
13961  }
13962 
13963  private boolean useRinsLns_ = true;
13971  public boolean hasUseRinsLns() {
13972  return ((bitField3_ & 0x00000040) != 0);
13973  }
13981  public boolean getUseRinsLns() {
13982  return useRinsLns_;
13983  }
13991  public Builder setUseRinsLns(boolean value) {
13992  bitField3_ |= 0x00000040;
13993  useRinsLns_ = value;
13994  onChanged();
13995  return this;
13996  }
14005  bitField3_ = (bitField3_ & ~0x00000040);
14006  useRinsLns_ = true;
14007  onChanged();
14008  return this;
14009  }
14010 
14011  private boolean randomizeSearch_ ;
14019  public boolean hasRandomizeSearch() {
14020  return ((bitField3_ & 0x00000080) != 0);
14021  }
14029  public boolean getRandomizeSearch() {
14030  return randomizeSearch_;
14031  }
14039  public Builder setRandomizeSearch(boolean value) {
14040  bitField3_ |= 0x00000080;
14041  randomizeSearch_ = value;
14042  onChanged();
14043  return this;
14044  }
14053  bitField3_ = (bitField3_ & ~0x00000080);
14054  randomizeSearch_ = false;
14055  onChanged();
14056  return this;
14057  }
14058 
14059  private long searchRandomizationTolerance_ ;
14074  return ((bitField3_ & 0x00000100) != 0);
14075  }
14090  return searchRandomizationTolerance_;
14091  }
14106  bitField3_ |= 0x00000100;
14107  searchRandomizationTolerance_ = value;
14108  onChanged();
14109  return this;
14110  }
14125  bitField3_ = (bitField3_ & ~0x00000100);
14126  searchRandomizationTolerance_ = 0L;
14127  onChanged();
14128  return this;
14129  }
14130 
14131  private boolean useOptionalVariables_ = true;
14141  public boolean hasUseOptionalVariables() {
14142  return ((bitField3_ & 0x00000200) != 0);
14143  }
14153  public boolean getUseOptionalVariables() {
14154  return useOptionalVariables_;
14155  }
14165  public Builder setUseOptionalVariables(boolean value) {
14166  bitField3_ |= 0x00000200;
14167  useOptionalVariables_ = value;
14168  onChanged();
14169  return this;
14170  }
14181  bitField3_ = (bitField3_ & ~0x00000200);
14182  useOptionalVariables_ = true;
14183  onChanged();
14184  return this;
14185  }
14186 
14187  private boolean useExactLpReason_ = true;
14198  public boolean hasUseExactLpReason() {
14199  return ((bitField3_ & 0x00000400) != 0);
14200  }
14211  public boolean getUseExactLpReason() {
14212  return useExactLpReason_;
14213  }
14224  public Builder setUseExactLpReason(boolean value) {
14225  bitField3_ |= 0x00000400;
14226  useExactLpReason_ = value;
14227  onChanged();
14228  return this;
14229  }
14241  bitField3_ = (bitField3_ & ~0x00000400);
14242  useExactLpReason_ = true;
14243  onChanged();
14244  return this;
14245  }
14246 
14247  private boolean useCombinedNoOverlap_ ;
14257  public boolean hasUseCombinedNoOverlap() {
14258  return ((bitField3_ & 0x00000800) != 0);
14259  }
14269  public boolean getUseCombinedNoOverlap() {
14270  return useCombinedNoOverlap_;
14271  }
14281  public Builder setUseCombinedNoOverlap(boolean value) {
14282  bitField3_ |= 0x00000800;
14283  useCombinedNoOverlap_ = value;
14284  onChanged();
14285  return this;
14286  }
14297  bitField3_ = (bitField3_ & ~0x00000800);
14298  useCombinedNoOverlap_ = false;
14299  onChanged();
14300  return this;
14301  }
14302 
14303  private double mipMaxBound_ = 10000000D;
14313  public boolean hasMipMaxBound() {
14314  return ((bitField3_ & 0x00001000) != 0);
14315  }
14325  public double getMipMaxBound() {
14326  return mipMaxBound_;
14327  }
14337  public Builder setMipMaxBound(double value) {
14338  bitField3_ |= 0x00001000;
14339  mipMaxBound_ = value;
14340  onChanged();
14341  return this;
14342  }
14353  bitField3_ = (bitField3_ & ~0x00001000);
14354  mipMaxBound_ = 10000000D;
14355  onChanged();
14356  return this;
14357  }
14358 
14359  private double mipVarScaling_ = 1D;
14369  public boolean hasMipVarScaling() {
14370  return ((bitField3_ & 0x00002000) != 0);
14371  }
14381  public double getMipVarScaling() {
14382  return mipVarScaling_;
14383  }
14393  public Builder setMipVarScaling(double value) {
14394  bitField3_ |= 0x00002000;
14395  mipVarScaling_ = value;
14396  onChanged();
14397  return this;
14398  }
14409  bitField3_ = (bitField3_ & ~0x00002000);
14410  mipVarScaling_ = 1D;
14411  onChanged();
14412  return this;
14413  }
14414 
14415  private double mipWantedPrecision_ = 1e-06D;
14431  public boolean hasMipWantedPrecision() {
14432  return ((bitField3_ & 0x00004000) != 0);
14433  }
14449  public double getMipWantedPrecision() {
14450  return mipWantedPrecision_;
14451  }
14467  public Builder setMipWantedPrecision(double value) {
14468  bitField3_ |= 0x00004000;
14469  mipWantedPrecision_ = value;
14470  onChanged();
14471  return this;
14472  }
14489  bitField3_ = (bitField3_ & ~0x00004000);
14490  mipWantedPrecision_ = 1e-06D;
14491  onChanged();
14492  return this;
14493  }
14494 
14495  private int mipMaxActivityExponent_ = 53;
14509  public boolean hasMipMaxActivityExponent() {
14510  return ((bitField3_ & 0x00008000) != 0);
14511  }
14526  return mipMaxActivityExponent_;
14527  }
14542  bitField3_ |= 0x00008000;
14543  mipMaxActivityExponent_ = value;
14544  onChanged();
14545  return this;
14546  }
14561  bitField3_ = (bitField3_ & ~0x00008000);
14562  mipMaxActivityExponent_ = 53;
14563  onChanged();
14564  return this;
14565  }
14566 
14567  private double mipCheckPrecision_ = 0.0001D;
14578  public boolean hasMipCheckPrecision() {
14579  return ((bitField3_ & 0x00010000) != 0);
14580  }
14591  public double getMipCheckPrecision() {
14592  return mipCheckPrecision_;
14593  }
14604  public Builder setMipCheckPrecision(double value) {
14605  bitField3_ |= 0x00010000;
14606  mipCheckPrecision_ = value;
14607  onChanged();
14608  return this;
14609  }
14621  bitField3_ = (bitField3_ & ~0x00010000);
14622  mipCheckPrecision_ = 0.0001D;
14623  onChanged();
14624  return this;
14625  }
14626 
14627  private boolean catchSigintSignal_ = true;
14637  public boolean hasCatchSigintSignal() {
14638  return ((bitField3_ & 0x00020000) != 0);
14639  }
14649  public boolean getCatchSigintSignal() {
14650  return catchSigintSignal_;
14651  }
14661  public Builder setCatchSigintSignal(boolean value) {
14662  bitField3_ |= 0x00020000;
14663  catchSigintSignal_ = value;
14664  onChanged();
14665  return this;
14666  }
14677  bitField3_ = (bitField3_ & ~0x00020000);
14678  catchSigintSignal_ = true;
14679  onChanged();
14680  return this;
14681  }
14682  @java.lang.Override
14684  final com.google.protobuf.UnknownFieldSet unknownFields) {
14685  return super.setUnknownFields(unknownFields);
14686  }
14687 
14688  @java.lang.Override
14690  final com.google.protobuf.UnknownFieldSet unknownFields) {
14691  return super.mergeUnknownFields(unknownFields);
14692  }
14693 
14694 
14695  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
14696  }
14697 
14698  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
14699  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
14700  static {
14701  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
14702  }
14703 
14705  return DEFAULT_INSTANCE;
14706  }
14707 
14708  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
14709  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
14710  @java.lang.Override
14711  public SatParameters parsePartialFrom(
14712  com.google.protobuf.CodedInputStream input,
14713  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14714  throws com.google.protobuf.InvalidProtocolBufferException {
14715  return new SatParameters(input, extensionRegistry);
14716  }
14717  };
14718 
14719  public static com.google.protobuf.Parser<SatParameters> parser() {
14720  return PARSER;
14721  }
14722 
14723  @java.lang.Override
14724  public com.google.protobuf.Parser<SatParameters> getParserForType() {
14725  return PARSER;
14726  }
14727 
14728  @java.lang.Override
14730  return DEFAULT_INSTANCE;
14731  }
14732 
14733 }
14734 
Builder clearGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
.lang.Deprecated static MaxSatStratificationAlgorithm valueOf(int value)
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder setGlucoseDecayIncrementPeriod(int value)
optional int32 glucose_decay_increment_period = 24 [default = 5000];
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
Builder clearMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setSubsumptionDuringConflictAnalysis(boolean value)
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
BINARY_MINIMIZATION_WITH_REACHABILITY
BINARY_MINIMIZATION_WITH_REACHABILITY = 2;
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder setMinimizeWithPropagationNumDecisions(int value)
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
.lang.Override com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER
.lang.Deprecated static ConflictMinimizationAlgorithm valueOf(int value)
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
.lang.Override Builder toBuilder()
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
Builder clearLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
Builder clearMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
Builder setPbCleanupRatio(double value)
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder clearClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int MIP_WANTED_PRECISION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
static ConflictMinimizationAlgorithm forNumber(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
.lang.Override com.google.protobuf.Parser< SatParameters > getParserForType()
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override com.google.ortools.sat.SatParameters build()
Builder setRestartLbdAverageRatio(double value)
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Override void writeTo(com.google.protobuf.CodedOutputStream output)
Builder clearBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Deprecated static RestartAlgorithm valueOf(int value)
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
.lang.Override Builder mergeFrom(com.google.protobuf.Message other)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
.lang.Override boolean equals(final java.lang.Object obj)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
static com.google.protobuf.Parser< SatParameters > parser()
Builder clearMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
Builder setDefaultRestartAlgorithms(java.lang.String value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder setGlucoseDecayIncrement(double value)
optional double glucose_decay_increment = 23 [default = 0.01];
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
Builder setMinimizeReductionDuringPbResolution(boolean value)
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Deprecated static SearchBranching valueOf(int value)
static final int MINIMIZE_WITH_PROPAGATION_RESTART_PERIOD_FIELD_NUMBER
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
EXPERIMENTAL_BINARY_MINIMIZATION
EXPERIMENTAL_BINARY_MINIMIZATION = 3;
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
.lang.Deprecated static ClauseProtection valueOf(int value)
.lang.Override java.lang.Object newInstance(UnusedPrivateParameter unused)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER
static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER
Builder clearInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder setUseDisjunctiveConstraintInCumulativeConstraint(boolean value)
.lang.Deprecated static MaxSatAssumptionOrder valueOf(int value)
static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4;
.lang.Deprecated static VariableOrder valueOf(int value)
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER
Builder setUseTimetableEdgeFindingInCumulativeConstraint(boolean value)
static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder clearClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static MaxSatStratificationAlgorithm forNumber(int value)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
Builder clearBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
.lang.Deprecated static final com.google.protobuf.Parser< SatParameters > PARSER
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder clearGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
.lang.Override final boolean isInitialized()
Builder setMaxClauseActivityValue(double value)
optional double max_clause_activity_value = 18 [default = 1e+20];
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
Builder clearSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
Builder clearMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
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()
Builder clearMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int USE_BLOCKING_RESTART_FIELD_NUMBER
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters buildPartial()
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static BinaryMinizationAlgorithm forNumber(int value)
static MaxSatAssumptionOrder forNumber(int value)
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
Builder setMaxVariableActivityValue(double value)
optional double max_variable_activity_value = 16 [default = 1e+100];
Builder clearDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Deprecated static Polarity valueOf(int value)
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
Builder setFillTightenedDomainsInResponse(boolean value)
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
static com.google.ortools.sat.SatParameters getDefaultInstance()
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
Builder clearPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder setUseOverloadCheckerInCumulativeConstraint(boolean value)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override final boolean isInitialized()
Builder setPresolveProbingDeterministicTimeLimit(double value)
Builder clearPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Deprecated static BinaryMinizationAlgorithm valueOf(int value)
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
static final int MINIMIZE_WITH_PROPAGATION_NUM_DECISIONS_FIELD_NUMBER
static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER
static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder setBlockingRestartMultiplier(double value)
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Deprecated static ClauseOrdering valueOf(int value)
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER
static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
Builder setBlockingRestartWindowSize(int value)
optional int32 blocking_restart_window_size = 65 [default = 5000];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
Builder setLnsFocusOnDecisionVariables(boolean value)
optional bool lns_focus_on_decision_variables = 105 [default = false];
.lang.Override Builder newBuilderForType()
static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];