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  }
108 
109  @java.lang.Override
110  @SuppressWarnings({"unused"})
111  protected java.lang.Object newInstance(
112  UnusedPrivateParameter unused) {
113  return new SatParameters();
114  }
115 
116  @java.lang.Override
117  public final com.google.protobuf.UnknownFieldSet
119  return this.unknownFields;
120  }
121  private SatParameters(
122  com.google.protobuf.CodedInputStream input,
123  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
124  throws com.google.protobuf.InvalidProtocolBufferException {
125  this();
126  if (extensionRegistry == null) {
127  throw new java.lang.NullPointerException();
128  }
129  int mutable_bitField0_ = 0;
130  int mutable_bitField1_ = 0;
131  int mutable_bitField2_ = 0;
132  int mutable_bitField3_ = 0;
133  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
134  com.google.protobuf.UnknownFieldSet.newBuilder();
135  try {
136  boolean done = false;
137  while (!done) {
138  int tag = input.readTag();
139  switch (tag) {
140  case 0:
141  done = true;
142  break;
143  case 8: {
144  int rawValue = input.readEnum();
145  @SuppressWarnings("deprecation")
146  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
147  if (value == null) {
148  unknownFields.mergeVarintField(1, rawValue);
149  } else {
150  bitField0_ |= 0x00000001;
151  preferredVariableOrder_ = rawValue;
152  }
153  break;
154  }
155  case 16: {
156  int rawValue = input.readEnum();
157  @SuppressWarnings("deprecation")
158  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
159  if (value == null) {
160  unknownFields.mergeVarintField(2, rawValue);
161  } else {
162  bitField0_ |= 0x00000002;
163  initialPolarity_ = rawValue;
164  }
165  break;
166  }
167  case 32: {
168  int rawValue = input.readEnum();
169  @SuppressWarnings("deprecation")
170  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
171  if (value == null) {
172  unknownFields.mergeVarintField(4, rawValue);
173  } else {
174  bitField0_ |= 0x00000100;
175  minimizationAlgorithm_ = rawValue;
176  }
177  break;
178  }
179  case 88: {
180  bitField0_ |= 0x00000800;
181  clauseCleanupPeriod_ = input.readInt32();
182  break;
183  }
184  case 104: {
185  bitField0_ |= 0x00001000;
186  clauseCleanupTarget_ = input.readInt32();
187  break;
188  }
189  case 121: {
190  bitField0_ |= 0x00100000;
191  variableActivityDecay_ = input.readDouble();
192  break;
193  }
194  case 129: {
195  bitField0_ |= 0x00200000;
196  maxVariableActivityValue_ = input.readDouble();
197  break;
198  }
199  case 137: {
200  bitField0_ |= 0x02000000;
201  clauseActivityDecay_ = input.readDouble();
202  break;
203  }
204  case 145: {
205  bitField0_ |= 0x04000000;
206  maxClauseActivityValue_ = input.readDouble();
207  break;
208  }
209  case 177: {
210  bitField0_ |= 0x00400000;
211  glucoseMaxDecay_ = input.readDouble();
212  break;
213  }
214  case 185: {
215  bitField0_ |= 0x00800000;
216  glucoseDecayIncrement_ = input.readDouble();
217  break;
218  }
219  case 192: {
220  bitField0_ |= 0x01000000;
221  glucoseDecayIncrementPeriod_ = input.readInt32();
222  break;
223  }
224  case 240: {
225  bitField0_ |= 0x10000000;
226  restartPeriod_ = input.readInt32();
227  break;
228  }
229  case 248: {
230  bitField1_ |= 0x00000400;
231  randomSeed_ = input.readInt32();
232  break;
233  }
234  case 257: {
235  bitField0_ |= 0x00000010;
236  randomBranchesRatio_ = input.readDouble();
237  break;
238  }
239  case 264: {
240  bitField1_ |= 0x00000200;
241  treatBinaryClausesSeparately_ = input.readBool();
242  break;
243  }
244  case 272: {
245  int rawValue = input.readEnum();
246  @SuppressWarnings("deprecation")
247  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
248  if (value == null) {
249  unknownFields.mergeVarintField(34, rawValue);
250  } else {
251  bitField0_ |= 0x00000200;
252  binaryMinimizationAlgorithm_ = rawValue;
253  }
254  break;
255  }
256  case 280: {
257  bitField1_ |= 0x00200000;
258  useOptimizationHints_ = input.readBool();
259  break;
260  }
261  case 289: {
262  bitField1_ |= 0x00000020;
263  maxTimeInSeconds_ = input.readDouble();
264  break;
265  }
266  case 296: {
267  bitField1_ |= 0x00000080;
268  maxNumberOfConflicts_ = input.readInt64();
269  break;
270  }
271  case 320: {
272  bitField1_ |= 0x00000100;
273  maxMemoryInMb_ = input.readInt64();
274  break;
275  }
276  case 328: {
277  bitField1_ |= 0x00000800;
278  logSearchProgress_ = input.readBool();
279  break;
280  }
281  case 344: {
282  bitField1_ |= 0x00001000;
283  usePbResolution_ = input.readBool();
284  break;
285  }
286  case 352: {
287  bitField0_ |= 0x00000004;
288  usePhaseSaving_ = input.readBool();
289  break;
290  }
291  case 361: {
292  bitField0_ |= 0x00000008;
293  randomPolarityRatio_ = input.readDouble();
294  break;
295  }
296  case 368: {
297  bitField0_ |= 0x00010000;
298  pbCleanupIncrement_ = input.readInt32();
299  break;
300  }
301  case 377: {
302  bitField0_ |= 0x00020000;
303  pbCleanupRatio_ = input.readDouble();
304  break;
305  }
306  case 384: {
307  bitField1_ |= 0x00002000;
308  minimizeReductionDuringPbResolution_ = input.readBool();
309  break;
310  }
311  case 392: {
312  bitField1_ |= 0x00004000;
313  countAssumptionLevelsInLbd_ = input.readBool();
314  break;
315  }
316  case 400: {
317  bitField1_ |= 0x00400000;
318  minimizeCore_ = input.readBool();
319  break;
320  }
321  case 408: {
322  int rawValue = input.readEnum();
323  @SuppressWarnings("deprecation")
324  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
325  if (value == null) {
326  unknownFields.mergeVarintField(51, rawValue);
327  } else {
328  bitField1_ |= 0x02000000;
329  maxSatAssumptionOrder_ = rawValue;
330  }
331  break;
332  }
333  case 416: {
334  bitField1_ |= 0x04000000;
335  maxSatReverseAssumptionOrder_ = input.readBool();
336  break;
337  }
338  case 424: {
339  int rawValue = input.readEnum();
340  @SuppressWarnings("deprecation")
341  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
342  if (value == null) {
343  unknownFields.mergeVarintField(53, rawValue);
344  } else {
345  bitField1_ |= 0x08000000;
346  maxSatStratification_ = rawValue;
347  }
348  break;
349  }
350  case 432: {
351  bitField1_ |= 0x00008000;
352  presolveBveThreshold_ = input.readInt32();
353  break;
354  }
355  case 440: {
356  bitField1_ |= 0x00010000;
357  presolveBveClauseWeight_ = input.readInt32();
358  break;
359  }
360  case 448: {
361  bitField0_ |= 0x00000400;
362  subsumptionDuringConflictAnalysis_ = input.readBool();
363  break;
364  }
365  case 457: {
366  bitField1_ |= 0x00020000;
367  presolveProbingDeterministicTimeLimit_ = input.readDouble();
368  break;
369  }
370  case 464: {
371  int rawValue = input.readEnum();
372  @SuppressWarnings("deprecation")
373  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
374  if (value == null) {
375  unknownFields.mergeVarintField(58, rawValue);
376  } else {
377  bitField0_ |= 0x00002000;
378  clauseCleanupProtection_ = rawValue;
379  }
380  break;
381  }
382  case 472: {
383  bitField0_ |= 0x00004000;
384  clauseCleanupLbdBound_ = input.readInt32();
385  break;
386  }
387  case 480: {
388  int rawValue = input.readEnum();
389  @SuppressWarnings("deprecation")
390  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
391  if (value == null) {
392  unknownFields.mergeVarintField(60, rawValue);
393  } else {
394  bitField0_ |= 0x00008000;
395  clauseCleanupOrdering_ = rawValue;
396  }
397  break;
398  }
399  case 488: {
400  int rawValue = input.readEnum();
401  @SuppressWarnings("deprecation")
402  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
403  if (value == null) {
404  unknownFields.mergeVarintField(61, rawValue);
405  } else {
406  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
407  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
408  mutable_bitField0_ |= 0x08000000;
409  }
410  restartAlgorithms_.add(rawValue);
411  }
412  break;
413  }
414  case 490: {
415  int length = input.readRawVarint32();
416  int oldLimit = input.pushLimit(length);
417  while(input.getBytesUntilLimit() > 0) {
418  int rawValue = input.readEnum();
419  @SuppressWarnings("deprecation")
420  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
421  if (value == null) {
422  unknownFields.mergeVarintField(61, rawValue);
423  } else {
424  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
425  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
426  mutable_bitField0_ |= 0x08000000;
427  }
428  restartAlgorithms_.add(rawValue);
429  }
430  }
431  input.popLimit(oldLimit);
432  break;
433  }
434  case 496: {
435  bitField0_ |= 0x20000000;
436  restartRunningWindowSize_ = input.readInt32();
437  break;
438  }
439  case 505: {
440  bitField0_ |= 0x40000000;
441  restartDlAverageRatio_ = input.readDouble();
442  break;
443  }
444  case 512: {
445  bitField1_ |= 0x00000001;
446  useBlockingRestart_ = input.readBool();
447  break;
448  }
449  case 520: {
450  bitField1_ |= 0x00000002;
451  blockingRestartWindowSize_ = input.readInt32();
452  break;
453  }
454  case 529: {
455  bitField1_ |= 0x00000004;
456  blockingRestartMultiplier_ = input.readDouble();
457  break;
458  }
459  case 537: {
460  bitField1_ |= 0x00000040;
461  maxDeterministicTime_ = input.readDouble();
462  break;
463  }
464  case 544: {
465  bitField1_ |= 0x00000008;
466  numConflictsBeforeStrategyChanges_ = input.readInt32();
467  break;
468  }
469  case 553: {
470  bitField1_ |= 0x00000010;
471  strategyChangeIncreaseRatio_ = input.readDouble();
472  break;
473  }
474  case 562: {
475  com.google.protobuf.ByteString bs = input.readBytes();
476  bitField0_ |= 0x08000000;
477  defaultRestartAlgorithms_ = bs;
478  break;
479  }
480  case 569: {
481  bitField0_ |= 0x80000000;
482  restartLbdAverageRatio_ = input.readDouble();
483  break;
484  }
485  case 576: {
486  bitField1_ |= 0x00080000;
487  presolveUseBva_ = input.readBool();
488  break;
489  }
490  case 584: {
491  bitField1_ |= 0x00100000;
492  presolveBvaThreshold_ = input.readInt32();
493  break;
494  }
495  case 592: {
496  bitField1_ |= 0x10000000;
497  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
498  break;
499  }
500  case 600: {
501  bitField0_ |= 0x00000020;
502  useErwaHeuristic_ = input.readBool();
503  break;
504  }
505  case 609: {
506  bitField0_ |= 0x00000040;
507  initialVariablesActivity_ = input.readDouble();
508  break;
509  }
510  case 616: {
511  bitField0_ |= 0x00000080;
512  alsoBumpVariablesInConflictReasons_ = input.readBool();
513  break;
514  }
515  case 624: {
516  bitField1_ |= 0x20000000;
517  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
518  break;
519  }
520  case 632: {
521  bitField1_ |= 0x40000000;
522  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
523  break;
524  }
525  case 640: {
526  bitField1_ |= 0x80000000;
527  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
528  break;
529  }
530  case 656: {
531  int rawValue = input.readEnum();
532  @SuppressWarnings("deprecation")
533  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
534  if (value == null) {
535  unknownFields.mergeVarintField(82, rawValue);
536  } else {
537  bitField2_ |= 0x00002000;
538  searchBranching_ = rawValue;
539  }
540  break;
541  }
542  case 664: {
543  bitField2_ |= 0x00080000;
544  optimizeWithCore_ = input.readBool();
545  break;
546  }
547  case 672: {
548  bitField1_ |= 0x00800000;
549  findMultipleCores_ = input.readBool();
550  break;
551  }
552  case 680: {
553  bitField2_ |= 0x00200000;
554  optimizeWithMaxHs_ = input.readBool();
555  break;
556  }
557  case 688: {
558  bitField2_ |= 0x00400000;
559  cpModelPresolve_ = input.readBool();
560  break;
561  }
562  case 696: {
563  bitField2_ |= 0x02000000;
564  enumerateAllSolutions_ = input.readBool();
565  break;
566  }
567  case 704: {
568  bitField1_ |= 0x00040000;
569  presolveBlockedClause_ = input.readBool();
570  break;
571  }
572  case 712: {
573  bitField1_ |= 0x01000000;
574  coverOptimization_ = input.readBool();
575  break;
576  }
577  case 720: {
578  bitField2_ |= 0x00000001;
579  linearizationLevel_ = input.readInt32();
580  break;
581  }
582  case 728: {
583  bitField2_ |= 0x00000004;
584  maxNumCuts_ = input.readInt32();
585  break;
586  }
587  case 736: {
588  bitField2_ |= 0x00000008;
589  onlyAddCutsAtLevelZero_ = input.readBool();
590  break;
591  }
592  case 744: {
593  bitField2_ |= 0x01000000;
594  cpModelUseSatPresolve_ = input.readBool();
595  break;
596  }
597  case 752: {
598  bitField2_ |= 0x00004000;
599  exploitIntegerLpSolution_ = input.readBool();
600  break;
601  }
602  case 760: {
603  bitField2_ |= 0x10000000;
604  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
605  break;
606  }
607  case 768: {
608  bitField0_ |= 0x00040000;
609  minimizeWithPropagationRestartPeriod_ = input.readInt32();
610  break;
611  }
612  case 776: {
613  bitField0_ |= 0x00080000;
614  minimizeWithPropagationNumDecisions_ = input.readInt32();
615  break;
616  }
617  case 784: {
618  bitField2_ |= 0x20000000;
619  stopAfterFirstSolution_ = input.readBool();
620  break;
621  }
622  case 792: {
623  bitField2_ |= 0x00100000;
624  binarySearchNumConflicts_ = input.readInt32();
625  break;
626  }
627  case 800: {
628  bitField2_ |= 0x40000000;
629  numSearchWorkers_ = input.readInt32();
630  break;
631  }
632  case 808: {
633  bitField3_ |= 0x00000002;
634  useLns_ = input.readBool();
635  break;
636  }
637  case 816: {
638  bitField3_ |= 0x00000004;
639  lnsNumThreads_ = input.readInt32();
640  break;
641  }
642  case 824: {
643  bitField3_ |= 0x00000040;
644  randomizeSearch_ = input.readBool();
645  break;
646  }
647  case 832: {
648  bitField3_ |= 0x00000080;
649  searchRandomizationTolerance_ = input.readInt64();
650  break;
651  }
652  case 840: {
653  bitField3_ |= 0x00000010;
654  lnsFocusOnDecisionVariables_ = input.readBool();
655  break;
656  }
657  case 848: {
658  bitField2_ |= 0x08000000;
659  instantiateAllVariables_ = input.readBool();
660  break;
661  }
662  case 856: {
663  bitField2_ |= 0x00000002;
664  booleanEncodingLevel_ = input.readInt32();
665  break;
666  }
667  case 864: {
668  bitField3_ |= 0x00000100;
669  useOptionalVariables_ = input.readBool();
670  break;
671  }
672  case 872: {
673  bitField3_ |= 0x00000200;
674  useExactLpReason_ = input.readBool();
675  break;
676  }
677  case 880: {
678  bitField2_ |= 0x00800000;
679  cpModelProbingLevel_ = input.readInt32();
680  break;
681  }
682  case 888: {
683  bitField2_ |= 0x00000010;
684  addKnapsackCuts_ = input.readBool();
685  break;
686  }
687  case 896: {
688  bitField2_ |= 0x00000200;
689  addLpConstraintsLazily_ = input.readBool();
690  break;
691  }
692  case 904: {
693  bitField2_ |= 0x80000000;
694  shareObjectiveBounds_ = input.readBool();
695  break;
696  }
697  case 912: {
698  bitField3_ |= 0x00000001;
699  shareLevelZeroBounds_ = input.readBool();
700  break;
701  }
702  case 921: {
703  bitField2_ |= 0x00000400;
704  minOrthogonalityForLpConstraints_ = input.readDouble();
705  break;
706  }
707  case 928: {
708  bitField2_ |= 0x00008000;
709  exploitAllLpSolution_ = input.readBool();
710  break;
711  }
712  case 936: {
713  bitField2_ |= 0x00000020;
714  addCgCuts_ = input.readBool();
715  break;
716  }
717  case 944: {
718  bitField2_ |= 0x00000080;
719  useMirRounding_ = input.readBool();
720  break;
721  }
722  case 952: {
723  bitField2_ |= 0x00000100;
724  maxIntegerRoundingScaling_ = input.readInt32();
725  break;
726  }
727  case 960: {
728  bitField2_ |= 0x00000040;
729  addMirCuts_ = input.readBool();
730  break;
731  }
732  case 968: {
733  bitField2_ |= 0x00000800;
734  maxInactiveCount_ = input.readInt64();
735  break;
736  }
737  case 976: {
738  bitField2_ |= 0x00001000;
739  constraintRemovalBatchSize_ = input.readInt64();
740  break;
741  }
742  case 984: {
743  bitField2_ |= 0x00040000;
744  pseudoCostReliabilityThreshold_ = input.readInt64();
745  break;
746  }
747  case 993: {
748  bitField3_ |= 0x00000800;
749  mipMaxBound_ = input.readDouble();
750  break;
751  }
752  case 1001: {
753  bitField3_ |= 0x00001000;
754  mipVarScaling_ = input.readDouble();
755  break;
756  }
757  case 1009: {
758  bitField3_ |= 0x00002000;
759  mipWantedPrecision_ = input.readDouble();
760  break;
761  }
762  case 1016: {
763  bitField3_ |= 0x00004000;
764  mipMaxActivityExponent_ = input.readInt32();
765  break;
766  }
767  case 1025: {
768  bitField3_ |= 0x00008000;
769  mipCheckPrecision_ = input.readDouble();
770  break;
771  }
772  case 1032: {
773  bitField3_ |= 0x00000020;
774  useRinsLns_ = input.readBool();
775  break;
776  }
777  case 1040: {
778  bitField2_ |= 0x00010000;
779  exploitBestSolution_ = input.readBool();
780  break;
781  }
782  case 1048: {
783  bitField2_ |= 0x00020000;
784  exploitObjective_ = input.readBool();
785  break;
786  }
787  case 1056: {
788  bitField2_ |= 0x04000000;
789  fillTightenedDomainsInResponse_ = input.readBool();
790  break;
791  }
792  case 1064: {
793  bitField3_ |= 0x00000400;
794  useCombinedNoOverlap_ = input.readBool();
795  break;
796  }
797  case 1072: {
798  bitField3_ |= 0x00000008;
799  lnsIsDeterministic_ = input.readBool();
800  break;
801  }
802  default: {
803  if (!parseUnknownField(
804  input, unknownFields, extensionRegistry, tag)) {
805  done = true;
806  }
807  break;
808  }
809  }
810  }
811  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
812  throw e.setUnfinishedMessage(this);
813  } catch (java.io.IOException e) {
814  throw new com.google.protobuf.InvalidProtocolBufferException(
815  e).setUnfinishedMessage(this);
816  } finally {
817  if (((mutable_bitField0_ & 0x08000000) != 0)) {
818  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
819  }
820  this.unknownFields = unknownFields.build();
821  makeExtensionsImmutable();
822  }
823  }
824  public static final com.google.protobuf.Descriptors.Descriptor
826  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
827  }
828 
829  @java.lang.Override
830  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
832  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
833  .ensureFieldAccessorsInitialized(
835  }
836 
845  public enum VariableOrder
846  implements com.google.protobuf.ProtocolMessageEnum {
863  ;
864 
872  public static final int IN_ORDER_VALUE = 0;
876  public static final int IN_REVERSE_ORDER_VALUE = 1;
880  public static final int IN_RANDOM_ORDER_VALUE = 2;
881 
882 
883  public final int getNumber() {
884  return value;
885  }
886 
890  @java.lang.Deprecated
891  public static VariableOrder valueOf(int value) {
892  return forNumber(value);
893  }
894 
895  public static VariableOrder forNumber(int value) {
896  switch (value) {
897  case 0: return IN_ORDER;
898  case 1: return IN_REVERSE_ORDER;
899  case 2: return IN_RANDOM_ORDER;
900  default: return null;
901  }
902  }
903 
904  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
906  return internalValueMap;
907  }
908  private static final com.google.protobuf.Internal.EnumLiteMap<
909  VariableOrder> internalValueMap =
910  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
911  public VariableOrder findValueByNumber(int number) {
912  return VariableOrder.forNumber(number);
913  }
914  };
915 
916  public final com.google.protobuf.Descriptors.EnumValueDescriptor
918  return getDescriptor().getValues().get(ordinal());
919  }
920  public final com.google.protobuf.Descriptors.EnumDescriptor
922  return getDescriptor();
923  }
924  public static final com.google.protobuf.Descriptors.EnumDescriptor
926  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
927  }
928 
929  private static final VariableOrder[] VALUES = values();
930 
931  public static VariableOrder valueOf(
932  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
933  if (desc.getType() != getDescriptor()) {
934  throw new java.lang.IllegalArgumentException(
935  "EnumValueDescriptor is not for this type.");
936  }
937  return VALUES[desc.getIndex()];
938  }
939 
940  private final int value;
941 
942  private VariableOrder(int value) {
943  this.value = value;
944  }
945 
946  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
947  }
948 
960  public enum Polarity
961  implements com.google.protobuf.ProtocolMessageEnum {
993  ;
994 
998  public static final int POLARITY_TRUE_VALUE = 0;
1002  public static final int POLARITY_FALSE_VALUE = 1;
1006  public static final int POLARITY_RANDOM_VALUE = 2;
1017  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1025  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1026 
1027 
1028  public final int getNumber() {
1029  return value;
1030  }
1031 
1035  @java.lang.Deprecated
1036  public static Polarity valueOf(int value) {
1037  return forNumber(value);
1038  }
1039 
1040  public static Polarity forNumber(int value) {
1041  switch (value) {
1042  case 0: return POLARITY_TRUE;
1043  case 1: return POLARITY_FALSE;
1044  case 2: return POLARITY_RANDOM;
1045  case 3: return POLARITY_WEIGHTED_SIGN;
1046  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1047  default: return null;
1048  }
1049  }
1050 
1051  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1053  return internalValueMap;
1054  }
1055  private static final com.google.protobuf.Internal.EnumLiteMap<
1056  Polarity> internalValueMap =
1057  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1058  public Polarity findValueByNumber(int number) {
1059  return Polarity.forNumber(number);
1060  }
1061  };
1062 
1063  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1065  return getDescriptor().getValues().get(ordinal());
1066  }
1067  public final com.google.protobuf.Descriptors.EnumDescriptor
1069  return getDescriptor();
1070  }
1071  public static final com.google.protobuf.Descriptors.EnumDescriptor
1073  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1074  }
1075 
1076  private static final Polarity[] VALUES = values();
1077 
1078  public static Polarity valueOf(
1079  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1080  if (desc.getType() != getDescriptor()) {
1081  throw new java.lang.IllegalArgumentException(
1082  "EnumValueDescriptor is not for this type.");
1083  }
1084  return VALUES[desc.getIndex()];
1085  }
1086 
1087  private final int value;
1088 
1089  private Polarity(int value) {
1090  this.value = value;
1091  }
1092 
1093  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1094  }
1095 
1104  implements com.google.protobuf.ProtocolMessageEnum {
1108  NONE(0),
1121  ;
1122 
1126  public static final int NONE_VALUE = 0;
1130  public static final int SIMPLE_VALUE = 1;
1134  public static final int RECURSIVE_VALUE = 2;
1138  public static final int EXPERIMENTAL_VALUE = 3;
1139 
1140 
1141  public final int getNumber() {
1142  return value;
1143  }
1144 
1148  @java.lang.Deprecated
1149  public static ConflictMinimizationAlgorithm valueOf(int value) {
1150  return forNumber(value);
1151  }
1152 
1153  public static ConflictMinimizationAlgorithm forNumber(int value) {
1154  switch (value) {
1155  case 0: return NONE;
1156  case 1: return SIMPLE;
1157  case 2: return RECURSIVE;
1158  case 3: return EXPERIMENTAL;
1159  default: return null;
1160  }
1161  }
1162 
1163  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1165  return internalValueMap;
1166  }
1167  private static final com.google.protobuf.Internal.EnumLiteMap<
1168  ConflictMinimizationAlgorithm> internalValueMap =
1169  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1170  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1172  }
1173  };
1174 
1175  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1177  return getDescriptor().getValues().get(ordinal());
1178  }
1179  public final com.google.protobuf.Descriptors.EnumDescriptor
1181  return getDescriptor();
1182  }
1183  public static final com.google.protobuf.Descriptors.EnumDescriptor
1185  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1186  }
1187 
1188  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1189 
1191  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1192  if (desc.getType() != getDescriptor()) {
1193  throw new java.lang.IllegalArgumentException(
1194  "EnumValueDescriptor is not for this type.");
1195  }
1196  return VALUES[desc.getIndex()];
1197  }
1198 
1199  private final int value;
1200 
1201  private ConflictMinimizationAlgorithm(int value) {
1202  this.value = value;
1203  }
1204 
1205  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1206  }
1207 
1217  implements com.google.protobuf.ProtocolMessageEnum {
1238  ;
1239 
1243  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1247  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1251  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1255  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1259  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1260 
1261 
1262  public final int getNumber() {
1263  return value;
1264  }
1265 
1269  @java.lang.Deprecated
1270  public static BinaryMinizationAlgorithm valueOf(int value) {
1271  return forNumber(value);
1272  }
1273 
1274  public static BinaryMinizationAlgorithm forNumber(int value) {
1275  switch (value) {
1276  case 0: return NO_BINARY_MINIMIZATION;
1277  case 1: return BINARY_MINIMIZATION_FIRST;
1278  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1279  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1280  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1281  default: return null;
1282  }
1283  }
1284 
1285  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1287  return internalValueMap;
1288  }
1289  private static final com.google.protobuf.Internal.EnumLiteMap<
1290  BinaryMinizationAlgorithm> internalValueMap =
1291  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1292  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1293  return BinaryMinizationAlgorithm.forNumber(number);
1294  }
1295  };
1296 
1297  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1299  return getDescriptor().getValues().get(ordinal());
1300  }
1301  public final com.google.protobuf.Descriptors.EnumDescriptor
1303  return getDescriptor();
1304  }
1305  public static final com.google.protobuf.Descriptors.EnumDescriptor
1307  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1308  }
1309 
1310  private static final BinaryMinizationAlgorithm[] VALUES = values();
1311 
1313  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1314  if (desc.getType() != getDescriptor()) {
1315  throw new java.lang.IllegalArgumentException(
1316  "EnumValueDescriptor is not for this type.");
1317  }
1318  return VALUES[desc.getIndex()];
1319  }
1320 
1321  private final int value;
1322 
1323  private BinaryMinizationAlgorithm(int value) {
1324  this.value = value;
1325  }
1326 
1327  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1328  }
1329 
1339  public enum ClauseProtection
1340  implements com.google.protobuf.ProtocolMessageEnum {
1365  ;
1366 
1374  public static final int PROTECTION_NONE_VALUE = 0;
1382  public static final int PROTECTION_ALWAYS_VALUE = 1;
1390  public static final int PROTECTION_LBD_VALUE = 2;
1391 
1392 
1393  public final int getNumber() {
1394  return value;
1395  }
1396 
1400  @java.lang.Deprecated
1401  public static ClauseProtection valueOf(int value) {
1402  return forNumber(value);
1403  }
1404 
1405  public static ClauseProtection forNumber(int value) {
1406  switch (value) {
1407  case 0: return PROTECTION_NONE;
1408  case 1: return PROTECTION_ALWAYS;
1409  case 2: return PROTECTION_LBD;
1410  default: return null;
1411  }
1412  }
1413 
1414  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1416  return internalValueMap;
1417  }
1418  private static final com.google.protobuf.Internal.EnumLiteMap<
1419  ClauseProtection> internalValueMap =
1420  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1421  public ClauseProtection findValueByNumber(int number) {
1422  return ClauseProtection.forNumber(number);
1423  }
1424  };
1425 
1426  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1428  return getDescriptor().getValues().get(ordinal());
1429  }
1430  public final com.google.protobuf.Descriptors.EnumDescriptor
1432  return getDescriptor();
1433  }
1434  public static final com.google.protobuf.Descriptors.EnumDescriptor
1436  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1437  }
1438 
1439  private static final ClauseProtection[] VALUES = values();
1440 
1441  public static ClauseProtection valueOf(
1442  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1443  if (desc.getType() != getDescriptor()) {
1444  throw new java.lang.IllegalArgumentException(
1445  "EnumValueDescriptor is not for this type.");
1446  }
1447  return VALUES[desc.getIndex()];
1448  }
1449 
1450  private final int value;
1451 
1452  private ClauseProtection(int value) {
1453  this.value = value;
1454  }
1455 
1456  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1457  }
1458 
1467  public enum ClauseOrdering
1468  implements com.google.protobuf.ProtocolMessageEnum {
1485  ;
1486 
1494  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1502  public static final int CLAUSE_LBD_VALUE = 1;
1503 
1504 
1505  public final int getNumber() {
1506  return value;
1507  }
1508 
1512  @java.lang.Deprecated
1513  public static ClauseOrdering valueOf(int value) {
1514  return forNumber(value);
1515  }
1516 
1517  public static ClauseOrdering forNumber(int value) {
1518  switch (value) {
1519  case 0: return CLAUSE_ACTIVITY;
1520  case 1: return CLAUSE_LBD;
1521  default: return null;
1522  }
1523  }
1524 
1525  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1527  return internalValueMap;
1528  }
1529  private static final com.google.protobuf.Internal.EnumLiteMap<
1530  ClauseOrdering> internalValueMap =
1531  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1532  public ClauseOrdering findValueByNumber(int number) {
1533  return ClauseOrdering.forNumber(number);
1534  }
1535  };
1536 
1537  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1539  return getDescriptor().getValues().get(ordinal());
1540  }
1541  public final com.google.protobuf.Descriptors.EnumDescriptor
1543  return getDescriptor();
1544  }
1545  public static final com.google.protobuf.Descriptors.EnumDescriptor
1547  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1548  }
1549 
1550  private static final ClauseOrdering[] VALUES = values();
1551 
1552  public static ClauseOrdering valueOf(
1553  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1554  if (desc.getType() != getDescriptor()) {
1555  throw new java.lang.IllegalArgumentException(
1556  "EnumValueDescriptor is not for this type.");
1557  }
1558  return VALUES[desc.getIndex()];
1559  }
1560 
1561  private final int value;
1562 
1563  private ClauseOrdering(int value) {
1564  this.value = value;
1565  }
1566 
1567  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1568  }
1569 
1581  public enum RestartAlgorithm
1582  implements com.google.protobuf.ProtocolMessageEnum {
1619  ;
1620 
1624  public static final int NO_RESTART_VALUE = 0;
1632  public static final int LUBY_RESTART_VALUE = 1;
1640  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1648  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1656  public static final int FIXED_RESTART_VALUE = 4;
1657 
1658 
1659  public final int getNumber() {
1660  return value;
1661  }
1662 
1666  @java.lang.Deprecated
1667  public static RestartAlgorithm valueOf(int value) {
1668  return forNumber(value);
1669  }
1670 
1671  public static RestartAlgorithm forNumber(int value) {
1672  switch (value) {
1673  case 0: return NO_RESTART;
1674  case 1: return LUBY_RESTART;
1675  case 2: return DL_MOVING_AVERAGE_RESTART;
1676  case 3: return LBD_MOVING_AVERAGE_RESTART;
1677  case 4: return FIXED_RESTART;
1678  default: return null;
1679  }
1680  }
1681 
1682  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1684  return internalValueMap;
1685  }
1686  private static final com.google.protobuf.Internal.EnumLiteMap<
1687  RestartAlgorithm> internalValueMap =
1688  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1689  public RestartAlgorithm findValueByNumber(int number) {
1690  return RestartAlgorithm.forNumber(number);
1691  }
1692  };
1693 
1694  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1696  return getDescriptor().getValues().get(ordinal());
1697  }
1698  public final com.google.protobuf.Descriptors.EnumDescriptor
1700  return getDescriptor();
1701  }
1702  public static final com.google.protobuf.Descriptors.EnumDescriptor
1704  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1705  }
1706 
1707  private static final RestartAlgorithm[] VALUES = values();
1708 
1709  public static RestartAlgorithm valueOf(
1710  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1711  if (desc.getType() != getDescriptor()) {
1712  throw new java.lang.IllegalArgumentException(
1713  "EnumValueDescriptor is not for this type.");
1714  }
1715  return VALUES[desc.getIndex()];
1716  }
1717 
1718  private final int value;
1719 
1720  private RestartAlgorithm(int value) {
1721  this.value = value;
1722  }
1723 
1724  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1725  }
1726 
1735  implements com.google.protobuf.ProtocolMessageEnum {
1748  ;
1749 
1753  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1757  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1761  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1762 
1763 
1764  public final int getNumber() {
1765  return value;
1766  }
1767 
1771  @java.lang.Deprecated
1772  public static MaxSatAssumptionOrder valueOf(int value) {
1773  return forNumber(value);
1774  }
1775 
1776  public static MaxSatAssumptionOrder forNumber(int value) {
1777  switch (value) {
1778  case 0: return DEFAULT_ASSUMPTION_ORDER;
1779  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1780  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1781  default: return null;
1782  }
1783  }
1784 
1785  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1787  return internalValueMap;
1788  }
1789  private static final com.google.protobuf.Internal.EnumLiteMap<
1790  MaxSatAssumptionOrder> internalValueMap =
1791  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1792  public MaxSatAssumptionOrder findValueByNumber(int number) {
1793  return MaxSatAssumptionOrder.forNumber(number);
1794  }
1795  };
1796 
1797  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1799  return getDescriptor().getValues().get(ordinal());
1800  }
1801  public final com.google.protobuf.Descriptors.EnumDescriptor
1803  return getDescriptor();
1804  }
1805  public static final com.google.protobuf.Descriptors.EnumDescriptor
1807  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1808  }
1809 
1810  private static final MaxSatAssumptionOrder[] VALUES = values();
1811 
1813  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1814  if (desc.getType() != getDescriptor()) {
1815  throw new java.lang.IllegalArgumentException(
1816  "EnumValueDescriptor is not for this type.");
1817  }
1818  return VALUES[desc.getIndex()];
1819  }
1820 
1821  private final int value;
1822 
1823  private MaxSatAssumptionOrder(int value) {
1824  this.value = value;
1825  }
1826 
1827  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1828  }
1829 
1838  implements com.google.protobuf.ProtocolMessageEnum {
1867  ;
1868 
1876  public static final int STRATIFICATION_NONE_VALUE = 0;
1885  public static final int STRATIFICATION_DESCENT_VALUE = 1;
1896  public static final int STRATIFICATION_ASCENT_VALUE = 2;
1897 
1898 
1899  public final int getNumber() {
1900  return value;
1901  }
1902 
1906  @java.lang.Deprecated
1907  public static MaxSatStratificationAlgorithm valueOf(int value) {
1908  return forNumber(value);
1909  }
1910 
1911  public static MaxSatStratificationAlgorithm forNumber(int value) {
1912  switch (value) {
1913  case 0: return STRATIFICATION_NONE;
1914  case 1: return STRATIFICATION_DESCENT;
1915  case 2: return STRATIFICATION_ASCENT;
1916  default: return null;
1917  }
1918  }
1919 
1920  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
1922  return internalValueMap;
1923  }
1924  private static final com.google.protobuf.Internal.EnumLiteMap<
1925  MaxSatStratificationAlgorithm> internalValueMap =
1926  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
1927  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
1929  }
1930  };
1931 
1932  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1934  return getDescriptor().getValues().get(ordinal());
1935  }
1936  public final com.google.protobuf.Descriptors.EnumDescriptor
1938  return getDescriptor();
1939  }
1940  public static final com.google.protobuf.Descriptors.EnumDescriptor
1942  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
1943  }
1944 
1945  private static final MaxSatStratificationAlgorithm[] VALUES = values();
1946 
1948  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1949  if (desc.getType() != getDescriptor()) {
1950  throw new java.lang.IllegalArgumentException(
1951  "EnumValueDescriptor is not for this type.");
1952  }
1953  return VALUES[desc.getIndex()];
1954  }
1955 
1956  private final int value;
1957 
1958  private MaxSatStratificationAlgorithm(int value) {
1959  this.value = value;
1960  }
1961 
1962  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
1963  }
1964 
1972  public enum SearchBranching
1973  implements com.google.protobuf.ProtocolMessageEnum {
2030  ;
2031 
2040  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2053  public static final int FIXED_SEARCH_VALUE = 1;
2061  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2069  public static final int LP_SEARCH_VALUE = 3;
2077  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2087  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2088 
2089 
2090  public final int getNumber() {
2091  return value;
2092  }
2093 
2097  @java.lang.Deprecated
2098  public static SearchBranching valueOf(int value) {
2099  return forNumber(value);
2100  }
2101 
2102  public static SearchBranching forNumber(int value) {
2103  switch (value) {
2104  case 0: return AUTOMATIC_SEARCH;
2105  case 1: return FIXED_SEARCH;
2106  case 2: return PORTFOLIO_SEARCH;
2107  case 3: return LP_SEARCH;
2108  case 4: return PSEUDO_COST_SEARCH;
2109  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2110  default: return null;
2111  }
2112  }
2113 
2114  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2116  return internalValueMap;
2117  }
2118  private static final com.google.protobuf.Internal.EnumLiteMap<
2119  SearchBranching> internalValueMap =
2120  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2121  public SearchBranching findValueByNumber(int number) {
2122  return SearchBranching.forNumber(number);
2123  }
2124  };
2125 
2126  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2128  return getDescriptor().getValues().get(ordinal());
2129  }
2130  public final com.google.protobuf.Descriptors.EnumDescriptor
2132  return getDescriptor();
2133  }
2134  public static final com.google.protobuf.Descriptors.EnumDescriptor
2136  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2137  }
2138 
2139  private static final SearchBranching[] VALUES = values();
2140 
2141  public static SearchBranching valueOf(
2142  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2143  if (desc.getType() != getDescriptor()) {
2144  throw new java.lang.IllegalArgumentException(
2145  "EnumValueDescriptor is not for this type.");
2146  }
2147  return VALUES[desc.getIndex()];
2148  }
2149 
2150  private final int value;
2151 
2152  private SearchBranching(int value) {
2153  this.value = value;
2154  }
2155 
2156  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2157  }
2158 
2159  private int bitField0_;
2160  private int bitField1_;
2161  private int bitField2_;
2162  private int bitField3_;
2163  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2164  private int preferredVariableOrder_;
2168  public boolean hasPreferredVariableOrder() {
2169  return ((bitField0_ & 0x00000001) != 0);
2170  }
2175  @SuppressWarnings("deprecation")
2177  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2178  }
2179 
2180  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2181  private int initialPolarity_;
2185  public boolean hasInitialPolarity() {
2186  return ((bitField0_ & 0x00000002) != 0);
2187  }
2192  @SuppressWarnings("deprecation")
2194  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2195  }
2196 
2197  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2198  private boolean usePhaseSaving_;
2212  public boolean hasUsePhaseSaving() {
2213  return ((bitField0_ & 0x00000004) != 0);
2214  }
2228  public boolean getUsePhaseSaving() {
2229  return usePhaseSaving_;
2230  }
2231 
2232  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2233  private double randomPolarityRatio_;
2245  public boolean hasRandomPolarityRatio() {
2246  return ((bitField0_ & 0x00000008) != 0);
2247  }
2259  public double getRandomPolarityRatio() {
2260  return randomPolarityRatio_;
2261  }
2262 
2263  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2264  private double randomBranchesRatio_;
2274  public boolean hasRandomBranchesRatio() {
2275  return ((bitField0_ & 0x00000010) != 0);
2276  }
2286  public double getRandomBranchesRatio() {
2287  return randomBranchesRatio_;
2288  }
2289 
2290  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2291  private boolean useErwaHeuristic_;
2301  public boolean hasUseErwaHeuristic() {
2302  return ((bitField0_ & 0x00000020) != 0);
2303  }
2313  public boolean getUseErwaHeuristic() {
2314  return useErwaHeuristic_;
2315  }
2316 
2317  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2318  private double initialVariablesActivity_;
2331  public boolean hasInitialVariablesActivity() {
2332  return ((bitField0_ & 0x00000040) != 0);
2333  }
2347  return initialVariablesActivity_;
2348  }
2349 
2351  private boolean alsoBumpVariablesInConflictReasons_;
2363  return ((bitField0_ & 0x00000080) != 0);
2364  }
2376  return alsoBumpVariablesInConflictReasons_;
2377  }
2378 
2379  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2380  private int minimizationAlgorithm_;
2384  public boolean hasMinimizationAlgorithm() {
2385  return ((bitField0_ & 0x00000100) != 0);
2386  }
2391  @SuppressWarnings("deprecation")
2393  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2394  }
2395 
2396  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2397  private int binaryMinimizationAlgorithm_;
2402  return ((bitField0_ & 0x00000200) != 0);
2403  }
2408  @SuppressWarnings("deprecation")
2411  }
2412 
2414  private boolean subsumptionDuringConflictAnalysis_;
2426  return ((bitField0_ & 0x00000400) != 0);
2427  }
2439  return subsumptionDuringConflictAnalysis_;
2440  }
2441 
2442  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2443  private int clauseCleanupPeriod_;
2451  public boolean hasClauseCleanupPeriod() {
2452  return ((bitField0_ & 0x00000800) != 0);
2453  }
2461  public int getClauseCleanupPeriod() {
2462  return clauseCleanupPeriod_;
2463  }
2464 
2465  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2466  private int clauseCleanupTarget_;
2475  public boolean hasClauseCleanupTarget() {
2476  return ((bitField0_ & 0x00001000) != 0);
2477  }
2486  public int getClauseCleanupTarget() {
2487  return clauseCleanupTarget_;
2488  }
2489 
2490  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2491  private int clauseCleanupProtection_;
2495  public boolean hasClauseCleanupProtection() {
2496  return ((bitField0_ & 0x00002000) != 0);
2497  }
2502  @SuppressWarnings("deprecation")
2504  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2505  }
2506 
2507  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2508  private int clauseCleanupLbdBound_;
2517  public boolean hasClauseCleanupLbdBound() {
2518  return ((bitField0_ & 0x00004000) != 0);
2519  }
2529  return clauseCleanupLbdBound_;
2530  }
2531 
2532  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2533  private int clauseCleanupOrdering_;
2537  public boolean hasClauseCleanupOrdering() {
2538  return ((bitField0_ & 0x00008000) != 0);
2539  }
2544  @SuppressWarnings("deprecation")
2546  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2547  }
2548 
2549  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2550  private int pbCleanupIncrement_;
2558  public boolean hasPbCleanupIncrement() {
2559  return ((bitField0_ & 0x00010000) != 0);
2560  }
2568  public int getPbCleanupIncrement() {
2569  return pbCleanupIncrement_;
2570  }
2571 
2572  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2573  private double pbCleanupRatio_;
2577  public boolean hasPbCleanupRatio() {
2578  return ((bitField0_ & 0x00020000) != 0);
2579  }
2583  public double getPbCleanupRatio() {
2584  return pbCleanupRatio_;
2585  }
2586 
2588  private int minimizeWithPropagationRestartPeriod_;
2607  return ((bitField0_ & 0x00040000) != 0);
2608  }
2627  return minimizeWithPropagationRestartPeriod_;
2628  }
2629 
2631  private int minimizeWithPropagationNumDecisions_;
2636  return ((bitField0_ & 0x00080000) != 0);
2637  }
2642  return minimizeWithPropagationNumDecisions_;
2643  }
2644 
2645  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2646  private double variableActivityDecay_;
2660  public boolean hasVariableActivityDecay() {
2661  return ((bitField0_ & 0x00100000) != 0);
2662  }
2676  public double getVariableActivityDecay() {
2677  return variableActivityDecay_;
2678  }
2679 
2680  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2681  private double maxVariableActivityValue_;
2685  public boolean hasMaxVariableActivityValue() {
2686  return ((bitField0_ & 0x00200000) != 0);
2687  }
2692  return maxVariableActivityValue_;
2693  }
2694 
2695  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2696  private double glucoseMaxDecay_;
2707  public boolean hasGlucoseMaxDecay() {
2708  return ((bitField0_ & 0x00400000) != 0);
2709  }
2720  public double getGlucoseMaxDecay() {
2721  return glucoseMaxDecay_;
2722  }
2723 
2724  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2725  private double glucoseDecayIncrement_;
2729  public boolean hasGlucoseDecayIncrement() {
2730  return ((bitField0_ & 0x00800000) != 0);
2731  }
2735  public double getGlucoseDecayIncrement() {
2736  return glucoseDecayIncrement_;
2737  }
2738 
2739  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
2740  private int glucoseDecayIncrementPeriod_;
2745  return ((bitField0_ & 0x01000000) != 0);
2746  }
2751  return glucoseDecayIncrementPeriod_;
2752  }
2753 
2754  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2755  private double clauseActivityDecay_;
2763  public boolean hasClauseActivityDecay() {
2764  return ((bitField0_ & 0x02000000) != 0);
2765  }
2773  public double getClauseActivityDecay() {
2774  return clauseActivityDecay_;
2775  }
2776 
2777  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2778  private double maxClauseActivityValue_;
2782  public boolean hasMaxClauseActivityValue() {
2783  return ((bitField0_ & 0x04000000) != 0);
2784  }
2788  public double getMaxClauseActivityValue() {
2789  return maxClauseActivityValue_;
2790  }
2791 
2792  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
2793  private java.util.List<java.lang.Integer> restartAlgorithms_;
2794  private static final com.google.protobuf.Internal.ListAdapter.Converter<
2795  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
2796  new com.google.protobuf.Internal.ListAdapter.Converter<
2797  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
2798  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
2799  @SuppressWarnings("deprecation")
2801  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
2802  }
2803  };
2819  return new com.google.protobuf.Internal.ListAdapter<
2820  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
2821  }
2837  return restartAlgorithms_.size();
2838  }
2854  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
2855  }
2856 
2857  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
2858  private volatile java.lang.Object defaultRestartAlgorithms_;
2862  public boolean hasDefaultRestartAlgorithms() {
2863  return ((bitField0_ & 0x08000000) != 0);
2864  }
2868  public java.lang.String getDefaultRestartAlgorithms() {
2869  java.lang.Object ref = defaultRestartAlgorithms_;
2870  if (ref instanceof java.lang.String) {
2871  return (java.lang.String) ref;
2872  } else {
2873  com.google.protobuf.ByteString bs =
2874  (com.google.protobuf.ByteString) ref;
2875  java.lang.String s = bs.toStringUtf8();
2876  if (bs.isValidUtf8()) {
2877  defaultRestartAlgorithms_ = s;
2878  }
2879  return s;
2880  }
2881  }
2885  public com.google.protobuf.ByteString
2887  java.lang.Object ref = defaultRestartAlgorithms_;
2888  if (ref instanceof java.lang.String) {
2889  com.google.protobuf.ByteString b =
2890  com.google.protobuf.ByteString.copyFromUtf8(
2891  (java.lang.String) ref);
2892  defaultRestartAlgorithms_ = b;
2893  return b;
2894  } else {
2895  return (com.google.protobuf.ByteString) ref;
2896  }
2897  }
2898 
2899  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
2900  private int restartPeriod_;
2909  public boolean hasRestartPeriod() {
2910  return ((bitField0_ & 0x10000000) != 0);
2911  }
2920  public int getRestartPeriod() {
2921  return restartPeriod_;
2922  }
2923 
2924  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
2925  private int restartRunningWindowSize_;
2933  public boolean hasRestartRunningWindowSize() {
2934  return ((bitField0_ & 0x20000000) != 0);
2935  }
2944  return restartRunningWindowSize_;
2945  }
2946 
2947  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
2948  private double restartDlAverageRatio_;
2957  public boolean hasRestartDlAverageRatio() {
2958  return ((bitField0_ & 0x40000000) != 0);
2959  }
2968  public double getRestartDlAverageRatio() {
2969  return restartDlAverageRatio_;
2970  }
2971 
2972  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
2973  private double restartLbdAverageRatio_;
2977  public boolean hasRestartLbdAverageRatio() {
2978  return ((bitField0_ & 0x80000000) != 0);
2979  }
2983  public double getRestartLbdAverageRatio() {
2984  return restartLbdAverageRatio_;
2985  }
2986 
2987  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
2988  private boolean useBlockingRestart_;
2998  public boolean hasUseBlockingRestart() {
2999  return ((bitField1_ & 0x00000001) != 0);
3000  }
3010  public boolean getUseBlockingRestart() {
3011  return useBlockingRestart_;
3012  }
3013 
3014  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3015  private int blockingRestartWindowSize_;
3019  public boolean hasBlockingRestartWindowSize() {
3020  return ((bitField1_ & 0x00000002) != 0);
3021  }
3026  return blockingRestartWindowSize_;
3027  }
3028 
3029  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3030  private double blockingRestartMultiplier_;
3034  public boolean hasBlockingRestartMultiplier() {
3035  return ((bitField1_ & 0x00000004) != 0);
3036  }
3041  return blockingRestartMultiplier_;
3042  }
3043 
3045  private int numConflictsBeforeStrategyChanges_;
3056  return ((bitField1_ & 0x00000008) != 0);
3057  }
3068  return numConflictsBeforeStrategyChanges_;
3069  }
3070 
3071  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3072  private double strategyChangeIncreaseRatio_;
3082  return ((bitField1_ & 0x00000010) != 0);
3083  }
3093  return strategyChangeIncreaseRatio_;
3094  }
3095 
3096  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3097  private double maxTimeInSeconds_;
3107  public boolean hasMaxTimeInSeconds() {
3108  return ((bitField1_ & 0x00000020) != 0);
3109  }
3119  public double getMaxTimeInSeconds() {
3120  return maxTimeInSeconds_;
3121  }
3122 
3123  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3124  private double maxDeterministicTime_;
3136  public boolean hasMaxDeterministicTime() {
3137  return ((bitField1_ & 0x00000040) != 0);
3138  }
3150  public double getMaxDeterministicTime() {
3151  return maxDeterministicTime_;
3152  }
3153 
3154  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3155  private long maxNumberOfConflicts_;
3163  public boolean hasMaxNumberOfConflicts() {
3164  return ((bitField1_ & 0x00000080) != 0);
3165  }
3173  public long getMaxNumberOfConflicts() {
3174  return maxNumberOfConflicts_;
3175  }
3176 
3177  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3178  private long maxMemoryInMb_;
3189  public boolean hasMaxMemoryInMb() {
3190  return ((bitField1_ & 0x00000100) != 0);
3191  }
3202  public long getMaxMemoryInMb() {
3203  return maxMemoryInMb_;
3204  }
3205 
3206  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3207  private boolean treatBinaryClausesSeparately_;
3218  return ((bitField1_ & 0x00000200) != 0);
3219  }
3230  return treatBinaryClausesSeparately_;
3231  }
3232 
3233  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3234  private int randomSeed_;
3247  public boolean hasRandomSeed() {
3248  return ((bitField1_ & 0x00000400) != 0);
3249  }
3262  public int getRandomSeed() {
3263  return randomSeed_;
3264  }
3265 
3266  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3267  private boolean logSearchProgress_;
3275  public boolean hasLogSearchProgress() {
3276  return ((bitField1_ & 0x00000800) != 0);
3277  }
3285  public boolean getLogSearchProgress() {
3286  return logSearchProgress_;
3287  }
3288 
3289  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3290  private boolean usePbResolution_;
3301  public boolean hasUsePbResolution() {
3302  return ((bitField1_ & 0x00001000) != 0);
3303  }
3314  public boolean getUsePbResolution() {
3315  return usePbResolution_;
3316  }
3317 
3319  private boolean minimizeReductionDuringPbResolution_;
3331  return ((bitField1_ & 0x00002000) != 0);
3332  }
3344  return minimizeReductionDuringPbResolution_;
3345  }
3346 
3347  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
3348  private boolean countAssumptionLevelsInLbd_;
3364  return ((bitField1_ & 0x00004000) != 0);
3365  }
3381  return countAssumptionLevelsInLbd_;
3382  }
3383 
3384  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3385  private int presolveBveThreshold_;
3395  public boolean hasPresolveBveThreshold() {
3396  return ((bitField1_ & 0x00008000) != 0);
3397  }
3408  return presolveBveThreshold_;
3409  }
3410 
3411  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3412  private int presolveBveClauseWeight_;
3421  public boolean hasPresolveBveClauseWeight() {
3422  return ((bitField1_ & 0x00010000) != 0);
3423  }
3433  return presolveBveClauseWeight_;
3434  }
3435 
3437  private double presolveProbingDeterministicTimeLimit_;
3447  return ((bitField1_ & 0x00020000) != 0);
3448  }
3458  return presolveProbingDeterministicTimeLimit_;
3459  }
3460 
3461  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3462  private boolean presolveBlockedClause_;
3471  public boolean hasPresolveBlockedClause() {
3472  return ((bitField1_ & 0x00040000) != 0);
3473  }
3482  public boolean getPresolveBlockedClause() {
3483  return presolveBlockedClause_;
3484  }
3485 
3486  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
3487  private boolean presolveUseBva_;
3495  public boolean hasPresolveUseBva() {
3496  return ((bitField1_ & 0x00080000) != 0);
3497  }
3505  public boolean getPresolveUseBva() {
3506  return presolveUseBva_;
3507  }
3508 
3509  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
3510  private int presolveBvaThreshold_;
3521  public boolean hasPresolveBvaThreshold() {
3522  return ((bitField1_ & 0x00100000) != 0);
3523  }
3535  return presolveBvaThreshold_;
3536  }
3537 
3538  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
3539  private boolean useOptimizationHints_;
3550  public boolean hasUseOptimizationHints() {
3551  return ((bitField1_ & 0x00200000) != 0);
3552  }
3563  public boolean getUseOptimizationHints() {
3564  return useOptimizationHints_;
3565  }
3566 
3567  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
3568  private boolean minimizeCore_;
3576  public boolean hasMinimizeCore() {
3577  return ((bitField1_ & 0x00400000) != 0);
3578  }
3586  public boolean getMinimizeCore() {
3587  return minimizeCore_;
3588  }
3589 
3590  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
3591  private boolean findMultipleCores_;
3600  public boolean hasFindMultipleCores() {
3601  return ((bitField1_ & 0x00800000) != 0);
3602  }
3611  public boolean getFindMultipleCores() {
3612  return findMultipleCores_;
3613  }
3614 
3615  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
3616  private boolean coverOptimization_;
3625  public boolean hasCoverOptimization() {
3626  return ((bitField1_ & 0x01000000) != 0);
3627  }
3636  public boolean getCoverOptimization() {
3637  return coverOptimization_;
3638  }
3639 
3640  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
3641  private int maxSatAssumptionOrder_;
3645  public boolean hasMaxSatAssumptionOrder() {
3646  return ((bitField1_ & 0x02000000) != 0);
3647  }
3652  @SuppressWarnings("deprecation")
3655  }
3656 
3658  private boolean maxSatReverseAssumptionOrder_;
3668  return ((bitField1_ & 0x04000000) != 0);
3669  }
3679  return maxSatReverseAssumptionOrder_;
3680  }
3681 
3682  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
3683  private int maxSatStratification_;
3687  public boolean hasMaxSatStratification() {
3688  return ((bitField1_ & 0x08000000) != 0);
3689  }
3694  @SuppressWarnings("deprecation")
3697  }
3698 
3700  private boolean usePrecedencesInDisjunctiveConstraint_;
3716  return ((bitField1_ & 0x10000000) != 0);
3717  }
3733  return usePrecedencesInDisjunctiveConstraint_;
3734  }
3735 
3737  private boolean useOverloadCheckerInCumulativeConstraint_;
3751  return ((bitField1_ & 0x20000000) != 0);
3752  }
3766  return useOverloadCheckerInCumulativeConstraint_;
3767  }
3768 
3770  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
3784  return ((bitField1_ & 0x40000000) != 0);
3785  }
3799  return useTimetableEdgeFindingInCumulativeConstraint_;
3800  }
3801 
3803  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
3819  return ((bitField1_ & 0x80000000) != 0);
3820  }
3836  return useDisjunctiveConstraintInCumulativeConstraint_;
3837  }
3838 
3839  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
3840  private int linearizationLevel_;
3851  public boolean hasLinearizationLevel() {
3852  return ((bitField2_ & 0x00000001) != 0);
3853  }
3864  public int getLinearizationLevel() {
3865  return linearizationLevel_;
3866  }
3867 
3868  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
3869  private int booleanEncodingLevel_;
3878  public boolean hasBooleanEncodingLevel() {
3879  return ((bitField2_ & 0x00000002) != 0);
3880  }
3890  return booleanEncodingLevel_;
3891  }
3892 
3893  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
3894  private int maxNumCuts_;
3903  public boolean hasMaxNumCuts() {
3904  return ((bitField2_ & 0x00000004) != 0);
3905  }
3914  public int getMaxNumCuts() {
3915  return maxNumCuts_;
3916  }
3917 
3918  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
3919  private boolean onlyAddCutsAtLevelZero_;
3928  public boolean hasOnlyAddCutsAtLevelZero() {
3929  return ((bitField2_ & 0x00000008) != 0);
3930  }
3939  public boolean getOnlyAddCutsAtLevelZero() {
3940  return onlyAddCutsAtLevelZero_;
3941  }
3942 
3943  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
3944  private boolean addKnapsackCuts_;
3954  public boolean hasAddKnapsackCuts() {
3955  return ((bitField2_ & 0x00000010) != 0);
3956  }
3966  public boolean getAddKnapsackCuts() {
3967  return addKnapsackCuts_;
3968  }
3969 
3970  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
3971  private boolean addCgCuts_;
3980  public boolean hasAddCgCuts() {
3981  return ((bitField2_ & 0x00000020) != 0);
3982  }
3991  public boolean getAddCgCuts() {
3992  return addCgCuts_;
3993  }
3994 
3995  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
3996  private boolean addMirCuts_;
4005  public boolean hasAddMirCuts() {
4006  return ((bitField2_ & 0x00000040) != 0);
4007  }
4016  public boolean getAddMirCuts() {
4017  return addMirCuts_;
4018  }
4019 
4020  public static final int USE_MIR_ROUNDING_FIELD_NUMBER = 118;
4021  private boolean useMirRounding_;
4031  public boolean hasUseMirRounding() {
4032  return ((bitField2_ & 0x00000080) != 0);
4033  }
4043  public boolean getUseMirRounding() {
4044  return useMirRounding_;
4045  }
4046 
4047  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4048  private int maxIntegerRoundingScaling_;
4060  public boolean hasMaxIntegerRoundingScaling() {
4061  return ((bitField2_ & 0x00000100) != 0);
4062  }
4075  return maxIntegerRoundingScaling_;
4076  }
4077 
4078  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4079  private boolean addLpConstraintsLazily_;
4090  public boolean hasAddLpConstraintsLazily() {
4091  return ((bitField2_ & 0x00000200) != 0);
4092  }
4103  public boolean getAddLpConstraintsLazily() {
4104  return addLpConstraintsLazily_;
4105  }
4106 
4108  private double minOrthogonalityForLpConstraints_;
4121  return ((bitField2_ & 0x00000400) != 0);
4122  }
4135  return minOrthogonalityForLpConstraints_;
4136  }
4137 
4138  public static final int MAX_INACTIVE_COUNT_FIELD_NUMBER = 121;
4139  private long maxInactiveCount_;
4148  public boolean hasMaxInactiveCount() {
4149  return ((bitField2_ & 0x00000800) != 0);
4150  }
4159  public long getMaxInactiveCount() {
4160  return maxInactiveCount_;
4161  }
4162 
4163  public static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER = 122;
4164  private long constraintRemovalBatchSize_;
4174  return ((bitField2_ & 0x00001000) != 0);
4175  }
4185  return constraintRemovalBatchSize_;
4186  }
4187 
4188  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4189  private int searchBranching_;
4193  public boolean hasSearchBranching() {
4194  return ((bitField2_ & 0x00002000) != 0);
4195  }
4200  @SuppressWarnings("deprecation")
4202  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4203  }
4204 
4205  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4206  private boolean exploitIntegerLpSolution_;
4217  public boolean hasExploitIntegerLpSolution() {
4218  return ((bitField2_ & 0x00004000) != 0);
4219  }
4230  public boolean getExploitIntegerLpSolution() {
4231  return exploitIntegerLpSolution_;
4232  }
4233 
4234  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4235  private boolean exploitAllLpSolution_;
4245  public boolean hasExploitAllLpSolution() {
4246  return ((bitField2_ & 0x00008000) != 0);
4247  }
4257  public boolean getExploitAllLpSolution() {
4258  return exploitAllLpSolution_;
4259  }
4260 
4261  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4262  private boolean exploitBestSolution_;
4270  public boolean hasExploitBestSolution() {
4271  return ((bitField2_ & 0x00010000) != 0);
4272  }
4280  public boolean getExploitBestSolution() {
4281  return exploitBestSolution_;
4282  }
4283 
4284  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4285  private boolean exploitObjective_;
4294  public boolean hasExploitObjective() {
4295  return ((bitField2_ & 0x00020000) != 0);
4296  }
4305  public boolean getExploitObjective() {
4306  return exploitObjective_;
4307  }
4308 
4309  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4310  private long pseudoCostReliabilityThreshold_;
4320  return ((bitField2_ & 0x00040000) != 0);
4321  }
4331  return pseudoCostReliabilityThreshold_;
4332  }
4333 
4334  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4335  private boolean optimizeWithCore_;
4346  public boolean hasOptimizeWithCore() {
4347  return ((bitField2_ & 0x00080000) != 0);
4348  }
4359  public boolean getOptimizeWithCore() {
4360  return optimizeWithCore_;
4361  }
4362 
4363  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
4364  private int binarySearchNumConflicts_;
4375  public boolean hasBinarySearchNumConflicts() {
4376  return ((bitField2_ & 0x00100000) != 0);
4377  }
4389  return binarySearchNumConflicts_;
4390  }
4391 
4392  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
4393  private boolean optimizeWithMaxHs_;
4406  public boolean hasOptimizeWithMaxHs() {
4407  return ((bitField2_ & 0x00200000) != 0);
4408  }
4421  public boolean getOptimizeWithMaxHs() {
4422  return optimizeWithMaxHs_;
4423  }
4424 
4425  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
4426  private boolean cpModelPresolve_;
4434  public boolean hasCpModelPresolve() {
4435  return ((bitField2_ & 0x00400000) != 0);
4436  }
4444  public boolean getCpModelPresolve() {
4445  return cpModelPresolve_;
4446  }
4447 
4448  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
4449  private int cpModelProbingLevel_;
4457  public boolean hasCpModelProbingLevel() {
4458  return ((bitField2_ & 0x00800000) != 0);
4459  }
4467  public int getCpModelProbingLevel() {
4468  return cpModelProbingLevel_;
4469  }
4470 
4471  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
4472  private boolean cpModelUseSatPresolve_;
4480  public boolean hasCpModelUseSatPresolve() {
4481  return ((bitField2_ & 0x01000000) != 0);
4482  }
4490  public boolean getCpModelUseSatPresolve() {
4491  return cpModelUseSatPresolve_;
4492  }
4493 
4494  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
4495  private boolean enumerateAllSolutions_;
4508  public boolean hasEnumerateAllSolutions() {
4509  return ((bitField2_ & 0x02000000) != 0);
4510  }
4523  public boolean getEnumerateAllSolutions() {
4524  return enumerateAllSolutions_;
4525  }
4526 
4528  private boolean fillTightenedDomainsInResponse_;
4541  return ((bitField2_ & 0x04000000) != 0);
4542  }
4555  return fillTightenedDomainsInResponse_;
4556  }
4557 
4558  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
4559  private boolean instantiateAllVariables_;
4568  public boolean hasInstantiateAllVariables() {
4569  return ((bitField2_ & 0x08000000) != 0);
4570  }
4579  public boolean getInstantiateAllVariables() {
4580  return instantiateAllVariables_;
4581  }
4582 
4584  private boolean autoDetectGreaterThanAtLeastOneOf_;
4596  return ((bitField2_ & 0x10000000) != 0);
4597  }
4609  return autoDetectGreaterThanAtLeastOneOf_;
4610  }
4611 
4612  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
4613  private boolean stopAfterFirstSolution_;
4621  public boolean hasStopAfterFirstSolution() {
4622  return ((bitField2_ & 0x20000000) != 0);
4623  }
4631  public boolean getStopAfterFirstSolution() {
4632  return stopAfterFirstSolution_;
4633  }
4634 
4635  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
4636  private int numSearchWorkers_;
4647  public boolean hasNumSearchWorkers() {
4648  return ((bitField2_ & 0x40000000) != 0);
4649  }
4660  public int getNumSearchWorkers() {
4661  return numSearchWorkers_;
4662  }
4663 
4664  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
4665  private boolean shareObjectiveBounds_;
4673  public boolean hasShareObjectiveBounds() {
4674  return ((bitField2_ & 0x80000000) != 0);
4675  }
4683  public boolean getShareObjectiveBounds() {
4684  return shareObjectiveBounds_;
4685  }
4686 
4687  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
4688  private boolean shareLevelZeroBounds_;
4696  public boolean hasShareLevelZeroBounds() {
4697  return ((bitField3_ & 0x00000001) != 0);
4698  }
4706  public boolean getShareLevelZeroBounds() {
4707  return shareLevelZeroBounds_;
4708  }
4709 
4710  public static final int USE_LNS_FIELD_NUMBER = 101;
4711  private boolean useLns_;
4719  public boolean hasUseLns() {
4720  return ((bitField3_ & 0x00000002) != 0);
4721  }
4729  public boolean getUseLns() {
4730  return useLns_;
4731  }
4732 
4733  public static final int LNS_NUM_THREADS_FIELD_NUMBER = 102;
4734  private int lnsNumThreads_;
4738  public boolean hasLnsNumThreads() {
4739  return ((bitField3_ & 0x00000004) != 0);
4740  }
4744  public int getLnsNumThreads() {
4745  return lnsNumThreads_;
4746  }
4747 
4748  public static final int LNS_IS_DETERMINISTIC_FIELD_NUMBER = 134;
4749  private boolean lnsIsDeterministic_;
4753  public boolean hasLnsIsDeterministic() {
4754  return ((bitField3_ & 0x00000008) != 0);
4755  }
4759  public boolean getLnsIsDeterministic() {
4760  return lnsIsDeterministic_;
4761  }
4762 
4763  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
4764  private boolean lnsFocusOnDecisionVariables_;
4769  return ((bitField3_ & 0x00000010) != 0);
4770  }
4775  return lnsFocusOnDecisionVariables_;
4776  }
4777 
4778  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
4779  private boolean useRinsLns_;
4787  public boolean hasUseRinsLns() {
4788  return ((bitField3_ & 0x00000020) != 0);
4789  }
4797  public boolean getUseRinsLns() {
4798  return useRinsLns_;
4799  }
4800 
4801  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
4802  private boolean randomizeSearch_;
4810  public boolean hasRandomizeSearch() {
4811  return ((bitField3_ & 0x00000040) != 0);
4812  }
4820  public boolean getRandomizeSearch() {
4821  return randomizeSearch_;
4822  }
4823 
4824  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
4825  private long searchRandomizationTolerance_;
4840  return ((bitField3_ & 0x00000080) != 0);
4841  }
4856  return searchRandomizationTolerance_;
4857  }
4858 
4859  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
4860  private boolean useOptionalVariables_;
4870  public boolean hasUseOptionalVariables() {
4871  return ((bitField3_ & 0x00000100) != 0);
4872  }
4882  public boolean getUseOptionalVariables() {
4883  return useOptionalVariables_;
4884  }
4885 
4886  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
4887  private boolean useExactLpReason_;
4898  public boolean hasUseExactLpReason() {
4899  return ((bitField3_ & 0x00000200) != 0);
4900  }
4911  public boolean getUseExactLpReason() {
4912  return useExactLpReason_;
4913  }
4914 
4915  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
4916  private boolean useCombinedNoOverlap_;
4926  public boolean hasUseCombinedNoOverlap() {
4927  return ((bitField3_ & 0x00000400) != 0);
4928  }
4938  public boolean getUseCombinedNoOverlap() {
4939  return useCombinedNoOverlap_;
4940  }
4941 
4942  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
4943  private double mipMaxBound_;
4953  public boolean hasMipMaxBound() {
4954  return ((bitField3_ & 0x00000800) != 0);
4955  }
4965  public double getMipMaxBound() {
4966  return mipMaxBound_;
4967  }
4968 
4969  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
4970  private double mipVarScaling_;
4980  public boolean hasMipVarScaling() {
4981  return ((bitField3_ & 0x00001000) != 0);
4982  }
4992  public double getMipVarScaling() {
4993  return mipVarScaling_;
4994  }
4995 
4996  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
4997  private double mipWantedPrecision_;
5013  public boolean hasMipWantedPrecision() {
5014  return ((bitField3_ & 0x00002000) != 0);
5015  }
5031  public double getMipWantedPrecision() {
5032  return mipWantedPrecision_;
5033  }
5034 
5035  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5036  private int mipMaxActivityExponent_;
5050  public boolean hasMipMaxActivityExponent() {
5051  return ((bitField3_ & 0x00004000) != 0);
5052  }
5067  return mipMaxActivityExponent_;
5068  }
5069 
5070  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5071  private double mipCheckPrecision_;
5082  public boolean hasMipCheckPrecision() {
5083  return ((bitField3_ & 0x00008000) != 0);
5084  }
5095  public double getMipCheckPrecision() {
5096  return mipCheckPrecision_;
5097  }
5098 
5099  private byte memoizedIsInitialized = -1;
5100  @java.lang.Override
5101  public final boolean isInitialized() {
5102  byte isInitialized = memoizedIsInitialized;
5103  if (isInitialized == 1) return true;
5104  if (isInitialized == 0) return false;
5105 
5106  memoizedIsInitialized = 1;
5107  return true;
5108  }
5109 
5110  @java.lang.Override
5111  public void writeTo(com.google.protobuf.CodedOutputStream output)
5112  throws java.io.IOException {
5113  if (((bitField0_ & 0x00000001) != 0)) {
5114  output.writeEnum(1, preferredVariableOrder_);
5115  }
5116  if (((bitField0_ & 0x00000002) != 0)) {
5117  output.writeEnum(2, initialPolarity_);
5118  }
5119  if (((bitField0_ & 0x00000100) != 0)) {
5120  output.writeEnum(4, minimizationAlgorithm_);
5121  }
5122  if (((bitField0_ & 0x00000800) != 0)) {
5123  output.writeInt32(11, clauseCleanupPeriod_);
5124  }
5125  if (((bitField0_ & 0x00001000) != 0)) {
5126  output.writeInt32(13, clauseCleanupTarget_);
5127  }
5128  if (((bitField0_ & 0x00100000) != 0)) {
5129  output.writeDouble(15, variableActivityDecay_);
5130  }
5131  if (((bitField0_ & 0x00200000) != 0)) {
5132  output.writeDouble(16, maxVariableActivityValue_);
5133  }
5134  if (((bitField0_ & 0x02000000) != 0)) {
5135  output.writeDouble(17, clauseActivityDecay_);
5136  }
5137  if (((bitField0_ & 0x04000000) != 0)) {
5138  output.writeDouble(18, maxClauseActivityValue_);
5139  }
5140  if (((bitField0_ & 0x00400000) != 0)) {
5141  output.writeDouble(22, glucoseMaxDecay_);
5142  }
5143  if (((bitField0_ & 0x00800000) != 0)) {
5144  output.writeDouble(23, glucoseDecayIncrement_);
5145  }
5146  if (((bitField0_ & 0x01000000) != 0)) {
5147  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5148  }
5149  if (((bitField0_ & 0x10000000) != 0)) {
5150  output.writeInt32(30, restartPeriod_);
5151  }
5152  if (((bitField1_ & 0x00000400) != 0)) {
5153  output.writeInt32(31, randomSeed_);
5154  }
5155  if (((bitField0_ & 0x00000010) != 0)) {
5156  output.writeDouble(32, randomBranchesRatio_);
5157  }
5158  if (((bitField1_ & 0x00000200) != 0)) {
5159  output.writeBool(33, treatBinaryClausesSeparately_);
5160  }
5161  if (((bitField0_ & 0x00000200) != 0)) {
5162  output.writeEnum(34, binaryMinimizationAlgorithm_);
5163  }
5164  if (((bitField1_ & 0x00200000) != 0)) {
5165  output.writeBool(35, useOptimizationHints_);
5166  }
5167  if (((bitField1_ & 0x00000020) != 0)) {
5168  output.writeDouble(36, maxTimeInSeconds_);
5169  }
5170  if (((bitField1_ & 0x00000080) != 0)) {
5171  output.writeInt64(37, maxNumberOfConflicts_);
5172  }
5173  if (((bitField1_ & 0x00000100) != 0)) {
5174  output.writeInt64(40, maxMemoryInMb_);
5175  }
5176  if (((bitField1_ & 0x00000800) != 0)) {
5177  output.writeBool(41, logSearchProgress_);
5178  }
5179  if (((bitField1_ & 0x00001000) != 0)) {
5180  output.writeBool(43, usePbResolution_);
5181  }
5182  if (((bitField0_ & 0x00000004) != 0)) {
5183  output.writeBool(44, usePhaseSaving_);
5184  }
5185  if (((bitField0_ & 0x00000008) != 0)) {
5186  output.writeDouble(45, randomPolarityRatio_);
5187  }
5188  if (((bitField0_ & 0x00010000) != 0)) {
5189  output.writeInt32(46, pbCleanupIncrement_);
5190  }
5191  if (((bitField0_ & 0x00020000) != 0)) {
5192  output.writeDouble(47, pbCleanupRatio_);
5193  }
5194  if (((bitField1_ & 0x00002000) != 0)) {
5195  output.writeBool(48, minimizeReductionDuringPbResolution_);
5196  }
5197  if (((bitField1_ & 0x00004000) != 0)) {
5198  output.writeBool(49, countAssumptionLevelsInLbd_);
5199  }
5200  if (((bitField1_ & 0x00400000) != 0)) {
5201  output.writeBool(50, minimizeCore_);
5202  }
5203  if (((bitField1_ & 0x02000000) != 0)) {
5204  output.writeEnum(51, maxSatAssumptionOrder_);
5205  }
5206  if (((bitField1_ & 0x04000000) != 0)) {
5207  output.writeBool(52, maxSatReverseAssumptionOrder_);
5208  }
5209  if (((bitField1_ & 0x08000000) != 0)) {
5210  output.writeEnum(53, maxSatStratification_);
5211  }
5212  if (((bitField1_ & 0x00008000) != 0)) {
5213  output.writeInt32(54, presolveBveThreshold_);
5214  }
5215  if (((bitField1_ & 0x00010000) != 0)) {
5216  output.writeInt32(55, presolveBveClauseWeight_);
5217  }
5218  if (((bitField0_ & 0x00000400) != 0)) {
5219  output.writeBool(56, subsumptionDuringConflictAnalysis_);
5220  }
5221  if (((bitField1_ & 0x00020000) != 0)) {
5222  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
5223  }
5224  if (((bitField0_ & 0x00002000) != 0)) {
5225  output.writeEnum(58, clauseCleanupProtection_);
5226  }
5227  if (((bitField0_ & 0x00004000) != 0)) {
5228  output.writeInt32(59, clauseCleanupLbdBound_);
5229  }
5230  if (((bitField0_ & 0x00008000) != 0)) {
5231  output.writeEnum(60, clauseCleanupOrdering_);
5232  }
5233  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5234  output.writeEnum(61, restartAlgorithms_.get(i));
5235  }
5236  if (((bitField0_ & 0x20000000) != 0)) {
5237  output.writeInt32(62, restartRunningWindowSize_);
5238  }
5239  if (((bitField0_ & 0x40000000) != 0)) {
5240  output.writeDouble(63, restartDlAverageRatio_);
5241  }
5242  if (((bitField1_ & 0x00000001) != 0)) {
5243  output.writeBool(64, useBlockingRestart_);
5244  }
5245  if (((bitField1_ & 0x00000002) != 0)) {
5246  output.writeInt32(65, blockingRestartWindowSize_);
5247  }
5248  if (((bitField1_ & 0x00000004) != 0)) {
5249  output.writeDouble(66, blockingRestartMultiplier_);
5250  }
5251  if (((bitField1_ & 0x00000040) != 0)) {
5252  output.writeDouble(67, maxDeterministicTime_);
5253  }
5254  if (((bitField1_ & 0x00000008) != 0)) {
5255  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
5256  }
5257  if (((bitField1_ & 0x00000010) != 0)) {
5258  output.writeDouble(69, strategyChangeIncreaseRatio_);
5259  }
5260  if (((bitField0_ & 0x08000000) != 0)) {
5261  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
5262  }
5263  if (((bitField0_ & 0x80000000) != 0)) {
5264  output.writeDouble(71, restartLbdAverageRatio_);
5265  }
5266  if (((bitField1_ & 0x00080000) != 0)) {
5267  output.writeBool(72, presolveUseBva_);
5268  }
5269  if (((bitField1_ & 0x00100000) != 0)) {
5270  output.writeInt32(73, presolveBvaThreshold_);
5271  }
5272  if (((bitField1_ & 0x10000000) != 0)) {
5273  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
5274  }
5275  if (((bitField0_ & 0x00000020) != 0)) {
5276  output.writeBool(75, useErwaHeuristic_);
5277  }
5278  if (((bitField0_ & 0x00000040) != 0)) {
5279  output.writeDouble(76, initialVariablesActivity_);
5280  }
5281  if (((bitField0_ & 0x00000080) != 0)) {
5282  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
5283  }
5284  if (((bitField1_ & 0x20000000) != 0)) {
5285  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
5286  }
5287  if (((bitField1_ & 0x40000000) != 0)) {
5288  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
5289  }
5290  if (((bitField1_ & 0x80000000) != 0)) {
5291  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
5292  }
5293  if (((bitField2_ & 0x00002000) != 0)) {
5294  output.writeEnum(82, searchBranching_);
5295  }
5296  if (((bitField2_ & 0x00080000) != 0)) {
5297  output.writeBool(83, optimizeWithCore_);
5298  }
5299  if (((bitField1_ & 0x00800000) != 0)) {
5300  output.writeBool(84, findMultipleCores_);
5301  }
5302  if (((bitField2_ & 0x00200000) != 0)) {
5303  output.writeBool(85, optimizeWithMaxHs_);
5304  }
5305  if (((bitField2_ & 0x00400000) != 0)) {
5306  output.writeBool(86, cpModelPresolve_);
5307  }
5308  if (((bitField2_ & 0x02000000) != 0)) {
5309  output.writeBool(87, enumerateAllSolutions_);
5310  }
5311  if (((bitField1_ & 0x00040000) != 0)) {
5312  output.writeBool(88, presolveBlockedClause_);
5313  }
5314  if (((bitField1_ & 0x01000000) != 0)) {
5315  output.writeBool(89, coverOptimization_);
5316  }
5317  if (((bitField2_ & 0x00000001) != 0)) {
5318  output.writeInt32(90, linearizationLevel_);
5319  }
5320  if (((bitField2_ & 0x00000004) != 0)) {
5321  output.writeInt32(91, maxNumCuts_);
5322  }
5323  if (((bitField2_ & 0x00000008) != 0)) {
5324  output.writeBool(92, onlyAddCutsAtLevelZero_);
5325  }
5326  if (((bitField2_ & 0x01000000) != 0)) {
5327  output.writeBool(93, cpModelUseSatPresolve_);
5328  }
5329  if (((bitField2_ & 0x00004000) != 0)) {
5330  output.writeBool(94, exploitIntegerLpSolution_);
5331  }
5332  if (((bitField2_ & 0x10000000) != 0)) {
5333  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
5334  }
5335  if (((bitField0_ & 0x00040000) != 0)) {
5336  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
5337  }
5338  if (((bitField0_ & 0x00080000) != 0)) {
5339  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
5340  }
5341  if (((bitField2_ & 0x20000000) != 0)) {
5342  output.writeBool(98, stopAfterFirstSolution_);
5343  }
5344  if (((bitField2_ & 0x00100000) != 0)) {
5345  output.writeInt32(99, binarySearchNumConflicts_);
5346  }
5347  if (((bitField2_ & 0x40000000) != 0)) {
5348  output.writeInt32(100, numSearchWorkers_);
5349  }
5350  if (((bitField3_ & 0x00000002) != 0)) {
5351  output.writeBool(101, useLns_);
5352  }
5353  if (((bitField3_ & 0x00000004) != 0)) {
5354  output.writeInt32(102, lnsNumThreads_);
5355  }
5356  if (((bitField3_ & 0x00000040) != 0)) {
5357  output.writeBool(103, randomizeSearch_);
5358  }
5359  if (((bitField3_ & 0x00000080) != 0)) {
5360  output.writeInt64(104, searchRandomizationTolerance_);
5361  }
5362  if (((bitField3_ & 0x00000010) != 0)) {
5363  output.writeBool(105, lnsFocusOnDecisionVariables_);
5364  }
5365  if (((bitField2_ & 0x08000000) != 0)) {
5366  output.writeBool(106, instantiateAllVariables_);
5367  }
5368  if (((bitField2_ & 0x00000002) != 0)) {
5369  output.writeInt32(107, booleanEncodingLevel_);
5370  }
5371  if (((bitField3_ & 0x00000100) != 0)) {
5372  output.writeBool(108, useOptionalVariables_);
5373  }
5374  if (((bitField3_ & 0x00000200) != 0)) {
5375  output.writeBool(109, useExactLpReason_);
5376  }
5377  if (((bitField2_ & 0x00800000) != 0)) {
5378  output.writeInt32(110, cpModelProbingLevel_);
5379  }
5380  if (((bitField2_ & 0x00000010) != 0)) {
5381  output.writeBool(111, addKnapsackCuts_);
5382  }
5383  if (((bitField2_ & 0x00000200) != 0)) {
5384  output.writeBool(112, addLpConstraintsLazily_);
5385  }
5386  if (((bitField2_ & 0x80000000) != 0)) {
5387  output.writeBool(113, shareObjectiveBounds_);
5388  }
5389  if (((bitField3_ & 0x00000001) != 0)) {
5390  output.writeBool(114, shareLevelZeroBounds_);
5391  }
5392  if (((bitField2_ & 0x00000400) != 0)) {
5393  output.writeDouble(115, minOrthogonalityForLpConstraints_);
5394  }
5395  if (((bitField2_ & 0x00008000) != 0)) {
5396  output.writeBool(116, exploitAllLpSolution_);
5397  }
5398  if (((bitField2_ & 0x00000020) != 0)) {
5399  output.writeBool(117, addCgCuts_);
5400  }
5401  if (((bitField2_ & 0x00000080) != 0)) {
5402  output.writeBool(118, useMirRounding_);
5403  }
5404  if (((bitField2_ & 0x00000100) != 0)) {
5405  output.writeInt32(119, maxIntegerRoundingScaling_);
5406  }
5407  if (((bitField2_ & 0x00000040) != 0)) {
5408  output.writeBool(120, addMirCuts_);
5409  }
5410  if (((bitField2_ & 0x00000800) != 0)) {
5411  output.writeInt64(121, maxInactiveCount_);
5412  }
5413  if (((bitField2_ & 0x00001000) != 0)) {
5414  output.writeInt64(122, constraintRemovalBatchSize_);
5415  }
5416  if (((bitField2_ & 0x00040000) != 0)) {
5417  output.writeInt64(123, pseudoCostReliabilityThreshold_);
5418  }
5419  if (((bitField3_ & 0x00000800) != 0)) {
5420  output.writeDouble(124, mipMaxBound_);
5421  }
5422  if (((bitField3_ & 0x00001000) != 0)) {
5423  output.writeDouble(125, mipVarScaling_);
5424  }
5425  if (((bitField3_ & 0x00002000) != 0)) {
5426  output.writeDouble(126, mipWantedPrecision_);
5427  }
5428  if (((bitField3_ & 0x00004000) != 0)) {
5429  output.writeInt32(127, mipMaxActivityExponent_);
5430  }
5431  if (((bitField3_ & 0x00008000) != 0)) {
5432  output.writeDouble(128, mipCheckPrecision_);
5433  }
5434  if (((bitField3_ & 0x00000020) != 0)) {
5435  output.writeBool(129, useRinsLns_);
5436  }
5437  if (((bitField2_ & 0x00010000) != 0)) {
5438  output.writeBool(130, exploitBestSolution_);
5439  }
5440  if (((bitField2_ & 0x00020000) != 0)) {
5441  output.writeBool(131, exploitObjective_);
5442  }
5443  if (((bitField2_ & 0x04000000) != 0)) {
5444  output.writeBool(132, fillTightenedDomainsInResponse_);
5445  }
5446  if (((bitField3_ & 0x00000400) != 0)) {
5447  output.writeBool(133, useCombinedNoOverlap_);
5448  }
5449  if (((bitField3_ & 0x00000008) != 0)) {
5450  output.writeBool(134, lnsIsDeterministic_);
5451  }
5452  unknownFields.writeTo(output);
5453  }
5454 
5455  @java.lang.Override
5456  public int getSerializedSize() {
5457  int size = memoizedSize;
5458  if (size != -1) return size;
5459 
5460  size = 0;
5461  if (((bitField0_ & 0x00000001) != 0)) {
5462  size += com.google.protobuf.CodedOutputStream
5463  .computeEnumSize(1, preferredVariableOrder_);
5464  }
5465  if (((bitField0_ & 0x00000002) != 0)) {
5466  size += com.google.protobuf.CodedOutputStream
5467  .computeEnumSize(2, initialPolarity_);
5468  }
5469  if (((bitField0_ & 0x00000100) != 0)) {
5470  size += com.google.protobuf.CodedOutputStream
5471  .computeEnumSize(4, minimizationAlgorithm_);
5472  }
5473  if (((bitField0_ & 0x00000800) != 0)) {
5474  size += com.google.protobuf.CodedOutputStream
5475  .computeInt32Size(11, clauseCleanupPeriod_);
5476  }
5477  if (((bitField0_ & 0x00001000) != 0)) {
5478  size += com.google.protobuf.CodedOutputStream
5479  .computeInt32Size(13, clauseCleanupTarget_);
5480  }
5481  if (((bitField0_ & 0x00100000) != 0)) {
5482  size += com.google.protobuf.CodedOutputStream
5483  .computeDoubleSize(15, variableActivityDecay_);
5484  }
5485  if (((bitField0_ & 0x00200000) != 0)) {
5486  size += com.google.protobuf.CodedOutputStream
5487  .computeDoubleSize(16, maxVariableActivityValue_);
5488  }
5489  if (((bitField0_ & 0x02000000) != 0)) {
5490  size += com.google.protobuf.CodedOutputStream
5491  .computeDoubleSize(17, clauseActivityDecay_);
5492  }
5493  if (((bitField0_ & 0x04000000) != 0)) {
5494  size += com.google.protobuf.CodedOutputStream
5495  .computeDoubleSize(18, maxClauseActivityValue_);
5496  }
5497  if (((bitField0_ & 0x00400000) != 0)) {
5498  size += com.google.protobuf.CodedOutputStream
5499  .computeDoubleSize(22, glucoseMaxDecay_);
5500  }
5501  if (((bitField0_ & 0x00800000) != 0)) {
5502  size += com.google.protobuf.CodedOutputStream
5503  .computeDoubleSize(23, glucoseDecayIncrement_);
5504  }
5505  if (((bitField0_ & 0x01000000) != 0)) {
5506  size += com.google.protobuf.CodedOutputStream
5507  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
5508  }
5509  if (((bitField0_ & 0x10000000) != 0)) {
5510  size += com.google.protobuf.CodedOutputStream
5511  .computeInt32Size(30, restartPeriod_);
5512  }
5513  if (((bitField1_ & 0x00000400) != 0)) {
5514  size += com.google.protobuf.CodedOutputStream
5515  .computeInt32Size(31, randomSeed_);
5516  }
5517  if (((bitField0_ & 0x00000010) != 0)) {
5518  size += com.google.protobuf.CodedOutputStream
5519  .computeDoubleSize(32, randomBranchesRatio_);
5520  }
5521  if (((bitField1_ & 0x00000200) != 0)) {
5522  size += com.google.protobuf.CodedOutputStream
5523  .computeBoolSize(33, treatBinaryClausesSeparately_);
5524  }
5525  if (((bitField0_ & 0x00000200) != 0)) {
5526  size += com.google.protobuf.CodedOutputStream
5527  .computeEnumSize(34, binaryMinimizationAlgorithm_);
5528  }
5529  if (((bitField1_ & 0x00200000) != 0)) {
5530  size += com.google.protobuf.CodedOutputStream
5531  .computeBoolSize(35, useOptimizationHints_);
5532  }
5533  if (((bitField1_ & 0x00000020) != 0)) {
5534  size += com.google.protobuf.CodedOutputStream
5535  .computeDoubleSize(36, maxTimeInSeconds_);
5536  }
5537  if (((bitField1_ & 0x00000080) != 0)) {
5538  size += com.google.protobuf.CodedOutputStream
5539  .computeInt64Size(37, maxNumberOfConflicts_);
5540  }
5541  if (((bitField1_ & 0x00000100) != 0)) {
5542  size += com.google.protobuf.CodedOutputStream
5543  .computeInt64Size(40, maxMemoryInMb_);
5544  }
5545  if (((bitField1_ & 0x00000800) != 0)) {
5546  size += com.google.protobuf.CodedOutputStream
5547  .computeBoolSize(41, logSearchProgress_);
5548  }
5549  if (((bitField1_ & 0x00001000) != 0)) {
5550  size += com.google.protobuf.CodedOutputStream
5551  .computeBoolSize(43, usePbResolution_);
5552  }
5553  if (((bitField0_ & 0x00000004) != 0)) {
5554  size += com.google.protobuf.CodedOutputStream
5555  .computeBoolSize(44, usePhaseSaving_);
5556  }
5557  if (((bitField0_ & 0x00000008) != 0)) {
5558  size += com.google.protobuf.CodedOutputStream
5559  .computeDoubleSize(45, randomPolarityRatio_);
5560  }
5561  if (((bitField0_ & 0x00010000) != 0)) {
5562  size += com.google.protobuf.CodedOutputStream
5563  .computeInt32Size(46, pbCleanupIncrement_);
5564  }
5565  if (((bitField0_ & 0x00020000) != 0)) {
5566  size += com.google.protobuf.CodedOutputStream
5567  .computeDoubleSize(47, pbCleanupRatio_);
5568  }
5569  if (((bitField1_ & 0x00002000) != 0)) {
5570  size += com.google.protobuf.CodedOutputStream
5571  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
5572  }
5573  if (((bitField1_ & 0x00004000) != 0)) {
5574  size += com.google.protobuf.CodedOutputStream
5575  .computeBoolSize(49, countAssumptionLevelsInLbd_);
5576  }
5577  if (((bitField1_ & 0x00400000) != 0)) {
5578  size += com.google.protobuf.CodedOutputStream
5579  .computeBoolSize(50, minimizeCore_);
5580  }
5581  if (((bitField1_ & 0x02000000) != 0)) {
5582  size += com.google.protobuf.CodedOutputStream
5583  .computeEnumSize(51, maxSatAssumptionOrder_);
5584  }
5585  if (((bitField1_ & 0x04000000) != 0)) {
5586  size += com.google.protobuf.CodedOutputStream
5587  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
5588  }
5589  if (((bitField1_ & 0x08000000) != 0)) {
5590  size += com.google.protobuf.CodedOutputStream
5591  .computeEnumSize(53, maxSatStratification_);
5592  }
5593  if (((bitField1_ & 0x00008000) != 0)) {
5594  size += com.google.protobuf.CodedOutputStream
5595  .computeInt32Size(54, presolveBveThreshold_);
5596  }
5597  if (((bitField1_ & 0x00010000) != 0)) {
5598  size += com.google.protobuf.CodedOutputStream
5599  .computeInt32Size(55, presolveBveClauseWeight_);
5600  }
5601  if (((bitField0_ & 0x00000400) != 0)) {
5602  size += com.google.protobuf.CodedOutputStream
5603  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
5604  }
5605  if (((bitField1_ & 0x00020000) != 0)) {
5606  size += com.google.protobuf.CodedOutputStream
5607  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
5608  }
5609  if (((bitField0_ & 0x00002000) != 0)) {
5610  size += com.google.protobuf.CodedOutputStream
5611  .computeEnumSize(58, clauseCleanupProtection_);
5612  }
5613  if (((bitField0_ & 0x00004000) != 0)) {
5614  size += com.google.protobuf.CodedOutputStream
5615  .computeInt32Size(59, clauseCleanupLbdBound_);
5616  }
5617  if (((bitField0_ & 0x00008000) != 0)) {
5618  size += com.google.protobuf.CodedOutputStream
5619  .computeEnumSize(60, clauseCleanupOrdering_);
5620  }
5621  {
5622  int dataSize = 0;
5623  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5624  dataSize += com.google.protobuf.CodedOutputStream
5625  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
5626  }
5627  size += dataSize;
5628  size += 2 * restartAlgorithms_.size();
5629  }
5630  if (((bitField0_ & 0x20000000) != 0)) {
5631  size += com.google.protobuf.CodedOutputStream
5632  .computeInt32Size(62, restartRunningWindowSize_);
5633  }
5634  if (((bitField0_ & 0x40000000) != 0)) {
5635  size += com.google.protobuf.CodedOutputStream
5636  .computeDoubleSize(63, restartDlAverageRatio_);
5637  }
5638  if (((bitField1_ & 0x00000001) != 0)) {
5639  size += com.google.protobuf.CodedOutputStream
5640  .computeBoolSize(64, useBlockingRestart_);
5641  }
5642  if (((bitField1_ & 0x00000002) != 0)) {
5643  size += com.google.protobuf.CodedOutputStream
5644  .computeInt32Size(65, blockingRestartWindowSize_);
5645  }
5646  if (((bitField1_ & 0x00000004) != 0)) {
5647  size += com.google.protobuf.CodedOutputStream
5648  .computeDoubleSize(66, blockingRestartMultiplier_);
5649  }
5650  if (((bitField1_ & 0x00000040) != 0)) {
5651  size += com.google.protobuf.CodedOutputStream
5652  .computeDoubleSize(67, maxDeterministicTime_);
5653  }
5654  if (((bitField1_ & 0x00000008) != 0)) {
5655  size += com.google.protobuf.CodedOutputStream
5656  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
5657  }
5658  if (((bitField1_ & 0x00000010) != 0)) {
5659  size += com.google.protobuf.CodedOutputStream
5660  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
5661  }
5662  if (((bitField0_ & 0x08000000) != 0)) {
5663  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
5664  }
5665  if (((bitField0_ & 0x80000000) != 0)) {
5666  size += com.google.protobuf.CodedOutputStream
5667  .computeDoubleSize(71, restartLbdAverageRatio_);
5668  }
5669  if (((bitField1_ & 0x00080000) != 0)) {
5670  size += com.google.protobuf.CodedOutputStream
5671  .computeBoolSize(72, presolveUseBva_);
5672  }
5673  if (((bitField1_ & 0x00100000) != 0)) {
5674  size += com.google.protobuf.CodedOutputStream
5675  .computeInt32Size(73, presolveBvaThreshold_);
5676  }
5677  if (((bitField1_ & 0x10000000) != 0)) {
5678  size += com.google.protobuf.CodedOutputStream
5679  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
5680  }
5681  if (((bitField0_ & 0x00000020) != 0)) {
5682  size += com.google.protobuf.CodedOutputStream
5683  .computeBoolSize(75, useErwaHeuristic_);
5684  }
5685  if (((bitField0_ & 0x00000040) != 0)) {
5686  size += com.google.protobuf.CodedOutputStream
5687  .computeDoubleSize(76, initialVariablesActivity_);
5688  }
5689  if (((bitField0_ & 0x00000080) != 0)) {
5690  size += com.google.protobuf.CodedOutputStream
5691  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
5692  }
5693  if (((bitField1_ & 0x20000000) != 0)) {
5694  size += com.google.protobuf.CodedOutputStream
5695  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
5696  }
5697  if (((bitField1_ & 0x40000000) != 0)) {
5698  size += com.google.protobuf.CodedOutputStream
5699  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
5700  }
5701  if (((bitField1_ & 0x80000000) != 0)) {
5702  size += com.google.protobuf.CodedOutputStream
5703  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
5704  }
5705  if (((bitField2_ & 0x00002000) != 0)) {
5706  size += com.google.protobuf.CodedOutputStream
5707  .computeEnumSize(82, searchBranching_);
5708  }
5709  if (((bitField2_ & 0x00080000) != 0)) {
5710  size += com.google.protobuf.CodedOutputStream
5711  .computeBoolSize(83, optimizeWithCore_);
5712  }
5713  if (((bitField1_ & 0x00800000) != 0)) {
5714  size += com.google.protobuf.CodedOutputStream
5715  .computeBoolSize(84, findMultipleCores_);
5716  }
5717  if (((bitField2_ & 0x00200000) != 0)) {
5718  size += com.google.protobuf.CodedOutputStream
5719  .computeBoolSize(85, optimizeWithMaxHs_);
5720  }
5721  if (((bitField2_ & 0x00400000) != 0)) {
5722  size += com.google.protobuf.CodedOutputStream
5723  .computeBoolSize(86, cpModelPresolve_);
5724  }
5725  if (((bitField2_ & 0x02000000) != 0)) {
5726  size += com.google.protobuf.CodedOutputStream
5727  .computeBoolSize(87, enumerateAllSolutions_);
5728  }
5729  if (((bitField1_ & 0x00040000) != 0)) {
5730  size += com.google.protobuf.CodedOutputStream
5731  .computeBoolSize(88, presolveBlockedClause_);
5732  }
5733  if (((bitField1_ & 0x01000000) != 0)) {
5734  size += com.google.protobuf.CodedOutputStream
5735  .computeBoolSize(89, coverOptimization_);
5736  }
5737  if (((bitField2_ & 0x00000001) != 0)) {
5738  size += com.google.protobuf.CodedOutputStream
5739  .computeInt32Size(90, linearizationLevel_);
5740  }
5741  if (((bitField2_ & 0x00000004) != 0)) {
5742  size += com.google.protobuf.CodedOutputStream
5743  .computeInt32Size(91, maxNumCuts_);
5744  }
5745  if (((bitField2_ & 0x00000008) != 0)) {
5746  size += com.google.protobuf.CodedOutputStream
5747  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
5748  }
5749  if (((bitField2_ & 0x01000000) != 0)) {
5750  size += com.google.protobuf.CodedOutputStream
5751  .computeBoolSize(93, cpModelUseSatPresolve_);
5752  }
5753  if (((bitField2_ & 0x00004000) != 0)) {
5754  size += com.google.protobuf.CodedOutputStream
5755  .computeBoolSize(94, exploitIntegerLpSolution_);
5756  }
5757  if (((bitField2_ & 0x10000000) != 0)) {
5758  size += com.google.protobuf.CodedOutputStream
5759  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
5760  }
5761  if (((bitField0_ & 0x00040000) != 0)) {
5762  size += com.google.protobuf.CodedOutputStream
5763  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
5764  }
5765  if (((bitField0_ & 0x00080000) != 0)) {
5766  size += com.google.protobuf.CodedOutputStream
5767  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
5768  }
5769  if (((bitField2_ & 0x20000000) != 0)) {
5770  size += com.google.protobuf.CodedOutputStream
5771  .computeBoolSize(98, stopAfterFirstSolution_);
5772  }
5773  if (((bitField2_ & 0x00100000) != 0)) {
5774  size += com.google.protobuf.CodedOutputStream
5775  .computeInt32Size(99, binarySearchNumConflicts_);
5776  }
5777  if (((bitField2_ & 0x40000000) != 0)) {
5778  size += com.google.protobuf.CodedOutputStream
5779  .computeInt32Size(100, numSearchWorkers_);
5780  }
5781  if (((bitField3_ & 0x00000002) != 0)) {
5782  size += com.google.protobuf.CodedOutputStream
5783  .computeBoolSize(101, useLns_);
5784  }
5785  if (((bitField3_ & 0x00000004) != 0)) {
5786  size += com.google.protobuf.CodedOutputStream
5787  .computeInt32Size(102, lnsNumThreads_);
5788  }
5789  if (((bitField3_ & 0x00000040) != 0)) {
5790  size += com.google.protobuf.CodedOutputStream
5791  .computeBoolSize(103, randomizeSearch_);
5792  }
5793  if (((bitField3_ & 0x00000080) != 0)) {
5794  size += com.google.protobuf.CodedOutputStream
5795  .computeInt64Size(104, searchRandomizationTolerance_);
5796  }
5797  if (((bitField3_ & 0x00000010) != 0)) {
5798  size += com.google.protobuf.CodedOutputStream
5799  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
5800  }
5801  if (((bitField2_ & 0x08000000) != 0)) {
5802  size += com.google.protobuf.CodedOutputStream
5803  .computeBoolSize(106, instantiateAllVariables_);
5804  }
5805  if (((bitField2_ & 0x00000002) != 0)) {
5806  size += com.google.protobuf.CodedOutputStream
5807  .computeInt32Size(107, booleanEncodingLevel_);
5808  }
5809  if (((bitField3_ & 0x00000100) != 0)) {
5810  size += com.google.protobuf.CodedOutputStream
5811  .computeBoolSize(108, useOptionalVariables_);
5812  }
5813  if (((bitField3_ & 0x00000200) != 0)) {
5814  size += com.google.protobuf.CodedOutputStream
5815  .computeBoolSize(109, useExactLpReason_);
5816  }
5817  if (((bitField2_ & 0x00800000) != 0)) {
5818  size += com.google.protobuf.CodedOutputStream
5819  .computeInt32Size(110, cpModelProbingLevel_);
5820  }
5821  if (((bitField2_ & 0x00000010) != 0)) {
5822  size += com.google.protobuf.CodedOutputStream
5823  .computeBoolSize(111, addKnapsackCuts_);
5824  }
5825  if (((bitField2_ & 0x00000200) != 0)) {
5826  size += com.google.protobuf.CodedOutputStream
5827  .computeBoolSize(112, addLpConstraintsLazily_);
5828  }
5829  if (((bitField2_ & 0x80000000) != 0)) {
5830  size += com.google.protobuf.CodedOutputStream
5831  .computeBoolSize(113, shareObjectiveBounds_);
5832  }
5833  if (((bitField3_ & 0x00000001) != 0)) {
5834  size += com.google.protobuf.CodedOutputStream
5835  .computeBoolSize(114, shareLevelZeroBounds_);
5836  }
5837  if (((bitField2_ & 0x00000400) != 0)) {
5838  size += com.google.protobuf.CodedOutputStream
5839  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
5840  }
5841  if (((bitField2_ & 0x00008000) != 0)) {
5842  size += com.google.protobuf.CodedOutputStream
5843  .computeBoolSize(116, exploitAllLpSolution_);
5844  }
5845  if (((bitField2_ & 0x00000020) != 0)) {
5846  size += com.google.protobuf.CodedOutputStream
5847  .computeBoolSize(117, addCgCuts_);
5848  }
5849  if (((bitField2_ & 0x00000080) != 0)) {
5850  size += com.google.protobuf.CodedOutputStream
5851  .computeBoolSize(118, useMirRounding_);
5852  }
5853  if (((bitField2_ & 0x00000100) != 0)) {
5854  size += com.google.protobuf.CodedOutputStream
5855  .computeInt32Size(119, maxIntegerRoundingScaling_);
5856  }
5857  if (((bitField2_ & 0x00000040) != 0)) {
5858  size += com.google.protobuf.CodedOutputStream
5859  .computeBoolSize(120, addMirCuts_);
5860  }
5861  if (((bitField2_ & 0x00000800) != 0)) {
5862  size += com.google.protobuf.CodedOutputStream
5863  .computeInt64Size(121, maxInactiveCount_);
5864  }
5865  if (((bitField2_ & 0x00001000) != 0)) {
5866  size += com.google.protobuf.CodedOutputStream
5867  .computeInt64Size(122, constraintRemovalBatchSize_);
5868  }
5869  if (((bitField2_ & 0x00040000) != 0)) {
5870  size += com.google.protobuf.CodedOutputStream
5871  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
5872  }
5873  if (((bitField3_ & 0x00000800) != 0)) {
5874  size += com.google.protobuf.CodedOutputStream
5875  .computeDoubleSize(124, mipMaxBound_);
5876  }
5877  if (((bitField3_ & 0x00001000) != 0)) {
5878  size += com.google.protobuf.CodedOutputStream
5879  .computeDoubleSize(125, mipVarScaling_);
5880  }
5881  if (((bitField3_ & 0x00002000) != 0)) {
5882  size += com.google.protobuf.CodedOutputStream
5883  .computeDoubleSize(126, mipWantedPrecision_);
5884  }
5885  if (((bitField3_ & 0x00004000) != 0)) {
5886  size += com.google.protobuf.CodedOutputStream
5887  .computeInt32Size(127, mipMaxActivityExponent_);
5888  }
5889  if (((bitField3_ & 0x00008000) != 0)) {
5890  size += com.google.protobuf.CodedOutputStream
5891  .computeDoubleSize(128, mipCheckPrecision_);
5892  }
5893  if (((bitField3_ & 0x00000020) != 0)) {
5894  size += com.google.protobuf.CodedOutputStream
5895  .computeBoolSize(129, useRinsLns_);
5896  }
5897  if (((bitField2_ & 0x00010000) != 0)) {
5898  size += com.google.protobuf.CodedOutputStream
5899  .computeBoolSize(130, exploitBestSolution_);
5900  }
5901  if (((bitField2_ & 0x00020000) != 0)) {
5902  size += com.google.protobuf.CodedOutputStream
5903  .computeBoolSize(131, exploitObjective_);
5904  }
5905  if (((bitField2_ & 0x04000000) != 0)) {
5906  size += com.google.protobuf.CodedOutputStream
5907  .computeBoolSize(132, fillTightenedDomainsInResponse_);
5908  }
5909  if (((bitField3_ & 0x00000400) != 0)) {
5910  size += com.google.protobuf.CodedOutputStream
5911  .computeBoolSize(133, useCombinedNoOverlap_);
5912  }
5913  if (((bitField3_ & 0x00000008) != 0)) {
5914  size += com.google.protobuf.CodedOutputStream
5915  .computeBoolSize(134, lnsIsDeterministic_);
5916  }
5917  size += unknownFields.getSerializedSize();
5918  memoizedSize = size;
5919  return size;
5920  }
5921 
5922  @java.lang.Override
5923  public boolean equals(final java.lang.Object obj) {
5924  if (obj == this) {
5925  return true;
5926  }
5927  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
5928  return super.equals(obj);
5929  }
5931 
5932  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
5933  if (hasPreferredVariableOrder()) {
5934  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
5935  }
5936  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
5937  if (hasInitialPolarity()) {
5938  if (initialPolarity_ != other.initialPolarity_) return false;
5939  }
5940  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
5941  if (hasUsePhaseSaving()) {
5942  if (getUsePhaseSaving()
5943  != other.getUsePhaseSaving()) return false;
5944  }
5945  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
5946  if (hasRandomPolarityRatio()) {
5947  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
5948  != java.lang.Double.doubleToLongBits(
5949  other.getRandomPolarityRatio())) return false;
5950  }
5951  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
5952  if (hasRandomBranchesRatio()) {
5953  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
5954  != java.lang.Double.doubleToLongBits(
5955  other.getRandomBranchesRatio())) return false;
5956  }
5957  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
5958  if (hasUseErwaHeuristic()) {
5959  if (getUseErwaHeuristic()
5960  != other.getUseErwaHeuristic()) return false;
5961  }
5962  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
5964  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
5965  != java.lang.Double.doubleToLongBits(
5966  other.getInitialVariablesActivity())) return false;
5967  }
5968  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
5971  != other.getAlsoBumpVariablesInConflictReasons()) return false;
5972  }
5973  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
5974  if (hasMinimizationAlgorithm()) {
5975  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
5976  }
5977  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
5979  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
5980  }
5981  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
5984  != other.getSubsumptionDuringConflictAnalysis()) return false;
5985  }
5986  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
5987  if (hasClauseCleanupPeriod()) {
5989  != other.getClauseCleanupPeriod()) return false;
5990  }
5991  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
5992  if (hasClauseCleanupTarget()) {
5994  != other.getClauseCleanupTarget()) return false;
5995  }
5996  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
5998  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
5999  }
6000  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
6001  if (hasClauseCleanupLbdBound()) {
6003  != other.getClauseCleanupLbdBound()) return false;
6004  }
6005  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
6006  if (hasClauseCleanupOrdering()) {
6007  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
6008  }
6009  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
6010  if (hasPbCleanupIncrement()) {
6011  if (getPbCleanupIncrement()
6012  != other.getPbCleanupIncrement()) return false;
6013  }
6014  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
6015  if (hasPbCleanupRatio()) {
6016  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
6017  != java.lang.Double.doubleToLongBits(
6018  other.getPbCleanupRatio())) return false;
6019  }
6020  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
6023  != other.getMinimizeWithPropagationRestartPeriod()) return false;
6024  }
6025  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
6028  != other.getMinimizeWithPropagationNumDecisions()) return false;
6029  }
6030  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
6031  if (hasVariableActivityDecay()) {
6032  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
6033  != java.lang.Double.doubleToLongBits(
6034  other.getVariableActivityDecay())) return false;
6035  }
6036  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6038  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6039  != java.lang.Double.doubleToLongBits(
6040  other.getMaxVariableActivityValue())) return false;
6041  }
6042  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6043  if (hasGlucoseMaxDecay()) {
6044  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6045  != java.lang.Double.doubleToLongBits(
6046  other.getGlucoseMaxDecay())) return false;
6047  }
6048  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
6049  if (hasGlucoseDecayIncrement()) {
6050  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
6051  != java.lang.Double.doubleToLongBits(
6052  other.getGlucoseDecayIncrement())) return false;
6053  }
6054  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
6057  != other.getGlucoseDecayIncrementPeriod()) return false;
6058  }
6059  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
6060  if (hasClauseActivityDecay()) {
6061  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
6062  != java.lang.Double.doubleToLongBits(
6063  other.getClauseActivityDecay())) return false;
6064  }
6065  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
6066  if (hasMaxClauseActivityValue()) {
6067  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
6068  != java.lang.Double.doubleToLongBits(
6069  other.getMaxClauseActivityValue())) return false;
6070  }
6071  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
6072  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
6075  .equals(other.getDefaultRestartAlgorithms())) return false;
6076  }
6077  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
6078  if (hasRestartPeriod()) {
6079  if (getRestartPeriod()
6080  != other.getRestartPeriod()) return false;
6081  }
6082  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
6085  != other.getRestartRunningWindowSize()) return false;
6086  }
6087  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
6088  if (hasRestartDlAverageRatio()) {
6089  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
6090  != java.lang.Double.doubleToLongBits(
6091  other.getRestartDlAverageRatio())) return false;
6092  }
6093  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
6094  if (hasRestartLbdAverageRatio()) {
6095  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
6096  != java.lang.Double.doubleToLongBits(
6097  other.getRestartLbdAverageRatio())) return false;
6098  }
6099  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
6100  if (hasUseBlockingRestart()) {
6101  if (getUseBlockingRestart()
6102  != other.getUseBlockingRestart()) return false;
6103  }
6104  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
6107  != other.getBlockingRestartWindowSize()) return false;
6108  }
6109  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
6111  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
6112  != java.lang.Double.doubleToLongBits(
6113  other.getBlockingRestartMultiplier())) return false;
6114  }
6115  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
6118  != other.getNumConflictsBeforeStrategyChanges()) return false;
6119  }
6120  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
6122  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
6123  != java.lang.Double.doubleToLongBits(
6124  other.getStrategyChangeIncreaseRatio())) return false;
6125  }
6126  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
6127  if (hasMaxTimeInSeconds()) {
6128  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
6129  != java.lang.Double.doubleToLongBits(
6130  other.getMaxTimeInSeconds())) return false;
6131  }
6132  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
6133  if (hasMaxDeterministicTime()) {
6134  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
6135  != java.lang.Double.doubleToLongBits(
6136  other.getMaxDeterministicTime())) return false;
6137  }
6138  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
6139  if (hasMaxNumberOfConflicts()) {
6141  != other.getMaxNumberOfConflicts()) return false;
6142  }
6143  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
6144  if (hasMaxMemoryInMb()) {
6145  if (getMaxMemoryInMb()
6146  != other.getMaxMemoryInMb()) return false;
6147  }
6148  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
6151  != other.getTreatBinaryClausesSeparately()) return false;
6152  }
6153  if (hasRandomSeed() != other.hasRandomSeed()) return false;
6154  if (hasRandomSeed()) {
6155  if (getRandomSeed()
6156  != other.getRandomSeed()) return false;
6157  }
6158  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
6159  if (hasLogSearchProgress()) {
6160  if (getLogSearchProgress()
6161  != other.getLogSearchProgress()) return false;
6162  }
6163  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
6164  if (hasUsePbResolution()) {
6165  if (getUsePbResolution()
6166  != other.getUsePbResolution()) return false;
6167  }
6168  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
6171  != other.getMinimizeReductionDuringPbResolution()) return false;
6172  }
6173  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
6176  != other.getCountAssumptionLevelsInLbd()) return false;
6177  }
6178  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
6179  if (hasPresolveBveThreshold()) {
6181  != other.getPresolveBveThreshold()) return false;
6182  }
6183  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
6186  != other.getPresolveBveClauseWeight()) return false;
6187  }
6188  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
6190  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
6191  != java.lang.Double.doubleToLongBits(
6192  other.getPresolveProbingDeterministicTimeLimit())) return false;
6193  }
6194  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
6195  if (hasPresolveBlockedClause()) {
6197  != other.getPresolveBlockedClause()) return false;
6198  }
6199  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
6200  if (hasPresolveUseBva()) {
6201  if (getPresolveUseBva()
6202  != other.getPresolveUseBva()) return false;
6203  }
6204  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
6205  if (hasPresolveBvaThreshold()) {
6207  != other.getPresolveBvaThreshold()) return false;
6208  }
6209  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
6210  if (hasUseOptimizationHints()) {
6212  != other.getUseOptimizationHints()) return false;
6213  }
6214  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
6215  if (hasMinimizeCore()) {
6216  if (getMinimizeCore()
6217  != other.getMinimizeCore()) return false;
6218  }
6219  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
6220  if (hasFindMultipleCores()) {
6221  if (getFindMultipleCores()
6222  != other.getFindMultipleCores()) return false;
6223  }
6224  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
6225  if (hasCoverOptimization()) {
6226  if (getCoverOptimization()
6227  != other.getCoverOptimization()) return false;
6228  }
6229  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
6230  if (hasMaxSatAssumptionOrder()) {
6231  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
6232  }
6233  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
6236  != other.getMaxSatReverseAssumptionOrder()) return false;
6237  }
6238  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
6239  if (hasMaxSatStratification()) {
6240  if (maxSatStratification_ != other.maxSatStratification_) return false;
6241  }
6242  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
6245  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
6246  }
6247  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
6250  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
6251  }
6252  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6255  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6256  }
6257  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6260  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6261  }
6262  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
6263  if (hasLinearizationLevel()) {
6264  if (getLinearizationLevel()
6265  != other.getLinearizationLevel()) return false;
6266  }
6267  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
6268  if (hasBooleanEncodingLevel()) {
6270  != other.getBooleanEncodingLevel()) return false;
6271  }
6272  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
6273  if (hasMaxNumCuts()) {
6274  if (getMaxNumCuts()
6275  != other.getMaxNumCuts()) return false;
6276  }
6277  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
6278  if (hasOnlyAddCutsAtLevelZero()) {
6280  != other.getOnlyAddCutsAtLevelZero()) return false;
6281  }
6282  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
6283  if (hasAddKnapsackCuts()) {
6284  if (getAddKnapsackCuts()
6285  != other.getAddKnapsackCuts()) return false;
6286  }
6287  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
6288  if (hasAddCgCuts()) {
6289  if (getAddCgCuts()
6290  != other.getAddCgCuts()) return false;
6291  }
6292  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
6293  if (hasAddMirCuts()) {
6294  if (getAddMirCuts()
6295  != other.getAddMirCuts()) return false;
6296  }
6297  if (hasUseMirRounding() != other.hasUseMirRounding()) return false;
6298  if (hasUseMirRounding()) {
6299  if (getUseMirRounding()
6300  != other.getUseMirRounding()) return false;
6301  }
6302  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
6305  != other.getMaxIntegerRoundingScaling()) return false;
6306  }
6307  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
6308  if (hasAddLpConstraintsLazily()) {
6310  != other.getAddLpConstraintsLazily()) return false;
6311  }
6312  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
6314  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
6315  != java.lang.Double.doubleToLongBits(
6316  other.getMinOrthogonalityForLpConstraints())) return false;
6317  }
6318  if (hasMaxInactiveCount() != other.hasMaxInactiveCount()) return false;
6319  if (hasMaxInactiveCount()) {
6320  if (getMaxInactiveCount()
6321  != other.getMaxInactiveCount()) return false;
6322  }
6323  if (hasConstraintRemovalBatchSize() != other.hasConstraintRemovalBatchSize()) return false;
6326  != other.getConstraintRemovalBatchSize()) return false;
6327  }
6328  if (hasSearchBranching() != other.hasSearchBranching()) return false;
6329  if (hasSearchBranching()) {
6330  if (searchBranching_ != other.searchBranching_) return false;
6331  }
6332  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
6335  != other.getExploitIntegerLpSolution()) return false;
6336  }
6337  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
6338  if (hasExploitAllLpSolution()) {
6340  != other.getExploitAllLpSolution()) return false;
6341  }
6342  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
6343  if (hasExploitBestSolution()) {
6345  != other.getExploitBestSolution()) return false;
6346  }
6347  if (hasExploitObjective() != other.hasExploitObjective()) return false;
6348  if (hasExploitObjective()) {
6349  if (getExploitObjective()
6350  != other.getExploitObjective()) return false;
6351  }
6352  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
6355  != other.getPseudoCostReliabilityThreshold()) return false;
6356  }
6357  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
6358  if (hasOptimizeWithCore()) {
6359  if (getOptimizeWithCore()
6360  != other.getOptimizeWithCore()) return false;
6361  }
6362  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
6365  != other.getBinarySearchNumConflicts()) return false;
6366  }
6367  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
6368  if (hasOptimizeWithMaxHs()) {
6369  if (getOptimizeWithMaxHs()
6370  != other.getOptimizeWithMaxHs()) return false;
6371  }
6372  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
6373  if (hasCpModelPresolve()) {
6374  if (getCpModelPresolve()
6375  != other.getCpModelPresolve()) return false;
6376  }
6377  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
6378  if (hasCpModelProbingLevel()) {
6380  != other.getCpModelProbingLevel()) return false;
6381  }
6382  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
6383  if (hasCpModelUseSatPresolve()) {
6385  != other.getCpModelUseSatPresolve()) return false;
6386  }
6387  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
6388  if (hasEnumerateAllSolutions()) {
6390  != other.getEnumerateAllSolutions()) return false;
6391  }
6392  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
6395  != other.getFillTightenedDomainsInResponse()) return false;
6396  }
6397  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
6400  != other.getInstantiateAllVariables()) return false;
6401  }
6402  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
6405  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
6406  }
6407  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
6408  if (hasStopAfterFirstSolution()) {
6410  != other.getStopAfterFirstSolution()) return false;
6411  }
6412  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
6413  if (hasNumSearchWorkers()) {
6414  if (getNumSearchWorkers()
6415  != other.getNumSearchWorkers()) return false;
6416  }
6417  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
6418  if (hasShareObjectiveBounds()) {
6420  != other.getShareObjectiveBounds()) return false;
6421  }
6422  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
6423  if (hasShareLevelZeroBounds()) {
6425  != other.getShareLevelZeroBounds()) return false;
6426  }
6427  if (hasUseLns() != other.hasUseLns()) return false;
6428  if (hasUseLns()) {
6429  if (getUseLns()
6430  != other.getUseLns()) return false;
6431  }
6432  if (hasLnsNumThreads() != other.hasLnsNumThreads()) return false;
6433  if (hasLnsNumThreads()) {
6434  if (getLnsNumThreads()
6435  != other.getLnsNumThreads()) return false;
6436  }
6437  if (hasLnsIsDeterministic() != other.hasLnsIsDeterministic()) return false;
6438  if (hasLnsIsDeterministic()) {
6439  if (getLnsIsDeterministic()
6440  != other.getLnsIsDeterministic()) return false;
6441  }
6442  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
6445  != other.getLnsFocusOnDecisionVariables()) return false;
6446  }
6447  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
6448  if (hasUseRinsLns()) {
6449  if (getUseRinsLns()
6450  != other.getUseRinsLns()) return false;
6451  }
6452  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
6453  if (hasRandomizeSearch()) {
6454  if (getRandomizeSearch()
6455  != other.getRandomizeSearch()) return false;
6456  }
6457  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
6460  != other.getSearchRandomizationTolerance()) return false;
6461  }
6462  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
6463  if (hasUseOptionalVariables()) {
6465  != other.getUseOptionalVariables()) return false;
6466  }
6467  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
6468  if (hasUseExactLpReason()) {
6469  if (getUseExactLpReason()
6470  != other.getUseExactLpReason()) return false;
6471  }
6472  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
6473  if (hasUseCombinedNoOverlap()) {
6475  != other.getUseCombinedNoOverlap()) return false;
6476  }
6477  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
6478  if (hasMipMaxBound()) {
6479  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
6480  != java.lang.Double.doubleToLongBits(
6481  other.getMipMaxBound())) return false;
6482  }
6483  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
6484  if (hasMipVarScaling()) {
6485  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
6486  != java.lang.Double.doubleToLongBits(
6487  other.getMipVarScaling())) return false;
6488  }
6489  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
6490  if (hasMipWantedPrecision()) {
6491  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
6492  != java.lang.Double.doubleToLongBits(
6493  other.getMipWantedPrecision())) return false;
6494  }
6495  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
6496  if (hasMipMaxActivityExponent()) {
6498  != other.getMipMaxActivityExponent()) return false;
6499  }
6500  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
6501  if (hasMipCheckPrecision()) {
6502  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
6503  != java.lang.Double.doubleToLongBits(
6504  other.getMipCheckPrecision())) return false;
6505  }
6506  if (!unknownFields.equals(other.unknownFields)) return false;
6507  return true;
6508  }
6509 
6510  @java.lang.Override
6511  public int hashCode() {
6512  if (memoizedHashCode != 0) {
6513  return memoizedHashCode;
6514  }
6515  int hash = 41;
6516  hash = (19 * hash) + getDescriptor().hashCode();
6517  if (hasPreferredVariableOrder()) {
6518  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
6519  hash = (53 * hash) + preferredVariableOrder_;
6520  }
6521  if (hasInitialPolarity()) {
6522  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
6523  hash = (53 * hash) + initialPolarity_;
6524  }
6525  if (hasUsePhaseSaving()) {
6526  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
6527  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6528  getUsePhaseSaving());
6529  }
6530  if (hasRandomPolarityRatio()) {
6531  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
6532  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6533  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
6534  }
6535  if (hasRandomBranchesRatio()) {
6536  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
6537  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6538  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
6539  }
6540  if (hasUseErwaHeuristic()) {
6541  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
6542  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6544  }
6546  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
6547  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6548  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
6549  }
6552  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6554  }
6555  if (hasMinimizationAlgorithm()) {
6556  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6557  hash = (53 * hash) + minimizationAlgorithm_;
6558  }
6560  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6561  hash = (53 * hash) + binaryMinimizationAlgorithm_;
6562  }
6565  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6567  }
6568  if (hasClauseCleanupPeriod()) {
6569  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
6570  hash = (53 * hash) + getClauseCleanupPeriod();
6571  }
6572  if (hasClauseCleanupTarget()) {
6573  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
6574  hash = (53 * hash) + getClauseCleanupTarget();
6575  }
6577  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
6578  hash = (53 * hash) + clauseCleanupProtection_;
6579  }
6580  if (hasClauseCleanupLbdBound()) {
6581  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
6582  hash = (53 * hash) + getClauseCleanupLbdBound();
6583  }
6584  if (hasClauseCleanupOrdering()) {
6585  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
6586  hash = (53 * hash) + clauseCleanupOrdering_;
6587  }
6588  if (hasPbCleanupIncrement()) {
6589  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
6590  hash = (53 * hash) + getPbCleanupIncrement();
6591  }
6592  if (hasPbCleanupRatio()) {
6593  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
6594  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6595  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
6596  }
6599  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
6600  }
6603  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
6604  }
6605  if (hasVariableActivityDecay()) {
6606  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
6607  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6608  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
6609  }
6611  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
6612  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6613  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
6614  }
6615  if (hasGlucoseMaxDecay()) {
6616  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
6617  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6618  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
6619  }
6620  if (hasGlucoseDecayIncrement()) {
6621  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
6622  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6623  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
6624  }
6626  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
6627  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
6628  }
6629  if (hasClauseActivityDecay()) {
6630  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
6631  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6632  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
6633  }
6634  if (hasMaxClauseActivityValue()) {
6635  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
6636  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6637  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
6638  }
6639  if (getRestartAlgorithmsCount() > 0) {
6640  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
6641  hash = (53 * hash) + restartAlgorithms_.hashCode();
6642  }
6644  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
6645  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
6646  }
6647  if (hasRestartPeriod()) {
6648  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
6649  hash = (53 * hash) + getRestartPeriod();
6650  }
6652  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
6653  hash = (53 * hash) + getRestartRunningWindowSize();
6654  }
6655  if (hasRestartDlAverageRatio()) {
6656  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
6657  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6658  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
6659  }
6660  if (hasRestartLbdAverageRatio()) {
6661  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
6662  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6663  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
6664  }
6665  if (hasUseBlockingRestart()) {
6666  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
6667  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6669  }
6671  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
6672  hash = (53 * hash) + getBlockingRestartWindowSize();
6673  }
6675  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
6676  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6677  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
6678  }
6681  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
6682  }
6684  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
6685  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6686  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
6687  }
6688  if (hasMaxTimeInSeconds()) {
6689  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
6690  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6691  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
6692  }
6693  if (hasMaxDeterministicTime()) {
6694  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
6695  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6696  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
6697  }
6698  if (hasMaxNumberOfConflicts()) {
6699  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
6700  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6702  }
6703  if (hasMaxMemoryInMb()) {
6704  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
6705  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6706  getMaxMemoryInMb());
6707  }
6709  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
6710  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6712  }
6713  if (hasRandomSeed()) {
6714  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
6715  hash = (53 * hash) + getRandomSeed();
6716  }
6717  if (hasLogSearchProgress()) {
6718  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
6719  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6721  }
6722  if (hasUsePbResolution()) {
6723  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
6724  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6725  getUsePbResolution());
6726  }
6729  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6731  }
6733  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
6734  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6736  }
6737  if (hasPresolveBveThreshold()) {
6738  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
6739  hash = (53 * hash) + getPresolveBveThreshold();
6740  }
6742  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
6743  hash = (53 * hash) + getPresolveBveClauseWeight();
6744  }
6747  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6748  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
6749  }
6750  if (hasPresolveBlockedClause()) {
6751  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
6752  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6754  }
6755  if (hasPresolveUseBva()) {
6756  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
6757  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6758  getPresolveUseBva());
6759  }
6760  if (hasPresolveBvaThreshold()) {
6761  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
6762  hash = (53 * hash) + getPresolveBvaThreshold();
6763  }
6764  if (hasUseOptimizationHints()) {
6765  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
6766  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6768  }
6769  if (hasMinimizeCore()) {
6770  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
6771  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6772  getMinimizeCore());
6773  }
6774  if (hasFindMultipleCores()) {
6775  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
6776  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6778  }
6779  if (hasCoverOptimization()) {
6780  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
6781  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6783  }
6784  if (hasMaxSatAssumptionOrder()) {
6785  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
6786  hash = (53 * hash) + maxSatAssumptionOrder_;
6787  }
6789  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
6790  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6792  }
6793  if (hasMaxSatStratification()) {
6794  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
6795  hash = (53 * hash) + maxSatStratification_;
6796  }
6799  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6801  }
6804  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6806  }
6809  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6811  }
6814  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6816  }
6817  if (hasLinearizationLevel()) {
6818  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
6819  hash = (53 * hash) + getLinearizationLevel();
6820  }
6821  if (hasBooleanEncodingLevel()) {
6822  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
6823  hash = (53 * hash) + getBooleanEncodingLevel();
6824  }
6825  if (hasMaxNumCuts()) {
6826  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
6827  hash = (53 * hash) + getMaxNumCuts();
6828  }
6829  if (hasOnlyAddCutsAtLevelZero()) {
6830  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
6831  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6833  }
6834  if (hasAddKnapsackCuts()) {
6835  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
6836  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6837  getAddKnapsackCuts());
6838  }
6839  if (hasAddCgCuts()) {
6840  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
6841  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6842  getAddCgCuts());
6843  }
6844  if (hasAddMirCuts()) {
6845  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
6846  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6847  getAddMirCuts());
6848  }
6849  if (hasUseMirRounding()) {
6850  hash = (37 * hash) + USE_MIR_ROUNDING_FIELD_NUMBER;
6851  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6852  getUseMirRounding());
6853  }
6855  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
6856  hash = (53 * hash) + getMaxIntegerRoundingScaling();
6857  }
6858  if (hasAddLpConstraintsLazily()) {
6859  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
6860  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6862  }
6865  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6866  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
6867  }
6868  if (hasMaxInactiveCount()) {
6869  hash = (37 * hash) + MAX_INACTIVE_COUNT_FIELD_NUMBER;
6870  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6872  }
6874  hash = (37 * hash) + CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER;
6875  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6877  }
6878  if (hasSearchBranching()) {
6879  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
6880  hash = (53 * hash) + searchBranching_;
6881  }
6883  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
6884  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6886  }
6887  if (hasExploitAllLpSolution()) {
6888  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
6889  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6891  }
6892  if (hasExploitBestSolution()) {
6893  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
6894  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6896  }
6897  if (hasExploitObjective()) {
6898  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
6899  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6901  }
6904  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6906  }
6907  if (hasOptimizeWithCore()) {
6908  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
6909  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6911  }
6913  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
6914  hash = (53 * hash) + getBinarySearchNumConflicts();
6915  }
6916  if (hasOptimizeWithMaxHs()) {
6917  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
6918  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6920  }
6921  if (hasCpModelPresolve()) {
6922  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
6923  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6924  getCpModelPresolve());
6925  }
6926  if (hasCpModelProbingLevel()) {
6927  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
6928  hash = (53 * hash) + getCpModelProbingLevel();
6929  }
6930  if (hasCpModelUseSatPresolve()) {
6931  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
6932  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6934  }
6935  if (hasEnumerateAllSolutions()) {
6936  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
6937  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6939  }
6942  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6944  }
6946  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
6947  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6949  }
6952  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6954  }
6955  if (hasStopAfterFirstSolution()) {
6956  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
6957  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6959  }
6960  if (hasNumSearchWorkers()) {
6961  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
6962  hash = (53 * hash) + getNumSearchWorkers();
6963  }
6964  if (hasShareObjectiveBounds()) {
6965  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
6966  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6968  }
6969  if (hasShareLevelZeroBounds()) {
6970  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
6971  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6973  }
6974  if (hasUseLns()) {
6975  hash = (37 * hash) + USE_LNS_FIELD_NUMBER;
6976  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6977  getUseLns());
6978  }
6979  if (hasLnsNumThreads()) {
6980  hash = (37 * hash) + LNS_NUM_THREADS_FIELD_NUMBER;
6981  hash = (53 * hash) + getLnsNumThreads();
6982  }
6983  if (hasLnsIsDeterministic()) {
6984  hash = (37 * hash) + LNS_IS_DETERMINISTIC_FIELD_NUMBER;
6985  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6987  }
6989  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
6990  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6992  }
6993  if (hasUseRinsLns()) {
6994  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
6995  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6996  getUseRinsLns());
6997  }
6998  if (hasRandomizeSearch()) {
6999  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
7000  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7001  getRandomizeSearch());
7002  }
7004  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
7005  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7007  }
7008  if (hasUseOptionalVariables()) {
7009  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
7010  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7012  }
7013  if (hasUseExactLpReason()) {
7014  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
7015  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7017  }
7018  if (hasUseCombinedNoOverlap()) {
7019  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
7020  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7022  }
7023  if (hasMipMaxBound()) {
7024  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
7025  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7026  java.lang.Double.doubleToLongBits(getMipMaxBound()));
7027  }
7028  if (hasMipVarScaling()) {
7029  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
7030  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7031  java.lang.Double.doubleToLongBits(getMipVarScaling()));
7032  }
7033  if (hasMipWantedPrecision()) {
7034  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
7035  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7036  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
7037  }
7038  if (hasMipMaxActivityExponent()) {
7039  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
7040  hash = (53 * hash) + getMipMaxActivityExponent();
7041  }
7042  if (hasMipCheckPrecision()) {
7043  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
7044  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7045  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
7046  }
7047  hash = (29 * hash) + unknownFields.hashCode();
7048  memoizedHashCode = hash;
7049  return hash;
7050  }
7051 
7053  java.nio.ByteBuffer data)
7054  throws com.google.protobuf.InvalidProtocolBufferException {
7055  return PARSER.parseFrom(data);
7056  }
7058  java.nio.ByteBuffer data,
7059  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7060  throws com.google.protobuf.InvalidProtocolBufferException {
7061  return PARSER.parseFrom(data, extensionRegistry);
7062  }
7064  com.google.protobuf.ByteString data)
7065  throws com.google.protobuf.InvalidProtocolBufferException {
7066  return PARSER.parseFrom(data);
7067  }
7069  com.google.protobuf.ByteString data,
7070  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7071  throws com.google.protobuf.InvalidProtocolBufferException {
7072  return PARSER.parseFrom(data, extensionRegistry);
7073  }
7074  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
7075  throws com.google.protobuf.InvalidProtocolBufferException {
7076  return PARSER.parseFrom(data);
7077  }
7079  byte[] data,
7080  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7081  throws com.google.protobuf.InvalidProtocolBufferException {
7082  return PARSER.parseFrom(data, extensionRegistry);
7083  }
7084  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
7085  throws java.io.IOException {
7086  return com.google.protobuf.GeneratedMessageV3
7087  .parseWithIOException(PARSER, input);
7088  }
7090  java.io.InputStream input,
7091  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7092  throws java.io.IOException {
7093  return com.google.protobuf.GeneratedMessageV3
7094  .parseWithIOException(PARSER, input, extensionRegistry);
7095  }
7096  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
7097  throws java.io.IOException {
7098  return com.google.protobuf.GeneratedMessageV3
7099  .parseDelimitedWithIOException(PARSER, input);
7100  }
7102  java.io.InputStream input,
7103  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7104  throws java.io.IOException {
7105  return com.google.protobuf.GeneratedMessageV3
7106  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7107  }
7109  com.google.protobuf.CodedInputStream input)
7110  throws java.io.IOException {
7111  return com.google.protobuf.GeneratedMessageV3
7112  .parseWithIOException(PARSER, input);
7113  }
7115  com.google.protobuf.CodedInputStream input,
7116  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7117  throws java.io.IOException {
7118  return com.google.protobuf.GeneratedMessageV3
7119  .parseWithIOException(PARSER, input, extensionRegistry);
7120  }
7121 
7122  @java.lang.Override
7123  public Builder newBuilderForType() { return newBuilder(); }
7124  public static Builder newBuilder() {
7125  return DEFAULT_INSTANCE.toBuilder();
7126  }
7127  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
7128  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7129  }
7130  @java.lang.Override
7131  public Builder toBuilder() {
7132  return this == DEFAULT_INSTANCE
7133  ? new Builder() : new Builder().mergeFrom(this);
7134  }
7135 
7136  @java.lang.Override
7138  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7139  Builder builder = new Builder(parent);
7140  return builder;
7141  }
7151  public static final class Builder extends
7152  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7153  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
7154  com.google.ortools.sat.SatParametersOrBuilder {
7155  public static final com.google.protobuf.Descriptors.Descriptor
7157  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7158  }
7159 
7160  @java.lang.Override
7161  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7163  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
7164  .ensureFieldAccessorsInitialized(
7166  }
7167 
7168  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
7169  private Builder() {
7170  maybeForceBuilderInitialization();
7171  }
7172 
7173  private Builder(
7174  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7175  super(parent);
7176  maybeForceBuilderInitialization();
7177  }
7178  private void maybeForceBuilderInitialization() {
7179  if (com.google.protobuf.GeneratedMessageV3
7180  .alwaysUseFieldBuilders) {
7181  }
7182  }
7183  @java.lang.Override
7184  public Builder clear() {
7185  super.clear();
7186  preferredVariableOrder_ = 0;
7187  bitField0_ = (bitField0_ & ~0x00000001);
7188  initialPolarity_ = 1;
7189  bitField0_ = (bitField0_ & ~0x00000002);
7190  usePhaseSaving_ = true;
7191  bitField0_ = (bitField0_ & ~0x00000004);
7192  randomPolarityRatio_ = 0D;
7193  bitField0_ = (bitField0_ & ~0x00000008);
7194  randomBranchesRatio_ = 0D;
7195  bitField0_ = (bitField0_ & ~0x00000010);
7196  useErwaHeuristic_ = false;
7197  bitField0_ = (bitField0_ & ~0x00000020);
7198  initialVariablesActivity_ = 0D;
7199  bitField0_ = (bitField0_ & ~0x00000040);
7200  alsoBumpVariablesInConflictReasons_ = false;
7201  bitField0_ = (bitField0_ & ~0x00000080);
7202  minimizationAlgorithm_ = 2;
7203  bitField0_ = (bitField0_ & ~0x00000100);
7204  binaryMinimizationAlgorithm_ = 1;
7205  bitField0_ = (bitField0_ & ~0x00000200);
7206  subsumptionDuringConflictAnalysis_ = true;
7207  bitField0_ = (bitField0_ & ~0x00000400);
7208  clauseCleanupPeriod_ = 10000;
7209  bitField0_ = (bitField0_ & ~0x00000800);
7210  clauseCleanupTarget_ = 10000;
7211  bitField0_ = (bitField0_ & ~0x00001000);
7212  clauseCleanupProtection_ = 0;
7213  bitField0_ = (bitField0_ & ~0x00002000);
7214  clauseCleanupLbdBound_ = 5;
7215  bitField0_ = (bitField0_ & ~0x00004000);
7216  clauseCleanupOrdering_ = 0;
7217  bitField0_ = (bitField0_ & ~0x00008000);
7218  pbCleanupIncrement_ = 200;
7219  bitField0_ = (bitField0_ & ~0x00010000);
7220  pbCleanupRatio_ = 0.5D;
7221  bitField0_ = (bitField0_ & ~0x00020000);
7222  minimizeWithPropagationRestartPeriod_ = 10;
7223  bitField0_ = (bitField0_ & ~0x00040000);
7224  minimizeWithPropagationNumDecisions_ = 1000;
7225  bitField0_ = (bitField0_ & ~0x00080000);
7226  variableActivityDecay_ = 0.8D;
7227  bitField0_ = (bitField0_ & ~0x00100000);
7228  maxVariableActivityValue_ = 1e+100D;
7229  bitField0_ = (bitField0_ & ~0x00200000);
7230  glucoseMaxDecay_ = 0.95D;
7231  bitField0_ = (bitField0_ & ~0x00400000);
7232  glucoseDecayIncrement_ = 0.01D;
7233  bitField0_ = (bitField0_ & ~0x00800000);
7234  glucoseDecayIncrementPeriod_ = 5000;
7235  bitField0_ = (bitField0_ & ~0x01000000);
7236  clauseActivityDecay_ = 0.999D;
7237  bitField0_ = (bitField0_ & ~0x02000000);
7238  maxClauseActivityValue_ = 1e+20D;
7239  bitField0_ = (bitField0_ & ~0x04000000);
7240  restartAlgorithms_ = java.util.Collections.emptyList();
7241  bitField0_ = (bitField0_ & ~0x08000000);
7242  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
7243  bitField0_ = (bitField0_ & ~0x10000000);
7244  restartPeriod_ = 50;
7245  bitField0_ = (bitField0_ & ~0x20000000);
7246  restartRunningWindowSize_ = 50;
7247  bitField0_ = (bitField0_ & ~0x40000000);
7248  restartDlAverageRatio_ = 1D;
7249  bitField0_ = (bitField0_ & ~0x80000000);
7250  restartLbdAverageRatio_ = 1D;
7251  bitField1_ = (bitField1_ & ~0x00000001);
7252  useBlockingRestart_ = false;
7253  bitField1_ = (bitField1_ & ~0x00000002);
7254  blockingRestartWindowSize_ = 5000;
7255  bitField1_ = (bitField1_ & ~0x00000004);
7256  blockingRestartMultiplier_ = 1.4D;
7257  bitField1_ = (bitField1_ & ~0x00000008);
7258  numConflictsBeforeStrategyChanges_ = 0;
7259  bitField1_ = (bitField1_ & ~0x00000010);
7260  strategyChangeIncreaseRatio_ = 0D;
7261  bitField1_ = (bitField1_ & ~0x00000020);
7262  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
7263  bitField1_ = (bitField1_ & ~0x00000040);
7264  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
7265  bitField1_ = (bitField1_ & ~0x00000080);
7266  maxNumberOfConflicts_ = 9223372036854775807L;
7267  bitField1_ = (bitField1_ & ~0x00000100);
7268  maxMemoryInMb_ = 10000L;
7269  bitField1_ = (bitField1_ & ~0x00000200);
7270  treatBinaryClausesSeparately_ = true;
7271  bitField1_ = (bitField1_ & ~0x00000400);
7272  randomSeed_ = 1;
7273  bitField1_ = (bitField1_ & ~0x00000800);
7274  logSearchProgress_ = false;
7275  bitField1_ = (bitField1_ & ~0x00001000);
7276  usePbResolution_ = false;
7277  bitField1_ = (bitField1_ & ~0x00002000);
7278  minimizeReductionDuringPbResolution_ = false;
7279  bitField1_ = (bitField1_ & ~0x00004000);
7280  countAssumptionLevelsInLbd_ = true;
7281  bitField1_ = (bitField1_ & ~0x00008000);
7282  presolveBveThreshold_ = 500;
7283  bitField1_ = (bitField1_ & ~0x00010000);
7284  presolveBveClauseWeight_ = 3;
7285  bitField1_ = (bitField1_ & ~0x00020000);
7286  presolveProbingDeterministicTimeLimit_ = 30D;
7287  bitField1_ = (bitField1_ & ~0x00040000);
7288  presolveBlockedClause_ = true;
7289  bitField1_ = (bitField1_ & ~0x00080000);
7290  presolveUseBva_ = true;
7291  bitField1_ = (bitField1_ & ~0x00100000);
7292  presolveBvaThreshold_ = 1;
7293  bitField1_ = (bitField1_ & ~0x00200000);
7294  useOptimizationHints_ = true;
7295  bitField1_ = (bitField1_ & ~0x00400000);
7296  minimizeCore_ = true;
7297  bitField1_ = (bitField1_ & ~0x00800000);
7298  findMultipleCores_ = true;
7299  bitField1_ = (bitField1_ & ~0x01000000);
7300  coverOptimization_ = true;
7301  bitField1_ = (bitField1_ & ~0x02000000);
7302  maxSatAssumptionOrder_ = 0;
7303  bitField1_ = (bitField1_ & ~0x04000000);
7304  maxSatReverseAssumptionOrder_ = false;
7305  bitField1_ = (bitField1_ & ~0x08000000);
7306  maxSatStratification_ = 1;
7307  bitField1_ = (bitField1_ & ~0x10000000);
7308  usePrecedencesInDisjunctiveConstraint_ = true;
7309  bitField1_ = (bitField1_ & ~0x20000000);
7310  useOverloadCheckerInCumulativeConstraint_ = false;
7311  bitField1_ = (bitField1_ & ~0x40000000);
7312  useTimetableEdgeFindingInCumulativeConstraint_ = false;
7313  bitField1_ = (bitField1_ & ~0x80000000);
7314  useDisjunctiveConstraintInCumulativeConstraint_ = true;
7315  bitField2_ = (bitField2_ & ~0x00000001);
7316  linearizationLevel_ = 1;
7317  bitField2_ = (bitField2_ & ~0x00000002);
7318  booleanEncodingLevel_ = 1;
7319  bitField2_ = (bitField2_ & ~0x00000004);
7320  maxNumCuts_ = 1000;
7321  bitField2_ = (bitField2_ & ~0x00000008);
7322  onlyAddCutsAtLevelZero_ = false;
7323  bitField2_ = (bitField2_ & ~0x00000010);
7324  addKnapsackCuts_ = false;
7325  bitField2_ = (bitField2_ & ~0x00000020);
7326  addCgCuts_ = false;
7327  bitField2_ = (bitField2_ & ~0x00000040);
7328  addMirCuts_ = true;
7329  bitField2_ = (bitField2_ & ~0x00000080);
7330  useMirRounding_ = true;
7331  bitField2_ = (bitField2_ & ~0x00000100);
7332  maxIntegerRoundingScaling_ = 600;
7333  bitField2_ = (bitField2_ & ~0x00000200);
7334  addLpConstraintsLazily_ = true;
7335  bitField2_ = (bitField2_ & ~0x00000400);
7336  minOrthogonalityForLpConstraints_ = 0D;
7337  bitField2_ = (bitField2_ & ~0x00000800);
7338  maxInactiveCount_ = 1000L;
7339  bitField2_ = (bitField2_ & ~0x00001000);
7340  constraintRemovalBatchSize_ = 100L;
7341  bitField2_ = (bitField2_ & ~0x00002000);
7342  searchBranching_ = 0;
7343  bitField2_ = (bitField2_ & ~0x00004000);
7344  exploitIntegerLpSolution_ = true;
7345  bitField2_ = (bitField2_ & ~0x00008000);
7346  exploitAllLpSolution_ = true;
7347  bitField2_ = (bitField2_ & ~0x00010000);
7348  exploitBestSolution_ = false;
7349  bitField2_ = (bitField2_ & ~0x00020000);
7350  exploitObjective_ = true;
7351  bitField2_ = (bitField2_ & ~0x00040000);
7352  pseudoCostReliabilityThreshold_ = 100L;
7353  bitField2_ = (bitField2_ & ~0x00080000);
7354  optimizeWithCore_ = false;
7355  bitField2_ = (bitField2_ & ~0x00100000);
7356  binarySearchNumConflicts_ = -1;
7357  bitField2_ = (bitField2_ & ~0x00200000);
7358  optimizeWithMaxHs_ = false;
7359  bitField2_ = (bitField2_ & ~0x00400000);
7360  cpModelPresolve_ = true;
7361  bitField2_ = (bitField2_ & ~0x00800000);
7362  cpModelProbingLevel_ = 2;
7363  bitField2_ = (bitField2_ & ~0x01000000);
7364  cpModelUseSatPresolve_ = true;
7365  bitField2_ = (bitField2_ & ~0x02000000);
7366  enumerateAllSolutions_ = false;
7367  bitField2_ = (bitField2_ & ~0x04000000);
7368  fillTightenedDomainsInResponse_ = false;
7369  bitField2_ = (bitField2_ & ~0x08000000);
7370  instantiateAllVariables_ = true;
7371  bitField2_ = (bitField2_ & ~0x10000000);
7372  autoDetectGreaterThanAtLeastOneOf_ = true;
7373  bitField2_ = (bitField2_ & ~0x20000000);
7374  stopAfterFirstSolution_ = false;
7375  bitField2_ = (bitField2_ & ~0x40000000);
7376  numSearchWorkers_ = 0;
7377  bitField2_ = (bitField2_ & ~0x80000000);
7378  shareObjectiveBounds_ = true;
7379  bitField3_ = (bitField3_ & ~0x00000001);
7380  shareLevelZeroBounds_ = true;
7381  bitField3_ = (bitField3_ & ~0x00000002);
7382  useLns_ = false;
7383  bitField3_ = (bitField3_ & ~0x00000004);
7384  lnsNumThreads_ = 1;
7385  bitField3_ = (bitField3_ & ~0x00000008);
7386  lnsIsDeterministic_ = true;
7387  bitField3_ = (bitField3_ & ~0x00000010);
7388  lnsFocusOnDecisionVariables_ = false;
7389  bitField3_ = (bitField3_ & ~0x00000020);
7390  useRinsLns_ = false;
7391  bitField3_ = (bitField3_ & ~0x00000040);
7392  randomizeSearch_ = false;
7393  bitField3_ = (bitField3_ & ~0x00000080);
7394  searchRandomizationTolerance_ = 0L;
7395  bitField3_ = (bitField3_ & ~0x00000100);
7396  useOptionalVariables_ = true;
7397  bitField3_ = (bitField3_ & ~0x00000200);
7398  useExactLpReason_ = true;
7399  bitField3_ = (bitField3_ & ~0x00000400);
7400  useCombinedNoOverlap_ = false;
7401  bitField3_ = (bitField3_ & ~0x00000800);
7402  mipMaxBound_ = 10000000D;
7403  bitField3_ = (bitField3_ & ~0x00001000);
7404  mipVarScaling_ = 1D;
7405  bitField3_ = (bitField3_ & ~0x00002000);
7406  mipWantedPrecision_ = 1e-06D;
7407  bitField3_ = (bitField3_ & ~0x00004000);
7408  mipMaxActivityExponent_ = 53;
7409  bitField3_ = (bitField3_ & ~0x00008000);
7410  mipCheckPrecision_ = 0.0001D;
7411  bitField3_ = (bitField3_ & ~0x00010000);
7412  return this;
7413  }
7414 
7415  @java.lang.Override
7416  public com.google.protobuf.Descriptors.Descriptor
7418  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7419  }
7420 
7421  @java.lang.Override
7424  }
7425 
7426  @java.lang.Override
7429  if (!result.isInitialized()) {
7430  throw newUninitializedMessageException(result);
7431  }
7432  return result;
7433  }
7434 
7435  @java.lang.Override
7438  int from_bitField0_ = bitField0_;
7439  int from_bitField1_ = bitField1_;
7440  int from_bitField2_ = bitField2_;
7441  int from_bitField3_ = bitField3_;
7442  int to_bitField0_ = 0;
7443  int to_bitField1_ = 0;
7444  int to_bitField2_ = 0;
7445  int to_bitField3_ = 0;
7446  if (((from_bitField0_ & 0x00000001) != 0)) {
7447  to_bitField0_ |= 0x00000001;
7448  }
7449  result.preferredVariableOrder_ = preferredVariableOrder_;
7450  if (((from_bitField0_ & 0x00000002) != 0)) {
7451  to_bitField0_ |= 0x00000002;
7452  }
7453  result.initialPolarity_ = initialPolarity_;
7454  if (((from_bitField0_ & 0x00000004) != 0)) {
7455  to_bitField0_ |= 0x00000004;
7456  }
7457  result.usePhaseSaving_ = usePhaseSaving_;
7458  if (((from_bitField0_ & 0x00000008) != 0)) {
7459  result.randomPolarityRatio_ = randomPolarityRatio_;
7460  to_bitField0_ |= 0x00000008;
7461  }
7462  if (((from_bitField0_ & 0x00000010) != 0)) {
7463  result.randomBranchesRatio_ = randomBranchesRatio_;
7464  to_bitField0_ |= 0x00000010;
7465  }
7466  if (((from_bitField0_ & 0x00000020) != 0)) {
7467  result.useErwaHeuristic_ = useErwaHeuristic_;
7468  to_bitField0_ |= 0x00000020;
7469  }
7470  if (((from_bitField0_ & 0x00000040) != 0)) {
7471  result.initialVariablesActivity_ = initialVariablesActivity_;
7472  to_bitField0_ |= 0x00000040;
7473  }
7474  if (((from_bitField0_ & 0x00000080) != 0)) {
7475  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
7476  to_bitField0_ |= 0x00000080;
7477  }
7478  if (((from_bitField0_ & 0x00000100) != 0)) {
7479  to_bitField0_ |= 0x00000100;
7480  }
7481  result.minimizationAlgorithm_ = minimizationAlgorithm_;
7482  if (((from_bitField0_ & 0x00000200) != 0)) {
7483  to_bitField0_ |= 0x00000200;
7484  }
7485  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
7486  if (((from_bitField0_ & 0x00000400) != 0)) {
7487  to_bitField0_ |= 0x00000400;
7488  }
7489  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
7490  if (((from_bitField0_ & 0x00000800) != 0)) {
7491  to_bitField0_ |= 0x00000800;
7492  }
7493  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
7494  if (((from_bitField0_ & 0x00001000) != 0)) {
7495  to_bitField0_ |= 0x00001000;
7496  }
7497  result.clauseCleanupTarget_ = clauseCleanupTarget_;
7498  if (((from_bitField0_ & 0x00002000) != 0)) {
7499  to_bitField0_ |= 0x00002000;
7500  }
7501  result.clauseCleanupProtection_ = clauseCleanupProtection_;
7502  if (((from_bitField0_ & 0x00004000) != 0)) {
7503  to_bitField0_ |= 0x00004000;
7504  }
7505  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
7506  if (((from_bitField0_ & 0x00008000) != 0)) {
7507  to_bitField0_ |= 0x00008000;
7508  }
7509  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
7510  if (((from_bitField0_ & 0x00010000) != 0)) {
7511  to_bitField0_ |= 0x00010000;
7512  }
7513  result.pbCleanupIncrement_ = pbCleanupIncrement_;
7514  if (((from_bitField0_ & 0x00020000) != 0)) {
7515  to_bitField0_ |= 0x00020000;
7516  }
7517  result.pbCleanupRatio_ = pbCleanupRatio_;
7518  if (((from_bitField0_ & 0x00040000) != 0)) {
7519  to_bitField0_ |= 0x00040000;
7520  }
7521  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
7522  if (((from_bitField0_ & 0x00080000) != 0)) {
7523  to_bitField0_ |= 0x00080000;
7524  }
7525  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
7526  if (((from_bitField0_ & 0x00100000) != 0)) {
7527  to_bitField0_ |= 0x00100000;
7528  }
7529  result.variableActivityDecay_ = variableActivityDecay_;
7530  if (((from_bitField0_ & 0x00200000) != 0)) {
7531  to_bitField0_ |= 0x00200000;
7532  }
7533  result.maxVariableActivityValue_ = maxVariableActivityValue_;
7534  if (((from_bitField0_ & 0x00400000) != 0)) {
7535  to_bitField0_ |= 0x00400000;
7536  }
7537  result.glucoseMaxDecay_ = glucoseMaxDecay_;
7538  if (((from_bitField0_ & 0x00800000) != 0)) {
7539  to_bitField0_ |= 0x00800000;
7540  }
7541  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
7542  if (((from_bitField0_ & 0x01000000) != 0)) {
7543  to_bitField0_ |= 0x01000000;
7544  }
7545  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
7546  if (((from_bitField0_ & 0x02000000) != 0)) {
7547  to_bitField0_ |= 0x02000000;
7548  }
7549  result.clauseActivityDecay_ = clauseActivityDecay_;
7550  if (((from_bitField0_ & 0x04000000) != 0)) {
7551  to_bitField0_ |= 0x04000000;
7552  }
7553  result.maxClauseActivityValue_ = maxClauseActivityValue_;
7554  if (((bitField0_ & 0x08000000) != 0)) {
7555  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
7556  bitField0_ = (bitField0_ & ~0x08000000);
7557  }
7558  result.restartAlgorithms_ = restartAlgorithms_;
7559  if (((from_bitField0_ & 0x10000000) != 0)) {
7560  to_bitField0_ |= 0x08000000;
7561  }
7562  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
7563  if (((from_bitField0_ & 0x20000000) != 0)) {
7564  to_bitField0_ |= 0x10000000;
7565  }
7566  result.restartPeriod_ = restartPeriod_;
7567  if (((from_bitField0_ & 0x40000000) != 0)) {
7568  to_bitField0_ |= 0x20000000;
7569  }
7570  result.restartRunningWindowSize_ = restartRunningWindowSize_;
7571  if (((from_bitField0_ & 0x80000000) != 0)) {
7572  to_bitField0_ |= 0x40000000;
7573  }
7574  result.restartDlAverageRatio_ = restartDlAverageRatio_;
7575  if (((from_bitField1_ & 0x00000001) != 0)) {
7576  to_bitField0_ |= 0x80000000;
7577  }
7578  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
7579  if (((from_bitField1_ & 0x00000002) != 0)) {
7580  result.useBlockingRestart_ = useBlockingRestart_;
7581  to_bitField1_ |= 0x00000001;
7582  }
7583  if (((from_bitField1_ & 0x00000004) != 0)) {
7584  to_bitField1_ |= 0x00000002;
7585  }
7586  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
7587  if (((from_bitField1_ & 0x00000008) != 0)) {
7588  to_bitField1_ |= 0x00000004;
7589  }
7590  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
7591  if (((from_bitField1_ & 0x00000010) != 0)) {
7592  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
7593  to_bitField1_ |= 0x00000008;
7594  }
7595  if (((from_bitField1_ & 0x00000020) != 0)) {
7596  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
7597  to_bitField1_ |= 0x00000010;
7598  }
7599  if (((from_bitField1_ & 0x00000040) != 0)) {
7600  to_bitField1_ |= 0x00000020;
7601  }
7602  result.maxTimeInSeconds_ = maxTimeInSeconds_;
7603  if (((from_bitField1_ & 0x00000080) != 0)) {
7604  to_bitField1_ |= 0x00000040;
7605  }
7606  result.maxDeterministicTime_ = maxDeterministicTime_;
7607  if (((from_bitField1_ & 0x00000100) != 0)) {
7608  to_bitField1_ |= 0x00000080;
7609  }
7610  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
7611  if (((from_bitField1_ & 0x00000200) != 0)) {
7612  to_bitField1_ |= 0x00000100;
7613  }
7614  result.maxMemoryInMb_ = maxMemoryInMb_;
7615  if (((from_bitField1_ & 0x00000400) != 0)) {
7616  to_bitField1_ |= 0x00000200;
7617  }
7618  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
7619  if (((from_bitField1_ & 0x00000800) != 0)) {
7620  to_bitField1_ |= 0x00000400;
7621  }
7622  result.randomSeed_ = randomSeed_;
7623  if (((from_bitField1_ & 0x00001000) != 0)) {
7624  result.logSearchProgress_ = logSearchProgress_;
7625  to_bitField1_ |= 0x00000800;
7626  }
7627  if (((from_bitField1_ & 0x00002000) != 0)) {
7628  result.usePbResolution_ = usePbResolution_;
7629  to_bitField1_ |= 0x00001000;
7630  }
7631  if (((from_bitField1_ & 0x00004000) != 0)) {
7632  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
7633  to_bitField1_ |= 0x00002000;
7634  }
7635  if (((from_bitField1_ & 0x00008000) != 0)) {
7636  to_bitField1_ |= 0x00004000;
7637  }
7638  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
7639  if (((from_bitField1_ & 0x00010000) != 0)) {
7640  to_bitField1_ |= 0x00008000;
7641  }
7642  result.presolveBveThreshold_ = presolveBveThreshold_;
7643  if (((from_bitField1_ & 0x00020000) != 0)) {
7644  to_bitField1_ |= 0x00010000;
7645  }
7646  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
7647  if (((from_bitField1_ & 0x00040000) != 0)) {
7648  to_bitField1_ |= 0x00020000;
7649  }
7650  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
7651  if (((from_bitField1_ & 0x00080000) != 0)) {
7652  to_bitField1_ |= 0x00040000;
7653  }
7654  result.presolveBlockedClause_ = presolveBlockedClause_;
7655  if (((from_bitField1_ & 0x00100000) != 0)) {
7656  to_bitField1_ |= 0x00080000;
7657  }
7658  result.presolveUseBva_ = presolveUseBva_;
7659  if (((from_bitField1_ & 0x00200000) != 0)) {
7660  to_bitField1_ |= 0x00100000;
7661  }
7662  result.presolveBvaThreshold_ = presolveBvaThreshold_;
7663  if (((from_bitField1_ & 0x00400000) != 0)) {
7664  to_bitField1_ |= 0x00200000;
7665  }
7666  result.useOptimizationHints_ = useOptimizationHints_;
7667  if (((from_bitField1_ & 0x00800000) != 0)) {
7668  to_bitField1_ |= 0x00400000;
7669  }
7670  result.minimizeCore_ = minimizeCore_;
7671  if (((from_bitField1_ & 0x01000000) != 0)) {
7672  to_bitField1_ |= 0x00800000;
7673  }
7674  result.findMultipleCores_ = findMultipleCores_;
7675  if (((from_bitField1_ & 0x02000000) != 0)) {
7676  to_bitField1_ |= 0x01000000;
7677  }
7678  result.coverOptimization_ = coverOptimization_;
7679  if (((from_bitField1_ & 0x04000000) != 0)) {
7680  to_bitField1_ |= 0x02000000;
7681  }
7682  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
7683  if (((from_bitField1_ & 0x08000000) != 0)) {
7684  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
7685  to_bitField1_ |= 0x04000000;
7686  }
7687  if (((from_bitField1_ & 0x10000000) != 0)) {
7688  to_bitField1_ |= 0x08000000;
7689  }
7690  result.maxSatStratification_ = maxSatStratification_;
7691  if (((from_bitField1_ & 0x20000000) != 0)) {
7692  to_bitField1_ |= 0x10000000;
7693  }
7694  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
7695  if (((from_bitField1_ & 0x40000000) != 0)) {
7696  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
7697  to_bitField1_ |= 0x20000000;
7698  }
7699  if (((from_bitField1_ & 0x80000000) != 0)) {
7700  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
7701  to_bitField1_ |= 0x40000000;
7702  }
7703  if (((from_bitField2_ & 0x00000001) != 0)) {
7704  to_bitField1_ |= 0x80000000;
7705  }
7706  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
7707  if (((from_bitField2_ & 0x00000002) != 0)) {
7708  to_bitField2_ |= 0x00000001;
7709  }
7710  result.linearizationLevel_ = linearizationLevel_;
7711  if (((from_bitField2_ & 0x00000004) != 0)) {
7712  to_bitField2_ |= 0x00000002;
7713  }
7714  result.booleanEncodingLevel_ = booleanEncodingLevel_;
7715  if (((from_bitField2_ & 0x00000008) != 0)) {
7716  to_bitField2_ |= 0x00000004;
7717  }
7718  result.maxNumCuts_ = maxNumCuts_;
7719  if (((from_bitField2_ & 0x00000010) != 0)) {
7720  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
7721  to_bitField2_ |= 0x00000008;
7722  }
7723  if (((from_bitField2_ & 0x00000020) != 0)) {
7724  result.addKnapsackCuts_ = addKnapsackCuts_;
7725  to_bitField2_ |= 0x00000010;
7726  }
7727  if (((from_bitField2_ & 0x00000040) != 0)) {
7728  result.addCgCuts_ = addCgCuts_;
7729  to_bitField2_ |= 0x00000020;
7730  }
7731  if (((from_bitField2_ & 0x00000080) != 0)) {
7732  to_bitField2_ |= 0x00000040;
7733  }
7734  result.addMirCuts_ = addMirCuts_;
7735  if (((from_bitField2_ & 0x00000100) != 0)) {
7736  to_bitField2_ |= 0x00000080;
7737  }
7738  result.useMirRounding_ = useMirRounding_;
7739  if (((from_bitField2_ & 0x00000200) != 0)) {
7740  to_bitField2_ |= 0x00000100;
7741  }
7742  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
7743  if (((from_bitField2_ & 0x00000400) != 0)) {
7744  to_bitField2_ |= 0x00000200;
7745  }
7746  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
7747  if (((from_bitField2_ & 0x00000800) != 0)) {
7748  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
7749  to_bitField2_ |= 0x00000400;
7750  }
7751  if (((from_bitField2_ & 0x00001000) != 0)) {
7752  to_bitField2_ |= 0x00000800;
7753  }
7754  result.maxInactiveCount_ = maxInactiveCount_;
7755  if (((from_bitField2_ & 0x00002000) != 0)) {
7756  to_bitField2_ |= 0x00001000;
7757  }
7758  result.constraintRemovalBatchSize_ = constraintRemovalBatchSize_;
7759  if (((from_bitField2_ & 0x00004000) != 0)) {
7760  to_bitField2_ |= 0x00002000;
7761  }
7762  result.searchBranching_ = searchBranching_;
7763  if (((from_bitField2_ & 0x00008000) != 0)) {
7764  to_bitField2_ |= 0x00004000;
7765  }
7766  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
7767  if (((from_bitField2_ & 0x00010000) != 0)) {
7768  to_bitField2_ |= 0x00008000;
7769  }
7770  result.exploitAllLpSolution_ = exploitAllLpSolution_;
7771  if (((from_bitField2_ & 0x00020000) != 0)) {
7772  result.exploitBestSolution_ = exploitBestSolution_;
7773  to_bitField2_ |= 0x00010000;
7774  }
7775  if (((from_bitField2_ & 0x00040000) != 0)) {
7776  to_bitField2_ |= 0x00020000;
7777  }
7778  result.exploitObjective_ = exploitObjective_;
7779  if (((from_bitField2_ & 0x00080000) != 0)) {
7780  to_bitField2_ |= 0x00040000;
7781  }
7782  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
7783  if (((from_bitField2_ & 0x00100000) != 0)) {
7784  result.optimizeWithCore_ = optimizeWithCore_;
7785  to_bitField2_ |= 0x00080000;
7786  }
7787  if (((from_bitField2_ & 0x00200000) != 0)) {
7788  to_bitField2_ |= 0x00100000;
7789  }
7790  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
7791  if (((from_bitField2_ & 0x00400000) != 0)) {
7792  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
7793  to_bitField2_ |= 0x00200000;
7794  }
7795  if (((from_bitField2_ & 0x00800000) != 0)) {
7796  to_bitField2_ |= 0x00400000;
7797  }
7798  result.cpModelPresolve_ = cpModelPresolve_;
7799  if (((from_bitField2_ & 0x01000000) != 0)) {
7800  to_bitField2_ |= 0x00800000;
7801  }
7802  result.cpModelProbingLevel_ = cpModelProbingLevel_;
7803  if (((from_bitField2_ & 0x02000000) != 0)) {
7804  to_bitField2_ |= 0x01000000;
7805  }
7806  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
7807  if (((from_bitField2_ & 0x04000000) != 0)) {
7808  result.enumerateAllSolutions_ = enumerateAllSolutions_;
7809  to_bitField2_ |= 0x02000000;
7810  }
7811  if (((from_bitField2_ & 0x08000000) != 0)) {
7812  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
7813  to_bitField2_ |= 0x04000000;
7814  }
7815  if (((from_bitField2_ & 0x10000000) != 0)) {
7816  to_bitField2_ |= 0x08000000;
7817  }
7818  result.instantiateAllVariables_ = instantiateAllVariables_;
7819  if (((from_bitField2_ & 0x20000000) != 0)) {
7820  to_bitField2_ |= 0x10000000;
7821  }
7822  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
7823  if (((from_bitField2_ & 0x40000000) != 0)) {
7824  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
7825  to_bitField2_ |= 0x20000000;
7826  }
7827  if (((from_bitField2_ & 0x80000000) != 0)) {
7828  result.numSearchWorkers_ = numSearchWorkers_;
7829  to_bitField2_ |= 0x40000000;
7830  }
7831  if (((from_bitField3_ & 0x00000001) != 0)) {
7832  to_bitField2_ |= 0x80000000;
7833  }
7834  result.shareObjectiveBounds_ = shareObjectiveBounds_;
7835  if (((from_bitField3_ & 0x00000002) != 0)) {
7836  to_bitField3_ |= 0x00000001;
7837  }
7838  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
7839  if (((from_bitField3_ & 0x00000004) != 0)) {
7840  result.useLns_ = useLns_;
7841  to_bitField3_ |= 0x00000002;
7842  }
7843  if (((from_bitField3_ & 0x00000008) != 0)) {
7844  to_bitField3_ |= 0x00000004;
7845  }
7846  result.lnsNumThreads_ = lnsNumThreads_;
7847  if (((from_bitField3_ & 0x00000010) != 0)) {
7848  to_bitField3_ |= 0x00000008;
7849  }
7850  result.lnsIsDeterministic_ = lnsIsDeterministic_;
7851  if (((from_bitField3_ & 0x00000020) != 0)) {
7852  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
7853  to_bitField3_ |= 0x00000010;
7854  }
7855  if (((from_bitField3_ & 0x00000040) != 0)) {
7856  result.useRinsLns_ = useRinsLns_;
7857  to_bitField3_ |= 0x00000020;
7858  }
7859  if (((from_bitField3_ & 0x00000080) != 0)) {
7860  result.randomizeSearch_ = randomizeSearch_;
7861  to_bitField3_ |= 0x00000040;
7862  }
7863  if (((from_bitField3_ & 0x00000100) != 0)) {
7864  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
7865  to_bitField3_ |= 0x00000080;
7866  }
7867  if (((from_bitField3_ & 0x00000200) != 0)) {
7868  to_bitField3_ |= 0x00000100;
7869  }
7870  result.useOptionalVariables_ = useOptionalVariables_;
7871  if (((from_bitField3_ & 0x00000400) != 0)) {
7872  to_bitField3_ |= 0x00000200;
7873  }
7874  result.useExactLpReason_ = useExactLpReason_;
7875  if (((from_bitField3_ & 0x00000800) != 0)) {
7876  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
7877  to_bitField3_ |= 0x00000400;
7878  }
7879  if (((from_bitField3_ & 0x00001000) != 0)) {
7880  to_bitField3_ |= 0x00000800;
7881  }
7882  result.mipMaxBound_ = mipMaxBound_;
7883  if (((from_bitField3_ & 0x00002000) != 0)) {
7884  to_bitField3_ |= 0x00001000;
7885  }
7886  result.mipVarScaling_ = mipVarScaling_;
7887  if (((from_bitField3_ & 0x00004000) != 0)) {
7888  to_bitField3_ |= 0x00002000;
7889  }
7890  result.mipWantedPrecision_ = mipWantedPrecision_;
7891  if (((from_bitField3_ & 0x00008000) != 0)) {
7892  to_bitField3_ |= 0x00004000;
7893  }
7894  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
7895  if (((from_bitField3_ & 0x00010000) != 0)) {
7896  to_bitField3_ |= 0x00008000;
7897  }
7898  result.mipCheckPrecision_ = mipCheckPrecision_;
7899  result.bitField0_ = to_bitField0_;
7900  result.bitField1_ = to_bitField1_;
7901  result.bitField2_ = to_bitField2_;
7902  result.bitField3_ = to_bitField3_;
7903  onBuilt();
7904  return result;
7905  }
7906 
7907  @java.lang.Override
7908  public Builder clone() {
7909  return super.clone();
7910  }
7911  @java.lang.Override
7913  com.google.protobuf.Descriptors.FieldDescriptor field,
7914  java.lang.Object value) {
7915  return super.setField(field, value);
7916  }
7917  @java.lang.Override
7919  com.google.protobuf.Descriptors.FieldDescriptor field) {
7920  return super.clearField(field);
7921  }
7922  @java.lang.Override
7924  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
7925  return super.clearOneof(oneof);
7926  }
7927  @java.lang.Override
7929  com.google.protobuf.Descriptors.FieldDescriptor field,
7930  int index, java.lang.Object value) {
7931  return super.setRepeatedField(field, index, value);
7932  }
7933  @java.lang.Override
7935  com.google.protobuf.Descriptors.FieldDescriptor field,
7936  java.lang.Object value) {
7937  return super.addRepeatedField(field, value);
7938  }
7939  @java.lang.Override
7940  public Builder mergeFrom(com.google.protobuf.Message other) {
7941  if (other instanceof com.google.ortools.sat.SatParameters) {
7942  return mergeFrom((com.google.ortools.sat.SatParameters)other);
7943  } else {
7944  super.mergeFrom(other);
7945  return this;
7946  }
7947  }
7948 
7950  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
7951  if (other.hasPreferredVariableOrder()) {
7952  setPreferredVariableOrder(other.getPreferredVariableOrder());
7953  }
7954  if (other.hasInitialPolarity()) {
7955  setInitialPolarity(other.getInitialPolarity());
7956  }
7957  if (other.hasUsePhaseSaving()) {
7958  setUsePhaseSaving(other.getUsePhaseSaving());
7959  }
7960  if (other.hasRandomPolarityRatio()) {
7961  setRandomPolarityRatio(other.getRandomPolarityRatio());
7962  }
7963  if (other.hasRandomBranchesRatio()) {
7964  setRandomBranchesRatio(other.getRandomBranchesRatio());
7965  }
7966  if (other.hasUseErwaHeuristic()) {
7967  setUseErwaHeuristic(other.getUseErwaHeuristic());
7968  }
7969  if (other.hasInitialVariablesActivity()) {
7970  setInitialVariablesActivity(other.getInitialVariablesActivity());
7971  }
7972  if (other.hasAlsoBumpVariablesInConflictReasons()) {
7973  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
7974  }
7975  if (other.hasMinimizationAlgorithm()) {
7976  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
7977  }
7978  if (other.hasBinaryMinimizationAlgorithm()) {
7979  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
7980  }
7981  if (other.hasSubsumptionDuringConflictAnalysis()) {
7982  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
7983  }
7984  if (other.hasClauseCleanupPeriod()) {
7985  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
7986  }
7987  if (other.hasClauseCleanupTarget()) {
7988  setClauseCleanupTarget(other.getClauseCleanupTarget());
7989  }
7990  if (other.hasClauseCleanupProtection()) {
7991  setClauseCleanupProtection(other.getClauseCleanupProtection());
7992  }
7993  if (other.hasClauseCleanupLbdBound()) {
7994  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
7995  }
7996  if (other.hasClauseCleanupOrdering()) {
7997  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
7998  }
7999  if (other.hasPbCleanupIncrement()) {
8000  setPbCleanupIncrement(other.getPbCleanupIncrement());
8001  }
8002  if (other.hasPbCleanupRatio()) {
8003  setPbCleanupRatio(other.getPbCleanupRatio());
8004  }
8005  if (other.hasMinimizeWithPropagationRestartPeriod()) {
8006  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
8007  }
8008  if (other.hasMinimizeWithPropagationNumDecisions()) {
8009  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
8010  }
8011  if (other.hasVariableActivityDecay()) {
8012  setVariableActivityDecay(other.getVariableActivityDecay());
8013  }
8014  if (other.hasMaxVariableActivityValue()) {
8015  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
8016  }
8017  if (other.hasGlucoseMaxDecay()) {
8018  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
8019  }
8020  if (other.hasGlucoseDecayIncrement()) {
8021  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
8022  }
8023  if (other.hasGlucoseDecayIncrementPeriod()) {
8024  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
8025  }
8026  if (other.hasClauseActivityDecay()) {
8027  setClauseActivityDecay(other.getClauseActivityDecay());
8028  }
8029  if (other.hasMaxClauseActivityValue()) {
8030  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
8031  }
8032  if (!other.restartAlgorithms_.isEmpty()) {
8033  if (restartAlgorithms_.isEmpty()) {
8034  restartAlgorithms_ = other.restartAlgorithms_;
8035  bitField0_ = (bitField0_ & ~0x08000000);
8036  } else {
8037  ensureRestartAlgorithmsIsMutable();
8038  restartAlgorithms_.addAll(other.restartAlgorithms_);
8039  }
8040  onChanged();
8041  }
8042  if (other.hasDefaultRestartAlgorithms()) {
8043  bitField0_ |= 0x10000000;
8044  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
8045  onChanged();
8046  }
8047  if (other.hasRestartPeriod()) {
8048  setRestartPeriod(other.getRestartPeriod());
8049  }
8050  if (other.hasRestartRunningWindowSize()) {
8051  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
8052  }
8053  if (other.hasRestartDlAverageRatio()) {
8054  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
8055  }
8056  if (other.hasRestartLbdAverageRatio()) {
8057  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
8058  }
8059  if (other.hasUseBlockingRestart()) {
8060  setUseBlockingRestart(other.getUseBlockingRestart());
8061  }
8062  if (other.hasBlockingRestartWindowSize()) {
8063  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
8064  }
8065  if (other.hasBlockingRestartMultiplier()) {
8066  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
8067  }
8068  if (other.hasNumConflictsBeforeStrategyChanges()) {
8069  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
8070  }
8071  if (other.hasStrategyChangeIncreaseRatio()) {
8072  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
8073  }
8074  if (other.hasMaxTimeInSeconds()) {
8075  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
8076  }
8077  if (other.hasMaxDeterministicTime()) {
8078  setMaxDeterministicTime(other.getMaxDeterministicTime());
8079  }
8080  if (other.hasMaxNumberOfConflicts()) {
8081  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
8082  }
8083  if (other.hasMaxMemoryInMb()) {
8084  setMaxMemoryInMb(other.getMaxMemoryInMb());
8085  }
8086  if (other.hasTreatBinaryClausesSeparately()) {
8087  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
8088  }
8089  if (other.hasRandomSeed()) {
8090  setRandomSeed(other.getRandomSeed());
8091  }
8092  if (other.hasLogSearchProgress()) {
8093  setLogSearchProgress(other.getLogSearchProgress());
8094  }
8095  if (other.hasUsePbResolution()) {
8096  setUsePbResolution(other.getUsePbResolution());
8097  }
8098  if (other.hasMinimizeReductionDuringPbResolution()) {
8099  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
8100  }
8101  if (other.hasCountAssumptionLevelsInLbd()) {
8102  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
8103  }
8104  if (other.hasPresolveBveThreshold()) {
8105  setPresolveBveThreshold(other.getPresolveBveThreshold());
8106  }
8107  if (other.hasPresolveBveClauseWeight()) {
8108  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
8109  }
8110  if (other.hasPresolveProbingDeterministicTimeLimit()) {
8111  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
8112  }
8113  if (other.hasPresolveBlockedClause()) {
8114  setPresolveBlockedClause(other.getPresolveBlockedClause());
8115  }
8116  if (other.hasPresolveUseBva()) {
8117  setPresolveUseBva(other.getPresolveUseBva());
8118  }
8119  if (other.hasPresolveBvaThreshold()) {
8120  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
8121  }
8122  if (other.hasUseOptimizationHints()) {
8123  setUseOptimizationHints(other.getUseOptimizationHints());
8124  }
8125  if (other.hasMinimizeCore()) {
8126  setMinimizeCore(other.getMinimizeCore());
8127  }
8128  if (other.hasFindMultipleCores()) {
8129  setFindMultipleCores(other.getFindMultipleCores());
8130  }
8131  if (other.hasCoverOptimization()) {
8132  setCoverOptimization(other.getCoverOptimization());
8133  }
8134  if (other.hasMaxSatAssumptionOrder()) {
8135  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
8136  }
8137  if (other.hasMaxSatReverseAssumptionOrder()) {
8138  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
8139  }
8140  if (other.hasMaxSatStratification()) {
8141  setMaxSatStratification(other.getMaxSatStratification());
8142  }
8143  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
8144  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
8145  }
8146  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
8147  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
8148  }
8149  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
8150  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
8151  }
8152  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
8153  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
8154  }
8155  if (other.hasLinearizationLevel()) {
8156  setLinearizationLevel(other.getLinearizationLevel());
8157  }
8158  if (other.hasBooleanEncodingLevel()) {
8159  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
8160  }
8161  if (other.hasMaxNumCuts()) {
8162  setMaxNumCuts(other.getMaxNumCuts());
8163  }
8164  if (other.hasOnlyAddCutsAtLevelZero()) {
8165  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
8166  }
8167  if (other.hasAddKnapsackCuts()) {
8168  setAddKnapsackCuts(other.getAddKnapsackCuts());
8169  }
8170  if (other.hasAddCgCuts()) {
8171  setAddCgCuts(other.getAddCgCuts());
8172  }
8173  if (other.hasAddMirCuts()) {
8174  setAddMirCuts(other.getAddMirCuts());
8175  }
8176  if (other.hasUseMirRounding()) {
8177  setUseMirRounding(other.getUseMirRounding());
8178  }
8179  if (other.hasMaxIntegerRoundingScaling()) {
8180  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
8181  }
8182  if (other.hasAddLpConstraintsLazily()) {
8183  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
8184  }
8185  if (other.hasMinOrthogonalityForLpConstraints()) {
8186  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
8187  }
8188  if (other.hasMaxInactiveCount()) {
8189  setMaxInactiveCount(other.getMaxInactiveCount());
8190  }
8191  if (other.hasConstraintRemovalBatchSize()) {
8192  setConstraintRemovalBatchSize(other.getConstraintRemovalBatchSize());
8193  }
8194  if (other.hasSearchBranching()) {
8195  setSearchBranching(other.getSearchBranching());
8196  }
8197  if (other.hasExploitIntegerLpSolution()) {
8198  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
8199  }
8200  if (other.hasExploitAllLpSolution()) {
8201  setExploitAllLpSolution(other.getExploitAllLpSolution());
8202  }
8203  if (other.hasExploitBestSolution()) {
8204  setExploitBestSolution(other.getExploitBestSolution());
8205  }
8206  if (other.hasExploitObjective()) {
8207  setExploitObjective(other.getExploitObjective());
8208  }
8209  if (other.hasPseudoCostReliabilityThreshold()) {
8210  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
8211  }
8212  if (other.hasOptimizeWithCore()) {
8213  setOptimizeWithCore(other.getOptimizeWithCore());
8214  }
8215  if (other.hasBinarySearchNumConflicts()) {
8216  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
8217  }
8218  if (other.hasOptimizeWithMaxHs()) {
8219  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
8220  }
8221  if (other.hasCpModelPresolve()) {
8222  setCpModelPresolve(other.getCpModelPresolve());
8223  }
8224  if (other.hasCpModelProbingLevel()) {
8225  setCpModelProbingLevel(other.getCpModelProbingLevel());
8226  }
8227  if (other.hasCpModelUseSatPresolve()) {
8228  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
8229  }
8230  if (other.hasEnumerateAllSolutions()) {
8231  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
8232  }
8233  if (other.hasFillTightenedDomainsInResponse()) {
8234  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
8235  }
8236  if (other.hasInstantiateAllVariables()) {
8237  setInstantiateAllVariables(other.getInstantiateAllVariables());
8238  }
8239  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
8240  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
8241  }
8242  if (other.hasStopAfterFirstSolution()) {
8243  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
8244  }
8245  if (other.hasNumSearchWorkers()) {
8246  setNumSearchWorkers(other.getNumSearchWorkers());
8247  }
8248  if (other.hasShareObjectiveBounds()) {
8249  setShareObjectiveBounds(other.getShareObjectiveBounds());
8250  }
8251  if (other.hasShareLevelZeroBounds()) {
8252  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
8253  }
8254  if (other.hasUseLns()) {
8255  setUseLns(other.getUseLns());
8256  }
8257  if (other.hasLnsNumThreads()) {
8258  setLnsNumThreads(other.getLnsNumThreads());
8259  }
8260  if (other.hasLnsIsDeterministic()) {
8261  setLnsIsDeterministic(other.getLnsIsDeterministic());
8262  }
8263  if (other.hasLnsFocusOnDecisionVariables()) {
8264  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
8265  }
8266  if (other.hasUseRinsLns()) {
8267  setUseRinsLns(other.getUseRinsLns());
8268  }
8269  if (other.hasRandomizeSearch()) {
8270  setRandomizeSearch(other.getRandomizeSearch());
8271  }
8272  if (other.hasSearchRandomizationTolerance()) {
8273  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
8274  }
8275  if (other.hasUseOptionalVariables()) {
8276  setUseOptionalVariables(other.getUseOptionalVariables());
8277  }
8278  if (other.hasUseExactLpReason()) {
8279  setUseExactLpReason(other.getUseExactLpReason());
8280  }
8281  if (other.hasUseCombinedNoOverlap()) {
8282  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
8283  }
8284  if (other.hasMipMaxBound()) {
8285  setMipMaxBound(other.getMipMaxBound());
8286  }
8287  if (other.hasMipVarScaling()) {
8288  setMipVarScaling(other.getMipVarScaling());
8289  }
8290  if (other.hasMipWantedPrecision()) {
8291  setMipWantedPrecision(other.getMipWantedPrecision());
8292  }
8293  if (other.hasMipMaxActivityExponent()) {
8294  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
8295  }
8296  if (other.hasMipCheckPrecision()) {
8297  setMipCheckPrecision(other.getMipCheckPrecision());
8298  }
8299  this.mergeUnknownFields(other.unknownFields);
8300  onChanged();
8301  return this;
8302  }
8303 
8304  @java.lang.Override
8305  public final boolean isInitialized() {
8306  return true;
8307  }
8308 
8309  @java.lang.Override
8311  com.google.protobuf.CodedInputStream input,
8312  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8313  throws java.io.IOException {
8314  com.google.ortools.sat.SatParameters parsedMessage = null;
8315  try {
8316  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8317  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8318  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
8319  throw e.unwrapIOException();
8320  } finally {
8321  if (parsedMessage != null) {
8322  mergeFrom(parsedMessage);
8323  }
8324  }
8325  return this;
8326  }
8327  private int bitField0_;
8328  private int bitField1_;
8329  private int bitField2_;
8330  private int bitField3_;
8331 
8332  private int preferredVariableOrder_ = 0;
8336  public boolean hasPreferredVariableOrder() {
8337  return ((bitField0_ & 0x00000001) != 0);
8338  }
8343  @SuppressWarnings("deprecation")
8345  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
8346  }
8351  if (value == null) {
8352  throw new NullPointerException();
8353  }
8354  bitField0_ |= 0x00000001;
8355  preferredVariableOrder_ = value.getNumber();
8356  onChanged();
8357  return this;
8358  }
8363  bitField0_ = (bitField0_ & ~0x00000001);
8364  preferredVariableOrder_ = 0;
8365  onChanged();
8366  return this;
8367  }
8368 
8369  private int initialPolarity_ = 1;
8373  public boolean hasInitialPolarity() {
8374  return ((bitField0_ & 0x00000002) != 0);
8375  }
8380  @SuppressWarnings("deprecation")
8382  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
8383  }
8388  if (value == null) {
8389  throw new NullPointerException();
8390  }
8391  bitField0_ |= 0x00000002;
8392  initialPolarity_ = value.getNumber();
8393  onChanged();
8394  return this;
8395  }
8400  bitField0_ = (bitField0_ & ~0x00000002);
8401  initialPolarity_ = 1;
8402  onChanged();
8403  return this;
8404  }
8405 
8406  private boolean usePhaseSaving_ = true;
8420  public boolean hasUsePhaseSaving() {
8421  return ((bitField0_ & 0x00000004) != 0);
8422  }
8436  public boolean getUsePhaseSaving() {
8437  return usePhaseSaving_;
8438  }
8452  public Builder setUsePhaseSaving(boolean value) {
8453  bitField0_ |= 0x00000004;
8454  usePhaseSaving_ = value;
8455  onChanged();
8456  return this;
8457  }
8472  bitField0_ = (bitField0_ & ~0x00000004);
8473  usePhaseSaving_ = true;
8474  onChanged();
8475  return this;
8476  }
8477 
8478  private double randomPolarityRatio_ ;
8490  public boolean hasRandomPolarityRatio() {
8491  return ((bitField0_ & 0x00000008) != 0);
8492  }
8504  public double getRandomPolarityRatio() {
8505  return randomPolarityRatio_;
8506  }
8518  public Builder setRandomPolarityRatio(double value) {
8519  bitField0_ |= 0x00000008;
8520  randomPolarityRatio_ = value;
8521  onChanged();
8522  return this;
8523  }
8536  bitField0_ = (bitField0_ & ~0x00000008);
8537  randomPolarityRatio_ = 0D;
8538  onChanged();
8539  return this;
8540  }
8541 
8542  private double randomBranchesRatio_ ;
8552  public boolean hasRandomBranchesRatio() {
8553  return ((bitField0_ & 0x00000010) != 0);
8554  }
8564  public double getRandomBranchesRatio() {
8565  return randomBranchesRatio_;
8566  }
8576  public Builder setRandomBranchesRatio(double value) {
8577  bitField0_ |= 0x00000010;
8578  randomBranchesRatio_ = value;
8579  onChanged();
8580  return this;
8581  }
8592  bitField0_ = (bitField0_ & ~0x00000010);
8593  randomBranchesRatio_ = 0D;
8594  onChanged();
8595  return this;
8596  }
8597 
8598  private boolean useErwaHeuristic_ ;
8608  public boolean hasUseErwaHeuristic() {
8609  return ((bitField0_ & 0x00000020) != 0);
8610  }
8620  public boolean getUseErwaHeuristic() {
8621  return useErwaHeuristic_;
8622  }
8632  public Builder setUseErwaHeuristic(boolean value) {
8633  bitField0_ |= 0x00000020;
8634  useErwaHeuristic_ = value;
8635  onChanged();
8636  return this;
8637  }
8648  bitField0_ = (bitField0_ & ~0x00000020);
8649  useErwaHeuristic_ = false;
8650  onChanged();
8651  return this;
8652  }
8653 
8654  private double initialVariablesActivity_ ;
8667  public boolean hasInitialVariablesActivity() {
8668  return ((bitField0_ & 0x00000040) != 0);
8669  }
8683  return initialVariablesActivity_;
8684  }
8697  public Builder setInitialVariablesActivity(double value) {
8698  bitField0_ |= 0x00000040;
8699  initialVariablesActivity_ = value;
8700  onChanged();
8701  return this;
8702  }
8716  bitField0_ = (bitField0_ & ~0x00000040);
8717  initialVariablesActivity_ = 0D;
8718  onChanged();
8719  return this;
8720  }
8721 
8722  private boolean alsoBumpVariablesInConflictReasons_ ;
8734  return ((bitField0_ & 0x00000080) != 0);
8735  }
8747  return alsoBumpVariablesInConflictReasons_;
8748  }
8760  bitField0_ |= 0x00000080;
8761  alsoBumpVariablesInConflictReasons_ = value;
8762  onChanged();
8763  return this;
8764  }
8776  bitField0_ = (bitField0_ & ~0x00000080);
8777  alsoBumpVariablesInConflictReasons_ = false;
8778  onChanged();
8779  return this;
8780  }
8781 
8782  private int minimizationAlgorithm_ = 2;
8786  public boolean hasMinimizationAlgorithm() {
8787  return ((bitField0_ & 0x00000100) != 0);
8788  }
8793  @SuppressWarnings("deprecation")
8795  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
8796  }
8801  if (value == null) {
8802  throw new NullPointerException();
8803  }
8804  bitField0_ |= 0x00000100;
8805  minimizationAlgorithm_ = value.getNumber();
8806  onChanged();
8807  return this;
8808  }
8813  bitField0_ = (bitField0_ & ~0x00000100);
8814  minimizationAlgorithm_ = 2;
8815  onChanged();
8816  return this;
8817  }
8818 
8819  private int binaryMinimizationAlgorithm_ = 1;
8824  return ((bitField0_ & 0x00000200) != 0);
8825  }
8830  @SuppressWarnings("deprecation")
8833  }
8838  if (value == null) {
8839  throw new NullPointerException();
8840  }
8841  bitField0_ |= 0x00000200;
8842  binaryMinimizationAlgorithm_ = value.getNumber();
8843  onChanged();
8844  return this;
8845  }
8850  bitField0_ = (bitField0_ & ~0x00000200);
8851  binaryMinimizationAlgorithm_ = 1;
8852  onChanged();
8853  return this;
8854  }
8855 
8856  private boolean subsumptionDuringConflictAnalysis_ = true;
8868  return ((bitField0_ & 0x00000400) != 0);
8869  }
8881  return subsumptionDuringConflictAnalysis_;
8882  }
8894  bitField0_ |= 0x00000400;
8895  subsumptionDuringConflictAnalysis_ = value;
8896  onChanged();
8897  return this;
8898  }
8910  bitField0_ = (bitField0_ & ~0x00000400);
8911  subsumptionDuringConflictAnalysis_ = true;
8912  onChanged();
8913  return this;
8914  }
8915 
8916  private int clauseCleanupPeriod_ = 10000;
8924  public boolean hasClauseCleanupPeriod() {
8925  return ((bitField0_ & 0x00000800) != 0);
8926  }
8934  public int getClauseCleanupPeriod() {
8935  return clauseCleanupPeriod_;
8936  }
8944  public Builder setClauseCleanupPeriod(int value) {
8945  bitField0_ |= 0x00000800;
8946  clauseCleanupPeriod_ = value;
8947  onChanged();
8948  return this;
8949  }
8958  bitField0_ = (bitField0_ & ~0x00000800);
8959  clauseCleanupPeriod_ = 10000;
8960  onChanged();
8961  return this;
8962  }
8963 
8964  private int clauseCleanupTarget_ = 10000;
8973  public boolean hasClauseCleanupTarget() {
8974  return ((bitField0_ & 0x00001000) != 0);
8975  }
8984  public int getClauseCleanupTarget() {
8985  return clauseCleanupTarget_;
8986  }
8995  public Builder setClauseCleanupTarget(int value) {
8996  bitField0_ |= 0x00001000;
8997  clauseCleanupTarget_ = value;
8998  onChanged();
8999  return this;
9000  }
9010  bitField0_ = (bitField0_ & ~0x00001000);
9011  clauseCleanupTarget_ = 10000;
9012  onChanged();
9013  return this;
9014  }
9015 
9016  private int clauseCleanupProtection_ = 0;
9020  public boolean hasClauseCleanupProtection() {
9021  return ((bitField0_ & 0x00002000) != 0);
9022  }
9027  @SuppressWarnings("deprecation")
9029  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
9030  }
9035  if (value == null) {
9036  throw new NullPointerException();
9037  }
9038  bitField0_ |= 0x00002000;
9039  clauseCleanupProtection_ = value.getNumber();
9040  onChanged();
9041  return this;
9042  }
9047  bitField0_ = (bitField0_ & ~0x00002000);
9048  clauseCleanupProtection_ = 0;
9049  onChanged();
9050  return this;
9051  }
9052 
9053  private int clauseCleanupLbdBound_ = 5;
9062  public boolean hasClauseCleanupLbdBound() {
9063  return ((bitField0_ & 0x00004000) != 0);
9064  }
9074  return clauseCleanupLbdBound_;
9075  }
9084  public Builder setClauseCleanupLbdBound(int value) {
9085  bitField0_ |= 0x00004000;
9086  clauseCleanupLbdBound_ = value;
9087  onChanged();
9088  return this;
9089  }
9099  bitField0_ = (bitField0_ & ~0x00004000);
9100  clauseCleanupLbdBound_ = 5;
9101  onChanged();
9102  return this;
9103  }
9104 
9105  private int clauseCleanupOrdering_ = 0;
9109  public boolean hasClauseCleanupOrdering() {
9110  return ((bitField0_ & 0x00008000) != 0);
9111  }
9116  @SuppressWarnings("deprecation")
9118  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
9119  }
9124  if (value == null) {
9125  throw new NullPointerException();
9126  }
9127  bitField0_ |= 0x00008000;
9128  clauseCleanupOrdering_ = value.getNumber();
9129  onChanged();
9130  return this;
9131  }
9136  bitField0_ = (bitField0_ & ~0x00008000);
9137  clauseCleanupOrdering_ = 0;
9138  onChanged();
9139  return this;
9140  }
9141 
9142  private int pbCleanupIncrement_ = 200;
9150  public boolean hasPbCleanupIncrement() {
9151  return ((bitField0_ & 0x00010000) != 0);
9152  }
9160  public int getPbCleanupIncrement() {
9161  return pbCleanupIncrement_;
9162  }
9170  public Builder setPbCleanupIncrement(int value) {
9171  bitField0_ |= 0x00010000;
9172  pbCleanupIncrement_ = value;
9173  onChanged();
9174  return this;
9175  }
9184  bitField0_ = (bitField0_ & ~0x00010000);
9185  pbCleanupIncrement_ = 200;
9186  onChanged();
9187  return this;
9188  }
9189 
9190  private double pbCleanupRatio_ = 0.5D;
9194  public boolean hasPbCleanupRatio() {
9195  return ((bitField0_ & 0x00020000) != 0);
9196  }
9200  public double getPbCleanupRatio() {
9201  return pbCleanupRatio_;
9202  }
9206  public Builder setPbCleanupRatio(double value) {
9207  bitField0_ |= 0x00020000;
9208  pbCleanupRatio_ = value;
9209  onChanged();
9210  return this;
9211  }
9216  bitField0_ = (bitField0_ & ~0x00020000);
9217  pbCleanupRatio_ = 0.5D;
9218  onChanged();
9219  return this;
9220  }
9221 
9222  private int minimizeWithPropagationRestartPeriod_ = 10;
9241  return ((bitField0_ & 0x00040000) != 0);
9242  }
9261  return minimizeWithPropagationRestartPeriod_;
9262  }
9281  bitField0_ |= 0x00040000;
9282  minimizeWithPropagationRestartPeriod_ = value;
9283  onChanged();
9284  return this;
9285  }
9304  bitField0_ = (bitField0_ & ~0x00040000);
9305  minimizeWithPropagationRestartPeriod_ = 10;
9306  onChanged();
9307  return this;
9308  }
9309 
9310  private int minimizeWithPropagationNumDecisions_ = 1000;
9315  return ((bitField0_ & 0x00080000) != 0);
9316  }
9321  return minimizeWithPropagationNumDecisions_;
9322  }
9327  bitField0_ |= 0x00080000;
9328  minimizeWithPropagationNumDecisions_ = value;
9329  onChanged();
9330  return this;
9331  }
9336  bitField0_ = (bitField0_ & ~0x00080000);
9337  minimizeWithPropagationNumDecisions_ = 1000;
9338  onChanged();
9339  return this;
9340  }
9341 
9342  private double variableActivityDecay_ = 0.8D;
9356  public boolean hasVariableActivityDecay() {
9357  return ((bitField0_ & 0x00100000) != 0);
9358  }
9372  public double getVariableActivityDecay() {
9373  return variableActivityDecay_;
9374  }
9388  public Builder setVariableActivityDecay(double value) {
9389  bitField0_ |= 0x00100000;
9390  variableActivityDecay_ = value;
9391  onChanged();
9392  return this;
9393  }
9408  bitField0_ = (bitField0_ & ~0x00100000);
9409  variableActivityDecay_ = 0.8D;
9410  onChanged();
9411  return this;
9412  }
9413 
9414  private double maxVariableActivityValue_ = 1e+100D;
9418  public boolean hasMaxVariableActivityValue() {
9419  return ((bitField0_ & 0x00200000) != 0);
9420  }
9425  return maxVariableActivityValue_;
9426  }
9430  public Builder setMaxVariableActivityValue(double value) {
9431  bitField0_ |= 0x00200000;
9432  maxVariableActivityValue_ = value;
9433  onChanged();
9434  return this;
9435  }
9440  bitField0_ = (bitField0_ & ~0x00200000);
9441  maxVariableActivityValue_ = 1e+100D;
9442  onChanged();
9443  return this;
9444  }
9445 
9446  private double glucoseMaxDecay_ = 0.95D;
9457  public boolean hasGlucoseMaxDecay() {
9458  return ((bitField0_ & 0x00400000) != 0);
9459  }
9470  public double getGlucoseMaxDecay() {
9471  return glucoseMaxDecay_;
9472  }
9483  public Builder setGlucoseMaxDecay(double value) {
9484  bitField0_ |= 0x00400000;
9485  glucoseMaxDecay_ = value;
9486  onChanged();
9487  return this;
9488  }
9500  bitField0_ = (bitField0_ & ~0x00400000);
9501  glucoseMaxDecay_ = 0.95D;
9502  onChanged();
9503  return this;
9504  }
9505 
9506  private double glucoseDecayIncrement_ = 0.01D;
9510  public boolean hasGlucoseDecayIncrement() {
9511  return ((bitField0_ & 0x00800000) != 0);
9512  }
9516  public double getGlucoseDecayIncrement() {
9517  return glucoseDecayIncrement_;
9518  }
9522  public Builder setGlucoseDecayIncrement(double value) {
9523  bitField0_ |= 0x00800000;
9524  glucoseDecayIncrement_ = value;
9525  onChanged();
9526  return this;
9527  }
9532  bitField0_ = (bitField0_ & ~0x00800000);
9533  glucoseDecayIncrement_ = 0.01D;
9534  onChanged();
9535  return this;
9536  }
9537 
9538  private int glucoseDecayIncrementPeriod_ = 5000;
9543  return ((bitField0_ & 0x01000000) != 0);
9544  }
9549  return glucoseDecayIncrementPeriod_;
9550  }
9555  bitField0_ |= 0x01000000;
9556  glucoseDecayIncrementPeriod_ = value;
9557  onChanged();
9558  return this;
9559  }
9564  bitField0_ = (bitField0_ & ~0x01000000);
9565  glucoseDecayIncrementPeriod_ = 5000;
9566  onChanged();
9567  return this;
9568  }
9569 
9570  private double clauseActivityDecay_ = 0.999D;
9578  public boolean hasClauseActivityDecay() {
9579  return ((bitField0_ & 0x02000000) != 0);
9580  }
9588  public double getClauseActivityDecay() {
9589  return clauseActivityDecay_;
9590  }
9598  public Builder setClauseActivityDecay(double value) {
9599  bitField0_ |= 0x02000000;
9600  clauseActivityDecay_ = value;
9601  onChanged();
9602  return this;
9603  }
9612  bitField0_ = (bitField0_ & ~0x02000000);
9613  clauseActivityDecay_ = 0.999D;
9614  onChanged();
9615  return this;
9616  }
9617 
9618  private double maxClauseActivityValue_ = 1e+20D;
9622  public boolean hasMaxClauseActivityValue() {
9623  return ((bitField0_ & 0x04000000) != 0);
9624  }
9628  public double getMaxClauseActivityValue() {
9629  return maxClauseActivityValue_;
9630  }
9634  public Builder setMaxClauseActivityValue(double value) {
9635  bitField0_ |= 0x04000000;
9636  maxClauseActivityValue_ = value;
9637  onChanged();
9638  return this;
9639  }
9644  bitField0_ = (bitField0_ & ~0x04000000);
9645  maxClauseActivityValue_ = 1e+20D;
9646  onChanged();
9647  return this;
9648  }
9649 
9650  private java.util.List<java.lang.Integer> restartAlgorithms_ =
9651  java.util.Collections.emptyList();
9652  private void ensureRestartAlgorithmsIsMutable() {
9653  if (!((bitField0_ & 0x08000000) != 0)) {
9654  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
9655  bitField0_ |= 0x08000000;
9656  }
9657  }
9673  return new com.google.protobuf.Internal.ListAdapter<
9674  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
9675  }
9691  return restartAlgorithms_.size();
9692  }
9708  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
9709  }
9725  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
9726  if (value == null) {
9727  throw new NullPointerException();
9728  }
9729  ensureRestartAlgorithmsIsMutable();
9730  restartAlgorithms_.set(index, value.getNumber());
9731  onChanged();
9732  return this;
9733  }
9749  if (value == null) {
9750  throw new NullPointerException();
9751  }
9752  ensureRestartAlgorithmsIsMutable();
9753  restartAlgorithms_.add(value.getNumber());
9754  onChanged();
9755  return this;
9756  }
9772  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
9773  ensureRestartAlgorithmsIsMutable();
9774  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
9775  restartAlgorithms_.add(value.getNumber());
9776  }
9777  onChanged();
9778  return this;
9779  }
9795  restartAlgorithms_ = java.util.Collections.emptyList();
9796  bitField0_ = (bitField0_ & ~0x08000000);
9797  onChanged();
9798  return this;
9799  }
9800 
9801  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
9805  public boolean hasDefaultRestartAlgorithms() {
9806  return ((bitField0_ & 0x10000000) != 0);
9807  }
9811  public java.lang.String getDefaultRestartAlgorithms() {
9812  java.lang.Object ref = defaultRestartAlgorithms_;
9813  if (!(ref instanceof java.lang.String)) {
9814  com.google.protobuf.ByteString bs =
9815  (com.google.protobuf.ByteString) ref;
9816  java.lang.String s = bs.toStringUtf8();
9817  if (bs.isValidUtf8()) {
9818  defaultRestartAlgorithms_ = s;
9819  }
9820  return s;
9821  } else {
9822  return (java.lang.String) ref;
9823  }
9824  }
9828  public com.google.protobuf.ByteString
9830  java.lang.Object ref = defaultRestartAlgorithms_;
9831  if (ref instanceof String) {
9832  com.google.protobuf.ByteString b =
9833  com.google.protobuf.ByteString.copyFromUtf8(
9834  (java.lang.String) ref);
9835  defaultRestartAlgorithms_ = b;
9836  return b;
9837  } else {
9838  return (com.google.protobuf.ByteString) ref;
9839  }
9840  }
9845  java.lang.String value) {
9846  if (value == null) {
9847  throw new NullPointerException();
9848  }
9849  bitField0_ |= 0x10000000;
9850  defaultRestartAlgorithms_ = value;
9851  onChanged();
9852  return this;
9853  }
9858  bitField0_ = (bitField0_ & ~0x10000000);
9859  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
9860  onChanged();
9861  return this;
9862  }
9867  com.google.protobuf.ByteString value) {
9868  if (value == null) {
9869  throw new NullPointerException();
9870  }
9871  bitField0_ |= 0x10000000;
9872  defaultRestartAlgorithms_ = value;
9873  onChanged();
9874  return this;
9875  }
9876 
9877  private int restartPeriod_ = 50;
9886  public boolean hasRestartPeriod() {
9887  return ((bitField0_ & 0x20000000) != 0);
9888  }
9897  public int getRestartPeriod() {
9898  return restartPeriod_;
9899  }
9908  public Builder setRestartPeriod(int value) {
9909  bitField0_ |= 0x20000000;
9910  restartPeriod_ = value;
9911  onChanged();
9912  return this;
9913  }
9923  bitField0_ = (bitField0_ & ~0x20000000);
9924  restartPeriod_ = 50;
9925  onChanged();
9926  return this;
9927  }
9928 
9929  private int restartRunningWindowSize_ = 50;
9937  public boolean hasRestartRunningWindowSize() {
9938  return ((bitField0_ & 0x40000000) != 0);
9939  }
9948  return restartRunningWindowSize_;
9949  }
9958  bitField0_ |= 0x40000000;
9959  restartRunningWindowSize_ = value;
9960  onChanged();
9961  return this;
9962  }
9971  bitField0_ = (bitField0_ & ~0x40000000);
9972  restartRunningWindowSize_ = 50;
9973  onChanged();
9974  return this;
9975  }
9976 
9977  private double restartDlAverageRatio_ = 1D;
9986  public boolean hasRestartDlAverageRatio() {
9987  return ((bitField0_ & 0x80000000) != 0);
9988  }
9997  public double getRestartDlAverageRatio() {
9998  return restartDlAverageRatio_;
9999  }
10008  public Builder setRestartDlAverageRatio(double value) {
10009  bitField0_ |= 0x80000000;
10010  restartDlAverageRatio_ = value;
10011  onChanged();
10012  return this;
10013  }
10023  bitField0_ = (bitField0_ & ~0x80000000);
10024  restartDlAverageRatio_ = 1D;
10025  onChanged();
10026  return this;
10027  }
10028 
10029  private double restartLbdAverageRatio_ = 1D;
10033  public boolean hasRestartLbdAverageRatio() {
10034  return ((bitField1_ & 0x00000001) != 0);
10035  }
10039  public double getRestartLbdAverageRatio() {
10040  return restartLbdAverageRatio_;
10041  }
10045  public Builder setRestartLbdAverageRatio(double value) {
10046  bitField1_ |= 0x00000001;
10047  restartLbdAverageRatio_ = value;
10048  onChanged();
10049  return this;
10050  }
10055  bitField1_ = (bitField1_ & ~0x00000001);
10056  restartLbdAverageRatio_ = 1D;
10057  onChanged();
10058  return this;
10059  }
10060 
10061  private boolean useBlockingRestart_ ;
10071  public boolean hasUseBlockingRestart() {
10072  return ((bitField1_ & 0x00000002) != 0);
10073  }
10083  public boolean getUseBlockingRestart() {
10084  return useBlockingRestart_;
10085  }
10095  public Builder setUseBlockingRestart(boolean value) {
10096  bitField1_ |= 0x00000002;
10097  useBlockingRestart_ = value;
10098  onChanged();
10099  return this;
10100  }
10111  bitField1_ = (bitField1_ & ~0x00000002);
10112  useBlockingRestart_ = false;
10113  onChanged();
10114  return this;
10115  }
10116 
10117  private int blockingRestartWindowSize_ = 5000;
10121  public boolean hasBlockingRestartWindowSize() {
10122  return ((bitField1_ & 0x00000004) != 0);
10123  }
10128  return blockingRestartWindowSize_;
10129  }
10134  bitField1_ |= 0x00000004;
10135  blockingRestartWindowSize_ = value;
10136  onChanged();
10137  return this;
10138  }
10143  bitField1_ = (bitField1_ & ~0x00000004);
10144  blockingRestartWindowSize_ = 5000;
10145  onChanged();
10146  return this;
10147  }
10148 
10149  private double blockingRestartMultiplier_ = 1.4D;
10153  public boolean hasBlockingRestartMultiplier() {
10154  return ((bitField1_ & 0x00000008) != 0);
10155  }
10160  return blockingRestartMultiplier_;
10161  }
10165  public Builder setBlockingRestartMultiplier(double value) {
10166  bitField1_ |= 0x00000008;
10167  blockingRestartMultiplier_ = value;
10168  onChanged();
10169  return this;
10170  }
10175  bitField1_ = (bitField1_ & ~0x00000008);
10176  blockingRestartMultiplier_ = 1.4D;
10177  onChanged();
10178  return this;
10179  }
10180 
10181  private int numConflictsBeforeStrategyChanges_ ;
10192  return ((bitField1_ & 0x00000010) != 0);
10193  }
10204  return numConflictsBeforeStrategyChanges_;
10205  }
10216  bitField1_ |= 0x00000010;
10217  numConflictsBeforeStrategyChanges_ = value;
10218  onChanged();
10219  return this;
10220  }
10231  bitField1_ = (bitField1_ & ~0x00000010);
10232  numConflictsBeforeStrategyChanges_ = 0;
10233  onChanged();
10234  return this;
10235  }
10236 
10237  private double strategyChangeIncreaseRatio_ ;
10247  return ((bitField1_ & 0x00000020) != 0);
10248  }
10258  return strategyChangeIncreaseRatio_;
10259  }
10269  bitField1_ |= 0x00000020;
10270  strategyChangeIncreaseRatio_ = value;
10271  onChanged();
10272  return this;
10273  }
10283  bitField1_ = (bitField1_ & ~0x00000020);
10284  strategyChangeIncreaseRatio_ = 0D;
10285  onChanged();
10286  return this;
10287  }
10288 
10289  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10299  public boolean hasMaxTimeInSeconds() {
10300  return ((bitField1_ & 0x00000040) != 0);
10301  }
10311  public double getMaxTimeInSeconds() {
10312  return maxTimeInSeconds_;
10313  }
10323  public Builder setMaxTimeInSeconds(double value) {
10324  bitField1_ |= 0x00000040;
10325  maxTimeInSeconds_ = value;
10326  onChanged();
10327  return this;
10328  }
10339  bitField1_ = (bitField1_ & ~0x00000040);
10340  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10341  onChanged();
10342  return this;
10343  }
10344 
10345  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10357  public boolean hasMaxDeterministicTime() {
10358  return ((bitField1_ & 0x00000080) != 0);
10359  }
10371  public double getMaxDeterministicTime() {
10372  return maxDeterministicTime_;
10373  }
10385  public Builder setMaxDeterministicTime(double value) {
10386  bitField1_ |= 0x00000080;
10387  maxDeterministicTime_ = value;
10388  onChanged();
10389  return this;
10390  }
10403  bitField1_ = (bitField1_ & ~0x00000080);
10404  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10405  onChanged();
10406  return this;
10407  }
10408 
10409  private long maxNumberOfConflicts_ = 9223372036854775807L;
10417  public boolean hasMaxNumberOfConflicts() {
10418  return ((bitField1_ & 0x00000100) != 0);
10419  }
10427  public long getMaxNumberOfConflicts() {
10428  return maxNumberOfConflicts_;
10429  }
10437  public Builder setMaxNumberOfConflicts(long value) {
10438  bitField1_ |= 0x00000100;
10439  maxNumberOfConflicts_ = value;
10440  onChanged();
10441  return this;
10442  }
10451  bitField1_ = (bitField1_ & ~0x00000100);
10452  maxNumberOfConflicts_ = 9223372036854775807L;
10453  onChanged();
10454  return this;
10455  }
10456 
10457  private long maxMemoryInMb_ = 10000L;
10468  public boolean hasMaxMemoryInMb() {
10469  return ((bitField1_ & 0x00000200) != 0);
10470  }
10481  public long getMaxMemoryInMb() {
10482  return maxMemoryInMb_;
10483  }
10494  public Builder setMaxMemoryInMb(long value) {
10495  bitField1_ |= 0x00000200;
10496  maxMemoryInMb_ = value;
10497  onChanged();
10498  return this;
10499  }
10511  bitField1_ = (bitField1_ & ~0x00000200);
10512  maxMemoryInMb_ = 10000L;
10513  onChanged();
10514  return this;
10515  }
10516 
10517  private boolean treatBinaryClausesSeparately_ = true;
10528  return ((bitField1_ & 0x00000400) != 0);
10529  }
10540  return treatBinaryClausesSeparately_;
10541  }
10552  bitField1_ |= 0x00000400;
10553  treatBinaryClausesSeparately_ = value;
10554  onChanged();
10555  return this;
10556  }
10567  bitField1_ = (bitField1_ & ~0x00000400);
10568  treatBinaryClausesSeparately_ = true;
10569  onChanged();
10570  return this;
10571  }
10572 
10573  private int randomSeed_ = 1;
10586  public boolean hasRandomSeed() {
10587  return ((bitField1_ & 0x00000800) != 0);
10588  }
10601  public int getRandomSeed() {
10602  return randomSeed_;
10603  }
10616  public Builder setRandomSeed(int value) {
10617  bitField1_ |= 0x00000800;
10618  randomSeed_ = value;
10619  onChanged();
10620  return this;
10621  }
10635  bitField1_ = (bitField1_ & ~0x00000800);
10636  randomSeed_ = 1;
10637  onChanged();
10638  return this;
10639  }
10640 
10641  private boolean logSearchProgress_ ;
10649  public boolean hasLogSearchProgress() {
10650  return ((bitField1_ & 0x00001000) != 0);
10651  }
10659  public boolean getLogSearchProgress() {
10660  return logSearchProgress_;
10661  }
10669  public Builder setLogSearchProgress(boolean value) {
10670  bitField1_ |= 0x00001000;
10671  logSearchProgress_ = value;
10672  onChanged();
10673  return this;
10674  }
10683  bitField1_ = (bitField1_ & ~0x00001000);
10684  logSearchProgress_ = false;
10685  onChanged();
10686  return this;
10687  }
10688 
10689  private boolean usePbResolution_ ;
10700  public boolean hasUsePbResolution() {
10701  return ((bitField1_ & 0x00002000) != 0);
10702  }
10713  public boolean getUsePbResolution() {
10714  return usePbResolution_;
10715  }
10726  public Builder setUsePbResolution(boolean value) {
10727  bitField1_ |= 0x00002000;
10728  usePbResolution_ = value;
10729  onChanged();
10730  return this;
10731  }
10743  bitField1_ = (bitField1_ & ~0x00002000);
10744  usePbResolution_ = false;
10745  onChanged();
10746  return this;
10747  }
10748 
10749  private boolean minimizeReductionDuringPbResolution_ ;
10761  return ((bitField1_ & 0x00004000) != 0);
10762  }
10774  return minimizeReductionDuringPbResolution_;
10775  }
10787  bitField1_ |= 0x00004000;
10788  minimizeReductionDuringPbResolution_ = value;
10789  onChanged();
10790  return this;
10791  }
10803  bitField1_ = (bitField1_ & ~0x00004000);
10804  minimizeReductionDuringPbResolution_ = false;
10805  onChanged();
10806  return this;
10807  }
10808 
10809  private boolean countAssumptionLevelsInLbd_ = true;
10825  return ((bitField1_ & 0x00008000) != 0);
10826  }
10842  return countAssumptionLevelsInLbd_;
10843  }
10858  public Builder setCountAssumptionLevelsInLbd(boolean value) {
10859  bitField1_ |= 0x00008000;
10860  countAssumptionLevelsInLbd_ = value;
10861  onChanged();
10862  return this;
10863  }
10879  bitField1_ = (bitField1_ & ~0x00008000);
10880  countAssumptionLevelsInLbd_ = true;
10881  onChanged();
10882  return this;
10883  }
10884 
10885  private int presolveBveThreshold_ = 500;
10895  public boolean hasPresolveBveThreshold() {
10896  return ((bitField1_ & 0x00010000) != 0);
10897  }
10908  return presolveBveThreshold_;
10909  }
10919  public Builder setPresolveBveThreshold(int value) {
10920  bitField1_ |= 0x00010000;
10921  presolveBveThreshold_ = value;
10922  onChanged();
10923  return this;
10924  }
10935  bitField1_ = (bitField1_ & ~0x00010000);
10936  presolveBveThreshold_ = 500;
10937  onChanged();
10938  return this;
10939  }
10940 
10941  private int presolveBveClauseWeight_ = 3;
10950  public boolean hasPresolveBveClauseWeight() {
10951  return ((bitField1_ & 0x00020000) != 0);
10952  }
10962  return presolveBveClauseWeight_;
10963  }
10973  bitField1_ |= 0x00020000;
10974  presolveBveClauseWeight_ = value;
10975  onChanged();
10976  return this;
10977  }
10987  bitField1_ = (bitField1_ & ~0x00020000);
10988  presolveBveClauseWeight_ = 3;
10989  onChanged();
10990  return this;
10991  }
10992 
10993  private double presolveProbingDeterministicTimeLimit_ = 30D;
11003  return ((bitField1_ & 0x00040000) != 0);
11004  }
11014  return presolveProbingDeterministicTimeLimit_;
11015  }
11025  bitField1_ |= 0x00040000;
11026  presolveProbingDeterministicTimeLimit_ = value;
11027  onChanged();
11028  return this;
11029  }
11039  bitField1_ = (bitField1_ & ~0x00040000);
11040  presolveProbingDeterministicTimeLimit_ = 30D;
11041  onChanged();
11042  return this;
11043  }
11044 
11045  private boolean presolveBlockedClause_ = true;
11054  public boolean hasPresolveBlockedClause() {
11055  return ((bitField1_ & 0x00080000) != 0);
11056  }
11065  public boolean getPresolveBlockedClause() {
11066  return presolveBlockedClause_;
11067  }
11076  public Builder setPresolveBlockedClause(boolean value) {
11077  bitField1_ |= 0x00080000;
11078  presolveBlockedClause_ = value;
11079  onChanged();
11080  return this;
11081  }
11091  bitField1_ = (bitField1_ & ~0x00080000);
11092  presolveBlockedClause_ = true;
11093  onChanged();
11094  return this;
11095  }
11096 
11097  private boolean presolveUseBva_ = true;
11105  public boolean hasPresolveUseBva() {
11106  return ((bitField1_ & 0x00100000) != 0);
11107  }
11115  public boolean getPresolveUseBva() {
11116  return presolveUseBva_;
11117  }
11125  public Builder setPresolveUseBva(boolean value) {
11126  bitField1_ |= 0x00100000;
11127  presolveUseBva_ = value;
11128  onChanged();
11129  return this;
11130  }
11139  bitField1_ = (bitField1_ & ~0x00100000);
11140  presolveUseBva_ = true;
11141  onChanged();
11142  return this;
11143  }
11144 
11145  private int presolveBvaThreshold_ = 1;
11156  public boolean hasPresolveBvaThreshold() {
11157  return ((bitField1_ & 0x00200000) != 0);
11158  }
11170  return presolveBvaThreshold_;
11171  }
11182  public Builder setPresolveBvaThreshold(int value) {
11183  bitField1_ |= 0x00200000;
11184  presolveBvaThreshold_ = value;
11185  onChanged();
11186  return this;
11187  }
11199  bitField1_ = (bitField1_ & ~0x00200000);
11200  presolveBvaThreshold_ = 1;
11201  onChanged();
11202  return this;
11203  }
11204 
11205  private boolean useOptimizationHints_ = true;
11216  public boolean hasUseOptimizationHints() {
11217  return ((bitField1_ & 0x00400000) != 0);
11218  }
11229  public boolean getUseOptimizationHints() {
11230  return useOptimizationHints_;
11231  }
11242  public Builder setUseOptimizationHints(boolean value) {
11243  bitField1_ |= 0x00400000;
11244  useOptimizationHints_ = value;
11245  onChanged();
11246  return this;
11247  }
11259  bitField1_ = (bitField1_ & ~0x00400000);
11260  useOptimizationHints_ = true;
11261  onChanged();
11262  return this;
11263  }
11264 
11265  private boolean minimizeCore_ = true;
11273  public boolean hasMinimizeCore() {
11274  return ((bitField1_ & 0x00800000) != 0);
11275  }
11283  public boolean getMinimizeCore() {
11284  return minimizeCore_;
11285  }
11293  public Builder setMinimizeCore(boolean value) {
11294  bitField1_ |= 0x00800000;
11295  minimizeCore_ = value;
11296  onChanged();
11297  return this;
11298  }
11307  bitField1_ = (bitField1_ & ~0x00800000);
11308  minimizeCore_ = true;
11309  onChanged();
11310  return this;
11311  }
11312 
11313  private boolean findMultipleCores_ = true;
11322  public boolean hasFindMultipleCores() {
11323  return ((bitField1_ & 0x01000000) != 0);
11324  }
11333  public boolean getFindMultipleCores() {
11334  return findMultipleCores_;
11335  }
11344  public Builder setFindMultipleCores(boolean value) {
11345  bitField1_ |= 0x01000000;
11346  findMultipleCores_ = value;
11347  onChanged();
11348  return this;
11349  }
11359  bitField1_ = (bitField1_ & ~0x01000000);
11360  findMultipleCores_ = true;
11361  onChanged();
11362  return this;
11363  }
11364 
11365  private boolean coverOptimization_ = true;
11374  public boolean hasCoverOptimization() {
11375  return ((bitField1_ & 0x02000000) != 0);
11376  }
11385  public boolean getCoverOptimization() {
11386  return coverOptimization_;
11387  }
11396  public Builder setCoverOptimization(boolean value) {
11397  bitField1_ |= 0x02000000;
11398  coverOptimization_ = value;
11399  onChanged();
11400  return this;
11401  }
11411  bitField1_ = (bitField1_ & ~0x02000000);
11412  coverOptimization_ = true;
11413  onChanged();
11414  return this;
11415  }
11416 
11417  private int maxSatAssumptionOrder_ = 0;
11421  public boolean hasMaxSatAssumptionOrder() {
11422  return ((bitField1_ & 0x04000000) != 0);
11423  }
11428  @SuppressWarnings("deprecation")
11431  }
11436  if (value == null) {
11437  throw new NullPointerException();
11438  }
11439  bitField1_ |= 0x04000000;
11440  maxSatAssumptionOrder_ = value.getNumber();
11441  onChanged();
11442  return this;
11443  }
11448  bitField1_ = (bitField1_ & ~0x04000000);
11449  maxSatAssumptionOrder_ = 0;
11450  onChanged();
11451  return this;
11452  }
11453 
11454  private boolean maxSatReverseAssumptionOrder_ ;
11464  return ((bitField1_ & 0x08000000) != 0);
11465  }
11475  return maxSatReverseAssumptionOrder_;
11476  }
11486  bitField1_ |= 0x08000000;
11487  maxSatReverseAssumptionOrder_ = value;
11488  onChanged();
11489  return this;
11490  }
11500  bitField1_ = (bitField1_ & ~0x08000000);
11501  maxSatReverseAssumptionOrder_ = false;
11502  onChanged();
11503  return this;
11504  }
11505 
11506  private int maxSatStratification_ = 1;
11510  public boolean hasMaxSatStratification() {
11511  return ((bitField1_ & 0x10000000) != 0);
11512  }
11517  @SuppressWarnings("deprecation")
11520  }
11525  if (value == null) {
11526  throw new NullPointerException();
11527  }
11528  bitField1_ |= 0x10000000;
11529  maxSatStratification_ = value.getNumber();
11530  onChanged();
11531  return this;
11532  }
11537  bitField1_ = (bitField1_ & ~0x10000000);
11538  maxSatStratification_ = 1;
11539  onChanged();
11540  return this;
11541  }
11542 
11543  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
11559  return ((bitField1_ & 0x20000000) != 0);
11560  }
11576  return usePrecedencesInDisjunctiveConstraint_;
11577  }
11593  bitField1_ |= 0x20000000;
11594  usePrecedencesInDisjunctiveConstraint_ = value;
11595  onChanged();
11596  return this;
11597  }
11613  bitField1_ = (bitField1_ & ~0x20000000);
11614  usePrecedencesInDisjunctiveConstraint_ = true;
11615  onChanged();
11616  return this;
11617  }
11618 
11619  private boolean useOverloadCheckerInCumulativeConstraint_ ;
11633  return ((bitField1_ & 0x40000000) != 0);
11634  }
11648  return useOverloadCheckerInCumulativeConstraint_;
11649  }
11663  bitField1_ |= 0x40000000;
11664  useOverloadCheckerInCumulativeConstraint_ = value;
11665  onChanged();
11666  return this;
11667  }
11681  bitField1_ = (bitField1_ & ~0x40000000);
11682  useOverloadCheckerInCumulativeConstraint_ = false;
11683  onChanged();
11684  return this;
11685  }
11686 
11687  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
11701  return ((bitField1_ & 0x80000000) != 0);
11702  }
11716  return useTimetableEdgeFindingInCumulativeConstraint_;
11717  }
11731  bitField1_ |= 0x80000000;
11732  useTimetableEdgeFindingInCumulativeConstraint_ = value;
11733  onChanged();
11734  return this;
11735  }
11749  bitField1_ = (bitField1_ & ~0x80000000);
11750  useTimetableEdgeFindingInCumulativeConstraint_ = false;
11751  onChanged();
11752  return this;
11753  }
11754 
11755  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
11771  return ((bitField2_ & 0x00000001) != 0);
11772  }
11788  return useDisjunctiveConstraintInCumulativeConstraint_;
11789  }
11805  bitField2_ |= 0x00000001;
11806  useDisjunctiveConstraintInCumulativeConstraint_ = value;
11807  onChanged();
11808  return this;
11809  }
11825  bitField2_ = (bitField2_ & ~0x00000001);
11826  useDisjunctiveConstraintInCumulativeConstraint_ = true;
11827  onChanged();
11828  return this;
11829  }
11830 
11831  private int linearizationLevel_ = 1;
11842  public boolean hasLinearizationLevel() {
11843  return ((bitField2_ & 0x00000002) != 0);
11844  }
11855  public int getLinearizationLevel() {
11856  return linearizationLevel_;
11857  }
11868  public Builder setLinearizationLevel(int value) {
11869  bitField2_ |= 0x00000002;
11870  linearizationLevel_ = value;
11871  onChanged();
11872  return this;
11873  }
11885  bitField2_ = (bitField2_ & ~0x00000002);
11886  linearizationLevel_ = 1;
11887  onChanged();
11888  return this;
11889  }
11890 
11891  private int booleanEncodingLevel_ = 1;
11900  public boolean hasBooleanEncodingLevel() {
11901  return ((bitField2_ & 0x00000004) != 0);
11902  }
11912  return booleanEncodingLevel_;
11913  }
11922  public Builder setBooleanEncodingLevel(int value) {
11923  bitField2_ |= 0x00000004;
11924  booleanEncodingLevel_ = value;
11925  onChanged();
11926  return this;
11927  }
11937  bitField2_ = (bitField2_ & ~0x00000004);
11938  booleanEncodingLevel_ = 1;
11939  onChanged();
11940  return this;
11941  }
11942 
11943  private int maxNumCuts_ = 1000;
11952  public boolean hasMaxNumCuts() {
11953  return ((bitField2_ & 0x00000008) != 0);
11954  }
11963  public int getMaxNumCuts() {
11964  return maxNumCuts_;
11965  }
11974  public Builder setMaxNumCuts(int value) {
11975  bitField2_ |= 0x00000008;
11976  maxNumCuts_ = value;
11977  onChanged();
11978  return this;
11979  }
11989  bitField2_ = (bitField2_ & ~0x00000008);
11990  maxNumCuts_ = 1000;
11991  onChanged();
11992  return this;
11993  }
11994 
11995  private boolean onlyAddCutsAtLevelZero_ ;
12004  public boolean hasOnlyAddCutsAtLevelZero() {
12005  return ((bitField2_ & 0x00000010) != 0);
12006  }
12015  public boolean getOnlyAddCutsAtLevelZero() {
12016  return onlyAddCutsAtLevelZero_;
12017  }
12026  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
12027  bitField2_ |= 0x00000010;
12028  onlyAddCutsAtLevelZero_ = value;
12029  onChanged();
12030  return this;
12031  }
12041  bitField2_ = (bitField2_ & ~0x00000010);
12042  onlyAddCutsAtLevelZero_ = false;
12043  onChanged();
12044  return this;
12045  }
12046 
12047  private boolean addKnapsackCuts_ ;
12057  public boolean hasAddKnapsackCuts() {
12058  return ((bitField2_ & 0x00000020) != 0);
12059  }
12069  public boolean getAddKnapsackCuts() {
12070  return addKnapsackCuts_;
12071  }
12081  public Builder setAddKnapsackCuts(boolean value) {
12082  bitField2_ |= 0x00000020;
12083  addKnapsackCuts_ = value;
12084  onChanged();
12085  return this;
12086  }
12097  bitField2_ = (bitField2_ & ~0x00000020);
12098  addKnapsackCuts_ = false;
12099  onChanged();
12100  return this;
12101  }
12102 
12103  private boolean addCgCuts_ ;
12112  public boolean hasAddCgCuts() {
12113  return ((bitField2_ & 0x00000040) != 0);
12114  }
12123  public boolean getAddCgCuts() {
12124  return addCgCuts_;
12125  }
12134  public Builder setAddCgCuts(boolean value) {
12135  bitField2_ |= 0x00000040;
12136  addCgCuts_ = value;
12137  onChanged();
12138  return this;
12139  }
12149  bitField2_ = (bitField2_ & ~0x00000040);
12150  addCgCuts_ = false;
12151  onChanged();
12152  return this;
12153  }
12154 
12155  private boolean addMirCuts_ = true;
12164  public boolean hasAddMirCuts() {
12165  return ((bitField2_ & 0x00000080) != 0);
12166  }
12175  public boolean getAddMirCuts() {
12176  return addMirCuts_;
12177  }
12186  public Builder setAddMirCuts(boolean value) {
12187  bitField2_ |= 0x00000080;
12188  addMirCuts_ = value;
12189  onChanged();
12190  return this;
12191  }
12201  bitField2_ = (bitField2_ & ~0x00000080);
12202  addMirCuts_ = true;
12203  onChanged();
12204  return this;
12205  }
12206 
12207  private boolean useMirRounding_ = true;
12217  public boolean hasUseMirRounding() {
12218  return ((bitField2_ & 0x00000100) != 0);
12219  }
12229  public boolean getUseMirRounding() {
12230  return useMirRounding_;
12231  }
12241  public Builder setUseMirRounding(boolean value) {
12242  bitField2_ |= 0x00000100;
12243  useMirRounding_ = value;
12244  onChanged();
12245  return this;
12246  }
12257  bitField2_ = (bitField2_ & ~0x00000100);
12258  useMirRounding_ = true;
12259  onChanged();
12260  return this;
12261  }
12262 
12263  private int maxIntegerRoundingScaling_ = 600;
12275  public boolean hasMaxIntegerRoundingScaling() {
12276  return ((bitField2_ & 0x00000200) != 0);
12277  }
12290  return maxIntegerRoundingScaling_;
12291  }
12304  bitField2_ |= 0x00000200;
12305  maxIntegerRoundingScaling_ = value;
12306  onChanged();
12307  return this;
12308  }
12321  bitField2_ = (bitField2_ & ~0x00000200);
12322  maxIntegerRoundingScaling_ = 600;
12323  onChanged();
12324  return this;
12325  }
12326 
12327  private boolean addLpConstraintsLazily_ = true;
12338  public boolean hasAddLpConstraintsLazily() {
12339  return ((bitField2_ & 0x00000400) != 0);
12340  }
12351  public boolean getAddLpConstraintsLazily() {
12352  return addLpConstraintsLazily_;
12353  }
12364  public Builder setAddLpConstraintsLazily(boolean value) {
12365  bitField2_ |= 0x00000400;
12366  addLpConstraintsLazily_ = value;
12367  onChanged();
12368  return this;
12369  }
12381  bitField2_ = (bitField2_ & ~0x00000400);
12382  addLpConstraintsLazily_ = true;
12383  onChanged();
12384  return this;
12385  }
12386 
12387  private double minOrthogonalityForLpConstraints_ ;
12400  return ((bitField2_ & 0x00000800) != 0);
12401  }
12414  return minOrthogonalityForLpConstraints_;
12415  }
12428  bitField2_ |= 0x00000800;
12429  minOrthogonalityForLpConstraints_ = value;
12430  onChanged();
12431  return this;
12432  }
12445  bitField2_ = (bitField2_ & ~0x00000800);
12446  minOrthogonalityForLpConstraints_ = 0D;
12447  onChanged();
12448  return this;
12449  }
12450 
12451  private long maxInactiveCount_ = 1000L;
12460  public boolean hasMaxInactiveCount() {
12461  return ((bitField2_ & 0x00001000) != 0);
12462  }
12471  public long getMaxInactiveCount() {
12472  return maxInactiveCount_;
12473  }
12482  public Builder setMaxInactiveCount(long value) {
12483  bitField2_ |= 0x00001000;
12484  maxInactiveCount_ = value;
12485  onChanged();
12486  return this;
12487  }
12497  bitField2_ = (bitField2_ & ~0x00001000);
12498  maxInactiveCount_ = 1000L;
12499  onChanged();
12500  return this;
12501  }
12502 
12503  private long constraintRemovalBatchSize_ = 100L;
12513  return ((bitField2_ & 0x00002000) != 0);
12514  }
12524  return constraintRemovalBatchSize_;
12525  }
12535  bitField2_ |= 0x00002000;
12536  constraintRemovalBatchSize_ = value;
12537  onChanged();
12538  return this;
12539  }
12549  bitField2_ = (bitField2_ & ~0x00002000);
12550  constraintRemovalBatchSize_ = 100L;
12551  onChanged();
12552  return this;
12553  }
12554 
12555  private int searchBranching_ = 0;
12559  public boolean hasSearchBranching() {
12560  return ((bitField2_ & 0x00004000) != 0);
12561  }
12566  @SuppressWarnings("deprecation")
12568  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
12569  }
12574  if (value == null) {
12575  throw new NullPointerException();
12576  }
12577  bitField2_ |= 0x00004000;
12578  searchBranching_ = value.getNumber();
12579  onChanged();
12580  return this;
12581  }
12586  bitField2_ = (bitField2_ & ~0x00004000);
12587  searchBranching_ = 0;
12588  onChanged();
12589  return this;
12590  }
12591 
12592  private boolean exploitIntegerLpSolution_ = true;
12603  public boolean hasExploitIntegerLpSolution() {
12604  return ((bitField2_ & 0x00008000) != 0);
12605  }
12616  public boolean getExploitIntegerLpSolution() {
12617  return exploitIntegerLpSolution_;
12618  }
12629  public Builder setExploitIntegerLpSolution(boolean value) {
12630  bitField2_ |= 0x00008000;
12631  exploitIntegerLpSolution_ = value;
12632  onChanged();
12633  return this;
12634  }
12646  bitField2_ = (bitField2_ & ~0x00008000);
12647  exploitIntegerLpSolution_ = true;
12648  onChanged();
12649  return this;
12650  }
12651 
12652  private boolean exploitAllLpSolution_ = true;
12662  public boolean hasExploitAllLpSolution() {
12663  return ((bitField2_ & 0x00010000) != 0);
12664  }
12674  public boolean getExploitAllLpSolution() {
12675  return exploitAllLpSolution_;
12676  }
12686  public Builder setExploitAllLpSolution(boolean value) {
12687  bitField2_ |= 0x00010000;
12688  exploitAllLpSolution_ = value;
12689  onChanged();
12690  return this;
12691  }
12702  bitField2_ = (bitField2_ & ~0x00010000);
12703  exploitAllLpSolution_ = true;
12704  onChanged();
12705  return this;
12706  }
12707 
12708  private boolean exploitBestSolution_ ;
12716  public boolean hasExploitBestSolution() {
12717  return ((bitField2_ & 0x00020000) != 0);
12718  }
12726  public boolean getExploitBestSolution() {
12727  return exploitBestSolution_;
12728  }
12736  public Builder setExploitBestSolution(boolean value) {
12737  bitField2_ |= 0x00020000;
12738  exploitBestSolution_ = value;
12739  onChanged();
12740  return this;
12741  }
12750  bitField2_ = (bitField2_ & ~0x00020000);
12751  exploitBestSolution_ = false;
12752  onChanged();
12753  return this;
12754  }
12755 
12756  private boolean exploitObjective_ = true;
12765  public boolean hasExploitObjective() {
12766  return ((bitField2_ & 0x00040000) != 0);
12767  }
12776  public boolean getExploitObjective() {
12777  return exploitObjective_;
12778  }
12787  public Builder setExploitObjective(boolean value) {
12788  bitField2_ |= 0x00040000;
12789  exploitObjective_ = value;
12790  onChanged();
12791  return this;
12792  }
12802  bitField2_ = (bitField2_ & ~0x00040000);
12803  exploitObjective_ = true;
12804  onChanged();
12805  return this;
12806  }
12807 
12808  private long pseudoCostReliabilityThreshold_ = 100L;
12818  return ((bitField2_ & 0x00080000) != 0);
12819  }
12829  return pseudoCostReliabilityThreshold_;
12830  }
12840  bitField2_ |= 0x00080000;
12841  pseudoCostReliabilityThreshold_ = value;
12842  onChanged();
12843  return this;
12844  }
12854  bitField2_ = (bitField2_ & ~0x00080000);
12855  pseudoCostReliabilityThreshold_ = 100L;
12856  onChanged();
12857  return this;
12858  }
12859 
12860  private boolean optimizeWithCore_ ;
12871  public boolean hasOptimizeWithCore() {
12872  return ((bitField2_ & 0x00100000) != 0);
12873  }
12884  public boolean getOptimizeWithCore() {
12885  return optimizeWithCore_;
12886  }
12897  public Builder setOptimizeWithCore(boolean value) {
12898  bitField2_ |= 0x00100000;
12899  optimizeWithCore_ = value;
12900  onChanged();
12901  return this;
12902  }
12914  bitField2_ = (bitField2_ & ~0x00100000);
12915  optimizeWithCore_ = false;
12916  onChanged();
12917  return this;
12918  }
12919 
12920  private int binarySearchNumConflicts_ = -1;
12931  public boolean hasBinarySearchNumConflicts() {
12932  return ((bitField2_ & 0x00200000) != 0);
12933  }
12945  return binarySearchNumConflicts_;
12946  }
12958  bitField2_ |= 0x00200000;
12959  binarySearchNumConflicts_ = value;
12960  onChanged();
12961  return this;
12962  }
12974  bitField2_ = (bitField2_ & ~0x00200000);
12975  binarySearchNumConflicts_ = -1;
12976  onChanged();
12977  return this;
12978  }
12979 
12980  private boolean optimizeWithMaxHs_ ;
12993  public boolean hasOptimizeWithMaxHs() {
12994  return ((bitField2_ & 0x00400000) != 0);
12995  }
13008  public boolean getOptimizeWithMaxHs() {
13009  return optimizeWithMaxHs_;
13010  }
13023  public Builder setOptimizeWithMaxHs(boolean value) {
13024  bitField2_ |= 0x00400000;
13025  optimizeWithMaxHs_ = value;
13026  onChanged();
13027  return this;
13028  }
13042  bitField2_ = (bitField2_ & ~0x00400000);
13043  optimizeWithMaxHs_ = false;
13044  onChanged();
13045  return this;
13046  }
13047 
13048  private boolean cpModelPresolve_ = true;
13056  public boolean hasCpModelPresolve() {
13057  return ((bitField2_ & 0x00800000) != 0);
13058  }
13066  public boolean getCpModelPresolve() {
13067  return cpModelPresolve_;
13068  }
13076  public Builder setCpModelPresolve(boolean value) {
13077  bitField2_ |= 0x00800000;
13078  cpModelPresolve_ = value;
13079  onChanged();
13080  return this;
13081  }
13090  bitField2_ = (bitField2_ & ~0x00800000);
13091  cpModelPresolve_ = true;
13092  onChanged();
13093  return this;
13094  }
13095 
13096  private int cpModelProbingLevel_ = 2;
13104  public boolean hasCpModelProbingLevel() {
13105  return ((bitField2_ & 0x01000000) != 0);
13106  }
13114  public int getCpModelProbingLevel() {
13115  return cpModelProbingLevel_;
13116  }
13124  public Builder setCpModelProbingLevel(int value) {
13125  bitField2_ |= 0x01000000;
13126  cpModelProbingLevel_ = value;
13127  onChanged();
13128  return this;
13129  }
13138  bitField2_ = (bitField2_ & ~0x01000000);
13139  cpModelProbingLevel_ = 2;
13140  onChanged();
13141  return this;
13142  }
13143 
13144  private boolean cpModelUseSatPresolve_ = true;
13152  public boolean hasCpModelUseSatPresolve() {
13153  return ((bitField2_ & 0x02000000) != 0);
13154  }
13162  public boolean getCpModelUseSatPresolve() {
13163  return cpModelUseSatPresolve_;
13164  }
13172  public Builder setCpModelUseSatPresolve(boolean value) {
13173  bitField2_ |= 0x02000000;
13174  cpModelUseSatPresolve_ = value;
13175  onChanged();
13176  return this;
13177  }
13186  bitField2_ = (bitField2_ & ~0x02000000);
13187  cpModelUseSatPresolve_ = true;
13188  onChanged();
13189  return this;
13190  }
13191 
13192  private boolean enumerateAllSolutions_ ;
13205  public boolean hasEnumerateAllSolutions() {
13206  return ((bitField2_ & 0x04000000) != 0);
13207  }
13220  public boolean getEnumerateAllSolutions() {
13221  return enumerateAllSolutions_;
13222  }
13235  public Builder setEnumerateAllSolutions(boolean value) {
13236  bitField2_ |= 0x04000000;
13237  enumerateAllSolutions_ = value;
13238  onChanged();
13239  return this;
13240  }
13254  bitField2_ = (bitField2_ & ~0x04000000);
13255  enumerateAllSolutions_ = false;
13256  onChanged();
13257  return this;
13258  }
13259 
13260  private boolean fillTightenedDomainsInResponse_ ;
13273  return ((bitField2_ & 0x08000000) != 0);
13274  }
13287  return fillTightenedDomainsInResponse_;
13288  }
13301  bitField2_ |= 0x08000000;
13302  fillTightenedDomainsInResponse_ = value;
13303  onChanged();
13304  return this;
13305  }
13318  bitField2_ = (bitField2_ & ~0x08000000);
13319  fillTightenedDomainsInResponse_ = false;
13320  onChanged();
13321  return this;
13322  }
13323 
13324  private boolean instantiateAllVariables_ = true;
13333  public boolean hasInstantiateAllVariables() {
13334  return ((bitField2_ & 0x10000000) != 0);
13335  }
13344  public boolean getInstantiateAllVariables() {
13345  return instantiateAllVariables_;
13346  }
13355  public Builder setInstantiateAllVariables(boolean value) {
13356  bitField2_ |= 0x10000000;
13357  instantiateAllVariables_ = value;
13358  onChanged();
13359  return this;
13360  }
13370  bitField2_ = (bitField2_ & ~0x10000000);
13371  instantiateAllVariables_ = true;
13372  onChanged();
13373  return this;
13374  }
13375 
13376  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
13388  return ((bitField2_ & 0x20000000) != 0);
13389  }
13401  return autoDetectGreaterThanAtLeastOneOf_;
13402  }
13414  bitField2_ |= 0x20000000;
13415  autoDetectGreaterThanAtLeastOneOf_ = value;
13416  onChanged();
13417  return this;
13418  }
13430  bitField2_ = (bitField2_ & ~0x20000000);
13431  autoDetectGreaterThanAtLeastOneOf_ = true;
13432  onChanged();
13433  return this;
13434  }
13435 
13436  private boolean stopAfterFirstSolution_ ;
13444  public boolean hasStopAfterFirstSolution() {
13445  return ((bitField2_ & 0x40000000) != 0);
13446  }
13454  public boolean getStopAfterFirstSolution() {
13455  return stopAfterFirstSolution_;
13456  }
13464  public Builder setStopAfterFirstSolution(boolean value) {
13465  bitField2_ |= 0x40000000;
13466  stopAfterFirstSolution_ = value;
13467  onChanged();
13468  return this;
13469  }
13478  bitField2_ = (bitField2_ & ~0x40000000);
13479  stopAfterFirstSolution_ = false;
13480  onChanged();
13481  return this;
13482  }
13483 
13484  private int numSearchWorkers_ ;
13495  public boolean hasNumSearchWorkers() {
13496  return ((bitField2_ & 0x80000000) != 0);
13497  }
13508  public int getNumSearchWorkers() {
13509  return numSearchWorkers_;
13510  }
13521  public Builder setNumSearchWorkers(int value) {
13522  bitField2_ |= 0x80000000;
13523  numSearchWorkers_ = value;
13524  onChanged();
13525  return this;
13526  }
13538  bitField2_ = (bitField2_ & ~0x80000000);
13539  numSearchWorkers_ = 0;
13540  onChanged();
13541  return this;
13542  }
13543 
13544  private boolean shareObjectiveBounds_ = true;
13552  public boolean hasShareObjectiveBounds() {
13553  return ((bitField3_ & 0x00000001) != 0);
13554  }
13562  public boolean getShareObjectiveBounds() {
13563  return shareObjectiveBounds_;
13564  }
13572  public Builder setShareObjectiveBounds(boolean value) {
13573  bitField3_ |= 0x00000001;
13574  shareObjectiveBounds_ = value;
13575  onChanged();
13576  return this;
13577  }
13586  bitField3_ = (bitField3_ & ~0x00000001);
13587  shareObjectiveBounds_ = true;
13588  onChanged();
13589  return this;
13590  }
13591 
13592  private boolean shareLevelZeroBounds_ = true;
13600  public boolean hasShareLevelZeroBounds() {
13601  return ((bitField3_ & 0x00000002) != 0);
13602  }
13610  public boolean getShareLevelZeroBounds() {
13611  return shareLevelZeroBounds_;
13612  }
13620  public Builder setShareLevelZeroBounds(boolean value) {
13621  bitField3_ |= 0x00000002;
13622  shareLevelZeroBounds_ = value;
13623  onChanged();
13624  return this;
13625  }
13634  bitField3_ = (bitField3_ & ~0x00000002);
13635  shareLevelZeroBounds_ = true;
13636  onChanged();
13637  return this;
13638  }
13639 
13640  private boolean useLns_ ;
13648  public boolean hasUseLns() {
13649  return ((bitField3_ & 0x00000004) != 0);
13650  }
13658  public boolean getUseLns() {
13659  return useLns_;
13660  }
13668  public Builder setUseLns(boolean value) {
13669  bitField3_ |= 0x00000004;
13670  useLns_ = value;
13671  onChanged();
13672  return this;
13673  }
13682  bitField3_ = (bitField3_ & ~0x00000004);
13683  useLns_ = false;
13684  onChanged();
13685  return this;
13686  }
13687 
13688  private int lnsNumThreads_ = 1;
13692  public boolean hasLnsNumThreads() {
13693  return ((bitField3_ & 0x00000008) != 0);
13694  }
13698  public int getLnsNumThreads() {
13699  return lnsNumThreads_;
13700  }
13704  public Builder setLnsNumThreads(int value) {
13705  bitField3_ |= 0x00000008;
13706  lnsNumThreads_ = value;
13707  onChanged();
13708  return this;
13709  }
13714  bitField3_ = (bitField3_ & ~0x00000008);
13715  lnsNumThreads_ = 1;
13716  onChanged();
13717  return this;
13718  }
13719 
13720  private boolean lnsIsDeterministic_ = true;
13724  public boolean hasLnsIsDeterministic() {
13725  return ((bitField3_ & 0x00000010) != 0);
13726  }
13730  public boolean getLnsIsDeterministic() {
13731  return lnsIsDeterministic_;
13732  }
13736  public Builder setLnsIsDeterministic(boolean value) {
13737  bitField3_ |= 0x00000010;
13738  lnsIsDeterministic_ = value;
13739  onChanged();
13740  return this;
13741  }
13746  bitField3_ = (bitField3_ & ~0x00000010);
13747  lnsIsDeterministic_ = true;
13748  onChanged();
13749  return this;
13750  }
13751 
13752  private boolean lnsFocusOnDecisionVariables_ ;
13757  return ((bitField3_ & 0x00000020) != 0);
13758  }
13763  return lnsFocusOnDecisionVariables_;
13764  }
13768  public Builder setLnsFocusOnDecisionVariables(boolean value) {
13769  bitField3_ |= 0x00000020;
13770  lnsFocusOnDecisionVariables_ = value;
13771  onChanged();
13772  return this;
13773  }
13778  bitField3_ = (bitField3_ & ~0x00000020);
13779  lnsFocusOnDecisionVariables_ = false;
13780  onChanged();
13781  return this;
13782  }
13783 
13784  private boolean useRinsLns_ ;
13792  public boolean hasUseRinsLns() {
13793  return ((bitField3_ & 0x00000040) != 0);
13794  }
13802  public boolean getUseRinsLns() {
13803  return useRinsLns_;
13804  }
13812  public Builder setUseRinsLns(boolean value) {
13813  bitField3_ |= 0x00000040;
13814  useRinsLns_ = value;
13815  onChanged();
13816  return this;
13817  }
13826  bitField3_ = (bitField3_ & ~0x00000040);
13827  useRinsLns_ = false;
13828  onChanged();
13829  return this;
13830  }
13831 
13832  private boolean randomizeSearch_ ;
13840  public boolean hasRandomizeSearch() {
13841  return ((bitField3_ & 0x00000080) != 0);
13842  }
13850  public boolean getRandomizeSearch() {
13851  return randomizeSearch_;
13852  }
13860  public Builder setRandomizeSearch(boolean value) {
13861  bitField3_ |= 0x00000080;
13862  randomizeSearch_ = value;
13863  onChanged();
13864  return this;
13865  }
13874  bitField3_ = (bitField3_ & ~0x00000080);
13875  randomizeSearch_ = false;
13876  onChanged();
13877  return this;
13878  }
13879 
13880  private long searchRandomizationTolerance_ ;
13895  return ((bitField3_ & 0x00000100) != 0);
13896  }
13911  return searchRandomizationTolerance_;
13912  }
13927  bitField3_ |= 0x00000100;
13928  searchRandomizationTolerance_ = value;
13929  onChanged();
13930  return this;
13931  }
13946  bitField3_ = (bitField3_ & ~0x00000100);
13947  searchRandomizationTolerance_ = 0L;
13948  onChanged();
13949  return this;
13950  }
13951 
13952  private boolean useOptionalVariables_ = true;
13962  public boolean hasUseOptionalVariables() {
13963  return ((bitField3_ & 0x00000200) != 0);
13964  }
13974  public boolean getUseOptionalVariables() {
13975  return useOptionalVariables_;
13976  }
13986  public Builder setUseOptionalVariables(boolean value) {
13987  bitField3_ |= 0x00000200;
13988  useOptionalVariables_ = value;
13989  onChanged();
13990  return this;
13991  }
14002  bitField3_ = (bitField3_ & ~0x00000200);
14003  useOptionalVariables_ = true;
14004  onChanged();
14005  return this;
14006  }
14007 
14008  private boolean useExactLpReason_ = true;
14019  public boolean hasUseExactLpReason() {
14020  return ((bitField3_ & 0x00000400) != 0);
14021  }
14032  public boolean getUseExactLpReason() {
14033  return useExactLpReason_;
14034  }
14045  public Builder setUseExactLpReason(boolean value) {
14046  bitField3_ |= 0x00000400;
14047  useExactLpReason_ = value;
14048  onChanged();
14049  return this;
14050  }
14062  bitField3_ = (bitField3_ & ~0x00000400);
14063  useExactLpReason_ = true;
14064  onChanged();
14065  return this;
14066  }
14067 
14068  private boolean useCombinedNoOverlap_ ;
14078  public boolean hasUseCombinedNoOverlap() {
14079  return ((bitField3_ & 0x00000800) != 0);
14080  }
14090  public boolean getUseCombinedNoOverlap() {
14091  return useCombinedNoOverlap_;
14092  }
14102  public Builder setUseCombinedNoOverlap(boolean value) {
14103  bitField3_ |= 0x00000800;
14104  useCombinedNoOverlap_ = value;
14105  onChanged();
14106  return this;
14107  }
14118  bitField3_ = (bitField3_ & ~0x00000800);
14119  useCombinedNoOverlap_ = false;
14120  onChanged();
14121  return this;
14122  }
14123 
14124  private double mipMaxBound_ = 10000000D;
14134  public boolean hasMipMaxBound() {
14135  return ((bitField3_ & 0x00001000) != 0);
14136  }
14146  public double getMipMaxBound() {
14147  return mipMaxBound_;
14148  }
14158  public Builder setMipMaxBound(double value) {
14159  bitField3_ |= 0x00001000;
14160  mipMaxBound_ = value;
14161  onChanged();
14162  return this;
14163  }
14174  bitField3_ = (bitField3_ & ~0x00001000);
14175  mipMaxBound_ = 10000000D;
14176  onChanged();
14177  return this;
14178  }
14179 
14180  private double mipVarScaling_ = 1D;
14190  public boolean hasMipVarScaling() {
14191  return ((bitField3_ & 0x00002000) != 0);
14192  }
14202  public double getMipVarScaling() {
14203  return mipVarScaling_;
14204  }
14214  public Builder setMipVarScaling(double value) {
14215  bitField3_ |= 0x00002000;
14216  mipVarScaling_ = value;
14217  onChanged();
14218  return this;
14219  }
14230  bitField3_ = (bitField3_ & ~0x00002000);
14231  mipVarScaling_ = 1D;
14232  onChanged();
14233  return this;
14234  }
14235 
14236  private double mipWantedPrecision_ = 1e-06D;
14252  public boolean hasMipWantedPrecision() {
14253  return ((bitField3_ & 0x00004000) != 0);
14254  }
14270  public double getMipWantedPrecision() {
14271  return mipWantedPrecision_;
14272  }
14288  public Builder setMipWantedPrecision(double value) {
14289  bitField3_ |= 0x00004000;
14290  mipWantedPrecision_ = value;
14291  onChanged();
14292  return this;
14293  }
14310  bitField3_ = (bitField3_ & ~0x00004000);
14311  mipWantedPrecision_ = 1e-06D;
14312  onChanged();
14313  return this;
14314  }
14315 
14316  private int mipMaxActivityExponent_ = 53;
14330  public boolean hasMipMaxActivityExponent() {
14331  return ((bitField3_ & 0x00008000) != 0);
14332  }
14347  return mipMaxActivityExponent_;
14348  }
14363  bitField3_ |= 0x00008000;
14364  mipMaxActivityExponent_ = value;
14365  onChanged();
14366  return this;
14367  }
14382  bitField3_ = (bitField3_ & ~0x00008000);
14383  mipMaxActivityExponent_ = 53;
14384  onChanged();
14385  return this;
14386  }
14387 
14388  private double mipCheckPrecision_ = 0.0001D;
14399  public boolean hasMipCheckPrecision() {
14400  return ((bitField3_ & 0x00010000) != 0);
14401  }
14412  public double getMipCheckPrecision() {
14413  return mipCheckPrecision_;
14414  }
14425  public Builder setMipCheckPrecision(double value) {
14426  bitField3_ |= 0x00010000;
14427  mipCheckPrecision_ = value;
14428  onChanged();
14429  return this;
14430  }
14442  bitField3_ = (bitField3_ & ~0x00010000);
14443  mipCheckPrecision_ = 0.0001D;
14444  onChanged();
14445  return this;
14446  }
14447  @java.lang.Override
14449  final com.google.protobuf.UnknownFieldSet unknownFields) {
14450  return super.setUnknownFields(unknownFields);
14451  }
14452 
14453  @java.lang.Override
14455  final com.google.protobuf.UnknownFieldSet unknownFields) {
14456  return super.mergeUnknownFields(unknownFields);
14457  }
14458 
14459 
14460  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
14461  }
14462 
14463  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
14464  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
14465  static {
14466  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
14467  }
14468 
14470  return DEFAULT_INSTANCE;
14471  }
14472 
14473  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
14474  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
14475  @java.lang.Override
14476  public SatParameters parsePartialFrom(
14477  com.google.protobuf.CodedInputStream input,
14478  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14479  throws com.google.protobuf.InvalidProtocolBufferException {
14480  return new SatParameters(input, extensionRegistry);
14481  }
14482  };
14483 
14484  public static com.google.protobuf.Parser<SatParameters> parser() {
14485  return PARSER;
14486  }
14487 
14488  @java.lang.Override
14489  public com.google.protobuf.Parser<SatParameters> getParserForType() {
14490  return PARSER;
14491  }
14492 
14493  @java.lang.Override
14495  return DEFAULT_INSTANCE;
14496  }
14497 
14498 }
14499 
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];