OR-Tools  7.1
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  useOptionalVariables_ = true;
100  useExactLpReason_ = true;
101  mipMaxBound_ = 10000000D;
102  mipVarScaling_ = 1D;
103  mipWantedPrecision_ = 1e-06D;
104  mipMaxActivityExponent_ = 53;
105  mipCheckPrecision_ = 0.0001D;
106  }
107 
108  @java.lang.Override
109  public final com.google.protobuf.UnknownFieldSet
111  return this.unknownFields;
112  }
113  private SatParameters(
114  com.google.protobuf.CodedInputStream input,
115  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
116  throws com.google.protobuf.InvalidProtocolBufferException {
117  this();
118  if (extensionRegistry == null) {
119  throw new java.lang.NullPointerException();
120  }
121  int mutable_bitField0_ = 0;
122  int mutable_bitField1_ = 0;
123  int mutable_bitField2_ = 0;
124  int mutable_bitField3_ = 0;
125  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
126  com.google.protobuf.UnknownFieldSet.newBuilder();
127  try {
128  boolean done = false;
129  while (!done) {
130  int tag = input.readTag();
131  switch (tag) {
132  case 0:
133  done = true;
134  break;
135  case 8: {
136  int rawValue = input.readEnum();
137  @SuppressWarnings("deprecation")
138  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
139  if (value == null) {
140  unknownFields.mergeVarintField(1, rawValue);
141  } else {
142  bitField0_ |= 0x00000001;
143  preferredVariableOrder_ = rawValue;
144  }
145  break;
146  }
147  case 16: {
148  int rawValue = input.readEnum();
149  @SuppressWarnings("deprecation")
150  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
151  if (value == null) {
152  unknownFields.mergeVarintField(2, rawValue);
153  } else {
154  bitField0_ |= 0x00000002;
155  initialPolarity_ = rawValue;
156  }
157  break;
158  }
159  case 32: {
160  int rawValue = input.readEnum();
161  @SuppressWarnings("deprecation")
162  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
163  if (value == null) {
164  unknownFields.mergeVarintField(4, rawValue);
165  } else {
166  bitField0_ |= 0x00000100;
167  minimizationAlgorithm_ = rawValue;
168  }
169  break;
170  }
171  case 88: {
172  bitField0_ |= 0x00000800;
173  clauseCleanupPeriod_ = input.readInt32();
174  break;
175  }
176  case 104: {
177  bitField0_ |= 0x00001000;
178  clauseCleanupTarget_ = input.readInt32();
179  break;
180  }
181  case 121: {
182  bitField0_ |= 0x00100000;
183  variableActivityDecay_ = input.readDouble();
184  break;
185  }
186  case 129: {
187  bitField0_ |= 0x00200000;
188  maxVariableActivityValue_ = input.readDouble();
189  break;
190  }
191  case 137: {
192  bitField0_ |= 0x02000000;
193  clauseActivityDecay_ = input.readDouble();
194  break;
195  }
196  case 145: {
197  bitField0_ |= 0x04000000;
198  maxClauseActivityValue_ = input.readDouble();
199  break;
200  }
201  case 177: {
202  bitField0_ |= 0x00400000;
203  glucoseMaxDecay_ = input.readDouble();
204  break;
205  }
206  case 185: {
207  bitField0_ |= 0x00800000;
208  glucoseDecayIncrement_ = input.readDouble();
209  break;
210  }
211  case 192: {
212  bitField0_ |= 0x01000000;
213  glucoseDecayIncrementPeriod_ = input.readInt32();
214  break;
215  }
216  case 240: {
217  bitField0_ |= 0x10000000;
218  restartPeriod_ = input.readInt32();
219  break;
220  }
221  case 248: {
222  bitField1_ |= 0x00000400;
223  randomSeed_ = input.readInt32();
224  break;
225  }
226  case 257: {
227  bitField0_ |= 0x00000010;
228  randomBranchesRatio_ = input.readDouble();
229  break;
230  }
231  case 264: {
232  bitField1_ |= 0x00000200;
233  treatBinaryClausesSeparately_ = input.readBool();
234  break;
235  }
236  case 272: {
237  int rawValue = input.readEnum();
238  @SuppressWarnings("deprecation")
239  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
240  if (value == null) {
241  unknownFields.mergeVarintField(34, rawValue);
242  } else {
243  bitField0_ |= 0x00000200;
244  binaryMinimizationAlgorithm_ = rawValue;
245  }
246  break;
247  }
248  case 280: {
249  bitField1_ |= 0x00200000;
250  useOptimizationHints_ = input.readBool();
251  break;
252  }
253  case 289: {
254  bitField1_ |= 0x00000020;
255  maxTimeInSeconds_ = input.readDouble();
256  break;
257  }
258  case 296: {
259  bitField1_ |= 0x00000080;
260  maxNumberOfConflicts_ = input.readInt64();
261  break;
262  }
263  case 320: {
264  bitField1_ |= 0x00000100;
265  maxMemoryInMb_ = input.readInt64();
266  break;
267  }
268  case 328: {
269  bitField1_ |= 0x00000800;
270  logSearchProgress_ = input.readBool();
271  break;
272  }
273  case 344: {
274  bitField1_ |= 0x00001000;
275  usePbResolution_ = input.readBool();
276  break;
277  }
278  case 352: {
279  bitField0_ |= 0x00000004;
280  usePhaseSaving_ = input.readBool();
281  break;
282  }
283  case 361: {
284  bitField0_ |= 0x00000008;
285  randomPolarityRatio_ = input.readDouble();
286  break;
287  }
288  case 368: {
289  bitField0_ |= 0x00010000;
290  pbCleanupIncrement_ = input.readInt32();
291  break;
292  }
293  case 377: {
294  bitField0_ |= 0x00020000;
295  pbCleanupRatio_ = input.readDouble();
296  break;
297  }
298  case 384: {
299  bitField1_ |= 0x00002000;
300  minimizeReductionDuringPbResolution_ = input.readBool();
301  break;
302  }
303  case 392: {
304  bitField1_ |= 0x00004000;
305  countAssumptionLevelsInLbd_ = input.readBool();
306  break;
307  }
308  case 400: {
309  bitField1_ |= 0x00400000;
310  minimizeCore_ = input.readBool();
311  break;
312  }
313  case 408: {
314  int rawValue = input.readEnum();
315  @SuppressWarnings("deprecation")
316  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
317  if (value == null) {
318  unknownFields.mergeVarintField(51, rawValue);
319  } else {
320  bitField1_ |= 0x02000000;
321  maxSatAssumptionOrder_ = rawValue;
322  }
323  break;
324  }
325  case 416: {
326  bitField1_ |= 0x04000000;
327  maxSatReverseAssumptionOrder_ = input.readBool();
328  break;
329  }
330  case 424: {
331  int rawValue = input.readEnum();
332  @SuppressWarnings("deprecation")
333  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
334  if (value == null) {
335  unknownFields.mergeVarintField(53, rawValue);
336  } else {
337  bitField1_ |= 0x08000000;
338  maxSatStratification_ = rawValue;
339  }
340  break;
341  }
342  case 432: {
343  bitField1_ |= 0x00008000;
344  presolveBveThreshold_ = input.readInt32();
345  break;
346  }
347  case 440: {
348  bitField1_ |= 0x00010000;
349  presolveBveClauseWeight_ = input.readInt32();
350  break;
351  }
352  case 448: {
353  bitField0_ |= 0x00000400;
354  subsumptionDuringConflictAnalysis_ = input.readBool();
355  break;
356  }
357  case 457: {
358  bitField1_ |= 0x00020000;
359  presolveProbingDeterministicTimeLimit_ = input.readDouble();
360  break;
361  }
362  case 464: {
363  int rawValue = input.readEnum();
364  @SuppressWarnings("deprecation")
365  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
366  if (value == null) {
367  unknownFields.mergeVarintField(58, rawValue);
368  } else {
369  bitField0_ |= 0x00002000;
370  clauseCleanupProtection_ = rawValue;
371  }
372  break;
373  }
374  case 472: {
375  bitField0_ |= 0x00004000;
376  clauseCleanupLbdBound_ = input.readInt32();
377  break;
378  }
379  case 480: {
380  int rawValue = input.readEnum();
381  @SuppressWarnings("deprecation")
382  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
383  if (value == null) {
384  unknownFields.mergeVarintField(60, rawValue);
385  } else {
386  bitField0_ |= 0x00008000;
387  clauseCleanupOrdering_ = rawValue;
388  }
389  break;
390  }
391  case 488: {
392  int rawValue = input.readEnum();
393  @SuppressWarnings("deprecation")
394  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
395  if (value == null) {
396  unknownFields.mergeVarintField(61, rawValue);
397  } else {
398  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
399  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
400  mutable_bitField0_ |= 0x08000000;
401  }
402  restartAlgorithms_.add(rawValue);
403  }
404  break;
405  }
406  case 490: {
407  int length = input.readRawVarint32();
408  int oldLimit = input.pushLimit(length);
409  while(input.getBytesUntilLimit() > 0) {
410  int rawValue = input.readEnum();
411  @SuppressWarnings("deprecation")
412  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
413  if (value == null) {
414  unknownFields.mergeVarintField(61, rawValue);
415  } else {
416  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
417  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
418  mutable_bitField0_ |= 0x08000000;
419  }
420  restartAlgorithms_.add(rawValue);
421  }
422  }
423  input.popLimit(oldLimit);
424  break;
425  }
426  case 496: {
427  bitField0_ |= 0x20000000;
428  restartRunningWindowSize_ = input.readInt32();
429  break;
430  }
431  case 505: {
432  bitField0_ |= 0x40000000;
433  restartDlAverageRatio_ = input.readDouble();
434  break;
435  }
436  case 512: {
437  bitField1_ |= 0x00000001;
438  useBlockingRestart_ = input.readBool();
439  break;
440  }
441  case 520: {
442  bitField1_ |= 0x00000002;
443  blockingRestartWindowSize_ = input.readInt32();
444  break;
445  }
446  case 529: {
447  bitField1_ |= 0x00000004;
448  blockingRestartMultiplier_ = input.readDouble();
449  break;
450  }
451  case 537: {
452  bitField1_ |= 0x00000040;
453  maxDeterministicTime_ = input.readDouble();
454  break;
455  }
456  case 544: {
457  bitField1_ |= 0x00000008;
458  numConflictsBeforeStrategyChanges_ = input.readInt32();
459  break;
460  }
461  case 553: {
462  bitField1_ |= 0x00000010;
463  strategyChangeIncreaseRatio_ = input.readDouble();
464  break;
465  }
466  case 562: {
467  com.google.protobuf.ByteString bs = input.readBytes();
468  bitField0_ |= 0x08000000;
469  defaultRestartAlgorithms_ = bs;
470  break;
471  }
472  case 569: {
473  bitField0_ |= 0x80000000;
474  restartLbdAverageRatio_ = input.readDouble();
475  break;
476  }
477  case 576: {
478  bitField1_ |= 0x00080000;
479  presolveUseBva_ = input.readBool();
480  break;
481  }
482  case 584: {
483  bitField1_ |= 0x00100000;
484  presolveBvaThreshold_ = input.readInt32();
485  break;
486  }
487  case 592: {
488  bitField1_ |= 0x10000000;
489  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
490  break;
491  }
492  case 600: {
493  bitField0_ |= 0x00000020;
494  useErwaHeuristic_ = input.readBool();
495  break;
496  }
497  case 609: {
498  bitField0_ |= 0x00000040;
499  initialVariablesActivity_ = input.readDouble();
500  break;
501  }
502  case 616: {
503  bitField0_ |= 0x00000080;
504  alsoBumpVariablesInConflictReasons_ = input.readBool();
505  break;
506  }
507  case 624: {
508  bitField1_ |= 0x20000000;
509  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
510  break;
511  }
512  case 632: {
513  bitField1_ |= 0x40000000;
514  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
515  break;
516  }
517  case 640: {
518  bitField1_ |= 0x80000000;
519  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
520  break;
521  }
522  case 656: {
523  int rawValue = input.readEnum();
524  @SuppressWarnings("deprecation")
525  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
526  if (value == null) {
527  unknownFields.mergeVarintField(82, rawValue);
528  } else {
529  bitField2_ |= 0x00002000;
530  searchBranching_ = rawValue;
531  }
532  break;
533  }
534  case 664: {
535  bitField2_ |= 0x00080000;
536  optimizeWithCore_ = input.readBool();
537  break;
538  }
539  case 672: {
540  bitField1_ |= 0x00800000;
541  findMultipleCores_ = input.readBool();
542  break;
543  }
544  case 680: {
545  bitField2_ |= 0x00200000;
546  optimizeWithMaxHs_ = input.readBool();
547  break;
548  }
549  case 688: {
550  bitField2_ |= 0x00400000;
551  cpModelPresolve_ = input.readBool();
552  break;
553  }
554  case 696: {
555  bitField2_ |= 0x02000000;
556  enumerateAllSolutions_ = input.readBool();
557  break;
558  }
559  case 704: {
560  bitField1_ |= 0x00040000;
561  presolveBlockedClause_ = input.readBool();
562  break;
563  }
564  case 712: {
565  bitField1_ |= 0x01000000;
566  coverOptimization_ = input.readBool();
567  break;
568  }
569  case 720: {
570  bitField2_ |= 0x00000001;
571  linearizationLevel_ = input.readInt32();
572  break;
573  }
574  case 728: {
575  bitField2_ |= 0x00000004;
576  maxNumCuts_ = input.readInt32();
577  break;
578  }
579  case 736: {
580  bitField2_ |= 0x00000008;
581  onlyAddCutsAtLevelZero_ = input.readBool();
582  break;
583  }
584  case 744: {
585  bitField2_ |= 0x01000000;
586  cpModelUseSatPresolve_ = input.readBool();
587  break;
588  }
589  case 752: {
590  bitField2_ |= 0x00004000;
591  exploitIntegerLpSolution_ = input.readBool();
592  break;
593  }
594  case 760: {
595  bitField2_ |= 0x10000000;
596  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
597  break;
598  }
599  case 768: {
600  bitField0_ |= 0x00040000;
601  minimizeWithPropagationRestartPeriod_ = input.readInt32();
602  break;
603  }
604  case 776: {
605  bitField0_ |= 0x00080000;
606  minimizeWithPropagationNumDecisions_ = input.readInt32();
607  break;
608  }
609  case 784: {
610  bitField2_ |= 0x20000000;
611  stopAfterFirstSolution_ = input.readBool();
612  break;
613  }
614  case 792: {
615  bitField2_ |= 0x00100000;
616  binarySearchNumConflicts_ = input.readInt32();
617  break;
618  }
619  case 800: {
620  bitField2_ |= 0x40000000;
621  numSearchWorkers_ = input.readInt32();
622  break;
623  }
624  case 808: {
625  bitField3_ |= 0x00000002;
626  useLns_ = input.readBool();
627  break;
628  }
629  case 816: {
630  bitField3_ |= 0x00000004;
631  lnsNumThreads_ = input.readInt32();
632  break;
633  }
634  case 824: {
635  bitField3_ |= 0x00000020;
636  randomizeSearch_ = input.readBool();
637  break;
638  }
639  case 832: {
640  bitField3_ |= 0x00000040;
641  searchRandomizationTolerance_ = input.readInt64();
642  break;
643  }
644  case 840: {
645  bitField3_ |= 0x00000008;
646  lnsFocusOnDecisionVariables_ = input.readBool();
647  break;
648  }
649  case 848: {
650  bitField2_ |= 0x08000000;
651  instantiateAllVariables_ = input.readBool();
652  break;
653  }
654  case 856: {
655  bitField2_ |= 0x00000002;
656  booleanEncodingLevel_ = input.readInt32();
657  break;
658  }
659  case 864: {
660  bitField3_ |= 0x00000080;
661  useOptionalVariables_ = input.readBool();
662  break;
663  }
664  case 872: {
665  bitField3_ |= 0x00000100;
666  useExactLpReason_ = input.readBool();
667  break;
668  }
669  case 880: {
670  bitField2_ |= 0x00800000;
671  cpModelProbingLevel_ = input.readInt32();
672  break;
673  }
674  case 888: {
675  bitField2_ |= 0x00000010;
676  addKnapsackCuts_ = input.readBool();
677  break;
678  }
679  case 896: {
680  bitField2_ |= 0x00000200;
681  addLpConstraintsLazily_ = input.readBool();
682  break;
683  }
684  case 904: {
685  bitField2_ |= 0x80000000;
686  shareObjectiveBounds_ = input.readBool();
687  break;
688  }
689  case 912: {
690  bitField3_ |= 0x00000001;
691  shareLevelZeroBounds_ = input.readBool();
692  break;
693  }
694  case 921: {
695  bitField2_ |= 0x00000400;
696  minOrthogonalityForLpConstraints_ = input.readDouble();
697  break;
698  }
699  case 928: {
700  bitField2_ |= 0x00008000;
701  exploitAllLpSolution_ = input.readBool();
702  break;
703  }
704  case 936: {
705  bitField2_ |= 0x00000020;
706  addCgCuts_ = input.readBool();
707  break;
708  }
709  case 944: {
710  bitField2_ |= 0x00000080;
711  useMirRounding_ = input.readBool();
712  break;
713  }
714  case 952: {
715  bitField2_ |= 0x00000100;
716  maxIntegerRoundingScaling_ = input.readInt32();
717  break;
718  }
719  case 960: {
720  bitField2_ |= 0x00000040;
721  addMirCuts_ = input.readBool();
722  break;
723  }
724  case 968: {
725  bitField2_ |= 0x00000800;
726  maxInactiveCount_ = input.readInt64();
727  break;
728  }
729  case 976: {
730  bitField2_ |= 0x00001000;
731  constraintRemovalBatchSize_ = input.readInt64();
732  break;
733  }
734  case 984: {
735  bitField2_ |= 0x00040000;
736  pseudoCostReliabilityThreshold_ = input.readInt64();
737  break;
738  }
739  case 993: {
740  bitField3_ |= 0x00000400;
741  mipMaxBound_ = input.readDouble();
742  break;
743  }
744  case 1001: {
745  bitField3_ |= 0x00000800;
746  mipVarScaling_ = input.readDouble();
747  break;
748  }
749  case 1009: {
750  bitField3_ |= 0x00001000;
751  mipWantedPrecision_ = input.readDouble();
752  break;
753  }
754  case 1016: {
755  bitField3_ |= 0x00002000;
756  mipMaxActivityExponent_ = input.readInt32();
757  break;
758  }
759  case 1025: {
760  bitField3_ |= 0x00004000;
761  mipCheckPrecision_ = input.readDouble();
762  break;
763  }
764  case 1032: {
765  bitField3_ |= 0x00000010;
766  useRinsLns_ = input.readBool();
767  break;
768  }
769  case 1040: {
770  bitField2_ |= 0x00010000;
771  exploitBestSolution_ = input.readBool();
772  break;
773  }
774  case 1048: {
775  bitField2_ |= 0x00020000;
776  exploitObjective_ = input.readBool();
777  break;
778  }
779  case 1056: {
780  bitField2_ |= 0x04000000;
781  fillTightenedDomainsInResponse_ = input.readBool();
782  break;
783  }
784  case 1064: {
785  bitField3_ |= 0x00000200;
786  useCombinedNoOverlap_ = input.readBool();
787  break;
788  }
789  default: {
790  if (!parseUnknownField(
791  input, unknownFields, extensionRegistry, tag)) {
792  done = true;
793  }
794  break;
795  }
796  }
797  }
798  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
799  throw e.setUnfinishedMessage(this);
800  } catch (java.io.IOException e) {
801  throw new com.google.protobuf.InvalidProtocolBufferException(
802  e).setUnfinishedMessage(this);
803  } finally {
804  if (((mutable_bitField0_ & 0x08000000) != 0)) {
805  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
806  }
807  this.unknownFields = unknownFields.build();
808  makeExtensionsImmutable();
809  }
810  }
811  public static final com.google.protobuf.Descriptors.Descriptor
813  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
814  }
815 
816  @java.lang.Override
817  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
819  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
820  .ensureFieldAccessorsInitialized(
822  }
823 
832  public enum VariableOrder
833  implements com.google.protobuf.ProtocolMessageEnum {
850  ;
851 
859  public static final int IN_ORDER_VALUE = 0;
863  public static final int IN_REVERSE_ORDER_VALUE = 1;
867  public static final int IN_RANDOM_ORDER_VALUE = 2;
868 
869 
870  public final int getNumber() {
871  return value;
872  }
873 
877  @java.lang.Deprecated
878  public static VariableOrder valueOf(int value) {
879  return forNumber(value);
880  }
881 
882  public static VariableOrder forNumber(int value) {
883  switch (value) {
884  case 0: return IN_ORDER;
885  case 1: return IN_REVERSE_ORDER;
886  case 2: return IN_RANDOM_ORDER;
887  default: return null;
888  }
889  }
890 
891  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
893  return internalValueMap;
894  }
895  private static final com.google.protobuf.Internal.EnumLiteMap<
896  VariableOrder> internalValueMap =
897  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
898  public VariableOrder findValueByNumber(int number) {
899  return VariableOrder.forNumber(number);
900  }
901  };
902 
903  public final com.google.protobuf.Descriptors.EnumValueDescriptor
905  return getDescriptor().getValues().get(ordinal());
906  }
907  public final com.google.protobuf.Descriptors.EnumDescriptor
909  return getDescriptor();
910  }
911  public static final com.google.protobuf.Descriptors.EnumDescriptor
913  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
914  }
915 
916  private static final VariableOrder[] VALUES = values();
917 
918  public static VariableOrder valueOf(
919  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
920  if (desc.getType() != getDescriptor()) {
921  throw new java.lang.IllegalArgumentException(
922  "EnumValueDescriptor is not for this type.");
923  }
924  return VALUES[desc.getIndex()];
925  }
926 
927  private final int value;
928 
929  private VariableOrder(int value) {
930  this.value = value;
931  }
932 
933  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
934  }
935 
947  public enum Polarity
948  implements com.google.protobuf.ProtocolMessageEnum {
980  ;
981 
985  public static final int POLARITY_TRUE_VALUE = 0;
989  public static final int POLARITY_FALSE_VALUE = 1;
993  public static final int POLARITY_RANDOM_VALUE = 2;
1004  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1012  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1013 
1014 
1015  public final int getNumber() {
1016  return value;
1017  }
1018 
1022  @java.lang.Deprecated
1023  public static Polarity valueOf(int value) {
1024  return forNumber(value);
1025  }
1026 
1027  public static Polarity forNumber(int value) {
1028  switch (value) {
1029  case 0: return POLARITY_TRUE;
1030  case 1: return POLARITY_FALSE;
1031  case 2: return POLARITY_RANDOM;
1032  case 3: return POLARITY_WEIGHTED_SIGN;
1033  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1034  default: return null;
1035  }
1036  }
1037 
1038  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1040  return internalValueMap;
1041  }
1042  private static final com.google.protobuf.Internal.EnumLiteMap<
1043  Polarity> internalValueMap =
1044  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1045  public Polarity findValueByNumber(int number) {
1046  return Polarity.forNumber(number);
1047  }
1048  };
1049 
1050  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1052  return getDescriptor().getValues().get(ordinal());
1053  }
1054  public final com.google.protobuf.Descriptors.EnumDescriptor
1056  return getDescriptor();
1057  }
1058  public static final com.google.protobuf.Descriptors.EnumDescriptor
1060  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1061  }
1062 
1063  private static final Polarity[] VALUES = values();
1064 
1065  public static Polarity valueOf(
1066  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1067  if (desc.getType() != getDescriptor()) {
1068  throw new java.lang.IllegalArgumentException(
1069  "EnumValueDescriptor is not for this type.");
1070  }
1071  return VALUES[desc.getIndex()];
1072  }
1073 
1074  private final int value;
1075 
1076  private Polarity(int value) {
1077  this.value = value;
1078  }
1079 
1080  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1081  }
1082 
1091  implements com.google.protobuf.ProtocolMessageEnum {
1095  NONE(0),
1108  ;
1109 
1113  public static final int NONE_VALUE = 0;
1117  public static final int SIMPLE_VALUE = 1;
1121  public static final int RECURSIVE_VALUE = 2;
1125  public static final int EXPERIMENTAL_VALUE = 3;
1126 
1127 
1128  public final int getNumber() {
1129  return value;
1130  }
1131 
1135  @java.lang.Deprecated
1136  public static ConflictMinimizationAlgorithm valueOf(int value) {
1137  return forNumber(value);
1138  }
1139 
1140  public static ConflictMinimizationAlgorithm forNumber(int value) {
1141  switch (value) {
1142  case 0: return NONE;
1143  case 1: return SIMPLE;
1144  case 2: return RECURSIVE;
1145  case 3: return EXPERIMENTAL;
1146  default: return null;
1147  }
1148  }
1149 
1150  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1152  return internalValueMap;
1153  }
1154  private static final com.google.protobuf.Internal.EnumLiteMap<
1155  ConflictMinimizationAlgorithm> internalValueMap =
1156  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1157  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1159  }
1160  };
1161 
1162  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1164  return getDescriptor().getValues().get(ordinal());
1165  }
1166  public final com.google.protobuf.Descriptors.EnumDescriptor
1168  return getDescriptor();
1169  }
1170  public static final com.google.protobuf.Descriptors.EnumDescriptor
1172  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1173  }
1174 
1175  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1176 
1178  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1179  if (desc.getType() != getDescriptor()) {
1180  throw new java.lang.IllegalArgumentException(
1181  "EnumValueDescriptor is not for this type.");
1182  }
1183  return VALUES[desc.getIndex()];
1184  }
1185 
1186  private final int value;
1187 
1188  private ConflictMinimizationAlgorithm(int value) {
1189  this.value = value;
1190  }
1191 
1192  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1193  }
1194 
1204  implements com.google.protobuf.ProtocolMessageEnum {
1225  ;
1226 
1230  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1234  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1238  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1242  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1246  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1247 
1248 
1249  public final int getNumber() {
1250  return value;
1251  }
1252 
1256  @java.lang.Deprecated
1257  public static BinaryMinizationAlgorithm valueOf(int value) {
1258  return forNumber(value);
1259  }
1260 
1261  public static BinaryMinizationAlgorithm forNumber(int value) {
1262  switch (value) {
1263  case 0: return NO_BINARY_MINIMIZATION;
1264  case 1: return BINARY_MINIMIZATION_FIRST;
1265  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1266  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1267  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1268  default: return null;
1269  }
1270  }
1271 
1272  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1274  return internalValueMap;
1275  }
1276  private static final com.google.protobuf.Internal.EnumLiteMap<
1277  BinaryMinizationAlgorithm> internalValueMap =
1278  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1279  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1280  return BinaryMinizationAlgorithm.forNumber(number);
1281  }
1282  };
1283 
1284  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1286  return getDescriptor().getValues().get(ordinal());
1287  }
1288  public final com.google.protobuf.Descriptors.EnumDescriptor
1290  return getDescriptor();
1291  }
1292  public static final com.google.protobuf.Descriptors.EnumDescriptor
1294  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1295  }
1296 
1297  private static final BinaryMinizationAlgorithm[] VALUES = values();
1298 
1300  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1301  if (desc.getType() != getDescriptor()) {
1302  throw new java.lang.IllegalArgumentException(
1303  "EnumValueDescriptor is not for this type.");
1304  }
1305  return VALUES[desc.getIndex()];
1306  }
1307 
1308  private final int value;
1309 
1310  private BinaryMinizationAlgorithm(int value) {
1311  this.value = value;
1312  }
1313 
1314  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1315  }
1316 
1326  public enum ClauseProtection
1327  implements com.google.protobuf.ProtocolMessageEnum {
1352  ;
1353 
1361  public static final int PROTECTION_NONE_VALUE = 0;
1369  public static final int PROTECTION_ALWAYS_VALUE = 1;
1377  public static final int PROTECTION_LBD_VALUE = 2;
1378 
1379 
1380  public final int getNumber() {
1381  return value;
1382  }
1383 
1387  @java.lang.Deprecated
1388  public static ClauseProtection valueOf(int value) {
1389  return forNumber(value);
1390  }
1391 
1392  public static ClauseProtection forNumber(int value) {
1393  switch (value) {
1394  case 0: return PROTECTION_NONE;
1395  case 1: return PROTECTION_ALWAYS;
1396  case 2: return PROTECTION_LBD;
1397  default: return null;
1398  }
1399  }
1400 
1401  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1403  return internalValueMap;
1404  }
1405  private static final com.google.protobuf.Internal.EnumLiteMap<
1406  ClauseProtection> internalValueMap =
1407  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1408  public ClauseProtection findValueByNumber(int number) {
1409  return ClauseProtection.forNumber(number);
1410  }
1411  };
1412 
1413  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1415  return getDescriptor().getValues().get(ordinal());
1416  }
1417  public final com.google.protobuf.Descriptors.EnumDescriptor
1419  return getDescriptor();
1420  }
1421  public static final com.google.protobuf.Descriptors.EnumDescriptor
1423  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1424  }
1425 
1426  private static final ClauseProtection[] VALUES = values();
1427 
1428  public static ClauseProtection valueOf(
1429  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1430  if (desc.getType() != getDescriptor()) {
1431  throw new java.lang.IllegalArgumentException(
1432  "EnumValueDescriptor is not for this type.");
1433  }
1434  return VALUES[desc.getIndex()];
1435  }
1436 
1437  private final int value;
1438 
1439  private ClauseProtection(int value) {
1440  this.value = value;
1441  }
1442 
1443  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1444  }
1445 
1454  public enum ClauseOrdering
1455  implements com.google.protobuf.ProtocolMessageEnum {
1472  ;
1473 
1481  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1489  public static final int CLAUSE_LBD_VALUE = 1;
1490 
1491 
1492  public final int getNumber() {
1493  return value;
1494  }
1495 
1499  @java.lang.Deprecated
1500  public static ClauseOrdering valueOf(int value) {
1501  return forNumber(value);
1502  }
1503 
1504  public static ClauseOrdering forNumber(int value) {
1505  switch (value) {
1506  case 0: return CLAUSE_ACTIVITY;
1507  case 1: return CLAUSE_LBD;
1508  default: return null;
1509  }
1510  }
1511 
1512  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1514  return internalValueMap;
1515  }
1516  private static final com.google.protobuf.Internal.EnumLiteMap<
1517  ClauseOrdering> internalValueMap =
1518  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1519  public ClauseOrdering findValueByNumber(int number) {
1520  return ClauseOrdering.forNumber(number);
1521  }
1522  };
1523 
1524  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1526  return getDescriptor().getValues().get(ordinal());
1527  }
1528  public final com.google.protobuf.Descriptors.EnumDescriptor
1530  return getDescriptor();
1531  }
1532  public static final com.google.protobuf.Descriptors.EnumDescriptor
1534  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1535  }
1536 
1537  private static final ClauseOrdering[] VALUES = values();
1538 
1539  public static ClauseOrdering valueOf(
1540  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1541  if (desc.getType() != getDescriptor()) {
1542  throw new java.lang.IllegalArgumentException(
1543  "EnumValueDescriptor is not for this type.");
1544  }
1545  return VALUES[desc.getIndex()];
1546  }
1547 
1548  private final int value;
1549 
1550  private ClauseOrdering(int value) {
1551  this.value = value;
1552  }
1553 
1554  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1555  }
1556 
1568  public enum RestartAlgorithm
1569  implements com.google.protobuf.ProtocolMessageEnum {
1606  ;
1607 
1611  public static final int NO_RESTART_VALUE = 0;
1619  public static final int LUBY_RESTART_VALUE = 1;
1627  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1635  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1643  public static final int FIXED_RESTART_VALUE = 4;
1644 
1645 
1646  public final int getNumber() {
1647  return value;
1648  }
1649 
1653  @java.lang.Deprecated
1654  public static RestartAlgorithm valueOf(int value) {
1655  return forNumber(value);
1656  }
1657 
1658  public static RestartAlgorithm forNumber(int value) {
1659  switch (value) {
1660  case 0: return NO_RESTART;
1661  case 1: return LUBY_RESTART;
1662  case 2: return DL_MOVING_AVERAGE_RESTART;
1663  case 3: return LBD_MOVING_AVERAGE_RESTART;
1664  case 4: return FIXED_RESTART;
1665  default: return null;
1666  }
1667  }
1668 
1669  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1671  return internalValueMap;
1672  }
1673  private static final com.google.protobuf.Internal.EnumLiteMap<
1674  RestartAlgorithm> internalValueMap =
1675  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1676  public RestartAlgorithm findValueByNumber(int number) {
1677  return RestartAlgorithm.forNumber(number);
1678  }
1679  };
1680 
1681  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1683  return getDescriptor().getValues().get(ordinal());
1684  }
1685  public final com.google.protobuf.Descriptors.EnumDescriptor
1687  return getDescriptor();
1688  }
1689  public static final com.google.protobuf.Descriptors.EnumDescriptor
1691  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1692  }
1693 
1694  private static final RestartAlgorithm[] VALUES = values();
1695 
1696  public static RestartAlgorithm valueOf(
1697  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1698  if (desc.getType() != getDescriptor()) {
1699  throw new java.lang.IllegalArgumentException(
1700  "EnumValueDescriptor is not for this type.");
1701  }
1702  return VALUES[desc.getIndex()];
1703  }
1704 
1705  private final int value;
1706 
1707  private RestartAlgorithm(int value) {
1708  this.value = value;
1709  }
1710 
1711  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1712  }
1713 
1722  implements com.google.protobuf.ProtocolMessageEnum {
1735  ;
1736 
1740  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1744  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1748  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1749 
1750 
1751  public final int getNumber() {
1752  return value;
1753  }
1754 
1758  @java.lang.Deprecated
1759  public static MaxSatAssumptionOrder valueOf(int value) {
1760  return forNumber(value);
1761  }
1762 
1763  public static MaxSatAssumptionOrder forNumber(int value) {
1764  switch (value) {
1765  case 0: return DEFAULT_ASSUMPTION_ORDER;
1766  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1767  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1768  default: return null;
1769  }
1770  }
1771 
1772  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1774  return internalValueMap;
1775  }
1776  private static final com.google.protobuf.Internal.EnumLiteMap<
1777  MaxSatAssumptionOrder> internalValueMap =
1778  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1779  public MaxSatAssumptionOrder findValueByNumber(int number) {
1780  return MaxSatAssumptionOrder.forNumber(number);
1781  }
1782  };
1783 
1784  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1786  return getDescriptor().getValues().get(ordinal());
1787  }
1788  public final com.google.protobuf.Descriptors.EnumDescriptor
1790  return getDescriptor();
1791  }
1792  public static final com.google.protobuf.Descriptors.EnumDescriptor
1794  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1795  }
1796 
1797  private static final MaxSatAssumptionOrder[] VALUES = values();
1798 
1800  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1801  if (desc.getType() != getDescriptor()) {
1802  throw new java.lang.IllegalArgumentException(
1803  "EnumValueDescriptor is not for this type.");
1804  }
1805  return VALUES[desc.getIndex()];
1806  }
1807 
1808  private final int value;
1809 
1810  private MaxSatAssumptionOrder(int value) {
1811  this.value = value;
1812  }
1813 
1814  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1815  }
1816 
1825  implements com.google.protobuf.ProtocolMessageEnum {
1854  ;
1855 
1863  public static final int STRATIFICATION_NONE_VALUE = 0;
1872  public static final int STRATIFICATION_DESCENT_VALUE = 1;
1883  public static final int STRATIFICATION_ASCENT_VALUE = 2;
1884 
1885 
1886  public final int getNumber() {
1887  return value;
1888  }
1889 
1893  @java.lang.Deprecated
1894  public static MaxSatStratificationAlgorithm valueOf(int value) {
1895  return forNumber(value);
1896  }
1897 
1898  public static MaxSatStratificationAlgorithm forNumber(int value) {
1899  switch (value) {
1900  case 0: return STRATIFICATION_NONE;
1901  case 1: return STRATIFICATION_DESCENT;
1902  case 2: return STRATIFICATION_ASCENT;
1903  default: return null;
1904  }
1905  }
1906 
1907  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
1909  return internalValueMap;
1910  }
1911  private static final com.google.protobuf.Internal.EnumLiteMap<
1912  MaxSatStratificationAlgorithm> internalValueMap =
1913  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
1914  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
1916  }
1917  };
1918 
1919  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1921  return getDescriptor().getValues().get(ordinal());
1922  }
1923  public final com.google.protobuf.Descriptors.EnumDescriptor
1925  return getDescriptor();
1926  }
1927  public static final com.google.protobuf.Descriptors.EnumDescriptor
1929  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
1930  }
1931 
1932  private static final MaxSatStratificationAlgorithm[] VALUES = values();
1933 
1935  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1936  if (desc.getType() != getDescriptor()) {
1937  throw new java.lang.IllegalArgumentException(
1938  "EnumValueDescriptor is not for this type.");
1939  }
1940  return VALUES[desc.getIndex()];
1941  }
1942 
1943  private final int value;
1944 
1945  private MaxSatStratificationAlgorithm(int value) {
1946  this.value = value;
1947  }
1948 
1949  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
1950  }
1951 
1959  public enum SearchBranching
1960  implements com.google.protobuf.ProtocolMessageEnum {
2017  ;
2018 
2027  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2040  public static final int FIXED_SEARCH_VALUE = 1;
2048  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2056  public static final int LP_SEARCH_VALUE = 3;
2064  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2074  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2075 
2076 
2077  public final int getNumber() {
2078  return value;
2079  }
2080 
2084  @java.lang.Deprecated
2085  public static SearchBranching valueOf(int value) {
2086  return forNumber(value);
2087  }
2088 
2089  public static SearchBranching forNumber(int value) {
2090  switch (value) {
2091  case 0: return AUTOMATIC_SEARCH;
2092  case 1: return FIXED_SEARCH;
2093  case 2: return PORTFOLIO_SEARCH;
2094  case 3: return LP_SEARCH;
2095  case 4: return PSEUDO_COST_SEARCH;
2096  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2097  default: return null;
2098  }
2099  }
2100 
2101  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2103  return internalValueMap;
2104  }
2105  private static final com.google.protobuf.Internal.EnumLiteMap<
2106  SearchBranching> internalValueMap =
2107  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2108  public SearchBranching findValueByNumber(int number) {
2109  return SearchBranching.forNumber(number);
2110  }
2111  };
2112 
2113  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2115  return getDescriptor().getValues().get(ordinal());
2116  }
2117  public final com.google.protobuf.Descriptors.EnumDescriptor
2119  return getDescriptor();
2120  }
2121  public static final com.google.protobuf.Descriptors.EnumDescriptor
2123  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2124  }
2125 
2126  private static final SearchBranching[] VALUES = values();
2127 
2128  public static SearchBranching valueOf(
2129  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2130  if (desc.getType() != getDescriptor()) {
2131  throw new java.lang.IllegalArgumentException(
2132  "EnumValueDescriptor is not for this type.");
2133  }
2134  return VALUES[desc.getIndex()];
2135  }
2136 
2137  private final int value;
2138 
2139  private SearchBranching(int value) {
2140  this.value = value;
2141  }
2142 
2143  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2144  }
2145 
2146  private int bitField0_;
2147  private int bitField1_;
2148  private int bitField2_;
2149  private int bitField3_;
2150  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2151  private int preferredVariableOrder_;
2155  public boolean hasPreferredVariableOrder() {
2156  return ((bitField0_ & 0x00000001) != 0);
2157  }
2162  @SuppressWarnings("deprecation")
2164  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2165  }
2166 
2167  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2168  private int initialPolarity_;
2172  public boolean hasInitialPolarity() {
2173  return ((bitField0_ & 0x00000002) != 0);
2174  }
2179  @SuppressWarnings("deprecation")
2181  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2182  }
2183 
2184  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2185  private boolean usePhaseSaving_;
2199  public boolean hasUsePhaseSaving() {
2200  return ((bitField0_ & 0x00000004) != 0);
2201  }
2215  public boolean getUsePhaseSaving() {
2216  return usePhaseSaving_;
2217  }
2218 
2219  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2220  private double randomPolarityRatio_;
2232  public boolean hasRandomPolarityRatio() {
2233  return ((bitField0_ & 0x00000008) != 0);
2234  }
2246  public double getRandomPolarityRatio() {
2247  return randomPolarityRatio_;
2248  }
2249 
2250  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2251  private double randomBranchesRatio_;
2261  public boolean hasRandomBranchesRatio() {
2262  return ((bitField0_ & 0x00000010) != 0);
2263  }
2273  public double getRandomBranchesRatio() {
2274  return randomBranchesRatio_;
2275  }
2276 
2277  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2278  private boolean useErwaHeuristic_;
2288  public boolean hasUseErwaHeuristic() {
2289  return ((bitField0_ & 0x00000020) != 0);
2290  }
2300  public boolean getUseErwaHeuristic() {
2301  return useErwaHeuristic_;
2302  }
2303 
2304  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2305  private double initialVariablesActivity_;
2318  public boolean hasInitialVariablesActivity() {
2319  return ((bitField0_ & 0x00000040) != 0);
2320  }
2334  return initialVariablesActivity_;
2335  }
2336 
2338  private boolean alsoBumpVariablesInConflictReasons_;
2350  return ((bitField0_ & 0x00000080) != 0);
2351  }
2363  return alsoBumpVariablesInConflictReasons_;
2364  }
2365 
2366  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2367  private int minimizationAlgorithm_;
2371  public boolean hasMinimizationAlgorithm() {
2372  return ((bitField0_ & 0x00000100) != 0);
2373  }
2378  @SuppressWarnings("deprecation")
2380  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2381  }
2382 
2383  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2384  private int binaryMinimizationAlgorithm_;
2389  return ((bitField0_ & 0x00000200) != 0);
2390  }
2395  @SuppressWarnings("deprecation")
2398  }
2399 
2401  private boolean subsumptionDuringConflictAnalysis_;
2413  return ((bitField0_ & 0x00000400) != 0);
2414  }
2426  return subsumptionDuringConflictAnalysis_;
2427  }
2428 
2429  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2430  private int clauseCleanupPeriod_;
2438  public boolean hasClauseCleanupPeriod() {
2439  return ((bitField0_ & 0x00000800) != 0);
2440  }
2448  public int getClauseCleanupPeriod() {
2449  return clauseCleanupPeriod_;
2450  }
2451 
2452  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2453  private int clauseCleanupTarget_;
2462  public boolean hasClauseCleanupTarget() {
2463  return ((bitField0_ & 0x00001000) != 0);
2464  }
2473  public int getClauseCleanupTarget() {
2474  return clauseCleanupTarget_;
2475  }
2476 
2477  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2478  private int clauseCleanupProtection_;
2482  public boolean hasClauseCleanupProtection() {
2483  return ((bitField0_ & 0x00002000) != 0);
2484  }
2489  @SuppressWarnings("deprecation")
2491  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2492  }
2493 
2494  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2495  private int clauseCleanupLbdBound_;
2504  public boolean hasClauseCleanupLbdBound() {
2505  return ((bitField0_ & 0x00004000) != 0);
2506  }
2516  return clauseCleanupLbdBound_;
2517  }
2518 
2519  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2520  private int clauseCleanupOrdering_;
2524  public boolean hasClauseCleanupOrdering() {
2525  return ((bitField0_ & 0x00008000) != 0);
2526  }
2531  @SuppressWarnings("deprecation")
2533  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2534  }
2535 
2536  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2537  private int pbCleanupIncrement_;
2545  public boolean hasPbCleanupIncrement() {
2546  return ((bitField0_ & 0x00010000) != 0);
2547  }
2555  public int getPbCleanupIncrement() {
2556  return pbCleanupIncrement_;
2557  }
2558 
2559  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2560  private double pbCleanupRatio_;
2564  public boolean hasPbCleanupRatio() {
2565  return ((bitField0_ & 0x00020000) != 0);
2566  }
2570  public double getPbCleanupRatio() {
2571  return pbCleanupRatio_;
2572  }
2573 
2575  private int minimizeWithPropagationRestartPeriod_;
2594  return ((bitField0_ & 0x00040000) != 0);
2595  }
2614  return minimizeWithPropagationRestartPeriod_;
2615  }
2616 
2618  private int minimizeWithPropagationNumDecisions_;
2623  return ((bitField0_ & 0x00080000) != 0);
2624  }
2629  return minimizeWithPropagationNumDecisions_;
2630  }
2631 
2632  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2633  private double variableActivityDecay_;
2647  public boolean hasVariableActivityDecay() {
2648  return ((bitField0_ & 0x00100000) != 0);
2649  }
2663  public double getVariableActivityDecay() {
2664  return variableActivityDecay_;
2665  }
2666 
2667  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2668  private double maxVariableActivityValue_;
2672  public boolean hasMaxVariableActivityValue() {
2673  return ((bitField0_ & 0x00200000) != 0);
2674  }
2679  return maxVariableActivityValue_;
2680  }
2681 
2682  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2683  private double glucoseMaxDecay_;
2694  public boolean hasGlucoseMaxDecay() {
2695  return ((bitField0_ & 0x00400000) != 0);
2696  }
2707  public double getGlucoseMaxDecay() {
2708  return glucoseMaxDecay_;
2709  }
2710 
2711  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2712  private double glucoseDecayIncrement_;
2716  public boolean hasGlucoseDecayIncrement() {
2717  return ((bitField0_ & 0x00800000) != 0);
2718  }
2722  public double getGlucoseDecayIncrement() {
2723  return glucoseDecayIncrement_;
2724  }
2725 
2726  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
2727  private int glucoseDecayIncrementPeriod_;
2732  return ((bitField0_ & 0x01000000) != 0);
2733  }
2738  return glucoseDecayIncrementPeriod_;
2739  }
2740 
2741  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2742  private double clauseActivityDecay_;
2750  public boolean hasClauseActivityDecay() {
2751  return ((bitField0_ & 0x02000000) != 0);
2752  }
2760  public double getClauseActivityDecay() {
2761  return clauseActivityDecay_;
2762  }
2763 
2764  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2765  private double maxClauseActivityValue_;
2769  public boolean hasMaxClauseActivityValue() {
2770  return ((bitField0_ & 0x04000000) != 0);
2771  }
2775  public double getMaxClauseActivityValue() {
2776  return maxClauseActivityValue_;
2777  }
2778 
2779  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
2780  private java.util.List<java.lang.Integer> restartAlgorithms_;
2781  private static final com.google.protobuf.Internal.ListAdapter.Converter<
2782  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
2783  new com.google.protobuf.Internal.ListAdapter.Converter<
2784  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
2785  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
2786  @SuppressWarnings("deprecation")
2788  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
2789  }
2790  };
2806  return new com.google.protobuf.Internal.ListAdapter<
2807  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
2808  }
2824  return restartAlgorithms_.size();
2825  }
2841  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
2842  }
2843 
2844  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
2845  private volatile java.lang.Object defaultRestartAlgorithms_;
2849  public boolean hasDefaultRestartAlgorithms() {
2850  return ((bitField0_ & 0x08000000) != 0);
2851  }
2855  public java.lang.String getDefaultRestartAlgorithms() {
2856  java.lang.Object ref = defaultRestartAlgorithms_;
2857  if (ref instanceof java.lang.String) {
2858  return (java.lang.String) ref;
2859  } else {
2860  com.google.protobuf.ByteString bs =
2861  (com.google.protobuf.ByteString) ref;
2862  java.lang.String s = bs.toStringUtf8();
2863  if (bs.isValidUtf8()) {
2864  defaultRestartAlgorithms_ = s;
2865  }
2866  return s;
2867  }
2868  }
2872  public com.google.protobuf.ByteString
2874  java.lang.Object ref = defaultRestartAlgorithms_;
2875  if (ref instanceof java.lang.String) {
2876  com.google.protobuf.ByteString b =
2877  com.google.protobuf.ByteString.copyFromUtf8(
2878  (java.lang.String) ref);
2879  defaultRestartAlgorithms_ = b;
2880  return b;
2881  } else {
2882  return (com.google.protobuf.ByteString) ref;
2883  }
2884  }
2885 
2886  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
2887  private int restartPeriod_;
2896  public boolean hasRestartPeriod() {
2897  return ((bitField0_ & 0x10000000) != 0);
2898  }
2907  public int getRestartPeriod() {
2908  return restartPeriod_;
2909  }
2910 
2911  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
2912  private int restartRunningWindowSize_;
2920  public boolean hasRestartRunningWindowSize() {
2921  return ((bitField0_ & 0x20000000) != 0);
2922  }
2931  return restartRunningWindowSize_;
2932  }
2933 
2934  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
2935  private double restartDlAverageRatio_;
2944  public boolean hasRestartDlAverageRatio() {
2945  return ((bitField0_ & 0x40000000) != 0);
2946  }
2955  public double getRestartDlAverageRatio() {
2956  return restartDlAverageRatio_;
2957  }
2958 
2959  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
2960  private double restartLbdAverageRatio_;
2964  public boolean hasRestartLbdAverageRatio() {
2965  return ((bitField0_ & 0x80000000) != 0);
2966  }
2970  public double getRestartLbdAverageRatio() {
2971  return restartLbdAverageRatio_;
2972  }
2973 
2974  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
2975  private boolean useBlockingRestart_;
2985  public boolean hasUseBlockingRestart() {
2986  return ((bitField1_ & 0x00000001) != 0);
2987  }
2997  public boolean getUseBlockingRestart() {
2998  return useBlockingRestart_;
2999  }
3000 
3001  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3002  private int blockingRestartWindowSize_;
3006  public boolean hasBlockingRestartWindowSize() {
3007  return ((bitField1_ & 0x00000002) != 0);
3008  }
3013  return blockingRestartWindowSize_;
3014  }
3015 
3016  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3017  private double blockingRestartMultiplier_;
3021  public boolean hasBlockingRestartMultiplier() {
3022  return ((bitField1_ & 0x00000004) != 0);
3023  }
3028  return blockingRestartMultiplier_;
3029  }
3030 
3032  private int numConflictsBeforeStrategyChanges_;
3043  return ((bitField1_ & 0x00000008) != 0);
3044  }
3055  return numConflictsBeforeStrategyChanges_;
3056  }
3057 
3058  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3059  private double strategyChangeIncreaseRatio_;
3069  return ((bitField1_ & 0x00000010) != 0);
3070  }
3080  return strategyChangeIncreaseRatio_;
3081  }
3082 
3083  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3084  private double maxTimeInSeconds_;
3094  public boolean hasMaxTimeInSeconds() {
3095  return ((bitField1_ & 0x00000020) != 0);
3096  }
3106  public double getMaxTimeInSeconds() {
3107  return maxTimeInSeconds_;
3108  }
3109 
3110  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3111  private double maxDeterministicTime_;
3123  public boolean hasMaxDeterministicTime() {
3124  return ((bitField1_ & 0x00000040) != 0);
3125  }
3137  public double getMaxDeterministicTime() {
3138  return maxDeterministicTime_;
3139  }
3140 
3141  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3142  private long maxNumberOfConflicts_;
3150  public boolean hasMaxNumberOfConflicts() {
3151  return ((bitField1_ & 0x00000080) != 0);
3152  }
3160  public long getMaxNumberOfConflicts() {
3161  return maxNumberOfConflicts_;
3162  }
3163 
3164  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3165  private long maxMemoryInMb_;
3176  public boolean hasMaxMemoryInMb() {
3177  return ((bitField1_ & 0x00000100) != 0);
3178  }
3189  public long getMaxMemoryInMb() {
3190  return maxMemoryInMb_;
3191  }
3192 
3193  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3194  private boolean treatBinaryClausesSeparately_;
3205  return ((bitField1_ & 0x00000200) != 0);
3206  }
3217  return treatBinaryClausesSeparately_;
3218  }
3219 
3220  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3221  private int randomSeed_;
3234  public boolean hasRandomSeed() {
3235  return ((bitField1_ & 0x00000400) != 0);
3236  }
3249  public int getRandomSeed() {
3250  return randomSeed_;
3251  }
3252 
3253  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3254  private boolean logSearchProgress_;
3262  public boolean hasLogSearchProgress() {
3263  return ((bitField1_ & 0x00000800) != 0);
3264  }
3272  public boolean getLogSearchProgress() {
3273  return logSearchProgress_;
3274  }
3275 
3276  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3277  private boolean usePbResolution_;
3288  public boolean hasUsePbResolution() {
3289  return ((bitField1_ & 0x00001000) != 0);
3290  }
3301  public boolean getUsePbResolution() {
3302  return usePbResolution_;
3303  }
3304 
3306  private boolean minimizeReductionDuringPbResolution_;
3318  return ((bitField1_ & 0x00002000) != 0);
3319  }
3331  return minimizeReductionDuringPbResolution_;
3332  }
3333 
3334  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
3335  private boolean countAssumptionLevelsInLbd_;
3351  return ((bitField1_ & 0x00004000) != 0);
3352  }
3368  return countAssumptionLevelsInLbd_;
3369  }
3370 
3371  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3372  private int presolveBveThreshold_;
3382  public boolean hasPresolveBveThreshold() {
3383  return ((bitField1_ & 0x00008000) != 0);
3384  }
3395  return presolveBveThreshold_;
3396  }
3397 
3398  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3399  private int presolveBveClauseWeight_;
3408  public boolean hasPresolveBveClauseWeight() {
3409  return ((bitField1_ & 0x00010000) != 0);
3410  }
3420  return presolveBveClauseWeight_;
3421  }
3422 
3424  private double presolveProbingDeterministicTimeLimit_;
3434  return ((bitField1_ & 0x00020000) != 0);
3435  }
3445  return presolveProbingDeterministicTimeLimit_;
3446  }
3447 
3448  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3449  private boolean presolveBlockedClause_;
3458  public boolean hasPresolveBlockedClause() {
3459  return ((bitField1_ & 0x00040000) != 0);
3460  }
3469  public boolean getPresolveBlockedClause() {
3470  return presolveBlockedClause_;
3471  }
3472 
3473  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
3474  private boolean presolveUseBva_;
3482  public boolean hasPresolveUseBva() {
3483  return ((bitField1_ & 0x00080000) != 0);
3484  }
3492  public boolean getPresolveUseBva() {
3493  return presolveUseBva_;
3494  }
3495 
3496  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
3497  private int presolveBvaThreshold_;
3508  public boolean hasPresolveBvaThreshold() {
3509  return ((bitField1_ & 0x00100000) != 0);
3510  }
3522  return presolveBvaThreshold_;
3523  }
3524 
3525  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
3526  private boolean useOptimizationHints_;
3537  public boolean hasUseOptimizationHints() {
3538  return ((bitField1_ & 0x00200000) != 0);
3539  }
3550  public boolean getUseOptimizationHints() {
3551  return useOptimizationHints_;
3552  }
3553 
3554  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
3555  private boolean minimizeCore_;
3563  public boolean hasMinimizeCore() {
3564  return ((bitField1_ & 0x00400000) != 0);
3565  }
3573  public boolean getMinimizeCore() {
3574  return minimizeCore_;
3575  }
3576 
3577  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
3578  private boolean findMultipleCores_;
3587  public boolean hasFindMultipleCores() {
3588  return ((bitField1_ & 0x00800000) != 0);
3589  }
3598  public boolean getFindMultipleCores() {
3599  return findMultipleCores_;
3600  }
3601 
3602  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
3603  private boolean coverOptimization_;
3612  public boolean hasCoverOptimization() {
3613  return ((bitField1_ & 0x01000000) != 0);
3614  }
3623  public boolean getCoverOptimization() {
3624  return coverOptimization_;
3625  }
3626 
3627  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
3628  private int maxSatAssumptionOrder_;
3632  public boolean hasMaxSatAssumptionOrder() {
3633  return ((bitField1_ & 0x02000000) != 0);
3634  }
3639  @SuppressWarnings("deprecation")
3642  }
3643 
3645  private boolean maxSatReverseAssumptionOrder_;
3655  return ((bitField1_ & 0x04000000) != 0);
3656  }
3666  return maxSatReverseAssumptionOrder_;
3667  }
3668 
3669  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
3670  private int maxSatStratification_;
3674  public boolean hasMaxSatStratification() {
3675  return ((bitField1_ & 0x08000000) != 0);
3676  }
3681  @SuppressWarnings("deprecation")
3684  }
3685 
3687  private boolean usePrecedencesInDisjunctiveConstraint_;
3703  return ((bitField1_ & 0x10000000) != 0);
3704  }
3720  return usePrecedencesInDisjunctiveConstraint_;
3721  }
3722 
3724  private boolean useOverloadCheckerInCumulativeConstraint_;
3738  return ((bitField1_ & 0x20000000) != 0);
3739  }
3753  return useOverloadCheckerInCumulativeConstraint_;
3754  }
3755 
3757  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
3771  return ((bitField1_ & 0x40000000) != 0);
3772  }
3786  return useTimetableEdgeFindingInCumulativeConstraint_;
3787  }
3788 
3790  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
3806  return ((bitField1_ & 0x80000000) != 0);
3807  }
3823  return useDisjunctiveConstraintInCumulativeConstraint_;
3824  }
3825 
3826  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
3827  private int linearizationLevel_;
3838  public boolean hasLinearizationLevel() {
3839  return ((bitField2_ & 0x00000001) != 0);
3840  }
3851  public int getLinearizationLevel() {
3852  return linearizationLevel_;
3853  }
3854 
3855  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
3856  private int booleanEncodingLevel_;
3865  public boolean hasBooleanEncodingLevel() {
3866  return ((bitField2_ & 0x00000002) != 0);
3867  }
3877  return booleanEncodingLevel_;
3878  }
3879 
3880  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
3881  private int maxNumCuts_;
3890  public boolean hasMaxNumCuts() {
3891  return ((bitField2_ & 0x00000004) != 0);
3892  }
3901  public int getMaxNumCuts() {
3902  return maxNumCuts_;
3903  }
3904 
3905  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
3906  private boolean onlyAddCutsAtLevelZero_;
3915  public boolean hasOnlyAddCutsAtLevelZero() {
3916  return ((bitField2_ & 0x00000008) != 0);
3917  }
3926  public boolean getOnlyAddCutsAtLevelZero() {
3927  return onlyAddCutsAtLevelZero_;
3928  }
3929 
3930  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
3931  private boolean addKnapsackCuts_;
3941  public boolean hasAddKnapsackCuts() {
3942  return ((bitField2_ & 0x00000010) != 0);
3943  }
3953  public boolean getAddKnapsackCuts() {
3954  return addKnapsackCuts_;
3955  }
3956 
3957  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
3958  private boolean addCgCuts_;
3967  public boolean hasAddCgCuts() {
3968  return ((bitField2_ & 0x00000020) != 0);
3969  }
3978  public boolean getAddCgCuts() {
3979  return addCgCuts_;
3980  }
3981 
3982  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
3983  private boolean addMirCuts_;
3992  public boolean hasAddMirCuts() {
3993  return ((bitField2_ & 0x00000040) != 0);
3994  }
4003  public boolean getAddMirCuts() {
4004  return addMirCuts_;
4005  }
4006 
4007  public static final int USE_MIR_ROUNDING_FIELD_NUMBER = 118;
4008  private boolean useMirRounding_;
4018  public boolean hasUseMirRounding() {
4019  return ((bitField2_ & 0x00000080) != 0);
4020  }
4030  public boolean getUseMirRounding() {
4031  return useMirRounding_;
4032  }
4033 
4034  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4035  private int maxIntegerRoundingScaling_;
4047  public boolean hasMaxIntegerRoundingScaling() {
4048  return ((bitField2_ & 0x00000100) != 0);
4049  }
4062  return maxIntegerRoundingScaling_;
4063  }
4064 
4065  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4066  private boolean addLpConstraintsLazily_;
4077  public boolean hasAddLpConstraintsLazily() {
4078  return ((bitField2_ & 0x00000200) != 0);
4079  }
4090  public boolean getAddLpConstraintsLazily() {
4091  return addLpConstraintsLazily_;
4092  }
4093 
4095  private double minOrthogonalityForLpConstraints_;
4108  return ((bitField2_ & 0x00000400) != 0);
4109  }
4122  return minOrthogonalityForLpConstraints_;
4123  }
4124 
4125  public static final int MAX_INACTIVE_COUNT_FIELD_NUMBER = 121;
4126  private long maxInactiveCount_;
4135  public boolean hasMaxInactiveCount() {
4136  return ((bitField2_ & 0x00000800) != 0);
4137  }
4146  public long getMaxInactiveCount() {
4147  return maxInactiveCount_;
4148  }
4149 
4150  public static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER = 122;
4151  private long constraintRemovalBatchSize_;
4161  return ((bitField2_ & 0x00001000) != 0);
4162  }
4172  return constraintRemovalBatchSize_;
4173  }
4174 
4175  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4176  private int searchBranching_;
4180  public boolean hasSearchBranching() {
4181  return ((bitField2_ & 0x00002000) != 0);
4182  }
4187  @SuppressWarnings("deprecation")
4189  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4190  }
4191 
4192  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4193  private boolean exploitIntegerLpSolution_;
4204  public boolean hasExploitIntegerLpSolution() {
4205  return ((bitField2_ & 0x00004000) != 0);
4206  }
4217  public boolean getExploitIntegerLpSolution() {
4218  return exploitIntegerLpSolution_;
4219  }
4220 
4221  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4222  private boolean exploitAllLpSolution_;
4232  public boolean hasExploitAllLpSolution() {
4233  return ((bitField2_ & 0x00008000) != 0);
4234  }
4244  public boolean getExploitAllLpSolution() {
4245  return exploitAllLpSolution_;
4246  }
4247 
4248  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4249  private boolean exploitBestSolution_;
4257  public boolean hasExploitBestSolution() {
4258  return ((bitField2_ & 0x00010000) != 0);
4259  }
4267  public boolean getExploitBestSolution() {
4268  return exploitBestSolution_;
4269  }
4270 
4271  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4272  private boolean exploitObjective_;
4281  public boolean hasExploitObjective() {
4282  return ((bitField2_ & 0x00020000) != 0);
4283  }
4292  public boolean getExploitObjective() {
4293  return exploitObjective_;
4294  }
4295 
4296  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4297  private long pseudoCostReliabilityThreshold_;
4307  return ((bitField2_ & 0x00040000) != 0);
4308  }
4318  return pseudoCostReliabilityThreshold_;
4319  }
4320 
4321  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4322  private boolean optimizeWithCore_;
4333  public boolean hasOptimizeWithCore() {
4334  return ((bitField2_ & 0x00080000) != 0);
4335  }
4346  public boolean getOptimizeWithCore() {
4347  return optimizeWithCore_;
4348  }
4349 
4350  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
4351  private int binarySearchNumConflicts_;
4362  public boolean hasBinarySearchNumConflicts() {
4363  return ((bitField2_ & 0x00100000) != 0);
4364  }
4376  return binarySearchNumConflicts_;
4377  }
4378 
4379  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
4380  private boolean optimizeWithMaxHs_;
4393  public boolean hasOptimizeWithMaxHs() {
4394  return ((bitField2_ & 0x00200000) != 0);
4395  }
4408  public boolean getOptimizeWithMaxHs() {
4409  return optimizeWithMaxHs_;
4410  }
4411 
4412  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
4413  private boolean cpModelPresolve_;
4421  public boolean hasCpModelPresolve() {
4422  return ((bitField2_ & 0x00400000) != 0);
4423  }
4431  public boolean getCpModelPresolve() {
4432  return cpModelPresolve_;
4433  }
4434 
4435  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
4436  private int cpModelProbingLevel_;
4444  public boolean hasCpModelProbingLevel() {
4445  return ((bitField2_ & 0x00800000) != 0);
4446  }
4454  public int getCpModelProbingLevel() {
4455  return cpModelProbingLevel_;
4456  }
4457 
4458  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
4459  private boolean cpModelUseSatPresolve_;
4467  public boolean hasCpModelUseSatPresolve() {
4468  return ((bitField2_ & 0x01000000) != 0);
4469  }
4477  public boolean getCpModelUseSatPresolve() {
4478  return cpModelUseSatPresolve_;
4479  }
4480 
4481  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
4482  private boolean enumerateAllSolutions_;
4495  public boolean hasEnumerateAllSolutions() {
4496  return ((bitField2_ & 0x02000000) != 0);
4497  }
4510  public boolean getEnumerateAllSolutions() {
4511  return enumerateAllSolutions_;
4512  }
4513 
4515  private boolean fillTightenedDomainsInResponse_;
4528  return ((bitField2_ & 0x04000000) != 0);
4529  }
4542  return fillTightenedDomainsInResponse_;
4543  }
4544 
4545  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
4546  private boolean instantiateAllVariables_;
4555  public boolean hasInstantiateAllVariables() {
4556  return ((bitField2_ & 0x08000000) != 0);
4557  }
4566  public boolean getInstantiateAllVariables() {
4567  return instantiateAllVariables_;
4568  }
4569 
4571  private boolean autoDetectGreaterThanAtLeastOneOf_;
4583  return ((bitField2_ & 0x10000000) != 0);
4584  }
4596  return autoDetectGreaterThanAtLeastOneOf_;
4597  }
4598 
4599  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
4600  private boolean stopAfterFirstSolution_;
4608  public boolean hasStopAfterFirstSolution() {
4609  return ((bitField2_ & 0x20000000) != 0);
4610  }
4618  public boolean getStopAfterFirstSolution() {
4619  return stopAfterFirstSolution_;
4620  }
4621 
4622  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
4623  private int numSearchWorkers_;
4634  public boolean hasNumSearchWorkers() {
4635  return ((bitField2_ & 0x40000000) != 0);
4636  }
4647  public int getNumSearchWorkers() {
4648  return numSearchWorkers_;
4649  }
4650 
4651  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
4652  private boolean shareObjectiveBounds_;
4660  public boolean hasShareObjectiveBounds() {
4661  return ((bitField2_ & 0x80000000) != 0);
4662  }
4670  public boolean getShareObjectiveBounds() {
4671  return shareObjectiveBounds_;
4672  }
4673 
4674  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
4675  private boolean shareLevelZeroBounds_;
4683  public boolean hasShareLevelZeroBounds() {
4684  return ((bitField3_ & 0x00000001) != 0);
4685  }
4693  public boolean getShareLevelZeroBounds() {
4694  return shareLevelZeroBounds_;
4695  }
4696 
4697  public static final int USE_LNS_FIELD_NUMBER = 101;
4698  private boolean useLns_;
4706  public boolean hasUseLns() {
4707  return ((bitField3_ & 0x00000002) != 0);
4708  }
4716  public boolean getUseLns() {
4717  return useLns_;
4718  }
4719 
4720  public static final int LNS_NUM_THREADS_FIELD_NUMBER = 102;
4721  private int lnsNumThreads_;
4725  public boolean hasLnsNumThreads() {
4726  return ((bitField3_ & 0x00000004) != 0);
4727  }
4731  public int getLnsNumThreads() {
4732  return lnsNumThreads_;
4733  }
4734 
4735  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
4736  private boolean lnsFocusOnDecisionVariables_;
4741  return ((bitField3_ & 0x00000008) != 0);
4742  }
4747  return lnsFocusOnDecisionVariables_;
4748  }
4749 
4750  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
4751  private boolean useRinsLns_;
4759  public boolean hasUseRinsLns() {
4760  return ((bitField3_ & 0x00000010) != 0);
4761  }
4769  public boolean getUseRinsLns() {
4770  return useRinsLns_;
4771  }
4772 
4773  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
4774  private boolean randomizeSearch_;
4782  public boolean hasRandomizeSearch() {
4783  return ((bitField3_ & 0x00000020) != 0);
4784  }
4792  public boolean getRandomizeSearch() {
4793  return randomizeSearch_;
4794  }
4795 
4796  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
4797  private long searchRandomizationTolerance_;
4812  return ((bitField3_ & 0x00000040) != 0);
4813  }
4828  return searchRandomizationTolerance_;
4829  }
4830 
4831  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
4832  private boolean useOptionalVariables_;
4842  public boolean hasUseOptionalVariables() {
4843  return ((bitField3_ & 0x00000080) != 0);
4844  }
4854  public boolean getUseOptionalVariables() {
4855  return useOptionalVariables_;
4856  }
4857 
4858  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
4859  private boolean useExactLpReason_;
4870  public boolean hasUseExactLpReason() {
4871  return ((bitField3_ & 0x00000100) != 0);
4872  }
4883  public boolean getUseExactLpReason() {
4884  return useExactLpReason_;
4885  }
4886 
4887  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
4888  private boolean useCombinedNoOverlap_;
4898  public boolean hasUseCombinedNoOverlap() {
4899  return ((bitField3_ & 0x00000200) != 0);
4900  }
4910  public boolean getUseCombinedNoOverlap() {
4911  return useCombinedNoOverlap_;
4912  }
4913 
4914  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
4915  private double mipMaxBound_;
4925  public boolean hasMipMaxBound() {
4926  return ((bitField3_ & 0x00000400) != 0);
4927  }
4937  public double getMipMaxBound() {
4938  return mipMaxBound_;
4939  }
4940 
4941  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
4942  private double mipVarScaling_;
4952  public boolean hasMipVarScaling() {
4953  return ((bitField3_ & 0x00000800) != 0);
4954  }
4964  public double getMipVarScaling() {
4965  return mipVarScaling_;
4966  }
4967 
4968  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
4969  private double mipWantedPrecision_;
4985  public boolean hasMipWantedPrecision() {
4986  return ((bitField3_ & 0x00001000) != 0);
4987  }
5003  public double getMipWantedPrecision() {
5004  return mipWantedPrecision_;
5005  }
5006 
5007  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5008  private int mipMaxActivityExponent_;
5022  public boolean hasMipMaxActivityExponent() {
5023  return ((bitField3_ & 0x00002000) != 0);
5024  }
5039  return mipMaxActivityExponent_;
5040  }
5041 
5042  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5043  private double mipCheckPrecision_;
5054  public boolean hasMipCheckPrecision() {
5055  return ((bitField3_ & 0x00004000) != 0);
5056  }
5067  public double getMipCheckPrecision() {
5068  return mipCheckPrecision_;
5069  }
5070 
5071  private byte memoizedIsInitialized = -1;
5072  @java.lang.Override
5073  public final boolean isInitialized() {
5074  byte isInitialized = memoizedIsInitialized;
5075  if (isInitialized == 1) return true;
5076  if (isInitialized == 0) return false;
5077 
5078  memoizedIsInitialized = 1;
5079  return true;
5080  }
5081 
5082  @java.lang.Override
5083  public void writeTo(com.google.protobuf.CodedOutputStream output)
5084  throws java.io.IOException {
5085  if (((bitField0_ & 0x00000001) != 0)) {
5086  output.writeEnum(1, preferredVariableOrder_);
5087  }
5088  if (((bitField0_ & 0x00000002) != 0)) {
5089  output.writeEnum(2, initialPolarity_);
5090  }
5091  if (((bitField0_ & 0x00000100) != 0)) {
5092  output.writeEnum(4, minimizationAlgorithm_);
5093  }
5094  if (((bitField0_ & 0x00000800) != 0)) {
5095  output.writeInt32(11, clauseCleanupPeriod_);
5096  }
5097  if (((bitField0_ & 0x00001000) != 0)) {
5098  output.writeInt32(13, clauseCleanupTarget_);
5099  }
5100  if (((bitField0_ & 0x00100000) != 0)) {
5101  output.writeDouble(15, variableActivityDecay_);
5102  }
5103  if (((bitField0_ & 0x00200000) != 0)) {
5104  output.writeDouble(16, maxVariableActivityValue_);
5105  }
5106  if (((bitField0_ & 0x02000000) != 0)) {
5107  output.writeDouble(17, clauseActivityDecay_);
5108  }
5109  if (((bitField0_ & 0x04000000) != 0)) {
5110  output.writeDouble(18, maxClauseActivityValue_);
5111  }
5112  if (((bitField0_ & 0x00400000) != 0)) {
5113  output.writeDouble(22, glucoseMaxDecay_);
5114  }
5115  if (((bitField0_ & 0x00800000) != 0)) {
5116  output.writeDouble(23, glucoseDecayIncrement_);
5117  }
5118  if (((bitField0_ & 0x01000000) != 0)) {
5119  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5120  }
5121  if (((bitField0_ & 0x10000000) != 0)) {
5122  output.writeInt32(30, restartPeriod_);
5123  }
5124  if (((bitField1_ & 0x00000400) != 0)) {
5125  output.writeInt32(31, randomSeed_);
5126  }
5127  if (((bitField0_ & 0x00000010) != 0)) {
5128  output.writeDouble(32, randomBranchesRatio_);
5129  }
5130  if (((bitField1_ & 0x00000200) != 0)) {
5131  output.writeBool(33, treatBinaryClausesSeparately_);
5132  }
5133  if (((bitField0_ & 0x00000200) != 0)) {
5134  output.writeEnum(34, binaryMinimizationAlgorithm_);
5135  }
5136  if (((bitField1_ & 0x00200000) != 0)) {
5137  output.writeBool(35, useOptimizationHints_);
5138  }
5139  if (((bitField1_ & 0x00000020) != 0)) {
5140  output.writeDouble(36, maxTimeInSeconds_);
5141  }
5142  if (((bitField1_ & 0x00000080) != 0)) {
5143  output.writeInt64(37, maxNumberOfConflicts_);
5144  }
5145  if (((bitField1_ & 0x00000100) != 0)) {
5146  output.writeInt64(40, maxMemoryInMb_);
5147  }
5148  if (((bitField1_ & 0x00000800) != 0)) {
5149  output.writeBool(41, logSearchProgress_);
5150  }
5151  if (((bitField1_ & 0x00001000) != 0)) {
5152  output.writeBool(43, usePbResolution_);
5153  }
5154  if (((bitField0_ & 0x00000004) != 0)) {
5155  output.writeBool(44, usePhaseSaving_);
5156  }
5157  if (((bitField0_ & 0x00000008) != 0)) {
5158  output.writeDouble(45, randomPolarityRatio_);
5159  }
5160  if (((bitField0_ & 0x00010000) != 0)) {
5161  output.writeInt32(46, pbCleanupIncrement_);
5162  }
5163  if (((bitField0_ & 0x00020000) != 0)) {
5164  output.writeDouble(47, pbCleanupRatio_);
5165  }
5166  if (((bitField1_ & 0x00002000) != 0)) {
5167  output.writeBool(48, minimizeReductionDuringPbResolution_);
5168  }
5169  if (((bitField1_ & 0x00004000) != 0)) {
5170  output.writeBool(49, countAssumptionLevelsInLbd_);
5171  }
5172  if (((bitField1_ & 0x00400000) != 0)) {
5173  output.writeBool(50, minimizeCore_);
5174  }
5175  if (((bitField1_ & 0x02000000) != 0)) {
5176  output.writeEnum(51, maxSatAssumptionOrder_);
5177  }
5178  if (((bitField1_ & 0x04000000) != 0)) {
5179  output.writeBool(52, maxSatReverseAssumptionOrder_);
5180  }
5181  if (((bitField1_ & 0x08000000) != 0)) {
5182  output.writeEnum(53, maxSatStratification_);
5183  }
5184  if (((bitField1_ & 0x00008000) != 0)) {
5185  output.writeInt32(54, presolveBveThreshold_);
5186  }
5187  if (((bitField1_ & 0x00010000) != 0)) {
5188  output.writeInt32(55, presolveBveClauseWeight_);
5189  }
5190  if (((bitField0_ & 0x00000400) != 0)) {
5191  output.writeBool(56, subsumptionDuringConflictAnalysis_);
5192  }
5193  if (((bitField1_ & 0x00020000) != 0)) {
5194  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
5195  }
5196  if (((bitField0_ & 0x00002000) != 0)) {
5197  output.writeEnum(58, clauseCleanupProtection_);
5198  }
5199  if (((bitField0_ & 0x00004000) != 0)) {
5200  output.writeInt32(59, clauseCleanupLbdBound_);
5201  }
5202  if (((bitField0_ & 0x00008000) != 0)) {
5203  output.writeEnum(60, clauseCleanupOrdering_);
5204  }
5205  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5206  output.writeEnum(61, restartAlgorithms_.get(i));
5207  }
5208  if (((bitField0_ & 0x20000000) != 0)) {
5209  output.writeInt32(62, restartRunningWindowSize_);
5210  }
5211  if (((bitField0_ & 0x40000000) != 0)) {
5212  output.writeDouble(63, restartDlAverageRatio_);
5213  }
5214  if (((bitField1_ & 0x00000001) != 0)) {
5215  output.writeBool(64, useBlockingRestart_);
5216  }
5217  if (((bitField1_ & 0x00000002) != 0)) {
5218  output.writeInt32(65, blockingRestartWindowSize_);
5219  }
5220  if (((bitField1_ & 0x00000004) != 0)) {
5221  output.writeDouble(66, blockingRestartMultiplier_);
5222  }
5223  if (((bitField1_ & 0x00000040) != 0)) {
5224  output.writeDouble(67, maxDeterministicTime_);
5225  }
5226  if (((bitField1_ & 0x00000008) != 0)) {
5227  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
5228  }
5229  if (((bitField1_ & 0x00000010) != 0)) {
5230  output.writeDouble(69, strategyChangeIncreaseRatio_);
5231  }
5232  if (((bitField0_ & 0x08000000) != 0)) {
5233  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
5234  }
5235  if (((bitField0_ & 0x80000000) != 0)) {
5236  output.writeDouble(71, restartLbdAverageRatio_);
5237  }
5238  if (((bitField1_ & 0x00080000) != 0)) {
5239  output.writeBool(72, presolveUseBva_);
5240  }
5241  if (((bitField1_ & 0x00100000) != 0)) {
5242  output.writeInt32(73, presolveBvaThreshold_);
5243  }
5244  if (((bitField1_ & 0x10000000) != 0)) {
5245  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
5246  }
5247  if (((bitField0_ & 0x00000020) != 0)) {
5248  output.writeBool(75, useErwaHeuristic_);
5249  }
5250  if (((bitField0_ & 0x00000040) != 0)) {
5251  output.writeDouble(76, initialVariablesActivity_);
5252  }
5253  if (((bitField0_ & 0x00000080) != 0)) {
5254  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
5255  }
5256  if (((bitField1_ & 0x20000000) != 0)) {
5257  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
5258  }
5259  if (((bitField1_ & 0x40000000) != 0)) {
5260  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
5261  }
5262  if (((bitField1_ & 0x80000000) != 0)) {
5263  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
5264  }
5265  if (((bitField2_ & 0x00002000) != 0)) {
5266  output.writeEnum(82, searchBranching_);
5267  }
5268  if (((bitField2_ & 0x00080000) != 0)) {
5269  output.writeBool(83, optimizeWithCore_);
5270  }
5271  if (((bitField1_ & 0x00800000) != 0)) {
5272  output.writeBool(84, findMultipleCores_);
5273  }
5274  if (((bitField2_ & 0x00200000) != 0)) {
5275  output.writeBool(85, optimizeWithMaxHs_);
5276  }
5277  if (((bitField2_ & 0x00400000) != 0)) {
5278  output.writeBool(86, cpModelPresolve_);
5279  }
5280  if (((bitField2_ & 0x02000000) != 0)) {
5281  output.writeBool(87, enumerateAllSolutions_);
5282  }
5283  if (((bitField1_ & 0x00040000) != 0)) {
5284  output.writeBool(88, presolveBlockedClause_);
5285  }
5286  if (((bitField1_ & 0x01000000) != 0)) {
5287  output.writeBool(89, coverOptimization_);
5288  }
5289  if (((bitField2_ & 0x00000001) != 0)) {
5290  output.writeInt32(90, linearizationLevel_);
5291  }
5292  if (((bitField2_ & 0x00000004) != 0)) {
5293  output.writeInt32(91, maxNumCuts_);
5294  }
5295  if (((bitField2_ & 0x00000008) != 0)) {
5296  output.writeBool(92, onlyAddCutsAtLevelZero_);
5297  }
5298  if (((bitField2_ & 0x01000000) != 0)) {
5299  output.writeBool(93, cpModelUseSatPresolve_);
5300  }
5301  if (((bitField2_ & 0x00004000) != 0)) {
5302  output.writeBool(94, exploitIntegerLpSolution_);
5303  }
5304  if (((bitField2_ & 0x10000000) != 0)) {
5305  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
5306  }
5307  if (((bitField0_ & 0x00040000) != 0)) {
5308  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
5309  }
5310  if (((bitField0_ & 0x00080000) != 0)) {
5311  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
5312  }
5313  if (((bitField2_ & 0x20000000) != 0)) {
5314  output.writeBool(98, stopAfterFirstSolution_);
5315  }
5316  if (((bitField2_ & 0x00100000) != 0)) {
5317  output.writeInt32(99, binarySearchNumConflicts_);
5318  }
5319  if (((bitField2_ & 0x40000000) != 0)) {
5320  output.writeInt32(100, numSearchWorkers_);
5321  }
5322  if (((bitField3_ & 0x00000002) != 0)) {
5323  output.writeBool(101, useLns_);
5324  }
5325  if (((bitField3_ & 0x00000004) != 0)) {
5326  output.writeInt32(102, lnsNumThreads_);
5327  }
5328  if (((bitField3_ & 0x00000020) != 0)) {
5329  output.writeBool(103, randomizeSearch_);
5330  }
5331  if (((bitField3_ & 0x00000040) != 0)) {
5332  output.writeInt64(104, searchRandomizationTolerance_);
5333  }
5334  if (((bitField3_ & 0x00000008) != 0)) {
5335  output.writeBool(105, lnsFocusOnDecisionVariables_);
5336  }
5337  if (((bitField2_ & 0x08000000) != 0)) {
5338  output.writeBool(106, instantiateAllVariables_);
5339  }
5340  if (((bitField2_ & 0x00000002) != 0)) {
5341  output.writeInt32(107, booleanEncodingLevel_);
5342  }
5343  if (((bitField3_ & 0x00000080) != 0)) {
5344  output.writeBool(108, useOptionalVariables_);
5345  }
5346  if (((bitField3_ & 0x00000100) != 0)) {
5347  output.writeBool(109, useExactLpReason_);
5348  }
5349  if (((bitField2_ & 0x00800000) != 0)) {
5350  output.writeInt32(110, cpModelProbingLevel_);
5351  }
5352  if (((bitField2_ & 0x00000010) != 0)) {
5353  output.writeBool(111, addKnapsackCuts_);
5354  }
5355  if (((bitField2_ & 0x00000200) != 0)) {
5356  output.writeBool(112, addLpConstraintsLazily_);
5357  }
5358  if (((bitField2_ & 0x80000000) != 0)) {
5359  output.writeBool(113, shareObjectiveBounds_);
5360  }
5361  if (((bitField3_ & 0x00000001) != 0)) {
5362  output.writeBool(114, shareLevelZeroBounds_);
5363  }
5364  if (((bitField2_ & 0x00000400) != 0)) {
5365  output.writeDouble(115, minOrthogonalityForLpConstraints_);
5366  }
5367  if (((bitField2_ & 0x00008000) != 0)) {
5368  output.writeBool(116, exploitAllLpSolution_);
5369  }
5370  if (((bitField2_ & 0x00000020) != 0)) {
5371  output.writeBool(117, addCgCuts_);
5372  }
5373  if (((bitField2_ & 0x00000080) != 0)) {
5374  output.writeBool(118, useMirRounding_);
5375  }
5376  if (((bitField2_ & 0x00000100) != 0)) {
5377  output.writeInt32(119, maxIntegerRoundingScaling_);
5378  }
5379  if (((bitField2_ & 0x00000040) != 0)) {
5380  output.writeBool(120, addMirCuts_);
5381  }
5382  if (((bitField2_ & 0x00000800) != 0)) {
5383  output.writeInt64(121, maxInactiveCount_);
5384  }
5385  if (((bitField2_ & 0x00001000) != 0)) {
5386  output.writeInt64(122, constraintRemovalBatchSize_);
5387  }
5388  if (((bitField2_ & 0x00040000) != 0)) {
5389  output.writeInt64(123, pseudoCostReliabilityThreshold_);
5390  }
5391  if (((bitField3_ & 0x00000400) != 0)) {
5392  output.writeDouble(124, mipMaxBound_);
5393  }
5394  if (((bitField3_ & 0x00000800) != 0)) {
5395  output.writeDouble(125, mipVarScaling_);
5396  }
5397  if (((bitField3_ & 0x00001000) != 0)) {
5398  output.writeDouble(126, mipWantedPrecision_);
5399  }
5400  if (((bitField3_ & 0x00002000) != 0)) {
5401  output.writeInt32(127, mipMaxActivityExponent_);
5402  }
5403  if (((bitField3_ & 0x00004000) != 0)) {
5404  output.writeDouble(128, mipCheckPrecision_);
5405  }
5406  if (((bitField3_ & 0x00000010) != 0)) {
5407  output.writeBool(129, useRinsLns_);
5408  }
5409  if (((bitField2_ & 0x00010000) != 0)) {
5410  output.writeBool(130, exploitBestSolution_);
5411  }
5412  if (((bitField2_ & 0x00020000) != 0)) {
5413  output.writeBool(131, exploitObjective_);
5414  }
5415  if (((bitField2_ & 0x04000000) != 0)) {
5416  output.writeBool(132, fillTightenedDomainsInResponse_);
5417  }
5418  if (((bitField3_ & 0x00000200) != 0)) {
5419  output.writeBool(133, useCombinedNoOverlap_);
5420  }
5421  unknownFields.writeTo(output);
5422  }
5423 
5424  @java.lang.Override
5425  public int getSerializedSize() {
5426  int size = memoizedSize;
5427  if (size != -1) return size;
5428 
5429  size = 0;
5430  if (((bitField0_ & 0x00000001) != 0)) {
5431  size += com.google.protobuf.CodedOutputStream
5432  .computeEnumSize(1, preferredVariableOrder_);
5433  }
5434  if (((bitField0_ & 0x00000002) != 0)) {
5435  size += com.google.protobuf.CodedOutputStream
5436  .computeEnumSize(2, initialPolarity_);
5437  }
5438  if (((bitField0_ & 0x00000100) != 0)) {
5439  size += com.google.protobuf.CodedOutputStream
5440  .computeEnumSize(4, minimizationAlgorithm_);
5441  }
5442  if (((bitField0_ & 0x00000800) != 0)) {
5443  size += com.google.protobuf.CodedOutputStream
5444  .computeInt32Size(11, clauseCleanupPeriod_);
5445  }
5446  if (((bitField0_ & 0x00001000) != 0)) {
5447  size += com.google.protobuf.CodedOutputStream
5448  .computeInt32Size(13, clauseCleanupTarget_);
5449  }
5450  if (((bitField0_ & 0x00100000) != 0)) {
5451  size += com.google.protobuf.CodedOutputStream
5452  .computeDoubleSize(15, variableActivityDecay_);
5453  }
5454  if (((bitField0_ & 0x00200000) != 0)) {
5455  size += com.google.protobuf.CodedOutputStream
5456  .computeDoubleSize(16, maxVariableActivityValue_);
5457  }
5458  if (((bitField0_ & 0x02000000) != 0)) {
5459  size += com.google.protobuf.CodedOutputStream
5460  .computeDoubleSize(17, clauseActivityDecay_);
5461  }
5462  if (((bitField0_ & 0x04000000) != 0)) {
5463  size += com.google.protobuf.CodedOutputStream
5464  .computeDoubleSize(18, maxClauseActivityValue_);
5465  }
5466  if (((bitField0_ & 0x00400000) != 0)) {
5467  size += com.google.protobuf.CodedOutputStream
5468  .computeDoubleSize(22, glucoseMaxDecay_);
5469  }
5470  if (((bitField0_ & 0x00800000) != 0)) {
5471  size += com.google.protobuf.CodedOutputStream
5472  .computeDoubleSize(23, glucoseDecayIncrement_);
5473  }
5474  if (((bitField0_ & 0x01000000) != 0)) {
5475  size += com.google.protobuf.CodedOutputStream
5476  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
5477  }
5478  if (((bitField0_ & 0x10000000) != 0)) {
5479  size += com.google.protobuf.CodedOutputStream
5480  .computeInt32Size(30, restartPeriod_);
5481  }
5482  if (((bitField1_ & 0x00000400) != 0)) {
5483  size += com.google.protobuf.CodedOutputStream
5484  .computeInt32Size(31, randomSeed_);
5485  }
5486  if (((bitField0_ & 0x00000010) != 0)) {
5487  size += com.google.protobuf.CodedOutputStream
5488  .computeDoubleSize(32, randomBranchesRatio_);
5489  }
5490  if (((bitField1_ & 0x00000200) != 0)) {
5491  size += com.google.protobuf.CodedOutputStream
5492  .computeBoolSize(33, treatBinaryClausesSeparately_);
5493  }
5494  if (((bitField0_ & 0x00000200) != 0)) {
5495  size += com.google.protobuf.CodedOutputStream
5496  .computeEnumSize(34, binaryMinimizationAlgorithm_);
5497  }
5498  if (((bitField1_ & 0x00200000) != 0)) {
5499  size += com.google.protobuf.CodedOutputStream
5500  .computeBoolSize(35, useOptimizationHints_);
5501  }
5502  if (((bitField1_ & 0x00000020) != 0)) {
5503  size += com.google.protobuf.CodedOutputStream
5504  .computeDoubleSize(36, maxTimeInSeconds_);
5505  }
5506  if (((bitField1_ & 0x00000080) != 0)) {
5507  size += com.google.protobuf.CodedOutputStream
5508  .computeInt64Size(37, maxNumberOfConflicts_);
5509  }
5510  if (((bitField1_ & 0x00000100) != 0)) {
5511  size += com.google.protobuf.CodedOutputStream
5512  .computeInt64Size(40, maxMemoryInMb_);
5513  }
5514  if (((bitField1_ & 0x00000800) != 0)) {
5515  size += com.google.protobuf.CodedOutputStream
5516  .computeBoolSize(41, logSearchProgress_);
5517  }
5518  if (((bitField1_ & 0x00001000) != 0)) {
5519  size += com.google.protobuf.CodedOutputStream
5520  .computeBoolSize(43, usePbResolution_);
5521  }
5522  if (((bitField0_ & 0x00000004) != 0)) {
5523  size += com.google.protobuf.CodedOutputStream
5524  .computeBoolSize(44, usePhaseSaving_);
5525  }
5526  if (((bitField0_ & 0x00000008) != 0)) {
5527  size += com.google.protobuf.CodedOutputStream
5528  .computeDoubleSize(45, randomPolarityRatio_);
5529  }
5530  if (((bitField0_ & 0x00010000) != 0)) {
5531  size += com.google.protobuf.CodedOutputStream
5532  .computeInt32Size(46, pbCleanupIncrement_);
5533  }
5534  if (((bitField0_ & 0x00020000) != 0)) {
5535  size += com.google.protobuf.CodedOutputStream
5536  .computeDoubleSize(47, pbCleanupRatio_);
5537  }
5538  if (((bitField1_ & 0x00002000) != 0)) {
5539  size += com.google.protobuf.CodedOutputStream
5540  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
5541  }
5542  if (((bitField1_ & 0x00004000) != 0)) {
5543  size += com.google.protobuf.CodedOutputStream
5544  .computeBoolSize(49, countAssumptionLevelsInLbd_);
5545  }
5546  if (((bitField1_ & 0x00400000) != 0)) {
5547  size += com.google.protobuf.CodedOutputStream
5548  .computeBoolSize(50, minimizeCore_);
5549  }
5550  if (((bitField1_ & 0x02000000) != 0)) {
5551  size += com.google.protobuf.CodedOutputStream
5552  .computeEnumSize(51, maxSatAssumptionOrder_);
5553  }
5554  if (((bitField1_ & 0x04000000) != 0)) {
5555  size += com.google.protobuf.CodedOutputStream
5556  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
5557  }
5558  if (((bitField1_ & 0x08000000) != 0)) {
5559  size += com.google.protobuf.CodedOutputStream
5560  .computeEnumSize(53, maxSatStratification_);
5561  }
5562  if (((bitField1_ & 0x00008000) != 0)) {
5563  size += com.google.protobuf.CodedOutputStream
5564  .computeInt32Size(54, presolveBveThreshold_);
5565  }
5566  if (((bitField1_ & 0x00010000) != 0)) {
5567  size += com.google.protobuf.CodedOutputStream
5568  .computeInt32Size(55, presolveBveClauseWeight_);
5569  }
5570  if (((bitField0_ & 0x00000400) != 0)) {
5571  size += com.google.protobuf.CodedOutputStream
5572  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
5573  }
5574  if (((bitField1_ & 0x00020000) != 0)) {
5575  size += com.google.protobuf.CodedOutputStream
5576  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
5577  }
5578  if (((bitField0_ & 0x00002000) != 0)) {
5579  size += com.google.protobuf.CodedOutputStream
5580  .computeEnumSize(58, clauseCleanupProtection_);
5581  }
5582  if (((bitField0_ & 0x00004000) != 0)) {
5583  size += com.google.protobuf.CodedOutputStream
5584  .computeInt32Size(59, clauseCleanupLbdBound_);
5585  }
5586  if (((bitField0_ & 0x00008000) != 0)) {
5587  size += com.google.protobuf.CodedOutputStream
5588  .computeEnumSize(60, clauseCleanupOrdering_);
5589  }
5590  {
5591  int dataSize = 0;
5592  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5593  dataSize += com.google.protobuf.CodedOutputStream
5594  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
5595  }
5596  size += dataSize;
5597  size += 2 * restartAlgorithms_.size();
5598  }
5599  if (((bitField0_ & 0x20000000) != 0)) {
5600  size += com.google.protobuf.CodedOutputStream
5601  .computeInt32Size(62, restartRunningWindowSize_);
5602  }
5603  if (((bitField0_ & 0x40000000) != 0)) {
5604  size += com.google.protobuf.CodedOutputStream
5605  .computeDoubleSize(63, restartDlAverageRatio_);
5606  }
5607  if (((bitField1_ & 0x00000001) != 0)) {
5608  size += com.google.protobuf.CodedOutputStream
5609  .computeBoolSize(64, useBlockingRestart_);
5610  }
5611  if (((bitField1_ & 0x00000002) != 0)) {
5612  size += com.google.protobuf.CodedOutputStream
5613  .computeInt32Size(65, blockingRestartWindowSize_);
5614  }
5615  if (((bitField1_ & 0x00000004) != 0)) {
5616  size += com.google.protobuf.CodedOutputStream
5617  .computeDoubleSize(66, blockingRestartMultiplier_);
5618  }
5619  if (((bitField1_ & 0x00000040) != 0)) {
5620  size += com.google.protobuf.CodedOutputStream
5621  .computeDoubleSize(67, maxDeterministicTime_);
5622  }
5623  if (((bitField1_ & 0x00000008) != 0)) {
5624  size += com.google.protobuf.CodedOutputStream
5625  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
5626  }
5627  if (((bitField1_ & 0x00000010) != 0)) {
5628  size += com.google.protobuf.CodedOutputStream
5629  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
5630  }
5631  if (((bitField0_ & 0x08000000) != 0)) {
5632  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
5633  }
5634  if (((bitField0_ & 0x80000000) != 0)) {
5635  size += com.google.protobuf.CodedOutputStream
5636  .computeDoubleSize(71, restartLbdAverageRatio_);
5637  }
5638  if (((bitField1_ & 0x00080000) != 0)) {
5639  size += com.google.protobuf.CodedOutputStream
5640  .computeBoolSize(72, presolveUseBva_);
5641  }
5642  if (((bitField1_ & 0x00100000) != 0)) {
5643  size += com.google.protobuf.CodedOutputStream
5644  .computeInt32Size(73, presolveBvaThreshold_);
5645  }
5646  if (((bitField1_ & 0x10000000) != 0)) {
5647  size += com.google.protobuf.CodedOutputStream
5648  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
5649  }
5650  if (((bitField0_ & 0x00000020) != 0)) {
5651  size += com.google.protobuf.CodedOutputStream
5652  .computeBoolSize(75, useErwaHeuristic_);
5653  }
5654  if (((bitField0_ & 0x00000040) != 0)) {
5655  size += com.google.protobuf.CodedOutputStream
5656  .computeDoubleSize(76, initialVariablesActivity_);
5657  }
5658  if (((bitField0_ & 0x00000080) != 0)) {
5659  size += com.google.protobuf.CodedOutputStream
5660  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
5661  }
5662  if (((bitField1_ & 0x20000000) != 0)) {
5663  size += com.google.protobuf.CodedOutputStream
5664  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
5665  }
5666  if (((bitField1_ & 0x40000000) != 0)) {
5667  size += com.google.protobuf.CodedOutputStream
5668  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
5669  }
5670  if (((bitField1_ & 0x80000000) != 0)) {
5671  size += com.google.protobuf.CodedOutputStream
5672  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
5673  }
5674  if (((bitField2_ & 0x00002000) != 0)) {
5675  size += com.google.protobuf.CodedOutputStream
5676  .computeEnumSize(82, searchBranching_);
5677  }
5678  if (((bitField2_ & 0x00080000) != 0)) {
5679  size += com.google.protobuf.CodedOutputStream
5680  .computeBoolSize(83, optimizeWithCore_);
5681  }
5682  if (((bitField1_ & 0x00800000) != 0)) {
5683  size += com.google.protobuf.CodedOutputStream
5684  .computeBoolSize(84, findMultipleCores_);
5685  }
5686  if (((bitField2_ & 0x00200000) != 0)) {
5687  size += com.google.protobuf.CodedOutputStream
5688  .computeBoolSize(85, optimizeWithMaxHs_);
5689  }
5690  if (((bitField2_ & 0x00400000) != 0)) {
5691  size += com.google.protobuf.CodedOutputStream
5692  .computeBoolSize(86, cpModelPresolve_);
5693  }
5694  if (((bitField2_ & 0x02000000) != 0)) {
5695  size += com.google.protobuf.CodedOutputStream
5696  .computeBoolSize(87, enumerateAllSolutions_);
5697  }
5698  if (((bitField1_ & 0x00040000) != 0)) {
5699  size += com.google.protobuf.CodedOutputStream
5700  .computeBoolSize(88, presolveBlockedClause_);
5701  }
5702  if (((bitField1_ & 0x01000000) != 0)) {
5703  size += com.google.protobuf.CodedOutputStream
5704  .computeBoolSize(89, coverOptimization_);
5705  }
5706  if (((bitField2_ & 0x00000001) != 0)) {
5707  size += com.google.protobuf.CodedOutputStream
5708  .computeInt32Size(90, linearizationLevel_);
5709  }
5710  if (((bitField2_ & 0x00000004) != 0)) {
5711  size += com.google.protobuf.CodedOutputStream
5712  .computeInt32Size(91, maxNumCuts_);
5713  }
5714  if (((bitField2_ & 0x00000008) != 0)) {
5715  size += com.google.protobuf.CodedOutputStream
5716  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
5717  }
5718  if (((bitField2_ & 0x01000000) != 0)) {
5719  size += com.google.protobuf.CodedOutputStream
5720  .computeBoolSize(93, cpModelUseSatPresolve_);
5721  }
5722  if (((bitField2_ & 0x00004000) != 0)) {
5723  size += com.google.protobuf.CodedOutputStream
5724  .computeBoolSize(94, exploitIntegerLpSolution_);
5725  }
5726  if (((bitField2_ & 0x10000000) != 0)) {
5727  size += com.google.protobuf.CodedOutputStream
5728  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
5729  }
5730  if (((bitField0_ & 0x00040000) != 0)) {
5731  size += com.google.protobuf.CodedOutputStream
5732  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
5733  }
5734  if (((bitField0_ & 0x00080000) != 0)) {
5735  size += com.google.protobuf.CodedOutputStream
5736  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
5737  }
5738  if (((bitField2_ & 0x20000000) != 0)) {
5739  size += com.google.protobuf.CodedOutputStream
5740  .computeBoolSize(98, stopAfterFirstSolution_);
5741  }
5742  if (((bitField2_ & 0x00100000) != 0)) {
5743  size += com.google.protobuf.CodedOutputStream
5744  .computeInt32Size(99, binarySearchNumConflicts_);
5745  }
5746  if (((bitField2_ & 0x40000000) != 0)) {
5747  size += com.google.protobuf.CodedOutputStream
5748  .computeInt32Size(100, numSearchWorkers_);
5749  }
5750  if (((bitField3_ & 0x00000002) != 0)) {
5751  size += com.google.protobuf.CodedOutputStream
5752  .computeBoolSize(101, useLns_);
5753  }
5754  if (((bitField3_ & 0x00000004) != 0)) {
5755  size += com.google.protobuf.CodedOutputStream
5756  .computeInt32Size(102, lnsNumThreads_);
5757  }
5758  if (((bitField3_ & 0x00000020) != 0)) {
5759  size += com.google.protobuf.CodedOutputStream
5760  .computeBoolSize(103, randomizeSearch_);
5761  }
5762  if (((bitField3_ & 0x00000040) != 0)) {
5763  size += com.google.protobuf.CodedOutputStream
5764  .computeInt64Size(104, searchRandomizationTolerance_);
5765  }
5766  if (((bitField3_ & 0x00000008) != 0)) {
5767  size += com.google.protobuf.CodedOutputStream
5768  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
5769  }
5770  if (((bitField2_ & 0x08000000) != 0)) {
5771  size += com.google.protobuf.CodedOutputStream
5772  .computeBoolSize(106, instantiateAllVariables_);
5773  }
5774  if (((bitField2_ & 0x00000002) != 0)) {
5775  size += com.google.protobuf.CodedOutputStream
5776  .computeInt32Size(107, booleanEncodingLevel_);
5777  }
5778  if (((bitField3_ & 0x00000080) != 0)) {
5779  size += com.google.protobuf.CodedOutputStream
5780  .computeBoolSize(108, useOptionalVariables_);
5781  }
5782  if (((bitField3_ & 0x00000100) != 0)) {
5783  size += com.google.protobuf.CodedOutputStream
5784  .computeBoolSize(109, useExactLpReason_);
5785  }
5786  if (((bitField2_ & 0x00800000) != 0)) {
5787  size += com.google.protobuf.CodedOutputStream
5788  .computeInt32Size(110, cpModelProbingLevel_);
5789  }
5790  if (((bitField2_ & 0x00000010) != 0)) {
5791  size += com.google.protobuf.CodedOutputStream
5792  .computeBoolSize(111, addKnapsackCuts_);
5793  }
5794  if (((bitField2_ & 0x00000200) != 0)) {
5795  size += com.google.protobuf.CodedOutputStream
5796  .computeBoolSize(112, addLpConstraintsLazily_);
5797  }
5798  if (((bitField2_ & 0x80000000) != 0)) {
5799  size += com.google.protobuf.CodedOutputStream
5800  .computeBoolSize(113, shareObjectiveBounds_);
5801  }
5802  if (((bitField3_ & 0x00000001) != 0)) {
5803  size += com.google.protobuf.CodedOutputStream
5804  .computeBoolSize(114, shareLevelZeroBounds_);
5805  }
5806  if (((bitField2_ & 0x00000400) != 0)) {
5807  size += com.google.protobuf.CodedOutputStream
5808  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
5809  }
5810  if (((bitField2_ & 0x00008000) != 0)) {
5811  size += com.google.protobuf.CodedOutputStream
5812  .computeBoolSize(116, exploitAllLpSolution_);
5813  }
5814  if (((bitField2_ & 0x00000020) != 0)) {
5815  size += com.google.protobuf.CodedOutputStream
5816  .computeBoolSize(117, addCgCuts_);
5817  }
5818  if (((bitField2_ & 0x00000080) != 0)) {
5819  size += com.google.protobuf.CodedOutputStream
5820  .computeBoolSize(118, useMirRounding_);
5821  }
5822  if (((bitField2_ & 0x00000100) != 0)) {
5823  size += com.google.protobuf.CodedOutputStream
5824  .computeInt32Size(119, maxIntegerRoundingScaling_);
5825  }
5826  if (((bitField2_ & 0x00000040) != 0)) {
5827  size += com.google.protobuf.CodedOutputStream
5828  .computeBoolSize(120, addMirCuts_);
5829  }
5830  if (((bitField2_ & 0x00000800) != 0)) {
5831  size += com.google.protobuf.CodedOutputStream
5832  .computeInt64Size(121, maxInactiveCount_);
5833  }
5834  if (((bitField2_ & 0x00001000) != 0)) {
5835  size += com.google.protobuf.CodedOutputStream
5836  .computeInt64Size(122, constraintRemovalBatchSize_);
5837  }
5838  if (((bitField2_ & 0x00040000) != 0)) {
5839  size += com.google.protobuf.CodedOutputStream
5840  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
5841  }
5842  if (((bitField3_ & 0x00000400) != 0)) {
5843  size += com.google.protobuf.CodedOutputStream
5844  .computeDoubleSize(124, mipMaxBound_);
5845  }
5846  if (((bitField3_ & 0x00000800) != 0)) {
5847  size += com.google.protobuf.CodedOutputStream
5848  .computeDoubleSize(125, mipVarScaling_);
5849  }
5850  if (((bitField3_ & 0x00001000) != 0)) {
5851  size += com.google.protobuf.CodedOutputStream
5852  .computeDoubleSize(126, mipWantedPrecision_);
5853  }
5854  if (((bitField3_ & 0x00002000) != 0)) {
5855  size += com.google.protobuf.CodedOutputStream
5856  .computeInt32Size(127, mipMaxActivityExponent_);
5857  }
5858  if (((bitField3_ & 0x00004000) != 0)) {
5859  size += com.google.protobuf.CodedOutputStream
5860  .computeDoubleSize(128, mipCheckPrecision_);
5861  }
5862  if (((bitField3_ & 0x00000010) != 0)) {
5863  size += com.google.protobuf.CodedOutputStream
5864  .computeBoolSize(129, useRinsLns_);
5865  }
5866  if (((bitField2_ & 0x00010000) != 0)) {
5867  size += com.google.protobuf.CodedOutputStream
5868  .computeBoolSize(130, exploitBestSolution_);
5869  }
5870  if (((bitField2_ & 0x00020000) != 0)) {
5871  size += com.google.protobuf.CodedOutputStream
5872  .computeBoolSize(131, exploitObjective_);
5873  }
5874  if (((bitField2_ & 0x04000000) != 0)) {
5875  size += com.google.protobuf.CodedOutputStream
5876  .computeBoolSize(132, fillTightenedDomainsInResponse_);
5877  }
5878  if (((bitField3_ & 0x00000200) != 0)) {
5879  size += com.google.protobuf.CodedOutputStream
5880  .computeBoolSize(133, useCombinedNoOverlap_);
5881  }
5882  size += unknownFields.getSerializedSize();
5883  memoizedSize = size;
5884  return size;
5885  }
5886 
5887  @java.lang.Override
5888  public boolean equals(final java.lang.Object obj) {
5889  if (obj == this) {
5890  return true;
5891  }
5892  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
5893  return super.equals(obj);
5894  }
5896 
5897  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
5898  if (hasPreferredVariableOrder()) {
5899  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
5900  }
5901  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
5902  if (hasInitialPolarity()) {
5903  if (initialPolarity_ != other.initialPolarity_) return false;
5904  }
5905  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
5906  if (hasUsePhaseSaving()) {
5907  if (getUsePhaseSaving()
5908  != other.getUsePhaseSaving()) return false;
5909  }
5910  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
5911  if (hasRandomPolarityRatio()) {
5912  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
5913  != java.lang.Double.doubleToLongBits(
5914  other.getRandomPolarityRatio())) return false;
5915  }
5916  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
5917  if (hasRandomBranchesRatio()) {
5918  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
5919  != java.lang.Double.doubleToLongBits(
5920  other.getRandomBranchesRatio())) return false;
5921  }
5922  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
5923  if (hasUseErwaHeuristic()) {
5924  if (getUseErwaHeuristic()
5925  != other.getUseErwaHeuristic()) return false;
5926  }
5927  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
5929  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
5930  != java.lang.Double.doubleToLongBits(
5931  other.getInitialVariablesActivity())) return false;
5932  }
5933  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
5936  != other.getAlsoBumpVariablesInConflictReasons()) return false;
5937  }
5938  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
5939  if (hasMinimizationAlgorithm()) {
5940  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
5941  }
5942  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
5944  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
5945  }
5946  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
5949  != other.getSubsumptionDuringConflictAnalysis()) return false;
5950  }
5951  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
5952  if (hasClauseCleanupPeriod()) {
5954  != other.getClauseCleanupPeriod()) return false;
5955  }
5956  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
5957  if (hasClauseCleanupTarget()) {
5959  != other.getClauseCleanupTarget()) return false;
5960  }
5961  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
5963  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
5964  }
5965  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
5966  if (hasClauseCleanupLbdBound()) {
5968  != other.getClauseCleanupLbdBound()) return false;
5969  }
5970  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
5971  if (hasClauseCleanupOrdering()) {
5972  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
5973  }
5974  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
5975  if (hasPbCleanupIncrement()) {
5976  if (getPbCleanupIncrement()
5977  != other.getPbCleanupIncrement()) return false;
5978  }
5979  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
5980  if (hasPbCleanupRatio()) {
5981  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
5982  != java.lang.Double.doubleToLongBits(
5983  other.getPbCleanupRatio())) return false;
5984  }
5985  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
5988  != other.getMinimizeWithPropagationRestartPeriod()) return false;
5989  }
5990  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
5993  != other.getMinimizeWithPropagationNumDecisions()) return false;
5994  }
5995  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
5996  if (hasVariableActivityDecay()) {
5997  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
5998  != java.lang.Double.doubleToLongBits(
5999  other.getVariableActivityDecay())) return false;
6000  }
6001  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6003  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6004  != java.lang.Double.doubleToLongBits(
6005  other.getMaxVariableActivityValue())) return false;
6006  }
6007  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6008  if (hasGlucoseMaxDecay()) {
6009  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6010  != java.lang.Double.doubleToLongBits(
6011  other.getGlucoseMaxDecay())) return false;
6012  }
6013  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
6014  if (hasGlucoseDecayIncrement()) {
6015  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
6016  != java.lang.Double.doubleToLongBits(
6017  other.getGlucoseDecayIncrement())) return false;
6018  }
6019  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
6022  != other.getGlucoseDecayIncrementPeriod()) return false;
6023  }
6024  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
6025  if (hasClauseActivityDecay()) {
6026  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
6027  != java.lang.Double.doubleToLongBits(
6028  other.getClauseActivityDecay())) return false;
6029  }
6030  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
6031  if (hasMaxClauseActivityValue()) {
6032  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
6033  != java.lang.Double.doubleToLongBits(
6034  other.getMaxClauseActivityValue())) return false;
6035  }
6036  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
6037  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
6040  .equals(other.getDefaultRestartAlgorithms())) return false;
6041  }
6042  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
6043  if (hasRestartPeriod()) {
6044  if (getRestartPeriod()
6045  != other.getRestartPeriod()) return false;
6046  }
6047  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
6050  != other.getRestartRunningWindowSize()) return false;
6051  }
6052  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
6053  if (hasRestartDlAverageRatio()) {
6054  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
6055  != java.lang.Double.doubleToLongBits(
6056  other.getRestartDlAverageRatio())) return false;
6057  }
6058  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
6059  if (hasRestartLbdAverageRatio()) {
6060  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
6061  != java.lang.Double.doubleToLongBits(
6062  other.getRestartLbdAverageRatio())) return false;
6063  }
6064  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
6065  if (hasUseBlockingRestart()) {
6066  if (getUseBlockingRestart()
6067  != other.getUseBlockingRestart()) return false;
6068  }
6069  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
6072  != other.getBlockingRestartWindowSize()) return false;
6073  }
6074  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
6076  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
6077  != java.lang.Double.doubleToLongBits(
6078  other.getBlockingRestartMultiplier())) return false;
6079  }
6080  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
6083  != other.getNumConflictsBeforeStrategyChanges()) return false;
6084  }
6085  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
6087  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
6088  != java.lang.Double.doubleToLongBits(
6089  other.getStrategyChangeIncreaseRatio())) return false;
6090  }
6091  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
6092  if (hasMaxTimeInSeconds()) {
6093  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
6094  != java.lang.Double.doubleToLongBits(
6095  other.getMaxTimeInSeconds())) return false;
6096  }
6097  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
6098  if (hasMaxDeterministicTime()) {
6099  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
6100  != java.lang.Double.doubleToLongBits(
6101  other.getMaxDeterministicTime())) return false;
6102  }
6103  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
6104  if (hasMaxNumberOfConflicts()) {
6106  != other.getMaxNumberOfConflicts()) return false;
6107  }
6108  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
6109  if (hasMaxMemoryInMb()) {
6110  if (getMaxMemoryInMb()
6111  != other.getMaxMemoryInMb()) return false;
6112  }
6113  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
6116  != other.getTreatBinaryClausesSeparately()) return false;
6117  }
6118  if (hasRandomSeed() != other.hasRandomSeed()) return false;
6119  if (hasRandomSeed()) {
6120  if (getRandomSeed()
6121  != other.getRandomSeed()) return false;
6122  }
6123  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
6124  if (hasLogSearchProgress()) {
6125  if (getLogSearchProgress()
6126  != other.getLogSearchProgress()) return false;
6127  }
6128  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
6129  if (hasUsePbResolution()) {
6130  if (getUsePbResolution()
6131  != other.getUsePbResolution()) return false;
6132  }
6133  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
6136  != other.getMinimizeReductionDuringPbResolution()) return false;
6137  }
6138  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
6141  != other.getCountAssumptionLevelsInLbd()) return false;
6142  }
6143  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
6144  if (hasPresolveBveThreshold()) {
6146  != other.getPresolveBveThreshold()) return false;
6147  }
6148  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
6151  != other.getPresolveBveClauseWeight()) return false;
6152  }
6153  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
6155  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
6156  != java.lang.Double.doubleToLongBits(
6157  other.getPresolveProbingDeterministicTimeLimit())) return false;
6158  }
6159  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
6160  if (hasPresolveBlockedClause()) {
6162  != other.getPresolveBlockedClause()) return false;
6163  }
6164  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
6165  if (hasPresolveUseBva()) {
6166  if (getPresolveUseBva()
6167  != other.getPresolveUseBva()) return false;
6168  }
6169  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
6170  if (hasPresolveBvaThreshold()) {
6172  != other.getPresolveBvaThreshold()) return false;
6173  }
6174  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
6175  if (hasUseOptimizationHints()) {
6177  != other.getUseOptimizationHints()) return false;
6178  }
6179  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
6180  if (hasMinimizeCore()) {
6181  if (getMinimizeCore()
6182  != other.getMinimizeCore()) return false;
6183  }
6184  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
6185  if (hasFindMultipleCores()) {
6186  if (getFindMultipleCores()
6187  != other.getFindMultipleCores()) return false;
6188  }
6189  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
6190  if (hasCoverOptimization()) {
6191  if (getCoverOptimization()
6192  != other.getCoverOptimization()) return false;
6193  }
6194  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
6195  if (hasMaxSatAssumptionOrder()) {
6196  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
6197  }
6198  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
6201  != other.getMaxSatReverseAssumptionOrder()) return false;
6202  }
6203  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
6204  if (hasMaxSatStratification()) {
6205  if (maxSatStratification_ != other.maxSatStratification_) return false;
6206  }
6207  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
6210  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
6211  }
6212  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
6215  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
6216  }
6217  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6220  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6221  }
6222  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6225  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6226  }
6227  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
6228  if (hasLinearizationLevel()) {
6229  if (getLinearizationLevel()
6230  != other.getLinearizationLevel()) return false;
6231  }
6232  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
6233  if (hasBooleanEncodingLevel()) {
6235  != other.getBooleanEncodingLevel()) return false;
6236  }
6237  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
6238  if (hasMaxNumCuts()) {
6239  if (getMaxNumCuts()
6240  != other.getMaxNumCuts()) return false;
6241  }
6242  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
6243  if (hasOnlyAddCutsAtLevelZero()) {
6245  != other.getOnlyAddCutsAtLevelZero()) return false;
6246  }
6247  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
6248  if (hasAddKnapsackCuts()) {
6249  if (getAddKnapsackCuts()
6250  != other.getAddKnapsackCuts()) return false;
6251  }
6252  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
6253  if (hasAddCgCuts()) {
6254  if (getAddCgCuts()
6255  != other.getAddCgCuts()) return false;
6256  }
6257  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
6258  if (hasAddMirCuts()) {
6259  if (getAddMirCuts()
6260  != other.getAddMirCuts()) return false;
6261  }
6262  if (hasUseMirRounding() != other.hasUseMirRounding()) return false;
6263  if (hasUseMirRounding()) {
6264  if (getUseMirRounding()
6265  != other.getUseMirRounding()) return false;
6266  }
6267  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
6270  != other.getMaxIntegerRoundingScaling()) return false;
6271  }
6272  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
6273  if (hasAddLpConstraintsLazily()) {
6275  != other.getAddLpConstraintsLazily()) return false;
6276  }
6277  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
6279  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
6280  != java.lang.Double.doubleToLongBits(
6281  other.getMinOrthogonalityForLpConstraints())) return false;
6282  }
6283  if (hasMaxInactiveCount() != other.hasMaxInactiveCount()) return false;
6284  if (hasMaxInactiveCount()) {
6285  if (getMaxInactiveCount()
6286  != other.getMaxInactiveCount()) return false;
6287  }
6288  if (hasConstraintRemovalBatchSize() != other.hasConstraintRemovalBatchSize()) return false;
6291  != other.getConstraintRemovalBatchSize()) return false;
6292  }
6293  if (hasSearchBranching() != other.hasSearchBranching()) return false;
6294  if (hasSearchBranching()) {
6295  if (searchBranching_ != other.searchBranching_) return false;
6296  }
6297  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
6300  != other.getExploitIntegerLpSolution()) return false;
6301  }
6302  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
6303  if (hasExploitAllLpSolution()) {
6305  != other.getExploitAllLpSolution()) return false;
6306  }
6307  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
6308  if (hasExploitBestSolution()) {
6310  != other.getExploitBestSolution()) return false;
6311  }
6312  if (hasExploitObjective() != other.hasExploitObjective()) return false;
6313  if (hasExploitObjective()) {
6314  if (getExploitObjective()
6315  != other.getExploitObjective()) return false;
6316  }
6317  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
6320  != other.getPseudoCostReliabilityThreshold()) return false;
6321  }
6322  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
6323  if (hasOptimizeWithCore()) {
6324  if (getOptimizeWithCore()
6325  != other.getOptimizeWithCore()) return false;
6326  }
6327  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
6330  != other.getBinarySearchNumConflicts()) return false;
6331  }
6332  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
6333  if (hasOptimizeWithMaxHs()) {
6334  if (getOptimizeWithMaxHs()
6335  != other.getOptimizeWithMaxHs()) return false;
6336  }
6337  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
6338  if (hasCpModelPresolve()) {
6339  if (getCpModelPresolve()
6340  != other.getCpModelPresolve()) return false;
6341  }
6342  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
6343  if (hasCpModelProbingLevel()) {
6345  != other.getCpModelProbingLevel()) return false;
6346  }
6347  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
6348  if (hasCpModelUseSatPresolve()) {
6350  != other.getCpModelUseSatPresolve()) return false;
6351  }
6352  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
6353  if (hasEnumerateAllSolutions()) {
6355  != other.getEnumerateAllSolutions()) return false;
6356  }
6357  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
6360  != other.getFillTightenedDomainsInResponse()) return false;
6361  }
6362  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
6365  != other.getInstantiateAllVariables()) return false;
6366  }
6367  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
6370  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
6371  }
6372  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
6373  if (hasStopAfterFirstSolution()) {
6375  != other.getStopAfterFirstSolution()) return false;
6376  }
6377  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
6378  if (hasNumSearchWorkers()) {
6379  if (getNumSearchWorkers()
6380  != other.getNumSearchWorkers()) return false;
6381  }
6382  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
6383  if (hasShareObjectiveBounds()) {
6385  != other.getShareObjectiveBounds()) return false;
6386  }
6387  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
6388  if (hasShareLevelZeroBounds()) {
6390  != other.getShareLevelZeroBounds()) return false;
6391  }
6392  if (hasUseLns() != other.hasUseLns()) return false;
6393  if (hasUseLns()) {
6394  if (getUseLns()
6395  != other.getUseLns()) return false;
6396  }
6397  if (hasLnsNumThreads() != other.hasLnsNumThreads()) return false;
6398  if (hasLnsNumThreads()) {
6399  if (getLnsNumThreads()
6400  != other.getLnsNumThreads()) return false;
6401  }
6402  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
6405  != other.getLnsFocusOnDecisionVariables()) return false;
6406  }
6407  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
6408  if (hasUseRinsLns()) {
6409  if (getUseRinsLns()
6410  != other.getUseRinsLns()) return false;
6411  }
6412  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
6413  if (hasRandomizeSearch()) {
6414  if (getRandomizeSearch()
6415  != other.getRandomizeSearch()) return false;
6416  }
6417  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
6420  != other.getSearchRandomizationTolerance()) return false;
6421  }
6422  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
6423  if (hasUseOptionalVariables()) {
6425  != other.getUseOptionalVariables()) return false;
6426  }
6427  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
6428  if (hasUseExactLpReason()) {
6429  if (getUseExactLpReason()
6430  != other.getUseExactLpReason()) return false;
6431  }
6432  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
6433  if (hasUseCombinedNoOverlap()) {
6435  != other.getUseCombinedNoOverlap()) return false;
6436  }
6437  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
6438  if (hasMipMaxBound()) {
6439  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
6440  != java.lang.Double.doubleToLongBits(
6441  other.getMipMaxBound())) return false;
6442  }
6443  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
6444  if (hasMipVarScaling()) {
6445  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
6446  != java.lang.Double.doubleToLongBits(
6447  other.getMipVarScaling())) return false;
6448  }
6449  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
6450  if (hasMipWantedPrecision()) {
6451  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
6452  != java.lang.Double.doubleToLongBits(
6453  other.getMipWantedPrecision())) return false;
6454  }
6455  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
6456  if (hasMipMaxActivityExponent()) {
6458  != other.getMipMaxActivityExponent()) return false;
6459  }
6460  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
6461  if (hasMipCheckPrecision()) {
6462  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
6463  != java.lang.Double.doubleToLongBits(
6464  other.getMipCheckPrecision())) return false;
6465  }
6466  if (!unknownFields.equals(other.unknownFields)) return false;
6467  return true;
6468  }
6469 
6470  @java.lang.Override
6471  public int hashCode() {
6472  if (memoizedHashCode != 0) {
6473  return memoizedHashCode;
6474  }
6475  int hash = 41;
6476  hash = (19 * hash) + getDescriptor().hashCode();
6477  if (hasPreferredVariableOrder()) {
6478  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
6479  hash = (53 * hash) + preferredVariableOrder_;
6480  }
6481  if (hasInitialPolarity()) {
6482  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
6483  hash = (53 * hash) + initialPolarity_;
6484  }
6485  if (hasUsePhaseSaving()) {
6486  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
6487  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6488  getUsePhaseSaving());
6489  }
6490  if (hasRandomPolarityRatio()) {
6491  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
6492  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6493  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
6494  }
6495  if (hasRandomBranchesRatio()) {
6496  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
6497  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6498  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
6499  }
6500  if (hasUseErwaHeuristic()) {
6501  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
6502  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6504  }
6506  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
6507  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6508  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
6509  }
6512  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6514  }
6515  if (hasMinimizationAlgorithm()) {
6516  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6517  hash = (53 * hash) + minimizationAlgorithm_;
6518  }
6520  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6521  hash = (53 * hash) + binaryMinimizationAlgorithm_;
6522  }
6525  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6527  }
6528  if (hasClauseCleanupPeriod()) {
6529  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
6530  hash = (53 * hash) + getClauseCleanupPeriod();
6531  }
6532  if (hasClauseCleanupTarget()) {
6533  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
6534  hash = (53 * hash) + getClauseCleanupTarget();
6535  }
6537  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
6538  hash = (53 * hash) + clauseCleanupProtection_;
6539  }
6540  if (hasClauseCleanupLbdBound()) {
6541  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
6542  hash = (53 * hash) + getClauseCleanupLbdBound();
6543  }
6544  if (hasClauseCleanupOrdering()) {
6545  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
6546  hash = (53 * hash) + clauseCleanupOrdering_;
6547  }
6548  if (hasPbCleanupIncrement()) {
6549  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
6550  hash = (53 * hash) + getPbCleanupIncrement();
6551  }
6552  if (hasPbCleanupRatio()) {
6553  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
6554  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6555  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
6556  }
6559  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
6560  }
6563  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
6564  }
6565  if (hasVariableActivityDecay()) {
6566  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
6567  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6568  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
6569  }
6571  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
6572  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6573  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
6574  }
6575  if (hasGlucoseMaxDecay()) {
6576  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
6577  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6578  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
6579  }
6580  if (hasGlucoseDecayIncrement()) {
6581  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
6582  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6583  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
6584  }
6586  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
6587  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
6588  }
6589  if (hasClauseActivityDecay()) {
6590  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
6591  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6592  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
6593  }
6594  if (hasMaxClauseActivityValue()) {
6595  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
6596  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6597  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
6598  }
6599  if (getRestartAlgorithmsCount() > 0) {
6600  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
6601  hash = (53 * hash) + restartAlgorithms_.hashCode();
6602  }
6604  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
6605  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
6606  }
6607  if (hasRestartPeriod()) {
6608  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
6609  hash = (53 * hash) + getRestartPeriod();
6610  }
6612  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
6613  hash = (53 * hash) + getRestartRunningWindowSize();
6614  }
6615  if (hasRestartDlAverageRatio()) {
6616  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
6617  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6618  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
6619  }
6620  if (hasRestartLbdAverageRatio()) {
6621  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
6622  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6623  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
6624  }
6625  if (hasUseBlockingRestart()) {
6626  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
6627  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6629  }
6631  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
6632  hash = (53 * hash) + getBlockingRestartWindowSize();
6633  }
6635  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
6636  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6637  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
6638  }
6641  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
6642  }
6644  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
6645  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6646  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
6647  }
6648  if (hasMaxTimeInSeconds()) {
6649  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
6650  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6651  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
6652  }
6653  if (hasMaxDeterministicTime()) {
6654  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
6655  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6656  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
6657  }
6658  if (hasMaxNumberOfConflicts()) {
6659  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
6660  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6662  }
6663  if (hasMaxMemoryInMb()) {
6664  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
6665  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6666  getMaxMemoryInMb());
6667  }
6669  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
6670  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6672  }
6673  if (hasRandomSeed()) {
6674  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
6675  hash = (53 * hash) + getRandomSeed();
6676  }
6677  if (hasLogSearchProgress()) {
6678  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
6679  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6681  }
6682  if (hasUsePbResolution()) {
6683  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
6684  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6685  getUsePbResolution());
6686  }
6689  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6691  }
6693  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
6694  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6696  }
6697  if (hasPresolveBveThreshold()) {
6698  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
6699  hash = (53 * hash) + getPresolveBveThreshold();
6700  }
6702  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
6703  hash = (53 * hash) + getPresolveBveClauseWeight();
6704  }
6707  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6708  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
6709  }
6710  if (hasPresolveBlockedClause()) {
6711  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
6712  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6714  }
6715  if (hasPresolveUseBva()) {
6716  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
6717  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6718  getPresolveUseBva());
6719  }
6720  if (hasPresolveBvaThreshold()) {
6721  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
6722  hash = (53 * hash) + getPresolveBvaThreshold();
6723  }
6724  if (hasUseOptimizationHints()) {
6725  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
6726  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6728  }
6729  if (hasMinimizeCore()) {
6730  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
6731  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6732  getMinimizeCore());
6733  }
6734  if (hasFindMultipleCores()) {
6735  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
6736  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6738  }
6739  if (hasCoverOptimization()) {
6740  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
6741  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6743  }
6744  if (hasMaxSatAssumptionOrder()) {
6745  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
6746  hash = (53 * hash) + maxSatAssumptionOrder_;
6747  }
6749  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
6750  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6752  }
6753  if (hasMaxSatStratification()) {
6754  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
6755  hash = (53 * hash) + maxSatStratification_;
6756  }
6759  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6761  }
6764  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6766  }
6769  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6771  }
6774  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6776  }
6777  if (hasLinearizationLevel()) {
6778  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
6779  hash = (53 * hash) + getLinearizationLevel();
6780  }
6781  if (hasBooleanEncodingLevel()) {
6782  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
6783  hash = (53 * hash) + getBooleanEncodingLevel();
6784  }
6785  if (hasMaxNumCuts()) {
6786  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
6787  hash = (53 * hash) + getMaxNumCuts();
6788  }
6789  if (hasOnlyAddCutsAtLevelZero()) {
6790  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
6791  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6793  }
6794  if (hasAddKnapsackCuts()) {
6795  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
6796  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6797  getAddKnapsackCuts());
6798  }
6799  if (hasAddCgCuts()) {
6800  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
6801  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6802  getAddCgCuts());
6803  }
6804  if (hasAddMirCuts()) {
6805  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
6806  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6807  getAddMirCuts());
6808  }
6809  if (hasUseMirRounding()) {
6810  hash = (37 * hash) + USE_MIR_ROUNDING_FIELD_NUMBER;
6811  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6812  getUseMirRounding());
6813  }
6815  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
6816  hash = (53 * hash) + getMaxIntegerRoundingScaling();
6817  }
6818  if (hasAddLpConstraintsLazily()) {
6819  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
6820  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6822  }
6825  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6826  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
6827  }
6828  if (hasMaxInactiveCount()) {
6829  hash = (37 * hash) + MAX_INACTIVE_COUNT_FIELD_NUMBER;
6830  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6832  }
6834  hash = (37 * hash) + CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER;
6835  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6837  }
6838  if (hasSearchBranching()) {
6839  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
6840  hash = (53 * hash) + searchBranching_;
6841  }
6843  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
6844  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6846  }
6847  if (hasExploitAllLpSolution()) {
6848  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
6849  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6851  }
6852  if (hasExploitBestSolution()) {
6853  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
6854  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6856  }
6857  if (hasExploitObjective()) {
6858  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
6859  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6861  }
6864  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6866  }
6867  if (hasOptimizeWithCore()) {
6868  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
6869  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6871  }
6873  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
6874  hash = (53 * hash) + getBinarySearchNumConflicts();
6875  }
6876  if (hasOptimizeWithMaxHs()) {
6877  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
6878  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6880  }
6881  if (hasCpModelPresolve()) {
6882  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
6883  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6884  getCpModelPresolve());
6885  }
6886  if (hasCpModelProbingLevel()) {
6887  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
6888  hash = (53 * hash) + getCpModelProbingLevel();
6889  }
6890  if (hasCpModelUseSatPresolve()) {
6891  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
6892  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6894  }
6895  if (hasEnumerateAllSolutions()) {
6896  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
6897  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6899  }
6902  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6904  }
6906  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
6907  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6909  }
6912  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6914  }
6915  if (hasStopAfterFirstSolution()) {
6916  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
6917  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6919  }
6920  if (hasNumSearchWorkers()) {
6921  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
6922  hash = (53 * hash) + getNumSearchWorkers();
6923  }
6924  if (hasShareObjectiveBounds()) {
6925  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
6926  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6928  }
6929  if (hasShareLevelZeroBounds()) {
6930  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
6931  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6933  }
6934  if (hasUseLns()) {
6935  hash = (37 * hash) + USE_LNS_FIELD_NUMBER;
6936  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6937  getUseLns());
6938  }
6939  if (hasLnsNumThreads()) {
6940  hash = (37 * hash) + LNS_NUM_THREADS_FIELD_NUMBER;
6941  hash = (53 * hash) + getLnsNumThreads();
6942  }
6944  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
6945  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6947  }
6948  if (hasUseRinsLns()) {
6949  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
6950  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6951  getUseRinsLns());
6952  }
6953  if (hasRandomizeSearch()) {
6954  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
6955  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6956  getRandomizeSearch());
6957  }
6959  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
6960  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6962  }
6963  if (hasUseOptionalVariables()) {
6964  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
6965  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6967  }
6968  if (hasUseExactLpReason()) {
6969  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
6970  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6972  }
6973  if (hasUseCombinedNoOverlap()) {
6974  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
6975  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6977  }
6978  if (hasMipMaxBound()) {
6979  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
6980  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6981  java.lang.Double.doubleToLongBits(getMipMaxBound()));
6982  }
6983  if (hasMipVarScaling()) {
6984  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
6985  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6986  java.lang.Double.doubleToLongBits(getMipVarScaling()));
6987  }
6988  if (hasMipWantedPrecision()) {
6989  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
6990  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6991  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
6992  }
6993  if (hasMipMaxActivityExponent()) {
6994  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
6995  hash = (53 * hash) + getMipMaxActivityExponent();
6996  }
6997  if (hasMipCheckPrecision()) {
6998  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
6999  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7000  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
7001  }
7002  hash = (29 * hash) + unknownFields.hashCode();
7003  memoizedHashCode = hash;
7004  return hash;
7005  }
7006 
7008  java.nio.ByteBuffer data)
7009  throws com.google.protobuf.InvalidProtocolBufferException {
7010  return PARSER.parseFrom(data);
7011  }
7013  java.nio.ByteBuffer data,
7014  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7015  throws com.google.protobuf.InvalidProtocolBufferException {
7016  return PARSER.parseFrom(data, extensionRegistry);
7017  }
7019  com.google.protobuf.ByteString data)
7020  throws com.google.protobuf.InvalidProtocolBufferException {
7021  return PARSER.parseFrom(data);
7022  }
7024  com.google.protobuf.ByteString data,
7025  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7026  throws com.google.protobuf.InvalidProtocolBufferException {
7027  return PARSER.parseFrom(data, extensionRegistry);
7028  }
7029  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
7030  throws com.google.protobuf.InvalidProtocolBufferException {
7031  return PARSER.parseFrom(data);
7032  }
7034  byte[] data,
7035  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7036  throws com.google.protobuf.InvalidProtocolBufferException {
7037  return PARSER.parseFrom(data, extensionRegistry);
7038  }
7039  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
7040  throws java.io.IOException {
7041  return com.google.protobuf.GeneratedMessageV3
7042  .parseWithIOException(PARSER, input);
7043  }
7045  java.io.InputStream input,
7046  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7047  throws java.io.IOException {
7048  return com.google.protobuf.GeneratedMessageV3
7049  .parseWithIOException(PARSER, input, extensionRegistry);
7050  }
7051  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
7052  throws java.io.IOException {
7053  return com.google.protobuf.GeneratedMessageV3
7054  .parseDelimitedWithIOException(PARSER, input);
7055  }
7057  java.io.InputStream input,
7058  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7059  throws java.io.IOException {
7060  return com.google.protobuf.GeneratedMessageV3
7061  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7062  }
7064  com.google.protobuf.CodedInputStream input)
7065  throws java.io.IOException {
7066  return com.google.protobuf.GeneratedMessageV3
7067  .parseWithIOException(PARSER, input);
7068  }
7070  com.google.protobuf.CodedInputStream input,
7071  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7072  throws java.io.IOException {
7073  return com.google.protobuf.GeneratedMessageV3
7074  .parseWithIOException(PARSER, input, extensionRegistry);
7075  }
7076 
7077  @java.lang.Override
7078  public Builder newBuilderForType() { return newBuilder(); }
7079  public static Builder newBuilder() {
7080  return DEFAULT_INSTANCE.toBuilder();
7081  }
7082  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
7083  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7084  }
7085  @java.lang.Override
7086  public Builder toBuilder() {
7087  return this == DEFAULT_INSTANCE
7088  ? new Builder() : new Builder().mergeFrom(this);
7089  }
7090 
7091  @java.lang.Override
7093  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7094  Builder builder = new Builder(parent);
7095  return builder;
7096  }
7106  public static final class Builder extends
7107  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7108  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
7109  com.google.ortools.sat.SatParametersOrBuilder {
7110  public static final com.google.protobuf.Descriptors.Descriptor
7112  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7113  }
7114 
7115  @java.lang.Override
7116  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7118  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
7119  .ensureFieldAccessorsInitialized(
7121  }
7122 
7123  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
7124  private Builder() {
7125  maybeForceBuilderInitialization();
7126  }
7127 
7128  private Builder(
7129  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7130  super(parent);
7131  maybeForceBuilderInitialization();
7132  }
7133  private void maybeForceBuilderInitialization() {
7134  if (com.google.protobuf.GeneratedMessageV3
7135  .alwaysUseFieldBuilders) {
7136  }
7137  }
7138  @java.lang.Override
7139  public Builder clear() {
7140  super.clear();
7141  preferredVariableOrder_ = 0;
7142  bitField0_ = (bitField0_ & ~0x00000001);
7143  initialPolarity_ = 1;
7144  bitField0_ = (bitField0_ & ~0x00000002);
7145  usePhaseSaving_ = true;
7146  bitField0_ = (bitField0_ & ~0x00000004);
7147  randomPolarityRatio_ = 0D;
7148  bitField0_ = (bitField0_ & ~0x00000008);
7149  randomBranchesRatio_ = 0D;
7150  bitField0_ = (bitField0_ & ~0x00000010);
7151  useErwaHeuristic_ = false;
7152  bitField0_ = (bitField0_ & ~0x00000020);
7153  initialVariablesActivity_ = 0D;
7154  bitField0_ = (bitField0_ & ~0x00000040);
7155  alsoBumpVariablesInConflictReasons_ = false;
7156  bitField0_ = (bitField0_ & ~0x00000080);
7157  minimizationAlgorithm_ = 2;
7158  bitField0_ = (bitField0_ & ~0x00000100);
7159  binaryMinimizationAlgorithm_ = 1;
7160  bitField0_ = (bitField0_ & ~0x00000200);
7161  subsumptionDuringConflictAnalysis_ = true;
7162  bitField0_ = (bitField0_ & ~0x00000400);
7163  clauseCleanupPeriod_ = 10000;
7164  bitField0_ = (bitField0_ & ~0x00000800);
7165  clauseCleanupTarget_ = 10000;
7166  bitField0_ = (bitField0_ & ~0x00001000);
7167  clauseCleanupProtection_ = 0;
7168  bitField0_ = (bitField0_ & ~0x00002000);
7169  clauseCleanupLbdBound_ = 5;
7170  bitField0_ = (bitField0_ & ~0x00004000);
7171  clauseCleanupOrdering_ = 0;
7172  bitField0_ = (bitField0_ & ~0x00008000);
7173  pbCleanupIncrement_ = 200;
7174  bitField0_ = (bitField0_ & ~0x00010000);
7175  pbCleanupRatio_ = 0.5D;
7176  bitField0_ = (bitField0_ & ~0x00020000);
7177  minimizeWithPropagationRestartPeriod_ = 10;
7178  bitField0_ = (bitField0_ & ~0x00040000);
7179  minimizeWithPropagationNumDecisions_ = 1000;
7180  bitField0_ = (bitField0_ & ~0x00080000);
7181  variableActivityDecay_ = 0.8D;
7182  bitField0_ = (bitField0_ & ~0x00100000);
7183  maxVariableActivityValue_ = 1e+100D;
7184  bitField0_ = (bitField0_ & ~0x00200000);
7185  glucoseMaxDecay_ = 0.95D;
7186  bitField0_ = (bitField0_ & ~0x00400000);
7187  glucoseDecayIncrement_ = 0.01D;
7188  bitField0_ = (bitField0_ & ~0x00800000);
7189  glucoseDecayIncrementPeriod_ = 5000;
7190  bitField0_ = (bitField0_ & ~0x01000000);
7191  clauseActivityDecay_ = 0.999D;
7192  bitField0_ = (bitField0_ & ~0x02000000);
7193  maxClauseActivityValue_ = 1e+20D;
7194  bitField0_ = (bitField0_ & ~0x04000000);
7195  restartAlgorithms_ = java.util.Collections.emptyList();
7196  bitField0_ = (bitField0_ & ~0x08000000);
7197  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
7198  bitField0_ = (bitField0_ & ~0x10000000);
7199  restartPeriod_ = 50;
7200  bitField0_ = (bitField0_ & ~0x20000000);
7201  restartRunningWindowSize_ = 50;
7202  bitField0_ = (bitField0_ & ~0x40000000);
7203  restartDlAverageRatio_ = 1D;
7204  bitField0_ = (bitField0_ & ~0x80000000);
7205  restartLbdAverageRatio_ = 1D;
7206  bitField1_ = (bitField1_ & ~0x00000001);
7207  useBlockingRestart_ = false;
7208  bitField1_ = (bitField1_ & ~0x00000002);
7209  blockingRestartWindowSize_ = 5000;
7210  bitField1_ = (bitField1_ & ~0x00000004);
7211  blockingRestartMultiplier_ = 1.4D;
7212  bitField1_ = (bitField1_ & ~0x00000008);
7213  numConflictsBeforeStrategyChanges_ = 0;
7214  bitField1_ = (bitField1_ & ~0x00000010);
7215  strategyChangeIncreaseRatio_ = 0D;
7216  bitField1_ = (bitField1_ & ~0x00000020);
7217  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
7218  bitField1_ = (bitField1_ & ~0x00000040);
7219  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
7220  bitField1_ = (bitField1_ & ~0x00000080);
7221  maxNumberOfConflicts_ = 9223372036854775807L;
7222  bitField1_ = (bitField1_ & ~0x00000100);
7223  maxMemoryInMb_ = 10000L;
7224  bitField1_ = (bitField1_ & ~0x00000200);
7225  treatBinaryClausesSeparately_ = true;
7226  bitField1_ = (bitField1_ & ~0x00000400);
7227  randomSeed_ = 1;
7228  bitField1_ = (bitField1_ & ~0x00000800);
7229  logSearchProgress_ = false;
7230  bitField1_ = (bitField1_ & ~0x00001000);
7231  usePbResolution_ = false;
7232  bitField1_ = (bitField1_ & ~0x00002000);
7233  minimizeReductionDuringPbResolution_ = false;
7234  bitField1_ = (bitField1_ & ~0x00004000);
7235  countAssumptionLevelsInLbd_ = true;
7236  bitField1_ = (bitField1_ & ~0x00008000);
7237  presolveBveThreshold_ = 500;
7238  bitField1_ = (bitField1_ & ~0x00010000);
7239  presolveBveClauseWeight_ = 3;
7240  bitField1_ = (bitField1_ & ~0x00020000);
7241  presolveProbingDeterministicTimeLimit_ = 30D;
7242  bitField1_ = (bitField1_ & ~0x00040000);
7243  presolveBlockedClause_ = true;
7244  bitField1_ = (bitField1_ & ~0x00080000);
7245  presolveUseBva_ = true;
7246  bitField1_ = (bitField1_ & ~0x00100000);
7247  presolveBvaThreshold_ = 1;
7248  bitField1_ = (bitField1_ & ~0x00200000);
7249  useOptimizationHints_ = true;
7250  bitField1_ = (bitField1_ & ~0x00400000);
7251  minimizeCore_ = true;
7252  bitField1_ = (bitField1_ & ~0x00800000);
7253  findMultipleCores_ = true;
7254  bitField1_ = (bitField1_ & ~0x01000000);
7255  coverOptimization_ = true;
7256  bitField1_ = (bitField1_ & ~0x02000000);
7257  maxSatAssumptionOrder_ = 0;
7258  bitField1_ = (bitField1_ & ~0x04000000);
7259  maxSatReverseAssumptionOrder_ = false;
7260  bitField1_ = (bitField1_ & ~0x08000000);
7261  maxSatStratification_ = 1;
7262  bitField1_ = (bitField1_ & ~0x10000000);
7263  usePrecedencesInDisjunctiveConstraint_ = true;
7264  bitField1_ = (bitField1_ & ~0x20000000);
7265  useOverloadCheckerInCumulativeConstraint_ = false;
7266  bitField1_ = (bitField1_ & ~0x40000000);
7267  useTimetableEdgeFindingInCumulativeConstraint_ = false;
7268  bitField1_ = (bitField1_ & ~0x80000000);
7269  useDisjunctiveConstraintInCumulativeConstraint_ = true;
7270  bitField2_ = (bitField2_ & ~0x00000001);
7271  linearizationLevel_ = 1;
7272  bitField2_ = (bitField2_ & ~0x00000002);
7273  booleanEncodingLevel_ = 1;
7274  bitField2_ = (bitField2_ & ~0x00000004);
7275  maxNumCuts_ = 1000;
7276  bitField2_ = (bitField2_ & ~0x00000008);
7277  onlyAddCutsAtLevelZero_ = false;
7278  bitField2_ = (bitField2_ & ~0x00000010);
7279  addKnapsackCuts_ = false;
7280  bitField2_ = (bitField2_ & ~0x00000020);
7281  addCgCuts_ = false;
7282  bitField2_ = (bitField2_ & ~0x00000040);
7283  addMirCuts_ = true;
7284  bitField2_ = (bitField2_ & ~0x00000080);
7285  useMirRounding_ = true;
7286  bitField2_ = (bitField2_ & ~0x00000100);
7287  maxIntegerRoundingScaling_ = 600;
7288  bitField2_ = (bitField2_ & ~0x00000200);
7289  addLpConstraintsLazily_ = true;
7290  bitField2_ = (bitField2_ & ~0x00000400);
7291  minOrthogonalityForLpConstraints_ = 0D;
7292  bitField2_ = (bitField2_ & ~0x00000800);
7293  maxInactiveCount_ = 1000L;
7294  bitField2_ = (bitField2_ & ~0x00001000);
7295  constraintRemovalBatchSize_ = 100L;
7296  bitField2_ = (bitField2_ & ~0x00002000);
7297  searchBranching_ = 0;
7298  bitField2_ = (bitField2_ & ~0x00004000);
7299  exploitIntegerLpSolution_ = true;
7300  bitField2_ = (bitField2_ & ~0x00008000);
7301  exploitAllLpSolution_ = true;
7302  bitField2_ = (bitField2_ & ~0x00010000);
7303  exploitBestSolution_ = false;
7304  bitField2_ = (bitField2_ & ~0x00020000);
7305  exploitObjective_ = true;
7306  bitField2_ = (bitField2_ & ~0x00040000);
7307  pseudoCostReliabilityThreshold_ = 100L;
7308  bitField2_ = (bitField2_ & ~0x00080000);
7309  optimizeWithCore_ = false;
7310  bitField2_ = (bitField2_ & ~0x00100000);
7311  binarySearchNumConflicts_ = -1;
7312  bitField2_ = (bitField2_ & ~0x00200000);
7313  optimizeWithMaxHs_ = false;
7314  bitField2_ = (bitField2_ & ~0x00400000);
7315  cpModelPresolve_ = true;
7316  bitField2_ = (bitField2_ & ~0x00800000);
7317  cpModelProbingLevel_ = 2;
7318  bitField2_ = (bitField2_ & ~0x01000000);
7319  cpModelUseSatPresolve_ = true;
7320  bitField2_ = (bitField2_ & ~0x02000000);
7321  enumerateAllSolutions_ = false;
7322  bitField2_ = (bitField2_ & ~0x04000000);
7323  fillTightenedDomainsInResponse_ = false;
7324  bitField2_ = (bitField2_ & ~0x08000000);
7325  instantiateAllVariables_ = true;
7326  bitField2_ = (bitField2_ & ~0x10000000);
7327  autoDetectGreaterThanAtLeastOneOf_ = true;
7328  bitField2_ = (bitField2_ & ~0x20000000);
7329  stopAfterFirstSolution_ = false;
7330  bitField2_ = (bitField2_ & ~0x40000000);
7331  numSearchWorkers_ = 0;
7332  bitField2_ = (bitField2_ & ~0x80000000);
7333  shareObjectiveBounds_ = true;
7334  bitField3_ = (bitField3_ & ~0x00000001);
7335  shareLevelZeroBounds_ = true;
7336  bitField3_ = (bitField3_ & ~0x00000002);
7337  useLns_ = false;
7338  bitField3_ = (bitField3_ & ~0x00000004);
7339  lnsNumThreads_ = 1;
7340  bitField3_ = (bitField3_ & ~0x00000008);
7341  lnsFocusOnDecisionVariables_ = false;
7342  bitField3_ = (bitField3_ & ~0x00000010);
7343  useRinsLns_ = false;
7344  bitField3_ = (bitField3_ & ~0x00000020);
7345  randomizeSearch_ = false;
7346  bitField3_ = (bitField3_ & ~0x00000040);
7347  searchRandomizationTolerance_ = 0L;
7348  bitField3_ = (bitField3_ & ~0x00000080);
7349  useOptionalVariables_ = true;
7350  bitField3_ = (bitField3_ & ~0x00000100);
7351  useExactLpReason_ = true;
7352  bitField3_ = (bitField3_ & ~0x00000200);
7353  useCombinedNoOverlap_ = false;
7354  bitField3_ = (bitField3_ & ~0x00000400);
7355  mipMaxBound_ = 10000000D;
7356  bitField3_ = (bitField3_ & ~0x00000800);
7357  mipVarScaling_ = 1D;
7358  bitField3_ = (bitField3_ & ~0x00001000);
7359  mipWantedPrecision_ = 1e-06D;
7360  bitField3_ = (bitField3_ & ~0x00002000);
7361  mipMaxActivityExponent_ = 53;
7362  bitField3_ = (bitField3_ & ~0x00004000);
7363  mipCheckPrecision_ = 0.0001D;
7364  bitField3_ = (bitField3_ & ~0x00008000);
7365  return this;
7366  }
7367 
7368  @java.lang.Override
7369  public com.google.protobuf.Descriptors.Descriptor
7371  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7372  }
7373 
7374  @java.lang.Override
7377  }
7378 
7379  @java.lang.Override
7382  if (!result.isInitialized()) {
7383  throw newUninitializedMessageException(result);
7384  }
7385  return result;
7386  }
7387 
7388  @java.lang.Override
7391  int from_bitField0_ = bitField0_;
7392  int from_bitField1_ = bitField1_;
7393  int from_bitField2_ = bitField2_;
7394  int from_bitField3_ = bitField3_;
7395  int to_bitField0_ = 0;
7396  int to_bitField1_ = 0;
7397  int to_bitField2_ = 0;
7398  int to_bitField3_ = 0;
7399  if (((from_bitField0_ & 0x00000001) != 0)) {
7400  to_bitField0_ |= 0x00000001;
7401  }
7402  result.preferredVariableOrder_ = preferredVariableOrder_;
7403  if (((from_bitField0_ & 0x00000002) != 0)) {
7404  to_bitField0_ |= 0x00000002;
7405  }
7406  result.initialPolarity_ = initialPolarity_;
7407  if (((from_bitField0_ & 0x00000004) != 0)) {
7408  to_bitField0_ |= 0x00000004;
7409  }
7410  result.usePhaseSaving_ = usePhaseSaving_;
7411  if (((from_bitField0_ & 0x00000008) != 0)) {
7412  result.randomPolarityRatio_ = randomPolarityRatio_;
7413  to_bitField0_ |= 0x00000008;
7414  }
7415  if (((from_bitField0_ & 0x00000010) != 0)) {
7416  result.randomBranchesRatio_ = randomBranchesRatio_;
7417  to_bitField0_ |= 0x00000010;
7418  }
7419  if (((from_bitField0_ & 0x00000020) != 0)) {
7420  result.useErwaHeuristic_ = useErwaHeuristic_;
7421  to_bitField0_ |= 0x00000020;
7422  }
7423  if (((from_bitField0_ & 0x00000040) != 0)) {
7424  result.initialVariablesActivity_ = initialVariablesActivity_;
7425  to_bitField0_ |= 0x00000040;
7426  }
7427  if (((from_bitField0_ & 0x00000080) != 0)) {
7428  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
7429  to_bitField0_ |= 0x00000080;
7430  }
7431  if (((from_bitField0_ & 0x00000100) != 0)) {
7432  to_bitField0_ |= 0x00000100;
7433  }
7434  result.minimizationAlgorithm_ = minimizationAlgorithm_;
7435  if (((from_bitField0_ & 0x00000200) != 0)) {
7436  to_bitField0_ |= 0x00000200;
7437  }
7438  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
7439  if (((from_bitField0_ & 0x00000400) != 0)) {
7440  to_bitField0_ |= 0x00000400;
7441  }
7442  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
7443  if (((from_bitField0_ & 0x00000800) != 0)) {
7444  to_bitField0_ |= 0x00000800;
7445  }
7446  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
7447  if (((from_bitField0_ & 0x00001000) != 0)) {
7448  to_bitField0_ |= 0x00001000;
7449  }
7450  result.clauseCleanupTarget_ = clauseCleanupTarget_;
7451  if (((from_bitField0_ & 0x00002000) != 0)) {
7452  to_bitField0_ |= 0x00002000;
7453  }
7454  result.clauseCleanupProtection_ = clauseCleanupProtection_;
7455  if (((from_bitField0_ & 0x00004000) != 0)) {
7456  to_bitField0_ |= 0x00004000;
7457  }
7458  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
7459  if (((from_bitField0_ & 0x00008000) != 0)) {
7460  to_bitField0_ |= 0x00008000;
7461  }
7462  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
7463  if (((from_bitField0_ & 0x00010000) != 0)) {
7464  to_bitField0_ |= 0x00010000;
7465  }
7466  result.pbCleanupIncrement_ = pbCleanupIncrement_;
7467  if (((from_bitField0_ & 0x00020000) != 0)) {
7468  to_bitField0_ |= 0x00020000;
7469  }
7470  result.pbCleanupRatio_ = pbCleanupRatio_;
7471  if (((from_bitField0_ & 0x00040000) != 0)) {
7472  to_bitField0_ |= 0x00040000;
7473  }
7474  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
7475  if (((from_bitField0_ & 0x00080000) != 0)) {
7476  to_bitField0_ |= 0x00080000;
7477  }
7478  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
7479  if (((from_bitField0_ & 0x00100000) != 0)) {
7480  to_bitField0_ |= 0x00100000;
7481  }
7482  result.variableActivityDecay_ = variableActivityDecay_;
7483  if (((from_bitField0_ & 0x00200000) != 0)) {
7484  to_bitField0_ |= 0x00200000;
7485  }
7486  result.maxVariableActivityValue_ = maxVariableActivityValue_;
7487  if (((from_bitField0_ & 0x00400000) != 0)) {
7488  to_bitField0_ |= 0x00400000;
7489  }
7490  result.glucoseMaxDecay_ = glucoseMaxDecay_;
7491  if (((from_bitField0_ & 0x00800000) != 0)) {
7492  to_bitField0_ |= 0x00800000;
7493  }
7494  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
7495  if (((from_bitField0_ & 0x01000000) != 0)) {
7496  to_bitField0_ |= 0x01000000;
7497  }
7498  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
7499  if (((from_bitField0_ & 0x02000000) != 0)) {
7500  to_bitField0_ |= 0x02000000;
7501  }
7502  result.clauseActivityDecay_ = clauseActivityDecay_;
7503  if (((from_bitField0_ & 0x04000000) != 0)) {
7504  to_bitField0_ |= 0x04000000;
7505  }
7506  result.maxClauseActivityValue_ = maxClauseActivityValue_;
7507  if (((bitField0_ & 0x08000000) != 0)) {
7508  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
7509  bitField0_ = (bitField0_ & ~0x08000000);
7510  }
7511  result.restartAlgorithms_ = restartAlgorithms_;
7512  if (((from_bitField0_ & 0x10000000) != 0)) {
7513  to_bitField0_ |= 0x08000000;
7514  }
7515  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
7516  if (((from_bitField0_ & 0x20000000) != 0)) {
7517  to_bitField0_ |= 0x10000000;
7518  }
7519  result.restartPeriod_ = restartPeriod_;
7520  if (((from_bitField0_ & 0x40000000) != 0)) {
7521  to_bitField0_ |= 0x20000000;
7522  }
7523  result.restartRunningWindowSize_ = restartRunningWindowSize_;
7524  if (((from_bitField0_ & 0x80000000) != 0)) {
7525  to_bitField0_ |= 0x40000000;
7526  }
7527  result.restartDlAverageRatio_ = restartDlAverageRatio_;
7528  if (((from_bitField1_ & 0x00000001) != 0)) {
7529  to_bitField0_ |= 0x80000000;
7530  }
7531  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
7532  if (((from_bitField1_ & 0x00000002) != 0)) {
7533  result.useBlockingRestart_ = useBlockingRestart_;
7534  to_bitField1_ |= 0x00000001;
7535  }
7536  if (((from_bitField1_ & 0x00000004) != 0)) {
7537  to_bitField1_ |= 0x00000002;
7538  }
7539  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
7540  if (((from_bitField1_ & 0x00000008) != 0)) {
7541  to_bitField1_ |= 0x00000004;
7542  }
7543  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
7544  if (((from_bitField1_ & 0x00000010) != 0)) {
7545  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
7546  to_bitField1_ |= 0x00000008;
7547  }
7548  if (((from_bitField1_ & 0x00000020) != 0)) {
7549  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
7550  to_bitField1_ |= 0x00000010;
7551  }
7552  if (((from_bitField1_ & 0x00000040) != 0)) {
7553  to_bitField1_ |= 0x00000020;
7554  }
7555  result.maxTimeInSeconds_ = maxTimeInSeconds_;
7556  if (((from_bitField1_ & 0x00000080) != 0)) {
7557  to_bitField1_ |= 0x00000040;
7558  }
7559  result.maxDeterministicTime_ = maxDeterministicTime_;
7560  if (((from_bitField1_ & 0x00000100) != 0)) {
7561  to_bitField1_ |= 0x00000080;
7562  }
7563  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
7564  if (((from_bitField1_ & 0x00000200) != 0)) {
7565  to_bitField1_ |= 0x00000100;
7566  }
7567  result.maxMemoryInMb_ = maxMemoryInMb_;
7568  if (((from_bitField1_ & 0x00000400) != 0)) {
7569  to_bitField1_ |= 0x00000200;
7570  }
7571  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
7572  if (((from_bitField1_ & 0x00000800) != 0)) {
7573  to_bitField1_ |= 0x00000400;
7574  }
7575  result.randomSeed_ = randomSeed_;
7576  if (((from_bitField1_ & 0x00001000) != 0)) {
7577  result.logSearchProgress_ = logSearchProgress_;
7578  to_bitField1_ |= 0x00000800;
7579  }
7580  if (((from_bitField1_ & 0x00002000) != 0)) {
7581  result.usePbResolution_ = usePbResolution_;
7582  to_bitField1_ |= 0x00001000;
7583  }
7584  if (((from_bitField1_ & 0x00004000) != 0)) {
7585  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
7586  to_bitField1_ |= 0x00002000;
7587  }
7588  if (((from_bitField1_ & 0x00008000) != 0)) {
7589  to_bitField1_ |= 0x00004000;
7590  }
7591  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
7592  if (((from_bitField1_ & 0x00010000) != 0)) {
7593  to_bitField1_ |= 0x00008000;
7594  }
7595  result.presolveBveThreshold_ = presolveBveThreshold_;
7596  if (((from_bitField1_ & 0x00020000) != 0)) {
7597  to_bitField1_ |= 0x00010000;
7598  }
7599  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
7600  if (((from_bitField1_ & 0x00040000) != 0)) {
7601  to_bitField1_ |= 0x00020000;
7602  }
7603  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
7604  if (((from_bitField1_ & 0x00080000) != 0)) {
7605  to_bitField1_ |= 0x00040000;
7606  }
7607  result.presolveBlockedClause_ = presolveBlockedClause_;
7608  if (((from_bitField1_ & 0x00100000) != 0)) {
7609  to_bitField1_ |= 0x00080000;
7610  }
7611  result.presolveUseBva_ = presolveUseBva_;
7612  if (((from_bitField1_ & 0x00200000) != 0)) {
7613  to_bitField1_ |= 0x00100000;
7614  }
7615  result.presolveBvaThreshold_ = presolveBvaThreshold_;
7616  if (((from_bitField1_ & 0x00400000) != 0)) {
7617  to_bitField1_ |= 0x00200000;
7618  }
7619  result.useOptimizationHints_ = useOptimizationHints_;
7620  if (((from_bitField1_ & 0x00800000) != 0)) {
7621  to_bitField1_ |= 0x00400000;
7622  }
7623  result.minimizeCore_ = minimizeCore_;
7624  if (((from_bitField1_ & 0x01000000) != 0)) {
7625  to_bitField1_ |= 0x00800000;
7626  }
7627  result.findMultipleCores_ = findMultipleCores_;
7628  if (((from_bitField1_ & 0x02000000) != 0)) {
7629  to_bitField1_ |= 0x01000000;
7630  }
7631  result.coverOptimization_ = coverOptimization_;
7632  if (((from_bitField1_ & 0x04000000) != 0)) {
7633  to_bitField1_ |= 0x02000000;
7634  }
7635  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
7636  if (((from_bitField1_ & 0x08000000) != 0)) {
7637  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
7638  to_bitField1_ |= 0x04000000;
7639  }
7640  if (((from_bitField1_ & 0x10000000) != 0)) {
7641  to_bitField1_ |= 0x08000000;
7642  }
7643  result.maxSatStratification_ = maxSatStratification_;
7644  if (((from_bitField1_ & 0x20000000) != 0)) {
7645  to_bitField1_ |= 0x10000000;
7646  }
7647  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
7648  if (((from_bitField1_ & 0x40000000) != 0)) {
7649  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
7650  to_bitField1_ |= 0x20000000;
7651  }
7652  if (((from_bitField1_ & 0x80000000) != 0)) {
7653  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
7654  to_bitField1_ |= 0x40000000;
7655  }
7656  if (((from_bitField2_ & 0x00000001) != 0)) {
7657  to_bitField1_ |= 0x80000000;
7658  }
7659  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
7660  if (((from_bitField2_ & 0x00000002) != 0)) {
7661  to_bitField2_ |= 0x00000001;
7662  }
7663  result.linearizationLevel_ = linearizationLevel_;
7664  if (((from_bitField2_ & 0x00000004) != 0)) {
7665  to_bitField2_ |= 0x00000002;
7666  }
7667  result.booleanEncodingLevel_ = booleanEncodingLevel_;
7668  if (((from_bitField2_ & 0x00000008) != 0)) {
7669  to_bitField2_ |= 0x00000004;
7670  }
7671  result.maxNumCuts_ = maxNumCuts_;
7672  if (((from_bitField2_ & 0x00000010) != 0)) {
7673  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
7674  to_bitField2_ |= 0x00000008;
7675  }
7676  if (((from_bitField2_ & 0x00000020) != 0)) {
7677  result.addKnapsackCuts_ = addKnapsackCuts_;
7678  to_bitField2_ |= 0x00000010;
7679  }
7680  if (((from_bitField2_ & 0x00000040) != 0)) {
7681  result.addCgCuts_ = addCgCuts_;
7682  to_bitField2_ |= 0x00000020;
7683  }
7684  if (((from_bitField2_ & 0x00000080) != 0)) {
7685  to_bitField2_ |= 0x00000040;
7686  }
7687  result.addMirCuts_ = addMirCuts_;
7688  if (((from_bitField2_ & 0x00000100) != 0)) {
7689  to_bitField2_ |= 0x00000080;
7690  }
7691  result.useMirRounding_ = useMirRounding_;
7692  if (((from_bitField2_ & 0x00000200) != 0)) {
7693  to_bitField2_ |= 0x00000100;
7694  }
7695  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
7696  if (((from_bitField2_ & 0x00000400) != 0)) {
7697  to_bitField2_ |= 0x00000200;
7698  }
7699  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
7700  if (((from_bitField2_ & 0x00000800) != 0)) {
7701  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
7702  to_bitField2_ |= 0x00000400;
7703  }
7704  if (((from_bitField2_ & 0x00001000) != 0)) {
7705  to_bitField2_ |= 0x00000800;
7706  }
7707  result.maxInactiveCount_ = maxInactiveCount_;
7708  if (((from_bitField2_ & 0x00002000) != 0)) {
7709  to_bitField2_ |= 0x00001000;
7710  }
7711  result.constraintRemovalBatchSize_ = constraintRemovalBatchSize_;
7712  if (((from_bitField2_ & 0x00004000) != 0)) {
7713  to_bitField2_ |= 0x00002000;
7714  }
7715  result.searchBranching_ = searchBranching_;
7716  if (((from_bitField2_ & 0x00008000) != 0)) {
7717  to_bitField2_ |= 0x00004000;
7718  }
7719  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
7720  if (((from_bitField2_ & 0x00010000) != 0)) {
7721  to_bitField2_ |= 0x00008000;
7722  }
7723  result.exploitAllLpSolution_ = exploitAllLpSolution_;
7724  if (((from_bitField2_ & 0x00020000) != 0)) {
7725  result.exploitBestSolution_ = exploitBestSolution_;
7726  to_bitField2_ |= 0x00010000;
7727  }
7728  if (((from_bitField2_ & 0x00040000) != 0)) {
7729  to_bitField2_ |= 0x00020000;
7730  }
7731  result.exploitObjective_ = exploitObjective_;
7732  if (((from_bitField2_ & 0x00080000) != 0)) {
7733  to_bitField2_ |= 0x00040000;
7734  }
7735  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
7736  if (((from_bitField2_ & 0x00100000) != 0)) {
7737  result.optimizeWithCore_ = optimizeWithCore_;
7738  to_bitField2_ |= 0x00080000;
7739  }
7740  if (((from_bitField2_ & 0x00200000) != 0)) {
7741  to_bitField2_ |= 0x00100000;
7742  }
7743  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
7744  if (((from_bitField2_ & 0x00400000) != 0)) {
7745  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
7746  to_bitField2_ |= 0x00200000;
7747  }
7748  if (((from_bitField2_ & 0x00800000) != 0)) {
7749  to_bitField2_ |= 0x00400000;
7750  }
7751  result.cpModelPresolve_ = cpModelPresolve_;
7752  if (((from_bitField2_ & 0x01000000) != 0)) {
7753  to_bitField2_ |= 0x00800000;
7754  }
7755  result.cpModelProbingLevel_ = cpModelProbingLevel_;
7756  if (((from_bitField2_ & 0x02000000) != 0)) {
7757  to_bitField2_ |= 0x01000000;
7758  }
7759  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
7760  if (((from_bitField2_ & 0x04000000) != 0)) {
7761  result.enumerateAllSolutions_ = enumerateAllSolutions_;
7762  to_bitField2_ |= 0x02000000;
7763  }
7764  if (((from_bitField2_ & 0x08000000) != 0)) {
7765  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
7766  to_bitField2_ |= 0x04000000;
7767  }
7768  if (((from_bitField2_ & 0x10000000) != 0)) {
7769  to_bitField2_ |= 0x08000000;
7770  }
7771  result.instantiateAllVariables_ = instantiateAllVariables_;
7772  if (((from_bitField2_ & 0x20000000) != 0)) {
7773  to_bitField2_ |= 0x10000000;
7774  }
7775  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
7776  if (((from_bitField2_ & 0x40000000) != 0)) {
7777  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
7778  to_bitField2_ |= 0x20000000;
7779  }
7780  if (((from_bitField2_ & 0x80000000) != 0)) {
7781  result.numSearchWorkers_ = numSearchWorkers_;
7782  to_bitField2_ |= 0x40000000;
7783  }
7784  if (((from_bitField3_ & 0x00000001) != 0)) {
7785  to_bitField2_ |= 0x80000000;
7786  }
7787  result.shareObjectiveBounds_ = shareObjectiveBounds_;
7788  if (((from_bitField3_ & 0x00000002) != 0)) {
7789  to_bitField3_ |= 0x00000001;
7790  }
7791  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
7792  if (((from_bitField3_ & 0x00000004) != 0)) {
7793  result.useLns_ = useLns_;
7794  to_bitField3_ |= 0x00000002;
7795  }
7796  if (((from_bitField3_ & 0x00000008) != 0)) {
7797  to_bitField3_ |= 0x00000004;
7798  }
7799  result.lnsNumThreads_ = lnsNumThreads_;
7800  if (((from_bitField3_ & 0x00000010) != 0)) {
7801  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
7802  to_bitField3_ |= 0x00000008;
7803  }
7804  if (((from_bitField3_ & 0x00000020) != 0)) {
7805  result.useRinsLns_ = useRinsLns_;
7806  to_bitField3_ |= 0x00000010;
7807  }
7808  if (((from_bitField3_ & 0x00000040) != 0)) {
7809  result.randomizeSearch_ = randomizeSearch_;
7810  to_bitField3_ |= 0x00000020;
7811  }
7812  if (((from_bitField3_ & 0x00000080) != 0)) {
7813  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
7814  to_bitField3_ |= 0x00000040;
7815  }
7816  if (((from_bitField3_ & 0x00000100) != 0)) {
7817  to_bitField3_ |= 0x00000080;
7818  }
7819  result.useOptionalVariables_ = useOptionalVariables_;
7820  if (((from_bitField3_ & 0x00000200) != 0)) {
7821  to_bitField3_ |= 0x00000100;
7822  }
7823  result.useExactLpReason_ = useExactLpReason_;
7824  if (((from_bitField3_ & 0x00000400) != 0)) {
7825  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
7826  to_bitField3_ |= 0x00000200;
7827  }
7828  if (((from_bitField3_ & 0x00000800) != 0)) {
7829  to_bitField3_ |= 0x00000400;
7830  }
7831  result.mipMaxBound_ = mipMaxBound_;
7832  if (((from_bitField3_ & 0x00001000) != 0)) {
7833  to_bitField3_ |= 0x00000800;
7834  }
7835  result.mipVarScaling_ = mipVarScaling_;
7836  if (((from_bitField3_ & 0x00002000) != 0)) {
7837  to_bitField3_ |= 0x00001000;
7838  }
7839  result.mipWantedPrecision_ = mipWantedPrecision_;
7840  if (((from_bitField3_ & 0x00004000) != 0)) {
7841  to_bitField3_ |= 0x00002000;
7842  }
7843  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
7844  if (((from_bitField3_ & 0x00008000) != 0)) {
7845  to_bitField3_ |= 0x00004000;
7846  }
7847  result.mipCheckPrecision_ = mipCheckPrecision_;
7848  result.bitField0_ = to_bitField0_;
7849  result.bitField1_ = to_bitField1_;
7850  result.bitField2_ = to_bitField2_;
7851  result.bitField3_ = to_bitField3_;
7852  onBuilt();
7853  return result;
7854  }
7855 
7856  @java.lang.Override
7857  public Builder clone() {
7858  return super.clone();
7859  }
7860  @java.lang.Override
7862  com.google.protobuf.Descriptors.FieldDescriptor field,
7863  java.lang.Object value) {
7864  return super.setField(field, value);
7865  }
7866  @java.lang.Override
7868  com.google.protobuf.Descriptors.FieldDescriptor field) {
7869  return super.clearField(field);
7870  }
7871  @java.lang.Override
7873  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
7874  return super.clearOneof(oneof);
7875  }
7876  @java.lang.Override
7878  com.google.protobuf.Descriptors.FieldDescriptor field,
7879  int index, java.lang.Object value) {
7880  return super.setRepeatedField(field, index, value);
7881  }
7882  @java.lang.Override
7884  com.google.protobuf.Descriptors.FieldDescriptor field,
7885  java.lang.Object value) {
7886  return super.addRepeatedField(field, value);
7887  }
7888  @java.lang.Override
7889  public Builder mergeFrom(com.google.protobuf.Message other) {
7890  if (other instanceof com.google.ortools.sat.SatParameters) {
7891  return mergeFrom((com.google.ortools.sat.SatParameters)other);
7892  } else {
7893  super.mergeFrom(other);
7894  return this;
7895  }
7896  }
7897 
7899  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
7900  if (other.hasPreferredVariableOrder()) {
7901  setPreferredVariableOrder(other.getPreferredVariableOrder());
7902  }
7903  if (other.hasInitialPolarity()) {
7904  setInitialPolarity(other.getInitialPolarity());
7905  }
7906  if (other.hasUsePhaseSaving()) {
7907  setUsePhaseSaving(other.getUsePhaseSaving());
7908  }
7909  if (other.hasRandomPolarityRatio()) {
7910  setRandomPolarityRatio(other.getRandomPolarityRatio());
7911  }
7912  if (other.hasRandomBranchesRatio()) {
7913  setRandomBranchesRatio(other.getRandomBranchesRatio());
7914  }
7915  if (other.hasUseErwaHeuristic()) {
7916  setUseErwaHeuristic(other.getUseErwaHeuristic());
7917  }
7918  if (other.hasInitialVariablesActivity()) {
7919  setInitialVariablesActivity(other.getInitialVariablesActivity());
7920  }
7921  if (other.hasAlsoBumpVariablesInConflictReasons()) {
7922  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
7923  }
7924  if (other.hasMinimizationAlgorithm()) {
7925  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
7926  }
7927  if (other.hasBinaryMinimizationAlgorithm()) {
7928  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
7929  }
7930  if (other.hasSubsumptionDuringConflictAnalysis()) {
7931  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
7932  }
7933  if (other.hasClauseCleanupPeriod()) {
7934  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
7935  }
7936  if (other.hasClauseCleanupTarget()) {
7937  setClauseCleanupTarget(other.getClauseCleanupTarget());
7938  }
7939  if (other.hasClauseCleanupProtection()) {
7940  setClauseCleanupProtection(other.getClauseCleanupProtection());
7941  }
7942  if (other.hasClauseCleanupLbdBound()) {
7943  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
7944  }
7945  if (other.hasClauseCleanupOrdering()) {
7946  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
7947  }
7948  if (other.hasPbCleanupIncrement()) {
7949  setPbCleanupIncrement(other.getPbCleanupIncrement());
7950  }
7951  if (other.hasPbCleanupRatio()) {
7952  setPbCleanupRatio(other.getPbCleanupRatio());
7953  }
7954  if (other.hasMinimizeWithPropagationRestartPeriod()) {
7955  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
7956  }
7957  if (other.hasMinimizeWithPropagationNumDecisions()) {
7958  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
7959  }
7960  if (other.hasVariableActivityDecay()) {
7961  setVariableActivityDecay(other.getVariableActivityDecay());
7962  }
7963  if (other.hasMaxVariableActivityValue()) {
7964  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
7965  }
7966  if (other.hasGlucoseMaxDecay()) {
7967  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
7968  }
7969  if (other.hasGlucoseDecayIncrement()) {
7970  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
7971  }
7972  if (other.hasGlucoseDecayIncrementPeriod()) {
7973  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
7974  }
7975  if (other.hasClauseActivityDecay()) {
7976  setClauseActivityDecay(other.getClauseActivityDecay());
7977  }
7978  if (other.hasMaxClauseActivityValue()) {
7979  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
7980  }
7981  if (!other.restartAlgorithms_.isEmpty()) {
7982  if (restartAlgorithms_.isEmpty()) {
7983  restartAlgorithms_ = other.restartAlgorithms_;
7984  bitField0_ = (bitField0_ & ~0x08000000);
7985  } else {
7986  ensureRestartAlgorithmsIsMutable();
7987  restartAlgorithms_.addAll(other.restartAlgorithms_);
7988  }
7989  onChanged();
7990  }
7991  if (other.hasDefaultRestartAlgorithms()) {
7992  bitField0_ |= 0x10000000;
7993  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
7994  onChanged();
7995  }
7996  if (other.hasRestartPeriod()) {
7997  setRestartPeriod(other.getRestartPeriod());
7998  }
7999  if (other.hasRestartRunningWindowSize()) {
8000  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
8001  }
8002  if (other.hasRestartDlAverageRatio()) {
8003  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
8004  }
8005  if (other.hasRestartLbdAverageRatio()) {
8006  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
8007  }
8008  if (other.hasUseBlockingRestart()) {
8009  setUseBlockingRestart(other.getUseBlockingRestart());
8010  }
8011  if (other.hasBlockingRestartWindowSize()) {
8012  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
8013  }
8014  if (other.hasBlockingRestartMultiplier()) {
8015  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
8016  }
8017  if (other.hasNumConflictsBeforeStrategyChanges()) {
8018  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
8019  }
8020  if (other.hasStrategyChangeIncreaseRatio()) {
8021  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
8022  }
8023  if (other.hasMaxTimeInSeconds()) {
8024  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
8025  }
8026  if (other.hasMaxDeterministicTime()) {
8027  setMaxDeterministicTime(other.getMaxDeterministicTime());
8028  }
8029  if (other.hasMaxNumberOfConflicts()) {
8030  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
8031  }
8032  if (other.hasMaxMemoryInMb()) {
8033  setMaxMemoryInMb(other.getMaxMemoryInMb());
8034  }
8035  if (other.hasTreatBinaryClausesSeparately()) {
8036  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
8037  }
8038  if (other.hasRandomSeed()) {
8039  setRandomSeed(other.getRandomSeed());
8040  }
8041  if (other.hasLogSearchProgress()) {
8042  setLogSearchProgress(other.getLogSearchProgress());
8043  }
8044  if (other.hasUsePbResolution()) {
8045  setUsePbResolution(other.getUsePbResolution());
8046  }
8047  if (other.hasMinimizeReductionDuringPbResolution()) {
8048  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
8049  }
8050  if (other.hasCountAssumptionLevelsInLbd()) {
8051  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
8052  }
8053  if (other.hasPresolveBveThreshold()) {
8054  setPresolveBveThreshold(other.getPresolveBveThreshold());
8055  }
8056  if (other.hasPresolveBveClauseWeight()) {
8057  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
8058  }
8059  if (other.hasPresolveProbingDeterministicTimeLimit()) {
8060  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
8061  }
8062  if (other.hasPresolveBlockedClause()) {
8063  setPresolveBlockedClause(other.getPresolveBlockedClause());
8064  }
8065  if (other.hasPresolveUseBva()) {
8066  setPresolveUseBva(other.getPresolveUseBva());
8067  }
8068  if (other.hasPresolveBvaThreshold()) {
8069  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
8070  }
8071  if (other.hasUseOptimizationHints()) {
8072  setUseOptimizationHints(other.getUseOptimizationHints());
8073  }
8074  if (other.hasMinimizeCore()) {
8075  setMinimizeCore(other.getMinimizeCore());
8076  }
8077  if (other.hasFindMultipleCores()) {
8078  setFindMultipleCores(other.getFindMultipleCores());
8079  }
8080  if (other.hasCoverOptimization()) {
8081  setCoverOptimization(other.getCoverOptimization());
8082  }
8083  if (other.hasMaxSatAssumptionOrder()) {
8084  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
8085  }
8086  if (other.hasMaxSatReverseAssumptionOrder()) {
8087  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
8088  }
8089  if (other.hasMaxSatStratification()) {
8090  setMaxSatStratification(other.getMaxSatStratification());
8091  }
8092  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
8093  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
8094  }
8095  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
8096  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
8097  }
8098  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
8099  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
8100  }
8101  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
8102  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
8103  }
8104  if (other.hasLinearizationLevel()) {
8105  setLinearizationLevel(other.getLinearizationLevel());
8106  }
8107  if (other.hasBooleanEncodingLevel()) {
8108  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
8109  }
8110  if (other.hasMaxNumCuts()) {
8111  setMaxNumCuts(other.getMaxNumCuts());
8112  }
8113  if (other.hasOnlyAddCutsAtLevelZero()) {
8114  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
8115  }
8116  if (other.hasAddKnapsackCuts()) {
8117  setAddKnapsackCuts(other.getAddKnapsackCuts());
8118  }
8119  if (other.hasAddCgCuts()) {
8120  setAddCgCuts(other.getAddCgCuts());
8121  }
8122  if (other.hasAddMirCuts()) {
8123  setAddMirCuts(other.getAddMirCuts());
8124  }
8125  if (other.hasUseMirRounding()) {
8126  setUseMirRounding(other.getUseMirRounding());
8127  }
8128  if (other.hasMaxIntegerRoundingScaling()) {
8129  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
8130  }
8131  if (other.hasAddLpConstraintsLazily()) {
8132  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
8133  }
8134  if (other.hasMinOrthogonalityForLpConstraints()) {
8135  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
8136  }
8137  if (other.hasMaxInactiveCount()) {
8138  setMaxInactiveCount(other.getMaxInactiveCount());
8139  }
8140  if (other.hasConstraintRemovalBatchSize()) {
8141  setConstraintRemovalBatchSize(other.getConstraintRemovalBatchSize());
8142  }
8143  if (other.hasSearchBranching()) {
8144  setSearchBranching(other.getSearchBranching());
8145  }
8146  if (other.hasExploitIntegerLpSolution()) {
8147  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
8148  }
8149  if (other.hasExploitAllLpSolution()) {
8150  setExploitAllLpSolution(other.getExploitAllLpSolution());
8151  }
8152  if (other.hasExploitBestSolution()) {
8153  setExploitBestSolution(other.getExploitBestSolution());
8154  }
8155  if (other.hasExploitObjective()) {
8156  setExploitObjective(other.getExploitObjective());
8157  }
8158  if (other.hasPseudoCostReliabilityThreshold()) {
8159  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
8160  }
8161  if (other.hasOptimizeWithCore()) {
8162  setOptimizeWithCore(other.getOptimizeWithCore());
8163  }
8164  if (other.hasBinarySearchNumConflicts()) {
8165  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
8166  }
8167  if (other.hasOptimizeWithMaxHs()) {
8168  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
8169  }
8170  if (other.hasCpModelPresolve()) {
8171  setCpModelPresolve(other.getCpModelPresolve());
8172  }
8173  if (other.hasCpModelProbingLevel()) {
8174  setCpModelProbingLevel(other.getCpModelProbingLevel());
8175  }
8176  if (other.hasCpModelUseSatPresolve()) {
8177  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
8178  }
8179  if (other.hasEnumerateAllSolutions()) {
8180  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
8181  }
8182  if (other.hasFillTightenedDomainsInResponse()) {
8183  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
8184  }
8185  if (other.hasInstantiateAllVariables()) {
8186  setInstantiateAllVariables(other.getInstantiateAllVariables());
8187  }
8188  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
8189  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
8190  }
8191  if (other.hasStopAfterFirstSolution()) {
8192  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
8193  }
8194  if (other.hasNumSearchWorkers()) {
8195  setNumSearchWorkers(other.getNumSearchWorkers());
8196  }
8197  if (other.hasShareObjectiveBounds()) {
8198  setShareObjectiveBounds(other.getShareObjectiveBounds());
8199  }
8200  if (other.hasShareLevelZeroBounds()) {
8201  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
8202  }
8203  if (other.hasUseLns()) {
8204  setUseLns(other.getUseLns());
8205  }
8206  if (other.hasLnsNumThreads()) {
8207  setLnsNumThreads(other.getLnsNumThreads());
8208  }
8209  if (other.hasLnsFocusOnDecisionVariables()) {
8210  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
8211  }
8212  if (other.hasUseRinsLns()) {
8213  setUseRinsLns(other.getUseRinsLns());
8214  }
8215  if (other.hasRandomizeSearch()) {
8216  setRandomizeSearch(other.getRandomizeSearch());
8217  }
8218  if (other.hasSearchRandomizationTolerance()) {
8219  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
8220  }
8221  if (other.hasUseOptionalVariables()) {
8222  setUseOptionalVariables(other.getUseOptionalVariables());
8223  }
8224  if (other.hasUseExactLpReason()) {
8225  setUseExactLpReason(other.getUseExactLpReason());
8226  }
8227  if (other.hasUseCombinedNoOverlap()) {
8228  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
8229  }
8230  if (other.hasMipMaxBound()) {
8231  setMipMaxBound(other.getMipMaxBound());
8232  }
8233  if (other.hasMipVarScaling()) {
8234  setMipVarScaling(other.getMipVarScaling());
8235  }
8236  if (other.hasMipWantedPrecision()) {
8237  setMipWantedPrecision(other.getMipWantedPrecision());
8238  }
8239  if (other.hasMipMaxActivityExponent()) {
8240  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
8241  }
8242  if (other.hasMipCheckPrecision()) {
8243  setMipCheckPrecision(other.getMipCheckPrecision());
8244  }
8245  this.mergeUnknownFields(other.unknownFields);
8246  onChanged();
8247  return this;
8248  }
8249 
8250  @java.lang.Override
8251  public final boolean isInitialized() {
8252  return true;
8253  }
8254 
8255  @java.lang.Override
8257  com.google.protobuf.CodedInputStream input,
8258  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8259  throws java.io.IOException {
8260  com.google.ortools.sat.SatParameters parsedMessage = null;
8261  try {
8262  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8263  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8264  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
8265  throw e.unwrapIOException();
8266  } finally {
8267  if (parsedMessage != null) {
8268  mergeFrom(parsedMessage);
8269  }
8270  }
8271  return this;
8272  }
8273  private int bitField0_;
8274  private int bitField1_;
8275  private int bitField2_;
8276  private int bitField3_;
8277 
8278  private int preferredVariableOrder_ = 0;
8282  public boolean hasPreferredVariableOrder() {
8283  return ((bitField0_ & 0x00000001) != 0);
8284  }
8289  @SuppressWarnings("deprecation")
8291  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
8292  }
8297  if (value == null) {
8298  throw new NullPointerException();
8299  }
8300  bitField0_ |= 0x00000001;
8301  preferredVariableOrder_ = value.getNumber();
8302  onChanged();
8303  return this;
8304  }
8309  bitField0_ = (bitField0_ & ~0x00000001);
8310  preferredVariableOrder_ = 0;
8311  onChanged();
8312  return this;
8313  }
8314 
8315  private int initialPolarity_ = 1;
8319  public boolean hasInitialPolarity() {
8320  return ((bitField0_ & 0x00000002) != 0);
8321  }
8326  @SuppressWarnings("deprecation")
8328  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
8329  }
8334  if (value == null) {
8335  throw new NullPointerException();
8336  }
8337  bitField0_ |= 0x00000002;
8338  initialPolarity_ = value.getNumber();
8339  onChanged();
8340  return this;
8341  }
8346  bitField0_ = (bitField0_ & ~0x00000002);
8347  initialPolarity_ = 1;
8348  onChanged();
8349  return this;
8350  }
8351 
8352  private boolean usePhaseSaving_ = true;
8366  public boolean hasUsePhaseSaving() {
8367  return ((bitField0_ & 0x00000004) != 0);
8368  }
8382  public boolean getUsePhaseSaving() {
8383  return usePhaseSaving_;
8384  }
8398  public Builder setUsePhaseSaving(boolean value) {
8399  bitField0_ |= 0x00000004;
8400  usePhaseSaving_ = value;
8401  onChanged();
8402  return this;
8403  }
8418  bitField0_ = (bitField0_ & ~0x00000004);
8419  usePhaseSaving_ = true;
8420  onChanged();
8421  return this;
8422  }
8423 
8424  private double randomPolarityRatio_ ;
8436  public boolean hasRandomPolarityRatio() {
8437  return ((bitField0_ & 0x00000008) != 0);
8438  }
8450  public double getRandomPolarityRatio() {
8451  return randomPolarityRatio_;
8452  }
8464  public Builder setRandomPolarityRatio(double value) {
8465  bitField0_ |= 0x00000008;
8466  randomPolarityRatio_ = value;
8467  onChanged();
8468  return this;
8469  }
8482  bitField0_ = (bitField0_ & ~0x00000008);
8483  randomPolarityRatio_ = 0D;
8484  onChanged();
8485  return this;
8486  }
8487 
8488  private double randomBranchesRatio_ ;
8498  public boolean hasRandomBranchesRatio() {
8499  return ((bitField0_ & 0x00000010) != 0);
8500  }
8510  public double getRandomBranchesRatio() {
8511  return randomBranchesRatio_;
8512  }
8522  public Builder setRandomBranchesRatio(double value) {
8523  bitField0_ |= 0x00000010;
8524  randomBranchesRatio_ = value;
8525  onChanged();
8526  return this;
8527  }
8538  bitField0_ = (bitField0_ & ~0x00000010);
8539  randomBranchesRatio_ = 0D;
8540  onChanged();
8541  return this;
8542  }
8543 
8544  private boolean useErwaHeuristic_ ;
8554  public boolean hasUseErwaHeuristic() {
8555  return ((bitField0_ & 0x00000020) != 0);
8556  }
8566  public boolean getUseErwaHeuristic() {
8567  return useErwaHeuristic_;
8568  }
8578  public Builder setUseErwaHeuristic(boolean value) {
8579  bitField0_ |= 0x00000020;
8580  useErwaHeuristic_ = value;
8581  onChanged();
8582  return this;
8583  }
8594  bitField0_ = (bitField0_ & ~0x00000020);
8595  useErwaHeuristic_ = false;
8596  onChanged();
8597  return this;
8598  }
8599 
8600  private double initialVariablesActivity_ ;
8613  public boolean hasInitialVariablesActivity() {
8614  return ((bitField0_ & 0x00000040) != 0);
8615  }
8629  return initialVariablesActivity_;
8630  }
8643  public Builder setInitialVariablesActivity(double value) {
8644  bitField0_ |= 0x00000040;
8645  initialVariablesActivity_ = value;
8646  onChanged();
8647  return this;
8648  }
8662  bitField0_ = (bitField0_ & ~0x00000040);
8663  initialVariablesActivity_ = 0D;
8664  onChanged();
8665  return this;
8666  }
8667 
8668  private boolean alsoBumpVariablesInConflictReasons_ ;
8680  return ((bitField0_ & 0x00000080) != 0);
8681  }
8693  return alsoBumpVariablesInConflictReasons_;
8694  }
8706  bitField0_ |= 0x00000080;
8707  alsoBumpVariablesInConflictReasons_ = value;
8708  onChanged();
8709  return this;
8710  }
8722  bitField0_ = (bitField0_ & ~0x00000080);
8723  alsoBumpVariablesInConflictReasons_ = false;
8724  onChanged();
8725  return this;
8726  }
8727 
8728  private int minimizationAlgorithm_ = 2;
8732  public boolean hasMinimizationAlgorithm() {
8733  return ((bitField0_ & 0x00000100) != 0);
8734  }
8739  @SuppressWarnings("deprecation")
8741  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
8742  }
8747  if (value == null) {
8748  throw new NullPointerException();
8749  }
8750  bitField0_ |= 0x00000100;
8751  minimizationAlgorithm_ = value.getNumber();
8752  onChanged();
8753  return this;
8754  }
8759  bitField0_ = (bitField0_ & ~0x00000100);
8760  minimizationAlgorithm_ = 2;
8761  onChanged();
8762  return this;
8763  }
8764 
8765  private int binaryMinimizationAlgorithm_ = 1;
8770  return ((bitField0_ & 0x00000200) != 0);
8771  }
8776  @SuppressWarnings("deprecation")
8779  }
8784  if (value == null) {
8785  throw new NullPointerException();
8786  }
8787  bitField0_ |= 0x00000200;
8788  binaryMinimizationAlgorithm_ = value.getNumber();
8789  onChanged();
8790  return this;
8791  }
8796  bitField0_ = (bitField0_ & ~0x00000200);
8797  binaryMinimizationAlgorithm_ = 1;
8798  onChanged();
8799  return this;
8800  }
8801 
8802  private boolean subsumptionDuringConflictAnalysis_ = true;
8814  return ((bitField0_ & 0x00000400) != 0);
8815  }
8827  return subsumptionDuringConflictAnalysis_;
8828  }
8840  bitField0_ |= 0x00000400;
8841  subsumptionDuringConflictAnalysis_ = value;
8842  onChanged();
8843  return this;
8844  }
8856  bitField0_ = (bitField0_ & ~0x00000400);
8857  subsumptionDuringConflictAnalysis_ = true;
8858  onChanged();
8859  return this;
8860  }
8861 
8862  private int clauseCleanupPeriod_ = 10000;
8870  public boolean hasClauseCleanupPeriod() {
8871  return ((bitField0_ & 0x00000800) != 0);
8872  }
8880  public int getClauseCleanupPeriod() {
8881  return clauseCleanupPeriod_;
8882  }
8890  public Builder setClauseCleanupPeriod(int value) {
8891  bitField0_ |= 0x00000800;
8892  clauseCleanupPeriod_ = value;
8893  onChanged();
8894  return this;
8895  }
8904  bitField0_ = (bitField0_ & ~0x00000800);
8905  clauseCleanupPeriod_ = 10000;
8906  onChanged();
8907  return this;
8908  }
8909 
8910  private int clauseCleanupTarget_ = 10000;
8919  public boolean hasClauseCleanupTarget() {
8920  return ((bitField0_ & 0x00001000) != 0);
8921  }
8930  public int getClauseCleanupTarget() {
8931  return clauseCleanupTarget_;
8932  }
8941  public Builder setClauseCleanupTarget(int value) {
8942  bitField0_ |= 0x00001000;
8943  clauseCleanupTarget_ = value;
8944  onChanged();
8945  return this;
8946  }
8956  bitField0_ = (bitField0_ & ~0x00001000);
8957  clauseCleanupTarget_ = 10000;
8958  onChanged();
8959  return this;
8960  }
8961 
8962  private int clauseCleanupProtection_ = 0;
8966  public boolean hasClauseCleanupProtection() {
8967  return ((bitField0_ & 0x00002000) != 0);
8968  }
8973  @SuppressWarnings("deprecation")
8975  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
8976  }
8981  if (value == null) {
8982  throw new NullPointerException();
8983  }
8984  bitField0_ |= 0x00002000;
8985  clauseCleanupProtection_ = value.getNumber();
8986  onChanged();
8987  return this;
8988  }
8993  bitField0_ = (bitField0_ & ~0x00002000);
8994  clauseCleanupProtection_ = 0;
8995  onChanged();
8996  return this;
8997  }
8998 
8999  private int clauseCleanupLbdBound_ = 5;
9008  public boolean hasClauseCleanupLbdBound() {
9009  return ((bitField0_ & 0x00004000) != 0);
9010  }
9020  return clauseCleanupLbdBound_;
9021  }
9030  public Builder setClauseCleanupLbdBound(int value) {
9031  bitField0_ |= 0x00004000;
9032  clauseCleanupLbdBound_ = value;
9033  onChanged();
9034  return this;
9035  }
9045  bitField0_ = (bitField0_ & ~0x00004000);
9046  clauseCleanupLbdBound_ = 5;
9047  onChanged();
9048  return this;
9049  }
9050 
9051  private int clauseCleanupOrdering_ = 0;
9055  public boolean hasClauseCleanupOrdering() {
9056  return ((bitField0_ & 0x00008000) != 0);
9057  }
9062  @SuppressWarnings("deprecation")
9064  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
9065  }
9070  if (value == null) {
9071  throw new NullPointerException();
9072  }
9073  bitField0_ |= 0x00008000;
9074  clauseCleanupOrdering_ = value.getNumber();
9075  onChanged();
9076  return this;
9077  }
9082  bitField0_ = (bitField0_ & ~0x00008000);
9083  clauseCleanupOrdering_ = 0;
9084  onChanged();
9085  return this;
9086  }
9087 
9088  private int pbCleanupIncrement_ = 200;
9096  public boolean hasPbCleanupIncrement() {
9097  return ((bitField0_ & 0x00010000) != 0);
9098  }
9106  public int getPbCleanupIncrement() {
9107  return pbCleanupIncrement_;
9108  }
9116  public Builder setPbCleanupIncrement(int value) {
9117  bitField0_ |= 0x00010000;
9118  pbCleanupIncrement_ = value;
9119  onChanged();
9120  return this;
9121  }
9130  bitField0_ = (bitField0_ & ~0x00010000);
9131  pbCleanupIncrement_ = 200;
9132  onChanged();
9133  return this;
9134  }
9135 
9136  private double pbCleanupRatio_ = 0.5D;
9140  public boolean hasPbCleanupRatio() {
9141  return ((bitField0_ & 0x00020000) != 0);
9142  }
9146  public double getPbCleanupRatio() {
9147  return pbCleanupRatio_;
9148  }
9152  public Builder setPbCleanupRatio(double value) {
9153  bitField0_ |= 0x00020000;
9154  pbCleanupRatio_ = value;
9155  onChanged();
9156  return this;
9157  }
9162  bitField0_ = (bitField0_ & ~0x00020000);
9163  pbCleanupRatio_ = 0.5D;
9164  onChanged();
9165  return this;
9166  }
9167 
9168  private int minimizeWithPropagationRestartPeriod_ = 10;
9187  return ((bitField0_ & 0x00040000) != 0);
9188  }
9207  return minimizeWithPropagationRestartPeriod_;
9208  }
9227  bitField0_ |= 0x00040000;
9228  minimizeWithPropagationRestartPeriod_ = value;
9229  onChanged();
9230  return this;
9231  }
9250  bitField0_ = (bitField0_ & ~0x00040000);
9251  minimizeWithPropagationRestartPeriod_ = 10;
9252  onChanged();
9253  return this;
9254  }
9255 
9256  private int minimizeWithPropagationNumDecisions_ = 1000;
9261  return ((bitField0_ & 0x00080000) != 0);
9262  }
9267  return minimizeWithPropagationNumDecisions_;
9268  }
9273  bitField0_ |= 0x00080000;
9274  minimizeWithPropagationNumDecisions_ = value;
9275  onChanged();
9276  return this;
9277  }
9282  bitField0_ = (bitField0_ & ~0x00080000);
9283  minimizeWithPropagationNumDecisions_ = 1000;
9284  onChanged();
9285  return this;
9286  }
9287 
9288  private double variableActivityDecay_ = 0.8D;
9302  public boolean hasVariableActivityDecay() {
9303  return ((bitField0_ & 0x00100000) != 0);
9304  }
9318  public double getVariableActivityDecay() {
9319  return variableActivityDecay_;
9320  }
9334  public Builder setVariableActivityDecay(double value) {
9335  bitField0_ |= 0x00100000;
9336  variableActivityDecay_ = value;
9337  onChanged();
9338  return this;
9339  }
9354  bitField0_ = (bitField0_ & ~0x00100000);
9355  variableActivityDecay_ = 0.8D;
9356  onChanged();
9357  return this;
9358  }
9359 
9360  private double maxVariableActivityValue_ = 1e+100D;
9364  public boolean hasMaxVariableActivityValue() {
9365  return ((bitField0_ & 0x00200000) != 0);
9366  }
9371  return maxVariableActivityValue_;
9372  }
9376  public Builder setMaxVariableActivityValue(double value) {
9377  bitField0_ |= 0x00200000;
9378  maxVariableActivityValue_ = value;
9379  onChanged();
9380  return this;
9381  }
9386  bitField0_ = (bitField0_ & ~0x00200000);
9387  maxVariableActivityValue_ = 1e+100D;
9388  onChanged();
9389  return this;
9390  }
9391 
9392  private double glucoseMaxDecay_ = 0.95D;
9403  public boolean hasGlucoseMaxDecay() {
9404  return ((bitField0_ & 0x00400000) != 0);
9405  }
9416  public double getGlucoseMaxDecay() {
9417  return glucoseMaxDecay_;
9418  }
9429  public Builder setGlucoseMaxDecay(double value) {
9430  bitField0_ |= 0x00400000;
9431  glucoseMaxDecay_ = value;
9432  onChanged();
9433  return this;
9434  }
9446  bitField0_ = (bitField0_ & ~0x00400000);
9447  glucoseMaxDecay_ = 0.95D;
9448  onChanged();
9449  return this;
9450  }
9451 
9452  private double glucoseDecayIncrement_ = 0.01D;
9456  public boolean hasGlucoseDecayIncrement() {
9457  return ((bitField0_ & 0x00800000) != 0);
9458  }
9462  public double getGlucoseDecayIncrement() {
9463  return glucoseDecayIncrement_;
9464  }
9468  public Builder setGlucoseDecayIncrement(double value) {
9469  bitField0_ |= 0x00800000;
9470  glucoseDecayIncrement_ = value;
9471  onChanged();
9472  return this;
9473  }
9478  bitField0_ = (bitField0_ & ~0x00800000);
9479  glucoseDecayIncrement_ = 0.01D;
9480  onChanged();
9481  return this;
9482  }
9483 
9484  private int glucoseDecayIncrementPeriod_ = 5000;
9489  return ((bitField0_ & 0x01000000) != 0);
9490  }
9495  return glucoseDecayIncrementPeriod_;
9496  }
9501  bitField0_ |= 0x01000000;
9502  glucoseDecayIncrementPeriod_ = value;
9503  onChanged();
9504  return this;
9505  }
9510  bitField0_ = (bitField0_ & ~0x01000000);
9511  glucoseDecayIncrementPeriod_ = 5000;
9512  onChanged();
9513  return this;
9514  }
9515 
9516  private double clauseActivityDecay_ = 0.999D;
9524  public boolean hasClauseActivityDecay() {
9525  return ((bitField0_ & 0x02000000) != 0);
9526  }
9534  public double getClauseActivityDecay() {
9535  return clauseActivityDecay_;
9536  }
9544  public Builder setClauseActivityDecay(double value) {
9545  bitField0_ |= 0x02000000;
9546  clauseActivityDecay_ = value;
9547  onChanged();
9548  return this;
9549  }
9558  bitField0_ = (bitField0_ & ~0x02000000);
9559  clauseActivityDecay_ = 0.999D;
9560  onChanged();
9561  return this;
9562  }
9563 
9564  private double maxClauseActivityValue_ = 1e+20D;
9568  public boolean hasMaxClauseActivityValue() {
9569  return ((bitField0_ & 0x04000000) != 0);
9570  }
9574  public double getMaxClauseActivityValue() {
9575  return maxClauseActivityValue_;
9576  }
9580  public Builder setMaxClauseActivityValue(double value) {
9581  bitField0_ |= 0x04000000;
9582  maxClauseActivityValue_ = value;
9583  onChanged();
9584  return this;
9585  }
9590  bitField0_ = (bitField0_ & ~0x04000000);
9591  maxClauseActivityValue_ = 1e+20D;
9592  onChanged();
9593  return this;
9594  }
9595 
9596  private java.util.List<java.lang.Integer> restartAlgorithms_ =
9597  java.util.Collections.emptyList();
9598  private void ensureRestartAlgorithmsIsMutable() {
9599  if (!((bitField0_ & 0x08000000) != 0)) {
9600  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
9601  bitField0_ |= 0x08000000;
9602  }
9603  }
9619  return new com.google.protobuf.Internal.ListAdapter<
9620  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
9621  }
9637  return restartAlgorithms_.size();
9638  }
9654  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
9655  }
9671  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
9672  if (value == null) {
9673  throw new NullPointerException();
9674  }
9675  ensureRestartAlgorithmsIsMutable();
9676  restartAlgorithms_.set(index, value.getNumber());
9677  onChanged();
9678  return this;
9679  }
9695  if (value == null) {
9696  throw new NullPointerException();
9697  }
9698  ensureRestartAlgorithmsIsMutable();
9699  restartAlgorithms_.add(value.getNumber());
9700  onChanged();
9701  return this;
9702  }
9718  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
9719  ensureRestartAlgorithmsIsMutable();
9720  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
9721  restartAlgorithms_.add(value.getNumber());
9722  }
9723  onChanged();
9724  return this;
9725  }
9741  restartAlgorithms_ = java.util.Collections.emptyList();
9742  bitField0_ = (bitField0_ & ~0x08000000);
9743  onChanged();
9744  return this;
9745  }
9746 
9747  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
9751  public boolean hasDefaultRestartAlgorithms() {
9752  return ((bitField0_ & 0x10000000) != 0);
9753  }
9757  public java.lang.String getDefaultRestartAlgorithms() {
9758  java.lang.Object ref = defaultRestartAlgorithms_;
9759  if (!(ref instanceof java.lang.String)) {
9760  com.google.protobuf.ByteString bs =
9761  (com.google.protobuf.ByteString) ref;
9762  java.lang.String s = bs.toStringUtf8();
9763  if (bs.isValidUtf8()) {
9764  defaultRestartAlgorithms_ = s;
9765  }
9766  return s;
9767  } else {
9768  return (java.lang.String) ref;
9769  }
9770  }
9774  public com.google.protobuf.ByteString
9776  java.lang.Object ref = defaultRestartAlgorithms_;
9777  if (ref instanceof String) {
9778  com.google.protobuf.ByteString b =
9779  com.google.protobuf.ByteString.copyFromUtf8(
9780  (java.lang.String) ref);
9781  defaultRestartAlgorithms_ = b;
9782  return b;
9783  } else {
9784  return (com.google.protobuf.ByteString) ref;
9785  }
9786  }
9791  java.lang.String value) {
9792  if (value == null) {
9793  throw new NullPointerException();
9794  }
9795  bitField0_ |= 0x10000000;
9796  defaultRestartAlgorithms_ = value;
9797  onChanged();
9798  return this;
9799  }
9804  bitField0_ = (bitField0_ & ~0x10000000);
9805  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
9806  onChanged();
9807  return this;
9808  }
9813  com.google.protobuf.ByteString value) {
9814  if (value == null) {
9815  throw new NullPointerException();
9816  }
9817  bitField0_ |= 0x10000000;
9818  defaultRestartAlgorithms_ = value;
9819  onChanged();
9820  return this;
9821  }
9822 
9823  private int restartPeriod_ = 50;
9832  public boolean hasRestartPeriod() {
9833  return ((bitField0_ & 0x20000000) != 0);
9834  }
9843  public int getRestartPeriod() {
9844  return restartPeriod_;
9845  }
9854  public Builder setRestartPeriod(int value) {
9855  bitField0_ |= 0x20000000;
9856  restartPeriod_ = value;
9857  onChanged();
9858  return this;
9859  }
9869  bitField0_ = (bitField0_ & ~0x20000000);
9870  restartPeriod_ = 50;
9871  onChanged();
9872  return this;
9873  }
9874 
9875  private int restartRunningWindowSize_ = 50;
9883  public boolean hasRestartRunningWindowSize() {
9884  return ((bitField0_ & 0x40000000) != 0);
9885  }
9894  return restartRunningWindowSize_;
9895  }
9904  bitField0_ |= 0x40000000;
9905  restartRunningWindowSize_ = value;
9906  onChanged();
9907  return this;
9908  }
9917  bitField0_ = (bitField0_ & ~0x40000000);
9918  restartRunningWindowSize_ = 50;
9919  onChanged();
9920  return this;
9921  }
9922 
9923  private double restartDlAverageRatio_ = 1D;
9932  public boolean hasRestartDlAverageRatio() {
9933  return ((bitField0_ & 0x80000000) != 0);
9934  }
9943  public double getRestartDlAverageRatio() {
9944  return restartDlAverageRatio_;
9945  }
9954  public Builder setRestartDlAverageRatio(double value) {
9955  bitField0_ |= 0x80000000;
9956  restartDlAverageRatio_ = value;
9957  onChanged();
9958  return this;
9959  }
9969  bitField0_ = (bitField0_ & ~0x80000000);
9970  restartDlAverageRatio_ = 1D;
9971  onChanged();
9972  return this;
9973  }
9974 
9975  private double restartLbdAverageRatio_ = 1D;
9979  public boolean hasRestartLbdAverageRatio() {
9980  return ((bitField1_ & 0x00000001) != 0);
9981  }
9985  public double getRestartLbdAverageRatio() {
9986  return restartLbdAverageRatio_;
9987  }
9991  public Builder setRestartLbdAverageRatio(double value) {
9992  bitField1_ |= 0x00000001;
9993  restartLbdAverageRatio_ = value;
9994  onChanged();
9995  return this;
9996  }
10001  bitField1_ = (bitField1_ & ~0x00000001);
10002  restartLbdAverageRatio_ = 1D;
10003  onChanged();
10004  return this;
10005  }
10006 
10007  private boolean useBlockingRestart_ ;
10017  public boolean hasUseBlockingRestart() {
10018  return ((bitField1_ & 0x00000002) != 0);
10019  }
10029  public boolean getUseBlockingRestart() {
10030  return useBlockingRestart_;
10031  }
10041  public Builder setUseBlockingRestart(boolean value) {
10042  bitField1_ |= 0x00000002;
10043  useBlockingRestart_ = value;
10044  onChanged();
10045  return this;
10046  }
10057  bitField1_ = (bitField1_ & ~0x00000002);
10058  useBlockingRestart_ = false;
10059  onChanged();
10060  return this;
10061  }
10062 
10063  private int blockingRestartWindowSize_ = 5000;
10067  public boolean hasBlockingRestartWindowSize() {
10068  return ((bitField1_ & 0x00000004) != 0);
10069  }
10074  return blockingRestartWindowSize_;
10075  }
10080  bitField1_ |= 0x00000004;
10081  blockingRestartWindowSize_ = value;
10082  onChanged();
10083  return this;
10084  }
10089  bitField1_ = (bitField1_ & ~0x00000004);
10090  blockingRestartWindowSize_ = 5000;
10091  onChanged();
10092  return this;
10093  }
10094 
10095  private double blockingRestartMultiplier_ = 1.4D;
10099  public boolean hasBlockingRestartMultiplier() {
10100  return ((bitField1_ & 0x00000008) != 0);
10101  }
10106  return blockingRestartMultiplier_;
10107  }
10111  public Builder setBlockingRestartMultiplier(double value) {
10112  bitField1_ |= 0x00000008;
10113  blockingRestartMultiplier_ = value;
10114  onChanged();
10115  return this;
10116  }
10121  bitField1_ = (bitField1_ & ~0x00000008);
10122  blockingRestartMultiplier_ = 1.4D;
10123  onChanged();
10124  return this;
10125  }
10126 
10127  private int numConflictsBeforeStrategyChanges_ ;
10138  return ((bitField1_ & 0x00000010) != 0);
10139  }
10150  return numConflictsBeforeStrategyChanges_;
10151  }
10162  bitField1_ |= 0x00000010;
10163  numConflictsBeforeStrategyChanges_ = value;
10164  onChanged();
10165  return this;
10166  }
10177  bitField1_ = (bitField1_ & ~0x00000010);
10178  numConflictsBeforeStrategyChanges_ = 0;
10179  onChanged();
10180  return this;
10181  }
10182 
10183  private double strategyChangeIncreaseRatio_ ;
10193  return ((bitField1_ & 0x00000020) != 0);
10194  }
10204  return strategyChangeIncreaseRatio_;
10205  }
10215  bitField1_ |= 0x00000020;
10216  strategyChangeIncreaseRatio_ = value;
10217  onChanged();
10218  return this;
10219  }
10229  bitField1_ = (bitField1_ & ~0x00000020);
10230  strategyChangeIncreaseRatio_ = 0D;
10231  onChanged();
10232  return this;
10233  }
10234 
10235  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10245  public boolean hasMaxTimeInSeconds() {
10246  return ((bitField1_ & 0x00000040) != 0);
10247  }
10257  public double getMaxTimeInSeconds() {
10258  return maxTimeInSeconds_;
10259  }
10269  public Builder setMaxTimeInSeconds(double value) {
10270  bitField1_ |= 0x00000040;
10271  maxTimeInSeconds_ = value;
10272  onChanged();
10273  return this;
10274  }
10285  bitField1_ = (bitField1_ & ~0x00000040);
10286  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10287  onChanged();
10288  return this;
10289  }
10290 
10291  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10303  public boolean hasMaxDeterministicTime() {
10304  return ((bitField1_ & 0x00000080) != 0);
10305  }
10317  public double getMaxDeterministicTime() {
10318  return maxDeterministicTime_;
10319  }
10331  public Builder setMaxDeterministicTime(double value) {
10332  bitField1_ |= 0x00000080;
10333  maxDeterministicTime_ = value;
10334  onChanged();
10335  return this;
10336  }
10349  bitField1_ = (bitField1_ & ~0x00000080);
10350  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10351  onChanged();
10352  return this;
10353  }
10354 
10355  private long maxNumberOfConflicts_ = 9223372036854775807L;
10363  public boolean hasMaxNumberOfConflicts() {
10364  return ((bitField1_ & 0x00000100) != 0);
10365  }
10373  public long getMaxNumberOfConflicts() {
10374  return maxNumberOfConflicts_;
10375  }
10383  public Builder setMaxNumberOfConflicts(long value) {
10384  bitField1_ |= 0x00000100;
10385  maxNumberOfConflicts_ = value;
10386  onChanged();
10387  return this;
10388  }
10397  bitField1_ = (bitField1_ & ~0x00000100);
10398  maxNumberOfConflicts_ = 9223372036854775807L;
10399  onChanged();
10400  return this;
10401  }
10402 
10403  private long maxMemoryInMb_ = 10000L;
10414  public boolean hasMaxMemoryInMb() {
10415  return ((bitField1_ & 0x00000200) != 0);
10416  }
10427  public long getMaxMemoryInMb() {
10428  return maxMemoryInMb_;
10429  }
10440  public Builder setMaxMemoryInMb(long value) {
10441  bitField1_ |= 0x00000200;
10442  maxMemoryInMb_ = value;
10443  onChanged();
10444  return this;
10445  }
10457  bitField1_ = (bitField1_ & ~0x00000200);
10458  maxMemoryInMb_ = 10000L;
10459  onChanged();
10460  return this;
10461  }
10462 
10463  private boolean treatBinaryClausesSeparately_ = true;
10474  return ((bitField1_ & 0x00000400) != 0);
10475  }
10486  return treatBinaryClausesSeparately_;
10487  }
10498  bitField1_ |= 0x00000400;
10499  treatBinaryClausesSeparately_ = value;
10500  onChanged();
10501  return this;
10502  }
10513  bitField1_ = (bitField1_ & ~0x00000400);
10514  treatBinaryClausesSeparately_ = true;
10515  onChanged();
10516  return this;
10517  }
10518 
10519  private int randomSeed_ = 1;
10532  public boolean hasRandomSeed() {
10533  return ((bitField1_ & 0x00000800) != 0);
10534  }
10547  public int getRandomSeed() {
10548  return randomSeed_;
10549  }
10562  public Builder setRandomSeed(int value) {
10563  bitField1_ |= 0x00000800;
10564  randomSeed_ = value;
10565  onChanged();
10566  return this;
10567  }
10581  bitField1_ = (bitField1_ & ~0x00000800);
10582  randomSeed_ = 1;
10583  onChanged();
10584  return this;
10585  }
10586 
10587  private boolean logSearchProgress_ ;
10595  public boolean hasLogSearchProgress() {
10596  return ((bitField1_ & 0x00001000) != 0);
10597  }
10605  public boolean getLogSearchProgress() {
10606  return logSearchProgress_;
10607  }
10615  public Builder setLogSearchProgress(boolean value) {
10616  bitField1_ |= 0x00001000;
10617  logSearchProgress_ = value;
10618  onChanged();
10619  return this;
10620  }
10629  bitField1_ = (bitField1_ & ~0x00001000);
10630  logSearchProgress_ = false;
10631  onChanged();
10632  return this;
10633  }
10634 
10635  private boolean usePbResolution_ ;
10646  public boolean hasUsePbResolution() {
10647  return ((bitField1_ & 0x00002000) != 0);
10648  }
10659  public boolean getUsePbResolution() {
10660  return usePbResolution_;
10661  }
10672  public Builder setUsePbResolution(boolean value) {
10673  bitField1_ |= 0x00002000;
10674  usePbResolution_ = value;
10675  onChanged();
10676  return this;
10677  }
10689  bitField1_ = (bitField1_ & ~0x00002000);
10690  usePbResolution_ = false;
10691  onChanged();
10692  return this;
10693  }
10694 
10695  private boolean minimizeReductionDuringPbResolution_ ;
10707  return ((bitField1_ & 0x00004000) != 0);
10708  }
10720  return minimizeReductionDuringPbResolution_;
10721  }
10733  bitField1_ |= 0x00004000;
10734  minimizeReductionDuringPbResolution_ = value;
10735  onChanged();
10736  return this;
10737  }
10749  bitField1_ = (bitField1_ & ~0x00004000);
10750  minimizeReductionDuringPbResolution_ = false;
10751  onChanged();
10752  return this;
10753  }
10754 
10755  private boolean countAssumptionLevelsInLbd_ = true;
10771  return ((bitField1_ & 0x00008000) != 0);
10772  }
10788  return countAssumptionLevelsInLbd_;
10789  }
10804  public Builder setCountAssumptionLevelsInLbd(boolean value) {
10805  bitField1_ |= 0x00008000;
10806  countAssumptionLevelsInLbd_ = value;
10807  onChanged();
10808  return this;
10809  }
10825  bitField1_ = (bitField1_ & ~0x00008000);
10826  countAssumptionLevelsInLbd_ = true;
10827  onChanged();
10828  return this;
10829  }
10830 
10831  private int presolveBveThreshold_ = 500;
10841  public boolean hasPresolveBveThreshold() {
10842  return ((bitField1_ & 0x00010000) != 0);
10843  }
10854  return presolveBveThreshold_;
10855  }
10865  public Builder setPresolveBveThreshold(int value) {
10866  bitField1_ |= 0x00010000;
10867  presolveBveThreshold_ = value;
10868  onChanged();
10869  return this;
10870  }
10881  bitField1_ = (bitField1_ & ~0x00010000);
10882  presolveBveThreshold_ = 500;
10883  onChanged();
10884  return this;
10885  }
10886 
10887  private int presolveBveClauseWeight_ = 3;
10896  public boolean hasPresolveBveClauseWeight() {
10897  return ((bitField1_ & 0x00020000) != 0);
10898  }
10908  return presolveBveClauseWeight_;
10909  }
10919  bitField1_ |= 0x00020000;
10920  presolveBveClauseWeight_ = value;
10921  onChanged();
10922  return this;
10923  }
10933  bitField1_ = (bitField1_ & ~0x00020000);
10934  presolveBveClauseWeight_ = 3;
10935  onChanged();
10936  return this;
10937  }
10938 
10939  private double presolveProbingDeterministicTimeLimit_ = 30D;
10949  return ((bitField1_ & 0x00040000) != 0);
10950  }
10960  return presolveProbingDeterministicTimeLimit_;
10961  }
10971  bitField1_ |= 0x00040000;
10972  presolveProbingDeterministicTimeLimit_ = value;
10973  onChanged();
10974  return this;
10975  }
10985  bitField1_ = (bitField1_ & ~0x00040000);
10986  presolveProbingDeterministicTimeLimit_ = 30D;
10987  onChanged();
10988  return this;
10989  }
10990 
10991  private boolean presolveBlockedClause_ = true;
11000  public boolean hasPresolveBlockedClause() {
11001  return ((bitField1_ & 0x00080000) != 0);
11002  }
11011  public boolean getPresolveBlockedClause() {
11012  return presolveBlockedClause_;
11013  }
11022  public Builder setPresolveBlockedClause(boolean value) {
11023  bitField1_ |= 0x00080000;
11024  presolveBlockedClause_ = value;
11025  onChanged();
11026  return this;
11027  }
11037  bitField1_ = (bitField1_ & ~0x00080000);
11038  presolveBlockedClause_ = true;
11039  onChanged();
11040  return this;
11041  }
11042 
11043  private boolean presolveUseBva_ = true;
11051  public boolean hasPresolveUseBva() {
11052  return ((bitField1_ & 0x00100000) != 0);
11053  }
11061  public boolean getPresolveUseBva() {
11062  return presolveUseBva_;
11063  }
11071  public Builder setPresolveUseBva(boolean value) {
11072  bitField1_ |= 0x00100000;
11073  presolveUseBva_ = value;
11074  onChanged();
11075  return this;
11076  }
11085  bitField1_ = (bitField1_ & ~0x00100000);
11086  presolveUseBva_ = true;
11087  onChanged();
11088  return this;
11089  }
11090 
11091  private int presolveBvaThreshold_ = 1;
11102  public boolean hasPresolveBvaThreshold() {
11103  return ((bitField1_ & 0x00200000) != 0);
11104  }
11116  return presolveBvaThreshold_;
11117  }
11128  public Builder setPresolveBvaThreshold(int value) {
11129  bitField1_ |= 0x00200000;
11130  presolveBvaThreshold_ = value;
11131  onChanged();
11132  return this;
11133  }
11145  bitField1_ = (bitField1_ & ~0x00200000);
11146  presolveBvaThreshold_ = 1;
11147  onChanged();
11148  return this;
11149  }
11150 
11151  private boolean useOptimizationHints_ = true;
11162  public boolean hasUseOptimizationHints() {
11163  return ((bitField1_ & 0x00400000) != 0);
11164  }
11175  public boolean getUseOptimizationHints() {
11176  return useOptimizationHints_;
11177  }
11188  public Builder setUseOptimizationHints(boolean value) {
11189  bitField1_ |= 0x00400000;
11190  useOptimizationHints_ = value;
11191  onChanged();
11192  return this;
11193  }
11205  bitField1_ = (bitField1_ & ~0x00400000);
11206  useOptimizationHints_ = true;
11207  onChanged();
11208  return this;
11209  }
11210 
11211  private boolean minimizeCore_ = true;
11219  public boolean hasMinimizeCore() {
11220  return ((bitField1_ & 0x00800000) != 0);
11221  }
11229  public boolean getMinimizeCore() {
11230  return minimizeCore_;
11231  }
11239  public Builder setMinimizeCore(boolean value) {
11240  bitField1_ |= 0x00800000;
11241  minimizeCore_ = value;
11242  onChanged();
11243  return this;
11244  }
11253  bitField1_ = (bitField1_ & ~0x00800000);
11254  minimizeCore_ = true;
11255  onChanged();
11256  return this;
11257  }
11258 
11259  private boolean findMultipleCores_ = true;
11268  public boolean hasFindMultipleCores() {
11269  return ((bitField1_ & 0x01000000) != 0);
11270  }
11279  public boolean getFindMultipleCores() {
11280  return findMultipleCores_;
11281  }
11290  public Builder setFindMultipleCores(boolean value) {
11291  bitField1_ |= 0x01000000;
11292  findMultipleCores_ = value;
11293  onChanged();
11294  return this;
11295  }
11305  bitField1_ = (bitField1_ & ~0x01000000);
11306  findMultipleCores_ = true;
11307  onChanged();
11308  return this;
11309  }
11310 
11311  private boolean coverOptimization_ = true;
11320  public boolean hasCoverOptimization() {
11321  return ((bitField1_ & 0x02000000) != 0);
11322  }
11331  public boolean getCoverOptimization() {
11332  return coverOptimization_;
11333  }
11342  public Builder setCoverOptimization(boolean value) {
11343  bitField1_ |= 0x02000000;
11344  coverOptimization_ = value;
11345  onChanged();
11346  return this;
11347  }
11357  bitField1_ = (bitField1_ & ~0x02000000);
11358  coverOptimization_ = true;
11359  onChanged();
11360  return this;
11361  }
11362 
11363  private int maxSatAssumptionOrder_ = 0;
11367  public boolean hasMaxSatAssumptionOrder() {
11368  return ((bitField1_ & 0x04000000) != 0);
11369  }
11374  @SuppressWarnings("deprecation")
11377  }
11382  if (value == null) {
11383  throw new NullPointerException();
11384  }
11385  bitField1_ |= 0x04000000;
11386  maxSatAssumptionOrder_ = value.getNumber();
11387  onChanged();
11388  return this;
11389  }
11394  bitField1_ = (bitField1_ & ~0x04000000);
11395  maxSatAssumptionOrder_ = 0;
11396  onChanged();
11397  return this;
11398  }
11399 
11400  private boolean maxSatReverseAssumptionOrder_ ;
11410  return ((bitField1_ & 0x08000000) != 0);
11411  }
11421  return maxSatReverseAssumptionOrder_;
11422  }
11432  bitField1_ |= 0x08000000;
11433  maxSatReverseAssumptionOrder_ = value;
11434  onChanged();
11435  return this;
11436  }
11446  bitField1_ = (bitField1_ & ~0x08000000);
11447  maxSatReverseAssumptionOrder_ = false;
11448  onChanged();
11449  return this;
11450  }
11451 
11452  private int maxSatStratification_ = 1;
11456  public boolean hasMaxSatStratification() {
11457  return ((bitField1_ & 0x10000000) != 0);
11458  }
11463  @SuppressWarnings("deprecation")
11466  }
11471  if (value == null) {
11472  throw new NullPointerException();
11473  }
11474  bitField1_ |= 0x10000000;
11475  maxSatStratification_ = value.getNumber();
11476  onChanged();
11477  return this;
11478  }
11483  bitField1_ = (bitField1_ & ~0x10000000);
11484  maxSatStratification_ = 1;
11485  onChanged();
11486  return this;
11487  }
11488 
11489  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
11505  return ((bitField1_ & 0x20000000) != 0);
11506  }
11522  return usePrecedencesInDisjunctiveConstraint_;
11523  }
11539  bitField1_ |= 0x20000000;
11540  usePrecedencesInDisjunctiveConstraint_ = value;
11541  onChanged();
11542  return this;
11543  }
11559  bitField1_ = (bitField1_ & ~0x20000000);
11560  usePrecedencesInDisjunctiveConstraint_ = true;
11561  onChanged();
11562  return this;
11563  }
11564 
11565  private boolean useOverloadCheckerInCumulativeConstraint_ ;
11579  return ((bitField1_ & 0x40000000) != 0);
11580  }
11594  return useOverloadCheckerInCumulativeConstraint_;
11595  }
11609  bitField1_ |= 0x40000000;
11610  useOverloadCheckerInCumulativeConstraint_ = value;
11611  onChanged();
11612  return this;
11613  }
11627  bitField1_ = (bitField1_ & ~0x40000000);
11628  useOverloadCheckerInCumulativeConstraint_ = false;
11629  onChanged();
11630  return this;
11631  }
11632 
11633  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
11647  return ((bitField1_ & 0x80000000) != 0);
11648  }
11662  return useTimetableEdgeFindingInCumulativeConstraint_;
11663  }
11677  bitField1_ |= 0x80000000;
11678  useTimetableEdgeFindingInCumulativeConstraint_ = value;
11679  onChanged();
11680  return this;
11681  }
11695  bitField1_ = (bitField1_ & ~0x80000000);
11696  useTimetableEdgeFindingInCumulativeConstraint_ = false;
11697  onChanged();
11698  return this;
11699  }
11700 
11701  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
11717  return ((bitField2_ & 0x00000001) != 0);
11718  }
11734  return useDisjunctiveConstraintInCumulativeConstraint_;
11735  }
11751  bitField2_ |= 0x00000001;
11752  useDisjunctiveConstraintInCumulativeConstraint_ = value;
11753  onChanged();
11754  return this;
11755  }
11771  bitField2_ = (bitField2_ & ~0x00000001);
11772  useDisjunctiveConstraintInCumulativeConstraint_ = true;
11773  onChanged();
11774  return this;
11775  }
11776 
11777  private int linearizationLevel_ = 1;
11788  public boolean hasLinearizationLevel() {
11789  return ((bitField2_ & 0x00000002) != 0);
11790  }
11801  public int getLinearizationLevel() {
11802  return linearizationLevel_;
11803  }
11814  public Builder setLinearizationLevel(int value) {
11815  bitField2_ |= 0x00000002;
11816  linearizationLevel_ = value;
11817  onChanged();
11818  return this;
11819  }
11831  bitField2_ = (bitField2_ & ~0x00000002);
11832  linearizationLevel_ = 1;
11833  onChanged();
11834  return this;
11835  }
11836 
11837  private int booleanEncodingLevel_ = 1;
11846  public boolean hasBooleanEncodingLevel() {
11847  return ((bitField2_ & 0x00000004) != 0);
11848  }
11858  return booleanEncodingLevel_;
11859  }
11868  public Builder setBooleanEncodingLevel(int value) {
11869  bitField2_ |= 0x00000004;
11870  booleanEncodingLevel_ = value;
11871  onChanged();
11872  return this;
11873  }
11883  bitField2_ = (bitField2_ & ~0x00000004);
11884  booleanEncodingLevel_ = 1;
11885  onChanged();
11886  return this;
11887  }
11888 
11889  private int maxNumCuts_ = 1000;
11898  public boolean hasMaxNumCuts() {
11899  return ((bitField2_ & 0x00000008) != 0);
11900  }
11909  public int getMaxNumCuts() {
11910  return maxNumCuts_;
11911  }
11920  public Builder setMaxNumCuts(int value) {
11921  bitField2_ |= 0x00000008;
11922  maxNumCuts_ = value;
11923  onChanged();
11924  return this;
11925  }
11935  bitField2_ = (bitField2_ & ~0x00000008);
11936  maxNumCuts_ = 1000;
11937  onChanged();
11938  return this;
11939  }
11940 
11941  private boolean onlyAddCutsAtLevelZero_ ;
11950  public boolean hasOnlyAddCutsAtLevelZero() {
11951  return ((bitField2_ & 0x00000010) != 0);
11952  }
11961  public boolean getOnlyAddCutsAtLevelZero() {
11962  return onlyAddCutsAtLevelZero_;
11963  }
11972  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
11973  bitField2_ |= 0x00000010;
11974  onlyAddCutsAtLevelZero_ = value;
11975  onChanged();
11976  return this;
11977  }
11987  bitField2_ = (bitField2_ & ~0x00000010);
11988  onlyAddCutsAtLevelZero_ = false;
11989  onChanged();
11990  return this;
11991  }
11992 
11993  private boolean addKnapsackCuts_ ;
12003  public boolean hasAddKnapsackCuts() {
12004  return ((bitField2_ & 0x00000020) != 0);
12005  }
12015  public boolean getAddKnapsackCuts() {
12016  return addKnapsackCuts_;
12017  }
12027  public Builder setAddKnapsackCuts(boolean value) {
12028  bitField2_ |= 0x00000020;
12029  addKnapsackCuts_ = value;
12030  onChanged();
12031  return this;
12032  }
12043  bitField2_ = (bitField2_ & ~0x00000020);
12044  addKnapsackCuts_ = false;
12045  onChanged();
12046  return this;
12047  }
12048 
12049  private boolean addCgCuts_ ;
12058  public boolean hasAddCgCuts() {
12059  return ((bitField2_ & 0x00000040) != 0);
12060  }
12069  public boolean getAddCgCuts() {
12070  return addCgCuts_;
12071  }
12080  public Builder setAddCgCuts(boolean value) {
12081  bitField2_ |= 0x00000040;
12082  addCgCuts_ = value;
12083  onChanged();
12084  return this;
12085  }
12095  bitField2_ = (bitField2_ & ~0x00000040);
12096  addCgCuts_ = false;
12097  onChanged();
12098  return this;
12099  }
12100 
12101  private boolean addMirCuts_ = true;
12110  public boolean hasAddMirCuts() {
12111  return ((bitField2_ & 0x00000080) != 0);
12112  }
12121  public boolean getAddMirCuts() {
12122  return addMirCuts_;
12123  }
12132  public Builder setAddMirCuts(boolean value) {
12133  bitField2_ |= 0x00000080;
12134  addMirCuts_ = value;
12135  onChanged();
12136  return this;
12137  }
12147  bitField2_ = (bitField2_ & ~0x00000080);
12148  addMirCuts_ = true;
12149  onChanged();
12150  return this;
12151  }
12152 
12153  private boolean useMirRounding_ = true;
12163  public boolean hasUseMirRounding() {
12164  return ((bitField2_ & 0x00000100) != 0);
12165  }
12175  public boolean getUseMirRounding() {
12176  return useMirRounding_;
12177  }
12187  public Builder setUseMirRounding(boolean value) {
12188  bitField2_ |= 0x00000100;
12189  useMirRounding_ = value;
12190  onChanged();
12191  return this;
12192  }
12203  bitField2_ = (bitField2_ & ~0x00000100);
12204  useMirRounding_ = true;
12205  onChanged();
12206  return this;
12207  }
12208 
12209  private int maxIntegerRoundingScaling_ = 600;
12221  public boolean hasMaxIntegerRoundingScaling() {
12222  return ((bitField2_ & 0x00000200) != 0);
12223  }
12236  return maxIntegerRoundingScaling_;
12237  }
12250  bitField2_ |= 0x00000200;
12251  maxIntegerRoundingScaling_ = value;
12252  onChanged();
12253  return this;
12254  }
12267  bitField2_ = (bitField2_ & ~0x00000200);
12268  maxIntegerRoundingScaling_ = 600;
12269  onChanged();
12270  return this;
12271  }
12272 
12273  private boolean addLpConstraintsLazily_ = true;
12284  public boolean hasAddLpConstraintsLazily() {
12285  return ((bitField2_ & 0x00000400) != 0);
12286  }
12297  public boolean getAddLpConstraintsLazily() {
12298  return addLpConstraintsLazily_;
12299  }
12310  public Builder setAddLpConstraintsLazily(boolean value) {
12311  bitField2_ |= 0x00000400;
12312  addLpConstraintsLazily_ = value;
12313  onChanged();
12314  return this;
12315  }
12327  bitField2_ = (bitField2_ & ~0x00000400);
12328  addLpConstraintsLazily_ = true;
12329  onChanged();
12330  return this;
12331  }
12332 
12333  private double minOrthogonalityForLpConstraints_ ;
12346  return ((bitField2_ & 0x00000800) != 0);
12347  }
12360  return minOrthogonalityForLpConstraints_;
12361  }
12374  bitField2_ |= 0x00000800;
12375  minOrthogonalityForLpConstraints_ = value;
12376  onChanged();
12377  return this;
12378  }
12391  bitField2_ = (bitField2_ & ~0x00000800);
12392  minOrthogonalityForLpConstraints_ = 0D;
12393  onChanged();
12394  return this;
12395  }
12396 
12397  private long maxInactiveCount_ = 1000L;
12406  public boolean hasMaxInactiveCount() {
12407  return ((bitField2_ & 0x00001000) != 0);
12408  }
12417  public long getMaxInactiveCount() {
12418  return maxInactiveCount_;
12419  }
12428  public Builder setMaxInactiveCount(long value) {
12429  bitField2_ |= 0x00001000;
12430  maxInactiveCount_ = value;
12431  onChanged();
12432  return this;
12433  }
12443  bitField2_ = (bitField2_ & ~0x00001000);
12444  maxInactiveCount_ = 1000L;
12445  onChanged();
12446  return this;
12447  }
12448 
12449  private long constraintRemovalBatchSize_ = 100L;
12459  return ((bitField2_ & 0x00002000) != 0);
12460  }
12470  return constraintRemovalBatchSize_;
12471  }
12481  bitField2_ |= 0x00002000;
12482  constraintRemovalBatchSize_ = value;
12483  onChanged();
12484  return this;
12485  }
12495  bitField2_ = (bitField2_ & ~0x00002000);
12496  constraintRemovalBatchSize_ = 100L;
12497  onChanged();
12498  return this;
12499  }
12500 
12501  private int searchBranching_ = 0;
12505  public boolean hasSearchBranching() {
12506  return ((bitField2_ & 0x00004000) != 0);
12507  }
12512  @SuppressWarnings("deprecation")
12514  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
12515  }
12520  if (value == null) {
12521  throw new NullPointerException();
12522  }
12523  bitField2_ |= 0x00004000;
12524  searchBranching_ = value.getNumber();
12525  onChanged();
12526  return this;
12527  }
12532  bitField2_ = (bitField2_ & ~0x00004000);
12533  searchBranching_ = 0;
12534  onChanged();
12535  return this;
12536  }
12537 
12538  private boolean exploitIntegerLpSolution_ = true;
12549  public boolean hasExploitIntegerLpSolution() {
12550  return ((bitField2_ & 0x00008000) != 0);
12551  }
12562  public boolean getExploitIntegerLpSolution() {
12563  return exploitIntegerLpSolution_;
12564  }
12575  public Builder setExploitIntegerLpSolution(boolean value) {
12576  bitField2_ |= 0x00008000;
12577  exploitIntegerLpSolution_ = value;
12578  onChanged();
12579  return this;
12580  }
12592  bitField2_ = (bitField2_ & ~0x00008000);
12593  exploitIntegerLpSolution_ = true;
12594  onChanged();
12595  return this;
12596  }
12597 
12598  private boolean exploitAllLpSolution_ = true;
12608  public boolean hasExploitAllLpSolution() {
12609  return ((bitField2_ & 0x00010000) != 0);
12610  }
12620  public boolean getExploitAllLpSolution() {
12621  return exploitAllLpSolution_;
12622  }
12632  public Builder setExploitAllLpSolution(boolean value) {
12633  bitField2_ |= 0x00010000;
12634  exploitAllLpSolution_ = value;
12635  onChanged();
12636  return this;
12637  }
12648  bitField2_ = (bitField2_ & ~0x00010000);
12649  exploitAllLpSolution_ = true;
12650  onChanged();
12651  return this;
12652  }
12653 
12654  private boolean exploitBestSolution_ ;
12662  public boolean hasExploitBestSolution() {
12663  return ((bitField2_ & 0x00020000) != 0);
12664  }
12672  public boolean getExploitBestSolution() {
12673  return exploitBestSolution_;
12674  }
12682  public Builder setExploitBestSolution(boolean value) {
12683  bitField2_ |= 0x00020000;
12684  exploitBestSolution_ = value;
12685  onChanged();
12686  return this;
12687  }
12696  bitField2_ = (bitField2_ & ~0x00020000);
12697  exploitBestSolution_ = false;
12698  onChanged();
12699  return this;
12700  }
12701 
12702  private boolean exploitObjective_ = true;
12711  public boolean hasExploitObjective() {
12712  return ((bitField2_ & 0x00040000) != 0);
12713  }
12722  public boolean getExploitObjective() {
12723  return exploitObjective_;
12724  }
12733  public Builder setExploitObjective(boolean value) {
12734  bitField2_ |= 0x00040000;
12735  exploitObjective_ = value;
12736  onChanged();
12737  return this;
12738  }
12748  bitField2_ = (bitField2_ & ~0x00040000);
12749  exploitObjective_ = true;
12750  onChanged();
12751  return this;
12752  }
12753 
12754  private long pseudoCostReliabilityThreshold_ = 100L;
12764  return ((bitField2_ & 0x00080000) != 0);
12765  }
12775  return pseudoCostReliabilityThreshold_;
12776  }
12786  bitField2_ |= 0x00080000;
12787  pseudoCostReliabilityThreshold_ = value;
12788  onChanged();
12789  return this;
12790  }
12800  bitField2_ = (bitField2_ & ~0x00080000);
12801  pseudoCostReliabilityThreshold_ = 100L;
12802  onChanged();
12803  return this;
12804  }
12805 
12806  private boolean optimizeWithCore_ ;
12817  public boolean hasOptimizeWithCore() {
12818  return ((bitField2_ & 0x00100000) != 0);
12819  }
12830  public boolean getOptimizeWithCore() {
12831  return optimizeWithCore_;
12832  }
12843  public Builder setOptimizeWithCore(boolean value) {
12844  bitField2_ |= 0x00100000;
12845  optimizeWithCore_ = value;
12846  onChanged();
12847  return this;
12848  }
12860  bitField2_ = (bitField2_ & ~0x00100000);
12861  optimizeWithCore_ = false;
12862  onChanged();
12863  return this;
12864  }
12865 
12866  private int binarySearchNumConflicts_ = -1;
12877  public boolean hasBinarySearchNumConflicts() {
12878  return ((bitField2_ & 0x00200000) != 0);
12879  }
12891  return binarySearchNumConflicts_;
12892  }
12904  bitField2_ |= 0x00200000;
12905  binarySearchNumConflicts_ = value;
12906  onChanged();
12907  return this;
12908  }
12920  bitField2_ = (bitField2_ & ~0x00200000);
12921  binarySearchNumConflicts_ = -1;
12922  onChanged();
12923  return this;
12924  }
12925 
12926  private boolean optimizeWithMaxHs_ ;
12939  public boolean hasOptimizeWithMaxHs() {
12940  return ((bitField2_ & 0x00400000) != 0);
12941  }
12954  public boolean getOptimizeWithMaxHs() {
12955  return optimizeWithMaxHs_;
12956  }
12969  public Builder setOptimizeWithMaxHs(boolean value) {
12970  bitField2_ |= 0x00400000;
12971  optimizeWithMaxHs_ = value;
12972  onChanged();
12973  return this;
12974  }
12988  bitField2_ = (bitField2_ & ~0x00400000);
12989  optimizeWithMaxHs_ = false;
12990  onChanged();
12991  return this;
12992  }
12993 
12994  private boolean cpModelPresolve_ = true;
13002  public boolean hasCpModelPresolve() {
13003  return ((bitField2_ & 0x00800000) != 0);
13004  }
13012  public boolean getCpModelPresolve() {
13013  return cpModelPresolve_;
13014  }
13022  public Builder setCpModelPresolve(boolean value) {
13023  bitField2_ |= 0x00800000;
13024  cpModelPresolve_ = value;
13025  onChanged();
13026  return this;
13027  }
13036  bitField2_ = (bitField2_ & ~0x00800000);
13037  cpModelPresolve_ = true;
13038  onChanged();
13039  return this;
13040  }
13041 
13042  private int cpModelProbingLevel_ = 2;
13050  public boolean hasCpModelProbingLevel() {
13051  return ((bitField2_ & 0x01000000) != 0);
13052  }
13060  public int getCpModelProbingLevel() {
13061  return cpModelProbingLevel_;
13062  }
13070  public Builder setCpModelProbingLevel(int value) {
13071  bitField2_ |= 0x01000000;
13072  cpModelProbingLevel_ = value;
13073  onChanged();
13074  return this;
13075  }
13084  bitField2_ = (bitField2_ & ~0x01000000);
13085  cpModelProbingLevel_ = 2;
13086  onChanged();
13087  return this;
13088  }
13089 
13090  private boolean cpModelUseSatPresolve_ = true;
13098  public boolean hasCpModelUseSatPresolve() {
13099  return ((bitField2_ & 0x02000000) != 0);
13100  }
13108  public boolean getCpModelUseSatPresolve() {
13109  return cpModelUseSatPresolve_;
13110  }
13118  public Builder setCpModelUseSatPresolve(boolean value) {
13119  bitField2_ |= 0x02000000;
13120  cpModelUseSatPresolve_ = value;
13121  onChanged();
13122  return this;
13123  }
13132  bitField2_ = (bitField2_ & ~0x02000000);
13133  cpModelUseSatPresolve_ = true;
13134  onChanged();
13135  return this;
13136  }
13137 
13138  private boolean enumerateAllSolutions_ ;
13151  public boolean hasEnumerateAllSolutions() {
13152  return ((bitField2_ & 0x04000000) != 0);
13153  }
13166  public boolean getEnumerateAllSolutions() {
13167  return enumerateAllSolutions_;
13168  }
13181  public Builder setEnumerateAllSolutions(boolean value) {
13182  bitField2_ |= 0x04000000;
13183  enumerateAllSolutions_ = value;
13184  onChanged();
13185  return this;
13186  }
13200  bitField2_ = (bitField2_ & ~0x04000000);
13201  enumerateAllSolutions_ = false;
13202  onChanged();
13203  return this;
13204  }
13205 
13206  private boolean fillTightenedDomainsInResponse_ ;
13219  return ((bitField2_ & 0x08000000) != 0);
13220  }
13233  return fillTightenedDomainsInResponse_;
13234  }
13247  bitField2_ |= 0x08000000;
13248  fillTightenedDomainsInResponse_ = value;
13249  onChanged();
13250  return this;
13251  }
13264  bitField2_ = (bitField2_ & ~0x08000000);
13265  fillTightenedDomainsInResponse_ = false;
13266  onChanged();
13267  return this;
13268  }
13269 
13270  private boolean instantiateAllVariables_ = true;
13279  public boolean hasInstantiateAllVariables() {
13280  return ((bitField2_ & 0x10000000) != 0);
13281  }
13290  public boolean getInstantiateAllVariables() {
13291  return instantiateAllVariables_;
13292  }
13301  public Builder setInstantiateAllVariables(boolean value) {
13302  bitField2_ |= 0x10000000;
13303  instantiateAllVariables_ = value;
13304  onChanged();
13305  return this;
13306  }
13316  bitField2_ = (bitField2_ & ~0x10000000);
13317  instantiateAllVariables_ = true;
13318  onChanged();
13319  return this;
13320  }
13321 
13322  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
13334  return ((bitField2_ & 0x20000000) != 0);
13335  }
13347  return autoDetectGreaterThanAtLeastOneOf_;
13348  }
13360  bitField2_ |= 0x20000000;
13361  autoDetectGreaterThanAtLeastOneOf_ = value;
13362  onChanged();
13363  return this;
13364  }
13376  bitField2_ = (bitField2_ & ~0x20000000);
13377  autoDetectGreaterThanAtLeastOneOf_ = true;
13378  onChanged();
13379  return this;
13380  }
13381 
13382  private boolean stopAfterFirstSolution_ ;
13390  public boolean hasStopAfterFirstSolution() {
13391  return ((bitField2_ & 0x40000000) != 0);
13392  }
13400  public boolean getStopAfterFirstSolution() {
13401  return stopAfterFirstSolution_;
13402  }
13410  public Builder setStopAfterFirstSolution(boolean value) {
13411  bitField2_ |= 0x40000000;
13412  stopAfterFirstSolution_ = value;
13413  onChanged();
13414  return this;
13415  }
13424  bitField2_ = (bitField2_ & ~0x40000000);
13425  stopAfterFirstSolution_ = false;
13426  onChanged();
13427  return this;
13428  }
13429 
13430  private int numSearchWorkers_ ;
13441  public boolean hasNumSearchWorkers() {
13442  return ((bitField2_ & 0x80000000) != 0);
13443  }
13454  public int getNumSearchWorkers() {
13455  return numSearchWorkers_;
13456  }
13467  public Builder setNumSearchWorkers(int value) {
13468  bitField2_ |= 0x80000000;
13469  numSearchWorkers_ = value;
13470  onChanged();
13471  return this;
13472  }
13484  bitField2_ = (bitField2_ & ~0x80000000);
13485  numSearchWorkers_ = 0;
13486  onChanged();
13487  return this;
13488  }
13489 
13490  private boolean shareObjectiveBounds_ = true;
13498  public boolean hasShareObjectiveBounds() {
13499  return ((bitField3_ & 0x00000001) != 0);
13500  }
13508  public boolean getShareObjectiveBounds() {
13509  return shareObjectiveBounds_;
13510  }
13518  public Builder setShareObjectiveBounds(boolean value) {
13519  bitField3_ |= 0x00000001;
13520  shareObjectiveBounds_ = value;
13521  onChanged();
13522  return this;
13523  }
13532  bitField3_ = (bitField3_ & ~0x00000001);
13533  shareObjectiveBounds_ = true;
13534  onChanged();
13535  return this;
13536  }
13537 
13538  private boolean shareLevelZeroBounds_ = true;
13546  public boolean hasShareLevelZeroBounds() {
13547  return ((bitField3_ & 0x00000002) != 0);
13548  }
13556  public boolean getShareLevelZeroBounds() {
13557  return shareLevelZeroBounds_;
13558  }
13566  public Builder setShareLevelZeroBounds(boolean value) {
13567  bitField3_ |= 0x00000002;
13568  shareLevelZeroBounds_ = value;
13569  onChanged();
13570  return this;
13571  }
13580  bitField3_ = (bitField3_ & ~0x00000002);
13581  shareLevelZeroBounds_ = true;
13582  onChanged();
13583  return this;
13584  }
13585 
13586  private boolean useLns_ ;
13594  public boolean hasUseLns() {
13595  return ((bitField3_ & 0x00000004) != 0);
13596  }
13604  public boolean getUseLns() {
13605  return useLns_;
13606  }
13614  public Builder setUseLns(boolean value) {
13615  bitField3_ |= 0x00000004;
13616  useLns_ = value;
13617  onChanged();
13618  return this;
13619  }
13628  bitField3_ = (bitField3_ & ~0x00000004);
13629  useLns_ = false;
13630  onChanged();
13631  return this;
13632  }
13633 
13634  private int lnsNumThreads_ = 1;
13638  public boolean hasLnsNumThreads() {
13639  return ((bitField3_ & 0x00000008) != 0);
13640  }
13644  public int getLnsNumThreads() {
13645  return lnsNumThreads_;
13646  }
13650  public Builder setLnsNumThreads(int value) {
13651  bitField3_ |= 0x00000008;
13652  lnsNumThreads_ = value;
13653  onChanged();
13654  return this;
13655  }
13660  bitField3_ = (bitField3_ & ~0x00000008);
13661  lnsNumThreads_ = 1;
13662  onChanged();
13663  return this;
13664  }
13665 
13666  private boolean lnsFocusOnDecisionVariables_ ;
13671  return ((bitField3_ & 0x00000010) != 0);
13672  }
13677  return lnsFocusOnDecisionVariables_;
13678  }
13682  public Builder setLnsFocusOnDecisionVariables(boolean value) {
13683  bitField3_ |= 0x00000010;
13684  lnsFocusOnDecisionVariables_ = value;
13685  onChanged();
13686  return this;
13687  }
13692  bitField3_ = (bitField3_ & ~0x00000010);
13693  lnsFocusOnDecisionVariables_ = false;
13694  onChanged();
13695  return this;
13696  }
13697 
13698  private boolean useRinsLns_ ;
13706  public boolean hasUseRinsLns() {
13707  return ((bitField3_ & 0x00000020) != 0);
13708  }
13716  public boolean getUseRinsLns() {
13717  return useRinsLns_;
13718  }
13726  public Builder setUseRinsLns(boolean value) {
13727  bitField3_ |= 0x00000020;
13728  useRinsLns_ = value;
13729  onChanged();
13730  return this;
13731  }
13740  bitField3_ = (bitField3_ & ~0x00000020);
13741  useRinsLns_ = false;
13742  onChanged();
13743  return this;
13744  }
13745 
13746  private boolean randomizeSearch_ ;
13754  public boolean hasRandomizeSearch() {
13755  return ((bitField3_ & 0x00000040) != 0);
13756  }
13764  public boolean getRandomizeSearch() {
13765  return randomizeSearch_;
13766  }
13774  public Builder setRandomizeSearch(boolean value) {
13775  bitField3_ |= 0x00000040;
13776  randomizeSearch_ = value;
13777  onChanged();
13778  return this;
13779  }
13788  bitField3_ = (bitField3_ & ~0x00000040);
13789  randomizeSearch_ = false;
13790  onChanged();
13791  return this;
13792  }
13793 
13794  private long searchRandomizationTolerance_ ;
13809  return ((bitField3_ & 0x00000080) != 0);
13810  }
13825  return searchRandomizationTolerance_;
13826  }
13841  bitField3_ |= 0x00000080;
13842  searchRandomizationTolerance_ = value;
13843  onChanged();
13844  return this;
13845  }
13860  bitField3_ = (bitField3_ & ~0x00000080);
13861  searchRandomizationTolerance_ = 0L;
13862  onChanged();
13863  return this;
13864  }
13865 
13866  private boolean useOptionalVariables_ = true;
13876  public boolean hasUseOptionalVariables() {
13877  return ((bitField3_ & 0x00000100) != 0);
13878  }
13888  public boolean getUseOptionalVariables() {
13889  return useOptionalVariables_;
13890  }
13900  public Builder setUseOptionalVariables(boolean value) {
13901  bitField3_ |= 0x00000100;
13902  useOptionalVariables_ = value;
13903  onChanged();
13904  return this;
13905  }
13916  bitField3_ = (bitField3_ & ~0x00000100);
13917  useOptionalVariables_ = true;
13918  onChanged();
13919  return this;
13920  }
13921 
13922  private boolean useExactLpReason_ = true;
13933  public boolean hasUseExactLpReason() {
13934  return ((bitField3_ & 0x00000200) != 0);
13935  }
13946  public boolean getUseExactLpReason() {
13947  return useExactLpReason_;
13948  }
13959  public Builder setUseExactLpReason(boolean value) {
13960  bitField3_ |= 0x00000200;
13961  useExactLpReason_ = value;
13962  onChanged();
13963  return this;
13964  }
13976  bitField3_ = (bitField3_ & ~0x00000200);
13977  useExactLpReason_ = true;
13978  onChanged();
13979  return this;
13980  }
13981 
13982  private boolean useCombinedNoOverlap_ ;
13992  public boolean hasUseCombinedNoOverlap() {
13993  return ((bitField3_ & 0x00000400) != 0);
13994  }
14004  public boolean getUseCombinedNoOverlap() {
14005  return useCombinedNoOverlap_;
14006  }
14016  public Builder setUseCombinedNoOverlap(boolean value) {
14017  bitField3_ |= 0x00000400;
14018  useCombinedNoOverlap_ = value;
14019  onChanged();
14020  return this;
14021  }
14032  bitField3_ = (bitField3_ & ~0x00000400);
14033  useCombinedNoOverlap_ = false;
14034  onChanged();
14035  return this;
14036  }
14037 
14038  private double mipMaxBound_ = 10000000D;
14048  public boolean hasMipMaxBound() {
14049  return ((bitField3_ & 0x00000800) != 0);
14050  }
14060  public double getMipMaxBound() {
14061  return mipMaxBound_;
14062  }
14072  public Builder setMipMaxBound(double value) {
14073  bitField3_ |= 0x00000800;
14074  mipMaxBound_ = value;
14075  onChanged();
14076  return this;
14077  }
14088  bitField3_ = (bitField3_ & ~0x00000800);
14089  mipMaxBound_ = 10000000D;
14090  onChanged();
14091  return this;
14092  }
14093 
14094  private double mipVarScaling_ = 1D;
14104  public boolean hasMipVarScaling() {
14105  return ((bitField3_ & 0x00001000) != 0);
14106  }
14116  public double getMipVarScaling() {
14117  return mipVarScaling_;
14118  }
14128  public Builder setMipVarScaling(double value) {
14129  bitField3_ |= 0x00001000;
14130  mipVarScaling_ = value;
14131  onChanged();
14132  return this;
14133  }
14144  bitField3_ = (bitField3_ & ~0x00001000);
14145  mipVarScaling_ = 1D;
14146  onChanged();
14147  return this;
14148  }
14149 
14150  private double mipWantedPrecision_ = 1e-06D;
14166  public boolean hasMipWantedPrecision() {
14167  return ((bitField3_ & 0x00002000) != 0);
14168  }
14184  public double getMipWantedPrecision() {
14185  return mipWantedPrecision_;
14186  }
14202  public Builder setMipWantedPrecision(double value) {
14203  bitField3_ |= 0x00002000;
14204  mipWantedPrecision_ = value;
14205  onChanged();
14206  return this;
14207  }
14224  bitField3_ = (bitField3_ & ~0x00002000);
14225  mipWantedPrecision_ = 1e-06D;
14226  onChanged();
14227  return this;
14228  }
14229 
14230  private int mipMaxActivityExponent_ = 53;
14244  public boolean hasMipMaxActivityExponent() {
14245  return ((bitField3_ & 0x00004000) != 0);
14246  }
14261  return mipMaxActivityExponent_;
14262  }
14277  bitField3_ |= 0x00004000;
14278  mipMaxActivityExponent_ = value;
14279  onChanged();
14280  return this;
14281  }
14296  bitField3_ = (bitField3_ & ~0x00004000);
14297  mipMaxActivityExponent_ = 53;
14298  onChanged();
14299  return this;
14300  }
14301 
14302  private double mipCheckPrecision_ = 0.0001D;
14313  public boolean hasMipCheckPrecision() {
14314  return ((bitField3_ & 0x00008000) != 0);
14315  }
14326  public double getMipCheckPrecision() {
14327  return mipCheckPrecision_;
14328  }
14339  public Builder setMipCheckPrecision(double value) {
14340  bitField3_ |= 0x00008000;
14341  mipCheckPrecision_ = value;
14342  onChanged();
14343  return this;
14344  }
14356  bitField3_ = (bitField3_ & ~0x00008000);
14357  mipCheckPrecision_ = 0.0001D;
14358  onChanged();
14359  return this;
14360  }
14361  @java.lang.Override
14363  final com.google.protobuf.UnknownFieldSet unknownFields) {
14364  return super.setUnknownFields(unknownFields);
14365  }
14366 
14367  @java.lang.Override
14369  final com.google.protobuf.UnknownFieldSet unknownFields) {
14370  return super.mergeUnknownFields(unknownFields);
14371  }
14372 
14373 
14374  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
14375  }
14376 
14377  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
14378  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
14379  static {
14380  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
14381  }
14382 
14384  return DEFAULT_INSTANCE;
14385  }
14386 
14387  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
14388  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
14389  @java.lang.Override
14390  public SatParameters parsePartialFrom(
14391  com.google.protobuf.CodedInputStream input,
14392  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14393  throws com.google.protobuf.InvalidProtocolBufferException {
14394  return new SatParameters(input, extensionRegistry);
14395  }
14396  };
14397 
14398  public static com.google.protobuf.Parser<SatParameters> parser() {
14399  return PARSER;
14400  }
14401 
14402  @java.lang.Override
14403  public com.google.protobuf.Parser<SatParameters> getParserForType() {
14404  return PARSER;
14405  }
14406 
14407  @java.lang.Override
14409  return DEFAULT_INSTANCE;
14410  }
14411 
14412 }
14413 
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
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
.lang.Override com.google.protobuf.Parser< SatParameters > getParserForType()
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
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)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER
static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER
Builder clearInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder setUseDisjunctiveConstraintInCumulativeConstraint(boolean value)
.lang.Deprecated static MaxSatAssumptionOrder valueOf(int value)
static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4;
.lang.Deprecated static VariableOrder valueOf(int value)
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER
Builder setUseTimetableEdgeFindingInCumulativeConstraint(boolean value)
static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder clearClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static MaxSatStratificationAlgorithm forNumber(int value)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
Builder clearBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
.lang.Deprecated static final com.google.protobuf.Parser< SatParameters > PARSER
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder clearGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
.lang.Override final boolean isInitialized()
Builder setMaxClauseActivityValue(double value)
optional double max_clause_activity_value = 18 [default = 1e+20];
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
Builder clearSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
Builder clearMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int USE_BLOCKING_RESTART_FIELD_NUMBER
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters buildPartial()
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static BinaryMinizationAlgorithm forNumber(int value)
static MaxSatAssumptionOrder forNumber(int value)
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
Builder setMaxVariableActivityValue(double value)
optional double max_variable_activity_value = 16 [default = 1e+100];
Builder clearDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Deprecated static Polarity valueOf(int value)
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
Builder setFillTightenedDomainsInResponse(boolean value)
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
static com.google.ortools.sat.SatParameters getDefaultInstance()
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];