SatParameters.java
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/sat/sat_parameters.proto
3 
4 package com.google.ortools.sat;
5 
15 public final class SatParameters extends
16  com.google.protobuf.GeneratedMessageV3 implements
17  // @@protoc_insertion_point(message_implements:operations_research.sat.SatParameters)
19 private static final long serialVersionUID = 0L;
20  // Use SatParameters.newBuilder() to construct.
21  private SatParameters(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
22  super(builder);
23  }
24  private SatParameters() {
25  preferredVariableOrder_ = 0;
26  initialPolarity_ = 1;
27  usePhaseSaving_ = true;
28  minimizationAlgorithm_ = 2;
29  binaryMinimizationAlgorithm_ = 1;
30  subsumptionDuringConflictAnalysis_ = true;
31  clauseCleanupPeriod_ = 10000;
32  clauseCleanupTarget_ = 10000;
33  clauseCleanupProtection_ = 0;
34  clauseCleanupLbdBound_ = 5;
35  clauseCleanupOrdering_ = 0;
36  pbCleanupIncrement_ = 200;
37  pbCleanupRatio_ = 0.5D;
38  minimizeWithPropagationRestartPeriod_ = 10;
39  minimizeWithPropagationNumDecisions_ = 1000;
40  variableActivityDecay_ = 0.8D;
41  maxVariableActivityValue_ = 1e+100D;
42  glucoseMaxDecay_ = 0.95D;
43  glucoseDecayIncrement_ = 0.01D;
44  glucoseDecayIncrementPeriod_ = 5000;
45  clauseActivityDecay_ = 0.999D;
46  maxClauseActivityValue_ = 1e+20D;
47  restartAlgorithms_ = java.util.Collections.emptyList();
48  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
49  restartPeriod_ = 50;
50  restartRunningWindowSize_ = 50;
51  restartDlAverageRatio_ = 1D;
52  restartLbdAverageRatio_ = 1D;
53  blockingRestartWindowSize_ = 5000;
54  blockingRestartMultiplier_ = 1.4D;
55  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
56  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
57  maxNumberOfConflicts_ = 9223372036854775807L;
58  maxMemoryInMb_ = 10000L;
59  treatBinaryClausesSeparately_ = true;
60  randomSeed_ = 1;
61  countAssumptionLevelsInLbd_ = true;
62  presolveBveThreshold_ = 500;
63  presolveBveClauseWeight_ = 3;
64  presolveProbingDeterministicTimeLimit_ = 30D;
65  presolveBlockedClause_ = true;
66  presolveUseBva_ = true;
67  presolveBvaThreshold_ = 1;
68  useOptimizationHints_ = true;
69  minimizeCore_ = true;
70  findMultipleCores_ = true;
71  coverOptimization_ = true;
72  maxSatAssumptionOrder_ = 0;
73  maxSatStratification_ = 1;
74  usePrecedencesInDisjunctiveConstraint_ = true;
75  useDisjunctiveConstraintInCumulativeConstraint_ = true;
76  linearizationLevel_ = 1;
77  booleanEncodingLevel_ = 1;
78  maxNumCuts_ = 1000;
79  addMirCuts_ = true;
80  useMirRounding_ = true;
81  maxIntegerRoundingScaling_ = 600;
82  addLpConstraintsLazily_ = true;
83  maxInactiveCount_ = 1000L;
84  constraintRemovalBatchSize_ = 100L;
85  searchBranching_ = 0;
86  exploitIntegerLpSolution_ = true;
87  exploitAllLpSolution_ = true;
88  exploitObjective_ = true;
89  pseudoCostReliabilityThreshold_ = 100L;
90  binarySearchNumConflicts_ = -1;
91  cpModelPresolve_ = true;
92  cpModelProbingLevel_ = 2;
93  cpModelUseSatPresolve_ = true;
94  instantiateAllVariables_ = true;
95  autoDetectGreaterThanAtLeastOneOf_ = true;
96  numSearchWorkers_ = 1;
97  shareObjectiveBounds_ = true;
98  shareLevelZeroBounds_ = true;
99  useOptionalVariables_ = true;
100  useExactLpReason_ = true;
101  mipMaxBound_ = 10000000D;
102  mipVarScaling_ = 1D;
103  mipWantedPrecision_ = 1e-06D;
104  mipMaxActivityExponent_ = 53;
105  mipCheckPrecision_ = 0.0001D;
106  catchSigintSignal_ = true;
107  }
108 
109  @java.lang.Override
110  @SuppressWarnings({"unused"})
111  protected java.lang.Object newInstance(
112  UnusedPrivateParameter unused) {
113  return new SatParameters();
114  }
115 
116  @java.lang.Override
117  public final com.google.protobuf.UnknownFieldSet
119  return this.unknownFields;
120  }
121  private SatParameters(
122  com.google.protobuf.CodedInputStream input,
123  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
124  throws com.google.protobuf.InvalidProtocolBufferException {
125  this();
126  if (extensionRegistry == null) {
127  throw new java.lang.NullPointerException();
128  }
129  int mutable_bitField0_ = 0;
130  int mutable_bitField1_ = 0;
131  int mutable_bitField2_ = 0;
132  int mutable_bitField3_ = 0;
133  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
134  com.google.protobuf.UnknownFieldSet.newBuilder();
135  try {
136  boolean done = false;
137  while (!done) {
138  int tag = input.readTag();
139  switch (tag) {
140  case 0:
141  done = true;
142  break;
143  case 8: {
144  int rawValue = input.readEnum();
145  @SuppressWarnings("deprecation")
146  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
147  if (value == null) {
148  unknownFields.mergeVarintField(1, rawValue);
149  } else {
150  bitField0_ |= 0x00000001;
151  preferredVariableOrder_ = rawValue;
152  }
153  break;
154  }
155  case 16: {
156  int rawValue = input.readEnum();
157  @SuppressWarnings("deprecation")
158  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
159  if (value == null) {
160  unknownFields.mergeVarintField(2, rawValue);
161  } else {
162  bitField0_ |= 0x00000002;
163  initialPolarity_ = rawValue;
164  }
165  break;
166  }
167  case 32: {
168  int rawValue = input.readEnum();
169  @SuppressWarnings("deprecation")
170  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
171  if (value == null) {
172  unknownFields.mergeVarintField(4, rawValue);
173  } else {
174  bitField0_ |= 0x00000100;
175  minimizationAlgorithm_ = rawValue;
176  }
177  break;
178  }
179  case 88: {
180  bitField0_ |= 0x00000800;
181  clauseCleanupPeriod_ = input.readInt32();
182  break;
183  }
184  case 104: {
185  bitField0_ |= 0x00001000;
186  clauseCleanupTarget_ = input.readInt32();
187  break;
188  }
189  case 121: {
190  bitField0_ |= 0x00100000;
191  variableActivityDecay_ = input.readDouble();
192  break;
193  }
194  case 129: {
195  bitField0_ |= 0x00200000;
196  maxVariableActivityValue_ = input.readDouble();
197  break;
198  }
199  case 137: {
200  bitField0_ |= 0x02000000;
201  clauseActivityDecay_ = input.readDouble();
202  break;
203  }
204  case 145: {
205  bitField0_ |= 0x04000000;
206  maxClauseActivityValue_ = input.readDouble();
207  break;
208  }
209  case 177: {
210  bitField0_ |= 0x00400000;
211  glucoseMaxDecay_ = input.readDouble();
212  break;
213  }
214  case 185: {
215  bitField0_ |= 0x00800000;
216  glucoseDecayIncrement_ = input.readDouble();
217  break;
218  }
219  case 192: {
220  bitField0_ |= 0x01000000;
221  glucoseDecayIncrementPeriod_ = input.readInt32();
222  break;
223  }
224  case 240: {
225  bitField0_ |= 0x10000000;
226  restartPeriod_ = input.readInt32();
227  break;
228  }
229  case 248: {
230  bitField1_ |= 0x00000400;
231  randomSeed_ = input.readInt32();
232  break;
233  }
234  case 257: {
235  bitField0_ |= 0x00000010;
236  randomBranchesRatio_ = input.readDouble();
237  break;
238  }
239  case 264: {
240  bitField1_ |= 0x00000200;
241  treatBinaryClausesSeparately_ = input.readBool();
242  break;
243  }
244  case 272: {
245  int rawValue = input.readEnum();
246  @SuppressWarnings("deprecation")
247  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
248  if (value == null) {
249  unknownFields.mergeVarintField(34, rawValue);
250  } else {
251  bitField0_ |= 0x00000200;
252  binaryMinimizationAlgorithm_ = rawValue;
253  }
254  break;
255  }
256  case 280: {
257  bitField1_ |= 0x00200000;
258  useOptimizationHints_ = input.readBool();
259  break;
260  }
261  case 289: {
262  bitField1_ |= 0x00000020;
263  maxTimeInSeconds_ = input.readDouble();
264  break;
265  }
266  case 296: {
267  bitField1_ |= 0x00000080;
268  maxNumberOfConflicts_ = input.readInt64();
269  break;
270  }
271  case 320: {
272  bitField1_ |= 0x00000100;
273  maxMemoryInMb_ = input.readInt64();
274  break;
275  }
276  case 328: {
277  bitField1_ |= 0x00000800;
278  logSearchProgress_ = input.readBool();
279  break;
280  }
281  case 344: {
282  bitField1_ |= 0x00001000;
283  usePbResolution_ = input.readBool();
284  break;
285  }
286  case 352: {
287  bitField0_ |= 0x00000004;
288  usePhaseSaving_ = input.readBool();
289  break;
290  }
291  case 361: {
292  bitField0_ |= 0x00000008;
293  randomPolarityRatio_ = input.readDouble();
294  break;
295  }
296  case 368: {
297  bitField0_ |= 0x00010000;
298  pbCleanupIncrement_ = input.readInt32();
299  break;
300  }
301  case 377: {
302  bitField0_ |= 0x00020000;
303  pbCleanupRatio_ = input.readDouble();
304  break;
305  }
306  case 384: {
307  bitField1_ |= 0x00002000;
308  minimizeReductionDuringPbResolution_ = input.readBool();
309  break;
310  }
311  case 392: {
312  bitField1_ |= 0x00004000;
313  countAssumptionLevelsInLbd_ = input.readBool();
314  break;
315  }
316  case 400: {
317  bitField1_ |= 0x00400000;
318  minimizeCore_ = input.readBool();
319  break;
320  }
321  case 408: {
322  int rawValue = input.readEnum();
323  @SuppressWarnings("deprecation")
324  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
325  if (value == null) {
326  unknownFields.mergeVarintField(51, rawValue);
327  } else {
328  bitField1_ |= 0x02000000;
329  maxSatAssumptionOrder_ = rawValue;
330  }
331  break;
332  }
333  case 416: {
334  bitField1_ |= 0x04000000;
335  maxSatReverseAssumptionOrder_ = input.readBool();
336  break;
337  }
338  case 424: {
339  int rawValue = input.readEnum();
340  @SuppressWarnings("deprecation")
341  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
342  if (value == null) {
343  unknownFields.mergeVarintField(53, rawValue);
344  } else {
345  bitField1_ |= 0x08000000;
346  maxSatStratification_ = rawValue;
347  }
348  break;
349  }
350  case 432: {
351  bitField1_ |= 0x00008000;
352  presolveBveThreshold_ = input.readInt32();
353  break;
354  }
355  case 440: {
356  bitField1_ |= 0x00010000;
357  presolveBveClauseWeight_ = input.readInt32();
358  break;
359  }
360  case 448: {
361  bitField0_ |= 0x00000400;
362  subsumptionDuringConflictAnalysis_ = input.readBool();
363  break;
364  }
365  case 457: {
366  bitField1_ |= 0x00020000;
367  presolveProbingDeterministicTimeLimit_ = input.readDouble();
368  break;
369  }
370  case 464: {
371  int rawValue = input.readEnum();
372  @SuppressWarnings("deprecation")
373  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
374  if (value == null) {
375  unknownFields.mergeVarintField(58, rawValue);
376  } else {
377  bitField0_ |= 0x00002000;
378  clauseCleanupProtection_ = rawValue;
379  }
380  break;
381  }
382  case 472: {
383  bitField0_ |= 0x00004000;
384  clauseCleanupLbdBound_ = input.readInt32();
385  break;
386  }
387  case 480: {
388  int rawValue = input.readEnum();
389  @SuppressWarnings("deprecation")
390  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
391  if (value == null) {
392  unknownFields.mergeVarintField(60, rawValue);
393  } else {
394  bitField0_ |= 0x00008000;
395  clauseCleanupOrdering_ = rawValue;
396  }
397  break;
398  }
399  case 488: {
400  int rawValue = input.readEnum();
401  @SuppressWarnings("deprecation")
402  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
403  if (value == null) {
404  unknownFields.mergeVarintField(61, rawValue);
405  } else {
406  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
407  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
408  mutable_bitField0_ |= 0x08000000;
409  }
410  restartAlgorithms_.add(rawValue);
411  }
412  break;
413  }
414  case 490: {
415  int length = input.readRawVarint32();
416  int oldLimit = input.pushLimit(length);
417  while(input.getBytesUntilLimit() > 0) {
418  int rawValue = input.readEnum();
419  @SuppressWarnings("deprecation")
420  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
421  if (value == null) {
422  unknownFields.mergeVarintField(61, rawValue);
423  } else {
424  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
425  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
426  mutable_bitField0_ |= 0x08000000;
427  }
428  restartAlgorithms_.add(rawValue);
429  }
430  }
431  input.popLimit(oldLimit);
432  break;
433  }
434  case 496: {
435  bitField0_ |= 0x20000000;
436  restartRunningWindowSize_ = input.readInt32();
437  break;
438  }
439  case 505: {
440  bitField0_ |= 0x40000000;
441  restartDlAverageRatio_ = input.readDouble();
442  break;
443  }
444  case 512: {
445  bitField1_ |= 0x00000001;
446  useBlockingRestart_ = input.readBool();
447  break;
448  }
449  case 520: {
450  bitField1_ |= 0x00000002;
451  blockingRestartWindowSize_ = input.readInt32();
452  break;
453  }
454  case 529: {
455  bitField1_ |= 0x00000004;
456  blockingRestartMultiplier_ = input.readDouble();
457  break;
458  }
459  case 537: {
460  bitField1_ |= 0x00000040;
461  maxDeterministicTime_ = input.readDouble();
462  break;
463  }
464  case 544: {
465  bitField1_ |= 0x00000008;
466  numConflictsBeforeStrategyChanges_ = input.readInt32();
467  break;
468  }
469  case 553: {
470  bitField1_ |= 0x00000010;
471  strategyChangeIncreaseRatio_ = input.readDouble();
472  break;
473  }
474  case 562: {
475  com.google.protobuf.ByteString bs = input.readBytes();
476  bitField0_ |= 0x08000000;
477  defaultRestartAlgorithms_ = bs;
478  break;
479  }
480  case 569: {
481  bitField0_ |= 0x80000000;
482  restartLbdAverageRatio_ = input.readDouble();
483  break;
484  }
485  case 576: {
486  bitField1_ |= 0x00080000;
487  presolveUseBva_ = input.readBool();
488  break;
489  }
490  case 584: {
491  bitField1_ |= 0x00100000;
492  presolveBvaThreshold_ = input.readInt32();
493  break;
494  }
495  case 592: {
496  bitField1_ |= 0x10000000;
497  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
498  break;
499  }
500  case 600: {
501  bitField0_ |= 0x00000020;
502  useErwaHeuristic_ = input.readBool();
503  break;
504  }
505  case 609: {
506  bitField0_ |= 0x00000040;
507  initialVariablesActivity_ = input.readDouble();
508  break;
509  }
510  case 616: {
511  bitField0_ |= 0x00000080;
512  alsoBumpVariablesInConflictReasons_ = input.readBool();
513  break;
514  }
515  case 624: {
516  bitField1_ |= 0x20000000;
517  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
518  break;
519  }
520  case 632: {
521  bitField1_ |= 0x40000000;
522  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
523  break;
524  }
525  case 640: {
526  bitField1_ |= 0x80000000;
527  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
528  break;
529  }
530  case 656: {
531  int rawValue = input.readEnum();
532  @SuppressWarnings("deprecation")
533  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
534  if (value == null) {
535  unknownFields.mergeVarintField(82, rawValue);
536  } else {
537  bitField2_ |= 0x00002000;
538  searchBranching_ = rawValue;
539  }
540  break;
541  }
542  case 664: {
543  bitField2_ |= 0x00080000;
544  optimizeWithCore_ = input.readBool();
545  break;
546  }
547  case 672: {
548  bitField1_ |= 0x00800000;
549  findMultipleCores_ = input.readBool();
550  break;
551  }
552  case 680: {
553  bitField2_ |= 0x00200000;
554  optimizeWithMaxHs_ = input.readBool();
555  break;
556  }
557  case 688: {
558  bitField2_ |= 0x00400000;
559  cpModelPresolve_ = input.readBool();
560  break;
561  }
562  case 696: {
563  bitField2_ |= 0x02000000;
564  enumerateAllSolutions_ = input.readBool();
565  break;
566  }
567  case 704: {
568  bitField1_ |= 0x00040000;
569  presolveBlockedClause_ = input.readBool();
570  break;
571  }
572  case 712: {
573  bitField1_ |= 0x01000000;
574  coverOptimization_ = input.readBool();
575  break;
576  }
577  case 720: {
578  bitField2_ |= 0x00000001;
579  linearizationLevel_ = input.readInt32();
580  break;
581  }
582  case 728: {
583  bitField2_ |= 0x00000004;
584  maxNumCuts_ = input.readInt32();
585  break;
586  }
587  case 736: {
588  bitField2_ |= 0x00000008;
589  onlyAddCutsAtLevelZero_ = input.readBool();
590  break;
591  }
592  case 744: {
593  bitField2_ |= 0x01000000;
594  cpModelUseSatPresolve_ = input.readBool();
595  break;
596  }
597  case 752: {
598  bitField2_ |= 0x00004000;
599  exploitIntegerLpSolution_ = input.readBool();
600  break;
601  }
602  case 760: {
603  bitField2_ |= 0x10000000;
604  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
605  break;
606  }
607  case 768: {
608  bitField0_ |= 0x00040000;
609  minimizeWithPropagationRestartPeriod_ = input.readInt32();
610  break;
611  }
612  case 776: {
613  bitField0_ |= 0x00080000;
614  minimizeWithPropagationNumDecisions_ = input.readInt32();
615  break;
616  }
617  case 784: {
618  bitField2_ |= 0x20000000;
619  stopAfterFirstSolution_ = input.readBool();
620  break;
621  }
622  case 792: {
623  bitField2_ |= 0x00100000;
624  binarySearchNumConflicts_ = input.readInt32();
625  break;
626  }
627  case 800: {
628  bitField2_ |= 0x40000000;
629  numSearchWorkers_ = input.readInt32();
630  break;
631  }
632  case 808: {
633  bitField3_ |= 0x00000008;
634  useLnsOnly_ = input.readBool();
635  break;
636  }
637  case 824: {
638  bitField3_ |= 0x00000040;
639  randomizeSearch_ = input.readBool();
640  break;
641  }
642  case 832: {
643  bitField3_ |= 0x00000080;
644  searchRandomizationTolerance_ = input.readInt64();
645  break;
646  }
647  case 840: {
648  bitField3_ |= 0x00000010;
649  lnsFocusOnDecisionVariables_ = input.readBool();
650  break;
651  }
652  case 848: {
653  bitField2_ |= 0x08000000;
654  instantiateAllVariables_ = input.readBool();
655  break;
656  }
657  case 856: {
658  bitField2_ |= 0x00000002;
659  booleanEncodingLevel_ = input.readInt32();
660  break;
661  }
662  case 864: {
663  bitField3_ |= 0x00000100;
664  useOptionalVariables_ = input.readBool();
665  break;
666  }
667  case 872: {
668  bitField3_ |= 0x00000200;
669  useExactLpReason_ = input.readBool();
670  break;
671  }
672  case 880: {
673  bitField2_ |= 0x00800000;
674  cpModelProbingLevel_ = input.readInt32();
675  break;
676  }
677  case 888: {
678  bitField2_ |= 0x00000010;
679  addKnapsackCuts_ = input.readBool();
680  break;
681  }
682  case 896: {
683  bitField2_ |= 0x00000200;
684  addLpConstraintsLazily_ = input.readBool();
685  break;
686  }
687  case 904: {
688  bitField3_ |= 0x00000002;
689  shareObjectiveBounds_ = input.readBool();
690  break;
691  }
692  case 912: {
693  bitField3_ |= 0x00000004;
694  shareLevelZeroBounds_ = input.readBool();
695  break;
696  }
697  case 921: {
698  bitField2_ |= 0x00000400;
699  minOrthogonalityForLpConstraints_ = input.readDouble();
700  break;
701  }
702  case 928: {
703  bitField2_ |= 0x00008000;
704  exploitAllLpSolution_ = input.readBool();
705  break;
706  }
707  case 936: {
708  bitField2_ |= 0x00000020;
709  addCgCuts_ = input.readBool();
710  break;
711  }
712  case 944: {
713  bitField2_ |= 0x00000080;
714  useMirRounding_ = input.readBool();
715  break;
716  }
717  case 952: {
718  bitField2_ |= 0x00000100;
719  maxIntegerRoundingScaling_ = input.readInt32();
720  break;
721  }
722  case 960: {
723  bitField2_ |= 0x00000040;
724  addMirCuts_ = input.readBool();
725  break;
726  }
727  case 968: {
728  bitField2_ |= 0x00000800;
729  maxInactiveCount_ = input.readInt64();
730  break;
731  }
732  case 976: {
733  bitField2_ |= 0x00001000;
734  constraintRemovalBatchSize_ = input.readInt64();
735  break;
736  }
737  case 984: {
738  bitField2_ |= 0x00040000;
739  pseudoCostReliabilityThreshold_ = input.readInt64();
740  break;
741  }
742  case 993: {
743  bitField3_ |= 0x00000800;
744  mipMaxBound_ = input.readDouble();
745  break;
746  }
747  case 1001: {
748  bitField3_ |= 0x00001000;
749  mipVarScaling_ = input.readDouble();
750  break;
751  }
752  case 1009: {
753  bitField3_ |= 0x00002000;
754  mipWantedPrecision_ = input.readDouble();
755  break;
756  }
757  case 1016: {
758  bitField3_ |= 0x00004000;
759  mipMaxActivityExponent_ = input.readInt32();
760  break;
761  }
762  case 1025: {
763  bitField3_ |= 0x00008000;
764  mipCheckPrecision_ = input.readDouble();
765  break;
766  }
767  case 1032: {
768  bitField3_ |= 0x00000020;
769  useRinsLns_ = input.readBool();
770  break;
771  }
772  case 1040: {
773  bitField2_ |= 0x00010000;
774  exploitBestSolution_ = input.readBool();
775  break;
776  }
777  case 1048: {
778  bitField2_ |= 0x00020000;
779  exploitObjective_ = input.readBool();
780  break;
781  }
782  case 1056: {
783  bitField2_ |= 0x04000000;
784  fillTightenedDomainsInResponse_ = input.readBool();
785  break;
786  }
787  case 1064: {
788  bitField3_ |= 0x00000400;
789  useCombinedNoOverlap_ = input.readBool();
790  break;
791  }
792  case 1072: {
793  bitField3_ |= 0x00000001;
794  deterministicParallelSearch_ = input.readBool();
795  break;
796  }
797  case 1080: {
798  bitField3_ |= 0x00010000;
799  catchSigintSignal_ = input.readBool();
800  break;
801  }
802  case 1088: {
803  bitField2_ |= 0x80000000;
804  interleaveSearch_ = input.readBool();
805  break;
806  }
807  default: {
808  if (!parseUnknownField(
809  input, unknownFields, extensionRegistry, tag)) {
810  done = true;
811  }
812  break;
813  }
814  }
815  }
816  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
817  throw e.setUnfinishedMessage(this);
818  } catch (java.io.IOException e) {
819  throw new com.google.protobuf.InvalidProtocolBufferException(
820  e).setUnfinishedMessage(this);
821  } finally {
822  if (((mutable_bitField0_ & 0x08000000) != 0)) {
823  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
824  }
825  this.unknownFields = unknownFields.build();
826  makeExtensionsImmutable();
827  }
828  }
829  public static final com.google.protobuf.Descriptors.Descriptor
831  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
832  }
833 
834  @java.lang.Override
835  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
837  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
838  .ensureFieldAccessorsInitialized(
840  }
841 
850  public enum VariableOrder
851  implements com.google.protobuf.ProtocolMessageEnum {
868  ;
869 
877  public static final int IN_ORDER_VALUE = 0;
881  public static final int IN_REVERSE_ORDER_VALUE = 1;
885  public static final int IN_RANDOM_ORDER_VALUE = 2;
886 
887 
888  public final int getNumber() {
889  return value;
890  }
891 
895  @java.lang.Deprecated
896  public static VariableOrder valueOf(int value) {
897  return forNumber(value);
898  }
899 
900  public static VariableOrder forNumber(int value) {
901  switch (value) {
902  case 0: return IN_ORDER;
903  case 1: return IN_REVERSE_ORDER;
904  case 2: return IN_RANDOM_ORDER;
905  default: return null;
906  }
907  }
908 
909  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
911  return internalValueMap;
912  }
913  private static final com.google.protobuf.Internal.EnumLiteMap<
914  VariableOrder> internalValueMap =
915  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
916  public VariableOrder findValueByNumber(int number) {
917  return VariableOrder.forNumber(number);
918  }
919  };
920 
921  public final com.google.protobuf.Descriptors.EnumValueDescriptor
923  return getDescriptor().getValues().get(ordinal());
924  }
925  public final com.google.protobuf.Descriptors.EnumDescriptor
927  return getDescriptor();
928  }
929  public static final com.google.protobuf.Descriptors.EnumDescriptor
931  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
932  }
933 
934  private static final VariableOrder[] VALUES = values();
935 
936  public static VariableOrder valueOf(
937  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
938  if (desc.getType() != getDescriptor()) {
939  throw new java.lang.IllegalArgumentException(
940  "EnumValueDescriptor is not for this type.");
941  }
942  return VALUES[desc.getIndex()];
943  }
944 
945  private final int value;
946 
947  private VariableOrder(int value) {
948  this.value = value;
949  }
950 
951  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
952  }
953 
965  public enum Polarity
966  implements com.google.protobuf.ProtocolMessageEnum {
998  ;
999 
1003  public static final int POLARITY_TRUE_VALUE = 0;
1007  public static final int POLARITY_FALSE_VALUE = 1;
1011  public static final int POLARITY_RANDOM_VALUE = 2;
1022  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1030  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1031 
1032 
1033  public final int getNumber() {
1034  return value;
1035  }
1036 
1040  @java.lang.Deprecated
1041  public static Polarity valueOf(int value) {
1042  return forNumber(value);
1043  }
1044 
1045  public static Polarity forNumber(int value) {
1046  switch (value) {
1047  case 0: return POLARITY_TRUE;
1048  case 1: return POLARITY_FALSE;
1049  case 2: return POLARITY_RANDOM;
1050  case 3: return POLARITY_WEIGHTED_SIGN;
1051  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1052  default: return null;
1053  }
1054  }
1055 
1056  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1058  return internalValueMap;
1059  }
1060  private static final com.google.protobuf.Internal.EnumLiteMap<
1061  Polarity> internalValueMap =
1062  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1063  public Polarity findValueByNumber(int number) {
1064  return Polarity.forNumber(number);
1065  }
1066  };
1067 
1068  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1070  return getDescriptor().getValues().get(ordinal());
1071  }
1072  public final com.google.protobuf.Descriptors.EnumDescriptor
1074  return getDescriptor();
1075  }
1076  public static final com.google.protobuf.Descriptors.EnumDescriptor
1078  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1079  }
1080 
1081  private static final Polarity[] VALUES = values();
1082 
1083  public static Polarity valueOf(
1084  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1085  if (desc.getType() != getDescriptor()) {
1086  throw new java.lang.IllegalArgumentException(
1087  "EnumValueDescriptor is not for this type.");
1088  }
1089  return VALUES[desc.getIndex()];
1090  }
1091 
1092  private final int value;
1093 
1094  private Polarity(int value) {
1095  this.value = value;
1096  }
1097 
1098  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1099  }
1100 
1109  implements com.google.protobuf.ProtocolMessageEnum {
1113  NONE(0),
1126  ;
1127 
1131  public static final int NONE_VALUE = 0;
1135  public static final int SIMPLE_VALUE = 1;
1139  public static final int RECURSIVE_VALUE = 2;
1143  public static final int EXPERIMENTAL_VALUE = 3;
1144 
1145 
1146  public final int getNumber() {
1147  return value;
1148  }
1149 
1153  @java.lang.Deprecated
1154  public static ConflictMinimizationAlgorithm valueOf(int value) {
1155  return forNumber(value);
1156  }
1157 
1158  public static ConflictMinimizationAlgorithm forNumber(int value) {
1159  switch (value) {
1160  case 0: return NONE;
1161  case 1: return SIMPLE;
1162  case 2: return RECURSIVE;
1163  case 3: return EXPERIMENTAL;
1164  default: return null;
1165  }
1166  }
1167 
1168  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1170  return internalValueMap;
1171  }
1172  private static final com.google.protobuf.Internal.EnumLiteMap<
1173  ConflictMinimizationAlgorithm> internalValueMap =
1174  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1175  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1177  }
1178  };
1179 
1180  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1182  return getDescriptor().getValues().get(ordinal());
1183  }
1184  public final com.google.protobuf.Descriptors.EnumDescriptor
1186  return getDescriptor();
1187  }
1188  public static final com.google.protobuf.Descriptors.EnumDescriptor
1190  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1191  }
1192 
1193  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1194 
1196  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1197  if (desc.getType() != getDescriptor()) {
1198  throw new java.lang.IllegalArgumentException(
1199  "EnumValueDescriptor is not for this type.");
1200  }
1201  return VALUES[desc.getIndex()];
1202  }
1203 
1204  private final int value;
1205 
1206  private ConflictMinimizationAlgorithm(int value) {
1207  this.value = value;
1208  }
1209 
1210  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1211  }
1212 
1222  implements com.google.protobuf.ProtocolMessageEnum {
1243  ;
1244 
1248  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1252  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1256  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1260  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1264  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1265 
1266 
1267  public final int getNumber() {
1268  return value;
1269  }
1270 
1274  @java.lang.Deprecated
1275  public static BinaryMinizationAlgorithm valueOf(int value) {
1276  return forNumber(value);
1277  }
1278 
1279  public static BinaryMinizationAlgorithm forNumber(int value) {
1280  switch (value) {
1281  case 0: return NO_BINARY_MINIMIZATION;
1282  case 1: return BINARY_MINIMIZATION_FIRST;
1283  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1284  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1285  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1286  default: return null;
1287  }
1288  }
1289 
1290  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1292  return internalValueMap;
1293  }
1294  private static final com.google.protobuf.Internal.EnumLiteMap<
1295  BinaryMinizationAlgorithm> internalValueMap =
1296  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1297  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1298  return BinaryMinizationAlgorithm.forNumber(number);
1299  }
1300  };
1301 
1302  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1304  return getDescriptor().getValues().get(ordinal());
1305  }
1306  public final com.google.protobuf.Descriptors.EnumDescriptor
1308  return getDescriptor();
1309  }
1310  public static final com.google.protobuf.Descriptors.EnumDescriptor
1312  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1313  }
1314 
1315  private static final BinaryMinizationAlgorithm[] VALUES = values();
1316 
1318  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1319  if (desc.getType() != getDescriptor()) {
1320  throw new java.lang.IllegalArgumentException(
1321  "EnumValueDescriptor is not for this type.");
1322  }
1323  return VALUES[desc.getIndex()];
1324  }
1325 
1326  private final int value;
1327 
1328  private BinaryMinizationAlgorithm(int value) {
1329  this.value = value;
1330  }
1331 
1332  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1333  }
1334 
1344  public enum ClauseProtection
1345  implements com.google.protobuf.ProtocolMessageEnum {
1370  ;
1371 
1379  public static final int PROTECTION_NONE_VALUE = 0;
1387  public static final int PROTECTION_ALWAYS_VALUE = 1;
1395  public static final int PROTECTION_LBD_VALUE = 2;
1396 
1397 
1398  public final int getNumber() {
1399  return value;
1400  }
1401 
1405  @java.lang.Deprecated
1406  public static ClauseProtection valueOf(int value) {
1407  return forNumber(value);
1408  }
1409 
1410  public static ClauseProtection forNumber(int value) {
1411  switch (value) {
1412  case 0: return PROTECTION_NONE;
1413  case 1: return PROTECTION_ALWAYS;
1414  case 2: return PROTECTION_LBD;
1415  default: return null;
1416  }
1417  }
1418 
1419  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1421  return internalValueMap;
1422  }
1423  private static final com.google.protobuf.Internal.EnumLiteMap<
1424  ClauseProtection> internalValueMap =
1425  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1426  public ClauseProtection findValueByNumber(int number) {
1427  return ClauseProtection.forNumber(number);
1428  }
1429  };
1430 
1431  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1433  return getDescriptor().getValues().get(ordinal());
1434  }
1435  public final com.google.protobuf.Descriptors.EnumDescriptor
1437  return getDescriptor();
1438  }
1439  public static final com.google.protobuf.Descriptors.EnumDescriptor
1441  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1442  }
1443 
1444  private static final ClauseProtection[] VALUES = values();
1445 
1446  public static ClauseProtection valueOf(
1447  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1448  if (desc.getType() != getDescriptor()) {
1449  throw new java.lang.IllegalArgumentException(
1450  "EnumValueDescriptor is not for this type.");
1451  }
1452  return VALUES[desc.getIndex()];
1453  }
1454 
1455  private final int value;
1456 
1457  private ClauseProtection(int value) {
1458  this.value = value;
1459  }
1460 
1461  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1462  }
1463 
1472  public enum ClauseOrdering
1473  implements com.google.protobuf.ProtocolMessageEnum {
1490  ;
1491 
1499  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1507  public static final int CLAUSE_LBD_VALUE = 1;
1508 
1509 
1510  public final int getNumber() {
1511  return value;
1512  }
1513 
1517  @java.lang.Deprecated
1518  public static ClauseOrdering valueOf(int value) {
1519  return forNumber(value);
1520  }
1521 
1522  public static ClauseOrdering forNumber(int value) {
1523  switch (value) {
1524  case 0: return CLAUSE_ACTIVITY;
1525  case 1: return CLAUSE_LBD;
1526  default: return null;
1527  }
1528  }
1529 
1530  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1532  return internalValueMap;
1533  }
1534  private static final com.google.protobuf.Internal.EnumLiteMap<
1535  ClauseOrdering> internalValueMap =
1536  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1537  public ClauseOrdering findValueByNumber(int number) {
1538  return ClauseOrdering.forNumber(number);
1539  }
1540  };
1541 
1542  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1544  return getDescriptor().getValues().get(ordinal());
1545  }
1546  public final com.google.protobuf.Descriptors.EnumDescriptor
1548  return getDescriptor();
1549  }
1550  public static final com.google.protobuf.Descriptors.EnumDescriptor
1552  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1553  }
1554 
1555  private static final ClauseOrdering[] VALUES = values();
1556 
1557  public static ClauseOrdering valueOf(
1558  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1559  if (desc.getType() != getDescriptor()) {
1560  throw new java.lang.IllegalArgumentException(
1561  "EnumValueDescriptor is not for this type.");
1562  }
1563  return VALUES[desc.getIndex()];
1564  }
1565 
1566  private final int value;
1567 
1568  private ClauseOrdering(int value) {
1569  this.value = value;
1570  }
1571 
1572  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1573  }
1574 
1586  public enum RestartAlgorithm
1587  implements com.google.protobuf.ProtocolMessageEnum {
1624  ;
1625 
1629  public static final int NO_RESTART_VALUE = 0;
1637  public static final int LUBY_RESTART_VALUE = 1;
1645  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1653  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1661  public static final int FIXED_RESTART_VALUE = 4;
1662 
1663 
1664  public final int getNumber() {
1665  return value;
1666  }
1667 
1671  @java.lang.Deprecated
1672  public static RestartAlgorithm valueOf(int value) {
1673  return forNumber(value);
1674  }
1675 
1676  public static RestartAlgorithm forNumber(int value) {
1677  switch (value) {
1678  case 0: return NO_RESTART;
1679  case 1: return LUBY_RESTART;
1680  case 2: return DL_MOVING_AVERAGE_RESTART;
1681  case 3: return LBD_MOVING_AVERAGE_RESTART;
1682  case 4: return FIXED_RESTART;
1683  default: return null;
1684  }
1685  }
1686 
1687  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1689  return internalValueMap;
1690  }
1691  private static final com.google.protobuf.Internal.EnumLiteMap<
1692  RestartAlgorithm> internalValueMap =
1693  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1694  public RestartAlgorithm findValueByNumber(int number) {
1695  return RestartAlgorithm.forNumber(number);
1696  }
1697  };
1698 
1699  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1701  return getDescriptor().getValues().get(ordinal());
1702  }
1703  public final com.google.protobuf.Descriptors.EnumDescriptor
1705  return getDescriptor();
1706  }
1707  public static final com.google.protobuf.Descriptors.EnumDescriptor
1709  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1710  }
1711 
1712  private static final RestartAlgorithm[] VALUES = values();
1713 
1714  public static RestartAlgorithm valueOf(
1715  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1716  if (desc.getType() != getDescriptor()) {
1717  throw new java.lang.IllegalArgumentException(
1718  "EnumValueDescriptor is not for this type.");
1719  }
1720  return VALUES[desc.getIndex()];
1721  }
1722 
1723  private final int value;
1724 
1725  private RestartAlgorithm(int value) {
1726  this.value = value;
1727  }
1728 
1729  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1730  }
1731 
1740  implements com.google.protobuf.ProtocolMessageEnum {
1753  ;
1754 
1758  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1762  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1766  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1767 
1768 
1769  public final int getNumber() {
1770  return value;
1771  }
1772 
1776  @java.lang.Deprecated
1777  public static MaxSatAssumptionOrder valueOf(int value) {
1778  return forNumber(value);
1779  }
1780 
1781  public static MaxSatAssumptionOrder forNumber(int value) {
1782  switch (value) {
1783  case 0: return DEFAULT_ASSUMPTION_ORDER;
1784  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1785  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1786  default: return null;
1787  }
1788  }
1789 
1790  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1792  return internalValueMap;
1793  }
1794  private static final com.google.protobuf.Internal.EnumLiteMap<
1795  MaxSatAssumptionOrder> internalValueMap =
1796  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1797  public MaxSatAssumptionOrder findValueByNumber(int number) {
1798  return MaxSatAssumptionOrder.forNumber(number);
1799  }
1800  };
1801 
1802  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1804  return getDescriptor().getValues().get(ordinal());
1805  }
1806  public final com.google.protobuf.Descriptors.EnumDescriptor
1808  return getDescriptor();
1809  }
1810  public static final com.google.protobuf.Descriptors.EnumDescriptor
1812  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1813  }
1814 
1815  private static final MaxSatAssumptionOrder[] VALUES = values();
1816 
1818  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1819  if (desc.getType() != getDescriptor()) {
1820  throw new java.lang.IllegalArgumentException(
1821  "EnumValueDescriptor is not for this type.");
1822  }
1823  return VALUES[desc.getIndex()];
1824  }
1825 
1826  private final int value;
1827 
1828  private MaxSatAssumptionOrder(int value) {
1829  this.value = value;
1830  }
1831 
1832  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1833  }
1834 
1843  implements com.google.protobuf.ProtocolMessageEnum {
1872  ;
1873 
1881  public static final int STRATIFICATION_NONE_VALUE = 0;
1890  public static final int STRATIFICATION_DESCENT_VALUE = 1;
1901  public static final int STRATIFICATION_ASCENT_VALUE = 2;
1902 
1903 
1904  public final int getNumber() {
1905  return value;
1906  }
1907 
1911  @java.lang.Deprecated
1912  public static MaxSatStratificationAlgorithm valueOf(int value) {
1913  return forNumber(value);
1914  }
1915 
1916  public static MaxSatStratificationAlgorithm forNumber(int value) {
1917  switch (value) {
1918  case 0: return STRATIFICATION_NONE;
1919  case 1: return STRATIFICATION_DESCENT;
1920  case 2: return STRATIFICATION_ASCENT;
1921  default: return null;
1922  }
1923  }
1924 
1925  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
1927  return internalValueMap;
1928  }
1929  private static final com.google.protobuf.Internal.EnumLiteMap<
1930  MaxSatStratificationAlgorithm> internalValueMap =
1931  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
1932  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
1934  }
1935  };
1936 
1937  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1939  return getDescriptor().getValues().get(ordinal());
1940  }
1941  public final com.google.protobuf.Descriptors.EnumDescriptor
1943  return getDescriptor();
1944  }
1945  public static final com.google.protobuf.Descriptors.EnumDescriptor
1947  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
1948  }
1949 
1950  private static final MaxSatStratificationAlgorithm[] VALUES = values();
1951 
1953  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1954  if (desc.getType() != getDescriptor()) {
1955  throw new java.lang.IllegalArgumentException(
1956  "EnumValueDescriptor is not for this type.");
1957  }
1958  return VALUES[desc.getIndex()];
1959  }
1960 
1961  private final int value;
1962 
1963  private MaxSatStratificationAlgorithm(int value) {
1964  this.value = value;
1965  }
1966 
1967  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
1968  }
1969 
1977  public enum SearchBranching
1978  implements com.google.protobuf.ProtocolMessageEnum {
2046  ;
2047 
2056  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2066  public static final int FIXED_SEARCH_VALUE = 1;
2074  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2084  public static final int LP_SEARCH_VALUE = 3;
2094  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2104  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2114  public static final int HINT_SEARCH_VALUE = 6;
2115 
2116 
2117  public final int getNumber() {
2118  return value;
2119  }
2120 
2124  @java.lang.Deprecated
2125  public static SearchBranching valueOf(int value) {
2126  return forNumber(value);
2127  }
2128 
2129  public static SearchBranching forNumber(int value) {
2130  switch (value) {
2131  case 0: return AUTOMATIC_SEARCH;
2132  case 1: return FIXED_SEARCH;
2133  case 2: return PORTFOLIO_SEARCH;
2134  case 3: return LP_SEARCH;
2135  case 4: return PSEUDO_COST_SEARCH;
2136  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2137  case 6: return HINT_SEARCH;
2138  default: return null;
2139  }
2140  }
2141 
2142  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2144  return internalValueMap;
2145  }
2146  private static final com.google.protobuf.Internal.EnumLiteMap<
2147  SearchBranching> internalValueMap =
2148  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2149  public SearchBranching findValueByNumber(int number) {
2150  return SearchBranching.forNumber(number);
2151  }
2152  };
2153 
2154  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2156  return getDescriptor().getValues().get(ordinal());
2157  }
2158  public final com.google.protobuf.Descriptors.EnumDescriptor
2160  return getDescriptor();
2161  }
2162  public static final com.google.protobuf.Descriptors.EnumDescriptor
2164  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2165  }
2166 
2167  private static final SearchBranching[] VALUES = values();
2168 
2169  public static SearchBranching valueOf(
2170  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2171  if (desc.getType() != getDescriptor()) {
2172  throw new java.lang.IllegalArgumentException(
2173  "EnumValueDescriptor is not for this type.");
2174  }
2175  return VALUES[desc.getIndex()];
2176  }
2177 
2178  private final int value;
2179 
2180  private SearchBranching(int value) {
2181  this.value = value;
2182  }
2183 
2184  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2185  }
2186 
2187  private int bitField0_;
2188  private int bitField1_;
2189  private int bitField2_;
2190  private int bitField3_;
2191  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2192  private int preferredVariableOrder_;
2196  public boolean hasPreferredVariableOrder() {
2197  return ((bitField0_ & 0x00000001) != 0);
2198  }
2203  @SuppressWarnings("deprecation")
2205  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2206  }
2207 
2208  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2209  private int initialPolarity_;
2213  public boolean hasInitialPolarity() {
2214  return ((bitField0_ & 0x00000002) != 0);
2215  }
2220  @SuppressWarnings("deprecation")
2222  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2223  }
2224 
2225  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2226  private boolean usePhaseSaving_;
2240  public boolean hasUsePhaseSaving() {
2241  return ((bitField0_ & 0x00000004) != 0);
2242  }
2256  public boolean getUsePhaseSaving() {
2257  return usePhaseSaving_;
2258  }
2259 
2260  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2261  private double randomPolarityRatio_;
2273  public boolean hasRandomPolarityRatio() {
2274  return ((bitField0_ & 0x00000008) != 0);
2275  }
2287  public double getRandomPolarityRatio() {
2288  return randomPolarityRatio_;
2289  }
2290 
2291  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2292  private double randomBranchesRatio_;
2302  public boolean hasRandomBranchesRatio() {
2303  return ((bitField0_ & 0x00000010) != 0);
2304  }
2314  public double getRandomBranchesRatio() {
2315  return randomBranchesRatio_;
2316  }
2317 
2318  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2319  private boolean useErwaHeuristic_;
2329  public boolean hasUseErwaHeuristic() {
2330  return ((bitField0_ & 0x00000020) != 0);
2331  }
2341  public boolean getUseErwaHeuristic() {
2342  return useErwaHeuristic_;
2343  }
2344 
2345  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2346  private double initialVariablesActivity_;
2359  public boolean hasInitialVariablesActivity() {
2360  return ((bitField0_ & 0x00000040) != 0);
2361  }
2375  return initialVariablesActivity_;
2376  }
2377 
2379  private boolean alsoBumpVariablesInConflictReasons_;
2391  return ((bitField0_ & 0x00000080) != 0);
2392  }
2404  return alsoBumpVariablesInConflictReasons_;
2405  }
2406 
2407  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2408  private int minimizationAlgorithm_;
2412  public boolean hasMinimizationAlgorithm() {
2413  return ((bitField0_ & 0x00000100) != 0);
2414  }
2419  @SuppressWarnings("deprecation")
2421  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2422  }
2423 
2424  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2425  private int binaryMinimizationAlgorithm_;
2430  return ((bitField0_ & 0x00000200) != 0);
2431  }
2436  @SuppressWarnings("deprecation")
2439  }
2440 
2442  private boolean subsumptionDuringConflictAnalysis_;
2454  return ((bitField0_ & 0x00000400) != 0);
2455  }
2467  return subsumptionDuringConflictAnalysis_;
2468  }
2469 
2470  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2471  private int clauseCleanupPeriod_;
2479  public boolean hasClauseCleanupPeriod() {
2480  return ((bitField0_ & 0x00000800) != 0);
2481  }
2489  public int getClauseCleanupPeriod() {
2490  return clauseCleanupPeriod_;
2491  }
2492 
2493  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2494  private int clauseCleanupTarget_;
2503  public boolean hasClauseCleanupTarget() {
2504  return ((bitField0_ & 0x00001000) != 0);
2505  }
2514  public int getClauseCleanupTarget() {
2515  return clauseCleanupTarget_;
2516  }
2517 
2518  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2519  private int clauseCleanupProtection_;
2523  public boolean hasClauseCleanupProtection() {
2524  return ((bitField0_ & 0x00002000) != 0);
2525  }
2530  @SuppressWarnings("deprecation")
2532  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2533  }
2534 
2535  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2536  private int clauseCleanupLbdBound_;
2545  public boolean hasClauseCleanupLbdBound() {
2546  return ((bitField0_ & 0x00004000) != 0);
2547  }
2557  return clauseCleanupLbdBound_;
2558  }
2559 
2560  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2561  private int clauseCleanupOrdering_;
2565  public boolean hasClauseCleanupOrdering() {
2566  return ((bitField0_ & 0x00008000) != 0);
2567  }
2572  @SuppressWarnings("deprecation")
2574  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2575  }
2576 
2577  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2578  private int pbCleanupIncrement_;
2586  public boolean hasPbCleanupIncrement() {
2587  return ((bitField0_ & 0x00010000) != 0);
2588  }
2596  public int getPbCleanupIncrement() {
2597  return pbCleanupIncrement_;
2598  }
2599 
2600  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2601  private double pbCleanupRatio_;
2605  public boolean hasPbCleanupRatio() {
2606  return ((bitField0_ & 0x00020000) != 0);
2607  }
2611  public double getPbCleanupRatio() {
2612  return pbCleanupRatio_;
2613  }
2614 
2616  private int minimizeWithPropagationRestartPeriod_;
2635  return ((bitField0_ & 0x00040000) != 0);
2636  }
2655  return minimizeWithPropagationRestartPeriod_;
2656  }
2657 
2659  private int minimizeWithPropagationNumDecisions_;
2664  return ((bitField0_ & 0x00080000) != 0);
2665  }
2670  return minimizeWithPropagationNumDecisions_;
2671  }
2672 
2673  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2674  private double variableActivityDecay_;
2688  public boolean hasVariableActivityDecay() {
2689  return ((bitField0_ & 0x00100000) != 0);
2690  }
2704  public double getVariableActivityDecay() {
2705  return variableActivityDecay_;
2706  }
2707 
2708  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2709  private double maxVariableActivityValue_;
2713  public boolean hasMaxVariableActivityValue() {
2714  return ((bitField0_ & 0x00200000) != 0);
2715  }
2720  return maxVariableActivityValue_;
2721  }
2722 
2723  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2724  private double glucoseMaxDecay_;
2735  public boolean hasGlucoseMaxDecay() {
2736  return ((bitField0_ & 0x00400000) != 0);
2737  }
2748  public double getGlucoseMaxDecay() {
2749  return glucoseMaxDecay_;
2750  }
2751 
2752  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2753  private double glucoseDecayIncrement_;
2757  public boolean hasGlucoseDecayIncrement() {
2758  return ((bitField0_ & 0x00800000) != 0);
2759  }
2763  public double getGlucoseDecayIncrement() {
2764  return glucoseDecayIncrement_;
2765  }
2766 
2767  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
2768  private int glucoseDecayIncrementPeriod_;
2773  return ((bitField0_ & 0x01000000) != 0);
2774  }
2779  return glucoseDecayIncrementPeriod_;
2780  }
2781 
2782  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2783  private double clauseActivityDecay_;
2791  public boolean hasClauseActivityDecay() {
2792  return ((bitField0_ & 0x02000000) != 0);
2793  }
2801  public double getClauseActivityDecay() {
2802  return clauseActivityDecay_;
2803  }
2804 
2805  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2806  private double maxClauseActivityValue_;
2810  public boolean hasMaxClauseActivityValue() {
2811  return ((bitField0_ & 0x04000000) != 0);
2812  }
2816  public double getMaxClauseActivityValue() {
2817  return maxClauseActivityValue_;
2818  }
2819 
2820  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
2821  private java.util.List<java.lang.Integer> restartAlgorithms_;
2822  private static final com.google.protobuf.Internal.ListAdapter.Converter<
2823  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
2824  new com.google.protobuf.Internal.ListAdapter.Converter<
2825  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
2826  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
2827  @SuppressWarnings("deprecation")
2829  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
2830  }
2831  };
2847  return new com.google.protobuf.Internal.ListAdapter<
2848  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
2849  }
2865  return restartAlgorithms_.size();
2866  }
2882  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
2883  }
2884 
2885  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
2886  private volatile java.lang.Object defaultRestartAlgorithms_;
2890  public boolean hasDefaultRestartAlgorithms() {
2891  return ((bitField0_ & 0x08000000) != 0);
2892  }
2896  public java.lang.String getDefaultRestartAlgorithms() {
2897  java.lang.Object ref = defaultRestartAlgorithms_;
2898  if (ref instanceof java.lang.String) {
2899  return (java.lang.String) ref;
2900  } else {
2901  com.google.protobuf.ByteString bs =
2902  (com.google.protobuf.ByteString) ref;
2903  java.lang.String s = bs.toStringUtf8();
2904  if (bs.isValidUtf8()) {
2905  defaultRestartAlgorithms_ = s;
2906  }
2907  return s;
2908  }
2909  }
2913  public com.google.protobuf.ByteString
2915  java.lang.Object ref = defaultRestartAlgorithms_;
2916  if (ref instanceof java.lang.String) {
2917  com.google.protobuf.ByteString b =
2918  com.google.protobuf.ByteString.copyFromUtf8(
2919  (java.lang.String) ref);
2920  defaultRestartAlgorithms_ = b;
2921  return b;
2922  } else {
2923  return (com.google.protobuf.ByteString) ref;
2924  }
2925  }
2926 
2927  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
2928  private int restartPeriod_;
2937  public boolean hasRestartPeriod() {
2938  return ((bitField0_ & 0x10000000) != 0);
2939  }
2948  public int getRestartPeriod() {
2949  return restartPeriod_;
2950  }
2951 
2952  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
2953  private int restartRunningWindowSize_;
2961  public boolean hasRestartRunningWindowSize() {
2962  return ((bitField0_ & 0x20000000) != 0);
2963  }
2972  return restartRunningWindowSize_;
2973  }
2974 
2975  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
2976  private double restartDlAverageRatio_;
2985  public boolean hasRestartDlAverageRatio() {
2986  return ((bitField0_ & 0x40000000) != 0);
2987  }
2996  public double getRestartDlAverageRatio() {
2997  return restartDlAverageRatio_;
2998  }
2999 
3000  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
3001  private double restartLbdAverageRatio_;
3005  public boolean hasRestartLbdAverageRatio() {
3006  return ((bitField0_ & 0x80000000) != 0);
3007  }
3011  public double getRestartLbdAverageRatio() {
3012  return restartLbdAverageRatio_;
3013  }
3014 
3015  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3016  private boolean useBlockingRestart_;
3026  public boolean hasUseBlockingRestart() {
3027  return ((bitField1_ & 0x00000001) != 0);
3028  }
3038  public boolean getUseBlockingRestart() {
3039  return useBlockingRestart_;
3040  }
3041 
3042  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3043  private int blockingRestartWindowSize_;
3047  public boolean hasBlockingRestartWindowSize() {
3048  return ((bitField1_ & 0x00000002) != 0);
3049  }
3054  return blockingRestartWindowSize_;
3055  }
3056 
3057  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3058  private double blockingRestartMultiplier_;
3062  public boolean hasBlockingRestartMultiplier() {
3063  return ((bitField1_ & 0x00000004) != 0);
3064  }
3069  return blockingRestartMultiplier_;
3070  }
3071 
3073  private int numConflictsBeforeStrategyChanges_;
3084  return ((bitField1_ & 0x00000008) != 0);
3085  }
3096  return numConflictsBeforeStrategyChanges_;
3097  }
3098 
3099  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3100  private double strategyChangeIncreaseRatio_;
3110  return ((bitField1_ & 0x00000010) != 0);
3111  }
3121  return strategyChangeIncreaseRatio_;
3122  }
3123 
3124  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3125  private double maxTimeInSeconds_;
3135  public boolean hasMaxTimeInSeconds() {
3136  return ((bitField1_ & 0x00000020) != 0);
3137  }
3147  public double getMaxTimeInSeconds() {
3148  return maxTimeInSeconds_;
3149  }
3150 
3151  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3152  private double maxDeterministicTime_;
3164  public boolean hasMaxDeterministicTime() {
3165  return ((bitField1_ & 0x00000040) != 0);
3166  }
3178  public double getMaxDeterministicTime() {
3179  return maxDeterministicTime_;
3180  }
3181 
3182  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3183  private long maxNumberOfConflicts_;
3196  public boolean hasMaxNumberOfConflicts() {
3197  return ((bitField1_ & 0x00000080) != 0);
3198  }
3211  public long getMaxNumberOfConflicts() {
3212  return maxNumberOfConflicts_;
3213  }
3214 
3215  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3216  private long maxMemoryInMb_;
3227  public boolean hasMaxMemoryInMb() {
3228  return ((bitField1_ & 0x00000100) != 0);
3229  }
3240  public long getMaxMemoryInMb() {
3241  return maxMemoryInMb_;
3242  }
3243 
3244  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3245  private boolean treatBinaryClausesSeparately_;
3256  return ((bitField1_ & 0x00000200) != 0);
3257  }
3268  return treatBinaryClausesSeparately_;
3269  }
3270 
3271  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3272  private int randomSeed_;
3285  public boolean hasRandomSeed() {
3286  return ((bitField1_ & 0x00000400) != 0);
3287  }
3300  public int getRandomSeed() {
3301  return randomSeed_;
3302  }
3303 
3304  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3305  private boolean logSearchProgress_;
3313  public boolean hasLogSearchProgress() {
3314  return ((bitField1_ & 0x00000800) != 0);
3315  }
3323  public boolean getLogSearchProgress() {
3324  return logSearchProgress_;
3325  }
3326 
3327  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3328  private boolean usePbResolution_;
3339  public boolean hasUsePbResolution() {
3340  return ((bitField1_ & 0x00001000) != 0);
3341  }
3352  public boolean getUsePbResolution() {
3353  return usePbResolution_;
3354  }
3355 
3357  private boolean minimizeReductionDuringPbResolution_;
3369  return ((bitField1_ & 0x00002000) != 0);
3370  }
3382  return minimizeReductionDuringPbResolution_;
3383  }
3384 
3385  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
3386  private boolean countAssumptionLevelsInLbd_;
3402  return ((bitField1_ & 0x00004000) != 0);
3403  }
3419  return countAssumptionLevelsInLbd_;
3420  }
3421 
3422  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3423  private int presolveBveThreshold_;
3433  public boolean hasPresolveBveThreshold() {
3434  return ((bitField1_ & 0x00008000) != 0);
3435  }
3446  return presolveBveThreshold_;
3447  }
3448 
3449  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3450  private int presolveBveClauseWeight_;
3459  public boolean hasPresolveBveClauseWeight() {
3460  return ((bitField1_ & 0x00010000) != 0);
3461  }
3471  return presolveBveClauseWeight_;
3472  }
3473 
3475  private double presolveProbingDeterministicTimeLimit_;
3485  return ((bitField1_ & 0x00020000) != 0);
3486  }
3496  return presolveProbingDeterministicTimeLimit_;
3497  }
3498 
3499  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3500  private boolean presolveBlockedClause_;
3509  public boolean hasPresolveBlockedClause() {
3510  return ((bitField1_ & 0x00040000) != 0);
3511  }
3520  public boolean getPresolveBlockedClause() {
3521  return presolveBlockedClause_;
3522  }
3523 
3524  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
3525  private boolean presolveUseBva_;
3533  public boolean hasPresolveUseBva() {
3534  return ((bitField1_ & 0x00080000) != 0);
3535  }
3543  public boolean getPresolveUseBva() {
3544  return presolveUseBva_;
3545  }
3546 
3547  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
3548  private int presolveBvaThreshold_;
3559  public boolean hasPresolveBvaThreshold() {
3560  return ((bitField1_ & 0x00100000) != 0);
3561  }
3573  return presolveBvaThreshold_;
3574  }
3575 
3576  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
3577  private boolean useOptimizationHints_;
3588  public boolean hasUseOptimizationHints() {
3589  return ((bitField1_ & 0x00200000) != 0);
3590  }
3601  public boolean getUseOptimizationHints() {
3602  return useOptimizationHints_;
3603  }
3604 
3605  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
3606  private boolean minimizeCore_;
3614  public boolean hasMinimizeCore() {
3615  return ((bitField1_ & 0x00400000) != 0);
3616  }
3624  public boolean getMinimizeCore() {
3625  return minimizeCore_;
3626  }
3627 
3628  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
3629  private boolean findMultipleCores_;
3638  public boolean hasFindMultipleCores() {
3639  return ((bitField1_ & 0x00800000) != 0);
3640  }
3649  public boolean getFindMultipleCores() {
3650  return findMultipleCores_;
3651  }
3652 
3653  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
3654  private boolean coverOptimization_;
3663  public boolean hasCoverOptimization() {
3664  return ((bitField1_ & 0x01000000) != 0);
3665  }
3674  public boolean getCoverOptimization() {
3675  return coverOptimization_;
3676  }
3677 
3678  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
3679  private int maxSatAssumptionOrder_;
3683  public boolean hasMaxSatAssumptionOrder() {
3684  return ((bitField1_ & 0x02000000) != 0);
3685  }
3690  @SuppressWarnings("deprecation")
3693  }
3694 
3696  private boolean maxSatReverseAssumptionOrder_;
3706  return ((bitField1_ & 0x04000000) != 0);
3707  }
3717  return maxSatReverseAssumptionOrder_;
3718  }
3719 
3720  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
3721  private int maxSatStratification_;
3725  public boolean hasMaxSatStratification() {
3726  return ((bitField1_ & 0x08000000) != 0);
3727  }
3732  @SuppressWarnings("deprecation")
3735  }
3736 
3738  private boolean usePrecedencesInDisjunctiveConstraint_;
3754  return ((bitField1_ & 0x10000000) != 0);
3755  }
3771  return usePrecedencesInDisjunctiveConstraint_;
3772  }
3773 
3775  private boolean useOverloadCheckerInCumulativeConstraint_;
3789  return ((bitField1_ & 0x20000000) != 0);
3790  }
3804  return useOverloadCheckerInCumulativeConstraint_;
3805  }
3806 
3808  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
3822  return ((bitField1_ & 0x40000000) != 0);
3823  }
3837  return useTimetableEdgeFindingInCumulativeConstraint_;
3838  }
3839 
3841  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
3857  return ((bitField1_ & 0x80000000) != 0);
3858  }
3874  return useDisjunctiveConstraintInCumulativeConstraint_;
3875  }
3876 
3877  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
3878  private int linearizationLevel_;
3889  public boolean hasLinearizationLevel() {
3890  return ((bitField2_ & 0x00000001) != 0);
3891  }
3902  public int getLinearizationLevel() {
3903  return linearizationLevel_;
3904  }
3905 
3906  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
3907  private int booleanEncodingLevel_;
3916  public boolean hasBooleanEncodingLevel() {
3917  return ((bitField2_ & 0x00000002) != 0);
3918  }
3928  return booleanEncodingLevel_;
3929  }
3930 
3931  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
3932  private int maxNumCuts_;
3941  public boolean hasMaxNumCuts() {
3942  return ((bitField2_ & 0x00000004) != 0);
3943  }
3952  public int getMaxNumCuts() {
3953  return maxNumCuts_;
3954  }
3955 
3956  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
3957  private boolean onlyAddCutsAtLevelZero_;
3966  public boolean hasOnlyAddCutsAtLevelZero() {
3967  return ((bitField2_ & 0x00000008) != 0);
3968  }
3977  public boolean getOnlyAddCutsAtLevelZero() {
3978  return onlyAddCutsAtLevelZero_;
3979  }
3980 
3981  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
3982  private boolean addKnapsackCuts_;
3992  public boolean hasAddKnapsackCuts() {
3993  return ((bitField2_ & 0x00000010) != 0);
3994  }
4004  public boolean getAddKnapsackCuts() {
4005  return addKnapsackCuts_;
4006  }
4007 
4008  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
4009  private boolean addCgCuts_;
4018  public boolean hasAddCgCuts() {
4019  return ((bitField2_ & 0x00000020) != 0);
4020  }
4029  public boolean getAddCgCuts() {
4030  return addCgCuts_;
4031  }
4032 
4033  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
4034  private boolean addMirCuts_;
4043  public boolean hasAddMirCuts() {
4044  return ((bitField2_ & 0x00000040) != 0);
4045  }
4054  public boolean getAddMirCuts() {
4055  return addMirCuts_;
4056  }
4057 
4058  public static final int USE_MIR_ROUNDING_FIELD_NUMBER = 118;
4059  private boolean useMirRounding_;
4069  public boolean hasUseMirRounding() {
4070  return ((bitField2_ & 0x00000080) != 0);
4071  }
4081  public boolean getUseMirRounding() {
4082  return useMirRounding_;
4083  }
4084 
4085  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4086  private int maxIntegerRoundingScaling_;
4098  public boolean hasMaxIntegerRoundingScaling() {
4099  return ((bitField2_ & 0x00000100) != 0);
4100  }
4113  return maxIntegerRoundingScaling_;
4114  }
4115 
4116  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4117  private boolean addLpConstraintsLazily_;
4128  public boolean hasAddLpConstraintsLazily() {
4129  return ((bitField2_ & 0x00000200) != 0);
4130  }
4141  public boolean getAddLpConstraintsLazily() {
4142  return addLpConstraintsLazily_;
4143  }
4144 
4146  private double minOrthogonalityForLpConstraints_;
4159  return ((bitField2_ & 0x00000400) != 0);
4160  }
4173  return minOrthogonalityForLpConstraints_;
4174  }
4175 
4176  public static final int MAX_INACTIVE_COUNT_FIELD_NUMBER = 121;
4177  private long maxInactiveCount_;
4186  public boolean hasMaxInactiveCount() {
4187  return ((bitField2_ & 0x00000800) != 0);
4188  }
4197  public long getMaxInactiveCount() {
4198  return maxInactiveCount_;
4199  }
4200 
4201  public static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER = 122;
4202  private long constraintRemovalBatchSize_;
4212  return ((bitField2_ & 0x00001000) != 0);
4213  }
4223  return constraintRemovalBatchSize_;
4224  }
4225 
4226  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4227  private int searchBranching_;
4231  public boolean hasSearchBranching() {
4232  return ((bitField2_ & 0x00002000) != 0);
4233  }
4238  @SuppressWarnings("deprecation")
4240  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4241  }
4242 
4243  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4244  private boolean exploitIntegerLpSolution_;
4255  public boolean hasExploitIntegerLpSolution() {
4256  return ((bitField2_ & 0x00004000) != 0);
4257  }
4268  public boolean getExploitIntegerLpSolution() {
4269  return exploitIntegerLpSolution_;
4270  }
4271 
4272  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4273  private boolean exploitAllLpSolution_;
4283  public boolean hasExploitAllLpSolution() {
4284  return ((bitField2_ & 0x00008000) != 0);
4285  }
4295  public boolean getExploitAllLpSolution() {
4296  return exploitAllLpSolution_;
4297  }
4298 
4299  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4300  private boolean exploitBestSolution_;
4308  public boolean hasExploitBestSolution() {
4309  return ((bitField2_ & 0x00010000) != 0);
4310  }
4318  public boolean getExploitBestSolution() {
4319  return exploitBestSolution_;
4320  }
4321 
4322  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4323  private boolean exploitObjective_;
4332  public boolean hasExploitObjective() {
4333  return ((bitField2_ & 0x00020000) != 0);
4334  }
4343  public boolean getExploitObjective() {
4344  return exploitObjective_;
4345  }
4346 
4347  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4348  private long pseudoCostReliabilityThreshold_;
4358  return ((bitField2_ & 0x00040000) != 0);
4359  }
4369  return pseudoCostReliabilityThreshold_;
4370  }
4371 
4372  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4373  private boolean optimizeWithCore_;
4384  public boolean hasOptimizeWithCore() {
4385  return ((bitField2_ & 0x00080000) != 0);
4386  }
4397  public boolean getOptimizeWithCore() {
4398  return optimizeWithCore_;
4399  }
4400 
4401  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
4402  private int binarySearchNumConflicts_;
4413  public boolean hasBinarySearchNumConflicts() {
4414  return ((bitField2_ & 0x00100000) != 0);
4415  }
4427  return binarySearchNumConflicts_;
4428  }
4429 
4430  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
4431  private boolean optimizeWithMaxHs_;
4444  public boolean hasOptimizeWithMaxHs() {
4445  return ((bitField2_ & 0x00200000) != 0);
4446  }
4459  public boolean getOptimizeWithMaxHs() {
4460  return optimizeWithMaxHs_;
4461  }
4462 
4463  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
4464  private boolean cpModelPresolve_;
4472  public boolean hasCpModelPresolve() {
4473  return ((bitField2_ & 0x00400000) != 0);
4474  }
4482  public boolean getCpModelPresolve() {
4483  return cpModelPresolve_;
4484  }
4485 
4486  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
4487  private int cpModelProbingLevel_;
4495  public boolean hasCpModelProbingLevel() {
4496  return ((bitField2_ & 0x00800000) != 0);
4497  }
4505  public int getCpModelProbingLevel() {
4506  return cpModelProbingLevel_;
4507  }
4508 
4509  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
4510  private boolean cpModelUseSatPresolve_;
4518  public boolean hasCpModelUseSatPresolve() {
4519  return ((bitField2_ & 0x01000000) != 0);
4520  }
4528  public boolean getCpModelUseSatPresolve() {
4529  return cpModelUseSatPresolve_;
4530  }
4531 
4532  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
4533  private boolean enumerateAllSolutions_;
4546  public boolean hasEnumerateAllSolutions() {
4547  return ((bitField2_ & 0x02000000) != 0);
4548  }
4561  public boolean getEnumerateAllSolutions() {
4562  return enumerateAllSolutions_;
4563  }
4564 
4566  private boolean fillTightenedDomainsInResponse_;
4579  return ((bitField2_ & 0x04000000) != 0);
4580  }
4593  return fillTightenedDomainsInResponse_;
4594  }
4595 
4596  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
4597  private boolean instantiateAllVariables_;
4606  public boolean hasInstantiateAllVariables() {
4607  return ((bitField2_ & 0x08000000) != 0);
4608  }
4617  public boolean getInstantiateAllVariables() {
4618  return instantiateAllVariables_;
4619  }
4620 
4622  private boolean autoDetectGreaterThanAtLeastOneOf_;
4634  return ((bitField2_ & 0x10000000) != 0);
4635  }
4647  return autoDetectGreaterThanAtLeastOneOf_;
4648  }
4649 
4650  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
4651  private boolean stopAfterFirstSolution_;
4659  public boolean hasStopAfterFirstSolution() {
4660  return ((bitField2_ & 0x20000000) != 0);
4661  }
4669  public boolean getStopAfterFirstSolution() {
4670  return stopAfterFirstSolution_;
4671  }
4672 
4673  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
4674  private int numSearchWorkers_;
4683  public boolean hasNumSearchWorkers() {
4684  return ((bitField2_ & 0x40000000) != 0);
4685  }
4694  public int getNumSearchWorkers() {
4695  return numSearchWorkers_;
4696  }
4697 
4698  public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
4699  private boolean interleaveSearch_;
4710  public boolean hasInterleaveSearch() {
4711  return ((bitField2_ & 0x80000000) != 0);
4712  }
4723  public boolean getInterleaveSearch() {
4724  return interleaveSearch_;
4725  }
4726 
4727  public static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER = 134;
4728  private boolean deterministicParallelSearch_;
4739  return ((bitField3_ & 0x00000001) != 0);
4740  }
4751  return deterministicParallelSearch_;
4752  }
4753 
4754  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
4755  private boolean shareObjectiveBounds_;
4763  public boolean hasShareObjectiveBounds() {
4764  return ((bitField3_ & 0x00000002) != 0);
4765  }
4773  public boolean getShareObjectiveBounds() {
4774  return shareObjectiveBounds_;
4775  }
4776 
4777  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
4778  private boolean shareLevelZeroBounds_;
4786  public boolean hasShareLevelZeroBounds() {
4787  return ((bitField3_ & 0x00000004) != 0);
4788  }
4796  public boolean getShareLevelZeroBounds() {
4797  return shareLevelZeroBounds_;
4798  }
4799 
4800  public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
4801  private boolean useLnsOnly_;
4809  public boolean hasUseLnsOnly() {
4810  return ((bitField3_ & 0x00000008) != 0);
4811  }
4819  public boolean getUseLnsOnly() {
4820  return useLnsOnly_;
4821  }
4822 
4823  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
4824  private boolean lnsFocusOnDecisionVariables_;
4829  return ((bitField3_ & 0x00000010) != 0);
4830  }
4835  return lnsFocusOnDecisionVariables_;
4836  }
4837 
4838  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
4839  private boolean useRinsLns_;
4847  public boolean hasUseRinsLns() {
4848  return ((bitField3_ & 0x00000020) != 0);
4849  }
4857  public boolean getUseRinsLns() {
4858  return useRinsLns_;
4859  }
4860 
4861  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
4862  private boolean randomizeSearch_;
4870  public boolean hasRandomizeSearch() {
4871  return ((bitField3_ & 0x00000040) != 0);
4872  }
4880  public boolean getRandomizeSearch() {
4881  return randomizeSearch_;
4882  }
4883 
4884  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
4885  private long searchRandomizationTolerance_;
4900  return ((bitField3_ & 0x00000080) != 0);
4901  }
4916  return searchRandomizationTolerance_;
4917  }
4918 
4919  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
4920  private boolean useOptionalVariables_;
4930  public boolean hasUseOptionalVariables() {
4931  return ((bitField3_ & 0x00000100) != 0);
4932  }
4942  public boolean getUseOptionalVariables() {
4943  return useOptionalVariables_;
4944  }
4945 
4946  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
4947  private boolean useExactLpReason_;
4958  public boolean hasUseExactLpReason() {
4959  return ((bitField3_ & 0x00000200) != 0);
4960  }
4971  public boolean getUseExactLpReason() {
4972  return useExactLpReason_;
4973  }
4974 
4975  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
4976  private boolean useCombinedNoOverlap_;
4986  public boolean hasUseCombinedNoOverlap() {
4987  return ((bitField3_ & 0x00000400) != 0);
4988  }
4998  public boolean getUseCombinedNoOverlap() {
4999  return useCombinedNoOverlap_;
5000  }
5001 
5002  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
5003  private double mipMaxBound_;
5013  public boolean hasMipMaxBound() {
5014  return ((bitField3_ & 0x00000800) != 0);
5015  }
5025  public double getMipMaxBound() {
5026  return mipMaxBound_;
5027  }
5028 
5029  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
5030  private double mipVarScaling_;
5040  public boolean hasMipVarScaling() {
5041  return ((bitField3_ & 0x00001000) != 0);
5042  }
5052  public double getMipVarScaling() {
5053  return mipVarScaling_;
5054  }
5055 
5056  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
5057  private double mipWantedPrecision_;
5073  public boolean hasMipWantedPrecision() {
5074  return ((bitField3_ & 0x00002000) != 0);
5075  }
5091  public double getMipWantedPrecision() {
5092  return mipWantedPrecision_;
5093  }
5094 
5095  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5096  private int mipMaxActivityExponent_;
5110  public boolean hasMipMaxActivityExponent() {
5111  return ((bitField3_ & 0x00004000) != 0);
5112  }
5127  return mipMaxActivityExponent_;
5128  }
5129 
5130  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5131  private double mipCheckPrecision_;
5142  public boolean hasMipCheckPrecision() {
5143  return ((bitField3_ & 0x00008000) != 0);
5144  }
5155  public double getMipCheckPrecision() {
5156  return mipCheckPrecision_;
5157  }
5158 
5159  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
5160  private boolean catchSigintSignal_;
5170  public boolean hasCatchSigintSignal() {
5171  return ((bitField3_ & 0x00010000) != 0);
5172  }
5182  public boolean getCatchSigintSignal() {
5183  return catchSigintSignal_;
5184  }
5185 
5186  private byte memoizedIsInitialized = -1;
5187  @java.lang.Override
5188  public final boolean isInitialized() {
5189  byte isInitialized = memoizedIsInitialized;
5190  if (isInitialized == 1) return true;
5191  if (isInitialized == 0) return false;
5192 
5193  memoizedIsInitialized = 1;
5194  return true;
5195  }
5196 
5197  @java.lang.Override
5198  public void writeTo(com.google.protobuf.CodedOutputStream output)
5199  throws java.io.IOException {
5200  if (((bitField0_ & 0x00000001) != 0)) {
5201  output.writeEnum(1, preferredVariableOrder_);
5202  }
5203  if (((bitField0_ & 0x00000002) != 0)) {
5204  output.writeEnum(2, initialPolarity_);
5205  }
5206  if (((bitField0_ & 0x00000100) != 0)) {
5207  output.writeEnum(4, minimizationAlgorithm_);
5208  }
5209  if (((bitField0_ & 0x00000800) != 0)) {
5210  output.writeInt32(11, clauseCleanupPeriod_);
5211  }
5212  if (((bitField0_ & 0x00001000) != 0)) {
5213  output.writeInt32(13, clauseCleanupTarget_);
5214  }
5215  if (((bitField0_ & 0x00100000) != 0)) {
5216  output.writeDouble(15, variableActivityDecay_);
5217  }
5218  if (((bitField0_ & 0x00200000) != 0)) {
5219  output.writeDouble(16, maxVariableActivityValue_);
5220  }
5221  if (((bitField0_ & 0x02000000) != 0)) {
5222  output.writeDouble(17, clauseActivityDecay_);
5223  }
5224  if (((bitField0_ & 0x04000000) != 0)) {
5225  output.writeDouble(18, maxClauseActivityValue_);
5226  }
5227  if (((bitField0_ & 0x00400000) != 0)) {
5228  output.writeDouble(22, glucoseMaxDecay_);
5229  }
5230  if (((bitField0_ & 0x00800000) != 0)) {
5231  output.writeDouble(23, glucoseDecayIncrement_);
5232  }
5233  if (((bitField0_ & 0x01000000) != 0)) {
5234  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5235  }
5236  if (((bitField0_ & 0x10000000) != 0)) {
5237  output.writeInt32(30, restartPeriod_);
5238  }
5239  if (((bitField1_ & 0x00000400) != 0)) {
5240  output.writeInt32(31, randomSeed_);
5241  }
5242  if (((bitField0_ & 0x00000010) != 0)) {
5243  output.writeDouble(32, randomBranchesRatio_);
5244  }
5245  if (((bitField1_ & 0x00000200) != 0)) {
5246  output.writeBool(33, treatBinaryClausesSeparately_);
5247  }
5248  if (((bitField0_ & 0x00000200) != 0)) {
5249  output.writeEnum(34, binaryMinimizationAlgorithm_);
5250  }
5251  if (((bitField1_ & 0x00200000) != 0)) {
5252  output.writeBool(35, useOptimizationHints_);
5253  }
5254  if (((bitField1_ & 0x00000020) != 0)) {
5255  output.writeDouble(36, maxTimeInSeconds_);
5256  }
5257  if (((bitField1_ & 0x00000080) != 0)) {
5258  output.writeInt64(37, maxNumberOfConflicts_);
5259  }
5260  if (((bitField1_ & 0x00000100) != 0)) {
5261  output.writeInt64(40, maxMemoryInMb_);
5262  }
5263  if (((bitField1_ & 0x00000800) != 0)) {
5264  output.writeBool(41, logSearchProgress_);
5265  }
5266  if (((bitField1_ & 0x00001000) != 0)) {
5267  output.writeBool(43, usePbResolution_);
5268  }
5269  if (((bitField0_ & 0x00000004) != 0)) {
5270  output.writeBool(44, usePhaseSaving_);
5271  }
5272  if (((bitField0_ & 0x00000008) != 0)) {
5273  output.writeDouble(45, randomPolarityRatio_);
5274  }
5275  if (((bitField0_ & 0x00010000) != 0)) {
5276  output.writeInt32(46, pbCleanupIncrement_);
5277  }
5278  if (((bitField0_ & 0x00020000) != 0)) {
5279  output.writeDouble(47, pbCleanupRatio_);
5280  }
5281  if (((bitField1_ & 0x00002000) != 0)) {
5282  output.writeBool(48, minimizeReductionDuringPbResolution_);
5283  }
5284  if (((bitField1_ & 0x00004000) != 0)) {
5285  output.writeBool(49, countAssumptionLevelsInLbd_);
5286  }
5287  if (((bitField1_ & 0x00400000) != 0)) {
5288  output.writeBool(50, minimizeCore_);
5289  }
5290  if (((bitField1_ & 0x02000000) != 0)) {
5291  output.writeEnum(51, maxSatAssumptionOrder_);
5292  }
5293  if (((bitField1_ & 0x04000000) != 0)) {
5294  output.writeBool(52, maxSatReverseAssumptionOrder_);
5295  }
5296  if (((bitField1_ & 0x08000000) != 0)) {
5297  output.writeEnum(53, maxSatStratification_);
5298  }
5299  if (((bitField1_ & 0x00008000) != 0)) {
5300  output.writeInt32(54, presolveBveThreshold_);
5301  }
5302  if (((bitField1_ & 0x00010000) != 0)) {
5303  output.writeInt32(55, presolveBveClauseWeight_);
5304  }
5305  if (((bitField0_ & 0x00000400) != 0)) {
5306  output.writeBool(56, subsumptionDuringConflictAnalysis_);
5307  }
5308  if (((bitField1_ & 0x00020000) != 0)) {
5309  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
5310  }
5311  if (((bitField0_ & 0x00002000) != 0)) {
5312  output.writeEnum(58, clauseCleanupProtection_);
5313  }
5314  if (((bitField0_ & 0x00004000) != 0)) {
5315  output.writeInt32(59, clauseCleanupLbdBound_);
5316  }
5317  if (((bitField0_ & 0x00008000) != 0)) {
5318  output.writeEnum(60, clauseCleanupOrdering_);
5319  }
5320  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5321  output.writeEnum(61, restartAlgorithms_.get(i));
5322  }
5323  if (((bitField0_ & 0x20000000) != 0)) {
5324  output.writeInt32(62, restartRunningWindowSize_);
5325  }
5326  if (((bitField0_ & 0x40000000) != 0)) {
5327  output.writeDouble(63, restartDlAverageRatio_);
5328  }
5329  if (((bitField1_ & 0x00000001) != 0)) {
5330  output.writeBool(64, useBlockingRestart_);
5331  }
5332  if (((bitField1_ & 0x00000002) != 0)) {
5333  output.writeInt32(65, blockingRestartWindowSize_);
5334  }
5335  if (((bitField1_ & 0x00000004) != 0)) {
5336  output.writeDouble(66, blockingRestartMultiplier_);
5337  }
5338  if (((bitField1_ & 0x00000040) != 0)) {
5339  output.writeDouble(67, maxDeterministicTime_);
5340  }
5341  if (((bitField1_ & 0x00000008) != 0)) {
5342  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
5343  }
5344  if (((bitField1_ & 0x00000010) != 0)) {
5345  output.writeDouble(69, strategyChangeIncreaseRatio_);
5346  }
5347  if (((bitField0_ & 0x08000000) != 0)) {
5348  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
5349  }
5350  if (((bitField0_ & 0x80000000) != 0)) {
5351  output.writeDouble(71, restartLbdAverageRatio_);
5352  }
5353  if (((bitField1_ & 0x00080000) != 0)) {
5354  output.writeBool(72, presolveUseBva_);
5355  }
5356  if (((bitField1_ & 0x00100000) != 0)) {
5357  output.writeInt32(73, presolveBvaThreshold_);
5358  }
5359  if (((bitField1_ & 0x10000000) != 0)) {
5360  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
5361  }
5362  if (((bitField0_ & 0x00000020) != 0)) {
5363  output.writeBool(75, useErwaHeuristic_);
5364  }
5365  if (((bitField0_ & 0x00000040) != 0)) {
5366  output.writeDouble(76, initialVariablesActivity_);
5367  }
5368  if (((bitField0_ & 0x00000080) != 0)) {
5369  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
5370  }
5371  if (((bitField1_ & 0x20000000) != 0)) {
5372  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
5373  }
5374  if (((bitField1_ & 0x40000000) != 0)) {
5375  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
5376  }
5377  if (((bitField1_ & 0x80000000) != 0)) {
5378  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
5379  }
5380  if (((bitField2_ & 0x00002000) != 0)) {
5381  output.writeEnum(82, searchBranching_);
5382  }
5383  if (((bitField2_ & 0x00080000) != 0)) {
5384  output.writeBool(83, optimizeWithCore_);
5385  }
5386  if (((bitField1_ & 0x00800000) != 0)) {
5387  output.writeBool(84, findMultipleCores_);
5388  }
5389  if (((bitField2_ & 0x00200000) != 0)) {
5390  output.writeBool(85, optimizeWithMaxHs_);
5391  }
5392  if (((bitField2_ & 0x00400000) != 0)) {
5393  output.writeBool(86, cpModelPresolve_);
5394  }
5395  if (((bitField2_ & 0x02000000) != 0)) {
5396  output.writeBool(87, enumerateAllSolutions_);
5397  }
5398  if (((bitField1_ & 0x00040000) != 0)) {
5399  output.writeBool(88, presolveBlockedClause_);
5400  }
5401  if (((bitField1_ & 0x01000000) != 0)) {
5402  output.writeBool(89, coverOptimization_);
5403  }
5404  if (((bitField2_ & 0x00000001) != 0)) {
5405  output.writeInt32(90, linearizationLevel_);
5406  }
5407  if (((bitField2_ & 0x00000004) != 0)) {
5408  output.writeInt32(91, maxNumCuts_);
5409  }
5410  if (((bitField2_ & 0x00000008) != 0)) {
5411  output.writeBool(92, onlyAddCutsAtLevelZero_);
5412  }
5413  if (((bitField2_ & 0x01000000) != 0)) {
5414  output.writeBool(93, cpModelUseSatPresolve_);
5415  }
5416  if (((bitField2_ & 0x00004000) != 0)) {
5417  output.writeBool(94, exploitIntegerLpSolution_);
5418  }
5419  if (((bitField2_ & 0x10000000) != 0)) {
5420  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
5421  }
5422  if (((bitField0_ & 0x00040000) != 0)) {
5423  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
5424  }
5425  if (((bitField0_ & 0x00080000) != 0)) {
5426  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
5427  }
5428  if (((bitField2_ & 0x20000000) != 0)) {
5429  output.writeBool(98, stopAfterFirstSolution_);
5430  }
5431  if (((bitField2_ & 0x00100000) != 0)) {
5432  output.writeInt32(99, binarySearchNumConflicts_);
5433  }
5434  if (((bitField2_ & 0x40000000) != 0)) {
5435  output.writeInt32(100, numSearchWorkers_);
5436  }
5437  if (((bitField3_ & 0x00000008) != 0)) {
5438  output.writeBool(101, useLnsOnly_);
5439  }
5440  if (((bitField3_ & 0x00000040) != 0)) {
5441  output.writeBool(103, randomizeSearch_);
5442  }
5443  if (((bitField3_ & 0x00000080) != 0)) {
5444  output.writeInt64(104, searchRandomizationTolerance_);
5445  }
5446  if (((bitField3_ & 0x00000010) != 0)) {
5447  output.writeBool(105, lnsFocusOnDecisionVariables_);
5448  }
5449  if (((bitField2_ & 0x08000000) != 0)) {
5450  output.writeBool(106, instantiateAllVariables_);
5451  }
5452  if (((bitField2_ & 0x00000002) != 0)) {
5453  output.writeInt32(107, booleanEncodingLevel_);
5454  }
5455  if (((bitField3_ & 0x00000100) != 0)) {
5456  output.writeBool(108, useOptionalVariables_);
5457  }
5458  if (((bitField3_ & 0x00000200) != 0)) {
5459  output.writeBool(109, useExactLpReason_);
5460  }
5461  if (((bitField2_ & 0x00800000) != 0)) {
5462  output.writeInt32(110, cpModelProbingLevel_);
5463  }
5464  if (((bitField2_ & 0x00000010) != 0)) {
5465  output.writeBool(111, addKnapsackCuts_);
5466  }
5467  if (((bitField2_ & 0x00000200) != 0)) {
5468  output.writeBool(112, addLpConstraintsLazily_);
5469  }
5470  if (((bitField3_ & 0x00000002) != 0)) {
5471  output.writeBool(113, shareObjectiveBounds_);
5472  }
5473  if (((bitField3_ & 0x00000004) != 0)) {
5474  output.writeBool(114, shareLevelZeroBounds_);
5475  }
5476  if (((bitField2_ & 0x00000400) != 0)) {
5477  output.writeDouble(115, minOrthogonalityForLpConstraints_);
5478  }
5479  if (((bitField2_ & 0x00008000) != 0)) {
5480  output.writeBool(116, exploitAllLpSolution_);
5481  }
5482  if (((bitField2_ & 0x00000020) != 0)) {
5483  output.writeBool(117, addCgCuts_);
5484  }
5485  if (((bitField2_ & 0x00000080) != 0)) {
5486  output.writeBool(118, useMirRounding_);
5487  }
5488  if (((bitField2_ & 0x00000100) != 0)) {
5489  output.writeInt32(119, maxIntegerRoundingScaling_);
5490  }
5491  if (((bitField2_ & 0x00000040) != 0)) {
5492  output.writeBool(120, addMirCuts_);
5493  }
5494  if (((bitField2_ & 0x00000800) != 0)) {
5495  output.writeInt64(121, maxInactiveCount_);
5496  }
5497  if (((bitField2_ & 0x00001000) != 0)) {
5498  output.writeInt64(122, constraintRemovalBatchSize_);
5499  }
5500  if (((bitField2_ & 0x00040000) != 0)) {
5501  output.writeInt64(123, pseudoCostReliabilityThreshold_);
5502  }
5503  if (((bitField3_ & 0x00000800) != 0)) {
5504  output.writeDouble(124, mipMaxBound_);
5505  }
5506  if (((bitField3_ & 0x00001000) != 0)) {
5507  output.writeDouble(125, mipVarScaling_);
5508  }
5509  if (((bitField3_ & 0x00002000) != 0)) {
5510  output.writeDouble(126, mipWantedPrecision_);
5511  }
5512  if (((bitField3_ & 0x00004000) != 0)) {
5513  output.writeInt32(127, mipMaxActivityExponent_);
5514  }
5515  if (((bitField3_ & 0x00008000) != 0)) {
5516  output.writeDouble(128, mipCheckPrecision_);
5517  }
5518  if (((bitField3_ & 0x00000020) != 0)) {
5519  output.writeBool(129, useRinsLns_);
5520  }
5521  if (((bitField2_ & 0x00010000) != 0)) {
5522  output.writeBool(130, exploitBestSolution_);
5523  }
5524  if (((bitField2_ & 0x00020000) != 0)) {
5525  output.writeBool(131, exploitObjective_);
5526  }
5527  if (((bitField2_ & 0x04000000) != 0)) {
5528  output.writeBool(132, fillTightenedDomainsInResponse_);
5529  }
5530  if (((bitField3_ & 0x00000400) != 0)) {
5531  output.writeBool(133, useCombinedNoOverlap_);
5532  }
5533  if (((bitField3_ & 0x00000001) != 0)) {
5534  output.writeBool(134, deterministicParallelSearch_);
5535  }
5536  if (((bitField3_ & 0x00010000) != 0)) {
5537  output.writeBool(135, catchSigintSignal_);
5538  }
5539  if (((bitField2_ & 0x80000000) != 0)) {
5540  output.writeBool(136, interleaveSearch_);
5541  }
5542  unknownFields.writeTo(output);
5543  }
5544 
5545  @java.lang.Override
5546  public int getSerializedSize() {
5547  int size = memoizedSize;
5548  if (size != -1) return size;
5549 
5550  size = 0;
5551  if (((bitField0_ & 0x00000001) != 0)) {
5552  size += com.google.protobuf.CodedOutputStream
5553  .computeEnumSize(1, preferredVariableOrder_);
5554  }
5555  if (((bitField0_ & 0x00000002) != 0)) {
5556  size += com.google.protobuf.CodedOutputStream
5557  .computeEnumSize(2, initialPolarity_);
5558  }
5559  if (((bitField0_ & 0x00000100) != 0)) {
5560  size += com.google.protobuf.CodedOutputStream
5561  .computeEnumSize(4, minimizationAlgorithm_);
5562  }
5563  if (((bitField0_ & 0x00000800) != 0)) {
5564  size += com.google.protobuf.CodedOutputStream
5565  .computeInt32Size(11, clauseCleanupPeriod_);
5566  }
5567  if (((bitField0_ & 0x00001000) != 0)) {
5568  size += com.google.protobuf.CodedOutputStream
5569  .computeInt32Size(13, clauseCleanupTarget_);
5570  }
5571  if (((bitField0_ & 0x00100000) != 0)) {
5572  size += com.google.protobuf.CodedOutputStream
5573  .computeDoubleSize(15, variableActivityDecay_);
5574  }
5575  if (((bitField0_ & 0x00200000) != 0)) {
5576  size += com.google.protobuf.CodedOutputStream
5577  .computeDoubleSize(16, maxVariableActivityValue_);
5578  }
5579  if (((bitField0_ & 0x02000000) != 0)) {
5580  size += com.google.protobuf.CodedOutputStream
5581  .computeDoubleSize(17, clauseActivityDecay_);
5582  }
5583  if (((bitField0_ & 0x04000000) != 0)) {
5584  size += com.google.protobuf.CodedOutputStream
5585  .computeDoubleSize(18, maxClauseActivityValue_);
5586  }
5587  if (((bitField0_ & 0x00400000) != 0)) {
5588  size += com.google.protobuf.CodedOutputStream
5589  .computeDoubleSize(22, glucoseMaxDecay_);
5590  }
5591  if (((bitField0_ & 0x00800000) != 0)) {
5592  size += com.google.protobuf.CodedOutputStream
5593  .computeDoubleSize(23, glucoseDecayIncrement_);
5594  }
5595  if (((bitField0_ & 0x01000000) != 0)) {
5596  size += com.google.protobuf.CodedOutputStream
5597  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
5598  }
5599  if (((bitField0_ & 0x10000000) != 0)) {
5600  size += com.google.protobuf.CodedOutputStream
5601  .computeInt32Size(30, restartPeriod_);
5602  }
5603  if (((bitField1_ & 0x00000400) != 0)) {
5604  size += com.google.protobuf.CodedOutputStream
5605  .computeInt32Size(31, randomSeed_);
5606  }
5607  if (((bitField0_ & 0x00000010) != 0)) {
5608  size += com.google.protobuf.CodedOutputStream
5609  .computeDoubleSize(32, randomBranchesRatio_);
5610  }
5611  if (((bitField1_ & 0x00000200) != 0)) {
5612  size += com.google.protobuf.CodedOutputStream
5613  .computeBoolSize(33, treatBinaryClausesSeparately_);
5614  }
5615  if (((bitField0_ & 0x00000200) != 0)) {
5616  size += com.google.protobuf.CodedOutputStream
5617  .computeEnumSize(34, binaryMinimizationAlgorithm_);
5618  }
5619  if (((bitField1_ & 0x00200000) != 0)) {
5620  size += com.google.protobuf.CodedOutputStream
5621  .computeBoolSize(35, useOptimizationHints_);
5622  }
5623  if (((bitField1_ & 0x00000020) != 0)) {
5624  size += com.google.protobuf.CodedOutputStream
5625  .computeDoubleSize(36, maxTimeInSeconds_);
5626  }
5627  if (((bitField1_ & 0x00000080) != 0)) {
5628  size += com.google.protobuf.CodedOutputStream
5629  .computeInt64Size(37, maxNumberOfConflicts_);
5630  }
5631  if (((bitField1_ & 0x00000100) != 0)) {
5632  size += com.google.protobuf.CodedOutputStream
5633  .computeInt64Size(40, maxMemoryInMb_);
5634  }
5635  if (((bitField1_ & 0x00000800) != 0)) {
5636  size += com.google.protobuf.CodedOutputStream
5637  .computeBoolSize(41, logSearchProgress_);
5638  }
5639  if (((bitField1_ & 0x00001000) != 0)) {
5640  size += com.google.protobuf.CodedOutputStream
5641  .computeBoolSize(43, usePbResolution_);
5642  }
5643  if (((bitField0_ & 0x00000004) != 0)) {
5644  size += com.google.protobuf.CodedOutputStream
5645  .computeBoolSize(44, usePhaseSaving_);
5646  }
5647  if (((bitField0_ & 0x00000008) != 0)) {
5648  size += com.google.protobuf.CodedOutputStream
5649  .computeDoubleSize(45, randomPolarityRatio_);
5650  }
5651  if (((bitField0_ & 0x00010000) != 0)) {
5652  size += com.google.protobuf.CodedOutputStream
5653  .computeInt32Size(46, pbCleanupIncrement_);
5654  }
5655  if (((bitField0_ & 0x00020000) != 0)) {
5656  size += com.google.protobuf.CodedOutputStream
5657  .computeDoubleSize(47, pbCleanupRatio_);
5658  }
5659  if (((bitField1_ & 0x00002000) != 0)) {
5660  size += com.google.protobuf.CodedOutputStream
5661  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
5662  }
5663  if (((bitField1_ & 0x00004000) != 0)) {
5664  size += com.google.protobuf.CodedOutputStream
5665  .computeBoolSize(49, countAssumptionLevelsInLbd_);
5666  }
5667  if (((bitField1_ & 0x00400000) != 0)) {
5668  size += com.google.protobuf.CodedOutputStream
5669  .computeBoolSize(50, minimizeCore_);
5670  }
5671  if (((bitField1_ & 0x02000000) != 0)) {
5672  size += com.google.protobuf.CodedOutputStream
5673  .computeEnumSize(51, maxSatAssumptionOrder_);
5674  }
5675  if (((bitField1_ & 0x04000000) != 0)) {
5676  size += com.google.protobuf.CodedOutputStream
5677  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
5678  }
5679  if (((bitField1_ & 0x08000000) != 0)) {
5680  size += com.google.protobuf.CodedOutputStream
5681  .computeEnumSize(53, maxSatStratification_);
5682  }
5683  if (((bitField1_ & 0x00008000) != 0)) {
5684  size += com.google.protobuf.CodedOutputStream
5685  .computeInt32Size(54, presolveBveThreshold_);
5686  }
5687  if (((bitField1_ & 0x00010000) != 0)) {
5688  size += com.google.protobuf.CodedOutputStream
5689  .computeInt32Size(55, presolveBveClauseWeight_);
5690  }
5691  if (((bitField0_ & 0x00000400) != 0)) {
5692  size += com.google.protobuf.CodedOutputStream
5693  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
5694  }
5695  if (((bitField1_ & 0x00020000) != 0)) {
5696  size += com.google.protobuf.CodedOutputStream
5697  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
5698  }
5699  if (((bitField0_ & 0x00002000) != 0)) {
5700  size += com.google.protobuf.CodedOutputStream
5701  .computeEnumSize(58, clauseCleanupProtection_);
5702  }
5703  if (((bitField0_ & 0x00004000) != 0)) {
5704  size += com.google.protobuf.CodedOutputStream
5705  .computeInt32Size(59, clauseCleanupLbdBound_);
5706  }
5707  if (((bitField0_ & 0x00008000) != 0)) {
5708  size += com.google.protobuf.CodedOutputStream
5709  .computeEnumSize(60, clauseCleanupOrdering_);
5710  }
5711  {
5712  int dataSize = 0;
5713  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5714  dataSize += com.google.protobuf.CodedOutputStream
5715  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
5716  }
5717  size += dataSize;
5718  size += 2 * restartAlgorithms_.size();
5719  }
5720  if (((bitField0_ & 0x20000000) != 0)) {
5721  size += com.google.protobuf.CodedOutputStream
5722  .computeInt32Size(62, restartRunningWindowSize_);
5723  }
5724  if (((bitField0_ & 0x40000000) != 0)) {
5725  size += com.google.protobuf.CodedOutputStream
5726  .computeDoubleSize(63, restartDlAverageRatio_);
5727  }
5728  if (((bitField1_ & 0x00000001) != 0)) {
5729  size += com.google.protobuf.CodedOutputStream
5730  .computeBoolSize(64, useBlockingRestart_);
5731  }
5732  if (((bitField1_ & 0x00000002) != 0)) {
5733  size += com.google.protobuf.CodedOutputStream
5734  .computeInt32Size(65, blockingRestartWindowSize_);
5735  }
5736  if (((bitField1_ & 0x00000004) != 0)) {
5737  size += com.google.protobuf.CodedOutputStream
5738  .computeDoubleSize(66, blockingRestartMultiplier_);
5739  }
5740  if (((bitField1_ & 0x00000040) != 0)) {
5741  size += com.google.protobuf.CodedOutputStream
5742  .computeDoubleSize(67, maxDeterministicTime_);
5743  }
5744  if (((bitField1_ & 0x00000008) != 0)) {
5745  size += com.google.protobuf.CodedOutputStream
5746  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
5747  }
5748  if (((bitField1_ & 0x00000010) != 0)) {
5749  size += com.google.protobuf.CodedOutputStream
5750  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
5751  }
5752  if (((bitField0_ & 0x08000000) != 0)) {
5753  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
5754  }
5755  if (((bitField0_ & 0x80000000) != 0)) {
5756  size += com.google.protobuf.CodedOutputStream
5757  .computeDoubleSize(71, restartLbdAverageRatio_);
5758  }
5759  if (((bitField1_ & 0x00080000) != 0)) {
5760  size += com.google.protobuf.CodedOutputStream
5761  .computeBoolSize(72, presolveUseBva_);
5762  }
5763  if (((bitField1_ & 0x00100000) != 0)) {
5764  size += com.google.protobuf.CodedOutputStream
5765  .computeInt32Size(73, presolveBvaThreshold_);
5766  }
5767  if (((bitField1_ & 0x10000000) != 0)) {
5768  size += com.google.protobuf.CodedOutputStream
5769  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
5770  }
5771  if (((bitField0_ & 0x00000020) != 0)) {
5772  size += com.google.protobuf.CodedOutputStream
5773  .computeBoolSize(75, useErwaHeuristic_);
5774  }
5775  if (((bitField0_ & 0x00000040) != 0)) {
5776  size += com.google.protobuf.CodedOutputStream
5777  .computeDoubleSize(76, initialVariablesActivity_);
5778  }
5779  if (((bitField0_ & 0x00000080) != 0)) {
5780  size += com.google.protobuf.CodedOutputStream
5781  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
5782  }
5783  if (((bitField1_ & 0x20000000) != 0)) {
5784  size += com.google.protobuf.CodedOutputStream
5785  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
5786  }
5787  if (((bitField1_ & 0x40000000) != 0)) {
5788  size += com.google.protobuf.CodedOutputStream
5789  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
5790  }
5791  if (((bitField1_ & 0x80000000) != 0)) {
5792  size += com.google.protobuf.CodedOutputStream
5793  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
5794  }
5795  if (((bitField2_ & 0x00002000) != 0)) {
5796  size += com.google.protobuf.CodedOutputStream
5797  .computeEnumSize(82, searchBranching_);
5798  }
5799  if (((bitField2_ & 0x00080000) != 0)) {
5800  size += com.google.protobuf.CodedOutputStream
5801  .computeBoolSize(83, optimizeWithCore_);
5802  }
5803  if (((bitField1_ & 0x00800000) != 0)) {
5804  size += com.google.protobuf.CodedOutputStream
5805  .computeBoolSize(84, findMultipleCores_);
5806  }
5807  if (((bitField2_ & 0x00200000) != 0)) {
5808  size += com.google.protobuf.CodedOutputStream
5809  .computeBoolSize(85, optimizeWithMaxHs_);
5810  }
5811  if (((bitField2_ & 0x00400000) != 0)) {
5812  size += com.google.protobuf.CodedOutputStream
5813  .computeBoolSize(86, cpModelPresolve_);
5814  }
5815  if (((bitField2_ & 0x02000000) != 0)) {
5816  size += com.google.protobuf.CodedOutputStream
5817  .computeBoolSize(87, enumerateAllSolutions_);
5818  }
5819  if (((bitField1_ & 0x00040000) != 0)) {
5820  size += com.google.protobuf.CodedOutputStream
5821  .computeBoolSize(88, presolveBlockedClause_);
5822  }
5823  if (((bitField1_ & 0x01000000) != 0)) {
5824  size += com.google.protobuf.CodedOutputStream
5825  .computeBoolSize(89, coverOptimization_);
5826  }
5827  if (((bitField2_ & 0x00000001) != 0)) {
5828  size += com.google.protobuf.CodedOutputStream
5829  .computeInt32Size(90, linearizationLevel_);
5830  }
5831  if (((bitField2_ & 0x00000004) != 0)) {
5832  size += com.google.protobuf.CodedOutputStream
5833  .computeInt32Size(91, maxNumCuts_);
5834  }
5835  if (((bitField2_ & 0x00000008) != 0)) {
5836  size += com.google.protobuf.CodedOutputStream
5837  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
5838  }
5839  if (((bitField2_ & 0x01000000) != 0)) {
5840  size += com.google.protobuf.CodedOutputStream
5841  .computeBoolSize(93, cpModelUseSatPresolve_);
5842  }
5843  if (((bitField2_ & 0x00004000) != 0)) {
5844  size += com.google.protobuf.CodedOutputStream
5845  .computeBoolSize(94, exploitIntegerLpSolution_);
5846  }
5847  if (((bitField2_ & 0x10000000) != 0)) {
5848  size += com.google.protobuf.CodedOutputStream
5849  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
5850  }
5851  if (((bitField0_ & 0x00040000) != 0)) {
5852  size += com.google.protobuf.CodedOutputStream
5853  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
5854  }
5855  if (((bitField0_ & 0x00080000) != 0)) {
5856  size += com.google.protobuf.CodedOutputStream
5857  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
5858  }
5859  if (((bitField2_ & 0x20000000) != 0)) {
5860  size += com.google.protobuf.CodedOutputStream
5861  .computeBoolSize(98, stopAfterFirstSolution_);
5862  }
5863  if (((bitField2_ & 0x00100000) != 0)) {
5864  size += com.google.protobuf.CodedOutputStream
5865  .computeInt32Size(99, binarySearchNumConflicts_);
5866  }
5867  if (((bitField2_ & 0x40000000) != 0)) {
5868  size += com.google.protobuf.CodedOutputStream
5869  .computeInt32Size(100, numSearchWorkers_);
5870  }
5871  if (((bitField3_ & 0x00000008) != 0)) {
5872  size += com.google.protobuf.CodedOutputStream
5873  .computeBoolSize(101, useLnsOnly_);
5874  }
5875  if (((bitField3_ & 0x00000040) != 0)) {
5876  size += com.google.protobuf.CodedOutputStream
5877  .computeBoolSize(103, randomizeSearch_);
5878  }
5879  if (((bitField3_ & 0x00000080) != 0)) {
5880  size += com.google.protobuf.CodedOutputStream
5881  .computeInt64Size(104, searchRandomizationTolerance_);
5882  }
5883  if (((bitField3_ & 0x00000010) != 0)) {
5884  size += com.google.protobuf.CodedOutputStream
5885  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
5886  }
5887  if (((bitField2_ & 0x08000000) != 0)) {
5888  size += com.google.protobuf.CodedOutputStream
5889  .computeBoolSize(106, instantiateAllVariables_);
5890  }
5891  if (((bitField2_ & 0x00000002) != 0)) {
5892  size += com.google.protobuf.CodedOutputStream
5893  .computeInt32Size(107, booleanEncodingLevel_);
5894  }
5895  if (((bitField3_ & 0x00000100) != 0)) {
5896  size += com.google.protobuf.CodedOutputStream
5897  .computeBoolSize(108, useOptionalVariables_);
5898  }
5899  if (((bitField3_ & 0x00000200) != 0)) {
5900  size += com.google.protobuf.CodedOutputStream
5901  .computeBoolSize(109, useExactLpReason_);
5902  }
5903  if (((bitField2_ & 0x00800000) != 0)) {
5904  size += com.google.protobuf.CodedOutputStream
5905  .computeInt32Size(110, cpModelProbingLevel_);
5906  }
5907  if (((bitField2_ & 0x00000010) != 0)) {
5908  size += com.google.protobuf.CodedOutputStream
5909  .computeBoolSize(111, addKnapsackCuts_);
5910  }
5911  if (((bitField2_ & 0x00000200) != 0)) {
5912  size += com.google.protobuf.CodedOutputStream
5913  .computeBoolSize(112, addLpConstraintsLazily_);
5914  }
5915  if (((bitField3_ & 0x00000002) != 0)) {
5916  size += com.google.protobuf.CodedOutputStream
5917  .computeBoolSize(113, shareObjectiveBounds_);
5918  }
5919  if (((bitField3_ & 0x00000004) != 0)) {
5920  size += com.google.protobuf.CodedOutputStream
5921  .computeBoolSize(114, shareLevelZeroBounds_);
5922  }
5923  if (((bitField2_ & 0x00000400) != 0)) {
5924  size += com.google.protobuf.CodedOutputStream
5925  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
5926  }
5927  if (((bitField2_ & 0x00008000) != 0)) {
5928  size += com.google.protobuf.CodedOutputStream
5929  .computeBoolSize(116, exploitAllLpSolution_);
5930  }
5931  if (((bitField2_ & 0x00000020) != 0)) {
5932  size += com.google.protobuf.CodedOutputStream
5933  .computeBoolSize(117, addCgCuts_);
5934  }
5935  if (((bitField2_ & 0x00000080) != 0)) {
5936  size += com.google.protobuf.CodedOutputStream
5937  .computeBoolSize(118, useMirRounding_);
5938  }
5939  if (((bitField2_ & 0x00000100) != 0)) {
5940  size += com.google.protobuf.CodedOutputStream
5941  .computeInt32Size(119, maxIntegerRoundingScaling_);
5942  }
5943  if (((bitField2_ & 0x00000040) != 0)) {
5944  size += com.google.protobuf.CodedOutputStream
5945  .computeBoolSize(120, addMirCuts_);
5946  }
5947  if (((bitField2_ & 0x00000800) != 0)) {
5948  size += com.google.protobuf.CodedOutputStream
5949  .computeInt64Size(121, maxInactiveCount_);
5950  }
5951  if (((bitField2_ & 0x00001000) != 0)) {
5952  size += com.google.protobuf.CodedOutputStream
5953  .computeInt64Size(122, constraintRemovalBatchSize_);
5954  }
5955  if (((bitField2_ & 0x00040000) != 0)) {
5956  size += com.google.protobuf.CodedOutputStream
5957  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
5958  }
5959  if (((bitField3_ & 0x00000800) != 0)) {
5960  size += com.google.protobuf.CodedOutputStream
5961  .computeDoubleSize(124, mipMaxBound_);
5962  }
5963  if (((bitField3_ & 0x00001000) != 0)) {
5964  size += com.google.protobuf.CodedOutputStream
5965  .computeDoubleSize(125, mipVarScaling_);
5966  }
5967  if (((bitField3_ & 0x00002000) != 0)) {
5968  size += com.google.protobuf.CodedOutputStream
5969  .computeDoubleSize(126, mipWantedPrecision_);
5970  }
5971  if (((bitField3_ & 0x00004000) != 0)) {
5972  size += com.google.protobuf.CodedOutputStream
5973  .computeInt32Size(127, mipMaxActivityExponent_);
5974  }
5975  if (((bitField3_ & 0x00008000) != 0)) {
5976  size += com.google.protobuf.CodedOutputStream
5977  .computeDoubleSize(128, mipCheckPrecision_);
5978  }
5979  if (((bitField3_ & 0x00000020) != 0)) {
5980  size += com.google.protobuf.CodedOutputStream
5981  .computeBoolSize(129, useRinsLns_);
5982  }
5983  if (((bitField2_ & 0x00010000) != 0)) {
5984  size += com.google.protobuf.CodedOutputStream
5985  .computeBoolSize(130, exploitBestSolution_);
5986  }
5987  if (((bitField2_ & 0x00020000) != 0)) {
5988  size += com.google.protobuf.CodedOutputStream
5989  .computeBoolSize(131, exploitObjective_);
5990  }
5991  if (((bitField2_ & 0x04000000) != 0)) {
5992  size += com.google.protobuf.CodedOutputStream
5993  .computeBoolSize(132, fillTightenedDomainsInResponse_);
5994  }
5995  if (((bitField3_ & 0x00000400) != 0)) {
5996  size += com.google.protobuf.CodedOutputStream
5997  .computeBoolSize(133, useCombinedNoOverlap_);
5998  }
5999  if (((bitField3_ & 0x00000001) != 0)) {
6000  size += com.google.protobuf.CodedOutputStream
6001  .computeBoolSize(134, deterministicParallelSearch_);
6002  }
6003  if (((bitField3_ & 0x00010000) != 0)) {
6004  size += com.google.protobuf.CodedOutputStream
6005  .computeBoolSize(135, catchSigintSignal_);
6006  }
6007  if (((bitField2_ & 0x80000000) != 0)) {
6008  size += com.google.protobuf.CodedOutputStream
6009  .computeBoolSize(136, interleaveSearch_);
6010  }
6011  size += unknownFields.getSerializedSize();
6012  memoizedSize = size;
6013  return size;
6014  }
6015 
6016  @java.lang.Override
6017  public boolean equals(final java.lang.Object obj) {
6018  if (obj == this) {
6019  return true;
6020  }
6021  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
6022  return super.equals(obj);
6023  }
6025 
6026  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
6027  if (hasPreferredVariableOrder()) {
6028  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
6029  }
6030  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
6031  if (hasInitialPolarity()) {
6032  if (initialPolarity_ != other.initialPolarity_) return false;
6033  }
6034  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
6035  if (hasUsePhaseSaving()) {
6036  if (getUsePhaseSaving()
6037  != other.getUsePhaseSaving()) return false;
6038  }
6039  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
6040  if (hasRandomPolarityRatio()) {
6041  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
6042  != java.lang.Double.doubleToLongBits(
6043  other.getRandomPolarityRatio())) return false;
6044  }
6045  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
6046  if (hasRandomBranchesRatio()) {
6047  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
6048  != java.lang.Double.doubleToLongBits(
6049  other.getRandomBranchesRatio())) return false;
6050  }
6051  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
6052  if (hasUseErwaHeuristic()) {
6053  if (getUseErwaHeuristic()
6054  != other.getUseErwaHeuristic()) return false;
6055  }
6056  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
6058  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
6059  != java.lang.Double.doubleToLongBits(
6060  other.getInitialVariablesActivity())) return false;
6061  }
6062  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
6065  != other.getAlsoBumpVariablesInConflictReasons()) return false;
6066  }
6067  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
6068  if (hasMinimizationAlgorithm()) {
6069  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
6070  }
6071  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
6073  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
6074  }
6075  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
6078  != other.getSubsumptionDuringConflictAnalysis()) return false;
6079  }
6080  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
6081  if (hasClauseCleanupPeriod()) {
6083  != other.getClauseCleanupPeriod()) return false;
6084  }
6085  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
6086  if (hasClauseCleanupTarget()) {
6088  != other.getClauseCleanupTarget()) return false;
6089  }
6090  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
6092  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
6093  }
6094  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
6095  if (hasClauseCleanupLbdBound()) {
6097  != other.getClauseCleanupLbdBound()) return false;
6098  }
6099  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
6100  if (hasClauseCleanupOrdering()) {
6101  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
6102  }
6103  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
6104  if (hasPbCleanupIncrement()) {
6105  if (getPbCleanupIncrement()
6106  != other.getPbCleanupIncrement()) return false;
6107  }
6108  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
6109  if (hasPbCleanupRatio()) {
6110  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
6111  != java.lang.Double.doubleToLongBits(
6112  other.getPbCleanupRatio())) return false;
6113  }
6114  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
6117  != other.getMinimizeWithPropagationRestartPeriod()) return false;
6118  }
6119  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
6122  != other.getMinimizeWithPropagationNumDecisions()) return false;
6123  }
6124  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
6125  if (hasVariableActivityDecay()) {
6126  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
6127  != java.lang.Double.doubleToLongBits(
6128  other.getVariableActivityDecay())) return false;
6129  }
6130  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6132  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6133  != java.lang.Double.doubleToLongBits(
6134  other.getMaxVariableActivityValue())) return false;
6135  }
6136  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6137  if (hasGlucoseMaxDecay()) {
6138  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6139  != java.lang.Double.doubleToLongBits(
6140  other.getGlucoseMaxDecay())) return false;
6141  }
6142  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
6143  if (hasGlucoseDecayIncrement()) {
6144  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
6145  != java.lang.Double.doubleToLongBits(
6146  other.getGlucoseDecayIncrement())) return false;
6147  }
6148  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
6151  != other.getGlucoseDecayIncrementPeriod()) return false;
6152  }
6153  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
6154  if (hasClauseActivityDecay()) {
6155  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
6156  != java.lang.Double.doubleToLongBits(
6157  other.getClauseActivityDecay())) return false;
6158  }
6159  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
6160  if (hasMaxClauseActivityValue()) {
6161  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
6162  != java.lang.Double.doubleToLongBits(
6163  other.getMaxClauseActivityValue())) return false;
6164  }
6165  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
6166  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
6169  .equals(other.getDefaultRestartAlgorithms())) return false;
6170  }
6171  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
6172  if (hasRestartPeriod()) {
6173  if (getRestartPeriod()
6174  != other.getRestartPeriod()) return false;
6175  }
6176  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
6179  != other.getRestartRunningWindowSize()) return false;
6180  }
6181  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
6182  if (hasRestartDlAverageRatio()) {
6183  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
6184  != java.lang.Double.doubleToLongBits(
6185  other.getRestartDlAverageRatio())) return false;
6186  }
6187  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
6188  if (hasRestartLbdAverageRatio()) {
6189  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
6190  != java.lang.Double.doubleToLongBits(
6191  other.getRestartLbdAverageRatio())) return false;
6192  }
6193  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
6194  if (hasUseBlockingRestart()) {
6195  if (getUseBlockingRestart()
6196  != other.getUseBlockingRestart()) return false;
6197  }
6198  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
6201  != other.getBlockingRestartWindowSize()) return false;
6202  }
6203  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
6205  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
6206  != java.lang.Double.doubleToLongBits(
6207  other.getBlockingRestartMultiplier())) return false;
6208  }
6209  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
6212  != other.getNumConflictsBeforeStrategyChanges()) return false;
6213  }
6214  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
6216  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
6217  != java.lang.Double.doubleToLongBits(
6218  other.getStrategyChangeIncreaseRatio())) return false;
6219  }
6220  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
6221  if (hasMaxTimeInSeconds()) {
6222  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
6223  != java.lang.Double.doubleToLongBits(
6224  other.getMaxTimeInSeconds())) return false;
6225  }
6226  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
6227  if (hasMaxDeterministicTime()) {
6228  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
6229  != java.lang.Double.doubleToLongBits(
6230  other.getMaxDeterministicTime())) return false;
6231  }
6232  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
6233  if (hasMaxNumberOfConflicts()) {
6235  != other.getMaxNumberOfConflicts()) return false;
6236  }
6237  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
6238  if (hasMaxMemoryInMb()) {
6239  if (getMaxMemoryInMb()
6240  != other.getMaxMemoryInMb()) return false;
6241  }
6242  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
6245  != other.getTreatBinaryClausesSeparately()) return false;
6246  }
6247  if (hasRandomSeed() != other.hasRandomSeed()) return false;
6248  if (hasRandomSeed()) {
6249  if (getRandomSeed()
6250  != other.getRandomSeed()) return false;
6251  }
6252  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
6253  if (hasLogSearchProgress()) {
6254  if (getLogSearchProgress()
6255  != other.getLogSearchProgress()) return false;
6256  }
6257  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
6258  if (hasUsePbResolution()) {
6259  if (getUsePbResolution()
6260  != other.getUsePbResolution()) return false;
6261  }
6262  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
6265  != other.getMinimizeReductionDuringPbResolution()) return false;
6266  }
6267  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
6270  != other.getCountAssumptionLevelsInLbd()) return false;
6271  }
6272  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
6273  if (hasPresolveBveThreshold()) {
6275  != other.getPresolveBveThreshold()) return false;
6276  }
6277  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
6280  != other.getPresolveBveClauseWeight()) return false;
6281  }
6282  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
6284  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
6285  != java.lang.Double.doubleToLongBits(
6286  other.getPresolveProbingDeterministicTimeLimit())) return false;
6287  }
6288  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
6289  if (hasPresolveBlockedClause()) {
6291  != other.getPresolveBlockedClause()) return false;
6292  }
6293  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
6294  if (hasPresolveUseBva()) {
6295  if (getPresolveUseBva()
6296  != other.getPresolveUseBva()) return false;
6297  }
6298  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
6299  if (hasPresolveBvaThreshold()) {
6301  != other.getPresolveBvaThreshold()) return false;
6302  }
6303  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
6304  if (hasUseOptimizationHints()) {
6306  != other.getUseOptimizationHints()) return false;
6307  }
6308  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
6309  if (hasMinimizeCore()) {
6310  if (getMinimizeCore()
6311  != other.getMinimizeCore()) return false;
6312  }
6313  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
6314  if (hasFindMultipleCores()) {
6315  if (getFindMultipleCores()
6316  != other.getFindMultipleCores()) return false;
6317  }
6318  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
6319  if (hasCoverOptimization()) {
6320  if (getCoverOptimization()
6321  != other.getCoverOptimization()) return false;
6322  }
6323  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
6324  if (hasMaxSatAssumptionOrder()) {
6325  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
6326  }
6327  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
6330  != other.getMaxSatReverseAssumptionOrder()) return false;
6331  }
6332  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
6333  if (hasMaxSatStratification()) {
6334  if (maxSatStratification_ != other.maxSatStratification_) return false;
6335  }
6336  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
6339  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
6340  }
6341  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
6344  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
6345  }
6346  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6349  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6350  }
6351  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6354  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6355  }
6356  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
6357  if (hasLinearizationLevel()) {
6358  if (getLinearizationLevel()
6359  != other.getLinearizationLevel()) return false;
6360  }
6361  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
6362  if (hasBooleanEncodingLevel()) {
6364  != other.getBooleanEncodingLevel()) return false;
6365  }
6366  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
6367  if (hasMaxNumCuts()) {
6368  if (getMaxNumCuts()
6369  != other.getMaxNumCuts()) return false;
6370  }
6371  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
6372  if (hasOnlyAddCutsAtLevelZero()) {
6374  != other.getOnlyAddCutsAtLevelZero()) return false;
6375  }
6376  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
6377  if (hasAddKnapsackCuts()) {
6378  if (getAddKnapsackCuts()
6379  != other.getAddKnapsackCuts()) return false;
6380  }
6381  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
6382  if (hasAddCgCuts()) {
6383  if (getAddCgCuts()
6384  != other.getAddCgCuts()) return false;
6385  }
6386  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
6387  if (hasAddMirCuts()) {
6388  if (getAddMirCuts()
6389  != other.getAddMirCuts()) return false;
6390  }
6391  if (hasUseMirRounding() != other.hasUseMirRounding()) return false;
6392  if (hasUseMirRounding()) {
6393  if (getUseMirRounding()
6394  != other.getUseMirRounding()) return false;
6395  }
6396  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
6399  != other.getMaxIntegerRoundingScaling()) return false;
6400  }
6401  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
6402  if (hasAddLpConstraintsLazily()) {
6404  != other.getAddLpConstraintsLazily()) return false;
6405  }
6406  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
6408  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
6409  != java.lang.Double.doubleToLongBits(
6410  other.getMinOrthogonalityForLpConstraints())) return false;
6411  }
6412  if (hasMaxInactiveCount() != other.hasMaxInactiveCount()) return false;
6413  if (hasMaxInactiveCount()) {
6414  if (getMaxInactiveCount()
6415  != other.getMaxInactiveCount()) return false;
6416  }
6417  if (hasConstraintRemovalBatchSize() != other.hasConstraintRemovalBatchSize()) return false;
6420  != other.getConstraintRemovalBatchSize()) return false;
6421  }
6422  if (hasSearchBranching() != other.hasSearchBranching()) return false;
6423  if (hasSearchBranching()) {
6424  if (searchBranching_ != other.searchBranching_) return false;
6425  }
6426  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
6429  != other.getExploitIntegerLpSolution()) return false;
6430  }
6431  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
6432  if (hasExploitAllLpSolution()) {
6434  != other.getExploitAllLpSolution()) return false;
6435  }
6436  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
6437  if (hasExploitBestSolution()) {
6439  != other.getExploitBestSolution()) return false;
6440  }
6441  if (hasExploitObjective() != other.hasExploitObjective()) return false;
6442  if (hasExploitObjective()) {
6443  if (getExploitObjective()
6444  != other.getExploitObjective()) return false;
6445  }
6446  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
6449  != other.getPseudoCostReliabilityThreshold()) return false;
6450  }
6451  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
6452  if (hasOptimizeWithCore()) {
6453  if (getOptimizeWithCore()
6454  != other.getOptimizeWithCore()) return false;
6455  }
6456  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
6459  != other.getBinarySearchNumConflicts()) return false;
6460  }
6461  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
6462  if (hasOptimizeWithMaxHs()) {
6463  if (getOptimizeWithMaxHs()
6464  != other.getOptimizeWithMaxHs()) return false;
6465  }
6466  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
6467  if (hasCpModelPresolve()) {
6468  if (getCpModelPresolve()
6469  != other.getCpModelPresolve()) return false;
6470  }
6471  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
6472  if (hasCpModelProbingLevel()) {
6474  != other.getCpModelProbingLevel()) return false;
6475  }
6476  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
6477  if (hasCpModelUseSatPresolve()) {
6479  != other.getCpModelUseSatPresolve()) return false;
6480  }
6481  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
6482  if (hasEnumerateAllSolutions()) {
6484  != other.getEnumerateAllSolutions()) return false;
6485  }
6486  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
6489  != other.getFillTightenedDomainsInResponse()) return false;
6490  }
6491  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
6494  != other.getInstantiateAllVariables()) return false;
6495  }
6496  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
6499  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
6500  }
6501  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
6502  if (hasStopAfterFirstSolution()) {
6504  != other.getStopAfterFirstSolution()) return false;
6505  }
6506  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
6507  if (hasNumSearchWorkers()) {
6508  if (getNumSearchWorkers()
6509  != other.getNumSearchWorkers()) return false;
6510  }
6511  if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
6512  if (hasInterleaveSearch()) {
6513  if (getInterleaveSearch()
6514  != other.getInterleaveSearch()) return false;
6515  }
6516  if (hasDeterministicParallelSearch() != other.hasDeterministicParallelSearch()) return false;
6519  != other.getDeterministicParallelSearch()) return false;
6520  }
6521  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
6522  if (hasShareObjectiveBounds()) {
6524  != other.getShareObjectiveBounds()) return false;
6525  }
6526  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
6527  if (hasShareLevelZeroBounds()) {
6529  != other.getShareLevelZeroBounds()) return false;
6530  }
6531  if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
6532  if (hasUseLnsOnly()) {
6533  if (getUseLnsOnly()
6534  != other.getUseLnsOnly()) return false;
6535  }
6536  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
6539  != other.getLnsFocusOnDecisionVariables()) return false;
6540  }
6541  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
6542  if (hasUseRinsLns()) {
6543  if (getUseRinsLns()
6544  != other.getUseRinsLns()) return false;
6545  }
6546  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
6547  if (hasRandomizeSearch()) {
6548  if (getRandomizeSearch()
6549  != other.getRandomizeSearch()) return false;
6550  }
6551  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
6554  != other.getSearchRandomizationTolerance()) return false;
6555  }
6556  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
6557  if (hasUseOptionalVariables()) {
6559  != other.getUseOptionalVariables()) return false;
6560  }
6561  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
6562  if (hasUseExactLpReason()) {
6563  if (getUseExactLpReason()
6564  != other.getUseExactLpReason()) return false;
6565  }
6566  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
6567  if (hasUseCombinedNoOverlap()) {
6569  != other.getUseCombinedNoOverlap()) return false;
6570  }
6571  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
6572  if (hasMipMaxBound()) {
6573  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
6574  != java.lang.Double.doubleToLongBits(
6575  other.getMipMaxBound())) return false;
6576  }
6577  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
6578  if (hasMipVarScaling()) {
6579  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
6580  != java.lang.Double.doubleToLongBits(
6581  other.getMipVarScaling())) return false;
6582  }
6583  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
6584  if (hasMipWantedPrecision()) {
6585  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
6586  != java.lang.Double.doubleToLongBits(
6587  other.getMipWantedPrecision())) return false;
6588  }
6589  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
6590  if (hasMipMaxActivityExponent()) {
6592  != other.getMipMaxActivityExponent()) return false;
6593  }
6594  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
6595  if (hasMipCheckPrecision()) {
6596  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
6597  != java.lang.Double.doubleToLongBits(
6598  other.getMipCheckPrecision())) return false;
6599  }
6600  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
6601  if (hasCatchSigintSignal()) {
6602  if (getCatchSigintSignal()
6603  != other.getCatchSigintSignal()) return false;
6604  }
6605  if (!unknownFields.equals(other.unknownFields)) return false;
6606  return true;
6607  }
6608 
6609  @java.lang.Override
6610  public int hashCode() {
6611  if (memoizedHashCode != 0) {
6612  return memoizedHashCode;
6613  }
6614  int hash = 41;
6615  hash = (19 * hash) + getDescriptor().hashCode();
6616  if (hasPreferredVariableOrder()) {
6617  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
6618  hash = (53 * hash) + preferredVariableOrder_;
6619  }
6620  if (hasInitialPolarity()) {
6621  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
6622  hash = (53 * hash) + initialPolarity_;
6623  }
6624  if (hasUsePhaseSaving()) {
6625  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
6626  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6627  getUsePhaseSaving());
6628  }
6629  if (hasRandomPolarityRatio()) {
6630  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
6631  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6632  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
6633  }
6634  if (hasRandomBranchesRatio()) {
6635  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
6636  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6637  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
6638  }
6639  if (hasUseErwaHeuristic()) {
6640  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
6641  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6643  }
6645  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
6646  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6647  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
6648  }
6651  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6653  }
6654  if (hasMinimizationAlgorithm()) {
6655  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6656  hash = (53 * hash) + minimizationAlgorithm_;
6657  }
6659  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6660  hash = (53 * hash) + binaryMinimizationAlgorithm_;
6661  }
6664  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6666  }
6667  if (hasClauseCleanupPeriod()) {
6668  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
6669  hash = (53 * hash) + getClauseCleanupPeriod();
6670  }
6671  if (hasClauseCleanupTarget()) {
6672  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
6673  hash = (53 * hash) + getClauseCleanupTarget();
6674  }
6676  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
6677  hash = (53 * hash) + clauseCleanupProtection_;
6678  }
6679  if (hasClauseCleanupLbdBound()) {
6680  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
6681  hash = (53 * hash) + getClauseCleanupLbdBound();
6682  }
6683  if (hasClauseCleanupOrdering()) {
6684  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
6685  hash = (53 * hash) + clauseCleanupOrdering_;
6686  }
6687  if (hasPbCleanupIncrement()) {
6688  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
6689  hash = (53 * hash) + getPbCleanupIncrement();
6690  }
6691  if (hasPbCleanupRatio()) {
6692  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
6693  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6694  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
6695  }
6698  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
6699  }
6702  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
6703  }
6704  if (hasVariableActivityDecay()) {
6705  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
6706  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6707  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
6708  }
6710  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
6711  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6712  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
6713  }
6714  if (hasGlucoseMaxDecay()) {
6715  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
6716  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6717  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
6718  }
6719  if (hasGlucoseDecayIncrement()) {
6720  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
6721  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6722  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
6723  }
6725  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
6726  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
6727  }
6728  if (hasClauseActivityDecay()) {
6729  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
6730  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6731  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
6732  }
6733  if (hasMaxClauseActivityValue()) {
6734  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
6735  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6736  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
6737  }
6738  if (getRestartAlgorithmsCount() > 0) {
6739  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
6740  hash = (53 * hash) + restartAlgorithms_.hashCode();
6741  }
6743  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
6744  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
6745  }
6746  if (hasRestartPeriod()) {
6747  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
6748  hash = (53 * hash) + getRestartPeriod();
6749  }
6751  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
6752  hash = (53 * hash) + getRestartRunningWindowSize();
6753  }
6754  if (hasRestartDlAverageRatio()) {
6755  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
6756  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6757  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
6758  }
6759  if (hasRestartLbdAverageRatio()) {
6760  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
6761  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6762  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
6763  }
6764  if (hasUseBlockingRestart()) {
6765  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
6766  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6768  }
6770  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
6771  hash = (53 * hash) + getBlockingRestartWindowSize();
6772  }
6774  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
6775  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6776  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
6777  }
6780  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
6781  }
6783  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
6784  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6785  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
6786  }
6787  if (hasMaxTimeInSeconds()) {
6788  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
6789  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6790  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
6791  }
6792  if (hasMaxDeterministicTime()) {
6793  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
6794  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6795  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
6796  }
6797  if (hasMaxNumberOfConflicts()) {
6798  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
6799  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6801  }
6802  if (hasMaxMemoryInMb()) {
6803  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
6804  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6805  getMaxMemoryInMb());
6806  }
6808  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
6809  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6811  }
6812  if (hasRandomSeed()) {
6813  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
6814  hash = (53 * hash) + getRandomSeed();
6815  }
6816  if (hasLogSearchProgress()) {
6817  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
6818  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6820  }
6821  if (hasUsePbResolution()) {
6822  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
6823  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6824  getUsePbResolution());
6825  }
6828  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6830  }
6832  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
6833  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6835  }
6836  if (hasPresolveBveThreshold()) {
6837  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
6838  hash = (53 * hash) + getPresolveBveThreshold();
6839  }
6841  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
6842  hash = (53 * hash) + getPresolveBveClauseWeight();
6843  }
6846  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6847  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
6848  }
6849  if (hasPresolveBlockedClause()) {
6850  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
6851  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6853  }
6854  if (hasPresolveUseBva()) {
6855  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
6856  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6857  getPresolveUseBva());
6858  }
6859  if (hasPresolveBvaThreshold()) {
6860  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
6861  hash = (53 * hash) + getPresolveBvaThreshold();
6862  }
6863  if (hasUseOptimizationHints()) {
6864  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
6865  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6867  }
6868  if (hasMinimizeCore()) {
6869  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
6870  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6871  getMinimizeCore());
6872  }
6873  if (hasFindMultipleCores()) {
6874  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
6875  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6877  }
6878  if (hasCoverOptimization()) {
6879  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
6880  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6882  }
6883  if (hasMaxSatAssumptionOrder()) {
6884  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
6885  hash = (53 * hash) + maxSatAssumptionOrder_;
6886  }
6888  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
6889  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6891  }
6892  if (hasMaxSatStratification()) {
6893  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
6894  hash = (53 * hash) + maxSatStratification_;
6895  }
6898  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
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  }
6916  if (hasLinearizationLevel()) {
6917  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
6918  hash = (53 * hash) + getLinearizationLevel();
6919  }
6920  if (hasBooleanEncodingLevel()) {
6921  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
6922  hash = (53 * hash) + getBooleanEncodingLevel();
6923  }
6924  if (hasMaxNumCuts()) {
6925  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
6926  hash = (53 * hash) + getMaxNumCuts();
6927  }
6928  if (hasOnlyAddCutsAtLevelZero()) {
6929  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
6930  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6932  }
6933  if (hasAddKnapsackCuts()) {
6934  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
6935  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6936  getAddKnapsackCuts());
6937  }
6938  if (hasAddCgCuts()) {
6939  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
6940  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6941  getAddCgCuts());
6942  }
6943  if (hasAddMirCuts()) {
6944  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
6945  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6946  getAddMirCuts());
6947  }
6948  if (hasUseMirRounding()) {
6949  hash = (37 * hash) + USE_MIR_ROUNDING_FIELD_NUMBER;
6950  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6951  getUseMirRounding());
6952  }
6954  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
6955  hash = (53 * hash) + getMaxIntegerRoundingScaling();
6956  }
6957  if (hasAddLpConstraintsLazily()) {
6958  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
6959  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6961  }
6964  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6965  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
6966  }
6967  if (hasMaxInactiveCount()) {
6968  hash = (37 * hash) + MAX_INACTIVE_COUNT_FIELD_NUMBER;
6969  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6971  }
6973  hash = (37 * hash) + CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER;
6974  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6976  }
6977  if (hasSearchBranching()) {
6978  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
6979  hash = (53 * hash) + searchBranching_;
6980  }
6982  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
6983  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6985  }
6986  if (hasExploitAllLpSolution()) {
6987  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
6988  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6990  }
6991  if (hasExploitBestSolution()) {
6992  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
6993  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6995  }
6996  if (hasExploitObjective()) {
6997  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
6998  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7000  }
7003  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7005  }
7006  if (hasOptimizeWithCore()) {
7007  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
7008  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7010  }
7012  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
7013  hash = (53 * hash) + getBinarySearchNumConflicts();
7014  }
7015  if (hasOptimizeWithMaxHs()) {
7016  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
7017  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7019  }
7020  if (hasCpModelPresolve()) {
7021  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
7022  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7023  getCpModelPresolve());
7024  }
7025  if (hasCpModelProbingLevel()) {
7026  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
7027  hash = (53 * hash) + getCpModelProbingLevel();
7028  }
7029  if (hasCpModelUseSatPresolve()) {
7030  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
7031  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7033  }
7034  if (hasEnumerateAllSolutions()) {
7035  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
7036  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7038  }
7041  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7043  }
7045  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
7046  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7048  }
7051  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7053  }
7054  if (hasStopAfterFirstSolution()) {
7055  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
7056  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7058  }
7059  if (hasNumSearchWorkers()) {
7060  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
7061  hash = (53 * hash) + getNumSearchWorkers();
7062  }
7063  if (hasInterleaveSearch()) {
7064  hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
7065  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7067  }
7069  hash = (37 * hash) + DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER;
7070  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7072  }
7073  if (hasShareObjectiveBounds()) {
7074  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
7075  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7077  }
7078  if (hasShareLevelZeroBounds()) {
7079  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
7080  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7082  }
7083  if (hasUseLnsOnly()) {
7084  hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
7085  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7086  getUseLnsOnly());
7087  }
7089  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
7090  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7092  }
7093  if (hasUseRinsLns()) {
7094  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
7095  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7096  getUseRinsLns());
7097  }
7098  if (hasRandomizeSearch()) {
7099  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
7100  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7101  getRandomizeSearch());
7102  }
7104  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
7105  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7107  }
7108  if (hasUseOptionalVariables()) {
7109  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
7110  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7112  }
7113  if (hasUseExactLpReason()) {
7114  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
7115  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7117  }
7118  if (hasUseCombinedNoOverlap()) {
7119  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
7120  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7122  }
7123  if (hasMipMaxBound()) {
7124  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
7125  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7126  java.lang.Double.doubleToLongBits(getMipMaxBound()));
7127  }
7128  if (hasMipVarScaling()) {
7129  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
7130  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7131  java.lang.Double.doubleToLongBits(getMipVarScaling()));
7132  }
7133  if (hasMipWantedPrecision()) {
7134  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
7135  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7136  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
7137  }
7138  if (hasMipMaxActivityExponent()) {
7139  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
7140  hash = (53 * hash) + getMipMaxActivityExponent();
7141  }
7142  if (hasMipCheckPrecision()) {
7143  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
7144  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7145  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
7146  }
7147  if (hasCatchSigintSignal()) {
7148  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
7149  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7151  }
7152  hash = (29 * hash) + unknownFields.hashCode();
7153  memoizedHashCode = hash;
7154  return hash;
7155  }
7156 
7158  java.nio.ByteBuffer data)
7159  throws com.google.protobuf.InvalidProtocolBufferException {
7160  return PARSER.parseFrom(data);
7161  }
7163  java.nio.ByteBuffer data,
7164  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7165  throws com.google.protobuf.InvalidProtocolBufferException {
7166  return PARSER.parseFrom(data, extensionRegistry);
7167  }
7169  com.google.protobuf.ByteString data)
7170  throws com.google.protobuf.InvalidProtocolBufferException {
7171  return PARSER.parseFrom(data);
7172  }
7174  com.google.protobuf.ByteString data,
7175  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7176  throws com.google.protobuf.InvalidProtocolBufferException {
7177  return PARSER.parseFrom(data, extensionRegistry);
7178  }
7179  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
7180  throws com.google.protobuf.InvalidProtocolBufferException {
7181  return PARSER.parseFrom(data);
7182  }
7184  byte[] data,
7185  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7186  throws com.google.protobuf.InvalidProtocolBufferException {
7187  return PARSER.parseFrom(data, extensionRegistry);
7188  }
7189  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
7190  throws java.io.IOException {
7191  return com.google.protobuf.GeneratedMessageV3
7192  .parseWithIOException(PARSER, input);
7193  }
7195  java.io.InputStream input,
7196  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7197  throws java.io.IOException {
7198  return com.google.protobuf.GeneratedMessageV3
7199  .parseWithIOException(PARSER, input, extensionRegistry);
7200  }
7201  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
7202  throws java.io.IOException {
7203  return com.google.protobuf.GeneratedMessageV3
7204  .parseDelimitedWithIOException(PARSER, input);
7205  }
7207  java.io.InputStream input,
7208  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7209  throws java.io.IOException {
7210  return com.google.protobuf.GeneratedMessageV3
7211  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7212  }
7214  com.google.protobuf.CodedInputStream input)
7215  throws java.io.IOException {
7216  return com.google.protobuf.GeneratedMessageV3
7217  .parseWithIOException(PARSER, input);
7218  }
7220  com.google.protobuf.CodedInputStream input,
7221  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7222  throws java.io.IOException {
7223  return com.google.protobuf.GeneratedMessageV3
7224  .parseWithIOException(PARSER, input, extensionRegistry);
7225  }
7226 
7227  @java.lang.Override
7228  public Builder newBuilderForType() { return newBuilder(); }
7229  public static Builder newBuilder() {
7230  return DEFAULT_INSTANCE.toBuilder();
7231  }
7232  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
7233  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7234  }
7235  @java.lang.Override
7236  public Builder toBuilder() {
7237  return this == DEFAULT_INSTANCE
7238  ? new Builder() : new Builder().mergeFrom(this);
7239  }
7240 
7241  @java.lang.Override
7243  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7244  Builder builder = new Builder(parent);
7245  return builder;
7246  }
7256  public static final class Builder extends
7257  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7258  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
7259  com.google.ortools.sat.SatParametersOrBuilder {
7260  public static final com.google.protobuf.Descriptors.Descriptor
7262  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7263  }
7264 
7265  @java.lang.Override
7266  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7268  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
7269  .ensureFieldAccessorsInitialized(
7271  }
7272 
7273  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
7274  private Builder() {
7275  maybeForceBuilderInitialization();
7276  }
7277 
7278  private Builder(
7279  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7280  super(parent);
7281  maybeForceBuilderInitialization();
7282  }
7283  private void maybeForceBuilderInitialization() {
7284  if (com.google.protobuf.GeneratedMessageV3
7285  .alwaysUseFieldBuilders) {
7286  }
7287  }
7288  @java.lang.Override
7289  public Builder clear() {
7290  super.clear();
7291  preferredVariableOrder_ = 0;
7292  bitField0_ = (bitField0_ & ~0x00000001);
7293  initialPolarity_ = 1;
7294  bitField0_ = (bitField0_ & ~0x00000002);
7295  usePhaseSaving_ = true;
7296  bitField0_ = (bitField0_ & ~0x00000004);
7297  randomPolarityRatio_ = 0D;
7298  bitField0_ = (bitField0_ & ~0x00000008);
7299  randomBranchesRatio_ = 0D;
7300  bitField0_ = (bitField0_ & ~0x00000010);
7301  useErwaHeuristic_ = false;
7302  bitField0_ = (bitField0_ & ~0x00000020);
7303  initialVariablesActivity_ = 0D;
7304  bitField0_ = (bitField0_ & ~0x00000040);
7305  alsoBumpVariablesInConflictReasons_ = false;
7306  bitField0_ = (bitField0_ & ~0x00000080);
7307  minimizationAlgorithm_ = 2;
7308  bitField0_ = (bitField0_ & ~0x00000100);
7309  binaryMinimizationAlgorithm_ = 1;
7310  bitField0_ = (bitField0_ & ~0x00000200);
7311  subsumptionDuringConflictAnalysis_ = true;
7312  bitField0_ = (bitField0_ & ~0x00000400);
7313  clauseCleanupPeriod_ = 10000;
7314  bitField0_ = (bitField0_ & ~0x00000800);
7315  clauseCleanupTarget_ = 10000;
7316  bitField0_ = (bitField0_ & ~0x00001000);
7317  clauseCleanupProtection_ = 0;
7318  bitField0_ = (bitField0_ & ~0x00002000);
7319  clauseCleanupLbdBound_ = 5;
7320  bitField0_ = (bitField0_ & ~0x00004000);
7321  clauseCleanupOrdering_ = 0;
7322  bitField0_ = (bitField0_ & ~0x00008000);
7323  pbCleanupIncrement_ = 200;
7324  bitField0_ = (bitField0_ & ~0x00010000);
7325  pbCleanupRatio_ = 0.5D;
7326  bitField0_ = (bitField0_ & ~0x00020000);
7327  minimizeWithPropagationRestartPeriod_ = 10;
7328  bitField0_ = (bitField0_ & ~0x00040000);
7329  minimizeWithPropagationNumDecisions_ = 1000;
7330  bitField0_ = (bitField0_ & ~0x00080000);
7331  variableActivityDecay_ = 0.8D;
7332  bitField0_ = (bitField0_ & ~0x00100000);
7333  maxVariableActivityValue_ = 1e+100D;
7334  bitField0_ = (bitField0_ & ~0x00200000);
7335  glucoseMaxDecay_ = 0.95D;
7336  bitField0_ = (bitField0_ & ~0x00400000);
7337  glucoseDecayIncrement_ = 0.01D;
7338  bitField0_ = (bitField0_ & ~0x00800000);
7339  glucoseDecayIncrementPeriod_ = 5000;
7340  bitField0_ = (bitField0_ & ~0x01000000);
7341  clauseActivityDecay_ = 0.999D;
7342  bitField0_ = (bitField0_ & ~0x02000000);
7343  maxClauseActivityValue_ = 1e+20D;
7344  bitField0_ = (bitField0_ & ~0x04000000);
7345  restartAlgorithms_ = java.util.Collections.emptyList();
7346  bitField0_ = (bitField0_ & ~0x08000000);
7347  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
7348  bitField0_ = (bitField0_ & ~0x10000000);
7349  restartPeriod_ = 50;
7350  bitField0_ = (bitField0_ & ~0x20000000);
7351  restartRunningWindowSize_ = 50;
7352  bitField0_ = (bitField0_ & ~0x40000000);
7353  restartDlAverageRatio_ = 1D;
7354  bitField0_ = (bitField0_ & ~0x80000000);
7355  restartLbdAverageRatio_ = 1D;
7356  bitField1_ = (bitField1_ & ~0x00000001);
7357  useBlockingRestart_ = false;
7358  bitField1_ = (bitField1_ & ~0x00000002);
7359  blockingRestartWindowSize_ = 5000;
7360  bitField1_ = (bitField1_ & ~0x00000004);
7361  blockingRestartMultiplier_ = 1.4D;
7362  bitField1_ = (bitField1_ & ~0x00000008);
7363  numConflictsBeforeStrategyChanges_ = 0;
7364  bitField1_ = (bitField1_ & ~0x00000010);
7365  strategyChangeIncreaseRatio_ = 0D;
7366  bitField1_ = (bitField1_ & ~0x00000020);
7367  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
7368  bitField1_ = (bitField1_ & ~0x00000040);
7369  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
7370  bitField1_ = (bitField1_ & ~0x00000080);
7371  maxNumberOfConflicts_ = 9223372036854775807L;
7372  bitField1_ = (bitField1_ & ~0x00000100);
7373  maxMemoryInMb_ = 10000L;
7374  bitField1_ = (bitField1_ & ~0x00000200);
7375  treatBinaryClausesSeparately_ = true;
7376  bitField1_ = (bitField1_ & ~0x00000400);
7377  randomSeed_ = 1;
7378  bitField1_ = (bitField1_ & ~0x00000800);
7379  logSearchProgress_ = false;
7380  bitField1_ = (bitField1_ & ~0x00001000);
7381  usePbResolution_ = false;
7382  bitField1_ = (bitField1_ & ~0x00002000);
7383  minimizeReductionDuringPbResolution_ = false;
7384  bitField1_ = (bitField1_ & ~0x00004000);
7385  countAssumptionLevelsInLbd_ = true;
7386  bitField1_ = (bitField1_ & ~0x00008000);
7387  presolveBveThreshold_ = 500;
7388  bitField1_ = (bitField1_ & ~0x00010000);
7389  presolveBveClauseWeight_ = 3;
7390  bitField1_ = (bitField1_ & ~0x00020000);
7391  presolveProbingDeterministicTimeLimit_ = 30D;
7392  bitField1_ = (bitField1_ & ~0x00040000);
7393  presolveBlockedClause_ = true;
7394  bitField1_ = (bitField1_ & ~0x00080000);
7395  presolveUseBva_ = true;
7396  bitField1_ = (bitField1_ & ~0x00100000);
7397  presolveBvaThreshold_ = 1;
7398  bitField1_ = (bitField1_ & ~0x00200000);
7399  useOptimizationHints_ = true;
7400  bitField1_ = (bitField1_ & ~0x00400000);
7401  minimizeCore_ = true;
7402  bitField1_ = (bitField1_ & ~0x00800000);
7403  findMultipleCores_ = true;
7404  bitField1_ = (bitField1_ & ~0x01000000);
7405  coverOptimization_ = true;
7406  bitField1_ = (bitField1_ & ~0x02000000);
7407  maxSatAssumptionOrder_ = 0;
7408  bitField1_ = (bitField1_ & ~0x04000000);
7409  maxSatReverseAssumptionOrder_ = false;
7410  bitField1_ = (bitField1_ & ~0x08000000);
7411  maxSatStratification_ = 1;
7412  bitField1_ = (bitField1_ & ~0x10000000);
7413  usePrecedencesInDisjunctiveConstraint_ = true;
7414  bitField1_ = (bitField1_ & ~0x20000000);
7415  useOverloadCheckerInCumulativeConstraint_ = false;
7416  bitField1_ = (bitField1_ & ~0x40000000);
7417  useTimetableEdgeFindingInCumulativeConstraint_ = false;
7418  bitField1_ = (bitField1_ & ~0x80000000);
7419  useDisjunctiveConstraintInCumulativeConstraint_ = true;
7420  bitField2_ = (bitField2_ & ~0x00000001);
7421  linearizationLevel_ = 1;
7422  bitField2_ = (bitField2_ & ~0x00000002);
7423  booleanEncodingLevel_ = 1;
7424  bitField2_ = (bitField2_ & ~0x00000004);
7425  maxNumCuts_ = 1000;
7426  bitField2_ = (bitField2_ & ~0x00000008);
7427  onlyAddCutsAtLevelZero_ = false;
7428  bitField2_ = (bitField2_ & ~0x00000010);
7429  addKnapsackCuts_ = false;
7430  bitField2_ = (bitField2_ & ~0x00000020);
7431  addCgCuts_ = false;
7432  bitField2_ = (bitField2_ & ~0x00000040);
7433  addMirCuts_ = true;
7434  bitField2_ = (bitField2_ & ~0x00000080);
7435  useMirRounding_ = true;
7436  bitField2_ = (bitField2_ & ~0x00000100);
7437  maxIntegerRoundingScaling_ = 600;
7438  bitField2_ = (bitField2_ & ~0x00000200);
7439  addLpConstraintsLazily_ = true;
7440  bitField2_ = (bitField2_ & ~0x00000400);
7441  minOrthogonalityForLpConstraints_ = 0D;
7442  bitField2_ = (bitField2_ & ~0x00000800);
7443  maxInactiveCount_ = 1000L;
7444  bitField2_ = (bitField2_ & ~0x00001000);
7445  constraintRemovalBatchSize_ = 100L;
7446  bitField2_ = (bitField2_ & ~0x00002000);
7447  searchBranching_ = 0;
7448  bitField2_ = (bitField2_ & ~0x00004000);
7449  exploitIntegerLpSolution_ = true;
7450  bitField2_ = (bitField2_ & ~0x00008000);
7451  exploitAllLpSolution_ = true;
7452  bitField2_ = (bitField2_ & ~0x00010000);
7453  exploitBestSolution_ = false;
7454  bitField2_ = (bitField2_ & ~0x00020000);
7455  exploitObjective_ = true;
7456  bitField2_ = (bitField2_ & ~0x00040000);
7457  pseudoCostReliabilityThreshold_ = 100L;
7458  bitField2_ = (bitField2_ & ~0x00080000);
7459  optimizeWithCore_ = false;
7460  bitField2_ = (bitField2_ & ~0x00100000);
7461  binarySearchNumConflicts_ = -1;
7462  bitField2_ = (bitField2_ & ~0x00200000);
7463  optimizeWithMaxHs_ = false;
7464  bitField2_ = (bitField2_ & ~0x00400000);
7465  cpModelPresolve_ = true;
7466  bitField2_ = (bitField2_ & ~0x00800000);
7467  cpModelProbingLevel_ = 2;
7468  bitField2_ = (bitField2_ & ~0x01000000);
7469  cpModelUseSatPresolve_ = true;
7470  bitField2_ = (bitField2_ & ~0x02000000);
7471  enumerateAllSolutions_ = false;
7472  bitField2_ = (bitField2_ & ~0x04000000);
7473  fillTightenedDomainsInResponse_ = false;
7474  bitField2_ = (bitField2_ & ~0x08000000);
7475  instantiateAllVariables_ = true;
7476  bitField2_ = (bitField2_ & ~0x10000000);
7477  autoDetectGreaterThanAtLeastOneOf_ = true;
7478  bitField2_ = (bitField2_ & ~0x20000000);
7479  stopAfterFirstSolution_ = false;
7480  bitField2_ = (bitField2_ & ~0x40000000);
7481  numSearchWorkers_ = 1;
7482  bitField2_ = (bitField2_ & ~0x80000000);
7483  interleaveSearch_ = false;
7484  bitField3_ = (bitField3_ & ~0x00000001);
7485  deterministicParallelSearch_ = false;
7486  bitField3_ = (bitField3_ & ~0x00000002);
7487  shareObjectiveBounds_ = true;
7488  bitField3_ = (bitField3_ & ~0x00000004);
7489  shareLevelZeroBounds_ = true;
7490  bitField3_ = (bitField3_ & ~0x00000008);
7491  useLnsOnly_ = false;
7492  bitField3_ = (bitField3_ & ~0x00000010);
7493  lnsFocusOnDecisionVariables_ = false;
7494  bitField3_ = (bitField3_ & ~0x00000020);
7495  useRinsLns_ = false;
7496  bitField3_ = (bitField3_ & ~0x00000040);
7497  randomizeSearch_ = false;
7498  bitField3_ = (bitField3_ & ~0x00000080);
7499  searchRandomizationTolerance_ = 0L;
7500  bitField3_ = (bitField3_ & ~0x00000100);
7501  useOptionalVariables_ = true;
7502  bitField3_ = (bitField3_ & ~0x00000200);
7503  useExactLpReason_ = true;
7504  bitField3_ = (bitField3_ & ~0x00000400);
7505  useCombinedNoOverlap_ = false;
7506  bitField3_ = (bitField3_ & ~0x00000800);
7507  mipMaxBound_ = 10000000D;
7508  bitField3_ = (bitField3_ & ~0x00001000);
7509  mipVarScaling_ = 1D;
7510  bitField3_ = (bitField3_ & ~0x00002000);
7511  mipWantedPrecision_ = 1e-06D;
7512  bitField3_ = (bitField3_ & ~0x00004000);
7513  mipMaxActivityExponent_ = 53;
7514  bitField3_ = (bitField3_ & ~0x00008000);
7515  mipCheckPrecision_ = 0.0001D;
7516  bitField3_ = (bitField3_ & ~0x00010000);
7517  catchSigintSignal_ = true;
7518  bitField3_ = (bitField3_ & ~0x00020000);
7519  return this;
7520  }
7521 
7522  @java.lang.Override
7523  public com.google.protobuf.Descriptors.Descriptor
7525  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7526  }
7527 
7528  @java.lang.Override
7531  }
7532 
7533  @java.lang.Override
7536  if (!result.isInitialized()) {
7537  throw newUninitializedMessageException(result);
7538  }
7539  return result;
7540  }
7541 
7542  @java.lang.Override
7545  int from_bitField0_ = bitField0_;
7546  int from_bitField1_ = bitField1_;
7547  int from_bitField2_ = bitField2_;
7548  int from_bitField3_ = bitField3_;
7549  int to_bitField0_ = 0;
7550  int to_bitField1_ = 0;
7551  int to_bitField2_ = 0;
7552  int to_bitField3_ = 0;
7553  if (((from_bitField0_ & 0x00000001) != 0)) {
7554  to_bitField0_ |= 0x00000001;
7555  }
7556  result.preferredVariableOrder_ = preferredVariableOrder_;
7557  if (((from_bitField0_ & 0x00000002) != 0)) {
7558  to_bitField0_ |= 0x00000002;
7559  }
7560  result.initialPolarity_ = initialPolarity_;
7561  if (((from_bitField0_ & 0x00000004) != 0)) {
7562  to_bitField0_ |= 0x00000004;
7563  }
7564  result.usePhaseSaving_ = usePhaseSaving_;
7565  if (((from_bitField0_ & 0x00000008) != 0)) {
7566  result.randomPolarityRatio_ = randomPolarityRatio_;
7567  to_bitField0_ |= 0x00000008;
7568  }
7569  if (((from_bitField0_ & 0x00000010) != 0)) {
7570  result.randomBranchesRatio_ = randomBranchesRatio_;
7571  to_bitField0_ |= 0x00000010;
7572  }
7573  if (((from_bitField0_ & 0x00000020) != 0)) {
7574  result.useErwaHeuristic_ = useErwaHeuristic_;
7575  to_bitField0_ |= 0x00000020;
7576  }
7577  if (((from_bitField0_ & 0x00000040) != 0)) {
7578  result.initialVariablesActivity_ = initialVariablesActivity_;
7579  to_bitField0_ |= 0x00000040;
7580  }
7581  if (((from_bitField0_ & 0x00000080) != 0)) {
7582  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
7583  to_bitField0_ |= 0x00000080;
7584  }
7585  if (((from_bitField0_ & 0x00000100) != 0)) {
7586  to_bitField0_ |= 0x00000100;
7587  }
7588  result.minimizationAlgorithm_ = minimizationAlgorithm_;
7589  if (((from_bitField0_ & 0x00000200) != 0)) {
7590  to_bitField0_ |= 0x00000200;
7591  }
7592  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
7593  if (((from_bitField0_ & 0x00000400) != 0)) {
7594  to_bitField0_ |= 0x00000400;
7595  }
7596  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
7597  if (((from_bitField0_ & 0x00000800) != 0)) {
7598  to_bitField0_ |= 0x00000800;
7599  }
7600  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
7601  if (((from_bitField0_ & 0x00001000) != 0)) {
7602  to_bitField0_ |= 0x00001000;
7603  }
7604  result.clauseCleanupTarget_ = clauseCleanupTarget_;
7605  if (((from_bitField0_ & 0x00002000) != 0)) {
7606  to_bitField0_ |= 0x00002000;
7607  }
7608  result.clauseCleanupProtection_ = clauseCleanupProtection_;
7609  if (((from_bitField0_ & 0x00004000) != 0)) {
7610  to_bitField0_ |= 0x00004000;
7611  }
7612  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
7613  if (((from_bitField0_ & 0x00008000) != 0)) {
7614  to_bitField0_ |= 0x00008000;
7615  }
7616  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
7617  if (((from_bitField0_ & 0x00010000) != 0)) {
7618  to_bitField0_ |= 0x00010000;
7619  }
7620  result.pbCleanupIncrement_ = pbCleanupIncrement_;
7621  if (((from_bitField0_ & 0x00020000) != 0)) {
7622  to_bitField0_ |= 0x00020000;
7623  }
7624  result.pbCleanupRatio_ = pbCleanupRatio_;
7625  if (((from_bitField0_ & 0x00040000) != 0)) {
7626  to_bitField0_ |= 0x00040000;
7627  }
7628  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
7629  if (((from_bitField0_ & 0x00080000) != 0)) {
7630  to_bitField0_ |= 0x00080000;
7631  }
7632  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
7633  if (((from_bitField0_ & 0x00100000) != 0)) {
7634  to_bitField0_ |= 0x00100000;
7635  }
7636  result.variableActivityDecay_ = variableActivityDecay_;
7637  if (((from_bitField0_ & 0x00200000) != 0)) {
7638  to_bitField0_ |= 0x00200000;
7639  }
7640  result.maxVariableActivityValue_ = maxVariableActivityValue_;
7641  if (((from_bitField0_ & 0x00400000) != 0)) {
7642  to_bitField0_ |= 0x00400000;
7643  }
7644  result.glucoseMaxDecay_ = glucoseMaxDecay_;
7645  if (((from_bitField0_ & 0x00800000) != 0)) {
7646  to_bitField0_ |= 0x00800000;
7647  }
7648  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
7649  if (((from_bitField0_ & 0x01000000) != 0)) {
7650  to_bitField0_ |= 0x01000000;
7651  }
7652  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
7653  if (((from_bitField0_ & 0x02000000) != 0)) {
7654  to_bitField0_ |= 0x02000000;
7655  }
7656  result.clauseActivityDecay_ = clauseActivityDecay_;
7657  if (((from_bitField0_ & 0x04000000) != 0)) {
7658  to_bitField0_ |= 0x04000000;
7659  }
7660  result.maxClauseActivityValue_ = maxClauseActivityValue_;
7661  if (((bitField0_ & 0x08000000) != 0)) {
7662  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
7663  bitField0_ = (bitField0_ & ~0x08000000);
7664  }
7665  result.restartAlgorithms_ = restartAlgorithms_;
7666  if (((from_bitField0_ & 0x10000000) != 0)) {
7667  to_bitField0_ |= 0x08000000;
7668  }
7669  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
7670  if (((from_bitField0_ & 0x20000000) != 0)) {
7671  to_bitField0_ |= 0x10000000;
7672  }
7673  result.restartPeriod_ = restartPeriod_;
7674  if (((from_bitField0_ & 0x40000000) != 0)) {
7675  to_bitField0_ |= 0x20000000;
7676  }
7677  result.restartRunningWindowSize_ = restartRunningWindowSize_;
7678  if (((from_bitField0_ & 0x80000000) != 0)) {
7679  to_bitField0_ |= 0x40000000;
7680  }
7681  result.restartDlAverageRatio_ = restartDlAverageRatio_;
7682  if (((from_bitField1_ & 0x00000001) != 0)) {
7683  to_bitField0_ |= 0x80000000;
7684  }
7685  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
7686  if (((from_bitField1_ & 0x00000002) != 0)) {
7687  result.useBlockingRestart_ = useBlockingRestart_;
7688  to_bitField1_ |= 0x00000001;
7689  }
7690  if (((from_bitField1_ & 0x00000004) != 0)) {
7691  to_bitField1_ |= 0x00000002;
7692  }
7693  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
7694  if (((from_bitField1_ & 0x00000008) != 0)) {
7695  to_bitField1_ |= 0x00000004;
7696  }
7697  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
7698  if (((from_bitField1_ & 0x00000010) != 0)) {
7699  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
7700  to_bitField1_ |= 0x00000008;
7701  }
7702  if (((from_bitField1_ & 0x00000020) != 0)) {
7703  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
7704  to_bitField1_ |= 0x00000010;
7705  }
7706  if (((from_bitField1_ & 0x00000040) != 0)) {
7707  to_bitField1_ |= 0x00000020;
7708  }
7709  result.maxTimeInSeconds_ = maxTimeInSeconds_;
7710  if (((from_bitField1_ & 0x00000080) != 0)) {
7711  to_bitField1_ |= 0x00000040;
7712  }
7713  result.maxDeterministicTime_ = maxDeterministicTime_;
7714  if (((from_bitField1_ & 0x00000100) != 0)) {
7715  to_bitField1_ |= 0x00000080;
7716  }
7717  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
7718  if (((from_bitField1_ & 0x00000200) != 0)) {
7719  to_bitField1_ |= 0x00000100;
7720  }
7721  result.maxMemoryInMb_ = maxMemoryInMb_;
7722  if (((from_bitField1_ & 0x00000400) != 0)) {
7723  to_bitField1_ |= 0x00000200;
7724  }
7725  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
7726  if (((from_bitField1_ & 0x00000800) != 0)) {
7727  to_bitField1_ |= 0x00000400;
7728  }
7729  result.randomSeed_ = randomSeed_;
7730  if (((from_bitField1_ & 0x00001000) != 0)) {
7731  result.logSearchProgress_ = logSearchProgress_;
7732  to_bitField1_ |= 0x00000800;
7733  }
7734  if (((from_bitField1_ & 0x00002000) != 0)) {
7735  result.usePbResolution_ = usePbResolution_;
7736  to_bitField1_ |= 0x00001000;
7737  }
7738  if (((from_bitField1_ & 0x00004000) != 0)) {
7739  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
7740  to_bitField1_ |= 0x00002000;
7741  }
7742  if (((from_bitField1_ & 0x00008000) != 0)) {
7743  to_bitField1_ |= 0x00004000;
7744  }
7745  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
7746  if (((from_bitField1_ & 0x00010000) != 0)) {
7747  to_bitField1_ |= 0x00008000;
7748  }
7749  result.presolveBveThreshold_ = presolveBveThreshold_;
7750  if (((from_bitField1_ & 0x00020000) != 0)) {
7751  to_bitField1_ |= 0x00010000;
7752  }
7753  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
7754  if (((from_bitField1_ & 0x00040000) != 0)) {
7755  to_bitField1_ |= 0x00020000;
7756  }
7757  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
7758  if (((from_bitField1_ & 0x00080000) != 0)) {
7759  to_bitField1_ |= 0x00040000;
7760  }
7761  result.presolveBlockedClause_ = presolveBlockedClause_;
7762  if (((from_bitField1_ & 0x00100000) != 0)) {
7763  to_bitField1_ |= 0x00080000;
7764  }
7765  result.presolveUseBva_ = presolveUseBva_;
7766  if (((from_bitField1_ & 0x00200000) != 0)) {
7767  to_bitField1_ |= 0x00100000;
7768  }
7769  result.presolveBvaThreshold_ = presolveBvaThreshold_;
7770  if (((from_bitField1_ & 0x00400000) != 0)) {
7771  to_bitField1_ |= 0x00200000;
7772  }
7773  result.useOptimizationHints_ = useOptimizationHints_;
7774  if (((from_bitField1_ & 0x00800000) != 0)) {
7775  to_bitField1_ |= 0x00400000;
7776  }
7777  result.minimizeCore_ = minimizeCore_;
7778  if (((from_bitField1_ & 0x01000000) != 0)) {
7779  to_bitField1_ |= 0x00800000;
7780  }
7781  result.findMultipleCores_ = findMultipleCores_;
7782  if (((from_bitField1_ & 0x02000000) != 0)) {
7783  to_bitField1_ |= 0x01000000;
7784  }
7785  result.coverOptimization_ = coverOptimization_;
7786  if (((from_bitField1_ & 0x04000000) != 0)) {
7787  to_bitField1_ |= 0x02000000;
7788  }
7789  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
7790  if (((from_bitField1_ & 0x08000000) != 0)) {
7791  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
7792  to_bitField1_ |= 0x04000000;
7793  }
7794  if (((from_bitField1_ & 0x10000000) != 0)) {
7795  to_bitField1_ |= 0x08000000;
7796  }
7797  result.maxSatStratification_ = maxSatStratification_;
7798  if (((from_bitField1_ & 0x20000000) != 0)) {
7799  to_bitField1_ |= 0x10000000;
7800  }
7801  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
7802  if (((from_bitField1_ & 0x40000000) != 0)) {
7803  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
7804  to_bitField1_ |= 0x20000000;
7805  }
7806  if (((from_bitField1_ & 0x80000000) != 0)) {
7807  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
7808  to_bitField1_ |= 0x40000000;
7809  }
7810  if (((from_bitField2_ & 0x00000001) != 0)) {
7811  to_bitField1_ |= 0x80000000;
7812  }
7813  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
7814  if (((from_bitField2_ & 0x00000002) != 0)) {
7815  to_bitField2_ |= 0x00000001;
7816  }
7817  result.linearizationLevel_ = linearizationLevel_;
7818  if (((from_bitField2_ & 0x00000004) != 0)) {
7819  to_bitField2_ |= 0x00000002;
7820  }
7821  result.booleanEncodingLevel_ = booleanEncodingLevel_;
7822  if (((from_bitField2_ & 0x00000008) != 0)) {
7823  to_bitField2_ |= 0x00000004;
7824  }
7825  result.maxNumCuts_ = maxNumCuts_;
7826  if (((from_bitField2_ & 0x00000010) != 0)) {
7827  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
7828  to_bitField2_ |= 0x00000008;
7829  }
7830  if (((from_bitField2_ & 0x00000020) != 0)) {
7831  result.addKnapsackCuts_ = addKnapsackCuts_;
7832  to_bitField2_ |= 0x00000010;
7833  }
7834  if (((from_bitField2_ & 0x00000040) != 0)) {
7835  result.addCgCuts_ = addCgCuts_;
7836  to_bitField2_ |= 0x00000020;
7837  }
7838  if (((from_bitField2_ & 0x00000080) != 0)) {
7839  to_bitField2_ |= 0x00000040;
7840  }
7841  result.addMirCuts_ = addMirCuts_;
7842  if (((from_bitField2_ & 0x00000100) != 0)) {
7843  to_bitField2_ |= 0x00000080;
7844  }
7845  result.useMirRounding_ = useMirRounding_;
7846  if (((from_bitField2_ & 0x00000200) != 0)) {
7847  to_bitField2_ |= 0x00000100;
7848  }
7849  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
7850  if (((from_bitField2_ & 0x00000400) != 0)) {
7851  to_bitField2_ |= 0x00000200;
7852  }
7853  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
7854  if (((from_bitField2_ & 0x00000800) != 0)) {
7855  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
7856  to_bitField2_ |= 0x00000400;
7857  }
7858  if (((from_bitField2_ & 0x00001000) != 0)) {
7859  to_bitField2_ |= 0x00000800;
7860  }
7861  result.maxInactiveCount_ = maxInactiveCount_;
7862  if (((from_bitField2_ & 0x00002000) != 0)) {
7863  to_bitField2_ |= 0x00001000;
7864  }
7865  result.constraintRemovalBatchSize_ = constraintRemovalBatchSize_;
7866  if (((from_bitField2_ & 0x00004000) != 0)) {
7867  to_bitField2_ |= 0x00002000;
7868  }
7869  result.searchBranching_ = searchBranching_;
7870  if (((from_bitField2_ & 0x00008000) != 0)) {
7871  to_bitField2_ |= 0x00004000;
7872  }
7873  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
7874  if (((from_bitField2_ & 0x00010000) != 0)) {
7875  to_bitField2_ |= 0x00008000;
7876  }
7877  result.exploitAllLpSolution_ = exploitAllLpSolution_;
7878  if (((from_bitField2_ & 0x00020000) != 0)) {
7879  result.exploitBestSolution_ = exploitBestSolution_;
7880  to_bitField2_ |= 0x00010000;
7881  }
7882  if (((from_bitField2_ & 0x00040000) != 0)) {
7883  to_bitField2_ |= 0x00020000;
7884  }
7885  result.exploitObjective_ = exploitObjective_;
7886  if (((from_bitField2_ & 0x00080000) != 0)) {
7887  to_bitField2_ |= 0x00040000;
7888  }
7889  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
7890  if (((from_bitField2_ & 0x00100000) != 0)) {
7891  result.optimizeWithCore_ = optimizeWithCore_;
7892  to_bitField2_ |= 0x00080000;
7893  }
7894  if (((from_bitField2_ & 0x00200000) != 0)) {
7895  to_bitField2_ |= 0x00100000;
7896  }
7897  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
7898  if (((from_bitField2_ & 0x00400000) != 0)) {
7899  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
7900  to_bitField2_ |= 0x00200000;
7901  }
7902  if (((from_bitField2_ & 0x00800000) != 0)) {
7903  to_bitField2_ |= 0x00400000;
7904  }
7905  result.cpModelPresolve_ = cpModelPresolve_;
7906  if (((from_bitField2_ & 0x01000000) != 0)) {
7907  to_bitField2_ |= 0x00800000;
7908  }
7909  result.cpModelProbingLevel_ = cpModelProbingLevel_;
7910  if (((from_bitField2_ & 0x02000000) != 0)) {
7911  to_bitField2_ |= 0x01000000;
7912  }
7913  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
7914  if (((from_bitField2_ & 0x04000000) != 0)) {
7915  result.enumerateAllSolutions_ = enumerateAllSolutions_;
7916  to_bitField2_ |= 0x02000000;
7917  }
7918  if (((from_bitField2_ & 0x08000000) != 0)) {
7919  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
7920  to_bitField2_ |= 0x04000000;
7921  }
7922  if (((from_bitField2_ & 0x10000000) != 0)) {
7923  to_bitField2_ |= 0x08000000;
7924  }
7925  result.instantiateAllVariables_ = instantiateAllVariables_;
7926  if (((from_bitField2_ & 0x20000000) != 0)) {
7927  to_bitField2_ |= 0x10000000;
7928  }
7929  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
7930  if (((from_bitField2_ & 0x40000000) != 0)) {
7931  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
7932  to_bitField2_ |= 0x20000000;
7933  }
7934  if (((from_bitField2_ & 0x80000000) != 0)) {
7935  to_bitField2_ |= 0x40000000;
7936  }
7937  result.numSearchWorkers_ = numSearchWorkers_;
7938  if (((from_bitField3_ & 0x00000001) != 0)) {
7939  result.interleaveSearch_ = interleaveSearch_;
7940  to_bitField2_ |= 0x80000000;
7941  }
7942  if (((from_bitField3_ & 0x00000002) != 0)) {
7943  result.deterministicParallelSearch_ = deterministicParallelSearch_;
7944  to_bitField3_ |= 0x00000001;
7945  }
7946  if (((from_bitField3_ & 0x00000004) != 0)) {
7947  to_bitField3_ |= 0x00000002;
7948  }
7949  result.shareObjectiveBounds_ = shareObjectiveBounds_;
7950  if (((from_bitField3_ & 0x00000008) != 0)) {
7951  to_bitField3_ |= 0x00000004;
7952  }
7953  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
7954  if (((from_bitField3_ & 0x00000010) != 0)) {
7955  result.useLnsOnly_ = useLnsOnly_;
7956  to_bitField3_ |= 0x00000008;
7957  }
7958  if (((from_bitField3_ & 0x00000020) != 0)) {
7959  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
7960  to_bitField3_ |= 0x00000010;
7961  }
7962  if (((from_bitField3_ & 0x00000040) != 0)) {
7963  result.useRinsLns_ = useRinsLns_;
7964  to_bitField3_ |= 0x00000020;
7965  }
7966  if (((from_bitField3_ & 0x00000080) != 0)) {
7967  result.randomizeSearch_ = randomizeSearch_;
7968  to_bitField3_ |= 0x00000040;
7969  }
7970  if (((from_bitField3_ & 0x00000100) != 0)) {
7971  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
7972  to_bitField3_ |= 0x00000080;
7973  }
7974  if (((from_bitField3_ & 0x00000200) != 0)) {
7975  to_bitField3_ |= 0x00000100;
7976  }
7977  result.useOptionalVariables_ = useOptionalVariables_;
7978  if (((from_bitField3_ & 0x00000400) != 0)) {
7979  to_bitField3_ |= 0x00000200;
7980  }
7981  result.useExactLpReason_ = useExactLpReason_;
7982  if (((from_bitField3_ & 0x00000800) != 0)) {
7983  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
7984  to_bitField3_ |= 0x00000400;
7985  }
7986  if (((from_bitField3_ & 0x00001000) != 0)) {
7987  to_bitField3_ |= 0x00000800;
7988  }
7989  result.mipMaxBound_ = mipMaxBound_;
7990  if (((from_bitField3_ & 0x00002000) != 0)) {
7991  to_bitField3_ |= 0x00001000;
7992  }
7993  result.mipVarScaling_ = mipVarScaling_;
7994  if (((from_bitField3_ & 0x00004000) != 0)) {
7995  to_bitField3_ |= 0x00002000;
7996  }
7997  result.mipWantedPrecision_ = mipWantedPrecision_;
7998  if (((from_bitField3_ & 0x00008000) != 0)) {
7999  to_bitField3_ |= 0x00004000;
8000  }
8001  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
8002  if (((from_bitField3_ & 0x00010000) != 0)) {
8003  to_bitField3_ |= 0x00008000;
8004  }
8005  result.mipCheckPrecision_ = mipCheckPrecision_;
8006  if (((from_bitField3_ & 0x00020000) != 0)) {
8007  to_bitField3_ |= 0x00010000;
8008  }
8009  result.catchSigintSignal_ = catchSigintSignal_;
8010  result.bitField0_ = to_bitField0_;
8011  result.bitField1_ = to_bitField1_;
8012  result.bitField2_ = to_bitField2_;
8013  result.bitField3_ = to_bitField3_;
8014  onBuilt();
8015  return result;
8016  }
8017 
8018  @java.lang.Override
8019  public Builder clone() {
8020  return super.clone();
8021  }
8022  @java.lang.Override
8024  com.google.protobuf.Descriptors.FieldDescriptor field,
8025  java.lang.Object value) {
8026  return super.setField(field, value);
8027  }
8028  @java.lang.Override
8030  com.google.protobuf.Descriptors.FieldDescriptor field) {
8031  return super.clearField(field);
8032  }
8033  @java.lang.Override
8035  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
8036  return super.clearOneof(oneof);
8037  }
8038  @java.lang.Override
8040  com.google.protobuf.Descriptors.FieldDescriptor field,
8041  int index, java.lang.Object value) {
8042  return super.setRepeatedField(field, index, value);
8043  }
8044  @java.lang.Override
8046  com.google.protobuf.Descriptors.FieldDescriptor field,
8047  java.lang.Object value) {
8048  return super.addRepeatedField(field, value);
8049  }
8050  @java.lang.Override
8051  public Builder mergeFrom(com.google.protobuf.Message other) {
8052  if (other instanceof com.google.ortools.sat.SatParameters) {
8053  return mergeFrom((com.google.ortools.sat.SatParameters)other);
8054  } else {
8055  super.mergeFrom(other);
8056  return this;
8057  }
8058  }
8059 
8061  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
8062  if (other.hasPreferredVariableOrder()) {
8063  setPreferredVariableOrder(other.getPreferredVariableOrder());
8064  }
8065  if (other.hasInitialPolarity()) {
8066  setInitialPolarity(other.getInitialPolarity());
8067  }
8068  if (other.hasUsePhaseSaving()) {
8069  setUsePhaseSaving(other.getUsePhaseSaving());
8070  }
8071  if (other.hasRandomPolarityRatio()) {
8072  setRandomPolarityRatio(other.getRandomPolarityRatio());
8073  }
8074  if (other.hasRandomBranchesRatio()) {
8075  setRandomBranchesRatio(other.getRandomBranchesRatio());
8076  }
8077  if (other.hasUseErwaHeuristic()) {
8078  setUseErwaHeuristic(other.getUseErwaHeuristic());
8079  }
8080  if (other.hasInitialVariablesActivity()) {
8081  setInitialVariablesActivity(other.getInitialVariablesActivity());
8082  }
8083  if (other.hasAlsoBumpVariablesInConflictReasons()) {
8084  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
8085  }
8086  if (other.hasMinimizationAlgorithm()) {
8087  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
8088  }
8089  if (other.hasBinaryMinimizationAlgorithm()) {
8090  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
8091  }
8092  if (other.hasSubsumptionDuringConflictAnalysis()) {
8093  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
8094  }
8095  if (other.hasClauseCleanupPeriod()) {
8096  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
8097  }
8098  if (other.hasClauseCleanupTarget()) {
8099  setClauseCleanupTarget(other.getClauseCleanupTarget());
8100  }
8101  if (other.hasClauseCleanupProtection()) {
8102  setClauseCleanupProtection(other.getClauseCleanupProtection());
8103  }
8104  if (other.hasClauseCleanupLbdBound()) {
8105  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
8106  }
8107  if (other.hasClauseCleanupOrdering()) {
8108  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
8109  }
8110  if (other.hasPbCleanupIncrement()) {
8111  setPbCleanupIncrement(other.getPbCleanupIncrement());
8112  }
8113  if (other.hasPbCleanupRatio()) {
8114  setPbCleanupRatio(other.getPbCleanupRatio());
8115  }
8116  if (other.hasMinimizeWithPropagationRestartPeriod()) {
8117  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
8118  }
8119  if (other.hasMinimizeWithPropagationNumDecisions()) {
8120  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
8121  }
8122  if (other.hasVariableActivityDecay()) {
8123  setVariableActivityDecay(other.getVariableActivityDecay());
8124  }
8125  if (other.hasMaxVariableActivityValue()) {
8126  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
8127  }
8128  if (other.hasGlucoseMaxDecay()) {
8129  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
8130  }
8131  if (other.hasGlucoseDecayIncrement()) {
8132  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
8133  }
8134  if (other.hasGlucoseDecayIncrementPeriod()) {
8135  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
8136  }
8137  if (other.hasClauseActivityDecay()) {
8138  setClauseActivityDecay(other.getClauseActivityDecay());
8139  }
8140  if (other.hasMaxClauseActivityValue()) {
8141  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
8142  }
8143  if (!other.restartAlgorithms_.isEmpty()) {
8144  if (restartAlgorithms_.isEmpty()) {
8145  restartAlgorithms_ = other.restartAlgorithms_;
8146  bitField0_ = (bitField0_ & ~0x08000000);
8147  } else {
8148  ensureRestartAlgorithmsIsMutable();
8149  restartAlgorithms_.addAll(other.restartAlgorithms_);
8150  }
8151  onChanged();
8152  }
8153  if (other.hasDefaultRestartAlgorithms()) {
8154  bitField0_ |= 0x10000000;
8155  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
8156  onChanged();
8157  }
8158  if (other.hasRestartPeriod()) {
8159  setRestartPeriod(other.getRestartPeriod());
8160  }
8161  if (other.hasRestartRunningWindowSize()) {
8162  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
8163  }
8164  if (other.hasRestartDlAverageRatio()) {
8165  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
8166  }
8167  if (other.hasRestartLbdAverageRatio()) {
8168  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
8169  }
8170  if (other.hasUseBlockingRestart()) {
8171  setUseBlockingRestart(other.getUseBlockingRestart());
8172  }
8173  if (other.hasBlockingRestartWindowSize()) {
8174  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
8175  }
8176  if (other.hasBlockingRestartMultiplier()) {
8177  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
8178  }
8179  if (other.hasNumConflictsBeforeStrategyChanges()) {
8180  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
8181  }
8182  if (other.hasStrategyChangeIncreaseRatio()) {
8183  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
8184  }
8185  if (other.hasMaxTimeInSeconds()) {
8186  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
8187  }
8188  if (other.hasMaxDeterministicTime()) {
8189  setMaxDeterministicTime(other.getMaxDeterministicTime());
8190  }
8191  if (other.hasMaxNumberOfConflicts()) {
8192  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
8193  }
8194  if (other.hasMaxMemoryInMb()) {
8195  setMaxMemoryInMb(other.getMaxMemoryInMb());
8196  }
8197  if (other.hasTreatBinaryClausesSeparately()) {
8198  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
8199  }
8200  if (other.hasRandomSeed()) {
8201  setRandomSeed(other.getRandomSeed());
8202  }
8203  if (other.hasLogSearchProgress()) {
8204  setLogSearchProgress(other.getLogSearchProgress());
8205  }
8206  if (other.hasUsePbResolution()) {
8207  setUsePbResolution(other.getUsePbResolution());
8208  }
8209  if (other.hasMinimizeReductionDuringPbResolution()) {
8210  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
8211  }
8212  if (other.hasCountAssumptionLevelsInLbd()) {
8213  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
8214  }
8215  if (other.hasPresolveBveThreshold()) {
8216  setPresolveBveThreshold(other.getPresolveBveThreshold());
8217  }
8218  if (other.hasPresolveBveClauseWeight()) {
8219  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
8220  }
8221  if (other.hasPresolveProbingDeterministicTimeLimit()) {
8222  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
8223  }
8224  if (other.hasPresolveBlockedClause()) {
8225  setPresolveBlockedClause(other.getPresolveBlockedClause());
8226  }
8227  if (other.hasPresolveUseBva()) {
8228  setPresolveUseBva(other.getPresolveUseBva());
8229  }
8230  if (other.hasPresolveBvaThreshold()) {
8231  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
8232  }
8233  if (other.hasUseOptimizationHints()) {
8234  setUseOptimizationHints(other.getUseOptimizationHints());
8235  }
8236  if (other.hasMinimizeCore()) {
8237  setMinimizeCore(other.getMinimizeCore());
8238  }
8239  if (other.hasFindMultipleCores()) {
8240  setFindMultipleCores(other.getFindMultipleCores());
8241  }
8242  if (other.hasCoverOptimization()) {
8243  setCoverOptimization(other.getCoverOptimization());
8244  }
8245  if (other.hasMaxSatAssumptionOrder()) {
8246  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
8247  }
8248  if (other.hasMaxSatReverseAssumptionOrder()) {
8249  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
8250  }
8251  if (other.hasMaxSatStratification()) {
8252  setMaxSatStratification(other.getMaxSatStratification());
8253  }
8254  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
8255  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
8256  }
8257  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
8258  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
8259  }
8260  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
8261  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
8262  }
8263  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
8264  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
8265  }
8266  if (other.hasLinearizationLevel()) {
8267  setLinearizationLevel(other.getLinearizationLevel());
8268  }
8269  if (other.hasBooleanEncodingLevel()) {
8270  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
8271  }
8272  if (other.hasMaxNumCuts()) {
8273  setMaxNumCuts(other.getMaxNumCuts());
8274  }
8275  if (other.hasOnlyAddCutsAtLevelZero()) {
8276  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
8277  }
8278  if (other.hasAddKnapsackCuts()) {
8279  setAddKnapsackCuts(other.getAddKnapsackCuts());
8280  }
8281  if (other.hasAddCgCuts()) {
8282  setAddCgCuts(other.getAddCgCuts());
8283  }
8284  if (other.hasAddMirCuts()) {
8285  setAddMirCuts(other.getAddMirCuts());
8286  }
8287  if (other.hasUseMirRounding()) {
8288  setUseMirRounding(other.getUseMirRounding());
8289  }
8290  if (other.hasMaxIntegerRoundingScaling()) {
8291  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
8292  }
8293  if (other.hasAddLpConstraintsLazily()) {
8294  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
8295  }
8296  if (other.hasMinOrthogonalityForLpConstraints()) {
8297  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
8298  }
8299  if (other.hasMaxInactiveCount()) {
8300  setMaxInactiveCount(other.getMaxInactiveCount());
8301  }
8302  if (other.hasConstraintRemovalBatchSize()) {
8303  setConstraintRemovalBatchSize(other.getConstraintRemovalBatchSize());
8304  }
8305  if (other.hasSearchBranching()) {
8306  setSearchBranching(other.getSearchBranching());
8307  }
8308  if (other.hasExploitIntegerLpSolution()) {
8309  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
8310  }
8311  if (other.hasExploitAllLpSolution()) {
8312  setExploitAllLpSolution(other.getExploitAllLpSolution());
8313  }
8314  if (other.hasExploitBestSolution()) {
8315  setExploitBestSolution(other.getExploitBestSolution());
8316  }
8317  if (other.hasExploitObjective()) {
8318  setExploitObjective(other.getExploitObjective());
8319  }
8320  if (other.hasPseudoCostReliabilityThreshold()) {
8321  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
8322  }
8323  if (other.hasOptimizeWithCore()) {
8324  setOptimizeWithCore(other.getOptimizeWithCore());
8325  }
8326  if (other.hasBinarySearchNumConflicts()) {
8327  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
8328  }
8329  if (other.hasOptimizeWithMaxHs()) {
8330  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
8331  }
8332  if (other.hasCpModelPresolve()) {
8333  setCpModelPresolve(other.getCpModelPresolve());
8334  }
8335  if (other.hasCpModelProbingLevel()) {
8336  setCpModelProbingLevel(other.getCpModelProbingLevel());
8337  }
8338  if (other.hasCpModelUseSatPresolve()) {
8339  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
8340  }
8341  if (other.hasEnumerateAllSolutions()) {
8342  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
8343  }
8344  if (other.hasFillTightenedDomainsInResponse()) {
8345  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
8346  }
8347  if (other.hasInstantiateAllVariables()) {
8348  setInstantiateAllVariables(other.getInstantiateAllVariables());
8349  }
8350  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
8351  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
8352  }
8353  if (other.hasStopAfterFirstSolution()) {
8354  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
8355  }
8356  if (other.hasNumSearchWorkers()) {
8357  setNumSearchWorkers(other.getNumSearchWorkers());
8358  }
8359  if (other.hasInterleaveSearch()) {
8360  setInterleaveSearch(other.getInterleaveSearch());
8361  }
8362  if (other.hasDeterministicParallelSearch()) {
8363  setDeterministicParallelSearch(other.getDeterministicParallelSearch());
8364  }
8365  if (other.hasShareObjectiveBounds()) {
8366  setShareObjectiveBounds(other.getShareObjectiveBounds());
8367  }
8368  if (other.hasShareLevelZeroBounds()) {
8369  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
8370  }
8371  if (other.hasUseLnsOnly()) {
8372  setUseLnsOnly(other.getUseLnsOnly());
8373  }
8374  if (other.hasLnsFocusOnDecisionVariables()) {
8375  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
8376  }
8377  if (other.hasUseRinsLns()) {
8378  setUseRinsLns(other.getUseRinsLns());
8379  }
8380  if (other.hasRandomizeSearch()) {
8381  setRandomizeSearch(other.getRandomizeSearch());
8382  }
8383  if (other.hasSearchRandomizationTolerance()) {
8384  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
8385  }
8386  if (other.hasUseOptionalVariables()) {
8387  setUseOptionalVariables(other.getUseOptionalVariables());
8388  }
8389  if (other.hasUseExactLpReason()) {
8390  setUseExactLpReason(other.getUseExactLpReason());
8391  }
8392  if (other.hasUseCombinedNoOverlap()) {
8393  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
8394  }
8395  if (other.hasMipMaxBound()) {
8396  setMipMaxBound(other.getMipMaxBound());
8397  }
8398  if (other.hasMipVarScaling()) {
8399  setMipVarScaling(other.getMipVarScaling());
8400  }
8401  if (other.hasMipWantedPrecision()) {
8402  setMipWantedPrecision(other.getMipWantedPrecision());
8403  }
8404  if (other.hasMipMaxActivityExponent()) {
8405  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
8406  }
8407  if (other.hasMipCheckPrecision()) {
8408  setMipCheckPrecision(other.getMipCheckPrecision());
8409  }
8410  if (other.hasCatchSigintSignal()) {
8411  setCatchSigintSignal(other.getCatchSigintSignal());
8412  }
8413  this.mergeUnknownFields(other.unknownFields);
8414  onChanged();
8415  return this;
8416  }
8417 
8418  @java.lang.Override
8419  public final boolean isInitialized() {
8420  return true;
8421  }
8422 
8423  @java.lang.Override
8425  com.google.protobuf.CodedInputStream input,
8426  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8427  throws java.io.IOException {
8428  com.google.ortools.sat.SatParameters parsedMessage = null;
8429  try {
8430  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8431  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8432  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
8433  throw e.unwrapIOException();
8434  } finally {
8435  if (parsedMessage != null) {
8436  mergeFrom(parsedMessage);
8437  }
8438  }
8439  return this;
8440  }
8441  private int bitField0_;
8442  private int bitField1_;
8443  private int bitField2_;
8444  private int bitField3_;
8445 
8446  private int preferredVariableOrder_ = 0;
8450  public boolean hasPreferredVariableOrder() {
8451  return ((bitField0_ & 0x00000001) != 0);
8452  }
8457  @SuppressWarnings("deprecation")
8459  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
8460  }
8465  if (value == null) {
8466  throw new NullPointerException();
8467  }
8468  bitField0_ |= 0x00000001;
8469  preferredVariableOrder_ = value.getNumber();
8470  onChanged();
8471  return this;
8472  }
8477  bitField0_ = (bitField0_ & ~0x00000001);
8478  preferredVariableOrder_ = 0;
8479  onChanged();
8480  return this;
8481  }
8482 
8483  private int initialPolarity_ = 1;
8487  public boolean hasInitialPolarity() {
8488  return ((bitField0_ & 0x00000002) != 0);
8489  }
8494  @SuppressWarnings("deprecation")
8496  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
8497  }
8502  if (value == null) {
8503  throw new NullPointerException();
8504  }
8505  bitField0_ |= 0x00000002;
8506  initialPolarity_ = value.getNumber();
8507  onChanged();
8508  return this;
8509  }
8514  bitField0_ = (bitField0_ & ~0x00000002);
8515  initialPolarity_ = 1;
8516  onChanged();
8517  return this;
8518  }
8519 
8520  private boolean usePhaseSaving_ = true;
8534  public boolean hasUsePhaseSaving() {
8535  return ((bitField0_ & 0x00000004) != 0);
8536  }
8550  public boolean getUsePhaseSaving() {
8551  return usePhaseSaving_;
8552  }
8566  public Builder setUsePhaseSaving(boolean value) {
8567  bitField0_ |= 0x00000004;
8568  usePhaseSaving_ = value;
8569  onChanged();
8570  return this;
8571  }
8586  bitField0_ = (bitField0_ & ~0x00000004);
8587  usePhaseSaving_ = true;
8588  onChanged();
8589  return this;
8590  }
8591 
8592  private double randomPolarityRatio_ ;
8604  public boolean hasRandomPolarityRatio() {
8605  return ((bitField0_ & 0x00000008) != 0);
8606  }
8618  public double getRandomPolarityRatio() {
8619  return randomPolarityRatio_;
8620  }
8632  public Builder setRandomPolarityRatio(double value) {
8633  bitField0_ |= 0x00000008;
8634  randomPolarityRatio_ = value;
8635  onChanged();
8636  return this;
8637  }
8650  bitField0_ = (bitField0_ & ~0x00000008);
8651  randomPolarityRatio_ = 0D;
8652  onChanged();
8653  return this;
8654  }
8655 
8656  private double randomBranchesRatio_ ;
8666  public boolean hasRandomBranchesRatio() {
8667  return ((bitField0_ & 0x00000010) != 0);
8668  }
8678  public double getRandomBranchesRatio() {
8679  return randomBranchesRatio_;
8680  }
8690  public Builder setRandomBranchesRatio(double value) {
8691  bitField0_ |= 0x00000010;
8692  randomBranchesRatio_ = value;
8693  onChanged();
8694  return this;
8695  }
8706  bitField0_ = (bitField0_ & ~0x00000010);
8707  randomBranchesRatio_ = 0D;
8708  onChanged();
8709  return this;
8710  }
8711 
8712  private boolean useErwaHeuristic_ ;
8722  public boolean hasUseErwaHeuristic() {
8723  return ((bitField0_ & 0x00000020) != 0);
8724  }
8734  public boolean getUseErwaHeuristic() {
8735  return useErwaHeuristic_;
8736  }
8746  public Builder setUseErwaHeuristic(boolean value) {
8747  bitField0_ |= 0x00000020;
8748  useErwaHeuristic_ = value;
8749  onChanged();
8750  return this;
8751  }
8762  bitField0_ = (bitField0_ & ~0x00000020);
8763  useErwaHeuristic_ = false;
8764  onChanged();
8765  return this;
8766  }
8767 
8768  private double initialVariablesActivity_ ;
8781  public boolean hasInitialVariablesActivity() {
8782  return ((bitField0_ & 0x00000040) != 0);
8783  }
8797  return initialVariablesActivity_;
8798  }
8811  public Builder setInitialVariablesActivity(double value) {
8812  bitField0_ |= 0x00000040;
8813  initialVariablesActivity_ = value;
8814  onChanged();
8815  return this;
8816  }
8830  bitField0_ = (bitField0_ & ~0x00000040);
8831  initialVariablesActivity_ = 0D;
8832  onChanged();
8833  return this;
8834  }
8835 
8836  private boolean alsoBumpVariablesInConflictReasons_ ;
8848  return ((bitField0_ & 0x00000080) != 0);
8849  }
8861  return alsoBumpVariablesInConflictReasons_;
8862  }
8874  bitField0_ |= 0x00000080;
8875  alsoBumpVariablesInConflictReasons_ = value;
8876  onChanged();
8877  return this;
8878  }
8890  bitField0_ = (bitField0_ & ~0x00000080);
8891  alsoBumpVariablesInConflictReasons_ = false;
8892  onChanged();
8893  return this;
8894  }
8895 
8896  private int minimizationAlgorithm_ = 2;
8900  public boolean hasMinimizationAlgorithm() {
8901  return ((bitField0_ & 0x00000100) != 0);
8902  }
8907  @SuppressWarnings("deprecation")
8909  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
8910  }
8915  if (value == null) {
8916  throw new NullPointerException();
8917  }
8918  bitField0_ |= 0x00000100;
8919  minimizationAlgorithm_ = value.getNumber();
8920  onChanged();
8921  return this;
8922  }
8927  bitField0_ = (bitField0_ & ~0x00000100);
8928  minimizationAlgorithm_ = 2;
8929  onChanged();
8930  return this;
8931  }
8932 
8933  private int binaryMinimizationAlgorithm_ = 1;
8938  return ((bitField0_ & 0x00000200) != 0);
8939  }
8944  @SuppressWarnings("deprecation")
8947  }
8952  if (value == null) {
8953  throw new NullPointerException();
8954  }
8955  bitField0_ |= 0x00000200;
8956  binaryMinimizationAlgorithm_ = value.getNumber();
8957  onChanged();
8958  return this;
8959  }
8964  bitField0_ = (bitField0_ & ~0x00000200);
8965  binaryMinimizationAlgorithm_ = 1;
8966  onChanged();
8967  return this;
8968  }
8969 
8970  private boolean subsumptionDuringConflictAnalysis_ = true;
8982  return ((bitField0_ & 0x00000400) != 0);
8983  }
8995  return subsumptionDuringConflictAnalysis_;
8996  }
9008  bitField0_ |= 0x00000400;
9009  subsumptionDuringConflictAnalysis_ = value;
9010  onChanged();
9011  return this;
9012  }
9024  bitField0_ = (bitField0_ & ~0x00000400);
9025  subsumptionDuringConflictAnalysis_ = true;
9026  onChanged();
9027  return this;
9028  }
9029 
9030  private int clauseCleanupPeriod_ = 10000;
9038  public boolean hasClauseCleanupPeriod() {
9039  return ((bitField0_ & 0x00000800) != 0);
9040  }
9048  public int getClauseCleanupPeriod() {
9049  return clauseCleanupPeriod_;
9050  }
9058  public Builder setClauseCleanupPeriod(int value) {
9059  bitField0_ |= 0x00000800;
9060  clauseCleanupPeriod_ = value;
9061  onChanged();
9062  return this;
9063  }
9072  bitField0_ = (bitField0_ & ~0x00000800);
9073  clauseCleanupPeriod_ = 10000;
9074  onChanged();
9075  return this;
9076  }
9077 
9078  private int clauseCleanupTarget_ = 10000;
9087  public boolean hasClauseCleanupTarget() {
9088  return ((bitField0_ & 0x00001000) != 0);
9089  }
9098  public int getClauseCleanupTarget() {
9099  return clauseCleanupTarget_;
9100  }
9109  public Builder setClauseCleanupTarget(int value) {
9110  bitField0_ |= 0x00001000;
9111  clauseCleanupTarget_ = value;
9112  onChanged();
9113  return this;
9114  }
9124  bitField0_ = (bitField0_ & ~0x00001000);
9125  clauseCleanupTarget_ = 10000;
9126  onChanged();
9127  return this;
9128  }
9129 
9130  private int clauseCleanupProtection_ = 0;
9134  public boolean hasClauseCleanupProtection() {
9135  return ((bitField0_ & 0x00002000) != 0);
9136  }
9141  @SuppressWarnings("deprecation")
9143  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
9144  }
9149  if (value == null) {
9150  throw new NullPointerException();
9151  }
9152  bitField0_ |= 0x00002000;
9153  clauseCleanupProtection_ = value.getNumber();
9154  onChanged();
9155  return this;
9156  }
9161  bitField0_ = (bitField0_ & ~0x00002000);
9162  clauseCleanupProtection_ = 0;
9163  onChanged();
9164  return this;
9165  }
9166 
9167  private int clauseCleanupLbdBound_ = 5;
9176  public boolean hasClauseCleanupLbdBound() {
9177  return ((bitField0_ & 0x00004000) != 0);
9178  }
9188  return clauseCleanupLbdBound_;
9189  }
9198  public Builder setClauseCleanupLbdBound(int value) {
9199  bitField0_ |= 0x00004000;
9200  clauseCleanupLbdBound_ = value;
9201  onChanged();
9202  return this;
9203  }
9213  bitField0_ = (bitField0_ & ~0x00004000);
9214  clauseCleanupLbdBound_ = 5;
9215  onChanged();
9216  return this;
9217  }
9218 
9219  private int clauseCleanupOrdering_ = 0;
9223  public boolean hasClauseCleanupOrdering() {
9224  return ((bitField0_ & 0x00008000) != 0);
9225  }
9230  @SuppressWarnings("deprecation")
9232  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
9233  }
9238  if (value == null) {
9239  throw new NullPointerException();
9240  }
9241  bitField0_ |= 0x00008000;
9242  clauseCleanupOrdering_ = value.getNumber();
9243  onChanged();
9244  return this;
9245  }
9250  bitField0_ = (bitField0_ & ~0x00008000);
9251  clauseCleanupOrdering_ = 0;
9252  onChanged();
9253  return this;
9254  }
9255 
9256  private int pbCleanupIncrement_ = 200;
9264  public boolean hasPbCleanupIncrement() {
9265  return ((bitField0_ & 0x00010000) != 0);
9266  }
9274  public int getPbCleanupIncrement() {
9275  return pbCleanupIncrement_;
9276  }
9284  public Builder setPbCleanupIncrement(int value) {
9285  bitField0_ |= 0x00010000;
9286  pbCleanupIncrement_ = value;
9287  onChanged();
9288  return this;
9289  }
9298  bitField0_ = (bitField0_ & ~0x00010000);
9299  pbCleanupIncrement_ = 200;
9300  onChanged();
9301  return this;
9302  }
9303 
9304  private double pbCleanupRatio_ = 0.5D;
9308  public boolean hasPbCleanupRatio() {
9309  return ((bitField0_ & 0x00020000) != 0);
9310  }
9314  public double getPbCleanupRatio() {
9315  return pbCleanupRatio_;
9316  }
9320  public Builder setPbCleanupRatio(double value) {
9321  bitField0_ |= 0x00020000;
9322  pbCleanupRatio_ = value;
9323  onChanged();
9324  return this;
9325  }
9330  bitField0_ = (bitField0_ & ~0x00020000);
9331  pbCleanupRatio_ = 0.5D;
9332  onChanged();
9333  return this;
9334  }
9335 
9336  private int minimizeWithPropagationRestartPeriod_ = 10;
9355  return ((bitField0_ & 0x00040000) != 0);
9356  }
9375  return minimizeWithPropagationRestartPeriod_;
9376  }
9395  bitField0_ |= 0x00040000;
9396  minimizeWithPropagationRestartPeriod_ = value;
9397  onChanged();
9398  return this;
9399  }
9418  bitField0_ = (bitField0_ & ~0x00040000);
9419  minimizeWithPropagationRestartPeriod_ = 10;
9420  onChanged();
9421  return this;
9422  }
9423 
9424  private int minimizeWithPropagationNumDecisions_ = 1000;
9429  return ((bitField0_ & 0x00080000) != 0);
9430  }
9435  return minimizeWithPropagationNumDecisions_;
9436  }
9441  bitField0_ |= 0x00080000;
9442  minimizeWithPropagationNumDecisions_ = value;
9443  onChanged();
9444  return this;
9445  }
9450  bitField0_ = (bitField0_ & ~0x00080000);
9451  minimizeWithPropagationNumDecisions_ = 1000;
9452  onChanged();
9453  return this;
9454  }
9455 
9456  private double variableActivityDecay_ = 0.8D;
9470  public boolean hasVariableActivityDecay() {
9471  return ((bitField0_ & 0x00100000) != 0);
9472  }
9486  public double getVariableActivityDecay() {
9487  return variableActivityDecay_;
9488  }
9502  public Builder setVariableActivityDecay(double value) {
9503  bitField0_ |= 0x00100000;
9504  variableActivityDecay_ = value;
9505  onChanged();
9506  return this;
9507  }
9522  bitField0_ = (bitField0_ & ~0x00100000);
9523  variableActivityDecay_ = 0.8D;
9524  onChanged();
9525  return this;
9526  }
9527 
9528  private double maxVariableActivityValue_ = 1e+100D;
9532  public boolean hasMaxVariableActivityValue() {
9533  return ((bitField0_ & 0x00200000) != 0);
9534  }
9539  return maxVariableActivityValue_;
9540  }
9544  public Builder setMaxVariableActivityValue(double value) {
9545  bitField0_ |= 0x00200000;
9546  maxVariableActivityValue_ = value;
9547  onChanged();
9548  return this;
9549  }
9554  bitField0_ = (bitField0_ & ~0x00200000);
9555  maxVariableActivityValue_ = 1e+100D;
9556  onChanged();
9557  return this;
9558  }
9559 
9560  private double glucoseMaxDecay_ = 0.95D;
9571  public boolean hasGlucoseMaxDecay() {
9572  return ((bitField0_ & 0x00400000) != 0);
9573  }
9584  public double getGlucoseMaxDecay() {
9585  return glucoseMaxDecay_;
9586  }
9597  public Builder setGlucoseMaxDecay(double value) {
9598  bitField0_ |= 0x00400000;
9599  glucoseMaxDecay_ = value;
9600  onChanged();
9601  return this;
9602  }
9614  bitField0_ = (bitField0_ & ~0x00400000);
9615  glucoseMaxDecay_ = 0.95D;
9616  onChanged();
9617  return this;
9618  }
9619 
9620  private double glucoseDecayIncrement_ = 0.01D;
9624  public boolean hasGlucoseDecayIncrement() {
9625  return ((bitField0_ & 0x00800000) != 0);
9626  }
9630  public double getGlucoseDecayIncrement() {
9631  return glucoseDecayIncrement_;
9632  }
9636  public Builder setGlucoseDecayIncrement(double value) {
9637  bitField0_ |= 0x00800000;
9638  glucoseDecayIncrement_ = value;
9639  onChanged();
9640  return this;
9641  }
9646  bitField0_ = (bitField0_ & ~0x00800000);
9647  glucoseDecayIncrement_ = 0.01D;
9648  onChanged();
9649  return this;
9650  }
9651 
9652  private int glucoseDecayIncrementPeriod_ = 5000;
9657  return ((bitField0_ & 0x01000000) != 0);
9658  }
9663  return glucoseDecayIncrementPeriod_;
9664  }
9669  bitField0_ |= 0x01000000;
9670  glucoseDecayIncrementPeriod_ = value;
9671  onChanged();
9672  return this;
9673  }
9678  bitField0_ = (bitField0_ & ~0x01000000);
9679  glucoseDecayIncrementPeriod_ = 5000;
9680  onChanged();
9681  return this;
9682  }
9683 
9684  private double clauseActivityDecay_ = 0.999D;
9692  public boolean hasClauseActivityDecay() {
9693  return ((bitField0_ & 0x02000000) != 0);
9694  }
9702  public double getClauseActivityDecay() {
9703  return clauseActivityDecay_;
9704  }
9712  public Builder setClauseActivityDecay(double value) {
9713  bitField0_ |= 0x02000000;
9714  clauseActivityDecay_ = value;
9715  onChanged();
9716  return this;
9717  }
9726  bitField0_ = (bitField0_ & ~0x02000000);
9727  clauseActivityDecay_ = 0.999D;
9728  onChanged();
9729  return this;
9730  }
9731 
9732  private double maxClauseActivityValue_ = 1e+20D;
9736  public boolean hasMaxClauseActivityValue() {
9737  return ((bitField0_ & 0x04000000) != 0);
9738  }
9742  public double getMaxClauseActivityValue() {
9743  return maxClauseActivityValue_;
9744  }
9748  public Builder setMaxClauseActivityValue(double value) {
9749  bitField0_ |= 0x04000000;
9750  maxClauseActivityValue_ = value;
9751  onChanged();
9752  return this;
9753  }
9758  bitField0_ = (bitField0_ & ~0x04000000);
9759  maxClauseActivityValue_ = 1e+20D;
9760  onChanged();
9761  return this;
9762  }
9763 
9764  private java.util.List<java.lang.Integer> restartAlgorithms_ =
9765  java.util.Collections.emptyList();
9766  private void ensureRestartAlgorithmsIsMutable() {
9767  if (!((bitField0_ & 0x08000000) != 0)) {
9768  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
9769  bitField0_ |= 0x08000000;
9770  }
9771  }
9787  return new com.google.protobuf.Internal.ListAdapter<
9788  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
9789  }
9805  return restartAlgorithms_.size();
9806  }
9822  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
9823  }
9839  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
9840  if (value == null) {
9841  throw new NullPointerException();
9842  }
9843  ensureRestartAlgorithmsIsMutable();
9844  restartAlgorithms_.set(index, value.getNumber());
9845  onChanged();
9846  return this;
9847  }
9863  if (value == null) {
9864  throw new NullPointerException();
9865  }
9866  ensureRestartAlgorithmsIsMutable();
9867  restartAlgorithms_.add(value.getNumber());
9868  onChanged();
9869  return this;
9870  }
9886  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
9887  ensureRestartAlgorithmsIsMutable();
9888  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
9889  restartAlgorithms_.add(value.getNumber());
9890  }
9891  onChanged();
9892  return this;
9893  }
9909  restartAlgorithms_ = java.util.Collections.emptyList();
9910  bitField0_ = (bitField0_ & ~0x08000000);
9911  onChanged();
9912  return this;
9913  }
9914 
9915  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
9919  public boolean hasDefaultRestartAlgorithms() {
9920  return ((bitField0_ & 0x10000000) != 0);
9921  }
9925  public java.lang.String getDefaultRestartAlgorithms() {
9926  java.lang.Object ref = defaultRestartAlgorithms_;
9927  if (!(ref instanceof java.lang.String)) {
9928  com.google.protobuf.ByteString bs =
9929  (com.google.protobuf.ByteString) ref;
9930  java.lang.String s = bs.toStringUtf8();
9931  if (bs.isValidUtf8()) {
9932  defaultRestartAlgorithms_ = s;
9933  }
9934  return s;
9935  } else {
9936  return (java.lang.String) ref;
9937  }
9938  }
9942  public com.google.protobuf.ByteString
9944  java.lang.Object ref = defaultRestartAlgorithms_;
9945  if (ref instanceof String) {
9946  com.google.protobuf.ByteString b =
9947  com.google.protobuf.ByteString.copyFromUtf8(
9948  (java.lang.String) ref);
9949  defaultRestartAlgorithms_ = b;
9950  return b;
9951  } else {
9952  return (com.google.protobuf.ByteString) ref;
9953  }
9954  }
9959  java.lang.String value) {
9960  if (value == null) {
9961  throw new NullPointerException();
9962  }
9963  bitField0_ |= 0x10000000;
9964  defaultRestartAlgorithms_ = value;
9965  onChanged();
9966  return this;
9967  }
9972  bitField0_ = (bitField0_ & ~0x10000000);
9973  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
9974  onChanged();
9975  return this;
9976  }
9981  com.google.protobuf.ByteString value) {
9982  if (value == null) {
9983  throw new NullPointerException();
9984  }
9985  bitField0_ |= 0x10000000;
9986  defaultRestartAlgorithms_ = value;
9987  onChanged();
9988  return this;
9989  }
9990 
9991  private int restartPeriod_ = 50;
10000  public boolean hasRestartPeriod() {
10001  return ((bitField0_ & 0x20000000) != 0);
10002  }
10011  public int getRestartPeriod() {
10012  return restartPeriod_;
10013  }
10022  public Builder setRestartPeriod(int value) {
10023  bitField0_ |= 0x20000000;
10024  restartPeriod_ = value;
10025  onChanged();
10026  return this;
10027  }
10037  bitField0_ = (bitField0_ & ~0x20000000);
10038  restartPeriod_ = 50;
10039  onChanged();
10040  return this;
10041  }
10042 
10043  private int restartRunningWindowSize_ = 50;
10051  public boolean hasRestartRunningWindowSize() {
10052  return ((bitField0_ & 0x40000000) != 0);
10053  }
10062  return restartRunningWindowSize_;
10063  }
10072  bitField0_ |= 0x40000000;
10073  restartRunningWindowSize_ = value;
10074  onChanged();
10075  return this;
10076  }
10085  bitField0_ = (bitField0_ & ~0x40000000);
10086  restartRunningWindowSize_ = 50;
10087  onChanged();
10088  return this;
10089  }
10090 
10091  private double restartDlAverageRatio_ = 1D;
10100  public boolean hasRestartDlAverageRatio() {
10101  return ((bitField0_ & 0x80000000) != 0);
10102  }
10111  public double getRestartDlAverageRatio() {
10112  return restartDlAverageRatio_;
10113  }
10122  public Builder setRestartDlAverageRatio(double value) {
10123  bitField0_ |= 0x80000000;
10124  restartDlAverageRatio_ = value;
10125  onChanged();
10126  return this;
10127  }
10137  bitField0_ = (bitField0_ & ~0x80000000);
10138  restartDlAverageRatio_ = 1D;
10139  onChanged();
10140  return this;
10141  }
10142 
10143  private double restartLbdAverageRatio_ = 1D;
10147  public boolean hasRestartLbdAverageRatio() {
10148  return ((bitField1_ & 0x00000001) != 0);
10149  }
10153  public double getRestartLbdAverageRatio() {
10154  return restartLbdAverageRatio_;
10155  }
10159  public Builder setRestartLbdAverageRatio(double value) {
10160  bitField1_ |= 0x00000001;
10161  restartLbdAverageRatio_ = value;
10162  onChanged();
10163  return this;
10164  }
10169  bitField1_ = (bitField1_ & ~0x00000001);
10170  restartLbdAverageRatio_ = 1D;
10171  onChanged();
10172  return this;
10173  }
10174 
10175  private boolean useBlockingRestart_ ;
10185  public boolean hasUseBlockingRestart() {
10186  return ((bitField1_ & 0x00000002) != 0);
10187  }
10197  public boolean getUseBlockingRestart() {
10198  return useBlockingRestart_;
10199  }
10209  public Builder setUseBlockingRestart(boolean value) {
10210  bitField1_ |= 0x00000002;
10211  useBlockingRestart_ = value;
10212  onChanged();
10213  return this;
10214  }
10225  bitField1_ = (bitField1_ & ~0x00000002);
10226  useBlockingRestart_ = false;
10227  onChanged();
10228  return this;
10229  }
10230 
10231  private int blockingRestartWindowSize_ = 5000;
10235  public boolean hasBlockingRestartWindowSize() {
10236  return ((bitField1_ & 0x00000004) != 0);
10237  }
10242  return blockingRestartWindowSize_;
10243  }
10248  bitField1_ |= 0x00000004;
10249  blockingRestartWindowSize_ = value;
10250  onChanged();
10251  return this;
10252  }
10257  bitField1_ = (bitField1_ & ~0x00000004);
10258  blockingRestartWindowSize_ = 5000;
10259  onChanged();
10260  return this;
10261  }
10262 
10263  private double blockingRestartMultiplier_ = 1.4D;
10267  public boolean hasBlockingRestartMultiplier() {
10268  return ((bitField1_ & 0x00000008) != 0);
10269  }
10274  return blockingRestartMultiplier_;
10275  }
10279  public Builder setBlockingRestartMultiplier(double value) {
10280  bitField1_ |= 0x00000008;
10281  blockingRestartMultiplier_ = value;
10282  onChanged();
10283  return this;
10284  }
10289  bitField1_ = (bitField1_ & ~0x00000008);
10290  blockingRestartMultiplier_ = 1.4D;
10291  onChanged();
10292  return this;
10293  }
10294 
10295  private int numConflictsBeforeStrategyChanges_ ;
10306  return ((bitField1_ & 0x00000010) != 0);
10307  }
10318  return numConflictsBeforeStrategyChanges_;
10319  }
10330  bitField1_ |= 0x00000010;
10331  numConflictsBeforeStrategyChanges_ = value;
10332  onChanged();
10333  return this;
10334  }
10345  bitField1_ = (bitField1_ & ~0x00000010);
10346  numConflictsBeforeStrategyChanges_ = 0;
10347  onChanged();
10348  return this;
10349  }
10350 
10351  private double strategyChangeIncreaseRatio_ ;
10361  return ((bitField1_ & 0x00000020) != 0);
10362  }
10372  return strategyChangeIncreaseRatio_;
10373  }
10383  bitField1_ |= 0x00000020;
10384  strategyChangeIncreaseRatio_ = value;
10385  onChanged();
10386  return this;
10387  }
10397  bitField1_ = (bitField1_ & ~0x00000020);
10398  strategyChangeIncreaseRatio_ = 0D;
10399  onChanged();
10400  return this;
10401  }
10402 
10403  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10413  public boolean hasMaxTimeInSeconds() {
10414  return ((bitField1_ & 0x00000040) != 0);
10415  }
10425  public double getMaxTimeInSeconds() {
10426  return maxTimeInSeconds_;
10427  }
10437  public Builder setMaxTimeInSeconds(double value) {
10438  bitField1_ |= 0x00000040;
10439  maxTimeInSeconds_ = value;
10440  onChanged();
10441  return this;
10442  }
10453  bitField1_ = (bitField1_ & ~0x00000040);
10454  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10455  onChanged();
10456  return this;
10457  }
10458 
10459  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10471  public boolean hasMaxDeterministicTime() {
10472  return ((bitField1_ & 0x00000080) != 0);
10473  }
10485  public double getMaxDeterministicTime() {
10486  return maxDeterministicTime_;
10487  }
10499  public Builder setMaxDeterministicTime(double value) {
10500  bitField1_ |= 0x00000080;
10501  maxDeterministicTime_ = value;
10502  onChanged();
10503  return this;
10504  }
10517  bitField1_ = (bitField1_ & ~0x00000080);
10518  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10519  onChanged();
10520  return this;
10521  }
10522 
10523  private long maxNumberOfConflicts_ = 9223372036854775807L;
10536  public boolean hasMaxNumberOfConflicts() {
10537  return ((bitField1_ & 0x00000100) != 0);
10538  }
10551  public long getMaxNumberOfConflicts() {
10552  return maxNumberOfConflicts_;
10553  }
10566  public Builder setMaxNumberOfConflicts(long value) {
10567  bitField1_ |= 0x00000100;
10568  maxNumberOfConflicts_ = value;
10569  onChanged();
10570  return this;
10571  }
10585  bitField1_ = (bitField1_ & ~0x00000100);
10586  maxNumberOfConflicts_ = 9223372036854775807L;
10587  onChanged();
10588  return this;
10589  }
10590 
10591  private long maxMemoryInMb_ = 10000L;
10602  public boolean hasMaxMemoryInMb() {
10603  return ((bitField1_ & 0x00000200) != 0);
10604  }
10615  public long getMaxMemoryInMb() {
10616  return maxMemoryInMb_;
10617  }
10628  public Builder setMaxMemoryInMb(long value) {
10629  bitField1_ |= 0x00000200;
10630  maxMemoryInMb_ = value;
10631  onChanged();
10632  return this;
10633  }
10645  bitField1_ = (bitField1_ & ~0x00000200);
10646  maxMemoryInMb_ = 10000L;
10647  onChanged();
10648  return this;
10649  }
10650 
10651  private boolean treatBinaryClausesSeparately_ = true;
10662  return ((bitField1_ & 0x00000400) != 0);
10663  }
10674  return treatBinaryClausesSeparately_;
10675  }
10686  bitField1_ |= 0x00000400;
10687  treatBinaryClausesSeparately_ = value;
10688  onChanged();
10689  return this;
10690  }
10701  bitField1_ = (bitField1_ & ~0x00000400);
10702  treatBinaryClausesSeparately_ = true;
10703  onChanged();
10704  return this;
10705  }
10706 
10707  private int randomSeed_ = 1;
10720  public boolean hasRandomSeed() {
10721  return ((bitField1_ & 0x00000800) != 0);
10722  }
10735  public int getRandomSeed() {
10736  return randomSeed_;
10737  }
10750  public Builder setRandomSeed(int value) {
10751  bitField1_ |= 0x00000800;
10752  randomSeed_ = value;
10753  onChanged();
10754  return this;
10755  }
10769  bitField1_ = (bitField1_ & ~0x00000800);
10770  randomSeed_ = 1;
10771  onChanged();
10772  return this;
10773  }
10774 
10775  private boolean logSearchProgress_ ;
10783  public boolean hasLogSearchProgress() {
10784  return ((bitField1_ & 0x00001000) != 0);
10785  }
10793  public boolean getLogSearchProgress() {
10794  return logSearchProgress_;
10795  }
10803  public Builder setLogSearchProgress(boolean value) {
10804  bitField1_ |= 0x00001000;
10805  logSearchProgress_ = value;
10806  onChanged();
10807  return this;
10808  }
10817  bitField1_ = (bitField1_ & ~0x00001000);
10818  logSearchProgress_ = false;
10819  onChanged();
10820  return this;
10821  }
10822 
10823  private boolean usePbResolution_ ;
10834  public boolean hasUsePbResolution() {
10835  return ((bitField1_ & 0x00002000) != 0);
10836  }
10847  public boolean getUsePbResolution() {
10848  return usePbResolution_;
10849  }
10860  public Builder setUsePbResolution(boolean value) {
10861  bitField1_ |= 0x00002000;
10862  usePbResolution_ = value;
10863  onChanged();
10864  return this;
10865  }
10877  bitField1_ = (bitField1_ & ~0x00002000);
10878  usePbResolution_ = false;
10879  onChanged();
10880  return this;
10881  }
10882 
10883  private boolean minimizeReductionDuringPbResolution_ ;
10895  return ((bitField1_ & 0x00004000) != 0);
10896  }
10908  return minimizeReductionDuringPbResolution_;
10909  }
10921  bitField1_ |= 0x00004000;
10922  minimizeReductionDuringPbResolution_ = value;
10923  onChanged();
10924  return this;
10925  }
10937  bitField1_ = (bitField1_ & ~0x00004000);
10938  minimizeReductionDuringPbResolution_ = false;
10939  onChanged();
10940  return this;
10941  }
10942 
10943  private boolean countAssumptionLevelsInLbd_ = true;
10959  return ((bitField1_ & 0x00008000) != 0);
10960  }
10976  return countAssumptionLevelsInLbd_;
10977  }
10992  public Builder setCountAssumptionLevelsInLbd(boolean value) {
10993  bitField1_ |= 0x00008000;
10994  countAssumptionLevelsInLbd_ = value;
10995  onChanged();
10996  return this;
10997  }
11013  bitField1_ = (bitField1_ & ~0x00008000);
11014  countAssumptionLevelsInLbd_ = true;
11015  onChanged();
11016  return this;
11017  }
11018 
11019  private int presolveBveThreshold_ = 500;
11029  public boolean hasPresolveBveThreshold() {
11030  return ((bitField1_ & 0x00010000) != 0);
11031  }
11042  return presolveBveThreshold_;
11043  }
11053  public Builder setPresolveBveThreshold(int value) {
11054  bitField1_ |= 0x00010000;
11055  presolveBveThreshold_ = value;
11056  onChanged();
11057  return this;
11058  }
11069  bitField1_ = (bitField1_ & ~0x00010000);
11070  presolveBveThreshold_ = 500;
11071  onChanged();
11072  return this;
11073  }
11074 
11075  private int presolveBveClauseWeight_ = 3;
11084  public boolean hasPresolveBveClauseWeight() {
11085  return ((bitField1_ & 0x00020000) != 0);
11086  }
11096  return presolveBveClauseWeight_;
11097  }
11107  bitField1_ |= 0x00020000;
11108  presolveBveClauseWeight_ = value;
11109  onChanged();
11110  return this;
11111  }
11121  bitField1_ = (bitField1_ & ~0x00020000);
11122  presolveBveClauseWeight_ = 3;
11123  onChanged();
11124  return this;
11125  }
11126 
11127  private double presolveProbingDeterministicTimeLimit_ = 30D;
11137  return ((bitField1_ & 0x00040000) != 0);
11138  }
11148  return presolveProbingDeterministicTimeLimit_;
11149  }
11159  bitField1_ |= 0x00040000;
11160  presolveProbingDeterministicTimeLimit_ = value;
11161  onChanged();
11162  return this;
11163  }
11173  bitField1_ = (bitField1_ & ~0x00040000);
11174  presolveProbingDeterministicTimeLimit_ = 30D;
11175  onChanged();
11176  return this;
11177  }
11178 
11179  private boolean presolveBlockedClause_ = true;
11188  public boolean hasPresolveBlockedClause() {
11189  return ((bitField1_ & 0x00080000) != 0);
11190  }
11199  public boolean getPresolveBlockedClause() {
11200  return presolveBlockedClause_;
11201  }
11210  public Builder setPresolveBlockedClause(boolean value) {
11211  bitField1_ |= 0x00080000;
11212  presolveBlockedClause_ = value;
11213  onChanged();
11214  return this;
11215  }
11225  bitField1_ = (bitField1_ & ~0x00080000);
11226  presolveBlockedClause_ = true;
11227  onChanged();
11228  return this;
11229  }
11230 
11231  private boolean presolveUseBva_ = true;
11239  public boolean hasPresolveUseBva() {
11240  return ((bitField1_ & 0x00100000) != 0);
11241  }
11249  public boolean getPresolveUseBva() {
11250  return presolveUseBva_;
11251  }
11259  public Builder setPresolveUseBva(boolean value) {
11260  bitField1_ |= 0x00100000;
11261  presolveUseBva_ = value;
11262  onChanged();
11263  return this;
11264  }
11273  bitField1_ = (bitField1_ & ~0x00100000);
11274  presolveUseBva_ = true;
11275  onChanged();
11276  return this;
11277  }
11278 
11279  private int presolveBvaThreshold_ = 1;
11290  public boolean hasPresolveBvaThreshold() {
11291  return ((bitField1_ & 0x00200000) != 0);
11292  }
11304  return presolveBvaThreshold_;
11305  }
11316  public Builder setPresolveBvaThreshold(int value) {
11317  bitField1_ |= 0x00200000;
11318  presolveBvaThreshold_ = value;
11319  onChanged();
11320  return this;
11321  }
11333  bitField1_ = (bitField1_ & ~0x00200000);
11334  presolveBvaThreshold_ = 1;
11335  onChanged();
11336  return this;
11337  }
11338 
11339  private boolean useOptimizationHints_ = true;
11350  public boolean hasUseOptimizationHints() {
11351  return ((bitField1_ & 0x00400000) != 0);
11352  }
11363  public boolean getUseOptimizationHints() {
11364  return useOptimizationHints_;
11365  }
11376  public Builder setUseOptimizationHints(boolean value) {
11377  bitField1_ |= 0x00400000;
11378  useOptimizationHints_ = value;
11379  onChanged();
11380  return this;
11381  }
11393  bitField1_ = (bitField1_ & ~0x00400000);
11394  useOptimizationHints_ = true;
11395  onChanged();
11396  return this;
11397  }
11398 
11399  private boolean minimizeCore_ = true;
11407  public boolean hasMinimizeCore() {
11408  return ((bitField1_ & 0x00800000) != 0);
11409  }
11417  public boolean getMinimizeCore() {
11418  return minimizeCore_;
11419  }
11427  public Builder setMinimizeCore(boolean value) {
11428  bitField1_ |= 0x00800000;
11429  minimizeCore_ = value;
11430  onChanged();
11431  return this;
11432  }
11441  bitField1_ = (bitField1_ & ~0x00800000);
11442  minimizeCore_ = true;
11443  onChanged();
11444  return this;
11445  }
11446 
11447  private boolean findMultipleCores_ = true;
11456  public boolean hasFindMultipleCores() {
11457  return ((bitField1_ & 0x01000000) != 0);
11458  }
11467  public boolean getFindMultipleCores() {
11468  return findMultipleCores_;
11469  }
11478  public Builder setFindMultipleCores(boolean value) {
11479  bitField1_ |= 0x01000000;
11480  findMultipleCores_ = value;
11481  onChanged();
11482  return this;
11483  }
11493  bitField1_ = (bitField1_ & ~0x01000000);
11494  findMultipleCores_ = true;
11495  onChanged();
11496  return this;
11497  }
11498 
11499  private boolean coverOptimization_ = true;
11508  public boolean hasCoverOptimization() {
11509  return ((bitField1_ & 0x02000000) != 0);
11510  }
11519  public boolean getCoverOptimization() {
11520  return coverOptimization_;
11521  }
11530  public Builder setCoverOptimization(boolean value) {
11531  bitField1_ |= 0x02000000;
11532  coverOptimization_ = value;
11533  onChanged();
11534  return this;
11535  }
11545  bitField1_ = (bitField1_ & ~0x02000000);
11546  coverOptimization_ = true;
11547  onChanged();
11548  return this;
11549  }
11550 
11551  private int maxSatAssumptionOrder_ = 0;
11555  public boolean hasMaxSatAssumptionOrder() {
11556  return ((bitField1_ & 0x04000000) != 0);
11557  }
11562  @SuppressWarnings("deprecation")
11565  }
11570  if (value == null) {
11571  throw new NullPointerException();
11572  }
11573  bitField1_ |= 0x04000000;
11574  maxSatAssumptionOrder_ = value.getNumber();
11575  onChanged();
11576  return this;
11577  }
11582  bitField1_ = (bitField1_ & ~0x04000000);
11583  maxSatAssumptionOrder_ = 0;
11584  onChanged();
11585  return this;
11586  }
11587 
11588  private boolean maxSatReverseAssumptionOrder_ ;
11598  return ((bitField1_ & 0x08000000) != 0);
11599  }
11609  return maxSatReverseAssumptionOrder_;
11610  }
11620  bitField1_ |= 0x08000000;
11621  maxSatReverseAssumptionOrder_ = value;
11622  onChanged();
11623  return this;
11624  }
11634  bitField1_ = (bitField1_ & ~0x08000000);
11635  maxSatReverseAssumptionOrder_ = false;
11636  onChanged();
11637  return this;
11638  }
11639 
11640  private int maxSatStratification_ = 1;
11644  public boolean hasMaxSatStratification() {
11645  return ((bitField1_ & 0x10000000) != 0);
11646  }
11651  @SuppressWarnings("deprecation")
11654  }
11659  if (value == null) {
11660  throw new NullPointerException();
11661  }
11662  bitField1_ |= 0x10000000;
11663  maxSatStratification_ = value.getNumber();
11664  onChanged();
11665  return this;
11666  }
11671  bitField1_ = (bitField1_ & ~0x10000000);
11672  maxSatStratification_ = 1;
11673  onChanged();
11674  return this;
11675  }
11676 
11677  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
11693  return ((bitField1_ & 0x20000000) != 0);
11694  }
11710  return usePrecedencesInDisjunctiveConstraint_;
11711  }
11727  bitField1_ |= 0x20000000;
11728  usePrecedencesInDisjunctiveConstraint_ = value;
11729  onChanged();
11730  return this;
11731  }
11747  bitField1_ = (bitField1_ & ~0x20000000);
11748  usePrecedencesInDisjunctiveConstraint_ = true;
11749  onChanged();
11750  return this;
11751  }
11752 
11753  private boolean useOverloadCheckerInCumulativeConstraint_ ;
11767  return ((bitField1_ & 0x40000000) != 0);
11768  }
11782  return useOverloadCheckerInCumulativeConstraint_;
11783  }
11797  bitField1_ |= 0x40000000;
11798  useOverloadCheckerInCumulativeConstraint_ = value;
11799  onChanged();
11800  return this;
11801  }
11815  bitField1_ = (bitField1_ & ~0x40000000);
11816  useOverloadCheckerInCumulativeConstraint_ = false;
11817  onChanged();
11818  return this;
11819  }
11820 
11821  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
11835  return ((bitField1_ & 0x80000000) != 0);
11836  }
11850  return useTimetableEdgeFindingInCumulativeConstraint_;
11851  }
11865  bitField1_ |= 0x80000000;
11866  useTimetableEdgeFindingInCumulativeConstraint_ = value;
11867  onChanged();
11868  return this;
11869  }
11883  bitField1_ = (bitField1_ & ~0x80000000);
11884  useTimetableEdgeFindingInCumulativeConstraint_ = false;
11885  onChanged();
11886  return this;
11887  }
11888 
11889  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
11905  return ((bitField2_ & 0x00000001) != 0);
11906  }
11922  return useDisjunctiveConstraintInCumulativeConstraint_;
11923  }
11939  bitField2_ |= 0x00000001;
11940  useDisjunctiveConstraintInCumulativeConstraint_ = value;
11941  onChanged();
11942  return this;
11943  }
11959  bitField2_ = (bitField2_ & ~0x00000001);
11960  useDisjunctiveConstraintInCumulativeConstraint_ = true;
11961  onChanged();
11962  return this;
11963  }
11964 
11965  private int linearizationLevel_ = 1;
11976  public boolean hasLinearizationLevel() {
11977  return ((bitField2_ & 0x00000002) != 0);
11978  }
11989  public int getLinearizationLevel() {
11990  return linearizationLevel_;
11991  }
12002  public Builder setLinearizationLevel(int value) {
12003  bitField2_ |= 0x00000002;
12004  linearizationLevel_ = value;
12005  onChanged();
12006  return this;
12007  }
12019  bitField2_ = (bitField2_ & ~0x00000002);
12020  linearizationLevel_ = 1;
12021  onChanged();
12022  return this;
12023  }
12024 
12025  private int booleanEncodingLevel_ = 1;
12034  public boolean hasBooleanEncodingLevel() {
12035  return ((bitField2_ & 0x00000004) != 0);
12036  }
12046  return booleanEncodingLevel_;
12047  }
12056  public Builder setBooleanEncodingLevel(int value) {
12057  bitField2_ |= 0x00000004;
12058  booleanEncodingLevel_ = value;
12059  onChanged();
12060  return this;
12061  }
12071  bitField2_ = (bitField2_ & ~0x00000004);
12072  booleanEncodingLevel_ = 1;
12073  onChanged();
12074  return this;
12075  }
12076 
12077  private int maxNumCuts_ = 1000;
12086  public boolean hasMaxNumCuts() {
12087  return ((bitField2_ & 0x00000008) != 0);
12088  }
12097  public int getMaxNumCuts() {
12098  return maxNumCuts_;
12099  }
12108  public Builder setMaxNumCuts(int value) {
12109  bitField2_ |= 0x00000008;
12110  maxNumCuts_ = value;
12111  onChanged();
12112  return this;
12113  }
12123  bitField2_ = (bitField2_ & ~0x00000008);
12124  maxNumCuts_ = 1000;
12125  onChanged();
12126  return this;
12127  }
12128 
12129  private boolean onlyAddCutsAtLevelZero_ ;
12138  public boolean hasOnlyAddCutsAtLevelZero() {
12139  return ((bitField2_ & 0x00000010) != 0);
12140  }
12149  public boolean getOnlyAddCutsAtLevelZero() {
12150  return onlyAddCutsAtLevelZero_;
12151  }
12160  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
12161  bitField2_ |= 0x00000010;
12162  onlyAddCutsAtLevelZero_ = value;
12163  onChanged();
12164  return this;
12165  }
12175  bitField2_ = (bitField2_ & ~0x00000010);
12176  onlyAddCutsAtLevelZero_ = false;
12177  onChanged();
12178  return this;
12179  }
12180 
12181  private boolean addKnapsackCuts_ ;
12191  public boolean hasAddKnapsackCuts() {
12192  return ((bitField2_ & 0x00000020) != 0);
12193  }
12203  public boolean getAddKnapsackCuts() {
12204  return addKnapsackCuts_;
12205  }
12215  public Builder setAddKnapsackCuts(boolean value) {
12216  bitField2_ |= 0x00000020;
12217  addKnapsackCuts_ = value;
12218  onChanged();
12219  return this;
12220  }
12231  bitField2_ = (bitField2_ & ~0x00000020);
12232  addKnapsackCuts_ = false;
12233  onChanged();
12234  return this;
12235  }
12236 
12237  private boolean addCgCuts_ ;
12246  public boolean hasAddCgCuts() {
12247  return ((bitField2_ & 0x00000040) != 0);
12248  }
12257  public boolean getAddCgCuts() {
12258  return addCgCuts_;
12259  }
12268  public Builder setAddCgCuts(boolean value) {
12269  bitField2_ |= 0x00000040;
12270  addCgCuts_ = value;
12271  onChanged();
12272  return this;
12273  }
12283  bitField2_ = (bitField2_ & ~0x00000040);
12284  addCgCuts_ = false;
12285  onChanged();
12286  return this;
12287  }
12288 
12289  private boolean addMirCuts_ = true;
12298  public boolean hasAddMirCuts() {
12299  return ((bitField2_ & 0x00000080) != 0);
12300  }
12309  public boolean getAddMirCuts() {
12310  return addMirCuts_;
12311  }
12320  public Builder setAddMirCuts(boolean value) {
12321  bitField2_ |= 0x00000080;
12322  addMirCuts_ = value;
12323  onChanged();
12324  return this;
12325  }
12335  bitField2_ = (bitField2_ & ~0x00000080);
12336  addMirCuts_ = true;
12337  onChanged();
12338  return this;
12339  }
12340 
12341  private boolean useMirRounding_ = true;
12351  public boolean hasUseMirRounding() {
12352  return ((bitField2_ & 0x00000100) != 0);
12353  }
12363  public boolean getUseMirRounding() {
12364  return useMirRounding_;
12365  }
12375  public Builder setUseMirRounding(boolean value) {
12376  bitField2_ |= 0x00000100;
12377  useMirRounding_ = value;
12378  onChanged();
12379  return this;
12380  }
12391  bitField2_ = (bitField2_ & ~0x00000100);
12392  useMirRounding_ = true;
12393  onChanged();
12394  return this;
12395  }
12396 
12397  private int maxIntegerRoundingScaling_ = 600;
12409  public boolean hasMaxIntegerRoundingScaling() {
12410  return ((bitField2_ & 0x00000200) != 0);
12411  }
12424  return maxIntegerRoundingScaling_;
12425  }
12438  bitField2_ |= 0x00000200;
12439  maxIntegerRoundingScaling_ = value;
12440  onChanged();
12441  return this;
12442  }
12455  bitField2_ = (bitField2_ & ~0x00000200);
12456  maxIntegerRoundingScaling_ = 600;
12457  onChanged();
12458  return this;
12459  }
12460 
12461  private boolean addLpConstraintsLazily_ = true;
12472  public boolean hasAddLpConstraintsLazily() {
12473  return ((bitField2_ & 0x00000400) != 0);
12474  }
12485  public boolean getAddLpConstraintsLazily() {
12486  return addLpConstraintsLazily_;
12487  }
12498  public Builder setAddLpConstraintsLazily(boolean value) {
12499  bitField2_ |= 0x00000400;
12500  addLpConstraintsLazily_ = value;
12501  onChanged();
12502  return this;
12503  }
12515  bitField2_ = (bitField2_ & ~0x00000400);
12516  addLpConstraintsLazily_ = true;
12517  onChanged();
12518  return this;
12519  }
12520 
12521  private double minOrthogonalityForLpConstraints_ ;
12534  return ((bitField2_ & 0x00000800) != 0);
12535  }
12548  return minOrthogonalityForLpConstraints_;
12549  }
12562  bitField2_ |= 0x00000800;
12563  minOrthogonalityForLpConstraints_ = value;
12564  onChanged();
12565  return this;
12566  }
12579  bitField2_ = (bitField2_ & ~0x00000800);
12580  minOrthogonalityForLpConstraints_ = 0D;
12581  onChanged();
12582  return this;
12583  }
12584 
12585  private long maxInactiveCount_ = 1000L;
12594  public boolean hasMaxInactiveCount() {
12595  return ((bitField2_ & 0x00001000) != 0);
12596  }
12605  public long getMaxInactiveCount() {
12606  return maxInactiveCount_;
12607  }
12616  public Builder setMaxInactiveCount(long value) {
12617  bitField2_ |= 0x00001000;
12618  maxInactiveCount_ = value;
12619  onChanged();
12620  return this;
12621  }
12631  bitField2_ = (bitField2_ & ~0x00001000);
12632  maxInactiveCount_ = 1000L;
12633  onChanged();
12634  return this;
12635  }
12636 
12637  private long constraintRemovalBatchSize_ = 100L;
12647  return ((bitField2_ & 0x00002000) != 0);
12648  }
12658  return constraintRemovalBatchSize_;
12659  }
12669  bitField2_ |= 0x00002000;
12670  constraintRemovalBatchSize_ = value;
12671  onChanged();
12672  return this;
12673  }
12683  bitField2_ = (bitField2_ & ~0x00002000);
12684  constraintRemovalBatchSize_ = 100L;
12685  onChanged();
12686  return this;
12687  }
12688 
12689  private int searchBranching_ = 0;
12693  public boolean hasSearchBranching() {
12694  return ((bitField2_ & 0x00004000) != 0);
12695  }
12700  @SuppressWarnings("deprecation")
12702  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
12703  }
12708  if (value == null) {
12709  throw new NullPointerException();
12710  }
12711  bitField2_ |= 0x00004000;
12712  searchBranching_ = value.getNumber();
12713  onChanged();
12714  return this;
12715  }
12720  bitField2_ = (bitField2_ & ~0x00004000);
12721  searchBranching_ = 0;
12722  onChanged();
12723  return this;
12724  }
12725 
12726  private boolean exploitIntegerLpSolution_ = true;
12737  public boolean hasExploitIntegerLpSolution() {
12738  return ((bitField2_ & 0x00008000) != 0);
12739  }
12750  public boolean getExploitIntegerLpSolution() {
12751  return exploitIntegerLpSolution_;
12752  }
12763  public Builder setExploitIntegerLpSolution(boolean value) {
12764  bitField2_ |= 0x00008000;
12765  exploitIntegerLpSolution_ = value;
12766  onChanged();
12767  return this;
12768  }
12780  bitField2_ = (bitField2_ & ~0x00008000);
12781  exploitIntegerLpSolution_ = true;
12782  onChanged();
12783  return this;
12784  }
12785 
12786  private boolean exploitAllLpSolution_ = true;
12796  public boolean hasExploitAllLpSolution() {
12797  return ((bitField2_ & 0x00010000) != 0);
12798  }
12808  public boolean getExploitAllLpSolution() {
12809  return exploitAllLpSolution_;
12810  }
12820  public Builder setExploitAllLpSolution(boolean value) {
12821  bitField2_ |= 0x00010000;
12822  exploitAllLpSolution_ = value;
12823  onChanged();
12824  return this;
12825  }
12836  bitField2_ = (bitField2_ & ~0x00010000);
12837  exploitAllLpSolution_ = true;
12838  onChanged();
12839  return this;
12840  }
12841 
12842  private boolean exploitBestSolution_ ;
12850  public boolean hasExploitBestSolution() {
12851  return ((bitField2_ & 0x00020000) != 0);
12852  }
12860  public boolean getExploitBestSolution() {
12861  return exploitBestSolution_;
12862  }
12870  public Builder setExploitBestSolution(boolean value) {
12871  bitField2_ |= 0x00020000;
12872  exploitBestSolution_ = value;
12873  onChanged();
12874  return this;
12875  }
12884  bitField2_ = (bitField2_ & ~0x00020000);
12885  exploitBestSolution_ = false;
12886  onChanged();
12887  return this;
12888  }
12889 
12890  private boolean exploitObjective_ = true;
12899  public boolean hasExploitObjective() {
12900  return ((bitField2_ & 0x00040000) != 0);
12901  }
12910  public boolean getExploitObjective() {
12911  return exploitObjective_;
12912  }
12921  public Builder setExploitObjective(boolean value) {
12922  bitField2_ |= 0x00040000;
12923  exploitObjective_ = value;
12924  onChanged();
12925  return this;
12926  }
12936  bitField2_ = (bitField2_ & ~0x00040000);
12937  exploitObjective_ = true;
12938  onChanged();
12939  return this;
12940  }
12941 
12942  private long pseudoCostReliabilityThreshold_ = 100L;
12952  return ((bitField2_ & 0x00080000) != 0);
12953  }
12963  return pseudoCostReliabilityThreshold_;
12964  }
12974  bitField2_ |= 0x00080000;
12975  pseudoCostReliabilityThreshold_ = value;
12976  onChanged();
12977  return this;
12978  }
12988  bitField2_ = (bitField2_ & ~0x00080000);
12989  pseudoCostReliabilityThreshold_ = 100L;
12990  onChanged();
12991  return this;
12992  }
12993 
12994  private boolean optimizeWithCore_ ;
13005  public boolean hasOptimizeWithCore() {
13006  return ((bitField2_ & 0x00100000) != 0);
13007  }
13018  public boolean getOptimizeWithCore() {
13019  return optimizeWithCore_;
13020  }
13031  public Builder setOptimizeWithCore(boolean value) {
13032  bitField2_ |= 0x00100000;
13033  optimizeWithCore_ = value;
13034  onChanged();
13035  return this;
13036  }
13048  bitField2_ = (bitField2_ & ~0x00100000);
13049  optimizeWithCore_ = false;
13050  onChanged();
13051  return this;
13052  }
13053 
13054  private int binarySearchNumConflicts_ = -1;
13065  public boolean hasBinarySearchNumConflicts() {
13066  return ((bitField2_ & 0x00200000) != 0);
13067  }
13079  return binarySearchNumConflicts_;
13080  }
13092  bitField2_ |= 0x00200000;
13093  binarySearchNumConflicts_ = value;
13094  onChanged();
13095  return this;
13096  }
13108  bitField2_ = (bitField2_ & ~0x00200000);
13109  binarySearchNumConflicts_ = -1;
13110  onChanged();
13111  return this;
13112  }
13113 
13114  private boolean optimizeWithMaxHs_ ;
13127  public boolean hasOptimizeWithMaxHs() {
13128  return ((bitField2_ & 0x00400000) != 0);
13129  }
13142  public boolean getOptimizeWithMaxHs() {
13143  return optimizeWithMaxHs_;
13144  }
13157  public Builder setOptimizeWithMaxHs(boolean value) {
13158  bitField2_ |= 0x00400000;
13159  optimizeWithMaxHs_ = value;
13160  onChanged();
13161  return this;
13162  }
13176  bitField2_ = (bitField2_ & ~0x00400000);
13177  optimizeWithMaxHs_ = false;
13178  onChanged();
13179  return this;
13180  }
13181 
13182  private boolean cpModelPresolve_ = true;
13190  public boolean hasCpModelPresolve() {
13191  return ((bitField2_ & 0x00800000) != 0);
13192  }
13200  public boolean getCpModelPresolve() {
13201  return cpModelPresolve_;
13202  }
13210  public Builder setCpModelPresolve(boolean value) {
13211  bitField2_ |= 0x00800000;
13212  cpModelPresolve_ = value;
13213  onChanged();
13214  return this;
13215  }
13224  bitField2_ = (bitField2_ & ~0x00800000);
13225  cpModelPresolve_ = true;
13226  onChanged();
13227  return this;
13228  }
13229 
13230  private int cpModelProbingLevel_ = 2;
13238  public boolean hasCpModelProbingLevel() {
13239  return ((bitField2_ & 0x01000000) != 0);
13240  }
13248  public int getCpModelProbingLevel() {
13249  return cpModelProbingLevel_;
13250  }
13258  public Builder setCpModelProbingLevel(int value) {
13259  bitField2_ |= 0x01000000;
13260  cpModelProbingLevel_ = value;
13261  onChanged();
13262  return this;
13263  }
13272  bitField2_ = (bitField2_ & ~0x01000000);
13273  cpModelProbingLevel_ = 2;
13274  onChanged();
13275  return this;
13276  }
13277 
13278  private boolean cpModelUseSatPresolve_ = true;
13286  public boolean hasCpModelUseSatPresolve() {
13287  return ((bitField2_ & 0x02000000) != 0);
13288  }
13296  public boolean getCpModelUseSatPresolve() {
13297  return cpModelUseSatPresolve_;
13298  }
13306  public Builder setCpModelUseSatPresolve(boolean value) {
13307  bitField2_ |= 0x02000000;
13308  cpModelUseSatPresolve_ = value;
13309  onChanged();
13310  return this;
13311  }
13320  bitField2_ = (bitField2_ & ~0x02000000);
13321  cpModelUseSatPresolve_ = true;
13322  onChanged();
13323  return this;
13324  }
13325 
13326  private boolean enumerateAllSolutions_ ;
13339  public boolean hasEnumerateAllSolutions() {
13340  return ((bitField2_ & 0x04000000) != 0);
13341  }
13354  public boolean getEnumerateAllSolutions() {
13355  return enumerateAllSolutions_;
13356  }
13369  public Builder setEnumerateAllSolutions(boolean value) {
13370  bitField2_ |= 0x04000000;
13371  enumerateAllSolutions_ = value;
13372  onChanged();
13373  return this;
13374  }
13388  bitField2_ = (bitField2_ & ~0x04000000);
13389  enumerateAllSolutions_ = false;
13390  onChanged();
13391  return this;
13392  }
13393 
13394  private boolean fillTightenedDomainsInResponse_ ;
13407  return ((bitField2_ & 0x08000000) != 0);
13408  }
13421  return fillTightenedDomainsInResponse_;
13422  }
13435  bitField2_ |= 0x08000000;
13436  fillTightenedDomainsInResponse_ = value;
13437  onChanged();
13438  return this;
13439  }
13452  bitField2_ = (bitField2_ & ~0x08000000);
13453  fillTightenedDomainsInResponse_ = false;
13454  onChanged();
13455  return this;
13456  }
13457 
13458  private boolean instantiateAllVariables_ = true;
13467  public boolean hasInstantiateAllVariables() {
13468  return ((bitField2_ & 0x10000000) != 0);
13469  }
13478  public boolean getInstantiateAllVariables() {
13479  return instantiateAllVariables_;
13480  }
13489  public Builder setInstantiateAllVariables(boolean value) {
13490  bitField2_ |= 0x10000000;
13491  instantiateAllVariables_ = value;
13492  onChanged();
13493  return this;
13494  }
13504  bitField2_ = (bitField2_ & ~0x10000000);
13505  instantiateAllVariables_ = true;
13506  onChanged();
13507  return this;
13508  }
13509 
13510  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
13522  return ((bitField2_ & 0x20000000) != 0);
13523  }
13535  return autoDetectGreaterThanAtLeastOneOf_;
13536  }
13548  bitField2_ |= 0x20000000;
13549  autoDetectGreaterThanAtLeastOneOf_ = value;
13550  onChanged();
13551  return this;
13552  }
13564  bitField2_ = (bitField2_ & ~0x20000000);
13565  autoDetectGreaterThanAtLeastOneOf_ = true;
13566  onChanged();
13567  return this;
13568  }
13569 
13570  private boolean stopAfterFirstSolution_ ;
13578  public boolean hasStopAfterFirstSolution() {
13579  return ((bitField2_ & 0x40000000) != 0);
13580  }
13588  public boolean getStopAfterFirstSolution() {
13589  return stopAfterFirstSolution_;
13590  }
13598  public Builder setStopAfterFirstSolution(boolean value) {
13599  bitField2_ |= 0x40000000;
13600  stopAfterFirstSolution_ = value;
13601  onChanged();
13602  return this;
13603  }
13612  bitField2_ = (bitField2_ & ~0x40000000);
13613  stopAfterFirstSolution_ = false;
13614  onChanged();
13615  return this;
13616  }
13617 
13618  private int numSearchWorkers_ = 1;
13627  public boolean hasNumSearchWorkers() {
13628  return ((bitField2_ & 0x80000000) != 0);
13629  }
13638  public int getNumSearchWorkers() {
13639  return numSearchWorkers_;
13640  }
13649  public Builder setNumSearchWorkers(int value) {
13650  bitField2_ |= 0x80000000;
13651  numSearchWorkers_ = value;
13652  onChanged();
13653  return this;
13654  }
13664  bitField2_ = (bitField2_ & ~0x80000000);
13665  numSearchWorkers_ = 1;
13666  onChanged();
13667  return this;
13668  }
13669 
13670  private boolean interleaveSearch_ ;
13681  public boolean hasInterleaveSearch() {
13682  return ((bitField3_ & 0x00000001) != 0);
13683  }
13694  public boolean getInterleaveSearch() {
13695  return interleaveSearch_;
13696  }
13707  public Builder setInterleaveSearch(boolean value) {
13708  bitField3_ |= 0x00000001;
13709  interleaveSearch_ = value;
13710  onChanged();
13711  return this;
13712  }
13724  bitField3_ = (bitField3_ & ~0x00000001);
13725  interleaveSearch_ = false;
13726  onChanged();
13727  return this;
13728  }
13729 
13730  private boolean deterministicParallelSearch_ ;
13741  return ((bitField3_ & 0x00000002) != 0);
13742  }
13753  return deterministicParallelSearch_;
13754  }
13764  public Builder setDeterministicParallelSearch(boolean value) {
13765  bitField3_ |= 0x00000002;
13766  deterministicParallelSearch_ = value;
13767  onChanged();
13768  return this;
13769  }
13780  bitField3_ = (bitField3_ & ~0x00000002);
13781  deterministicParallelSearch_ = false;
13782  onChanged();
13783  return this;
13784  }
13785 
13786  private boolean shareObjectiveBounds_ = true;
13794  public boolean hasShareObjectiveBounds() {
13795  return ((bitField3_ & 0x00000004) != 0);
13796  }
13804  public boolean getShareObjectiveBounds() {
13805  return shareObjectiveBounds_;
13806  }
13814  public Builder setShareObjectiveBounds(boolean value) {
13815  bitField3_ |= 0x00000004;
13816  shareObjectiveBounds_ = value;
13817  onChanged();
13818  return this;
13819  }
13828  bitField3_ = (bitField3_ & ~0x00000004);
13829  shareObjectiveBounds_ = true;
13830  onChanged();
13831  return this;
13832  }
13833 
13834  private boolean shareLevelZeroBounds_ = true;
13842  public boolean hasShareLevelZeroBounds() {
13843  return ((bitField3_ & 0x00000008) != 0);
13844  }
13852  public boolean getShareLevelZeroBounds() {
13853  return shareLevelZeroBounds_;
13854  }
13862  public Builder setShareLevelZeroBounds(boolean value) {
13863  bitField3_ |= 0x00000008;
13864  shareLevelZeroBounds_ = value;
13865  onChanged();
13866  return this;
13867  }
13876  bitField3_ = (bitField3_ & ~0x00000008);
13877  shareLevelZeroBounds_ = true;
13878  onChanged();
13879  return this;
13880  }
13881 
13882  private boolean useLnsOnly_ ;
13890  public boolean hasUseLnsOnly() {
13891  return ((bitField3_ & 0x00000010) != 0);
13892  }
13900  public boolean getUseLnsOnly() {
13901  return useLnsOnly_;
13902  }
13910  public Builder setUseLnsOnly(boolean value) {
13911  bitField3_ |= 0x00000010;
13912  useLnsOnly_ = value;
13913  onChanged();
13914  return this;
13915  }
13924  bitField3_ = (bitField3_ & ~0x00000010);
13925  useLnsOnly_ = false;
13926  onChanged();
13927  return this;
13928  }
13929 
13930  private boolean lnsFocusOnDecisionVariables_ ;
13935  return ((bitField3_ & 0x00000020) != 0);
13936  }
13941  return lnsFocusOnDecisionVariables_;
13942  }
13946  public Builder setLnsFocusOnDecisionVariables(boolean value) {
13947  bitField3_ |= 0x00000020;
13948  lnsFocusOnDecisionVariables_ = value;
13949  onChanged();
13950  return this;
13951  }
13956  bitField3_ = (bitField3_ & ~0x00000020);
13957  lnsFocusOnDecisionVariables_ = false;
13958  onChanged();
13959  return this;
13960  }
13961 
13962  private boolean useRinsLns_ ;
13970  public boolean hasUseRinsLns() {
13971  return ((bitField3_ & 0x00000040) != 0);
13972  }
13980  public boolean getUseRinsLns() {
13981  return useRinsLns_;
13982  }
13990  public Builder setUseRinsLns(boolean value) {
13991  bitField3_ |= 0x00000040;
13992  useRinsLns_ = value;
13993  onChanged();
13994  return this;
13995  }
14004  bitField3_ = (bitField3_ & ~0x00000040);
14005  useRinsLns_ = false;
14006  onChanged();
14007  return this;
14008  }
14009 
14010  private boolean randomizeSearch_ ;
14018  public boolean hasRandomizeSearch() {
14019  return ((bitField3_ & 0x00000080) != 0);
14020  }
14028  public boolean getRandomizeSearch() {
14029  return randomizeSearch_;
14030  }
14038  public Builder setRandomizeSearch(boolean value) {
14039  bitField3_ |= 0x00000080;
14040  randomizeSearch_ = value;
14041  onChanged();
14042  return this;
14043  }
14052  bitField3_ = (bitField3_ & ~0x00000080);
14053  randomizeSearch_ = false;
14054  onChanged();
14055  return this;
14056  }
14057 
14058  private long searchRandomizationTolerance_ ;
14073  return ((bitField3_ & 0x00000100) != 0);
14074  }
14089  return searchRandomizationTolerance_;
14090  }
14105  bitField3_ |= 0x00000100;
14106  searchRandomizationTolerance_ = value;
14107  onChanged();
14108  return this;
14109  }
14124  bitField3_ = (bitField3_ & ~0x00000100);
14125  searchRandomizationTolerance_ = 0L;
14126  onChanged();
14127  return this;
14128  }
14129 
14130  private boolean useOptionalVariables_ = true;
14140  public boolean hasUseOptionalVariables() {
14141  return ((bitField3_ & 0x00000200) != 0);
14142  }
14152  public boolean getUseOptionalVariables() {
14153  return useOptionalVariables_;
14154  }
14164  public Builder setUseOptionalVariables(boolean value) {
14165  bitField3_ |= 0x00000200;
14166  useOptionalVariables_ = value;
14167  onChanged();
14168  return this;
14169  }
14180  bitField3_ = (bitField3_ & ~0x00000200);
14181  useOptionalVariables_ = true;
14182  onChanged();
14183  return this;
14184  }
14185 
14186  private boolean useExactLpReason_ = true;
14197  public boolean hasUseExactLpReason() {
14198  return ((bitField3_ & 0x00000400) != 0);
14199  }
14210  public boolean getUseExactLpReason() {
14211  return useExactLpReason_;
14212  }
14223  public Builder setUseExactLpReason(boolean value) {
14224  bitField3_ |= 0x00000400;
14225  useExactLpReason_ = value;
14226  onChanged();
14227  return this;
14228  }
14240  bitField3_ = (bitField3_ & ~0x00000400);
14241  useExactLpReason_ = true;
14242  onChanged();
14243  return this;
14244  }
14245 
14246  private boolean useCombinedNoOverlap_ ;
14256  public boolean hasUseCombinedNoOverlap() {
14257  return ((bitField3_ & 0x00000800) != 0);
14258  }
14268  public boolean getUseCombinedNoOverlap() {
14269  return useCombinedNoOverlap_;
14270  }
14280  public Builder setUseCombinedNoOverlap(boolean value) {
14281  bitField3_ |= 0x00000800;
14282  useCombinedNoOverlap_ = value;
14283  onChanged();
14284  return this;
14285  }
14296  bitField3_ = (bitField3_ & ~0x00000800);
14297  useCombinedNoOverlap_ = false;
14298  onChanged();
14299  return this;
14300  }
14301 
14302  private double mipMaxBound_ = 10000000D;
14312  public boolean hasMipMaxBound() {
14313  return ((bitField3_ & 0x00001000) != 0);
14314  }
14324  public double getMipMaxBound() {
14325  return mipMaxBound_;
14326  }
14336  public Builder setMipMaxBound(double value) {
14337  bitField3_ |= 0x00001000;
14338  mipMaxBound_ = value;
14339  onChanged();
14340  return this;
14341  }
14352  bitField3_ = (bitField3_ & ~0x00001000);
14353  mipMaxBound_ = 10000000D;
14354  onChanged();
14355  return this;
14356  }
14357 
14358  private double mipVarScaling_ = 1D;
14368  public boolean hasMipVarScaling() {
14369  return ((bitField3_ & 0x00002000) != 0);
14370  }
14380  public double getMipVarScaling() {
14381  return mipVarScaling_;
14382  }
14392  public Builder setMipVarScaling(double value) {
14393  bitField3_ |= 0x00002000;
14394  mipVarScaling_ = value;
14395  onChanged();
14396  return this;
14397  }
14408  bitField3_ = (bitField3_ & ~0x00002000);
14409  mipVarScaling_ = 1D;
14410  onChanged();
14411  return this;
14412  }
14413 
14414  private double mipWantedPrecision_ = 1e-06D;
14430  public boolean hasMipWantedPrecision() {
14431  return ((bitField3_ & 0x00004000) != 0);
14432  }
14448  public double getMipWantedPrecision() {
14449  return mipWantedPrecision_;
14450  }
14466  public Builder setMipWantedPrecision(double value) {
14467  bitField3_ |= 0x00004000;
14468  mipWantedPrecision_ = value;
14469  onChanged();
14470  return this;
14471  }
14488  bitField3_ = (bitField3_ & ~0x00004000);
14489  mipWantedPrecision_ = 1e-06D;
14490  onChanged();
14491  return this;
14492  }
14493 
14494  private int mipMaxActivityExponent_ = 53;
14508  public boolean hasMipMaxActivityExponent() {
14509  return ((bitField3_ & 0x00008000) != 0);
14510  }
14525  return mipMaxActivityExponent_;
14526  }
14541  bitField3_ |= 0x00008000;
14542  mipMaxActivityExponent_ = value;
14543  onChanged();
14544  return this;
14545  }
14560  bitField3_ = (bitField3_ & ~0x00008000);
14561  mipMaxActivityExponent_ = 53;
14562  onChanged();
14563  return this;
14564  }
14565 
14566  private double mipCheckPrecision_ = 0.0001D;
14577  public boolean hasMipCheckPrecision() {
14578  return ((bitField3_ & 0x00010000) != 0);
14579  }
14590  public double getMipCheckPrecision() {
14591  return mipCheckPrecision_;
14592  }
14603  public Builder setMipCheckPrecision(double value) {
14604  bitField3_ |= 0x00010000;
14605  mipCheckPrecision_ = value;
14606  onChanged();
14607  return this;
14608  }
14620  bitField3_ = (bitField3_ & ~0x00010000);
14621  mipCheckPrecision_ = 0.0001D;
14622  onChanged();
14623  return this;
14624  }
14625 
14626  private boolean catchSigintSignal_ = true;
14636  public boolean hasCatchSigintSignal() {
14637  return ((bitField3_ & 0x00020000) != 0);
14638  }
14648  public boolean getCatchSigintSignal() {
14649  return catchSigintSignal_;
14650  }
14660  public Builder setCatchSigintSignal(boolean value) {
14661  bitField3_ |= 0x00020000;
14662  catchSigintSignal_ = value;
14663  onChanged();
14664  return this;
14665  }
14676  bitField3_ = (bitField3_ & ~0x00020000);
14677  catchSigintSignal_ = true;
14678  onChanged();
14679  return this;
14680  }
14681  @java.lang.Override
14683  final com.google.protobuf.UnknownFieldSet unknownFields) {
14684  return super.setUnknownFields(unknownFields);
14685  }
14686 
14687  @java.lang.Override
14689  final com.google.protobuf.UnknownFieldSet unknownFields) {
14690  return super.mergeUnknownFields(unknownFields);
14691  }
14692 
14693 
14694  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
14695  }
14696 
14697  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
14698  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
14699  static {
14700  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
14701  }
14702 
14704  return DEFAULT_INSTANCE;
14705  }
14706 
14707  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
14708  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
14709  @java.lang.Override
14710  public SatParameters parsePartialFrom(
14711  com.google.protobuf.CodedInputStream input,
14712  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14713  throws com.google.protobuf.InvalidProtocolBufferException {
14714  return new SatParameters(input, extensionRegistry);
14715  }
14716  };
14717 
14718  public static com.google.protobuf.Parser<SatParameters> parser() {
14719  return PARSER;
14720  }
14721 
14722  @java.lang.Override
14723  public com.google.protobuf.Parser<SatParameters> getParserForType() {
14724  return PARSER;
14725  }
14726 
14727  @java.lang.Override
14729  return DEFAULT_INSTANCE;
14730  }
14731 
14732 }
14733 
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];