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_ = 5000;
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_;
3944  public boolean hasMaxNumCuts() {
3945  return ((bitField2_ & 0x00000004) != 0);
3946  }
3957  public int getMaxNumCuts() {
3958  return maxNumCuts_;
3959  }
3960 
3961  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
3962  private boolean onlyAddCutsAtLevelZero_;
3971  public boolean hasOnlyAddCutsAtLevelZero() {
3972  return ((bitField2_ & 0x00000008) != 0);
3973  }
3982  public boolean getOnlyAddCutsAtLevelZero() {
3983  return onlyAddCutsAtLevelZero_;
3984  }
3985 
3986  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
3987  private boolean addKnapsackCuts_;
3997  public boolean hasAddKnapsackCuts() {
3998  return ((bitField2_ & 0x00000010) != 0);
3999  }
4009  public boolean getAddKnapsackCuts() {
4010  return addKnapsackCuts_;
4011  }
4012 
4013  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
4014  private boolean addCgCuts_;
4023  public boolean hasAddCgCuts() {
4024  return ((bitField2_ & 0x00000020) != 0);
4025  }
4034  public boolean getAddCgCuts() {
4035  return addCgCuts_;
4036  }
4037 
4038  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
4039  private boolean addMirCuts_;
4048  public boolean hasAddMirCuts() {
4049  return ((bitField2_ & 0x00000040) != 0);
4050  }
4059  public boolean getAddMirCuts() {
4060  return addMirCuts_;
4061  }
4062 
4063  public static final int USE_MIR_ROUNDING_FIELD_NUMBER = 118;
4064  private boolean useMirRounding_;
4074  public boolean hasUseMirRounding() {
4075  return ((bitField2_ & 0x00000080) != 0);
4076  }
4086  public boolean getUseMirRounding() {
4087  return useMirRounding_;
4088  }
4089 
4090  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4091  private int maxIntegerRoundingScaling_;
4103  public boolean hasMaxIntegerRoundingScaling() {
4104  return ((bitField2_ & 0x00000100) != 0);
4105  }
4118  return maxIntegerRoundingScaling_;
4119  }
4120 
4121  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4122  private boolean addLpConstraintsLazily_;
4133  public boolean hasAddLpConstraintsLazily() {
4134  return ((bitField2_ & 0x00000200) != 0);
4135  }
4146  public boolean getAddLpConstraintsLazily() {
4147  return addLpConstraintsLazily_;
4148  }
4149 
4151  private double minOrthogonalityForLpConstraints_;
4164  return ((bitField2_ & 0x00000400) != 0);
4165  }
4178  return minOrthogonalityForLpConstraints_;
4179  }
4180 
4181  public static final int MAX_INACTIVE_COUNT_FIELD_NUMBER = 121;
4182  private long maxInactiveCount_;
4191  public boolean hasMaxInactiveCount() {
4192  return ((bitField2_ & 0x00000800) != 0);
4193  }
4202  public long getMaxInactiveCount() {
4203  return maxInactiveCount_;
4204  }
4205 
4206  public static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER = 122;
4207  private long constraintRemovalBatchSize_;
4217  return ((bitField2_ & 0x00001000) != 0);
4218  }
4228  return constraintRemovalBatchSize_;
4229  }
4230 
4231  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4232  private int searchBranching_;
4236  public boolean hasSearchBranching() {
4237  return ((bitField2_ & 0x00002000) != 0);
4238  }
4243  @SuppressWarnings("deprecation")
4245  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4246  }
4247 
4248  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4249  private boolean exploitIntegerLpSolution_;
4260  public boolean hasExploitIntegerLpSolution() {
4261  return ((bitField2_ & 0x00004000) != 0);
4262  }
4273  public boolean getExploitIntegerLpSolution() {
4274  return exploitIntegerLpSolution_;
4275  }
4276 
4277  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4278  private boolean exploitAllLpSolution_;
4288  public boolean hasExploitAllLpSolution() {
4289  return ((bitField2_ & 0x00008000) != 0);
4290  }
4300  public boolean getExploitAllLpSolution() {
4301  return exploitAllLpSolution_;
4302  }
4303 
4304  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4305  private boolean exploitBestSolution_;
4313  public boolean hasExploitBestSolution() {
4314  return ((bitField2_ & 0x00010000) != 0);
4315  }
4323  public boolean getExploitBestSolution() {
4324  return exploitBestSolution_;
4325  }
4326 
4327  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4328  private boolean exploitObjective_;
4337  public boolean hasExploitObjective() {
4338  return ((bitField2_ & 0x00020000) != 0);
4339  }
4348  public boolean getExploitObjective() {
4349  return exploitObjective_;
4350  }
4351 
4352  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4353  private long pseudoCostReliabilityThreshold_;
4363  return ((bitField2_ & 0x00040000) != 0);
4364  }
4374  return pseudoCostReliabilityThreshold_;
4375  }
4376 
4377  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4378  private boolean optimizeWithCore_;
4389  public boolean hasOptimizeWithCore() {
4390  return ((bitField2_ & 0x00080000) != 0);
4391  }
4402  public boolean getOptimizeWithCore() {
4403  return optimizeWithCore_;
4404  }
4405 
4406  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
4407  private int binarySearchNumConflicts_;
4418  public boolean hasBinarySearchNumConflicts() {
4419  return ((bitField2_ & 0x00100000) != 0);
4420  }
4432  return binarySearchNumConflicts_;
4433  }
4434 
4435  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
4436  private boolean optimizeWithMaxHs_;
4449  public boolean hasOptimizeWithMaxHs() {
4450  return ((bitField2_ & 0x00200000) != 0);
4451  }
4464  public boolean getOptimizeWithMaxHs() {
4465  return optimizeWithMaxHs_;
4466  }
4467 
4468  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
4469  private boolean cpModelPresolve_;
4477  public boolean hasCpModelPresolve() {
4478  return ((bitField2_ & 0x00400000) != 0);
4479  }
4487  public boolean getCpModelPresolve() {
4488  return cpModelPresolve_;
4489  }
4490 
4491  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
4492  private int cpModelProbingLevel_;
4500  public boolean hasCpModelProbingLevel() {
4501  return ((bitField2_ & 0x00800000) != 0);
4502  }
4510  public int getCpModelProbingLevel() {
4511  return cpModelProbingLevel_;
4512  }
4513 
4514  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
4515  private boolean cpModelUseSatPresolve_;
4523  public boolean hasCpModelUseSatPresolve() {
4524  return ((bitField2_ & 0x01000000) != 0);
4525  }
4533  public boolean getCpModelUseSatPresolve() {
4534  return cpModelUseSatPresolve_;
4535  }
4536 
4537  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
4538  private boolean enumerateAllSolutions_;
4551  public boolean hasEnumerateAllSolutions() {
4552  return ((bitField2_ & 0x02000000) != 0);
4553  }
4566  public boolean getEnumerateAllSolutions() {
4567  return enumerateAllSolutions_;
4568  }
4569 
4571  private boolean fillTightenedDomainsInResponse_;
4584  return ((bitField2_ & 0x04000000) != 0);
4585  }
4598  return fillTightenedDomainsInResponse_;
4599  }
4600 
4601  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
4602  private boolean instantiateAllVariables_;
4611  public boolean hasInstantiateAllVariables() {
4612  return ((bitField2_ & 0x08000000) != 0);
4613  }
4622  public boolean getInstantiateAllVariables() {
4623  return instantiateAllVariables_;
4624  }
4625 
4627  private boolean autoDetectGreaterThanAtLeastOneOf_;
4639  return ((bitField2_ & 0x10000000) != 0);
4640  }
4652  return autoDetectGreaterThanAtLeastOneOf_;
4653  }
4654 
4655  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
4656  private boolean stopAfterFirstSolution_;
4664  public boolean hasStopAfterFirstSolution() {
4665  return ((bitField2_ & 0x20000000) != 0);
4666  }
4674  public boolean getStopAfterFirstSolution() {
4675  return stopAfterFirstSolution_;
4676  }
4677 
4678  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
4679  private int numSearchWorkers_;
4688  public boolean hasNumSearchWorkers() {
4689  return ((bitField2_ & 0x40000000) != 0);
4690  }
4699  public int getNumSearchWorkers() {
4700  return numSearchWorkers_;
4701  }
4702 
4703  public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
4704  private boolean interleaveSearch_;
4715  public boolean hasInterleaveSearch() {
4716  return ((bitField2_ & 0x80000000) != 0);
4717  }
4728  public boolean getInterleaveSearch() {
4729  return interleaveSearch_;
4730  }
4731 
4732  public static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER = 134;
4733  private boolean deterministicParallelSearch_;
4744  return ((bitField3_ & 0x00000001) != 0);
4745  }
4756  return deterministicParallelSearch_;
4757  }
4758 
4759  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
4760  private boolean shareObjectiveBounds_;
4768  public boolean hasShareObjectiveBounds() {
4769  return ((bitField3_ & 0x00000002) != 0);
4770  }
4778  public boolean getShareObjectiveBounds() {
4779  return shareObjectiveBounds_;
4780  }
4781 
4782  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
4783  private boolean shareLevelZeroBounds_;
4791  public boolean hasShareLevelZeroBounds() {
4792  return ((bitField3_ & 0x00000004) != 0);
4793  }
4801  public boolean getShareLevelZeroBounds() {
4802  return shareLevelZeroBounds_;
4803  }
4804 
4805  public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
4806  private boolean useLnsOnly_;
4814  public boolean hasUseLnsOnly() {
4815  return ((bitField3_ & 0x00000008) != 0);
4816  }
4824  public boolean getUseLnsOnly() {
4825  return useLnsOnly_;
4826  }
4827 
4828  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
4829  private boolean lnsFocusOnDecisionVariables_;
4834  return ((bitField3_ & 0x00000010) != 0);
4835  }
4840  return lnsFocusOnDecisionVariables_;
4841  }
4842 
4843  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
4844  private boolean useRinsLns_;
4852  public boolean hasUseRinsLns() {
4853  return ((bitField3_ & 0x00000020) != 0);
4854  }
4862  public boolean getUseRinsLns() {
4863  return useRinsLns_;
4864  }
4865 
4866  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
4867  private boolean randomizeSearch_;
4875  public boolean hasRandomizeSearch() {
4876  return ((bitField3_ & 0x00000040) != 0);
4877  }
4885  public boolean getRandomizeSearch() {
4886  return randomizeSearch_;
4887  }
4888 
4889  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
4890  private long searchRandomizationTolerance_;
4905  return ((bitField3_ & 0x00000080) != 0);
4906  }
4921  return searchRandomizationTolerance_;
4922  }
4923 
4924  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
4925  private boolean useOptionalVariables_;
4935  public boolean hasUseOptionalVariables() {
4936  return ((bitField3_ & 0x00000100) != 0);
4937  }
4947  public boolean getUseOptionalVariables() {
4948  return useOptionalVariables_;
4949  }
4950 
4951  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
4952  private boolean useExactLpReason_;
4963  public boolean hasUseExactLpReason() {
4964  return ((bitField3_ & 0x00000200) != 0);
4965  }
4976  public boolean getUseExactLpReason() {
4977  return useExactLpReason_;
4978  }
4979 
4980  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
4981  private boolean useCombinedNoOverlap_;
4991  public boolean hasUseCombinedNoOverlap() {
4992  return ((bitField3_ & 0x00000400) != 0);
4993  }
5003  public boolean getUseCombinedNoOverlap() {
5004  return useCombinedNoOverlap_;
5005  }
5006 
5007  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
5008  private double mipMaxBound_;
5018  public boolean hasMipMaxBound() {
5019  return ((bitField3_ & 0x00000800) != 0);
5020  }
5030  public double getMipMaxBound() {
5031  return mipMaxBound_;
5032  }
5033 
5034  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
5035  private double mipVarScaling_;
5045  public boolean hasMipVarScaling() {
5046  return ((bitField3_ & 0x00001000) != 0);
5047  }
5057  public double getMipVarScaling() {
5058  return mipVarScaling_;
5059  }
5060 
5061  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
5062  private double mipWantedPrecision_;
5078  public boolean hasMipWantedPrecision() {
5079  return ((bitField3_ & 0x00002000) != 0);
5080  }
5096  public double getMipWantedPrecision() {
5097  return mipWantedPrecision_;
5098  }
5099 
5100  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5101  private int mipMaxActivityExponent_;
5115  public boolean hasMipMaxActivityExponent() {
5116  return ((bitField3_ & 0x00004000) != 0);
5117  }
5132  return mipMaxActivityExponent_;
5133  }
5134 
5135  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5136  private double mipCheckPrecision_;
5147  public boolean hasMipCheckPrecision() {
5148  return ((bitField3_ & 0x00008000) != 0);
5149  }
5160  public double getMipCheckPrecision() {
5161  return mipCheckPrecision_;
5162  }
5163 
5164  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
5165  private boolean catchSigintSignal_;
5175  public boolean hasCatchSigintSignal() {
5176  return ((bitField3_ & 0x00010000) != 0);
5177  }
5187  public boolean getCatchSigintSignal() {
5188  return catchSigintSignal_;
5189  }
5190 
5191  private byte memoizedIsInitialized = -1;
5192  @java.lang.Override
5193  public final boolean isInitialized() {
5194  byte isInitialized = memoizedIsInitialized;
5195  if (isInitialized == 1) return true;
5196  if (isInitialized == 0) return false;
5197 
5198  memoizedIsInitialized = 1;
5199  return true;
5200  }
5201 
5202  @java.lang.Override
5203  public void writeTo(com.google.protobuf.CodedOutputStream output)
5204  throws java.io.IOException {
5205  if (((bitField0_ & 0x00000001) != 0)) {
5206  output.writeEnum(1, preferredVariableOrder_);
5207  }
5208  if (((bitField0_ & 0x00000002) != 0)) {
5209  output.writeEnum(2, initialPolarity_);
5210  }
5211  if (((bitField0_ & 0x00000100) != 0)) {
5212  output.writeEnum(4, minimizationAlgorithm_);
5213  }
5214  if (((bitField0_ & 0x00000800) != 0)) {
5215  output.writeInt32(11, clauseCleanupPeriod_);
5216  }
5217  if (((bitField0_ & 0x00001000) != 0)) {
5218  output.writeInt32(13, clauseCleanupTarget_);
5219  }
5220  if (((bitField0_ & 0x00100000) != 0)) {
5221  output.writeDouble(15, variableActivityDecay_);
5222  }
5223  if (((bitField0_ & 0x00200000) != 0)) {
5224  output.writeDouble(16, maxVariableActivityValue_);
5225  }
5226  if (((bitField0_ & 0x02000000) != 0)) {
5227  output.writeDouble(17, clauseActivityDecay_);
5228  }
5229  if (((bitField0_ & 0x04000000) != 0)) {
5230  output.writeDouble(18, maxClauseActivityValue_);
5231  }
5232  if (((bitField0_ & 0x00400000) != 0)) {
5233  output.writeDouble(22, glucoseMaxDecay_);
5234  }
5235  if (((bitField0_ & 0x00800000) != 0)) {
5236  output.writeDouble(23, glucoseDecayIncrement_);
5237  }
5238  if (((bitField0_ & 0x01000000) != 0)) {
5239  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5240  }
5241  if (((bitField0_ & 0x10000000) != 0)) {
5242  output.writeInt32(30, restartPeriod_);
5243  }
5244  if (((bitField1_ & 0x00000400) != 0)) {
5245  output.writeInt32(31, randomSeed_);
5246  }
5247  if (((bitField0_ & 0x00000010) != 0)) {
5248  output.writeDouble(32, randomBranchesRatio_);
5249  }
5250  if (((bitField1_ & 0x00000200) != 0)) {
5251  output.writeBool(33, treatBinaryClausesSeparately_);
5252  }
5253  if (((bitField0_ & 0x00000200) != 0)) {
5254  output.writeEnum(34, binaryMinimizationAlgorithm_);
5255  }
5256  if (((bitField1_ & 0x00200000) != 0)) {
5257  output.writeBool(35, useOptimizationHints_);
5258  }
5259  if (((bitField1_ & 0x00000020) != 0)) {
5260  output.writeDouble(36, maxTimeInSeconds_);
5261  }
5262  if (((bitField1_ & 0x00000080) != 0)) {
5263  output.writeInt64(37, maxNumberOfConflicts_);
5264  }
5265  if (((bitField1_ & 0x00000100) != 0)) {
5266  output.writeInt64(40, maxMemoryInMb_);
5267  }
5268  if (((bitField1_ & 0x00000800) != 0)) {
5269  output.writeBool(41, logSearchProgress_);
5270  }
5271  if (((bitField1_ & 0x00001000) != 0)) {
5272  output.writeBool(43, usePbResolution_);
5273  }
5274  if (((bitField0_ & 0x00000004) != 0)) {
5275  output.writeBool(44, usePhaseSaving_);
5276  }
5277  if (((bitField0_ & 0x00000008) != 0)) {
5278  output.writeDouble(45, randomPolarityRatio_);
5279  }
5280  if (((bitField0_ & 0x00010000) != 0)) {
5281  output.writeInt32(46, pbCleanupIncrement_);
5282  }
5283  if (((bitField0_ & 0x00020000) != 0)) {
5284  output.writeDouble(47, pbCleanupRatio_);
5285  }
5286  if (((bitField1_ & 0x00002000) != 0)) {
5287  output.writeBool(48, minimizeReductionDuringPbResolution_);
5288  }
5289  if (((bitField1_ & 0x00004000) != 0)) {
5290  output.writeBool(49, countAssumptionLevelsInLbd_);
5291  }
5292  if (((bitField1_ & 0x00400000) != 0)) {
5293  output.writeBool(50, minimizeCore_);
5294  }
5295  if (((bitField1_ & 0x02000000) != 0)) {
5296  output.writeEnum(51, maxSatAssumptionOrder_);
5297  }
5298  if (((bitField1_ & 0x04000000) != 0)) {
5299  output.writeBool(52, maxSatReverseAssumptionOrder_);
5300  }
5301  if (((bitField1_ & 0x08000000) != 0)) {
5302  output.writeEnum(53, maxSatStratification_);
5303  }
5304  if (((bitField1_ & 0x00008000) != 0)) {
5305  output.writeInt32(54, presolveBveThreshold_);
5306  }
5307  if (((bitField1_ & 0x00010000) != 0)) {
5308  output.writeInt32(55, presolveBveClauseWeight_);
5309  }
5310  if (((bitField0_ & 0x00000400) != 0)) {
5311  output.writeBool(56, subsumptionDuringConflictAnalysis_);
5312  }
5313  if (((bitField1_ & 0x00020000) != 0)) {
5314  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
5315  }
5316  if (((bitField0_ & 0x00002000) != 0)) {
5317  output.writeEnum(58, clauseCleanupProtection_);
5318  }
5319  if (((bitField0_ & 0x00004000) != 0)) {
5320  output.writeInt32(59, clauseCleanupLbdBound_);
5321  }
5322  if (((bitField0_ & 0x00008000) != 0)) {
5323  output.writeEnum(60, clauseCleanupOrdering_);
5324  }
5325  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5326  output.writeEnum(61, restartAlgorithms_.get(i));
5327  }
5328  if (((bitField0_ & 0x20000000) != 0)) {
5329  output.writeInt32(62, restartRunningWindowSize_);
5330  }
5331  if (((bitField0_ & 0x40000000) != 0)) {
5332  output.writeDouble(63, restartDlAverageRatio_);
5333  }
5334  if (((bitField1_ & 0x00000001) != 0)) {
5335  output.writeBool(64, useBlockingRestart_);
5336  }
5337  if (((bitField1_ & 0x00000002) != 0)) {
5338  output.writeInt32(65, blockingRestartWindowSize_);
5339  }
5340  if (((bitField1_ & 0x00000004) != 0)) {
5341  output.writeDouble(66, blockingRestartMultiplier_);
5342  }
5343  if (((bitField1_ & 0x00000040) != 0)) {
5344  output.writeDouble(67, maxDeterministicTime_);
5345  }
5346  if (((bitField1_ & 0x00000008) != 0)) {
5347  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
5348  }
5349  if (((bitField1_ & 0x00000010) != 0)) {
5350  output.writeDouble(69, strategyChangeIncreaseRatio_);
5351  }
5352  if (((bitField0_ & 0x08000000) != 0)) {
5353  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
5354  }
5355  if (((bitField0_ & 0x80000000) != 0)) {
5356  output.writeDouble(71, restartLbdAverageRatio_);
5357  }
5358  if (((bitField1_ & 0x00080000) != 0)) {
5359  output.writeBool(72, presolveUseBva_);
5360  }
5361  if (((bitField1_ & 0x00100000) != 0)) {
5362  output.writeInt32(73, presolveBvaThreshold_);
5363  }
5364  if (((bitField1_ & 0x10000000) != 0)) {
5365  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
5366  }
5367  if (((bitField0_ & 0x00000020) != 0)) {
5368  output.writeBool(75, useErwaHeuristic_);
5369  }
5370  if (((bitField0_ & 0x00000040) != 0)) {
5371  output.writeDouble(76, initialVariablesActivity_);
5372  }
5373  if (((bitField0_ & 0x00000080) != 0)) {
5374  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
5375  }
5376  if (((bitField1_ & 0x20000000) != 0)) {
5377  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
5378  }
5379  if (((bitField1_ & 0x40000000) != 0)) {
5380  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
5381  }
5382  if (((bitField1_ & 0x80000000) != 0)) {
5383  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
5384  }
5385  if (((bitField2_ & 0x00002000) != 0)) {
5386  output.writeEnum(82, searchBranching_);
5387  }
5388  if (((bitField2_ & 0x00080000) != 0)) {
5389  output.writeBool(83, optimizeWithCore_);
5390  }
5391  if (((bitField1_ & 0x00800000) != 0)) {
5392  output.writeBool(84, findMultipleCores_);
5393  }
5394  if (((bitField2_ & 0x00200000) != 0)) {
5395  output.writeBool(85, optimizeWithMaxHs_);
5396  }
5397  if (((bitField2_ & 0x00400000) != 0)) {
5398  output.writeBool(86, cpModelPresolve_);
5399  }
5400  if (((bitField2_ & 0x02000000) != 0)) {
5401  output.writeBool(87, enumerateAllSolutions_);
5402  }
5403  if (((bitField1_ & 0x00040000) != 0)) {
5404  output.writeBool(88, presolveBlockedClause_);
5405  }
5406  if (((bitField1_ & 0x01000000) != 0)) {
5407  output.writeBool(89, coverOptimization_);
5408  }
5409  if (((bitField2_ & 0x00000001) != 0)) {
5410  output.writeInt32(90, linearizationLevel_);
5411  }
5412  if (((bitField2_ & 0x00000004) != 0)) {
5413  output.writeInt32(91, maxNumCuts_);
5414  }
5415  if (((bitField2_ & 0x00000008) != 0)) {
5416  output.writeBool(92, onlyAddCutsAtLevelZero_);
5417  }
5418  if (((bitField2_ & 0x01000000) != 0)) {
5419  output.writeBool(93, cpModelUseSatPresolve_);
5420  }
5421  if (((bitField2_ & 0x00004000) != 0)) {
5422  output.writeBool(94, exploitIntegerLpSolution_);
5423  }
5424  if (((bitField2_ & 0x10000000) != 0)) {
5425  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
5426  }
5427  if (((bitField0_ & 0x00040000) != 0)) {
5428  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
5429  }
5430  if (((bitField0_ & 0x00080000) != 0)) {
5431  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
5432  }
5433  if (((bitField2_ & 0x20000000) != 0)) {
5434  output.writeBool(98, stopAfterFirstSolution_);
5435  }
5436  if (((bitField2_ & 0x00100000) != 0)) {
5437  output.writeInt32(99, binarySearchNumConflicts_);
5438  }
5439  if (((bitField2_ & 0x40000000) != 0)) {
5440  output.writeInt32(100, numSearchWorkers_);
5441  }
5442  if (((bitField3_ & 0x00000008) != 0)) {
5443  output.writeBool(101, useLnsOnly_);
5444  }
5445  if (((bitField3_ & 0x00000040) != 0)) {
5446  output.writeBool(103, randomizeSearch_);
5447  }
5448  if (((bitField3_ & 0x00000080) != 0)) {
5449  output.writeInt64(104, searchRandomizationTolerance_);
5450  }
5451  if (((bitField3_ & 0x00000010) != 0)) {
5452  output.writeBool(105, lnsFocusOnDecisionVariables_);
5453  }
5454  if (((bitField2_ & 0x08000000) != 0)) {
5455  output.writeBool(106, instantiateAllVariables_);
5456  }
5457  if (((bitField2_ & 0x00000002) != 0)) {
5458  output.writeInt32(107, booleanEncodingLevel_);
5459  }
5460  if (((bitField3_ & 0x00000100) != 0)) {
5461  output.writeBool(108, useOptionalVariables_);
5462  }
5463  if (((bitField3_ & 0x00000200) != 0)) {
5464  output.writeBool(109, useExactLpReason_);
5465  }
5466  if (((bitField2_ & 0x00800000) != 0)) {
5467  output.writeInt32(110, cpModelProbingLevel_);
5468  }
5469  if (((bitField2_ & 0x00000010) != 0)) {
5470  output.writeBool(111, addKnapsackCuts_);
5471  }
5472  if (((bitField2_ & 0x00000200) != 0)) {
5473  output.writeBool(112, addLpConstraintsLazily_);
5474  }
5475  if (((bitField3_ & 0x00000002) != 0)) {
5476  output.writeBool(113, shareObjectiveBounds_);
5477  }
5478  if (((bitField3_ & 0x00000004) != 0)) {
5479  output.writeBool(114, shareLevelZeroBounds_);
5480  }
5481  if (((bitField2_ & 0x00000400) != 0)) {
5482  output.writeDouble(115, minOrthogonalityForLpConstraints_);
5483  }
5484  if (((bitField2_ & 0x00008000) != 0)) {
5485  output.writeBool(116, exploitAllLpSolution_);
5486  }
5487  if (((bitField2_ & 0x00000020) != 0)) {
5488  output.writeBool(117, addCgCuts_);
5489  }
5490  if (((bitField2_ & 0x00000080) != 0)) {
5491  output.writeBool(118, useMirRounding_);
5492  }
5493  if (((bitField2_ & 0x00000100) != 0)) {
5494  output.writeInt32(119, maxIntegerRoundingScaling_);
5495  }
5496  if (((bitField2_ & 0x00000040) != 0)) {
5497  output.writeBool(120, addMirCuts_);
5498  }
5499  if (((bitField2_ & 0x00000800) != 0)) {
5500  output.writeInt64(121, maxInactiveCount_);
5501  }
5502  if (((bitField2_ & 0x00001000) != 0)) {
5503  output.writeInt64(122, constraintRemovalBatchSize_);
5504  }
5505  if (((bitField2_ & 0x00040000) != 0)) {
5506  output.writeInt64(123, pseudoCostReliabilityThreshold_);
5507  }
5508  if (((bitField3_ & 0x00000800) != 0)) {
5509  output.writeDouble(124, mipMaxBound_);
5510  }
5511  if (((bitField3_ & 0x00001000) != 0)) {
5512  output.writeDouble(125, mipVarScaling_);
5513  }
5514  if (((bitField3_ & 0x00002000) != 0)) {
5515  output.writeDouble(126, mipWantedPrecision_);
5516  }
5517  if (((bitField3_ & 0x00004000) != 0)) {
5518  output.writeInt32(127, mipMaxActivityExponent_);
5519  }
5520  if (((bitField3_ & 0x00008000) != 0)) {
5521  output.writeDouble(128, mipCheckPrecision_);
5522  }
5523  if (((bitField3_ & 0x00000020) != 0)) {
5524  output.writeBool(129, useRinsLns_);
5525  }
5526  if (((bitField2_ & 0x00010000) != 0)) {
5527  output.writeBool(130, exploitBestSolution_);
5528  }
5529  if (((bitField2_ & 0x00020000) != 0)) {
5530  output.writeBool(131, exploitObjective_);
5531  }
5532  if (((bitField2_ & 0x04000000) != 0)) {
5533  output.writeBool(132, fillTightenedDomainsInResponse_);
5534  }
5535  if (((bitField3_ & 0x00000400) != 0)) {
5536  output.writeBool(133, useCombinedNoOverlap_);
5537  }
5538  if (((bitField3_ & 0x00000001) != 0)) {
5539  output.writeBool(134, deterministicParallelSearch_);
5540  }
5541  if (((bitField3_ & 0x00010000) != 0)) {
5542  output.writeBool(135, catchSigintSignal_);
5543  }
5544  if (((bitField2_ & 0x80000000) != 0)) {
5545  output.writeBool(136, interleaveSearch_);
5546  }
5547  unknownFields.writeTo(output);
5548  }
5549 
5550  @java.lang.Override
5551  public int getSerializedSize() {
5552  int size = memoizedSize;
5553  if (size != -1) return size;
5554 
5555  size = 0;
5556  if (((bitField0_ & 0x00000001) != 0)) {
5557  size += com.google.protobuf.CodedOutputStream
5558  .computeEnumSize(1, preferredVariableOrder_);
5559  }
5560  if (((bitField0_ & 0x00000002) != 0)) {
5561  size += com.google.protobuf.CodedOutputStream
5562  .computeEnumSize(2, initialPolarity_);
5563  }
5564  if (((bitField0_ & 0x00000100) != 0)) {
5565  size += com.google.protobuf.CodedOutputStream
5566  .computeEnumSize(4, minimizationAlgorithm_);
5567  }
5568  if (((bitField0_ & 0x00000800) != 0)) {
5569  size += com.google.protobuf.CodedOutputStream
5570  .computeInt32Size(11, clauseCleanupPeriod_);
5571  }
5572  if (((bitField0_ & 0x00001000) != 0)) {
5573  size += com.google.protobuf.CodedOutputStream
5574  .computeInt32Size(13, clauseCleanupTarget_);
5575  }
5576  if (((bitField0_ & 0x00100000) != 0)) {
5577  size += com.google.protobuf.CodedOutputStream
5578  .computeDoubleSize(15, variableActivityDecay_);
5579  }
5580  if (((bitField0_ & 0x00200000) != 0)) {
5581  size += com.google.protobuf.CodedOutputStream
5582  .computeDoubleSize(16, maxVariableActivityValue_);
5583  }
5584  if (((bitField0_ & 0x02000000) != 0)) {
5585  size += com.google.protobuf.CodedOutputStream
5586  .computeDoubleSize(17, clauseActivityDecay_);
5587  }
5588  if (((bitField0_ & 0x04000000) != 0)) {
5589  size += com.google.protobuf.CodedOutputStream
5590  .computeDoubleSize(18, maxClauseActivityValue_);
5591  }
5592  if (((bitField0_ & 0x00400000) != 0)) {
5593  size += com.google.protobuf.CodedOutputStream
5594  .computeDoubleSize(22, glucoseMaxDecay_);
5595  }
5596  if (((bitField0_ & 0x00800000) != 0)) {
5597  size += com.google.protobuf.CodedOutputStream
5598  .computeDoubleSize(23, glucoseDecayIncrement_);
5599  }
5600  if (((bitField0_ & 0x01000000) != 0)) {
5601  size += com.google.protobuf.CodedOutputStream
5602  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
5603  }
5604  if (((bitField0_ & 0x10000000) != 0)) {
5605  size += com.google.protobuf.CodedOutputStream
5606  .computeInt32Size(30, restartPeriod_);
5607  }
5608  if (((bitField1_ & 0x00000400) != 0)) {
5609  size += com.google.protobuf.CodedOutputStream
5610  .computeInt32Size(31, randomSeed_);
5611  }
5612  if (((bitField0_ & 0x00000010) != 0)) {
5613  size += com.google.protobuf.CodedOutputStream
5614  .computeDoubleSize(32, randomBranchesRatio_);
5615  }
5616  if (((bitField1_ & 0x00000200) != 0)) {
5617  size += com.google.protobuf.CodedOutputStream
5618  .computeBoolSize(33, treatBinaryClausesSeparately_);
5619  }
5620  if (((bitField0_ & 0x00000200) != 0)) {
5621  size += com.google.protobuf.CodedOutputStream
5622  .computeEnumSize(34, binaryMinimizationAlgorithm_);
5623  }
5624  if (((bitField1_ & 0x00200000) != 0)) {
5625  size += com.google.protobuf.CodedOutputStream
5626  .computeBoolSize(35, useOptimizationHints_);
5627  }
5628  if (((bitField1_ & 0x00000020) != 0)) {
5629  size += com.google.protobuf.CodedOutputStream
5630  .computeDoubleSize(36, maxTimeInSeconds_);
5631  }
5632  if (((bitField1_ & 0x00000080) != 0)) {
5633  size += com.google.protobuf.CodedOutputStream
5634  .computeInt64Size(37, maxNumberOfConflicts_);
5635  }
5636  if (((bitField1_ & 0x00000100) != 0)) {
5637  size += com.google.protobuf.CodedOutputStream
5638  .computeInt64Size(40, maxMemoryInMb_);
5639  }
5640  if (((bitField1_ & 0x00000800) != 0)) {
5641  size += com.google.protobuf.CodedOutputStream
5642  .computeBoolSize(41, logSearchProgress_);
5643  }
5644  if (((bitField1_ & 0x00001000) != 0)) {
5645  size += com.google.protobuf.CodedOutputStream
5646  .computeBoolSize(43, usePbResolution_);
5647  }
5648  if (((bitField0_ & 0x00000004) != 0)) {
5649  size += com.google.protobuf.CodedOutputStream
5650  .computeBoolSize(44, usePhaseSaving_);
5651  }
5652  if (((bitField0_ & 0x00000008) != 0)) {
5653  size += com.google.protobuf.CodedOutputStream
5654  .computeDoubleSize(45, randomPolarityRatio_);
5655  }
5656  if (((bitField0_ & 0x00010000) != 0)) {
5657  size += com.google.protobuf.CodedOutputStream
5658  .computeInt32Size(46, pbCleanupIncrement_);
5659  }
5660  if (((bitField0_ & 0x00020000) != 0)) {
5661  size += com.google.protobuf.CodedOutputStream
5662  .computeDoubleSize(47, pbCleanupRatio_);
5663  }
5664  if (((bitField1_ & 0x00002000) != 0)) {
5665  size += com.google.protobuf.CodedOutputStream
5666  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
5667  }
5668  if (((bitField1_ & 0x00004000) != 0)) {
5669  size += com.google.protobuf.CodedOutputStream
5670  .computeBoolSize(49, countAssumptionLevelsInLbd_);
5671  }
5672  if (((bitField1_ & 0x00400000) != 0)) {
5673  size += com.google.protobuf.CodedOutputStream
5674  .computeBoolSize(50, minimizeCore_);
5675  }
5676  if (((bitField1_ & 0x02000000) != 0)) {
5677  size += com.google.protobuf.CodedOutputStream
5678  .computeEnumSize(51, maxSatAssumptionOrder_);
5679  }
5680  if (((bitField1_ & 0x04000000) != 0)) {
5681  size += com.google.protobuf.CodedOutputStream
5682  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
5683  }
5684  if (((bitField1_ & 0x08000000) != 0)) {
5685  size += com.google.protobuf.CodedOutputStream
5686  .computeEnumSize(53, maxSatStratification_);
5687  }
5688  if (((bitField1_ & 0x00008000) != 0)) {
5689  size += com.google.protobuf.CodedOutputStream
5690  .computeInt32Size(54, presolveBveThreshold_);
5691  }
5692  if (((bitField1_ & 0x00010000) != 0)) {
5693  size += com.google.protobuf.CodedOutputStream
5694  .computeInt32Size(55, presolveBveClauseWeight_);
5695  }
5696  if (((bitField0_ & 0x00000400) != 0)) {
5697  size += com.google.protobuf.CodedOutputStream
5698  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
5699  }
5700  if (((bitField1_ & 0x00020000) != 0)) {
5701  size += com.google.protobuf.CodedOutputStream
5702  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
5703  }
5704  if (((bitField0_ & 0x00002000) != 0)) {
5705  size += com.google.protobuf.CodedOutputStream
5706  .computeEnumSize(58, clauseCleanupProtection_);
5707  }
5708  if (((bitField0_ & 0x00004000) != 0)) {
5709  size += com.google.protobuf.CodedOutputStream
5710  .computeInt32Size(59, clauseCleanupLbdBound_);
5711  }
5712  if (((bitField0_ & 0x00008000) != 0)) {
5713  size += com.google.protobuf.CodedOutputStream
5714  .computeEnumSize(60, clauseCleanupOrdering_);
5715  }
5716  {
5717  int dataSize = 0;
5718  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5719  dataSize += com.google.protobuf.CodedOutputStream
5720  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
5721  }
5722  size += dataSize;
5723  size += 2 * restartAlgorithms_.size();
5724  }
5725  if (((bitField0_ & 0x20000000) != 0)) {
5726  size += com.google.protobuf.CodedOutputStream
5727  .computeInt32Size(62, restartRunningWindowSize_);
5728  }
5729  if (((bitField0_ & 0x40000000) != 0)) {
5730  size += com.google.protobuf.CodedOutputStream
5731  .computeDoubleSize(63, restartDlAverageRatio_);
5732  }
5733  if (((bitField1_ & 0x00000001) != 0)) {
5734  size += com.google.protobuf.CodedOutputStream
5735  .computeBoolSize(64, useBlockingRestart_);
5736  }
5737  if (((bitField1_ & 0x00000002) != 0)) {
5738  size += com.google.protobuf.CodedOutputStream
5739  .computeInt32Size(65, blockingRestartWindowSize_);
5740  }
5741  if (((bitField1_ & 0x00000004) != 0)) {
5742  size += com.google.protobuf.CodedOutputStream
5743  .computeDoubleSize(66, blockingRestartMultiplier_);
5744  }
5745  if (((bitField1_ & 0x00000040) != 0)) {
5746  size += com.google.protobuf.CodedOutputStream
5747  .computeDoubleSize(67, maxDeterministicTime_);
5748  }
5749  if (((bitField1_ & 0x00000008) != 0)) {
5750  size += com.google.protobuf.CodedOutputStream
5751  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
5752  }
5753  if (((bitField1_ & 0x00000010) != 0)) {
5754  size += com.google.protobuf.CodedOutputStream
5755  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
5756  }
5757  if (((bitField0_ & 0x08000000) != 0)) {
5758  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
5759  }
5760  if (((bitField0_ & 0x80000000) != 0)) {
5761  size += com.google.protobuf.CodedOutputStream
5762  .computeDoubleSize(71, restartLbdAverageRatio_);
5763  }
5764  if (((bitField1_ & 0x00080000) != 0)) {
5765  size += com.google.protobuf.CodedOutputStream
5766  .computeBoolSize(72, presolveUseBva_);
5767  }
5768  if (((bitField1_ & 0x00100000) != 0)) {
5769  size += com.google.protobuf.CodedOutputStream
5770  .computeInt32Size(73, presolveBvaThreshold_);
5771  }
5772  if (((bitField1_ & 0x10000000) != 0)) {
5773  size += com.google.protobuf.CodedOutputStream
5774  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
5775  }
5776  if (((bitField0_ & 0x00000020) != 0)) {
5777  size += com.google.protobuf.CodedOutputStream
5778  .computeBoolSize(75, useErwaHeuristic_);
5779  }
5780  if (((bitField0_ & 0x00000040) != 0)) {
5781  size += com.google.protobuf.CodedOutputStream
5782  .computeDoubleSize(76, initialVariablesActivity_);
5783  }
5784  if (((bitField0_ & 0x00000080) != 0)) {
5785  size += com.google.protobuf.CodedOutputStream
5786  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
5787  }
5788  if (((bitField1_ & 0x20000000) != 0)) {
5789  size += com.google.protobuf.CodedOutputStream
5790  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
5791  }
5792  if (((bitField1_ & 0x40000000) != 0)) {
5793  size += com.google.protobuf.CodedOutputStream
5794  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
5795  }
5796  if (((bitField1_ & 0x80000000) != 0)) {
5797  size += com.google.protobuf.CodedOutputStream
5798  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
5799  }
5800  if (((bitField2_ & 0x00002000) != 0)) {
5801  size += com.google.protobuf.CodedOutputStream
5802  .computeEnumSize(82, searchBranching_);
5803  }
5804  if (((bitField2_ & 0x00080000) != 0)) {
5805  size += com.google.protobuf.CodedOutputStream
5806  .computeBoolSize(83, optimizeWithCore_);
5807  }
5808  if (((bitField1_ & 0x00800000) != 0)) {
5809  size += com.google.protobuf.CodedOutputStream
5810  .computeBoolSize(84, findMultipleCores_);
5811  }
5812  if (((bitField2_ & 0x00200000) != 0)) {
5813  size += com.google.protobuf.CodedOutputStream
5814  .computeBoolSize(85, optimizeWithMaxHs_);
5815  }
5816  if (((bitField2_ & 0x00400000) != 0)) {
5817  size += com.google.protobuf.CodedOutputStream
5818  .computeBoolSize(86, cpModelPresolve_);
5819  }
5820  if (((bitField2_ & 0x02000000) != 0)) {
5821  size += com.google.protobuf.CodedOutputStream
5822  .computeBoolSize(87, enumerateAllSolutions_);
5823  }
5824  if (((bitField1_ & 0x00040000) != 0)) {
5825  size += com.google.protobuf.CodedOutputStream
5826  .computeBoolSize(88, presolveBlockedClause_);
5827  }
5828  if (((bitField1_ & 0x01000000) != 0)) {
5829  size += com.google.protobuf.CodedOutputStream
5830  .computeBoolSize(89, coverOptimization_);
5831  }
5832  if (((bitField2_ & 0x00000001) != 0)) {
5833  size += com.google.protobuf.CodedOutputStream
5834  .computeInt32Size(90, linearizationLevel_);
5835  }
5836  if (((bitField2_ & 0x00000004) != 0)) {
5837  size += com.google.protobuf.CodedOutputStream
5838  .computeInt32Size(91, maxNumCuts_);
5839  }
5840  if (((bitField2_ & 0x00000008) != 0)) {
5841  size += com.google.protobuf.CodedOutputStream
5842  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
5843  }
5844  if (((bitField2_ & 0x01000000) != 0)) {
5845  size += com.google.protobuf.CodedOutputStream
5846  .computeBoolSize(93, cpModelUseSatPresolve_);
5847  }
5848  if (((bitField2_ & 0x00004000) != 0)) {
5849  size += com.google.protobuf.CodedOutputStream
5850  .computeBoolSize(94, exploitIntegerLpSolution_);
5851  }
5852  if (((bitField2_ & 0x10000000) != 0)) {
5853  size += com.google.protobuf.CodedOutputStream
5854  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
5855  }
5856  if (((bitField0_ & 0x00040000) != 0)) {
5857  size += com.google.protobuf.CodedOutputStream
5858  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
5859  }
5860  if (((bitField0_ & 0x00080000) != 0)) {
5861  size += com.google.protobuf.CodedOutputStream
5862  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
5863  }
5864  if (((bitField2_ & 0x20000000) != 0)) {
5865  size += com.google.protobuf.CodedOutputStream
5866  .computeBoolSize(98, stopAfterFirstSolution_);
5867  }
5868  if (((bitField2_ & 0x00100000) != 0)) {
5869  size += com.google.protobuf.CodedOutputStream
5870  .computeInt32Size(99, binarySearchNumConflicts_);
5871  }
5872  if (((bitField2_ & 0x40000000) != 0)) {
5873  size += com.google.protobuf.CodedOutputStream
5874  .computeInt32Size(100, numSearchWorkers_);
5875  }
5876  if (((bitField3_ & 0x00000008) != 0)) {
5877  size += com.google.protobuf.CodedOutputStream
5878  .computeBoolSize(101, useLnsOnly_);
5879  }
5880  if (((bitField3_ & 0x00000040) != 0)) {
5881  size += com.google.protobuf.CodedOutputStream
5882  .computeBoolSize(103, randomizeSearch_);
5883  }
5884  if (((bitField3_ & 0x00000080) != 0)) {
5885  size += com.google.protobuf.CodedOutputStream
5886  .computeInt64Size(104, searchRandomizationTolerance_);
5887  }
5888  if (((bitField3_ & 0x00000010) != 0)) {
5889  size += com.google.protobuf.CodedOutputStream
5890  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
5891  }
5892  if (((bitField2_ & 0x08000000) != 0)) {
5893  size += com.google.protobuf.CodedOutputStream
5894  .computeBoolSize(106, instantiateAllVariables_);
5895  }
5896  if (((bitField2_ & 0x00000002) != 0)) {
5897  size += com.google.protobuf.CodedOutputStream
5898  .computeInt32Size(107, booleanEncodingLevel_);
5899  }
5900  if (((bitField3_ & 0x00000100) != 0)) {
5901  size += com.google.protobuf.CodedOutputStream
5902  .computeBoolSize(108, useOptionalVariables_);
5903  }
5904  if (((bitField3_ & 0x00000200) != 0)) {
5905  size += com.google.protobuf.CodedOutputStream
5906  .computeBoolSize(109, useExactLpReason_);
5907  }
5908  if (((bitField2_ & 0x00800000) != 0)) {
5909  size += com.google.protobuf.CodedOutputStream
5910  .computeInt32Size(110, cpModelProbingLevel_);
5911  }
5912  if (((bitField2_ & 0x00000010) != 0)) {
5913  size += com.google.protobuf.CodedOutputStream
5914  .computeBoolSize(111, addKnapsackCuts_);
5915  }
5916  if (((bitField2_ & 0x00000200) != 0)) {
5917  size += com.google.protobuf.CodedOutputStream
5918  .computeBoolSize(112, addLpConstraintsLazily_);
5919  }
5920  if (((bitField3_ & 0x00000002) != 0)) {
5921  size += com.google.protobuf.CodedOutputStream
5922  .computeBoolSize(113, shareObjectiveBounds_);
5923  }
5924  if (((bitField3_ & 0x00000004) != 0)) {
5925  size += com.google.protobuf.CodedOutputStream
5926  .computeBoolSize(114, shareLevelZeroBounds_);
5927  }
5928  if (((bitField2_ & 0x00000400) != 0)) {
5929  size += com.google.protobuf.CodedOutputStream
5930  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
5931  }
5932  if (((bitField2_ & 0x00008000) != 0)) {
5933  size += com.google.protobuf.CodedOutputStream
5934  .computeBoolSize(116, exploitAllLpSolution_);
5935  }
5936  if (((bitField2_ & 0x00000020) != 0)) {
5937  size += com.google.protobuf.CodedOutputStream
5938  .computeBoolSize(117, addCgCuts_);
5939  }
5940  if (((bitField2_ & 0x00000080) != 0)) {
5941  size += com.google.protobuf.CodedOutputStream
5942  .computeBoolSize(118, useMirRounding_);
5943  }
5944  if (((bitField2_ & 0x00000100) != 0)) {
5945  size += com.google.protobuf.CodedOutputStream
5946  .computeInt32Size(119, maxIntegerRoundingScaling_);
5947  }
5948  if (((bitField2_ & 0x00000040) != 0)) {
5949  size += com.google.protobuf.CodedOutputStream
5950  .computeBoolSize(120, addMirCuts_);
5951  }
5952  if (((bitField2_ & 0x00000800) != 0)) {
5953  size += com.google.protobuf.CodedOutputStream
5954  .computeInt64Size(121, maxInactiveCount_);
5955  }
5956  if (((bitField2_ & 0x00001000) != 0)) {
5957  size += com.google.protobuf.CodedOutputStream
5958  .computeInt64Size(122, constraintRemovalBatchSize_);
5959  }
5960  if (((bitField2_ & 0x00040000) != 0)) {
5961  size += com.google.protobuf.CodedOutputStream
5962  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
5963  }
5964  if (((bitField3_ & 0x00000800) != 0)) {
5965  size += com.google.protobuf.CodedOutputStream
5966  .computeDoubleSize(124, mipMaxBound_);
5967  }
5968  if (((bitField3_ & 0x00001000) != 0)) {
5969  size += com.google.protobuf.CodedOutputStream
5970  .computeDoubleSize(125, mipVarScaling_);
5971  }
5972  if (((bitField3_ & 0x00002000) != 0)) {
5973  size += com.google.protobuf.CodedOutputStream
5974  .computeDoubleSize(126, mipWantedPrecision_);
5975  }
5976  if (((bitField3_ & 0x00004000) != 0)) {
5977  size += com.google.protobuf.CodedOutputStream
5978  .computeInt32Size(127, mipMaxActivityExponent_);
5979  }
5980  if (((bitField3_ & 0x00008000) != 0)) {
5981  size += com.google.protobuf.CodedOutputStream
5982  .computeDoubleSize(128, mipCheckPrecision_);
5983  }
5984  if (((bitField3_ & 0x00000020) != 0)) {
5985  size += com.google.protobuf.CodedOutputStream
5986  .computeBoolSize(129, useRinsLns_);
5987  }
5988  if (((bitField2_ & 0x00010000) != 0)) {
5989  size += com.google.protobuf.CodedOutputStream
5990  .computeBoolSize(130, exploitBestSolution_);
5991  }
5992  if (((bitField2_ & 0x00020000) != 0)) {
5993  size += com.google.protobuf.CodedOutputStream
5994  .computeBoolSize(131, exploitObjective_);
5995  }
5996  if (((bitField2_ & 0x04000000) != 0)) {
5997  size += com.google.protobuf.CodedOutputStream
5998  .computeBoolSize(132, fillTightenedDomainsInResponse_);
5999  }
6000  if (((bitField3_ & 0x00000400) != 0)) {
6001  size += com.google.protobuf.CodedOutputStream
6002  .computeBoolSize(133, useCombinedNoOverlap_);
6003  }
6004  if (((bitField3_ & 0x00000001) != 0)) {
6005  size += com.google.protobuf.CodedOutputStream
6006  .computeBoolSize(134, deterministicParallelSearch_);
6007  }
6008  if (((bitField3_ & 0x00010000) != 0)) {
6009  size += com.google.protobuf.CodedOutputStream
6010  .computeBoolSize(135, catchSigintSignal_);
6011  }
6012  if (((bitField2_ & 0x80000000) != 0)) {
6013  size += com.google.protobuf.CodedOutputStream
6014  .computeBoolSize(136, interleaveSearch_);
6015  }
6016  size += unknownFields.getSerializedSize();
6017  memoizedSize = size;
6018  return size;
6019  }
6020 
6021  @java.lang.Override
6022  public boolean equals(final java.lang.Object obj) {
6023  if (obj == this) {
6024  return true;
6025  }
6026  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
6027  return super.equals(obj);
6028  }
6030 
6031  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
6032  if (hasPreferredVariableOrder()) {
6033  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
6034  }
6035  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
6036  if (hasInitialPolarity()) {
6037  if (initialPolarity_ != other.initialPolarity_) return false;
6038  }
6039  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
6040  if (hasUsePhaseSaving()) {
6041  if (getUsePhaseSaving()
6042  != other.getUsePhaseSaving()) return false;
6043  }
6044  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
6045  if (hasRandomPolarityRatio()) {
6046  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
6047  != java.lang.Double.doubleToLongBits(
6048  other.getRandomPolarityRatio())) return false;
6049  }
6050  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
6051  if (hasRandomBranchesRatio()) {
6052  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
6053  != java.lang.Double.doubleToLongBits(
6054  other.getRandomBranchesRatio())) return false;
6055  }
6056  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
6057  if (hasUseErwaHeuristic()) {
6058  if (getUseErwaHeuristic()
6059  != other.getUseErwaHeuristic()) return false;
6060  }
6061  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
6063  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
6064  != java.lang.Double.doubleToLongBits(
6065  other.getInitialVariablesActivity())) return false;
6066  }
6067  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
6070  != other.getAlsoBumpVariablesInConflictReasons()) return false;
6071  }
6072  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
6073  if (hasMinimizationAlgorithm()) {
6074  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
6075  }
6076  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
6078  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
6079  }
6080  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
6083  != other.getSubsumptionDuringConflictAnalysis()) return false;
6084  }
6085  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
6086  if (hasClauseCleanupPeriod()) {
6088  != other.getClauseCleanupPeriod()) return false;
6089  }
6090  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
6091  if (hasClauseCleanupTarget()) {
6093  != other.getClauseCleanupTarget()) return false;
6094  }
6095  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
6097  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
6098  }
6099  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
6100  if (hasClauseCleanupLbdBound()) {
6102  != other.getClauseCleanupLbdBound()) return false;
6103  }
6104  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
6105  if (hasClauseCleanupOrdering()) {
6106  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
6107  }
6108  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
6109  if (hasPbCleanupIncrement()) {
6110  if (getPbCleanupIncrement()
6111  != other.getPbCleanupIncrement()) return false;
6112  }
6113  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
6114  if (hasPbCleanupRatio()) {
6115  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
6116  != java.lang.Double.doubleToLongBits(
6117  other.getPbCleanupRatio())) return false;
6118  }
6119  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
6122  != other.getMinimizeWithPropagationRestartPeriod()) return false;
6123  }
6124  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
6127  != other.getMinimizeWithPropagationNumDecisions()) return false;
6128  }
6129  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
6130  if (hasVariableActivityDecay()) {
6131  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
6132  != java.lang.Double.doubleToLongBits(
6133  other.getVariableActivityDecay())) return false;
6134  }
6135  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6137  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6138  != java.lang.Double.doubleToLongBits(
6139  other.getMaxVariableActivityValue())) return false;
6140  }
6141  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6142  if (hasGlucoseMaxDecay()) {
6143  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6144  != java.lang.Double.doubleToLongBits(
6145  other.getGlucoseMaxDecay())) return false;
6146  }
6147  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
6148  if (hasGlucoseDecayIncrement()) {
6149  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
6150  != java.lang.Double.doubleToLongBits(
6151  other.getGlucoseDecayIncrement())) return false;
6152  }
6153  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
6156  != other.getGlucoseDecayIncrementPeriod()) return false;
6157  }
6158  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
6159  if (hasClauseActivityDecay()) {
6160  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
6161  != java.lang.Double.doubleToLongBits(
6162  other.getClauseActivityDecay())) return false;
6163  }
6164  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
6165  if (hasMaxClauseActivityValue()) {
6166  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
6167  != java.lang.Double.doubleToLongBits(
6168  other.getMaxClauseActivityValue())) return false;
6169  }
6170  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
6171  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
6174  .equals(other.getDefaultRestartAlgorithms())) return false;
6175  }
6176  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
6177  if (hasRestartPeriod()) {
6178  if (getRestartPeriod()
6179  != other.getRestartPeriod()) return false;
6180  }
6181  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
6184  != other.getRestartRunningWindowSize()) return false;
6185  }
6186  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
6187  if (hasRestartDlAverageRatio()) {
6188  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
6189  != java.lang.Double.doubleToLongBits(
6190  other.getRestartDlAverageRatio())) return false;
6191  }
6192  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
6193  if (hasRestartLbdAverageRatio()) {
6194  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
6195  != java.lang.Double.doubleToLongBits(
6196  other.getRestartLbdAverageRatio())) return false;
6197  }
6198  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
6199  if (hasUseBlockingRestart()) {
6200  if (getUseBlockingRestart()
6201  != other.getUseBlockingRestart()) return false;
6202  }
6203  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
6206  != other.getBlockingRestartWindowSize()) return false;
6207  }
6208  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
6210  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
6211  != java.lang.Double.doubleToLongBits(
6212  other.getBlockingRestartMultiplier())) return false;
6213  }
6214  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
6217  != other.getNumConflictsBeforeStrategyChanges()) return false;
6218  }
6219  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
6221  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
6222  != java.lang.Double.doubleToLongBits(
6223  other.getStrategyChangeIncreaseRatio())) return false;
6224  }
6225  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
6226  if (hasMaxTimeInSeconds()) {
6227  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
6228  != java.lang.Double.doubleToLongBits(
6229  other.getMaxTimeInSeconds())) return false;
6230  }
6231  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
6232  if (hasMaxDeterministicTime()) {
6233  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
6234  != java.lang.Double.doubleToLongBits(
6235  other.getMaxDeterministicTime())) return false;
6236  }
6237  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
6238  if (hasMaxNumberOfConflicts()) {
6240  != other.getMaxNumberOfConflicts()) return false;
6241  }
6242  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
6243  if (hasMaxMemoryInMb()) {
6244  if (getMaxMemoryInMb()
6245  != other.getMaxMemoryInMb()) return false;
6246  }
6247  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
6250  != other.getTreatBinaryClausesSeparately()) return false;
6251  }
6252  if (hasRandomSeed() != other.hasRandomSeed()) return false;
6253  if (hasRandomSeed()) {
6254  if (getRandomSeed()
6255  != other.getRandomSeed()) return false;
6256  }
6257  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
6258  if (hasLogSearchProgress()) {
6259  if (getLogSearchProgress()
6260  != other.getLogSearchProgress()) return false;
6261  }
6262  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
6263  if (hasUsePbResolution()) {
6264  if (getUsePbResolution()
6265  != other.getUsePbResolution()) return false;
6266  }
6267  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
6270  != other.getMinimizeReductionDuringPbResolution()) return false;
6271  }
6272  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
6275  != other.getCountAssumptionLevelsInLbd()) return false;
6276  }
6277  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
6278  if (hasPresolveBveThreshold()) {
6280  != other.getPresolveBveThreshold()) return false;
6281  }
6282  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
6285  != other.getPresolveBveClauseWeight()) return false;
6286  }
6287  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
6289  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
6290  != java.lang.Double.doubleToLongBits(
6291  other.getPresolveProbingDeterministicTimeLimit())) return false;
6292  }
6293  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
6294  if (hasPresolveBlockedClause()) {
6296  != other.getPresolveBlockedClause()) return false;
6297  }
6298  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
6299  if (hasPresolveUseBva()) {
6300  if (getPresolveUseBva()
6301  != other.getPresolveUseBva()) return false;
6302  }
6303  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
6304  if (hasPresolveBvaThreshold()) {
6306  != other.getPresolveBvaThreshold()) return false;
6307  }
6308  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
6309  if (hasUseOptimizationHints()) {
6311  != other.getUseOptimizationHints()) return false;
6312  }
6313  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
6314  if (hasMinimizeCore()) {
6315  if (getMinimizeCore()
6316  != other.getMinimizeCore()) return false;
6317  }
6318  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
6319  if (hasFindMultipleCores()) {
6320  if (getFindMultipleCores()
6321  != other.getFindMultipleCores()) return false;
6322  }
6323  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
6324  if (hasCoverOptimization()) {
6325  if (getCoverOptimization()
6326  != other.getCoverOptimization()) return false;
6327  }
6328  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
6329  if (hasMaxSatAssumptionOrder()) {
6330  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
6331  }
6332  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
6335  != other.getMaxSatReverseAssumptionOrder()) return false;
6336  }
6337  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
6338  if (hasMaxSatStratification()) {
6339  if (maxSatStratification_ != other.maxSatStratification_) return false;
6340  }
6341  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
6344  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
6345  }
6346  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
6349  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
6350  }
6351  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6354  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6355  }
6356  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6359  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6360  }
6361  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
6362  if (hasLinearizationLevel()) {
6363  if (getLinearizationLevel()
6364  != other.getLinearizationLevel()) return false;
6365  }
6366  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
6367  if (hasBooleanEncodingLevel()) {
6369  != other.getBooleanEncodingLevel()) return false;
6370  }
6371  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
6372  if (hasMaxNumCuts()) {
6373  if (getMaxNumCuts()
6374  != other.getMaxNumCuts()) return false;
6375  }
6376  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
6377  if (hasOnlyAddCutsAtLevelZero()) {
6379  != other.getOnlyAddCutsAtLevelZero()) return false;
6380  }
6381  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
6382  if (hasAddKnapsackCuts()) {
6383  if (getAddKnapsackCuts()
6384  != other.getAddKnapsackCuts()) return false;
6385  }
6386  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
6387  if (hasAddCgCuts()) {
6388  if (getAddCgCuts()
6389  != other.getAddCgCuts()) return false;
6390  }
6391  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
6392  if (hasAddMirCuts()) {
6393  if (getAddMirCuts()
6394  != other.getAddMirCuts()) return false;
6395  }
6396  if (hasUseMirRounding() != other.hasUseMirRounding()) return false;
6397  if (hasUseMirRounding()) {
6398  if (getUseMirRounding()
6399  != other.getUseMirRounding()) return false;
6400  }
6401  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
6404  != other.getMaxIntegerRoundingScaling()) return false;
6405  }
6406  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
6407  if (hasAddLpConstraintsLazily()) {
6409  != other.getAddLpConstraintsLazily()) return false;
6410  }
6411  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
6413  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
6414  != java.lang.Double.doubleToLongBits(
6415  other.getMinOrthogonalityForLpConstraints())) return false;
6416  }
6417  if (hasMaxInactiveCount() != other.hasMaxInactiveCount()) return false;
6418  if (hasMaxInactiveCount()) {
6419  if (getMaxInactiveCount()
6420  != other.getMaxInactiveCount()) return false;
6421  }
6422  if (hasConstraintRemovalBatchSize() != other.hasConstraintRemovalBatchSize()) return false;
6425  != other.getConstraintRemovalBatchSize()) return false;
6426  }
6427  if (hasSearchBranching() != other.hasSearchBranching()) return false;
6428  if (hasSearchBranching()) {
6429  if (searchBranching_ != other.searchBranching_) return false;
6430  }
6431  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
6434  != other.getExploitIntegerLpSolution()) return false;
6435  }
6436  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
6437  if (hasExploitAllLpSolution()) {
6439  != other.getExploitAllLpSolution()) return false;
6440  }
6441  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
6442  if (hasExploitBestSolution()) {
6444  != other.getExploitBestSolution()) return false;
6445  }
6446  if (hasExploitObjective() != other.hasExploitObjective()) return false;
6447  if (hasExploitObjective()) {
6448  if (getExploitObjective()
6449  != other.getExploitObjective()) return false;
6450  }
6451  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
6454  != other.getPseudoCostReliabilityThreshold()) return false;
6455  }
6456  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
6457  if (hasOptimizeWithCore()) {
6458  if (getOptimizeWithCore()
6459  != other.getOptimizeWithCore()) return false;
6460  }
6461  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
6464  != other.getBinarySearchNumConflicts()) return false;
6465  }
6466  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
6467  if (hasOptimizeWithMaxHs()) {
6468  if (getOptimizeWithMaxHs()
6469  != other.getOptimizeWithMaxHs()) return false;
6470  }
6471  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
6472  if (hasCpModelPresolve()) {
6473  if (getCpModelPresolve()
6474  != other.getCpModelPresolve()) return false;
6475  }
6476  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
6477  if (hasCpModelProbingLevel()) {
6479  != other.getCpModelProbingLevel()) return false;
6480  }
6481  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
6482  if (hasCpModelUseSatPresolve()) {
6484  != other.getCpModelUseSatPresolve()) return false;
6485  }
6486  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
6487  if (hasEnumerateAllSolutions()) {
6489  != other.getEnumerateAllSolutions()) return false;
6490  }
6491  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
6494  != other.getFillTightenedDomainsInResponse()) return false;
6495  }
6496  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
6499  != other.getInstantiateAllVariables()) return false;
6500  }
6501  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
6504  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
6505  }
6506  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
6507  if (hasStopAfterFirstSolution()) {
6509  != other.getStopAfterFirstSolution()) return false;
6510  }
6511  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
6512  if (hasNumSearchWorkers()) {
6513  if (getNumSearchWorkers()
6514  != other.getNumSearchWorkers()) return false;
6515  }
6516  if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
6517  if (hasInterleaveSearch()) {
6518  if (getInterleaveSearch()
6519  != other.getInterleaveSearch()) return false;
6520  }
6521  if (hasDeterministicParallelSearch() != other.hasDeterministicParallelSearch()) return false;
6524  != other.getDeterministicParallelSearch()) return false;
6525  }
6526  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
6527  if (hasShareObjectiveBounds()) {
6529  != other.getShareObjectiveBounds()) return false;
6530  }
6531  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
6532  if (hasShareLevelZeroBounds()) {
6534  != other.getShareLevelZeroBounds()) return false;
6535  }
6536  if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
6537  if (hasUseLnsOnly()) {
6538  if (getUseLnsOnly()
6539  != other.getUseLnsOnly()) return false;
6540  }
6541  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
6544  != other.getLnsFocusOnDecisionVariables()) return false;
6545  }
6546  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
6547  if (hasUseRinsLns()) {
6548  if (getUseRinsLns()
6549  != other.getUseRinsLns()) return false;
6550  }
6551  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
6552  if (hasRandomizeSearch()) {
6553  if (getRandomizeSearch()
6554  != other.getRandomizeSearch()) return false;
6555  }
6556  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
6559  != other.getSearchRandomizationTolerance()) return false;
6560  }
6561  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
6562  if (hasUseOptionalVariables()) {
6564  != other.getUseOptionalVariables()) return false;
6565  }
6566  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
6567  if (hasUseExactLpReason()) {
6568  if (getUseExactLpReason()
6569  != other.getUseExactLpReason()) return false;
6570  }
6571  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
6572  if (hasUseCombinedNoOverlap()) {
6574  != other.getUseCombinedNoOverlap()) return false;
6575  }
6576  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
6577  if (hasMipMaxBound()) {
6578  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
6579  != java.lang.Double.doubleToLongBits(
6580  other.getMipMaxBound())) return false;
6581  }
6582  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
6583  if (hasMipVarScaling()) {
6584  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
6585  != java.lang.Double.doubleToLongBits(
6586  other.getMipVarScaling())) return false;
6587  }
6588  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
6589  if (hasMipWantedPrecision()) {
6590  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
6591  != java.lang.Double.doubleToLongBits(
6592  other.getMipWantedPrecision())) return false;
6593  }
6594  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
6595  if (hasMipMaxActivityExponent()) {
6597  != other.getMipMaxActivityExponent()) return false;
6598  }
6599  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
6600  if (hasMipCheckPrecision()) {
6601  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
6602  != java.lang.Double.doubleToLongBits(
6603  other.getMipCheckPrecision())) return false;
6604  }
6605  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
6606  if (hasCatchSigintSignal()) {
6607  if (getCatchSigintSignal()
6608  != other.getCatchSigintSignal()) return false;
6609  }
6610  if (!unknownFields.equals(other.unknownFields)) return false;
6611  return true;
6612  }
6613 
6614  @java.lang.Override
6615  public int hashCode() {
6616  if (memoizedHashCode != 0) {
6617  return memoizedHashCode;
6618  }
6619  int hash = 41;
6620  hash = (19 * hash) + getDescriptor().hashCode();
6621  if (hasPreferredVariableOrder()) {
6622  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
6623  hash = (53 * hash) + preferredVariableOrder_;
6624  }
6625  if (hasInitialPolarity()) {
6626  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
6627  hash = (53 * hash) + initialPolarity_;
6628  }
6629  if (hasUsePhaseSaving()) {
6630  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
6631  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6632  getUsePhaseSaving());
6633  }
6634  if (hasRandomPolarityRatio()) {
6635  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
6636  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6637  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
6638  }
6639  if (hasRandomBranchesRatio()) {
6640  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
6641  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6642  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
6643  }
6644  if (hasUseErwaHeuristic()) {
6645  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
6646  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6648  }
6650  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
6651  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6652  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
6653  }
6656  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6658  }
6659  if (hasMinimizationAlgorithm()) {
6660  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6661  hash = (53 * hash) + minimizationAlgorithm_;
6662  }
6664  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6665  hash = (53 * hash) + binaryMinimizationAlgorithm_;
6666  }
6669  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6671  }
6672  if (hasClauseCleanupPeriod()) {
6673  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
6674  hash = (53 * hash) + getClauseCleanupPeriod();
6675  }
6676  if (hasClauseCleanupTarget()) {
6677  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
6678  hash = (53 * hash) + getClauseCleanupTarget();
6679  }
6681  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
6682  hash = (53 * hash) + clauseCleanupProtection_;
6683  }
6684  if (hasClauseCleanupLbdBound()) {
6685  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
6686  hash = (53 * hash) + getClauseCleanupLbdBound();
6687  }
6688  if (hasClauseCleanupOrdering()) {
6689  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
6690  hash = (53 * hash) + clauseCleanupOrdering_;
6691  }
6692  if (hasPbCleanupIncrement()) {
6693  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
6694  hash = (53 * hash) + getPbCleanupIncrement();
6695  }
6696  if (hasPbCleanupRatio()) {
6697  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
6698  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6699  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
6700  }
6703  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
6704  }
6707  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
6708  }
6709  if (hasVariableActivityDecay()) {
6710  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
6711  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6712  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
6713  }
6715  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
6716  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6717  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
6718  }
6719  if (hasGlucoseMaxDecay()) {
6720  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
6721  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6722  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
6723  }
6724  if (hasGlucoseDecayIncrement()) {
6725  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
6726  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6727  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
6728  }
6730  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
6731  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
6732  }
6733  if (hasClauseActivityDecay()) {
6734  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
6735  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6736  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
6737  }
6738  if (hasMaxClauseActivityValue()) {
6739  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
6740  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6741  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
6742  }
6743  if (getRestartAlgorithmsCount() > 0) {
6744  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
6745  hash = (53 * hash) + restartAlgorithms_.hashCode();
6746  }
6748  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
6749  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
6750  }
6751  if (hasRestartPeriod()) {
6752  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
6753  hash = (53 * hash) + getRestartPeriod();
6754  }
6756  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
6757  hash = (53 * hash) + getRestartRunningWindowSize();
6758  }
6759  if (hasRestartDlAverageRatio()) {
6760  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
6761  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6762  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
6763  }
6764  if (hasRestartLbdAverageRatio()) {
6765  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
6766  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6767  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
6768  }
6769  if (hasUseBlockingRestart()) {
6770  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
6771  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6773  }
6775  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
6776  hash = (53 * hash) + getBlockingRestartWindowSize();
6777  }
6779  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
6780  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6781  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
6782  }
6785  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
6786  }
6788  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
6789  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6790  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
6791  }
6792  if (hasMaxTimeInSeconds()) {
6793  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
6794  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6795  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
6796  }
6797  if (hasMaxDeterministicTime()) {
6798  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
6799  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6800  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
6801  }
6802  if (hasMaxNumberOfConflicts()) {
6803  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
6804  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6806  }
6807  if (hasMaxMemoryInMb()) {
6808  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
6809  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6810  getMaxMemoryInMb());
6811  }
6813  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
6814  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6816  }
6817  if (hasRandomSeed()) {
6818  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
6819  hash = (53 * hash) + getRandomSeed();
6820  }
6821  if (hasLogSearchProgress()) {
6822  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
6823  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6825  }
6826  if (hasUsePbResolution()) {
6827  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
6828  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6829  getUsePbResolution());
6830  }
6833  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6835  }
6837  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
6838  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6840  }
6841  if (hasPresolveBveThreshold()) {
6842  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
6843  hash = (53 * hash) + getPresolveBveThreshold();
6844  }
6846  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
6847  hash = (53 * hash) + getPresolveBveClauseWeight();
6848  }
6851  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6852  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
6853  }
6854  if (hasPresolveBlockedClause()) {
6855  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
6856  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6858  }
6859  if (hasPresolveUseBva()) {
6860  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
6861  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6862  getPresolveUseBva());
6863  }
6864  if (hasPresolveBvaThreshold()) {
6865  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
6866  hash = (53 * hash) + getPresolveBvaThreshold();
6867  }
6868  if (hasUseOptimizationHints()) {
6869  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
6870  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6872  }
6873  if (hasMinimizeCore()) {
6874  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
6875  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6876  getMinimizeCore());
6877  }
6878  if (hasFindMultipleCores()) {
6879  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
6880  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6882  }
6883  if (hasCoverOptimization()) {
6884  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
6885  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6887  }
6888  if (hasMaxSatAssumptionOrder()) {
6889  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
6890  hash = (53 * hash) + maxSatAssumptionOrder_;
6891  }
6893  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
6894  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6896  }
6897  if (hasMaxSatStratification()) {
6898  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
6899  hash = (53 * hash) + maxSatStratification_;
6900  }
6903  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6905  }
6908  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6910  }
6913  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6915  }
6918  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6920  }
6921  if (hasLinearizationLevel()) {
6922  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
6923  hash = (53 * hash) + getLinearizationLevel();
6924  }
6925  if (hasBooleanEncodingLevel()) {
6926  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
6927  hash = (53 * hash) + getBooleanEncodingLevel();
6928  }
6929  if (hasMaxNumCuts()) {
6930  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
6931  hash = (53 * hash) + getMaxNumCuts();
6932  }
6933  if (hasOnlyAddCutsAtLevelZero()) {
6934  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
6935  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6937  }
6938  if (hasAddKnapsackCuts()) {
6939  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
6940  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6941  getAddKnapsackCuts());
6942  }
6943  if (hasAddCgCuts()) {
6944  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
6945  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6946  getAddCgCuts());
6947  }
6948  if (hasAddMirCuts()) {
6949  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
6950  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6951  getAddMirCuts());
6952  }
6953  if (hasUseMirRounding()) {
6954  hash = (37 * hash) + USE_MIR_ROUNDING_FIELD_NUMBER;
6955  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6956  getUseMirRounding());
6957  }
6959  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
6960  hash = (53 * hash) + getMaxIntegerRoundingScaling();
6961  }
6962  if (hasAddLpConstraintsLazily()) {
6963  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
6964  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6966  }
6969  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6970  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
6971  }
6972  if (hasMaxInactiveCount()) {
6973  hash = (37 * hash) + MAX_INACTIVE_COUNT_FIELD_NUMBER;
6974  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6976  }
6978  hash = (37 * hash) + CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER;
6979  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6981  }
6982  if (hasSearchBranching()) {
6983  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
6984  hash = (53 * hash) + searchBranching_;
6985  }
6987  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
6988  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6990  }
6991  if (hasExploitAllLpSolution()) {
6992  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
6993  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6995  }
6996  if (hasExploitBestSolution()) {
6997  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
6998  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7000  }
7001  if (hasExploitObjective()) {
7002  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
7003  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7005  }
7008  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7010  }
7011  if (hasOptimizeWithCore()) {
7012  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
7013  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7015  }
7017  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
7018  hash = (53 * hash) + getBinarySearchNumConflicts();
7019  }
7020  if (hasOptimizeWithMaxHs()) {
7021  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
7022  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7024  }
7025  if (hasCpModelPresolve()) {
7026  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
7027  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7028  getCpModelPresolve());
7029  }
7030  if (hasCpModelProbingLevel()) {
7031  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
7032  hash = (53 * hash) + getCpModelProbingLevel();
7033  }
7034  if (hasCpModelUseSatPresolve()) {
7035  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
7036  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7038  }
7039  if (hasEnumerateAllSolutions()) {
7040  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
7041  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7043  }
7046  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7048  }
7050  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
7051  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7053  }
7056  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7058  }
7059  if (hasStopAfterFirstSolution()) {
7060  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
7061  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7063  }
7064  if (hasNumSearchWorkers()) {
7065  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
7066  hash = (53 * hash) + getNumSearchWorkers();
7067  }
7068  if (hasInterleaveSearch()) {
7069  hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
7070  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7072  }
7074  hash = (37 * hash) + DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER;
7075  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7077  }
7078  if (hasShareObjectiveBounds()) {
7079  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
7080  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7082  }
7083  if (hasShareLevelZeroBounds()) {
7084  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
7085  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7087  }
7088  if (hasUseLnsOnly()) {
7089  hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
7090  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7091  getUseLnsOnly());
7092  }
7094  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
7095  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7097  }
7098  if (hasUseRinsLns()) {
7099  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
7100  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7101  getUseRinsLns());
7102  }
7103  if (hasRandomizeSearch()) {
7104  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
7105  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7106  getRandomizeSearch());
7107  }
7109  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
7110  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7112  }
7113  if (hasUseOptionalVariables()) {
7114  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
7115  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7117  }
7118  if (hasUseExactLpReason()) {
7119  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
7120  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7122  }
7123  if (hasUseCombinedNoOverlap()) {
7124  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
7125  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7127  }
7128  if (hasMipMaxBound()) {
7129  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
7130  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7131  java.lang.Double.doubleToLongBits(getMipMaxBound()));
7132  }
7133  if (hasMipVarScaling()) {
7134  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
7135  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7136  java.lang.Double.doubleToLongBits(getMipVarScaling()));
7137  }
7138  if (hasMipWantedPrecision()) {
7139  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
7140  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7141  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
7142  }
7143  if (hasMipMaxActivityExponent()) {
7144  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
7145  hash = (53 * hash) + getMipMaxActivityExponent();
7146  }
7147  if (hasMipCheckPrecision()) {
7148  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
7149  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7150  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
7151  }
7152  if (hasCatchSigintSignal()) {
7153  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
7154  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7156  }
7157  hash = (29 * hash) + unknownFields.hashCode();
7158  memoizedHashCode = hash;
7159  return hash;
7160  }
7161 
7163  java.nio.ByteBuffer data)
7164  throws com.google.protobuf.InvalidProtocolBufferException {
7165  return PARSER.parseFrom(data);
7166  }
7168  java.nio.ByteBuffer data,
7169  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7170  throws com.google.protobuf.InvalidProtocolBufferException {
7171  return PARSER.parseFrom(data, extensionRegistry);
7172  }
7174  com.google.protobuf.ByteString data)
7175  throws com.google.protobuf.InvalidProtocolBufferException {
7176  return PARSER.parseFrom(data);
7177  }
7179  com.google.protobuf.ByteString data,
7180  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7181  throws com.google.protobuf.InvalidProtocolBufferException {
7182  return PARSER.parseFrom(data, extensionRegistry);
7183  }
7184  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
7185  throws com.google.protobuf.InvalidProtocolBufferException {
7186  return PARSER.parseFrom(data);
7187  }
7189  byte[] data,
7190  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7191  throws com.google.protobuf.InvalidProtocolBufferException {
7192  return PARSER.parseFrom(data, extensionRegistry);
7193  }
7194  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
7195  throws java.io.IOException {
7196  return com.google.protobuf.GeneratedMessageV3
7197  .parseWithIOException(PARSER, input);
7198  }
7200  java.io.InputStream input,
7201  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7202  throws java.io.IOException {
7203  return com.google.protobuf.GeneratedMessageV3
7204  .parseWithIOException(PARSER, input, extensionRegistry);
7205  }
7206  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
7207  throws java.io.IOException {
7208  return com.google.protobuf.GeneratedMessageV3
7209  .parseDelimitedWithIOException(PARSER, input);
7210  }
7212  java.io.InputStream input,
7213  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7214  throws java.io.IOException {
7215  return com.google.protobuf.GeneratedMessageV3
7216  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7217  }
7219  com.google.protobuf.CodedInputStream input)
7220  throws java.io.IOException {
7221  return com.google.protobuf.GeneratedMessageV3
7222  .parseWithIOException(PARSER, input);
7223  }
7225  com.google.protobuf.CodedInputStream input,
7226  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7227  throws java.io.IOException {
7228  return com.google.protobuf.GeneratedMessageV3
7229  .parseWithIOException(PARSER, input, extensionRegistry);
7230  }
7231 
7232  @java.lang.Override
7233  public Builder newBuilderForType() { return newBuilder(); }
7234  public static Builder newBuilder() {
7235  return DEFAULT_INSTANCE.toBuilder();
7236  }
7237  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
7238  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7239  }
7240  @java.lang.Override
7241  public Builder toBuilder() {
7242  return this == DEFAULT_INSTANCE
7243  ? new Builder() : new Builder().mergeFrom(this);
7244  }
7245 
7246  @java.lang.Override
7248  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7249  Builder builder = new Builder(parent);
7250  return builder;
7251  }
7261  public static final class Builder extends
7262  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7263  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
7264  com.google.ortools.sat.SatParametersOrBuilder {
7265  public static final com.google.protobuf.Descriptors.Descriptor
7267  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7268  }
7269 
7270  @java.lang.Override
7271  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7273  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
7274  .ensureFieldAccessorsInitialized(
7276  }
7277 
7278  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
7279  private Builder() {
7280  maybeForceBuilderInitialization();
7281  }
7282 
7283  private Builder(
7284  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7285  super(parent);
7286  maybeForceBuilderInitialization();
7287  }
7288  private void maybeForceBuilderInitialization() {
7289  if (com.google.protobuf.GeneratedMessageV3
7290  .alwaysUseFieldBuilders) {
7291  }
7292  }
7293  @java.lang.Override
7294  public Builder clear() {
7295  super.clear();
7296  preferredVariableOrder_ = 0;
7297  bitField0_ = (bitField0_ & ~0x00000001);
7298  initialPolarity_ = 1;
7299  bitField0_ = (bitField0_ & ~0x00000002);
7300  usePhaseSaving_ = true;
7301  bitField0_ = (bitField0_ & ~0x00000004);
7302  randomPolarityRatio_ = 0D;
7303  bitField0_ = (bitField0_ & ~0x00000008);
7304  randomBranchesRatio_ = 0D;
7305  bitField0_ = (bitField0_ & ~0x00000010);
7306  useErwaHeuristic_ = false;
7307  bitField0_ = (bitField0_ & ~0x00000020);
7308  initialVariablesActivity_ = 0D;
7309  bitField0_ = (bitField0_ & ~0x00000040);
7310  alsoBumpVariablesInConflictReasons_ = false;
7311  bitField0_ = (bitField0_ & ~0x00000080);
7312  minimizationAlgorithm_ = 2;
7313  bitField0_ = (bitField0_ & ~0x00000100);
7314  binaryMinimizationAlgorithm_ = 1;
7315  bitField0_ = (bitField0_ & ~0x00000200);
7316  subsumptionDuringConflictAnalysis_ = true;
7317  bitField0_ = (bitField0_ & ~0x00000400);
7318  clauseCleanupPeriod_ = 10000;
7319  bitField0_ = (bitField0_ & ~0x00000800);
7320  clauseCleanupTarget_ = 10000;
7321  bitField0_ = (bitField0_ & ~0x00001000);
7322  clauseCleanupProtection_ = 0;
7323  bitField0_ = (bitField0_ & ~0x00002000);
7324  clauseCleanupLbdBound_ = 5;
7325  bitField0_ = (bitField0_ & ~0x00004000);
7326  clauseCleanupOrdering_ = 0;
7327  bitField0_ = (bitField0_ & ~0x00008000);
7328  pbCleanupIncrement_ = 200;
7329  bitField0_ = (bitField0_ & ~0x00010000);
7330  pbCleanupRatio_ = 0.5D;
7331  bitField0_ = (bitField0_ & ~0x00020000);
7332  minimizeWithPropagationRestartPeriod_ = 10;
7333  bitField0_ = (bitField0_ & ~0x00040000);
7334  minimizeWithPropagationNumDecisions_ = 1000;
7335  bitField0_ = (bitField0_ & ~0x00080000);
7336  variableActivityDecay_ = 0.8D;
7337  bitField0_ = (bitField0_ & ~0x00100000);
7338  maxVariableActivityValue_ = 1e+100D;
7339  bitField0_ = (bitField0_ & ~0x00200000);
7340  glucoseMaxDecay_ = 0.95D;
7341  bitField0_ = (bitField0_ & ~0x00400000);
7342  glucoseDecayIncrement_ = 0.01D;
7343  bitField0_ = (bitField0_ & ~0x00800000);
7344  glucoseDecayIncrementPeriod_ = 5000;
7345  bitField0_ = (bitField0_ & ~0x01000000);
7346  clauseActivityDecay_ = 0.999D;
7347  bitField0_ = (bitField0_ & ~0x02000000);
7348  maxClauseActivityValue_ = 1e+20D;
7349  bitField0_ = (bitField0_ & ~0x04000000);
7350  restartAlgorithms_ = java.util.Collections.emptyList();
7351  bitField0_ = (bitField0_ & ~0x08000000);
7352  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
7353  bitField0_ = (bitField0_ & ~0x10000000);
7354  restartPeriod_ = 50;
7355  bitField0_ = (bitField0_ & ~0x20000000);
7356  restartRunningWindowSize_ = 50;
7357  bitField0_ = (bitField0_ & ~0x40000000);
7358  restartDlAverageRatio_ = 1D;
7359  bitField0_ = (bitField0_ & ~0x80000000);
7360  restartLbdAverageRatio_ = 1D;
7361  bitField1_ = (bitField1_ & ~0x00000001);
7362  useBlockingRestart_ = false;
7363  bitField1_ = (bitField1_ & ~0x00000002);
7364  blockingRestartWindowSize_ = 5000;
7365  bitField1_ = (bitField1_ & ~0x00000004);
7366  blockingRestartMultiplier_ = 1.4D;
7367  bitField1_ = (bitField1_ & ~0x00000008);
7368  numConflictsBeforeStrategyChanges_ = 0;
7369  bitField1_ = (bitField1_ & ~0x00000010);
7370  strategyChangeIncreaseRatio_ = 0D;
7371  bitField1_ = (bitField1_ & ~0x00000020);
7372  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
7373  bitField1_ = (bitField1_ & ~0x00000040);
7374  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
7375  bitField1_ = (bitField1_ & ~0x00000080);
7376  maxNumberOfConflicts_ = 9223372036854775807L;
7377  bitField1_ = (bitField1_ & ~0x00000100);
7378  maxMemoryInMb_ = 10000L;
7379  bitField1_ = (bitField1_ & ~0x00000200);
7380  treatBinaryClausesSeparately_ = true;
7381  bitField1_ = (bitField1_ & ~0x00000400);
7382  randomSeed_ = 1;
7383  bitField1_ = (bitField1_ & ~0x00000800);
7384  logSearchProgress_ = false;
7385  bitField1_ = (bitField1_ & ~0x00001000);
7386  usePbResolution_ = false;
7387  bitField1_ = (bitField1_ & ~0x00002000);
7388  minimizeReductionDuringPbResolution_ = false;
7389  bitField1_ = (bitField1_ & ~0x00004000);
7390  countAssumptionLevelsInLbd_ = true;
7391  bitField1_ = (bitField1_ & ~0x00008000);
7392  presolveBveThreshold_ = 500;
7393  bitField1_ = (bitField1_ & ~0x00010000);
7394  presolveBveClauseWeight_ = 3;
7395  bitField1_ = (bitField1_ & ~0x00020000);
7396  presolveProbingDeterministicTimeLimit_ = 30D;
7397  bitField1_ = (bitField1_ & ~0x00040000);
7398  presolveBlockedClause_ = true;
7399  bitField1_ = (bitField1_ & ~0x00080000);
7400  presolveUseBva_ = true;
7401  bitField1_ = (bitField1_ & ~0x00100000);
7402  presolveBvaThreshold_ = 1;
7403  bitField1_ = (bitField1_ & ~0x00200000);
7404  useOptimizationHints_ = true;
7405  bitField1_ = (bitField1_ & ~0x00400000);
7406  minimizeCore_ = true;
7407  bitField1_ = (bitField1_ & ~0x00800000);
7408  findMultipleCores_ = true;
7409  bitField1_ = (bitField1_ & ~0x01000000);
7410  coverOptimization_ = true;
7411  bitField1_ = (bitField1_ & ~0x02000000);
7412  maxSatAssumptionOrder_ = 0;
7413  bitField1_ = (bitField1_ & ~0x04000000);
7414  maxSatReverseAssumptionOrder_ = false;
7415  bitField1_ = (bitField1_ & ~0x08000000);
7416  maxSatStratification_ = 1;
7417  bitField1_ = (bitField1_ & ~0x10000000);
7418  usePrecedencesInDisjunctiveConstraint_ = true;
7419  bitField1_ = (bitField1_ & ~0x20000000);
7420  useOverloadCheckerInCumulativeConstraint_ = false;
7421  bitField1_ = (bitField1_ & ~0x40000000);
7422  useTimetableEdgeFindingInCumulativeConstraint_ = false;
7423  bitField1_ = (bitField1_ & ~0x80000000);
7424  useDisjunctiveConstraintInCumulativeConstraint_ = true;
7425  bitField2_ = (bitField2_ & ~0x00000001);
7426  linearizationLevel_ = 1;
7427  bitField2_ = (bitField2_ & ~0x00000002);
7428  booleanEncodingLevel_ = 1;
7429  bitField2_ = (bitField2_ & ~0x00000004);
7430  maxNumCuts_ = 5000;
7431  bitField2_ = (bitField2_ & ~0x00000008);
7432  onlyAddCutsAtLevelZero_ = false;
7433  bitField2_ = (bitField2_ & ~0x00000010);
7434  addKnapsackCuts_ = false;
7435  bitField2_ = (bitField2_ & ~0x00000020);
7436  addCgCuts_ = false;
7437  bitField2_ = (bitField2_ & ~0x00000040);
7438  addMirCuts_ = true;
7439  bitField2_ = (bitField2_ & ~0x00000080);
7440  useMirRounding_ = true;
7441  bitField2_ = (bitField2_ & ~0x00000100);
7442  maxIntegerRoundingScaling_ = 600;
7443  bitField2_ = (bitField2_ & ~0x00000200);
7444  addLpConstraintsLazily_ = true;
7445  bitField2_ = (bitField2_ & ~0x00000400);
7446  minOrthogonalityForLpConstraints_ = 0D;
7447  bitField2_ = (bitField2_ & ~0x00000800);
7448  maxInactiveCount_ = 1000L;
7449  bitField2_ = (bitField2_ & ~0x00001000);
7450  constraintRemovalBatchSize_ = 100L;
7451  bitField2_ = (bitField2_ & ~0x00002000);
7452  searchBranching_ = 0;
7453  bitField2_ = (bitField2_ & ~0x00004000);
7454  exploitIntegerLpSolution_ = true;
7455  bitField2_ = (bitField2_ & ~0x00008000);
7456  exploitAllLpSolution_ = true;
7457  bitField2_ = (bitField2_ & ~0x00010000);
7458  exploitBestSolution_ = false;
7459  bitField2_ = (bitField2_ & ~0x00020000);
7460  exploitObjective_ = true;
7461  bitField2_ = (bitField2_ & ~0x00040000);
7462  pseudoCostReliabilityThreshold_ = 100L;
7463  bitField2_ = (bitField2_ & ~0x00080000);
7464  optimizeWithCore_ = false;
7465  bitField2_ = (bitField2_ & ~0x00100000);
7466  binarySearchNumConflicts_ = -1;
7467  bitField2_ = (bitField2_ & ~0x00200000);
7468  optimizeWithMaxHs_ = false;
7469  bitField2_ = (bitField2_ & ~0x00400000);
7470  cpModelPresolve_ = true;
7471  bitField2_ = (bitField2_ & ~0x00800000);
7472  cpModelProbingLevel_ = 2;
7473  bitField2_ = (bitField2_ & ~0x01000000);
7474  cpModelUseSatPresolve_ = true;
7475  bitField2_ = (bitField2_ & ~0x02000000);
7476  enumerateAllSolutions_ = false;
7477  bitField2_ = (bitField2_ & ~0x04000000);
7478  fillTightenedDomainsInResponse_ = false;
7479  bitField2_ = (bitField2_ & ~0x08000000);
7480  instantiateAllVariables_ = true;
7481  bitField2_ = (bitField2_ & ~0x10000000);
7482  autoDetectGreaterThanAtLeastOneOf_ = true;
7483  bitField2_ = (bitField2_ & ~0x20000000);
7484  stopAfterFirstSolution_ = false;
7485  bitField2_ = (bitField2_ & ~0x40000000);
7486  numSearchWorkers_ = 1;
7487  bitField2_ = (bitField2_ & ~0x80000000);
7488  interleaveSearch_ = false;
7489  bitField3_ = (bitField3_ & ~0x00000001);
7490  deterministicParallelSearch_ = false;
7491  bitField3_ = (bitField3_ & ~0x00000002);
7492  shareObjectiveBounds_ = true;
7493  bitField3_ = (bitField3_ & ~0x00000004);
7494  shareLevelZeroBounds_ = true;
7495  bitField3_ = (bitField3_ & ~0x00000008);
7496  useLnsOnly_ = false;
7497  bitField3_ = (bitField3_ & ~0x00000010);
7498  lnsFocusOnDecisionVariables_ = false;
7499  bitField3_ = (bitField3_ & ~0x00000020);
7500  useRinsLns_ = true;
7501  bitField3_ = (bitField3_ & ~0x00000040);
7502  randomizeSearch_ = false;
7503  bitField3_ = (bitField3_ & ~0x00000080);
7504  searchRandomizationTolerance_ = 0L;
7505  bitField3_ = (bitField3_ & ~0x00000100);
7506  useOptionalVariables_ = true;
7507  bitField3_ = (bitField3_ & ~0x00000200);
7508  useExactLpReason_ = true;
7509  bitField3_ = (bitField3_ & ~0x00000400);
7510  useCombinedNoOverlap_ = false;
7511  bitField3_ = (bitField3_ & ~0x00000800);
7512  mipMaxBound_ = 10000000D;
7513  bitField3_ = (bitField3_ & ~0x00001000);
7514  mipVarScaling_ = 1D;
7515  bitField3_ = (bitField3_ & ~0x00002000);
7516  mipWantedPrecision_ = 1e-06D;
7517  bitField3_ = (bitField3_ & ~0x00004000);
7518  mipMaxActivityExponent_ = 53;
7519  bitField3_ = (bitField3_ & ~0x00008000);
7520  mipCheckPrecision_ = 0.0001D;
7521  bitField3_ = (bitField3_ & ~0x00010000);
7522  catchSigintSignal_ = true;
7523  bitField3_ = (bitField3_ & ~0x00020000);
7524  return this;
7525  }
7526 
7527  @java.lang.Override
7528  public com.google.protobuf.Descriptors.Descriptor
7530  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7531  }
7532 
7533  @java.lang.Override
7536  }
7537 
7538  @java.lang.Override
7541  if (!result.isInitialized()) {
7542  throw newUninitializedMessageException(result);
7543  }
7544  return result;
7545  }
7546 
7547  @java.lang.Override
7550  int from_bitField0_ = bitField0_;
7551  int from_bitField1_ = bitField1_;
7552  int from_bitField2_ = bitField2_;
7553  int from_bitField3_ = bitField3_;
7554  int to_bitField0_ = 0;
7555  int to_bitField1_ = 0;
7556  int to_bitField2_ = 0;
7557  int to_bitField3_ = 0;
7558  if (((from_bitField0_ & 0x00000001) != 0)) {
7559  to_bitField0_ |= 0x00000001;
7560  }
7561  result.preferredVariableOrder_ = preferredVariableOrder_;
7562  if (((from_bitField0_ & 0x00000002) != 0)) {
7563  to_bitField0_ |= 0x00000002;
7564  }
7565  result.initialPolarity_ = initialPolarity_;
7566  if (((from_bitField0_ & 0x00000004) != 0)) {
7567  to_bitField0_ |= 0x00000004;
7568  }
7569  result.usePhaseSaving_ = usePhaseSaving_;
7570  if (((from_bitField0_ & 0x00000008) != 0)) {
7571  result.randomPolarityRatio_ = randomPolarityRatio_;
7572  to_bitField0_ |= 0x00000008;
7573  }
7574  if (((from_bitField0_ & 0x00000010) != 0)) {
7575  result.randomBranchesRatio_ = randomBranchesRatio_;
7576  to_bitField0_ |= 0x00000010;
7577  }
7578  if (((from_bitField0_ & 0x00000020) != 0)) {
7579  result.useErwaHeuristic_ = useErwaHeuristic_;
7580  to_bitField0_ |= 0x00000020;
7581  }
7582  if (((from_bitField0_ & 0x00000040) != 0)) {
7583  result.initialVariablesActivity_ = initialVariablesActivity_;
7584  to_bitField0_ |= 0x00000040;
7585  }
7586  if (((from_bitField0_ & 0x00000080) != 0)) {
7587  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
7588  to_bitField0_ |= 0x00000080;
7589  }
7590  if (((from_bitField0_ & 0x00000100) != 0)) {
7591  to_bitField0_ |= 0x00000100;
7592  }
7593  result.minimizationAlgorithm_ = minimizationAlgorithm_;
7594  if (((from_bitField0_ & 0x00000200) != 0)) {
7595  to_bitField0_ |= 0x00000200;
7596  }
7597  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
7598  if (((from_bitField0_ & 0x00000400) != 0)) {
7599  to_bitField0_ |= 0x00000400;
7600  }
7601  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
7602  if (((from_bitField0_ & 0x00000800) != 0)) {
7603  to_bitField0_ |= 0x00000800;
7604  }
7605  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
7606  if (((from_bitField0_ & 0x00001000) != 0)) {
7607  to_bitField0_ |= 0x00001000;
7608  }
7609  result.clauseCleanupTarget_ = clauseCleanupTarget_;
7610  if (((from_bitField0_ & 0x00002000) != 0)) {
7611  to_bitField0_ |= 0x00002000;
7612  }
7613  result.clauseCleanupProtection_ = clauseCleanupProtection_;
7614  if (((from_bitField0_ & 0x00004000) != 0)) {
7615  to_bitField0_ |= 0x00004000;
7616  }
7617  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
7618  if (((from_bitField0_ & 0x00008000) != 0)) {
7619  to_bitField0_ |= 0x00008000;
7620  }
7621  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
7622  if (((from_bitField0_ & 0x00010000) != 0)) {
7623  to_bitField0_ |= 0x00010000;
7624  }
7625  result.pbCleanupIncrement_ = pbCleanupIncrement_;
7626  if (((from_bitField0_ & 0x00020000) != 0)) {
7627  to_bitField0_ |= 0x00020000;
7628  }
7629  result.pbCleanupRatio_ = pbCleanupRatio_;
7630  if (((from_bitField0_ & 0x00040000) != 0)) {
7631  to_bitField0_ |= 0x00040000;
7632  }
7633  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
7634  if (((from_bitField0_ & 0x00080000) != 0)) {
7635  to_bitField0_ |= 0x00080000;
7636  }
7637  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
7638  if (((from_bitField0_ & 0x00100000) != 0)) {
7639  to_bitField0_ |= 0x00100000;
7640  }
7641  result.variableActivityDecay_ = variableActivityDecay_;
7642  if (((from_bitField0_ & 0x00200000) != 0)) {
7643  to_bitField0_ |= 0x00200000;
7644  }
7645  result.maxVariableActivityValue_ = maxVariableActivityValue_;
7646  if (((from_bitField0_ & 0x00400000) != 0)) {
7647  to_bitField0_ |= 0x00400000;
7648  }
7649  result.glucoseMaxDecay_ = glucoseMaxDecay_;
7650  if (((from_bitField0_ & 0x00800000) != 0)) {
7651  to_bitField0_ |= 0x00800000;
7652  }
7653  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
7654  if (((from_bitField0_ & 0x01000000) != 0)) {
7655  to_bitField0_ |= 0x01000000;
7656  }
7657  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
7658  if (((from_bitField0_ & 0x02000000) != 0)) {
7659  to_bitField0_ |= 0x02000000;
7660  }
7661  result.clauseActivityDecay_ = clauseActivityDecay_;
7662  if (((from_bitField0_ & 0x04000000) != 0)) {
7663  to_bitField0_ |= 0x04000000;
7664  }
7665  result.maxClauseActivityValue_ = maxClauseActivityValue_;
7666  if (((bitField0_ & 0x08000000) != 0)) {
7667  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
7668  bitField0_ = (bitField0_ & ~0x08000000);
7669  }
7670  result.restartAlgorithms_ = restartAlgorithms_;
7671  if (((from_bitField0_ & 0x10000000) != 0)) {
7672  to_bitField0_ |= 0x08000000;
7673  }
7674  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
7675  if (((from_bitField0_ & 0x20000000) != 0)) {
7676  to_bitField0_ |= 0x10000000;
7677  }
7678  result.restartPeriod_ = restartPeriod_;
7679  if (((from_bitField0_ & 0x40000000) != 0)) {
7680  to_bitField0_ |= 0x20000000;
7681  }
7682  result.restartRunningWindowSize_ = restartRunningWindowSize_;
7683  if (((from_bitField0_ & 0x80000000) != 0)) {
7684  to_bitField0_ |= 0x40000000;
7685  }
7686  result.restartDlAverageRatio_ = restartDlAverageRatio_;
7687  if (((from_bitField1_ & 0x00000001) != 0)) {
7688  to_bitField0_ |= 0x80000000;
7689  }
7690  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
7691  if (((from_bitField1_ & 0x00000002) != 0)) {
7692  result.useBlockingRestart_ = useBlockingRestart_;
7693  to_bitField1_ |= 0x00000001;
7694  }
7695  if (((from_bitField1_ & 0x00000004) != 0)) {
7696  to_bitField1_ |= 0x00000002;
7697  }
7698  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
7699  if (((from_bitField1_ & 0x00000008) != 0)) {
7700  to_bitField1_ |= 0x00000004;
7701  }
7702  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
7703  if (((from_bitField1_ & 0x00000010) != 0)) {
7704  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
7705  to_bitField1_ |= 0x00000008;
7706  }
7707  if (((from_bitField1_ & 0x00000020) != 0)) {
7708  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
7709  to_bitField1_ |= 0x00000010;
7710  }
7711  if (((from_bitField1_ & 0x00000040) != 0)) {
7712  to_bitField1_ |= 0x00000020;
7713  }
7714  result.maxTimeInSeconds_ = maxTimeInSeconds_;
7715  if (((from_bitField1_ & 0x00000080) != 0)) {
7716  to_bitField1_ |= 0x00000040;
7717  }
7718  result.maxDeterministicTime_ = maxDeterministicTime_;
7719  if (((from_bitField1_ & 0x00000100) != 0)) {
7720  to_bitField1_ |= 0x00000080;
7721  }
7722  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
7723  if (((from_bitField1_ & 0x00000200) != 0)) {
7724  to_bitField1_ |= 0x00000100;
7725  }
7726  result.maxMemoryInMb_ = maxMemoryInMb_;
7727  if (((from_bitField1_ & 0x00000400) != 0)) {
7728  to_bitField1_ |= 0x00000200;
7729  }
7730  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
7731  if (((from_bitField1_ & 0x00000800) != 0)) {
7732  to_bitField1_ |= 0x00000400;
7733  }
7734  result.randomSeed_ = randomSeed_;
7735  if (((from_bitField1_ & 0x00001000) != 0)) {
7736  result.logSearchProgress_ = logSearchProgress_;
7737  to_bitField1_ |= 0x00000800;
7738  }
7739  if (((from_bitField1_ & 0x00002000) != 0)) {
7740  result.usePbResolution_ = usePbResolution_;
7741  to_bitField1_ |= 0x00001000;
7742  }
7743  if (((from_bitField1_ & 0x00004000) != 0)) {
7744  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
7745  to_bitField1_ |= 0x00002000;
7746  }
7747  if (((from_bitField1_ & 0x00008000) != 0)) {
7748  to_bitField1_ |= 0x00004000;
7749  }
7750  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
7751  if (((from_bitField1_ & 0x00010000) != 0)) {
7752  to_bitField1_ |= 0x00008000;
7753  }
7754  result.presolveBveThreshold_ = presolveBveThreshold_;
7755  if (((from_bitField1_ & 0x00020000) != 0)) {
7756  to_bitField1_ |= 0x00010000;
7757  }
7758  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
7759  if (((from_bitField1_ & 0x00040000) != 0)) {
7760  to_bitField1_ |= 0x00020000;
7761  }
7762  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
7763  if (((from_bitField1_ & 0x00080000) != 0)) {
7764  to_bitField1_ |= 0x00040000;
7765  }
7766  result.presolveBlockedClause_ = presolveBlockedClause_;
7767  if (((from_bitField1_ & 0x00100000) != 0)) {
7768  to_bitField1_ |= 0x00080000;
7769  }
7770  result.presolveUseBva_ = presolveUseBva_;
7771  if (((from_bitField1_ & 0x00200000) != 0)) {
7772  to_bitField1_ |= 0x00100000;
7773  }
7774  result.presolveBvaThreshold_ = presolveBvaThreshold_;
7775  if (((from_bitField1_ & 0x00400000) != 0)) {
7776  to_bitField1_ |= 0x00200000;
7777  }
7778  result.useOptimizationHints_ = useOptimizationHints_;
7779  if (((from_bitField1_ & 0x00800000) != 0)) {
7780  to_bitField1_ |= 0x00400000;
7781  }
7782  result.minimizeCore_ = minimizeCore_;
7783  if (((from_bitField1_ & 0x01000000) != 0)) {
7784  to_bitField1_ |= 0x00800000;
7785  }
7786  result.findMultipleCores_ = findMultipleCores_;
7787  if (((from_bitField1_ & 0x02000000) != 0)) {
7788  to_bitField1_ |= 0x01000000;
7789  }
7790  result.coverOptimization_ = coverOptimization_;
7791  if (((from_bitField1_ & 0x04000000) != 0)) {
7792  to_bitField1_ |= 0x02000000;
7793  }
7794  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
7795  if (((from_bitField1_ & 0x08000000) != 0)) {
7796  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
7797  to_bitField1_ |= 0x04000000;
7798  }
7799  if (((from_bitField1_ & 0x10000000) != 0)) {
7800  to_bitField1_ |= 0x08000000;
7801  }
7802  result.maxSatStratification_ = maxSatStratification_;
7803  if (((from_bitField1_ & 0x20000000) != 0)) {
7804  to_bitField1_ |= 0x10000000;
7805  }
7806  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
7807  if (((from_bitField1_ & 0x40000000) != 0)) {
7808  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
7809  to_bitField1_ |= 0x20000000;
7810  }
7811  if (((from_bitField1_ & 0x80000000) != 0)) {
7812  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
7813  to_bitField1_ |= 0x40000000;
7814  }
7815  if (((from_bitField2_ & 0x00000001) != 0)) {
7816  to_bitField1_ |= 0x80000000;
7817  }
7818  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
7819  if (((from_bitField2_ & 0x00000002) != 0)) {
7820  to_bitField2_ |= 0x00000001;
7821  }
7822  result.linearizationLevel_ = linearizationLevel_;
7823  if (((from_bitField2_ & 0x00000004) != 0)) {
7824  to_bitField2_ |= 0x00000002;
7825  }
7826  result.booleanEncodingLevel_ = booleanEncodingLevel_;
7827  if (((from_bitField2_ & 0x00000008) != 0)) {
7828  to_bitField2_ |= 0x00000004;
7829  }
7830  result.maxNumCuts_ = maxNumCuts_;
7831  if (((from_bitField2_ & 0x00000010) != 0)) {
7832  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
7833  to_bitField2_ |= 0x00000008;
7834  }
7835  if (((from_bitField2_ & 0x00000020) != 0)) {
7836  result.addKnapsackCuts_ = addKnapsackCuts_;
7837  to_bitField2_ |= 0x00000010;
7838  }
7839  if (((from_bitField2_ & 0x00000040) != 0)) {
7840  result.addCgCuts_ = addCgCuts_;
7841  to_bitField2_ |= 0x00000020;
7842  }
7843  if (((from_bitField2_ & 0x00000080) != 0)) {
7844  to_bitField2_ |= 0x00000040;
7845  }
7846  result.addMirCuts_ = addMirCuts_;
7847  if (((from_bitField2_ & 0x00000100) != 0)) {
7848  to_bitField2_ |= 0x00000080;
7849  }
7850  result.useMirRounding_ = useMirRounding_;
7851  if (((from_bitField2_ & 0x00000200) != 0)) {
7852  to_bitField2_ |= 0x00000100;
7853  }
7854  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
7855  if (((from_bitField2_ & 0x00000400) != 0)) {
7856  to_bitField2_ |= 0x00000200;
7857  }
7858  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
7859  if (((from_bitField2_ & 0x00000800) != 0)) {
7860  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
7861  to_bitField2_ |= 0x00000400;
7862  }
7863  if (((from_bitField2_ & 0x00001000) != 0)) {
7864  to_bitField2_ |= 0x00000800;
7865  }
7866  result.maxInactiveCount_ = maxInactiveCount_;
7867  if (((from_bitField2_ & 0x00002000) != 0)) {
7868  to_bitField2_ |= 0x00001000;
7869  }
7870  result.constraintRemovalBatchSize_ = constraintRemovalBatchSize_;
7871  if (((from_bitField2_ & 0x00004000) != 0)) {
7872  to_bitField2_ |= 0x00002000;
7873  }
7874  result.searchBranching_ = searchBranching_;
7875  if (((from_bitField2_ & 0x00008000) != 0)) {
7876  to_bitField2_ |= 0x00004000;
7877  }
7878  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
7879  if (((from_bitField2_ & 0x00010000) != 0)) {
7880  to_bitField2_ |= 0x00008000;
7881  }
7882  result.exploitAllLpSolution_ = exploitAllLpSolution_;
7883  if (((from_bitField2_ & 0x00020000) != 0)) {
7884  result.exploitBestSolution_ = exploitBestSolution_;
7885  to_bitField2_ |= 0x00010000;
7886  }
7887  if (((from_bitField2_ & 0x00040000) != 0)) {
7888  to_bitField2_ |= 0x00020000;
7889  }
7890  result.exploitObjective_ = exploitObjective_;
7891  if (((from_bitField2_ & 0x00080000) != 0)) {
7892  to_bitField2_ |= 0x00040000;
7893  }
7894  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
7895  if (((from_bitField2_ & 0x00100000) != 0)) {
7896  result.optimizeWithCore_ = optimizeWithCore_;
7897  to_bitField2_ |= 0x00080000;
7898  }
7899  if (((from_bitField2_ & 0x00200000) != 0)) {
7900  to_bitField2_ |= 0x00100000;
7901  }
7902  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
7903  if (((from_bitField2_ & 0x00400000) != 0)) {
7904  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
7905  to_bitField2_ |= 0x00200000;
7906  }
7907  if (((from_bitField2_ & 0x00800000) != 0)) {
7908  to_bitField2_ |= 0x00400000;
7909  }
7910  result.cpModelPresolve_ = cpModelPresolve_;
7911  if (((from_bitField2_ & 0x01000000) != 0)) {
7912  to_bitField2_ |= 0x00800000;
7913  }
7914  result.cpModelProbingLevel_ = cpModelProbingLevel_;
7915  if (((from_bitField2_ & 0x02000000) != 0)) {
7916  to_bitField2_ |= 0x01000000;
7917  }
7918  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
7919  if (((from_bitField2_ & 0x04000000) != 0)) {
7920  result.enumerateAllSolutions_ = enumerateAllSolutions_;
7921  to_bitField2_ |= 0x02000000;
7922  }
7923  if (((from_bitField2_ & 0x08000000) != 0)) {
7924  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
7925  to_bitField2_ |= 0x04000000;
7926  }
7927  if (((from_bitField2_ & 0x10000000) != 0)) {
7928  to_bitField2_ |= 0x08000000;
7929  }
7930  result.instantiateAllVariables_ = instantiateAllVariables_;
7931  if (((from_bitField2_ & 0x20000000) != 0)) {
7932  to_bitField2_ |= 0x10000000;
7933  }
7934  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
7935  if (((from_bitField2_ & 0x40000000) != 0)) {
7936  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
7937  to_bitField2_ |= 0x20000000;
7938  }
7939  if (((from_bitField2_ & 0x80000000) != 0)) {
7940  to_bitField2_ |= 0x40000000;
7941  }
7942  result.numSearchWorkers_ = numSearchWorkers_;
7943  if (((from_bitField3_ & 0x00000001) != 0)) {
7944  result.interleaveSearch_ = interleaveSearch_;
7945  to_bitField2_ |= 0x80000000;
7946  }
7947  if (((from_bitField3_ & 0x00000002) != 0)) {
7948  result.deterministicParallelSearch_ = deterministicParallelSearch_;
7949  to_bitField3_ |= 0x00000001;
7950  }
7951  if (((from_bitField3_ & 0x00000004) != 0)) {
7952  to_bitField3_ |= 0x00000002;
7953  }
7954  result.shareObjectiveBounds_ = shareObjectiveBounds_;
7955  if (((from_bitField3_ & 0x00000008) != 0)) {
7956  to_bitField3_ |= 0x00000004;
7957  }
7958  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
7959  if (((from_bitField3_ & 0x00000010) != 0)) {
7960  result.useLnsOnly_ = useLnsOnly_;
7961  to_bitField3_ |= 0x00000008;
7962  }
7963  if (((from_bitField3_ & 0x00000020) != 0)) {
7964  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
7965  to_bitField3_ |= 0x00000010;
7966  }
7967  if (((from_bitField3_ & 0x00000040) != 0)) {
7968  to_bitField3_ |= 0x00000020;
7969  }
7970  result.useRinsLns_ = useRinsLns_;
7971  if (((from_bitField3_ & 0x00000080) != 0)) {
7972  result.randomizeSearch_ = randomizeSearch_;
7973  to_bitField3_ |= 0x00000040;
7974  }
7975  if (((from_bitField3_ & 0x00000100) != 0)) {
7976  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
7977  to_bitField3_ |= 0x00000080;
7978  }
7979  if (((from_bitField3_ & 0x00000200) != 0)) {
7980  to_bitField3_ |= 0x00000100;
7981  }
7982  result.useOptionalVariables_ = useOptionalVariables_;
7983  if (((from_bitField3_ & 0x00000400) != 0)) {
7984  to_bitField3_ |= 0x00000200;
7985  }
7986  result.useExactLpReason_ = useExactLpReason_;
7987  if (((from_bitField3_ & 0x00000800) != 0)) {
7988  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
7989  to_bitField3_ |= 0x00000400;
7990  }
7991  if (((from_bitField3_ & 0x00001000) != 0)) {
7992  to_bitField3_ |= 0x00000800;
7993  }
7994  result.mipMaxBound_ = mipMaxBound_;
7995  if (((from_bitField3_ & 0x00002000) != 0)) {
7996  to_bitField3_ |= 0x00001000;
7997  }
7998  result.mipVarScaling_ = mipVarScaling_;
7999  if (((from_bitField3_ & 0x00004000) != 0)) {
8000  to_bitField3_ |= 0x00002000;
8001  }
8002  result.mipWantedPrecision_ = mipWantedPrecision_;
8003  if (((from_bitField3_ & 0x00008000) != 0)) {
8004  to_bitField3_ |= 0x00004000;
8005  }
8006  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
8007  if (((from_bitField3_ & 0x00010000) != 0)) {
8008  to_bitField3_ |= 0x00008000;
8009  }
8010  result.mipCheckPrecision_ = mipCheckPrecision_;
8011  if (((from_bitField3_ & 0x00020000) != 0)) {
8012  to_bitField3_ |= 0x00010000;
8013  }
8014  result.catchSigintSignal_ = catchSigintSignal_;
8015  result.bitField0_ = to_bitField0_;
8016  result.bitField1_ = to_bitField1_;
8017  result.bitField2_ = to_bitField2_;
8018  result.bitField3_ = to_bitField3_;
8019  onBuilt();
8020  return result;
8021  }
8022 
8023  @java.lang.Override
8024  public Builder clone() {
8025  return super.clone();
8026  }
8027  @java.lang.Override
8029  com.google.protobuf.Descriptors.FieldDescriptor field,
8030  java.lang.Object value) {
8031  return super.setField(field, value);
8032  }
8033  @java.lang.Override
8035  com.google.protobuf.Descriptors.FieldDescriptor field) {
8036  return super.clearField(field);
8037  }
8038  @java.lang.Override
8040  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
8041  return super.clearOneof(oneof);
8042  }
8043  @java.lang.Override
8045  com.google.protobuf.Descriptors.FieldDescriptor field,
8046  int index, java.lang.Object value) {
8047  return super.setRepeatedField(field, index, value);
8048  }
8049  @java.lang.Override
8051  com.google.protobuf.Descriptors.FieldDescriptor field,
8052  java.lang.Object value) {
8053  return super.addRepeatedField(field, value);
8054  }
8055  @java.lang.Override
8056  public Builder mergeFrom(com.google.protobuf.Message other) {
8057  if (other instanceof com.google.ortools.sat.SatParameters) {
8058  return mergeFrom((com.google.ortools.sat.SatParameters)other);
8059  } else {
8060  super.mergeFrom(other);
8061  return this;
8062  }
8063  }
8064 
8066  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
8067  if (other.hasPreferredVariableOrder()) {
8068  setPreferredVariableOrder(other.getPreferredVariableOrder());
8069  }
8070  if (other.hasInitialPolarity()) {
8071  setInitialPolarity(other.getInitialPolarity());
8072  }
8073  if (other.hasUsePhaseSaving()) {
8074  setUsePhaseSaving(other.getUsePhaseSaving());
8075  }
8076  if (other.hasRandomPolarityRatio()) {
8077  setRandomPolarityRatio(other.getRandomPolarityRatio());
8078  }
8079  if (other.hasRandomBranchesRatio()) {
8080  setRandomBranchesRatio(other.getRandomBranchesRatio());
8081  }
8082  if (other.hasUseErwaHeuristic()) {
8083  setUseErwaHeuristic(other.getUseErwaHeuristic());
8084  }
8085  if (other.hasInitialVariablesActivity()) {
8086  setInitialVariablesActivity(other.getInitialVariablesActivity());
8087  }
8088  if (other.hasAlsoBumpVariablesInConflictReasons()) {
8089  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
8090  }
8091  if (other.hasMinimizationAlgorithm()) {
8092  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
8093  }
8094  if (other.hasBinaryMinimizationAlgorithm()) {
8095  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
8096  }
8097  if (other.hasSubsumptionDuringConflictAnalysis()) {
8098  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
8099  }
8100  if (other.hasClauseCleanupPeriod()) {
8101  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
8102  }
8103  if (other.hasClauseCleanupTarget()) {
8104  setClauseCleanupTarget(other.getClauseCleanupTarget());
8105  }
8106  if (other.hasClauseCleanupProtection()) {
8107  setClauseCleanupProtection(other.getClauseCleanupProtection());
8108  }
8109  if (other.hasClauseCleanupLbdBound()) {
8110  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
8111  }
8112  if (other.hasClauseCleanupOrdering()) {
8113  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
8114  }
8115  if (other.hasPbCleanupIncrement()) {
8116  setPbCleanupIncrement(other.getPbCleanupIncrement());
8117  }
8118  if (other.hasPbCleanupRatio()) {
8119  setPbCleanupRatio(other.getPbCleanupRatio());
8120  }
8121  if (other.hasMinimizeWithPropagationRestartPeriod()) {
8122  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
8123  }
8124  if (other.hasMinimizeWithPropagationNumDecisions()) {
8125  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
8126  }
8127  if (other.hasVariableActivityDecay()) {
8128  setVariableActivityDecay(other.getVariableActivityDecay());
8129  }
8130  if (other.hasMaxVariableActivityValue()) {
8131  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
8132  }
8133  if (other.hasGlucoseMaxDecay()) {
8134  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
8135  }
8136  if (other.hasGlucoseDecayIncrement()) {
8137  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
8138  }
8139  if (other.hasGlucoseDecayIncrementPeriod()) {
8140  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
8141  }
8142  if (other.hasClauseActivityDecay()) {
8143  setClauseActivityDecay(other.getClauseActivityDecay());
8144  }
8145  if (other.hasMaxClauseActivityValue()) {
8146  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
8147  }
8148  if (!other.restartAlgorithms_.isEmpty()) {
8149  if (restartAlgorithms_.isEmpty()) {
8150  restartAlgorithms_ = other.restartAlgorithms_;
8151  bitField0_ = (bitField0_ & ~0x08000000);
8152  } else {
8153  ensureRestartAlgorithmsIsMutable();
8154  restartAlgorithms_.addAll(other.restartAlgorithms_);
8155  }
8156  onChanged();
8157  }
8158  if (other.hasDefaultRestartAlgorithms()) {
8159  bitField0_ |= 0x10000000;
8160  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
8161  onChanged();
8162  }
8163  if (other.hasRestartPeriod()) {
8164  setRestartPeriod(other.getRestartPeriod());
8165  }
8166  if (other.hasRestartRunningWindowSize()) {
8167  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
8168  }
8169  if (other.hasRestartDlAverageRatio()) {
8170  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
8171  }
8172  if (other.hasRestartLbdAverageRatio()) {
8173  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
8174  }
8175  if (other.hasUseBlockingRestart()) {
8176  setUseBlockingRestart(other.getUseBlockingRestart());
8177  }
8178  if (other.hasBlockingRestartWindowSize()) {
8179  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
8180  }
8181  if (other.hasBlockingRestartMultiplier()) {
8182  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
8183  }
8184  if (other.hasNumConflictsBeforeStrategyChanges()) {
8185  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
8186  }
8187  if (other.hasStrategyChangeIncreaseRatio()) {
8188  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
8189  }
8190  if (other.hasMaxTimeInSeconds()) {
8191  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
8192  }
8193  if (other.hasMaxDeterministicTime()) {
8194  setMaxDeterministicTime(other.getMaxDeterministicTime());
8195  }
8196  if (other.hasMaxNumberOfConflicts()) {
8197  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
8198  }
8199  if (other.hasMaxMemoryInMb()) {
8200  setMaxMemoryInMb(other.getMaxMemoryInMb());
8201  }
8202  if (other.hasTreatBinaryClausesSeparately()) {
8203  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
8204  }
8205  if (other.hasRandomSeed()) {
8206  setRandomSeed(other.getRandomSeed());
8207  }
8208  if (other.hasLogSearchProgress()) {
8209  setLogSearchProgress(other.getLogSearchProgress());
8210  }
8211  if (other.hasUsePbResolution()) {
8212  setUsePbResolution(other.getUsePbResolution());
8213  }
8214  if (other.hasMinimizeReductionDuringPbResolution()) {
8215  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
8216  }
8217  if (other.hasCountAssumptionLevelsInLbd()) {
8218  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
8219  }
8220  if (other.hasPresolveBveThreshold()) {
8221  setPresolveBveThreshold(other.getPresolveBveThreshold());
8222  }
8223  if (other.hasPresolveBveClauseWeight()) {
8224  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
8225  }
8226  if (other.hasPresolveProbingDeterministicTimeLimit()) {
8227  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
8228  }
8229  if (other.hasPresolveBlockedClause()) {
8230  setPresolveBlockedClause(other.getPresolveBlockedClause());
8231  }
8232  if (other.hasPresolveUseBva()) {
8233  setPresolveUseBva(other.getPresolveUseBva());
8234  }
8235  if (other.hasPresolveBvaThreshold()) {
8236  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
8237  }
8238  if (other.hasUseOptimizationHints()) {
8239  setUseOptimizationHints(other.getUseOptimizationHints());
8240  }
8241  if (other.hasMinimizeCore()) {
8242  setMinimizeCore(other.getMinimizeCore());
8243  }
8244  if (other.hasFindMultipleCores()) {
8245  setFindMultipleCores(other.getFindMultipleCores());
8246  }
8247  if (other.hasCoverOptimization()) {
8248  setCoverOptimization(other.getCoverOptimization());
8249  }
8250  if (other.hasMaxSatAssumptionOrder()) {
8251  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
8252  }
8253  if (other.hasMaxSatReverseAssumptionOrder()) {
8254  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
8255  }
8256  if (other.hasMaxSatStratification()) {
8257  setMaxSatStratification(other.getMaxSatStratification());
8258  }
8259  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
8260  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
8261  }
8262  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
8263  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
8264  }
8265  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
8266  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
8267  }
8268  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
8269  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
8270  }
8271  if (other.hasLinearizationLevel()) {
8272  setLinearizationLevel(other.getLinearizationLevel());
8273  }
8274  if (other.hasBooleanEncodingLevel()) {
8275  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
8276  }
8277  if (other.hasMaxNumCuts()) {
8278  setMaxNumCuts(other.getMaxNumCuts());
8279  }
8280  if (other.hasOnlyAddCutsAtLevelZero()) {
8281  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
8282  }
8283  if (other.hasAddKnapsackCuts()) {
8284  setAddKnapsackCuts(other.getAddKnapsackCuts());
8285  }
8286  if (other.hasAddCgCuts()) {
8287  setAddCgCuts(other.getAddCgCuts());
8288  }
8289  if (other.hasAddMirCuts()) {
8290  setAddMirCuts(other.getAddMirCuts());
8291  }
8292  if (other.hasUseMirRounding()) {
8293  setUseMirRounding(other.getUseMirRounding());
8294  }
8295  if (other.hasMaxIntegerRoundingScaling()) {
8296  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
8297  }
8298  if (other.hasAddLpConstraintsLazily()) {
8299  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
8300  }
8301  if (other.hasMinOrthogonalityForLpConstraints()) {
8302  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
8303  }
8304  if (other.hasMaxInactiveCount()) {
8305  setMaxInactiveCount(other.getMaxInactiveCount());
8306  }
8307  if (other.hasConstraintRemovalBatchSize()) {
8308  setConstraintRemovalBatchSize(other.getConstraintRemovalBatchSize());
8309  }
8310  if (other.hasSearchBranching()) {
8311  setSearchBranching(other.getSearchBranching());
8312  }
8313  if (other.hasExploitIntegerLpSolution()) {
8314  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
8315  }
8316  if (other.hasExploitAllLpSolution()) {
8317  setExploitAllLpSolution(other.getExploitAllLpSolution());
8318  }
8319  if (other.hasExploitBestSolution()) {
8320  setExploitBestSolution(other.getExploitBestSolution());
8321  }
8322  if (other.hasExploitObjective()) {
8323  setExploitObjective(other.getExploitObjective());
8324  }
8325  if (other.hasPseudoCostReliabilityThreshold()) {
8326  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
8327  }
8328  if (other.hasOptimizeWithCore()) {
8329  setOptimizeWithCore(other.getOptimizeWithCore());
8330  }
8331  if (other.hasBinarySearchNumConflicts()) {
8332  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
8333  }
8334  if (other.hasOptimizeWithMaxHs()) {
8335  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
8336  }
8337  if (other.hasCpModelPresolve()) {
8338  setCpModelPresolve(other.getCpModelPresolve());
8339  }
8340  if (other.hasCpModelProbingLevel()) {
8341  setCpModelProbingLevel(other.getCpModelProbingLevel());
8342  }
8343  if (other.hasCpModelUseSatPresolve()) {
8344  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
8345  }
8346  if (other.hasEnumerateAllSolutions()) {
8347  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
8348  }
8349  if (other.hasFillTightenedDomainsInResponse()) {
8350  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
8351  }
8352  if (other.hasInstantiateAllVariables()) {
8353  setInstantiateAllVariables(other.getInstantiateAllVariables());
8354  }
8355  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
8356  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
8357  }
8358  if (other.hasStopAfterFirstSolution()) {
8359  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
8360  }
8361  if (other.hasNumSearchWorkers()) {
8362  setNumSearchWorkers(other.getNumSearchWorkers());
8363  }
8364  if (other.hasInterleaveSearch()) {
8365  setInterleaveSearch(other.getInterleaveSearch());
8366  }
8367  if (other.hasDeterministicParallelSearch()) {
8368  setDeterministicParallelSearch(other.getDeterministicParallelSearch());
8369  }
8370  if (other.hasShareObjectiveBounds()) {
8371  setShareObjectiveBounds(other.getShareObjectiveBounds());
8372  }
8373  if (other.hasShareLevelZeroBounds()) {
8374  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
8375  }
8376  if (other.hasUseLnsOnly()) {
8377  setUseLnsOnly(other.getUseLnsOnly());
8378  }
8379  if (other.hasLnsFocusOnDecisionVariables()) {
8380  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
8381  }
8382  if (other.hasUseRinsLns()) {
8383  setUseRinsLns(other.getUseRinsLns());
8384  }
8385  if (other.hasRandomizeSearch()) {
8386  setRandomizeSearch(other.getRandomizeSearch());
8387  }
8388  if (other.hasSearchRandomizationTolerance()) {
8389  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
8390  }
8391  if (other.hasUseOptionalVariables()) {
8392  setUseOptionalVariables(other.getUseOptionalVariables());
8393  }
8394  if (other.hasUseExactLpReason()) {
8395  setUseExactLpReason(other.getUseExactLpReason());
8396  }
8397  if (other.hasUseCombinedNoOverlap()) {
8398  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
8399  }
8400  if (other.hasMipMaxBound()) {
8401  setMipMaxBound(other.getMipMaxBound());
8402  }
8403  if (other.hasMipVarScaling()) {
8404  setMipVarScaling(other.getMipVarScaling());
8405  }
8406  if (other.hasMipWantedPrecision()) {
8407  setMipWantedPrecision(other.getMipWantedPrecision());
8408  }
8409  if (other.hasMipMaxActivityExponent()) {
8410  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
8411  }
8412  if (other.hasMipCheckPrecision()) {
8413  setMipCheckPrecision(other.getMipCheckPrecision());
8414  }
8415  if (other.hasCatchSigintSignal()) {
8416  setCatchSigintSignal(other.getCatchSigintSignal());
8417  }
8418  this.mergeUnknownFields(other.unknownFields);
8419  onChanged();
8420  return this;
8421  }
8422 
8423  @java.lang.Override
8424  public final boolean isInitialized() {
8425  return true;
8426  }
8427 
8428  @java.lang.Override
8430  com.google.protobuf.CodedInputStream input,
8431  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8432  throws java.io.IOException {
8433  com.google.ortools.sat.SatParameters parsedMessage = null;
8434  try {
8435  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8436  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8437  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
8438  throw e.unwrapIOException();
8439  } finally {
8440  if (parsedMessage != null) {
8441  mergeFrom(parsedMessage);
8442  }
8443  }
8444  return this;
8445  }
8446  private int bitField0_;
8447  private int bitField1_;
8448  private int bitField2_;
8449  private int bitField3_;
8450 
8451  private int preferredVariableOrder_ = 0;
8455  public boolean hasPreferredVariableOrder() {
8456  return ((bitField0_ & 0x00000001) != 0);
8457  }
8462  @SuppressWarnings("deprecation")
8464  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
8465  }
8470  if (value == null) {
8471  throw new NullPointerException();
8472  }
8473  bitField0_ |= 0x00000001;
8474  preferredVariableOrder_ = value.getNumber();
8475  onChanged();
8476  return this;
8477  }
8482  bitField0_ = (bitField0_ & ~0x00000001);
8483  preferredVariableOrder_ = 0;
8484  onChanged();
8485  return this;
8486  }
8487 
8488  private int initialPolarity_ = 1;
8492  public boolean hasInitialPolarity() {
8493  return ((bitField0_ & 0x00000002) != 0);
8494  }
8499  @SuppressWarnings("deprecation")
8501  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
8502  }
8507  if (value == null) {
8508  throw new NullPointerException();
8509  }
8510  bitField0_ |= 0x00000002;
8511  initialPolarity_ = value.getNumber();
8512  onChanged();
8513  return this;
8514  }
8519  bitField0_ = (bitField0_ & ~0x00000002);
8520  initialPolarity_ = 1;
8521  onChanged();
8522  return this;
8523  }
8524 
8525  private boolean usePhaseSaving_ = true;
8539  public boolean hasUsePhaseSaving() {
8540  return ((bitField0_ & 0x00000004) != 0);
8541  }
8555  public boolean getUsePhaseSaving() {
8556  return usePhaseSaving_;
8557  }
8571  public Builder setUsePhaseSaving(boolean value) {
8572  bitField0_ |= 0x00000004;
8573  usePhaseSaving_ = value;
8574  onChanged();
8575  return this;
8576  }
8591  bitField0_ = (bitField0_ & ~0x00000004);
8592  usePhaseSaving_ = true;
8593  onChanged();
8594  return this;
8595  }
8596 
8597  private double randomPolarityRatio_ ;
8609  public boolean hasRandomPolarityRatio() {
8610  return ((bitField0_ & 0x00000008) != 0);
8611  }
8623  public double getRandomPolarityRatio() {
8624  return randomPolarityRatio_;
8625  }
8637  public Builder setRandomPolarityRatio(double value) {
8638  bitField0_ |= 0x00000008;
8639  randomPolarityRatio_ = value;
8640  onChanged();
8641  return this;
8642  }
8655  bitField0_ = (bitField0_ & ~0x00000008);
8656  randomPolarityRatio_ = 0D;
8657  onChanged();
8658  return this;
8659  }
8660 
8661  private double randomBranchesRatio_ ;
8671  public boolean hasRandomBranchesRatio() {
8672  return ((bitField0_ & 0x00000010) != 0);
8673  }
8683  public double getRandomBranchesRatio() {
8684  return randomBranchesRatio_;
8685  }
8695  public Builder setRandomBranchesRatio(double value) {
8696  bitField0_ |= 0x00000010;
8697  randomBranchesRatio_ = value;
8698  onChanged();
8699  return this;
8700  }
8711  bitField0_ = (bitField0_ & ~0x00000010);
8712  randomBranchesRatio_ = 0D;
8713  onChanged();
8714  return this;
8715  }
8716 
8717  private boolean useErwaHeuristic_ ;
8727  public boolean hasUseErwaHeuristic() {
8728  return ((bitField0_ & 0x00000020) != 0);
8729  }
8739  public boolean getUseErwaHeuristic() {
8740  return useErwaHeuristic_;
8741  }
8751  public Builder setUseErwaHeuristic(boolean value) {
8752  bitField0_ |= 0x00000020;
8753  useErwaHeuristic_ = value;
8754  onChanged();
8755  return this;
8756  }
8767  bitField0_ = (bitField0_ & ~0x00000020);
8768  useErwaHeuristic_ = false;
8769  onChanged();
8770  return this;
8771  }
8772 
8773  private double initialVariablesActivity_ ;
8786  public boolean hasInitialVariablesActivity() {
8787  return ((bitField0_ & 0x00000040) != 0);
8788  }
8802  return initialVariablesActivity_;
8803  }
8816  public Builder setInitialVariablesActivity(double value) {
8817  bitField0_ |= 0x00000040;
8818  initialVariablesActivity_ = value;
8819  onChanged();
8820  return this;
8821  }
8835  bitField0_ = (bitField0_ & ~0x00000040);
8836  initialVariablesActivity_ = 0D;
8837  onChanged();
8838  return this;
8839  }
8840 
8841  private boolean alsoBumpVariablesInConflictReasons_ ;
8853  return ((bitField0_ & 0x00000080) != 0);
8854  }
8866  return alsoBumpVariablesInConflictReasons_;
8867  }
8879  bitField0_ |= 0x00000080;
8880  alsoBumpVariablesInConflictReasons_ = value;
8881  onChanged();
8882  return this;
8883  }
8895  bitField0_ = (bitField0_ & ~0x00000080);
8896  alsoBumpVariablesInConflictReasons_ = false;
8897  onChanged();
8898  return this;
8899  }
8900 
8901  private int minimizationAlgorithm_ = 2;
8905  public boolean hasMinimizationAlgorithm() {
8906  return ((bitField0_ & 0x00000100) != 0);
8907  }
8912  @SuppressWarnings("deprecation")
8914  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
8915  }
8920  if (value == null) {
8921  throw new NullPointerException();
8922  }
8923  bitField0_ |= 0x00000100;
8924  minimizationAlgorithm_ = value.getNumber();
8925  onChanged();
8926  return this;
8927  }
8932  bitField0_ = (bitField0_ & ~0x00000100);
8933  minimizationAlgorithm_ = 2;
8934  onChanged();
8935  return this;
8936  }
8937 
8938  private int binaryMinimizationAlgorithm_ = 1;
8943  return ((bitField0_ & 0x00000200) != 0);
8944  }
8949  @SuppressWarnings("deprecation")
8952  }
8957  if (value == null) {
8958  throw new NullPointerException();
8959  }
8960  bitField0_ |= 0x00000200;
8961  binaryMinimizationAlgorithm_ = value.getNumber();
8962  onChanged();
8963  return this;
8964  }
8969  bitField0_ = (bitField0_ & ~0x00000200);
8970  binaryMinimizationAlgorithm_ = 1;
8971  onChanged();
8972  return this;
8973  }
8974 
8975  private boolean subsumptionDuringConflictAnalysis_ = true;
8987  return ((bitField0_ & 0x00000400) != 0);
8988  }
9000  return subsumptionDuringConflictAnalysis_;
9001  }
9013  bitField0_ |= 0x00000400;
9014  subsumptionDuringConflictAnalysis_ = value;
9015  onChanged();
9016  return this;
9017  }
9029  bitField0_ = (bitField0_ & ~0x00000400);
9030  subsumptionDuringConflictAnalysis_ = true;
9031  onChanged();
9032  return this;
9033  }
9034 
9035  private int clauseCleanupPeriod_ = 10000;
9043  public boolean hasClauseCleanupPeriod() {
9044  return ((bitField0_ & 0x00000800) != 0);
9045  }
9053  public int getClauseCleanupPeriod() {
9054  return clauseCleanupPeriod_;
9055  }
9063  public Builder setClauseCleanupPeriod(int value) {
9064  bitField0_ |= 0x00000800;
9065  clauseCleanupPeriod_ = value;
9066  onChanged();
9067  return this;
9068  }
9077  bitField0_ = (bitField0_ & ~0x00000800);
9078  clauseCleanupPeriod_ = 10000;
9079  onChanged();
9080  return this;
9081  }
9082 
9083  private int clauseCleanupTarget_ = 10000;
9092  public boolean hasClauseCleanupTarget() {
9093  return ((bitField0_ & 0x00001000) != 0);
9094  }
9103  public int getClauseCleanupTarget() {
9104  return clauseCleanupTarget_;
9105  }
9114  public Builder setClauseCleanupTarget(int value) {
9115  bitField0_ |= 0x00001000;
9116  clauseCleanupTarget_ = value;
9117  onChanged();
9118  return this;
9119  }
9129  bitField0_ = (bitField0_ & ~0x00001000);
9130  clauseCleanupTarget_ = 10000;
9131  onChanged();
9132  return this;
9133  }
9134 
9135  private int clauseCleanupProtection_ = 0;
9139  public boolean hasClauseCleanupProtection() {
9140  return ((bitField0_ & 0x00002000) != 0);
9141  }
9146  @SuppressWarnings("deprecation")
9148  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
9149  }
9154  if (value == null) {
9155  throw new NullPointerException();
9156  }
9157  bitField0_ |= 0x00002000;
9158  clauseCleanupProtection_ = value.getNumber();
9159  onChanged();
9160  return this;
9161  }
9166  bitField0_ = (bitField0_ & ~0x00002000);
9167  clauseCleanupProtection_ = 0;
9168  onChanged();
9169  return this;
9170  }
9171 
9172  private int clauseCleanupLbdBound_ = 5;
9181  public boolean hasClauseCleanupLbdBound() {
9182  return ((bitField0_ & 0x00004000) != 0);
9183  }
9193  return clauseCleanupLbdBound_;
9194  }
9203  public Builder setClauseCleanupLbdBound(int value) {
9204  bitField0_ |= 0x00004000;
9205  clauseCleanupLbdBound_ = value;
9206  onChanged();
9207  return this;
9208  }
9218  bitField0_ = (bitField0_ & ~0x00004000);
9219  clauseCleanupLbdBound_ = 5;
9220  onChanged();
9221  return this;
9222  }
9223 
9224  private int clauseCleanupOrdering_ = 0;
9228  public boolean hasClauseCleanupOrdering() {
9229  return ((bitField0_ & 0x00008000) != 0);
9230  }
9235  @SuppressWarnings("deprecation")
9237  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
9238  }
9243  if (value == null) {
9244  throw new NullPointerException();
9245  }
9246  bitField0_ |= 0x00008000;
9247  clauseCleanupOrdering_ = value.getNumber();
9248  onChanged();
9249  return this;
9250  }
9255  bitField0_ = (bitField0_ & ~0x00008000);
9256  clauseCleanupOrdering_ = 0;
9257  onChanged();
9258  return this;
9259  }
9260 
9261  private int pbCleanupIncrement_ = 200;
9269  public boolean hasPbCleanupIncrement() {
9270  return ((bitField0_ & 0x00010000) != 0);
9271  }
9279  public int getPbCleanupIncrement() {
9280  return pbCleanupIncrement_;
9281  }
9289  public Builder setPbCleanupIncrement(int value) {
9290  bitField0_ |= 0x00010000;
9291  pbCleanupIncrement_ = value;
9292  onChanged();
9293  return this;
9294  }
9303  bitField0_ = (bitField0_ & ~0x00010000);
9304  pbCleanupIncrement_ = 200;
9305  onChanged();
9306  return this;
9307  }
9308 
9309  private double pbCleanupRatio_ = 0.5D;
9313  public boolean hasPbCleanupRatio() {
9314  return ((bitField0_ & 0x00020000) != 0);
9315  }
9319  public double getPbCleanupRatio() {
9320  return pbCleanupRatio_;
9321  }
9325  public Builder setPbCleanupRatio(double value) {
9326  bitField0_ |= 0x00020000;
9327  pbCleanupRatio_ = value;
9328  onChanged();
9329  return this;
9330  }
9335  bitField0_ = (bitField0_ & ~0x00020000);
9336  pbCleanupRatio_ = 0.5D;
9337  onChanged();
9338  return this;
9339  }
9340 
9341  private int minimizeWithPropagationRestartPeriod_ = 10;
9360  return ((bitField0_ & 0x00040000) != 0);
9361  }
9380  return minimizeWithPropagationRestartPeriod_;
9381  }
9400  bitField0_ |= 0x00040000;
9401  minimizeWithPropagationRestartPeriod_ = value;
9402  onChanged();
9403  return this;
9404  }
9423  bitField0_ = (bitField0_ & ~0x00040000);
9424  minimizeWithPropagationRestartPeriod_ = 10;
9425  onChanged();
9426  return this;
9427  }
9428 
9429  private int minimizeWithPropagationNumDecisions_ = 1000;
9434  return ((bitField0_ & 0x00080000) != 0);
9435  }
9440  return minimizeWithPropagationNumDecisions_;
9441  }
9446  bitField0_ |= 0x00080000;
9447  minimizeWithPropagationNumDecisions_ = value;
9448  onChanged();
9449  return this;
9450  }
9455  bitField0_ = (bitField0_ & ~0x00080000);
9456  minimizeWithPropagationNumDecisions_ = 1000;
9457  onChanged();
9458  return this;
9459  }
9460 
9461  private double variableActivityDecay_ = 0.8D;
9475  public boolean hasVariableActivityDecay() {
9476  return ((bitField0_ & 0x00100000) != 0);
9477  }
9491  public double getVariableActivityDecay() {
9492  return variableActivityDecay_;
9493  }
9507  public Builder setVariableActivityDecay(double value) {
9508  bitField0_ |= 0x00100000;
9509  variableActivityDecay_ = value;
9510  onChanged();
9511  return this;
9512  }
9527  bitField0_ = (bitField0_ & ~0x00100000);
9528  variableActivityDecay_ = 0.8D;
9529  onChanged();
9530  return this;
9531  }
9532 
9533  private double maxVariableActivityValue_ = 1e+100D;
9537  public boolean hasMaxVariableActivityValue() {
9538  return ((bitField0_ & 0x00200000) != 0);
9539  }
9544  return maxVariableActivityValue_;
9545  }
9549  public Builder setMaxVariableActivityValue(double value) {
9550  bitField0_ |= 0x00200000;
9551  maxVariableActivityValue_ = value;
9552  onChanged();
9553  return this;
9554  }
9559  bitField0_ = (bitField0_ & ~0x00200000);
9560  maxVariableActivityValue_ = 1e+100D;
9561  onChanged();
9562  return this;
9563  }
9564 
9565  private double glucoseMaxDecay_ = 0.95D;
9576  public boolean hasGlucoseMaxDecay() {
9577  return ((bitField0_ & 0x00400000) != 0);
9578  }
9589  public double getGlucoseMaxDecay() {
9590  return glucoseMaxDecay_;
9591  }
9602  public Builder setGlucoseMaxDecay(double value) {
9603  bitField0_ |= 0x00400000;
9604  glucoseMaxDecay_ = value;
9605  onChanged();
9606  return this;
9607  }
9619  bitField0_ = (bitField0_ & ~0x00400000);
9620  glucoseMaxDecay_ = 0.95D;
9621  onChanged();
9622  return this;
9623  }
9624 
9625  private double glucoseDecayIncrement_ = 0.01D;
9629  public boolean hasGlucoseDecayIncrement() {
9630  return ((bitField0_ & 0x00800000) != 0);
9631  }
9635  public double getGlucoseDecayIncrement() {
9636  return glucoseDecayIncrement_;
9637  }
9641  public Builder setGlucoseDecayIncrement(double value) {
9642  bitField0_ |= 0x00800000;
9643  glucoseDecayIncrement_ = value;
9644  onChanged();
9645  return this;
9646  }
9651  bitField0_ = (bitField0_ & ~0x00800000);
9652  glucoseDecayIncrement_ = 0.01D;
9653  onChanged();
9654  return this;
9655  }
9656 
9657  private int glucoseDecayIncrementPeriod_ = 5000;
9662  return ((bitField0_ & 0x01000000) != 0);
9663  }
9668  return glucoseDecayIncrementPeriod_;
9669  }
9674  bitField0_ |= 0x01000000;
9675  glucoseDecayIncrementPeriod_ = value;
9676  onChanged();
9677  return this;
9678  }
9683  bitField0_ = (bitField0_ & ~0x01000000);
9684  glucoseDecayIncrementPeriod_ = 5000;
9685  onChanged();
9686  return this;
9687  }
9688 
9689  private double clauseActivityDecay_ = 0.999D;
9697  public boolean hasClauseActivityDecay() {
9698  return ((bitField0_ & 0x02000000) != 0);
9699  }
9707  public double getClauseActivityDecay() {
9708  return clauseActivityDecay_;
9709  }
9717  public Builder setClauseActivityDecay(double value) {
9718  bitField0_ |= 0x02000000;
9719  clauseActivityDecay_ = value;
9720  onChanged();
9721  return this;
9722  }
9731  bitField0_ = (bitField0_ & ~0x02000000);
9732  clauseActivityDecay_ = 0.999D;
9733  onChanged();
9734  return this;
9735  }
9736 
9737  private double maxClauseActivityValue_ = 1e+20D;
9741  public boolean hasMaxClauseActivityValue() {
9742  return ((bitField0_ & 0x04000000) != 0);
9743  }
9747  public double getMaxClauseActivityValue() {
9748  return maxClauseActivityValue_;
9749  }
9753  public Builder setMaxClauseActivityValue(double value) {
9754  bitField0_ |= 0x04000000;
9755  maxClauseActivityValue_ = value;
9756  onChanged();
9757  return this;
9758  }
9763  bitField0_ = (bitField0_ & ~0x04000000);
9764  maxClauseActivityValue_ = 1e+20D;
9765  onChanged();
9766  return this;
9767  }
9768 
9769  private java.util.List<java.lang.Integer> restartAlgorithms_ =
9770  java.util.Collections.emptyList();
9771  private void ensureRestartAlgorithmsIsMutable() {
9772  if (!((bitField0_ & 0x08000000) != 0)) {
9773  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
9774  bitField0_ |= 0x08000000;
9775  }
9776  }
9792  return new com.google.protobuf.Internal.ListAdapter<
9793  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
9794  }
9810  return restartAlgorithms_.size();
9811  }
9827  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
9828  }
9844  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
9845  if (value == null) {
9846  throw new NullPointerException();
9847  }
9848  ensureRestartAlgorithmsIsMutable();
9849  restartAlgorithms_.set(index, value.getNumber());
9850  onChanged();
9851  return this;
9852  }
9868  if (value == null) {
9869  throw new NullPointerException();
9870  }
9871  ensureRestartAlgorithmsIsMutable();
9872  restartAlgorithms_.add(value.getNumber());
9873  onChanged();
9874  return this;
9875  }
9891  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
9892  ensureRestartAlgorithmsIsMutable();
9893  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
9894  restartAlgorithms_.add(value.getNumber());
9895  }
9896  onChanged();
9897  return this;
9898  }
9914  restartAlgorithms_ = java.util.Collections.emptyList();
9915  bitField0_ = (bitField0_ & ~0x08000000);
9916  onChanged();
9917  return this;
9918  }
9919 
9920  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
9924  public boolean hasDefaultRestartAlgorithms() {
9925  return ((bitField0_ & 0x10000000) != 0);
9926  }
9930  public java.lang.String getDefaultRestartAlgorithms() {
9931  java.lang.Object ref = defaultRestartAlgorithms_;
9932  if (!(ref instanceof java.lang.String)) {
9933  com.google.protobuf.ByteString bs =
9934  (com.google.protobuf.ByteString) ref;
9935  java.lang.String s = bs.toStringUtf8();
9936  if (bs.isValidUtf8()) {
9937  defaultRestartAlgorithms_ = s;
9938  }
9939  return s;
9940  } else {
9941  return (java.lang.String) ref;
9942  }
9943  }
9947  public com.google.protobuf.ByteString
9949  java.lang.Object ref = defaultRestartAlgorithms_;
9950  if (ref instanceof String) {
9951  com.google.protobuf.ByteString b =
9952  com.google.protobuf.ByteString.copyFromUtf8(
9953  (java.lang.String) ref);
9954  defaultRestartAlgorithms_ = b;
9955  return b;
9956  } else {
9957  return (com.google.protobuf.ByteString) ref;
9958  }
9959  }
9964  java.lang.String value) {
9965  if (value == null) {
9966  throw new NullPointerException();
9967  }
9968  bitField0_ |= 0x10000000;
9969  defaultRestartAlgorithms_ = value;
9970  onChanged();
9971  return this;
9972  }
9977  bitField0_ = (bitField0_ & ~0x10000000);
9978  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
9979  onChanged();
9980  return this;
9981  }
9986  com.google.protobuf.ByteString value) {
9987  if (value == null) {
9988  throw new NullPointerException();
9989  }
9990  bitField0_ |= 0x10000000;
9991  defaultRestartAlgorithms_ = value;
9992  onChanged();
9993  return this;
9994  }
9995 
9996  private int restartPeriod_ = 50;
10005  public boolean hasRestartPeriod() {
10006  return ((bitField0_ & 0x20000000) != 0);
10007  }
10016  public int getRestartPeriod() {
10017  return restartPeriod_;
10018  }
10027  public Builder setRestartPeriod(int value) {
10028  bitField0_ |= 0x20000000;
10029  restartPeriod_ = value;
10030  onChanged();
10031  return this;
10032  }
10042  bitField0_ = (bitField0_ & ~0x20000000);
10043  restartPeriod_ = 50;
10044  onChanged();
10045  return this;
10046  }
10047 
10048  private int restartRunningWindowSize_ = 50;
10056  public boolean hasRestartRunningWindowSize() {
10057  return ((bitField0_ & 0x40000000) != 0);
10058  }
10067  return restartRunningWindowSize_;
10068  }
10077  bitField0_ |= 0x40000000;
10078  restartRunningWindowSize_ = value;
10079  onChanged();
10080  return this;
10081  }
10090  bitField0_ = (bitField0_ & ~0x40000000);
10091  restartRunningWindowSize_ = 50;
10092  onChanged();
10093  return this;
10094  }
10095 
10096  private double restartDlAverageRatio_ = 1D;
10105  public boolean hasRestartDlAverageRatio() {
10106  return ((bitField0_ & 0x80000000) != 0);
10107  }
10116  public double getRestartDlAverageRatio() {
10117  return restartDlAverageRatio_;
10118  }
10127  public Builder setRestartDlAverageRatio(double value) {
10128  bitField0_ |= 0x80000000;
10129  restartDlAverageRatio_ = value;
10130  onChanged();
10131  return this;
10132  }
10142  bitField0_ = (bitField0_ & ~0x80000000);
10143  restartDlAverageRatio_ = 1D;
10144  onChanged();
10145  return this;
10146  }
10147 
10148  private double restartLbdAverageRatio_ = 1D;
10152  public boolean hasRestartLbdAverageRatio() {
10153  return ((bitField1_ & 0x00000001) != 0);
10154  }
10158  public double getRestartLbdAverageRatio() {
10159  return restartLbdAverageRatio_;
10160  }
10164  public Builder setRestartLbdAverageRatio(double value) {
10165  bitField1_ |= 0x00000001;
10166  restartLbdAverageRatio_ = value;
10167  onChanged();
10168  return this;
10169  }
10174  bitField1_ = (bitField1_ & ~0x00000001);
10175  restartLbdAverageRatio_ = 1D;
10176  onChanged();
10177  return this;
10178  }
10179 
10180  private boolean useBlockingRestart_ ;
10190  public boolean hasUseBlockingRestart() {
10191  return ((bitField1_ & 0x00000002) != 0);
10192  }
10202  public boolean getUseBlockingRestart() {
10203  return useBlockingRestart_;
10204  }
10214  public Builder setUseBlockingRestart(boolean value) {
10215  bitField1_ |= 0x00000002;
10216  useBlockingRestart_ = value;
10217  onChanged();
10218  return this;
10219  }
10230  bitField1_ = (bitField1_ & ~0x00000002);
10231  useBlockingRestart_ = false;
10232  onChanged();
10233  return this;
10234  }
10235 
10236  private int blockingRestartWindowSize_ = 5000;
10240  public boolean hasBlockingRestartWindowSize() {
10241  return ((bitField1_ & 0x00000004) != 0);
10242  }
10247  return blockingRestartWindowSize_;
10248  }
10253  bitField1_ |= 0x00000004;
10254  blockingRestartWindowSize_ = value;
10255  onChanged();
10256  return this;
10257  }
10262  bitField1_ = (bitField1_ & ~0x00000004);
10263  blockingRestartWindowSize_ = 5000;
10264  onChanged();
10265  return this;
10266  }
10267 
10268  private double blockingRestartMultiplier_ = 1.4D;
10272  public boolean hasBlockingRestartMultiplier() {
10273  return ((bitField1_ & 0x00000008) != 0);
10274  }
10279  return blockingRestartMultiplier_;
10280  }
10284  public Builder setBlockingRestartMultiplier(double value) {
10285  bitField1_ |= 0x00000008;
10286  blockingRestartMultiplier_ = value;
10287  onChanged();
10288  return this;
10289  }
10294  bitField1_ = (bitField1_ & ~0x00000008);
10295  blockingRestartMultiplier_ = 1.4D;
10296  onChanged();
10297  return this;
10298  }
10299 
10300  private int numConflictsBeforeStrategyChanges_ ;
10311  return ((bitField1_ & 0x00000010) != 0);
10312  }
10323  return numConflictsBeforeStrategyChanges_;
10324  }
10335  bitField1_ |= 0x00000010;
10336  numConflictsBeforeStrategyChanges_ = value;
10337  onChanged();
10338  return this;
10339  }
10350  bitField1_ = (bitField1_ & ~0x00000010);
10351  numConflictsBeforeStrategyChanges_ = 0;
10352  onChanged();
10353  return this;
10354  }
10355 
10356  private double strategyChangeIncreaseRatio_ ;
10366  return ((bitField1_ & 0x00000020) != 0);
10367  }
10377  return strategyChangeIncreaseRatio_;
10378  }
10388  bitField1_ |= 0x00000020;
10389  strategyChangeIncreaseRatio_ = value;
10390  onChanged();
10391  return this;
10392  }
10402  bitField1_ = (bitField1_ & ~0x00000020);
10403  strategyChangeIncreaseRatio_ = 0D;
10404  onChanged();
10405  return this;
10406  }
10407 
10408  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10418  public boolean hasMaxTimeInSeconds() {
10419  return ((bitField1_ & 0x00000040) != 0);
10420  }
10430  public double getMaxTimeInSeconds() {
10431  return maxTimeInSeconds_;
10432  }
10442  public Builder setMaxTimeInSeconds(double value) {
10443  bitField1_ |= 0x00000040;
10444  maxTimeInSeconds_ = value;
10445  onChanged();
10446  return this;
10447  }
10458  bitField1_ = (bitField1_ & ~0x00000040);
10459  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10460  onChanged();
10461  return this;
10462  }
10463 
10464  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10476  public boolean hasMaxDeterministicTime() {
10477  return ((bitField1_ & 0x00000080) != 0);
10478  }
10490  public double getMaxDeterministicTime() {
10491  return maxDeterministicTime_;
10492  }
10504  public Builder setMaxDeterministicTime(double value) {
10505  bitField1_ |= 0x00000080;
10506  maxDeterministicTime_ = value;
10507  onChanged();
10508  return this;
10509  }
10522  bitField1_ = (bitField1_ & ~0x00000080);
10523  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10524  onChanged();
10525  return this;
10526  }
10527 
10528  private long maxNumberOfConflicts_ = 9223372036854775807L;
10541  public boolean hasMaxNumberOfConflicts() {
10542  return ((bitField1_ & 0x00000100) != 0);
10543  }
10556  public long getMaxNumberOfConflicts() {
10557  return maxNumberOfConflicts_;
10558  }
10571  public Builder setMaxNumberOfConflicts(long value) {
10572  bitField1_ |= 0x00000100;
10573  maxNumberOfConflicts_ = value;
10574  onChanged();
10575  return this;
10576  }
10590  bitField1_ = (bitField1_ & ~0x00000100);
10591  maxNumberOfConflicts_ = 9223372036854775807L;
10592  onChanged();
10593  return this;
10594  }
10595 
10596  private long maxMemoryInMb_ = 10000L;
10607  public boolean hasMaxMemoryInMb() {
10608  return ((bitField1_ & 0x00000200) != 0);
10609  }
10620  public long getMaxMemoryInMb() {
10621  return maxMemoryInMb_;
10622  }
10633  public Builder setMaxMemoryInMb(long value) {
10634  bitField1_ |= 0x00000200;
10635  maxMemoryInMb_ = value;
10636  onChanged();
10637  return this;
10638  }
10650  bitField1_ = (bitField1_ & ~0x00000200);
10651  maxMemoryInMb_ = 10000L;
10652  onChanged();
10653  return this;
10654  }
10655 
10656  private boolean treatBinaryClausesSeparately_ = true;
10667  return ((bitField1_ & 0x00000400) != 0);
10668  }
10679  return treatBinaryClausesSeparately_;
10680  }
10691  bitField1_ |= 0x00000400;
10692  treatBinaryClausesSeparately_ = value;
10693  onChanged();
10694  return this;
10695  }
10706  bitField1_ = (bitField1_ & ~0x00000400);
10707  treatBinaryClausesSeparately_ = true;
10708  onChanged();
10709  return this;
10710  }
10711 
10712  private int randomSeed_ = 1;
10725  public boolean hasRandomSeed() {
10726  return ((bitField1_ & 0x00000800) != 0);
10727  }
10740  public int getRandomSeed() {
10741  return randomSeed_;
10742  }
10755  public Builder setRandomSeed(int value) {
10756  bitField1_ |= 0x00000800;
10757  randomSeed_ = value;
10758  onChanged();
10759  return this;
10760  }
10774  bitField1_ = (bitField1_ & ~0x00000800);
10775  randomSeed_ = 1;
10776  onChanged();
10777  return this;
10778  }
10779 
10780  private boolean logSearchProgress_ ;
10788  public boolean hasLogSearchProgress() {
10789  return ((bitField1_ & 0x00001000) != 0);
10790  }
10798  public boolean getLogSearchProgress() {
10799  return logSearchProgress_;
10800  }
10808  public Builder setLogSearchProgress(boolean value) {
10809  bitField1_ |= 0x00001000;
10810  logSearchProgress_ = value;
10811  onChanged();
10812  return this;
10813  }
10822  bitField1_ = (bitField1_ & ~0x00001000);
10823  logSearchProgress_ = false;
10824  onChanged();
10825  return this;
10826  }
10827 
10828  private boolean usePbResolution_ ;
10839  public boolean hasUsePbResolution() {
10840  return ((bitField1_ & 0x00002000) != 0);
10841  }
10852  public boolean getUsePbResolution() {
10853  return usePbResolution_;
10854  }
10865  public Builder setUsePbResolution(boolean value) {
10866  bitField1_ |= 0x00002000;
10867  usePbResolution_ = value;
10868  onChanged();
10869  return this;
10870  }
10882  bitField1_ = (bitField1_ & ~0x00002000);
10883  usePbResolution_ = false;
10884  onChanged();
10885  return this;
10886  }
10887 
10888  private boolean minimizeReductionDuringPbResolution_ ;
10900  return ((bitField1_ & 0x00004000) != 0);
10901  }
10913  return minimizeReductionDuringPbResolution_;
10914  }
10926  bitField1_ |= 0x00004000;
10927  minimizeReductionDuringPbResolution_ = value;
10928  onChanged();
10929  return this;
10930  }
10942  bitField1_ = (bitField1_ & ~0x00004000);
10943  minimizeReductionDuringPbResolution_ = false;
10944  onChanged();
10945  return this;
10946  }
10947 
10948  private boolean countAssumptionLevelsInLbd_ = true;
10964  return ((bitField1_ & 0x00008000) != 0);
10965  }
10981  return countAssumptionLevelsInLbd_;
10982  }
10997  public Builder setCountAssumptionLevelsInLbd(boolean value) {
10998  bitField1_ |= 0x00008000;
10999  countAssumptionLevelsInLbd_ = value;
11000  onChanged();
11001  return this;
11002  }
11018  bitField1_ = (bitField1_ & ~0x00008000);
11019  countAssumptionLevelsInLbd_ = true;
11020  onChanged();
11021  return this;
11022  }
11023 
11024  private int presolveBveThreshold_ = 500;
11034  public boolean hasPresolveBveThreshold() {
11035  return ((bitField1_ & 0x00010000) != 0);
11036  }
11047  return presolveBveThreshold_;
11048  }
11058  public Builder setPresolveBveThreshold(int value) {
11059  bitField1_ |= 0x00010000;
11060  presolveBveThreshold_ = value;
11061  onChanged();
11062  return this;
11063  }
11074  bitField1_ = (bitField1_ & ~0x00010000);
11075  presolveBveThreshold_ = 500;
11076  onChanged();
11077  return this;
11078  }
11079 
11080  private int presolveBveClauseWeight_ = 3;
11089  public boolean hasPresolveBveClauseWeight() {
11090  return ((bitField1_ & 0x00020000) != 0);
11091  }
11101  return presolveBveClauseWeight_;
11102  }
11112  bitField1_ |= 0x00020000;
11113  presolveBveClauseWeight_ = value;
11114  onChanged();
11115  return this;
11116  }
11126  bitField1_ = (bitField1_ & ~0x00020000);
11127  presolveBveClauseWeight_ = 3;
11128  onChanged();
11129  return this;
11130  }
11131 
11132  private double presolveProbingDeterministicTimeLimit_ = 30D;
11142  return ((bitField1_ & 0x00040000) != 0);
11143  }
11153  return presolveProbingDeterministicTimeLimit_;
11154  }
11164  bitField1_ |= 0x00040000;
11165  presolveProbingDeterministicTimeLimit_ = value;
11166  onChanged();
11167  return this;
11168  }
11178  bitField1_ = (bitField1_ & ~0x00040000);
11179  presolveProbingDeterministicTimeLimit_ = 30D;
11180  onChanged();
11181  return this;
11182  }
11183 
11184  private boolean presolveBlockedClause_ = true;
11193  public boolean hasPresolveBlockedClause() {
11194  return ((bitField1_ & 0x00080000) != 0);
11195  }
11204  public boolean getPresolveBlockedClause() {
11205  return presolveBlockedClause_;
11206  }
11215  public Builder setPresolveBlockedClause(boolean value) {
11216  bitField1_ |= 0x00080000;
11217  presolveBlockedClause_ = value;
11218  onChanged();
11219  return this;
11220  }
11230  bitField1_ = (bitField1_ & ~0x00080000);
11231  presolveBlockedClause_ = true;
11232  onChanged();
11233  return this;
11234  }
11235 
11236  private boolean presolveUseBva_ = true;
11244  public boolean hasPresolveUseBva() {
11245  return ((bitField1_ & 0x00100000) != 0);
11246  }
11254  public boolean getPresolveUseBva() {
11255  return presolveUseBva_;
11256  }
11264  public Builder setPresolveUseBva(boolean value) {
11265  bitField1_ |= 0x00100000;
11266  presolveUseBva_ = value;
11267  onChanged();
11268  return this;
11269  }
11278  bitField1_ = (bitField1_ & ~0x00100000);
11279  presolveUseBva_ = true;
11280  onChanged();
11281  return this;
11282  }
11283 
11284  private int presolveBvaThreshold_ = 1;
11295  public boolean hasPresolveBvaThreshold() {
11296  return ((bitField1_ & 0x00200000) != 0);
11297  }
11309  return presolveBvaThreshold_;
11310  }
11321  public Builder setPresolveBvaThreshold(int value) {
11322  bitField1_ |= 0x00200000;
11323  presolveBvaThreshold_ = value;
11324  onChanged();
11325  return this;
11326  }
11338  bitField1_ = (bitField1_ & ~0x00200000);
11339  presolveBvaThreshold_ = 1;
11340  onChanged();
11341  return this;
11342  }
11343 
11344  private boolean useOptimizationHints_ = true;
11355  public boolean hasUseOptimizationHints() {
11356  return ((bitField1_ & 0x00400000) != 0);
11357  }
11368  public boolean getUseOptimizationHints() {
11369  return useOptimizationHints_;
11370  }
11381  public Builder setUseOptimizationHints(boolean value) {
11382  bitField1_ |= 0x00400000;
11383  useOptimizationHints_ = value;
11384  onChanged();
11385  return this;
11386  }
11398  bitField1_ = (bitField1_ & ~0x00400000);
11399  useOptimizationHints_ = true;
11400  onChanged();
11401  return this;
11402  }
11403 
11404  private boolean minimizeCore_ = true;
11412  public boolean hasMinimizeCore() {
11413  return ((bitField1_ & 0x00800000) != 0);
11414  }
11422  public boolean getMinimizeCore() {
11423  return minimizeCore_;
11424  }
11432  public Builder setMinimizeCore(boolean value) {
11433  bitField1_ |= 0x00800000;
11434  minimizeCore_ = value;
11435  onChanged();
11436  return this;
11437  }
11446  bitField1_ = (bitField1_ & ~0x00800000);
11447  minimizeCore_ = true;
11448  onChanged();
11449  return this;
11450  }
11451 
11452  private boolean findMultipleCores_ = true;
11461  public boolean hasFindMultipleCores() {
11462  return ((bitField1_ & 0x01000000) != 0);
11463  }
11472  public boolean getFindMultipleCores() {
11473  return findMultipleCores_;
11474  }
11483  public Builder setFindMultipleCores(boolean value) {
11484  bitField1_ |= 0x01000000;
11485  findMultipleCores_ = value;
11486  onChanged();
11487  return this;
11488  }
11498  bitField1_ = (bitField1_ & ~0x01000000);
11499  findMultipleCores_ = true;
11500  onChanged();
11501  return this;
11502  }
11503 
11504  private boolean coverOptimization_ = true;
11513  public boolean hasCoverOptimization() {
11514  return ((bitField1_ & 0x02000000) != 0);
11515  }
11524  public boolean getCoverOptimization() {
11525  return coverOptimization_;
11526  }
11535  public Builder setCoverOptimization(boolean value) {
11536  bitField1_ |= 0x02000000;
11537  coverOptimization_ = value;
11538  onChanged();
11539  return this;
11540  }
11550  bitField1_ = (bitField1_ & ~0x02000000);
11551  coverOptimization_ = true;
11552  onChanged();
11553  return this;
11554  }
11555 
11556  private int maxSatAssumptionOrder_ = 0;
11560  public boolean hasMaxSatAssumptionOrder() {
11561  return ((bitField1_ & 0x04000000) != 0);
11562  }
11567  @SuppressWarnings("deprecation")
11570  }
11575  if (value == null) {
11576  throw new NullPointerException();
11577  }
11578  bitField1_ |= 0x04000000;
11579  maxSatAssumptionOrder_ = value.getNumber();
11580  onChanged();
11581  return this;
11582  }
11587  bitField1_ = (bitField1_ & ~0x04000000);
11588  maxSatAssumptionOrder_ = 0;
11589  onChanged();
11590  return this;
11591  }
11592 
11593  private boolean maxSatReverseAssumptionOrder_ ;
11603  return ((bitField1_ & 0x08000000) != 0);
11604  }
11614  return maxSatReverseAssumptionOrder_;
11615  }
11625  bitField1_ |= 0x08000000;
11626  maxSatReverseAssumptionOrder_ = value;
11627  onChanged();
11628  return this;
11629  }
11639  bitField1_ = (bitField1_ & ~0x08000000);
11640  maxSatReverseAssumptionOrder_ = false;
11641  onChanged();
11642  return this;
11643  }
11644 
11645  private int maxSatStratification_ = 1;
11649  public boolean hasMaxSatStratification() {
11650  return ((bitField1_ & 0x10000000) != 0);
11651  }
11656  @SuppressWarnings("deprecation")
11659  }
11664  if (value == null) {
11665  throw new NullPointerException();
11666  }
11667  bitField1_ |= 0x10000000;
11668  maxSatStratification_ = value.getNumber();
11669  onChanged();
11670  return this;
11671  }
11676  bitField1_ = (bitField1_ & ~0x10000000);
11677  maxSatStratification_ = 1;
11678  onChanged();
11679  return this;
11680  }
11681 
11682  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
11698  return ((bitField1_ & 0x20000000) != 0);
11699  }
11715  return usePrecedencesInDisjunctiveConstraint_;
11716  }
11732  bitField1_ |= 0x20000000;
11733  usePrecedencesInDisjunctiveConstraint_ = value;
11734  onChanged();
11735  return this;
11736  }
11752  bitField1_ = (bitField1_ & ~0x20000000);
11753  usePrecedencesInDisjunctiveConstraint_ = true;
11754  onChanged();
11755  return this;
11756  }
11757 
11758  private boolean useOverloadCheckerInCumulativeConstraint_ ;
11772  return ((bitField1_ & 0x40000000) != 0);
11773  }
11787  return useOverloadCheckerInCumulativeConstraint_;
11788  }
11802  bitField1_ |= 0x40000000;
11803  useOverloadCheckerInCumulativeConstraint_ = value;
11804  onChanged();
11805  return this;
11806  }
11820  bitField1_ = (bitField1_ & ~0x40000000);
11821  useOverloadCheckerInCumulativeConstraint_ = false;
11822  onChanged();
11823  return this;
11824  }
11825 
11826  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
11840  return ((bitField1_ & 0x80000000) != 0);
11841  }
11855  return useTimetableEdgeFindingInCumulativeConstraint_;
11856  }
11870  bitField1_ |= 0x80000000;
11871  useTimetableEdgeFindingInCumulativeConstraint_ = value;
11872  onChanged();
11873  return this;
11874  }
11888  bitField1_ = (bitField1_ & ~0x80000000);
11889  useTimetableEdgeFindingInCumulativeConstraint_ = false;
11890  onChanged();
11891  return this;
11892  }
11893 
11894  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
11910  return ((bitField2_ & 0x00000001) != 0);
11911  }
11927  return useDisjunctiveConstraintInCumulativeConstraint_;
11928  }
11944  bitField2_ |= 0x00000001;
11945  useDisjunctiveConstraintInCumulativeConstraint_ = value;
11946  onChanged();
11947  return this;
11948  }
11964  bitField2_ = (bitField2_ & ~0x00000001);
11965  useDisjunctiveConstraintInCumulativeConstraint_ = true;
11966  onChanged();
11967  return this;
11968  }
11969 
11970  private int linearizationLevel_ = 1;
11981  public boolean hasLinearizationLevel() {
11982  return ((bitField2_ & 0x00000002) != 0);
11983  }
11994  public int getLinearizationLevel() {
11995  return linearizationLevel_;
11996  }
12007  public Builder setLinearizationLevel(int value) {
12008  bitField2_ |= 0x00000002;
12009  linearizationLevel_ = value;
12010  onChanged();
12011  return this;
12012  }
12024  bitField2_ = (bitField2_ & ~0x00000002);
12025  linearizationLevel_ = 1;
12026  onChanged();
12027  return this;
12028  }
12029 
12030  private int booleanEncodingLevel_ = 1;
12039  public boolean hasBooleanEncodingLevel() {
12040  return ((bitField2_ & 0x00000004) != 0);
12041  }
12051  return booleanEncodingLevel_;
12052  }
12061  public Builder setBooleanEncodingLevel(int value) {
12062  bitField2_ |= 0x00000004;
12063  booleanEncodingLevel_ = value;
12064  onChanged();
12065  return this;
12066  }
12076  bitField2_ = (bitField2_ & ~0x00000004);
12077  booleanEncodingLevel_ = 1;
12078  onChanged();
12079  return this;
12080  }
12081 
12082  private int maxNumCuts_ = 5000;
12093  public boolean hasMaxNumCuts() {
12094  return ((bitField2_ & 0x00000008) != 0);
12095  }
12106  public int getMaxNumCuts() {
12107  return maxNumCuts_;
12108  }
12119  public Builder setMaxNumCuts(int value) {
12120  bitField2_ |= 0x00000008;
12121  maxNumCuts_ = value;
12122  onChanged();
12123  return this;
12124  }
12136  bitField2_ = (bitField2_ & ~0x00000008);
12137  maxNumCuts_ = 5000;
12138  onChanged();
12139  return this;
12140  }
12141 
12142  private boolean onlyAddCutsAtLevelZero_ ;
12151  public boolean hasOnlyAddCutsAtLevelZero() {
12152  return ((bitField2_ & 0x00000010) != 0);
12153  }
12162  public boolean getOnlyAddCutsAtLevelZero() {
12163  return onlyAddCutsAtLevelZero_;
12164  }
12173  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
12174  bitField2_ |= 0x00000010;
12175  onlyAddCutsAtLevelZero_ = value;
12176  onChanged();
12177  return this;
12178  }
12188  bitField2_ = (bitField2_ & ~0x00000010);
12189  onlyAddCutsAtLevelZero_ = false;
12190  onChanged();
12191  return this;
12192  }
12193 
12194  private boolean addKnapsackCuts_ ;
12204  public boolean hasAddKnapsackCuts() {
12205  return ((bitField2_ & 0x00000020) != 0);
12206  }
12216  public boolean getAddKnapsackCuts() {
12217  return addKnapsackCuts_;
12218  }
12228  public Builder setAddKnapsackCuts(boolean value) {
12229  bitField2_ |= 0x00000020;
12230  addKnapsackCuts_ = value;
12231  onChanged();
12232  return this;
12233  }
12244  bitField2_ = (bitField2_ & ~0x00000020);
12245  addKnapsackCuts_ = false;
12246  onChanged();
12247  return this;
12248  }
12249 
12250  private boolean addCgCuts_ ;
12259  public boolean hasAddCgCuts() {
12260  return ((bitField2_ & 0x00000040) != 0);
12261  }
12270  public boolean getAddCgCuts() {
12271  return addCgCuts_;
12272  }
12281  public Builder setAddCgCuts(boolean value) {
12282  bitField2_ |= 0x00000040;
12283  addCgCuts_ = value;
12284  onChanged();
12285  return this;
12286  }
12296  bitField2_ = (bitField2_ & ~0x00000040);
12297  addCgCuts_ = false;
12298  onChanged();
12299  return this;
12300  }
12301 
12302  private boolean addMirCuts_ = true;
12311  public boolean hasAddMirCuts() {
12312  return ((bitField2_ & 0x00000080) != 0);
12313  }
12322  public boolean getAddMirCuts() {
12323  return addMirCuts_;
12324  }
12333  public Builder setAddMirCuts(boolean value) {
12334  bitField2_ |= 0x00000080;
12335  addMirCuts_ = value;
12336  onChanged();
12337  return this;
12338  }
12348  bitField2_ = (bitField2_ & ~0x00000080);
12349  addMirCuts_ = true;
12350  onChanged();
12351  return this;
12352  }
12353 
12354  private boolean useMirRounding_ = true;
12364  public boolean hasUseMirRounding() {
12365  return ((bitField2_ & 0x00000100) != 0);
12366  }
12376  public boolean getUseMirRounding() {
12377  return useMirRounding_;
12378  }
12388  public Builder setUseMirRounding(boolean value) {
12389  bitField2_ |= 0x00000100;
12390  useMirRounding_ = value;
12391  onChanged();
12392  return this;
12393  }
12404  bitField2_ = (bitField2_ & ~0x00000100);
12405  useMirRounding_ = true;
12406  onChanged();
12407  return this;
12408  }
12409 
12410  private int maxIntegerRoundingScaling_ = 600;
12422  public boolean hasMaxIntegerRoundingScaling() {
12423  return ((bitField2_ & 0x00000200) != 0);
12424  }
12437  return maxIntegerRoundingScaling_;
12438  }
12451  bitField2_ |= 0x00000200;
12452  maxIntegerRoundingScaling_ = value;
12453  onChanged();
12454  return this;
12455  }
12468  bitField2_ = (bitField2_ & ~0x00000200);
12469  maxIntegerRoundingScaling_ = 600;
12470  onChanged();
12471  return this;
12472  }
12473 
12474  private boolean addLpConstraintsLazily_ = true;
12485  public boolean hasAddLpConstraintsLazily() {
12486  return ((bitField2_ & 0x00000400) != 0);
12487  }
12498  public boolean getAddLpConstraintsLazily() {
12499  return addLpConstraintsLazily_;
12500  }
12511  public Builder setAddLpConstraintsLazily(boolean value) {
12512  bitField2_ |= 0x00000400;
12513  addLpConstraintsLazily_ = value;
12514  onChanged();
12515  return this;
12516  }
12528  bitField2_ = (bitField2_ & ~0x00000400);
12529  addLpConstraintsLazily_ = true;
12530  onChanged();
12531  return this;
12532  }
12533 
12534  private double minOrthogonalityForLpConstraints_ ;
12547  return ((bitField2_ & 0x00000800) != 0);
12548  }
12561  return minOrthogonalityForLpConstraints_;
12562  }
12575  bitField2_ |= 0x00000800;
12576  minOrthogonalityForLpConstraints_ = value;
12577  onChanged();
12578  return this;
12579  }
12592  bitField2_ = (bitField2_ & ~0x00000800);
12593  minOrthogonalityForLpConstraints_ = 0D;
12594  onChanged();
12595  return this;
12596  }
12597 
12598  private long maxInactiveCount_ = 1000L;
12607  public boolean hasMaxInactiveCount() {
12608  return ((bitField2_ & 0x00001000) != 0);
12609  }
12618  public long getMaxInactiveCount() {
12619  return maxInactiveCount_;
12620  }
12629  public Builder setMaxInactiveCount(long value) {
12630  bitField2_ |= 0x00001000;
12631  maxInactiveCount_ = value;
12632  onChanged();
12633  return this;
12634  }
12644  bitField2_ = (bitField2_ & ~0x00001000);
12645  maxInactiveCount_ = 1000L;
12646  onChanged();
12647  return this;
12648  }
12649 
12650  private long constraintRemovalBatchSize_ = 100L;
12660  return ((bitField2_ & 0x00002000) != 0);
12661  }
12671  return constraintRemovalBatchSize_;
12672  }
12682  bitField2_ |= 0x00002000;
12683  constraintRemovalBatchSize_ = value;
12684  onChanged();
12685  return this;
12686  }
12696  bitField2_ = (bitField2_ & ~0x00002000);
12697  constraintRemovalBatchSize_ = 100L;
12698  onChanged();
12699  return this;
12700  }
12701 
12702  private int searchBranching_ = 0;
12706  public boolean hasSearchBranching() {
12707  return ((bitField2_ & 0x00004000) != 0);
12708  }
12713  @SuppressWarnings("deprecation")
12715  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
12716  }
12721  if (value == null) {
12722  throw new NullPointerException();
12723  }
12724  bitField2_ |= 0x00004000;
12725  searchBranching_ = value.getNumber();
12726  onChanged();
12727  return this;
12728  }
12733  bitField2_ = (bitField2_ & ~0x00004000);
12734  searchBranching_ = 0;
12735  onChanged();
12736  return this;
12737  }
12738 
12739  private boolean exploitIntegerLpSolution_ = true;
12750  public boolean hasExploitIntegerLpSolution() {
12751  return ((bitField2_ & 0x00008000) != 0);
12752  }
12763  public boolean getExploitIntegerLpSolution() {
12764  return exploitIntegerLpSolution_;
12765  }
12776  public Builder setExploitIntegerLpSolution(boolean value) {
12777  bitField2_ |= 0x00008000;
12778  exploitIntegerLpSolution_ = value;
12779  onChanged();
12780  return this;
12781  }
12793  bitField2_ = (bitField2_ & ~0x00008000);
12794  exploitIntegerLpSolution_ = true;
12795  onChanged();
12796  return this;
12797  }
12798 
12799  private boolean exploitAllLpSolution_ = true;
12809  public boolean hasExploitAllLpSolution() {
12810  return ((bitField2_ & 0x00010000) != 0);
12811  }
12821  public boolean getExploitAllLpSolution() {
12822  return exploitAllLpSolution_;
12823  }
12833  public Builder setExploitAllLpSolution(boolean value) {
12834  bitField2_ |= 0x00010000;
12835  exploitAllLpSolution_ = value;
12836  onChanged();
12837  return this;
12838  }
12849  bitField2_ = (bitField2_ & ~0x00010000);
12850  exploitAllLpSolution_ = true;
12851  onChanged();
12852  return this;
12853  }
12854 
12855  private boolean exploitBestSolution_ ;
12863  public boolean hasExploitBestSolution() {
12864  return ((bitField2_ & 0x00020000) != 0);
12865  }
12873  public boolean getExploitBestSolution() {
12874  return exploitBestSolution_;
12875  }
12883  public Builder setExploitBestSolution(boolean value) {
12884  bitField2_ |= 0x00020000;
12885  exploitBestSolution_ = value;
12886  onChanged();
12887  return this;
12888  }
12897  bitField2_ = (bitField2_ & ~0x00020000);
12898  exploitBestSolution_ = false;
12899  onChanged();
12900  return this;
12901  }
12902 
12903  private boolean exploitObjective_ = true;
12912  public boolean hasExploitObjective() {
12913  return ((bitField2_ & 0x00040000) != 0);
12914  }
12923  public boolean getExploitObjective() {
12924  return exploitObjective_;
12925  }
12934  public Builder setExploitObjective(boolean value) {
12935  bitField2_ |= 0x00040000;
12936  exploitObjective_ = value;
12937  onChanged();
12938  return this;
12939  }
12949  bitField2_ = (bitField2_ & ~0x00040000);
12950  exploitObjective_ = true;
12951  onChanged();
12952  return this;
12953  }
12954 
12955  private long pseudoCostReliabilityThreshold_ = 100L;
12965  return ((bitField2_ & 0x00080000) != 0);
12966  }
12976  return pseudoCostReliabilityThreshold_;
12977  }
12987  bitField2_ |= 0x00080000;
12988  pseudoCostReliabilityThreshold_ = value;
12989  onChanged();
12990  return this;
12991  }
13001  bitField2_ = (bitField2_ & ~0x00080000);
13002  pseudoCostReliabilityThreshold_ = 100L;
13003  onChanged();
13004  return this;
13005  }
13006 
13007  private boolean optimizeWithCore_ ;
13018  public boolean hasOptimizeWithCore() {
13019  return ((bitField2_ & 0x00100000) != 0);
13020  }
13031  public boolean getOptimizeWithCore() {
13032  return optimizeWithCore_;
13033  }
13044  public Builder setOptimizeWithCore(boolean value) {
13045  bitField2_ |= 0x00100000;
13046  optimizeWithCore_ = value;
13047  onChanged();
13048  return this;
13049  }
13061  bitField2_ = (bitField2_ & ~0x00100000);
13062  optimizeWithCore_ = false;
13063  onChanged();
13064  return this;
13065  }
13066 
13067  private int binarySearchNumConflicts_ = -1;
13078  public boolean hasBinarySearchNumConflicts() {
13079  return ((bitField2_ & 0x00200000) != 0);
13080  }
13092  return binarySearchNumConflicts_;
13093  }
13105  bitField2_ |= 0x00200000;
13106  binarySearchNumConflicts_ = value;
13107  onChanged();
13108  return this;
13109  }
13121  bitField2_ = (bitField2_ & ~0x00200000);
13122  binarySearchNumConflicts_ = -1;
13123  onChanged();
13124  return this;
13125  }
13126 
13127  private boolean optimizeWithMaxHs_ ;
13140  public boolean hasOptimizeWithMaxHs() {
13141  return ((bitField2_ & 0x00400000) != 0);
13142  }
13155  public boolean getOptimizeWithMaxHs() {
13156  return optimizeWithMaxHs_;
13157  }
13170  public Builder setOptimizeWithMaxHs(boolean value) {
13171  bitField2_ |= 0x00400000;
13172  optimizeWithMaxHs_ = value;
13173  onChanged();
13174  return this;
13175  }
13189  bitField2_ = (bitField2_ & ~0x00400000);
13190  optimizeWithMaxHs_ = false;
13191  onChanged();
13192  return this;
13193  }
13194 
13195  private boolean cpModelPresolve_ = true;
13203  public boolean hasCpModelPresolve() {
13204  return ((bitField2_ & 0x00800000) != 0);
13205  }
13213  public boolean getCpModelPresolve() {
13214  return cpModelPresolve_;
13215  }
13223  public Builder setCpModelPresolve(boolean value) {
13224  bitField2_ |= 0x00800000;
13225  cpModelPresolve_ = value;
13226  onChanged();
13227  return this;
13228  }
13237  bitField2_ = (bitField2_ & ~0x00800000);
13238  cpModelPresolve_ = true;
13239  onChanged();
13240  return this;
13241  }
13242 
13243  private int cpModelProbingLevel_ = 2;
13251  public boolean hasCpModelProbingLevel() {
13252  return ((bitField2_ & 0x01000000) != 0);
13253  }
13261  public int getCpModelProbingLevel() {
13262  return cpModelProbingLevel_;
13263  }
13271  public Builder setCpModelProbingLevel(int value) {
13272  bitField2_ |= 0x01000000;
13273  cpModelProbingLevel_ = value;
13274  onChanged();
13275  return this;
13276  }
13285  bitField2_ = (bitField2_ & ~0x01000000);
13286  cpModelProbingLevel_ = 2;
13287  onChanged();
13288  return this;
13289  }
13290 
13291  private boolean cpModelUseSatPresolve_ = true;
13299  public boolean hasCpModelUseSatPresolve() {
13300  return ((bitField2_ & 0x02000000) != 0);
13301  }
13309  public boolean getCpModelUseSatPresolve() {
13310  return cpModelUseSatPresolve_;
13311  }
13319  public Builder setCpModelUseSatPresolve(boolean value) {
13320  bitField2_ |= 0x02000000;
13321  cpModelUseSatPresolve_ = value;
13322  onChanged();
13323  return this;
13324  }
13333  bitField2_ = (bitField2_ & ~0x02000000);
13334  cpModelUseSatPresolve_ = true;
13335  onChanged();
13336  return this;
13337  }
13338 
13339  private boolean enumerateAllSolutions_ ;
13352  public boolean hasEnumerateAllSolutions() {
13353  return ((bitField2_ & 0x04000000) != 0);
13354  }
13367  public boolean getEnumerateAllSolutions() {
13368  return enumerateAllSolutions_;
13369  }
13382  public Builder setEnumerateAllSolutions(boolean value) {
13383  bitField2_ |= 0x04000000;
13384  enumerateAllSolutions_ = value;
13385  onChanged();
13386  return this;
13387  }
13401  bitField2_ = (bitField2_ & ~0x04000000);
13402  enumerateAllSolutions_ = false;
13403  onChanged();
13404  return this;
13405  }
13406 
13407  private boolean fillTightenedDomainsInResponse_ ;
13420  return ((bitField2_ & 0x08000000) != 0);
13421  }
13434  return fillTightenedDomainsInResponse_;
13435  }
13448  bitField2_ |= 0x08000000;
13449  fillTightenedDomainsInResponse_ = value;
13450  onChanged();
13451  return this;
13452  }
13465  bitField2_ = (bitField2_ & ~0x08000000);
13466  fillTightenedDomainsInResponse_ = false;
13467  onChanged();
13468  return this;
13469  }
13470 
13471  private boolean instantiateAllVariables_ = true;
13480  public boolean hasInstantiateAllVariables() {
13481  return ((bitField2_ & 0x10000000) != 0);
13482  }
13491  public boolean getInstantiateAllVariables() {
13492  return instantiateAllVariables_;
13493  }
13502  public Builder setInstantiateAllVariables(boolean value) {
13503  bitField2_ |= 0x10000000;
13504  instantiateAllVariables_ = value;
13505  onChanged();
13506  return this;
13507  }
13517  bitField2_ = (bitField2_ & ~0x10000000);
13518  instantiateAllVariables_ = true;
13519  onChanged();
13520  return this;
13521  }
13522 
13523  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
13535  return ((bitField2_ & 0x20000000) != 0);
13536  }
13548  return autoDetectGreaterThanAtLeastOneOf_;
13549  }
13561  bitField2_ |= 0x20000000;
13562  autoDetectGreaterThanAtLeastOneOf_ = value;
13563  onChanged();
13564  return this;
13565  }
13577  bitField2_ = (bitField2_ & ~0x20000000);
13578  autoDetectGreaterThanAtLeastOneOf_ = true;
13579  onChanged();
13580  return this;
13581  }
13582 
13583  private boolean stopAfterFirstSolution_ ;
13591  public boolean hasStopAfterFirstSolution() {
13592  return ((bitField2_ & 0x40000000) != 0);
13593  }
13601  public boolean getStopAfterFirstSolution() {
13602  return stopAfterFirstSolution_;
13603  }
13611  public Builder setStopAfterFirstSolution(boolean value) {
13612  bitField2_ |= 0x40000000;
13613  stopAfterFirstSolution_ = value;
13614  onChanged();
13615  return this;
13616  }
13625  bitField2_ = (bitField2_ & ~0x40000000);
13626  stopAfterFirstSolution_ = false;
13627  onChanged();
13628  return this;
13629  }
13630 
13631  private int numSearchWorkers_ = 1;
13640  public boolean hasNumSearchWorkers() {
13641  return ((bitField2_ & 0x80000000) != 0);
13642  }
13651  public int getNumSearchWorkers() {
13652  return numSearchWorkers_;
13653  }
13662  public Builder setNumSearchWorkers(int value) {
13663  bitField2_ |= 0x80000000;
13664  numSearchWorkers_ = value;
13665  onChanged();
13666  return this;
13667  }
13677  bitField2_ = (bitField2_ & ~0x80000000);
13678  numSearchWorkers_ = 1;
13679  onChanged();
13680  return this;
13681  }
13682 
13683  private boolean interleaveSearch_ ;
13694  public boolean hasInterleaveSearch() {
13695  return ((bitField3_ & 0x00000001) != 0);
13696  }
13707  public boolean getInterleaveSearch() {
13708  return interleaveSearch_;
13709  }
13720  public Builder setInterleaveSearch(boolean value) {
13721  bitField3_ |= 0x00000001;
13722  interleaveSearch_ = value;
13723  onChanged();
13724  return this;
13725  }
13737  bitField3_ = (bitField3_ & ~0x00000001);
13738  interleaveSearch_ = false;
13739  onChanged();
13740  return this;
13741  }
13742 
13743  private boolean deterministicParallelSearch_ ;
13754  return ((bitField3_ & 0x00000002) != 0);
13755  }
13766  return deterministicParallelSearch_;
13767  }
13777  public Builder setDeterministicParallelSearch(boolean value) {
13778  bitField3_ |= 0x00000002;
13779  deterministicParallelSearch_ = value;
13780  onChanged();
13781  return this;
13782  }
13793  bitField3_ = (bitField3_ & ~0x00000002);
13794  deterministicParallelSearch_ = false;
13795  onChanged();
13796  return this;
13797  }
13798 
13799  private boolean shareObjectiveBounds_ = true;
13807  public boolean hasShareObjectiveBounds() {
13808  return ((bitField3_ & 0x00000004) != 0);
13809  }
13817  public boolean getShareObjectiveBounds() {
13818  return shareObjectiveBounds_;
13819  }
13827  public Builder setShareObjectiveBounds(boolean value) {
13828  bitField3_ |= 0x00000004;
13829  shareObjectiveBounds_ = value;
13830  onChanged();
13831  return this;
13832  }
13841  bitField3_ = (bitField3_ & ~0x00000004);
13842  shareObjectiveBounds_ = true;
13843  onChanged();
13844  return this;
13845  }
13846 
13847  private boolean shareLevelZeroBounds_ = true;
13855  public boolean hasShareLevelZeroBounds() {
13856  return ((bitField3_ & 0x00000008) != 0);
13857  }
13865  public boolean getShareLevelZeroBounds() {
13866  return shareLevelZeroBounds_;
13867  }
13875  public Builder setShareLevelZeroBounds(boolean value) {
13876  bitField3_ |= 0x00000008;
13877  shareLevelZeroBounds_ = value;
13878  onChanged();
13879  return this;
13880  }
13889  bitField3_ = (bitField3_ & ~0x00000008);
13890  shareLevelZeroBounds_ = true;
13891  onChanged();
13892  return this;
13893  }
13894 
13895  private boolean useLnsOnly_ ;
13903  public boolean hasUseLnsOnly() {
13904  return ((bitField3_ & 0x00000010) != 0);
13905  }
13913  public boolean getUseLnsOnly() {
13914  return useLnsOnly_;
13915  }
13923  public Builder setUseLnsOnly(boolean value) {
13924  bitField3_ |= 0x00000010;
13925  useLnsOnly_ = value;
13926  onChanged();
13927  return this;
13928  }
13937  bitField3_ = (bitField3_ & ~0x00000010);
13938  useLnsOnly_ = false;
13939  onChanged();
13940  return this;
13941  }
13942 
13943  private boolean lnsFocusOnDecisionVariables_ ;
13948  return ((bitField3_ & 0x00000020) != 0);
13949  }
13954  return lnsFocusOnDecisionVariables_;
13955  }
13959  public Builder setLnsFocusOnDecisionVariables(boolean value) {
13960  bitField3_ |= 0x00000020;
13961  lnsFocusOnDecisionVariables_ = value;
13962  onChanged();
13963  return this;
13964  }
13969  bitField3_ = (bitField3_ & ~0x00000020);
13970  lnsFocusOnDecisionVariables_ = false;
13971  onChanged();
13972  return this;
13973  }
13974 
13975  private boolean useRinsLns_ = true;
13983  public boolean hasUseRinsLns() {
13984  return ((bitField3_ & 0x00000040) != 0);
13985  }
13993  public boolean getUseRinsLns() {
13994  return useRinsLns_;
13995  }
14003  public Builder setUseRinsLns(boolean value) {
14004  bitField3_ |= 0x00000040;
14005  useRinsLns_ = value;
14006  onChanged();
14007  return this;
14008  }
14017  bitField3_ = (bitField3_ & ~0x00000040);
14018  useRinsLns_ = true;
14019  onChanged();
14020  return this;
14021  }
14022 
14023  private boolean randomizeSearch_ ;
14031  public boolean hasRandomizeSearch() {
14032  return ((bitField3_ & 0x00000080) != 0);
14033  }
14041  public boolean getRandomizeSearch() {
14042  return randomizeSearch_;
14043  }
14051  public Builder setRandomizeSearch(boolean value) {
14052  bitField3_ |= 0x00000080;
14053  randomizeSearch_ = value;
14054  onChanged();
14055  return this;
14056  }
14065  bitField3_ = (bitField3_ & ~0x00000080);
14066  randomizeSearch_ = false;
14067  onChanged();
14068  return this;
14069  }
14070 
14071  private long searchRandomizationTolerance_ ;
14086  return ((bitField3_ & 0x00000100) != 0);
14087  }
14102  return searchRandomizationTolerance_;
14103  }
14118  bitField3_ |= 0x00000100;
14119  searchRandomizationTolerance_ = value;
14120  onChanged();
14121  return this;
14122  }
14137  bitField3_ = (bitField3_ & ~0x00000100);
14138  searchRandomizationTolerance_ = 0L;
14139  onChanged();
14140  return this;
14141  }
14142 
14143  private boolean useOptionalVariables_ = true;
14153  public boolean hasUseOptionalVariables() {
14154  return ((bitField3_ & 0x00000200) != 0);
14155  }
14165  public boolean getUseOptionalVariables() {
14166  return useOptionalVariables_;
14167  }
14177  public Builder setUseOptionalVariables(boolean value) {
14178  bitField3_ |= 0x00000200;
14179  useOptionalVariables_ = value;
14180  onChanged();
14181  return this;
14182  }
14193  bitField3_ = (bitField3_ & ~0x00000200);
14194  useOptionalVariables_ = true;
14195  onChanged();
14196  return this;
14197  }
14198 
14199  private boolean useExactLpReason_ = true;
14210  public boolean hasUseExactLpReason() {
14211  return ((bitField3_ & 0x00000400) != 0);
14212  }
14223  public boolean getUseExactLpReason() {
14224  return useExactLpReason_;
14225  }
14236  public Builder setUseExactLpReason(boolean value) {
14237  bitField3_ |= 0x00000400;
14238  useExactLpReason_ = value;
14239  onChanged();
14240  return this;
14241  }
14253  bitField3_ = (bitField3_ & ~0x00000400);
14254  useExactLpReason_ = true;
14255  onChanged();
14256  return this;
14257  }
14258 
14259  private boolean useCombinedNoOverlap_ ;
14269  public boolean hasUseCombinedNoOverlap() {
14270  return ((bitField3_ & 0x00000800) != 0);
14271  }
14281  public boolean getUseCombinedNoOverlap() {
14282  return useCombinedNoOverlap_;
14283  }
14293  public Builder setUseCombinedNoOverlap(boolean value) {
14294  bitField3_ |= 0x00000800;
14295  useCombinedNoOverlap_ = value;
14296  onChanged();
14297  return this;
14298  }
14309  bitField3_ = (bitField3_ & ~0x00000800);
14310  useCombinedNoOverlap_ = false;
14311  onChanged();
14312  return this;
14313  }
14314 
14315  private double mipMaxBound_ = 10000000D;
14325  public boolean hasMipMaxBound() {
14326  return ((bitField3_ & 0x00001000) != 0);
14327  }
14337  public double getMipMaxBound() {
14338  return mipMaxBound_;
14339  }
14349  public Builder setMipMaxBound(double value) {
14350  bitField3_ |= 0x00001000;
14351  mipMaxBound_ = value;
14352  onChanged();
14353  return this;
14354  }
14365  bitField3_ = (bitField3_ & ~0x00001000);
14366  mipMaxBound_ = 10000000D;
14367  onChanged();
14368  return this;
14369  }
14370 
14371  private double mipVarScaling_ = 1D;
14381  public boolean hasMipVarScaling() {
14382  return ((bitField3_ & 0x00002000) != 0);
14383  }
14393  public double getMipVarScaling() {
14394  return mipVarScaling_;
14395  }
14405  public Builder setMipVarScaling(double value) {
14406  bitField3_ |= 0x00002000;
14407  mipVarScaling_ = value;
14408  onChanged();
14409  return this;
14410  }
14421  bitField3_ = (bitField3_ & ~0x00002000);
14422  mipVarScaling_ = 1D;
14423  onChanged();
14424  return this;
14425  }
14426 
14427  private double mipWantedPrecision_ = 1e-06D;
14443  public boolean hasMipWantedPrecision() {
14444  return ((bitField3_ & 0x00004000) != 0);
14445  }
14461  public double getMipWantedPrecision() {
14462  return mipWantedPrecision_;
14463  }
14479  public Builder setMipWantedPrecision(double value) {
14480  bitField3_ |= 0x00004000;
14481  mipWantedPrecision_ = value;
14482  onChanged();
14483  return this;
14484  }
14501  bitField3_ = (bitField3_ & ~0x00004000);
14502  mipWantedPrecision_ = 1e-06D;
14503  onChanged();
14504  return this;
14505  }
14506 
14507  private int mipMaxActivityExponent_ = 53;
14521  public boolean hasMipMaxActivityExponent() {
14522  return ((bitField3_ & 0x00008000) != 0);
14523  }
14538  return mipMaxActivityExponent_;
14539  }
14554  bitField3_ |= 0x00008000;
14555  mipMaxActivityExponent_ = value;
14556  onChanged();
14557  return this;
14558  }
14573  bitField3_ = (bitField3_ & ~0x00008000);
14574  mipMaxActivityExponent_ = 53;
14575  onChanged();
14576  return this;
14577  }
14578 
14579  private double mipCheckPrecision_ = 0.0001D;
14590  public boolean hasMipCheckPrecision() {
14591  return ((bitField3_ & 0x00010000) != 0);
14592  }
14603  public double getMipCheckPrecision() {
14604  return mipCheckPrecision_;
14605  }
14616  public Builder setMipCheckPrecision(double value) {
14617  bitField3_ |= 0x00010000;
14618  mipCheckPrecision_ = value;
14619  onChanged();
14620  return this;
14621  }
14633  bitField3_ = (bitField3_ & ~0x00010000);
14634  mipCheckPrecision_ = 0.0001D;
14635  onChanged();
14636  return this;
14637  }
14638 
14639  private boolean catchSigintSignal_ = true;
14649  public boolean hasCatchSigintSignal() {
14650  return ((bitField3_ & 0x00020000) != 0);
14651  }
14661  public boolean getCatchSigintSignal() {
14662  return catchSigintSignal_;
14663  }
14673  public Builder setCatchSigintSignal(boolean value) {
14674  bitField3_ |= 0x00020000;
14675  catchSigintSignal_ = value;
14676  onChanged();
14677  return this;
14678  }
14689  bitField3_ = (bitField3_ & ~0x00020000);
14690  catchSigintSignal_ = true;
14691  onChanged();
14692  return this;
14693  }
14694  @java.lang.Override
14696  final com.google.protobuf.UnknownFieldSet unknownFields) {
14697  return super.setUnknownFields(unknownFields);
14698  }
14699 
14700  @java.lang.Override
14702  final com.google.protobuf.UnknownFieldSet unknownFields) {
14703  return super.mergeUnknownFields(unknownFields);
14704  }
14705 
14706 
14707  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
14708  }
14709 
14710  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
14711  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
14712  static {
14713  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
14714  }
14715 
14717  return DEFAULT_INSTANCE;
14718  }
14719 
14720  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
14721  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
14722  @java.lang.Override
14723  public SatParameters parsePartialFrom(
14724  com.google.protobuf.CodedInputStream input,
14725  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14726  throws com.google.protobuf.InvalidProtocolBufferException {
14727  return new SatParameters(input, extensionRegistry);
14728  }
14729  };
14730 
14731  public static com.google.protobuf.Parser<SatParameters> parser() {
14732  return PARSER;
14733  }
14734 
14735  @java.lang.Override
14736  public com.google.protobuf.Parser<SatParameters> getParserForType() {
14737  return PARSER;
14738  }
14739 
14740  @java.lang.Override
14742  return DEFAULT_INSTANCE;
14743  }
14744 
14745 }
14746 
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];