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  shareObjectiveBounds_ = true;
97  shareLevelZeroBounds_ = true;
98  lnsNumThreads_ = 1;
99  lnsIsDeterministic_ = true;
100  useOptionalVariables_ = true;
101  useExactLpReason_ = true;
102  mipMaxBound_ = 10000000D;
103  mipVarScaling_ = 1D;
104  mipWantedPrecision_ = 1e-06D;
105  mipMaxActivityExponent_ = 53;
106  mipCheckPrecision_ = 0.0001D;
107  catchSigintSignal_ = true;
108  }
109 
110  @java.lang.Override
111  @SuppressWarnings({"unused"})
112  protected java.lang.Object newInstance(
113  UnusedPrivateParameter unused) {
114  return new SatParameters();
115  }
116 
117  @java.lang.Override
118  public final com.google.protobuf.UnknownFieldSet
120  return this.unknownFields;
121  }
122  private SatParameters(
123  com.google.protobuf.CodedInputStream input,
124  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
125  throws com.google.protobuf.InvalidProtocolBufferException {
126  this();
127  if (extensionRegistry == null) {
128  throw new java.lang.NullPointerException();
129  }
130  int mutable_bitField0_ = 0;
131  int mutable_bitField1_ = 0;
132  int mutable_bitField2_ = 0;
133  int mutable_bitField3_ = 0;
134  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
135  com.google.protobuf.UnknownFieldSet.newBuilder();
136  try {
137  boolean done = false;
138  while (!done) {
139  int tag = input.readTag();
140  switch (tag) {
141  case 0:
142  done = true;
143  break;
144  case 8: {
145  int rawValue = input.readEnum();
146  @SuppressWarnings("deprecation")
147  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
148  if (value == null) {
149  unknownFields.mergeVarintField(1, rawValue);
150  } else {
151  bitField0_ |= 0x00000001;
152  preferredVariableOrder_ = rawValue;
153  }
154  break;
155  }
156  case 16: {
157  int rawValue = input.readEnum();
158  @SuppressWarnings("deprecation")
159  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
160  if (value == null) {
161  unknownFields.mergeVarintField(2, rawValue);
162  } else {
163  bitField0_ |= 0x00000002;
164  initialPolarity_ = rawValue;
165  }
166  break;
167  }
168  case 32: {
169  int rawValue = input.readEnum();
170  @SuppressWarnings("deprecation")
171  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
172  if (value == null) {
173  unknownFields.mergeVarintField(4, rawValue);
174  } else {
175  bitField0_ |= 0x00000100;
176  minimizationAlgorithm_ = rawValue;
177  }
178  break;
179  }
180  case 88: {
181  bitField0_ |= 0x00000800;
182  clauseCleanupPeriod_ = input.readInt32();
183  break;
184  }
185  case 104: {
186  bitField0_ |= 0x00001000;
187  clauseCleanupTarget_ = input.readInt32();
188  break;
189  }
190  case 121: {
191  bitField0_ |= 0x00100000;
192  variableActivityDecay_ = input.readDouble();
193  break;
194  }
195  case 129: {
196  bitField0_ |= 0x00200000;
197  maxVariableActivityValue_ = input.readDouble();
198  break;
199  }
200  case 137: {
201  bitField0_ |= 0x02000000;
202  clauseActivityDecay_ = input.readDouble();
203  break;
204  }
205  case 145: {
206  bitField0_ |= 0x04000000;
207  maxClauseActivityValue_ = input.readDouble();
208  break;
209  }
210  case 177: {
211  bitField0_ |= 0x00400000;
212  glucoseMaxDecay_ = input.readDouble();
213  break;
214  }
215  case 185: {
216  bitField0_ |= 0x00800000;
217  glucoseDecayIncrement_ = input.readDouble();
218  break;
219  }
220  case 192: {
221  bitField0_ |= 0x01000000;
222  glucoseDecayIncrementPeriod_ = input.readInt32();
223  break;
224  }
225  case 240: {
226  bitField0_ |= 0x10000000;
227  restartPeriod_ = input.readInt32();
228  break;
229  }
230  case 248: {
231  bitField1_ |= 0x00000400;
232  randomSeed_ = input.readInt32();
233  break;
234  }
235  case 257: {
236  bitField0_ |= 0x00000010;
237  randomBranchesRatio_ = input.readDouble();
238  break;
239  }
240  case 264: {
241  bitField1_ |= 0x00000200;
242  treatBinaryClausesSeparately_ = input.readBool();
243  break;
244  }
245  case 272: {
246  int rawValue = input.readEnum();
247  @SuppressWarnings("deprecation")
248  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
249  if (value == null) {
250  unknownFields.mergeVarintField(34, rawValue);
251  } else {
252  bitField0_ |= 0x00000200;
253  binaryMinimizationAlgorithm_ = rawValue;
254  }
255  break;
256  }
257  case 280: {
258  bitField1_ |= 0x00200000;
259  useOptimizationHints_ = input.readBool();
260  break;
261  }
262  case 289: {
263  bitField1_ |= 0x00000020;
264  maxTimeInSeconds_ = input.readDouble();
265  break;
266  }
267  case 296: {
268  bitField1_ |= 0x00000080;
269  maxNumberOfConflicts_ = input.readInt64();
270  break;
271  }
272  case 320: {
273  bitField1_ |= 0x00000100;
274  maxMemoryInMb_ = input.readInt64();
275  break;
276  }
277  case 328: {
278  bitField1_ |= 0x00000800;
279  logSearchProgress_ = input.readBool();
280  break;
281  }
282  case 344: {
283  bitField1_ |= 0x00001000;
284  usePbResolution_ = input.readBool();
285  break;
286  }
287  case 352: {
288  bitField0_ |= 0x00000004;
289  usePhaseSaving_ = input.readBool();
290  break;
291  }
292  case 361: {
293  bitField0_ |= 0x00000008;
294  randomPolarityRatio_ = input.readDouble();
295  break;
296  }
297  case 368: {
298  bitField0_ |= 0x00010000;
299  pbCleanupIncrement_ = input.readInt32();
300  break;
301  }
302  case 377: {
303  bitField0_ |= 0x00020000;
304  pbCleanupRatio_ = input.readDouble();
305  break;
306  }
307  case 384: {
308  bitField1_ |= 0x00002000;
309  minimizeReductionDuringPbResolution_ = input.readBool();
310  break;
311  }
312  case 392: {
313  bitField1_ |= 0x00004000;
314  countAssumptionLevelsInLbd_ = input.readBool();
315  break;
316  }
317  case 400: {
318  bitField1_ |= 0x00400000;
319  minimizeCore_ = input.readBool();
320  break;
321  }
322  case 408: {
323  int rawValue = input.readEnum();
324  @SuppressWarnings("deprecation")
325  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
326  if (value == null) {
327  unknownFields.mergeVarintField(51, rawValue);
328  } else {
329  bitField1_ |= 0x02000000;
330  maxSatAssumptionOrder_ = rawValue;
331  }
332  break;
333  }
334  case 416: {
335  bitField1_ |= 0x04000000;
336  maxSatReverseAssumptionOrder_ = input.readBool();
337  break;
338  }
339  case 424: {
340  int rawValue = input.readEnum();
341  @SuppressWarnings("deprecation")
342  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
343  if (value == null) {
344  unknownFields.mergeVarintField(53, rawValue);
345  } else {
346  bitField1_ |= 0x08000000;
347  maxSatStratification_ = rawValue;
348  }
349  break;
350  }
351  case 432: {
352  bitField1_ |= 0x00008000;
353  presolveBveThreshold_ = input.readInt32();
354  break;
355  }
356  case 440: {
357  bitField1_ |= 0x00010000;
358  presolveBveClauseWeight_ = input.readInt32();
359  break;
360  }
361  case 448: {
362  bitField0_ |= 0x00000400;
363  subsumptionDuringConflictAnalysis_ = input.readBool();
364  break;
365  }
366  case 457: {
367  bitField1_ |= 0x00020000;
368  presolveProbingDeterministicTimeLimit_ = input.readDouble();
369  break;
370  }
371  case 464: {
372  int rawValue = input.readEnum();
373  @SuppressWarnings("deprecation")
374  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
375  if (value == null) {
376  unknownFields.mergeVarintField(58, rawValue);
377  } else {
378  bitField0_ |= 0x00002000;
379  clauseCleanupProtection_ = rawValue;
380  }
381  break;
382  }
383  case 472: {
384  bitField0_ |= 0x00004000;
385  clauseCleanupLbdBound_ = input.readInt32();
386  break;
387  }
388  case 480: {
389  int rawValue = input.readEnum();
390  @SuppressWarnings("deprecation")
391  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
392  if (value == null) {
393  unknownFields.mergeVarintField(60, rawValue);
394  } else {
395  bitField0_ |= 0x00008000;
396  clauseCleanupOrdering_ = rawValue;
397  }
398  break;
399  }
400  case 488: {
401  int rawValue = input.readEnum();
402  @SuppressWarnings("deprecation")
403  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
404  if (value == null) {
405  unknownFields.mergeVarintField(61, rawValue);
406  } else {
407  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
408  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
409  mutable_bitField0_ |= 0x08000000;
410  }
411  restartAlgorithms_.add(rawValue);
412  }
413  break;
414  }
415  case 490: {
416  int length = input.readRawVarint32();
417  int oldLimit = input.pushLimit(length);
418  while(input.getBytesUntilLimit() > 0) {
419  int rawValue = input.readEnum();
420  @SuppressWarnings("deprecation")
421  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
422  if (value == null) {
423  unknownFields.mergeVarintField(61, rawValue);
424  } else {
425  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
426  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
427  mutable_bitField0_ |= 0x08000000;
428  }
429  restartAlgorithms_.add(rawValue);
430  }
431  }
432  input.popLimit(oldLimit);
433  break;
434  }
435  case 496: {
436  bitField0_ |= 0x20000000;
437  restartRunningWindowSize_ = input.readInt32();
438  break;
439  }
440  case 505: {
441  bitField0_ |= 0x40000000;
442  restartDlAverageRatio_ = input.readDouble();
443  break;
444  }
445  case 512: {
446  bitField1_ |= 0x00000001;
447  useBlockingRestart_ = input.readBool();
448  break;
449  }
450  case 520: {
451  bitField1_ |= 0x00000002;
452  blockingRestartWindowSize_ = input.readInt32();
453  break;
454  }
455  case 529: {
456  bitField1_ |= 0x00000004;
457  blockingRestartMultiplier_ = input.readDouble();
458  break;
459  }
460  case 537: {
461  bitField1_ |= 0x00000040;
462  maxDeterministicTime_ = input.readDouble();
463  break;
464  }
465  case 544: {
466  bitField1_ |= 0x00000008;
467  numConflictsBeforeStrategyChanges_ = input.readInt32();
468  break;
469  }
470  case 553: {
471  bitField1_ |= 0x00000010;
472  strategyChangeIncreaseRatio_ = input.readDouble();
473  break;
474  }
475  case 562: {
476  com.google.protobuf.ByteString bs = input.readBytes();
477  bitField0_ |= 0x08000000;
478  defaultRestartAlgorithms_ = bs;
479  break;
480  }
481  case 569: {
482  bitField0_ |= 0x80000000;
483  restartLbdAverageRatio_ = input.readDouble();
484  break;
485  }
486  case 576: {
487  bitField1_ |= 0x00080000;
488  presolveUseBva_ = input.readBool();
489  break;
490  }
491  case 584: {
492  bitField1_ |= 0x00100000;
493  presolveBvaThreshold_ = input.readInt32();
494  break;
495  }
496  case 592: {
497  bitField1_ |= 0x10000000;
498  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
499  break;
500  }
501  case 600: {
502  bitField0_ |= 0x00000020;
503  useErwaHeuristic_ = input.readBool();
504  break;
505  }
506  case 609: {
507  bitField0_ |= 0x00000040;
508  initialVariablesActivity_ = input.readDouble();
509  break;
510  }
511  case 616: {
512  bitField0_ |= 0x00000080;
513  alsoBumpVariablesInConflictReasons_ = input.readBool();
514  break;
515  }
516  case 624: {
517  bitField1_ |= 0x20000000;
518  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
519  break;
520  }
521  case 632: {
522  bitField1_ |= 0x40000000;
523  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
524  break;
525  }
526  case 640: {
527  bitField1_ |= 0x80000000;
528  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
529  break;
530  }
531  case 656: {
532  int rawValue = input.readEnum();
533  @SuppressWarnings("deprecation")
534  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
535  if (value == null) {
536  unknownFields.mergeVarintField(82, rawValue);
537  } else {
538  bitField2_ |= 0x00002000;
539  searchBranching_ = rawValue;
540  }
541  break;
542  }
543  case 664: {
544  bitField2_ |= 0x00080000;
545  optimizeWithCore_ = input.readBool();
546  break;
547  }
548  case 672: {
549  bitField1_ |= 0x00800000;
550  findMultipleCores_ = input.readBool();
551  break;
552  }
553  case 680: {
554  bitField2_ |= 0x00200000;
555  optimizeWithMaxHs_ = input.readBool();
556  break;
557  }
558  case 688: {
559  bitField2_ |= 0x00400000;
560  cpModelPresolve_ = input.readBool();
561  break;
562  }
563  case 696: {
564  bitField2_ |= 0x02000000;
565  enumerateAllSolutions_ = input.readBool();
566  break;
567  }
568  case 704: {
569  bitField1_ |= 0x00040000;
570  presolveBlockedClause_ = input.readBool();
571  break;
572  }
573  case 712: {
574  bitField1_ |= 0x01000000;
575  coverOptimization_ = input.readBool();
576  break;
577  }
578  case 720: {
579  bitField2_ |= 0x00000001;
580  linearizationLevel_ = input.readInt32();
581  break;
582  }
583  case 728: {
584  bitField2_ |= 0x00000004;
585  maxNumCuts_ = input.readInt32();
586  break;
587  }
588  case 736: {
589  bitField2_ |= 0x00000008;
590  onlyAddCutsAtLevelZero_ = input.readBool();
591  break;
592  }
593  case 744: {
594  bitField2_ |= 0x01000000;
595  cpModelUseSatPresolve_ = input.readBool();
596  break;
597  }
598  case 752: {
599  bitField2_ |= 0x00004000;
600  exploitIntegerLpSolution_ = input.readBool();
601  break;
602  }
603  case 760: {
604  bitField2_ |= 0x10000000;
605  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
606  break;
607  }
608  case 768: {
609  bitField0_ |= 0x00040000;
610  minimizeWithPropagationRestartPeriod_ = input.readInt32();
611  break;
612  }
613  case 776: {
614  bitField0_ |= 0x00080000;
615  minimizeWithPropagationNumDecisions_ = input.readInt32();
616  break;
617  }
618  case 784: {
619  bitField2_ |= 0x20000000;
620  stopAfterFirstSolution_ = input.readBool();
621  break;
622  }
623  case 792: {
624  bitField2_ |= 0x00100000;
625  binarySearchNumConflicts_ = input.readInt32();
626  break;
627  }
628  case 800: {
629  bitField2_ |= 0x40000000;
630  numSearchWorkers_ = input.readInt32();
631  break;
632  }
633  case 808: {
634  bitField3_ |= 0x00000002;
635  useLns_ = input.readBool();
636  break;
637  }
638  case 816: {
639  bitField3_ |= 0x00000004;
640  lnsNumThreads_ = input.readInt32();
641  break;
642  }
643  case 824: {
644  bitField3_ |= 0x00000040;
645  randomizeSearch_ = input.readBool();
646  break;
647  }
648  case 832: {
649  bitField3_ |= 0x00000080;
650  searchRandomizationTolerance_ = input.readInt64();
651  break;
652  }
653  case 840: {
654  bitField3_ |= 0x00000010;
655  lnsFocusOnDecisionVariables_ = input.readBool();
656  break;
657  }
658  case 848: {
659  bitField2_ |= 0x08000000;
660  instantiateAllVariables_ = input.readBool();
661  break;
662  }
663  case 856: {
664  bitField2_ |= 0x00000002;
665  booleanEncodingLevel_ = input.readInt32();
666  break;
667  }
668  case 864: {
669  bitField3_ |= 0x00000100;
670  useOptionalVariables_ = input.readBool();
671  break;
672  }
673  case 872: {
674  bitField3_ |= 0x00000200;
675  useExactLpReason_ = input.readBool();
676  break;
677  }
678  case 880: {
679  bitField2_ |= 0x00800000;
680  cpModelProbingLevel_ = input.readInt32();
681  break;
682  }
683  case 888: {
684  bitField2_ |= 0x00000010;
685  addKnapsackCuts_ = input.readBool();
686  break;
687  }
688  case 896: {
689  bitField2_ |= 0x00000200;
690  addLpConstraintsLazily_ = input.readBool();
691  break;
692  }
693  case 904: {
694  bitField2_ |= 0x80000000;
695  shareObjectiveBounds_ = input.readBool();
696  break;
697  }
698  case 912: {
699  bitField3_ |= 0x00000001;
700  shareLevelZeroBounds_ = input.readBool();
701  break;
702  }
703  case 921: {
704  bitField2_ |= 0x00000400;
705  minOrthogonalityForLpConstraints_ = input.readDouble();
706  break;
707  }
708  case 928: {
709  bitField2_ |= 0x00008000;
710  exploitAllLpSolution_ = input.readBool();
711  break;
712  }
713  case 936: {
714  bitField2_ |= 0x00000020;
715  addCgCuts_ = input.readBool();
716  break;
717  }
718  case 944: {
719  bitField2_ |= 0x00000080;
720  useMirRounding_ = input.readBool();
721  break;
722  }
723  case 952: {
724  bitField2_ |= 0x00000100;
725  maxIntegerRoundingScaling_ = input.readInt32();
726  break;
727  }
728  case 960: {
729  bitField2_ |= 0x00000040;
730  addMirCuts_ = input.readBool();
731  break;
732  }
733  case 968: {
734  bitField2_ |= 0x00000800;
735  maxInactiveCount_ = input.readInt64();
736  break;
737  }
738  case 976: {
739  bitField2_ |= 0x00001000;
740  constraintRemovalBatchSize_ = input.readInt64();
741  break;
742  }
743  case 984: {
744  bitField2_ |= 0x00040000;
745  pseudoCostReliabilityThreshold_ = input.readInt64();
746  break;
747  }
748  case 993: {
749  bitField3_ |= 0x00000800;
750  mipMaxBound_ = input.readDouble();
751  break;
752  }
753  case 1001: {
754  bitField3_ |= 0x00001000;
755  mipVarScaling_ = input.readDouble();
756  break;
757  }
758  case 1009: {
759  bitField3_ |= 0x00002000;
760  mipWantedPrecision_ = input.readDouble();
761  break;
762  }
763  case 1016: {
764  bitField3_ |= 0x00004000;
765  mipMaxActivityExponent_ = input.readInt32();
766  break;
767  }
768  case 1025: {
769  bitField3_ |= 0x00008000;
770  mipCheckPrecision_ = input.readDouble();
771  break;
772  }
773  case 1032: {
774  bitField3_ |= 0x00000020;
775  useRinsLns_ = input.readBool();
776  break;
777  }
778  case 1040: {
779  bitField2_ |= 0x00010000;
780  exploitBestSolution_ = input.readBool();
781  break;
782  }
783  case 1048: {
784  bitField2_ |= 0x00020000;
785  exploitObjective_ = input.readBool();
786  break;
787  }
788  case 1056: {
789  bitField2_ |= 0x04000000;
790  fillTightenedDomainsInResponse_ = input.readBool();
791  break;
792  }
793  case 1064: {
794  bitField3_ |= 0x00000400;
795  useCombinedNoOverlap_ = input.readBool();
796  break;
797  }
798  case 1072: {
799  bitField3_ |= 0x00000008;
800  lnsIsDeterministic_ = input.readBool();
801  break;
802  }
803  case 1080: {
804  bitField3_ |= 0x00010000;
805  catchSigintSignal_ = input.readBool();
806  break;
807  }
808  default: {
809  if (!parseUnknownField(
810  input, unknownFields, extensionRegistry, tag)) {
811  done = true;
812  }
813  break;
814  }
815  }
816  }
817  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
818  throw e.setUnfinishedMessage(this);
819  } catch (java.io.IOException e) {
820  throw new com.google.protobuf.InvalidProtocolBufferException(
821  e).setUnfinishedMessage(this);
822  } finally {
823  if (((mutable_bitField0_ & 0x08000000) != 0)) {
824  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
825  }
826  this.unknownFields = unknownFields.build();
827  makeExtensionsImmutable();
828  }
829  }
830  public static final com.google.protobuf.Descriptors.Descriptor
832  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
833  }
834 
835  @java.lang.Override
836  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
838  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
839  .ensureFieldAccessorsInitialized(
841  }
842 
851  public enum VariableOrder
852  implements com.google.protobuf.ProtocolMessageEnum {
869  ;
870 
878  public static final int IN_ORDER_VALUE = 0;
882  public static final int IN_REVERSE_ORDER_VALUE = 1;
886  public static final int IN_RANDOM_ORDER_VALUE = 2;
887 
888 
889  public final int getNumber() {
890  return value;
891  }
892 
896  @java.lang.Deprecated
897  public static VariableOrder valueOf(int value) {
898  return forNumber(value);
899  }
900 
901  public static VariableOrder forNumber(int value) {
902  switch (value) {
903  case 0: return IN_ORDER;
904  case 1: return IN_REVERSE_ORDER;
905  case 2: return IN_RANDOM_ORDER;
906  default: return null;
907  }
908  }
909 
910  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
912  return internalValueMap;
913  }
914  private static final com.google.protobuf.Internal.EnumLiteMap<
915  VariableOrder> internalValueMap =
916  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
917  public VariableOrder findValueByNumber(int number) {
918  return VariableOrder.forNumber(number);
919  }
920  };
921 
922  public final com.google.protobuf.Descriptors.EnumValueDescriptor
924  return getDescriptor().getValues().get(ordinal());
925  }
926  public final com.google.protobuf.Descriptors.EnumDescriptor
928  return getDescriptor();
929  }
930  public static final com.google.protobuf.Descriptors.EnumDescriptor
932  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
933  }
934 
935  private static final VariableOrder[] VALUES = values();
936 
937  public static VariableOrder valueOf(
938  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
939  if (desc.getType() != getDescriptor()) {
940  throw new java.lang.IllegalArgumentException(
941  "EnumValueDescriptor is not for this type.");
942  }
943  return VALUES[desc.getIndex()];
944  }
945 
946  private final int value;
947 
948  private VariableOrder(int value) {
949  this.value = value;
950  }
951 
952  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
953  }
954 
966  public enum Polarity
967  implements com.google.protobuf.ProtocolMessageEnum {
999  ;
1000 
1004  public static final int POLARITY_TRUE_VALUE = 0;
1008  public static final int POLARITY_FALSE_VALUE = 1;
1012  public static final int POLARITY_RANDOM_VALUE = 2;
1023  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1031  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1032 
1033 
1034  public final int getNumber() {
1035  return value;
1036  }
1037 
1041  @java.lang.Deprecated
1042  public static Polarity valueOf(int value) {
1043  return forNumber(value);
1044  }
1045 
1046  public static Polarity forNumber(int value) {
1047  switch (value) {
1048  case 0: return POLARITY_TRUE;
1049  case 1: return POLARITY_FALSE;
1050  case 2: return POLARITY_RANDOM;
1051  case 3: return POLARITY_WEIGHTED_SIGN;
1052  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1053  default: return null;
1054  }
1055  }
1056 
1057  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1059  return internalValueMap;
1060  }
1061  private static final com.google.protobuf.Internal.EnumLiteMap<
1062  Polarity> internalValueMap =
1063  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1064  public Polarity findValueByNumber(int number) {
1065  return Polarity.forNumber(number);
1066  }
1067  };
1068 
1069  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1071  return getDescriptor().getValues().get(ordinal());
1072  }
1073  public final com.google.protobuf.Descriptors.EnumDescriptor
1075  return getDescriptor();
1076  }
1077  public static final com.google.protobuf.Descriptors.EnumDescriptor
1079  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1080  }
1081 
1082  private static final Polarity[] VALUES = values();
1083 
1084  public static Polarity valueOf(
1085  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1086  if (desc.getType() != getDescriptor()) {
1087  throw new java.lang.IllegalArgumentException(
1088  "EnumValueDescriptor is not for this type.");
1089  }
1090  return VALUES[desc.getIndex()];
1091  }
1092 
1093  private final int value;
1094 
1095  private Polarity(int value) {
1096  this.value = value;
1097  }
1098 
1099  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1100  }
1101 
1110  implements com.google.protobuf.ProtocolMessageEnum {
1114  NONE(0),
1127  ;
1128 
1132  public static final int NONE_VALUE = 0;
1136  public static final int SIMPLE_VALUE = 1;
1140  public static final int RECURSIVE_VALUE = 2;
1144  public static final int EXPERIMENTAL_VALUE = 3;
1145 
1146 
1147  public final int getNumber() {
1148  return value;
1149  }
1150 
1154  @java.lang.Deprecated
1155  public static ConflictMinimizationAlgorithm valueOf(int value) {
1156  return forNumber(value);
1157  }
1158 
1159  public static ConflictMinimizationAlgorithm forNumber(int value) {
1160  switch (value) {
1161  case 0: return NONE;
1162  case 1: return SIMPLE;
1163  case 2: return RECURSIVE;
1164  case 3: return EXPERIMENTAL;
1165  default: return null;
1166  }
1167  }
1168 
1169  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1171  return internalValueMap;
1172  }
1173  private static final com.google.protobuf.Internal.EnumLiteMap<
1174  ConflictMinimizationAlgorithm> internalValueMap =
1175  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1176  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1178  }
1179  };
1180 
1181  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1183  return getDescriptor().getValues().get(ordinal());
1184  }
1185  public final com.google.protobuf.Descriptors.EnumDescriptor
1187  return getDescriptor();
1188  }
1189  public static final com.google.protobuf.Descriptors.EnumDescriptor
1191  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1192  }
1193 
1194  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1195 
1197  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1198  if (desc.getType() != getDescriptor()) {
1199  throw new java.lang.IllegalArgumentException(
1200  "EnumValueDescriptor is not for this type.");
1201  }
1202  return VALUES[desc.getIndex()];
1203  }
1204 
1205  private final int value;
1206 
1207  private ConflictMinimizationAlgorithm(int value) {
1208  this.value = value;
1209  }
1210 
1211  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1212  }
1213 
1223  implements com.google.protobuf.ProtocolMessageEnum {
1244  ;
1245 
1249  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1253  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1257  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1261  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1265  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1266 
1267 
1268  public final int getNumber() {
1269  return value;
1270  }
1271 
1275  @java.lang.Deprecated
1276  public static BinaryMinizationAlgorithm valueOf(int value) {
1277  return forNumber(value);
1278  }
1279 
1280  public static BinaryMinizationAlgorithm forNumber(int value) {
1281  switch (value) {
1282  case 0: return NO_BINARY_MINIMIZATION;
1283  case 1: return BINARY_MINIMIZATION_FIRST;
1284  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1285  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1286  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1287  default: return null;
1288  }
1289  }
1290 
1291  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1293  return internalValueMap;
1294  }
1295  private static final com.google.protobuf.Internal.EnumLiteMap<
1296  BinaryMinizationAlgorithm> internalValueMap =
1297  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1298  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1299  return BinaryMinizationAlgorithm.forNumber(number);
1300  }
1301  };
1302 
1303  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1305  return getDescriptor().getValues().get(ordinal());
1306  }
1307  public final com.google.protobuf.Descriptors.EnumDescriptor
1309  return getDescriptor();
1310  }
1311  public static final com.google.protobuf.Descriptors.EnumDescriptor
1313  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1314  }
1315 
1316  private static final BinaryMinizationAlgorithm[] VALUES = values();
1317 
1319  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1320  if (desc.getType() != getDescriptor()) {
1321  throw new java.lang.IllegalArgumentException(
1322  "EnumValueDescriptor is not for this type.");
1323  }
1324  return VALUES[desc.getIndex()];
1325  }
1326 
1327  private final int value;
1328 
1329  private BinaryMinizationAlgorithm(int value) {
1330  this.value = value;
1331  }
1332 
1333  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1334  }
1335 
1345  public enum ClauseProtection
1346  implements com.google.protobuf.ProtocolMessageEnum {
1371  ;
1372 
1380  public static final int PROTECTION_NONE_VALUE = 0;
1388  public static final int PROTECTION_ALWAYS_VALUE = 1;
1396  public static final int PROTECTION_LBD_VALUE = 2;
1397 
1398 
1399  public final int getNumber() {
1400  return value;
1401  }
1402 
1406  @java.lang.Deprecated
1407  public static ClauseProtection valueOf(int value) {
1408  return forNumber(value);
1409  }
1410 
1411  public static ClauseProtection forNumber(int value) {
1412  switch (value) {
1413  case 0: return PROTECTION_NONE;
1414  case 1: return PROTECTION_ALWAYS;
1415  case 2: return PROTECTION_LBD;
1416  default: return null;
1417  }
1418  }
1419 
1420  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1422  return internalValueMap;
1423  }
1424  private static final com.google.protobuf.Internal.EnumLiteMap<
1425  ClauseProtection> internalValueMap =
1426  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1427  public ClauseProtection findValueByNumber(int number) {
1428  return ClauseProtection.forNumber(number);
1429  }
1430  };
1431 
1432  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1434  return getDescriptor().getValues().get(ordinal());
1435  }
1436  public final com.google.protobuf.Descriptors.EnumDescriptor
1438  return getDescriptor();
1439  }
1440  public static final com.google.protobuf.Descriptors.EnumDescriptor
1442  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1443  }
1444 
1445  private static final ClauseProtection[] VALUES = values();
1446 
1447  public static ClauseProtection valueOf(
1448  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1449  if (desc.getType() != getDescriptor()) {
1450  throw new java.lang.IllegalArgumentException(
1451  "EnumValueDescriptor is not for this type.");
1452  }
1453  return VALUES[desc.getIndex()];
1454  }
1455 
1456  private final int value;
1457 
1458  private ClauseProtection(int value) {
1459  this.value = value;
1460  }
1461 
1462  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1463  }
1464 
1473  public enum ClauseOrdering
1474  implements com.google.protobuf.ProtocolMessageEnum {
1491  ;
1492 
1500  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1508  public static final int CLAUSE_LBD_VALUE = 1;
1509 
1510 
1511  public final int getNumber() {
1512  return value;
1513  }
1514 
1518  @java.lang.Deprecated
1519  public static ClauseOrdering valueOf(int value) {
1520  return forNumber(value);
1521  }
1522 
1523  public static ClauseOrdering forNumber(int value) {
1524  switch (value) {
1525  case 0: return CLAUSE_ACTIVITY;
1526  case 1: return CLAUSE_LBD;
1527  default: return null;
1528  }
1529  }
1530 
1531  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1533  return internalValueMap;
1534  }
1535  private static final com.google.protobuf.Internal.EnumLiteMap<
1536  ClauseOrdering> internalValueMap =
1537  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1538  public ClauseOrdering findValueByNumber(int number) {
1539  return ClauseOrdering.forNumber(number);
1540  }
1541  };
1542 
1543  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1545  return getDescriptor().getValues().get(ordinal());
1546  }
1547  public final com.google.protobuf.Descriptors.EnumDescriptor
1549  return getDescriptor();
1550  }
1551  public static final com.google.protobuf.Descriptors.EnumDescriptor
1553  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1554  }
1555 
1556  private static final ClauseOrdering[] VALUES = values();
1557 
1558  public static ClauseOrdering valueOf(
1559  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1560  if (desc.getType() != getDescriptor()) {
1561  throw new java.lang.IllegalArgumentException(
1562  "EnumValueDescriptor is not for this type.");
1563  }
1564  return VALUES[desc.getIndex()];
1565  }
1566 
1567  private final int value;
1568 
1569  private ClauseOrdering(int value) {
1570  this.value = value;
1571  }
1572 
1573  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1574  }
1575 
1587  public enum RestartAlgorithm
1588  implements com.google.protobuf.ProtocolMessageEnum {
1625  ;
1626 
1630  public static final int NO_RESTART_VALUE = 0;
1638  public static final int LUBY_RESTART_VALUE = 1;
1646  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1654  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1662  public static final int FIXED_RESTART_VALUE = 4;
1663 
1664 
1665  public final int getNumber() {
1666  return value;
1667  }
1668 
1672  @java.lang.Deprecated
1673  public static RestartAlgorithm valueOf(int value) {
1674  return forNumber(value);
1675  }
1676 
1677  public static RestartAlgorithm forNumber(int value) {
1678  switch (value) {
1679  case 0: return NO_RESTART;
1680  case 1: return LUBY_RESTART;
1681  case 2: return DL_MOVING_AVERAGE_RESTART;
1682  case 3: return LBD_MOVING_AVERAGE_RESTART;
1683  case 4: return FIXED_RESTART;
1684  default: return null;
1685  }
1686  }
1687 
1688  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1690  return internalValueMap;
1691  }
1692  private static final com.google.protobuf.Internal.EnumLiteMap<
1693  RestartAlgorithm> internalValueMap =
1694  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1695  public RestartAlgorithm findValueByNumber(int number) {
1696  return RestartAlgorithm.forNumber(number);
1697  }
1698  };
1699 
1700  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1702  return getDescriptor().getValues().get(ordinal());
1703  }
1704  public final com.google.protobuf.Descriptors.EnumDescriptor
1706  return getDescriptor();
1707  }
1708  public static final com.google.protobuf.Descriptors.EnumDescriptor
1710  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1711  }
1712 
1713  private static final RestartAlgorithm[] VALUES = values();
1714 
1715  public static RestartAlgorithm valueOf(
1716  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1717  if (desc.getType() != getDescriptor()) {
1718  throw new java.lang.IllegalArgumentException(
1719  "EnumValueDescriptor is not for this type.");
1720  }
1721  return VALUES[desc.getIndex()];
1722  }
1723 
1724  private final int value;
1725 
1726  private RestartAlgorithm(int value) {
1727  this.value = value;
1728  }
1729 
1730  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1731  }
1732 
1741  implements com.google.protobuf.ProtocolMessageEnum {
1754  ;
1755 
1759  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1763  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1767  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1768 
1769 
1770  public final int getNumber() {
1771  return value;
1772  }
1773 
1777  @java.lang.Deprecated
1778  public static MaxSatAssumptionOrder valueOf(int value) {
1779  return forNumber(value);
1780  }
1781 
1782  public static MaxSatAssumptionOrder forNumber(int value) {
1783  switch (value) {
1784  case 0: return DEFAULT_ASSUMPTION_ORDER;
1785  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1786  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1787  default: return null;
1788  }
1789  }
1790 
1791  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1793  return internalValueMap;
1794  }
1795  private static final com.google.protobuf.Internal.EnumLiteMap<
1796  MaxSatAssumptionOrder> internalValueMap =
1797  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1798  public MaxSatAssumptionOrder findValueByNumber(int number) {
1799  return MaxSatAssumptionOrder.forNumber(number);
1800  }
1801  };
1802 
1803  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1805  return getDescriptor().getValues().get(ordinal());
1806  }
1807  public final com.google.protobuf.Descriptors.EnumDescriptor
1809  return getDescriptor();
1810  }
1811  public static final com.google.protobuf.Descriptors.EnumDescriptor
1813  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1814  }
1815 
1816  private static final MaxSatAssumptionOrder[] VALUES = values();
1817 
1819  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1820  if (desc.getType() != getDescriptor()) {
1821  throw new java.lang.IllegalArgumentException(
1822  "EnumValueDescriptor is not for this type.");
1823  }
1824  return VALUES[desc.getIndex()];
1825  }
1826 
1827  private final int value;
1828 
1829  private MaxSatAssumptionOrder(int value) {
1830  this.value = value;
1831  }
1832 
1833  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1834  }
1835 
1844  implements com.google.protobuf.ProtocolMessageEnum {
1873  ;
1874 
1882  public static final int STRATIFICATION_NONE_VALUE = 0;
1891  public static final int STRATIFICATION_DESCENT_VALUE = 1;
1902  public static final int STRATIFICATION_ASCENT_VALUE = 2;
1903 
1904 
1905  public final int getNumber() {
1906  return value;
1907  }
1908 
1912  @java.lang.Deprecated
1913  public static MaxSatStratificationAlgorithm valueOf(int value) {
1914  return forNumber(value);
1915  }
1916 
1917  public static MaxSatStratificationAlgorithm forNumber(int value) {
1918  switch (value) {
1919  case 0: return STRATIFICATION_NONE;
1920  case 1: return STRATIFICATION_DESCENT;
1921  case 2: return STRATIFICATION_ASCENT;
1922  default: return null;
1923  }
1924  }
1925 
1926  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
1928  return internalValueMap;
1929  }
1930  private static final com.google.protobuf.Internal.EnumLiteMap<
1931  MaxSatStratificationAlgorithm> internalValueMap =
1932  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
1933  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
1935  }
1936  };
1937 
1938  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1940  return getDescriptor().getValues().get(ordinal());
1941  }
1942  public final com.google.protobuf.Descriptors.EnumDescriptor
1944  return getDescriptor();
1945  }
1946  public static final com.google.protobuf.Descriptors.EnumDescriptor
1948  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
1949  }
1950 
1951  private static final MaxSatStratificationAlgorithm[] VALUES = values();
1952 
1954  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1955  if (desc.getType() != getDescriptor()) {
1956  throw new java.lang.IllegalArgumentException(
1957  "EnumValueDescriptor is not for this type.");
1958  }
1959  return VALUES[desc.getIndex()];
1960  }
1961 
1962  private final int value;
1963 
1964  private MaxSatStratificationAlgorithm(int value) {
1965  this.value = value;
1966  }
1967 
1968  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
1969  }
1970 
1978  public enum SearchBranching
1979  implements com.google.protobuf.ProtocolMessageEnum {
2036  ;
2037 
2046  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2059  public static final int FIXED_SEARCH_VALUE = 1;
2067  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2075  public static final int LP_SEARCH_VALUE = 3;
2083  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2093  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2094 
2095 
2096  public final int getNumber() {
2097  return value;
2098  }
2099 
2103  @java.lang.Deprecated
2104  public static SearchBranching valueOf(int value) {
2105  return forNumber(value);
2106  }
2107 
2108  public static SearchBranching forNumber(int value) {
2109  switch (value) {
2110  case 0: return AUTOMATIC_SEARCH;
2111  case 1: return FIXED_SEARCH;
2112  case 2: return PORTFOLIO_SEARCH;
2113  case 3: return LP_SEARCH;
2114  case 4: return PSEUDO_COST_SEARCH;
2115  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2116  default: return null;
2117  }
2118  }
2119 
2120  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2122  return internalValueMap;
2123  }
2124  private static final com.google.protobuf.Internal.EnumLiteMap<
2125  SearchBranching> internalValueMap =
2126  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2127  public SearchBranching findValueByNumber(int number) {
2128  return SearchBranching.forNumber(number);
2129  }
2130  };
2131 
2132  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2134  return getDescriptor().getValues().get(ordinal());
2135  }
2136  public final com.google.protobuf.Descriptors.EnumDescriptor
2138  return getDescriptor();
2139  }
2140  public static final com.google.protobuf.Descriptors.EnumDescriptor
2142  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2143  }
2144 
2145  private static final SearchBranching[] VALUES = values();
2146 
2147  public static SearchBranching valueOf(
2148  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2149  if (desc.getType() != getDescriptor()) {
2150  throw new java.lang.IllegalArgumentException(
2151  "EnumValueDescriptor is not for this type.");
2152  }
2153  return VALUES[desc.getIndex()];
2154  }
2155 
2156  private final int value;
2157 
2158  private SearchBranching(int value) {
2159  this.value = value;
2160  }
2161 
2162  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2163  }
2164 
2165  private int bitField0_;
2166  private int bitField1_;
2167  private int bitField2_;
2168  private int bitField3_;
2169  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2170  private int preferredVariableOrder_;
2174  public boolean hasPreferredVariableOrder() {
2175  return ((bitField0_ & 0x00000001) != 0);
2176  }
2181  @SuppressWarnings("deprecation")
2183  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2184  }
2185 
2186  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2187  private int initialPolarity_;
2191  public boolean hasInitialPolarity() {
2192  return ((bitField0_ & 0x00000002) != 0);
2193  }
2198  @SuppressWarnings("deprecation")
2200  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2201  }
2202 
2203  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2204  private boolean usePhaseSaving_;
2218  public boolean hasUsePhaseSaving() {
2219  return ((bitField0_ & 0x00000004) != 0);
2220  }
2234  public boolean getUsePhaseSaving() {
2235  return usePhaseSaving_;
2236  }
2237 
2238  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2239  private double randomPolarityRatio_;
2251  public boolean hasRandomPolarityRatio() {
2252  return ((bitField0_ & 0x00000008) != 0);
2253  }
2265  public double getRandomPolarityRatio() {
2266  return randomPolarityRatio_;
2267  }
2268 
2269  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2270  private double randomBranchesRatio_;
2280  public boolean hasRandomBranchesRatio() {
2281  return ((bitField0_ & 0x00000010) != 0);
2282  }
2292  public double getRandomBranchesRatio() {
2293  return randomBranchesRatio_;
2294  }
2295 
2296  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2297  private boolean useErwaHeuristic_;
2307  public boolean hasUseErwaHeuristic() {
2308  return ((bitField0_ & 0x00000020) != 0);
2309  }
2319  public boolean getUseErwaHeuristic() {
2320  return useErwaHeuristic_;
2321  }
2322 
2323  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2324  private double initialVariablesActivity_;
2337  public boolean hasInitialVariablesActivity() {
2338  return ((bitField0_ & 0x00000040) != 0);
2339  }
2353  return initialVariablesActivity_;
2354  }
2355 
2357  private boolean alsoBumpVariablesInConflictReasons_;
2369  return ((bitField0_ & 0x00000080) != 0);
2370  }
2382  return alsoBumpVariablesInConflictReasons_;
2383  }
2384 
2385  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2386  private int minimizationAlgorithm_;
2390  public boolean hasMinimizationAlgorithm() {
2391  return ((bitField0_ & 0x00000100) != 0);
2392  }
2397  @SuppressWarnings("deprecation")
2399  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2400  }
2401 
2402  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2403  private int binaryMinimizationAlgorithm_;
2408  return ((bitField0_ & 0x00000200) != 0);
2409  }
2414  @SuppressWarnings("deprecation")
2417  }
2418 
2420  private boolean subsumptionDuringConflictAnalysis_;
2432  return ((bitField0_ & 0x00000400) != 0);
2433  }
2445  return subsumptionDuringConflictAnalysis_;
2446  }
2447 
2448  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2449  private int clauseCleanupPeriod_;
2457  public boolean hasClauseCleanupPeriod() {
2458  return ((bitField0_ & 0x00000800) != 0);
2459  }
2467  public int getClauseCleanupPeriod() {
2468  return clauseCleanupPeriod_;
2469  }
2470 
2471  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2472  private int clauseCleanupTarget_;
2481  public boolean hasClauseCleanupTarget() {
2482  return ((bitField0_ & 0x00001000) != 0);
2483  }
2492  public int getClauseCleanupTarget() {
2493  return clauseCleanupTarget_;
2494  }
2495 
2496  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2497  private int clauseCleanupProtection_;
2501  public boolean hasClauseCleanupProtection() {
2502  return ((bitField0_ & 0x00002000) != 0);
2503  }
2508  @SuppressWarnings("deprecation")
2510  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2511  }
2512 
2513  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2514  private int clauseCleanupLbdBound_;
2523  public boolean hasClauseCleanupLbdBound() {
2524  return ((bitField0_ & 0x00004000) != 0);
2525  }
2535  return clauseCleanupLbdBound_;
2536  }
2537 
2538  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2539  private int clauseCleanupOrdering_;
2543  public boolean hasClauseCleanupOrdering() {
2544  return ((bitField0_ & 0x00008000) != 0);
2545  }
2550  @SuppressWarnings("deprecation")
2552  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2553  }
2554 
2555  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2556  private int pbCleanupIncrement_;
2564  public boolean hasPbCleanupIncrement() {
2565  return ((bitField0_ & 0x00010000) != 0);
2566  }
2574  public int getPbCleanupIncrement() {
2575  return pbCleanupIncrement_;
2576  }
2577 
2578  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2579  private double pbCleanupRatio_;
2583  public boolean hasPbCleanupRatio() {
2584  return ((bitField0_ & 0x00020000) != 0);
2585  }
2589  public double getPbCleanupRatio() {
2590  return pbCleanupRatio_;
2591  }
2592 
2594  private int minimizeWithPropagationRestartPeriod_;
2613  return ((bitField0_ & 0x00040000) != 0);
2614  }
2633  return minimizeWithPropagationRestartPeriod_;
2634  }
2635 
2637  private int minimizeWithPropagationNumDecisions_;
2642  return ((bitField0_ & 0x00080000) != 0);
2643  }
2648  return minimizeWithPropagationNumDecisions_;
2649  }
2650 
2651  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2652  private double variableActivityDecay_;
2666  public boolean hasVariableActivityDecay() {
2667  return ((bitField0_ & 0x00100000) != 0);
2668  }
2682  public double getVariableActivityDecay() {
2683  return variableActivityDecay_;
2684  }
2685 
2686  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2687  private double maxVariableActivityValue_;
2691  public boolean hasMaxVariableActivityValue() {
2692  return ((bitField0_ & 0x00200000) != 0);
2693  }
2698  return maxVariableActivityValue_;
2699  }
2700 
2701  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2702  private double glucoseMaxDecay_;
2713  public boolean hasGlucoseMaxDecay() {
2714  return ((bitField0_ & 0x00400000) != 0);
2715  }
2726  public double getGlucoseMaxDecay() {
2727  return glucoseMaxDecay_;
2728  }
2729 
2730  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2731  private double glucoseDecayIncrement_;
2735  public boolean hasGlucoseDecayIncrement() {
2736  return ((bitField0_ & 0x00800000) != 0);
2737  }
2741  public double getGlucoseDecayIncrement() {
2742  return glucoseDecayIncrement_;
2743  }
2744 
2745  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
2746  private int glucoseDecayIncrementPeriod_;
2751  return ((bitField0_ & 0x01000000) != 0);
2752  }
2757  return glucoseDecayIncrementPeriod_;
2758  }
2759 
2760  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2761  private double clauseActivityDecay_;
2769  public boolean hasClauseActivityDecay() {
2770  return ((bitField0_ & 0x02000000) != 0);
2771  }
2779  public double getClauseActivityDecay() {
2780  return clauseActivityDecay_;
2781  }
2782 
2783  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2784  private double maxClauseActivityValue_;
2788  public boolean hasMaxClauseActivityValue() {
2789  return ((bitField0_ & 0x04000000) != 0);
2790  }
2794  public double getMaxClauseActivityValue() {
2795  return maxClauseActivityValue_;
2796  }
2797 
2798  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
2799  private java.util.List<java.lang.Integer> restartAlgorithms_;
2800  private static final com.google.protobuf.Internal.ListAdapter.Converter<
2801  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
2802  new com.google.protobuf.Internal.ListAdapter.Converter<
2803  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
2804  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
2805  @SuppressWarnings("deprecation")
2807  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
2808  }
2809  };
2825  return new com.google.protobuf.Internal.ListAdapter<
2826  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
2827  }
2843  return restartAlgorithms_.size();
2844  }
2860  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
2861  }
2862 
2863  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
2864  private volatile java.lang.Object defaultRestartAlgorithms_;
2868  public boolean hasDefaultRestartAlgorithms() {
2869  return ((bitField0_ & 0x08000000) != 0);
2870  }
2874  public java.lang.String getDefaultRestartAlgorithms() {
2875  java.lang.Object ref = defaultRestartAlgorithms_;
2876  if (ref instanceof java.lang.String) {
2877  return (java.lang.String) ref;
2878  } else {
2879  com.google.protobuf.ByteString bs =
2880  (com.google.protobuf.ByteString) ref;
2881  java.lang.String s = bs.toStringUtf8();
2882  if (bs.isValidUtf8()) {
2883  defaultRestartAlgorithms_ = s;
2884  }
2885  return s;
2886  }
2887  }
2891  public com.google.protobuf.ByteString
2893  java.lang.Object ref = defaultRestartAlgorithms_;
2894  if (ref instanceof java.lang.String) {
2895  com.google.protobuf.ByteString b =
2896  com.google.protobuf.ByteString.copyFromUtf8(
2897  (java.lang.String) ref);
2898  defaultRestartAlgorithms_ = b;
2899  return b;
2900  } else {
2901  return (com.google.protobuf.ByteString) ref;
2902  }
2903  }
2904 
2905  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
2906  private int restartPeriod_;
2915  public boolean hasRestartPeriod() {
2916  return ((bitField0_ & 0x10000000) != 0);
2917  }
2926  public int getRestartPeriod() {
2927  return restartPeriod_;
2928  }
2929 
2930  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
2931  private int restartRunningWindowSize_;
2939  public boolean hasRestartRunningWindowSize() {
2940  return ((bitField0_ & 0x20000000) != 0);
2941  }
2950  return restartRunningWindowSize_;
2951  }
2952 
2953  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
2954  private double restartDlAverageRatio_;
2963  public boolean hasRestartDlAverageRatio() {
2964  return ((bitField0_ & 0x40000000) != 0);
2965  }
2974  public double getRestartDlAverageRatio() {
2975  return restartDlAverageRatio_;
2976  }
2977 
2978  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
2979  private double restartLbdAverageRatio_;
2983  public boolean hasRestartLbdAverageRatio() {
2984  return ((bitField0_ & 0x80000000) != 0);
2985  }
2989  public double getRestartLbdAverageRatio() {
2990  return restartLbdAverageRatio_;
2991  }
2992 
2993  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
2994  private boolean useBlockingRestart_;
3004  public boolean hasUseBlockingRestart() {
3005  return ((bitField1_ & 0x00000001) != 0);
3006  }
3016  public boolean getUseBlockingRestart() {
3017  return useBlockingRestart_;
3018  }
3019 
3020  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3021  private int blockingRestartWindowSize_;
3025  public boolean hasBlockingRestartWindowSize() {
3026  return ((bitField1_ & 0x00000002) != 0);
3027  }
3032  return blockingRestartWindowSize_;
3033  }
3034 
3035  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3036  private double blockingRestartMultiplier_;
3040  public boolean hasBlockingRestartMultiplier() {
3041  return ((bitField1_ & 0x00000004) != 0);
3042  }
3047  return blockingRestartMultiplier_;
3048  }
3049 
3051  private int numConflictsBeforeStrategyChanges_;
3062  return ((bitField1_ & 0x00000008) != 0);
3063  }
3074  return numConflictsBeforeStrategyChanges_;
3075  }
3076 
3077  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3078  private double strategyChangeIncreaseRatio_;
3088  return ((bitField1_ & 0x00000010) != 0);
3089  }
3099  return strategyChangeIncreaseRatio_;
3100  }
3101 
3102  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3103  private double maxTimeInSeconds_;
3113  public boolean hasMaxTimeInSeconds() {
3114  return ((bitField1_ & 0x00000020) != 0);
3115  }
3125  public double getMaxTimeInSeconds() {
3126  return maxTimeInSeconds_;
3127  }
3128 
3129  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3130  private double maxDeterministicTime_;
3142  public boolean hasMaxDeterministicTime() {
3143  return ((bitField1_ & 0x00000040) != 0);
3144  }
3156  public double getMaxDeterministicTime() {
3157  return maxDeterministicTime_;
3158  }
3159 
3160  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3161  private long maxNumberOfConflicts_;
3169  public boolean hasMaxNumberOfConflicts() {
3170  return ((bitField1_ & 0x00000080) != 0);
3171  }
3179  public long getMaxNumberOfConflicts() {
3180  return maxNumberOfConflicts_;
3181  }
3182 
3183  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3184  private long maxMemoryInMb_;
3195  public boolean hasMaxMemoryInMb() {
3196  return ((bitField1_ & 0x00000100) != 0);
3197  }
3208  public long getMaxMemoryInMb() {
3209  return maxMemoryInMb_;
3210  }
3211 
3212  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3213  private boolean treatBinaryClausesSeparately_;
3224  return ((bitField1_ & 0x00000200) != 0);
3225  }
3236  return treatBinaryClausesSeparately_;
3237  }
3238 
3239  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3240  private int randomSeed_;
3253  public boolean hasRandomSeed() {
3254  return ((bitField1_ & 0x00000400) != 0);
3255  }
3268  public int getRandomSeed() {
3269  return randomSeed_;
3270  }
3271 
3272  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3273  private boolean logSearchProgress_;
3281  public boolean hasLogSearchProgress() {
3282  return ((bitField1_ & 0x00000800) != 0);
3283  }
3291  public boolean getLogSearchProgress() {
3292  return logSearchProgress_;
3293  }
3294 
3295  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3296  private boolean usePbResolution_;
3307  public boolean hasUsePbResolution() {
3308  return ((bitField1_ & 0x00001000) != 0);
3309  }
3320  public boolean getUsePbResolution() {
3321  return usePbResolution_;
3322  }
3323 
3325  private boolean minimizeReductionDuringPbResolution_;
3337  return ((bitField1_ & 0x00002000) != 0);
3338  }
3350  return minimizeReductionDuringPbResolution_;
3351  }
3352 
3353  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
3354  private boolean countAssumptionLevelsInLbd_;
3370  return ((bitField1_ & 0x00004000) != 0);
3371  }
3387  return countAssumptionLevelsInLbd_;
3388  }
3389 
3390  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3391  private int presolveBveThreshold_;
3401  public boolean hasPresolveBveThreshold() {
3402  return ((bitField1_ & 0x00008000) != 0);
3403  }
3414  return presolveBveThreshold_;
3415  }
3416 
3417  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3418  private int presolveBveClauseWeight_;
3427  public boolean hasPresolveBveClauseWeight() {
3428  return ((bitField1_ & 0x00010000) != 0);
3429  }
3439  return presolveBveClauseWeight_;
3440  }
3441 
3443  private double presolveProbingDeterministicTimeLimit_;
3453  return ((bitField1_ & 0x00020000) != 0);
3454  }
3464  return presolveProbingDeterministicTimeLimit_;
3465  }
3466 
3467  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3468  private boolean presolveBlockedClause_;
3477  public boolean hasPresolveBlockedClause() {
3478  return ((bitField1_ & 0x00040000) != 0);
3479  }
3488  public boolean getPresolveBlockedClause() {
3489  return presolveBlockedClause_;
3490  }
3491 
3492  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
3493  private boolean presolveUseBva_;
3501  public boolean hasPresolveUseBva() {
3502  return ((bitField1_ & 0x00080000) != 0);
3503  }
3511  public boolean getPresolveUseBva() {
3512  return presolveUseBva_;
3513  }
3514 
3515  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
3516  private int presolveBvaThreshold_;
3527  public boolean hasPresolveBvaThreshold() {
3528  return ((bitField1_ & 0x00100000) != 0);
3529  }
3541  return presolveBvaThreshold_;
3542  }
3543 
3544  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
3545  private boolean useOptimizationHints_;
3556  public boolean hasUseOptimizationHints() {
3557  return ((bitField1_ & 0x00200000) != 0);
3558  }
3569  public boolean getUseOptimizationHints() {
3570  return useOptimizationHints_;
3571  }
3572 
3573  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
3574  private boolean minimizeCore_;
3582  public boolean hasMinimizeCore() {
3583  return ((bitField1_ & 0x00400000) != 0);
3584  }
3592  public boolean getMinimizeCore() {
3593  return minimizeCore_;
3594  }
3595 
3596  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
3597  private boolean findMultipleCores_;
3606  public boolean hasFindMultipleCores() {
3607  return ((bitField1_ & 0x00800000) != 0);
3608  }
3617  public boolean getFindMultipleCores() {
3618  return findMultipleCores_;
3619  }
3620 
3621  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
3622  private boolean coverOptimization_;
3631  public boolean hasCoverOptimization() {
3632  return ((bitField1_ & 0x01000000) != 0);
3633  }
3642  public boolean getCoverOptimization() {
3643  return coverOptimization_;
3644  }
3645 
3646  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
3647  private int maxSatAssumptionOrder_;
3651  public boolean hasMaxSatAssumptionOrder() {
3652  return ((bitField1_ & 0x02000000) != 0);
3653  }
3658  @SuppressWarnings("deprecation")
3661  }
3662 
3664  private boolean maxSatReverseAssumptionOrder_;
3674  return ((bitField1_ & 0x04000000) != 0);
3675  }
3685  return maxSatReverseAssumptionOrder_;
3686  }
3687 
3688  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
3689  private int maxSatStratification_;
3693  public boolean hasMaxSatStratification() {
3694  return ((bitField1_ & 0x08000000) != 0);
3695  }
3700  @SuppressWarnings("deprecation")
3703  }
3704 
3706  private boolean usePrecedencesInDisjunctiveConstraint_;
3722  return ((bitField1_ & 0x10000000) != 0);
3723  }
3739  return usePrecedencesInDisjunctiveConstraint_;
3740  }
3741 
3743  private boolean useOverloadCheckerInCumulativeConstraint_;
3757  return ((bitField1_ & 0x20000000) != 0);
3758  }
3772  return useOverloadCheckerInCumulativeConstraint_;
3773  }
3774 
3776  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
3790  return ((bitField1_ & 0x40000000) != 0);
3791  }
3805  return useTimetableEdgeFindingInCumulativeConstraint_;
3806  }
3807 
3809  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
3825  return ((bitField1_ & 0x80000000) != 0);
3826  }
3842  return useDisjunctiveConstraintInCumulativeConstraint_;
3843  }
3844 
3845  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
3846  private int linearizationLevel_;
3857  public boolean hasLinearizationLevel() {
3858  return ((bitField2_ & 0x00000001) != 0);
3859  }
3870  public int getLinearizationLevel() {
3871  return linearizationLevel_;
3872  }
3873 
3874  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
3875  private int booleanEncodingLevel_;
3884  public boolean hasBooleanEncodingLevel() {
3885  return ((bitField2_ & 0x00000002) != 0);
3886  }
3896  return booleanEncodingLevel_;
3897  }
3898 
3899  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
3900  private int maxNumCuts_;
3909  public boolean hasMaxNumCuts() {
3910  return ((bitField2_ & 0x00000004) != 0);
3911  }
3920  public int getMaxNumCuts() {
3921  return maxNumCuts_;
3922  }
3923 
3924  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
3925  private boolean onlyAddCutsAtLevelZero_;
3934  public boolean hasOnlyAddCutsAtLevelZero() {
3935  return ((bitField2_ & 0x00000008) != 0);
3936  }
3945  public boolean getOnlyAddCutsAtLevelZero() {
3946  return onlyAddCutsAtLevelZero_;
3947  }
3948 
3949  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
3950  private boolean addKnapsackCuts_;
3960  public boolean hasAddKnapsackCuts() {
3961  return ((bitField2_ & 0x00000010) != 0);
3962  }
3972  public boolean getAddKnapsackCuts() {
3973  return addKnapsackCuts_;
3974  }
3975 
3976  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
3977  private boolean addCgCuts_;
3986  public boolean hasAddCgCuts() {
3987  return ((bitField2_ & 0x00000020) != 0);
3988  }
3997  public boolean getAddCgCuts() {
3998  return addCgCuts_;
3999  }
4000 
4001  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
4002  private boolean addMirCuts_;
4011  public boolean hasAddMirCuts() {
4012  return ((bitField2_ & 0x00000040) != 0);
4013  }
4022  public boolean getAddMirCuts() {
4023  return addMirCuts_;
4024  }
4025 
4026  public static final int USE_MIR_ROUNDING_FIELD_NUMBER = 118;
4027  private boolean useMirRounding_;
4037  public boolean hasUseMirRounding() {
4038  return ((bitField2_ & 0x00000080) != 0);
4039  }
4049  public boolean getUseMirRounding() {
4050  return useMirRounding_;
4051  }
4052 
4053  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4054  private int maxIntegerRoundingScaling_;
4066  public boolean hasMaxIntegerRoundingScaling() {
4067  return ((bitField2_ & 0x00000100) != 0);
4068  }
4081  return maxIntegerRoundingScaling_;
4082  }
4083 
4084  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4085  private boolean addLpConstraintsLazily_;
4096  public boolean hasAddLpConstraintsLazily() {
4097  return ((bitField2_ & 0x00000200) != 0);
4098  }
4109  public boolean getAddLpConstraintsLazily() {
4110  return addLpConstraintsLazily_;
4111  }
4112 
4114  private double minOrthogonalityForLpConstraints_;
4127  return ((bitField2_ & 0x00000400) != 0);
4128  }
4141  return minOrthogonalityForLpConstraints_;
4142  }
4143 
4144  public static final int MAX_INACTIVE_COUNT_FIELD_NUMBER = 121;
4145  private long maxInactiveCount_;
4154  public boolean hasMaxInactiveCount() {
4155  return ((bitField2_ & 0x00000800) != 0);
4156  }
4165  public long getMaxInactiveCount() {
4166  return maxInactiveCount_;
4167  }
4168 
4169  public static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER = 122;
4170  private long constraintRemovalBatchSize_;
4180  return ((bitField2_ & 0x00001000) != 0);
4181  }
4191  return constraintRemovalBatchSize_;
4192  }
4193 
4194  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4195  private int searchBranching_;
4199  public boolean hasSearchBranching() {
4200  return ((bitField2_ & 0x00002000) != 0);
4201  }
4206  @SuppressWarnings("deprecation")
4208  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4209  }
4210 
4211  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4212  private boolean exploitIntegerLpSolution_;
4223  public boolean hasExploitIntegerLpSolution() {
4224  return ((bitField2_ & 0x00004000) != 0);
4225  }
4236  public boolean getExploitIntegerLpSolution() {
4237  return exploitIntegerLpSolution_;
4238  }
4239 
4240  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4241  private boolean exploitAllLpSolution_;
4251  public boolean hasExploitAllLpSolution() {
4252  return ((bitField2_ & 0x00008000) != 0);
4253  }
4263  public boolean getExploitAllLpSolution() {
4264  return exploitAllLpSolution_;
4265  }
4266 
4267  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4268  private boolean exploitBestSolution_;
4276  public boolean hasExploitBestSolution() {
4277  return ((bitField2_ & 0x00010000) != 0);
4278  }
4286  public boolean getExploitBestSolution() {
4287  return exploitBestSolution_;
4288  }
4289 
4290  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4291  private boolean exploitObjective_;
4300  public boolean hasExploitObjective() {
4301  return ((bitField2_ & 0x00020000) != 0);
4302  }
4311  public boolean getExploitObjective() {
4312  return exploitObjective_;
4313  }
4314 
4315  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4316  private long pseudoCostReliabilityThreshold_;
4326  return ((bitField2_ & 0x00040000) != 0);
4327  }
4337  return pseudoCostReliabilityThreshold_;
4338  }
4339 
4340  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4341  private boolean optimizeWithCore_;
4352  public boolean hasOptimizeWithCore() {
4353  return ((bitField2_ & 0x00080000) != 0);
4354  }
4365  public boolean getOptimizeWithCore() {
4366  return optimizeWithCore_;
4367  }
4368 
4369  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
4370  private int binarySearchNumConflicts_;
4381  public boolean hasBinarySearchNumConflicts() {
4382  return ((bitField2_ & 0x00100000) != 0);
4383  }
4395  return binarySearchNumConflicts_;
4396  }
4397 
4398  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
4399  private boolean optimizeWithMaxHs_;
4412  public boolean hasOptimizeWithMaxHs() {
4413  return ((bitField2_ & 0x00200000) != 0);
4414  }
4427  public boolean getOptimizeWithMaxHs() {
4428  return optimizeWithMaxHs_;
4429  }
4430 
4431  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
4432  private boolean cpModelPresolve_;
4440  public boolean hasCpModelPresolve() {
4441  return ((bitField2_ & 0x00400000) != 0);
4442  }
4450  public boolean getCpModelPresolve() {
4451  return cpModelPresolve_;
4452  }
4453 
4454  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
4455  private int cpModelProbingLevel_;
4463  public boolean hasCpModelProbingLevel() {
4464  return ((bitField2_ & 0x00800000) != 0);
4465  }
4473  public int getCpModelProbingLevel() {
4474  return cpModelProbingLevel_;
4475  }
4476 
4477  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
4478  private boolean cpModelUseSatPresolve_;
4486  public boolean hasCpModelUseSatPresolve() {
4487  return ((bitField2_ & 0x01000000) != 0);
4488  }
4496  public boolean getCpModelUseSatPresolve() {
4497  return cpModelUseSatPresolve_;
4498  }
4499 
4500  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
4501  private boolean enumerateAllSolutions_;
4514  public boolean hasEnumerateAllSolutions() {
4515  return ((bitField2_ & 0x02000000) != 0);
4516  }
4529  public boolean getEnumerateAllSolutions() {
4530  return enumerateAllSolutions_;
4531  }
4532 
4534  private boolean fillTightenedDomainsInResponse_;
4547  return ((bitField2_ & 0x04000000) != 0);
4548  }
4561  return fillTightenedDomainsInResponse_;
4562  }
4563 
4564  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
4565  private boolean instantiateAllVariables_;
4574  public boolean hasInstantiateAllVariables() {
4575  return ((bitField2_ & 0x08000000) != 0);
4576  }
4585  public boolean getInstantiateAllVariables() {
4586  return instantiateAllVariables_;
4587  }
4588 
4590  private boolean autoDetectGreaterThanAtLeastOneOf_;
4602  return ((bitField2_ & 0x10000000) != 0);
4603  }
4615  return autoDetectGreaterThanAtLeastOneOf_;
4616  }
4617 
4618  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
4619  private boolean stopAfterFirstSolution_;
4627  public boolean hasStopAfterFirstSolution() {
4628  return ((bitField2_ & 0x20000000) != 0);
4629  }
4637  public boolean getStopAfterFirstSolution() {
4638  return stopAfterFirstSolution_;
4639  }
4640 
4641  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
4642  private int numSearchWorkers_;
4653  public boolean hasNumSearchWorkers() {
4654  return ((bitField2_ & 0x40000000) != 0);
4655  }
4666  public int getNumSearchWorkers() {
4667  return numSearchWorkers_;
4668  }
4669 
4670  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
4671  private boolean shareObjectiveBounds_;
4679  public boolean hasShareObjectiveBounds() {
4680  return ((bitField2_ & 0x80000000) != 0);
4681  }
4689  public boolean getShareObjectiveBounds() {
4690  return shareObjectiveBounds_;
4691  }
4692 
4693  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
4694  private boolean shareLevelZeroBounds_;
4702  public boolean hasShareLevelZeroBounds() {
4703  return ((bitField3_ & 0x00000001) != 0);
4704  }
4712  public boolean getShareLevelZeroBounds() {
4713  return shareLevelZeroBounds_;
4714  }
4715 
4716  public static final int USE_LNS_FIELD_NUMBER = 101;
4717  private boolean useLns_;
4725  public boolean hasUseLns() {
4726  return ((bitField3_ & 0x00000002) != 0);
4727  }
4735  public boolean getUseLns() {
4736  return useLns_;
4737  }
4738 
4739  public static final int LNS_NUM_THREADS_FIELD_NUMBER = 102;
4740  private int lnsNumThreads_;
4744  public boolean hasLnsNumThreads() {
4745  return ((bitField3_ & 0x00000004) != 0);
4746  }
4750  public int getLnsNumThreads() {
4751  return lnsNumThreads_;
4752  }
4753 
4754  public static final int LNS_IS_DETERMINISTIC_FIELD_NUMBER = 134;
4755  private boolean lnsIsDeterministic_;
4759  public boolean hasLnsIsDeterministic() {
4760  return ((bitField3_ & 0x00000008) != 0);
4761  }
4765  public boolean getLnsIsDeterministic() {
4766  return lnsIsDeterministic_;
4767  }
4768 
4769  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
4770  private boolean lnsFocusOnDecisionVariables_;
4775  return ((bitField3_ & 0x00000010) != 0);
4776  }
4781  return lnsFocusOnDecisionVariables_;
4782  }
4783 
4784  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
4785  private boolean useRinsLns_;
4793  public boolean hasUseRinsLns() {
4794  return ((bitField3_ & 0x00000020) != 0);
4795  }
4803  public boolean getUseRinsLns() {
4804  return useRinsLns_;
4805  }
4806 
4807  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
4808  private boolean randomizeSearch_;
4816  public boolean hasRandomizeSearch() {
4817  return ((bitField3_ & 0x00000040) != 0);
4818  }
4826  public boolean getRandomizeSearch() {
4827  return randomizeSearch_;
4828  }
4829 
4830  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
4831  private long searchRandomizationTolerance_;
4846  return ((bitField3_ & 0x00000080) != 0);
4847  }
4862  return searchRandomizationTolerance_;
4863  }
4864 
4865  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
4866  private boolean useOptionalVariables_;
4876  public boolean hasUseOptionalVariables() {
4877  return ((bitField3_ & 0x00000100) != 0);
4878  }
4888  public boolean getUseOptionalVariables() {
4889  return useOptionalVariables_;
4890  }
4891 
4892  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
4893  private boolean useExactLpReason_;
4904  public boolean hasUseExactLpReason() {
4905  return ((bitField3_ & 0x00000200) != 0);
4906  }
4917  public boolean getUseExactLpReason() {
4918  return useExactLpReason_;
4919  }
4920 
4921  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
4922  private boolean useCombinedNoOverlap_;
4932  public boolean hasUseCombinedNoOverlap() {
4933  return ((bitField3_ & 0x00000400) != 0);
4934  }
4944  public boolean getUseCombinedNoOverlap() {
4945  return useCombinedNoOverlap_;
4946  }
4947 
4948  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
4949  private double mipMaxBound_;
4959  public boolean hasMipMaxBound() {
4960  return ((bitField3_ & 0x00000800) != 0);
4961  }
4971  public double getMipMaxBound() {
4972  return mipMaxBound_;
4973  }
4974 
4975  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
4976  private double mipVarScaling_;
4986  public boolean hasMipVarScaling() {
4987  return ((bitField3_ & 0x00001000) != 0);
4988  }
4998  public double getMipVarScaling() {
4999  return mipVarScaling_;
5000  }
5001 
5002  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
5003  private double mipWantedPrecision_;
5019  public boolean hasMipWantedPrecision() {
5020  return ((bitField3_ & 0x00002000) != 0);
5021  }
5037  public double getMipWantedPrecision() {
5038  return mipWantedPrecision_;
5039  }
5040 
5041  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5042  private int mipMaxActivityExponent_;
5056  public boolean hasMipMaxActivityExponent() {
5057  return ((bitField3_ & 0x00004000) != 0);
5058  }
5073  return mipMaxActivityExponent_;
5074  }
5075 
5076  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5077  private double mipCheckPrecision_;
5088  public boolean hasMipCheckPrecision() {
5089  return ((bitField3_ & 0x00008000) != 0);
5090  }
5101  public double getMipCheckPrecision() {
5102  return mipCheckPrecision_;
5103  }
5104 
5105  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
5106  private boolean catchSigintSignal_;
5116  public boolean hasCatchSigintSignal() {
5117  return ((bitField3_ & 0x00010000) != 0);
5118  }
5128  public boolean getCatchSigintSignal() {
5129  return catchSigintSignal_;
5130  }
5131 
5132  private byte memoizedIsInitialized = -1;
5133  @java.lang.Override
5134  public final boolean isInitialized() {
5135  byte isInitialized = memoizedIsInitialized;
5136  if (isInitialized == 1) return true;
5137  if (isInitialized == 0) return false;
5138 
5139  memoizedIsInitialized = 1;
5140  return true;
5141  }
5142 
5143  @java.lang.Override
5144  public void writeTo(com.google.protobuf.CodedOutputStream output)
5145  throws java.io.IOException {
5146  if (((bitField0_ & 0x00000001) != 0)) {
5147  output.writeEnum(1, preferredVariableOrder_);
5148  }
5149  if (((bitField0_ & 0x00000002) != 0)) {
5150  output.writeEnum(2, initialPolarity_);
5151  }
5152  if (((bitField0_ & 0x00000100) != 0)) {
5153  output.writeEnum(4, minimizationAlgorithm_);
5154  }
5155  if (((bitField0_ & 0x00000800) != 0)) {
5156  output.writeInt32(11, clauseCleanupPeriod_);
5157  }
5158  if (((bitField0_ & 0x00001000) != 0)) {
5159  output.writeInt32(13, clauseCleanupTarget_);
5160  }
5161  if (((bitField0_ & 0x00100000) != 0)) {
5162  output.writeDouble(15, variableActivityDecay_);
5163  }
5164  if (((bitField0_ & 0x00200000) != 0)) {
5165  output.writeDouble(16, maxVariableActivityValue_);
5166  }
5167  if (((bitField0_ & 0x02000000) != 0)) {
5168  output.writeDouble(17, clauseActivityDecay_);
5169  }
5170  if (((bitField0_ & 0x04000000) != 0)) {
5171  output.writeDouble(18, maxClauseActivityValue_);
5172  }
5173  if (((bitField0_ & 0x00400000) != 0)) {
5174  output.writeDouble(22, glucoseMaxDecay_);
5175  }
5176  if (((bitField0_ & 0x00800000) != 0)) {
5177  output.writeDouble(23, glucoseDecayIncrement_);
5178  }
5179  if (((bitField0_ & 0x01000000) != 0)) {
5180  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5181  }
5182  if (((bitField0_ & 0x10000000) != 0)) {
5183  output.writeInt32(30, restartPeriod_);
5184  }
5185  if (((bitField1_ & 0x00000400) != 0)) {
5186  output.writeInt32(31, randomSeed_);
5187  }
5188  if (((bitField0_ & 0x00000010) != 0)) {
5189  output.writeDouble(32, randomBranchesRatio_);
5190  }
5191  if (((bitField1_ & 0x00000200) != 0)) {
5192  output.writeBool(33, treatBinaryClausesSeparately_);
5193  }
5194  if (((bitField0_ & 0x00000200) != 0)) {
5195  output.writeEnum(34, binaryMinimizationAlgorithm_);
5196  }
5197  if (((bitField1_ & 0x00200000) != 0)) {
5198  output.writeBool(35, useOptimizationHints_);
5199  }
5200  if (((bitField1_ & 0x00000020) != 0)) {
5201  output.writeDouble(36, maxTimeInSeconds_);
5202  }
5203  if (((bitField1_ & 0x00000080) != 0)) {
5204  output.writeInt64(37, maxNumberOfConflicts_);
5205  }
5206  if (((bitField1_ & 0x00000100) != 0)) {
5207  output.writeInt64(40, maxMemoryInMb_);
5208  }
5209  if (((bitField1_ & 0x00000800) != 0)) {
5210  output.writeBool(41, logSearchProgress_);
5211  }
5212  if (((bitField1_ & 0x00001000) != 0)) {
5213  output.writeBool(43, usePbResolution_);
5214  }
5215  if (((bitField0_ & 0x00000004) != 0)) {
5216  output.writeBool(44, usePhaseSaving_);
5217  }
5218  if (((bitField0_ & 0x00000008) != 0)) {
5219  output.writeDouble(45, randomPolarityRatio_);
5220  }
5221  if (((bitField0_ & 0x00010000) != 0)) {
5222  output.writeInt32(46, pbCleanupIncrement_);
5223  }
5224  if (((bitField0_ & 0x00020000) != 0)) {
5225  output.writeDouble(47, pbCleanupRatio_);
5226  }
5227  if (((bitField1_ & 0x00002000) != 0)) {
5228  output.writeBool(48, minimizeReductionDuringPbResolution_);
5229  }
5230  if (((bitField1_ & 0x00004000) != 0)) {
5231  output.writeBool(49, countAssumptionLevelsInLbd_);
5232  }
5233  if (((bitField1_ & 0x00400000) != 0)) {
5234  output.writeBool(50, minimizeCore_);
5235  }
5236  if (((bitField1_ & 0x02000000) != 0)) {
5237  output.writeEnum(51, maxSatAssumptionOrder_);
5238  }
5239  if (((bitField1_ & 0x04000000) != 0)) {
5240  output.writeBool(52, maxSatReverseAssumptionOrder_);
5241  }
5242  if (((bitField1_ & 0x08000000) != 0)) {
5243  output.writeEnum(53, maxSatStratification_);
5244  }
5245  if (((bitField1_ & 0x00008000) != 0)) {
5246  output.writeInt32(54, presolveBveThreshold_);
5247  }
5248  if (((bitField1_ & 0x00010000) != 0)) {
5249  output.writeInt32(55, presolveBveClauseWeight_);
5250  }
5251  if (((bitField0_ & 0x00000400) != 0)) {
5252  output.writeBool(56, subsumptionDuringConflictAnalysis_);
5253  }
5254  if (((bitField1_ & 0x00020000) != 0)) {
5255  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
5256  }
5257  if (((bitField0_ & 0x00002000) != 0)) {
5258  output.writeEnum(58, clauseCleanupProtection_);
5259  }
5260  if (((bitField0_ & 0x00004000) != 0)) {
5261  output.writeInt32(59, clauseCleanupLbdBound_);
5262  }
5263  if (((bitField0_ & 0x00008000) != 0)) {
5264  output.writeEnum(60, clauseCleanupOrdering_);
5265  }
5266  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5267  output.writeEnum(61, restartAlgorithms_.get(i));
5268  }
5269  if (((bitField0_ & 0x20000000) != 0)) {
5270  output.writeInt32(62, restartRunningWindowSize_);
5271  }
5272  if (((bitField0_ & 0x40000000) != 0)) {
5273  output.writeDouble(63, restartDlAverageRatio_);
5274  }
5275  if (((bitField1_ & 0x00000001) != 0)) {
5276  output.writeBool(64, useBlockingRestart_);
5277  }
5278  if (((bitField1_ & 0x00000002) != 0)) {
5279  output.writeInt32(65, blockingRestartWindowSize_);
5280  }
5281  if (((bitField1_ & 0x00000004) != 0)) {
5282  output.writeDouble(66, blockingRestartMultiplier_);
5283  }
5284  if (((bitField1_ & 0x00000040) != 0)) {
5285  output.writeDouble(67, maxDeterministicTime_);
5286  }
5287  if (((bitField1_ & 0x00000008) != 0)) {
5288  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
5289  }
5290  if (((bitField1_ & 0x00000010) != 0)) {
5291  output.writeDouble(69, strategyChangeIncreaseRatio_);
5292  }
5293  if (((bitField0_ & 0x08000000) != 0)) {
5294  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
5295  }
5296  if (((bitField0_ & 0x80000000) != 0)) {
5297  output.writeDouble(71, restartLbdAverageRatio_);
5298  }
5299  if (((bitField1_ & 0x00080000) != 0)) {
5300  output.writeBool(72, presolveUseBva_);
5301  }
5302  if (((bitField1_ & 0x00100000) != 0)) {
5303  output.writeInt32(73, presolveBvaThreshold_);
5304  }
5305  if (((bitField1_ & 0x10000000) != 0)) {
5306  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
5307  }
5308  if (((bitField0_ & 0x00000020) != 0)) {
5309  output.writeBool(75, useErwaHeuristic_);
5310  }
5311  if (((bitField0_ & 0x00000040) != 0)) {
5312  output.writeDouble(76, initialVariablesActivity_);
5313  }
5314  if (((bitField0_ & 0x00000080) != 0)) {
5315  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
5316  }
5317  if (((bitField1_ & 0x20000000) != 0)) {
5318  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
5319  }
5320  if (((bitField1_ & 0x40000000) != 0)) {
5321  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
5322  }
5323  if (((bitField1_ & 0x80000000) != 0)) {
5324  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
5325  }
5326  if (((bitField2_ & 0x00002000) != 0)) {
5327  output.writeEnum(82, searchBranching_);
5328  }
5329  if (((bitField2_ & 0x00080000) != 0)) {
5330  output.writeBool(83, optimizeWithCore_);
5331  }
5332  if (((bitField1_ & 0x00800000) != 0)) {
5333  output.writeBool(84, findMultipleCores_);
5334  }
5335  if (((bitField2_ & 0x00200000) != 0)) {
5336  output.writeBool(85, optimizeWithMaxHs_);
5337  }
5338  if (((bitField2_ & 0x00400000) != 0)) {
5339  output.writeBool(86, cpModelPresolve_);
5340  }
5341  if (((bitField2_ & 0x02000000) != 0)) {
5342  output.writeBool(87, enumerateAllSolutions_);
5343  }
5344  if (((bitField1_ & 0x00040000) != 0)) {
5345  output.writeBool(88, presolveBlockedClause_);
5346  }
5347  if (((bitField1_ & 0x01000000) != 0)) {
5348  output.writeBool(89, coverOptimization_);
5349  }
5350  if (((bitField2_ & 0x00000001) != 0)) {
5351  output.writeInt32(90, linearizationLevel_);
5352  }
5353  if (((bitField2_ & 0x00000004) != 0)) {
5354  output.writeInt32(91, maxNumCuts_);
5355  }
5356  if (((bitField2_ & 0x00000008) != 0)) {
5357  output.writeBool(92, onlyAddCutsAtLevelZero_);
5358  }
5359  if (((bitField2_ & 0x01000000) != 0)) {
5360  output.writeBool(93, cpModelUseSatPresolve_);
5361  }
5362  if (((bitField2_ & 0x00004000) != 0)) {
5363  output.writeBool(94, exploitIntegerLpSolution_);
5364  }
5365  if (((bitField2_ & 0x10000000) != 0)) {
5366  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
5367  }
5368  if (((bitField0_ & 0x00040000) != 0)) {
5369  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
5370  }
5371  if (((bitField0_ & 0x00080000) != 0)) {
5372  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
5373  }
5374  if (((bitField2_ & 0x20000000) != 0)) {
5375  output.writeBool(98, stopAfterFirstSolution_);
5376  }
5377  if (((bitField2_ & 0x00100000) != 0)) {
5378  output.writeInt32(99, binarySearchNumConflicts_);
5379  }
5380  if (((bitField2_ & 0x40000000) != 0)) {
5381  output.writeInt32(100, numSearchWorkers_);
5382  }
5383  if (((bitField3_ & 0x00000002) != 0)) {
5384  output.writeBool(101, useLns_);
5385  }
5386  if (((bitField3_ & 0x00000004) != 0)) {
5387  output.writeInt32(102, lnsNumThreads_);
5388  }
5389  if (((bitField3_ & 0x00000040) != 0)) {
5390  output.writeBool(103, randomizeSearch_);
5391  }
5392  if (((bitField3_ & 0x00000080) != 0)) {
5393  output.writeInt64(104, searchRandomizationTolerance_);
5394  }
5395  if (((bitField3_ & 0x00000010) != 0)) {
5396  output.writeBool(105, lnsFocusOnDecisionVariables_);
5397  }
5398  if (((bitField2_ & 0x08000000) != 0)) {
5399  output.writeBool(106, instantiateAllVariables_);
5400  }
5401  if (((bitField2_ & 0x00000002) != 0)) {
5402  output.writeInt32(107, booleanEncodingLevel_);
5403  }
5404  if (((bitField3_ & 0x00000100) != 0)) {
5405  output.writeBool(108, useOptionalVariables_);
5406  }
5407  if (((bitField3_ & 0x00000200) != 0)) {
5408  output.writeBool(109, useExactLpReason_);
5409  }
5410  if (((bitField2_ & 0x00800000) != 0)) {
5411  output.writeInt32(110, cpModelProbingLevel_);
5412  }
5413  if (((bitField2_ & 0x00000010) != 0)) {
5414  output.writeBool(111, addKnapsackCuts_);
5415  }
5416  if (((bitField2_ & 0x00000200) != 0)) {
5417  output.writeBool(112, addLpConstraintsLazily_);
5418  }
5419  if (((bitField2_ & 0x80000000) != 0)) {
5420  output.writeBool(113, shareObjectiveBounds_);
5421  }
5422  if (((bitField3_ & 0x00000001) != 0)) {
5423  output.writeBool(114, shareLevelZeroBounds_);
5424  }
5425  if (((bitField2_ & 0x00000400) != 0)) {
5426  output.writeDouble(115, minOrthogonalityForLpConstraints_);
5427  }
5428  if (((bitField2_ & 0x00008000) != 0)) {
5429  output.writeBool(116, exploitAllLpSolution_);
5430  }
5431  if (((bitField2_ & 0x00000020) != 0)) {
5432  output.writeBool(117, addCgCuts_);
5433  }
5434  if (((bitField2_ & 0x00000080) != 0)) {
5435  output.writeBool(118, useMirRounding_);
5436  }
5437  if (((bitField2_ & 0x00000100) != 0)) {
5438  output.writeInt32(119, maxIntegerRoundingScaling_);
5439  }
5440  if (((bitField2_ & 0x00000040) != 0)) {
5441  output.writeBool(120, addMirCuts_);
5442  }
5443  if (((bitField2_ & 0x00000800) != 0)) {
5444  output.writeInt64(121, maxInactiveCount_);
5445  }
5446  if (((bitField2_ & 0x00001000) != 0)) {
5447  output.writeInt64(122, constraintRemovalBatchSize_);
5448  }
5449  if (((bitField2_ & 0x00040000) != 0)) {
5450  output.writeInt64(123, pseudoCostReliabilityThreshold_);
5451  }
5452  if (((bitField3_ & 0x00000800) != 0)) {
5453  output.writeDouble(124, mipMaxBound_);
5454  }
5455  if (((bitField3_ & 0x00001000) != 0)) {
5456  output.writeDouble(125, mipVarScaling_);
5457  }
5458  if (((bitField3_ & 0x00002000) != 0)) {
5459  output.writeDouble(126, mipWantedPrecision_);
5460  }
5461  if (((bitField3_ & 0x00004000) != 0)) {
5462  output.writeInt32(127, mipMaxActivityExponent_);
5463  }
5464  if (((bitField3_ & 0x00008000) != 0)) {
5465  output.writeDouble(128, mipCheckPrecision_);
5466  }
5467  if (((bitField3_ & 0x00000020) != 0)) {
5468  output.writeBool(129, useRinsLns_);
5469  }
5470  if (((bitField2_ & 0x00010000) != 0)) {
5471  output.writeBool(130, exploitBestSolution_);
5472  }
5473  if (((bitField2_ & 0x00020000) != 0)) {
5474  output.writeBool(131, exploitObjective_);
5475  }
5476  if (((bitField2_ & 0x04000000) != 0)) {
5477  output.writeBool(132, fillTightenedDomainsInResponse_);
5478  }
5479  if (((bitField3_ & 0x00000400) != 0)) {
5480  output.writeBool(133, useCombinedNoOverlap_);
5481  }
5482  if (((bitField3_ & 0x00000008) != 0)) {
5483  output.writeBool(134, lnsIsDeterministic_);
5484  }
5485  if (((bitField3_ & 0x00010000) != 0)) {
5486  output.writeBool(135, catchSigintSignal_);
5487  }
5488  unknownFields.writeTo(output);
5489  }
5490 
5491  @java.lang.Override
5492  public int getSerializedSize() {
5493  int size = memoizedSize;
5494  if (size != -1) return size;
5495 
5496  size = 0;
5497  if (((bitField0_ & 0x00000001) != 0)) {
5498  size += com.google.protobuf.CodedOutputStream
5499  .computeEnumSize(1, preferredVariableOrder_);
5500  }
5501  if (((bitField0_ & 0x00000002) != 0)) {
5502  size += com.google.protobuf.CodedOutputStream
5503  .computeEnumSize(2, initialPolarity_);
5504  }
5505  if (((bitField0_ & 0x00000100) != 0)) {
5506  size += com.google.protobuf.CodedOutputStream
5507  .computeEnumSize(4, minimizationAlgorithm_);
5508  }
5509  if (((bitField0_ & 0x00000800) != 0)) {
5510  size += com.google.protobuf.CodedOutputStream
5511  .computeInt32Size(11, clauseCleanupPeriod_);
5512  }
5513  if (((bitField0_ & 0x00001000) != 0)) {
5514  size += com.google.protobuf.CodedOutputStream
5515  .computeInt32Size(13, clauseCleanupTarget_);
5516  }
5517  if (((bitField0_ & 0x00100000) != 0)) {
5518  size += com.google.protobuf.CodedOutputStream
5519  .computeDoubleSize(15, variableActivityDecay_);
5520  }
5521  if (((bitField0_ & 0x00200000) != 0)) {
5522  size += com.google.protobuf.CodedOutputStream
5523  .computeDoubleSize(16, maxVariableActivityValue_);
5524  }
5525  if (((bitField0_ & 0x02000000) != 0)) {
5526  size += com.google.protobuf.CodedOutputStream
5527  .computeDoubleSize(17, clauseActivityDecay_);
5528  }
5529  if (((bitField0_ & 0x04000000) != 0)) {
5530  size += com.google.protobuf.CodedOutputStream
5531  .computeDoubleSize(18, maxClauseActivityValue_);
5532  }
5533  if (((bitField0_ & 0x00400000) != 0)) {
5534  size += com.google.protobuf.CodedOutputStream
5535  .computeDoubleSize(22, glucoseMaxDecay_);
5536  }
5537  if (((bitField0_ & 0x00800000) != 0)) {
5538  size += com.google.protobuf.CodedOutputStream
5539  .computeDoubleSize(23, glucoseDecayIncrement_);
5540  }
5541  if (((bitField0_ & 0x01000000) != 0)) {
5542  size += com.google.protobuf.CodedOutputStream
5543  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
5544  }
5545  if (((bitField0_ & 0x10000000) != 0)) {
5546  size += com.google.protobuf.CodedOutputStream
5547  .computeInt32Size(30, restartPeriod_);
5548  }
5549  if (((bitField1_ & 0x00000400) != 0)) {
5550  size += com.google.protobuf.CodedOutputStream
5551  .computeInt32Size(31, randomSeed_);
5552  }
5553  if (((bitField0_ & 0x00000010) != 0)) {
5554  size += com.google.protobuf.CodedOutputStream
5555  .computeDoubleSize(32, randomBranchesRatio_);
5556  }
5557  if (((bitField1_ & 0x00000200) != 0)) {
5558  size += com.google.protobuf.CodedOutputStream
5559  .computeBoolSize(33, treatBinaryClausesSeparately_);
5560  }
5561  if (((bitField0_ & 0x00000200) != 0)) {
5562  size += com.google.protobuf.CodedOutputStream
5563  .computeEnumSize(34, binaryMinimizationAlgorithm_);
5564  }
5565  if (((bitField1_ & 0x00200000) != 0)) {
5566  size += com.google.protobuf.CodedOutputStream
5567  .computeBoolSize(35, useOptimizationHints_);
5568  }
5569  if (((bitField1_ & 0x00000020) != 0)) {
5570  size += com.google.protobuf.CodedOutputStream
5571  .computeDoubleSize(36, maxTimeInSeconds_);
5572  }
5573  if (((bitField1_ & 0x00000080) != 0)) {
5574  size += com.google.protobuf.CodedOutputStream
5575  .computeInt64Size(37, maxNumberOfConflicts_);
5576  }
5577  if (((bitField1_ & 0x00000100) != 0)) {
5578  size += com.google.protobuf.CodedOutputStream
5579  .computeInt64Size(40, maxMemoryInMb_);
5580  }
5581  if (((bitField1_ & 0x00000800) != 0)) {
5582  size += com.google.protobuf.CodedOutputStream
5583  .computeBoolSize(41, logSearchProgress_);
5584  }
5585  if (((bitField1_ & 0x00001000) != 0)) {
5586  size += com.google.protobuf.CodedOutputStream
5587  .computeBoolSize(43, usePbResolution_);
5588  }
5589  if (((bitField0_ & 0x00000004) != 0)) {
5590  size += com.google.protobuf.CodedOutputStream
5591  .computeBoolSize(44, usePhaseSaving_);
5592  }
5593  if (((bitField0_ & 0x00000008) != 0)) {
5594  size += com.google.protobuf.CodedOutputStream
5595  .computeDoubleSize(45, randomPolarityRatio_);
5596  }
5597  if (((bitField0_ & 0x00010000) != 0)) {
5598  size += com.google.protobuf.CodedOutputStream
5599  .computeInt32Size(46, pbCleanupIncrement_);
5600  }
5601  if (((bitField0_ & 0x00020000) != 0)) {
5602  size += com.google.protobuf.CodedOutputStream
5603  .computeDoubleSize(47, pbCleanupRatio_);
5604  }
5605  if (((bitField1_ & 0x00002000) != 0)) {
5606  size += com.google.protobuf.CodedOutputStream
5607  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
5608  }
5609  if (((bitField1_ & 0x00004000) != 0)) {
5610  size += com.google.protobuf.CodedOutputStream
5611  .computeBoolSize(49, countAssumptionLevelsInLbd_);
5612  }
5613  if (((bitField1_ & 0x00400000) != 0)) {
5614  size += com.google.protobuf.CodedOutputStream
5615  .computeBoolSize(50, minimizeCore_);
5616  }
5617  if (((bitField1_ & 0x02000000) != 0)) {
5618  size += com.google.protobuf.CodedOutputStream
5619  .computeEnumSize(51, maxSatAssumptionOrder_);
5620  }
5621  if (((bitField1_ & 0x04000000) != 0)) {
5622  size += com.google.protobuf.CodedOutputStream
5623  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
5624  }
5625  if (((bitField1_ & 0x08000000) != 0)) {
5626  size += com.google.protobuf.CodedOutputStream
5627  .computeEnumSize(53, maxSatStratification_);
5628  }
5629  if (((bitField1_ & 0x00008000) != 0)) {
5630  size += com.google.protobuf.CodedOutputStream
5631  .computeInt32Size(54, presolveBveThreshold_);
5632  }
5633  if (((bitField1_ & 0x00010000) != 0)) {
5634  size += com.google.protobuf.CodedOutputStream
5635  .computeInt32Size(55, presolveBveClauseWeight_);
5636  }
5637  if (((bitField0_ & 0x00000400) != 0)) {
5638  size += com.google.protobuf.CodedOutputStream
5639  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
5640  }
5641  if (((bitField1_ & 0x00020000) != 0)) {
5642  size += com.google.protobuf.CodedOutputStream
5643  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
5644  }
5645  if (((bitField0_ & 0x00002000) != 0)) {
5646  size += com.google.protobuf.CodedOutputStream
5647  .computeEnumSize(58, clauseCleanupProtection_);
5648  }
5649  if (((bitField0_ & 0x00004000) != 0)) {
5650  size += com.google.protobuf.CodedOutputStream
5651  .computeInt32Size(59, clauseCleanupLbdBound_);
5652  }
5653  if (((bitField0_ & 0x00008000) != 0)) {
5654  size += com.google.protobuf.CodedOutputStream
5655  .computeEnumSize(60, clauseCleanupOrdering_);
5656  }
5657  {
5658  int dataSize = 0;
5659  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5660  dataSize += com.google.protobuf.CodedOutputStream
5661  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
5662  }
5663  size += dataSize;
5664  size += 2 * restartAlgorithms_.size();
5665  }
5666  if (((bitField0_ & 0x20000000) != 0)) {
5667  size += com.google.protobuf.CodedOutputStream
5668  .computeInt32Size(62, restartRunningWindowSize_);
5669  }
5670  if (((bitField0_ & 0x40000000) != 0)) {
5671  size += com.google.protobuf.CodedOutputStream
5672  .computeDoubleSize(63, restartDlAverageRatio_);
5673  }
5674  if (((bitField1_ & 0x00000001) != 0)) {
5675  size += com.google.protobuf.CodedOutputStream
5676  .computeBoolSize(64, useBlockingRestart_);
5677  }
5678  if (((bitField1_ & 0x00000002) != 0)) {
5679  size += com.google.protobuf.CodedOutputStream
5680  .computeInt32Size(65, blockingRestartWindowSize_);
5681  }
5682  if (((bitField1_ & 0x00000004) != 0)) {
5683  size += com.google.protobuf.CodedOutputStream
5684  .computeDoubleSize(66, blockingRestartMultiplier_);
5685  }
5686  if (((bitField1_ & 0x00000040) != 0)) {
5687  size += com.google.protobuf.CodedOutputStream
5688  .computeDoubleSize(67, maxDeterministicTime_);
5689  }
5690  if (((bitField1_ & 0x00000008) != 0)) {
5691  size += com.google.protobuf.CodedOutputStream
5692  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
5693  }
5694  if (((bitField1_ & 0x00000010) != 0)) {
5695  size += com.google.protobuf.CodedOutputStream
5696  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
5697  }
5698  if (((bitField0_ & 0x08000000) != 0)) {
5699  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
5700  }
5701  if (((bitField0_ & 0x80000000) != 0)) {
5702  size += com.google.protobuf.CodedOutputStream
5703  .computeDoubleSize(71, restartLbdAverageRatio_);
5704  }
5705  if (((bitField1_ & 0x00080000) != 0)) {
5706  size += com.google.protobuf.CodedOutputStream
5707  .computeBoolSize(72, presolveUseBva_);
5708  }
5709  if (((bitField1_ & 0x00100000) != 0)) {
5710  size += com.google.protobuf.CodedOutputStream
5711  .computeInt32Size(73, presolveBvaThreshold_);
5712  }
5713  if (((bitField1_ & 0x10000000) != 0)) {
5714  size += com.google.protobuf.CodedOutputStream
5715  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
5716  }
5717  if (((bitField0_ & 0x00000020) != 0)) {
5718  size += com.google.protobuf.CodedOutputStream
5719  .computeBoolSize(75, useErwaHeuristic_);
5720  }
5721  if (((bitField0_ & 0x00000040) != 0)) {
5722  size += com.google.protobuf.CodedOutputStream
5723  .computeDoubleSize(76, initialVariablesActivity_);
5724  }
5725  if (((bitField0_ & 0x00000080) != 0)) {
5726  size += com.google.protobuf.CodedOutputStream
5727  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
5728  }
5729  if (((bitField1_ & 0x20000000) != 0)) {
5730  size += com.google.protobuf.CodedOutputStream
5731  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
5732  }
5733  if (((bitField1_ & 0x40000000) != 0)) {
5734  size += com.google.protobuf.CodedOutputStream
5735  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
5736  }
5737  if (((bitField1_ & 0x80000000) != 0)) {
5738  size += com.google.protobuf.CodedOutputStream
5739  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
5740  }
5741  if (((bitField2_ & 0x00002000) != 0)) {
5742  size += com.google.protobuf.CodedOutputStream
5743  .computeEnumSize(82, searchBranching_);
5744  }
5745  if (((bitField2_ & 0x00080000) != 0)) {
5746  size += com.google.protobuf.CodedOutputStream
5747  .computeBoolSize(83, optimizeWithCore_);
5748  }
5749  if (((bitField1_ & 0x00800000) != 0)) {
5750  size += com.google.protobuf.CodedOutputStream
5751  .computeBoolSize(84, findMultipleCores_);
5752  }
5753  if (((bitField2_ & 0x00200000) != 0)) {
5754  size += com.google.protobuf.CodedOutputStream
5755  .computeBoolSize(85, optimizeWithMaxHs_);
5756  }
5757  if (((bitField2_ & 0x00400000) != 0)) {
5758  size += com.google.protobuf.CodedOutputStream
5759  .computeBoolSize(86, cpModelPresolve_);
5760  }
5761  if (((bitField2_ & 0x02000000) != 0)) {
5762  size += com.google.protobuf.CodedOutputStream
5763  .computeBoolSize(87, enumerateAllSolutions_);
5764  }
5765  if (((bitField1_ & 0x00040000) != 0)) {
5766  size += com.google.protobuf.CodedOutputStream
5767  .computeBoolSize(88, presolveBlockedClause_);
5768  }
5769  if (((bitField1_ & 0x01000000) != 0)) {
5770  size += com.google.protobuf.CodedOutputStream
5771  .computeBoolSize(89, coverOptimization_);
5772  }
5773  if (((bitField2_ & 0x00000001) != 0)) {
5774  size += com.google.protobuf.CodedOutputStream
5775  .computeInt32Size(90, linearizationLevel_);
5776  }
5777  if (((bitField2_ & 0x00000004) != 0)) {
5778  size += com.google.protobuf.CodedOutputStream
5779  .computeInt32Size(91, maxNumCuts_);
5780  }
5781  if (((bitField2_ & 0x00000008) != 0)) {
5782  size += com.google.protobuf.CodedOutputStream
5783  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
5784  }
5785  if (((bitField2_ & 0x01000000) != 0)) {
5786  size += com.google.protobuf.CodedOutputStream
5787  .computeBoolSize(93, cpModelUseSatPresolve_);
5788  }
5789  if (((bitField2_ & 0x00004000) != 0)) {
5790  size += com.google.protobuf.CodedOutputStream
5791  .computeBoolSize(94, exploitIntegerLpSolution_);
5792  }
5793  if (((bitField2_ & 0x10000000) != 0)) {
5794  size += com.google.protobuf.CodedOutputStream
5795  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
5796  }
5797  if (((bitField0_ & 0x00040000) != 0)) {
5798  size += com.google.protobuf.CodedOutputStream
5799  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
5800  }
5801  if (((bitField0_ & 0x00080000) != 0)) {
5802  size += com.google.protobuf.CodedOutputStream
5803  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
5804  }
5805  if (((bitField2_ & 0x20000000) != 0)) {
5806  size += com.google.protobuf.CodedOutputStream
5807  .computeBoolSize(98, stopAfterFirstSolution_);
5808  }
5809  if (((bitField2_ & 0x00100000) != 0)) {
5810  size += com.google.protobuf.CodedOutputStream
5811  .computeInt32Size(99, binarySearchNumConflicts_);
5812  }
5813  if (((bitField2_ & 0x40000000) != 0)) {
5814  size += com.google.protobuf.CodedOutputStream
5815  .computeInt32Size(100, numSearchWorkers_);
5816  }
5817  if (((bitField3_ & 0x00000002) != 0)) {
5818  size += com.google.protobuf.CodedOutputStream
5819  .computeBoolSize(101, useLns_);
5820  }
5821  if (((bitField3_ & 0x00000004) != 0)) {
5822  size += com.google.protobuf.CodedOutputStream
5823  .computeInt32Size(102, lnsNumThreads_);
5824  }
5825  if (((bitField3_ & 0x00000040) != 0)) {
5826  size += com.google.protobuf.CodedOutputStream
5827  .computeBoolSize(103, randomizeSearch_);
5828  }
5829  if (((bitField3_ & 0x00000080) != 0)) {
5830  size += com.google.protobuf.CodedOutputStream
5831  .computeInt64Size(104, searchRandomizationTolerance_);
5832  }
5833  if (((bitField3_ & 0x00000010) != 0)) {
5834  size += com.google.protobuf.CodedOutputStream
5835  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
5836  }
5837  if (((bitField2_ & 0x08000000) != 0)) {
5838  size += com.google.protobuf.CodedOutputStream
5839  .computeBoolSize(106, instantiateAllVariables_);
5840  }
5841  if (((bitField2_ & 0x00000002) != 0)) {
5842  size += com.google.protobuf.CodedOutputStream
5843  .computeInt32Size(107, booleanEncodingLevel_);
5844  }
5845  if (((bitField3_ & 0x00000100) != 0)) {
5846  size += com.google.protobuf.CodedOutputStream
5847  .computeBoolSize(108, useOptionalVariables_);
5848  }
5849  if (((bitField3_ & 0x00000200) != 0)) {
5850  size += com.google.protobuf.CodedOutputStream
5851  .computeBoolSize(109, useExactLpReason_);
5852  }
5853  if (((bitField2_ & 0x00800000) != 0)) {
5854  size += com.google.protobuf.CodedOutputStream
5855  .computeInt32Size(110, cpModelProbingLevel_);
5856  }
5857  if (((bitField2_ & 0x00000010) != 0)) {
5858  size += com.google.protobuf.CodedOutputStream
5859  .computeBoolSize(111, addKnapsackCuts_);
5860  }
5861  if (((bitField2_ & 0x00000200) != 0)) {
5862  size += com.google.protobuf.CodedOutputStream
5863  .computeBoolSize(112, addLpConstraintsLazily_);
5864  }
5865  if (((bitField2_ & 0x80000000) != 0)) {
5866  size += com.google.protobuf.CodedOutputStream
5867  .computeBoolSize(113, shareObjectiveBounds_);
5868  }
5869  if (((bitField3_ & 0x00000001) != 0)) {
5870  size += com.google.protobuf.CodedOutputStream
5871  .computeBoolSize(114, shareLevelZeroBounds_);
5872  }
5873  if (((bitField2_ & 0x00000400) != 0)) {
5874  size += com.google.protobuf.CodedOutputStream
5875  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
5876  }
5877  if (((bitField2_ & 0x00008000) != 0)) {
5878  size += com.google.protobuf.CodedOutputStream
5879  .computeBoolSize(116, exploitAllLpSolution_);
5880  }
5881  if (((bitField2_ & 0x00000020) != 0)) {
5882  size += com.google.protobuf.CodedOutputStream
5883  .computeBoolSize(117, addCgCuts_);
5884  }
5885  if (((bitField2_ & 0x00000080) != 0)) {
5886  size += com.google.protobuf.CodedOutputStream
5887  .computeBoolSize(118, useMirRounding_);
5888  }
5889  if (((bitField2_ & 0x00000100) != 0)) {
5890  size += com.google.protobuf.CodedOutputStream
5891  .computeInt32Size(119, maxIntegerRoundingScaling_);
5892  }
5893  if (((bitField2_ & 0x00000040) != 0)) {
5894  size += com.google.protobuf.CodedOutputStream
5895  .computeBoolSize(120, addMirCuts_);
5896  }
5897  if (((bitField2_ & 0x00000800) != 0)) {
5898  size += com.google.protobuf.CodedOutputStream
5899  .computeInt64Size(121, maxInactiveCount_);
5900  }
5901  if (((bitField2_ & 0x00001000) != 0)) {
5902  size += com.google.protobuf.CodedOutputStream
5903  .computeInt64Size(122, constraintRemovalBatchSize_);
5904  }
5905  if (((bitField2_ & 0x00040000) != 0)) {
5906  size += com.google.protobuf.CodedOutputStream
5907  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
5908  }
5909  if (((bitField3_ & 0x00000800) != 0)) {
5910  size += com.google.protobuf.CodedOutputStream
5911  .computeDoubleSize(124, mipMaxBound_);
5912  }
5913  if (((bitField3_ & 0x00001000) != 0)) {
5914  size += com.google.protobuf.CodedOutputStream
5915  .computeDoubleSize(125, mipVarScaling_);
5916  }
5917  if (((bitField3_ & 0x00002000) != 0)) {
5918  size += com.google.protobuf.CodedOutputStream
5919  .computeDoubleSize(126, mipWantedPrecision_);
5920  }
5921  if (((bitField3_ & 0x00004000) != 0)) {
5922  size += com.google.protobuf.CodedOutputStream
5923  .computeInt32Size(127, mipMaxActivityExponent_);
5924  }
5925  if (((bitField3_ & 0x00008000) != 0)) {
5926  size += com.google.protobuf.CodedOutputStream
5927  .computeDoubleSize(128, mipCheckPrecision_);
5928  }
5929  if (((bitField3_ & 0x00000020) != 0)) {
5930  size += com.google.protobuf.CodedOutputStream
5931  .computeBoolSize(129, useRinsLns_);
5932  }
5933  if (((bitField2_ & 0x00010000) != 0)) {
5934  size += com.google.protobuf.CodedOutputStream
5935  .computeBoolSize(130, exploitBestSolution_);
5936  }
5937  if (((bitField2_ & 0x00020000) != 0)) {
5938  size += com.google.protobuf.CodedOutputStream
5939  .computeBoolSize(131, exploitObjective_);
5940  }
5941  if (((bitField2_ & 0x04000000) != 0)) {
5942  size += com.google.protobuf.CodedOutputStream
5943  .computeBoolSize(132, fillTightenedDomainsInResponse_);
5944  }
5945  if (((bitField3_ & 0x00000400) != 0)) {
5946  size += com.google.protobuf.CodedOutputStream
5947  .computeBoolSize(133, useCombinedNoOverlap_);
5948  }
5949  if (((bitField3_ & 0x00000008) != 0)) {
5950  size += com.google.protobuf.CodedOutputStream
5951  .computeBoolSize(134, lnsIsDeterministic_);
5952  }
5953  if (((bitField3_ & 0x00010000) != 0)) {
5954  size += com.google.protobuf.CodedOutputStream
5955  .computeBoolSize(135, catchSigintSignal_);
5956  }
5957  size += unknownFields.getSerializedSize();
5958  memoizedSize = size;
5959  return size;
5960  }
5961 
5962  @java.lang.Override
5963  public boolean equals(final java.lang.Object obj) {
5964  if (obj == this) {
5965  return true;
5966  }
5967  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
5968  return super.equals(obj);
5969  }
5971 
5972  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
5973  if (hasPreferredVariableOrder()) {
5974  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
5975  }
5976  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
5977  if (hasInitialPolarity()) {
5978  if (initialPolarity_ != other.initialPolarity_) return false;
5979  }
5980  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
5981  if (hasUsePhaseSaving()) {
5982  if (getUsePhaseSaving()
5983  != other.getUsePhaseSaving()) return false;
5984  }
5985  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
5986  if (hasRandomPolarityRatio()) {
5987  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
5988  != java.lang.Double.doubleToLongBits(
5989  other.getRandomPolarityRatio())) return false;
5990  }
5991  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
5992  if (hasRandomBranchesRatio()) {
5993  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
5994  != java.lang.Double.doubleToLongBits(
5995  other.getRandomBranchesRatio())) return false;
5996  }
5997  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
5998  if (hasUseErwaHeuristic()) {
5999  if (getUseErwaHeuristic()
6000  != other.getUseErwaHeuristic()) return false;
6001  }
6002  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
6004  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
6005  != java.lang.Double.doubleToLongBits(
6006  other.getInitialVariablesActivity())) return false;
6007  }
6008  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
6011  != other.getAlsoBumpVariablesInConflictReasons()) return false;
6012  }
6013  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
6014  if (hasMinimizationAlgorithm()) {
6015  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
6016  }
6017  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
6019  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
6020  }
6021  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
6024  != other.getSubsumptionDuringConflictAnalysis()) return false;
6025  }
6026  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
6027  if (hasClauseCleanupPeriod()) {
6029  != other.getClauseCleanupPeriod()) return false;
6030  }
6031  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
6032  if (hasClauseCleanupTarget()) {
6034  != other.getClauseCleanupTarget()) return false;
6035  }
6036  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
6038  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
6039  }
6040  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
6041  if (hasClauseCleanupLbdBound()) {
6043  != other.getClauseCleanupLbdBound()) return false;
6044  }
6045  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
6046  if (hasClauseCleanupOrdering()) {
6047  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
6048  }
6049  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
6050  if (hasPbCleanupIncrement()) {
6051  if (getPbCleanupIncrement()
6052  != other.getPbCleanupIncrement()) return false;
6053  }
6054  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
6055  if (hasPbCleanupRatio()) {
6056  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
6057  != java.lang.Double.doubleToLongBits(
6058  other.getPbCleanupRatio())) return false;
6059  }
6060  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
6063  != other.getMinimizeWithPropagationRestartPeriod()) return false;
6064  }
6065  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
6068  != other.getMinimizeWithPropagationNumDecisions()) return false;
6069  }
6070  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
6071  if (hasVariableActivityDecay()) {
6072  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
6073  != java.lang.Double.doubleToLongBits(
6074  other.getVariableActivityDecay())) return false;
6075  }
6076  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6078  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6079  != java.lang.Double.doubleToLongBits(
6080  other.getMaxVariableActivityValue())) return false;
6081  }
6082  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6083  if (hasGlucoseMaxDecay()) {
6084  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6085  != java.lang.Double.doubleToLongBits(
6086  other.getGlucoseMaxDecay())) return false;
6087  }
6088  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
6089  if (hasGlucoseDecayIncrement()) {
6090  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
6091  != java.lang.Double.doubleToLongBits(
6092  other.getGlucoseDecayIncrement())) return false;
6093  }
6094  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
6097  != other.getGlucoseDecayIncrementPeriod()) return false;
6098  }
6099  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
6100  if (hasClauseActivityDecay()) {
6101  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
6102  != java.lang.Double.doubleToLongBits(
6103  other.getClauseActivityDecay())) return false;
6104  }
6105  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
6106  if (hasMaxClauseActivityValue()) {
6107  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
6108  != java.lang.Double.doubleToLongBits(
6109  other.getMaxClauseActivityValue())) return false;
6110  }
6111  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
6112  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
6115  .equals(other.getDefaultRestartAlgorithms())) return false;
6116  }
6117  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
6118  if (hasRestartPeriod()) {
6119  if (getRestartPeriod()
6120  != other.getRestartPeriod()) return false;
6121  }
6122  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
6125  != other.getRestartRunningWindowSize()) return false;
6126  }
6127  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
6128  if (hasRestartDlAverageRatio()) {
6129  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
6130  != java.lang.Double.doubleToLongBits(
6131  other.getRestartDlAverageRatio())) return false;
6132  }
6133  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
6134  if (hasRestartLbdAverageRatio()) {
6135  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
6136  != java.lang.Double.doubleToLongBits(
6137  other.getRestartLbdAverageRatio())) return false;
6138  }
6139  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
6140  if (hasUseBlockingRestart()) {
6141  if (getUseBlockingRestart()
6142  != other.getUseBlockingRestart()) return false;
6143  }
6144  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
6147  != other.getBlockingRestartWindowSize()) return false;
6148  }
6149  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
6151  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
6152  != java.lang.Double.doubleToLongBits(
6153  other.getBlockingRestartMultiplier())) return false;
6154  }
6155  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
6158  != other.getNumConflictsBeforeStrategyChanges()) return false;
6159  }
6160  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
6162  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
6163  != java.lang.Double.doubleToLongBits(
6164  other.getStrategyChangeIncreaseRatio())) return false;
6165  }
6166  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
6167  if (hasMaxTimeInSeconds()) {
6168  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
6169  != java.lang.Double.doubleToLongBits(
6170  other.getMaxTimeInSeconds())) return false;
6171  }
6172  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
6173  if (hasMaxDeterministicTime()) {
6174  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
6175  != java.lang.Double.doubleToLongBits(
6176  other.getMaxDeterministicTime())) return false;
6177  }
6178  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
6179  if (hasMaxNumberOfConflicts()) {
6181  != other.getMaxNumberOfConflicts()) return false;
6182  }
6183  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
6184  if (hasMaxMemoryInMb()) {
6185  if (getMaxMemoryInMb()
6186  != other.getMaxMemoryInMb()) return false;
6187  }
6188  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
6191  != other.getTreatBinaryClausesSeparately()) return false;
6192  }
6193  if (hasRandomSeed() != other.hasRandomSeed()) return false;
6194  if (hasRandomSeed()) {
6195  if (getRandomSeed()
6196  != other.getRandomSeed()) return false;
6197  }
6198  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
6199  if (hasLogSearchProgress()) {
6200  if (getLogSearchProgress()
6201  != other.getLogSearchProgress()) return false;
6202  }
6203  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
6204  if (hasUsePbResolution()) {
6205  if (getUsePbResolution()
6206  != other.getUsePbResolution()) return false;
6207  }
6208  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
6211  != other.getMinimizeReductionDuringPbResolution()) return false;
6212  }
6213  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
6216  != other.getCountAssumptionLevelsInLbd()) return false;
6217  }
6218  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
6219  if (hasPresolveBveThreshold()) {
6221  != other.getPresolveBveThreshold()) return false;
6222  }
6223  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
6226  != other.getPresolveBveClauseWeight()) return false;
6227  }
6228  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
6230  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
6231  != java.lang.Double.doubleToLongBits(
6232  other.getPresolveProbingDeterministicTimeLimit())) return false;
6233  }
6234  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
6235  if (hasPresolveBlockedClause()) {
6237  != other.getPresolveBlockedClause()) return false;
6238  }
6239  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
6240  if (hasPresolveUseBva()) {
6241  if (getPresolveUseBva()
6242  != other.getPresolveUseBva()) return false;
6243  }
6244  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
6245  if (hasPresolveBvaThreshold()) {
6247  != other.getPresolveBvaThreshold()) return false;
6248  }
6249  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
6250  if (hasUseOptimizationHints()) {
6252  != other.getUseOptimizationHints()) return false;
6253  }
6254  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
6255  if (hasMinimizeCore()) {
6256  if (getMinimizeCore()
6257  != other.getMinimizeCore()) return false;
6258  }
6259  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
6260  if (hasFindMultipleCores()) {
6261  if (getFindMultipleCores()
6262  != other.getFindMultipleCores()) return false;
6263  }
6264  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
6265  if (hasCoverOptimization()) {
6266  if (getCoverOptimization()
6267  != other.getCoverOptimization()) return false;
6268  }
6269  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
6270  if (hasMaxSatAssumptionOrder()) {
6271  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
6272  }
6273  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
6276  != other.getMaxSatReverseAssumptionOrder()) return false;
6277  }
6278  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
6279  if (hasMaxSatStratification()) {
6280  if (maxSatStratification_ != other.maxSatStratification_) return false;
6281  }
6282  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
6285  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
6286  }
6287  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
6290  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
6291  }
6292  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6295  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6296  }
6297  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6300  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6301  }
6302  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
6303  if (hasLinearizationLevel()) {
6304  if (getLinearizationLevel()
6305  != other.getLinearizationLevel()) return false;
6306  }
6307  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
6308  if (hasBooleanEncodingLevel()) {
6310  != other.getBooleanEncodingLevel()) return false;
6311  }
6312  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
6313  if (hasMaxNumCuts()) {
6314  if (getMaxNumCuts()
6315  != other.getMaxNumCuts()) return false;
6316  }
6317  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
6318  if (hasOnlyAddCutsAtLevelZero()) {
6320  != other.getOnlyAddCutsAtLevelZero()) return false;
6321  }
6322  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
6323  if (hasAddKnapsackCuts()) {
6324  if (getAddKnapsackCuts()
6325  != other.getAddKnapsackCuts()) return false;
6326  }
6327  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
6328  if (hasAddCgCuts()) {
6329  if (getAddCgCuts()
6330  != other.getAddCgCuts()) return false;
6331  }
6332  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
6333  if (hasAddMirCuts()) {
6334  if (getAddMirCuts()
6335  != other.getAddMirCuts()) return false;
6336  }
6337  if (hasUseMirRounding() != other.hasUseMirRounding()) return false;
6338  if (hasUseMirRounding()) {
6339  if (getUseMirRounding()
6340  != other.getUseMirRounding()) return false;
6341  }
6342  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
6345  != other.getMaxIntegerRoundingScaling()) return false;
6346  }
6347  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
6348  if (hasAddLpConstraintsLazily()) {
6350  != other.getAddLpConstraintsLazily()) return false;
6351  }
6352  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
6354  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
6355  != java.lang.Double.doubleToLongBits(
6356  other.getMinOrthogonalityForLpConstraints())) return false;
6357  }
6358  if (hasMaxInactiveCount() != other.hasMaxInactiveCount()) return false;
6359  if (hasMaxInactiveCount()) {
6360  if (getMaxInactiveCount()
6361  != other.getMaxInactiveCount()) return false;
6362  }
6363  if (hasConstraintRemovalBatchSize() != other.hasConstraintRemovalBatchSize()) return false;
6366  != other.getConstraintRemovalBatchSize()) return false;
6367  }
6368  if (hasSearchBranching() != other.hasSearchBranching()) return false;
6369  if (hasSearchBranching()) {
6370  if (searchBranching_ != other.searchBranching_) return false;
6371  }
6372  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
6375  != other.getExploitIntegerLpSolution()) return false;
6376  }
6377  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
6378  if (hasExploitAllLpSolution()) {
6380  != other.getExploitAllLpSolution()) return false;
6381  }
6382  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
6383  if (hasExploitBestSolution()) {
6385  != other.getExploitBestSolution()) return false;
6386  }
6387  if (hasExploitObjective() != other.hasExploitObjective()) return false;
6388  if (hasExploitObjective()) {
6389  if (getExploitObjective()
6390  != other.getExploitObjective()) return false;
6391  }
6392  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
6395  != other.getPseudoCostReliabilityThreshold()) return false;
6396  }
6397  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
6398  if (hasOptimizeWithCore()) {
6399  if (getOptimizeWithCore()
6400  != other.getOptimizeWithCore()) return false;
6401  }
6402  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
6405  != other.getBinarySearchNumConflicts()) return false;
6406  }
6407  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
6408  if (hasOptimizeWithMaxHs()) {
6409  if (getOptimizeWithMaxHs()
6410  != other.getOptimizeWithMaxHs()) return false;
6411  }
6412  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
6413  if (hasCpModelPresolve()) {
6414  if (getCpModelPresolve()
6415  != other.getCpModelPresolve()) return false;
6416  }
6417  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
6418  if (hasCpModelProbingLevel()) {
6420  != other.getCpModelProbingLevel()) return false;
6421  }
6422  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
6423  if (hasCpModelUseSatPresolve()) {
6425  != other.getCpModelUseSatPresolve()) return false;
6426  }
6427  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
6428  if (hasEnumerateAllSolutions()) {
6430  != other.getEnumerateAllSolutions()) return false;
6431  }
6432  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
6435  != other.getFillTightenedDomainsInResponse()) return false;
6436  }
6437  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
6440  != other.getInstantiateAllVariables()) return false;
6441  }
6442  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
6445  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
6446  }
6447  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
6448  if (hasStopAfterFirstSolution()) {
6450  != other.getStopAfterFirstSolution()) return false;
6451  }
6452  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
6453  if (hasNumSearchWorkers()) {
6454  if (getNumSearchWorkers()
6455  != other.getNumSearchWorkers()) return false;
6456  }
6457  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
6458  if (hasShareObjectiveBounds()) {
6460  != other.getShareObjectiveBounds()) return false;
6461  }
6462  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
6463  if (hasShareLevelZeroBounds()) {
6465  != other.getShareLevelZeroBounds()) return false;
6466  }
6467  if (hasUseLns() != other.hasUseLns()) return false;
6468  if (hasUseLns()) {
6469  if (getUseLns()
6470  != other.getUseLns()) return false;
6471  }
6472  if (hasLnsNumThreads() != other.hasLnsNumThreads()) return false;
6473  if (hasLnsNumThreads()) {
6474  if (getLnsNumThreads()
6475  != other.getLnsNumThreads()) return false;
6476  }
6477  if (hasLnsIsDeterministic() != other.hasLnsIsDeterministic()) return false;
6478  if (hasLnsIsDeterministic()) {
6479  if (getLnsIsDeterministic()
6480  != other.getLnsIsDeterministic()) return false;
6481  }
6482  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
6485  != other.getLnsFocusOnDecisionVariables()) return false;
6486  }
6487  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
6488  if (hasUseRinsLns()) {
6489  if (getUseRinsLns()
6490  != other.getUseRinsLns()) return false;
6491  }
6492  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
6493  if (hasRandomizeSearch()) {
6494  if (getRandomizeSearch()
6495  != other.getRandomizeSearch()) return false;
6496  }
6497  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
6500  != other.getSearchRandomizationTolerance()) return false;
6501  }
6502  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
6503  if (hasUseOptionalVariables()) {
6505  != other.getUseOptionalVariables()) return false;
6506  }
6507  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
6508  if (hasUseExactLpReason()) {
6509  if (getUseExactLpReason()
6510  != other.getUseExactLpReason()) return false;
6511  }
6512  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
6513  if (hasUseCombinedNoOverlap()) {
6515  != other.getUseCombinedNoOverlap()) return false;
6516  }
6517  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
6518  if (hasMipMaxBound()) {
6519  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
6520  != java.lang.Double.doubleToLongBits(
6521  other.getMipMaxBound())) return false;
6522  }
6523  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
6524  if (hasMipVarScaling()) {
6525  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
6526  != java.lang.Double.doubleToLongBits(
6527  other.getMipVarScaling())) return false;
6528  }
6529  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
6530  if (hasMipWantedPrecision()) {
6531  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
6532  != java.lang.Double.doubleToLongBits(
6533  other.getMipWantedPrecision())) return false;
6534  }
6535  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
6536  if (hasMipMaxActivityExponent()) {
6538  != other.getMipMaxActivityExponent()) return false;
6539  }
6540  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
6541  if (hasMipCheckPrecision()) {
6542  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
6543  != java.lang.Double.doubleToLongBits(
6544  other.getMipCheckPrecision())) return false;
6545  }
6546  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
6547  if (hasCatchSigintSignal()) {
6548  if (getCatchSigintSignal()
6549  != other.getCatchSigintSignal()) return false;
6550  }
6551  if (!unknownFields.equals(other.unknownFields)) return false;
6552  return true;
6553  }
6554 
6555  @java.lang.Override
6556  public int hashCode() {
6557  if (memoizedHashCode != 0) {
6558  return memoizedHashCode;
6559  }
6560  int hash = 41;
6561  hash = (19 * hash) + getDescriptor().hashCode();
6562  if (hasPreferredVariableOrder()) {
6563  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
6564  hash = (53 * hash) + preferredVariableOrder_;
6565  }
6566  if (hasInitialPolarity()) {
6567  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
6568  hash = (53 * hash) + initialPolarity_;
6569  }
6570  if (hasUsePhaseSaving()) {
6571  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
6572  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6573  getUsePhaseSaving());
6574  }
6575  if (hasRandomPolarityRatio()) {
6576  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
6577  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6578  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
6579  }
6580  if (hasRandomBranchesRatio()) {
6581  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
6582  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6583  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
6584  }
6585  if (hasUseErwaHeuristic()) {
6586  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
6587  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6589  }
6591  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
6592  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6593  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
6594  }
6597  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6599  }
6600  if (hasMinimizationAlgorithm()) {
6601  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6602  hash = (53 * hash) + minimizationAlgorithm_;
6603  }
6605  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6606  hash = (53 * hash) + binaryMinimizationAlgorithm_;
6607  }
6610  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6612  }
6613  if (hasClauseCleanupPeriod()) {
6614  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
6615  hash = (53 * hash) + getClauseCleanupPeriod();
6616  }
6617  if (hasClauseCleanupTarget()) {
6618  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
6619  hash = (53 * hash) + getClauseCleanupTarget();
6620  }
6622  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
6623  hash = (53 * hash) + clauseCleanupProtection_;
6624  }
6625  if (hasClauseCleanupLbdBound()) {
6626  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
6627  hash = (53 * hash) + getClauseCleanupLbdBound();
6628  }
6629  if (hasClauseCleanupOrdering()) {
6630  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
6631  hash = (53 * hash) + clauseCleanupOrdering_;
6632  }
6633  if (hasPbCleanupIncrement()) {
6634  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
6635  hash = (53 * hash) + getPbCleanupIncrement();
6636  }
6637  if (hasPbCleanupRatio()) {
6638  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
6639  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6640  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
6641  }
6644  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
6645  }
6648  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
6649  }
6650  if (hasVariableActivityDecay()) {
6651  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
6652  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6653  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
6654  }
6656  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
6657  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6658  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
6659  }
6660  if (hasGlucoseMaxDecay()) {
6661  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
6662  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6663  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
6664  }
6665  if (hasGlucoseDecayIncrement()) {
6666  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
6667  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6668  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
6669  }
6671  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
6672  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
6673  }
6674  if (hasClauseActivityDecay()) {
6675  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
6676  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6677  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
6678  }
6679  if (hasMaxClauseActivityValue()) {
6680  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
6681  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6682  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
6683  }
6684  if (getRestartAlgorithmsCount() > 0) {
6685  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
6686  hash = (53 * hash) + restartAlgorithms_.hashCode();
6687  }
6689  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
6690  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
6691  }
6692  if (hasRestartPeriod()) {
6693  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
6694  hash = (53 * hash) + getRestartPeriod();
6695  }
6697  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
6698  hash = (53 * hash) + getRestartRunningWindowSize();
6699  }
6700  if (hasRestartDlAverageRatio()) {
6701  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
6702  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6703  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
6704  }
6705  if (hasRestartLbdAverageRatio()) {
6706  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
6707  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6708  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
6709  }
6710  if (hasUseBlockingRestart()) {
6711  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
6712  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6714  }
6716  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
6717  hash = (53 * hash) + getBlockingRestartWindowSize();
6718  }
6720  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
6721  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6722  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
6723  }
6726  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
6727  }
6729  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
6730  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6731  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
6732  }
6733  if (hasMaxTimeInSeconds()) {
6734  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
6735  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6736  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
6737  }
6738  if (hasMaxDeterministicTime()) {
6739  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
6740  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6741  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
6742  }
6743  if (hasMaxNumberOfConflicts()) {
6744  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
6745  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6747  }
6748  if (hasMaxMemoryInMb()) {
6749  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
6750  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6751  getMaxMemoryInMb());
6752  }
6754  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
6755  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6757  }
6758  if (hasRandomSeed()) {
6759  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
6760  hash = (53 * hash) + getRandomSeed();
6761  }
6762  if (hasLogSearchProgress()) {
6763  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
6764  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6766  }
6767  if (hasUsePbResolution()) {
6768  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
6769  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6770  getUsePbResolution());
6771  }
6774  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6776  }
6778  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
6779  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6781  }
6782  if (hasPresolveBveThreshold()) {
6783  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
6784  hash = (53 * hash) + getPresolveBveThreshold();
6785  }
6787  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
6788  hash = (53 * hash) + getPresolveBveClauseWeight();
6789  }
6792  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6793  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
6794  }
6795  if (hasPresolveBlockedClause()) {
6796  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
6797  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6799  }
6800  if (hasPresolveUseBva()) {
6801  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
6802  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6803  getPresolveUseBva());
6804  }
6805  if (hasPresolveBvaThreshold()) {
6806  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
6807  hash = (53 * hash) + getPresolveBvaThreshold();
6808  }
6809  if (hasUseOptimizationHints()) {
6810  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
6811  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6813  }
6814  if (hasMinimizeCore()) {
6815  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
6816  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6817  getMinimizeCore());
6818  }
6819  if (hasFindMultipleCores()) {
6820  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
6821  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6823  }
6824  if (hasCoverOptimization()) {
6825  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
6826  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6828  }
6829  if (hasMaxSatAssumptionOrder()) {
6830  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
6831  hash = (53 * hash) + maxSatAssumptionOrder_;
6832  }
6834  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
6835  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6837  }
6838  if (hasMaxSatStratification()) {
6839  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
6840  hash = (53 * hash) + maxSatStratification_;
6841  }
6844  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6846  }
6849  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6851  }
6854  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6856  }
6859  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6861  }
6862  if (hasLinearizationLevel()) {
6863  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
6864  hash = (53 * hash) + getLinearizationLevel();
6865  }
6866  if (hasBooleanEncodingLevel()) {
6867  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
6868  hash = (53 * hash) + getBooleanEncodingLevel();
6869  }
6870  if (hasMaxNumCuts()) {
6871  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
6872  hash = (53 * hash) + getMaxNumCuts();
6873  }
6874  if (hasOnlyAddCutsAtLevelZero()) {
6875  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
6876  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6878  }
6879  if (hasAddKnapsackCuts()) {
6880  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
6881  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6882  getAddKnapsackCuts());
6883  }
6884  if (hasAddCgCuts()) {
6885  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
6886  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6887  getAddCgCuts());
6888  }
6889  if (hasAddMirCuts()) {
6890  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
6891  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6892  getAddMirCuts());
6893  }
6894  if (hasUseMirRounding()) {
6895  hash = (37 * hash) + USE_MIR_ROUNDING_FIELD_NUMBER;
6896  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6897  getUseMirRounding());
6898  }
6900  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
6901  hash = (53 * hash) + getMaxIntegerRoundingScaling();
6902  }
6903  if (hasAddLpConstraintsLazily()) {
6904  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
6905  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6907  }
6910  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6911  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
6912  }
6913  if (hasMaxInactiveCount()) {
6914  hash = (37 * hash) + MAX_INACTIVE_COUNT_FIELD_NUMBER;
6915  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6917  }
6919  hash = (37 * hash) + CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER;
6920  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6922  }
6923  if (hasSearchBranching()) {
6924  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
6925  hash = (53 * hash) + searchBranching_;
6926  }
6928  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
6929  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6931  }
6932  if (hasExploitAllLpSolution()) {
6933  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
6934  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6936  }
6937  if (hasExploitBestSolution()) {
6938  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
6939  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6941  }
6942  if (hasExploitObjective()) {
6943  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
6944  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6946  }
6949  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6951  }
6952  if (hasOptimizeWithCore()) {
6953  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
6954  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6956  }
6958  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
6959  hash = (53 * hash) + getBinarySearchNumConflicts();
6960  }
6961  if (hasOptimizeWithMaxHs()) {
6962  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
6963  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6965  }
6966  if (hasCpModelPresolve()) {
6967  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
6968  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6969  getCpModelPresolve());
6970  }
6971  if (hasCpModelProbingLevel()) {
6972  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
6973  hash = (53 * hash) + getCpModelProbingLevel();
6974  }
6975  if (hasCpModelUseSatPresolve()) {
6976  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
6977  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6979  }
6980  if (hasEnumerateAllSolutions()) {
6981  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
6982  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6984  }
6987  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6989  }
6991  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
6992  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6994  }
6997  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6999  }
7000  if (hasStopAfterFirstSolution()) {
7001  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
7002  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7004  }
7005  if (hasNumSearchWorkers()) {
7006  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
7007  hash = (53 * hash) + getNumSearchWorkers();
7008  }
7009  if (hasShareObjectiveBounds()) {
7010  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
7011  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7013  }
7014  if (hasShareLevelZeroBounds()) {
7015  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
7016  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7018  }
7019  if (hasUseLns()) {
7020  hash = (37 * hash) + USE_LNS_FIELD_NUMBER;
7021  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7022  getUseLns());
7023  }
7024  if (hasLnsNumThreads()) {
7025  hash = (37 * hash) + LNS_NUM_THREADS_FIELD_NUMBER;
7026  hash = (53 * hash) + getLnsNumThreads();
7027  }
7028  if (hasLnsIsDeterministic()) {
7029  hash = (37 * hash) + LNS_IS_DETERMINISTIC_FIELD_NUMBER;
7030  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7032  }
7034  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
7035  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7037  }
7038  if (hasUseRinsLns()) {
7039  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
7040  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7041  getUseRinsLns());
7042  }
7043  if (hasRandomizeSearch()) {
7044  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
7045  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7046  getRandomizeSearch());
7047  }
7049  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
7050  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7052  }
7053  if (hasUseOptionalVariables()) {
7054  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
7055  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7057  }
7058  if (hasUseExactLpReason()) {
7059  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
7060  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7062  }
7063  if (hasUseCombinedNoOverlap()) {
7064  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
7065  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7067  }
7068  if (hasMipMaxBound()) {
7069  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
7070  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7071  java.lang.Double.doubleToLongBits(getMipMaxBound()));
7072  }
7073  if (hasMipVarScaling()) {
7074  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
7075  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7076  java.lang.Double.doubleToLongBits(getMipVarScaling()));
7077  }
7078  if (hasMipWantedPrecision()) {
7079  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
7080  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7081  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
7082  }
7083  if (hasMipMaxActivityExponent()) {
7084  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
7085  hash = (53 * hash) + getMipMaxActivityExponent();
7086  }
7087  if (hasMipCheckPrecision()) {
7088  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
7089  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7090  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
7091  }
7092  if (hasCatchSigintSignal()) {
7093  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
7094  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7096  }
7097  hash = (29 * hash) + unknownFields.hashCode();
7098  memoizedHashCode = hash;
7099  return hash;
7100  }
7101 
7103  java.nio.ByteBuffer data)
7104  throws com.google.protobuf.InvalidProtocolBufferException {
7105  return PARSER.parseFrom(data);
7106  }
7108  java.nio.ByteBuffer data,
7109  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7110  throws com.google.protobuf.InvalidProtocolBufferException {
7111  return PARSER.parseFrom(data, extensionRegistry);
7112  }
7114  com.google.protobuf.ByteString data)
7115  throws com.google.protobuf.InvalidProtocolBufferException {
7116  return PARSER.parseFrom(data);
7117  }
7119  com.google.protobuf.ByteString data,
7120  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7121  throws com.google.protobuf.InvalidProtocolBufferException {
7122  return PARSER.parseFrom(data, extensionRegistry);
7123  }
7124  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
7125  throws com.google.protobuf.InvalidProtocolBufferException {
7126  return PARSER.parseFrom(data);
7127  }
7129  byte[] data,
7130  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7131  throws com.google.protobuf.InvalidProtocolBufferException {
7132  return PARSER.parseFrom(data, extensionRegistry);
7133  }
7134  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
7135  throws java.io.IOException {
7136  return com.google.protobuf.GeneratedMessageV3
7137  .parseWithIOException(PARSER, input);
7138  }
7140  java.io.InputStream input,
7141  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7142  throws java.io.IOException {
7143  return com.google.protobuf.GeneratedMessageV3
7144  .parseWithIOException(PARSER, input, extensionRegistry);
7145  }
7146  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
7147  throws java.io.IOException {
7148  return com.google.protobuf.GeneratedMessageV3
7149  .parseDelimitedWithIOException(PARSER, input);
7150  }
7152  java.io.InputStream input,
7153  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7154  throws java.io.IOException {
7155  return com.google.protobuf.GeneratedMessageV3
7156  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7157  }
7159  com.google.protobuf.CodedInputStream input)
7160  throws java.io.IOException {
7161  return com.google.protobuf.GeneratedMessageV3
7162  .parseWithIOException(PARSER, input);
7163  }
7165  com.google.protobuf.CodedInputStream input,
7166  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7167  throws java.io.IOException {
7168  return com.google.protobuf.GeneratedMessageV3
7169  .parseWithIOException(PARSER, input, extensionRegistry);
7170  }
7171 
7172  @java.lang.Override
7173  public Builder newBuilderForType() { return newBuilder(); }
7174  public static Builder newBuilder() {
7175  return DEFAULT_INSTANCE.toBuilder();
7176  }
7177  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
7178  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7179  }
7180  @java.lang.Override
7181  public Builder toBuilder() {
7182  return this == DEFAULT_INSTANCE
7183  ? new Builder() : new Builder().mergeFrom(this);
7184  }
7185 
7186  @java.lang.Override
7188  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7189  Builder builder = new Builder(parent);
7190  return builder;
7191  }
7201  public static final class Builder extends
7202  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7203  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
7204  com.google.ortools.sat.SatParametersOrBuilder {
7205  public static final com.google.protobuf.Descriptors.Descriptor
7207  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7208  }
7209 
7210  @java.lang.Override
7211  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7213  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
7214  .ensureFieldAccessorsInitialized(
7216  }
7217 
7218  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
7219  private Builder() {
7220  maybeForceBuilderInitialization();
7221  }
7222 
7223  private Builder(
7224  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7225  super(parent);
7226  maybeForceBuilderInitialization();
7227  }
7228  private void maybeForceBuilderInitialization() {
7229  if (com.google.protobuf.GeneratedMessageV3
7230  .alwaysUseFieldBuilders) {
7231  }
7232  }
7233  @java.lang.Override
7234  public Builder clear() {
7235  super.clear();
7236  preferredVariableOrder_ = 0;
7237  bitField0_ = (bitField0_ & ~0x00000001);
7238  initialPolarity_ = 1;
7239  bitField0_ = (bitField0_ & ~0x00000002);
7240  usePhaseSaving_ = true;
7241  bitField0_ = (bitField0_ & ~0x00000004);
7242  randomPolarityRatio_ = 0D;
7243  bitField0_ = (bitField0_ & ~0x00000008);
7244  randomBranchesRatio_ = 0D;
7245  bitField0_ = (bitField0_ & ~0x00000010);
7246  useErwaHeuristic_ = false;
7247  bitField0_ = (bitField0_ & ~0x00000020);
7248  initialVariablesActivity_ = 0D;
7249  bitField0_ = (bitField0_ & ~0x00000040);
7250  alsoBumpVariablesInConflictReasons_ = false;
7251  bitField0_ = (bitField0_ & ~0x00000080);
7252  minimizationAlgorithm_ = 2;
7253  bitField0_ = (bitField0_ & ~0x00000100);
7254  binaryMinimizationAlgorithm_ = 1;
7255  bitField0_ = (bitField0_ & ~0x00000200);
7256  subsumptionDuringConflictAnalysis_ = true;
7257  bitField0_ = (bitField0_ & ~0x00000400);
7258  clauseCleanupPeriod_ = 10000;
7259  bitField0_ = (bitField0_ & ~0x00000800);
7260  clauseCleanupTarget_ = 10000;
7261  bitField0_ = (bitField0_ & ~0x00001000);
7262  clauseCleanupProtection_ = 0;
7263  bitField0_ = (bitField0_ & ~0x00002000);
7264  clauseCleanupLbdBound_ = 5;
7265  bitField0_ = (bitField0_ & ~0x00004000);
7266  clauseCleanupOrdering_ = 0;
7267  bitField0_ = (bitField0_ & ~0x00008000);
7268  pbCleanupIncrement_ = 200;
7269  bitField0_ = (bitField0_ & ~0x00010000);
7270  pbCleanupRatio_ = 0.5D;
7271  bitField0_ = (bitField0_ & ~0x00020000);
7272  minimizeWithPropagationRestartPeriod_ = 10;
7273  bitField0_ = (bitField0_ & ~0x00040000);
7274  minimizeWithPropagationNumDecisions_ = 1000;
7275  bitField0_ = (bitField0_ & ~0x00080000);
7276  variableActivityDecay_ = 0.8D;
7277  bitField0_ = (bitField0_ & ~0x00100000);
7278  maxVariableActivityValue_ = 1e+100D;
7279  bitField0_ = (bitField0_ & ~0x00200000);
7280  glucoseMaxDecay_ = 0.95D;
7281  bitField0_ = (bitField0_ & ~0x00400000);
7282  glucoseDecayIncrement_ = 0.01D;
7283  bitField0_ = (bitField0_ & ~0x00800000);
7284  glucoseDecayIncrementPeriod_ = 5000;
7285  bitField0_ = (bitField0_ & ~0x01000000);
7286  clauseActivityDecay_ = 0.999D;
7287  bitField0_ = (bitField0_ & ~0x02000000);
7288  maxClauseActivityValue_ = 1e+20D;
7289  bitField0_ = (bitField0_ & ~0x04000000);
7290  restartAlgorithms_ = java.util.Collections.emptyList();
7291  bitField0_ = (bitField0_ & ~0x08000000);
7292  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
7293  bitField0_ = (bitField0_ & ~0x10000000);
7294  restartPeriod_ = 50;
7295  bitField0_ = (bitField0_ & ~0x20000000);
7296  restartRunningWindowSize_ = 50;
7297  bitField0_ = (bitField0_ & ~0x40000000);
7298  restartDlAverageRatio_ = 1D;
7299  bitField0_ = (bitField0_ & ~0x80000000);
7300  restartLbdAverageRatio_ = 1D;
7301  bitField1_ = (bitField1_ & ~0x00000001);
7302  useBlockingRestart_ = false;
7303  bitField1_ = (bitField1_ & ~0x00000002);
7304  blockingRestartWindowSize_ = 5000;
7305  bitField1_ = (bitField1_ & ~0x00000004);
7306  blockingRestartMultiplier_ = 1.4D;
7307  bitField1_ = (bitField1_ & ~0x00000008);
7308  numConflictsBeforeStrategyChanges_ = 0;
7309  bitField1_ = (bitField1_ & ~0x00000010);
7310  strategyChangeIncreaseRatio_ = 0D;
7311  bitField1_ = (bitField1_ & ~0x00000020);
7312  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
7313  bitField1_ = (bitField1_ & ~0x00000040);
7314  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
7315  bitField1_ = (bitField1_ & ~0x00000080);
7316  maxNumberOfConflicts_ = 9223372036854775807L;
7317  bitField1_ = (bitField1_ & ~0x00000100);
7318  maxMemoryInMb_ = 10000L;
7319  bitField1_ = (bitField1_ & ~0x00000200);
7320  treatBinaryClausesSeparately_ = true;
7321  bitField1_ = (bitField1_ & ~0x00000400);
7322  randomSeed_ = 1;
7323  bitField1_ = (bitField1_ & ~0x00000800);
7324  logSearchProgress_ = false;
7325  bitField1_ = (bitField1_ & ~0x00001000);
7326  usePbResolution_ = false;
7327  bitField1_ = (bitField1_ & ~0x00002000);
7328  minimizeReductionDuringPbResolution_ = false;
7329  bitField1_ = (bitField1_ & ~0x00004000);
7330  countAssumptionLevelsInLbd_ = true;
7331  bitField1_ = (bitField1_ & ~0x00008000);
7332  presolveBveThreshold_ = 500;
7333  bitField1_ = (bitField1_ & ~0x00010000);
7334  presolveBveClauseWeight_ = 3;
7335  bitField1_ = (bitField1_ & ~0x00020000);
7336  presolveProbingDeterministicTimeLimit_ = 30D;
7337  bitField1_ = (bitField1_ & ~0x00040000);
7338  presolveBlockedClause_ = true;
7339  bitField1_ = (bitField1_ & ~0x00080000);
7340  presolveUseBva_ = true;
7341  bitField1_ = (bitField1_ & ~0x00100000);
7342  presolveBvaThreshold_ = 1;
7343  bitField1_ = (bitField1_ & ~0x00200000);
7344  useOptimizationHints_ = true;
7345  bitField1_ = (bitField1_ & ~0x00400000);
7346  minimizeCore_ = true;
7347  bitField1_ = (bitField1_ & ~0x00800000);
7348  findMultipleCores_ = true;
7349  bitField1_ = (bitField1_ & ~0x01000000);
7350  coverOptimization_ = true;
7351  bitField1_ = (bitField1_ & ~0x02000000);
7352  maxSatAssumptionOrder_ = 0;
7353  bitField1_ = (bitField1_ & ~0x04000000);
7354  maxSatReverseAssumptionOrder_ = false;
7355  bitField1_ = (bitField1_ & ~0x08000000);
7356  maxSatStratification_ = 1;
7357  bitField1_ = (bitField1_ & ~0x10000000);
7358  usePrecedencesInDisjunctiveConstraint_ = true;
7359  bitField1_ = (bitField1_ & ~0x20000000);
7360  useOverloadCheckerInCumulativeConstraint_ = false;
7361  bitField1_ = (bitField1_ & ~0x40000000);
7362  useTimetableEdgeFindingInCumulativeConstraint_ = false;
7363  bitField1_ = (bitField1_ & ~0x80000000);
7364  useDisjunctiveConstraintInCumulativeConstraint_ = true;
7365  bitField2_ = (bitField2_ & ~0x00000001);
7366  linearizationLevel_ = 1;
7367  bitField2_ = (bitField2_ & ~0x00000002);
7368  booleanEncodingLevel_ = 1;
7369  bitField2_ = (bitField2_ & ~0x00000004);
7370  maxNumCuts_ = 1000;
7371  bitField2_ = (bitField2_ & ~0x00000008);
7372  onlyAddCutsAtLevelZero_ = false;
7373  bitField2_ = (bitField2_ & ~0x00000010);
7374  addKnapsackCuts_ = false;
7375  bitField2_ = (bitField2_ & ~0x00000020);
7376  addCgCuts_ = false;
7377  bitField2_ = (bitField2_ & ~0x00000040);
7378  addMirCuts_ = true;
7379  bitField2_ = (bitField2_ & ~0x00000080);
7380  useMirRounding_ = true;
7381  bitField2_ = (bitField2_ & ~0x00000100);
7382  maxIntegerRoundingScaling_ = 600;
7383  bitField2_ = (bitField2_ & ~0x00000200);
7384  addLpConstraintsLazily_ = true;
7385  bitField2_ = (bitField2_ & ~0x00000400);
7386  minOrthogonalityForLpConstraints_ = 0D;
7387  bitField2_ = (bitField2_ & ~0x00000800);
7388  maxInactiveCount_ = 1000L;
7389  bitField2_ = (bitField2_ & ~0x00001000);
7390  constraintRemovalBatchSize_ = 100L;
7391  bitField2_ = (bitField2_ & ~0x00002000);
7392  searchBranching_ = 0;
7393  bitField2_ = (bitField2_ & ~0x00004000);
7394  exploitIntegerLpSolution_ = true;
7395  bitField2_ = (bitField2_ & ~0x00008000);
7396  exploitAllLpSolution_ = true;
7397  bitField2_ = (bitField2_ & ~0x00010000);
7398  exploitBestSolution_ = false;
7399  bitField2_ = (bitField2_ & ~0x00020000);
7400  exploitObjective_ = true;
7401  bitField2_ = (bitField2_ & ~0x00040000);
7402  pseudoCostReliabilityThreshold_ = 100L;
7403  bitField2_ = (bitField2_ & ~0x00080000);
7404  optimizeWithCore_ = false;
7405  bitField2_ = (bitField2_ & ~0x00100000);
7406  binarySearchNumConflicts_ = -1;
7407  bitField2_ = (bitField2_ & ~0x00200000);
7408  optimizeWithMaxHs_ = false;
7409  bitField2_ = (bitField2_ & ~0x00400000);
7410  cpModelPresolve_ = true;
7411  bitField2_ = (bitField2_ & ~0x00800000);
7412  cpModelProbingLevel_ = 2;
7413  bitField2_ = (bitField2_ & ~0x01000000);
7414  cpModelUseSatPresolve_ = true;
7415  bitField2_ = (bitField2_ & ~0x02000000);
7416  enumerateAllSolutions_ = false;
7417  bitField2_ = (bitField2_ & ~0x04000000);
7418  fillTightenedDomainsInResponse_ = false;
7419  bitField2_ = (bitField2_ & ~0x08000000);
7420  instantiateAllVariables_ = true;
7421  bitField2_ = (bitField2_ & ~0x10000000);
7422  autoDetectGreaterThanAtLeastOneOf_ = true;
7423  bitField2_ = (bitField2_ & ~0x20000000);
7424  stopAfterFirstSolution_ = false;
7425  bitField2_ = (bitField2_ & ~0x40000000);
7426  numSearchWorkers_ = 0;
7427  bitField2_ = (bitField2_ & ~0x80000000);
7428  shareObjectiveBounds_ = true;
7429  bitField3_ = (bitField3_ & ~0x00000001);
7430  shareLevelZeroBounds_ = true;
7431  bitField3_ = (bitField3_ & ~0x00000002);
7432  useLns_ = false;
7433  bitField3_ = (bitField3_ & ~0x00000004);
7434  lnsNumThreads_ = 1;
7435  bitField3_ = (bitField3_ & ~0x00000008);
7436  lnsIsDeterministic_ = true;
7437  bitField3_ = (bitField3_ & ~0x00000010);
7438  lnsFocusOnDecisionVariables_ = false;
7439  bitField3_ = (bitField3_ & ~0x00000020);
7440  useRinsLns_ = false;
7441  bitField3_ = (bitField3_ & ~0x00000040);
7442  randomizeSearch_ = false;
7443  bitField3_ = (bitField3_ & ~0x00000080);
7444  searchRandomizationTolerance_ = 0L;
7445  bitField3_ = (bitField3_ & ~0x00000100);
7446  useOptionalVariables_ = true;
7447  bitField3_ = (bitField3_ & ~0x00000200);
7448  useExactLpReason_ = true;
7449  bitField3_ = (bitField3_ & ~0x00000400);
7450  useCombinedNoOverlap_ = false;
7451  bitField3_ = (bitField3_ & ~0x00000800);
7452  mipMaxBound_ = 10000000D;
7453  bitField3_ = (bitField3_ & ~0x00001000);
7454  mipVarScaling_ = 1D;
7455  bitField3_ = (bitField3_ & ~0x00002000);
7456  mipWantedPrecision_ = 1e-06D;
7457  bitField3_ = (bitField3_ & ~0x00004000);
7458  mipMaxActivityExponent_ = 53;
7459  bitField3_ = (bitField3_ & ~0x00008000);
7460  mipCheckPrecision_ = 0.0001D;
7461  bitField3_ = (bitField3_ & ~0x00010000);
7462  catchSigintSignal_ = true;
7463  bitField3_ = (bitField3_ & ~0x00020000);
7464  return this;
7465  }
7466 
7467  @java.lang.Override
7468  public com.google.protobuf.Descriptors.Descriptor
7470  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7471  }
7472 
7473  @java.lang.Override
7476  }
7477 
7478  @java.lang.Override
7481  if (!result.isInitialized()) {
7482  throw newUninitializedMessageException(result);
7483  }
7484  return result;
7485  }
7486 
7487  @java.lang.Override
7490  int from_bitField0_ = bitField0_;
7491  int from_bitField1_ = bitField1_;
7492  int from_bitField2_ = bitField2_;
7493  int from_bitField3_ = bitField3_;
7494  int to_bitField0_ = 0;
7495  int to_bitField1_ = 0;
7496  int to_bitField2_ = 0;
7497  int to_bitField3_ = 0;
7498  if (((from_bitField0_ & 0x00000001) != 0)) {
7499  to_bitField0_ |= 0x00000001;
7500  }
7501  result.preferredVariableOrder_ = preferredVariableOrder_;
7502  if (((from_bitField0_ & 0x00000002) != 0)) {
7503  to_bitField0_ |= 0x00000002;
7504  }
7505  result.initialPolarity_ = initialPolarity_;
7506  if (((from_bitField0_ & 0x00000004) != 0)) {
7507  to_bitField0_ |= 0x00000004;
7508  }
7509  result.usePhaseSaving_ = usePhaseSaving_;
7510  if (((from_bitField0_ & 0x00000008) != 0)) {
7511  result.randomPolarityRatio_ = randomPolarityRatio_;
7512  to_bitField0_ |= 0x00000008;
7513  }
7514  if (((from_bitField0_ & 0x00000010) != 0)) {
7515  result.randomBranchesRatio_ = randomBranchesRatio_;
7516  to_bitField0_ |= 0x00000010;
7517  }
7518  if (((from_bitField0_ & 0x00000020) != 0)) {
7519  result.useErwaHeuristic_ = useErwaHeuristic_;
7520  to_bitField0_ |= 0x00000020;
7521  }
7522  if (((from_bitField0_ & 0x00000040) != 0)) {
7523  result.initialVariablesActivity_ = initialVariablesActivity_;
7524  to_bitField0_ |= 0x00000040;
7525  }
7526  if (((from_bitField0_ & 0x00000080) != 0)) {
7527  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
7528  to_bitField0_ |= 0x00000080;
7529  }
7530  if (((from_bitField0_ & 0x00000100) != 0)) {
7531  to_bitField0_ |= 0x00000100;
7532  }
7533  result.minimizationAlgorithm_ = minimizationAlgorithm_;
7534  if (((from_bitField0_ & 0x00000200) != 0)) {
7535  to_bitField0_ |= 0x00000200;
7536  }
7537  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
7538  if (((from_bitField0_ & 0x00000400) != 0)) {
7539  to_bitField0_ |= 0x00000400;
7540  }
7541  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
7542  if (((from_bitField0_ & 0x00000800) != 0)) {
7543  to_bitField0_ |= 0x00000800;
7544  }
7545  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
7546  if (((from_bitField0_ & 0x00001000) != 0)) {
7547  to_bitField0_ |= 0x00001000;
7548  }
7549  result.clauseCleanupTarget_ = clauseCleanupTarget_;
7550  if (((from_bitField0_ & 0x00002000) != 0)) {
7551  to_bitField0_ |= 0x00002000;
7552  }
7553  result.clauseCleanupProtection_ = clauseCleanupProtection_;
7554  if (((from_bitField0_ & 0x00004000) != 0)) {
7555  to_bitField0_ |= 0x00004000;
7556  }
7557  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
7558  if (((from_bitField0_ & 0x00008000) != 0)) {
7559  to_bitField0_ |= 0x00008000;
7560  }
7561  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
7562  if (((from_bitField0_ & 0x00010000) != 0)) {
7563  to_bitField0_ |= 0x00010000;
7564  }
7565  result.pbCleanupIncrement_ = pbCleanupIncrement_;
7566  if (((from_bitField0_ & 0x00020000) != 0)) {
7567  to_bitField0_ |= 0x00020000;
7568  }
7569  result.pbCleanupRatio_ = pbCleanupRatio_;
7570  if (((from_bitField0_ & 0x00040000) != 0)) {
7571  to_bitField0_ |= 0x00040000;
7572  }
7573  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
7574  if (((from_bitField0_ & 0x00080000) != 0)) {
7575  to_bitField0_ |= 0x00080000;
7576  }
7577  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
7578  if (((from_bitField0_ & 0x00100000) != 0)) {
7579  to_bitField0_ |= 0x00100000;
7580  }
7581  result.variableActivityDecay_ = variableActivityDecay_;
7582  if (((from_bitField0_ & 0x00200000) != 0)) {
7583  to_bitField0_ |= 0x00200000;
7584  }
7585  result.maxVariableActivityValue_ = maxVariableActivityValue_;
7586  if (((from_bitField0_ & 0x00400000) != 0)) {
7587  to_bitField0_ |= 0x00400000;
7588  }
7589  result.glucoseMaxDecay_ = glucoseMaxDecay_;
7590  if (((from_bitField0_ & 0x00800000) != 0)) {
7591  to_bitField0_ |= 0x00800000;
7592  }
7593  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
7594  if (((from_bitField0_ & 0x01000000) != 0)) {
7595  to_bitField0_ |= 0x01000000;
7596  }
7597  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
7598  if (((from_bitField0_ & 0x02000000) != 0)) {
7599  to_bitField0_ |= 0x02000000;
7600  }
7601  result.clauseActivityDecay_ = clauseActivityDecay_;
7602  if (((from_bitField0_ & 0x04000000) != 0)) {
7603  to_bitField0_ |= 0x04000000;
7604  }
7605  result.maxClauseActivityValue_ = maxClauseActivityValue_;
7606  if (((bitField0_ & 0x08000000) != 0)) {
7607  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
7608  bitField0_ = (bitField0_ & ~0x08000000);
7609  }
7610  result.restartAlgorithms_ = restartAlgorithms_;
7611  if (((from_bitField0_ & 0x10000000) != 0)) {
7612  to_bitField0_ |= 0x08000000;
7613  }
7614  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
7615  if (((from_bitField0_ & 0x20000000) != 0)) {
7616  to_bitField0_ |= 0x10000000;
7617  }
7618  result.restartPeriod_ = restartPeriod_;
7619  if (((from_bitField0_ & 0x40000000) != 0)) {
7620  to_bitField0_ |= 0x20000000;
7621  }
7622  result.restartRunningWindowSize_ = restartRunningWindowSize_;
7623  if (((from_bitField0_ & 0x80000000) != 0)) {
7624  to_bitField0_ |= 0x40000000;
7625  }
7626  result.restartDlAverageRatio_ = restartDlAverageRatio_;
7627  if (((from_bitField1_ & 0x00000001) != 0)) {
7628  to_bitField0_ |= 0x80000000;
7629  }
7630  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
7631  if (((from_bitField1_ & 0x00000002) != 0)) {
7632  result.useBlockingRestart_ = useBlockingRestart_;
7633  to_bitField1_ |= 0x00000001;
7634  }
7635  if (((from_bitField1_ & 0x00000004) != 0)) {
7636  to_bitField1_ |= 0x00000002;
7637  }
7638  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
7639  if (((from_bitField1_ & 0x00000008) != 0)) {
7640  to_bitField1_ |= 0x00000004;
7641  }
7642  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
7643  if (((from_bitField1_ & 0x00000010) != 0)) {
7644  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
7645  to_bitField1_ |= 0x00000008;
7646  }
7647  if (((from_bitField1_ & 0x00000020) != 0)) {
7648  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
7649  to_bitField1_ |= 0x00000010;
7650  }
7651  if (((from_bitField1_ & 0x00000040) != 0)) {
7652  to_bitField1_ |= 0x00000020;
7653  }
7654  result.maxTimeInSeconds_ = maxTimeInSeconds_;
7655  if (((from_bitField1_ & 0x00000080) != 0)) {
7656  to_bitField1_ |= 0x00000040;
7657  }
7658  result.maxDeterministicTime_ = maxDeterministicTime_;
7659  if (((from_bitField1_ & 0x00000100) != 0)) {
7660  to_bitField1_ |= 0x00000080;
7661  }
7662  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
7663  if (((from_bitField1_ & 0x00000200) != 0)) {
7664  to_bitField1_ |= 0x00000100;
7665  }
7666  result.maxMemoryInMb_ = maxMemoryInMb_;
7667  if (((from_bitField1_ & 0x00000400) != 0)) {
7668  to_bitField1_ |= 0x00000200;
7669  }
7670  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
7671  if (((from_bitField1_ & 0x00000800) != 0)) {
7672  to_bitField1_ |= 0x00000400;
7673  }
7674  result.randomSeed_ = randomSeed_;
7675  if (((from_bitField1_ & 0x00001000) != 0)) {
7676  result.logSearchProgress_ = logSearchProgress_;
7677  to_bitField1_ |= 0x00000800;
7678  }
7679  if (((from_bitField1_ & 0x00002000) != 0)) {
7680  result.usePbResolution_ = usePbResolution_;
7681  to_bitField1_ |= 0x00001000;
7682  }
7683  if (((from_bitField1_ & 0x00004000) != 0)) {
7684  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
7685  to_bitField1_ |= 0x00002000;
7686  }
7687  if (((from_bitField1_ & 0x00008000) != 0)) {
7688  to_bitField1_ |= 0x00004000;
7689  }
7690  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
7691  if (((from_bitField1_ & 0x00010000) != 0)) {
7692  to_bitField1_ |= 0x00008000;
7693  }
7694  result.presolveBveThreshold_ = presolveBveThreshold_;
7695  if (((from_bitField1_ & 0x00020000) != 0)) {
7696  to_bitField1_ |= 0x00010000;
7697  }
7698  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
7699  if (((from_bitField1_ & 0x00040000) != 0)) {
7700  to_bitField1_ |= 0x00020000;
7701  }
7702  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
7703  if (((from_bitField1_ & 0x00080000) != 0)) {
7704  to_bitField1_ |= 0x00040000;
7705  }
7706  result.presolveBlockedClause_ = presolveBlockedClause_;
7707  if (((from_bitField1_ & 0x00100000) != 0)) {
7708  to_bitField1_ |= 0x00080000;
7709  }
7710  result.presolveUseBva_ = presolveUseBva_;
7711  if (((from_bitField1_ & 0x00200000) != 0)) {
7712  to_bitField1_ |= 0x00100000;
7713  }
7714  result.presolveBvaThreshold_ = presolveBvaThreshold_;
7715  if (((from_bitField1_ & 0x00400000) != 0)) {
7716  to_bitField1_ |= 0x00200000;
7717  }
7718  result.useOptimizationHints_ = useOptimizationHints_;
7719  if (((from_bitField1_ & 0x00800000) != 0)) {
7720  to_bitField1_ |= 0x00400000;
7721  }
7722  result.minimizeCore_ = minimizeCore_;
7723  if (((from_bitField1_ & 0x01000000) != 0)) {
7724  to_bitField1_ |= 0x00800000;
7725  }
7726  result.findMultipleCores_ = findMultipleCores_;
7727  if (((from_bitField1_ & 0x02000000) != 0)) {
7728  to_bitField1_ |= 0x01000000;
7729  }
7730  result.coverOptimization_ = coverOptimization_;
7731  if (((from_bitField1_ & 0x04000000) != 0)) {
7732  to_bitField1_ |= 0x02000000;
7733  }
7734  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
7735  if (((from_bitField1_ & 0x08000000) != 0)) {
7736  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
7737  to_bitField1_ |= 0x04000000;
7738  }
7739  if (((from_bitField1_ & 0x10000000) != 0)) {
7740  to_bitField1_ |= 0x08000000;
7741  }
7742  result.maxSatStratification_ = maxSatStratification_;
7743  if (((from_bitField1_ & 0x20000000) != 0)) {
7744  to_bitField1_ |= 0x10000000;
7745  }
7746  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
7747  if (((from_bitField1_ & 0x40000000) != 0)) {
7748  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
7749  to_bitField1_ |= 0x20000000;
7750  }
7751  if (((from_bitField1_ & 0x80000000) != 0)) {
7752  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
7753  to_bitField1_ |= 0x40000000;
7754  }
7755  if (((from_bitField2_ & 0x00000001) != 0)) {
7756  to_bitField1_ |= 0x80000000;
7757  }
7758  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
7759  if (((from_bitField2_ & 0x00000002) != 0)) {
7760  to_bitField2_ |= 0x00000001;
7761  }
7762  result.linearizationLevel_ = linearizationLevel_;
7763  if (((from_bitField2_ & 0x00000004) != 0)) {
7764  to_bitField2_ |= 0x00000002;
7765  }
7766  result.booleanEncodingLevel_ = booleanEncodingLevel_;
7767  if (((from_bitField2_ & 0x00000008) != 0)) {
7768  to_bitField2_ |= 0x00000004;
7769  }
7770  result.maxNumCuts_ = maxNumCuts_;
7771  if (((from_bitField2_ & 0x00000010) != 0)) {
7772  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
7773  to_bitField2_ |= 0x00000008;
7774  }
7775  if (((from_bitField2_ & 0x00000020) != 0)) {
7776  result.addKnapsackCuts_ = addKnapsackCuts_;
7777  to_bitField2_ |= 0x00000010;
7778  }
7779  if (((from_bitField2_ & 0x00000040) != 0)) {
7780  result.addCgCuts_ = addCgCuts_;
7781  to_bitField2_ |= 0x00000020;
7782  }
7783  if (((from_bitField2_ & 0x00000080) != 0)) {
7784  to_bitField2_ |= 0x00000040;
7785  }
7786  result.addMirCuts_ = addMirCuts_;
7787  if (((from_bitField2_ & 0x00000100) != 0)) {
7788  to_bitField2_ |= 0x00000080;
7789  }
7790  result.useMirRounding_ = useMirRounding_;
7791  if (((from_bitField2_ & 0x00000200) != 0)) {
7792  to_bitField2_ |= 0x00000100;
7793  }
7794  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
7795  if (((from_bitField2_ & 0x00000400) != 0)) {
7796  to_bitField2_ |= 0x00000200;
7797  }
7798  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
7799  if (((from_bitField2_ & 0x00000800) != 0)) {
7800  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
7801  to_bitField2_ |= 0x00000400;
7802  }
7803  if (((from_bitField2_ & 0x00001000) != 0)) {
7804  to_bitField2_ |= 0x00000800;
7805  }
7806  result.maxInactiveCount_ = maxInactiveCount_;
7807  if (((from_bitField2_ & 0x00002000) != 0)) {
7808  to_bitField2_ |= 0x00001000;
7809  }
7810  result.constraintRemovalBatchSize_ = constraintRemovalBatchSize_;
7811  if (((from_bitField2_ & 0x00004000) != 0)) {
7812  to_bitField2_ |= 0x00002000;
7813  }
7814  result.searchBranching_ = searchBranching_;
7815  if (((from_bitField2_ & 0x00008000) != 0)) {
7816  to_bitField2_ |= 0x00004000;
7817  }
7818  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
7819  if (((from_bitField2_ & 0x00010000) != 0)) {
7820  to_bitField2_ |= 0x00008000;
7821  }
7822  result.exploitAllLpSolution_ = exploitAllLpSolution_;
7823  if (((from_bitField2_ & 0x00020000) != 0)) {
7824  result.exploitBestSolution_ = exploitBestSolution_;
7825  to_bitField2_ |= 0x00010000;
7826  }
7827  if (((from_bitField2_ & 0x00040000) != 0)) {
7828  to_bitField2_ |= 0x00020000;
7829  }
7830  result.exploitObjective_ = exploitObjective_;
7831  if (((from_bitField2_ & 0x00080000) != 0)) {
7832  to_bitField2_ |= 0x00040000;
7833  }
7834  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
7835  if (((from_bitField2_ & 0x00100000) != 0)) {
7836  result.optimizeWithCore_ = optimizeWithCore_;
7837  to_bitField2_ |= 0x00080000;
7838  }
7839  if (((from_bitField2_ & 0x00200000) != 0)) {
7840  to_bitField2_ |= 0x00100000;
7841  }
7842  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
7843  if (((from_bitField2_ & 0x00400000) != 0)) {
7844  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
7845  to_bitField2_ |= 0x00200000;
7846  }
7847  if (((from_bitField2_ & 0x00800000) != 0)) {
7848  to_bitField2_ |= 0x00400000;
7849  }
7850  result.cpModelPresolve_ = cpModelPresolve_;
7851  if (((from_bitField2_ & 0x01000000) != 0)) {
7852  to_bitField2_ |= 0x00800000;
7853  }
7854  result.cpModelProbingLevel_ = cpModelProbingLevel_;
7855  if (((from_bitField2_ & 0x02000000) != 0)) {
7856  to_bitField2_ |= 0x01000000;
7857  }
7858  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
7859  if (((from_bitField2_ & 0x04000000) != 0)) {
7860  result.enumerateAllSolutions_ = enumerateAllSolutions_;
7861  to_bitField2_ |= 0x02000000;
7862  }
7863  if (((from_bitField2_ & 0x08000000) != 0)) {
7864  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
7865  to_bitField2_ |= 0x04000000;
7866  }
7867  if (((from_bitField2_ & 0x10000000) != 0)) {
7868  to_bitField2_ |= 0x08000000;
7869  }
7870  result.instantiateAllVariables_ = instantiateAllVariables_;
7871  if (((from_bitField2_ & 0x20000000) != 0)) {
7872  to_bitField2_ |= 0x10000000;
7873  }
7874  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
7875  if (((from_bitField2_ & 0x40000000) != 0)) {
7876  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
7877  to_bitField2_ |= 0x20000000;
7878  }
7879  if (((from_bitField2_ & 0x80000000) != 0)) {
7880  result.numSearchWorkers_ = numSearchWorkers_;
7881  to_bitField2_ |= 0x40000000;
7882  }
7883  if (((from_bitField3_ & 0x00000001) != 0)) {
7884  to_bitField2_ |= 0x80000000;
7885  }
7886  result.shareObjectiveBounds_ = shareObjectiveBounds_;
7887  if (((from_bitField3_ & 0x00000002) != 0)) {
7888  to_bitField3_ |= 0x00000001;
7889  }
7890  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
7891  if (((from_bitField3_ & 0x00000004) != 0)) {
7892  result.useLns_ = useLns_;
7893  to_bitField3_ |= 0x00000002;
7894  }
7895  if (((from_bitField3_ & 0x00000008) != 0)) {
7896  to_bitField3_ |= 0x00000004;
7897  }
7898  result.lnsNumThreads_ = lnsNumThreads_;
7899  if (((from_bitField3_ & 0x00000010) != 0)) {
7900  to_bitField3_ |= 0x00000008;
7901  }
7902  result.lnsIsDeterministic_ = lnsIsDeterministic_;
7903  if (((from_bitField3_ & 0x00000020) != 0)) {
7904  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
7905  to_bitField3_ |= 0x00000010;
7906  }
7907  if (((from_bitField3_ & 0x00000040) != 0)) {
7908  result.useRinsLns_ = useRinsLns_;
7909  to_bitField3_ |= 0x00000020;
7910  }
7911  if (((from_bitField3_ & 0x00000080) != 0)) {
7912  result.randomizeSearch_ = randomizeSearch_;
7913  to_bitField3_ |= 0x00000040;
7914  }
7915  if (((from_bitField3_ & 0x00000100) != 0)) {
7916  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
7917  to_bitField3_ |= 0x00000080;
7918  }
7919  if (((from_bitField3_ & 0x00000200) != 0)) {
7920  to_bitField3_ |= 0x00000100;
7921  }
7922  result.useOptionalVariables_ = useOptionalVariables_;
7923  if (((from_bitField3_ & 0x00000400) != 0)) {
7924  to_bitField3_ |= 0x00000200;
7925  }
7926  result.useExactLpReason_ = useExactLpReason_;
7927  if (((from_bitField3_ & 0x00000800) != 0)) {
7928  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
7929  to_bitField3_ |= 0x00000400;
7930  }
7931  if (((from_bitField3_ & 0x00001000) != 0)) {
7932  to_bitField3_ |= 0x00000800;
7933  }
7934  result.mipMaxBound_ = mipMaxBound_;
7935  if (((from_bitField3_ & 0x00002000) != 0)) {
7936  to_bitField3_ |= 0x00001000;
7937  }
7938  result.mipVarScaling_ = mipVarScaling_;
7939  if (((from_bitField3_ & 0x00004000) != 0)) {
7940  to_bitField3_ |= 0x00002000;
7941  }
7942  result.mipWantedPrecision_ = mipWantedPrecision_;
7943  if (((from_bitField3_ & 0x00008000) != 0)) {
7944  to_bitField3_ |= 0x00004000;
7945  }
7946  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
7947  if (((from_bitField3_ & 0x00010000) != 0)) {
7948  to_bitField3_ |= 0x00008000;
7949  }
7950  result.mipCheckPrecision_ = mipCheckPrecision_;
7951  if (((from_bitField3_ & 0x00020000) != 0)) {
7952  to_bitField3_ |= 0x00010000;
7953  }
7954  result.catchSigintSignal_ = catchSigintSignal_;
7955  result.bitField0_ = to_bitField0_;
7956  result.bitField1_ = to_bitField1_;
7957  result.bitField2_ = to_bitField2_;
7958  result.bitField3_ = to_bitField3_;
7959  onBuilt();
7960  return result;
7961  }
7962 
7963  @java.lang.Override
7964  public Builder clone() {
7965  return super.clone();
7966  }
7967  @java.lang.Override
7969  com.google.protobuf.Descriptors.FieldDescriptor field,
7970  java.lang.Object value) {
7971  return super.setField(field, value);
7972  }
7973  @java.lang.Override
7975  com.google.protobuf.Descriptors.FieldDescriptor field) {
7976  return super.clearField(field);
7977  }
7978  @java.lang.Override
7980  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
7981  return super.clearOneof(oneof);
7982  }
7983  @java.lang.Override
7985  com.google.protobuf.Descriptors.FieldDescriptor field,
7986  int index, java.lang.Object value) {
7987  return super.setRepeatedField(field, index, value);
7988  }
7989  @java.lang.Override
7991  com.google.protobuf.Descriptors.FieldDescriptor field,
7992  java.lang.Object value) {
7993  return super.addRepeatedField(field, value);
7994  }
7995  @java.lang.Override
7996  public Builder mergeFrom(com.google.protobuf.Message other) {
7997  if (other instanceof com.google.ortools.sat.SatParameters) {
7998  return mergeFrom((com.google.ortools.sat.SatParameters)other);
7999  } else {
8000  super.mergeFrom(other);
8001  return this;
8002  }
8003  }
8004 
8006  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
8007  if (other.hasPreferredVariableOrder()) {
8008  setPreferredVariableOrder(other.getPreferredVariableOrder());
8009  }
8010  if (other.hasInitialPolarity()) {
8011  setInitialPolarity(other.getInitialPolarity());
8012  }
8013  if (other.hasUsePhaseSaving()) {
8014  setUsePhaseSaving(other.getUsePhaseSaving());
8015  }
8016  if (other.hasRandomPolarityRatio()) {
8017  setRandomPolarityRatio(other.getRandomPolarityRatio());
8018  }
8019  if (other.hasRandomBranchesRatio()) {
8020  setRandomBranchesRatio(other.getRandomBranchesRatio());
8021  }
8022  if (other.hasUseErwaHeuristic()) {
8023  setUseErwaHeuristic(other.getUseErwaHeuristic());
8024  }
8025  if (other.hasInitialVariablesActivity()) {
8026  setInitialVariablesActivity(other.getInitialVariablesActivity());
8027  }
8028  if (other.hasAlsoBumpVariablesInConflictReasons()) {
8029  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
8030  }
8031  if (other.hasMinimizationAlgorithm()) {
8032  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
8033  }
8034  if (other.hasBinaryMinimizationAlgorithm()) {
8035  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
8036  }
8037  if (other.hasSubsumptionDuringConflictAnalysis()) {
8038  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
8039  }
8040  if (other.hasClauseCleanupPeriod()) {
8041  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
8042  }
8043  if (other.hasClauseCleanupTarget()) {
8044  setClauseCleanupTarget(other.getClauseCleanupTarget());
8045  }
8046  if (other.hasClauseCleanupProtection()) {
8047  setClauseCleanupProtection(other.getClauseCleanupProtection());
8048  }
8049  if (other.hasClauseCleanupLbdBound()) {
8050  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
8051  }
8052  if (other.hasClauseCleanupOrdering()) {
8053  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
8054  }
8055  if (other.hasPbCleanupIncrement()) {
8056  setPbCleanupIncrement(other.getPbCleanupIncrement());
8057  }
8058  if (other.hasPbCleanupRatio()) {
8059  setPbCleanupRatio(other.getPbCleanupRatio());
8060  }
8061  if (other.hasMinimizeWithPropagationRestartPeriod()) {
8062  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
8063  }
8064  if (other.hasMinimizeWithPropagationNumDecisions()) {
8065  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
8066  }
8067  if (other.hasVariableActivityDecay()) {
8068  setVariableActivityDecay(other.getVariableActivityDecay());
8069  }
8070  if (other.hasMaxVariableActivityValue()) {
8071  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
8072  }
8073  if (other.hasGlucoseMaxDecay()) {
8074  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
8075  }
8076  if (other.hasGlucoseDecayIncrement()) {
8077  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
8078  }
8079  if (other.hasGlucoseDecayIncrementPeriod()) {
8080  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
8081  }
8082  if (other.hasClauseActivityDecay()) {
8083  setClauseActivityDecay(other.getClauseActivityDecay());
8084  }
8085  if (other.hasMaxClauseActivityValue()) {
8086  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
8087  }
8088  if (!other.restartAlgorithms_.isEmpty()) {
8089  if (restartAlgorithms_.isEmpty()) {
8090  restartAlgorithms_ = other.restartAlgorithms_;
8091  bitField0_ = (bitField0_ & ~0x08000000);
8092  } else {
8093  ensureRestartAlgorithmsIsMutable();
8094  restartAlgorithms_.addAll(other.restartAlgorithms_);
8095  }
8096  onChanged();
8097  }
8098  if (other.hasDefaultRestartAlgorithms()) {
8099  bitField0_ |= 0x10000000;
8100  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
8101  onChanged();
8102  }
8103  if (other.hasRestartPeriod()) {
8104  setRestartPeriod(other.getRestartPeriod());
8105  }
8106  if (other.hasRestartRunningWindowSize()) {
8107  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
8108  }
8109  if (other.hasRestartDlAverageRatio()) {
8110  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
8111  }
8112  if (other.hasRestartLbdAverageRatio()) {
8113  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
8114  }
8115  if (other.hasUseBlockingRestart()) {
8116  setUseBlockingRestart(other.getUseBlockingRestart());
8117  }
8118  if (other.hasBlockingRestartWindowSize()) {
8119  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
8120  }
8121  if (other.hasBlockingRestartMultiplier()) {
8122  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
8123  }
8124  if (other.hasNumConflictsBeforeStrategyChanges()) {
8125  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
8126  }
8127  if (other.hasStrategyChangeIncreaseRatio()) {
8128  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
8129  }
8130  if (other.hasMaxTimeInSeconds()) {
8131  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
8132  }
8133  if (other.hasMaxDeterministicTime()) {
8134  setMaxDeterministicTime(other.getMaxDeterministicTime());
8135  }
8136  if (other.hasMaxNumberOfConflicts()) {
8137  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
8138  }
8139  if (other.hasMaxMemoryInMb()) {
8140  setMaxMemoryInMb(other.getMaxMemoryInMb());
8141  }
8142  if (other.hasTreatBinaryClausesSeparately()) {
8143  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
8144  }
8145  if (other.hasRandomSeed()) {
8146  setRandomSeed(other.getRandomSeed());
8147  }
8148  if (other.hasLogSearchProgress()) {
8149  setLogSearchProgress(other.getLogSearchProgress());
8150  }
8151  if (other.hasUsePbResolution()) {
8152  setUsePbResolution(other.getUsePbResolution());
8153  }
8154  if (other.hasMinimizeReductionDuringPbResolution()) {
8155  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
8156  }
8157  if (other.hasCountAssumptionLevelsInLbd()) {
8158  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
8159  }
8160  if (other.hasPresolveBveThreshold()) {
8161  setPresolveBveThreshold(other.getPresolveBveThreshold());
8162  }
8163  if (other.hasPresolveBveClauseWeight()) {
8164  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
8165  }
8166  if (other.hasPresolveProbingDeterministicTimeLimit()) {
8167  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
8168  }
8169  if (other.hasPresolveBlockedClause()) {
8170  setPresolveBlockedClause(other.getPresolveBlockedClause());
8171  }
8172  if (other.hasPresolveUseBva()) {
8173  setPresolveUseBva(other.getPresolveUseBva());
8174  }
8175  if (other.hasPresolveBvaThreshold()) {
8176  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
8177  }
8178  if (other.hasUseOptimizationHints()) {
8179  setUseOptimizationHints(other.getUseOptimizationHints());
8180  }
8181  if (other.hasMinimizeCore()) {
8182  setMinimizeCore(other.getMinimizeCore());
8183  }
8184  if (other.hasFindMultipleCores()) {
8185  setFindMultipleCores(other.getFindMultipleCores());
8186  }
8187  if (other.hasCoverOptimization()) {
8188  setCoverOptimization(other.getCoverOptimization());
8189  }
8190  if (other.hasMaxSatAssumptionOrder()) {
8191  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
8192  }
8193  if (other.hasMaxSatReverseAssumptionOrder()) {
8194  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
8195  }
8196  if (other.hasMaxSatStratification()) {
8197  setMaxSatStratification(other.getMaxSatStratification());
8198  }
8199  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
8200  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
8201  }
8202  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
8203  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
8204  }
8205  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
8206  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
8207  }
8208  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
8209  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
8210  }
8211  if (other.hasLinearizationLevel()) {
8212  setLinearizationLevel(other.getLinearizationLevel());
8213  }
8214  if (other.hasBooleanEncodingLevel()) {
8215  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
8216  }
8217  if (other.hasMaxNumCuts()) {
8218  setMaxNumCuts(other.getMaxNumCuts());
8219  }
8220  if (other.hasOnlyAddCutsAtLevelZero()) {
8221  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
8222  }
8223  if (other.hasAddKnapsackCuts()) {
8224  setAddKnapsackCuts(other.getAddKnapsackCuts());
8225  }
8226  if (other.hasAddCgCuts()) {
8227  setAddCgCuts(other.getAddCgCuts());
8228  }
8229  if (other.hasAddMirCuts()) {
8230  setAddMirCuts(other.getAddMirCuts());
8231  }
8232  if (other.hasUseMirRounding()) {
8233  setUseMirRounding(other.getUseMirRounding());
8234  }
8235  if (other.hasMaxIntegerRoundingScaling()) {
8236  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
8237  }
8238  if (other.hasAddLpConstraintsLazily()) {
8239  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
8240  }
8241  if (other.hasMinOrthogonalityForLpConstraints()) {
8242  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
8243  }
8244  if (other.hasMaxInactiveCount()) {
8245  setMaxInactiveCount(other.getMaxInactiveCount());
8246  }
8247  if (other.hasConstraintRemovalBatchSize()) {
8248  setConstraintRemovalBatchSize(other.getConstraintRemovalBatchSize());
8249  }
8250  if (other.hasSearchBranching()) {
8251  setSearchBranching(other.getSearchBranching());
8252  }
8253  if (other.hasExploitIntegerLpSolution()) {
8254  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
8255  }
8256  if (other.hasExploitAllLpSolution()) {
8257  setExploitAllLpSolution(other.getExploitAllLpSolution());
8258  }
8259  if (other.hasExploitBestSolution()) {
8260  setExploitBestSolution(other.getExploitBestSolution());
8261  }
8262  if (other.hasExploitObjective()) {
8263  setExploitObjective(other.getExploitObjective());
8264  }
8265  if (other.hasPseudoCostReliabilityThreshold()) {
8266  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
8267  }
8268  if (other.hasOptimizeWithCore()) {
8269  setOptimizeWithCore(other.getOptimizeWithCore());
8270  }
8271  if (other.hasBinarySearchNumConflicts()) {
8272  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
8273  }
8274  if (other.hasOptimizeWithMaxHs()) {
8275  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
8276  }
8277  if (other.hasCpModelPresolve()) {
8278  setCpModelPresolve(other.getCpModelPresolve());
8279  }
8280  if (other.hasCpModelProbingLevel()) {
8281  setCpModelProbingLevel(other.getCpModelProbingLevel());
8282  }
8283  if (other.hasCpModelUseSatPresolve()) {
8284  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
8285  }
8286  if (other.hasEnumerateAllSolutions()) {
8287  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
8288  }
8289  if (other.hasFillTightenedDomainsInResponse()) {
8290  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
8291  }
8292  if (other.hasInstantiateAllVariables()) {
8293  setInstantiateAllVariables(other.getInstantiateAllVariables());
8294  }
8295  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
8296  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
8297  }
8298  if (other.hasStopAfterFirstSolution()) {
8299  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
8300  }
8301  if (other.hasNumSearchWorkers()) {
8302  setNumSearchWorkers(other.getNumSearchWorkers());
8303  }
8304  if (other.hasShareObjectiveBounds()) {
8305  setShareObjectiveBounds(other.getShareObjectiveBounds());
8306  }
8307  if (other.hasShareLevelZeroBounds()) {
8308  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
8309  }
8310  if (other.hasUseLns()) {
8311  setUseLns(other.getUseLns());
8312  }
8313  if (other.hasLnsNumThreads()) {
8314  setLnsNumThreads(other.getLnsNumThreads());
8315  }
8316  if (other.hasLnsIsDeterministic()) {
8317  setLnsIsDeterministic(other.getLnsIsDeterministic());
8318  }
8319  if (other.hasLnsFocusOnDecisionVariables()) {
8320  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
8321  }
8322  if (other.hasUseRinsLns()) {
8323  setUseRinsLns(other.getUseRinsLns());
8324  }
8325  if (other.hasRandomizeSearch()) {
8326  setRandomizeSearch(other.getRandomizeSearch());
8327  }
8328  if (other.hasSearchRandomizationTolerance()) {
8329  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
8330  }
8331  if (other.hasUseOptionalVariables()) {
8332  setUseOptionalVariables(other.getUseOptionalVariables());
8333  }
8334  if (other.hasUseExactLpReason()) {
8335  setUseExactLpReason(other.getUseExactLpReason());
8336  }
8337  if (other.hasUseCombinedNoOverlap()) {
8338  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
8339  }
8340  if (other.hasMipMaxBound()) {
8341  setMipMaxBound(other.getMipMaxBound());
8342  }
8343  if (other.hasMipVarScaling()) {
8344  setMipVarScaling(other.getMipVarScaling());
8345  }
8346  if (other.hasMipWantedPrecision()) {
8347  setMipWantedPrecision(other.getMipWantedPrecision());
8348  }
8349  if (other.hasMipMaxActivityExponent()) {
8350  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
8351  }
8352  if (other.hasMipCheckPrecision()) {
8353  setMipCheckPrecision(other.getMipCheckPrecision());
8354  }
8355  if (other.hasCatchSigintSignal()) {
8356  setCatchSigintSignal(other.getCatchSigintSignal());
8357  }
8358  this.mergeUnknownFields(other.unknownFields);
8359  onChanged();
8360  return this;
8361  }
8362 
8363  @java.lang.Override
8364  public final boolean isInitialized() {
8365  return true;
8366  }
8367 
8368  @java.lang.Override
8370  com.google.protobuf.CodedInputStream input,
8371  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8372  throws java.io.IOException {
8373  com.google.ortools.sat.SatParameters parsedMessage = null;
8374  try {
8375  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8376  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8377  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
8378  throw e.unwrapIOException();
8379  } finally {
8380  if (parsedMessage != null) {
8381  mergeFrom(parsedMessage);
8382  }
8383  }
8384  return this;
8385  }
8386  private int bitField0_;
8387  private int bitField1_;
8388  private int bitField2_;
8389  private int bitField3_;
8390 
8391  private int preferredVariableOrder_ = 0;
8395  public boolean hasPreferredVariableOrder() {
8396  return ((bitField0_ & 0x00000001) != 0);
8397  }
8402  @SuppressWarnings("deprecation")
8404  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
8405  }
8410  if (value == null) {
8411  throw new NullPointerException();
8412  }
8413  bitField0_ |= 0x00000001;
8414  preferredVariableOrder_ = value.getNumber();
8415  onChanged();
8416  return this;
8417  }
8422  bitField0_ = (bitField0_ & ~0x00000001);
8423  preferredVariableOrder_ = 0;
8424  onChanged();
8425  return this;
8426  }
8427 
8428  private int initialPolarity_ = 1;
8432  public boolean hasInitialPolarity() {
8433  return ((bitField0_ & 0x00000002) != 0);
8434  }
8439  @SuppressWarnings("deprecation")
8441  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
8442  }
8447  if (value == null) {
8448  throw new NullPointerException();
8449  }
8450  bitField0_ |= 0x00000002;
8451  initialPolarity_ = value.getNumber();
8452  onChanged();
8453  return this;
8454  }
8459  bitField0_ = (bitField0_ & ~0x00000002);
8460  initialPolarity_ = 1;
8461  onChanged();
8462  return this;
8463  }
8464 
8465  private boolean usePhaseSaving_ = true;
8479  public boolean hasUsePhaseSaving() {
8480  return ((bitField0_ & 0x00000004) != 0);
8481  }
8495  public boolean getUsePhaseSaving() {
8496  return usePhaseSaving_;
8497  }
8511  public Builder setUsePhaseSaving(boolean value) {
8512  bitField0_ |= 0x00000004;
8513  usePhaseSaving_ = value;
8514  onChanged();
8515  return this;
8516  }
8531  bitField0_ = (bitField0_ & ~0x00000004);
8532  usePhaseSaving_ = true;
8533  onChanged();
8534  return this;
8535  }
8536 
8537  private double randomPolarityRatio_ ;
8549  public boolean hasRandomPolarityRatio() {
8550  return ((bitField0_ & 0x00000008) != 0);
8551  }
8563  public double getRandomPolarityRatio() {
8564  return randomPolarityRatio_;
8565  }
8577  public Builder setRandomPolarityRatio(double value) {
8578  bitField0_ |= 0x00000008;
8579  randomPolarityRatio_ = value;
8580  onChanged();
8581  return this;
8582  }
8595  bitField0_ = (bitField0_ & ~0x00000008);
8596  randomPolarityRatio_ = 0D;
8597  onChanged();
8598  return this;
8599  }
8600 
8601  private double randomBranchesRatio_ ;
8611  public boolean hasRandomBranchesRatio() {
8612  return ((bitField0_ & 0x00000010) != 0);
8613  }
8623  public double getRandomBranchesRatio() {
8624  return randomBranchesRatio_;
8625  }
8635  public Builder setRandomBranchesRatio(double value) {
8636  bitField0_ |= 0x00000010;
8637  randomBranchesRatio_ = value;
8638  onChanged();
8639  return this;
8640  }
8651  bitField0_ = (bitField0_ & ~0x00000010);
8652  randomBranchesRatio_ = 0D;
8653  onChanged();
8654  return this;
8655  }
8656 
8657  private boolean useErwaHeuristic_ ;
8667  public boolean hasUseErwaHeuristic() {
8668  return ((bitField0_ & 0x00000020) != 0);
8669  }
8679  public boolean getUseErwaHeuristic() {
8680  return useErwaHeuristic_;
8681  }
8691  public Builder setUseErwaHeuristic(boolean value) {
8692  bitField0_ |= 0x00000020;
8693  useErwaHeuristic_ = value;
8694  onChanged();
8695  return this;
8696  }
8707  bitField0_ = (bitField0_ & ~0x00000020);
8708  useErwaHeuristic_ = false;
8709  onChanged();
8710  return this;
8711  }
8712 
8713  private double initialVariablesActivity_ ;
8726  public boolean hasInitialVariablesActivity() {
8727  return ((bitField0_ & 0x00000040) != 0);
8728  }
8742  return initialVariablesActivity_;
8743  }
8756  public Builder setInitialVariablesActivity(double value) {
8757  bitField0_ |= 0x00000040;
8758  initialVariablesActivity_ = value;
8759  onChanged();
8760  return this;
8761  }
8775  bitField0_ = (bitField0_ & ~0x00000040);
8776  initialVariablesActivity_ = 0D;
8777  onChanged();
8778  return this;
8779  }
8780 
8781  private boolean alsoBumpVariablesInConflictReasons_ ;
8793  return ((bitField0_ & 0x00000080) != 0);
8794  }
8806  return alsoBumpVariablesInConflictReasons_;
8807  }
8819  bitField0_ |= 0x00000080;
8820  alsoBumpVariablesInConflictReasons_ = value;
8821  onChanged();
8822  return this;
8823  }
8835  bitField0_ = (bitField0_ & ~0x00000080);
8836  alsoBumpVariablesInConflictReasons_ = false;
8837  onChanged();
8838  return this;
8839  }
8840 
8841  private int minimizationAlgorithm_ = 2;
8845  public boolean hasMinimizationAlgorithm() {
8846  return ((bitField0_ & 0x00000100) != 0);
8847  }
8852  @SuppressWarnings("deprecation")
8854  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
8855  }
8860  if (value == null) {
8861  throw new NullPointerException();
8862  }
8863  bitField0_ |= 0x00000100;
8864  minimizationAlgorithm_ = value.getNumber();
8865  onChanged();
8866  return this;
8867  }
8872  bitField0_ = (bitField0_ & ~0x00000100);
8873  minimizationAlgorithm_ = 2;
8874  onChanged();
8875  return this;
8876  }
8877 
8878  private int binaryMinimizationAlgorithm_ = 1;
8883  return ((bitField0_ & 0x00000200) != 0);
8884  }
8889  @SuppressWarnings("deprecation")
8892  }
8897  if (value == null) {
8898  throw new NullPointerException();
8899  }
8900  bitField0_ |= 0x00000200;
8901  binaryMinimizationAlgorithm_ = value.getNumber();
8902  onChanged();
8903  return this;
8904  }
8909  bitField0_ = (bitField0_ & ~0x00000200);
8910  binaryMinimizationAlgorithm_ = 1;
8911  onChanged();
8912  return this;
8913  }
8914 
8915  private boolean subsumptionDuringConflictAnalysis_ = true;
8927  return ((bitField0_ & 0x00000400) != 0);
8928  }
8940  return subsumptionDuringConflictAnalysis_;
8941  }
8953  bitField0_ |= 0x00000400;
8954  subsumptionDuringConflictAnalysis_ = value;
8955  onChanged();
8956  return this;
8957  }
8969  bitField0_ = (bitField0_ & ~0x00000400);
8970  subsumptionDuringConflictAnalysis_ = true;
8971  onChanged();
8972  return this;
8973  }
8974 
8975  private int clauseCleanupPeriod_ = 10000;
8983  public boolean hasClauseCleanupPeriod() {
8984  return ((bitField0_ & 0x00000800) != 0);
8985  }
8993  public int getClauseCleanupPeriod() {
8994  return clauseCleanupPeriod_;
8995  }
9003  public Builder setClauseCleanupPeriod(int value) {
9004  bitField0_ |= 0x00000800;
9005  clauseCleanupPeriod_ = value;
9006  onChanged();
9007  return this;
9008  }
9017  bitField0_ = (bitField0_ & ~0x00000800);
9018  clauseCleanupPeriod_ = 10000;
9019  onChanged();
9020  return this;
9021  }
9022 
9023  private int clauseCleanupTarget_ = 10000;
9032  public boolean hasClauseCleanupTarget() {
9033  return ((bitField0_ & 0x00001000) != 0);
9034  }
9043  public int getClauseCleanupTarget() {
9044  return clauseCleanupTarget_;
9045  }
9054  public Builder setClauseCleanupTarget(int value) {
9055  bitField0_ |= 0x00001000;
9056  clauseCleanupTarget_ = value;
9057  onChanged();
9058  return this;
9059  }
9069  bitField0_ = (bitField0_ & ~0x00001000);
9070  clauseCleanupTarget_ = 10000;
9071  onChanged();
9072  return this;
9073  }
9074 
9075  private int clauseCleanupProtection_ = 0;
9079  public boolean hasClauseCleanupProtection() {
9080  return ((bitField0_ & 0x00002000) != 0);
9081  }
9086  @SuppressWarnings("deprecation")
9088  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
9089  }
9094  if (value == null) {
9095  throw new NullPointerException();
9096  }
9097  bitField0_ |= 0x00002000;
9098  clauseCleanupProtection_ = value.getNumber();
9099  onChanged();
9100  return this;
9101  }
9106  bitField0_ = (bitField0_ & ~0x00002000);
9107  clauseCleanupProtection_ = 0;
9108  onChanged();
9109  return this;
9110  }
9111 
9112  private int clauseCleanupLbdBound_ = 5;
9121  public boolean hasClauseCleanupLbdBound() {
9122  return ((bitField0_ & 0x00004000) != 0);
9123  }
9133  return clauseCleanupLbdBound_;
9134  }
9143  public Builder setClauseCleanupLbdBound(int value) {
9144  bitField0_ |= 0x00004000;
9145  clauseCleanupLbdBound_ = value;
9146  onChanged();
9147  return this;
9148  }
9158  bitField0_ = (bitField0_ & ~0x00004000);
9159  clauseCleanupLbdBound_ = 5;
9160  onChanged();
9161  return this;
9162  }
9163 
9164  private int clauseCleanupOrdering_ = 0;
9168  public boolean hasClauseCleanupOrdering() {
9169  return ((bitField0_ & 0x00008000) != 0);
9170  }
9175  @SuppressWarnings("deprecation")
9177  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
9178  }
9183  if (value == null) {
9184  throw new NullPointerException();
9185  }
9186  bitField0_ |= 0x00008000;
9187  clauseCleanupOrdering_ = value.getNumber();
9188  onChanged();
9189  return this;
9190  }
9195  bitField0_ = (bitField0_ & ~0x00008000);
9196  clauseCleanupOrdering_ = 0;
9197  onChanged();
9198  return this;
9199  }
9200 
9201  private int pbCleanupIncrement_ = 200;
9209  public boolean hasPbCleanupIncrement() {
9210  return ((bitField0_ & 0x00010000) != 0);
9211  }
9219  public int getPbCleanupIncrement() {
9220  return pbCleanupIncrement_;
9221  }
9229  public Builder setPbCleanupIncrement(int value) {
9230  bitField0_ |= 0x00010000;
9231  pbCleanupIncrement_ = value;
9232  onChanged();
9233  return this;
9234  }
9243  bitField0_ = (bitField0_ & ~0x00010000);
9244  pbCleanupIncrement_ = 200;
9245  onChanged();
9246  return this;
9247  }
9248 
9249  private double pbCleanupRatio_ = 0.5D;
9253  public boolean hasPbCleanupRatio() {
9254  return ((bitField0_ & 0x00020000) != 0);
9255  }
9259  public double getPbCleanupRatio() {
9260  return pbCleanupRatio_;
9261  }
9265  public Builder setPbCleanupRatio(double value) {
9266  bitField0_ |= 0x00020000;
9267  pbCleanupRatio_ = value;
9268  onChanged();
9269  return this;
9270  }
9275  bitField0_ = (bitField0_ & ~0x00020000);
9276  pbCleanupRatio_ = 0.5D;
9277  onChanged();
9278  return this;
9279  }
9280 
9281  private int minimizeWithPropagationRestartPeriod_ = 10;
9300  return ((bitField0_ & 0x00040000) != 0);
9301  }
9320  return minimizeWithPropagationRestartPeriod_;
9321  }
9340  bitField0_ |= 0x00040000;
9341  minimizeWithPropagationRestartPeriod_ = value;
9342  onChanged();
9343  return this;
9344  }
9363  bitField0_ = (bitField0_ & ~0x00040000);
9364  minimizeWithPropagationRestartPeriod_ = 10;
9365  onChanged();
9366  return this;
9367  }
9368 
9369  private int minimizeWithPropagationNumDecisions_ = 1000;
9374  return ((bitField0_ & 0x00080000) != 0);
9375  }
9380  return minimizeWithPropagationNumDecisions_;
9381  }
9386  bitField0_ |= 0x00080000;
9387  minimizeWithPropagationNumDecisions_ = value;
9388  onChanged();
9389  return this;
9390  }
9395  bitField0_ = (bitField0_ & ~0x00080000);
9396  minimizeWithPropagationNumDecisions_ = 1000;
9397  onChanged();
9398  return this;
9399  }
9400 
9401  private double variableActivityDecay_ = 0.8D;
9415  public boolean hasVariableActivityDecay() {
9416  return ((bitField0_ & 0x00100000) != 0);
9417  }
9431  public double getVariableActivityDecay() {
9432  return variableActivityDecay_;
9433  }
9447  public Builder setVariableActivityDecay(double value) {
9448  bitField0_ |= 0x00100000;
9449  variableActivityDecay_ = value;
9450  onChanged();
9451  return this;
9452  }
9467  bitField0_ = (bitField0_ & ~0x00100000);
9468  variableActivityDecay_ = 0.8D;
9469  onChanged();
9470  return this;
9471  }
9472 
9473  private double maxVariableActivityValue_ = 1e+100D;
9477  public boolean hasMaxVariableActivityValue() {
9478  return ((bitField0_ & 0x00200000) != 0);
9479  }
9484  return maxVariableActivityValue_;
9485  }
9489  public Builder setMaxVariableActivityValue(double value) {
9490  bitField0_ |= 0x00200000;
9491  maxVariableActivityValue_ = value;
9492  onChanged();
9493  return this;
9494  }
9499  bitField0_ = (bitField0_ & ~0x00200000);
9500  maxVariableActivityValue_ = 1e+100D;
9501  onChanged();
9502  return this;
9503  }
9504 
9505  private double glucoseMaxDecay_ = 0.95D;
9516  public boolean hasGlucoseMaxDecay() {
9517  return ((bitField0_ & 0x00400000) != 0);
9518  }
9529  public double getGlucoseMaxDecay() {
9530  return glucoseMaxDecay_;
9531  }
9542  public Builder setGlucoseMaxDecay(double value) {
9543  bitField0_ |= 0x00400000;
9544  glucoseMaxDecay_ = value;
9545  onChanged();
9546  return this;
9547  }
9559  bitField0_ = (bitField0_ & ~0x00400000);
9560  glucoseMaxDecay_ = 0.95D;
9561  onChanged();
9562  return this;
9563  }
9564 
9565  private double glucoseDecayIncrement_ = 0.01D;
9569  public boolean hasGlucoseDecayIncrement() {
9570  return ((bitField0_ & 0x00800000) != 0);
9571  }
9575  public double getGlucoseDecayIncrement() {
9576  return glucoseDecayIncrement_;
9577  }
9581  public Builder setGlucoseDecayIncrement(double value) {
9582  bitField0_ |= 0x00800000;
9583  glucoseDecayIncrement_ = value;
9584  onChanged();
9585  return this;
9586  }
9591  bitField0_ = (bitField0_ & ~0x00800000);
9592  glucoseDecayIncrement_ = 0.01D;
9593  onChanged();
9594  return this;
9595  }
9596 
9597  private int glucoseDecayIncrementPeriod_ = 5000;
9602  return ((bitField0_ & 0x01000000) != 0);
9603  }
9608  return glucoseDecayIncrementPeriod_;
9609  }
9614  bitField0_ |= 0x01000000;
9615  glucoseDecayIncrementPeriod_ = value;
9616  onChanged();
9617  return this;
9618  }
9623  bitField0_ = (bitField0_ & ~0x01000000);
9624  glucoseDecayIncrementPeriod_ = 5000;
9625  onChanged();
9626  return this;
9627  }
9628 
9629  private double clauseActivityDecay_ = 0.999D;
9637  public boolean hasClauseActivityDecay() {
9638  return ((bitField0_ & 0x02000000) != 0);
9639  }
9647  public double getClauseActivityDecay() {
9648  return clauseActivityDecay_;
9649  }
9657  public Builder setClauseActivityDecay(double value) {
9658  bitField0_ |= 0x02000000;
9659  clauseActivityDecay_ = value;
9660  onChanged();
9661  return this;
9662  }
9671  bitField0_ = (bitField0_ & ~0x02000000);
9672  clauseActivityDecay_ = 0.999D;
9673  onChanged();
9674  return this;
9675  }
9676 
9677  private double maxClauseActivityValue_ = 1e+20D;
9681  public boolean hasMaxClauseActivityValue() {
9682  return ((bitField0_ & 0x04000000) != 0);
9683  }
9687  public double getMaxClauseActivityValue() {
9688  return maxClauseActivityValue_;
9689  }
9693  public Builder setMaxClauseActivityValue(double value) {
9694  bitField0_ |= 0x04000000;
9695  maxClauseActivityValue_ = value;
9696  onChanged();
9697  return this;
9698  }
9703  bitField0_ = (bitField0_ & ~0x04000000);
9704  maxClauseActivityValue_ = 1e+20D;
9705  onChanged();
9706  return this;
9707  }
9708 
9709  private java.util.List<java.lang.Integer> restartAlgorithms_ =
9710  java.util.Collections.emptyList();
9711  private void ensureRestartAlgorithmsIsMutable() {
9712  if (!((bitField0_ & 0x08000000) != 0)) {
9713  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
9714  bitField0_ |= 0x08000000;
9715  }
9716  }
9732  return new com.google.protobuf.Internal.ListAdapter<
9733  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
9734  }
9750  return restartAlgorithms_.size();
9751  }
9767  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
9768  }
9784  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
9785  if (value == null) {
9786  throw new NullPointerException();
9787  }
9788  ensureRestartAlgorithmsIsMutable();
9789  restartAlgorithms_.set(index, value.getNumber());
9790  onChanged();
9791  return this;
9792  }
9808  if (value == null) {
9809  throw new NullPointerException();
9810  }
9811  ensureRestartAlgorithmsIsMutable();
9812  restartAlgorithms_.add(value.getNumber());
9813  onChanged();
9814  return this;
9815  }
9831  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
9832  ensureRestartAlgorithmsIsMutable();
9833  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
9834  restartAlgorithms_.add(value.getNumber());
9835  }
9836  onChanged();
9837  return this;
9838  }
9854  restartAlgorithms_ = java.util.Collections.emptyList();
9855  bitField0_ = (bitField0_ & ~0x08000000);
9856  onChanged();
9857  return this;
9858  }
9859 
9860  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
9864  public boolean hasDefaultRestartAlgorithms() {
9865  return ((bitField0_ & 0x10000000) != 0);
9866  }
9870  public java.lang.String getDefaultRestartAlgorithms() {
9871  java.lang.Object ref = defaultRestartAlgorithms_;
9872  if (!(ref instanceof java.lang.String)) {
9873  com.google.protobuf.ByteString bs =
9874  (com.google.protobuf.ByteString) ref;
9875  java.lang.String s = bs.toStringUtf8();
9876  if (bs.isValidUtf8()) {
9877  defaultRestartAlgorithms_ = s;
9878  }
9879  return s;
9880  } else {
9881  return (java.lang.String) ref;
9882  }
9883  }
9887  public com.google.protobuf.ByteString
9889  java.lang.Object ref = defaultRestartAlgorithms_;
9890  if (ref instanceof String) {
9891  com.google.protobuf.ByteString b =
9892  com.google.protobuf.ByteString.copyFromUtf8(
9893  (java.lang.String) ref);
9894  defaultRestartAlgorithms_ = b;
9895  return b;
9896  } else {
9897  return (com.google.protobuf.ByteString) ref;
9898  }
9899  }
9904  java.lang.String value) {
9905  if (value == null) {
9906  throw new NullPointerException();
9907  }
9908  bitField0_ |= 0x10000000;
9909  defaultRestartAlgorithms_ = value;
9910  onChanged();
9911  return this;
9912  }
9917  bitField0_ = (bitField0_ & ~0x10000000);
9918  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
9919  onChanged();
9920  return this;
9921  }
9926  com.google.protobuf.ByteString value) {
9927  if (value == null) {
9928  throw new NullPointerException();
9929  }
9930  bitField0_ |= 0x10000000;
9931  defaultRestartAlgorithms_ = value;
9932  onChanged();
9933  return this;
9934  }
9935 
9936  private int restartPeriod_ = 50;
9945  public boolean hasRestartPeriod() {
9946  return ((bitField0_ & 0x20000000) != 0);
9947  }
9956  public int getRestartPeriod() {
9957  return restartPeriod_;
9958  }
9967  public Builder setRestartPeriod(int value) {
9968  bitField0_ |= 0x20000000;
9969  restartPeriod_ = value;
9970  onChanged();
9971  return this;
9972  }
9982  bitField0_ = (bitField0_ & ~0x20000000);
9983  restartPeriod_ = 50;
9984  onChanged();
9985  return this;
9986  }
9987 
9988  private int restartRunningWindowSize_ = 50;
9996  public boolean hasRestartRunningWindowSize() {
9997  return ((bitField0_ & 0x40000000) != 0);
9998  }
10007  return restartRunningWindowSize_;
10008  }
10017  bitField0_ |= 0x40000000;
10018  restartRunningWindowSize_ = value;
10019  onChanged();
10020  return this;
10021  }
10030  bitField0_ = (bitField0_ & ~0x40000000);
10031  restartRunningWindowSize_ = 50;
10032  onChanged();
10033  return this;
10034  }
10035 
10036  private double restartDlAverageRatio_ = 1D;
10045  public boolean hasRestartDlAverageRatio() {
10046  return ((bitField0_ & 0x80000000) != 0);
10047  }
10056  public double getRestartDlAverageRatio() {
10057  return restartDlAverageRatio_;
10058  }
10067  public Builder setRestartDlAverageRatio(double value) {
10068  bitField0_ |= 0x80000000;
10069  restartDlAverageRatio_ = value;
10070  onChanged();
10071  return this;
10072  }
10082  bitField0_ = (bitField0_ & ~0x80000000);
10083  restartDlAverageRatio_ = 1D;
10084  onChanged();
10085  return this;
10086  }
10087 
10088  private double restartLbdAverageRatio_ = 1D;
10092  public boolean hasRestartLbdAverageRatio() {
10093  return ((bitField1_ & 0x00000001) != 0);
10094  }
10098  public double getRestartLbdAverageRatio() {
10099  return restartLbdAverageRatio_;
10100  }
10104  public Builder setRestartLbdAverageRatio(double value) {
10105  bitField1_ |= 0x00000001;
10106  restartLbdAverageRatio_ = value;
10107  onChanged();
10108  return this;
10109  }
10114  bitField1_ = (bitField1_ & ~0x00000001);
10115  restartLbdAverageRatio_ = 1D;
10116  onChanged();
10117  return this;
10118  }
10119 
10120  private boolean useBlockingRestart_ ;
10130  public boolean hasUseBlockingRestart() {
10131  return ((bitField1_ & 0x00000002) != 0);
10132  }
10142  public boolean getUseBlockingRestart() {
10143  return useBlockingRestart_;
10144  }
10154  public Builder setUseBlockingRestart(boolean value) {
10155  bitField1_ |= 0x00000002;
10156  useBlockingRestart_ = value;
10157  onChanged();
10158  return this;
10159  }
10170  bitField1_ = (bitField1_ & ~0x00000002);
10171  useBlockingRestart_ = false;
10172  onChanged();
10173  return this;
10174  }
10175 
10176  private int blockingRestartWindowSize_ = 5000;
10180  public boolean hasBlockingRestartWindowSize() {
10181  return ((bitField1_ & 0x00000004) != 0);
10182  }
10187  return blockingRestartWindowSize_;
10188  }
10193  bitField1_ |= 0x00000004;
10194  blockingRestartWindowSize_ = value;
10195  onChanged();
10196  return this;
10197  }
10202  bitField1_ = (bitField1_ & ~0x00000004);
10203  blockingRestartWindowSize_ = 5000;
10204  onChanged();
10205  return this;
10206  }
10207 
10208  private double blockingRestartMultiplier_ = 1.4D;
10212  public boolean hasBlockingRestartMultiplier() {
10213  return ((bitField1_ & 0x00000008) != 0);
10214  }
10219  return blockingRestartMultiplier_;
10220  }
10224  public Builder setBlockingRestartMultiplier(double value) {
10225  bitField1_ |= 0x00000008;
10226  blockingRestartMultiplier_ = value;
10227  onChanged();
10228  return this;
10229  }
10234  bitField1_ = (bitField1_ & ~0x00000008);
10235  blockingRestartMultiplier_ = 1.4D;
10236  onChanged();
10237  return this;
10238  }
10239 
10240  private int numConflictsBeforeStrategyChanges_ ;
10251  return ((bitField1_ & 0x00000010) != 0);
10252  }
10263  return numConflictsBeforeStrategyChanges_;
10264  }
10275  bitField1_ |= 0x00000010;
10276  numConflictsBeforeStrategyChanges_ = value;
10277  onChanged();
10278  return this;
10279  }
10290  bitField1_ = (bitField1_ & ~0x00000010);
10291  numConflictsBeforeStrategyChanges_ = 0;
10292  onChanged();
10293  return this;
10294  }
10295 
10296  private double strategyChangeIncreaseRatio_ ;
10306  return ((bitField1_ & 0x00000020) != 0);
10307  }
10317  return strategyChangeIncreaseRatio_;
10318  }
10328  bitField1_ |= 0x00000020;
10329  strategyChangeIncreaseRatio_ = value;
10330  onChanged();
10331  return this;
10332  }
10342  bitField1_ = (bitField1_ & ~0x00000020);
10343  strategyChangeIncreaseRatio_ = 0D;
10344  onChanged();
10345  return this;
10346  }
10347 
10348  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10358  public boolean hasMaxTimeInSeconds() {
10359  return ((bitField1_ & 0x00000040) != 0);
10360  }
10370  public double getMaxTimeInSeconds() {
10371  return maxTimeInSeconds_;
10372  }
10382  public Builder setMaxTimeInSeconds(double value) {
10383  bitField1_ |= 0x00000040;
10384  maxTimeInSeconds_ = value;
10385  onChanged();
10386  return this;
10387  }
10398  bitField1_ = (bitField1_ & ~0x00000040);
10399  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10400  onChanged();
10401  return this;
10402  }
10403 
10404  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10416  public boolean hasMaxDeterministicTime() {
10417  return ((bitField1_ & 0x00000080) != 0);
10418  }
10430  public double getMaxDeterministicTime() {
10431  return maxDeterministicTime_;
10432  }
10444  public Builder setMaxDeterministicTime(double value) {
10445  bitField1_ |= 0x00000080;
10446  maxDeterministicTime_ = value;
10447  onChanged();
10448  return this;
10449  }
10462  bitField1_ = (bitField1_ & ~0x00000080);
10463  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10464  onChanged();
10465  return this;
10466  }
10467 
10468  private long maxNumberOfConflicts_ = 9223372036854775807L;
10476  public boolean hasMaxNumberOfConflicts() {
10477  return ((bitField1_ & 0x00000100) != 0);
10478  }
10486  public long getMaxNumberOfConflicts() {
10487  return maxNumberOfConflicts_;
10488  }
10496  public Builder setMaxNumberOfConflicts(long value) {
10497  bitField1_ |= 0x00000100;
10498  maxNumberOfConflicts_ = value;
10499  onChanged();
10500  return this;
10501  }
10510  bitField1_ = (bitField1_ & ~0x00000100);
10511  maxNumberOfConflicts_ = 9223372036854775807L;
10512  onChanged();
10513  return this;
10514  }
10515 
10516  private long maxMemoryInMb_ = 10000L;
10527  public boolean hasMaxMemoryInMb() {
10528  return ((bitField1_ & 0x00000200) != 0);
10529  }
10540  public long getMaxMemoryInMb() {
10541  return maxMemoryInMb_;
10542  }
10553  public Builder setMaxMemoryInMb(long value) {
10554  bitField1_ |= 0x00000200;
10555  maxMemoryInMb_ = value;
10556  onChanged();
10557  return this;
10558  }
10570  bitField1_ = (bitField1_ & ~0x00000200);
10571  maxMemoryInMb_ = 10000L;
10572  onChanged();
10573  return this;
10574  }
10575 
10576  private boolean treatBinaryClausesSeparately_ = true;
10587  return ((bitField1_ & 0x00000400) != 0);
10588  }
10599  return treatBinaryClausesSeparately_;
10600  }
10611  bitField1_ |= 0x00000400;
10612  treatBinaryClausesSeparately_ = value;
10613  onChanged();
10614  return this;
10615  }
10626  bitField1_ = (bitField1_ & ~0x00000400);
10627  treatBinaryClausesSeparately_ = true;
10628  onChanged();
10629  return this;
10630  }
10631 
10632  private int randomSeed_ = 1;
10645  public boolean hasRandomSeed() {
10646  return ((bitField1_ & 0x00000800) != 0);
10647  }
10660  public int getRandomSeed() {
10661  return randomSeed_;
10662  }
10675  public Builder setRandomSeed(int value) {
10676  bitField1_ |= 0x00000800;
10677  randomSeed_ = value;
10678  onChanged();
10679  return this;
10680  }
10694  bitField1_ = (bitField1_ & ~0x00000800);
10695  randomSeed_ = 1;
10696  onChanged();
10697  return this;
10698  }
10699 
10700  private boolean logSearchProgress_ ;
10708  public boolean hasLogSearchProgress() {
10709  return ((bitField1_ & 0x00001000) != 0);
10710  }
10718  public boolean getLogSearchProgress() {
10719  return logSearchProgress_;
10720  }
10728  public Builder setLogSearchProgress(boolean value) {
10729  bitField1_ |= 0x00001000;
10730  logSearchProgress_ = value;
10731  onChanged();
10732  return this;
10733  }
10742  bitField1_ = (bitField1_ & ~0x00001000);
10743  logSearchProgress_ = false;
10744  onChanged();
10745  return this;
10746  }
10747 
10748  private boolean usePbResolution_ ;
10759  public boolean hasUsePbResolution() {
10760  return ((bitField1_ & 0x00002000) != 0);
10761  }
10772  public boolean getUsePbResolution() {
10773  return usePbResolution_;
10774  }
10785  public Builder setUsePbResolution(boolean value) {
10786  bitField1_ |= 0x00002000;
10787  usePbResolution_ = value;
10788  onChanged();
10789  return this;
10790  }
10802  bitField1_ = (bitField1_ & ~0x00002000);
10803  usePbResolution_ = false;
10804  onChanged();
10805  return this;
10806  }
10807 
10808  private boolean minimizeReductionDuringPbResolution_ ;
10820  return ((bitField1_ & 0x00004000) != 0);
10821  }
10833  return minimizeReductionDuringPbResolution_;
10834  }
10846  bitField1_ |= 0x00004000;
10847  minimizeReductionDuringPbResolution_ = value;
10848  onChanged();
10849  return this;
10850  }
10862  bitField1_ = (bitField1_ & ~0x00004000);
10863  minimizeReductionDuringPbResolution_ = false;
10864  onChanged();
10865  return this;
10866  }
10867 
10868  private boolean countAssumptionLevelsInLbd_ = true;
10884  return ((bitField1_ & 0x00008000) != 0);
10885  }
10901  return countAssumptionLevelsInLbd_;
10902  }
10917  public Builder setCountAssumptionLevelsInLbd(boolean value) {
10918  bitField1_ |= 0x00008000;
10919  countAssumptionLevelsInLbd_ = value;
10920  onChanged();
10921  return this;
10922  }
10938  bitField1_ = (bitField1_ & ~0x00008000);
10939  countAssumptionLevelsInLbd_ = true;
10940  onChanged();
10941  return this;
10942  }
10943 
10944  private int presolveBveThreshold_ = 500;
10954  public boolean hasPresolveBveThreshold() {
10955  return ((bitField1_ & 0x00010000) != 0);
10956  }
10967  return presolveBveThreshold_;
10968  }
10978  public Builder setPresolveBveThreshold(int value) {
10979  bitField1_ |= 0x00010000;
10980  presolveBveThreshold_ = value;
10981  onChanged();
10982  return this;
10983  }
10994  bitField1_ = (bitField1_ & ~0x00010000);
10995  presolveBveThreshold_ = 500;
10996  onChanged();
10997  return this;
10998  }
10999 
11000  private int presolveBveClauseWeight_ = 3;
11009  public boolean hasPresolveBveClauseWeight() {
11010  return ((bitField1_ & 0x00020000) != 0);
11011  }
11021  return presolveBveClauseWeight_;
11022  }
11032  bitField1_ |= 0x00020000;
11033  presolveBveClauseWeight_ = value;
11034  onChanged();
11035  return this;
11036  }
11046  bitField1_ = (bitField1_ & ~0x00020000);
11047  presolveBveClauseWeight_ = 3;
11048  onChanged();
11049  return this;
11050  }
11051 
11052  private double presolveProbingDeterministicTimeLimit_ = 30D;
11062  return ((bitField1_ & 0x00040000) != 0);
11063  }
11073  return presolveProbingDeterministicTimeLimit_;
11074  }
11084  bitField1_ |= 0x00040000;
11085  presolveProbingDeterministicTimeLimit_ = value;
11086  onChanged();
11087  return this;
11088  }
11098  bitField1_ = (bitField1_ & ~0x00040000);
11099  presolveProbingDeterministicTimeLimit_ = 30D;
11100  onChanged();
11101  return this;
11102  }
11103 
11104  private boolean presolveBlockedClause_ = true;
11113  public boolean hasPresolveBlockedClause() {
11114  return ((bitField1_ & 0x00080000) != 0);
11115  }
11124  public boolean getPresolveBlockedClause() {
11125  return presolveBlockedClause_;
11126  }
11135  public Builder setPresolveBlockedClause(boolean value) {
11136  bitField1_ |= 0x00080000;
11137  presolveBlockedClause_ = value;
11138  onChanged();
11139  return this;
11140  }
11150  bitField1_ = (bitField1_ & ~0x00080000);
11151  presolveBlockedClause_ = true;
11152  onChanged();
11153  return this;
11154  }
11155 
11156  private boolean presolveUseBva_ = true;
11164  public boolean hasPresolveUseBva() {
11165  return ((bitField1_ & 0x00100000) != 0);
11166  }
11174  public boolean getPresolveUseBva() {
11175  return presolveUseBva_;
11176  }
11184  public Builder setPresolveUseBva(boolean value) {
11185  bitField1_ |= 0x00100000;
11186  presolveUseBva_ = value;
11187  onChanged();
11188  return this;
11189  }
11198  bitField1_ = (bitField1_ & ~0x00100000);
11199  presolveUseBva_ = true;
11200  onChanged();
11201  return this;
11202  }
11203 
11204  private int presolveBvaThreshold_ = 1;
11215  public boolean hasPresolveBvaThreshold() {
11216  return ((bitField1_ & 0x00200000) != 0);
11217  }
11229  return presolveBvaThreshold_;
11230  }
11241  public Builder setPresolveBvaThreshold(int value) {
11242  bitField1_ |= 0x00200000;
11243  presolveBvaThreshold_ = value;
11244  onChanged();
11245  return this;
11246  }
11258  bitField1_ = (bitField1_ & ~0x00200000);
11259  presolveBvaThreshold_ = 1;
11260  onChanged();
11261  return this;
11262  }
11263 
11264  private boolean useOptimizationHints_ = true;
11275  public boolean hasUseOptimizationHints() {
11276  return ((bitField1_ & 0x00400000) != 0);
11277  }
11288  public boolean getUseOptimizationHints() {
11289  return useOptimizationHints_;
11290  }
11301  public Builder setUseOptimizationHints(boolean value) {
11302  bitField1_ |= 0x00400000;
11303  useOptimizationHints_ = value;
11304  onChanged();
11305  return this;
11306  }
11318  bitField1_ = (bitField1_ & ~0x00400000);
11319  useOptimizationHints_ = true;
11320  onChanged();
11321  return this;
11322  }
11323 
11324  private boolean minimizeCore_ = true;
11332  public boolean hasMinimizeCore() {
11333  return ((bitField1_ & 0x00800000) != 0);
11334  }
11342  public boolean getMinimizeCore() {
11343  return minimizeCore_;
11344  }
11352  public Builder setMinimizeCore(boolean value) {
11353  bitField1_ |= 0x00800000;
11354  minimizeCore_ = value;
11355  onChanged();
11356  return this;
11357  }
11366  bitField1_ = (bitField1_ & ~0x00800000);
11367  minimizeCore_ = true;
11368  onChanged();
11369  return this;
11370  }
11371 
11372  private boolean findMultipleCores_ = true;
11381  public boolean hasFindMultipleCores() {
11382  return ((bitField1_ & 0x01000000) != 0);
11383  }
11392  public boolean getFindMultipleCores() {
11393  return findMultipleCores_;
11394  }
11403  public Builder setFindMultipleCores(boolean value) {
11404  bitField1_ |= 0x01000000;
11405  findMultipleCores_ = value;
11406  onChanged();
11407  return this;
11408  }
11418  bitField1_ = (bitField1_ & ~0x01000000);
11419  findMultipleCores_ = true;
11420  onChanged();
11421  return this;
11422  }
11423 
11424  private boolean coverOptimization_ = true;
11433  public boolean hasCoverOptimization() {
11434  return ((bitField1_ & 0x02000000) != 0);
11435  }
11444  public boolean getCoverOptimization() {
11445  return coverOptimization_;
11446  }
11455  public Builder setCoverOptimization(boolean value) {
11456  bitField1_ |= 0x02000000;
11457  coverOptimization_ = value;
11458  onChanged();
11459  return this;
11460  }
11470  bitField1_ = (bitField1_ & ~0x02000000);
11471  coverOptimization_ = true;
11472  onChanged();
11473  return this;
11474  }
11475 
11476  private int maxSatAssumptionOrder_ = 0;
11480  public boolean hasMaxSatAssumptionOrder() {
11481  return ((bitField1_ & 0x04000000) != 0);
11482  }
11487  @SuppressWarnings("deprecation")
11490  }
11495  if (value == null) {
11496  throw new NullPointerException();
11497  }
11498  bitField1_ |= 0x04000000;
11499  maxSatAssumptionOrder_ = value.getNumber();
11500  onChanged();
11501  return this;
11502  }
11507  bitField1_ = (bitField1_ & ~0x04000000);
11508  maxSatAssumptionOrder_ = 0;
11509  onChanged();
11510  return this;
11511  }
11512 
11513  private boolean maxSatReverseAssumptionOrder_ ;
11523  return ((bitField1_ & 0x08000000) != 0);
11524  }
11534  return maxSatReverseAssumptionOrder_;
11535  }
11545  bitField1_ |= 0x08000000;
11546  maxSatReverseAssumptionOrder_ = value;
11547  onChanged();
11548  return this;
11549  }
11559  bitField1_ = (bitField1_ & ~0x08000000);
11560  maxSatReverseAssumptionOrder_ = false;
11561  onChanged();
11562  return this;
11563  }
11564 
11565  private int maxSatStratification_ = 1;
11569  public boolean hasMaxSatStratification() {
11570  return ((bitField1_ & 0x10000000) != 0);
11571  }
11576  @SuppressWarnings("deprecation")
11579  }
11584  if (value == null) {
11585  throw new NullPointerException();
11586  }
11587  bitField1_ |= 0x10000000;
11588  maxSatStratification_ = value.getNumber();
11589  onChanged();
11590  return this;
11591  }
11596  bitField1_ = (bitField1_ & ~0x10000000);
11597  maxSatStratification_ = 1;
11598  onChanged();
11599  return this;
11600  }
11601 
11602  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
11618  return ((bitField1_ & 0x20000000) != 0);
11619  }
11635  return usePrecedencesInDisjunctiveConstraint_;
11636  }
11652  bitField1_ |= 0x20000000;
11653  usePrecedencesInDisjunctiveConstraint_ = value;
11654  onChanged();
11655  return this;
11656  }
11672  bitField1_ = (bitField1_ & ~0x20000000);
11673  usePrecedencesInDisjunctiveConstraint_ = true;
11674  onChanged();
11675  return this;
11676  }
11677 
11678  private boolean useOverloadCheckerInCumulativeConstraint_ ;
11692  return ((bitField1_ & 0x40000000) != 0);
11693  }
11707  return useOverloadCheckerInCumulativeConstraint_;
11708  }
11722  bitField1_ |= 0x40000000;
11723  useOverloadCheckerInCumulativeConstraint_ = value;
11724  onChanged();
11725  return this;
11726  }
11740  bitField1_ = (bitField1_ & ~0x40000000);
11741  useOverloadCheckerInCumulativeConstraint_ = false;
11742  onChanged();
11743  return this;
11744  }
11745 
11746  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
11760  return ((bitField1_ & 0x80000000) != 0);
11761  }
11775  return useTimetableEdgeFindingInCumulativeConstraint_;
11776  }
11790  bitField1_ |= 0x80000000;
11791  useTimetableEdgeFindingInCumulativeConstraint_ = value;
11792  onChanged();
11793  return this;
11794  }
11808  bitField1_ = (bitField1_ & ~0x80000000);
11809  useTimetableEdgeFindingInCumulativeConstraint_ = false;
11810  onChanged();
11811  return this;
11812  }
11813 
11814  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
11830  return ((bitField2_ & 0x00000001) != 0);
11831  }
11847  return useDisjunctiveConstraintInCumulativeConstraint_;
11848  }
11864  bitField2_ |= 0x00000001;
11865  useDisjunctiveConstraintInCumulativeConstraint_ = value;
11866  onChanged();
11867  return this;
11868  }
11884  bitField2_ = (bitField2_ & ~0x00000001);
11885  useDisjunctiveConstraintInCumulativeConstraint_ = true;
11886  onChanged();
11887  return this;
11888  }
11889 
11890  private int linearizationLevel_ = 1;
11901  public boolean hasLinearizationLevel() {
11902  return ((bitField2_ & 0x00000002) != 0);
11903  }
11914  public int getLinearizationLevel() {
11915  return linearizationLevel_;
11916  }
11927  public Builder setLinearizationLevel(int value) {
11928  bitField2_ |= 0x00000002;
11929  linearizationLevel_ = value;
11930  onChanged();
11931  return this;
11932  }
11944  bitField2_ = (bitField2_ & ~0x00000002);
11945  linearizationLevel_ = 1;
11946  onChanged();
11947  return this;
11948  }
11949 
11950  private int booleanEncodingLevel_ = 1;
11959  public boolean hasBooleanEncodingLevel() {
11960  return ((bitField2_ & 0x00000004) != 0);
11961  }
11971  return booleanEncodingLevel_;
11972  }
11981  public Builder setBooleanEncodingLevel(int value) {
11982  bitField2_ |= 0x00000004;
11983  booleanEncodingLevel_ = value;
11984  onChanged();
11985  return this;
11986  }
11996  bitField2_ = (bitField2_ & ~0x00000004);
11997  booleanEncodingLevel_ = 1;
11998  onChanged();
11999  return this;
12000  }
12001 
12002  private int maxNumCuts_ = 1000;
12011  public boolean hasMaxNumCuts() {
12012  return ((bitField2_ & 0x00000008) != 0);
12013  }
12022  public int getMaxNumCuts() {
12023  return maxNumCuts_;
12024  }
12033  public Builder setMaxNumCuts(int value) {
12034  bitField2_ |= 0x00000008;
12035  maxNumCuts_ = value;
12036  onChanged();
12037  return this;
12038  }
12048  bitField2_ = (bitField2_ & ~0x00000008);
12049  maxNumCuts_ = 1000;
12050  onChanged();
12051  return this;
12052  }
12053 
12054  private boolean onlyAddCutsAtLevelZero_ ;
12063  public boolean hasOnlyAddCutsAtLevelZero() {
12064  return ((bitField2_ & 0x00000010) != 0);
12065  }
12074  public boolean getOnlyAddCutsAtLevelZero() {
12075  return onlyAddCutsAtLevelZero_;
12076  }
12085  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
12086  bitField2_ |= 0x00000010;
12087  onlyAddCutsAtLevelZero_ = value;
12088  onChanged();
12089  return this;
12090  }
12100  bitField2_ = (bitField2_ & ~0x00000010);
12101  onlyAddCutsAtLevelZero_ = false;
12102  onChanged();
12103  return this;
12104  }
12105 
12106  private boolean addKnapsackCuts_ ;
12116  public boolean hasAddKnapsackCuts() {
12117  return ((bitField2_ & 0x00000020) != 0);
12118  }
12128  public boolean getAddKnapsackCuts() {
12129  return addKnapsackCuts_;
12130  }
12140  public Builder setAddKnapsackCuts(boolean value) {
12141  bitField2_ |= 0x00000020;
12142  addKnapsackCuts_ = value;
12143  onChanged();
12144  return this;
12145  }
12156  bitField2_ = (bitField2_ & ~0x00000020);
12157  addKnapsackCuts_ = false;
12158  onChanged();
12159  return this;
12160  }
12161 
12162  private boolean addCgCuts_ ;
12171  public boolean hasAddCgCuts() {
12172  return ((bitField2_ & 0x00000040) != 0);
12173  }
12182  public boolean getAddCgCuts() {
12183  return addCgCuts_;
12184  }
12193  public Builder setAddCgCuts(boolean value) {
12194  bitField2_ |= 0x00000040;
12195  addCgCuts_ = value;
12196  onChanged();
12197  return this;
12198  }
12208  bitField2_ = (bitField2_ & ~0x00000040);
12209  addCgCuts_ = false;
12210  onChanged();
12211  return this;
12212  }
12213 
12214  private boolean addMirCuts_ = true;
12223  public boolean hasAddMirCuts() {
12224  return ((bitField2_ & 0x00000080) != 0);
12225  }
12234  public boolean getAddMirCuts() {
12235  return addMirCuts_;
12236  }
12245  public Builder setAddMirCuts(boolean value) {
12246  bitField2_ |= 0x00000080;
12247  addMirCuts_ = value;
12248  onChanged();
12249  return this;
12250  }
12260  bitField2_ = (bitField2_ & ~0x00000080);
12261  addMirCuts_ = true;
12262  onChanged();
12263  return this;
12264  }
12265 
12266  private boolean useMirRounding_ = true;
12276  public boolean hasUseMirRounding() {
12277  return ((bitField2_ & 0x00000100) != 0);
12278  }
12288  public boolean getUseMirRounding() {
12289  return useMirRounding_;
12290  }
12300  public Builder setUseMirRounding(boolean value) {
12301  bitField2_ |= 0x00000100;
12302  useMirRounding_ = value;
12303  onChanged();
12304  return this;
12305  }
12316  bitField2_ = (bitField2_ & ~0x00000100);
12317  useMirRounding_ = true;
12318  onChanged();
12319  return this;
12320  }
12321 
12322  private int maxIntegerRoundingScaling_ = 600;
12334  public boolean hasMaxIntegerRoundingScaling() {
12335  return ((bitField2_ & 0x00000200) != 0);
12336  }
12349  return maxIntegerRoundingScaling_;
12350  }
12363  bitField2_ |= 0x00000200;
12364  maxIntegerRoundingScaling_ = value;
12365  onChanged();
12366  return this;
12367  }
12380  bitField2_ = (bitField2_ & ~0x00000200);
12381  maxIntegerRoundingScaling_ = 600;
12382  onChanged();
12383  return this;
12384  }
12385 
12386  private boolean addLpConstraintsLazily_ = true;
12397  public boolean hasAddLpConstraintsLazily() {
12398  return ((bitField2_ & 0x00000400) != 0);
12399  }
12410  public boolean getAddLpConstraintsLazily() {
12411  return addLpConstraintsLazily_;
12412  }
12423  public Builder setAddLpConstraintsLazily(boolean value) {
12424  bitField2_ |= 0x00000400;
12425  addLpConstraintsLazily_ = value;
12426  onChanged();
12427  return this;
12428  }
12440  bitField2_ = (bitField2_ & ~0x00000400);
12441  addLpConstraintsLazily_ = true;
12442  onChanged();
12443  return this;
12444  }
12445 
12446  private double minOrthogonalityForLpConstraints_ ;
12459  return ((bitField2_ & 0x00000800) != 0);
12460  }
12473  return minOrthogonalityForLpConstraints_;
12474  }
12487  bitField2_ |= 0x00000800;
12488  minOrthogonalityForLpConstraints_ = value;
12489  onChanged();
12490  return this;
12491  }
12504  bitField2_ = (bitField2_ & ~0x00000800);
12505  minOrthogonalityForLpConstraints_ = 0D;
12506  onChanged();
12507  return this;
12508  }
12509 
12510  private long maxInactiveCount_ = 1000L;
12519  public boolean hasMaxInactiveCount() {
12520  return ((bitField2_ & 0x00001000) != 0);
12521  }
12530  public long getMaxInactiveCount() {
12531  return maxInactiveCount_;
12532  }
12541  public Builder setMaxInactiveCount(long value) {
12542  bitField2_ |= 0x00001000;
12543  maxInactiveCount_ = value;
12544  onChanged();
12545  return this;
12546  }
12556  bitField2_ = (bitField2_ & ~0x00001000);
12557  maxInactiveCount_ = 1000L;
12558  onChanged();
12559  return this;
12560  }
12561 
12562  private long constraintRemovalBatchSize_ = 100L;
12572  return ((bitField2_ & 0x00002000) != 0);
12573  }
12583  return constraintRemovalBatchSize_;
12584  }
12594  bitField2_ |= 0x00002000;
12595  constraintRemovalBatchSize_ = value;
12596  onChanged();
12597  return this;
12598  }
12608  bitField2_ = (bitField2_ & ~0x00002000);
12609  constraintRemovalBatchSize_ = 100L;
12610  onChanged();
12611  return this;
12612  }
12613 
12614  private int searchBranching_ = 0;
12618  public boolean hasSearchBranching() {
12619  return ((bitField2_ & 0x00004000) != 0);
12620  }
12625  @SuppressWarnings("deprecation")
12627  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
12628  }
12633  if (value == null) {
12634  throw new NullPointerException();
12635  }
12636  bitField2_ |= 0x00004000;
12637  searchBranching_ = value.getNumber();
12638  onChanged();
12639  return this;
12640  }
12645  bitField2_ = (bitField2_ & ~0x00004000);
12646  searchBranching_ = 0;
12647  onChanged();
12648  return this;
12649  }
12650 
12651  private boolean exploitIntegerLpSolution_ = true;
12662  public boolean hasExploitIntegerLpSolution() {
12663  return ((bitField2_ & 0x00008000) != 0);
12664  }
12675  public boolean getExploitIntegerLpSolution() {
12676  return exploitIntegerLpSolution_;
12677  }
12688  public Builder setExploitIntegerLpSolution(boolean value) {
12689  bitField2_ |= 0x00008000;
12690  exploitIntegerLpSolution_ = value;
12691  onChanged();
12692  return this;
12693  }
12705  bitField2_ = (bitField2_ & ~0x00008000);
12706  exploitIntegerLpSolution_ = true;
12707  onChanged();
12708  return this;
12709  }
12710 
12711  private boolean exploitAllLpSolution_ = true;
12721  public boolean hasExploitAllLpSolution() {
12722  return ((bitField2_ & 0x00010000) != 0);
12723  }
12733  public boolean getExploitAllLpSolution() {
12734  return exploitAllLpSolution_;
12735  }
12745  public Builder setExploitAllLpSolution(boolean value) {
12746  bitField2_ |= 0x00010000;
12747  exploitAllLpSolution_ = value;
12748  onChanged();
12749  return this;
12750  }
12761  bitField2_ = (bitField2_ & ~0x00010000);
12762  exploitAllLpSolution_ = true;
12763  onChanged();
12764  return this;
12765  }
12766 
12767  private boolean exploitBestSolution_ ;
12775  public boolean hasExploitBestSolution() {
12776  return ((bitField2_ & 0x00020000) != 0);
12777  }
12785  public boolean getExploitBestSolution() {
12786  return exploitBestSolution_;
12787  }
12795  public Builder setExploitBestSolution(boolean value) {
12796  bitField2_ |= 0x00020000;
12797  exploitBestSolution_ = value;
12798  onChanged();
12799  return this;
12800  }
12809  bitField2_ = (bitField2_ & ~0x00020000);
12810  exploitBestSolution_ = false;
12811  onChanged();
12812  return this;
12813  }
12814 
12815  private boolean exploitObjective_ = true;
12824  public boolean hasExploitObjective() {
12825  return ((bitField2_ & 0x00040000) != 0);
12826  }
12835  public boolean getExploitObjective() {
12836  return exploitObjective_;
12837  }
12846  public Builder setExploitObjective(boolean value) {
12847  bitField2_ |= 0x00040000;
12848  exploitObjective_ = value;
12849  onChanged();
12850  return this;
12851  }
12861  bitField2_ = (bitField2_ & ~0x00040000);
12862  exploitObjective_ = true;
12863  onChanged();
12864  return this;
12865  }
12866 
12867  private long pseudoCostReliabilityThreshold_ = 100L;
12877  return ((bitField2_ & 0x00080000) != 0);
12878  }
12888  return pseudoCostReliabilityThreshold_;
12889  }
12899  bitField2_ |= 0x00080000;
12900  pseudoCostReliabilityThreshold_ = value;
12901  onChanged();
12902  return this;
12903  }
12913  bitField2_ = (bitField2_ & ~0x00080000);
12914  pseudoCostReliabilityThreshold_ = 100L;
12915  onChanged();
12916  return this;
12917  }
12918 
12919  private boolean optimizeWithCore_ ;
12930  public boolean hasOptimizeWithCore() {
12931  return ((bitField2_ & 0x00100000) != 0);
12932  }
12943  public boolean getOptimizeWithCore() {
12944  return optimizeWithCore_;
12945  }
12956  public Builder setOptimizeWithCore(boolean value) {
12957  bitField2_ |= 0x00100000;
12958  optimizeWithCore_ = value;
12959  onChanged();
12960  return this;
12961  }
12973  bitField2_ = (bitField2_ & ~0x00100000);
12974  optimizeWithCore_ = false;
12975  onChanged();
12976  return this;
12977  }
12978 
12979  private int binarySearchNumConflicts_ = -1;
12990  public boolean hasBinarySearchNumConflicts() {
12991  return ((bitField2_ & 0x00200000) != 0);
12992  }
13004  return binarySearchNumConflicts_;
13005  }
13017  bitField2_ |= 0x00200000;
13018  binarySearchNumConflicts_ = value;
13019  onChanged();
13020  return this;
13021  }
13033  bitField2_ = (bitField2_ & ~0x00200000);
13034  binarySearchNumConflicts_ = -1;
13035  onChanged();
13036  return this;
13037  }
13038 
13039  private boolean optimizeWithMaxHs_ ;
13052  public boolean hasOptimizeWithMaxHs() {
13053  return ((bitField2_ & 0x00400000) != 0);
13054  }
13067  public boolean getOptimizeWithMaxHs() {
13068  return optimizeWithMaxHs_;
13069  }
13082  public Builder setOptimizeWithMaxHs(boolean value) {
13083  bitField2_ |= 0x00400000;
13084  optimizeWithMaxHs_ = value;
13085  onChanged();
13086  return this;
13087  }
13101  bitField2_ = (bitField2_ & ~0x00400000);
13102  optimizeWithMaxHs_ = false;
13103  onChanged();
13104  return this;
13105  }
13106 
13107  private boolean cpModelPresolve_ = true;
13115  public boolean hasCpModelPresolve() {
13116  return ((bitField2_ & 0x00800000) != 0);
13117  }
13125  public boolean getCpModelPresolve() {
13126  return cpModelPresolve_;
13127  }
13135  public Builder setCpModelPresolve(boolean value) {
13136  bitField2_ |= 0x00800000;
13137  cpModelPresolve_ = value;
13138  onChanged();
13139  return this;
13140  }
13149  bitField2_ = (bitField2_ & ~0x00800000);
13150  cpModelPresolve_ = true;
13151  onChanged();
13152  return this;
13153  }
13154 
13155  private int cpModelProbingLevel_ = 2;
13163  public boolean hasCpModelProbingLevel() {
13164  return ((bitField2_ & 0x01000000) != 0);
13165  }
13173  public int getCpModelProbingLevel() {
13174  return cpModelProbingLevel_;
13175  }
13183  public Builder setCpModelProbingLevel(int value) {
13184  bitField2_ |= 0x01000000;
13185  cpModelProbingLevel_ = value;
13186  onChanged();
13187  return this;
13188  }
13197  bitField2_ = (bitField2_ & ~0x01000000);
13198  cpModelProbingLevel_ = 2;
13199  onChanged();
13200  return this;
13201  }
13202 
13203  private boolean cpModelUseSatPresolve_ = true;
13211  public boolean hasCpModelUseSatPresolve() {
13212  return ((bitField2_ & 0x02000000) != 0);
13213  }
13221  public boolean getCpModelUseSatPresolve() {
13222  return cpModelUseSatPresolve_;
13223  }
13231  public Builder setCpModelUseSatPresolve(boolean value) {
13232  bitField2_ |= 0x02000000;
13233  cpModelUseSatPresolve_ = value;
13234  onChanged();
13235  return this;
13236  }
13245  bitField2_ = (bitField2_ & ~0x02000000);
13246  cpModelUseSatPresolve_ = true;
13247  onChanged();
13248  return this;
13249  }
13250 
13251  private boolean enumerateAllSolutions_ ;
13264  public boolean hasEnumerateAllSolutions() {
13265  return ((bitField2_ & 0x04000000) != 0);
13266  }
13279  public boolean getEnumerateAllSolutions() {
13280  return enumerateAllSolutions_;
13281  }
13294  public Builder setEnumerateAllSolutions(boolean value) {
13295  bitField2_ |= 0x04000000;
13296  enumerateAllSolutions_ = value;
13297  onChanged();
13298  return this;
13299  }
13313  bitField2_ = (bitField2_ & ~0x04000000);
13314  enumerateAllSolutions_ = false;
13315  onChanged();
13316  return this;
13317  }
13318 
13319  private boolean fillTightenedDomainsInResponse_ ;
13332  return ((bitField2_ & 0x08000000) != 0);
13333  }
13346  return fillTightenedDomainsInResponse_;
13347  }
13360  bitField2_ |= 0x08000000;
13361  fillTightenedDomainsInResponse_ = value;
13362  onChanged();
13363  return this;
13364  }
13377  bitField2_ = (bitField2_ & ~0x08000000);
13378  fillTightenedDomainsInResponse_ = false;
13379  onChanged();
13380  return this;
13381  }
13382 
13383  private boolean instantiateAllVariables_ = true;
13392  public boolean hasInstantiateAllVariables() {
13393  return ((bitField2_ & 0x10000000) != 0);
13394  }
13403  public boolean getInstantiateAllVariables() {
13404  return instantiateAllVariables_;
13405  }
13414  public Builder setInstantiateAllVariables(boolean value) {
13415  bitField2_ |= 0x10000000;
13416  instantiateAllVariables_ = value;
13417  onChanged();
13418  return this;
13419  }
13429  bitField2_ = (bitField2_ & ~0x10000000);
13430  instantiateAllVariables_ = true;
13431  onChanged();
13432  return this;
13433  }
13434 
13435  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
13447  return ((bitField2_ & 0x20000000) != 0);
13448  }
13460  return autoDetectGreaterThanAtLeastOneOf_;
13461  }
13473  bitField2_ |= 0x20000000;
13474  autoDetectGreaterThanAtLeastOneOf_ = value;
13475  onChanged();
13476  return this;
13477  }
13489  bitField2_ = (bitField2_ & ~0x20000000);
13490  autoDetectGreaterThanAtLeastOneOf_ = true;
13491  onChanged();
13492  return this;
13493  }
13494 
13495  private boolean stopAfterFirstSolution_ ;
13503  public boolean hasStopAfterFirstSolution() {
13504  return ((bitField2_ & 0x40000000) != 0);
13505  }
13513  public boolean getStopAfterFirstSolution() {
13514  return stopAfterFirstSolution_;
13515  }
13523  public Builder setStopAfterFirstSolution(boolean value) {
13524  bitField2_ |= 0x40000000;
13525  stopAfterFirstSolution_ = value;
13526  onChanged();
13527  return this;
13528  }
13537  bitField2_ = (bitField2_ & ~0x40000000);
13538  stopAfterFirstSolution_ = false;
13539  onChanged();
13540  return this;
13541  }
13542 
13543  private int numSearchWorkers_ ;
13554  public boolean hasNumSearchWorkers() {
13555  return ((bitField2_ & 0x80000000) != 0);
13556  }
13567  public int getNumSearchWorkers() {
13568  return numSearchWorkers_;
13569  }
13580  public Builder setNumSearchWorkers(int value) {
13581  bitField2_ |= 0x80000000;
13582  numSearchWorkers_ = value;
13583  onChanged();
13584  return this;
13585  }
13597  bitField2_ = (bitField2_ & ~0x80000000);
13598  numSearchWorkers_ = 0;
13599  onChanged();
13600  return this;
13601  }
13602 
13603  private boolean shareObjectiveBounds_ = true;
13611  public boolean hasShareObjectiveBounds() {
13612  return ((bitField3_ & 0x00000001) != 0);
13613  }
13621  public boolean getShareObjectiveBounds() {
13622  return shareObjectiveBounds_;
13623  }
13631  public Builder setShareObjectiveBounds(boolean value) {
13632  bitField3_ |= 0x00000001;
13633  shareObjectiveBounds_ = value;
13634  onChanged();
13635  return this;
13636  }
13645  bitField3_ = (bitField3_ & ~0x00000001);
13646  shareObjectiveBounds_ = true;
13647  onChanged();
13648  return this;
13649  }
13650 
13651  private boolean shareLevelZeroBounds_ = true;
13659  public boolean hasShareLevelZeroBounds() {
13660  return ((bitField3_ & 0x00000002) != 0);
13661  }
13669  public boolean getShareLevelZeroBounds() {
13670  return shareLevelZeroBounds_;
13671  }
13679  public Builder setShareLevelZeroBounds(boolean value) {
13680  bitField3_ |= 0x00000002;
13681  shareLevelZeroBounds_ = value;
13682  onChanged();
13683  return this;
13684  }
13693  bitField3_ = (bitField3_ & ~0x00000002);
13694  shareLevelZeroBounds_ = true;
13695  onChanged();
13696  return this;
13697  }
13698 
13699  private boolean useLns_ ;
13707  public boolean hasUseLns() {
13708  return ((bitField3_ & 0x00000004) != 0);
13709  }
13717  public boolean getUseLns() {
13718  return useLns_;
13719  }
13727  public Builder setUseLns(boolean value) {
13728  bitField3_ |= 0x00000004;
13729  useLns_ = value;
13730  onChanged();
13731  return this;
13732  }
13741  bitField3_ = (bitField3_ & ~0x00000004);
13742  useLns_ = false;
13743  onChanged();
13744  return this;
13745  }
13746 
13747  private int lnsNumThreads_ = 1;
13751  public boolean hasLnsNumThreads() {
13752  return ((bitField3_ & 0x00000008) != 0);
13753  }
13757  public int getLnsNumThreads() {
13758  return lnsNumThreads_;
13759  }
13763  public Builder setLnsNumThreads(int value) {
13764  bitField3_ |= 0x00000008;
13765  lnsNumThreads_ = value;
13766  onChanged();
13767  return this;
13768  }
13773  bitField3_ = (bitField3_ & ~0x00000008);
13774  lnsNumThreads_ = 1;
13775  onChanged();
13776  return this;
13777  }
13778 
13779  private boolean lnsIsDeterministic_ = true;
13783  public boolean hasLnsIsDeterministic() {
13784  return ((bitField3_ & 0x00000010) != 0);
13785  }
13789  public boolean getLnsIsDeterministic() {
13790  return lnsIsDeterministic_;
13791  }
13795  public Builder setLnsIsDeterministic(boolean value) {
13796  bitField3_ |= 0x00000010;
13797  lnsIsDeterministic_ = value;
13798  onChanged();
13799  return this;
13800  }
13805  bitField3_ = (bitField3_ & ~0x00000010);
13806  lnsIsDeterministic_ = true;
13807  onChanged();
13808  return this;
13809  }
13810 
13811  private boolean lnsFocusOnDecisionVariables_ ;
13816  return ((bitField3_ & 0x00000020) != 0);
13817  }
13822  return lnsFocusOnDecisionVariables_;
13823  }
13827  public Builder setLnsFocusOnDecisionVariables(boolean value) {
13828  bitField3_ |= 0x00000020;
13829  lnsFocusOnDecisionVariables_ = value;
13830  onChanged();
13831  return this;
13832  }
13837  bitField3_ = (bitField3_ & ~0x00000020);
13838  lnsFocusOnDecisionVariables_ = false;
13839  onChanged();
13840  return this;
13841  }
13842 
13843  private boolean useRinsLns_ ;
13851  public boolean hasUseRinsLns() {
13852  return ((bitField3_ & 0x00000040) != 0);
13853  }
13861  public boolean getUseRinsLns() {
13862  return useRinsLns_;
13863  }
13871  public Builder setUseRinsLns(boolean value) {
13872  bitField3_ |= 0x00000040;
13873  useRinsLns_ = value;
13874  onChanged();
13875  return this;
13876  }
13885  bitField3_ = (bitField3_ & ~0x00000040);
13886  useRinsLns_ = false;
13887  onChanged();
13888  return this;
13889  }
13890 
13891  private boolean randomizeSearch_ ;
13899  public boolean hasRandomizeSearch() {
13900  return ((bitField3_ & 0x00000080) != 0);
13901  }
13909  public boolean getRandomizeSearch() {
13910  return randomizeSearch_;
13911  }
13919  public Builder setRandomizeSearch(boolean value) {
13920  bitField3_ |= 0x00000080;
13921  randomizeSearch_ = value;
13922  onChanged();
13923  return this;
13924  }
13933  bitField3_ = (bitField3_ & ~0x00000080);
13934  randomizeSearch_ = false;
13935  onChanged();
13936  return this;
13937  }
13938 
13939  private long searchRandomizationTolerance_ ;
13954  return ((bitField3_ & 0x00000100) != 0);
13955  }
13970  return searchRandomizationTolerance_;
13971  }
13986  bitField3_ |= 0x00000100;
13987  searchRandomizationTolerance_ = value;
13988  onChanged();
13989  return this;
13990  }
14005  bitField3_ = (bitField3_ & ~0x00000100);
14006  searchRandomizationTolerance_ = 0L;
14007  onChanged();
14008  return this;
14009  }
14010 
14011  private boolean useOptionalVariables_ = true;
14021  public boolean hasUseOptionalVariables() {
14022  return ((bitField3_ & 0x00000200) != 0);
14023  }
14033  public boolean getUseOptionalVariables() {
14034  return useOptionalVariables_;
14035  }
14045  public Builder setUseOptionalVariables(boolean value) {
14046  bitField3_ |= 0x00000200;
14047  useOptionalVariables_ = value;
14048  onChanged();
14049  return this;
14050  }
14061  bitField3_ = (bitField3_ & ~0x00000200);
14062  useOptionalVariables_ = true;
14063  onChanged();
14064  return this;
14065  }
14066 
14067  private boolean useExactLpReason_ = true;
14078  public boolean hasUseExactLpReason() {
14079  return ((bitField3_ & 0x00000400) != 0);
14080  }
14091  public boolean getUseExactLpReason() {
14092  return useExactLpReason_;
14093  }
14104  public Builder setUseExactLpReason(boolean value) {
14105  bitField3_ |= 0x00000400;
14106  useExactLpReason_ = value;
14107  onChanged();
14108  return this;
14109  }
14121  bitField3_ = (bitField3_ & ~0x00000400);
14122  useExactLpReason_ = true;
14123  onChanged();
14124  return this;
14125  }
14126 
14127  private boolean useCombinedNoOverlap_ ;
14137  public boolean hasUseCombinedNoOverlap() {
14138  return ((bitField3_ & 0x00000800) != 0);
14139  }
14149  public boolean getUseCombinedNoOverlap() {
14150  return useCombinedNoOverlap_;
14151  }
14161  public Builder setUseCombinedNoOverlap(boolean value) {
14162  bitField3_ |= 0x00000800;
14163  useCombinedNoOverlap_ = value;
14164  onChanged();
14165  return this;
14166  }
14177  bitField3_ = (bitField3_ & ~0x00000800);
14178  useCombinedNoOverlap_ = false;
14179  onChanged();
14180  return this;
14181  }
14182 
14183  private double mipMaxBound_ = 10000000D;
14193  public boolean hasMipMaxBound() {
14194  return ((bitField3_ & 0x00001000) != 0);
14195  }
14205  public double getMipMaxBound() {
14206  return mipMaxBound_;
14207  }
14217  public Builder setMipMaxBound(double value) {
14218  bitField3_ |= 0x00001000;
14219  mipMaxBound_ = value;
14220  onChanged();
14221  return this;
14222  }
14233  bitField3_ = (bitField3_ & ~0x00001000);
14234  mipMaxBound_ = 10000000D;
14235  onChanged();
14236  return this;
14237  }
14238 
14239  private double mipVarScaling_ = 1D;
14249  public boolean hasMipVarScaling() {
14250  return ((bitField3_ & 0x00002000) != 0);
14251  }
14261  public double getMipVarScaling() {
14262  return mipVarScaling_;
14263  }
14273  public Builder setMipVarScaling(double value) {
14274  bitField3_ |= 0x00002000;
14275  mipVarScaling_ = value;
14276  onChanged();
14277  return this;
14278  }
14289  bitField3_ = (bitField3_ & ~0x00002000);
14290  mipVarScaling_ = 1D;
14291  onChanged();
14292  return this;
14293  }
14294 
14295  private double mipWantedPrecision_ = 1e-06D;
14311  public boolean hasMipWantedPrecision() {
14312  return ((bitField3_ & 0x00004000) != 0);
14313  }
14329  public double getMipWantedPrecision() {
14330  return mipWantedPrecision_;
14331  }
14347  public Builder setMipWantedPrecision(double value) {
14348  bitField3_ |= 0x00004000;
14349  mipWantedPrecision_ = value;
14350  onChanged();
14351  return this;
14352  }
14369  bitField3_ = (bitField3_ & ~0x00004000);
14370  mipWantedPrecision_ = 1e-06D;
14371  onChanged();
14372  return this;
14373  }
14374 
14375  private int mipMaxActivityExponent_ = 53;
14389  public boolean hasMipMaxActivityExponent() {
14390  return ((bitField3_ & 0x00008000) != 0);
14391  }
14406  return mipMaxActivityExponent_;
14407  }
14422  bitField3_ |= 0x00008000;
14423  mipMaxActivityExponent_ = value;
14424  onChanged();
14425  return this;
14426  }
14441  bitField3_ = (bitField3_ & ~0x00008000);
14442  mipMaxActivityExponent_ = 53;
14443  onChanged();
14444  return this;
14445  }
14446 
14447  private double mipCheckPrecision_ = 0.0001D;
14458  public boolean hasMipCheckPrecision() {
14459  return ((bitField3_ & 0x00010000) != 0);
14460  }
14471  public double getMipCheckPrecision() {
14472  return mipCheckPrecision_;
14473  }
14484  public Builder setMipCheckPrecision(double value) {
14485  bitField3_ |= 0x00010000;
14486  mipCheckPrecision_ = value;
14487  onChanged();
14488  return this;
14489  }
14501  bitField3_ = (bitField3_ & ~0x00010000);
14502  mipCheckPrecision_ = 0.0001D;
14503  onChanged();
14504  return this;
14505  }
14506 
14507  private boolean catchSigintSignal_ = true;
14517  public boolean hasCatchSigintSignal() {
14518  return ((bitField3_ & 0x00020000) != 0);
14519  }
14529  public boolean getCatchSigintSignal() {
14530  return catchSigintSignal_;
14531  }
14541  public Builder setCatchSigintSignal(boolean value) {
14542  bitField3_ |= 0x00020000;
14543  catchSigintSignal_ = value;
14544  onChanged();
14545  return this;
14546  }
14557  bitField3_ = (bitField3_ & ~0x00020000);
14558  catchSigintSignal_ = true;
14559  onChanged();
14560  return this;
14561  }
14562  @java.lang.Override
14564  final com.google.protobuf.UnknownFieldSet unknownFields) {
14565  return super.setUnknownFields(unknownFields);
14566  }
14567 
14568  @java.lang.Override
14570  final com.google.protobuf.UnknownFieldSet unknownFields) {
14571  return super.mergeUnknownFields(unknownFields);
14572  }
14573 
14574 
14575  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
14576  }
14577 
14578  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
14579  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
14580  static {
14581  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
14582  }
14583 
14585  return DEFAULT_INSTANCE;
14586  }
14587 
14588  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
14589  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
14590  @java.lang.Override
14591  public SatParameters parsePartialFrom(
14592  com.google.protobuf.CodedInputStream input,
14593  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14594  throws com.google.protobuf.InvalidProtocolBufferException {
14595  return new SatParameters(input, extensionRegistry);
14596  }
14597  };
14598 
14599  public static com.google.protobuf.Parser<SatParameters> parser() {
14600  return PARSER;
14601  }
14602 
14603  @java.lang.Override
14604  public com.google.protobuf.Parser<SatParameters> getParserForType() {
14605  return PARSER;
14606  }
14607 
14608  @java.lang.Override
14610  return DEFAULT_INSTANCE;
14611  }
14612 
14613 }
14614 
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 clearLnsNumThreads()
optional int32 lns_num_threads = 102 [default = 1];
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()
boolean hasLnsNumThreads()
optional int32 lns_num_threads = 102 [default = 1];
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
Builder clearLnsIsDeterministic()
optional bool lns_is_deterministic = 134 [default = true];
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...
Builder setLnsIsDeterministic(boolean value)
optional bool lns_is_deterministic = 134 [default = true];
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
int getLnsNumThreads()
optional int32 lns_num_threads = 102 [default = 1];
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 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()
int getLnsNumThreads()
optional int32 lns_num_threads = 102 [default = 1];
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
boolean hasLnsIsDeterministic()
optional bool lns_is_deterministic = 134 [default = true];
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
static final int LNS_IS_DETERMINISTIC_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)
boolean hasLnsIsDeterministic()
optional bool lns_is_deterministic = 134 [default = true];
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];
boolean getLnsIsDeterministic()
optional bool lns_is_deterministic = 134 [default = true];
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 ...
boolean getLnsIsDeterministic()
optional bool lns_is_deterministic = 134 [default = true];
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()
Builder setLnsNumThreads(int value)
optional int32 lns_num_threads = 102 [default = 1];
.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
boolean hasLnsNumThreads()
optional int32 lns_num_threads = 102 [default = 1];
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];